~/f/nant/RPMS.2017 ~/f/nant
~/f/nant
RPMS.2017/nant-0.92+git20130131-0.0.noarch.rpm RPMS/nant-0.92+git20130131-0.0.noarch.rpm differ: byte 225, line 1
Comparing nant-0.92+git20130131-0.0.noarch.rpm to nant-0.92+git20130131-0.0.noarch.rpm
comparing the rpm tags of nant
--- old-rpm-tags
+++ new-rpm-tags
@@ -210,49 +210,49 @@
 /usr/bin/nant a7b586a9f370e62cc76f3ec9b7e53c8d43db038dfad8ef94790cc21c384bb29c 0
 /usr/share/NAnt  0
 /usr/share/NAnt/bin  0
-/usr/share/NAnt/bin/NAnt.CompressionTasks.dll 7f46d41cfd9cd76319fa064ee032e7c4ee3ba16da6a76066fe747f7c8507a09f 0
-/usr/share/NAnt/bin/NAnt.CompressionTasks.dll.mdb d9e193a19a9888e707dc2f7a9abe61510a3f8c8860eb1e5f5ff0d45adb1a1cbe 0
-/usr/share/NAnt/bin/NAnt.CompressionTasks.xml cd22e5d481cec7490edd79c182390e0636716ec16c9e7fdc6c2fccc4f939e0f0 0
-/usr/share/NAnt/bin/NAnt.Core.dll 708bbadfaf453c3f76a4620fb63d24eaf34744ea7c7fa00d54769f8c694bd890 0
-/usr/share/NAnt/bin/NAnt.Core.dll.mdb dbe629eb0211b0fb4c5a94710a973447c772e79ea8ae363c2c341300e13c5c5c 0
-/usr/share/NAnt/bin/NAnt.Core.xml b826e6a9b6655ad006df7cba10e37301c7f5e46f4423d2ec68de08c8ef2e1982 0
-/usr/share/NAnt/bin/NAnt.DotNetTasks.dll 794cb421b043b12cbacbd8bb1ad1d8280cb7ccdbebda12ee0b799be82fa3a9d4 0
-/usr/share/NAnt/bin/NAnt.DotNetTasks.dll.mdb 482c80222cd70f57a21529ae10687cc30bcfec1f3035c2bbc73f71cb92e58c02 0
-/usr/share/NAnt/bin/NAnt.DotNetTasks.xml 3317c680c22b59e0d58f4b801a67818f98aca49b0cee60934e2a127c45540eb7 0
-/usr/share/NAnt/bin/NAnt.NUnit.dll b8ed9acd41a396081e323b70e27617e377fab8d351278d7e27b1463445324e8b 0
-/usr/share/NAnt/bin/NAnt.NUnit.dll.mdb 1d7ab912b88b07ad961f65ffaffec1a165d9ed252f4f54f0dffe2ee9c64382c1 0
-/usr/share/NAnt/bin/NAnt.NUnit.xml 88ace49b289fdc54a740e5ecca79d44d887c28628691199e42bf4ff0badc0dd4 0
-/usr/share/NAnt/bin/NAnt.NUnit1Tasks.dll 0ae795eb4733fb6882268a3f7455483e43aa849aa406698ab89da34f672ce668 0
-/usr/share/NAnt/bin/NAnt.NUnit1Tasks.dll.mdb f1edad416fe0f03590f59a18397e9ed9d7243b3adf85f90436b83250c84a6014 0
-/usr/share/NAnt/bin/NAnt.NUnit1Tasks.xml 4fc791f3acbb4568bef672f50ba1425143a56321f7346e3cc140c35d81d3450d 0
-/usr/share/NAnt/bin/NAnt.NUnit2Tasks.dll 3fb27aca0e147ac15fb7c3af180b01195f1217a9b9257527469439e34f343fff 0
-/usr/share/NAnt/bin/NAnt.NUnit2Tasks.dll.mdb f1414a0450616832941412600686c2d32479531e00085141c8e89c62ab3b095c 0
-/usr/share/NAnt/bin/NAnt.NUnit2Tasks.xml 51432fef429be380a02b99a72ff52d22c5ffd99001df73ab46f8fcd55d3e52f9 0
-/usr/share/NAnt/bin/NAnt.SourceControlTasks.dll 8dcc0107c7b9e2cef6928502b56bdcc81b6ad5e4b686d31c683d1f780799a4cf 0
-/usr/share/NAnt/bin/NAnt.SourceControlTasks.dll.mdb 3586a12a4db3b69c20df003b7326f115570e13f46f47de543f1813673bd376eb 0
-/usr/share/NAnt/bin/NAnt.SourceControlTasks.xml 33ec56622edb39d51a9f314ec3dcb67dbdd7675de25b0dce8d7f5b0d820dd7e5 0
-/usr/share/NAnt/bin/NAnt.VSNetTasks.dll 9cbced7cae65a120cd39588bc89f8ec89974ed1bd69e47c5bb7c83561f969ad9 0
-/usr/share/NAnt/bin/NAnt.VSNetTasks.dll.mdb b3cf9d957b23f15541cd13d2dfb690022c95540fe9aaa03f1b7db9e37d7d7678 0
-/usr/share/NAnt/bin/NAnt.VSNetTasks.xml 3f872ed5ecc787b6449d22a884b4f963529ebaa74728276e521d77980e66c801 0
-/usr/share/NAnt/bin/NAnt.VisualCppTasks.dll a255685d1fe802ad831db8b3bbe1ffb6d2a9fe7e9010a4141265a132093ed550 0
-/usr/share/NAnt/bin/NAnt.VisualCppTasks.dll.mdb 86265dae105f6338724ec084b86a0500181ef1d64275eb03e80eab9969f89119 0
-/usr/share/NAnt/bin/NAnt.VisualCppTasks.xml 91f15721115756b3cae9533ceb8fd4fd49674b995934a145fb1cf5aa905a5127 0
-/usr/share/NAnt/bin/NAnt.Win32Tasks.dll f1364d89fcc227e821ccad916bf46cd58b7c0b713c543d597d053506d8abca5f 0
-/usr/share/NAnt/bin/NAnt.Win32Tasks.dll.mdb d461740d2bfef73d1e31ea0746a637a701359616c19b792b176ec81e17727491 0
-/usr/share/NAnt/bin/NAnt.Win32Tasks.xml e8a5c60a21f8b4df3dbfd8fff08371782385552ec35af8fb5a912095cd6ec9d2 0
+/usr/share/NAnt/bin/NAnt.CompressionTasks.dll 30d1aa6698d0df0c785d3a2533a8812c0bd272fc91a5aa3ba34bb5e85f83c543 0
+/usr/share/NAnt/bin/NAnt.CompressionTasks.dll.mdb dc68943636ad32968ea723e9f614fff0dd2fae24466d8b61b6b120db273e19ea 0
+/usr/share/NAnt/bin/NAnt.CompressionTasks.xml e2fa8e56ba74ad2edc805ef156a8d6b2833e4b7a257a5b4d32837d3677eb440c 0
+/usr/share/NAnt/bin/NAnt.Core.dll 1d797352767564bb696d0447fcd7293483372439c025689f4364aab0d8424722 0
+/usr/share/NAnt/bin/NAnt.Core.dll.mdb 3fb230387bc5709fd93a3a9fb7d001dd06f6e4f1feedf5af911108708408c27c 0
+/usr/share/NAnt/bin/NAnt.Core.xml 480cd01d6311f0bda59e3526ef41e757132bc53ded7e372705bd5fd31dcbb14a 0
+/usr/share/NAnt/bin/NAnt.DotNetTasks.dll c6b08baf95f4d3d728f518b59782b65b092ecf5dea574297d2eaf66ca24c57d7 0
+/usr/share/NAnt/bin/NAnt.DotNetTasks.dll.mdb 6f91d37cc5c6c581a082276245bea6ca85ddbc23a6d67922ec205e88fb285e5f 0
+/usr/share/NAnt/bin/NAnt.DotNetTasks.xml c4c5a7543a5ee96376e92037e91854eec0ba09f19c73a8314711513ec773ef3e 0
+/usr/share/NAnt/bin/NAnt.NUnit.dll 6bbf079a3ccbb56a6f311e68e8ad56291c9b4ce3a7e315a44a0c1706a2e4df41 0
+/usr/share/NAnt/bin/NAnt.NUnit.dll.mdb 8904f078dd262b1005122e64551112f8d240e9d91ddb300e7c69d5bec97cd387 0
+/usr/share/NAnt/bin/NAnt.NUnit.xml f28ee83a187d9628641c74252cbb0787c4ebb5ad10a41b30859ffd603eb91344 0
+/usr/share/NAnt/bin/NAnt.NUnit1Tasks.dll aaa81460e9e591b9a006fc7b6a5182995e20eb945db838d1ec540036fa826704 0
+/usr/share/NAnt/bin/NAnt.NUnit1Tasks.dll.mdb 73e5930fc11ddeaeb3f3224e269fa29b33738c4221bec0f77308ceb6d4d79e93 0
+/usr/share/NAnt/bin/NAnt.NUnit1Tasks.xml 6c70ff735550ea0b49a5e4abb47020ec2f0aa6ccf84ef6bc3141dba7adf0b805 0
+/usr/share/NAnt/bin/NAnt.NUnit2Tasks.dll 14a8582f8458918e21a10926d53965d02509d025b508b76567b6a7e5614edc25 0
+/usr/share/NAnt/bin/NAnt.NUnit2Tasks.dll.mdb 020966c55bddf7e42e13d35396be2f127b7687e252e0c1dfebafb61d51fac757 0
+/usr/share/NAnt/bin/NAnt.NUnit2Tasks.xml 7be8ca93cfc78cc094df3ce7f5479c2316ab789fe11c9e449110eacea9a50504 0
+/usr/share/NAnt/bin/NAnt.SourceControlTasks.dll 4a3d67a8d5ca0005bf9796691a6bd7ca9f527b59d4bcc4d52caa0d89e01b5447 0
+/usr/share/NAnt/bin/NAnt.SourceControlTasks.dll.mdb 52a839b55e252ce82c6efd246288afa066cd460b586ec4993d952ce0fb651586 0
+/usr/share/NAnt/bin/NAnt.SourceControlTasks.xml e6b148a8996baf6783d8003eff445d8b2e86427cde7c22523f5d6620a43fb8da 0
+/usr/share/NAnt/bin/NAnt.VSNetTasks.dll 9ad5dfc0bcd6fe4eec1a3da3aa45823a009036e623e1eb3a06ff9eb177eaf68f 0
+/usr/share/NAnt/bin/NAnt.VSNetTasks.dll.mdb bb76fd49438ec5839ae9ae2719492d82ad0b79ce8fecd2e9ac18b21aab0982fa 0
+/usr/share/NAnt/bin/NAnt.VSNetTasks.xml c35bd1a37a69fb8fac72a491767908bd1c99830f1c6b2b9e8b401793c8dea11d 0
+/usr/share/NAnt/bin/NAnt.VisualCppTasks.dll 926650fb98af3cd5e19ded306ec8957eb97b6a1888f1e081567d9824bf4657b2 0
+/usr/share/NAnt/bin/NAnt.VisualCppTasks.dll.mdb 97edcab3f33b06747ad5b3d1a0dcfdbf65f6cf91fd291e667ec8c3a80373c116 0
+/usr/share/NAnt/bin/NAnt.VisualCppTasks.xml f1f2137b0ab5ecdb180353b2acf9455cebab4fa841312aad6aec876442fc08ff 0
+/usr/share/NAnt/bin/NAnt.Win32Tasks.dll ec81903695216bcad384108e1d0cb2386e6386b28c122559ae4ccdf9028e4cc4 0
+/usr/share/NAnt/bin/NAnt.Win32Tasks.dll.mdb e6c554242cbdba1f8f0554e826d1f72088f3a9affad7772e07d42bc65f9ab8b7 0
+/usr/share/NAnt/bin/NAnt.Win32Tasks.xml d5e92a84c99bb5eeed5bbd8bbafc13a931450c2dd7e71aebacbc16be6432c3fe 0
 /usr/share/NAnt/bin/NAnt.exe 0a150d928cfdfa63329b3273ac0a75b8f1ff4c123833ab5cedf8d6ef0dd44475 0
 /usr/share/NAnt/bin/NAnt.exe.config df11d2afbd79693348a494a1efe68cb9a202f29074643b925cf1c05a6ad25d69 0
 /usr/share/NAnt/bin/NAnt.exe.mdb cd1e05f8f45a790bba0d8ad5f1b64ca5256dad3ebc56dcb716adc1a5225278b0 0
 /usr/share/NAnt/bin/NAnt.xml d64dc7eda2810a1168f2d55d27e5556c35e933519cfe52a77eca150cf2dc4ff2 0
-/usr/share/NAnt/bin/NDoc.Documenter.NAnt.dll 2cfba474b8a0c2983dd9cab838096bde092597b5698f08683f8f632506646aeb 0
-/usr/share/NAnt/bin/NDoc.Documenter.NAnt.dll.mdb 9100a3f95e008e3eb4a6dab1cc916f5d941385127c2f59ebbe38f05cc30a7375 0
-/usr/share/NAnt/bin/NDoc.Documenter.NAnt.xml 272cccf9448e3ab2109520bacbaacb88aab515f60477165e60ad1bd2ea43a178 0
+/usr/share/NAnt/bin/NDoc.Documenter.NAnt.dll 0a7bbfb767601b1a88040e04c75938b5a723e1623515ad8c6d898046edbe7ce4 0
+/usr/share/NAnt/bin/NDoc.Documenter.NAnt.dll.mdb 1c9632f6b6e4315b45189f813e4348fc8595da8c6f136e45bedf93988b143720 0
+/usr/share/NAnt/bin/NDoc.Documenter.NAnt.xml 59d22fe77f9e68747bb436d53e3ec6d9e6961f88f347a2193275a62c44bc2b7b 0
 /usr/share/NAnt/bin/extensions  0
 /usr/share/NAnt/bin/extensions/common  0
 /usr/share/NAnt/bin/extensions/common/4.5  0
-/usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.dll 3a96a3e9712eeeabbaaf3b4914e15063189446bb18ec44acd7c4f808ac86df8f 0
-/usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.dll.mdb 3c5a821a7651b656cc19b9cf0e0f631115880345df9521cb15b482b11155d841 0
-/usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.xml 743d928776e2e0282a3557189ef0017714a98a1504fd96668d64fb675dedee2d 0
+/usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.dll e8e8a068ad87d59b0b9bf4db98213829f91589d7f34c4cd79d09f603d9a69461 0
+/usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.dll.mdb 5c74560c0fed1702ab5b9164a95dfca45ae4d9fa8b4d98a5eba8ea79dbaa4cd8 0
+/usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.xml 0ac3523f44914d1ee83ea49661960c350452c6f6878d8381cd67797002fcab51 0
 /usr/share/NAnt/bin/lib  0
 /usr/share/NAnt/bin/lib/common  0
 /usr/share/NAnt/bin/lib/common/2.0  0
comparing rpmtags
comparing RELEASE
comparing PROVIDES
comparing scripts
comparing filelist
comparing file checksum
creating rename script
RPM file checksum differs.
Extracting packages
PE32 Mono/.Net assembly: /usr/share/NAnt/bin/NAnt.CompressionTasks.dll
/usr/share/NAnt/bin/NAnt.CompressionTasks.dll differs (PE32 executable (DLL) (console) Intel 80386, Mono/.Net assembly, for MS Windows)
--- old /usr/share/NAnt/bin/NAnt.CompressionTasks.dll (monodis)
+++ new /usr/share/NAnt/bin/NAnt.CompressionTasks.dll (monodis)
@@ -3,15 +3,15 @@
   .ver 4:0:0:0
   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
 }
+.assembly extern NAnt.Core
+{
+  .ver 0:93:1:0
+}
 .assembly extern System
 {
   .ver 4:0:0:0
   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
 }
-.assembly extern NAnt.Core
-{
-  .ver 0:93:1:0
-}
 .assembly extern ICSharpCode.SharpZipLib
 {
   .ver 0:86:0:518
@@ -64,6 +64,520 @@
 
 .namespace NAnt.Compression.Types
 {
+  .class public auto ansi serializable beforefieldinit TarFileSetCollection
+  	extends [mscorlib]System.Collections.CollectionBase
+  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+
+
+    // method line 1
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2050
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method TarFileSetCollection::.ctor
+
+    // method line 2
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Compression.Types.TarFileSetCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2059
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Compression.Types.TarFileSetCollection::AddRange(class NAnt.Compression.Types.TarFileSetCollection)
+	IL_000e:  ret 
+    } // end of method TarFileSetCollection::.ctor
+
+    // method line 3
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Compression.Types.TarFileSet[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2069
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Compression.Types.TarFileSetCollection::AddRange(class NAnt.Compression.Types.TarFileSet[])
+	IL_000e:  ret 
+    } // end of method TarFileSetCollection::.ctor
+
+    // method line 4
+    .method public hidebysig specialname 
+           instance default class NAnt.Compression.Types.TarFileSet get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x207c
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.Compression.Types.TarFileSet	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.Compression.Types.TarFileSet
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method TarFileSetCollection::get_Item
+
+    // method line 5
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Compression.Types.TarFileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x20a2
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method TarFileSetCollection::set_Item
+
+    // method line 6
+    .method public hidebysig specialname 
+           instance default int32 get_FileCount ()  cil managed 
+    {
+        // Method begins at RVA 0x20b4
+	// Code size 96 (0x60)
+	.maxstack 2
+	.locals init (
+		int32	V_0,
+		class NAnt.Compression.Types.TarFileSet	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		int32	V_4)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  nop 
+	IL_0004:  ldarg.0 
+	IL_0005:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_000a:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_000f:  stloc.2 
+	.try { // 0
+	  IL_0010:  br IL_0031
+
+	  IL_0015:  ldloc.2 
+	  IL_0016:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_001b:  castclass NAnt.Compression.Types.TarFileSet
+	  IL_0020:  stloc.1 
+	  IL_0021:  nop 
+	  IL_0022:  ldloc.0 
+	  IL_0023:  ldloc.1 
+	  IL_0024:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	  IL_0029:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	  IL_002e:  add 
+	  IL_002f:  stloc.0 
+	  IL_0030:  nop 
+	  IL_0031:  ldloc.2 
+	  IL_0032:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0037:  brtrue IL_0015
+
+	  IL_003c:  leave IL_0055
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0041:  ldloc.2 
+	  IL_0042:  isinst [mscorlib]System.IDisposable
+	  IL_0047:  dup 
+	  IL_0048:  stloc.3 
+	  IL_0049:  brfalse IL_0054
+
+	  IL_004e:  ldloc.3 
+	  IL_004f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0054:  endfinally 
+	} // end handler 0
+	IL_0055:  ldloc.0 
+	IL_0056:  stloc.s 4
+	IL_0058:  br IL_005d
+
+	IL_005d:  ldloc.s 4
+	IL_005f:  ret 
+    } // end of method TarFileSetCollection::get_FileCount
+
+    // method line 7
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Compression.Types.TarFileSet item)  cil managed 
+    {
+        // Method begins at RVA 0x2130
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method TarFileSetCollection::Add
+
+    // method line 8
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Compression.Types.TarFileSet[] items)  cil managed 
+    {
+        // Method begins at RVA 0x2154
+	// Code size 34 (0x22)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.Compression.Types.TarFileSetCollection::Add(class NAnt.Compression.Types.TarFileSet)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
+
+	IL_0021:  ret 
+    } // end of method TarFileSetCollection::AddRange
+
+    // method line 9
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Compression.Types.TarFileSetCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x2184
+	// Code size 41 (0x29)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.Compression.Types.TarFileSet class NAnt.Compression.Types.TarFileSetCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Compression.Types.TarFileSetCollection::Add(class NAnt.Compression.Types.TarFileSet)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
+
+	IL_0028:  ret 
+    } // end of method TarFileSetCollection::AddRange
+
+    // method line 10
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Compression.Types.TarFileSet item)  cil managed 
+    {
+        // Method begins at RVA 0x21bc
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method TarFileSetCollection::Contains
+
+    // method line 11
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Compression.Types.TarFileSet[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x21dd
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method TarFileSetCollection::CopyTo
+
+    // method line 12
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Compression.Types.TarFileSet item)  cil managed 
+    {
+        // Method begins at RVA 0x21f0
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method TarFileSetCollection::IndexOf
+
+    // method line 13
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Compression.Types.TarFileSet item)  cil managed 
+    {
+        // Method begins at RVA 0x2211
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method TarFileSetCollection::Insert
+
+    // method line 14
+    .method public hidebysig 
+           instance default class NAnt.Compression.Types.TarFileSetEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x2224
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Compression.Types.TarFileSetEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.Compression.Types.TarFileSetEnumerator::'.ctor'(class NAnt.Compression.Types.TarFileSetCollection)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TarFileSetCollection::GetEnumerator
+
+    // method line 15
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Compression.Types.TarFileSet item)  cil managed 
+    {
+        // Method begins at RVA 0x223f
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
+	IL_000d:  ret 
+    } // end of method TarFileSetCollection::Remove
+
+	.property instance class NAnt.Compression.Types.TarFileSet Item (int32)
+	{
+		.get instance default class NAnt.Compression.Types.TarFileSet NAnt.Compression.Types.TarFileSetCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Compression.Types.TarFileSetCollection::set_Item (int32 index, class NAnt.Compression.Types.TarFileSet 'value') 
+	}
+	.property instance int32 FileCount ()
+	{
+		.get instance default int32 NAnt.Compression.Types.TarFileSetCollection::get_FileCount () 
+	}
+  } // end of class NAnt.Compression.Types.TarFileSetCollection
+}
+
+.namespace NAnt.Compression.Types
+{
+  .class public auto ansi beforefieldinit TarFileSetEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+
+    // method line 16
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Compression.Types.TarFileSetCollection TarFileSets)  cil managed 
+    {
+        // Method begins at RVA 0x2250
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method TarFileSetEnumerator::.ctor
+
+    // method line 17
+    .method public hidebysig specialname 
+           instance default class NAnt.Compression.Types.TarFileSet get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x2274
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.Compression.Types.TarFileSet	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.Compression.Types.TarFileSet
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method TarFileSetEnumerator::get_Current
+
+    // method line 18
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x229c
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method TarFileSetEnumerator::System.Collections.IEnumerator.get_Current
+
+    // method line 19
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x22bc
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method TarFileSetEnumerator::MoveNext
+
+    // method line 20
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x22dc
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method TarFileSetEnumerator::System.Collections.IEnumerator.MoveNext
+
+    // method line 21
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x22fc
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method TarFileSetEnumerator::Reset
+
+    // method line 22
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x230a
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method TarFileSetEnumerator::System.Collections.IEnumerator.Reset
+
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.Compression.Types.TarFileSetEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.Compression.Types.TarFileSet Current ()
+	{
+		.get instance default class NAnt.Compression.Types.TarFileSet NAnt.Compression.Types.TarFileSetEnumerator::get_Current () 
+	}
+  } // end of class NAnt.Compression.Types.TarFileSetEnumerator
+}
+
+.namespace NAnt.Compression.Types
+{
   .class public auto ansi sealed TarCompressionMethod
   	extends [mscorlib]System.Enum
   {
@@ -87,11 +601,11 @@
   	extends [System]System.ComponentModel.EnumConverter
   {
 
-    // method line 1
+    // method line 23
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2050
+        // Method begins at RVA 0x2318
 	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -102,11 +616,11 @@
 	IL_0011:  ret 
     } // end of method TarCompressionMethodConverter::.ctor
 
-    // method line 2
+    // method line 24
     .method public virtual hidebysig 
            instance default object ConvertFrom (class [System]System.ComponentModel.ITypeDescriptorContext context, class [mscorlib]System.Globalization.CultureInfo culture, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x2064
+        // Method begins at RVA 0x232c
 	// Code size 50 (0x32)
 	.maxstack 4
 	.locals init (
@@ -144,6 +658,86 @@
 
 .namespace NAnt.Compression.Types
 {
+  .class public auto ansi sealed DuplicateHandling
+  	extends [mscorlib]System.Enum
+  {
+    .custom instance void class [System]System.ComponentModel.TypeConverterAttribute::'.ctor'(class [mscorlib]System.Type) =  (
+		01 00 31 4E 41 6E 74 2E 43 6F 6D 70 72 65 73 73   // ..1NAnt.Compress
+		69 6F 6E 2E 54 79 70 65 73 2E 44 75 70 6C 69 63   // ion.Types.Duplic
+		61 74 65 48 61 6E 64 6C 69 6E 67 43 6F 6E 76 65   // ateHandlingConve
+		72 74 65 72 00 00                               ) // rter..
+
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Compression.Types.DuplicateHandling Add = int32(0x00000000)
+    .field public static literal  valuetype NAnt.Compression.Types.DuplicateHandling Preserve = int32(0x00000001)
+    .field public static literal  valuetype NAnt.Compression.Types.DuplicateHandling Fail = int32(0x00000002)
+
+  } // end of class NAnt.Compression.Types.DuplicateHandling
+}
+
+.namespace NAnt.Compression.Types
+{
+  .class private auto ansi beforefieldinit DuplicateHandlingConverter
+  	extends [System]System.ComponentModel.EnumConverter
+  {
+
+    // method line 25
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x236a
+	// Code size 18 (0x12)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldtoken NAnt.Compression.Types.DuplicateHandling
+	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000b:  call instance void class [System]System.ComponentModel.EnumConverter::'.ctor'(class [mscorlib]System.Type)
+	IL_0010:  nop 
+	IL_0011:  ret 
+    } // end of method DuplicateHandlingConverter::.ctor
+
+    // method line 26
+    .method public virtual hidebysig 
+           instance default object ConvertFrom (class [System]System.ComponentModel.ITypeDescriptorContext context, class [mscorlib]System.Globalization.CultureInfo culture, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2380
+	// Code size 50 (0x32)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		object	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.3 
+	IL_0002:  isinst [mscorlib]System.String
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  brfalse IL_0021
+
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance class [mscorlib]System.Type class [System]System.ComponentModel.EnumConverter::get_EnumType()
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	IL_001b:  stloc.1 
+	IL_001c:  br IL_0030
+
+	IL_0021:  ldarg.0 
+	IL_0022:  ldarg.1 
+	IL_0023:  ldarg.2 
+	IL_0024:  ldarg.3 
+	IL_0025:  call instance object class [System]System.ComponentModel.EnumConverter::ConvertFrom(class [System]System.ComponentModel.ITypeDescriptorContext, class [mscorlib]System.Globalization.CultureInfo, object)
+	IL_002a:  stloc.1 
+	IL_002b:  br IL_0030
+
+	IL_0030:  ldloc.1 
+	IL_0031:  ret 
+    } // end of method DuplicateHandlingConverter::ConvertFrom
+
+  } // end of class NAnt.Compression.Types.DuplicateHandlingConverter
+}
+
+.namespace NAnt.Compression.Types
+{
   .class public auto ansi beforefieldinit ZipFileSet
   	extends [NAnt.Core]NAnt.Core.Types.FileSet
   {
@@ -151,11 +745,11 @@
 
     .field  private  string _prefix
 
-    // method line 3
+    // method line 27
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x20a2
+        // Method begins at RVA 0x23be
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -163,11 +757,11 @@
 	IL_0006:  ret 
     } // end of method ZipFileSet::.ctor
 
-    // method line 4
+    // method line 28
     .method public hidebysig specialname 
            instance default string get_Prefix ()  cil managed 
     {
-        // Method begins at RVA 0x20ac
+        // Method begins at RVA 0x23c8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -182,11 +776,11 @@
 	IL_000e:  ret 
     } // end of method ZipFileSet::get_Prefix
 
-    // method line 5
+    // method line 29
     .method public hidebysig specialname 
            instance default void set_Prefix (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x20c8
+        // Method begins at RVA 0x23e4
 	// Code size 91 (0x5b)
 	.maxstack 3
 	IL_0000:  nop 
@@ -250,11 +844,11 @@
     .field private static literal  int32 _dirFlag = int32(0x00004000)
     .field private static literal  int32 _fileFlag = int32(0x00008000)
 
-    // method line 6
+    // method line 30
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x212f
+        // Method begins at RVA 0x244b
 	// Code size 29 (0x1d)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -268,11 +862,11 @@
 	IL_001c:  ret 
     } // end of method TarFileSet::.ctor
 
-    // method line 7
+    // method line 31
     .method public hidebysig specialname 
            instance default int32 get_FileMode ()  cil managed 
     {
-        // Method begins at RVA 0x2150
+        // Method begins at RVA 0x246c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -287,11 +881,11 @@
 	IL_000e:  ret 
     } // end of method TarFileSet::get_FileMode
 
-    // method line 8
+    // method line 32
     .method public hidebysig specialname 
            instance default void set_FileMode (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x216b
+        // Method begins at RVA 0x2487
 	// Code size 26 (0x1a)
 	.maxstack 8
 	IL_0000:  nop 
@@ -306,11 +900,11 @@
 	IL_0019:  ret 
     } // end of method TarFileSet::set_FileMode
 
-    // method line 9
+    // method line 33
     .method public hidebysig specialname 
            instance default int32 get_DirMode ()  cil managed 
     {
-        // Method begins at RVA 0x2188
+        // Method begins at RVA 0x24a4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -325,11 +919,11 @@
 	IL_000e:  ret 
     } // end of method TarFileSet::get_DirMode
 
-    // method line 10
+    // method line 34
     .method public hidebysig specialname 
            instance default void set_DirMode (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x21a3
+        // Method begins at RVA 0x24bf
 	// Code size 26 (0x1a)
 	.maxstack 8
 	IL_0000:  nop 
@@ -344,11 +938,11 @@
 	IL_0019:  ret 
     } // end of method TarFileSet::set_DirMode
 
-    // method line 11
+    // method line 35
     .method public hidebysig specialname 
            instance default string get_UserName ()  cil managed 
     {
-        // Method begins at RVA 0x21c0
+        // Method begins at RVA 0x24dc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -363,11 +957,11 @@
 	IL_000e:  ret 
     } // end of method TarFileSet::get_UserName
 
-    // method line 12
+    // method line 36
     .method public hidebysig specialname 
            instance default void set_UserName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x21db
+        // Method begins at RVA 0x24f7
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -378,11 +972,11 @@
 	IL_000d:  ret 
     } // end of method TarFileSet::set_UserName
 
-    // method line 13
+    // method line 37
     .method public hidebysig specialname 
            instance default int32 get_Uid ()  cil managed 
     {
-        // Method begins at RVA 0x21ec
+        // Method begins at RVA 0x2508
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -397,11 +991,11 @@
 	IL_000e:  ret 
     } // end of method TarFileSet::get_Uid
 
-    // method line 14
+    // method line 38
     .method public hidebysig specialname 
            instance default void set_Uid (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x2207
+        // Method begins at RVA 0x2523
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -411,11 +1005,11 @@
 	IL_0008:  ret 
     } // end of method TarFileSet::set_Uid
 
-    // method line 15
+    // method line 39
     .method public hidebysig specialname 
            instance default string get_GroupName ()  cil managed 
     {
-        // Method begins at RVA 0x2214
+        // Method begins at RVA 0x2530
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -430,11 +1024,11 @@
 	IL_000e:  ret 
     } // end of method TarFileSet::get_GroupName
 
-    // method line 16
+    // method line 40
     .method public hidebysig specialname 
            instance default void set_GroupName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x222f
+        // Method begins at RVA 0x254b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -445,11 +1039,11 @@
 	IL_000d:  ret 
     } // end of method TarFileSet::set_GroupName
 
-    // method line 17
+    // method line 41
     .method public hidebysig specialname 
            instance default int32 get_Gid ()  cil managed 
     {
-        // Method begins at RVA 0x2240
+        // Method begins at RVA 0x255c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -464,11 +1058,11 @@
 	IL_000e:  ret 
     } // end of method TarFileSet::get_Gid
 
-    // method line 18
+    // method line 42
     .method public hidebysig specialname 
            instance default void set_Gid (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x225b
+        // Method begins at RVA 0x2577
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -478,11 +1072,11 @@
 	IL_0008:  ret 
     } // end of method TarFileSet::set_Gid
 
-    // method line 19
+    // method line 43
     .method public hidebysig specialname 
            instance default string get_Prefix ()  cil managed 
     {
-        // Method begins at RVA 0x2268
+        // Method begins at RVA 0x2584
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -497,11 +1091,11 @@
 	IL_000e:  ret 
     } // end of method TarFileSet::get_Prefix
 
-    // method line 20
+    // method line 44
     .method public hidebysig specialname 
            instance default void set_Prefix (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2284
+        // Method begins at RVA 0x25a0
 	// Code size 91 (0x5b)
 	.maxstack 3
 	IL_0000:  nop 
@@ -590,531 +1184,17 @@
 
 .namespace NAnt.Compression.Types
 {
-  .class public auto ansi serializable beforefieldinit TarFileSetCollection
-  	extends [mscorlib]System.Collections.CollectionBase
-  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
-
-
-    // method line 21
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x22eb
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method TarFileSetCollection::.ctor
-
-    // method line 22
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Compression.Types.TarFileSetCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x22f4
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Compression.Types.TarFileSetCollection::AddRange(class NAnt.Compression.Types.TarFileSetCollection)
-	IL_000e:  ret 
-    } // end of method TarFileSetCollection::.ctor
-
-    // method line 23
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Compression.Types.TarFileSet[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2304
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Compression.Types.TarFileSetCollection::AddRange(class NAnt.Compression.Types.TarFileSet[])
-	IL_000e:  ret 
-    } // end of method TarFileSetCollection::.ctor
-
-    // method line 24
-    .method public hidebysig specialname 
-           instance default class NAnt.Compression.Types.TarFileSet get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x2314
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class NAnt.Compression.Types.TarFileSet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.Compression.Types.TarFileSet
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
-
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method TarFileSetCollection::get_Item
-
-    // method line 25
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Compression.Types.TarFileSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0x233a
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method TarFileSetCollection::set_Item
-
-    // method line 26
-    .method public hidebysig specialname 
-           instance default int32 get_FileCount ()  cil managed 
-    {
-        // Method begins at RVA 0x234c
-	// Code size 96 (0x60)
-	.maxstack 2
-	.locals init (
-		int32	V_0,
-		class NAnt.Compression.Types.TarFileSet	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		int32	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  nop 
-	IL_0004:  ldarg.0 
-	IL_0005:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_000a:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_000f:  stloc.2 
-	.try { // 0
-	  IL_0010:  br IL_0031
-
-	  IL_0015:  ldloc.2 
-	  IL_0016:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_001b:  castclass NAnt.Compression.Types.TarFileSet
-	  IL_0020:  stloc.1 
-	  IL_0021:  nop 
-	  IL_0022:  ldloc.0 
-	  IL_0023:  ldloc.1 
-	  IL_0024:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	  IL_0029:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	  IL_002e:  add 
-	  IL_002f:  stloc.0 
-	  IL_0030:  nop 
-	  IL_0031:  ldloc.2 
-	  IL_0032:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0037:  brtrue IL_0015
-
-	  IL_003c:  leave IL_0055
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0041:  ldloc.2 
-	  IL_0042:  isinst [mscorlib]System.IDisposable
-	  IL_0047:  dup 
-	  IL_0048:  stloc.3 
-	  IL_0049:  brfalse IL_0054
-
-	  IL_004e:  ldloc.3 
-	  IL_004f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0054:  endfinally 
-	} // end handler 0
-	IL_0055:  ldloc.0 
-	IL_0056:  stloc.s 4
-	IL_0058:  br IL_005d
-
-	IL_005d:  ldloc.s 4
-	IL_005f:  ret 
-    } // end of method TarFileSetCollection::get_FileCount
-
-    // method line 27
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Compression.Types.TarFileSet item)  cil managed 
-    {
-        // Method begins at RVA 0x23c8
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method TarFileSetCollection::Add
-
-    // method line 28
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Compression.Types.TarFileSet[] items)  cil managed 
-    {
-        // Method begins at RVA 0x23ec
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Compression.Types.TarFileSetCollection::Add(class NAnt.Compression.Types.TarFileSet)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
-
-	IL_0021:  ret 
-    } // end of method TarFileSetCollection::AddRange
-
-    // method line 29
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Compression.Types.TarFileSetCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x241c
-	// Code size 41 (0x29)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Compression.Types.TarFileSet class NAnt.Compression.Types.TarFileSetCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Compression.Types.TarFileSetCollection::Add(class NAnt.Compression.Types.TarFileSet)
-	IL_0016:  pop 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0023:  blt IL_0008
-
-	IL_0028:  ret 
-    } // end of method TarFileSetCollection::AddRange
-
-    // method line 30
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Compression.Types.TarFileSet item)  cil managed 
-    {
-        // Method begins at RVA 0x2454
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method TarFileSetCollection::Contains
-
-    // method line 31
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Compression.Types.TarFileSet[] 'array', int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x2475
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method TarFileSetCollection::CopyTo
-
-    // method line 32
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Compression.Types.TarFileSet item)  cil managed 
-    {
-        // Method begins at RVA 0x2488
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method TarFileSetCollection::IndexOf
-
-    // method line 33
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Compression.Types.TarFileSet item)  cil managed 
-    {
-        // Method begins at RVA 0x24a9
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method TarFileSetCollection::Insert
-
-    // method line 34
-    .method public hidebysig 
-           instance default class NAnt.Compression.Types.TarFileSetEnumerator GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x24bc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Compression.Types.TarFileSetEnumerator	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Compression.Types.TarFileSetEnumerator::'.ctor'(class NAnt.Compression.Types.TarFileSetCollection)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TarFileSetCollection::GetEnumerator
-
-    // method line 35
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Compression.Types.TarFileSet item)  cil managed 
-    {
-        // Method begins at RVA 0x24d7
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method TarFileSetCollection::Remove
-
-	.property instance class NAnt.Compression.Types.TarFileSet Item (int32)
-	{
-		.get instance default class NAnt.Compression.Types.TarFileSet NAnt.Compression.Types.TarFileSetCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Compression.Types.TarFileSetCollection::set_Item (int32 index, class NAnt.Compression.Types.TarFileSet 'value') 
-	}
-	.property instance int32 FileCount ()
-	{
-		.get instance default int32 NAnt.Compression.Types.TarFileSetCollection::get_FileCount () 
-	}
-  } // end of class NAnt.Compression.Types.TarFileSetCollection
-}
-
-.namespace NAnt.Compression.Types
-{
-  .class public auto ansi beforefieldinit TarFileSetEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
-
-    // method line 36
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Compression.Types.TarFileSetCollection TarFileSets)  cil managed 
-    {
-        // Method begins at RVA 0x24e8
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method TarFileSetEnumerator::.ctor
-
-    // method line 37
-    .method public hidebysig specialname 
-           instance default class NAnt.Compression.Types.TarFileSet get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x250c
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.Compression.Types.TarFileSet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Compression.Types.TarFileSet
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method TarFileSetEnumerator::get_Current
-
-    // method line 38
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x2534
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		object	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method TarFileSetEnumerator::System.Collections.IEnumerator.get_Current
-
-    // method line 39
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x2554
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method TarFileSetEnumerator::MoveNext
-
-    // method line 40
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x2574
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method TarFileSetEnumerator::System.Collections.IEnumerator.MoveNext
-
-    // method line 41
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x2594
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method TarFileSetEnumerator::Reset
-
-    // method line 42
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x25a2
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Compression.Types.TarFileSetEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method TarFileSetEnumerator::System.Collections.IEnumerator.Reset
-
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.Compression.Types.TarFileSetEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.Compression.Types.TarFileSet Current ()
-	{
-		.get instance default class NAnt.Compression.Types.TarFileSet NAnt.Compression.Types.TarFileSetEnumerator::get_Current () 
-	}
-  } // end of class NAnt.Compression.Types.TarFileSetEnumerator
-}
-
-.namespace NAnt.Compression.Types
-{
   .class public auto ansi serializable beforefieldinit ZipFileSetCollection
   	extends [mscorlib]System.Collections.CollectionBase
   {
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 43
+    // method line 45
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x25b0
+        // Method begins at RVA 0x2607
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1123,11 +1203,11 @@
 	IL_0007:  ret 
     } // end of method ZipFileSetCollection::.ctor
 
-    // method line 44
+    // method line 46
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.Compression.Types.ZipFileSetCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x25b9
+        // Method begins at RVA 0x2610
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1139,11 +1219,11 @@
 	IL_000e:  ret 
     } // end of method ZipFileSetCollection::.ctor
 
-    // method line 45
+    // method line 47
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.Compression.Types.ZipFileSet[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x25c9
+        // Method begins at RVA 0x2620
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1155,11 +1235,11 @@
 	IL_000e:  ret 
     } // end of method ZipFileSetCollection::.ctor
 
-    // method line 46
+    // method line 48
     .method public hidebysig specialname 
            instance default class NAnt.Compression.Types.ZipFileSet get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x25dc
+        // Method begins at RVA 0x2630
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -1177,11 +1257,11 @@
 	IL_0019:  ret 
     } // end of method ZipFileSetCollection::get_Item
 
-    // method line 47
+    // method line 49
     .method public hidebysig specialname 
            instance default void set_Item (int32 index, class NAnt.Compression.Types.ZipFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x2602
+        // Method begins at RVA 0x2656
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1193,11 +1273,11 @@
 	IL_000e:  ret 
     } // end of method ZipFileSetCollection::set_Item
 
-    // method line 48
+    // method line 50
     .method public hidebysig specialname 
            instance default int32 get_FileCount ()  cil managed 
     {
-        // Method begins at RVA 0x2614
+        // Method begins at RVA 0x2668
 	// Code size 96 (0x60)
 	.maxstack 2
 	.locals init (
@@ -1255,11 +1335,11 @@
 	IL_005f:  ret 
     } // end of method ZipFileSetCollection::get_FileCount
 
-    // method line 49
+    // method line 51
     .method public hidebysig 
            instance default int32 Add (class NAnt.Compression.Types.ZipFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x2690
+        // Method begins at RVA 0x26e4
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1276,11 +1356,11 @@
 	IL_0014:  ret 
     } // end of method ZipFileSetCollection::Add
 
-    // method line 50
+    // method line 52
     .method public hidebysig 
            instance default void AddRange (class NAnt.Compression.Types.ZipFileSet[] items)  cil managed 
     {
-        // Method begins at RVA 0x26b4
+        // Method begins at RVA 0x2708
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -1311,11 +1391,11 @@
 	IL_0021:  ret 
     } // end of method ZipFileSetCollection::AddRange
 
-    // method line 51
+    // method line 53
     .method public hidebysig 
            instance default void AddRange (class NAnt.Compression.Types.ZipFileSetCollection items)  cil managed 
     {
-        // Method begins at RVA 0x26e4
+        // Method begins at RVA 0x2738
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -1345,11 +1425,11 @@
 	IL_0028:  ret 
     } // end of method ZipFileSetCollection::AddRange
 
-    // method line 52
+    // method line 54
     .method public hidebysig 
            instance default bool Contains (class NAnt.Compression.Types.ZipFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x271c
+        // Method begins at RVA 0x2770
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1366,11 +1446,11 @@
 	IL_0014:  ret 
     } // end of method ZipFileSetCollection::Contains
 
-    // method line 53
+    // method line 55
     .method public hidebysig 
            instance default void CopyTo (class NAnt.Compression.Types.ZipFileSet[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x273d
+        // Method begins at RVA 0x2791
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1382,11 +1462,11 @@
 	IL_000e:  ret 
     } // end of method ZipFileSetCollection::CopyTo
 
-    // method line 54
+    // method line 56
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.Compression.Types.ZipFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x2750
+        // Method begins at RVA 0x27a4
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1403,11 +1483,11 @@
 	IL_0014:  ret 
     } // end of method ZipFileSetCollection::IndexOf
 
-    // method line 55
+    // method line 57
     .method public hidebysig 
            instance default void Insert (int32 index, class NAnt.Compression.Types.ZipFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x2771
+        // Method begins at RVA 0x27c5
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1419,11 +1499,11 @@
 	IL_000e:  ret 
     } // end of method ZipFileSetCollection::Insert
 
-    // method line 56
+    // method line 58
     .method public hidebysig 
            instance default class NAnt.Compression.Types.ZipFileSetEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x2784
+        // Method begins at RVA 0x27d8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1438,11 +1518,11 @@
 	IL_000e:  ret 
     } // end of method ZipFileSetCollection::GetEnumerator
 
-    // method line 57
+    // method line 59
     .method public hidebysig 
            instance default void Remove (class NAnt.Compression.Types.ZipFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x279f
+        // Method begins at RVA 0x27f3
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1472,11 +1552,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 58
+    // method line 60
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.Compression.Types.ZipFileSetCollection ZipFileSets)  cil managed 
     {
-        // Method begins at RVA 0x27b0
+        // Method begins at RVA 0x2804
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -1493,11 +1573,11 @@
 	IL_0015:  ret 
     } // end of method ZipFileSetEnumerator::.ctor
 
-    // method line 59
+    // method line 61
     .method public hidebysig specialname 
            instance default class NAnt.Compression.Types.ZipFileSet get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x27d4
+        // Method begins at RVA 0x2828
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -1514,11 +1594,11 @@
 	IL_0018:  ret 
     } // end of method ZipFileSetEnumerator::get_Current
 
-    // method line 60
+    // method line 62
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x27fc
+        // Method begins at RVA 0x2850
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -1535,11 +1615,11 @@
 	IL_0013:  ret 
     } // end of method ZipFileSetEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 61
+    // method line 63
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x281c
+        // Method begins at RVA 0x2870
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -1555,11 +1635,11 @@
 	IL_0013:  ret 
     } // end of method ZipFileSetEnumerator::MoveNext
 
-    // method line 62
+    // method line 64
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x283c
+        // Method begins at RVA 0x2890
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -1576,11 +1656,11 @@
 	IL_0013:  ret 
     } // end of method ZipFileSetEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 63
+    // method line 65
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x285c
+        // Method begins at RVA 0x28b0
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1590,11 +1670,11 @@
 	IL_000c:  ret 
     } // end of method ZipFileSetEnumerator::Reset
 
-    // method line 64
+    // method line 66
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x286a
+        // Method begins at RVA 0x28be
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
@@ -1616,628 +1696,232 @@
   } // end of class NAnt.Compression.Types.ZipFileSetEnumerator
 }
 
-.namespace NAnt.Compression.Types
-{
-  .class public auto ansi sealed DuplicateHandling
-  	extends [mscorlib]System.Enum
-  {
-    .custom instance void class [System]System.ComponentModel.TypeConverterAttribute::'.ctor'(class [mscorlib]System.Type) =  (
-		01 00 31 4E 41 6E 74 2E 43 6F 6D 70 72 65 73 73   // ..1NAnt.Compress
-		69 6F 6E 2E 54 79 70 65 73 2E 44 75 70 6C 69 63   // ion.Types.Duplic
-		61 74 65 48 61 6E 64 6C 69 6E 67 43 6F 6E 76 65   // ateHandlingConve
-		72 74 65 72 00 00                               ) // rter..
-
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Compression.Types.DuplicateHandling Add = int32(0x00000000)
-    .field public static literal  valuetype NAnt.Compression.Types.DuplicateHandling Preserve = int32(0x00000001)
-    .field public static literal  valuetype NAnt.Compression.Types.DuplicateHandling Fail = int32(0x00000002)
-
-  } // end of class NAnt.Compression.Types.DuplicateHandling
-}
-
-.namespace NAnt.Compression.Types
-{
-  .class private auto ansi beforefieldinit DuplicateHandlingConverter
-  	extends [System]System.ComponentModel.EnumConverter
-  {
-
-    // method line 65
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2878
-	// Code size 18 (0x12)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldtoken NAnt.Compression.Types.DuplicateHandling
-	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000b:  call instance void class [System]System.ComponentModel.EnumConverter::'.ctor'(class [mscorlib]System.Type)
-	IL_0010:  nop 
-	IL_0011:  ret 
-    } // end of method DuplicateHandlingConverter::.ctor
-
-    // method line 66
-    .method public virtual hidebysig 
-           instance default object ConvertFrom (class [System]System.ComponentModel.ITypeDescriptorContext context, class [mscorlib]System.Globalization.CultureInfo culture, object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x288c
-	// Code size 50 (0x32)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		object	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.3 
-	IL_0002:  isinst [mscorlib]System.String
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  brfalse IL_0021
-
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance class [mscorlib]System.Type class [System]System.ComponentModel.EnumConverter::get_EnumType()
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	IL_001b:  stloc.1 
-	IL_001c:  br IL_0030
-
-	IL_0021:  ldarg.0 
-	IL_0022:  ldarg.1 
-	IL_0023:  ldarg.2 
-	IL_0024:  ldarg.3 
-	IL_0025:  call instance object class [System]System.ComponentModel.EnumConverter::ConvertFrom(class [System]System.ComponentModel.ITypeDescriptorContext, class [mscorlib]System.Globalization.CultureInfo, object)
-	IL_002a:  stloc.1 
-	IL_002b:  br IL_0030
-
-	IL_0030:  ldloc.1 
-	IL_0031:  ret 
-    } // end of method DuplicateHandlingConverter::ConvertFrom
-
-  } // end of class NAnt.Compression.Types.DuplicateHandlingConverter
-}
-
 .namespace NAnt.Compression.Tasks
 {
-  .class public auto ansi beforefieldinit GUnzip
+  .class public auto ansi beforefieldinit TarTask
   	extends [NAnt.Core]NAnt.Core.Task
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 67 75 6E 7A 69 70 00 00 ) // ...gunzip..
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 74 61 72 00 00 ) // ...tar..
 
-    .field  private  class [mscorlib]System.IO.FileInfo _srcFile
     .field  private  class [mscorlib]System.IO.FileInfo _destFile
-
-    // method line 67
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x28ca
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
-	IL_0006:  ret 
-    } // end of method GUnzip::.ctor
-
-    // method line 68
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_SrcFile ()  cil managed 
-    {
-        // Method begins at RVA 0x28d4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.GUnzip::_srcFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method GUnzip::get_SrcFile
-
-    // method line 69
-    .method public hidebysig specialname 
-           instance default void set_SrcFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x28ef
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.GUnzip::_srcFile
-	IL_0008:  ret 
-    } // end of method GUnzip::set_SrcFile
-
-    // method line 70
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_DestFile ()  cil managed 
-    {
-        // Method begins at RVA 0x28fc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.GUnzip::_destFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method GUnzip::get_DestFile
-
-    // method line 71
-    .method public hidebysig specialname 
-           instance default void set_DestFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2917
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.GUnzip::_destFile
-	IL_0008:  ret 
-    } // end of method GUnzip::set_DestFile
-
-    // method line 72
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x2924
-    } // end of method GUnzip::ExecuteTask
-
-	.property instance class [mscorlib]System.IO.FileInfo SrcFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 03 73 72 63 01 00 54 02 08 52 65 71 75 69   // ...src..T..Requi
-		72 65 64 01                                     ) // red.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.GUnzip::get_SrcFile () 
-		.set instance default void NAnt.Compression.Tasks.GUnzip::set_SrcFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo DestFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 64 65 73 74 01 00 54 02 08 52 65 71 75   // ...dest..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.GUnzip::get_DestFile () 
-		.set instance default void NAnt.Compression.Tasks.GUnzip::set_DestFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-  } // end of class NAnt.Compression.Tasks.GUnzip
-}
-
-.namespace NAnt.Compression.Tasks
-{
-  .class public auto ansi beforefieldinit ZipTask
-  	extends [NAnt.Core]NAnt.Core.Task
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 7A 69 70 00 00 ) // ...zip..
-
-    .field  private  class [mscorlib]System.IO.FileInfo _zipfile
-    .field  private  int32 _ziplevel
-    .field  private  class NAnt.Compression.Types.ZipFileSetCollection _filesets
-    .field  private  valuetype [mscorlib]System.DateTime _stampDateTime
-    .field  private  string _comment
-    .field  private  bool _includeEmptyDirs
+    .field  private  class NAnt.Compression.Types.TarFileSetCollection _filesets
     .field  private  bool _flatten
-    .field  private  valuetype NAnt.Compression.Types.DuplicateHandling _duplicateHandling
-    .field  private  class [mscorlib]System.Text.Encoding _encoding
+    .field  private  bool _includeEmptyDirs
+    .field  private  valuetype NAnt.Compression.Types.TarCompressionMethod _compressionMethod
     .field  private  class [mscorlib]System.Collections.Hashtable _addedDirs
-    .field  private  class [mscorlib]System.Collections.Hashtable _fileEntries
 
-    // method line 73
+    // method line 67
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2aa4
-	// Code size 54 (0x36)
+        // Method begins at RVA 0x28cc
+	// Code size 50 (0x32)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.6 
-	IL_0002:  stfld int32 NAnt.Compression.Tasks.ZipTask::_ziplevel
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class NAnt.Compression.Types.ZipFileSetCollection::'.ctor'()
-	IL_000d:  stfld class NAnt.Compression.Types.ZipFileSetCollection NAnt.Compression.Tasks.ZipTask::_filesets
+	IL_0001:  newobj instance void class NAnt.Compression.Types.TarFileSetCollection::'.ctor'()
+	IL_0006:  stfld class NAnt.Compression.Types.TarFileSetCollection NAnt.Compression.Tasks.TarTask::_filesets
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4.0 
+	IL_000d:  stfld bool NAnt.Compression.Tasks.TarTask::_flatten
 	IL_0012:  ldarg.0 
 	IL_0013:  ldc.i4.0 
-	IL_0014:  stfld valuetype NAnt.Compression.Types.DuplicateHandling NAnt.Compression.Tasks.ZipTask::_duplicateHandling
+	IL_0014:  stfld bool NAnt.Compression.Tasks.TarTask::_includeEmptyDirs
 	IL_0019:  ldarg.0 
-	IL_001a:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_001f:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Compression.Tasks.ZipTask::_addedDirs
-	IL_0024:  ldarg.0 
-	IL_0025:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_002a:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Compression.Tasks.ZipTask::_fileEntries
-	IL_002f:  ldarg.0 
-	IL_0030:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
-	IL_0035:  ret 
-    } // end of method ZipTask::.ctor
+	IL_001a:  ldc.i4.0 
+	IL_001b:  stfld valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.TarTask::_compressionMethod
+	IL_0020:  ldarg.0 
+	IL_0021:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0026:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Compression.Tasks.TarTask::_addedDirs
+	IL_002b:  ldarg.0 
+	IL_002c:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
+	IL_0031:  ret 
+    } // end of method TarTask::.ctor
 
-    // method line 74
+    // method line 68
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_ZipFile ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_DestFile ()  cil managed 
     {
-        // Method begins at RVA 0x2adc
+        // Method begins at RVA 0x2900
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.ZipTask::_zipfile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ZipTask::get_ZipFile
-
-    // method line 75
-    .method public hidebysig specialname 
-           instance default void set_ZipFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2af7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.ZipTask::_zipfile
-	IL_0008:  ret 
-    } // end of method ZipTask::set_ZipFile
-
-    // method line 76
-    .method public hidebysig specialname 
-           instance default string get_Comment ()  cil managed 
-    {
-        // Method begins at RVA 0x2b04
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Compression.Tasks.ZipTask::_comment
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ZipTask::get_Comment
-
-    // method line 77
-    .method public hidebysig specialname 
-           instance default void set_Comment (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2b1f
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Compression.Tasks.ZipTask::_comment
-	IL_000d:  ret 
-    } // end of method ZipTask::set_Comment
-
-    // method line 78
-    .method public hidebysig specialname 
-           instance default valuetype [mscorlib]System.DateTime get_Stamp ()  cil managed 
-    {
-        // Method begins at RVA 0x2b30
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype [mscorlib]System.DateTime NAnt.Compression.Tasks.ZipTask::_stampDateTime
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ZipTask::get_Stamp
-
-    // method line 79
-    .method public hidebysig specialname 
-           instance default void set_Stamp (valuetype [mscorlib]System.DateTime 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2b4b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype [mscorlib]System.DateTime NAnt.Compression.Tasks.ZipTask::_stampDateTime
-	IL_0008:  ret 
-    } // end of method ZipTask::set_Stamp
-
-    // method line 80
-    .method public hidebysig specialname 
-           instance default int32 get_ZipLevel ()  cil managed 
-    {
-        // Method begins at RVA 0x2b58
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Compression.Tasks.ZipTask::_ziplevel
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.TarTask::_destFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ZipTask::get_ZipLevel
+    } // end of method TarTask::get_DestFile
 
-    // method line 81
+    // method line 69
     .method public hidebysig specialname 
-           instance default void set_ZipLevel (int32 'value')  cil managed 
+           instance default void set_DestFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b73
+        // Method begins at RVA 0x291b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Compression.Tasks.ZipTask::_ziplevel
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.TarTask::_destFile
 	IL_0008:  ret 
-    } // end of method ZipTask::set_ZipLevel
+    } // end of method TarTask::set_DestFile
 
-    // method line 82
+    // method line 70
     .method public hidebysig specialname 
            instance default bool get_IncludeEmptyDirs ()  cil managed 
     {
-        // Method begins at RVA 0x2b80
+        // Method begins at RVA 0x2928
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Compression.Tasks.ZipTask::_includeEmptyDirs
+	IL_0002:  ldfld bool NAnt.Compression.Tasks.TarTask::_includeEmptyDirs
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ZipTask::get_IncludeEmptyDirs
+    } // end of method TarTask::get_IncludeEmptyDirs
 
-    // method line 83
+    // method line 71
     .method public hidebysig specialname 
            instance default void set_IncludeEmptyDirs (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b9b
+        // Method begins at RVA 0x2943
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Compression.Tasks.ZipTask::_includeEmptyDirs
+	IL_0003:  stfld bool NAnt.Compression.Tasks.TarTask::_includeEmptyDirs
 	IL_0008:  ret 
-    } // end of method ZipTask::set_IncludeEmptyDirs
+    } // end of method TarTask::set_IncludeEmptyDirs
 
-    // method line 84
+    // method line 72
     .method public virtual hidebysig newslot specialname 
            instance default bool get_Flatten ()  cil managed 
     {
-        // Method begins at RVA 0x2ba8
+        // Method begins at RVA 0x2950
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Compression.Tasks.ZipTask::_flatten
+	IL_0002:  ldfld bool NAnt.Compression.Tasks.TarTask::_flatten
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ZipTask::get_Flatten
+    } // end of method TarTask::get_Flatten
 
-    // method line 85
+    // method line 73
     .method public virtual hidebysig newslot specialname 
            instance default void set_Flatten (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2bc3
+        // Method begins at RVA 0x296b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Compression.Tasks.ZipTask::_flatten
+	IL_0003:  stfld bool NAnt.Compression.Tasks.TarTask::_flatten
 	IL_0008:  ret 
-    } // end of method ZipTask::set_Flatten
+    } // end of method TarTask::set_Flatten
 
-    // method line 86
+    // method line 74
     .method public hidebysig specialname 
-           instance default class NAnt.Compression.Types.ZipFileSetCollection get_ZipFileSets ()  cil managed 
+           instance default class NAnt.Compression.Types.TarFileSetCollection get_TarFileSets ()  cil managed 
     {
-        // Method begins at RVA 0x2bd0
+        // Method begins at RVA 0x2978
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Compression.Types.ZipFileSetCollection	V_0)
+		class NAnt.Compression.Types.TarFileSetCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Compression.Types.ZipFileSetCollection NAnt.Compression.Tasks.ZipTask::_filesets
+	IL_0002:  ldfld class NAnt.Compression.Types.TarFileSetCollection NAnt.Compression.Tasks.TarTask::_filesets
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ZipTask::get_ZipFileSets
-
-    // method line 87
-    .method public hidebysig specialname 
-           instance default void set_ZipFileSets (class NAnt.Compression.Types.ZipFileSetCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2beb
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Compression.Types.ZipFileSetCollection NAnt.Compression.Tasks.ZipTask::_filesets
-	IL_0008:  ret 
-    } // end of method ZipTask::set_ZipFileSets
+    } // end of method TarTask::get_TarFileSets
 
-    // method line 88
+    // method line 75
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Compression.Types.DuplicateHandling get_DuplicateHandling ()  cil managed 
+           instance default valuetype NAnt.Compression.Types.TarCompressionMethod get_CompressionMethod ()  cil managed 
     {
-        // Method begins at RVA 0x2bf8
+        // Method begins at RVA 0x2994
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Compression.Types.DuplicateHandling	V_0)
+		valuetype NAnt.Compression.Types.TarCompressionMethod	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Compression.Types.DuplicateHandling NAnt.Compression.Tasks.ZipTask::_duplicateHandling
+	IL_0002:  ldfld valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.TarTask::_compressionMethod
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ZipTask::get_DuplicateHandling
-
-    // method line 89
-    .method public hidebysig specialname 
-           instance default void set_DuplicateHandling (valuetype NAnt.Compression.Types.DuplicateHandling 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2c13
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.Compression.Types.DuplicateHandling NAnt.Compression.Tasks.ZipTask::_duplicateHandling
-	IL_0008:  ret 
-    } // end of method ZipTask::set_DuplicateHandling
-
-    // method line 90
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
-    {
-        // Method begins at RVA 0x2c20
-	// Code size 54 (0x36)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Text.Encoding	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.ZipTask::_encoding
-	IL_0007:  brtrue IL_0028
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_CurrentCulture()
-	IL_0013:  callvirt instance class [mscorlib]System.Globalization.TextInfo class [mscorlib]System.Globalization.CultureInfo::get_TextInfo()
-	IL_0018:  callvirt instance int32 class [mscorlib]System.Globalization.TextInfo::get_OEMCodePage()
-	IL_001d:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::GetEncoding(int32)
-	IL_0022:  stfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.ZipTask::_encoding
-	IL_0027:  nop 
-	IL_0028:  ldarg.0 
-	IL_0029:  ldfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.ZipTask::_encoding
-	IL_002e:  stloc.0 
-	IL_002f:  br IL_0034
-
-	IL_0034:  ldloc.0 
-	IL_0035:  ret 
-    } // end of method ZipTask::get_Encoding
+    } // end of method TarTask::get_CompressionMethod
 
-    // method line 91
+    // method line 76
     .method public hidebysig specialname 
-           instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+           instance default void set_CompressionMethod (valuetype NAnt.Compression.Types.TarCompressionMethod 'value')  cil managed 
     {
-        // Method begins at RVA 0x2c62
+        // Method begins at RVA 0x29af
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.ZipTask::_encoding
+	IL_0003:  stfld valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.TarTask::_compressionMethod
 	IL_0008:  ret 
-    } // end of method ZipTask::set_Encoding
+    } // end of method TarTask::set_CompressionMethod
 
-    // method line 92
+    // method line 77
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x2c6c
-    } // end of method ZipTask::ExecuteTask
+        // Method begins at RVA 0x29bc
+    } // end of method TarTask::ExecuteTask
 
-    // method line 93
+    // method line 78
     .method private hidebysig 
-           instance default void CleanUp ()  cil managed 
+           (null) cil managed 
     {
-        // Method begins at RVA 0x325c
-	// Code size 24 (0x18)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Compression.Tasks.ZipTask::_addedDirs
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Clear()
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Compression.Tasks.ZipTask::_fileEntries
-	IL_0012:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Clear()
-	IL_0017:  ret 
-    } // end of method ZipTask::CleanUp
-
-	.property instance class [mscorlib]System.IO.FileInfo ZipFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 7A 69 70 66 69 6C 65 01 00 54 02 08 52   // ...zipfile..T..R
-		65 71 75 69 72 65 64 01                         ) // equired.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.ZipTask::get_ZipFile () 
-		.set instance default void NAnt.Compression.Tasks.ZipTask::set_ZipFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string Comment ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 63 6F 6D 6D 65 6E 74 00 00 ) // ...comment..
+        // Method begins at RVA 0x2e98
+    } // end of method TarTask::<NULL METHOD SIGNATURE>
 
-		.get instance default string NAnt.Compression.Tasks.ZipTask::get_Comment () 
-		.set instance default void NAnt.Compression.Tasks.ZipTask::set_Comment (string 'value') 
-	}
-	.property instance valuetype [mscorlib]System.DateTime Stamp ()
+	.property instance class [mscorlib]System.IO.FileInfo DestFile ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 73 74 61 6D 70 64 61 74 65 74 69 6D 65   // ...stampdatetime
-		00 00                                           ) // ..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.DateTimeValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default valuetype [mscorlib]System.DateTime NAnt.Compression.Tasks.ZipTask::get_Stamp () 
-		.set instance default void NAnt.Compression.Tasks.ZipTask::set_Stamp (valuetype [mscorlib]System.DateTime 'value') 
-	}
-	.property instance int32 ZipLevel ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 7A 69 70 6C 65 76 65 6C 00 00 ) // ...ziplevel..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 09 00 00 00 00 00 ) // ............
+		01 00 08 64 65 73 74 66 69 6C 65 01 00 54 02 08   // ...destfile..T..
+		52 65 71 75 69 72 65 64 01                      ) // Required.
 
-		.get instance default int32 NAnt.Compression.Tasks.ZipTask::get_ZipLevel () 
-		.set instance default void NAnt.Compression.Tasks.ZipTask::set_ZipLevel (int32 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.TarTask::get_DestFile () 
+		.set instance default void NAnt.Compression.Tasks.TarTask::set_DestFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
 	.property instance bool IncludeEmptyDirs ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
 		01 00 10 69 6E 63 6C 75 64 65 65 6D 70 74 79 64   // ...includeemptyd
-		69 72 73 00 00                                  ) // irs..
+		69 72 73 01 00 54 02 08 52 65 71 75 69 72 65 64   // irs..T..Required
+		00                                              ) // .
 
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Compression.Tasks.ZipTask::get_IncludeEmptyDirs () 
-		.set instance default void NAnt.Compression.Tasks.ZipTask::set_IncludeEmptyDirs (bool 'value') 
+		.get instance default bool NAnt.Compression.Tasks.TarTask::get_IncludeEmptyDirs () 
+		.set instance default void NAnt.Compression.Tasks.TarTask::set_IncludeEmptyDirs (bool 'value') 
 	}
 	.property instance bool Flatten ()
 	{
@@ -2245,31 +1929,24 @@
 
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Compression.Tasks.ZipTask::get_Flatten () 
-		.set instance default void NAnt.Compression.Tasks.ZipTask::set_Flatten (bool 'value') 
+		.get instance default bool NAnt.Compression.Tasks.TarTask::get_Flatten () 
+		.set instance default void NAnt.Compression.Tasks.TarTask::set_Flatten (bool 'value') 
 	}
-	.property instance class NAnt.Compression.Types.ZipFileSetCollection ZipFileSets ()
+	.property instance class NAnt.Compression.Types.TarFileSetCollection TarFileSets ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
 
-		.get instance default class NAnt.Compression.Types.ZipFileSetCollection NAnt.Compression.Tasks.ZipTask::get_ZipFileSets () 
-		.set instance default void NAnt.Compression.Tasks.ZipTask::set_ZipFileSets (class NAnt.Compression.Types.ZipFileSetCollection 'value') 
-	}
-	.property instance valuetype NAnt.Compression.Types.DuplicateHandling DuplicateHandling ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 64 75 70 6C 69 63 61 74 65 00 00 ) // ...duplicate..
-
-		.get instance default valuetype NAnt.Compression.Types.DuplicateHandling NAnt.Compression.Tasks.ZipTask::get_DuplicateHandling () 
-		.set instance default void NAnt.Compression.Tasks.ZipTask::set_DuplicateHandling (valuetype NAnt.Compression.Types.DuplicateHandling 'value') 
+		.get instance default class NAnt.Compression.Types.TarFileSetCollection NAnt.Compression.Tasks.TarTask::get_TarFileSets () 
 	}
-	.property instance class [mscorlib]System.Text.Encoding Encoding ()
+	.property instance valuetype NAnt.Compression.Types.TarCompressionMethod CompressionMethod ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 65 6E 63 6F 64 69 6E 67 00 00 ) // ...encoding..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 63 6F 6D 70 72 65 73 73 69 6F 6E 00 00 ) // ...compression..
 
-		.get instance default class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.ZipTask::get_Encoding () 
-		.set instance default void NAnt.Compression.Tasks.ZipTask::set_Encoding (class [mscorlib]System.Text.Encoding 'value') 
+		.get instance default valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.TarTask::get_CompressionMethod () 
+		.set instance default void NAnt.Compression.Tasks.TarTask::set_CompressionMethod (valuetype NAnt.Compression.Types.TarCompressionMethod 'value') 
 	}
-  } // end of class NAnt.Compression.Tasks.ZipTask
+  } // end of class NAnt.Compression.Tasks.TarTask
 }
 
 .namespace NAnt.Compression.Tasks
@@ -2279,11 +1956,11 @@
   {
     .field  private  bool _overwrite
 
-    // method line 94
+    // method line 79
     .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3275
+        // Method begins at RVA 0x2f1a
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2294,11 +1971,11 @@
 	IL_000d:  ret 
     } // end of method ExpandBaseTask::.ctor
 
-    // method line 95
+    // method line 80
     .method public virtual hidebysig newslot specialname 
            instance default bool get_Overwrite ()  cil managed 
     {
-        // Method begins at RVA 0x3284
+        // Method begins at RVA 0x2f2c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2313,11 +1990,11 @@
 	IL_000e:  ret 
     } // end of method ExpandBaseTask::get_Overwrite
 
-    // method line 96
+    // method line 81
     .method public virtual hidebysig newslot specialname 
            instance default void set_Overwrite (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x329f
+        // Method begins at RVA 0x2f47
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2327,11 +2004,11 @@
 	IL_0008:  ret 
     } // end of method ExpandBaseTask::set_Overwrite
 
-    // method line 97
+    // method line 82
     .method family hidebysig 
            instance default void ExtractFile (class [mscorlib]System.IO.Stream inputStream, string destDirectory, string entryName, valuetype [mscorlib]System.DateTime entryDate, int64 entrySize)  cil managed 
     {
-        // Method begins at RVA 0x32ac
+        // Method begins at RVA 0x2f54
 	// Code size 369 (0x171)
 	.maxstack 7
 	.locals init (
@@ -2503,11 +2180,11 @@
 	IL_0170:  ret 
     } // end of method ExpandBaseTask::ExtractFile
 
-    // method line 98
+    // method line 83
     .method family hidebysig 
            instance default void ExtractDirectory (class [mscorlib]System.IO.Stream inputStream, string destDirectory, string entryName, valuetype [mscorlib]System.DateTime entryDate)  cil managed 
     {
-        // Method begins at RVA 0x3454
+        // Method begins at RVA 0x30fc
 	// Code size 91 (0x5b)
 	.maxstack 3
 	.locals init (
@@ -2569,75 +2246,72 @@
 
 .namespace NAnt.Compression.Tasks
 {
-  .class public auto ansi beforefieldinit UnTarTask
+  .class public auto ansi beforefieldinit UnZipTask
   	extends NAnt.Compression.Tasks.ExpandBaseTask
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 75 6E 74 61 72 00 00 ) // ...untar..
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 75 6E 7A 69 70 00 00 ) // ...unzip..
 
-    .field  private  class [mscorlib]System.IO.FileInfo _srcFile
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _destDir
-    .field  private  valuetype NAnt.Compression.Types.TarCompressionMethod _compressionMethod
+    .field  private  class [mscorlib]System.IO.FileInfo _zipfile
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _toDir
+    .field  private  class [mscorlib]System.Text.Encoding _encoding
 
-    // method line 99
+    // method line 84
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x34cc
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x3174
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.UnTarTask::_compressionMethod
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Compression.Tasks.ExpandBaseTask::'.ctor'()
-	IL_000d:  ret 
-    } // end of method UnTarTask::.ctor
+	IL_0001:  call instance void class NAnt.Compression.Tasks.ExpandBaseTask::'.ctor'()
+	IL_0006:  ret 
+    } // end of method UnZipTask::.ctor
 
-    // method line 100
+    // method line 85
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_SrcFile ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_ZipFile ()  cil managed 
     {
-        // Method begins at RVA 0x34dc
+        // Method begins at RVA 0x317c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.UnTarTask::_srcFile
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.UnZipTask::_zipfile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method UnTarTask::get_SrcFile
+    } // end of method UnZipTask::get_ZipFile
 
-    // method line 101
+    // method line 86
     .method public hidebysig specialname 
-           instance default void set_SrcFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_ZipFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x34f7
+        // Method begins at RVA 0x3197
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.UnTarTask::_srcFile
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.UnZipTask::_zipfile
 	IL_0008:  ret 
-    } // end of method UnTarTask::set_SrcFile
+    } // end of method UnZipTask::set_ZipFile
 
-    // method line 102
+    // method line 87
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_DestinationDirectory ()  cil managed 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x3504
+        // Method begins at RVA 0x31a4
 	// Code size 48 (0x30)
 	.maxstack 2
 	.locals init (
 		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnTarTask::_destDir
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnZipTask::_toDir
 	IL_0007:  brtrue IL_0022
 
 	IL_000c:  ldarg.0 
@@ -2645,69 +2319,204 @@
 	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
 	IL_0013:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
 	IL_0018:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_001d:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnTarTask::_destDir
+	IL_001d:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnZipTask::_toDir
 	IL_0022:  ldarg.0 
-	IL_0023:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnTarTask::_destDir
+	IL_0023:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnZipTask::_toDir
 	IL_0028:  stloc.0 
 	IL_0029:  br IL_002e
 
 	IL_002e:  ldloc.0 
 	IL_002f:  ret 
-    } // end of method UnTarTask::get_DestinationDirectory
+    } // end of method UnZipTask::get_ToDirectory
 
-    // method line 103
+    // method line 88
     .method public hidebysig specialname 
-           instance default void set_DestinationDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+           instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3540
+        // Method begins at RVA 0x31e0
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnTarTask::_destDir
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnZipTask::_toDir
 	IL_0008:  ret 
-    } // end of method UnTarTask::set_DestinationDirectory
+    } // end of method UnZipTask::set_ToDirectory
 
-    // method line 104
+    // method line 89
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Compression.Types.TarCompressionMethod get_CompressionMethod ()  cil managed 
+           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
+    {
+        // Method begins at RVA 0x31ec
+	// Code size 54 (0x36)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Text.Encoding	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.UnZipTask::_encoding
+	IL_0007:  brtrue IL_0028
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_CurrentCulture()
+	IL_0013:  callvirt instance class [mscorlib]System.Globalization.TextInfo class [mscorlib]System.Globalization.CultureInfo::get_TextInfo()
+	IL_0018:  callvirt instance int32 class [mscorlib]System.Globalization.TextInfo::get_OEMCodePage()
+	IL_001d:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::GetEncoding(int32)
+	IL_0022:  stfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.UnZipTask::_encoding
+	IL_0027:  nop 
+	IL_0028:  ldarg.0 
+	IL_0029:  ldfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.UnZipTask::_encoding
+	IL_002e:  stloc.0 
+	IL_002f:  br IL_0034
+
+	IL_0034:  ldloc.0 
+	IL_0035:  ret 
+    } // end of method UnZipTask::get_Encoding
+
+    // method line 90
+    .method public hidebysig specialname 
+           instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+    {
+        // Method begins at RVA 0x322e
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.UnZipTask::_encoding
+	IL_0008:  ret 
+    } // end of method UnZipTask::set_Encoding
+
+    // method line 91
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x3238
+    } // end of method UnZipTask::ExecuteTask
+
+	.property instance class [mscorlib]System.IO.FileInfo ZipFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 7A 69 70 66 69 6C 65 01 00 54 02 08 52   // ...zipfile..T..R
+		65 71 75 69 72 65 64 01                         ) // equired.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.UnZipTask::get_ZipFile () 
+		.set instance default void NAnt.Compression.Tasks.UnZipTask::set_ZipFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo ToDirectory ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 05 74 6F 64 69 72 01 00 54 02 08 52 65 71   // ...todir..T..Req
+		75 69 72 65 64 00                               ) // uired.
+
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnZipTask::get_ToDirectory () 
+		.set instance default void NAnt.Compression.Tasks.UnZipTask::set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
+	}
+	.property instance class [mscorlib]System.Text.Encoding Encoding ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 65 6E 63 6F 64 69 6E 67 00 00 ) // ...encoding..
+
+		.get instance default class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.UnZipTask::get_Encoding () 
+		.set instance default void NAnt.Compression.Tasks.UnZipTask::set_Encoding (class [mscorlib]System.Text.Encoding 'value') 
+	}
+  } // end of class NAnt.Compression.Tasks.UnZipTask
+}
+
+.namespace NAnt.Compression.Tasks
+{
+  .class public auto ansi beforefieldinit GUnzip
+  	extends [NAnt.Core]NAnt.Core.Task
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 67 75 6E 7A 69 70 00 00 ) // ...gunzip..
+
+    .field  private  class [mscorlib]System.IO.FileInfo _srcFile
+    .field  private  class [mscorlib]System.IO.FileInfo _destFile
+
+    // method line 92
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x3404
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
+	IL_0006:  ret 
+    } // end of method GUnzip::.ctor
+
+    // method line 93
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_SrcFile ()  cil managed 
     {
-        // Method begins at RVA 0x354c
+        // Method begins at RVA 0x340c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Compression.Types.TarCompressionMethod	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.UnTarTask::_compressionMethod
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.GUnzip::_srcFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method UnTarTask::get_CompressionMethod
+    } // end of method GUnzip::get_SrcFile
 
-    // method line 105
+    // method line 94
     .method public hidebysig specialname 
-           instance default void set_CompressionMethod (valuetype NAnt.Compression.Types.TarCompressionMethod 'value')  cil managed 
+           instance default void set_SrcFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3567
+        // Method begins at RVA 0x3427
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.UnTarTask::_compressionMethod
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.GUnzip::_srcFile
 	IL_0008:  ret 
-    } // end of method UnTarTask::set_CompressionMethod
+    } // end of method GUnzip::set_SrcFile
 
-    // method line 106
+    // method line 95
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_DestFile ()  cil managed 
+    {
+        // Method begins at RVA 0x3434
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.GUnzip::_destFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method GUnzip::get_DestFile
+
+    // method line 96
+    .method public hidebysig specialname 
+           instance default void set_DestFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x344f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.GUnzip::_destFile
+	IL_0008:  ret 
+    } // end of method GUnzip::set_DestFile
+
+    // method line 97
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x3574
-    } // end of method UnTarTask::ExecuteTask
+        // Method begins at RVA 0x345c
+    } // end of method GUnzip::ExecuteTask
 
 	.property instance class [mscorlib]System.IO.FileInfo SrcFile ()
 	{
@@ -2715,255 +2524,447 @@
 		01 00 03 73 72 63 01 00 54 02 08 52 65 71 75 69   // ...src..T..Requi
 		72 65 64 01                                     ) // red.
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.UnTarTask::get_SrcFile () 
-		.set instance default void NAnt.Compression.Tasks.UnTarTask::set_SrcFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.GUnzip::get_SrcFile () 
+		.set instance default void NAnt.Compression.Tasks.GUnzip::set_SrcFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo DestinationDirectory ()
+	.property instance class [mscorlib]System.IO.FileInfo DestFile ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
 		01 00 04 64 65 73 74 01 00 54 02 08 52 65 71 75   // ...dest..T..Requ
-		69 72 65 64 00                                  ) // ired.
-
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnTarTask::get_DestinationDirectory () 
-		.set instance default void NAnt.Compression.Tasks.UnTarTask::set_DestinationDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance valuetype NAnt.Compression.Types.TarCompressionMethod CompressionMethod ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 63 6F 6D 70 72 65 73 73 69 6F 6E 00 00 ) // ...compression..
+		69 72 65 64 01                                  ) // ired.
 
-		.get instance default valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.UnTarTask::get_CompressionMethod () 
-		.set instance default void NAnt.Compression.Tasks.UnTarTask::set_CompressionMethod (valuetype NAnt.Compression.Types.TarCompressionMethod 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.GUnzip::get_DestFile () 
+		.set instance default void NAnt.Compression.Tasks.GUnzip::set_DestFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-  } // end of class NAnt.Compression.Tasks.UnTarTask
+  } // end of class NAnt.Compression.Tasks.GUnzip
 }
 
 .namespace NAnt.Compression.Tasks
 {
-  .class public auto ansi beforefieldinit TarTask
+  .class public auto ansi beforefieldinit ZipTask
   	extends [NAnt.Core]NAnt.Core.Task
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 74 61 72 00 00 ) // ...tar..
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 7A 69 70 00 00 ) // ...zip..
 
-    .field  private  class [mscorlib]System.IO.FileInfo _destFile
-    .field  private  class NAnt.Compression.Types.TarFileSetCollection _filesets
-    .field  private  bool _flatten
+    .field  private  class [mscorlib]System.IO.FileInfo _zipfile
+    .field  private  int32 _ziplevel
+    .field  private  class NAnt.Compression.Types.ZipFileSetCollection _filesets
+    .field  private  valuetype [mscorlib]System.DateTime _stampDateTime
+    .field  private  string _comment
     .field  private  bool _includeEmptyDirs
-    .field  private  valuetype NAnt.Compression.Types.TarCompressionMethod _compressionMethod
+    .field  private  bool _flatten
+    .field  private  valuetype NAnt.Compression.Types.DuplicateHandling _duplicateHandling
+    .field  private  class [mscorlib]System.Text.Encoding _encoding
     .field  private  class [mscorlib]System.Collections.Hashtable _addedDirs
+    .field  private  class [mscorlib]System.Collections.Hashtable _fileEntries
 
-    // method line 107
+    // method line 98
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3820
-	// Code size 50 (0x32)
+        // Method begins at RVA 0x35dc
+	// Code size 54 (0x36)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Compression.Types.TarFileSetCollection::'.ctor'()
-	IL_0006:  stfld class NAnt.Compression.Types.TarFileSetCollection NAnt.Compression.Tasks.TarTask::_filesets
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.0 
-	IL_000d:  stfld bool NAnt.Compression.Tasks.TarTask::_flatten
+	IL_0001:  ldc.i4.6 
+	IL_0002:  stfld int32 NAnt.Compression.Tasks.ZipTask::_ziplevel
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class NAnt.Compression.Types.ZipFileSetCollection::'.ctor'()
+	IL_000d:  stfld class NAnt.Compression.Types.ZipFileSetCollection NAnt.Compression.Tasks.ZipTask::_filesets
 	IL_0012:  ldarg.0 
 	IL_0013:  ldc.i4.0 
-	IL_0014:  stfld bool NAnt.Compression.Tasks.TarTask::_includeEmptyDirs
+	IL_0014:  stfld valuetype NAnt.Compression.Types.DuplicateHandling NAnt.Compression.Tasks.ZipTask::_duplicateHandling
 	IL_0019:  ldarg.0 
-	IL_001a:  ldc.i4.0 
-	IL_001b:  stfld valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.TarTask::_compressionMethod
-	IL_0020:  ldarg.0 
-	IL_0021:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0026:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Compression.Tasks.TarTask::_addedDirs
-	IL_002b:  ldarg.0 
-	IL_002c:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
-	IL_0031:  ret 
-    } // end of method TarTask::.ctor
+	IL_001a:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_001f:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Compression.Tasks.ZipTask::_addedDirs
+	IL_0024:  ldarg.0 
+	IL_0025:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_002a:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Compression.Tasks.ZipTask::_fileEntries
+	IL_002f:  ldarg.0 
+	IL_0030:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
+	IL_0035:  ret 
+    } // end of method ZipTask::.ctor
 
-    // method line 108
+    // method line 99
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_DestFile ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_ZipFile ()  cil managed 
     {
-        // Method begins at RVA 0x3854
+        // Method begins at RVA 0x3614
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.TarTask::_destFile
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.ZipTask::_zipfile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TarTask::get_DestFile
+    } // end of method ZipTask::get_ZipFile
 
-    // method line 109
+    // method line 100
     .method public hidebysig specialname 
-           instance default void set_DestFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_ZipFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x386f
+        // Method begins at RVA 0x362f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.TarTask::_destFile
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.ZipTask::_zipfile
 	IL_0008:  ret 
-    } // end of method TarTask::set_DestFile
+    } // end of method ZipTask::set_ZipFile
 
-    // method line 110
+    // method line 101
+    .method public hidebysig specialname 
+           instance default string get_Comment ()  cil managed 
+    {
+        // Method begins at RVA 0x363c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Compression.Tasks.ZipTask::_comment
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ZipTask::get_Comment
+
+    // method line 102
+    .method public hidebysig specialname 
+           instance default void set_Comment (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3657
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Compression.Tasks.ZipTask::_comment
+	IL_000d:  ret 
+    } // end of method ZipTask::set_Comment
+
+    // method line 103
+    .method public hidebysig specialname 
+           instance default valuetype [mscorlib]System.DateTime get_Stamp ()  cil managed 
+    {
+        // Method begins at RVA 0x3668
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype [mscorlib]System.DateTime	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype [mscorlib]System.DateTime NAnt.Compression.Tasks.ZipTask::_stampDateTime
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ZipTask::get_Stamp
+
+    // method line 104
+    .method public hidebysig specialname 
+           instance default void set_Stamp (valuetype [mscorlib]System.DateTime 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3683
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld valuetype [mscorlib]System.DateTime NAnt.Compression.Tasks.ZipTask::_stampDateTime
+	IL_0008:  ret 
+    } // end of method ZipTask::set_Stamp
+
+    // method line 105
+    .method public hidebysig specialname 
+           instance default int32 get_ZipLevel ()  cil managed 
+    {
+        // Method begins at RVA 0x3690
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.Compression.Tasks.ZipTask::_ziplevel
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ZipTask::get_ZipLevel
+
+    // method line 106
+    .method public hidebysig specialname 
+           instance default void set_ZipLevel (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x36ab
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Compression.Tasks.ZipTask::_ziplevel
+	IL_0008:  ret 
+    } // end of method ZipTask::set_ZipLevel
+
+    // method line 107
     .method public hidebysig specialname 
            instance default bool get_IncludeEmptyDirs ()  cil managed 
     {
-        // Method begins at RVA 0x387c
+        // Method begins at RVA 0x36b8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Compression.Tasks.TarTask::_includeEmptyDirs
+	IL_0002:  ldfld bool NAnt.Compression.Tasks.ZipTask::_includeEmptyDirs
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TarTask::get_IncludeEmptyDirs
+    } // end of method ZipTask::get_IncludeEmptyDirs
 
-    // method line 111
+    // method line 108
     .method public hidebysig specialname 
            instance default void set_IncludeEmptyDirs (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x3897
+        // Method begins at RVA 0x36d3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Compression.Tasks.TarTask::_includeEmptyDirs
+	IL_0003:  stfld bool NAnt.Compression.Tasks.ZipTask::_includeEmptyDirs
 	IL_0008:  ret 
-    } // end of method TarTask::set_IncludeEmptyDirs
+    } // end of method ZipTask::set_IncludeEmptyDirs
 
-    // method line 112
+    // method line 109
     .method public virtual hidebysig newslot specialname 
            instance default bool get_Flatten ()  cil managed 
     {
-        // Method begins at RVA 0x38a4
+        // Method begins at RVA 0x36e0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Compression.Tasks.TarTask::_flatten
+	IL_0002:  ldfld bool NAnt.Compression.Tasks.ZipTask::_flatten
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TarTask::get_Flatten
+    } // end of method ZipTask::get_Flatten
 
-    // method line 113
+    // method line 110
     .method public virtual hidebysig newslot specialname 
            instance default void set_Flatten (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x38bf
+        // Method begins at RVA 0x36fb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Compression.Tasks.TarTask::_flatten
+	IL_0003:  stfld bool NAnt.Compression.Tasks.ZipTask::_flatten
 	IL_0008:  ret 
-    } // end of method TarTask::set_Flatten
+    } // end of method ZipTask::set_Flatten
 
-    // method line 114
+    // method line 111
     .method public hidebysig specialname 
-           instance default class NAnt.Compression.Types.TarFileSetCollection get_TarFileSets ()  cil managed 
+           instance default class NAnt.Compression.Types.ZipFileSetCollection get_ZipFileSets ()  cil managed 
     {
-        // Method begins at RVA 0x38cc
+        // Method begins at RVA 0x3708
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Compression.Types.TarFileSetCollection	V_0)
+		class NAnt.Compression.Types.ZipFileSetCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Compression.Types.TarFileSetCollection NAnt.Compression.Tasks.TarTask::_filesets
+	IL_0002:  ldfld class NAnt.Compression.Types.ZipFileSetCollection NAnt.Compression.Tasks.ZipTask::_filesets
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TarTask::get_TarFileSets
+    } // end of method ZipTask::get_ZipFileSets
 
-    // method line 115
+    // method line 112
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Compression.Types.TarCompressionMethod get_CompressionMethod ()  cil managed 
+           instance default void set_ZipFileSets (class NAnt.Compression.Types.ZipFileSetCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3723
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Compression.Types.ZipFileSetCollection NAnt.Compression.Tasks.ZipTask::_filesets
+	IL_0008:  ret 
+    } // end of method ZipTask::set_ZipFileSets
+
+    // method line 113
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Compression.Types.DuplicateHandling get_DuplicateHandling ()  cil managed 
     {
-        // Method begins at RVA 0x38e8
+        // Method begins at RVA 0x3730
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Compression.Types.TarCompressionMethod	V_0)
+		valuetype NAnt.Compression.Types.DuplicateHandling	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.TarTask::_compressionMethod
+	IL_0002:  ldfld valuetype NAnt.Compression.Types.DuplicateHandling NAnt.Compression.Tasks.ZipTask::_duplicateHandling
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TarTask::get_CompressionMethod
+    } // end of method ZipTask::get_DuplicateHandling
+
+    // method line 114
+    .method public hidebysig specialname 
+           instance default void set_DuplicateHandling (valuetype NAnt.Compression.Types.DuplicateHandling 'value')  cil managed 
+    {
+        // Method begins at RVA 0x374b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld valuetype NAnt.Compression.Types.DuplicateHandling NAnt.Compression.Tasks.ZipTask::_duplicateHandling
+	IL_0008:  ret 
+    } // end of method ZipTask::set_DuplicateHandling
+
+    // method line 115
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
+    {
+        // Method begins at RVA 0x3758
+	// Code size 54 (0x36)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Text.Encoding	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.ZipTask::_encoding
+	IL_0007:  brtrue IL_0028
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_CurrentCulture()
+	IL_0013:  callvirt instance class [mscorlib]System.Globalization.TextInfo class [mscorlib]System.Globalization.CultureInfo::get_TextInfo()
+	IL_0018:  callvirt instance int32 class [mscorlib]System.Globalization.TextInfo::get_OEMCodePage()
+	IL_001d:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::GetEncoding(int32)
+	IL_0022:  stfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.ZipTask::_encoding
+	IL_0027:  nop 
+	IL_0028:  ldarg.0 
+	IL_0029:  ldfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.ZipTask::_encoding
+	IL_002e:  stloc.0 
+	IL_002f:  br IL_0034
+
+	IL_0034:  ldloc.0 
+	IL_0035:  ret 
+    } // end of method ZipTask::get_Encoding
 
     // method line 116
     .method public hidebysig specialname 
-           instance default void set_CompressionMethod (valuetype NAnt.Compression.Types.TarCompressionMethod 'value')  cil managed 
+           instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
     {
-        // Method begins at RVA 0x3903
+        // Method begins at RVA 0x379a
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.TarTask::_compressionMethod
+	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.ZipTask::_encoding
 	IL_0008:  ret 
-    } // end of method TarTask::set_CompressionMethod
+    } // end of method ZipTask::set_Encoding
 
     // method line 117
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x3910
-    } // end of method TarTask::ExecuteTask
+        // Method begins at RVA 0x37a4
+    } // end of method ZipTask::ExecuteTask
 
     // method line 118
     .method private hidebysig 
-           (null) cil managed 
+           instance default void CleanUp ()  cil managed 
     {
-        // Method begins at RVA 0x3dec
-    } // end of method TarTask::<NULL METHOD SIGNATURE>
+        // Method begins at RVA 0x3d94
+	// Code size 24 (0x18)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Compression.Tasks.ZipTask::_addedDirs
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Clear()
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Compression.Tasks.ZipTask::_fileEntries
+	IL_0012:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Clear()
+	IL_0017:  ret 
+    } // end of method ZipTask::CleanUp
 
-	.property instance class [mscorlib]System.IO.FileInfo DestFile ()
+	.property instance class [mscorlib]System.IO.FileInfo ZipFile ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 64 65 73 74 66 69 6C 65 01 00 54 02 08   // ...destfile..T..
-		52 65 71 75 69 72 65 64 01                      ) // Required.
+		01 00 07 7A 69 70 66 69 6C 65 01 00 54 02 08 52   // ...zipfile..T..R
+		65 71 75 69 72 65 64 01                         ) // equired.
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.TarTask::get_DestFile () 
-		.set instance default void NAnt.Compression.Tasks.TarTask::set_DestFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.ZipTask::get_ZipFile () 
+		.set instance default void NAnt.Compression.Tasks.ZipTask::set_ZipFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string Comment ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 63 6F 6D 6D 65 6E 74 00 00 ) // ...comment..
+
+		.get instance default string NAnt.Compression.Tasks.ZipTask::get_Comment () 
+		.set instance default void NAnt.Compression.Tasks.ZipTask::set_Comment (string 'value') 
+	}
+	.property instance valuetype [mscorlib]System.DateTime Stamp ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 73 74 61 6D 70 64 61 74 65 74 69 6D 65   // ...stampdatetime
+		00 00                                           ) // ..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.DateTimeValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default valuetype [mscorlib]System.DateTime NAnt.Compression.Tasks.ZipTask::get_Stamp () 
+		.set instance default void NAnt.Compression.Tasks.ZipTask::set_Stamp (valuetype [mscorlib]System.DateTime 'value') 
+	}
+	.property instance int32 ZipLevel ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 7A 69 70 6C 65 76 65 6C 00 00 ) // ...ziplevel..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 09 00 00 00 00 00 ) // ............
+
+		.get instance default int32 NAnt.Compression.Tasks.ZipTask::get_ZipLevel () 
+		.set instance default void NAnt.Compression.Tasks.ZipTask::set_ZipLevel (int32 'value') 
 	}
 	.property instance bool IncludeEmptyDirs ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
 		01 00 10 69 6E 63 6C 75 64 65 65 6D 70 74 79 64   // ...includeemptyd
-		69 72 73 01 00 54 02 08 52 65 71 75 69 72 65 64   // irs..T..Required
-		00                                              ) // .
+		69 72 73 00 00                                  ) // irs..
 
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Compression.Tasks.TarTask::get_IncludeEmptyDirs () 
-		.set instance default void NAnt.Compression.Tasks.TarTask::set_IncludeEmptyDirs (bool 'value') 
+		.get instance default bool NAnt.Compression.Tasks.ZipTask::get_IncludeEmptyDirs () 
+		.set instance default void NAnt.Compression.Tasks.ZipTask::set_IncludeEmptyDirs (bool 'value') 
 	}
 	.property instance bool Flatten ()
 	{
@@ -2971,94 +2972,104 @@
 
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Compression.Tasks.TarTask::get_Flatten () 
-		.set instance default void NAnt.Compression.Tasks.TarTask::set_Flatten (bool 'value') 
+		.get instance default bool NAnt.Compression.Tasks.ZipTask::get_Flatten () 
+		.set instance default void NAnt.Compression.Tasks.ZipTask::set_Flatten (bool 'value') 
 	}
-	.property instance class NAnt.Compression.Types.TarFileSetCollection TarFileSets ()
+	.property instance class NAnt.Compression.Types.ZipFileSetCollection ZipFileSets ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
 
-		.get instance default class NAnt.Compression.Types.TarFileSetCollection NAnt.Compression.Tasks.TarTask::get_TarFileSets () 
+		.get instance default class NAnt.Compression.Types.ZipFileSetCollection NAnt.Compression.Tasks.ZipTask::get_ZipFileSets () 
+		.set instance default void NAnt.Compression.Tasks.ZipTask::set_ZipFileSets (class NAnt.Compression.Types.ZipFileSetCollection 'value') 
 	}
-	.property instance valuetype NAnt.Compression.Types.TarCompressionMethod CompressionMethod ()
+	.property instance valuetype NAnt.Compression.Types.DuplicateHandling DuplicateHandling ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 63 6F 6D 70 72 65 73 73 69 6F 6E 00 00 ) // ...compression..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 64 75 70 6C 69 63 61 74 65 00 00 ) // ...duplicate..
 
-		.get instance default valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.TarTask::get_CompressionMethod () 
-		.set instance default void NAnt.Compression.Tasks.TarTask::set_CompressionMethod (valuetype NAnt.Compression.Types.TarCompressionMethod 'value') 
+		.get instance default valuetype NAnt.Compression.Types.DuplicateHandling NAnt.Compression.Tasks.ZipTask::get_DuplicateHandling () 
+		.set instance default void NAnt.Compression.Tasks.ZipTask::set_DuplicateHandling (valuetype NAnt.Compression.Types.DuplicateHandling 'value') 
 	}
-  } // end of class NAnt.Compression.Tasks.TarTask
+	.property instance class [mscorlib]System.Text.Encoding Encoding ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 65 6E 63 6F 64 69 6E 67 00 00 ) // ...encoding..
+
+		.get instance default class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.ZipTask::get_Encoding () 
+		.set instance default void NAnt.Compression.Tasks.ZipTask::set_Encoding (class [mscorlib]System.Text.Encoding 'value') 
+	}
+  } // end of class NAnt.Compression.Tasks.ZipTask
 }
 
 .namespace NAnt.Compression.Tasks
 {
-  .class public auto ansi beforefieldinit UnZipTask
+  .class public auto ansi beforefieldinit UnTarTask
   	extends NAnt.Compression.Tasks.ExpandBaseTask
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 75 6E 7A 69 70 00 00 ) // ...unzip..
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 75 6E 74 61 72 00 00 ) // ...untar..
 
-    .field  private  class [mscorlib]System.IO.FileInfo _zipfile
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _toDir
-    .field  private  class [mscorlib]System.Text.Encoding _encoding
+    .field  private  class [mscorlib]System.IO.FileInfo _srcFile
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _destDir
+    .field  private  valuetype NAnt.Compression.Types.TarCompressionMethod _compressionMethod
 
     // method line 119
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3e6e
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x3dad
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Compression.Tasks.ExpandBaseTask::'.ctor'()
-	IL_0006:  ret 
-    } // end of method UnZipTask::.ctor
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.UnTarTask::_compressionMethod
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Compression.Tasks.ExpandBaseTask::'.ctor'()
+	IL_000d:  ret 
+    } // end of method UnTarTask::.ctor
 
     // method line 120
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_ZipFile ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_SrcFile ()  cil managed 
     {
-        // Method begins at RVA 0x3e78
+        // Method begins at RVA 0x3dbc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.UnZipTask::_zipfile
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.UnTarTask::_srcFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method UnZipTask::get_ZipFile
+    } // end of method UnTarTask::get_SrcFile
 
     // method line 121
     .method public hidebysig specialname 
-           instance default void set_ZipFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_SrcFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3e93
+        // Method begins at RVA 0x3dd7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.UnZipTask::_zipfile
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.UnTarTask::_srcFile
 	IL_0008:  ret 
-    } // end of method UnZipTask::set_ZipFile
+    } // end of method UnTarTask::set_SrcFile
 
     // method line 122
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_DestinationDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x3ea0
+        // Method begins at RVA 0x3de4
 	// Code size 48 (0x30)
 	.maxstack 2
 	.locals init (
 		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnZipTask::_toDir
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnTarTask::_destDir
 	IL_0007:  brtrue IL_0022
 
 	IL_000c:  ldarg.0 
@@ -3066,107 +3077,96 @@
 	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
 	IL_0013:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
 	IL_0018:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_001d:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnZipTask::_toDir
+	IL_001d:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnTarTask::_destDir
 	IL_0022:  ldarg.0 
-	IL_0023:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnZipTask::_toDir
+	IL_0023:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnTarTask::_destDir
 	IL_0028:  stloc.0 
 	IL_0029:  br IL_002e
 
 	IL_002e:  ldloc.0 
 	IL_002f:  ret 
-    } // end of method UnZipTask::get_ToDirectory
+    } // end of method UnTarTask::get_DestinationDirectory
 
     // method line 123
     .method public hidebysig specialname 
-           instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+           instance default void set_DestinationDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3edc
+        // Method begins at RVA 0x3e20
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnZipTask::_toDir
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnTarTask::_destDir
 	IL_0008:  ret 
-    } // end of method UnZipTask::set_ToDirectory
+    } // end of method UnTarTask::set_DestinationDirectory
 
     // method line 124
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
+           instance default valuetype NAnt.Compression.Types.TarCompressionMethod get_CompressionMethod ()  cil managed 
     {
-        // Method begins at RVA 0x3ee8
-	// Code size 54 (0x36)
-	.maxstack 2
+        // Method begins at RVA 0x3e2c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Text.Encoding	V_0)
+		valuetype NAnt.Compression.Types.TarCompressionMethod	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.UnZipTask::_encoding
-	IL_0007:  brtrue IL_0028
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_CurrentCulture()
-	IL_0013:  callvirt instance class [mscorlib]System.Globalization.TextInfo class [mscorlib]System.Globalization.CultureInfo::get_TextInfo()
-	IL_0018:  callvirt instance int32 class [mscorlib]System.Globalization.TextInfo::get_OEMCodePage()
-	IL_001d:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::GetEncoding(int32)
-	IL_0022:  stfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.UnZipTask::_encoding
-	IL_0027:  nop 
-	IL_0028:  ldarg.0 
-	IL_0029:  ldfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.UnZipTask::_encoding
-	IL_002e:  stloc.0 
-	IL_002f:  br IL_0034
+	IL_0002:  ldfld valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.UnTarTask::_compressionMethod
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0034:  ldloc.0 
-	IL_0035:  ret 
-    } // end of method UnZipTask::get_Encoding
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method UnTarTask::get_CompressionMethod
 
     // method line 125
     .method public hidebysig specialname 
-           instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+           instance default void set_CompressionMethod (valuetype NAnt.Compression.Types.TarCompressionMethod 'value')  cil managed 
     {
-        // Method begins at RVA 0x3f2a
+        // Method begins at RVA 0x3e47
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.UnZipTask::_encoding
+	IL_0003:  stfld valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.UnTarTask::_compressionMethod
 	IL_0008:  ret 
-    } // end of method UnZipTask::set_Encoding
+    } // end of method UnTarTask::set_CompressionMethod
 
     // method line 126
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x3f34
-    } // end of method UnZipTask::ExecuteTask
+        // Method begins at RVA 0x3e54
+    } // end of method UnTarTask::ExecuteTask
 
-	.property instance class [mscorlib]System.IO.FileInfo ZipFile ()
+	.property instance class [mscorlib]System.IO.FileInfo SrcFile ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 7A 69 70 66 69 6C 65 01 00 54 02 08 52   // ...zipfile..T..R
-		65 71 75 69 72 65 64 01                         ) // equired.
+		01 00 03 73 72 63 01 00 54 02 08 52 65 71 75 69   // ...src..T..Requi
+		72 65 64 01                                     ) // red.
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.UnZipTask::get_ZipFile () 
-		.set instance default void NAnt.Compression.Tasks.UnZipTask::set_ZipFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Compression.Tasks.UnTarTask::get_SrcFile () 
+		.set instance default void NAnt.Compression.Tasks.UnTarTask::set_SrcFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo ToDirectory ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo DestinationDirectory ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 05 74 6F 64 69 72 01 00 54 02 08 52 65 71   // ...todir..T..Req
-		75 69 72 65 64 00                               ) // uired.
+		01 00 04 64 65 73 74 01 00 54 02 08 52 65 71 75   // ...dest..T..Requ
+		69 72 65 64 00                                  ) // ired.
 
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnZipTask::get_ToDirectory () 
-		.set instance default void NAnt.Compression.Tasks.UnZipTask::set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Compression.Tasks.UnTarTask::get_DestinationDirectory () 
+		.set instance default void NAnt.Compression.Tasks.UnTarTask::set_DestinationDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
 	}
-	.property instance class [mscorlib]System.Text.Encoding Encoding ()
+	.property instance valuetype NAnt.Compression.Types.TarCompressionMethod CompressionMethod ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 65 6E 63 6F 64 69 6E 67 00 00 ) // ...encoding..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 63 6F 6D 70 72 65 73 73 69 6F 6E 00 00 ) // ...compression..
 
-		.get instance default class [mscorlib]System.Text.Encoding NAnt.Compression.Tasks.UnZipTask::get_Encoding () 
-		.set instance default void NAnt.Compression.Tasks.UnZipTask::set_Encoding (class [mscorlib]System.Text.Encoding 'value') 
+		.get instance default valuetype NAnt.Compression.Types.TarCompressionMethod NAnt.Compression.Tasks.UnTarTask::get_CompressionMethod () 
+		.set instance default void NAnt.Compression.Tasks.UnTarTask::set_CompressionMethod (valuetype NAnt.Compression.Types.TarCompressionMethod 'value') 
 	}
-  } // end of class NAnt.Compression.Tasks.UnZipTask
+  } // end of class NAnt.Compression.Tasks.UnTarTask
 }
 
/usr/share/NAnt/bin/NAnt.CompressionTasks.xml differs (XML 1.0 document, ASCII text)
--- old//usr/share/NAnt/bin/NAnt.CompressionTasks.xml	2018-06-14 00:00:00.000000000 +0000
+++ new//usr/share/NAnt/bin/NAnt.CompressionTasks.xml	2018-06-14 00:00:00.000000000 +0000
@@ -4,111 +4,6 @@
         <name>NAnt.CompressionTasks</name>
     </assembly>
     <members>
-        <member name="T:NAnt.Compression.Types.TarCompressionMethod">
-             <summary>
-             Specifies the compression methods supported by <see cref="T:NAnt.Compression.Tasks.TarTask" />
-             and <see cref="T:NAnt.Compression.Tasks.UnTarTask" />.
-             </summary>
-            </member>
-        <member name="F:NAnt.Compression.Types.TarCompressionMethod.None">
-             <summary>
-             No compression.
-             </summary>
-            </member>
-        <member name="F:NAnt.Compression.Types.TarCompressionMethod.GZip">
-             <summary>
-             GZIP compression.
-             </summary>
-            </member>
-        <member name="F:NAnt.Compression.Types.TarCompressionMethod.BZip2">
-             <summary>
-             BZIP2 compression.
-             </summary>
-            </member>
-        <member name="T:NAnt.Compression.Types.TarCompressionMethodConverter">
-             <summary>
-             Specialized <see cref="T:System.ComponentModel.EnumConverter" /> for <see cref="T:NAnt.Compression.Types.TarCompressionMethod" />
-             that ignores case when converting from string.
-             </summary>
-            </member>
-        <member name="M:NAnt.Compression.Types.TarCompressionMethodConverter.#ctor">
-             <summary>
-             Initializes a new instance of the <see cref="T:NAnt.Compression.Types.TarCompressionMethodConverter" />
-             class.
-             </summary>
-            </member>
-        <member name="M:NAnt.Compression.Types.TarCompressionMethodConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
-             <summary>
-             Converts the given object to the type of this converter, using the 
-             specified context and culture information.
-             </summary>
-             <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext" /> that provides a format context.</param>
-             <param name="culture">A <see cref="T:System.Globalization.CultureInfo" /> object. If a <see langword="null" /> is passed, the current culture is assumed.</param>
-             <param name="value">The <see cref="T:System.Object" /> to convert.</param>
-             <returns>
-             An <see cref="T:System.Object" /> that represents the converted value.
-             </returns>
-            </member>
-        <member name="T:NAnt.Compression.Types.ZipFileSet">
-             <summary>
-             A <see cref="T:NAnt.Compression.Types.ZipFileSet" /> is a <see cref="T:NAnt.Core.Types.FileSet" /> with extra 
-             attributes useful in the context of the <see cref="T:NAnt.Compression.Tasks.ZipTask" />.
-             </summary>
-            </member>
-        <member name="P:NAnt.Compression.Types.ZipFileSet.Prefix">
-             <summary>
-             The top level directory prefix. If set, all file and directory paths 
-             in the fileset will have this value prepended. Can either be a single 
-             directory name or a "/" separated path.
-             </summary>
-            </member>
-        <member name="T:NAnt.Compression.Types.TarFileSet">
-             <summary>
-             A <see cref="T:NAnt.Compression.Types.TarFileSet" /> is a <see cref="T:NAnt.Core.Types.FileSet" /> with extra 
-             attributes useful in the context of the <see cref="T:NAnt.Compression.Tasks.TarTask" />.
-             </summary>
-            </member>
-        <member name="P:NAnt.Compression.Types.TarFileSet.FileMode">
-             <summary>
-             A 3 digit octal string, specify the user, group and other modes 
-             in the standard Unix fashion. Only applies to plain files. The 
-             default is <c>644</c>.
-             </summary>
-            </member>
-        <member name="P:NAnt.Compression.Types.TarFileSet.DirMode">
-             <summary>
-             A 3 digit octal string, specify the user, group and other modes 
-             in the standard Unix fashion. Only applies to directories. The 
-             default is <c>755</c>.
-             </summary>
-            </member>
-        <member name="P:NAnt.Compression.Types.TarFileSet.UserName">
-             <summary>
-             The username for the tar entry.
-             </summary>
-            </member>
-        <member name="P:NAnt.Compression.Types.TarFileSet.Uid">
-             <summary>
-             The user identifier (UID) for the tar entry. 
-             </summary>
-            </member>
-        <member name="P:NAnt.Compression.Types.TarFileSet.GroupName">
-             <summary>
-             The groupname for the tar entry.
-             </summary>
-            </member>
-        <member name="P:NAnt.Compression.Types.TarFileSet.Gid">
-             <summary>
-             The group identifier (GID) for the tar entry.
-             </summary>
-            </member>
-        <member name="P:NAnt.Compression.Types.TarFileSet.Prefix">
-             <summary>
-             The top level directory prefix. If set, all file and directory paths 
-             in the fileset will have this value prepended. Can either be a single 
-             directory name or a "/" separated path.
-             </summary>
-            </member>
         <member name="T:NAnt.Compression.Types.TarFileSetCollection">
              <summary>
              Contains a collection of <see cref="T:NAnt.Compression.Types.TarFileSet" /> elements.
@@ -245,6 +140,155 @@
              first element in the collection.
              </summary>
             </member>
+        <member name="T:NAnt.Compression.Types.TarCompressionMethod">
+             <summary>
+             Specifies the compression methods supported by <see cref="T:NAnt.Compression.Tasks.TarTask" />
+             and <see cref="T:NAnt.Compression.Tasks.UnTarTask" />.
+             </summary>
+            </member>
+        <member name="F:NAnt.Compression.Types.TarCompressionMethod.None">
+             <summary>
+             No compression.
+             </summary>
+            </member>
+        <member name="F:NAnt.Compression.Types.TarCompressionMethod.GZip">
+             <summary>
+             GZIP compression.
+             </summary>
+            </member>
+        <member name="F:NAnt.Compression.Types.TarCompressionMethod.BZip2">
+             <summary>
+             BZIP2 compression.
+             </summary>
+            </member>
+        <member name="T:NAnt.Compression.Types.TarCompressionMethodConverter">
+             <summary>
+             Specialized <see cref="T:System.ComponentModel.EnumConverter" /> for <see cref="T:NAnt.Compression.Types.TarCompressionMethod" />
+             that ignores case when converting from string.
+             </summary>
+            </member>
+        <member name="M:NAnt.Compression.Types.TarCompressionMethodConverter.#ctor">
+             <summary>
+             Initializes a new instance of the <see cref="T:NAnt.Compression.Types.TarCompressionMethodConverter" />
+             class.
+             </summary>
+            </member>
+        <member name="M:NAnt.Compression.Types.TarCompressionMethodConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
+             <summary>
+             Converts the given object to the type of this converter, using the 
+             specified context and culture information.
+             </summary>
+             <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext" /> that provides a format context.</param>
+             <param name="culture">A <see cref="T:System.Globalization.CultureInfo" /> object. If a <see langword="null" /> is passed, the current culture is assumed.</param>
+             <param name="value">The <see cref="T:System.Object" /> to convert.</param>
+             <returns>
+             An <see cref="T:System.Object" /> that represents the converted value.
+             </returns>
+            </member>
+        <member name="T:NAnt.Compression.Types.DuplicateHandling">
+             <summary>
+             Specifies how entries with the same name should be processed.
+             </summary>
+            </member>
+        <member name="F:NAnt.Compression.Types.DuplicateHandling.Add">
+             <summary>
+             Overwrite existing entry with same name.
+             </summary>
+            </member>
+        <member name="F:NAnt.Compression.Types.DuplicateHandling.Preserve">
+             <summary>
+             Preserve existing entry with the same name.
+             </summary>
+            </member>
+        <member name="F:NAnt.Compression.Types.DuplicateHandling.Fail">
+             <summary>
+             Report failure when two entries have the same name.
+             </summary>
+            </member>
+        <member name="T:NAnt.Compression.Types.DuplicateHandlingConverter">
+             <summary>
+             Specialized <see cref="T:System.ComponentModel.EnumConverter" /> for <see cref="T:NAnt.Compression.Types.TarCompressionMethod" />
+             that ignores case when converting from string.
+             </summary>
+            </member>
+        <member name="M:NAnt.Compression.Types.DuplicateHandlingConverter.#ctor">
+             <summary>
+             Initializes a new instance of the <see cref="T:NAnt.Compression.Types.DuplicateHandlingConverter" />
+             class.
+             </summary>
+            </member>
+        <member name="M:NAnt.Compression.Types.DuplicateHandlingConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
+             <summary>
+             Converts the given object to the type of this converter, using the 
+             specified context and culture information.
+             </summary>
PE32 Mono/.Net assembly: /usr/share/NAnt/bin/NAnt.Core.dll
/usr/share/NAnt/bin/NAnt.Core.dll differs (PE32 executable (DLL) (console) Intel 80386, Mono/.Net assembly, for MS Windows)
--- old /usr/share/NAnt/bin/NAnt.Core.dll (monodis)
+++ new /usr/share/NAnt/bin/NAnt.Core.dll (monodis)
@@ -3,6 +3,11 @@
   .ver 4:0:0:0
   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
 }
+.assembly extern System
+{
+  .ver 4:0:0:0
+  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+}
 .assembly extern System.Xml
 {
   .ver 4:0:0:0
@@ -13,11 +18,6 @@
   .ver 1:2:10:0
   .publickeytoken = (1B 44 E1 D4 26 11 58 21 ) // .D..&.X!
 }
-.assembly extern System
-{
-  .ver 4:0:0:0
-  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
-}
 .assembly extern System.Web
 {
   .ver 4:0:0:0
@@ -74,5028 +74,6904 @@
 .module NAnt.Core.dll // GUID = { 42 }
 
 
-.namespace NAnt.Core.Extensibility
+.namespace NAnt.Core.Util
 {
-  .class private auto ansi beforefieldinit FunctionArgument
-  	extends [mscorlib]System.Object
+  .class public auto ansi sealed beforefieldinit DefaultCommandLineArgumentAttribute
+  	extends NAnt.Core.Util.CommandLineArgumentAttribute
   {
-    .field  private initonly  int32 _index
-    .field  private initonly  string _name
-    .field  private initonly  object _value
-    .field  private initonly  valuetype NAnt.Core.ExpressionTokenizer/Position _beforeArgument
-    .field  private initonly  valuetype NAnt.Core.ExpressionTokenizer/Position _afterArgument
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 80 00 00 00 02 00 54 02 0D 41 6C 6C 6F 77   // ........T..Allow
+		4D 75 6C 74 69 70 6C 65 00 54 02 09 49 6E 68 65   // Multiple.T..Inhe
+		72 69 74 65 64 01                               ) // rited.
+
 
     // method line 1
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name, int32 index, object 'value', valuetype NAnt.Core.ExpressionTokenizer/Position beforeArgument, valuetype NAnt.Core.ExpressionTokenizer/Position afterArgument)  cil managed 
+           instance default void '.ctor' (valuetype NAnt.Core.Util.CommandLineArgumentTypes argumentType)  cil managed 
     {
-        // Method begins at RVA 0x2050
-	// Code size 45 (0x2d)
+        // Method begins at RVA 0x20f1
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld string NAnt.Core.Extensibility.FunctionArgument::_name
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.2 
-	IL_0010:  stfld int32 NAnt.Core.Extensibility.FunctionArgument::_index
-	IL_0015:  ldarg.0 
-	IL_0016:  ldarg.3 
-	IL_0017:  stfld object NAnt.Core.Extensibility.FunctionArgument::_value
-	IL_001c:  ldarg.0 
-	IL_001d:  ldarg.s 4
-	IL_001f:  stfld valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::_beforeArgument
-	IL_0024:  ldarg.0 
-	IL_0025:  ldarg.s 5
-	IL_0027:  stfld valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::_afterArgument
-	IL_002c:  ret 
-    } // end of method FunctionArgument::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes)
+	IL_0007:  nop 
+	IL_0008:  ret 
+    } // end of method DefaultCommandLineArgumentAttribute::.ctor
+
+  } // end of class NAnt.Core.Util.DefaultCommandLineArgumentAttribute
+}
+
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi abstract sealed beforefieldinit FileUtils
+  	extends [mscorlib]System.Object
+  {
+    .field private static literal  int32 _bufferSize = int32(0x00002000)
 
     // method line 2
-    .method public hidebysig specialname 
-           instance default int32 get_Index ()  cil managed 
+    .method public static hidebysig 
+           default void CopyFile (string sourceFileName, string destFileName, class NAnt.Core.Filters.FilterChain filterChain, class [mscorlib]System.Text.Encoding inputEncoding, class [mscorlib]System.Text.Encoding outputEncoding)  cil managed 
     {
-        // Method begins at RVA 0x2080
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x20fc
+	// Code size 329 (0x149)
+	.maxstack 4
 	.locals init (
-		int32	V_0)
+		bool	V_0,
+		class [mscorlib]System.Text.Encoding	V_1,
+		class [mscorlib]System.IO.StreamReader	V_2,
+		class [mscorlib]System.Text.Encoding	V_3,
+		class [mscorlib]System.IO.StreamWriter	V_4,
+		class NAnt.Core.Filters.Filter	V_5,
+		bool	V_6,
+		int32	V_7,
+		char[]	V_8,
+		int32	V_9)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Extensibility.FunctionArgument::_index
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0007:  brtrue IL_001e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FunctionArgument::get_Index
+	IL_000c:  nop 
+	IL_000d:  ldstr "Cannot copy file: Source File {0} does not exist"
+	IL_0012:  ldarg.0 
+	IL_0013:  call string string::Format(string, object)
+	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_001d:  throw 
+	IL_001e:  ldarg.2 
+	IL_001f:  call bool class NAnt.Core.Filters.FilterChain::IsNullOrEmpty(class NAnt.Core.Filters.FilterChain)
+	IL_0024:  ldc.i4.0 
+	IL_0025:  ceq 
+	IL_0027:  stloc.0 
+	IL_0028:  ldloc.0 
+	IL_0029:  brtrue IL_004a
 
-    // method line 3
-    .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x209c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Extensibility.FunctionArgument::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_002e:  ldarg.3 
+	IL_002f:  brtrue IL_004a
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FunctionArgument::get_Name
+	IL_0034:  ldarg.s 4
+	IL_0036:  brtrue IL_004a
 
-    // method line 4
-    .method public hidebysig specialname 
-           instance default object get_Value ()  cil managed 
-    {
-        // Method begins at RVA 0x20b8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		object	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld object NAnt.Core.Extensibility.FunctionArgument::_value
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_003b:  nop 
+	IL_003c:  ldarg.0 
+	IL_003d:  ldarg.1 
+	IL_003e:  ldc.i4.1 
+	IL_003f:  call void class [mscorlib]System.IO.File::Copy(string, string, bool)
+	IL_0044:  nop 
+	IL_0045:  br IL_0148
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FunctionArgument::get_Value
+	IL_004a:  nop 
+	IL_004b:  ldarg.3 
+	IL_004c:  brfalse IL_0057
 
-    // method line 5
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.ExpressionTokenizer/Position get_BeforeArgument ()  cil managed 
-    {
-        // Method begins at RVA 0x20d4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::_beforeArgument
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0051:  ldarg.3 
+	IL_0052:  br IL_005c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FunctionArgument::get_BeforeArgument
+	IL_0057:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
+	IL_005c:  stloc.1 
+	IL_005d:  ldarg.0 
+	IL_005e:  ldloc.1 
+	IL_005f:  ldc.i4.1 
+	IL_0060:  ldc.i4 8192
+	IL_0065:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool, int32)
+	IL_006a:  stloc.2 
+	.try { // 1
+	  IL_006b:  nop 
+	  IL_006c:  ldarg.s 4
+	  IL_006e:  stloc.3 
+	  IL_006f:  ldloc.3 
+	  IL_0070:  brtrue IL_007e
 
-    // method line 6
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.ExpressionTokenizer/Position get_AfterArgument ()  cil managed 
-    {
-        // Method begins at RVA 0x20f0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::_afterArgument
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0075:  nop 
+	  IL_0076:  ldloc.2 
+	  IL_0077:  callvirt instance class [mscorlib]System.Text.Encoding class [mscorlib]System.IO.StreamReader::get_CurrentEncoding()
+	  IL_007c:  stloc.3 
+	  IL_007d:  nop 
+	  IL_007e:  ldarg.1 
+	  IL_007f:  ldc.i4.0 
+	  IL_0080:  ldloc.3 
+	  IL_0081:  ldc.i4 8192
+	  IL_0086:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string, bool, class [mscorlib]System.Text.Encoding, int32)
+	  IL_008b:  stloc.s 4
+	  .try { // 0
+	    IL_008d:  nop 
+	    IL_008e:  ldloc.0 
+	    IL_008f:  brfalse IL_00e1
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FunctionArgument::get_AfterArgument
+	    IL_0094:  nop 
+	    IL_0095:  ldarg.2 
+	    IL_0096:  ldloc.2 
+	    IL_0097:  newobj instance void class NAnt.Core.Filters.PhysicalTextReader::'.ctor'(class [mscorlib]System.IO.TextReader)
+	    IL_009c:  callvirt instance class NAnt.Core.Filters.Filter class NAnt.Core.Filters.FilterChain::GetBaseFilter(class NAnt.Core.Filters.PhysicalTextReader)
+	    IL_00a1:  stloc.s 5
+	    IL_00a3:  ldc.i4.0 
+	    IL_00a4:  stloc.s 6
+	    IL_00a6:  br IL_00d4
 
-	.property instance int32 Index ()
-	{
-		.get instance default int32 NAnt.Core.Extensibility.FunctionArgument::get_Index () 
-	}
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.Core.Extensibility.FunctionArgument::get_Name () 
-	}
-	.property instance object Value ()
-	{
-		.get instance default object NAnt.Core.Extensibility.FunctionArgument::get_Value () 
-	}
-	.property instance valuetype NAnt.Core.ExpressionTokenizer/Position BeforeArgument ()
-	{
-		.get instance default valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::get_BeforeArgument () 
-	}
-	.property instance valuetype NAnt.Core.ExpressionTokenizer/Position AfterArgument ()
-	{
-		.get instance default valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::get_AfterArgument () 
-	}
-  } // end of class NAnt.Core.Extensibility.FunctionArgument
-}
+	    IL_00ab:  nop 
+	    IL_00ac:  ldloc.s 5
+	    IL_00ae:  callvirt instance int32 class NAnt.Core.Filters.ChainableReader::Read()
+	    IL_00b3:  stloc.s 7
+	    IL_00b5:  ldloc.s 7
+	    IL_00b7:  ldc.i4.m1 
+	    IL_00b8:  ble IL_00ce
 
-.namespace NAnt.Core.Extensibility
-{
-  .class interface public auto ansi abstract IPluginConsumer
-  {
+	    IL_00bd:  nop 
+	    IL_00be:  ldloc.s 4
+	    IL_00c0:  ldloc.s 7
+	    IL_00c2:  conv.u2 
+	    IL_00c3:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(char)
+	    IL_00c8:  nop 
+	    IL_00c9:  br IL_00d3
 
-    // method line 7
-    .method public virtual hidebysig newslot abstract 
-           instance default void ConsumePlugin (class NAnt.Core.Extensibility.IPlugin 'type')  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IPluginConsumer::ConsumePlugin
+	    IL_00ce:  nop 
+	    IL_00cf:  ldc.i4.1 
+	    IL_00d0:  stloc.s 6
+	    IL_00d2:  nop 
+	    IL_00d3:  nop 
+	    IL_00d4:  ldloc.s 6
+	    IL_00d6:  brfalse IL_00ab
 
-  } // end of class NAnt.Core.Extensibility.IPluginConsumer
-}
+	    IL_00db:  nop 
+	    IL_00dc:  br IL_011f
 
-.namespace NAnt.Core.Extensibility
-{
-  .class public auto ansi abstract beforefieldinit ExtensionBuilder
-  	extends [mscorlib]System.Object
-  {
-    .field  private initonly  class NAnt.Core.Extensibility.ExtensionAssembly _extensionAssembly
+	    IL_00e1:  nop 
+	    IL_00e2:  ldc.i4 8192
+	    IL_00e7:  newarr [mscorlib]System.Char
+	    IL_00ec:  stloc.s 8
+	    IL_00ee:  nop 
+	    IL_00ef:  nop 
+	    IL_00f0:  ldloc.2 
+	    IL_00f1:  ldloc.s 8
+	    IL_00f3:  ldc.i4.0 
+	    IL_00f4:  ldloc.s 8
+	    IL_00f6:  ldlen 
+	    IL_00f7:  conv.i4 
+	    IL_00f8:  callvirt instance int32 class [mscorlib]System.IO.TextReader::Read(char[], int32, int32)
+	    IL_00fd:  stloc.s 9
+	    IL_00ff:  ldloc.s 9
+	    IL_0101:  brtrue IL_010c
 
-    // method line 8
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly)  cil managed 
-    {
-        // Method begins at RVA 0x210b
-	// Code size 33 (0x21)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  brtrue IL_0019
+	    IL_0106:  nop 
+	    IL_0107:  leave IL_011e
 
-	IL_000d:  nop 
-	IL_000e:  ldstr "extensionAssembly"
-	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0018:  throw 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldarg.1 
-	IL_001b:  stfld class NAnt.Core.Extensibility.ExtensionAssembly NAnt.Core.Extensibility.ExtensionBuilder::_extensionAssembly
-	IL_0020:  ret 
-    } // end of method ExtensionBuilder::.ctor
+	    IL_010c:  ldloc.s 4
+	    IL_010e:  ldloc.s 8
+	    IL_0110:  ldc.i4.0 
+	    IL_0111:  ldloc.s 9
+	    IL_0113:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(char[], int32, int32)
+	    IL_0118:  nop 
+	    IL_0119:  br IL_00ee
 
-    // method line 9
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
-    {
-        // Method begins at RVA 0x212d
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call class NAnt.Core.Extensibility.ExtensionAssembly class NAnt.Core.Extensibility.ExtensionAssembly::Create(class [mscorlib]System.Reflection.Assembly)
-	IL_0007:  call instance void class NAnt.Core.Extensibility.ExtensionBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly)
-	IL_000c:  nop 
-	IL_000d:  ret 
-    } // end of method ExtensionBuilder::.ctor
+	    IL_011e:  nop 
+	    IL_011f:  nop 
+	    IL_0120:  leave IL_0134
 
-    // method line 10
-    .method assembly hidebysig specialname 
-           instance default class NAnt.Core.Extensibility.ExtensionAssembly get_ExtensionAssembly ()  cil managed 
-    {
-        // Method begins at RVA 0x213c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Extensibility.ExtensionAssembly	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Extensibility.ExtensionAssembly NAnt.Core.Extensibility.ExtensionBuilder::_extensionAssembly
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  } // end .try 0
+	  finally  { // 0
+	    IL_0125:  ldloc.s 4
+	    IL_0127:  brfalse IL_0133
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExtensionBuilder::get_ExtensionAssembly
+	    IL_012c:  ldloc.s 4
+	    IL_012e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0133:  endfinally 
+	  } // end handler 0
+	  IL_0134:  nop 
+	  IL_0135:  leave IL_0147
 
-    // method line 11
-    .method famorassem hidebysig specialname 
-           instance default class [mscorlib]System.Reflection.Assembly get_Assembly ()  cil managed 
+	} // end .try 1
+	finally  { // 1
+	  IL_013a:  ldloc.2 
+	  IL_013b:  brfalse IL_0146
+
+	  IL_0140:  ldloc.2 
+	  IL_0141:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0146:  endfinally 
+	} // end handler 1
+	IL_0147:  nop 
+	IL_0148:  ret 
+    } // end of method FileUtils::CopyFile
+
+    // method line 3
+    .method public static hidebysig 
+           default void MoveFile (string sourceFileName, string destFileName, class NAnt.Core.Filters.FilterChain filterChain, class [mscorlib]System.Text.Encoding inputEncoding, class [mscorlib]System.Text.Encoding outputEncoding)  cil managed 
     {
-        // Method begins at RVA 0x2158
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0)
+        // Method begins at RVA 0x2270
+	// Code size 88 (0x58)
+	.maxstack 5
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Extensibility.ExtensionAssembly class NAnt.Core.Extensibility.ExtensionBuilder::get_ExtensionAssembly()
-	IL_0007:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionAssembly::get_Assembly()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0007:  brtrue IL_001e
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ExtensionBuilder::get_Assembly
+	IL_000c:  nop 
+	IL_000d:  ldstr "Cannot move file: Source File {0} does not exist"
+	IL_0012:  ldarg.0 
+	IL_0013:  call string string::Format(string, object)
+	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_001d:  throw 
+	IL_001e:  ldarg.2 
+	IL_001f:  call bool class NAnt.Core.Filters.FilterChain::IsNullOrEmpty(class NAnt.Core.Filters.FilterChain)
+	IL_0024:  brfalse IL_0044
 
-	.property instance class NAnt.Core.Extensibility.ExtensionAssembly ExtensionAssembly ()
-	{
-		.get instance default class NAnt.Core.Extensibility.ExtensionAssembly NAnt.Core.Extensibility.ExtensionBuilder::get_ExtensionAssembly () 
-	}
-	.property instance class [mscorlib]System.Reflection.Assembly Assembly ()
-	{
-		.get instance default class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly () 
-	}
-  } // end of class NAnt.Core.Extensibility.ExtensionBuilder
-}
+	IL_0029:  ldarg.3 
+	IL_002a:  brtrue IL_0044
 
-.namespace NAnt.Core.Extensibility
-{
-  .class private auto ansi beforefieldinit ExtensionAssembly
-  	extends [mscorlib]System.Object
-  {
-    .field  private static  class [mscorlib]System.Collections.Hashtable _extensionAssemblies
-    .field  private initonly  class [mscorlib]System.Reflection.Assembly _assembly
-    .field  private  class [System.Xml]System.Xml.XmlNode _configurationSection
-    .field  private  bool _configurationInit
+	IL_002f:  ldarg.s 4
+	IL_0031:  brtrue IL_0044
 
-    // method line 12
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
-    {
-        // Method begins at RVA 0x2178
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionAssembly::_assembly
-	IL_000e:  ret 
-    } // end of method ExtensionAssembly::.ctor
+	IL_0036:  nop 
+	IL_0037:  ldarg.0 
+	IL_0038:  ldarg.1 
+	IL_0039:  call void class [mscorlib]System.IO.File::Move(string, string)
+	IL_003e:  nop 
+	IL_003f:  br IL_0057
 
-    // method line 13
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Reflection.Assembly get_Assembly ()  cil managed 
+	IL_0044:  nop 
+	IL_0045:  ldarg.0 
+	IL_0046:  ldarg.1 
+	IL_0047:  ldarg.2 
+	IL_0048:  ldarg.3 
+	IL_0049:  ldarg.s 4
+	IL_004b:  call void class NAnt.Core.Util.FileUtils::CopyFile(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
+	IL_0050:  ldarg.0 
+	IL_0051:  call void class [mscorlib]System.IO.File::Delete(string)
+	IL_0056:  nop 
+	IL_0057:  ret 
+    } // end of method FileUtils::MoveFile
+
+    // method line 4
+    .method assembly static hidebysig 
+           default void CopyDirectory (string sourceDirectory, string destDirectory, class NAnt.Core.Filters.FilterChain filterChain, class [mscorlib]System.Text.Encoding inputEncoding, class [mscorlib]System.Text.Encoding outputEncoding)  cil managed 
     {
-        // Method begins at RVA 0x2188
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x22d4
+	// Code size 180 (0xb4)
+	.maxstack 5
 	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0)
+		string	V_0,
+		string[]	V_1,
+		int32	V_2,
+		string	V_3,
+		string	V_4,
+		string[]	V_5,
+		int32	V_6,
+		string	V_7)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionAssembly::_assembly
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0007:  brtrue IL_001e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExtensionAssembly::get_Assembly
+	IL_000c:  nop 
+	IL_000d:  ldstr "Cannot copy directory: Source Directory {0} does not exist"
+	IL_0012:  ldarg.0 
+	IL_0013:  call string string::Format(string, object)
+	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_001d:  throw 
+	IL_001e:  ldarg.1 
+	IL_001f:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0024:  brtrue IL_0032
 
-    // method line 14
-    .method assembly hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlNode get_ConfigurationSection ()  cil managed 
+	IL_0029:  nop 
+	IL_002a:  ldarg.1 
+	IL_002b:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	IL_0030:  pop 
+	IL_0031:  nop 
+	IL_0032:  nop 
+	IL_0033:  ldarg.0 
+	IL_0034:  call string[] class [mscorlib]System.IO.Directory::GetFiles(string)
+	IL_0039:  stloc.1 
+	IL_003a:  ldc.i4.0 
+	IL_003b:  stloc.2 
+	IL_003c:  br IL_0063
+
+	IL_0041:  ldloc.1 
+	IL_0042:  ldloc.2 
+	IL_0043:  ldelem.ref 
+	IL_0044:  stloc.0 
+	IL_0045:  nop 
+	IL_0046:  ldarg.1 
+	IL_0047:  ldloc.0 
+	IL_0048:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_004d:  call string class NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0052:  stloc.3 
+	IL_0053:  ldloc.0 
+	IL_0054:  ldloc.3 
+	IL_0055:  ldarg.2 
+	IL_0056:  ldarg.3 
+	IL_0057:  ldarg.s 4
+	IL_0059:  call void class NAnt.Core.Util.FileUtils::CopyFile(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
+	IL_005e:  nop 
+	IL_005f:  ldloc.2 
+	IL_0060:  ldc.i4.1 
+	IL_0061:  add 
+	IL_0062:  stloc.2 
+	IL_0063:  ldloc.2 
+	IL_0064:  ldloc.1 
+	IL_0065:  ldlen 
+	IL_0066:  conv.i4 
+	IL_0067:  blt IL_0041
+
+	IL_006c:  nop 
+	IL_006d:  ldarg.0 
+	IL_006e:  call string[] class [mscorlib]System.IO.Directory::GetDirectories(string)
+	IL_0073:  stloc.s 5
+	IL_0075:  ldc.i4.0 
+	IL_0076:  stloc.s 6
+	IL_0078:  br IL_00a8
+
+	IL_007d:  ldloc.s 5
+	IL_007f:  ldloc.s 6
+	IL_0081:  ldelem.ref 
+	IL_0082:  stloc.s 4
+	IL_0084:  nop 
+	IL_0085:  ldarg.1 
+	IL_0086:  ldloc.s 4
+	IL_0088:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_008d:  call string class NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0092:  stloc.s 7
+	IL_0094:  ldloc.s 4
+	IL_0096:  ldloc.s 7
+	IL_0098:  ldarg.2 
+	IL_0099:  ldarg.3 
+	IL_009a:  ldarg.s 4
+	IL_009c:  call void class NAnt.Core.Util.FileUtils::CopyDirectory(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
+	IL_00a1:  nop 
+	IL_00a2:  ldloc.s 6
+	IL_00a4:  ldc.i4.1 
+	IL_00a5:  add 
+	IL_00a6:  stloc.s 6
+	IL_00a8:  ldloc.s 6
+	IL_00aa:  ldloc.s 5
+	IL_00ac:  ldlen 
+	IL_00ad:  conv.i4 
+	IL_00ae:  blt IL_007d
+
+	IL_00b3:  ret 
+    } // end of method FileUtils::CopyDirectory
+
+    // method line 5
+    .method assembly static hidebysig 
+           default void MoveDirectory (string sourceDirectory, string destDirectory, class NAnt.Core.Filters.FilterChain filterChain, class [mscorlib]System.Text.Encoding inputEncoding, class [mscorlib]System.Text.Encoding outputEncoding)  cil managed 
     {
-        // Method begins at RVA 0x21a4
-	// Code size 115 (0x73)
-	.maxstack 2
+        // Method begins at RVA 0x2394
+	// Code size 308 (0x134)
+	.maxstack 5
 	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0,
-		class [mscorlib]System.IO.Stream	V_1,
-		class [System.Xml]System.Xml.XmlDocument	V_2)
+		string	V_0,
+		string	V_1,
+		class [mscorlib]System.IO.IOException	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Extensibility.ExtensionAssembly::_configurationInit
-	IL_0007:  brfalse IL_0018
+	IL_0002:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0007:  brtrue IL_001e
 
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Extensibility.ExtensionAssembly::_configurationSection
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0071
+	IL_000c:  nop 
+	IL_000d:  ldstr "Cannot move directory: Source Directory {0} does not exist"
+	IL_0012:  ldarg.0 
+	IL_0013:  call string string::Format(string, object)
+	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_001d:  throw 
+	IL_001e:  ldarg.2 
+	IL_001f:  call bool class NAnt.Core.Filters.FilterChain::IsNullOrEmpty(class NAnt.Core.Filters.FilterChain)
+	IL_0024:  brfalse IL_011f
+
+	IL_0029:  ldarg.3 
+	IL_002a:  brtrue IL_011f
+
+	IL_002f:  ldarg.s 4
+	IL_0031:  brtrue IL_011f
+
+	IL_0036:  nop 
+	IL_0037:  ldarg.0 
+	IL_0038:  ldarg.1 
+	IL_0039:  ldc.i4.2 
+	IL_003a:  callvirt instance bool string::Equals(string, valuetype [mscorlib]System.StringComparison)
+	IL_003f:  brfalse IL_0050
 
+	IL_0044:  nop 
+	IL_0045:  ldstr "Source and Target paths are identical"
+	IL_004a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_004f:  throw 
 	.try { // 1
-	  IL_0018:  nop 
-	  IL_0019:  ldarg.0 
-	  IL_001a:  ldfld class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionAssembly::_assembly
-	  IL_001f:  ldstr "NAnt.Extension.config"
-	  IL_0024:  callvirt instance class [mscorlib]System.IO.Stream class [mscorlib]System.Reflection.Assembly::GetManifestResourceStream(string)
-	  IL_0029:  stloc.1 
-	  IL_002a:  ldloc.1 
-	  IL_002b:  brfalse IL_005b
+	  IL_0050:  nop 
+	  IL_0051:  call bool class NAnt.Core.PlatformHelper::get_IsWindows()
+	  IL_0056:  brfalse IL_00d1
 
-	  IL_0030:  nop 
+	  IL_005b:  nop 
+	  IL_005c:  ldarg.0 
+	  IL_005d:  ldarg.1 
+	  IL_005e:  ldc.i4.3 
+	  IL_005f:  callvirt instance bool string::Equals(string, valuetype [mscorlib]System.StringComparison)
+	  IL_0064:  brfalse IL_00c2
+
+	  IL_0069:  nop 
+	  IL_006a:  ldarg.1 
+	  IL_006b:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::GetParent(string)
+	  IL_0070:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0075:  stloc.0 
+	  IL_0076:  ldloc.0 
+	  IL_0077:  call string class [mscorlib]System.IO.Path::GetRandomFileName()
+	  IL_007c:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_0081:  stloc.1 
 	  .try { // 0
-	    IL_0031:  nop 
-	    IL_0032:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	    IL_0037:  stloc.2 
-	    IL_0038:  ldloc.2 
-	    IL_0039:  ldloc.1 
-	    IL_003a:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(class [mscorlib]System.IO.Stream)
-	    IL_003f:  ldarg.0 
-	    IL_0040:  ldloc.2 
-	    IL_0041:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	    IL_0046:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Extensibility.ExtensionAssembly::_configurationSection
-	    IL_004b:  nop 
-	    IL_004c:  leave IL_005a
+	    IL_0082:  nop 
+	    IL_0083:  ldarg.0 
+	    IL_0084:  ldloc.1 
+	    IL_0085:  call void class [mscorlib]System.IO.Directory::Move(string, string)
+	    IL_008a:  ldloc.1 
+	    IL_008b:  ldarg.1 
+	    IL_008c:  call void class [mscorlib]System.IO.Directory::Move(string, string)
+	    IL_0091:  nop 
+	    IL_0092:  leave IL_00bc
 
 	  } // end .try 0
-	  finally  { // 0
-	    IL_0051:  nop 
-	    IL_0052:  ldloc.1 
-	    IL_0053:  callvirt instance void class [mscorlib]System.IO.Stream::Close()
-	    IL_0058:  nop 
-	    IL_0059:  endfinally 
+	  catch class [mscorlib]System.Object { // 0
+	    IL_0097:  pop 
+	    IL_0098:  nop 
+	    IL_0099:  ldloc.1 
+	    IL_009a:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	    IL_009f:  brfalse IL_00ba
+
+	    IL_00a4:  nop 
+	    IL_00a5:  ldarg.0 
+	    IL_00a6:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	    IL_00ab:  brtrue IL_00b9
+
+	    IL_00b0:  nop 
+	    IL_00b1:  ldloc.1 
+	    IL_00b2:  ldarg.0 
+	    IL_00b3:  call void class [mscorlib]System.IO.Directory::Move(string, string)
+	    IL_00b8:  nop 
+	    IL_00b9:  nop 
+	    IL_00ba:  rethrow 
 	  } // end handler 0
-	  IL_005a:  nop 
-	  IL_005b:  ldarg.0 
-	  IL_005c:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Extensibility.ExtensionAssembly::_configurationSection
-	  IL_0061:  stloc.0 
-	  IL_0062:  leave IL_0071
+	  IL_00bc:  nop 
+	  IL_00bd:  br IL_00cb
+
+	  IL_00c2:  nop 
+	  IL_00c3:  ldarg.0 
+	  IL_00c4:  ldarg.1 
+	  IL_00c5:  call void class [mscorlib]System.IO.Directory::Move(string, string)
+	  IL_00ca:  nop 
+	  IL_00cb:  nop 
+	  IL_00cc:  br IL_00da
+
+	  IL_00d1:  nop 
+	  IL_00d2:  ldarg.0 
+	  IL_00d3:  ldarg.1 
+	  IL_00d4:  call void class [mscorlib]System.IO.Directory::Move(string, string)
+	  IL_00d9:  nop 
+	  IL_00da:  nop 
+	  IL_00db:  leave IL_0119
 
 	} // end .try 1
-	finally  { // 1
-	  IL_0067:  nop 
-	  IL_0068:  ldarg.0 
-	  IL_0069:  ldc.i4.1 
-	  IL_006a:  stfld bool NAnt.Core.Extensibility.ExtensionAssembly::_configurationInit
-	  IL_006f:  nop 
-	  IL_0070:  endfinally 
+	catch class [mscorlib]System.IO.IOException { // 1
+	  IL_00e0:  stloc.2 
+	  IL_00e1:  nop 
+	  IL_00e2:  ldarg.1 
+	  IL_00e3:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_00e8:  brfalse IL_0105
+
+	  IL_00ed:  nop 
+	  IL_00ee:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_00f3:  ldstr "Failed to move directory {0}.Directory '{1}' already exists."
+	  IL_00f8:  ldarg.0 
+	  IL_00f9:  ldarg.1 
+	  IL_00fa:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_00ff:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	  IL_0104:  throw 
+	  IL_0105:  nop 
+	  IL_0106:  ldstr "Unhandled IOException when trying to move directory '{0}' to '{1}'"
+	  IL_010b:  ldarg.0 
+	  IL_010c:  ldarg.1 
+	  IL_010d:  call string string::Format(string, object, object)
+	  IL_0112:  ldloc.2 
+	  IL_0113:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class [mscorlib]System.Exception)
+	  IL_0118:  throw 
 	} // end handler 1
-	IL_0071:  ldloc.0 
-	IL_0072:  ret 
-    } // end of method ExtensionAssembly::get_ConfigurationSection
+	IL_0119:  nop 
+	IL_011a:  br IL_0133
 
-    // method line 15
+	IL_011f:  nop 
+	IL_0120:  ldarg.0 
+	IL_0121:  ldarg.1 
+	IL_0122:  ldarg.2 
+	IL_0123:  ldarg.3 
+	IL_0124:  ldarg.s 4
+	IL_0126:  call void class NAnt.Core.Util.FileUtils::CopyDirectory(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
+	IL_012b:  ldarg.0 
+	IL_012c:  ldc.i4.1 
+	IL_012d:  call void class [mscorlib]System.IO.Directory::Delete(string, bool)
+	IL_0132:  nop 
+	IL_0133:  ret 
+    } // end of method FileUtils::MoveDirectory
+
+    // method line 6
+    .method assembly static hidebysig 
+           default string GetTempDirectoryName ()  cil managed 
+    {
+        // Method begins at RVA 0x24f0
+	// Code size 24 (0x18)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  call string class [mscorlib]System.IO.Path::GetTempPath()
+	IL_0006:  call string class [mscorlib]System.IO.Path::GetRandomFileName()
+	IL_000b:  call string class NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0010:  stloc.0 
+	IL_0011:  br IL_0016
+
+	IL_0016:  ldloc.0 
+	IL_0017:  ret 
+    } // end of method FileUtils::GetTempDirectoryName
+
+    // method line 7
     .method public static hidebysig 
-           default class NAnt.Core.Extensibility.ExtensionAssembly Create (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
+           default string ReadFile (string fileName, class NAnt.Core.Filters.FilterChain filterChain, class [mscorlib]System.Text.Encoding inputEncoding)  cil managed 
     {
-        // Method begins at RVA 0x2240
-	// Code size 84 (0x54)
+        // Method begins at RVA 0x2514
+	// Code size 166 (0xa6)
 	.maxstack 3
 	.locals init (
 		string	V_0,
-		class NAnt.Core.Extensibility.ExtensionAssembly	V_1,
-		class NAnt.Core.Extensibility.ExtensionAssembly	V_2)
+		class [mscorlib]System.Text.Encoding	V_1,
+		class [mscorlib]System.IO.StreamReader	V_2,
+		class NAnt.Core.Filters.Filter	V_3,
+		class [mscorlib]System.IO.StringWriter	V_4,
+		int32	V_5,
+		string	V_6)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldnull 
-	IL_0003:  call bool class [mscorlib]System.Reflection.Assembly::op_Equality(class [mscorlib]System.Reflection.Assembly, class [mscorlib]System.Reflection.Assembly)
-	IL_0008:  brfalse IL_0018
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.2 
+	IL_0004:  brfalse IL_000f
 
-	IL_000d:  ldstr "assembly"
-	IL_0012:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0017:  throw 
-	IL_0018:  ldarg.0 
-	IL_0019:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
-	IL_001e:  stloc.0 
-	IL_001f:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Extensibility.ExtensionAssembly::_extensionAssemblies
-	IL_0024:  ldloc.0 
-	IL_0025:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_002a:  isinst NAnt.Core.Extensibility.ExtensionAssembly
-	IL_002f:  stloc.1 
-	IL_0030:  ldloc.1 
-	IL_0031:  brtrue IL_004b
+	IL_0009:  ldarg.2 
+	IL_000a:  br IL_0014
 
-	IL_0036:  nop 
-	IL_0037:  ldarg.0 
-	IL_0038:  newobj instance void class NAnt.Core.Extensibility.ExtensionAssembly::'.ctor'(class [mscorlib]System.Reflection.Assembly)
-	IL_003d:  stloc.1 
-	IL_003e:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Extensibility.ExtensionAssembly::_extensionAssemblies
-	IL_0043:  ldloc.0 
-	IL_0044:  ldarg.0 
-	IL_0045:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_004a:  nop 
-	IL_004b:  ldloc.1 
-	IL_004c:  stloc.2 
-	IL_004d:  br IL_0052
+	IL_000f:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
+	IL_0014:  stloc.1 
+	IL_0015:  ldarg.0 
+	IL_0016:  ldloc.1 
+	IL_0017:  ldc.i4.1 
+	IL_0018:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
+	IL_001d:  stloc.2 
+	.try { // 0
+	  IL_001e:  nop 
+	  IL_001f:  ldarg.1 
+	  IL_0020:  brfalse IL_0035
 
-	IL_0052:  ldloc.2 
-	IL_0053:  ret 
-    } // end of method ExtensionAssembly::Create
+	  IL_0025:  ldarg.1 
+	  IL_0026:  callvirt instance class NAnt.Core.Filters.FilterCollection class NAnt.Core.Filters.FilterChain::get_Filters()
+	  IL_002b:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	  IL_0030:  brtrue IL_0043
 
-    // method line 16
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x22a0
-	// Code size 11 (0xb)
-	.maxstack 8
-	IL_0000:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0005:  stsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Extensibility.ExtensionAssembly::_extensionAssemblies
-	IL_000a:  ret 
-    } // end of method ExtensionAssembly::.cctor
+	  IL_0035:  nop 
+	  IL_0036:  ldloc.2 
+	  IL_0037:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
+	  IL_003c:  stloc.0 
+	  IL_003d:  nop 
+	  IL_003e:  br IL_0088
 
-	.property instance class [mscorlib]System.Reflection.Assembly Assembly ()
-	{
-		.get instance default class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionAssembly::get_Assembly () 
-	}
-	.property instance class [System.Xml]System.Xml.XmlNode ConfigurationSection ()
-	{
-		.get instance default class [System.Xml]System.Xml.XmlNode NAnt.Core.Extensibility.ExtensionAssembly::get_ConfigurationSection () 
-	}
-  } // end of class NAnt.Core.Extensibility.ExtensionAssembly
-}
+	  IL_0043:  nop 
+	  IL_0044:  ldarg.1 
+	  IL_0045:  ldloc.2 
+	  IL_0046:  newobj instance void class NAnt.Core.Filters.PhysicalTextReader::'.ctor'(class [mscorlib]System.IO.TextReader)
+	  IL_004b:  callvirt instance class NAnt.Core.Filters.Filter class NAnt.Core.Filters.FilterChain::GetBaseFilter(class NAnt.Core.Filters.PhysicalTextReader)
+	  IL_0050:  stloc.3 
+	  IL_0051:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'()
+	  IL_0056:  stloc.s 4
+	  IL_0058:  nop 
+	  IL_0059:  nop 
+	  IL_005a:  ldloc.3 
+	  IL_005b:  callvirt instance int32 class NAnt.Core.Filters.ChainableReader::Read()
+	  IL_0060:  stloc.s 5
+	  IL_0062:  ldloc.s 5
+	  IL_0064:  ldc.i4.m1 
+	  IL_0065:  bne.un IL_006f
 
-.namespace NAnt.Core.Extensibility
-{
-  .class public auto ansi sealed beforefieldinit PluginConsumerAttribute
-  	extends [mscorlib]System.Attribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 04 00 00 00 02 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 00 54 02 0D 41 6C 6C 6F 77 4D 75 6C   // ited.T..AllowMul
-		74 69 70 6C 65 01                               ) // tiple.
+	  IL_006a:  leave IL_007f
 
-    .field  private  class [mscorlib]System.Type _type
+	  IL_006f:  ldloc.s 4
+	  IL_0071:  ldloc.s 5
+	  IL_0073:  conv.u2 
+	  IL_0074:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(char)
+	  IL_0079:  nop 
+	  IL_007a:  br IL_0058
 
-    // method line 17
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Type 'type')  cil managed 
-    {
-        // Method begins at RVA 0x22ac
-	// Code size 39 (0x27)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  ldnull 
-	IL_0009:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_000e:  brfalse IL_001f
+	  IL_007f:  ldloc.s 4
+	  IL_0081:  callvirt instance string object::ToString()
+	  IL_0086:  stloc.0 
+	  IL_0087:  nop 
+	  IL_0088:  nop 
+	  IL_0089:  leave IL_009b
 
-	IL_0013:  nop 
-	IL_0014:  ldstr "type"
-	IL_0019:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_001e:  throw 
-	IL_001f:  ldarg.0 
-	IL_0020:  ldarg.1 
-	IL_0021:  stfld class [mscorlib]System.Type NAnt.Core.Extensibility.PluginConsumerAttribute::_type
-	IL_0026:  ret 
-    } // end of method PluginConsumerAttribute::.ctor
+	} // end .try 0
+	finally  { // 0
+	  IL_008e:  ldloc.2 
+	  IL_008f:  brfalse IL_009a
 
-    // method line 18
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Type get_PluginType ()  cil managed 
+	  IL_0094:  ldloc.2 
+	  IL_0095:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_009a:  endfinally 
+	} // end handler 0
+	IL_009b:  ldloc.0 
+	IL_009c:  stloc.s 6
+	IL_009e:  br IL_00a3
+
+	IL_00a3:  ldloc.s 6
+	IL_00a5:  ret 
+    } // end of method FileUtils::ReadFile
+
+    // method line 8
+    .method public static hidebysig 
+           default class [mscorlib]System.IO.DirectoryInfo GetTempDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x22d4
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x25d8
+	// Code size 34 (0x22)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Type	V_0)
+		string	V_0,
+		class [mscorlib]System.IO.DirectoryInfo	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Type NAnt.Core.Extensibility.PluginConsumerAttribute::_type
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
+	IL_0001:  call string class [mscorlib]System.IO.Path::GetTempFileName()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  call void class [mscorlib]System.IO.File::Delete(string)
 	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method PluginConsumerAttribute::get_PluginType
-
-	.property instance class [mscorlib]System.Type PluginType ()
-	{
-		.get instance default class [mscorlib]System.Type NAnt.Core.Extensibility.PluginConsumerAttribute::get_PluginType () 
-	}
-  } // end of class NAnt.Core.Extensibility.PluginConsumerAttribute
-}
-
-.namespace NAnt.Core.Extensibility
-{
-  .class interface public auto ansi abstract IPlugin
-  {
-
-  } // end of class NAnt.Core.Extensibility.IPlugin
-}
-
-.namespace NAnt.Core.Extensibility
-{
-  .class private auto ansi beforefieldinit PluginBuilder
-  	extends NAnt.Core.Extensibility.ExtensionBuilder
-  {
-    .field  private initonly  class [mscorlib]System.Type _pluginType
+	IL_000e:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	IL_0013:  pop 
+	IL_0014:  ldloc.0 
+	IL_0015:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_001a:  stloc.1 
+	IL_001b:  br IL_0020
 
-    // method line 19
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, class [mscorlib]System.Type pluginType)  cil managed 
-    {
-        // Method begins at RVA 0x22ef
-	// Code size 16 (0x10)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class NAnt.Core.Extensibility.ExtensionBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly)
-	IL_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.2 
-	IL_000a:  stfld class [mscorlib]System.Type NAnt.Core.Extensibility.PluginBuilder::_pluginType
-	IL_000f:  ret 
-    } // end of method PluginBuilder::.ctor
+	IL_0020:  ldloc.1 
+	IL_0021:  ret 
+    } // end of method FileUtils::GetTempDirectory
 
-    // method line 20
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Type get_PluginType ()  cil managed 
+    // method line 9
+    .method public static hidebysig 
+           default string CombinePaths (string path1, string path2)  cil managed 
     {
-        // Method begins at RVA 0x2300
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2608
+	// Code size 664 (0x298)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Type	V_0)
+		string	V_0,
+		char	V_1,
+		char[]	V_2,
+		string[]	V_3,
+		class [mscorlib]System.Collections.ArrayList	V_4,
+		int32	V_5,
+		string	V_6,
+		bool	V_7,
+		string[]	V_8,
+		int32	V_9,
+		class [mscorlib]System.Collections.ArrayList	V_10,
+		int32	V_11,
+		string	V_12,
+		string[]	V_13,
+		string	V_14)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Type NAnt.Core.Extensibility.PluginBuilder::_pluginType
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
+	IL_0006:  brfalse IL_0019
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method PluginBuilder::get_PluginType
+	IL_000b:  nop 
+	IL_000c:  ldarg.0 
+	IL_000d:  ldarg.1 
+	IL_000e:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0296
 
-    // method line 21
-    .method public hidebysig 
-           instance default class NAnt.Core.Extensibility.IPlugin CreatePlugin ()  cil managed 
-    {
-        // Method begins at RVA 0x231c
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Extensibility.IPlugin	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Type class NAnt.Core.Extensibility.PluginBuilder::get_PluginType()
-	IL_0007:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type)
-	IL_000c:  castclass NAnt.Core.Extensibility.IPlugin
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0019:  ldarg.0 
+	IL_001a:  brtrue IL_002b
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method PluginBuilder::CreatePlugin
+	IL_001f:  nop 
+	IL_0020:  ldstr "path1"
+	IL_0025:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_002a:  throw 
+	IL_002b:  ldarg.1 
+	IL_002c:  brtrue IL_003d
 
-	.property instance class [mscorlib]System.Type PluginType ()
-	{
-		.get instance default class [mscorlib]System.Type NAnt.Core.Extensibility.PluginBuilder::get_PluginType () 
-	}
-  } // end of class NAnt.Core.Extensibility.PluginBuilder
-}
+	IL_0031:  nop 
+	IL_0032:  ldstr "path2"
+	IL_0037:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_003c:  throw 
+	IL_003d:  ldarg.1 
+	IL_003e:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_0043:  brfalse IL_0050
 
-.namespace NAnt.Core.Extensibility
-{
-  .class private auto ansi beforefieldinit PluginScanner
-  	extends [mscorlib]System.Object
-  {
-    .field  private initonly  class [mscorlib]System.Collections.ArrayList _pluginBuilders
+	IL_0048:  nop 
+	IL_0049:  ldarg.1 
+	IL_004a:  stloc.0 
+	IL_004b:  br IL_0296
 
-    // method line 22
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2341
-	// Code size 18 (0x12)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0006:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Extensibility.PluginScanner::_pluginBuilders
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void object::'.ctor'()
-	IL_0011:  ret 
-    } // end of method PluginScanner::.ctor
+	IL_0050:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_0055:  stloc.1 
+	IL_0056:  ldc.i4.2 
+	IL_0057:  newarr [mscorlib]System.Char
+	IL_005c:  dup 
+	IL_005d:  ldc.i4.0 
+	IL_005e:  ldc.i4.s 0x2f
+	IL_0060:  stelem.i2 
+	IL_0061:  dup 
+	IL_0062:  ldc.i4.1 
+	IL_0063:  ldloc.1 
+	IL_0064:  stelem.i2 
+	IL_0065:  stloc.2 
+	IL_0066:  ldarg.1 
+	IL_0067:  ldloc.2 
+	IL_0068:  callvirt instance string[] string::Split(char[])
+	IL_006d:  stloc.3 
+	IL_006e:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0073:  stloc.s 4
+	IL_0075:  ldc.i4.0 
+	IL_0076:  stloc.s 5
+	IL_0078:  br IL_0126
 
-    // method line 23
-    .method public hidebysig 
-           instance default bool ScanTypeForPlugins (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, class [mscorlib]System.Type 'type', class NAnt.Core.Task task)  cil managed 
-    {
-        // Method begins at RVA 0x2354
-	// Code size 116 (0x74)
-	.maxstack 7
-	.locals init (
-		bool	V_0,
-		bool	V_1,
-		class NAnt.Core.Extensibility.PluginBuilder	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
-	IL_0007:  brfalse IL_0013
+	IL_007d:  nop 
+	IL_007e:  ldloc.3 
+	IL_007f:  ldloc.s 5
+	IL_0081:  ldelem.ref 
+	IL_0082:  stloc.s 6
+	IL_0084:  ldloc.s 6
+	IL_0086:  callvirt instance int32 string::get_Length()
+	IL_008b:  brfalse IL_00a1
 
-	IL_000c:  ldc.i4.0 
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0072
+	IL_0090:  ldloc.s 6
+	IL_0092:  ldstr "."
+	IL_0097:  call bool string::op_Equality(string, string)
+	IL_009c:  brfalse IL_00a7
 
-	.try { // 0
-	  IL_0013:  nop 
-	  IL_0014:  ldtoken NAnt.Core.Extensibility.IPlugin
-	  IL_0019:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_001e:  ldarg.2 
-	  IL_001f:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	  IL_0024:  stloc.1 
-	  IL_0025:  ldloc.1 
-	  IL_0026:  brtrue IL_0033
+	IL_00a1:  nop 
+	IL_00a2:  br IL_0120
 
-	  IL_002b:  nop 
-	  IL_002c:  ldc.i4.0 
-	  IL_002d:  stloc.0 
-	  IL_002e:  leave IL_0072
+	IL_00a7:  ldloc.s 6
+	IL_00a9:  ldstr ".."
+	IL_00ae:  call bool string::op_Equality(string, string)
+	IL_00b3:  brfalse IL_0113
 
-	  IL_0033:  ldarg.1 
-	  IL_0034:  ldarg.2 
-	  IL_0035:  newobj instance void class NAnt.Core.Extensibility.PluginBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, class [mscorlib]System.Type)
-	  IL_003a:  stloc.2 
-	  IL_003b:  ldarg.0 
-	  IL_003c:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Extensibility.PluginScanner::_pluginBuilders
-	  IL_0041:  ldloc.2 
-	  IL_0042:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0047:  pop 
-	  IL_0048:  ldc.i4.1 
-	  IL_0049:  stloc.0 
-	  IL_004a:  leave IL_0072
+	IL_00b8:  nop 
+	IL_00b9:  ldloc.s 4
+	IL_00bb:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_00c0:  ldc.i4.0 
+	IL_00c1:  ble IL_0101
 
-	} // end .try 0
-	catch class [mscorlib]System.Object { // 0
-	  IL_004f:  pop 
-	  IL_0050:  nop 
-	  IL_0051:  ldarg.3 
-	  IL_0052:  ldc.i4 5000
-	  IL_0057:  ldstr "Failure scanning \"{0}\" for plugins."
-	  IL_005c:  ldc.i4.1 
-	  IL_005d:  newarr [mscorlib]System.Object
-	  IL_0062:  dup 
-	  IL_0063:  ldc.i4.0 
-	  IL_0064:  ldarg.2 
-	  IL_0065:  callvirt instance string class [mscorlib]System.Type::get_AssemblyQualifiedName()
-	  IL_006a:  stelem.ref 
-	  IL_006b:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0070:  rethrow 
-	} // end handler 0
-	IL_0072:  ldloc.0 
-	IL_0073:  ret 
-    } // end of method PluginScanner::ScanTypeForPlugins
+	IL_00c6:  ldloc.s 4
+	IL_00c8:  ldloc.s 4
+	IL_00ca:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_00cf:  ldc.i4.1 
+	IL_00d0:  sub 
+	IL_00d1:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	IL_00d6:  castclass [mscorlib]System.String
+	IL_00db:  ldstr ".."
+	IL_00e0:  call bool string::op_Inequality(string, string)
+	IL_00e5:  brfalse IL_0101
 
-    // method line 24
-    .method public hidebysig 
-           instance default void RegisterPlugins (class NAnt.Core.Extensibility.IPluginConsumer consumer)  cil managed 
-    {
-        // Method begins at RVA 0x23e4
-	// Code size 209 (0xd1)
-	.maxstack 3
-	.locals init (
-		object[]	V_0,
-		class NAnt.Core.Extensibility.PluginBuilder	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class NAnt.Core.Extensibility.PluginConsumerAttribute	V_3,
-		object[]	V_4,
-		int32	V_5,
-		class [mscorlib]System.IDisposable	V_6)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	IL_00ea:  nop 
+	IL_00eb:  ldloc.s 4
+	IL_00ed:  ldloc.s 4
+	IL_00ef:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_00f4:  ldc.i4.1 
+	IL_00f5:  sub 
+	IL_00f6:  callvirt instance void class [mscorlib]System.Collections.ArrayList::RemoveAt(int32)
+	IL_00fb:  nop 
+	IL_00fc:  br IL_010d
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "consumer"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.1 
-	IL_0014:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0019:  ldtoken NAnt.Core.Extensibility.PluginConsumerAttribute
-	IL_001e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0023:  ldc.i4.0 
-	IL_0024:  callvirt instance object[] class [mscorlib]System.Reflection.MemberInfo::GetCustomAttributes(class [mscorlib]System.Type, bool)
-	IL_0029:  stloc.0 
-	IL_002a:  ldloc.0 
-	IL_002b:  ldlen 
-	IL_002c:  conv.i4 
-	IL_002d:  brtrue IL_0038
+	IL_0101:  nop 
+	IL_0102:  ldloc.s 4
+	IL_0104:  ldloc.s 6
+	IL_0106:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_010b:  pop 
+	IL_010c:  nop 
+	IL_010d:  nop 
+	IL_010e:  br IL_011f
 
-	IL_0032:  nop 
-	IL_0033:  br IL_00d0
+	IL_0113:  nop 
+	IL_0114:  ldloc.s 4
+	IL_0116:  ldloc.s 6
+	IL_0118:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_011d:  pop 
+	IL_011e:  nop 
+	IL_011f:  nop 
+	IL_0120:  ldloc.s 5
+	IL_0122:  ldc.i4.1 
+	IL_0123:  add 
+	IL_0124:  stloc.s 5
+	IL_0126:  ldloc.s 5
+	IL_0128:  ldloc.3 
+	IL_0129:  ldlen 
+	IL_012a:  conv.i4 
+	IL_012b:  blt IL_007d
 
-	IL_0038:  nop 
-	IL_0039:  ldarg.0 
-	IL_003a:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Extensibility.PluginScanner::_pluginBuilders
-	IL_003f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0044:  stloc.2 
-	.try { // 0
-	  IL_0045:  br IL_00aa
+	IL_0130:  ldarg.0 
+	IL_0131:  callvirt instance int32 string::get_Length()
+	IL_0136:  ldc.i4.0 
+	IL_0137:  ble IL_0153
 
-	  IL_004a:  ldloc.2 
-	  IL_004b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0050:  castclass NAnt.Core.Extensibility.PluginBuilder
-	  IL_0055:  stloc.1 
-	  IL_0056:  nop 
-	  IL_0057:  nop 
-	  IL_0058:  ldloc.0 
-	  IL_0059:  stloc.s 4
-	  IL_005b:  ldc.i4.0 
-	  IL_005c:  stloc.s 5
-	  IL_005e:  br IL_009e
+	IL_013c:  ldarg.0 
+	IL_013d:  ldloc.2 
+	IL_013e:  ldarg.0 
+	IL_013f:  callvirt instance int32 string::get_Length()
+	IL_0144:  ldc.i4.1 
+	IL_0145:  sub 
+	IL_0146:  callvirt instance int32 string::IndexOfAny(char[], int32)
+	IL_014b:  ldc.i4.m1 
+	IL_014c:  ceq 
+	IL_014e:  ldc.i4.0 
+	IL_014f:  ceq 
+	IL_0151:  br.s IL_0154
 
-	  IL_0063:  ldloc.s 4
-	  IL_0065:  ldloc.s 5
-	  IL_0067:  ldelem.ref 
-	  IL_0068:  castclass NAnt.Core.Extensibility.PluginConsumerAttribute
-	  IL_006d:  stloc.3 
-	  IL_006e:  nop 
-	  IL_006f:  ldloc.3 
-	  IL_0070:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Extensibility.PluginConsumerAttribute::get_PluginType()
-	  IL_0075:  ldloc.1 
-	  IL_0076:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Extensibility.PluginBuilder::get_PluginType()
-	  IL_007b:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	  IL_0080:  brfalse IL_0097
+	IL_0153:  ldc.i4.0 
+	IL_0154:  stloc.s 7
+	IL_0156:  ldloc.s 7
+	IL_0158:  brfalse IL_017b
 
-	  IL_0085:  nop 
-	  IL_0086:  ldarg.1 
-	  IL_0087:  ldloc.1 
-	  IL_0088:  callvirt instance class NAnt.Core.Extensibility.IPlugin class NAnt.Core.Extensibility.PluginBuilder::CreatePlugin()
-	  IL_008d:  callvirt instance void class NAnt.Core.Extensibility.IPluginConsumer::ConsumePlugin(class NAnt.Core.Extensibility.IPlugin)
-	  IL_0092:  leave IL_00a9
+	IL_015d:  nop 
+	IL_015e:  ldarg.0 
+	IL_015f:  ldc.i4.0 
+	IL_0160:  ldarg.0 
+	IL_0161:  callvirt instance int32 string::get_Length()
+	IL_0166:  ldc.i4.1 
+	IL_0167:  sub 
+	IL_0168:  callvirt instance string string::Substring(int32, int32)
+	IL_016d:  ldloc.2 
+	IL_016e:  callvirt instance string[] string::Split(char[])
+	IL_0173:  stloc.s 8
+	IL_0175:  nop 
+	IL_0176:  br IL_0186
 
-	  IL_0097:  nop 
-	  IL_0098:  ldloc.s 5
-	  IL_009a:  ldc.i4.1 
-	  IL_009b:  add 
-	  IL_009c:  stloc.s 5
-	  IL_009e:  ldloc.s 5
-	  IL_00a0:  ldloc.s 4
-	  IL_00a2:  ldlen 
-	  IL_00a3:  conv.i4 
-	  IL_00a4:  blt IL_0063
+	IL_017b:  nop 
+	IL_017c:  ldarg.0 
+	IL_017d:  ldloc.2 
+	IL_017e:  callvirt instance string[] string::Split(char[])
+	IL_0183:  stloc.s 8
+	IL_0185:  nop 
+	IL_0186:  ldloc.s 8
+	IL_0188:  ldlen 
+	IL_0189:  conv.i4 
+	IL_018a:  stloc.s 9
+	IL_018c:  ldloc.s 4
+	IL_018e:  callvirt instance object class [mscorlib]System.Collections.ArrayList::Clone()
+	IL_0193:  castclass [mscorlib]System.Collections.ArrayList
+	IL_0198:  stloc.s 10
+	IL_019a:  ldc.i4.0 
+	IL_019b:  stloc.s 11
+	IL_019d:  br IL_01e3
 
-	  IL_00a9:  nop 
-	  IL_00aa:  ldloc.2 
-	  IL_00ab:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00b0:  brtrue IL_004a
+	IL_01a2:  nop 
+	IL_01a3:  ldloc.s 10
+	IL_01a5:  ldloc.s 11
+	IL_01a7:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	IL_01ac:  castclass [mscorlib]System.String
+	IL_01b1:  ldstr ".."
+	IL_01b6:  call bool string::op_Inequality(string, string)
+	IL_01bb:  brtrue IL_01c8
 
-	  IL_00b5:  leave IL_00d0
+	IL_01c0:  ldloc.s 9
+	IL_01c2:  ldc.i4.2 
+	IL_01c3:  bge IL_01ce
 
-	} // end .try 0
-	finally  { // 0
-	  IL_00ba:  ldloc.2 
-	  IL_00bb:  isinst [mscorlib]System.IDisposable
-	  IL_00c0:  dup 
-	  IL_00c1:  stloc.s 6
-	  IL_00c3:  brfalse IL_00cf
+	IL_01c8:  nop 
+	IL_01c9:  br IL_01f1
 
-	  IL_00c8:  ldloc.s 6
-	  IL_00ca:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00cf:  endfinally 
-	} // end handler 0
-	IL_00d0:  ret 
-    } // end of method PluginScanner::RegisterPlugins
+	IL_01ce:  ldloc.s 9
+	IL_01d0:  ldc.i4.1 
+	IL_01d1:  sub 
+	IL_01d2:  stloc.s 9
+	IL_01d4:  ldloc.s 4
+	IL_01d6:  ldc.i4.0 
+	IL_01d7:  callvirt instance void class [mscorlib]System.Collections.ArrayList::RemoveAt(int32)
+	IL_01dc:  nop 
+	IL_01dd:  ldloc.s 11
+	IL_01df:  ldc.i4.1 
+	IL_01e0:  add 
+	IL_01e1:  stloc.s 11
+	IL_01e3:  ldloc.s 11
+	IL_01e5:  ldloc.s 10
+	IL_01e7:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_01ec:  blt IL_01a2
 
-  } // end of class NAnt.Core.Extensibility.PluginScanner
-}
+	IL_01f1:  ldloca.s 1
+	IL_01f3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01f8:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
+	IL_01fd:  stloc.s 12
+	IL_01ff:  ldloc.s 9
+	IL_0201:  ldc.i4.1 
+	IL_0202:  bne.un IL_022c
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit Int32ConversionFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 03 69 6E 74 0A 43 6F 6E 76 65 72 73 69 6F   // ...int.Conversio
-		6E 00 00                                        ) // n..
+	IL_0207:  ldloc.s 7
+	IL_0209:  brtrue IL_0218
 
+	IL_020e:  ldloc.s 8
+	IL_0210:  ldlen 
+	IL_0211:  conv.i4 
+	IL_0212:  ldc.i4.1 
+	IL_0213:  ble IL_022c
 
-    // method line 25
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x2509
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method Int32ConversionFunctions::.ctor
+	IL_0218:  nop 
+	IL_0219:  ldloc.s 8
+	IL_021b:  dup 
+	IL_021c:  stloc.s 13
+	IL_021e:  ldc.i4.0 
+	IL_021f:  ldloc.s 13
+	IL_0221:  ldc.i4.0 
+	IL_0222:  ldelem.ref 
+	IL_0223:  ldloc.s 12
+	IL_0225:  call string string::Concat(string, string)
+	IL_022a:  stelem.ref 
+	IL_022b:  nop 
+	IL_022c:  ldloc.s 12
+	IL_022e:  ldloc.s 8
+	IL_0230:  ldc.i4.0 
+	IL_0231:  ldloc.s 9
+	IL_0233:  call string string::Join(string, string[], int32, int32)
+	IL_0238:  ldloc.s 12
+	IL_023a:  ldloc.s 4
+	IL_023c:  ldtoken [mscorlib]System.String
+	IL_0241:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0246:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
+	IL_024b:  castclass string[]
+	IL_0250:  call string string::Join(string, string[])
+	IL_0255:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_025a:  stloc.s 14
+	IL_025c:  ldarg.1 
+	IL_025d:  ldstr "/"
+	IL_0262:  callvirt instance bool string::EndsWith(string)
+	IL_0267:  brtrue IL_0279
 
-    // method line 26
+	IL_026c:  ldarg.1 
+	IL_026d:  ldloc.s 12
+	IL_026f:  callvirt instance bool string::EndsWith(string)
+	IL_0274:  brfalse IL_028e
+
+	IL_0279:  nop 
+	IL_027a:  ldloc.s 14
+	IL_027c:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_0281:  box [mscorlib]System.Char
+	IL_0286:  call string string::Concat(object, object)
+	IL_028b:  stloc.s 14
+	IL_028d:  nop 
+	IL_028e:  ldloc.s 14
+	IL_0290:  stloc.0 
+	IL_0291:  br IL_0296
+
+	IL_0296:  ldloc.0 
+	IL_0297:  ret 
+    } // end of method FileUtils::CombinePaths
+
+    // method line 10
     .method public static hidebysig 
-           default int32 Parse (string s)  cil managed 
+           default string GetFullPath (string path)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
-
-        // Method begins at RVA 0x2514
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x28ac
+	// Code size 135 (0x87)
 	.maxstack 2
 	.locals init (
-		int32	V_0)
+		string	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0007:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  brtrue IL_0013
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method Int32ConversionFunctions::Parse
+	IL_0007:  nop 
+	IL_0008:  ldstr "path"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
+	IL_0018:  brtrue IL_0028
 
-    // method line 27
-    .method public static hidebysig 
-           default string ToString (int32 'value')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
+	IL_001d:  ldarg.0 
+	IL_001e:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_0023:  brfalse IL_0035
 
-        // Method begins at RVA 0x2534
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0008:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0028:  nop 
+	IL_0029:  ldarg.0 
+	IL_002a:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
+	IL_002f:  stloc.0 
+	IL_0030:  br IL_0085
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method Int32ConversionFunctions::ToString
+	IL_0035:  ldarg.0 
+	IL_0036:  callvirt instance int32 string::get_Length()
+	IL_003b:  brfalse IL_0061
 
-  } // end of class NAnt.Core.Functions.Int32ConversionFunctions
-}
+	IL_0040:  ldarg.0 
+	IL_0041:  callvirt instance string string::Trim()
+	IL_0046:  callvirt instance int32 string::get_Length()
+	IL_004b:  brfalse IL_0061
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit Int64ConversionFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 04 6C 6F 6E 67 0A 43 6F 6E 76 65 72 73 69   // ...long.Conversi
-		6F 6E 00 00                                     ) // on..
+	IL_0050:  ldarg.0 
+	IL_0051:  ldsfld char[] [mscorlib]System.IO.Path::InvalidPathChars
+	IL_0056:  callvirt instance int32 string::IndexOfAny(char[])
+	IL_005b:  ldc.i4.m1 
+	IL_005c:  beq IL_006d
 
+	IL_0061:  nop 
+	IL_0062:  ldstr "The path is not of a legal form."
+	IL_0067:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_006c:  throw 
+	IL_006d:  call string class [mscorlib]System.IO.Directory::GetCurrentDirectory()
+	IL_0072:  ldarg.0 
+	IL_0073:  call string class NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0078:  stloc.1 
+	IL_0079:  ldloc.1 
+	IL_007a:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
+	IL_007f:  stloc.0 
+	IL_0080:  br IL_0085
 
-    // method line 28
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x2555
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method Int64ConversionFunctions::.ctor
+	IL_0085:  ldloc.0 
+	IL_0086:  ret 
+    } // end of method FileUtils::GetFullPath
 
-    // method line 29
+    // method line 11
     .method public static hidebysig 
-           default int64 Parse (string s)  cil managed 
+           default string GetHomeDirectory ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
-
-        // Method begins at RVA 0x2560
-	// Code size 20 (0x14)
-	.maxstack 2
+        // Method begins at RVA 0x2940
+	// Code size 47 (0x2f)
+	.maxstack 1
 	.locals init (
-		int64	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0007:  call int64 int64::Parse(string, class [mscorlib]System.IFormatProvider)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
+	IL_0006:  brfalse IL_001c
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method Int64ConversionFunctions::Parse
+	IL_000b:  nop 
+	IL_000c:  ldstr "HOME"
+	IL_0011:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
+	IL_0016:  stloc.0 
+	IL_0017:  br IL_002d
 
-    // method line 30
+	IL_001c:  nop 
+	IL_001d:  ldstr "USERPROFILE"
+	IL_0022:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
+	IL_0027:  stloc.0 
+	IL_0028:  br IL_002d
+
+	IL_002d:  ldloc.0 
+	IL_002e:  ret 
+    } // end of method FileUtils::GetHomeDirectory
+
+    // method line 12
     .method public static hidebysig 
-           default string ToString (int64 'value')  cil managed 
+           default string ResolveFile (string[] directories, string fileName, bool recursive)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
-
-        // Method begins at RVA 0x2580
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x297c
+	// Code size 113 (0x71)
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		string	V_0,
+		string	V_1,
+		string[]	V_2,
+		int32	V_3,
+		string	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0008:  call instance string int64::ToString(class [mscorlib]System.IFormatProvider)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0001:  ldarg.0 
+	IL_0002:  brtrue IL_0012
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method Int64ConversionFunctions::ToString
+	IL_0007:  ldstr "directories"
+	IL_000c:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0011:  throw 
+	IL_0012:  ldarg.1 
+	IL_0013:  brtrue IL_0023
 
-  } // end of class NAnt.Core.Functions.Int64ConversionFunctions
-}
+	IL_0018:  ldstr "fileName"
+	IL_001d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0022:  throw 
+	IL_0023:  ldnull 
+	IL_0024:  stloc.0 
+	IL_0025:  nop 
+	IL_0026:  ldarg.0 
+	IL_0027:  stloc.2 
+	IL_0028:  ldc.i4.0 
+	IL_0029:  stloc.3 
+	IL_002a:  br IL_005d
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit DnsFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (01 00 03 64 6E 73 03 44 4E 53 00 00 ) // ...dns.DNS..
+	IL_002f:  ldloc.2 
+	IL_0030:  ldloc.3 
+	IL_0031:  ldelem.ref 
+	IL_0032:  stloc.1 
+	IL_0033:  nop 
+	IL_0034:  ldloc.1 
+	IL_0035:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_003a:  brtrue IL_0044
 
+	IL_003f:  br IL_0059
 
-    // method line 31
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x25a1
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method DnsFunctions::.ctor
+	IL_0044:  ldloc.1 
+	IL_0045:  ldarg.1 
+	IL_0046:  ldarg.2 
+	IL_0047:  call string class NAnt.Core.Util.FileUtils::ScanDirectory(string, string, bool)
+	IL_004c:  stloc.0 
+	IL_004d:  ldloc.0 
+	IL_004e:  brfalse IL_0058
 
-    // method line 32
-    .method public static hidebysig 
-           default string GetHostName ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0D 67 65 74 2D 68 6F 73 74 2D 6E 61 6D 65   // ...get-host-name
-		00 00                                           ) // ..
+	IL_0053:  br IL_0066
 
-        // Method begins at RVA 0x25ac
-	// Code size 14 (0xe)
-	.maxstack 1
+	IL_0058:  nop 
+	IL_0059:  ldloc.3 
+	IL_005a:  ldc.i4.1 
+	IL_005b:  add 
+	IL_005c:  stloc.3 
+	IL_005d:  ldloc.3 
+	IL_005e:  ldloc.2 
+	IL_005f:  ldlen 
+	IL_0060:  conv.i4 
+	IL_0061:  blt IL_002f
+
+	IL_0066:  ldloc.0 
+	IL_0067:  stloc.s 4
+	IL_0069:  br IL_006e
+
+	IL_006e:  ldloc.s 4
+	IL_0070:  ret 
+    } // end of method FileUtils::ResolveFile
+
+    // method line 13
+    .method private static hidebysig 
+           default string ScanDirectory (string directory, string fileName, bool recursive)  cil managed 
+    {
+        // Method begins at RVA 0x29fc
+	// Code size 121 (0x79)
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		string	V_0,
+		string	V_1,
+		string[]	V_2,
+		string	V_3,
+		string[]	V_4,
+		int32	V_5)
 	IL_0000:  nop 
-	IL_0001:  call string class [System]System.Net.Dns::GetHostName()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_000f:  brfalse IL_001b
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method DnsFunctions::GetHostName
+	IL_0014:  ldloc.0 
+	IL_0015:  stloc.1 
+	IL_0016:  br IL_0077
 
-  } // end of class NAnt.Core.Functions.DnsFunctions
+	IL_001b:  ldarg.2 
+	IL_001c:  brtrue IL_0028
+
+	IL_0021:  ldnull 
+	IL_0022:  stloc.1 
+	IL_0023:  br IL_0077
+
+	IL_0028:  ldarg.0 
+	IL_0029:  call string[] class [mscorlib]System.IO.Directory::GetDirectories(string)
+	IL_002e:  stloc.2 
+	IL_002f:  nop 
+	IL_0030:  ldloc.2 
+	IL_0031:  stloc.s 4
+	IL_0033:  ldc.i4.0 
+	IL_0034:  stloc.s 5
+	IL_0036:  br IL_0065
+
+	IL_003b:  ldloc.s 4
+	IL_003d:  ldloc.s 5
+	IL_003f:  ldelem.ref 
+	IL_0040:  stloc.3 
+	IL_0041:  nop 
+	IL_0042:  ldarg.0 
+	IL_0043:  ldloc.3 
+	IL_0044:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0049:  ldarg.1 
+	IL_004a:  ldarg.2 
+	IL_004b:  call string class NAnt.Core.Util.FileUtils::ScanDirectory(string, string, bool)
+	IL_0050:  stloc.0 
+	IL_0051:  ldloc.0 
+	IL_0052:  brfalse IL_005e
+
+	IL_0057:  ldloc.0 
+	IL_0058:  stloc.1 
+	IL_0059:  br IL_0077
+
+	IL_005e:  nop 
+	IL_005f:  ldloc.s 5
+	IL_0061:  ldc.i4.1 
+	IL_0062:  add 
+	IL_0063:  stloc.s 5
+	IL_0065:  ldloc.s 5
+	IL_0067:  ldloc.s 4
+	IL_0069:  ldlen 
+	IL_006a:  conv.i4 
+	IL_006b:  blt IL_003b
+
+	IL_0070:  ldnull 
+	IL_0071:  stloc.1 
+	IL_0072:  br IL_0077
+
+	IL_0077:  ldloc.1 
+	IL_0078:  ret 
+    } // end of method FileUtils::ScanDirectory
+
+  } // end of class NAnt.Core.Util.FileUtils
 }
 
-.namespace NAnt.Core.Functions
+.namespace NAnt.Core.Util
 {
-  .class public auto ansi beforefieldinit VersionFunctions
-  	extends NAnt.Core.FunctionSetBase
+  .class public auto ansi serializable beforefieldinit CommandLineArgumentCollection
+  	extends [mscorlib]System.Collections.CollectionBase
   {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 07 76 65 72 73 69 6F 6E 07 56 65 72 73 69   // ...version.Versi
-		6F 6E 00 00                                     ) // on..
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 33
+    // method line 14
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x25c6
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x2a81
+	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method VersionFunctions::.ctor
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method CommandLineArgumentCollection::.ctor
 
-    // method line 34
-    .method public static hidebysig 
-           default int32 GetMajor (class [mscorlib]System.Version version)  cil managed 
+    // method line 15
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Util.CommandLineArgumentCollection 'value')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 6D 61 6A 6F 72 00 00 ) // ...get-major..
-
-        // Method begins at RVA 0x25d4
+        // Method begins at RVA 0x2a8a
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 class [mscorlib]System.Version::get_Major()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Util.CommandLineArgumentCollection::AddRange(class NAnt.Core.Util.CommandLineArgumentCollection)
 	IL_000e:  ret 
-    } // end of method VersionFunctions::GetMajor
+    } // end of method CommandLineArgumentCollection::.ctor
 
-    // method line 35
-    .method public static hidebysig 
-           default int32 GetMinor (class [mscorlib]System.Version version)  cil managed 
+    // method line 16
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Util.CommandLineArgument[] 'value')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 6D 69 6E 6F 72 00 00 ) // ...get-minor..
-
-        // Method begins at RVA 0x25f0
+        // Method begins at RVA 0x2a9a
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 class [mscorlib]System.Version::get_Minor()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Util.CommandLineArgumentCollection::AddRange(class NAnt.Core.Util.CommandLineArgument[])
 	IL_000e:  ret 
-    } // end of method VersionFunctions::GetMinor
+    } // end of method CommandLineArgumentCollection::.ctor
 
-    // method line 36
-    .method public static hidebysig 
-           default int32 GetBuild (class [mscorlib]System.Version version)  cil managed 
+    // method line 17
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Util.CommandLineArgument get_Item (int32 index)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 62 75 69 6C 64 00 00 ) // ...get-build..
-
-        // Method begins at RVA 0x260c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2aac
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
-		int32	V_0)
+		class NAnt.Core.Util.CommandLineArgument	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 class [mscorlib]System.Version::get_Build()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.Core.Util.CommandLineArgument
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VersionFunctions::GetBuild
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method CommandLineArgumentCollection::get_Item
 
-    // method line 37
-    .method public static hidebysig 
-           default int32 GetRevision (class [mscorlib]System.Version version)  cil managed 
+    // method line 18
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Core.Util.CommandLineArgument 'value')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0C 67 65 74 2D 72 65 76 69 73 69 6F 6E 00   // ...get-revision.
-		00                                              ) // .
-
-        // Method begins at RVA 0x2628
+        // Method begins at RVA 0x2ad2
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 class [mscorlib]System.Version::get_Revision()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
 	IL_000e:  ret 
-    } // end of method VersionFunctions::GetRevision
-
-  } // end of class NAnt.Core.Functions.VersionFunctions
-}
-
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit VersionConversionFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 07 76 65 72 73 69 6F 6E 0A 43 6F 6E 76 65   // ...version.Conve
-		72 73 69 6F 6E 00 00                            ) // rsion..
-
+    } // end of method CommandLineArgumentCollection::set_Item
 
-    // method line 38
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+    // method line 19
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Util.CommandLineArgument get_Item (string name)  cil managed 
     {
-        // Method begins at RVA 0x2643
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
+        // Method begins at RVA 0x2ae4
+	// Code size 213 (0xd5)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Util.CommandLineArgument	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.Util.CommandLineArgument	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		class NAnt.Core.Util.CommandLineArgument	V_4,
+		class [mscorlib]System.Collections.IEnumerator	V_5,
+		class [mscorlib]System.IDisposable	V_6)
+	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0002:  brfalse IL_00cc
+
+	IL_0007:  nop 
 	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method VersionConversionFunctions::.ctor
+	IL_0009:  ldarg.0 
+	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0014:  stloc.1 
+	.try { // 0
+	  IL_0015:  br IL_0041
 
-    // method line 39
-    .method public static hidebysig 
-           default class [mscorlib]System.Version Parse (string version)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
+	  IL_001a:  ldloc.1 
+	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0020:  castclass NAnt.Core.Util.CommandLineArgument
+	  IL_0025:  stloc.0 
+	  IL_0026:  nop 
+	  IL_0027:  ldarg.1 
+	  IL_0028:  ldloc.0 
+	  IL_0029:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	  IL_002e:  callvirt instance bool string::Equals(string)
+	  IL_0033:  brfalse IL_0040
 
-        // Method begins at RVA 0x2650
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Version	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class [mscorlib]System.Version::'.ctor'(string)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  stloc.2 
+	  IL_003b:  leave IL_00d3
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VersionConversionFunctions::Parse
+	  IL_0040:  nop 
+	  IL_0041:  ldloc.1 
+	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0047:  brtrue IL_001a
 
-    // method line 40
-    .method public static hidebysig 
-           default string ToString (class [mscorlib]System.Version 'value')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
+	  IL_004c:  leave IL_0065
 
-        // Method begins at RVA 0x266c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string object::ToString()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	} // end .try 0
+	finally  { // 0
+	  IL_0051:  ldloc.1 
+	  IL_0052:  isinst [mscorlib]System.IDisposable
+	  IL_0057:  dup 
+	  IL_0058:  stloc.3 
+	  IL_0059:  brfalse IL_0064
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VersionConversionFunctions::ToString
+	  IL_005e:  ldloc.3 
+	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0064:  endfinally 
+	} // end handler 0
+	IL_0065:  nop 
+	IL_0066:  ldarg.0 
+	IL_0067:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_006c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0071:  stloc.s 5
+	.try { // 1
+	  IL_0073:  br IL_00a3
 
-  } // end of class NAnt.Core.Functions.VersionConversionFunctions
-}
+	  IL_0078:  ldloc.s 5
+	  IL_007a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_007f:  castclass NAnt.Core.Util.CommandLineArgument
+	  IL_0084:  stloc.s 4
+	  IL_0086:  nop 
+	  IL_0087:  ldarg.1 
+	  IL_0088:  ldloc.s 4
+	  IL_008a:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_ShortName()
+	  IL_008f:  callvirt instance bool string::Equals(string)
+	  IL_0094:  brfalse IL_00a2
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit ConversionFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 07 63 6F 6E 76 65 72 74 0A 43 6F 6E 76 65   // ...convert.Conve
-		72 73 69 6F 6E 00 00                            ) // rsion..
+	  IL_0099:  nop 
+	  IL_009a:  ldloc.s 4
+	  IL_009c:  stloc.2 
+	  IL_009d:  leave IL_00d3
 
+	  IL_00a2:  nop 
+	  IL_00a3:  ldloc.s 5
+	  IL_00a5:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00aa:  brtrue IL_0078
 
-    // method line 41
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary propDict)  cil managed 
-    {
-        // Method begins at RVA 0x2687
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method ConversionFunctions::.ctor
+	  IL_00af:  leave IL_00cb
 
-    // method line 42
-    .method public static hidebysig 
-           default int32 ToInt (int32 'value')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 74 6F 2D 69 6E 74 00 00 ) // ...to-int..
+	} // end .try 1
+	finally  { // 1
+	  IL_00b4:  ldloc.s 5
+	  IL_00b6:  isinst [mscorlib]System.IDisposable
+	  IL_00bb:  dup 
+	  IL_00bc:  stloc.s 6
+	  IL_00be:  brfalse IL_00ca
 
-        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 2F 55 73 65 20 74 79 70 65 2D 73 70 65 63   // ../Use type-spec
-		69 66 69 63 20 63 6F 6E 76 65 72 73 69 6F 6E 20   // ific conversion 
-		66 75 6E 63 74 69 6F 6E 73 20 69 6E 73 74 65 61   // functions instea
-		64 2E 00 00 00                                  ) // d....
+	  IL_00c3:  ldloc.s 6
+	  IL_00c5:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00ca:  endfinally 
+	} // end handler 1
+	IL_00cb:  nop 
+	IL_00cc:  ldnull 
+	IL_00cd:  stloc.2 
+	IL_00ce:  br IL_00d3
 
-        // Method begins at RVA 0x2694
-	// Code size 10 (0xa)
-	.maxstack 1
+	IL_00d3:  ldloc.2 
+	IL_00d4:  ret 
+    } // end of method CommandLineArgumentCollection::get_Item
+
+    // method line 20
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
+    {
+        // Method begins at RVA 0x2be4
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ConversionFunctions::ToInt
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method CommandLineArgumentCollection::Add
 
-    // method line 43
-    .method public static hidebysig 
-           default float64 ToDouble (float64 'value')  cil managed 
+    // method line 21
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Util.CommandLineArgument[] items)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 64 6F 75 62 6C 65 00 00 ) // ...to-double..
-
-        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 2F 55 73 65 20 74 79 70 65 2D 73 70 65 63   // ../Use type-spec
-		69 66 69 63 20 63 6F 6E 76 65 72 73 69 6F 6E 20   // ific conversion 
-		66 75 6E 63 74 69 6F 6E 73 20 69 6E 73 74 65 61   // functions instea
-		64 2E 00 00 00                                  ) // d....
-
-        // Method begins at RVA 0x26ac
-	// Code size 10 (0xa)
-	.maxstack 1
+        // Method begins at RVA 0x2c08
+	// Code size 34 (0x22)
+	.maxstack 3
 	.locals init (
-		float64	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
+	IL_0001:  ldc.i4.0 
 	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ConversionFunctions::ToDouble
+	IL_0003:  br IL_0018
 
-    // method line 44
-    .method public static hidebysig 
-           default string ConvertToString (string 'value')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.Core.Util.CommandLineArgumentCollection::Add(class NAnt.Core.Util.CommandLineArgument)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
 
-        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 2F 55 73 65 20 74 79 70 65 2D 73 70 65 63   // ../Use type-spec
-		69 66 69 63 20 63 6F 6E 76 65 72 73 69 6F 6E 20   // ific conversion 
-		66 75 6E 63 74 69 6F 6E 73 20 69 6E 73 74 65 61   // functions instea
-		64 2E 00 00 00                                  ) // d....
+	IL_0021:  ret 
+    } // end of method CommandLineArgumentCollection::AddRange
 
-        // Method begins at RVA 0x26c4
-	// Code size 10 (0xa)
-	.maxstack 1
+    // method line 22
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Util.CommandLineArgumentCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x2c38
+	// Code size 41 (0x29)
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
+	IL_0001:  ldc.i4.0 
 	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ConversionFunctions::ConvertToString
+	IL_0003:  br IL_001c
 
-    // method line 45
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.DateTime ToDateTime (valuetype [mscorlib]System.DateTime 'value')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0B 74 6F 2D 64 61 74 65 74 69 6D 65 00 00 ) // ...to-datetime..
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.Core.Util.CommandLineArgument class NAnt.Core.Util.CommandLineArgumentCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Core.Util.CommandLineArgumentCollection::Add(class NAnt.Core.Util.CommandLineArgument)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
 
-        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 2F 55 73 65 20 74 79 70 65 2D 73 70 65 63   // ../Use type-spec
-		69 66 69 63 20 63 6F 6E 76 65 72 73 69 6F 6E 20   // ific conversion 
-		66 75 6E 63 74 69 6F 6E 73 20 69 6E 73 74 65 61   // functions instea
-		64 2E 00 00 00                                  ) // d....
+	IL_0028:  ret 
+    } // end of method CommandLineArgumentCollection::AddRange
 
-        // Method begins at RVA 0x26dc
-	// Code size 10 (0xa)
-	.maxstack 1
+    // method line 23
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
+    {
+        // Method begins at RVA 0x2c70
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ConversionFunctions::ToDateTime
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method CommandLineArgumentCollection::Contains
 
-    // method line 46
-    .method public static hidebysig 
-           default bool ToBoolean (bool 'value')  cil managed 
+    // method line 24
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Util.CommandLineArgument[] 'array', int32 index)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 74 6F 2D 62 6F 6F 6C 65 61 6E 00 00 ) // ...to-boolean..
-
-        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 2F 55 73 65 20 74 79 70 65 2D 73 70 65 63   // ../Use type-spec
-		69 66 69 63 20 63 6F 6E 76 65 72 73 69 6F 6E 20   // ific conversion 
-		66 75 6E 63 74 69 6F 6E 73 20 69 6E 73 74 65 61   // functions instea
-		64 2E 00 00 00                                  ) // d....
+        // Method begins at RVA 0x2c91
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method CommandLineArgumentCollection::CopyTo
 
-        // Method begins at RVA 0x26f4
-	// Code size 10 (0xa)
-	.maxstack 1
+    // method line 25
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
+    {
+        // Method begins at RVA 0x2ca4
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ConversionFunctions::ToBoolean
-
-  } // end of class NAnt.Core.Functions.ConversionFunctions
-}
-
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit StringFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 06 73 74 72 69 6E 67 06 53 74 72 69 6E 67   // ...string.String
-		00 00                                           ) // ..
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method CommandLineArgumentCollection::IndexOf
 
-    // method line 47
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary propDict)  cil managed 
+    // method line 26
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.Util.CommandLineArgument item)  cil managed 
     {
-        // Method begins at RVA 0x270a
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x2cc5
+	// Code size 15 (0xf)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method StringFunctions::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method CommandLineArgumentCollection::Insert
 
-    // method line 48
-    .method public static hidebysig 
-           default int32 GetLength (string s)  cil managed 
+    // method line 27
+    .method public hidebysig 
+           instance default class NAnt.Core.Util.CommandLineArgumentEnumerator GetEnumerator ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 67 65 74 2D 6C 65 6E 67 74 68 00 00 ) // ...get-length..
-
-        // Method begins at RVA 0x2718
+        // Method begins at RVA 0x2cd8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		class NAnt.Core.Util.CommandLineArgumentEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 string::get_Length()
+	IL_0002:  newobj instance void class NAnt.Core.Util.CommandLineArgumentEnumerator::'.ctor'(class NAnt.Core.Util.CommandLineArgumentCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method StringFunctions::GetLength
+    } // end of method CommandLineArgumentCollection::GetEnumerator
 
-    // method line 49
-    .method public static hidebysig 
-           default string Substring (string str, int32 startIndex, int32 length)  cil managed 
+    // method line 28
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 73 75 62 73 74 72 69 6E 67 00 00 ) // ...substring..
-
-        // Method begins at RVA 0x2734
-	// Code size 17 (0x11)
-	.maxstack 3
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x2cf3
+	// Code size 14 (0xe)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  callvirt instance string string::Substring(int32, int32)
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_000f
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
+	IL_000d:  ret 
+    } // end of method CommandLineArgumentCollection::Remove
 
-	IL_000f:  ldloc.0 
-	IL_0010:  ret 
-    } // end of method StringFunctions::Substring
+	.property instance class NAnt.Core.Util.CommandLineArgument Item (int32)
+	{
+		.get instance default class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineArgumentCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Core.Util.CommandLineArgumentCollection::set_Item (int32 index, class NAnt.Core.Util.CommandLineArgument 'value') 
+	}
+	.property instance class NAnt.Core.Util.CommandLineArgument Item (string)
+	{
+		.get instance default class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineArgumentCollection::get_Item (string name) 
+	}
+  } // end of class NAnt.Core.Util.CommandLineArgumentCollection
+}
 
-    // method line 50
-    .method public static hidebysig 
-           default bool StartsWith (string s1, string s2)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0B 73 74 61 72 74 73 2D 77 69 74 68 00 00 ) // ...starts-with..
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi beforefieldinit CommandLineArgumentEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-        // Method begins at RVA 0x2754
-	// Code size 26 (0x1a)
-	.maxstack 3
+    // method line 29
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Util.CommandLineArgumentCollection arguments)  cil managed 
+    {
+        // Method begins at RVA 0x2d04
+	// Code size 22 (0x16)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0006:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance bool class [mscorlib]System.Globalization.CompareInfo::IsPrefix(string, string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
-
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method StringFunctions::StartsWith
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method CommandLineArgumentEnumerator::.ctor
 
-    // method line 51
-    .method public static hidebysig 
-           default bool EndsWith (string s1, string s2)  cil managed 
+    // method line 30
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Util.CommandLineArgument get_Current ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 65 6E 64 73 2D 77 69 74 68 00 00 ) // ...ends-with..
-
-        // Method begins at RVA 0x277c
-	// Code size 26 (0x1a)
-	.maxstack 3
+        // Method begins at RVA 0x2d28
+	// Code size 25 (0x19)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Util.CommandLineArgument	V_0)
 	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0006:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance bool class [mscorlib]System.Globalization.CompareInfo::IsSuffix(string, string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.Core.Util.CommandLineArgument
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method StringFunctions::EndsWith
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method CommandLineArgumentEnumerator::get_Current
 
-    // method line 52
-    .method public static hidebysig 
-           default string ToLower (string s)  cil managed 
+    // method line 31
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 74 6F 2D 6C 6F 77 65 72 00 00 ) // ...to-lower..
-
-        // Method begins at RVA 0x27a4
+        // Method begins at RVA 0x2d50
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
-	.maxstack 2
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0007:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method StringFunctions::ToLower
+    } // end of method CommandLineArgumentEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 53
-    .method public static hidebysig 
-           default string ToUpper (string s)  cil managed 
+    // method line 32
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 74 6F 2D 75 70 70 65 72 00 00 ) // ...to-upper..
-
-        // Method begins at RVA 0x27c4
+        // Method begins at RVA 0x2d70
 	// Code size 20 (0x14)
-	.maxstack 2
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0007:  callvirt instance string string::ToUpper(class [mscorlib]System.Globalization.CultureInfo)
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method StringFunctions::ToUpper
+    } // end of method CommandLineArgumentEnumerator::MoveNext
 
-    // method line 54
-    .method public static hidebysig 
-           default string Replace (string str, string oldValue, string newValue)  cil managed 
+    // method line 33
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 07 72 65 70 6C 61 63 65 00 00 ) // ...replace..
-
-        // Method begins at RVA 0x27e4
-	// Code size 17 (0x11)
-	.maxstack 3
+        // Method begins at RVA 0x2d90
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  callvirt instance string string::Replace(string, string)
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_000f
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000f:  ldloc.0 
-	IL_0010:  ret 
-    } // end of method StringFunctions::Replace
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method CommandLineArgumentEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 55
-    .method public static hidebysig 
-           default bool Contains (string source, string 'value')  cil managed 
+    // method line 34
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 63 6F 6E 74 61 69 6E 73 00 00 ) // ...contains..
+        // Method begins at RVA 0x2db0
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method CommandLineArgumentEnumerator::Reset
 
-        // Method begins at RVA 0x2804
-	// Code size 33 (0x21)
-	.maxstack 4
-	.locals init (
-		bool	V_0)
+    // method line 35
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x2dbe
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0006:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.1 
-	IL_000d:  ldc.i4.0 
-	IL_000e:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::IndexOf(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
-	IL_0013:  ldc.i4.0 
-	IL_0014:  clt 
-	IL_0016:  ldc.i4.0 
-	IL_0017:  ceq 
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_001f
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method CommandLineArgumentEnumerator::System.Collections.IEnumerator.Reset
 
-	IL_001f:  ldloc.0 
-	IL_0020:  ret 
-    } // end of method StringFunctions::Contains
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.Core.Util.CommandLineArgumentEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.Core.Util.CommandLineArgument Current ()
+	{
+		.get instance default class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineArgumentEnumerator::get_Current () 
+	}
+  } // end of class NAnt.Core.Util.CommandLineArgumentEnumerator
+}
 
-    // method line 56
-    .method public static hidebysig 
-           default int32 IndexOf (string source, string 'value')  cil managed 
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi beforefieldinit DateTimeProvider
+  	extends [mscorlib]System.Object
+  {
+
+    // method line 36
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 69 6E 64 65 78 2D 6F 66 00 00 ) // ...index-of..
+        // Method begins at RVA 0x2dcc
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method DateTimeProvider::.ctor
 
-        // Method begins at RVA 0x2834
-	// Code size 27 (0x1b)
-	.maxstack 4
+    // method line 37
+    .method public virtual hidebysig newslot specialname 
+           instance default valuetype [mscorlib]System.DateTime get_Now ()  cil managed 
+    {
+        // Method begins at RVA 0x2dd4
+	// Code size 14 (0xe)
+	.maxstack 1
 	.locals init (
-		int32	V_0)
+		valuetype [mscorlib]System.DateTime	V_0)
 	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0006:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.1 
-	IL_000d:  ldc.i4.0 
-	IL_000e:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::IndexOf(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0019
+	IL_0001:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method StringFunctions::IndexOf
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method DateTimeProvider::get_Now
 
-    // method line 57
-    .method public static hidebysig 
-           default int32 LastIndexOf (string source, string 'value')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0D 6C 61 73 74 2D 69 6E 64 65 78 2D 6F 66   // ...last-index-of
-		00 00                                           ) // ..
+	.property instance valuetype [mscorlib]System.DateTime Now ()
+	{
+		.get instance default valuetype [mscorlib]System.DateTime NAnt.Core.Util.DateTimeProvider::get_Now () 
+	}
+  } // end of class NAnt.Core.Util.DateTimeProvider
+}
 
-        // Method begins at RVA 0x285c
-	// Code size 27 (0x1b)
-	.maxstack 4
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0006:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.1 
-	IL_000d:  ldc.i4.0 
-	IL_000e:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::LastIndexOf(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0019
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi sealed beforefieldinit ResourceUtils
+  	extends [mscorlib]System.Object
+  {
+    .field  private static  class [mscorlib]System.Resources.ResourceManager _sharedResourceManager
+    .field  private static initonly  class [mscorlib]System.Collections.Hashtable _resourceManagerDictionary
 
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method StringFunctions::LastIndexOf
+    // method line 38
+    .method private hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2dee
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method ResourceUtils::.ctor
 
-    // method line 58
+    // method line 39
     .method public static hidebysig 
-           default string PadLeft (string s, int32 totalWidth, string paddingChar)  cil managed 
+           default void RegisterSharedAssembly (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 70 61 64 2D 6C 65 66 74 00 00 ) // ...pad-left..
-
-        // Method begins at RVA 0x2884
-	// Code size 23 (0x17)
-	.maxstack 4
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x2df7
+	// Code size 24 (0x18)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  ldc.i4.0 
-	IL_0005:  callvirt instance char string::get_Chars(int32)
-	IL_000a:  callvirt instance string string::PadLeft(int32, char)
-	IL_000f:  stloc.0 
-	IL_0010:  br IL_0015
-
-	IL_0015:  ldloc.0 
-	IL_0016:  ret 
-    } // end of method StringFunctions::PadLeft
+	IL_0002:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	IL_0007:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	IL_000c:  ldarg.0 
+	IL_000d:  newobj instance void class [mscorlib]System.Resources.ResourceManager::'.ctor'(string, class [mscorlib]System.Reflection.Assembly)
+	IL_0012:  stsfld class [mscorlib]System.Resources.ResourceManager NAnt.Core.Util.ResourceUtils::_sharedResourceManager
+	IL_0017:  ret 
+    } // end of method ResourceUtils::RegisterSharedAssembly
 
-    // method line 59
+    // method line 40
     .method public static hidebysig 
-           default string PadRight (string s, int32 totalWidth, string paddingChar)  cil managed 
+           default string GetString (string name)  cil managed noinlining 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 70 61 64 2D 72 69 67 68 74 00 00 ) // ...pad-right..
-
-        // Method begins at RVA 0x28a8
+        // Method begins at RVA 0x2e10
 	// Code size 23 (0x17)
-	.maxstack 4
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Reflection.Assembly	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  ldc.i4.0 
-	IL_0005:  callvirt instance char string::get_Chars(int32)
-	IL_000a:  callvirt instance string string::PadRight(int32, char)
-	IL_000f:  stloc.0 
+	IL_0001:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetCallingAssembly()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldnull 
+	IL_0009:  ldloc.0 
+	IL_000a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string, class [mscorlib]System.Globalization.CultureInfo, class [mscorlib]System.Reflection.Assembly)
+	IL_000f:  stloc.1 
 	IL_0010:  br IL_0015
 
-	IL_0015:  ldloc.0 
+	IL_0015:  ldloc.1 
 	IL_0016:  ret 
-    } // end of method StringFunctions::PadRight
-
-    // method line 60
-    .method public static hidebysig 
-           default string Trim (string s)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 04 74 72 69 6D 00 00 ) // ...trim..
-
-        // Method begins at RVA 0x28cc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string string::Trim()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method StringFunctions::Trim
+    } // end of method ResourceUtils::GetString
 
-    // method line 61
+    // method line 41
     .method public static hidebysig 
-           default string TrimStart (string s)  cil managed 
+           default string GetString (string name, class [mscorlib]System.Globalization.CultureInfo culture)  cil managed noinlining 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 74 72 69 6D 2D 73 74 61 72 74 00 00 ) // ...trim-start..
-
-        // Method begins at RVA 0x28e8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2e34
+	// Code size 23 (0x17)
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Reflection.Assembly	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string string::TrimStart()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetCallingAssembly()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldloc.0 
+	IL_000a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string, class [mscorlib]System.Globalization.CultureInfo, class [mscorlib]System.Reflection.Assembly)
+	IL_000f:  stloc.1 
+	IL_0010:  br IL_0015
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method StringFunctions::TrimStart
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method ResourceUtils::GetString
 
-    // method line 62
+    // method line 42
     .method public static hidebysig 
-           default string TrimEnd (string s)  cil managed 
+           default string GetString (string name, class [mscorlib]System.Globalization.CultureInfo culture, class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 74 72 69 6D 2D 65 6E 64 00 00 ) // ...trim-end..
-
-        // Method begins at RVA 0x2904
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2e58
+	// Code size 107 (0x6b)
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		string	V_0,
+		class [mscorlib]System.Resources.ResourceManager	V_1,
+		string	V_2,
+		string	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string string::TrimEnd()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method StringFunctions::TrimEnd
-
-  } // end of class NAnt.Core.Functions.StringFunctions
-}
-
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit NAntFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (01 00 04 6E 61 6E 74 04 4E 41 6E 74 00 00 ) // ...nant.NAnt..
+	IL_0001:  ldarg.2 
+	IL_0002:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	IL_0007:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	IL_000c:  stloc.0 
+	IL_000d:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.ResourceUtils::_resourceManagerDictionary
+	IL_0012:  ldloc.0 
+	IL_0013:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	IL_0018:  brtrue IL_0025
 
+	IL_001d:  nop 
+	IL_001e:  ldarg.2 
+	IL_001f:  call void class NAnt.Core.Util.ResourceUtils::RegisterAssembly(class [mscorlib]System.Reflection.Assembly)
+	IL_0024:  nop 
+	IL_0025:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.ResourceUtils::_resourceManagerDictionary
+	IL_002a:  ldloc.0 
+	IL_002b:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0030:  castclass [mscorlib]System.Resources.ResourceManager
+	IL_0035:  stloc.1 
+	IL_0036:  ldloc.1 
+	IL_0037:  ldarg.0 
+	IL_0038:  ldarg.1 
+	IL_0039:  callvirt instance string class [mscorlib]System.Resources.ResourceManager::GetString(string, class [mscorlib]System.Globalization.CultureInfo)
+	IL_003e:  stloc.2 
+	IL_003f:  ldloc.2 
+	IL_0040:  brtrue IL_0062
 
-    // method line 63
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x291f
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method NAntFunctions::.ctor
+	IL_0045:  ldsfld class [mscorlib]System.Resources.ResourceManager NAnt.Core.Util.ResourceUtils::_sharedResourceManager
+	IL_004a:  brfalse IL_0062
 
-    // method line 64
-    .method public hidebysig 
-           instance default string GetBaseDirectory ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 12 67 65 74 2D 62 61 73 65 2D 64 69 72 65   // ...get-base-dire
-		63 74 6F 72 79 00 00                            ) // ctory..
+	IL_004f:  nop 
+	IL_0050:  ldsfld class [mscorlib]System.Resources.ResourceManager NAnt.Core.Util.ResourceUtils::_sharedResourceManager
+	IL_0055:  ldarg.0 
+	IL_0056:  ldarg.1 
+	IL_0057:  callvirt instance string class [mscorlib]System.Resources.ResourceManager::GetString(string, class [mscorlib]System.Globalization.CultureInfo)
+	IL_005c:  stloc.3 
+	IL_005d:  br IL_0069
 
-        // Method begins at RVA 0x292c
-	// Code size 19 (0x13)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_0006:  callvirt instance string class [mscorlib]System.AppDomain::get_BaseDirectory()
-	IL_000b:  stloc.0 
-	IL_000c:  br IL_0011
+	IL_0062:  ldloc.2 
+	IL_0063:  stloc.3 
+	IL_0064:  br IL_0069
 
-	IL_0011:  ldloc.0 
-	IL_0012:  ret 
-    } // end of method NAntFunctions::GetBaseDirectory
+	IL_0069:  ldloc.3 
+	IL_006a:  ret 
+    } // end of method ResourceUtils::GetString
 
-    // method line 65
-    .method public hidebysig 
-           instance default class [mscorlib]System.Reflection.Assembly GetAssembly ()  cil managed 
+    // method line 43
+    .method private static hidebysig 
+           default void RegisterAssembly (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0C 67 65 74 2D 61 73 73 65 6D 62 6C 79 00   // ...get-assembly.
-		00                                              ) // .
-
-        // Method begins at RVA 0x294c
-	// Code size 50 (0x32)
-	.maxstack 2
+        // Method begins at RVA 0x2ed0
+	// Code size 70 (0x46)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0,
-		class [mscorlib]System.Reflection.Assembly	V_1)
+		object	V_0,
+		bool	V_1,
+		string	V_2)
 	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetEntryAssembly()
+	IL_0001:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.ResourceUtils::_resourceManagerDictionary
 	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
-	IL_000d:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	IL_0012:  ldstr "NAnt"
-	IL_0017:  call bool string::op_Inequality(string, string)
-	IL_001c:  brfalse IL_0029
+	IL_0007:  ldc.i4.0 
+	IL_0008:  stloc.1 
+	.try { // 0
+	  IL_0009:  ldloc.0 
+	  IL_000a:  ldloca.s 1
+	  IL_000c:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
+	  IL_0011:  nop 
+	  IL_0012:  ldarg.0 
+	  IL_0013:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	  IL_0018:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	  IL_001d:  stloc.2 
+	  IL_001e:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.ResourceUtils::_resourceManagerDictionary
+	  IL_0023:  ldloc.2 
+	  IL_0024:  ldloc.2 
+	  IL_0025:  call string class NAnt.Core.Util.ResourceUtils::GetResourceName(string)
+	  IL_002a:  ldarg.0 
+	  IL_002b:  newobj instance void class [mscorlib]System.Resources.ResourceManager::'.ctor'(string, class [mscorlib]System.Reflection.Assembly)
+	  IL_0030:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	  IL_0035:  nop 
+	  IL_0036:  leave IL_0045
 
-	IL_0021:  nop 
-	IL_0022:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetExecutingAssembly()
-	IL_0027:  stloc.0 
-	IL_0028:  nop 
-	IL_0029:  ldloc.0 
-	IL_002a:  stloc.1 
-	IL_002b:  br IL_0030
+	} // end .try 0
+	finally  { // 0
+	  IL_003b:  ldloc.1 
+	  IL_003c:  brfalse.s IL_0044
 
-	IL_0030:  ldloc.1 
-	IL_0031:  ret 
-    } // end of method NAntFunctions::GetAssembly
+	  IL_003e:  ldloc.0 
+	  IL_003f:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
+	  IL_0044:  endfinally 
+	} // end handler 0
+	IL_0045:  ret 
+    } // end of method ResourceUtils::RegisterAssembly
 
-    // method line 66
-    .method public hidebysig 
-           instance default string ScanProbingPaths (string fileName)  cil managed 
+    // method line 44
+    .method private static hidebysig 
+           default string GetResourceName (string assemblyName)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 12 73 63 61 6E 2D 70 72 6F 62 69 6E 67 2D   // ...scan-probing-
-		70 61 74 68 73 00 00                            ) // paths..
-
-        .custom instance void class [System]System.ComponentModel.EditorBrowsableAttribute::'.ctor'(valuetype [System]System.ComponentModel.EditorBrowsableState) =  (01 00 01 00 00 00 00 00 ) // ........
-
-        // Method begins at RVA 0x298c
-	// Code size 92 (0x5c)
-	.maxstack 3
+        // Method begins at RVA 0x2f34
+	// Code size 65 (0x41)
+	.maxstack 4
 	.locals init (
 		string	V_0,
-		class NAnt.Core.FrameworkInfo	V_1,
-		string[]	V_2,
-		string	V_3)
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldnull 
 	IL_0002:  stloc.0 
 	IL_0003:  ldarg.0 
-	IL_0004:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0009:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_000e:  stloc.1 
-	IL_000f:  ldloc.1 
-	IL_0010:  callvirt instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
-	IL_0015:  brfalse IL_0036
+	IL_0004:  ldstr "Tasks"
+	IL_0009:  callvirt instance bool string::EndsWith(string)
+	IL_000e:  brfalse IL_002a
 
-	IL_001a:  nop 
-	IL_001b:  ldloc.1 
-	IL_001c:  callvirt instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
-	IL_0021:  callvirt instance class NAnt.Core.Configuration.DirList class NAnt.Core.Configuration.Runtime::get_ProbingPaths()
-	IL_0026:  callvirt instance string[] class NAnt.Core.Configuration.DirList::GetDirectories()
-	IL_002b:  stloc.2 
-	IL_002c:  ldloc.2 
-	IL_002d:  ldarg.1 
-	IL_002e:  ldc.i4.1 
-	IL_002f:  call string class NAnt.Core.Util.FileUtils::ResolveFile(string[], string, bool)
-	IL_0034:  stloc.0 
-	IL_0035:  nop 
-	IL_0036:  ldloc.0 
-	IL_0037:  brtrue IL_0053
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldc.i4.0 
+	IL_0016:  ldarg.0 
+	IL_0017:  callvirt instance int32 string::get_Length()
+	IL_001c:  ldc.i4.5 
+	IL_001d:  sub 
+	IL_001e:  callvirt instance string string::Substring(int32, int32)
+	IL_0023:  stloc.0 
+	IL_0024:  nop 
+	IL_0025:  br IL_002e
 
-	IL_003c:  nop 
-	IL_003d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0042:  ldstr "\"{0}\" could not be found in any of the configured probing paths."
-	IL_0047:  ldarg.1 
-	IL_0048:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_004d:  newobj instance void class [mscorlib]System.IO.FileNotFoundException::'.ctor'(string)
-	IL_0052:  throw 
-	IL_0053:  ldloc.0 
-	IL_0054:  stloc.3 
-	IL_0055:  br IL_005a
+	IL_002a:  nop 
+	IL_002b:  ldarg.0 
+	IL_002c:  stloc.0 
+	IL_002d:  nop 
+	IL_002e:  ldloc.0 
+	IL_002f:  ldstr ".Resources.Strings"
+	IL_0034:  call string string::Concat(string, string)
+	IL_0039:  stloc.1 
+	IL_003a:  br IL_003f
 
-	IL_005a:  ldloc.3 
-	IL_005b:  ret 
-    } // end of method NAntFunctions::ScanProbingPaths
+	IL_003f:  ldloc.1 
+	IL_0040:  ret 
+    } // end of method ResourceUtils::GetResourceName
 
-    // method line 67
-    .method public hidebysig 
-           instance default string ScanProbingPaths (string baseDirectory, string fileName)  cil managed 
+    // method line 45
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 12 73 63 61 6E 2D 70 72 6F 62 69 6E 67 2D   // ...scan-probing-
-		70 61 74 68 73 00 00                            ) // paths..
+        // Method begins at RVA 0x2f81
+	// Code size 11 (0xb)
+	.maxstack 8
+	IL_0000:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0005:  stsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.ResourceUtils::_resourceManagerDictionary
+	IL_000a:  ret 
+    } // end of method ResourceUtils::.cctor
 
-        .custom instance void class [System]System.ComponentModel.EditorBrowsableAttribute::'.ctor'(valuetype [System]System.ComponentModel.EditorBrowsableState) =  (01 00 01 00 00 00 00 00 ) // ........
+  } // end of class NAnt.Core.Util.ResourceUtils
+}
 
-        // Method begins at RVA 0x29f4
-	// Code size 93 (0x5d)
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi beforefieldinit CommandLineArgument
+  	extends [mscorlib]System.Object
+  {
+    .field  private  class [mscorlib]System.Type _elementType
+    .field  private  bool _seenValue
+    .field  private  valuetype NAnt.Core.Util.CommandLineArgumentTypes _argumentType
+    .field  private  class [mscorlib]System.Reflection.PropertyInfo _propertyInfo
+    .field  private  class NAnt.Core.Util.CommandLineArgumentAttribute _attribute
+    .field  private  object _argumentValue
+    .field  private  class [mscorlib]System.Collections.ArrayList _collectionValues
+    .field  private  class [System]System.Collections.Specialized.NameValueCollection _valuePairs
+
+    // method line 46
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Util.CommandLineArgumentAttribute attribute, class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
+    {
+        // Method begins at RVA 0x2f90
+	// Code size 258 (0x102)
 	.maxstack 3
-	.locals init (
-		string	V_0,
-		class NAnt.Core.FrameworkInfo	V_1,
-		string[]	V_2,
-		string	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0009:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_000e:  stloc.1 
-	IL_000f:  ldloc.1 
-	IL_0010:  callvirt instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
-	IL_0015:  brfalse IL_0037
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.2 
+	IL_0010:  stfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_0015:  ldarg.0 
+	IL_0016:  ldc.i4.0 
+	IL_0017:  stfld bool NAnt.Core.Util.CommandLineArgument::_seenValue
+	IL_001c:  ldarg.0 
+	IL_001d:  ldarg.2 
+	IL_001e:  call class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::GetElementType(class [mscorlib]System.Reflection.PropertyInfo)
+	IL_0023:  stfld class [mscorlib]System.Type NAnt.Core.Util.CommandLineArgument::_elementType
+	IL_0028:  ldarg.0 
+	IL_0029:  ldarg.1 
+	IL_002a:  ldarg.2 
+	IL_002b:  call valuetype NAnt.Core.Util.CommandLineArgumentTypes class NAnt.Core.Util.CommandLineArgument::GetArgumentType(class NAnt.Core.Util.CommandLineArgumentAttribute, class [mscorlib]System.Reflection.PropertyInfo)
+	IL_0030:  stfld valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgument::_argumentType
+	IL_0035:  ldarg.0 
+	IL_0036:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsCollection()
+	IL_003b:  brtrue IL_004b
 
-	IL_001a:  nop 
-	IL_001b:  ldloc.1 
-	IL_001c:  callvirt instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
-	IL_0021:  callvirt instance class NAnt.Core.Configuration.DirList class NAnt.Core.Configuration.Runtime::get_ProbingPaths()
-	IL_0026:  ldarg.1 
-	IL_0027:  callvirt instance string[] class NAnt.Core.Configuration.DirList::GetDirectories(string)
-	IL_002c:  stloc.2 
-	IL_002d:  ldloc.2 
-	IL_002e:  ldarg.2 
-	IL_002f:  ldc.i4.1 
-	IL_0030:  call string class NAnt.Core.Util.FileUtils::ResolveFile(string[], string, bool)
-	IL_0035:  stloc.0 
-	IL_0036:  nop 
-	IL_0037:  ldloc.0 
-	IL_0038:  brtrue IL_0054
+	IL_0040:  ldarg.0 
+	IL_0041:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsArray()
+	IL_0046:  brfalse IL_005d
 
-	IL_003d:  nop 
-	IL_003e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0043:  ldstr "\"{0}\" could not be found in any of the configured probing paths."
-	IL_0048:  ldarg.2 
-	IL_0049:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_004e:  newobj instance void class [mscorlib]System.IO.FileNotFoundException::'.ctor'(string)
-	IL_0053:  throw 
-	IL_0054:  ldloc.0 
-	IL_0055:  stloc.3 
-	IL_0056:  br IL_005b
+	IL_004b:  nop 
+	IL_004c:  ldarg.0 
+	IL_004d:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0052:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Util.CommandLineArgument::_collectionValues
+	IL_0057:  nop 
+	IL_0058:  br IL_0075
 
-	IL_005b:  ldloc.3 
-	IL_005c:  ret 
-    } // end of method NAntFunctions::ScanProbingPaths
+	IL_005d:  ldarg.0 
+	IL_005e:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection()
+	IL_0063:  brfalse IL_0075
 
-  } // end of class NAnt.Core.Functions.NAntFunctions
-}
+	IL_0068:  nop 
+	IL_0069:  ldarg.0 
+	IL_006a:  newobj instance void class [System]System.Collections.Specialized.NameValueCollection::'.ctor'()
+	IL_006f:  stfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.Util.CommandLineArgument::_valuePairs
+	IL_0074:  nop 
+	IL_0075:  ldarg.0 
+	IL_0076:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	IL_007b:  brfalse IL_0090
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit ProjectFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 07 70 72 6F 6A 65 63 74 04 4E 41 6E 74 00   // ...project.NAnt.
-		00                                              ) // .
+	IL_0080:  ldarg.0 
+	IL_0081:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	IL_0086:  callvirt instance int32 string::get_Length()
+	IL_008b:  ldc.i4.0 
+	IL_008c:  cgt 
+	IL_008e:  br.s IL_0091
 
+	IL_0090:  ldc.i4.0 
+	IL_0091:  call void class [System]System.Diagnostics.Debug::Assert(bool)
+	IL_0096:  ldarg.0 
+	IL_0097:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsCollection()
+	IL_009c:  brtrue IL_00b7
 
-    // method line 68
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x2a5d
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method ProjectFunctions::.ctor
+	IL_00a1:  ldarg.0 
+	IL_00a2:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsArray()
+	IL_00a7:  brtrue IL_00b7
 
-    // method line 69
-    .method public hidebysig 
-           instance default string GetName ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 6E 61 6D 65 00 00 ) // ...get-name..
+	IL_00ac:  ldarg.0 
+	IL_00ad:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection()
+	IL_00b2:  brfalse IL_00bf
 
-        // Method begins at RVA 0x2a68
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance string class NAnt.Core.Project::get_ProjectName()
-	IL_000c:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_00b7:  ldarg.0 
+	IL_00b8:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_AllowMultiple()
+	IL_00bd:  br.s IL_00c0
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ProjectFunctions::GetName
+	IL_00bf:  ldc.i4.1 
+	IL_00c0:  ldstr "Collection and array arguments must have allow multiple"
+	IL_00c5:  call void class [System]System.Diagnostics.Debug::Assert(bool, string)
+	IL_00ca:  ldarg.0 
+	IL_00cb:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_Unique()
+	IL_00d0:  brfalse IL_00f6
 
-    // method line 70
-    .method public hidebysig 
-           instance default string GetBuildFileUri ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 11 67 65 74 2D 62 75 69 6C 64 66 69 6C 65   // ...get-buildfile
-		2D 75 72 69 00 00                               ) // -uri..
+	IL_00d5:  ldarg.0 
+	IL_00d6:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsCollection()
+	IL_00db:  brtrue IL_00f3
 
-        // Method begins at RVA 0x2a90
-	// Code size 59 (0x3b)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
-	IL_000c:  ldnull 
-	IL_000d:  call bool class [System]System.Uri::op_Inequality(class [System]System.Uri, class [System]System.Uri)
-	IL_0012:  brfalse IL_002e
+	IL_00e0:  ldarg.0 
+	IL_00e1:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsArray()
+	IL_00e6:  brtrue IL_00f3
 
-	IL_0017:  nop 
-	IL_0018:  ldarg.0 
-	IL_0019:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_001e:  callvirt instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
-	IL_0023:  callvirt instance string object::ToString()
-	IL_0028:  stloc.0 
-	IL_0029:  br IL_0039
+	IL_00eb:  ldarg.0 
+	IL_00ec:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection()
+	IL_00f1:  br.s IL_00f4
 
-	IL_002e:  ldsfld string [mscorlib]System.String::Empty
-	IL_0033:  stloc.0 
-	IL_0034:  br IL_0039
+	IL_00f3:  ldc.i4.1 
+	IL_00f4:  br.s IL_00f7
 
-	IL_0039:  ldloc.0 
-	IL_003a:  ret 
-    } // end of method ProjectFunctions::GetBuildFileUri
+	IL_00f6:  ldc.i4.1 
+	IL_00f7:  ldstr "Unique only applicable to collection arguments"
+	IL_00fc:  call void class [System]System.Diagnostics.Debug::Assert(bool, string)
+	IL_0101:  ret 
+    } // end of method CommandLineArgument::.ctor
 
-    // method line 71
-    .method public hidebysig 
-           instance default string GetBuildFilePath ()  cil managed 
+    // method line 47
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Reflection.PropertyInfo get_Property ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 12 67 65 74 2D 62 75 69 6C 64 66 69 6C 65   // ...get-buildfile
-		2D 70 61 74 68 00 00                            ) // -path..
-
-        // Method begins at RVA 0x2ad8
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x30a0
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Reflection.PropertyInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance string class NAnt.Core.Project::get_BuildFileLocalName()
-	IL_000c:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0002:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ProjectFunctions::GetBuildFilePath
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineArgument::get_Property
 
-    // method line 72
-    .method public hidebysig 
-           instance default string GetDefaultTarget ()  cil managed 
+    // method line 48
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Type get_ValueType ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 12 67 65 74 2D 64 65 66 61 75 6C 74 2D 74   // ...get-default-t
-		61 72 67 65 74 00 00                            ) // arget..
-
-        // Method begins at RVA 0x2b00
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x30bc
+	// Code size 48 (0x30)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Type	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance string class NAnt.Core.Project::get_DefaultTargetName()
-	IL_000c:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0002:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsCollection()
+	IL_0007:  brtrue IL_0017
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ProjectFunctions::GetDefaultTarget
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsArray()
+	IL_0012:  brfalse IL_0022
 
-    // method line 73
-    .method public hidebysig 
-           instance default string GetBaseDirectory ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 12 67 65 74 2D 62 61 73 65 2D 64 69 72 65   // ...get-base-dire
-		63 74 6F 72 79 00 00                            ) // ctory..
+	IL_0017:  ldarg.0 
+	IL_0018:  ldfld class [mscorlib]System.Type NAnt.Core.Util.CommandLineArgument::_elementType
+	IL_001d:  br IL_0028
 
-        // Method begins at RVA 0x2b28
-	// Code size 20 (0x14)
+	IL_0022:  ldarg.0 
+	IL_0023:  call instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_Type()
+	IL_0028:  stloc.0 
+	IL_0029:  br IL_002e
+
+	IL_002e:  ldloc.0 
+	IL_002f:  ret 
+    } // end of method CommandLineArgument::get_ValueType
+
+    // method line 49
+    .method public hidebysig specialname 
+           instance default string get_LongName ()  cil managed 
+    {
+        // Method begins at RVA 0x30f8
+	// Code size 66 (0x42)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ProjectFunctions::GetBaseDirectory
+	IL_0002:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
+	IL_0007:  brfalse IL_002e
 
-  } // end of class NAnt.Core.Functions.ProjectFunctions
-}
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
+	IL_0012:  callvirt instance string class NAnt.Core.Util.CommandLineArgumentAttribute::get_Name()
+	IL_0017:  brfalse IL_002e
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit TargetFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 06 74 61 72 67 65 74 04 4E 41 6E 74 00 00 ) // ...target.NAnt..
+	IL_001c:  nop 
+	IL_001d:  ldarg.0 
+	IL_001e:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
+	IL_0023:  callvirt instance string class NAnt.Core.Util.CommandLineArgumentAttribute::get_Name()
+	IL_0028:  stloc.0 
+	IL_0029:  br IL_0040
 
+	IL_002e:  nop 
+	IL_002f:  ldarg.0 
+	IL_0030:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_0035:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_003a:  stloc.0 
+	IL_003b:  br IL_0040
 
-    // method line 74
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x2b48
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method TargetFunctions::.ctor
+	IL_0040:  ldloc.0 
+	IL_0041:  ret 
+    } // end of method CommandLineArgument::get_LongName
 
-    // method line 75
-    .method public hidebysig 
-           instance default bool Exists (string name)  cil managed 
+    // method line 50
+    .method public hidebysig specialname 
+           instance default string get_ShortName ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
-
-        // Method begins at RVA 0x2b54
-	// Code size 32 (0x20)
-	.maxstack 2
+        // Method begins at RVA 0x3148
+	// Code size 40 (0x28)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.TargetCollection class NAnt.Core.Project::get_Targets()
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
-	IL_0012:  ldnull 
-	IL_0013:  ceq 
-	IL_0015:  ldc.i4.0 
-	IL_0016:  ceq 
+	IL_0002:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
+	IL_0007:  brfalse IL_001e
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
+	IL_0013:  callvirt instance string class NAnt.Core.Util.CommandLineArgumentAttribute::get_ShortName()
 	IL_0018:  stloc.0 
-	IL_0019:  br IL_001e
+	IL_0019:  br IL_0026
 
-	IL_001e:  ldloc.0 
-	IL_001f:  ret 
-    } // end of method TargetFunctions::Exists
+	IL_001e:  nop 
+	IL_001f:  ldnull 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
 
-    // method line 76
-    .method public hidebysig 
-           instance default string GetCurrentTarget ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 12 67 65 74 2D 63 75 72 72 65 6E 74 2D 74   // ...get-current-t
-		61 72 67 65 74 00 00                            ) // arget..
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method CommandLineArgument::get_ShortName
 
-        // Method begins at RVA 0x2b80
-	// Code size 45 (0x2d)
+    // method line 51
+    .method public hidebysig specialname 
+           instance default string get_Description ()  cil managed 
+    {
+        // Method begins at RVA 0x317c
+	// Code size 40 (0x28)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Target	V_0,
-		string	V_1)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.Target class NAnt.Core.Project::get_CurrentTarget()
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  brtrue IL_001f
+	IL_0002:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
+	IL_0007:  brfalse IL_001e
 
-	IL_0013:  nop 
-	IL_0014:  ldstr "No target is being executed."
-	IL_0019:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
-	IL_001e:  throw 
-	IL_001f:  ldloc.0 
-	IL_0020:  callvirt instance string class NAnt.Core.Target::get_Name()
-	IL_0025:  stloc.1 
-	IL_0026:  br IL_002b
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
+	IL_0013:  callvirt instance string class NAnt.Core.Util.CommandLineArgumentAttribute::get_Description()
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_0026
 
-	IL_002b:  ldloc.1 
-	IL_002c:  ret 
-    } // end of method TargetFunctions::GetCurrentTarget
+	IL_001e:  nop 
+	IL_001f:  ldnull 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
 
-    // method line 77
-    .method public hidebysig 
-           instance default bool HasExecuted (string name)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0C 68 61 73 2D 65 78 65 63 75 74 65 64 00   // ...has-executed.
-		00                                              ) // .
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method CommandLineArgument::get_Description
 
-        // Method begins at RVA 0x2bbc
-	// Code size 67 (0x43)
+    // method line 52
+    .method public hidebysig specialname 
+           instance default bool get_IsRequired ()  cil managed 
+    {
+        // Method begins at RVA 0x31b0
+	// Code size 23 (0x17)
 	.maxstack 3
 	.locals init (
-		class NAnt.Core.Target	V_0,
-		bool	V_1)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.TargetCollection class NAnt.Core.Project::get_Targets()
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
-	IL_0012:  stloc.0 
-	IL_0013:  ldloc.0 
-	IL_0014:  brtrue IL_0035
-
-	IL_0019:  nop 
-	IL_001a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001f:  ldstr "NA1097"
-	IL_0024:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0029:  ldarg.1 
-	IL_002a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002f:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0034:  throw 
-	IL_0035:  ldloc.0 
-	IL_0036:  callvirt instance bool class NAnt.Core.Target::get_Executed()
-	IL_003b:  stloc.1 
-	IL_003c:  br IL_0041
-
-	IL_0041:  ldloc.1 
-	IL_0042:  ret 
-    } // end of method TargetFunctions::HasExecuted
-
-  } // end of class NAnt.Core.Functions.TargetFunctions
-}
-
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit TaskFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (01 00 04 74 61 73 6B 04 4E 41 6E 74 00 00 ) // ...task.NAnt..
-
+	IL_0001:  ldc.i4.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgument::_argumentType
+	IL_0008:  ldc.i4.1 
+	IL_0009:  and 
+	IL_000a:  ceq 
+	IL_000c:  ldc.i4.0 
+	IL_000d:  ceq 
+	IL_000f:  stloc.0 
+	IL_0010:  br IL_0015
 
-    // method line 78
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x2c0b
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method TaskFunctions::.ctor
+	IL_0015:  ldloc.0 
+	IL_0016:  ret 
+    } // end of method CommandLineArgument::get_IsRequired
 
-    // method line 79
-    .method public hidebysig 
-           instance default bool Exists (string name)  cil managed 
+    // method line 53
+    .method public hidebysig specialname 
+           instance default bool get_SeenValue ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
-
-        // Method begins at RVA 0x2c18
-	// Code size 20 (0x14)
-	.maxstack 2
+        // Method begins at RVA 0x31d4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
-	IL_0006:  ldarg.1 
-	IL_0007:  callvirt instance bool class NAnt.Core.TaskBuilderCollection::Contains(string)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Util.CommandLineArgument::_seenValue
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method TaskFunctions::Exists
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineArgument::get_SeenValue
 
-    // method line 80
-    .method public hidebysig 
-           instance default class [mscorlib]System.Reflection.Assembly GetAssembly (string name)  cil managed 
+    // method line 54
+    .method public hidebysig specialname 
+           instance default bool get_AllowMultiple ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0C 67 65 74 2D 61 73 73 65 6D 62 6C 79 00   // ...get-assembly.
-		00                                              ) // .
-
-        // Method begins at RVA 0x2c38
-	// Code size 61 (0x3d)
+        // Method begins at RVA 0x31f0
+	// Code size 59 (0x3b)
 	.maxstack 3
 	.locals init (
-		class NAnt.Core.TaskBuilder	V_0,
-		class [mscorlib]System.Reflection.Assembly	V_1)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
-	IL_0006:  ldarg.1 
-	IL_0007:  callvirt instance class NAnt.Core.TaskBuilder class NAnt.Core.TaskBuilderCollection::get_Item(string)
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  brtrue IL_002f
-
-	IL_0013:  nop 
-	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0019:  ldstr "NA1099"
-	IL_001e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0023:  ldarg.1 
-	IL_0024:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0029:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_002e:  throw 
-	IL_002f:  ldloc.0 
-	IL_0030:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
-	IL_0035:  stloc.1 
-	IL_0036:  br IL_003b
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsCollection()
+	IL_0007:  brtrue IL_0022
 
-	IL_003b:  ldloc.1 
-	IL_003c:  ret 
-    } // end of method TaskFunctions::GetAssembly
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsArray()
+	IL_0012:  brtrue IL_0022
 
-  } // end of class NAnt.Core.Functions.TaskFunctions
-}
+	IL_0017:  ldarg.0 
+	IL_0018:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection()
+	IL_001d:  brfalse IL_0032
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit PropertyFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 08 70 72 6F 70 65 72 74 79 04 4E 41 6E 74   // ...property.NAnt
-		00 00                                           ) // ..
+	IL_0022:  ldc.i4.0 
+	IL_0023:  ldarg.0 
+	IL_0024:  ldfld valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgument::_argumentType
+	IL_0029:  ldc.i4.4 
+	IL_002a:  and 
+	IL_002b:  ceq 
+	IL_002d:  ldc.i4.0 
+	IL_002e:  ceq 
+	IL_0030:  br.s IL_0033
 
+	IL_0032:  ldc.i4.0 
+	IL_0033:  stloc.0 
+	IL_0034:  br IL_0039
 
-    // method line 81
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x2c81
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method PropertyFunctions::.ctor
+	IL_0039:  ldloc.0 
+	IL_003a:  ret 
+    } // end of method CommandLineArgument::get_AllowMultiple
 
-    // method line 82
-    .method public hidebysig 
-           instance default bool Exists (string name)  cil managed 
+    // method line 55
+    .method public hidebysig specialname 
+           instance default bool get_Unique ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
-
-        // Method begins at RVA 0x2c8c
-	// Code size 26 (0x1a)
-	.maxstack 2
+        // Method begins at RVA 0x3238
+	// Code size 23 (0x17)
+	.maxstack 3
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance bool class NAnt.Core.PropertyDictionary::Contains(string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0001:  ldc.i4.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgument::_argumentType
+	IL_0008:  ldc.i4.2 
+	IL_0009:  and 
+	IL_000a:  ceq 
+	IL_000c:  ldc.i4.0 
+	IL_000d:  ceq 
+	IL_000f:  stloc.0 
+	IL_0010:  br IL_0015
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method PropertyFunctions::Exists
+	IL_0015:  ldloc.0 
+	IL_0016:  ret 
+    } // end of method CommandLineArgument::get_Unique
 
-    // method line 83
-    .method public hidebysig 
-           instance default bool IsReadOnly (string name)  cil managed 
+    // method line 56
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Type get_Type ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0B 69 73 2D 72 65 61 64 6F 6E 6C 79 00 00 ) // ...is-readonly..
-
-        // Method begins at RVA 0x2cb4
-	// Code size 76 (0x4c)
-	.maxstack 3
+        // Method begins at RVA 0x325c
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.Type	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance bool class NAnt.Core.PropertyDictionary::Contains(string)
-	IL_0012:  brtrue IL_0033
-
-	IL_0017:  nop 
-	IL_0018:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001d:  ldstr "NA1053"
-	IL_0022:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0027:  ldarg.1 
-	IL_0028:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0032:  throw 
-	IL_0033:  ldarg.0 
-	IL_0034:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0039:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_003e:  ldarg.1 
-	IL_003f:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsReadOnlyProperty(string)
-	IL_0044:  stloc.0 
-	IL_0045:  br IL_004a
+	IL_0002:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_0007:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_004a:  ldloc.0 
-	IL_004b:  ret 
-    } // end of method PropertyFunctions::IsReadOnly
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method CommandLineArgument::get_Type
 
-    // method line 84
-    .method public hidebysig 
-           instance default bool IsDynamic (string name)  cil managed 
+    // method line 57
+    .method public hidebysig specialname 
+           instance default bool get_IsCollection ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 69 73 2D 64 79 6E 61 6D 69 63 00 00 ) // ...is-dynamic..
-
-        // Method begins at RVA 0x2d0c
-	// Code size 76 (0x4c)
-	.maxstack 3
+        // Method begins at RVA 0x327c
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance bool class NAnt.Core.PropertyDictionary::Contains(string)
-	IL_0012:  brtrue IL_0033
-
-	IL_0017:  nop 
-	IL_0018:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001d:  ldstr "NA1053"
-	IL_0022:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0027:  ldarg.1 
-	IL_0028:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0032:  throw 
-	IL_0033:  ldarg.0 
-	IL_0034:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0039:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_003e:  ldarg.1 
-	IL_003f:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsDynamicProperty(string)
-	IL_0044:  stloc.0 
-	IL_0045:  br IL_004a
-
-	IL_004a:  ldloc.0 
-	IL_004b:  ret 
-    } // end of method PropertyFunctions::IsDynamic
-
-  } // end of class NAnt.Core.Functions.PropertyFunctions
-}
-
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit PlatformFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 08 70 6C 61 74 66 6F 72 6D 04 4E 41 6E 74   // ...platform.NAnt
-		00 00                                           ) // ..
-
+	IL_0002:  call instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_Type()
+	IL_0007:  call bool class NAnt.Core.Util.CommandLineArgument::IsCollectionType(class [mscorlib]System.Type)
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 85
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x2d64
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method PlatformFunctions::.ctor
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method CommandLineArgument::get_IsCollection
 
-    // method line 86
-    .method public hidebysig 
-           instance default string GetName ()  cil managed 
+    // method line 58
+    .method public hidebysig specialname 
+           instance default bool get_IsNameValueCollection ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 6E 61 6D 65 00 00 ) // ...get-name..
-
-        // Method begins at RVA 0x2d70
+        // Method begins at RVA 0x329c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance string class NAnt.Core.Project::get_PlatformName()
+	IL_0002:  call instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_Type()
+	IL_0007:  call bool class NAnt.Core.Util.CommandLineArgument::IsNameValueCollectionType(class [mscorlib]System.Type)
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method PlatformFunctions::GetName
+    } // end of method CommandLineArgument::get_IsNameValueCollection
 
-    // method line 87
-    .method public static hidebysig 
-           default bool IsWin32 ()  cil managed 
+    // method line 59
+    .method public hidebysig specialname 
+           instance default bool get_IsArray ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 69 73 2D 77 69 6E 33 32 00 00 ) // ...is-win32..
-
-        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
-		01 00 24 55 73 65 20 74 68 65 20 69 73 2D 77 69   // ..$Use the is-wi
-		6E 64 6F 77 73 20 66 75 6E 63 74 69 6F 6E 20 69   // ndows function i
-		6E 73 74 65 61 64 2E 00 00                      ) // nstead...
-
-        // Method begins at RVA 0x2d90
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x32bc
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  call bool class NAnt.Core.PlatformHelper::get_IsWindows()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_Type()
+	IL_0007:  call bool class NAnt.Core.Util.CommandLineArgument::IsArrayType(class [mscorlib]System.Type)
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method PlatformFunctions::IsWin32
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method CommandLineArgument::get_IsArray
 
-    // method line 88
-    .method public static hidebysig 
-           default bool IsWindows ()  cil managed 
+    // method line 60
+    .method public hidebysig specialname 
+           instance default bool get_IsDefault ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 69 73 2D 77 69 6E 64 6F 77 73 00 00 ) // ...is-windows..
-
-        // Method begins at RVA 0x2dac
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0x32dc
+	// Code size 37 (0x25)
+	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  call bool class NAnt.Core.PlatformHelper::get_IsWindows()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
+	IL_0007:  brfalse IL_001c
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method PlatformFunctions::IsWindows
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
+	IL_0012:  isinst NAnt.Core.Util.DefaultCommandLineArgumentAttribute
+	IL_0017:  ldnull 
+	IL_0018:  cgt.un 
+	IL_001a:  br.s IL_001d
 
-    // method line 89
-    .method public static hidebysig 
-           default bool IsUnix ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 07 69 73 2D 75 6E 69 78 00 00 ) // ...is-unix..
+	IL_001c:  ldc.i4.0 
+	IL_001d:  stloc.0 
+	IL_001e:  br IL_0023
 
-        // Method begins at RVA 0x2dc8
-	// Code size 14 (0xe)
-	.maxstack 1
+	IL_0023:  ldloc.0 
+	IL_0024:  ret 
+    } // end of method CommandLineArgument::get_IsDefault
+
+    // method line 61
+    .method public hidebysig specialname 
+           instance default bool get_IsExclusive ()  cil managed 
+    {
+        // Method begins at RVA 0x3310
+	// Code size 23 (0x17)
+	.maxstack 3
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method PlatformFunctions::IsUnix
-
-  } // end of class NAnt.Core.Functions.PlatformFunctions
-}
-
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit DateTimeFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 08 64 61 74 65 74 69 6D 65 09 44 61 74 65   // ...datetime.Date
-		2F 54 69 6D 65 00 00                            ) // /Time..
+	IL_0001:  ldc.i4.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgument::_argumentType
+	IL_0008:  ldc.i4.8 
+	IL_0009:  and 
+	IL_000a:  ceq 
+	IL_000c:  ldc.i4.0 
+	IL_000d:  ceq 
+	IL_000f:  stloc.0 
+	IL_0010:  br IL_0015
 
+	IL_0015:  ldloc.0 
+	IL_0016:  ret 
+    } // end of method CommandLineArgument::get_IsExclusive
 
-    // method line 90
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+    // method line 62
+    .method public hidebysig 
+           instance default void Finish (object destination)  cil managed 
     {
-        // Method begins at RVA 0x2de2
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method DateTimeFunctions::.ctor
-
-    // method line 91
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.DateTime Now ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 03 6E 6F 77 00 00 ) // ...now..
-
-        // Method begins at RVA 0x2df0
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0x3334
+        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
+	// Code size 1197 (0x4ad)
+	.maxstack 9
 	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
+		object	V_0,
+		object	V_1,
+		class [mscorlib]System.Reflection.MethodInfo	V_2,
+		class [mscorlib]System.Reflection.MethodInfo	V_3,
+		class [mscorlib]System.Reflection.MethodInfo[]	V_4,
+		int32	V_5,
+		class [mscorlib]System.Reflection.ParameterInfo	V_6,
+		object	V_7,
+		class [mscorlib]System.Collections.IEnumerator	V_8,
+		class [mscorlib]System.IDisposable	V_9,
+		class [mscorlib]System.Exception	V_10,
+		object	V_11,
+		object	V_12,
+		class [mscorlib]System.Reflection.MethodInfo	V_13,
+		class [mscorlib]System.Reflection.MethodInfo	V_14,
+		class [mscorlib]System.Reflection.MethodInfo[]	V_15,
+		int32	V_16,
+		string	V_17,
+		class [mscorlib]System.Collections.IEnumerator	V_18,
+		class [mscorlib]System.IDisposable	V_19,
+		class [mscorlib]System.Exception	V_20)
 	IL_0000:  nop 
-	IL_0001:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsRequired()
+	IL_0007:  brfalse IL_0033
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method DateTimeFunctions::Now
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_SeenValue()
+	IL_0012:  brtrue IL_0033
 
-    // method line 92
-    .method public static hidebysig 
-           default int32 GetYear (valuetype [mscorlib]System.DateTime 'date')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 79 65 61 72 00 00 ) // ...get-year..
+	IL_0017:  nop 
+	IL_0018:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001d:  ldstr "Missing required argument '-{0}'."
+	IL_0022:  ldarg.0 
+	IL_0023:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	IL_0028:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002d:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
+	IL_0032:  throw 
+	IL_0033:  ldarg.0 
+	IL_0034:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsArray()
+	IL_0039:  brfalse IL_006a
 
-        // Method begins at RVA 0x2e0c
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Year()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_003e:  nop 
+	IL_003f:  ldarg.0 
+	IL_0040:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_0045:  ldarg.1 
+	IL_0046:  ldarg.0 
+	IL_0047:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Util.CommandLineArgument::_collectionValues
+	IL_004c:  ldarg.0 
+	IL_004d:  ldfld class [mscorlib]System.Type NAnt.Core.Util.CommandLineArgument::_elementType
+	IL_0052:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
+	IL_0057:  ldc.i4.0 
+	IL_0058:  ldnull 
+	IL_0059:  ldnull 
+	IL_005a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_005f:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_0064:  nop 
+	IL_0065:  br IL_04ac
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetYear
+	IL_006a:  ldarg.0 
+	IL_006b:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsCollection()
+	IL_0070:  brfalse IL_0256
 
-    // method line 93
-    .method public static hidebysig 
-           default int32 GetMonth (valuetype [mscorlib]System.DateTime 'date')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 6D 6F 6E 74 68 00 00 ) // ...get-month..
+	IL_0075:  nop 
+	IL_0076:  ldarg.0 
+	IL_0077:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_007c:  ldarg.1 
+	IL_007d:  ldc.i4.0 
+	IL_007e:  ldnull 
+	IL_007f:  ldnull 
+	IL_0080:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0085:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_008a:  brtrue IL_00fb
 
-        // Method begins at RVA 0x2e28
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Month()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_008f:  nop 
+	IL_0090:  ldarg.0 
+	IL_0091:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_0096:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
+	IL_009b:  brtrue IL_00cb
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetMonth
+	IL_00a0:  nop 
+	IL_00a1:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00a6:  ldstr "NA1171"
+	IL_00ab:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00b0:  ldstr " but is not initialized and does not allow thecollection to be initialized."
+	IL_00b5:  call string string::Concat(string, string)
+	IL_00ba:  ldarg.0 
+	IL_00bb:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	IL_00c0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00c5:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
+	IL_00ca:  throw 
+	IL_00cb:  ldarg.0 
+	IL_00cc:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_00d1:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_00d6:  ldc.i4.s 0x14
+	IL_00d8:  ldnull 
+	IL_00d9:  ldnull 
+	IL_00da:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00df:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_00e4:  stloc.0 
+	IL_00e5:  ldarg.0 
+	IL_00e6:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_00eb:  ldarg.1 
+	IL_00ec:  ldloc.0 
+	IL_00ed:  ldc.i4.0 
+	IL_00ee:  ldnull 
+	IL_00ef:  ldnull 
+	IL_00f0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00f5:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_00fa:  nop 
+	IL_00fb:  ldarg.0 
+	IL_00fc:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_0101:  ldarg.1 
+	IL_0102:  ldc.i4.0 
+	IL_0103:  ldnull 
+	IL_0104:  ldnull 
+	IL_0105:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_010a:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_010f:  stloc.1 
+	IL_0110:  ldnull 
+	IL_0111:  stloc.2 
+	IL_0112:  nop 
+	IL_0113:  ldloc.1 
+	IL_0114:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0119:  ldc.i4.s 0x14
+	IL_011b:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_0120:  stloc.s 4
+	IL_0122:  ldc.i4.0 
+	IL_0123:  stloc.s 5
+	IL_0125:  br IL_018a
 
-    // method line 94
-    .method public static hidebysig 
-           default int32 GetDay (valuetype [mscorlib]System.DateTime 'date')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 07 67 65 74 2D 64 61 79 00 00 ) // ...get-day..
+	IL_012a:  ldloc.s 4
+	IL_012c:  ldloc.s 5
+	IL_012e:  ldelem.ref 
+	IL_012f:  stloc.3 
+	IL_0130:  nop 
+	IL_0131:  ldloc.3 
+	IL_0132:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_0137:  ldstr "Add"
+	IL_013c:  call bool string::op_Equality(string, string)
+	IL_0141:  brfalse IL_0183
 
-        // Method begins at RVA 0x2e44
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Day()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_0146:  ldloc.3 
+	IL_0147:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_014c:  ldlen 
+	IL_014d:  conv.i4 
+	IL_014e:  ldc.i4.1 
+	IL_014f:  bne.un IL_0183
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetDay
+	IL_0154:  nop 
+	IL_0155:  ldloc.3 
+	IL_0156:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_015b:  ldc.i4.0 
+	IL_015c:  ldelem.ref 
+	IL_015d:  stloc.s 6
+	IL_015f:  ldloc.s 6
+	IL_0161:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	IL_0166:  ldtoken [mscorlib]System.Object
+	IL_016b:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0170:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0175:  brfalse IL_0182
 
-    // method line 95
-    .method public static hidebysig 
-           default int32 GetHour (valuetype [mscorlib]System.DateTime 'date')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 68 6F 75 72 00 00 ) // ...get-hour..
+	IL_017a:  nop 
+	IL_017b:  ldloc.3 
+	IL_017c:  stloc.2 
+	IL_017d:  br IL_0195
 
-        // Method begins at RVA 0x2e60
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Hour()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_0182:  nop 
+	IL_0183:  nop 
+	IL_0184:  ldloc.s 5
+	IL_0186:  ldc.i4.1 
+	IL_0187:  add 
+	IL_0188:  stloc.s 5
+	IL_018a:  ldloc.s 5
+	IL_018c:  ldloc.s 4
+	IL_018e:  ldlen 
+	IL_018f:  conv.i4 
+	IL_0190:  blt IL_012a
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetHour
+	IL_0195:  ldloc.2 
+	IL_0196:  ldnull 
+	IL_0197:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_019c:  brfalse IL_01c2
 
-    // method line 96
-    .method public static hidebysig 
-           default int32 GetMinute (valuetype [mscorlib]System.DateTime 'date')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 67 65 74 2D 6D 69 6E 75 74 65 00 00 ) // ...get-minute..
+	IL_01a1:  nop 
+	IL_01a2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01a7:  ldstr "NA1169"
+	IL_01ac:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_01b1:  ldarg.0 
+	IL_01b2:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	IL_01b7:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_01bc:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
+	IL_01c1:  throw 
+	IL_01c2:  nop 
+	.try { // 1
+	  IL_01c3:  nop 
+	  IL_01c4:  nop 
+	  IL_01c5:  ldarg.0 
+	  IL_01c6:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Util.CommandLineArgument::_collectionValues
+	  IL_01cb:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	  IL_01d0:  stloc.s 8
+	  .try { // 0
+	    IL_01d2:  br IL_01fc
 
-        // Method begins at RVA 0x2e7c
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Minute()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	    IL_01d7:  ldloc.s 8
+	    IL_01d9:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_01de:  stloc.s 7
+	    IL_01e0:  nop 
+	    IL_01e1:  ldloc.2 
+	    IL_01e2:  ldloc.1 
+	    IL_01e3:  ldc.i4.0 
+	    IL_01e4:  ldnull 
+	    IL_01e5:  ldc.i4.1 
+	    IL_01e6:  newarr [mscorlib]System.Object
+	    IL_01eb:  dup 
+	    IL_01ec:  ldc.i4.0 
+	    IL_01ed:  ldloc.s 7
+	    IL_01ef:  stelem.ref 
+	    IL_01f0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_01f5:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	    IL_01fa:  pop 
+	    IL_01fb:  nop 
+	    IL_01fc:  ldloc.s 8
+	    IL_01fe:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_0203:  brtrue IL_01d7
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetMinute
+	    IL_0208:  leave IL_0224
 
-    // method line 97
-    .method public static hidebysig 
-           default int32 GetSecond (valuetype [mscorlib]System.DateTime 'date')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 67 65 74 2D 73 65 63 6F 6E 64 00 00 ) // ...get-second..
+	  } // end .try 0
+	  finally  { // 0
+	    IL_020d:  ldloc.s 8
+	    IL_020f:  isinst [mscorlib]System.IDisposable
+	    IL_0214:  dup 
+	    IL_0215:  stloc.s 9
+	    IL_0217:  brfalse IL_0223
 
-        // Method begins at RVA 0x2e98
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Second()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	    IL_021c:  ldloc.s 9
+	    IL_021e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0223:  endfinally 
+	  } // end handler 0
+	  IL_0224:  nop 
+	  IL_0225:  leave IL_024f
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetSecond
+	} // end .try 1
+	catch class [mscorlib]System.Exception { // 1
+	  IL_022a:  stloc.s 10
+	  IL_022c:  nop 
+	  IL_022d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0232:  ldstr "NA1173"
+	  IL_0237:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_023c:  ldarg.0 
+	  IL_023d:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	  IL_0242:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0247:  ldloc.s 10
+	  IL_0249:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string, class [mscorlib]System.Exception)
+	  IL_024e:  throw 
+	} // end handler 1
+	IL_024f:  nop 
+	IL_0250:  nop 
+	IL_0251:  br IL_04ac
 
-    // method line 98
-    .method public static hidebysig 
-           default int32 GetMillisecond (valuetype [mscorlib]System.DateTime 'date')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0F 67 65 74 2D 6D 69 6C 6C 69 73 65 63 6F   // ...get-milliseco
-		6E 64 00 00                                     ) // nd..
+	IL_0256:  ldarg.0 
+	IL_0257:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection()
+	IL_025c:  brfalse IL_0483
 
-        // Method begins at RVA 0x2eb4
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Millisecond()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_0261:  nop 
+	IL_0262:  ldarg.0 
+	IL_0263:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_0268:  ldarg.1 
+	IL_0269:  ldc.i4.0 
+	IL_026a:  ldnull 
+	IL_026b:  ldnull 
+	IL_026c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0271:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_0276:  brtrue IL_02e9
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetMillisecond
+	IL_027b:  nop 
+	IL_027c:  ldarg.0 
+	IL_027d:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_0282:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
+	IL_0287:  brtrue IL_02b7
 
-    // method line 99
-    .method public static hidebysig 
-           default int64 GetTicks (valuetype [mscorlib]System.DateTime 'date')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 74 69 63 6B 73 00 00 ) // ...get-ticks..
+	IL_028c:  nop 
+	IL_028d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0292:  ldstr "NA1171"
+	IL_0297:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_029c:  ldstr " but is not initialized and does not allow thecollection to be initialized."
+	IL_02a1:  call string string::Concat(string, string)
+	IL_02a6:  ldarg.0 
+	IL_02a7:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	IL_02ac:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_02b1:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
+	IL_02b6:  throw 
+	IL_02b7:  ldarg.0 
+	IL_02b8:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_02bd:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_02c2:  ldc.i4.s 0x14
+	IL_02c4:  ldnull 
+	IL_02c5:  ldnull 
+	IL_02c6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_02cb:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_02d0:  stloc.s 11
+	IL_02d2:  ldarg.0 
+	IL_02d3:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_02d8:  ldarg.1 
+	IL_02d9:  ldloc.s 11
+	IL_02db:  ldc.i4.0 
+	IL_02dc:  ldnull 
+	IL_02dd:  ldnull 
+	IL_02de:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_02e3:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_02e8:  nop 
+	IL_02e9:  ldarg.0 
+	IL_02ea:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_02ef:  ldarg.1 
+	IL_02f0:  ldc.i4.0 
+	IL_02f1:  ldnull 
+	IL_02f2:  ldnull 
+	IL_02f3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_02f8:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_02fd:  stloc.s 12
+	IL_02ff:  ldnull 
+	IL_0300:  stloc.s 13
+	IL_0302:  nop 
+	IL_0303:  ldloc.s 12
+	IL_0305:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_030a:  ldc.i4.s 0x14
+	IL_030c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_0311:  stloc.s 15
+	IL_0313:  ldc.i4.0 
+	IL_0314:  stloc.s 16
+	IL_0316:  br IL_039f
 
-        // Method begins at RVA 0x2ed0
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		int64	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int64 valuetype [mscorlib]System.DateTime::get_Ticks()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_031b:  ldloc.s 15
+	IL_031d:  ldloc.s 16
+	IL_031f:  ldelem.ref 
+	IL_0320:  stloc.s 14
+	IL_0322:  nop 
+	IL_0323:  ldloc.s 14
+	IL_0325:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_032a:  ldstr "Add"
+	IL_032f:  call bool string::op_Equality(string, string)
+	IL_0334:  brfalse IL_0398
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetTicks
+	IL_0339:  ldloc.s 14
+	IL_033b:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_0340:  ldlen 
+	IL_0341:  conv.i4 
+	IL_0342:  ldc.i4.2 
+	IL_0343:  bne.un IL_0398
 
-    // method line 100
-    .method public static hidebysig 
-           default int32 GetDayOfWeek (valuetype [mscorlib]System.DateTime 'date')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0F 67 65 74 2D 64 61 79 2D 6F 66 2D 77 65   // ...get-day-of-we
-		65 6B 00 00                                     ) // ek..
+	IL_0348:  nop 
+	IL_0349:  ldloc.s 14
+	IL_034b:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_0350:  ldc.i4.0 
+	IL_0351:  ldelem.ref 
+	IL_0352:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	IL_0357:  ldtoken [mscorlib]System.String
+	IL_035c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0361:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0366:  brfalse IL_0397
 
-        // Method begins at RVA 0x2eec
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance valuetype [mscorlib]System.DayOfWeek valuetype [mscorlib]System.DateTime::get_DayOfWeek()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_036b:  ldloc.s 14
+	IL_036d:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_0372:  ldc.i4.1 
+	IL_0373:  ldelem.ref 
+	IL_0374:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	IL_0379:  ldtoken [mscorlib]System.String
+	IL_037e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0383:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0388:  brfalse IL_0397
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetDayOfWeek
+	IL_038d:  nop 
+	IL_038e:  ldloc.s 14
+	IL_0390:  stloc.s 13
+	IL_0392:  br IL_03aa
 
-    // method line 101
-    .method public static hidebysig 
-           default int32 GetDayOfYear (valuetype [mscorlib]System.DateTime 'date')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0F 67 65 74 2D 64 61 79 2D 6F 66 2D 79 65   // ...get-day-of-ye
-		61 72 00 00                                     ) // ar..
+	IL_0397:  nop 
+	IL_0398:  nop 
+	IL_0399:  ldloc.s 16
+	IL_039b:  ldc.i4.1 
+	IL_039c:  add 
+	IL_039d:  stloc.s 16
+	IL_039f:  ldloc.s 16
+	IL_03a1:  ldloc.s 15
+	IL_03a3:  ldlen 
+	IL_03a4:  conv.i4 
+	IL_03a5:  blt IL_031b
 
-        // Method begins at RVA 0x2f08
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_DayOfYear()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_03aa:  ldloc.s 13
+	IL_03ac:  ldnull 
+	IL_03ad:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_03b2:  brfalse IL_03d8
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetDayOfYear
+	IL_03b7:  nop 
+	IL_03b8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_03bd:  ldstr "NA1169"
+	IL_03c2:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_03c7:  ldarg.0 
+	IL_03c8:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	IL_03cd:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_03d2:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
+	IL_03d7:  throw 
+	IL_03d8:  nop 
+	.try { // 3
+	  IL_03d9:  nop 
+	  IL_03da:  nop 
+	  IL_03db:  ldarg.0 
+	  IL_03dc:  ldfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.Util.CommandLineArgument::_valuePairs
+	  IL_03e1:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System]System.Collections.Specialized.NameObjectCollectionBase::GetEnumerator()
+	  IL_03e6:  stloc.s 18
+	  .try { // 2
+	    IL_03e8:  br IL_0429
 
-    // method line 102
-    .method public static hidebysig 
-           default int32 GetDaysInMonth (int32 year, int32 month)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 11 67 65 74 2D 64 61 79 73 2D 69 6E 2D 6D   // ...get-days-in-m
-		6F 6E 74 68 00 00                               ) // onth..
+	    IL_03ed:  ldloc.s 18
+	    IL_03ef:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_03f4:  castclass [mscorlib]System.String
+	    IL_03f9:  stloc.s 17
+	    IL_03fb:  nop 
+	    IL_03fc:  ldloc.s 13
+	    IL_03fe:  ldloc.s 12
+	    IL_0400:  ldc.i4.0 
+	    IL_0401:  ldnull 
+	    IL_0402:  ldc.i4.2 
+	    IL_0403:  newarr [mscorlib]System.Object
+	    IL_0408:  dup 
+	    IL_0409:  ldc.i4.0 
+	    IL_040a:  ldloc.s 17
+	    IL_040c:  stelem.ref 
+	    IL_040d:  dup 
+	    IL_040e:  ldc.i4.1 
+	    IL_040f:  ldarg.0 
+	    IL_0410:  ldfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.Util.CommandLineArgument::_valuePairs
+	    IL_0415:  ldloc.s 17
+	    IL_0417:  callvirt instance string class [System]System.Collections.Specialized.NameValueCollection::Get(string)
+	    IL_041c:  stelem.ref 
+	    IL_041d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0422:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	    IL_0427:  pop 
+	    IL_0428:  nop 
+	    IL_0429:  ldloc.s 18
+	    IL_042b:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_0430:  brtrue IL_03ed
 
-        // Method begins at RVA 0x2f24
-	// Code size 16 (0x10)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call int32 valuetype [mscorlib]System.DateTime::DaysInMonth(int32, int32)
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	    IL_0435:  leave IL_0451
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method DateTimeFunctions::GetDaysInMonth
+	  } // end .try 2
+	  finally  { // 2
+	    IL_043a:  ldloc.s 18
+	    IL_043c:  isinst [mscorlib]System.IDisposable
+	    IL_0441:  dup 
+	    IL_0442:  stloc.s 19
+	    IL_0444:  brfalse IL_0450
 
-    // method line 103
-    .method public static hidebysig 
-           default bool IsLeapYear (int32 year)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0C 69 73 2D 6C 65 61 70 2D 79 65 61 72 00   // ...is-leap-year.
-		00                                              ) // .
+	    IL_0449:  ldloc.s 19
+	    IL_044b:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0450:  endfinally 
+	  } // end handler 2
+	  IL_0451:  nop 
+	  IL_0452:  leave IL_047c
 
-        // Method begins at RVA 0x2f40
-	// Code size 15 (0xf)
-	.maxstack 1
+	} // end .try 3
+	catch class [mscorlib]System.Exception { // 3
+	  IL_0457:  stloc.s 20
+	  IL_0459:  nop 
+	  IL_045a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_045f:  ldstr "NA1173"
+	  IL_0464:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0469:  ldarg.0 
+	  IL_046a:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	  IL_046f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0474:  ldloc.s 20
+	  IL_0476:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string, class [mscorlib]System.Exception)
+	  IL_047b:  throw 
+	} // end handler 3
+	IL_047c:  nop 
+	IL_047d:  nop 
+	IL_047e:  br IL_04ac
+
+	IL_0483:  nop 
+	IL_0484:  ldarg.0 
+	IL_0485:  ldfld object NAnt.Core.Util.CommandLineArgument::_argumentValue
+	IL_048a:  brfalse IL_04ab
+
+	IL_048f:  nop 
+	IL_0490:  ldarg.0 
+	IL_0491:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_0496:  ldarg.1 
+	IL_0497:  ldarg.0 
+	IL_0498:  ldfld object NAnt.Core.Util.CommandLineArgument::_argumentValue
+	IL_049d:  ldc.i4.0 
+	IL_049e:  ldnull 
+	IL_049f:  ldnull 
+	IL_04a0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_04a5:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_04aa:  nop 
+	IL_04ab:  nop 
+	IL_04ac:  ret 
+    } // end of method CommandLineArgument::Finish
+
+    // method line 63
+    .method public hidebysig 
+           instance default void SetValue (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3824
+	// Code size 211 (0xd3)
+	.maxstack 4
 	.locals init (
-		bool	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call bool valuetype [mscorlib]System.DateTime::IsLeapYear(int32)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_SeenValue()
+	IL_0007:  brfalse IL_0038
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DateTimeFunctions::IsLeapYear
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_AllowMultiple()
+	IL_0012:  brtrue IL_0038
 
-  } // end of class NAnt.Core.Functions.DateTimeFunctions
-}
+	IL_0017:  nop 
+	IL_0018:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001d:  ldstr "NA1175"
+	IL_0022:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0027:  ldarg.0 
+	IL_0028:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	IL_002d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0032:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
+	IL_0037:  throw 
+	IL_0038:  ldarg.0 
+	IL_0039:  ldc.i4.1 
+	IL_003a:  stfld bool NAnt.Core.Util.CommandLineArgument::_seenValue
+	IL_003f:  ldarg.0 
+	IL_0040:  ldarg.0 
+	IL_0041:  call instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_ValueType()
+	IL_0046:  ldarg.1 
+	IL_0047:  call instance object class NAnt.Core.Util.CommandLineArgument::ParseValue(class [mscorlib]System.Type, string)
+	IL_004c:  stloc.0 
+	IL_004d:  ldarg.0 
+	IL_004e:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsCollection()
+	IL_0053:  brtrue IL_0063
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit DateTimeConversionFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 08 64 61 74 65 74 69 6D 65 0A 43 6F 6E 76   // ...datetime.Conv
-		65 72 73 69 6F 6E 00 00                         ) // ersion..
+	IL_0058:  ldarg.0 
+	IL_0059:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsArray()
+	IL_005e:  brfalse IL_00b7
 
+	IL_0063:  nop 
+	IL_0064:  ldarg.0 
+	IL_0065:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_Unique()
+	IL_006a:  brfalse IL_00a2
 
-    // method line 104
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x2f5b
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method DateTimeConversionFunctions::.ctor
+	IL_006f:  ldarg.0 
+	IL_0070:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Util.CommandLineArgument::_collectionValues
+	IL_0075:  ldloc.0 
+	IL_0076:  callvirt instance bool class [mscorlib]System.Collections.ArrayList::Contains(object)
+	IL_007b:  brfalse IL_00a2
 
-    // method line 105
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.DateTime Parse (string s)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
+	IL_0080:  nop 
+	IL_0081:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0086:  ldstr "NA1172"
+	IL_008b:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0090:  ldarg.1 
+	IL_0091:  ldarg.0 
+	IL_0092:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	IL_0097:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_009c:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
+	IL_00a1:  throw 
+	IL_00a2:  nop 
+	IL_00a3:  ldarg.0 
+	IL_00a4:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Util.CommandLineArgument::_collectionValues
+	IL_00a9:  ldloc.0 
+	IL_00aa:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_00af:  pop 
+	IL_00b0:  nop 
+	IL_00b1:  nop 
+	IL_00b2:  br IL_00d2
 
-        // Method begins at RVA 0x2f68
-	// Code size 20 (0x14)
-	.maxstack 2
-	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0007:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::Parse(string, class [mscorlib]System.IFormatProvider)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_00b7:  ldarg.0 
+	IL_00b8:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection()
+	IL_00bd:  brfalse IL_00c9
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DateTimeConversionFunctions::Parse
+	IL_00c2:  nop 
+	IL_00c3:  nop 
+	IL_00c4:  br IL_00d2
 
-    // method line 106
-    .method public static hidebysig 
-           default string ToString (valuetype [mscorlib]System.DateTime 'value')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
+	IL_00c9:  nop 
+	IL_00ca:  ldarg.0 
+	IL_00cb:  ldloc.0 
+	IL_00cc:  stfld object NAnt.Core.Util.CommandLineArgument::_argumentValue
+	IL_00d1:  nop 
+	IL_00d2:  ret 
+    } // end of method CommandLineArgument::SetValue
 
-        // Method begins at RVA 0x2f88
-	// Code size 21 (0x15)
-	.maxstack 2
+    // method line 64
+    .method private hidebysig 
+           instance default object ParseValue (class [mscorlib]System.Type 'type', string stringData)  cil managed 
+    {
+        // Method begins at RVA 0x3904
+	// Code size 810 (0x32a)
+	.maxstack 9
 	.locals init (
-		string	V_0)
+		object	V_0,
+		class [System]System.Text.RegularExpressions.Match	V_1,
+		string	V_2,
+		string	V_3,
+		class [mscorlib]System.ArgumentException	V_4,
+		string	V_5,
+		object	V_6,
+		class [mscorlib]System.Collections.IEnumerator	V_7,
+		class [mscorlib]System.IDisposable	V_8,
+		class [mscorlib]System.Reflection.MethodInfo	V_9,
+		class [mscorlib]System.Reflection.ConstructorInfo	V_10,
+		class [mscorlib]System.Exception	V_11)
 	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0008:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0001:  ldarg.2 
+	IL_0002:  brtrue IL_001c
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DateTimeConversionFunctions::ToString
+	IL_0007:  ldarg.1 
+	IL_0008:  ldtoken [mscorlib]System.Boolean
+	IL_000d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0012:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0017:  brfalse IL_0307
 
-    // method line 107
-    .method public static hidebysig 
-           default string ToString (valuetype [mscorlib]System.DateTime 'value', string format)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 10 66 6F 72 6D 61 74 2D 74 6F 2D 73 74 72   // ...format-to-str
-		69 6E 67 00 00                                  ) // ing..
+	IL_001c:  ldarg.2 
+	IL_001d:  brfalse IL_002e
 
-        // Method begins at RVA 0x2fac
-	// Code size 22 (0x16)
-	.maxstack 3
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  ldarg.1 
-	IL_0004:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0009:  call instance string valuetype [mscorlib]System.DateTime::ToString(string, class [mscorlib]System.IFormatProvider)
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0014
+	IL_0022:  ldarg.2 
+	IL_0023:  callvirt instance int32 string::get_Length()
+	IL_0028:  ldc.i4.0 
+	IL_0029:  ble IL_0307
 
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method DateTimeConversionFunctions::ToString
+	IL_002e:  nop 
+	.try { // 2
+	  IL_002f:  nop 
+	  IL_0030:  ldarg.1 
+	  IL_0031:  ldtoken [mscorlib]System.String
+	  IL_0036:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_003b:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_0040:  brfalse IL_004d
 
-  } // end of class NAnt.Core.Functions.DateTimeConversionFunctions
-}
+	  IL_0045:  nop 
+	  IL_0046:  ldarg.2 
+	  IL_0047:  stloc.0 
+	  IL_0048:  leave IL_0328
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit BooleanConversionFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 04 62 6F 6F 6C 0A 43 6F 6E 76 65 72 73 69   // ...bool.Conversi
-		6F 6E 00 00                                     ) // on..
+	  IL_004d:  ldarg.1 
+	  IL_004e:  ldtoken [mscorlib]System.Boolean
+	  IL_0053:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0058:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_005d:  brfalse IL_00a9
 
+	  IL_0062:  nop 
+	  IL_0063:  ldarg.2 
+	  IL_0064:  brfalse IL_0079
 
-    // method line 108
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x2fce
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method BooleanConversionFunctions::.ctor
+	  IL_0069:  ldarg.2 
+	  IL_006a:  ldstr "+"
+	  IL_006f:  call bool string::op_Equality(string, string)
+	  IL_0074:  brfalse IL_0086
 
-    // method line 109
-    .method public static hidebysig 
-           default bool Parse (string s)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
+	  IL_0079:  nop 
+	  IL_007a:  ldc.i4.1 
+	  IL_007b:  box [mscorlib]System.Boolean
+	  IL_0080:  stloc.0 
+	  IL_0081:  leave IL_0328
 
-        // Method begins at RVA 0x2fdc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call bool bool::Parse(string)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0086:  ldarg.2 
+	  IL_0087:  ldstr "-"
+	  IL_008c:  call bool string::op_Equality(string, string)
+	  IL_0091:  brfalse IL_00a3
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BooleanConversionFunctions::Parse
+	  IL_0096:  nop 
+	  IL_0097:  ldc.i4.0 
+	  IL_0098:  box [mscorlib]System.Boolean
+	  IL_009d:  stloc.0 
+	  IL_009e:  leave IL_0328
 
-    // method line 110
-    .method public static hidebysig 
-           default string ToString (bool 'value')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
+	  IL_00a3:  nop 
+	  IL_00a4:  br IL_02d6
 
-        // Method begins at RVA 0x2ff8
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0008:  call instance string bool::ToString(class [mscorlib]System.IFormatProvider)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	  IL_00a9:  ldarg.1 
+	  IL_00aa:  call bool class NAnt.Core.Util.CommandLineArgument::IsNameValueCollectionType(class [mscorlib]System.Type)
+	  IL_00af:  brfalse IL_0174
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method BooleanConversionFunctions::ToString
+	  IL_00b4:  nop 
+	  IL_00b5:  ldarg.2 
+	  IL_00b6:  ldstr "(\\w+[^=]*)=(\\w*.*)"
+	  IL_00bb:  call class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string, string)
+	  IL_00c0:  stloc.1 
+	  IL_00c1:  ldloc.1 
+	  IL_00c2:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
+	  IL_00c7:  brfalse IL_0148
 
-  } // end of class NAnt.Core.Functions.BooleanConversionFunctions
-}
+	  IL_00cc:  nop 
+	  IL_00cd:  ldloc.1 
+	  IL_00ce:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_00d3:  ldc.i4.1 
+	  IL_00d4:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(int32)
+	  IL_00d9:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_00de:  stloc.2 
+	  IL_00df:  ldloc.1 
+	  IL_00e0:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_00e5:  ldc.i4.2 
+	  IL_00e6:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(int32)
+	  IL_00eb:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_00f0:  stloc.3 
+	  IL_00f1:  ldarg.0 
+	  IL_00f2:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_Unique()
+	  IL_00f7:  brfalse IL_012f
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit FrameworkFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 09 66 72 61 6D 65 77 6F 72 6B 04 4E 41 6E   // ...framework.NAn
-		74 00 00                                        ) // t..
+	  IL_00fc:  ldarg.0 
+	  IL_00fd:  ldfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.Util.CommandLineArgument::_valuePairs
+	  IL_0102:  ldloc.2 
+	  IL_0103:  callvirt instance string class [System]System.Collections.Specialized.NameValueCollection::Get(string)
+	  IL_0108:  brfalse IL_012f
+
+	  IL_010d:  nop 
+	  IL_010e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0113:  ldstr "NA1174"
+	  IL_0118:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_011d:  ldloc.2 
+	  IL_011e:  ldarg.0 
+	  IL_011f:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	  IL_0124:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0129:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
+	  IL_012e:  throw 
+	  IL_012f:  ldarg.0 
+	  IL_0130:  ldfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.Util.CommandLineArgument::_valuePairs
+	  IL_0135:  ldloc.2 
+	  IL_0136:  ldloc.3 
+	  IL_0137:  callvirt instance void class [System]System.Collections.Specialized.NameValueCollection::Add(string, string)
+	  IL_013c:  ldarg.0 
+	  IL_013d:  ldfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.Util.CommandLineArgument::_valuePairs
+	  IL_0142:  stloc.0 
+	  IL_0143:  leave IL_0328
 
+	  IL_0148:  nop 
+	  IL_0149:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_014e:  ldstr "NA1170"
+	  IL_0153:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0158:  ldarg.2 
+	  IL_0159:  ldarg.0 
+	  IL_015a:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	  IL_015f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0164:  ldstr "Expected name/value pair (<name>=<value>)."
+	  IL_0169:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	  IL_016e:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string, class [mscorlib]System.Exception)
+	  IL_0173:  throw 
+	  IL_0174:  nop 
+	  IL_0175:  ldarg.1 
+	  IL_0176:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
+	  IL_017b:  brfalse IL_022d
 
-    // method line 111
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x3019
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method FrameworkFunctions::.ctor
+	  IL_0180:  nop 
+	  .try { // 1
+	    IL_0181:  nop 
+	    IL_0182:  ldarg.1 
+	    IL_0183:  ldarg.2 
+	    IL_0184:  ldc.i4.1 
+	    IL_0185:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	    IL_018a:  stloc.0 
+	    IL_018b:  leave IL_0328
 
-    // method line 112
-    .method public hidebysig 
-           instance default bool Exists (string framework)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
+	  } // end .try 1
+	  catch class [mscorlib]System.ArgumentException { // 1
+	    IL_0190:  stloc.s 4
+	    IL_0192:  nop 
+	    IL_0193:  ldstr "Invalid value {0} for command-line argument '-{1}'. Valid values are: "
+	    IL_0198:  stloc.s 5
+	    IL_019a:  nop 
+	    IL_019b:  ldarg.1 
+	    IL_019c:  call class [mscorlib]System.Array class [mscorlib]System.Enum::GetValues(class [mscorlib]System.Type)
+	    IL_01a1:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Array::GetEnumerator()
+	    IL_01a6:  stloc.s 7
+	    .try { // 0
+	      IL_01a8:  br IL_01cd
 
-        // Method begins at RVA 0x3024
-	// Code size 42 (0x2a)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		bool	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionary::get_Item(string)
-	IL_0012:  stloc.0 
-	IL_0013:  ldloc.0 
-	IL_0014:  brfalse IL_0021
+	      IL_01ad:  ldloc.s 7
+	      IL_01af:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	      IL_01b4:  stloc.s 6
+	      IL_01b6:  nop 
+	      IL_01b7:  ldloc.s 5
+	      IL_01b9:  ldloc.s 6
+	      IL_01bb:  callvirt instance string object::ToString()
+	      IL_01c0:  ldstr ", "
+	      IL_01c5:  call string string::Concat(string, string, string)
+	      IL_01ca:  stloc.s 5
+	      IL_01cc:  nop 
+	      IL_01cd:  ldloc.s 7
+	      IL_01cf:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	      IL_01d4:  brtrue IL_01ad
 
-	IL_0019:  ldloc.0 
-	IL_001a:  callvirt instance bool class NAnt.Core.FrameworkInfo::get_IsValid()
-	IL_001f:  br.s IL_0022
+	      IL_01d9:  leave IL_01f5
 
-	IL_0021:  ldc.i4.0 
-	IL_0022:  stloc.1 
-	IL_0023:  br IL_0028
+	    } // end .try 0
+	    finally  { // 0
+	      IL_01de:  ldloc.s 7
+	      IL_01e0:  isinst [mscorlib]System.IDisposable
+	      IL_01e5:  dup 
+	      IL_01e6:  stloc.s 8
+	      IL_01e8:  brfalse IL_01f4
 
-	IL_0028:  ldloc.1 
-	IL_0029:  ret 
-    } // end of method FrameworkFunctions::Exists
+	      IL_01ed:  ldloc.s 8
+	      IL_01ef:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	      IL_01f4:  endfinally 
+	    } // end handler 0
+	    IL_01f5:  ldloc.s 5
+	    IL_01f7:  ldc.i4.0 
+	    IL_01f8:  ldloc.s 5
+	    IL_01fa:  callvirt instance int32 string::get_Length()
+	    IL_01ff:  ldc.i4.2 
+	    IL_0200:  sub 
+	    IL_0201:  callvirt instance string string::Substring(int32, int32)
+	    IL_0206:  ldstr "."
+	    IL_020b:  call string string::Concat(string, string)
+	    IL_0210:  stloc.s 5
+	    IL_0212:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0217:  ldloc.s 5
+	    IL_0219:  ldarg.2 
+	    IL_021a:  ldarg.0 
+	    IL_021b:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	    IL_0220:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	    IL_0225:  ldloc.s 4
+	    IL_0227:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string, class [mscorlib]System.Exception)
+	    IL_022c:  throw 
+	  } // end handler 1
+	  IL_022d:  nop 
+	  IL_022e:  ldarg.1 
+	  IL_022f:  ldstr "Parse"
+	  IL_0234:  ldc.i4.s 0x18
+	  IL_0236:  ldnull 
+	  IL_0237:  ldc.i4.1 
+	  IL_0238:  ldc.i4.1 
+	  IL_0239:  newarr [mscorlib]System.Type
+	  IL_023e:  dup 
+	  IL_023f:  ldc.i4.0 
+	  IL_0240:  ldtoken [mscorlib]System.String
+	  IL_0245:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_024a:  stelem.ref 
+	  IL_024b:  ldnull 
+	  IL_024c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, valuetype [mscorlib]System.Reflection.CallingConventions, class [mscorlib]System.Type[], valuetype [mscorlib]System.Reflection.ParameterModifier[])
+	  IL_0251:  stloc.s 9
+	  IL_0253:  ldloc.s 9
+	  IL_0255:  ldnull 
+	  IL_0256:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Inequality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	  IL_025b:  brfalse IL_0280
 
-    // method line 113
-    .method public hidebysig 
-           instance default bool SdkExists (string framework)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 73 64 6B 2D 65 78 69 73 74 73 00 00 ) // ...sdk-exists..
+	  IL_0260:  nop 
+	  IL_0261:  ldloc.s 9
+	  IL_0263:  ldnull 
+	  IL_0264:  ldc.i4.0 
+	  IL_0265:  ldnull 
+	  IL_0266:  ldc.i4.1 
+	  IL_0267:  newarr [mscorlib]System.Object
+	  IL_026c:  dup 
+	  IL_026d:  ldc.i4.0 
+	  IL_026e:  ldarg.2 
+	  IL_026f:  stelem.ref 
+	  IL_0270:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0275:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	  IL_027a:  stloc.0 
+	  IL_027b:  leave IL_0328
 
-        // Method begins at RVA 0x305c
-	// Code size 29 (0x1d)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		bool	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
-	IL_000f:  ldnull 
-	IL_0010:  ceq 
-	IL_0012:  ldc.i4.0 
-	IL_0013:  ceq 
-	IL_0015:  stloc.1 
-	IL_0016:  br IL_001b
+	  IL_0280:  ldarg.1 
+	  IL_0281:  callvirt instance bool class [mscorlib]System.Type::get_IsClass()
+	  IL_0286:  brfalse IL_02d4
 
-	IL_001b:  ldloc.1 
-	IL_001c:  ret 
-    } // end of method FrameworkFunctions::SdkExists
+	  IL_028b:  nop 
+	  IL_028c:  ldarg.1 
+	  IL_028d:  ldc.i4.1 
+	  IL_028e:  newarr [mscorlib]System.Type
+	  IL_0293:  dup 
+	  IL_0294:  ldc.i4.0 
+	  IL_0295:  ldtoken [mscorlib]System.String
+	  IL_029a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_029f:  stelem.ref 
+	  IL_02a0:  callvirt instance class [mscorlib]System.Reflection.ConstructorInfo class [mscorlib]System.Type::GetConstructor(class [mscorlib]System.Type[])
+	  IL_02a5:  stloc.s 10
+	  IL_02a7:  ldloc.s 10
+	  IL_02a9:  ldnull 
+	  IL_02aa:  call bool class [mscorlib]System.Reflection.ConstructorInfo::op_Inequality(class [mscorlib]System.Reflection.ConstructorInfo, class [mscorlib]System.Reflection.ConstructorInfo)
+	  IL_02af:  brfalse IL_02d3
 
-    // method line 114
-    .method public hidebysig 
-           instance default string GetTargetFramework ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 14 67 65 74 2D 74 61 72 67 65 74 2D 66 72   // ...get-target-fr
-		61 6D 65 77 6F 72 6B 00 00                      ) // amework..
+	  IL_02b4:  nop 
+	  IL_02b5:  ldloc.s 10
+	  IL_02b7:  ldc.i4.0 
+	  IL_02b8:  ldnull 
+	  IL_02b9:  ldc.i4.1 
+	  IL_02ba:  newarr [mscorlib]System.Object
+	  IL_02bf:  dup 
+	  IL_02c0:  ldc.i4.0 
+	  IL_02c1:  ldarg.2 
+	  IL_02c2:  stelem.ref 
+	  IL_02c3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_02c8:  callvirt instance object class [mscorlib]System.Reflection.ConstructorInfo::Invoke(valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	  IL_02cd:  stloc.0 
+	  IL_02ce:  leave IL_0328
 
-        // Method begins at RVA 0x3088
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_000c:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	  IL_02d3:  nop 
+	  IL_02d4:  nop 
+	  IL_02d5:  nop 
+	  IL_02d6:  nop 
+	  IL_02d7:  leave IL_0306
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method FrameworkFunctions::GetTargetFramework
+	} // end .try 2
+	catch class NAnt.Core.Util.CommandLineArgumentException { // 2
+	  IL_02dc:  pop 
+	  IL_02dd:  nop 
+	  IL_02de:  rethrow 
+	} // end handler 2
+	catch class [mscorlib]System.Exception { // 3
+	  IL_02e0:  stloc.s 11
+	  IL_02e2:  nop 
+	  IL_02e3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_02e8:  ldstr "NA1170"
+	  IL_02ed:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_02f2:  ldarg.2 
+	  IL_02f3:  ldarg.0 
+	  IL_02f4:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	  IL_02f9:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_02fe:  ldloc.s 11
+	  IL_0300:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string, class [mscorlib]System.Exception)
+	  IL_0305:  throw 
+	} // end handler 3
+	IL_0306:  nop 
+	IL_0307:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_030c:  ldstr "NA1170"
+	IL_0311:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0316:  ldarg.2 
+	IL_0317:  ldarg.0 
+	IL_0318:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	IL_031d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0322:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
+	IL_0327:  throw 
+	IL_0328:  ldloc.0 
+	IL_0329:  ret 
+    } // end of method CommandLineArgument::ParseValue
 
-    // method line 115
-    .method public hidebysig 
-           instance default string GetRuntimeFramework ()  cil managed 
+    // method line 65
+    .method private static hidebysig 
+           default valuetype NAnt.Core.Util.CommandLineArgumentTypes GetArgumentType (class NAnt.Core.Util.CommandLineArgumentAttribute attribute, class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 15 67 65 74 2D 72 75 6E 74 69 6D 65 2D 66   // ...get-runtime-f
-		72 61 6D 65 77 6F 72 6B 00 00                   ) // ramework..
-
-        // Method begins at RVA 0x30b0
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x3ca0
+	// Code size 54 (0x36)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		valuetype NAnt.Core.Util.CommandLineArgumentTypes	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
-	IL_000c:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0002:  brfalse IL_0014
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method FrameworkFunctions::GetRuntimeFramework
+	IL_0007:  nop 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance valuetype NAnt.Core.Util.CommandLineArgumentTypes class NAnt.Core.Util.CommandLineArgumentAttribute::get_Type()
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0034
 
-    // method line 116
-    .method public hidebysig 
-           instance default string GetFamily (string framework)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 67 65 74 2D 66 61 6D 69 6C 79 00 00 ) // ...get-family..
+	IL_0014:  ldarg.1 
+	IL_0015:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_001a:  call bool class NAnt.Core.Util.CommandLineArgument::IsCollectionType(class [mscorlib]System.Type)
+	IL_001f:  brfalse IL_002c
 
-        // Method begins at RVA 0x30d8
-	// Code size 23 (0x17)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Family()
-	IL_000f:  stloc.1 
-	IL_0010:  br IL_0015
+	IL_0024:  nop 
+	IL_0025:  ldc.i4.6 
+	IL_0026:  stloc.0 
+	IL_0027:  br IL_0034
 
-	IL_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method FrameworkFunctions::GetFamily
+	IL_002c:  nop 
+	IL_002d:  ldc.i4.0 
+	IL_002e:  stloc.0 
+	IL_002f:  br IL_0034
 
-    // method line 117
-    .method public hidebysig 
-           instance default class [mscorlib]System.Version GetVersion ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0B 67 65 74 2D 76 65 72 73 69 6F 6E 00 00 ) // ...get-version..
+	IL_0034:  ldloc.0 
+	IL_0035:  ret 
+    } // end of method CommandLineArgument::GetArgumentType
 
-        // Method begins at RVA 0x30fc
-	// Code size 25 (0x19)
-	.maxstack 1
+    // method line 66
+    .method private static hidebysig 
+           default class [mscorlib]System.Type GetElementType (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
+    {
+        // Method begins at RVA 0x3ce4
+	// Code size 322 (0x142)
+	.maxstack 3
 	.locals init (
-		class [mscorlib]System.Version	V_0)
+		class [mscorlib]System.Type	V_0,
+		class [mscorlib]System.Reflection.MethodInfo	V_1,
+		class [mscorlib]System.Reflection.MethodInfo[]	V_2,
+		int32	V_3,
+		class [mscorlib]System.Reflection.ParameterInfo	V_4,
+		class [mscorlib]System.Type	V_5)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_000c:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_Version()
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_0009:  callvirt instance bool class [mscorlib]System.Type::get_IsArray()
+	IL_000e:  brfalse IL_0057
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method FrameworkFunctions::GetVersion
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_001a:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Type::GetElementType()
+	IL_001f:  stloc.0 
+	IL_0020:  ldloc.0 
+	IL_0021:  ldtoken [mscorlib]System.Object
+	IL_0026:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_002b:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0030:  brfalse IL_0051
 
-    // method line 118
-    .method public hidebysig 
-           instance default class [mscorlib]System.Version GetVersion (string framework)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0B 67 65 74 2D 76 65 72 73 69 6F 6E 00 00 ) // ...get-version..
+	IL_0035:  nop 
+	IL_0036:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_003b:  ldstr "Property {0} is not a strong-typed array."
+	IL_0040:  ldarg.0 
+	IL_0041:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_0046:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_004b:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
+	IL_0050:  throw 
+	IL_0051:  nop 
+	IL_0052:  br IL_0137
 
-        // Method begins at RVA 0x3124
-	// Code size 23 (0x17)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		class [mscorlib]System.Version	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_Version()
-	IL_000f:  stloc.1 
-	IL_0010:  br IL_0015
+	IL_0057:  ldtoken [mscorlib]System.Collections.ICollection
+	IL_005c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0061:  ldarg.0 
+	IL_0062:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_0067:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_006c:  brfalse IL_0137
 
-	IL_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method FrameworkFunctions::GetVersion
+	IL_0071:  nop 
+	IL_0072:  nop 
+	IL_0073:  ldarg.0 
+	IL_0074:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_0079:  ldc.i4.s 0x14
+	IL_007b:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_0080:  stloc.2 
+	IL_0081:  ldc.i4.0 
+	IL_0082:  stloc.3 
+	IL_0083:  br IL_0105
 
-    // method line 119
-    .method public hidebysig 
-           instance default string GetDescription ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0F 67 65 74 2D 64 65 73 63 72 69 70 74 69   // ...get-descripti
-		6F 6E 00 00                                     ) // on..
+	IL_0088:  ldloc.2 
+	IL_0089:  ldloc.3 
+	IL_008a:  ldelem.ref 
+	IL_008b:  stloc.1 
+	IL_008c:  nop 
+	IL_008d:  ldloc.1 
+	IL_008e:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_0093:  ldstr "Add"
+	IL_0098:  call bool string::op_Equality(string, string)
+	IL_009d:  brfalse IL_0100
 
-        // Method begins at RVA 0x3148
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_000c:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Description()
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_00a2:  ldloc.1 
+	IL_00a3:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_00a8:  ldlen 
+	IL_00a9:  conv.i4 
+	IL_00aa:  ldc.i4.1 
+	IL_00ab:  bne.un IL_0100
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method FrameworkFunctions::GetDescription
+	IL_00b0:  nop 
+	IL_00b1:  ldloc.1 
+	IL_00b2:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_00b7:  ldc.i4.0 
+	IL_00b8:  ldelem.ref 
+	IL_00b9:  stloc.s 4
+	IL_00bb:  ldloc.s 4
+	IL_00bd:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	IL_00c2:  ldtoken [mscorlib]System.Object
+	IL_00c7:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_00cc:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_00d1:  brfalse IL_00f2
 
-    // method line 120
-    .method public hidebysig 
-           instance default string GetDescription (string framework)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0F 67 65 74 2D 64 65 73 63 72 69 70 74 69   // ...get-descripti
-		6F 6E 00 00                                     ) // on..
+	IL_00d6:  nop 
+	IL_00d7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00dc:  ldstr "Property {0} is not a strong-typed collection."
+	IL_00e1:  ldarg.0 
+	IL_00e2:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_00e7:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00ec:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
+	IL_00f1:  throw 
+	IL_00f2:  nop 
+	IL_00f3:  ldloc.s 4
+	IL_00f5:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	IL_00fa:  stloc.0 
+	IL_00fb:  br IL_010e
 
-        // Method begins at RVA 0x3170
-	// Code size 23 (0x17)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Description()
-	IL_000f:  stloc.1 
-	IL_0010:  br IL_0015
+	IL_0100:  nop 
+	IL_0101:  ldloc.3 
+	IL_0102:  ldc.i4.1 
+	IL_0103:  add 
+	IL_0104:  stloc.3 
+	IL_0105:  ldloc.3 
+	IL_0106:  ldloc.2 
+	IL_0107:  ldlen 
+	IL_0108:  conv.i4 
+	IL_0109:  blt IL_0088
 
-	IL_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method FrameworkFunctions::GetDescription
+	IL_010e:  ldloc.0 
+	IL_010f:  ldnull 
+	IL_0110:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0115:  brfalse IL_0136
 
-    // method line 121
-    .method public hidebysig 
-           instance default class [mscorlib]System.Version GetClrVersion ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0F 67 65 74 2D 63 6C 72 2D 76 65 72 73 69   // ...get-clr-versi
-		6F 6E 00 00                                     ) // on..
+	IL_011a:  nop 
+	IL_011b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0120:  ldstr "Invalid commandline argument type for property {0}."
+	IL_0125:  ldarg.0 
+	IL_0126:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_012b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0130:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
+	IL_0135:  throw 
+	IL_0136:  nop 
+	IL_0137:  ldloc.0 
+	IL_0138:  stloc.s 5
+	IL_013a:  br IL_013f
+
+	IL_013f:  ldloc.s 5
+	IL_0141:  ret 
+    } // end of method CommandLineArgument::GetElementType
 
-        // Method begins at RVA 0x3194
+    // method line 67
+    .method private static hidebysig 
+           default bool IsNameValueCollectionType (class [mscorlib]System.Type 'type')  cil managed 
+    {
+        // Method begins at RVA 0x3e34
 	// Code size 25 (0x19)
-	.maxstack 1
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.Version	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_000c:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
+	IL_0001:  ldtoken [System]System.Collections.Specialized.NameValueCollection
+	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000b:  ldarg.0 
+	IL_000c:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
 	IL_0011:  stloc.0 
 	IL_0012:  br IL_0017
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method FrameworkFunctions::GetClrVersion
+    } // end of method CommandLineArgument::IsNameValueCollectionType
 
-    // method line 122
-    .method public hidebysig 
-           instance default class [mscorlib]System.Version GetClrVersion (string framework)  cil managed 
+    // method line 68
+    .method private static hidebysig 
+           default bool IsCollectionType (class [mscorlib]System.Type 'type')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0F 67 65 74 2D 63 6C 72 2D 76 65 72 73 69   // ...get-clr-versi
-		6F 6E 00 00                                     ) // on..
-
-        // Method begins at RVA 0x31bc
-	// Code size 23 (0x17)
+        // Method begins at RVA 0x3e5c
+	// Code size 42 (0x2a)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		class [mscorlib]System.Version	V_1)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
-	IL_000f:  stloc.1 
-	IL_0010:  br IL_0015
+	IL_0001:  ldtoken [mscorlib]System.Collections.ICollection
+	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000b:  ldarg.0 
+	IL_000c:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_0011:  brfalse IL_0021
 
-	IL_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method FrameworkFunctions::GetClrVersion
+	IL_0016:  ldarg.0 
+	IL_0017:  call bool class NAnt.Core.Util.CommandLineArgument::IsNameValueCollectionType(class [mscorlib]System.Type)
+	IL_001c:  ldc.i4.0 
+	IL_001d:  ceq 
+	IL_001f:  br.s IL_0022
 
-    // method line 123
-    .method public hidebysig 
-           instance default string GetFrameworkDirectory (string framework)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 17 67 65 74 2D 66 72 61 6D 65 77 6F 72 6B   // ...get-framework
-		2D 64 69 72 65 63 74 6F 72 79 00 00             ) // -directory..
+	IL_0021:  ldc.i4.0 
+	IL_0022:  stloc.0 
+	IL_0023:  br IL_0028
 
-        // Method begins at RVA 0x31e0
-	// Code size 28 (0x1c)
-	.maxstack 2
+	IL_0028:  ldloc.0 
+	IL_0029:  ret 
+    } // end of method CommandLineArgument::IsCollectionType
+
+    // method line 69
+    .method private static hidebysig 
+           default bool IsArrayType (class [mscorlib]System.Type 'type')  cil managed 
+    {
+        // Method begins at RVA 0x3e94
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		string	V_1)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
-	IL_000f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0014:  stloc.1 
-	IL_0015:  br IL_001a
+	IL_0002:  callvirt instance bool class [mscorlib]System.Type::get_IsArray()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_001a:  ldloc.1 
-	IL_001b:  ret 
-    } // end of method FrameworkFunctions::GetFrameworkDirectory
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineArgument::IsArrayType
 
-    // method line 124
-    .method public hidebysig 
-           instance default string GetAssemblyDirectory (string framework)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 16 67 65 74 2D 61 73 73 65 6D 62 6C 79 2D   // ...get-assembly-
-		64 69 72 65 63 74 6F 72 79 00 00                ) // directory..
+	.property instance class [mscorlib]System.Reflection.PropertyInfo Property ()
+	{
+		.get instance default class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::get_Property () 
+	}
+	.property instance class [mscorlib]System.Type ValueType ()
+	{
+		.get instance default class [mscorlib]System.Type NAnt.Core.Util.CommandLineArgument::get_ValueType () 
+	}
+	.property instance string LongName ()
+	{
+		.get instance default string NAnt.Core.Util.CommandLineArgument::get_LongName () 
+	}
+	.property instance string ShortName ()
+	{
+		.get instance default string NAnt.Core.Util.CommandLineArgument::get_ShortName () 
+	}
+	.property instance string Description ()
+	{
+		.get instance default string NAnt.Core.Util.CommandLineArgument::get_Description () 
+	}
+	.property instance bool IsRequired ()
+	{
+		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_IsRequired () 
+	}
+	.property instance bool SeenValue ()
+	{
+		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_SeenValue () 
+	}
+	.property instance bool AllowMultiple ()
+	{
+		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_AllowMultiple () 
+	}
+	.property instance bool Unique ()
+	{
+		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_Unique () 
+	}
+	.property instance class [mscorlib]System.Type Type ()
+	{
+		.get instance default class [mscorlib]System.Type NAnt.Core.Util.CommandLineArgument::get_Type () 
+	}
+	.property instance bool IsCollection ()
+	{
+		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_IsCollection () 
+	}
+	.property instance bool IsNameValueCollection ()
+	{
+		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection () 
+	}
+	.property instance bool IsArray ()
+	{
+		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_IsArray () 
+	}
+	.property instance bool IsDefault ()
+	{
+		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_IsDefault () 
+	}
+	.property instance bool IsExclusive ()
+	{
+		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_IsExclusive () 
+	}
+  } // end of class NAnt.Core.Util.CommandLineArgument
+}
 
-        // Method begins at RVA 0x3208
-	// Code size 28 (0x1c)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory()
-	IL_000f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0014:  stloc.1 
-	IL_0015:  br IL_001a
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi sealed serializable beforefieldinit AssemblyResolver
+  	extends [mscorlib]System.Object
+  {
+    .field  private  class [mscorlib]System.Collections.Hashtable _assemblyCache
+    .field  private  class NAnt.Core.Task _task
 
-	IL_001a:  ldloc.1 
-	IL_001b:  ret 
-    } // end of method FrameworkFunctions::GetAssemblyDirectory
+    // method line 70
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x3eaf
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.AssemblyResolver::_assemblyCache
+	IL_0012:  ret 
+    } // end of method AssemblyResolver::.ctor
 
-    // method line 125
-    .method public hidebysig 
-           instance default string GetSdkDirectory (string framework)  cil managed 
+    // method line 71
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Task task)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 11 67 65 74 2D 73 64 6B 2D 64 69 72 65 63   // ...get-sdk-direc
-		74 6F 72 79 00 00                               ) // tory..
+        // Method begins at RVA 0x3ec3
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Util.AssemblyResolver::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld class NAnt.Core.Task NAnt.Core.Util.AssemblyResolver::_task
+	IL_000e:  ret 
+    } // end of method AssemblyResolver::.ctor
 
-        // Method begins at RVA 0x3230
+    // method line 72
+    .method public hidebysig 
+           instance default void Attach ()  cil managed 
+    {
+        // Method begins at RVA 0x3ed3
 	// Code size 46 (0x2e)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		class [mscorlib]System.IO.DirectoryInfo	V_1,
-		string	V_2)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
-	IL_000f:  stloc.1 
-	IL_0010:  ldloc.1 
-	IL_0011:  brfalse IL_0021
-
-	IL_0016:  ldloc.1 
-	IL_0017:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001c:  br IL_0026
-
-	IL_0021:  ldsfld string [mscorlib]System.String::Empty
-	IL_0026:  stloc.2 
-	IL_0027:  br IL_002c
-
-	IL_002c:  ldloc.2 
+	IL_0001:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_0006:  ldarg.0 
+	IL_0007:  ldftn instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Util.AssemblyResolver::AssemblyResolve(object, class [mscorlib]System.ResolveEventArgs)
+	IL_000d:  newobj instance void class [mscorlib]System.ResolveEventHandler::'.ctor'(object, native int)
+	IL_0012:  callvirt instance void class [mscorlib]System.AppDomain::add_AssemblyResolve(class [mscorlib]System.ResolveEventHandler)
+	IL_0017:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_001c:  ldarg.0 
+	IL_001d:  ldftn instance void class NAnt.Core.Util.AssemblyResolver::AssemblyLoad(object, class [mscorlib]System.AssemblyLoadEventArgs)
+	IL_0023:  newobj instance void class [mscorlib]System.AssemblyLoadEventHandler::'.ctor'(object, native int)
+	IL_0028:  callvirt instance void class [mscorlib]System.AppDomain::add_AssemblyLoad(class [mscorlib]System.AssemblyLoadEventHandler)
 	IL_002d:  ret 
-    } // end of method FrameworkFunctions::GetSdkDirectory
+    } // end of method AssemblyResolver::Attach
 
-    // method line 126
+    // method line 73
     .method public hidebysig 
-           instance default string GetToolPath (string tool)  cil managed 
+           instance default void Detach ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0D 67 65 74 2D 74 6F 6F 6C 2D 70 61 74 68   // ...get-tool-path
-		00 00                                           ) // ..
-
-        // Method begins at RVA 0x326c
+        // Method begins at RVA 0x3f02
 	// Code size 57 (0x39)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		string	V_1)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance string class NAnt.Core.FrameworkInfo::GetToolPath(string)
-	IL_0012:  stloc.0 
-	IL_0013:  ldloc.0 
-	IL_0014:  brtrue IL_0030
-
-	IL_0019:  nop 
-	IL_001a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001f:  ldstr "\"{0}\" could not be found in any of the configured tool paths."
-	IL_0024:  ldarg.1 
-	IL_0025:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002a:  newobj instance void class [mscorlib]System.IO.FileNotFoundException::'.ctor'(string)
-	IL_002f:  throw 
-	IL_0030:  ldloc.0 
-	IL_0031:  stloc.1 
-	IL_0032:  br IL_0037
-
-	IL_0037:  ldloc.1 
+	IL_0001:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_0006:  ldarg.0 
+	IL_0007:  ldftn instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Util.AssemblyResolver::AssemblyResolve(object, class [mscorlib]System.ResolveEventArgs)
+	IL_000d:  newobj instance void class [mscorlib]System.ResolveEventHandler::'.ctor'(object, native int)
+	IL_0012:  callvirt instance void class [mscorlib]System.AppDomain::remove_AssemblyResolve(class [mscorlib]System.ResolveEventHandler)
+	IL_0017:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_001c:  ldarg.0 
+	IL_001d:  ldftn instance void class NAnt.Core.Util.AssemblyResolver::AssemblyLoad(object, class [mscorlib]System.AssemblyLoadEventArgs)
+	IL_0023:  newobj instance void class [mscorlib]System.AssemblyLoadEventHandler::'.ctor'(object, native int)
+	IL_0028:  callvirt instance void class [mscorlib]System.AppDomain::remove_AssemblyLoad(class [mscorlib]System.AssemblyLoadEventHandler)
+	IL_002d:  ldarg.0 
+	IL_002e:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.AssemblyResolver::_assemblyCache
+	IL_0033:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Clear()
 	IL_0038:  ret 
-    } // end of method FrameworkFunctions::GetToolPath
+    } // end of method AssemblyResolver::Detach
 
-    // method line 127
-    .method public hidebysig 
-           instance default string GetRuntimeEngine (string framework)  cil managed 
+    // method line 74
+    .method private hidebysig 
+           instance default class [mscorlib]System.Reflection.Assembly AssemblyResolve (object sender, class [mscorlib]System.ResolveEventArgs args)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 12 67 65 74 2D 72 75 6E 74 69 6D 65 2D 65   // ...get-runtime-e
-		6E 67 69 6E 65 00 00                            ) // ngine..
-
-        // Method begins at RVA 0x32b4
-	// Code size 23 (0x17)
-	.maxstack 2
+        // Method begins at RVA 0x3f3c
+	// Code size 502 (0x1f6)
+	.maxstack 7
 	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		string	V_1)
+		bool	V_0,
+		class [mscorlib]System.Reflection.Assembly[]	V_1,
+		class [mscorlib]System.Reflection.Assembly	V_2,
+		class [mscorlib]System.Reflection.Assembly[]	V_3,
+		int32	V_4,
+		class [mscorlib]System.Reflection.Assembly	V_5,
+		class [mscorlib]System.Reflection.Assembly	V_6,
+		class [mscorlib]System.Collections.IEnumerator	V_7,
+		class [mscorlib]System.IDisposable	V_8)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  callvirt instance string class NAnt.Core.FrameworkInfo::get_RuntimeEngine()
-	IL_000f:  stloc.1 
-	IL_0010:  br IL_0015
+	IL_0001:  ldarg.2 
+	IL_0002:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
+	IL_0007:  ldstr "Version="
+	IL_000c:  callvirt instance int32 string::IndexOf(string)
+	IL_0011:  ldc.i4.m1 
+	IL_0012:  ceq 
+	IL_0014:  ldc.i4.0 
+	IL_0015:  ceq 
+	IL_0017:  stloc.0 
+	IL_0018:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_001d:  callvirt instance class [mscorlib]System.Reflection.Assembly[] class [mscorlib]System.AppDomain::GetAssemblies()
+	IL_0022:  stloc.1 
+	IL_0023:  nop 
+	IL_0024:  ldloc.1 
+	IL_0025:  stloc.3 
+	IL_0026:  ldc.i4.0 
+	IL_0027:  stloc.s 4
+	IL_0029:  br IL_00ca
 
-	IL_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method FrameworkFunctions::GetRuntimeEngine
+	IL_002e:  ldloc.3 
+	IL_002f:  ldloc.s 4
+	IL_0031:  ldelem.ref 
+	IL_0032:  stloc.2 
+	IL_0033:  nop 
+	IL_0034:  ldloc.0 
+	IL_0035:  brfalse IL_007f
 
-    // method line 128
-    .method public hidebysig 
-           instance default string GetFrameworks (valuetype NAnt.Core.FrameworkTypes types)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0E 67 65 74 2D 66 72 61 6D 65 77 6F 72 6B   // ...get-framework
-		73 00 00                                        ) // s..
+	IL_003a:  nop 
+	IL_003b:  ldloc.2 
+	IL_003c:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
+	IL_0041:  ldarg.2 
+	IL_0042:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
+	IL_0047:  call bool string::op_Equality(string, string)
+	IL_004c:  brfalse IL_0079
 
-        // Method begins at RVA 0x32d8
-	// Code size 109 (0x6d)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.FrameworkInfo[]	V_0,
-		string	V_1,
-		class [mscorlib]System.Text.StringBuilder	V_2,
-		int32	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.Core.FrameworkInfo[] class NAnt.Core.Project::GetFrameworks(valuetype NAnt.Core.FrameworkTypes)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  ldlen 
-	IL_0010:  conv.i4 
-	IL_0011:  brtrue IL_0021
+	IL_0051:  nop 
+	IL_0052:  ldarg.0 
+	IL_0053:  ldc.i4 1000
+	IL_0058:  ldstr "Resolved assembly '{0}' from loaded assemblies using full name."
+	IL_005d:  ldc.i4.1 
+	IL_005e:  newarr [mscorlib]System.Object
+	IL_0063:  dup 
+	IL_0064:  ldc.i4.0 
+	IL_0065:  ldarg.2 
+	IL_0066:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
+	IL_006b:  stelem.ref 
+	IL_006c:  call instance void class NAnt.Core.Util.AssemblyResolver::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0071:  ldloc.2 
+	IL_0072:  stloc.s 5
+	IL_0074:  br IL_01f3
 
-	IL_0016:  ldsfld string [mscorlib]System.String::Empty
-	IL_001b:  stloc.1 
-	IL_001c:  br IL_006b
+	IL_0079:  nop 
+	IL_007a:  br IL_00c3
 
-	IL_0021:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0026:  stloc.2 
-	IL_0027:  ldc.i4.0 
-	IL_0028:  stloc.3 
-	IL_0029:  br IL_0056
+	IL_007f:  ldloc.2 
+	IL_0080:  ldc.i4.0 
+	IL_0081:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName(bool)
+	IL_0086:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	IL_008b:  ldarg.2 
+	IL_008c:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
+	IL_0091:  call bool string::op_Equality(string, string)
+	IL_0096:  brfalse IL_00c3
 
-	IL_002e:  nop 
-	IL_002f:  ldloc.3 
-	IL_0030:  ldc.i4.0 
-	IL_0031:  ble IL_0042
+	IL_009b:  nop 
+	IL_009c:  ldarg.0 
+	IL_009d:  ldc.i4 1000
+	IL_00a2:  ldstr "Resolved assembly '{0}' from loaded assemblies using name."
+	IL_00a7:  ldc.i4.1 
+	IL_00a8:  newarr [mscorlib]System.Object
+	IL_00ad:  dup 
+	IL_00ae:  ldc.i4.0 
+	IL_00af:  ldarg.2 
+	IL_00b0:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
+	IL_00b5:  stelem.ref 
+	IL_00b6:  call instance void class NAnt.Core.Util.AssemblyResolver::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_00bb:  ldloc.2 
+	IL_00bc:  stloc.s 5
+	IL_00be:  br IL_01f3
 
-	IL_0036:  ldloc.2 
-	IL_0037:  ldstr ","
-	IL_003c:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0041:  pop 
-	IL_0042:  ldloc.2 
-	IL_0043:  ldloc.0 
-	IL_0044:  ldloc.3 
-	IL_0045:  ldelem.ref 
-	IL_0046:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	IL_004b:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0050:  pop 
-	IL_0051:  nop 
-	IL_0052:  ldloc.3 
-	IL_0053:  ldc.i4.1 
-	IL_0054:  add 
-	IL_0055:  stloc.3 
-	IL_0056:  ldloc.3 
-	IL_0057:  ldloc.0 
-	IL_0058:  ldlen 
-	IL_0059:  conv.i4 
-	IL_005a:  blt IL_002e
+	IL_00c3:  nop 
+	IL_00c4:  ldloc.s 4
+	IL_00c6:  ldc.i4.1 
+	IL_00c7:  add 
+	IL_00c8:  stloc.s 4
+	IL_00ca:  ldloc.s 4
+	IL_00cc:  ldloc.3 
+	IL_00cd:  ldlen 
+	IL_00ce:  conv.i4 
+	IL_00cf:  blt IL_002e
 
-	IL_005f:  ldloc.2 
-	IL_0060:  callvirt instance string object::ToString()
-	IL_0065:  stloc.1 
-	IL_0066:  br IL_006b
+	IL_00d4:  ldloc.0 
+	IL_00d5:  brfalse IL_0134
 
-	IL_006b:  ldloc.1 
-	IL_006c:  ret 
-    } // end of method FrameworkFunctions::GetFrameworks
+	IL_00da:  nop 
+	IL_00db:  ldarg.0 
+	IL_00dc:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.AssemblyResolver::_assemblyCache
+	IL_00e1:  ldarg.2 
+	IL_00e2:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
+	IL_00e7:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	IL_00ec:  brfalse IL_012e
 
-    // method line 129
-    .method private hidebysig 
-           instance default class NAnt.Core.FrameworkInfo GetFramework (string framework)  cil managed 
-    {
-        // Method begins at RVA 0x3354
-	// Code size 114 (0x72)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		class NAnt.Core.FrameworkInfo	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.0 
-	IL_0003:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0008:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_000d:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	IL_0012:  call bool string::op_Equality(string, string)
-	IL_0017:  brfalse IL_002e
+	IL_00f1:  nop 
+	IL_00f2:  ldarg.0 
+	IL_00f3:  ldc.i4 1000
+	IL_00f8:  ldstr "Resolved assembly '{0}' from cache using full name."
+	IL_00fd:  ldc.i4.1 
+	IL_00fe:  newarr [mscorlib]System.Object
+	IL_0103:  dup 
+	IL_0104:  ldc.i4.0 
+	IL_0105:  ldarg.2 
+	IL_0106:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
+	IL_010b:  stelem.ref 
+	IL_010c:  call instance void class NAnt.Core.Util.AssemblyResolver::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0111:  ldarg.0 
+	IL_0112:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.AssemblyResolver::_assemblyCache
+	IL_0117:  ldarg.2 
+	IL_0118:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
+	IL_011d:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0122:  castclass [mscorlib]System.Reflection.Assembly
+	IL_0127:  stloc.s 5
+	IL_0129:  br IL_01f3
 
-	IL_001c:  nop 
-	IL_001d:  ldarg.0 
-	IL_001e:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0023:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_0028:  stloc.0 
-	IL_0029:  br IL_0070
+	IL_012e:  nop 
+	IL_012f:  br IL_01cc
 
-	IL_002e:  ldarg.0 
-	IL_002f:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0034:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
-	IL_0039:  ldarg.1 
-	IL_003a:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionary::get_Item(string)
-	IL_003f:  stloc.1 
-	IL_0040:  ldloc.1 
-	IL_0041:  brtrue IL_0062
+	IL_0134:  nop 
+	IL_0135:  nop 
+	IL_0136:  ldarg.0 
+	IL_0137:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.AssemblyResolver::_assemblyCache
+	IL_013c:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Values()
+	IL_0141:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0146:  stloc.s 7
+	.try { // 0
+	  IL_0148:  br IL_01a3
 
-	IL_0046:  nop 
-	IL_0047:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_004c:  ldstr "NA1096"
-	IL_0051:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0056:  ldarg.1 
-	IL_0057:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_005c:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0061:  throw 
-	IL_0062:  nop 
-	IL_0063:  ldloc.1 
-	IL_0064:  callvirt instance void class NAnt.Core.FrameworkInfo::Validate()
-	IL_0069:  ldloc.1 
-	IL_006a:  stloc.0 
-	IL_006b:  br IL_0070
+	  IL_014d:  ldloc.s 7
+	  IL_014f:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0154:  castclass [mscorlib]System.Reflection.Assembly
+	  IL_0159:  stloc.s 6
+	  IL_015b:  nop 
+	  IL_015c:  ldloc.s 6
+	  IL_015e:  ldc.i4.0 
+	  IL_015f:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName(bool)
+	  IL_0164:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	  IL_0169:  ldarg.2 
+	  IL_016a:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
+	  IL_016f:  call bool string::op_Equality(string, string)
+	  IL_0174:  brfalse IL_01a2
 
-	IL_0070:  ldloc.0 
-	IL_0071:  ret 
-    } // end of method FrameworkFunctions::GetFramework
+	  IL_0179:  nop 
+	  IL_017a:  ldarg.0 
+	  IL_017b:  ldc.i4 1000
+	  IL_0180:  ldstr "Resolved assembly '{0}' from cache using name."
+	  IL_0185:  ldc.i4.1 
+	  IL_0186:  newarr [mscorlib]System.Object
+	  IL_018b:  dup 
+	  IL_018c:  ldc.i4.0 
+	  IL_018d:  ldarg.2 
+	  IL_018e:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
+	  IL_0193:  stelem.ref 
+	  IL_0194:  call instance void class NAnt.Core.Util.AssemblyResolver::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0199:  ldloc.s 6
+	  IL_019b:  stloc.s 5
+	  IL_019d:  leave IL_01f3
 
-  } // end of class NAnt.Core.Functions.FrameworkFunctions
-}
+	  IL_01a2:  nop 
+	  IL_01a3:  ldloc.s 7
+	  IL_01a5:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_01aa:  brtrue IL_014d
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit DoubleConversionFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 06 64 6F 75 62 6C 65 0A 43 6F 6E 76 65 72   // ...double.Conver
-		73 69 6F 6E 00 00                               ) // sion..
+	  IL_01af:  leave IL_01cb
 
+	} // end .try 0
+	finally  { // 0
+	  IL_01b4:  ldloc.s 7
+	  IL_01b6:  isinst [mscorlib]System.IDisposable
+	  IL_01bb:  dup 
+	  IL_01bc:  stloc.s 8
+	  IL_01be:  brfalse IL_01ca
 
-    // method line 130
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x33d2
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method DoubleConversionFunctions::.ctor
+	  IL_01c3:  ldloc.s 8
+	  IL_01c5:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01ca:  endfinally 
+	} // end handler 0
+	IL_01cb:  nop 
+	IL_01cc:  ldarg.0 
+	IL_01cd:  ldc.i4 1000
+	IL_01d2:  ldstr "Assembly '{0}' could not be located."
+	IL_01d7:  ldc.i4.1 
+	IL_01d8:  newarr [mscorlib]System.Object
+	IL_01dd:  dup 
+	IL_01de:  ldc.i4.0 
+	IL_01df:  ldarg.2 
+	IL_01e0:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
+	IL_01e5:  stelem.ref 
+	IL_01e6:  call instance void class NAnt.Core.Util.AssemblyResolver::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_01eb:  ldnull 
+	IL_01ec:  stloc.s 5
+	IL_01ee:  br IL_01f3
 
-    // method line 131
-    .method public static hidebysig 
-           default float64 Parse (string s)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
+	IL_01f3:  ldloc.s 5
+	IL_01f5:  ret 
+    } // end of method AssemblyResolver::AssemblyResolve
 
-        // Method begins at RVA 0x33e0
-	// Code size 20 (0x14)
-	.maxstack 2
-	.locals init (
-		float64	V_0)
+    // method line 75
+    .method private hidebysig 
+           instance default void AssemblyLoad (object sender, class [mscorlib]System.AssemblyLoadEventArgs args)  cil managed 
+    {
+        // Method begins at RVA 0x4150
+	// Code size 66 (0x42)
+	.maxstack 7
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0007:  call float64 float64::Parse(string, class [mscorlib]System.IFormatProvider)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DoubleConversionFunctions::Parse
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.AssemblyResolver::_assemblyCache
+	IL_0007:  ldarg.2 
+	IL_0008:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.AssemblyLoadEventArgs::get_LoadedAssembly()
+	IL_000d:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
+	IL_0012:  ldarg.2 
+	IL_0013:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.AssemblyLoadEventArgs::get_LoadedAssembly()
+	IL_0018:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_001d:  ldarg.0 
+	IL_001e:  ldc.i4 1000
+	IL_0023:  ldstr "Added assembly '{0}' to assembly cache."
+	IL_0028:  ldc.i4.1 
+	IL_0029:  newarr [mscorlib]System.Object
+	IL_002e:  dup 
+	IL_002f:  ldc.i4.0 
+	IL_0030:  ldarg.2 
+	IL_0031:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.AssemblyLoadEventArgs::get_LoadedAssembly()
+	IL_0036:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
+	IL_003b:  stelem.ref 
+	IL_003c:  call instance void class NAnt.Core.Util.AssemblyResolver::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0041:  ret 
+    } // end of method AssemblyResolver::AssemblyLoad
 
-    // method line 132
-    .method public static hidebysig 
-           default string ToString (float64 'value')  cil managed 
+    // method line 76
+    .method private hidebysig 
+           instance default void Log (valuetype NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
+	.param [3]
+	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-        // Method begins at RVA 0x3400
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x419e
+	// Code size 29 (0x1d)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0008:  call instance string float64::ToString(class [mscorlib]System.IFormatProvider)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Task NAnt.Core.Util.AssemblyResolver::_task
+	IL_0007:  brfalse IL_001c
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DoubleConversionFunctions::ToString
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class NAnt.Core.Task NAnt.Core.Util.AssemblyResolver::_task
+	IL_0013:  ldarg.1 
+	IL_0014:  ldarg.2 
+	IL_0015:  ldarg.3 
+	IL_0016:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_001b:  nop 
+	IL_001c:  ret 
+    } // end of method AssemblyResolver::Log
 
-  } // end of class NAnt.Core.Functions.DoubleConversionFunctions
+  } // end of class NAnt.Core.Util.AssemblyResolver
 }
 
-.namespace NAnt.Core.Functions
+.namespace NAnt.Core.Util
 {
-  .class public auto ansi beforefieldinit FileVersionInfoFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 0F 66 69 6C 65 76 65 72 73 69 6F 6E 69 6E   // ...fileversionin
-		66 6F 07 56 65 72 73 69 6F 6E 00 00             ) // fo.Version..
-
+  .class public auto ansi sealed beforefieldinit GacCache
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.IDisposable  {
+    .field  private  class [mscorlib]System.AppDomain _domain
+    .field  private  class NAnt.Core.Project _project
+    .field  private  class [mscorlib]System.Collections.Hashtable _gacQueryCache
+    .field  private  bool _hasLoadedAssembly
+    .field  private  class NAnt.Core.Util.GacCache/GacResolver _resolver
+    .field  private  bool _disposed
 
-    // method line 133
+    // method line 77
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
     {
-        // Method begins at RVA 0x3421
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x41bc
+	// Code size 32 (0x20)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method FileVersionInfoFunctions::.ctor
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld class NAnt.Core.Project NAnt.Core.Util.GacCache::_project
+	IL_000e:  ldarg.0 
+	IL_000f:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_0014:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.GacCache::_gacQueryCache
+	IL_0019:  ldarg.0 
+	IL_001a:  call instance void class NAnt.Core.Util.GacCache::RecreateDomain()
+	IL_001f:  ret 
+    } // end of method GacCache::.ctor
 
-    // method line 134
-    .method public hidebysig 
-           instance default class [System]System.Diagnostics.FileVersionInfo GetVersionInfo (string fileName)  cil managed 
+    // method line 78
+    .method family virtual hidebysig 
+           instance default void Finalize ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 10 67 65 74 2D 76 65 72 73 69 6F 6E 2D 69   // ...get-version-i
-		6E 66 6F 00 00                                  ) // nfo..
-
-        // Method begins at RVA 0x342c
-	// Code size 26 (0x1a)
+        // Method begins at RVA 0x41e0
+	// Code size 21 (0x15)
 	.maxstack 2
-	.locals init (
-		class [System]System.Diagnostics.FileVersionInfo	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	IL_000d:  call class [System]System.Diagnostics.FileVersionInfo class [System]System.Diagnostics.FileVersionInfo::GetVersionInfo(string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	.try { // 0
+	  IL_0001:  ldarg.0 
+	  IL_0002:  ldc.i4.0 
+	  IL_0003:  call instance void class NAnt.Core.Util.GacCache::Dispose(bool)
+	  IL_0008:  leave IL_0014
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method FileVersionInfoFunctions::GetVersionInfo
+	} // end .try 0
+	finally  { // 0
+	  IL_000d:  ldarg.0 
+	  IL_000e:  call instance void object::Finalize()
+	  IL_0013:  endfinally 
+	} // end handler 0
+	IL_0014:  ret 
+    } // end of method GacCache::Finalize
 
-    // method line 135
-    .method public static hidebysig 
-           default string GetCompanyName (class [System]System.Diagnostics.FileVersionInfo fileVersionInfo)  cil managed 
+    // method line 79
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 10 67 65 74 2D 63 6F 6D 70 61 6E 79 2D 6E   // ...get-company-n
-		61 6D 65 00 00                                  ) // ame..
-
-        // Method begins at RVA 0x3454
+        // Method begins at RVA 0x4214
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Project	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class [System]System.Diagnostics.FileVersionInfo::get_CompanyName()
+	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.Util.GacCache::_project
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FileVersionInfoFunctions::GetCompanyName
-
-    // method line 136
-    .method public static hidebysig 
-           default class [mscorlib]System.Version GetFileVersion (class [System]System.Diagnostics.FileVersionInfo fileVersionInfo)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 10 67 65 74 2D 66 69 6C 65 2D 76 65 72 73   // ...get-file-vers
-		69 6F 6E 00 00                                  ) // ion..
-
-        // Method begins at RVA 0x3470
-	// Code size 38 (0x26)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.Version	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FileMajorPart()
-	IL_0007:  ldarg.0 
-	IL_0008:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FileMinorPart()
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FileBuildPart()
-	IL_0013:  ldarg.0 
-	IL_0014:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FilePrivatePart()
-	IL_0019:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32, int32, int32)
-	IL_001e:  stloc.0 
-	IL_001f:  br IL_0024
-
-	IL_0024:  ldloc.0 
-	IL_0025:  ret 
-    } // end of method FileVersionInfoFunctions::GetFileVersion
+    } // end of method GacCache::get_Project
 
-    // method line 137
-    .method public static hidebysig 
-           default string GetProductName (class [System]System.Diagnostics.FileVersionInfo fileVersionInfo)  cil managed 
+    // method line 80
+    .method private hidebysig specialname 
+           instance default class [mscorlib]System.AppDomain get_Domain ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 10 67 65 74 2D 70 72 6F 64 75 63 74 2D 6E   // ...get-product-n
-		61 6D 65 00 00                                  ) // ame..
-
-        // Method begins at RVA 0x34a4
+        // Method begins at RVA 0x4230
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.AppDomain	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class [System]System.Diagnostics.FileVersionInfo::get_ProductName()
+	IL_0002:  ldfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FileVersionInfoFunctions::GetProductName
+    } // end of method GacCache::get_Domain
 
-    // method line 138
-    .method public static hidebysig 
-           default class [mscorlib]System.Version GetProductVersion (class [System]System.Diagnostics.FileVersionInfo fileVersionInfo)  cil managed 
+    // method line 81
+    .method private hidebysig specialname 
+           instance default class NAnt.Core.Util.GacCache/GacResolver get_Resolver ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 13 67 65 74 2D 70 72 6F 64 75 63 74 2D 76   // ...get-product-v
-		65 72 73 69 6F 6E 00 00                         ) // ersion..
-
-        // Method begins at RVA 0x34c0
-	// Code size 38 (0x26)
+        // Method begins at RVA 0x424c
+	// Code size 80 (0x50)
 	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Version	V_0)
+		class NAnt.Core.Util.GacCache/GacResolver	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_ProductMajorPart()
-	IL_0007:  ldarg.0 
-	IL_0008:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_ProductMinorPart()
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_ProductBuildPart()
-	IL_0013:  ldarg.0 
-	IL_0014:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_ProductPrivatePart()
-	IL_0019:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32, int32, int32)
-	IL_001e:  stloc.0 
-	IL_001f:  br IL_0024
-
-	IL_0024:  ldloc.0 
-	IL_0025:  ret 
-    } // end of method FileVersionInfoFunctions::GetProductVersion
-
-  } // end of class NAnt.Core.Functions.FileVersionInfoFunctions
-}
-
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit AssemblyNameFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 0C 61 73 73 65 6D 62 6C 79 6E 61 6D 65 08   // ...assemblyname.
-		41 73 73 65 6D 62 6C 79 00 00                   ) // Assembly..
+	IL_0002:  ldfld class NAnt.Core.Util.GacCache/GacResolver NAnt.Core.Util.GacCache::_resolver
+	IL_0007:  brtrue IL_0042
 
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance class [mscorlib]System.AppDomain class NAnt.Core.Util.GacCache::get_Domain()
+	IL_0014:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetExecutingAssembly()
+	IL_0019:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
+	IL_001e:  ldtoken NAnt.Core.Util.GacCache/GacResolver
+	IL_0023:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0028:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_002d:  callvirt instance class [mscorlib]System.Runtime.Remoting.ObjectHandle class [mscorlib]System.AppDomain::CreateInstanceFrom(string, string)
+	IL_0032:  callvirt instance object class [mscorlib]System.Runtime.Remoting.ObjectHandle::Unwrap()
+	IL_0037:  castclass NAnt.Core.Util.GacCache/GacResolver
+	IL_003c:  stfld class NAnt.Core.Util.GacCache/GacResolver NAnt.Core.Util.GacCache::_resolver
+	IL_0041:  nop 
+	IL_0042:  ldarg.0 
+	IL_0043:  ldfld class NAnt.Core.Util.GacCache/GacResolver NAnt.Core.Util.GacCache::_resolver
+	IL_0048:  stloc.0 
+	IL_0049:  br IL_004e
 
-    // method line 139
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x34f2
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method AssemblyNameFunctions::.ctor
+	IL_004e:  ldloc.0 
+	IL_004f:  ret 
+    } // end of method GacCache::get_Resolver
 
-    // method line 140
-    .method public static hidebysig 
-           default string GetCodeBase (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
+    // method line 82
+    .method public final virtual hidebysig newslot 
+           instance default void Dispose ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0C 67 65 74 2D 63 6F 64 65 62 61 73 65 00   // ...get-codebase.
-		00                                              ) // .
-
-        // Method begins at RVA 0x3500
+        // Method begins at RVA 0x42a8
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_CodeBase()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
+	IL_0002:  ldc.i4.1 
+	IL_0003:  call instance void class NAnt.Core.Util.GacCache::Dispose(bool)
+	IL_0008:  ldarg.0 
+	IL_0009:  call void class [mscorlib]System.GC::SuppressFinalize(object)
 	IL_000e:  ret 
-    } // end of method AssemblyNameFunctions::GetCodeBase
+    } // end of method GacCache::Dispose
 
-    // method line 141
-    .method public static hidebysig 
-           default string GetEscapedCodeBase (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
+    // method line 83
+    .method private hidebysig 
+           instance default void Dispose (bool disposing)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 14 67 65 74 2D 65 73 63 61 70 65 64 2D 63   // ...get-escaped-c
-		6F 64 65 62 61 73 65 00 00                      ) // odebase..
-
-        // Method begins at RVA 0x351c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x42b8
+	// Code size 33 (0x21)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_EscapedCodeBase()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld bool NAnt.Core.Util.GacCache::_disposed
+	IL_0007:  brtrue IL_0020
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyNameFunctions::GetEscapedCodeBase
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
+	IL_0013:  call void class [mscorlib]System.AppDomain::Unload(class [mscorlib]System.AppDomain)
+	IL_0018:  ldarg.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  stfld bool NAnt.Core.Util.GacCache::_disposed
+	IL_001f:  nop 
+	IL_0020:  ret 
+    } // end of method GacCache::Dispose
 
-    // method line 142
-    .method public static hidebysig 
-           default string GetFullName (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
+    // method line 84
+    .method public hidebysig 
+           instance default void RecreateDomain ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0D 67 65 74 2D 66 75 6C 6C 2D 6E 61 6D 65   // ...get-full-name
-		00 00                                           ) // ..
-
-        // Method begins at RVA 0x3538
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x42dc
+	// Code size 114 (0x72)
+	.maxstack 6
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Security.PermissionSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_FullName()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld bool NAnt.Core.Util.GacCache::_hasLoadedAssembly
+	IL_0007:  brtrue IL_001c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyNameFunctions::GetFullName
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
+	IL_0012:  brfalse IL_001c
 
-    // method line 143
-    .method public static hidebysig 
-           default string GetName (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 6E 61 6D 65 00 00 ) // ...get-name..
+	IL_0017:  br IL_0071
 
-        // Method begins at RVA 0x3554
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_001c:  ldarg.0 
+	IL_001d:  ldfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
+	IL_0022:  brfalse IL_0032
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyNameFunctions::GetName
+	IL_0027:  ldarg.0 
+	IL_0028:  ldfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
+	IL_002d:  call void class [mscorlib]System.AppDomain::Unload(class [mscorlib]System.AppDomain)
+	IL_0032:  ldarg.0 
+	IL_0033:  ldnull 
+	IL_0034:  stfld class NAnt.Core.Util.GacCache/GacResolver NAnt.Core.Util.GacCache::_resolver
+	IL_0039:  ldc.i4.1 
+	IL_003a:  newobj instance void class [mscorlib]System.Security.PermissionSet::'.ctor'(valuetype [mscorlib]System.Security.Permissions.PermissionState)
+	IL_003f:  stloc.0 
+	IL_0040:  ldarg.0 
+	IL_0041:  ldstr "GacCacheDomain"
+	IL_0046:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_004b:  callvirt instance class [mscorlib]System.Security.Policy.Evidence class [mscorlib]System.AppDomain::get_Evidence()
+	IL_0050:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_0055:  callvirt instance class [mscorlib]System.AppDomainSetup class [mscorlib]System.AppDomain::get_SetupInformation()
+	IL_005a:  ldloc.0 
+	IL_005b:  call !!0[] class [mscorlib]System.Array::Empty<class [mscorlib]System.Security.Policy.StrongName> ()
+	IL_0060:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::CreateDomain(string, class [mscorlib]System.Security.Policy.Evidence, class [mscorlib]System.AppDomainSetup, class [mscorlib]System.Security.PermissionSet, class [mscorlib]System.Security.Policy.StrongName[])
+	IL_0065:  stfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
+	IL_006a:  ldarg.0 
+	IL_006b:  ldc.i4.0 
+	IL_006c:  stfld bool NAnt.Core.Util.GacCache::_hasLoadedAssembly
+	IL_0071:  ret 
+    } // end of method GacCache::RecreateDomain
 
-    // method line 144
-    .method public static hidebysig 
-           default class [mscorlib]System.Version GetVersion (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
+    // method line 85
+    .method public hidebysig 
+           instance default bool IsAssemblyInGac (string assemblyFile)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0B 67 65 74 2D 76 65 72 73 69 6F 6E 00 00 ) // ...get-version..
-
-        // Method begins at RVA 0x3570
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x435c
+	// Code size 160 (0xa0)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Version	V_0)
+		bool	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class NAnt.Core.Project class NAnt.Core.Util.GacCache::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
+	IL_000c:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Family()
+	IL_0011:  ldarg.0 
+	IL_0012:  call instance class NAnt.Core.Project class NAnt.Core.Util.GacCache::get_Project()
+	IL_0017:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_001c:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Family()
+	IL_0021:  call bool string::op_Inequality(string, string)
+	IL_0026:  brfalse IL_0033
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyNameFunctions::GetVersion
+	IL_002b:  nop 
+	IL_002c:  ldc.i4.0 
+	IL_002d:  stloc.0 
+	IL_002e:  br IL_009e
 
-    // method line 145
-    .method public hidebysig 
-           instance default class [mscorlib]System.Reflection.AssemblyName GetAssemblyName (string assemblyFile)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 11 67 65 74 2D 61 73 73 65 6D 62 6C 79 2D   // ...get-assembly-
-		6E 61 6D 65 00 00                               ) // name..
+	IL_0033:  ldarg.1 
+	IL_0034:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
+	IL_0039:  stloc.1 
+	IL_003a:  ldarg.0 
+	IL_003b:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.GacCache::_gacQueryCache
+	IL_0040:  ldloc.1 
+	IL_0041:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	IL_0046:  brfalse IL_0063
 
-        // Method begins at RVA 0x358c
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Reflection.AssemblyName	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	IL_000d:  call class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.AssemblyName::GetAssemblyName(string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_004b:  nop 
+	IL_004c:  ldarg.0 
+	IL_004d:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.GacCache::_gacQueryCache
+	IL_0052:  ldloc.1 
+	IL_0053:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0058:  unbox.any [mscorlib]System.Boolean
+	IL_005d:  stloc.0 
+	IL_005e:  br IL_009e
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method AssemblyNameFunctions::GetAssemblyName
+	IL_0063:  ldarg.0 
+	IL_0064:  ldc.i4.1 
+	IL_0065:  stfld bool NAnt.Core.Util.GacCache::_hasLoadedAssembly
+	IL_006a:  ldarg.0 
+	IL_006b:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.GacCache::_gacQueryCache
+	IL_0070:  ldloc.1 
+	IL_0071:  ldarg.0 
+	IL_0072:  call instance class NAnt.Core.Util.GacCache/GacResolver class NAnt.Core.Util.GacCache::get_Resolver()
+	IL_0077:  ldloc.1 
+	IL_0078:  callvirt instance bool class NAnt.Core.Util.GacCache/GacResolver::IsAssemblyInGac(string)
+	IL_007d:  box [mscorlib]System.Boolean
+	IL_0082:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0087:  ldarg.0 
+	IL_0088:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.GacCache::_gacQueryCache
+	IL_008d:  ldloc.1 
+	IL_008e:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0093:  unbox.any [mscorlib]System.Boolean
+	IL_0098:  stloc.0 
+	IL_0099:  br IL_009e
 
-  } // end of class NAnt.Core.Functions.AssemblyNameFunctions
-}
+	IL_009e:  ldloc.0 
+	IL_009f:  ret 
+    } // end of method GacCache::IsAssemblyInGac
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit DirectoryFunctions
-  	extends NAnt.Core.FunctionSetBase
+	.property instance class NAnt.Core.Project Project ()
+	{
+		.get instance default class NAnt.Core.Project NAnt.Core.Util.GacCache::get_Project () 
+	}
+	.property instance class [mscorlib]System.AppDomain Domain ()
+	{
+		.get instance default class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::get_Domain () 
+	}
+	.property instance class NAnt.Core.Util.GacCache/GacResolver Resolver ()
+	{
+		.get instance default class NAnt.Core.Util.GacCache/GacResolver NAnt.Core.Util.GacCache::get_Resolver () 
+	}
+  .class nested private auto ansi beforefieldinit GacResolver
+  	extends [mscorlib]System.MarshalByRefObject
   {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 09 64 69 72 65 63 74 6F 72 79 09 44 69 72   // ...directory.Dir
-		65 63 74 6F 72 79 00 00                         ) // ectory..
 
-
-    // method line 146
+    // method line 86
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x35b2
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x4408
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method DirectoryFunctions::.ctor
+	IL_0001:  call instance void class [mscorlib]System.MarshalByRefObject::'.ctor'()
+	IL_0006:  ret 
+    } // end of method GacResolver::.ctor
 
-    // method line 147
-    .method public hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetCreationTime (string path)  cil managed 
+    // method line 87
+    .method public virtual hidebysig 
+           instance default object InitializeLifetimeService ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 11 67 65 74 2D 63 72 65 61 74 69 6F 6E 2D   // ...get-creation-
-		74 69 6D 65 00 00                               ) // time..
-
-        // Method begins at RVA 0x35c0
-	// Code size 62 (0x3e)
-	.maxstack 3
+        // Method begins at RVA 0x4410
+	// Code size 47 (0x2f)
+	.maxstack 2
 	.locals init (
-		string	V_0,
-		valuetype [mscorlib]System.DateTime	V_1)
+		class [mscorlib]System.Runtime.Remoting.Lifetime.ILease	V_0,
+		object	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0014:  brtrue IL_0030
+	IL_0002:  call instance object class [mscorlib]System.MarshalByRefObject::InitializeLifetimeService()
+	IL_0007:  castclass [mscorlib]System.Runtime.Remoting.Lifetime.ILease
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  callvirt instance valuetype [mscorlib]System.Runtime.Remoting.Lifetime.LeaseState class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::get_CurrentState()
+	IL_0013:  ldc.i4.1 
+	IL_0014:  bne.un IL_0026
 
 	IL_0019:  nop 
-	IL_001a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001f:  ldstr "Could not find a part of the path \"{0}\"."
-	IL_0024:  ldloc.0 
-	IL_0025:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002a:  newobj instance void class [mscorlib]System.IO.IOException::'.ctor'(string)
-	IL_002f:  throw 
-	IL_0030:  ldloc.0 
-	IL_0031:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.Directory::GetCreationTime(string)
-	IL_0036:  stloc.1 
-	IL_0037:  br IL_003c
+	IL_001a:  ldloc.0 
+	IL_001b:  ldsfld valuetype [mscorlib]System.TimeSpan [mscorlib]System.TimeSpan::Zero
+	IL_0020:  callvirt instance void class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::set_InitialLeaseTime(valuetype [mscorlib]System.TimeSpan)
+	IL_0025:  nop 
+	IL_0026:  ldloc.0 
+	IL_0027:  stloc.1 
+	IL_0028:  br IL_002d
 
-	IL_003c:  ldloc.1 
-	IL_003d:  ret 
-    } // end of method DirectoryFunctions::GetCreationTime
+	IL_002d:  ldloc.1 
+	IL_002e:  ret 
+    } // end of method GacResolver::InitializeLifetimeService
 
-    // method line 148
+    // method line 88
     .method public hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetLastWriteTime (string path)  cil managed 
+           instance default bool IsAssemblyInGac (string assemblyFile)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 13 67 65 74 2D 6C 61 73 74 2D 77 72 69 74   // ...get-last-writ
-		65 2D 74 69 6D 65 00 00                         ) // e-time..
-
-        // Method begins at RVA 0x360c
-	// Code size 62 (0x3e)
-	.maxstack 3
+        // Method begins at RVA 0x444c
+	// Code size 82 (0x52)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		valuetype [mscorlib]System.DateTime	V_1)
+		class [mscorlib]System.Reflection.AssemblyName	V_0,
+		bool	V_1,
+		class [mscorlib]System.Reflection.Assembly	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0014:  brtrue IL_0030
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  call class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.AssemblyName::GetAssemblyName(string)
+	  IL_0008:  stloc.0 
+	  IL_0009:  ldloc.0 
+	  IL_000a:  callvirt instance unsigned int8[] class [mscorlib]System.Reflection.AssemblyName::GetPublicKeyToken()
+	  IL_000f:  brtrue IL_001c
 
-	IL_0019:  nop 
-	IL_001a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001f:  ldstr "Could not find a part of the path \"{0}\"."
-	IL_0024:  ldloc.0 
-	IL_0025:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002a:  newobj instance void class [mscorlib]System.IO.IOException::'.ctor'(string)
-	IL_002f:  throw 
-	IL_0030:  ldloc.0 
-	IL_0031:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.Directory::GetLastWriteTime(string)
-	IL_0036:  stloc.1 
-	IL_0037:  br IL_003c
+	  IL_0014:  nop 
+	  IL_0015:  ldc.i4.0 
+	  IL_0016:  stloc.1 
+	  IL_0017:  leave IL_0050
 
-	IL_003c:  ldloc.1 
-	IL_003d:  ret 
-    } // end of method DirectoryFunctions::GetLastWriteTime
+	  IL_001c:  ldloc.0 
+	  IL_001d:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::Load(class [mscorlib]System.Reflection.AssemblyName)
+	  IL_0022:  stloc.2 
+	  IL_0023:  ldsfld bool NAnt.Core.PlatformHelper::IsMono
+	  IL_0028:  brfalse IL_003a
 
-    // method line 149
-    .method public hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetLastAccessTime (string path)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 14 67 65 74 2D 6C 61 73 74 2D 61 63 63 65   // ...get-last-acce
-		73 73 2D 74 69 6D 65 00 00                      ) // ss-time..
+	  IL_002d:  nop 
+	  IL_002e:  ldloc.2 
+	  IL_002f:  callvirt instance bool class [mscorlib]System.Reflection.Assembly::get_GlobalAssemblyCache()
+	  IL_0034:  stloc.1 
+	  IL_0035:  leave IL_0050
 
-        // Method begins at RVA 0x3658
-	// Code size 62 (0x3e)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		valuetype [mscorlib]System.DateTime	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0014:  brtrue IL_0030
+	  IL_003a:  nop 
+	  IL_003b:  ldloc.2 
+	  IL_003c:  call bool class [mscorlib]System.Runtime.InteropServices.RuntimeEnvironment::FromGlobalAccessCache(class [mscorlib]System.Reflection.Assembly)
+	  IL_0041:  stloc.1 
+	  IL_0042:  leave IL_0050
 
-	IL_0019:  nop 
-	IL_001a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001f:  ldstr "Could not find a part of the path \"{0}\"."
-	IL_0024:  ldloc.0 
-	IL_0025:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002a:  newobj instance void class [mscorlib]System.IO.IOException::'.ctor'(string)
-	IL_002f:  throw 
-	IL_0030:  ldloc.0 
-	IL_0031:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.Directory::GetLastAccessTime(string)
-	IL_0036:  stloc.1 
-	IL_0037:  br IL_003c
+	} // end .try 0
+	catch class [mscorlib]System.Object { // 0
+	  IL_0047:  pop 
+	  IL_0048:  nop 
+	  IL_0049:  ldc.i4.0 
+	  IL_004a:  stloc.1 
+	  IL_004b:  leave IL_0050
 
-	IL_003c:  ldloc.1 
-	IL_003d:  ret 
-    } // end of method DirectoryFunctions::GetLastAccessTime
+	} // end handler 0
+	IL_0050:  ldloc.1 
+	IL_0051:  ret 
+    } // end of method GacResolver::IsAssemblyInGac
 
-    // method line 150
-    .method public static hidebysig 
-           default string GetCurrentDirectory ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 15 67 65 74 2D 63 75 72 72 65 6E 74 2D 64   // ...get-current-d
-		69 72 65 63 74 6F 72 79 00 00                   ) // irectory..
+  } // end of class GacResolver
 
-        // Method begins at RVA 0x36a4
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  call string class [mscorlib]System.IO.Directory::GetCurrentDirectory()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+  } // end of class NAnt.Core.Util.GacCache
+}
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method DirectoryFunctions::GetCurrentDirectory
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi beforefieldinit CommandLineParser
+  	extends [mscorlib]System.Object
+  {
+    .field  private  class NAnt.Core.Util.CommandLineArgumentCollection _argumentCollection
+    .field  private  class NAnt.Core.Util.CommandLineArgument _defaultArgument
+    .field  private  class [mscorlib]System.Type _argumentSpecification
+    .field  private  bool _supportsResponseFile
 
-    // method line 151
-    .method public hidebysig 
-           instance default string GetParentDirectory (string path)  cil managed 
+    // method line 89
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Type argumentSpecification, bool supportsResponseFile)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 14 67 65 74 2D 70 61 72 65 6E 74 2D 64 69   // ...get-parent-di
-		72 65 63 74 6F 72 79 00 00                      ) // rectory..
-
-        // Method begins at RVA 0x36c0
-	// Code size 56 (0x38)
-	.maxstack 2
+        // Method begins at RVA 0x44bc
+	// Code size 211 (0xd3)
+	.maxstack 3
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0,
-		class [mscorlib]System.IO.DirectoryInfo	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+		class [mscorlib]System.Reflection.PropertyInfo	V_0,
+		class [mscorlib]System.Reflection.PropertyInfo[]	V_1,
+		int32	V_2,
+		class NAnt.Core.Util.CommandLineArgumentAttribute	V_3)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
 	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	IL_000d:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0012:  stloc.0 
-	IL_0013:  ldloc.0 
-	IL_0014:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.DirectoryInfo::get_Parent()
-	IL_0019:  stloc.1 
-	IL_001a:  ldloc.1 
-	IL_001b:  brfalse IL_002b
-
-	IL_0020:  ldloc.1 
-	IL_0021:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0026:  br IL_0030
+	IL_0008:  ldnull 
+	IL_0009:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_000e:  brfalse IL_001f
 
-	IL_002b:  ldsfld string [mscorlib]System.String::Empty
-	IL_0030:  stloc.2 
-	IL_0031:  br IL_0036
+	IL_0013:  nop 
+	IL_0014:  ldstr "argumentSpecification"
+	IL_0019:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_001e:  throw 
+	IL_001f:  ldarg.0 
+	IL_0020:  newobj instance void class NAnt.Core.Util.CommandLineArgumentCollection::'.ctor'()
+	IL_0025:  stfld class NAnt.Core.Util.CommandLineArgumentCollection NAnt.Core.Util.CommandLineParser::_argumentCollection
+	IL_002a:  nop 
+	IL_002b:  ldarg.1 
+	IL_002c:  ldc.i4.s 0x14
+	IL_002e:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo[] class [mscorlib]System.Type::GetProperties(valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_0033:  stloc.1 
+	IL_0034:  ldc.i4.0 
+	IL_0035:  stloc.2 
+	IL_0036:  br IL_00bb
 
-	IL_0036:  ldloc.2 
-	IL_0037:  ret 
-    } // end of method DirectoryFunctions::GetParentDirectory
+	IL_003b:  ldloc.1 
+	IL_003c:  ldloc.2 
+	IL_003d:  ldelem.ref 
+	IL_003e:  stloc.0 
+	IL_003f:  nop 
+	IL_0040:  ldloc.0 
+	IL_0041:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
+	IL_0046:  brtrue IL_0065
 
-    // method line 152
-    .method public hidebysig 
-           instance default string GetDirectoryRoot (string path)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 12 67 65 74 2D 64 69 72 65 63 74 6F 72 79   // ...get-directory
-		2D 72 6F 6F 74 00 00                            ) // -root..
+	IL_004b:  ldtoken [mscorlib]System.Collections.ICollection
+	IL_0050:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0055:  ldloc.0 
+	IL_0056:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_005b:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_0060:  brfalse IL_00b6
 
-        // Method begins at RVA 0x3704
-	// Code size 33 (0x21)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	IL_000d:  call string class [mscorlib]System.IO.Directory::GetDirectoryRoot(string)
-	IL_0012:  stloc.0 
-	IL_0013:  ldloc.0 
-	IL_0014:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
-	IL_0019:  stloc.1 
-	IL_001a:  br IL_001f
+	IL_0065:  nop 
+	IL_0066:  ldloc.0 
+	IL_0067:  call class NAnt.Core.Util.CommandLineArgumentAttribute class NAnt.Core.Util.CommandLineParser::GetCommandLineAttribute(class [mscorlib]System.Reflection.PropertyInfo)
+	IL_006c:  stloc.3 
+	IL_006d:  ldloc.3 
+	IL_006e:  isinst NAnt.Core.Util.DefaultCommandLineArgumentAttribute
+	IL_0073:  brfalse IL_009a
 
-	IL_001f:  ldloc.1 
-	IL_0020:  ret 
-    } // end of method DirectoryFunctions::GetDirectoryRoot
+	IL_0078:  nop 
+	IL_0079:  ldarg.0 
+	IL_007a:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
+	IL_007f:  ldnull 
+	IL_0080:  ceq 
+	IL_0082:  call void class [System]System.Diagnostics.Debug::Assert(bool)
+	IL_0087:  ldarg.0 
+	IL_0088:  ldloc.3 
+	IL_0089:  ldloc.0 
+	IL_008a:  newobj instance void class NAnt.Core.Util.CommandLineArgument::'.ctor'(class NAnt.Core.Util.CommandLineArgumentAttribute, class [mscorlib]System.Reflection.PropertyInfo)
+	IL_008f:  stfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
+	IL_0094:  nop 
+	IL_0095:  br IL_00b5
 
-    // method line 153
-    .method public hidebysig 
-           instance default bool Exists (string path)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
+	IL_009a:  ldloc.3 
+	IL_009b:  brfalse IL_00b5
 
-        // Method begins at RVA 0x3734
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	IL_000d:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_00a0:  nop 
+	IL_00a1:  ldarg.0 
+	IL_00a2:  ldfld class NAnt.Core.Util.CommandLineArgumentCollection NAnt.Core.Util.CommandLineParser::_argumentCollection
+	IL_00a7:  ldloc.3 
+	IL_00a8:  ldloc.0 
+	IL_00a9:  newobj instance void class NAnt.Core.Util.CommandLineArgument::'.ctor'(class NAnt.Core.Util.CommandLineArgumentAttribute, class [mscorlib]System.Reflection.PropertyInfo)
+	IL_00ae:  callvirt instance int32 class NAnt.Core.Util.CommandLineArgumentCollection::Add(class NAnt.Core.Util.CommandLineArgument)
+	IL_00b3:  pop 
+	IL_00b4:  nop 
+	IL_00b5:  nop 
+	IL_00b6:  nop 
+	IL_00b7:  ldloc.2 
+	IL_00b8:  ldc.i4.1 
+	IL_00b9:  add 
+	IL_00ba:  stloc.2 
+	IL_00bb:  ldloc.2 
+	IL_00bc:  ldloc.1 
+	IL_00bd:  ldlen 
+	IL_00be:  conv.i4 
+	IL_00bf:  blt IL_003b
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method DirectoryFunctions::Exists
+	IL_00c4:  ldarg.0 
+	IL_00c5:  ldarg.1 
+	IL_00c6:  stfld class [mscorlib]System.Type NAnt.Core.Util.CommandLineParser::_argumentSpecification
+	IL_00cb:  ldarg.0 
+	IL_00cc:  ldarg.2 
+	IL_00cd:  stfld bool NAnt.Core.Util.CommandLineParser::_supportsResponseFile
+	IL_00d2:  ret 
+    } // end of method CommandLineParser::.ctor
 
-    // method line 154
-    .method public hidebysig 
-           instance default string GetName (string path)  cil managed 
+    // method line 90
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_LogoBanner ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 6E 61 6D 65 00 00 ) // ...get-name..
-
-        // Method begins at RVA 0x375c
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x459c
+	// Code size 634 (0x27a)
+	.maxstack 8
 	.locals init (
-		string	V_0)
+		string	V_0,
+		string	V_1,
+		class [mscorlib]System.Version	V_2,
+		string	V_3,
+		string	V_4,
+		string	V_5,
+		valuetype [mscorlib]System.DateTime	V_6,
+		class [mscorlib]System.Reflection.Assembly	V_7,
+		object[]	V_8,
+		class [mscorlib]System.Reflection.AssemblyProductAttribute	V_9,
+		object[]	V_10,
+		class [mscorlib]System.Reflection.AssemblyInformationalVersionAttribute	V_11,
+		class [System]System.Diagnostics.FileVersionInfo	V_12,
+		valuetype [mscorlib]System.DateTime	V_13,
+		object[]	V_14,
+		class [mscorlib]System.Reflection.AssemblyConfigurationAttribute	V_15,
+		object[]	V_16,
+		class [mscorlib]System.Reflection.AssemblyCopyrightAttribute	V_17,
+		object[]	V_18,
+		class [mscorlib]System.Reflection.AssemblyCompanyAttribute	V_19,
+		class [mscorlib]System.Text.StringBuilder	V_20,
+		string	V_21)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  ldnull 
+	IL_0002:  stloc.3 
+	IL_0003:  ldnull 
+	IL_0004:  stloc.s 4
+	IL_0006:  ldnull 
+	IL_0007:  stloc.s 5
+	IL_0009:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetEntryAssembly()
+	IL_000e:  stloc.s 7
+	IL_0010:  ldloc.s 7
+	IL_0012:  ldnull 
+	IL_0013:  call bool class [mscorlib]System.Reflection.Assembly::op_Equality(class [mscorlib]System.Reflection.Assembly, class [mscorlib]System.Reflection.Assembly)
+	IL_0018:  brfalse IL_0026
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DirectoryFunctions::GetName
+	IL_001d:  nop 
+	IL_001e:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetCallingAssembly()
+	IL_0023:  stloc.s 7
+	IL_0025:  nop 
+	IL_0026:  ldloc.s 7
+	IL_0028:  ldtoken [mscorlib]System.Reflection.AssemblyProductAttribute
+	IL_002d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0032:  ldc.i4.0 
+	IL_0033:  callvirt instance object[] class [mscorlib]System.Reflection.Assembly::GetCustomAttributes(class [mscorlib]System.Type, bool)
+	IL_0038:  stloc.s 8
+	IL_003a:  ldloc.s 8
+	IL_003c:  ldlen 
+	IL_003d:  conv.i4 
+	IL_003e:  ldc.i4.0 
+	IL_003f:  ble IL_005e
 
-  } // end of class NAnt.Core.Functions.DirectoryFunctions
-}
+	IL_0044:  nop 
+	IL_0045:  ldloc.s 8
+	IL_0047:  ldc.i4.0 
+	IL_0048:  ldelem.ref 
+	IL_0049:  castclass [mscorlib]System.Reflection.AssemblyProductAttribute
+	IL_004e:  stloc.s 9
+	IL_0050:  ldloc.s 9
+	IL_0052:  callvirt instance string class [mscorlib]System.Reflection.AssemblyProductAttribute::get_Product()
+	IL_0057:  stloc.0 
+	IL_0058:  nop 
+	IL_0059:  br IL_006d
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit EnvironmentFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 0B 65 6E 76 69 72 6F 6E 6D 65 6E 74 0B 45   // ...environment.E
-		6E 76 69 72 6F 6E 6D 65 6E 74 00 00             ) // nvironment..
+	IL_005e:  nop 
+	IL_005f:  ldloc.s 7
+	IL_0061:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	IL_0066:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	IL_006b:  stloc.0 
+	IL_006c:  nop 
+	IL_006d:  ldloc.s 7
+	IL_006f:  ldtoken [mscorlib]System.Reflection.AssemblyInformationalVersionAttribute
+	IL_0074:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0079:  ldc.i4.0 
+	IL_007a:  callvirt instance object[] class [mscorlib]System.Reflection.Assembly::GetCustomAttributes(class [mscorlib]System.Type, bool)
+	IL_007f:  stloc.s 10
+	IL_0081:  ldloc.s 10
+	IL_0083:  ldlen 
+	IL_0084:  conv.i4 
+	IL_0085:  ldc.i4.0 
+	IL_0086:  ble IL_00a5
 
+	IL_008b:  nop 
+	IL_008c:  ldloc.s 10
+	IL_008e:  ldc.i4.0 
+	IL_008f:  ldelem.ref 
+	IL_0090:  castclass [mscorlib]System.Reflection.AssemblyInformationalVersionAttribute
+	IL_0095:  stloc.s 11
+	IL_0097:  ldloc.s 11
+	IL_0099:  callvirt instance string class [mscorlib]System.Reflection.AssemblyInformationalVersionAttribute::get_InformationalVersion()
+	IL_009e:  stloc.1 
+	IL_009f:  nop 
+	IL_00a0:  br IL_0115
 
-    // method line 155
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x377c
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method EnvironmentFunctions::.ctor
+	IL_00a5:  nop 
+	IL_00a6:  ldloc.s 7
+	IL_00a8:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
+	IL_00ad:  call class [System]System.Diagnostics.FileVersionInfo class [System]System.Diagnostics.FileVersionInfo::GetVersionInfo(string)
+	IL_00b2:  stloc.s 12
+	IL_00b4:  ldc.i4.7 
+	IL_00b5:  newarr [mscorlib]System.Object
+	IL_00ba:  dup 
+	IL_00bb:  ldc.i4.0 
+	IL_00bc:  ldloc.s 12
+	IL_00be:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FileMajorPart()
+	IL_00c3:  box [mscorlib]System.Int32
+	IL_00c8:  stelem.ref 
+	IL_00c9:  dup 
+	IL_00ca:  ldc.i4.1 
+	IL_00cb:  ldstr "."
+	IL_00d0:  stelem.ref 
+	IL_00d1:  dup 
+	IL_00d2:  ldc.i4.2 
+	IL_00d3:  ldloc.s 12
+	IL_00d5:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FileMinorPart()
+	IL_00da:  box [mscorlib]System.Int32
+	IL_00df:  stelem.ref 
+	IL_00e0:  dup 
+	IL_00e1:  ldc.i4.3 
+	IL_00e2:  ldstr "."
+	IL_00e7:  stelem.ref 
+	IL_00e8:  dup 
+	IL_00e9:  ldc.i4.4 
+	IL_00ea:  ldloc.s 12
+	IL_00ec:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FileBuildPart()
+	IL_00f1:  box [mscorlib]System.Int32
+	IL_00f6:  stelem.ref 
+	IL_00f7:  dup 
+	IL_00f8:  ldc.i4.5 
+	IL_00f9:  ldstr "."
+	IL_00fe:  stelem.ref 
+	IL_00ff:  dup 
+	IL_0100:  ldc.i4.6 
+	IL_0101:  ldloc.s 12
+	IL_0103:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FilePrivatePart()
+	IL_0108:  box [mscorlib]System.Int32
+	IL_010d:  stelem.ref 
+	IL_010e:  call string string::Concat(object[])
+	IL_0113:  stloc.1 
+	IL_0114:  nop 
+	IL_0115:  ldloc.s 7
+	IL_0117:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	IL_011c:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
+	IL_0121:  stloc.2 
+	IL_0122:  ldloca.s 13
+	IL_0124:  ldc.i4 2000
+	IL_0129:  ldc.i4.1 
+	IL_012a:  ldc.i4.1 
+	IL_012b:  call instance void valuetype [mscorlib]System.DateTime::'.ctor'(int32, int32, int32)
+	IL_0130:  ldloca.s 13
+	IL_0132:  ldloc.2 
+	IL_0133:  callvirt instance int32 class [mscorlib]System.Version::get_Build()
+	IL_0138:  conv.r8 
+	IL_0139:  call instance valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::AddDays(float64)
+	IL_013e:  stloc.s 6
+	IL_0140:  ldloc.s 7
+	IL_0142:  ldtoken [mscorlib]System.Reflection.AssemblyConfigurationAttribute
+	IL_0147:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_014c:  ldc.i4.0 
+	IL_014d:  callvirt instance object[] class [mscorlib]System.Reflection.Assembly::GetCustomAttributes(class [mscorlib]System.Type, bool)
+	IL_0152:  stloc.s 14
+	IL_0154:  ldloc.s 14
+	IL_0156:  ldlen 
+	IL_0157:  conv.i4 
+	IL_0158:  ldc.i4.0 
+	IL_0159:  ble IL_0173
 
-    // method line 156
-    .method public static hidebysig 
-           default string GetFolderPath (valuetype [mscorlib]System.Environment/SpecialFolder folder)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0F 67 65 74 2D 66 6F 6C 64 65 72 2D 70 61   // ...get-folder-pa
-		74 68 00 00                                     ) // th..
+	IL_015e:  nop 
+	IL_015f:  ldloc.s 14
+	IL_0161:  ldc.i4.0 
+	IL_0162:  ldelem.ref 
+	IL_0163:  castclass [mscorlib]System.Reflection.AssemblyConfigurationAttribute
+	IL_0168:  stloc.s 15
+	IL_016a:  ldloc.s 15
+	IL_016c:  callvirt instance string class [mscorlib]System.Reflection.AssemblyConfigurationAttribute::get_Configuration()
+	IL_0171:  stloc.3 
+	IL_0172:  nop 
+	IL_0173:  ldloc.s 7
+	IL_0175:  ldtoken [mscorlib]System.Reflection.AssemblyCopyrightAttribute
+	IL_017a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_017f:  ldc.i4.0 
+	IL_0180:  callvirt instance object[] class [mscorlib]System.Reflection.Assembly::GetCustomAttributes(class [mscorlib]System.Type, bool)
+	IL_0185:  stloc.s 16
+	IL_0187:  ldloc.s 16
+	IL_0189:  ldlen 
+	IL_018a:  conv.i4 
+	IL_018b:  ldc.i4.0 
+	IL_018c:  ble IL_01a7
 
-        // Method begins at RVA 0x3788
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0191:  nop 
+	IL_0192:  ldloc.s 16
+	IL_0194:  ldc.i4.0 
+	IL_0195:  ldelem.ref 
+	IL_0196:  castclass [mscorlib]System.Reflection.AssemblyCopyrightAttribute
+	IL_019b:  stloc.s 17
+	IL_019d:  ldloc.s 17
+	IL_019f:  callvirt instance string class [mscorlib]System.Reflection.AssemblyCopyrightAttribute::get_Copyright()
+	IL_01a4:  stloc.s 4
+	IL_01a6:  nop 
+	IL_01a7:  ldloc.s 7
+	IL_01a9:  ldtoken [mscorlib]System.Reflection.AssemblyCompanyAttribute
+	IL_01ae:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_01b3:  ldc.i4.0 
+	IL_01b4:  callvirt instance object[] class [mscorlib]System.Reflection.Assembly::GetCustomAttributes(class [mscorlib]System.Type, bool)
+	IL_01b9:  stloc.s 18
+	IL_01bb:  ldloc.s 18
+	IL_01bd:  ldlen 
+	IL_01be:  conv.i4 
+	IL_01bf:  ldc.i4.0 
+	IL_01c0:  ble IL_01db
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EnvironmentFunctions::GetFolderPath
+	IL_01c5:  nop 
+	IL_01c6:  ldloc.s 18
+	IL_01c8:  ldc.i4.0 
+	IL_01c9:  ldelem.ref 
+	IL_01ca:  castclass [mscorlib]System.Reflection.AssemblyCompanyAttribute
+	IL_01cf:  stloc.s 19
+	IL_01d1:  ldloc.s 19
+	IL_01d3:  callvirt instance string class [mscorlib]System.Reflection.AssemblyCompanyAttribute::get_Company()
+	IL_01d8:  stloc.s 5
+	IL_01da:  nop 
+	IL_01db:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_01e0:  stloc.s 20
+	IL_01e2:  ldloc.s 20
+	IL_01e4:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01e9:  ldstr "String_BuildBanner"
+	IL_01ee:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_01f3:  ldc.i4.5 
+	IL_01f4:  newarr [mscorlib]System.Object
+	IL_01f9:  dup 
+	IL_01fa:  ldc.i4.0 
+	IL_01fb:  ldloc.0 
+	IL_01fc:  stelem.ref 
+	IL_01fd:  dup 
+	IL_01fe:  ldc.i4.1 
+	IL_01ff:  ldloc.1 
+	IL_0200:  stelem.ref 
+	IL_0201:  dup 
+	IL_0202:  ldc.i4.2 
+	IL_0203:  ldloc.2 
+	IL_0204:  ldc.i4.4 
+	IL_0205:  callvirt instance string class [mscorlib]System.Version::ToString(int32)
+	IL_020a:  stelem.ref 
+	IL_020b:  dup 
+	IL_020c:  ldc.i4.3 
+	IL_020d:  ldloc.3 
+	IL_020e:  stelem.ref 
+	IL_020f:  dup 
+	IL_0210:  ldc.i4.4 
+	IL_0211:  ldloca.s 6
+	IL_0213:  call instance string valuetype [mscorlib]System.DateTime::ToShortDateString()
+	IL_0218:  stelem.ref 
+	IL_0219:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_021e:  pop 
+	IL_021f:  ldloc.s 4
+	IL_0221:  call bool string::IsNullOrEmpty(string)
+	IL_0226:  brtrue IL_0244
 
-    // method line 157
-    .method public static hidebysig 
-           default string GetMachineName ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 10 67 65 74 2D 6D 61 63 68 69 6E 65 2D 6E   // ...get-machine-n
-		61 6D 65 00 00                                  ) // ame..
+	IL_022b:  nop 
+	IL_022c:  ldloc.s 20
+	IL_022e:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_0233:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0238:  pop 
+	IL_0239:  ldloc.s 20
+	IL_023b:  ldloc.s 4
+	IL_023d:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0242:  pop 
+	IL_0243:  nop 
+	IL_0244:  ldloc.s 5
+	IL_0246:  call bool string::IsNullOrEmpty(string)
+	IL_024b:  brtrue IL_0269
 
-        // Method begins at RVA 0x37a4
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  call string class [mscorlib]System.Environment::get_MachineName()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0250:  nop 
+	IL_0251:  ldloc.s 20
+	IL_0253:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_0258:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_025d:  pop 
+	IL_025e:  ldloc.s 20
+	IL_0260:  ldloc.s 5
+	IL_0262:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0267:  pop 
+	IL_0268:  nop 
+	IL_0269:  ldloc.s 20
+	IL_026b:  callvirt instance string object::ToString()
+	IL_0270:  stloc.s 21
+	IL_0272:  br IL_0277
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method EnvironmentFunctions::GetMachineName
+	IL_0277:  ldloc.s 21
+	IL_0279:  ret 
+    } // end of method CommandLineParser::get_LogoBanner
 
-    // method line 158
-    .method public static hidebysig 
-           default class [mscorlib]System.OperatingSystem GetOperatingSystem ()  cil managed 
+    // method line 91
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_Usage ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 14 67 65 74 2D 6F 70 65 72 61 74 69 6E 67   // ...get-operating
-		2D 73 79 73 74 65 6D 00 00                      ) // -system..
-
-        // Method begins at RVA 0x37c0
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0x4824
+	// Code size 805 (0x325)
+	.maxstack 5
 	.locals init (
-		class [mscorlib]System.OperatingSystem	V_0)
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		class [mscorlib]System.Reflection.Assembly	V_1,
+		class NAnt.Core.Util.CommandLineArgument	V_2,
+		class NAnt.Core.Util.CommandLineArgumentEnumerator	V_3,
+		string	V_4,
+		string	V_5,
+		class [mscorlib]System.IDisposable	V_6,
+		string	V_7)
 	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
+	IL_0001:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
 	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0007:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetEntryAssembly()
+	IL_000c:  stloc.1 
+	IL_000d:  ldloc.1 
+	IL_000e:  ldnull 
+	IL_000f:  call bool class [mscorlib]System.Reflection.Assembly::op_Equality(class [mscorlib]System.Reflection.Assembly, class [mscorlib]System.Reflection.Assembly)
+	IL_0014:  brfalse IL_0021
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method EnvironmentFunctions::GetOperatingSystem
+	IL_0019:  nop 
+	IL_001a:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetCallingAssembly()
+	IL_001f:  stloc.1 
+	IL_0020:  nop 
+	IL_0021:  ldloc.0 
+	IL_0022:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_0027:  ldc.i4.0 
+	IL_0028:  ble IL_003b
 
-    // method line 159
-    .method public static hidebysig 
-           default string GetUserName ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0D 67 65 74 2D 75 73 65 72 2D 6E 61 6D 65   // ...get-user-name
-		00 00                                           ) // ..
+	IL_002d:  nop 
+	IL_002e:  ldloc.0 
+	IL_002f:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_0034:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0039:  pop 
+	IL_003a:  nop 
+	IL_003b:  ldloc.0 
+	IL_003c:  ldstr "Usage : "
+	IL_0041:  ldloc.1 
+	IL_0042:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	IL_0047:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	IL_004c:  ldstr " [options]"
+	IL_0051:  call string string::Concat(string, string, string)
+	IL_0056:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_005b:  pop 
+	IL_005c:  ldarg.0 
+	IL_005d:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
+	IL_0062:  brfalse IL_00c9
 
-        // Method begins at RVA 0x37dc
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  call string class [mscorlib]System.Environment::get_UserName()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0067:  nop 
+	IL_0068:  ldloc.0 
+	IL_0069:  ldstr " <"
+	IL_006e:  ldarg.0 
+	IL_006f:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
+	IL_0074:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	IL_0079:  ldstr ">"
+	IL_007e:  call string string::Concat(string, string, string)
+	IL_0083:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0088:  pop 
+	IL_0089:  ldarg.0 
+	IL_008a:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
+	IL_008f:  callvirt instance bool class NAnt.Core.Util.CommandLineArgument::get_AllowMultiple()
+	IL_0094:  brfalse IL_00c8
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method EnvironmentFunctions::GetUserName
+	IL_0099:  nop 
+	IL_009a:  ldloc.0 
+	IL_009b:  ldstr " <"
+	IL_00a0:  ldarg.0 
+	IL_00a1:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
+	IL_00a6:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	IL_00ab:  ldstr ">"
+	IL_00b0:  call string string::Concat(string, string, string)
+	IL_00b5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00ba:  pop 
+	IL_00bb:  ldloc.0 
+	IL_00bc:  ldstr " ..."
+	IL_00c1:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00c6:  pop 
+	IL_00c7:  nop 
+	IL_00c8:  nop 
+	IL_00c9:  ldloc.0 
+	IL_00ca:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_00cf:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00d4:  pop 
+	IL_00d5:  ldloc.0 
+	IL_00d6:  ldstr "Options : "
+	IL_00db:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00e0:  pop 
+	IL_00e1:  ldloc.0 
+	IL_00e2:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_00e7:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00ec:  pop 
+	IL_00ed:  ldloc.0 
+	IL_00ee:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_00f3:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00f8:  pop 
+	IL_00f9:  nop 
+	IL_00fa:  ldarg.0 
+	IL_00fb:  ldfld class NAnt.Core.Util.CommandLineArgumentCollection NAnt.Core.Util.CommandLineParser::_argumentCollection
+	IL_0100:  callvirt instance class NAnt.Core.Util.CommandLineArgumentEnumerator class NAnt.Core.Util.CommandLineArgumentCollection::GetEnumerator()
+	IL_0105:  stloc.3 
+	.try { // 0
+	  IL_0106:  br IL_02bb
 
-    // method line 160
-    .method public static hidebysig 
-           default string GetVariable (string name)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0C 67 65 74 2D 76 61 72 69 61 62 6C 65 00   // ...get-variable.
-		00                                              ) // .
+	  IL_010b:  ldloc.3 
+	  IL_010c:  callvirt instance class NAnt.Core.Util.CommandLineArgument class NAnt.Core.Util.CommandLineArgumentEnumerator::get_Current()
+	  IL_0111:  stloc.2 
+	  IL_0112:  nop 
+	  IL_0113:  ldstr ""
+	  IL_0118:  stloc.s 4
+	  IL_011a:  ldloc.2 
+	  IL_011b:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_ValueType()
+	  IL_0120:  ldtoken [mscorlib]System.String
+	  IL_0125:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_012a:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_012f:  brfalse IL_0142
 
-        // Method begins at RVA 0x37f8
-	// Code size 54 (0x36)
-	.maxstack 3
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call bool class NAnt.Core.Functions.EnvironmentFunctions::VariableExists(string)
-	IL_0007:  brtrue IL_0028
+	  IL_0134:  nop 
+	  IL_0135:  ldstr ":<text>"
+	  IL_013a:  stloc.s 4
+	  IL_013c:  nop 
+	  IL_013d:  br IL_01ec
 
-	IL_000c:  nop 
-	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0012:  ldstr "NA1095"
-	IL_0017:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_001c:  ldarg.0 
-	IL_001d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0022:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0027:  throw 
-	IL_0028:  ldarg.0 
-	IL_0029:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
-	IL_002e:  stloc.0 
-	IL_002f:  br IL_0034
+	  IL_0142:  ldloc.2 
+	  IL_0143:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_ValueType()
+	  IL_0148:  ldtoken [mscorlib]System.Boolean
+	  IL_014d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0152:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_0157:  brfalse IL_016a
 
-	IL_0034:  ldloc.0 
-	IL_0035:  ret 
-    } // end of method EnvironmentFunctions::GetVariable
+	  IL_015c:  nop 
+	  IL_015d:  ldstr "[+|-]"
+	  IL_0162:  stloc.s 4
+	  IL_0164:  nop 
+	  IL_0165:  br IL_01ec
 
-    // method line 161
-    .method public static hidebysig 
-           default bool VariableExists (string name)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0F 76 61 72 69 61 62 6C 65 2D 65 78 69 73   // ...variable-exis
-		74 73 00 00                                     ) // ts..
+	  IL_016a:  ldloc.2 
+	  IL_016b:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_ValueType()
+	  IL_0170:  ldtoken [mscorlib]System.IO.FileInfo
+	  IL_0175:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_017a:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_017f:  brfalse IL_0192
 
-        // Method begins at RVA 0x383c
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
-	IL_0007:  ldnull 
-	IL_0008:  ceq 
-	IL_000a:  ldc.i4.0 
-	IL_000b:  ceq 
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	  IL_0184:  nop 
+	  IL_0185:  ldstr ":<filename>"
+	  IL_018a:  stloc.s 4
+	  IL_018c:  nop 
+	  IL_018d:  br IL_01ec
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method EnvironmentFunctions::VariableExists
+	  IL_0192:  ldloc.2 
+	  IL_0193:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_ValueType()
+	  IL_0198:  ldtoken [mscorlib]System.Int32
+	  IL_019d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_01a2:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_01a7:  brfalse IL_01ba
 
-    // method line 162
-    .method public static hidebysig 
-           default class [mscorlib]System.Version GetVersion ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0B 67 65 74 2D 76 65 72 73 69 6F 6E 00 00 ) // ...get-version..
+	  IL_01ac:  nop 
+	  IL_01ad:  ldstr ":<number>"
+	  IL_01b2:  stloc.s 4
+	  IL_01b4:  nop 
+	  IL_01b5:  br IL_01ec
 
-        // Method begins at RVA 0x3860
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Version	V_0)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Version class [mscorlib]System.Environment::get_Version()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	  IL_01ba:  ldloc.2 
+	  IL_01bb:  callvirt instance bool class NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection()
+	  IL_01c0:  brfalse IL_01d3
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method EnvironmentFunctions::GetVersion
+	  IL_01c5:  nop 
+	  IL_01c6:  ldstr ":<name>=<value>"
+	  IL_01cb:  stloc.s 4
+	  IL_01cd:  nop 
+	  IL_01ce:  br IL_01ec
 
-    // method line 163
-    .method public static hidebysig 
-           default string NewLine ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 07 6E 65 77 6C 69 6E 65 00 00 ) // ...newline..
+	  IL_01d3:  nop 
+	  IL_01d4:  ldstr ":"
+	  IL_01d9:  ldloc.2 
+	  IL_01da:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_ValueType()
+	  IL_01df:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	  IL_01e4:  call string string::Concat(string, string)
+	  IL_01e9:  stloc.s 4
+	  IL_01eb:  nop 
+	  IL_01ec:  ldloc.2 
+	  IL_01ed:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	  IL_01f2:  stloc.s 5
+	  IL_01f4:  ldloc.2 
+	  IL_01f5:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_ShortName()
+	  IL_01fa:  brfalse IL_028c
 
-        // Method begins at RVA 0x387c
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	  IL_01ff:  nop 
+	  IL_0200:  ldloc.2 
+	  IL_0201:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	  IL_0206:  ldloc.2 
+	  IL_0207:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_ShortName()
+	  IL_020c:  callvirt instance bool string::StartsWith(string)
+	  IL_0211:  brfalse IL_023b
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method EnvironmentFunctions::NewLine
+	  IL_0216:  nop 
+	  IL_0217:  ldloc.s 5
+	  IL_0219:  ldloc.2 
+	  IL_021a:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_ShortName()
+	  IL_021f:  callvirt instance int32 string::get_Length()
+	  IL_0224:  ldstr "["
+	  IL_0229:  callvirt instance string string::Insert(int32, string)
+	  IL_022e:  ldstr "]"
+	  IL_0233:  call string string::Concat(string, string)
+	  IL_0238:  stloc.s 5
+	  IL_023a:  nop 
+	  IL_023b:  ldloc.0 
+	  IL_023c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0241:  ldstr "  -{0,-30}{1}"
+	  IL_0246:  ldloc.s 5
+	  IL_0248:  ldloc.s 4
+	  IL_024a:  call string string::Concat(string, string)
+	  IL_024f:  ldloc.2 
+	  IL_0250:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_Description()
+	  IL_0255:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_025a:  pop 
+	  IL_025b:  ldloc.s 5
+	  IL_025d:  ldloc.2 
+	  IL_025e:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_ShortName()
+	  IL_0263:  callvirt instance bool string::StartsWith(string)
+	  IL_0268:  brtrue IL_0286
 
-  } // end of class NAnt.Core.Functions.EnvironmentFunctions
-}
+	  IL_026d:  nop 
+	  IL_026e:  ldloc.0 
+	  IL_026f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0274:  ldstr " (Short format: /{0})"
+	  IL_0279:  ldloc.2 
+	  IL_027a:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_ShortName()
+	  IL_027f:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0284:  pop 
+	  IL_0285:  nop 
+	  IL_0286:  nop 
+	  IL_0287:  br IL_02ae
 
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit TimeSpanFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 08 74 69 6D 65 73 70 61 6E 09 44 61 74 65   // ...timespan.Date
-		2F 54 69 6D 65 00 00                            ) // /Time..
+	  IL_028c:  nop 
+	  IL_028d:  ldloc.0 
+	  IL_028e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0293:  ldstr "  -{0,-30}{1}"
+	  IL_0298:  ldloc.s 5
+	  IL_029a:  ldloc.s 4
+	  IL_029c:  call string string::Concat(string, string)
+	  IL_02a1:  ldloc.2 
+	  IL_02a2:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_Description()
+	  IL_02a7:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_02ac:  pop 
+	  IL_02ad:  nop 
+	  IL_02ae:  ldloc.0 
+	  IL_02af:  call string class [mscorlib]System.Environment::get_NewLine()
+	  IL_02b4:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_02b9:  pop 
+	  IL_02ba:  nop 
+	  IL_02bb:  ldloc.3 
+	  IL_02bc:  callvirt instance bool class NAnt.Core.Util.CommandLineArgumentEnumerator::MoveNext()
+	  IL_02c1:  brtrue IL_010b
 
+	  IL_02c6:  leave IL_02e1
 
-    // method line 164
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x3896
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method TimeSpanFunctions::.ctor
+	} // end .try 0
+	finally  { // 0
+	  IL_02cb:  ldloc.3 
+	  IL_02cc:  isinst [mscorlib]System.IDisposable
+	  IL_02d1:  dup 
+	  IL_02d2:  stloc.s 6
+	  IL_02d4:  brfalse IL_02e0
 
-    // method line 165
-    .method public static hidebysig 
-           default float64 GetTotalDays (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0E 67 65 74 2D 74 6F 74 61 6C 2D 64 61 79   // ...get-total-day
-		73 00 00                                        ) // s..
+	  IL_02d9:  ldloc.s 6
+	  IL_02db:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_02e0:  endfinally 
+	} // end handler 0
+	IL_02e1:  ldarg.0 
+	IL_02e2:  ldfld bool NAnt.Core.Util.CommandLineParser::_supportsResponseFile
+	IL_02e7:  brfalse IL_0315
 
-        // Method begins at RVA 0x38a4
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		float64	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance float64 valuetype [mscorlib]System.TimeSpan::get_TotalDays()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_02ec:  nop 
+	IL_02ed:  ldloc.0 
+	IL_02ee:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_02f3:  ldstr "  {0,-31}{1}"
+	IL_02f8:  ldstr "@<file>"
+	IL_02fd:  ldstr "Insert command-line settings from a text file."
+	IL_0302:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0307:  pop 
+	IL_0308:  ldloc.0 
+	IL_0309:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_030e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0313:  pop 
+	IL_0314:  nop 
+	IL_0315:  ldloc.0 
+	IL_0316:  callvirt instance string object::ToString()
+	IL_031b:  stloc.s 7
+	IL_031d:  br IL_0322
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetTotalDays
+	IL_0322:  ldloc.s 7
+	IL_0324:  ret 
+    } // end of method CommandLineParser::get_Usage
 
-    // method line 166
-    .method public static hidebysig 
-           default float64 GetTotalHours (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
+    // method line 92
+    .method public hidebysig specialname 
+           instance default bool get_NoArgs ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0F 67 65 74 2D 74 6F 74 61 6C 2D 68 6F 75   // ...get-total-hou
-		72 73 00 00                                     ) // rs..
-
-        // Method begins at RVA 0x38c0
-	// Code size 16 (0x10)
-	.maxstack 1
+        // Method begins at RVA 0x4b74
+	// Code size 121 (0x79)
+	.maxstack 2
 	.locals init (
-		float64	V_0)
+		class NAnt.Core.Util.CommandLineArgument	V_0,
+		class NAnt.Core.Util.CommandLineArgumentEnumerator	V_1,
+		bool	V_2,
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance float64 valuetype [mscorlib]System.TimeSpan::get_TotalHours()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetTotalHours
+	IL_0001:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class NAnt.Core.Util.CommandLineArgumentCollection NAnt.Core.Util.CommandLineParser::_argumentCollection
+	IL_0008:  callvirt instance class NAnt.Core.Util.CommandLineArgumentEnumerator class NAnt.Core.Util.CommandLineArgumentCollection::GetEnumerator()
+	IL_000d:  stloc.1 
+	.try { // 0
+	  IL_000e:  br IL_002f
 
-    // method line 167
-    .method public static hidebysig 
-           default float64 GetTotalMinutes (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 11 67 65 74 2D 74 6F 74 61 6C 2D 6D 69 6E   // ...get-total-min
-		75 74 65 73 00 00                               ) // utes..
+	  IL_0013:  ldloc.1 
+	  IL_0014:  callvirt instance class NAnt.Core.Util.CommandLineArgument class NAnt.Core.Util.CommandLineArgumentEnumerator::get_Current()
+	  IL_0019:  stloc.0 
+	  IL_001a:  nop 
+	  IL_001b:  ldloc.0 
+	  IL_001c:  callvirt instance bool class NAnt.Core.Util.CommandLineArgument::get_SeenValue()
+	  IL_0021:  brfalse IL_002e
 
-        // Method begins at RVA 0x38dc
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		float64	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance float64 valuetype [mscorlib]System.TimeSpan::get_TotalMinutes()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	  IL_0026:  nop 
+	  IL_0027:  ldc.i4.1 
+	  IL_0028:  stloc.2 
+	  IL_0029:  leave IL_0077
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetTotalMinutes
+	  IL_002e:  nop 
+	  IL_002f:  ldloc.1 
+	  IL_0030:  callvirt instance bool class NAnt.Core.Util.CommandLineArgumentEnumerator::MoveNext()
+	  IL_0035:  brtrue IL_0013
 
-    // method line 168
-    .method public static hidebysig 
-           default float64 GetTotalSeconds (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 11 67 65 74 2D 74 6F 74 61 6C 2D 73 65 63   // ...get-total-sec
-		6F 6E 64 73 00 00                               ) // onds..
+	  IL_003a:  leave IL_0053
 
-        // Method begins at RVA 0x38f8
-	// Code size 16 (0x10)
-	.maxstack 1
-	.locals init (
-		float64	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance float64 valuetype [mscorlib]System.TimeSpan::get_TotalSeconds()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	} // end .try 0
+	finally  { // 0
+	  IL_003f:  ldloc.1 
+	  IL_0040:  isinst [mscorlib]System.IDisposable
+	  IL_0045:  dup 
+	  IL_0046:  stloc.3 
+	  IL_0047:  brfalse IL_0052
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetTotalSeconds
+	  IL_004c:  ldloc.3 
+	  IL_004d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0052:  endfinally 
+	} // end handler 0
+	IL_0053:  ldarg.0 
+	IL_0054:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
+	IL_0059:  brfalse IL_0070
 
-    // method line 169
-    .method public static hidebysig 
-           default float64 GetTotalMilliseconds (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
+	IL_005e:  nop 
+	IL_005f:  ldarg.0 
+	IL_0060:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
+	IL_0065:  callvirt instance bool class NAnt.Core.Util.CommandLineArgument::get_SeenValue()
+	IL_006a:  stloc.2 
+	IL_006b:  br IL_0077
+
+	IL_0070:  ldc.i4.0 
+	IL_0071:  stloc.2 
+	IL_0072:  br IL_0077
+
+	IL_0077:  ldloc.2 
+	IL_0078:  ret 
+    } // end of method CommandLineParser::get_NoArgs
+
+    // method line 93
+    .method public hidebysig 
+           instance default void Parse (string[] args, object destination)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 16 67 65 74 2D 74 6F 74 61 6C 2D 6D 69 6C   // ...get-total-mil
-		6C 69 73 65 63 6F 6E 64 73 00 00                ) // liseconds..
+        // Method begins at RVA 0x4c0c
+	// Code size 156 (0x9c)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Util.CommandLineArgument	V_0,
+		class NAnt.Core.Util.CommandLineArgumentEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.2 
+	IL_0002:  brtrue IL_0013
 
-        // Method begins at RVA 0x3914
-	// Code size 16 (0x10)
-	.maxstack 1
+	IL_0007:  nop 
+	IL_0008:  ldstr "destination"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldfld class [mscorlib]System.Type NAnt.Core.Util.CommandLineParser::_argumentSpecification
+	IL_0019:  ldarg.2 
+	IL_001a:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_001f:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_0024:  brtrue IL_0035
+
+	IL_0029:  nop 
+	IL_002a:  ldstr "Type of destination does not match type of argument specification."
+	IL_002f:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0034:  throw 
+	IL_0035:  ldarg.0 
+	IL_0036:  ldarg.1 
+	IL_0037:  call instance void class NAnt.Core.Util.CommandLineParser::ParseArgumentList(string[])
+	IL_003c:  nop 
+	IL_003d:  ldarg.0 
+	IL_003e:  ldfld class NAnt.Core.Util.CommandLineArgumentCollection NAnt.Core.Util.CommandLineParser::_argumentCollection
+	IL_0043:  callvirt instance class NAnt.Core.Util.CommandLineArgumentEnumerator class NAnt.Core.Util.CommandLineArgumentCollection::GetEnumerator()
+	IL_0048:  stloc.1 
+	.try { // 0
+	  IL_0049:  br IL_005e
+
+	  IL_004e:  ldloc.1 
+	  IL_004f:  callvirt instance class NAnt.Core.Util.CommandLineArgument class NAnt.Core.Util.CommandLineArgumentEnumerator::get_Current()
+	  IL_0054:  stloc.0 
+	  IL_0055:  nop 
+	  IL_0056:  ldloc.0 
+	  IL_0057:  ldarg.2 
+	  IL_0058:  callvirt instance void class NAnt.Core.Util.CommandLineArgument::Finish(object)
+	  IL_005d:  nop 
+	  IL_005e:  ldloc.1 
+	  IL_005f:  callvirt instance bool class NAnt.Core.Util.CommandLineArgumentEnumerator::MoveNext()
+	  IL_0064:  brtrue IL_004e
+
+	  IL_0069:  leave IL_0082
+
+	} // end .try 0
+	finally  { // 0
+	  IL_006e:  ldloc.1 
+	  IL_006f:  isinst [mscorlib]System.IDisposable
+	  IL_0074:  dup 
+	  IL_0075:  stloc.2 
+	  IL_0076:  brfalse IL_0081
+
+	  IL_007b:  ldloc.2 
+	  IL_007c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0081:  endfinally 
+	} // end handler 0
+	IL_0082:  ldarg.0 
+	IL_0083:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
+	IL_0088:  brfalse IL_009b
+
+	IL_008d:  nop 
+	IL_008e:  ldarg.0 
+	IL_008f:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
+	IL_0094:  ldarg.2 
+	IL_0095:  callvirt instance void class NAnt.Core.Util.CommandLineArgument::Finish(object)
+	IL_009a:  nop 
+	IL_009b:  ret 
+    } // end of method CommandLineParser::Parse
+
+    // method line 94
+    .method private hidebysig 
+           instance default string[] ParseArguments (string sourceString, char[] delimiters)  cil managed 
+    {
+        // Method begins at RVA 0x4cc4
+	// Code size 208 (0xd0)
+	.maxstack 3
 	.locals init (
-		float64	V_0)
+		bool	V_0,
+		class [mscorlib]System.Text.StringBuilder	V_1,
+		class [System]System.Collections.Specialized.StringCollection	V_2,
+		char	V_3,
+		string	V_4,
+		int32	V_5,
+		string[]	V_6,
+		string[]	V_7)
 	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance float64 valuetype [mscorlib]System.TimeSpan::get_TotalMilliseconds()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0008:  stloc.1 
+	IL_0009:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_000e:  stloc.2 
+	IL_000f:  nop 
+	IL_0010:  ldarg.1 
+	IL_0011:  stloc.s 4
+	IL_0013:  ldc.i4.0 
+	IL_0014:  stloc.s 5
+	IL_0016:  br IL_0085
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetTotalMilliseconds
+	IL_001b:  ldloc.s 4
+	IL_001d:  ldloc.s 5
+	IL_001f:  callvirt instance char string::get_Chars(int32)
+	IL_0024:  stloc.3 
+	IL_0025:  nop 
+	IL_0026:  ldloc.3 
+	IL_0027:  ldc.i4.s 0x22
+	IL_0029:  bne.un IL_0039
 
-    // method line 170
-    .method public static hidebysig 
-           default int32 GetDays (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
+	IL_002e:  nop 
+	IL_002f:  ldloc.0 
+	IL_0030:  ldc.i4.0 
+	IL_0031:  ceq 
+	IL_0033:  stloc.0 
+	IL_0034:  br IL_007f
+
+	IL_0039:  ldloc.0 
+	IL_003a:  brtrue IL_0074
+
+	IL_003f:  ldloc.3 
+	IL_0040:  ldarg.2 
+	IL_0041:  call bool class NAnt.Core.Util.CommandLineParser::IsDelimiter(char, char[])
+	IL_0046:  brfalse IL_0074
+
+	IL_004b:  nop 
+	IL_004c:  ldloc.1 
+	IL_004d:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_0052:  ldc.i4.0 
+	IL_0053:  ble IL_006e
+
+	IL_0058:  nop 
+	IL_0059:  ldloc.2 
+	IL_005a:  ldloc.1 
+	IL_005b:  callvirt instance string object::ToString()
+	IL_0060:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0065:  pop 
+	IL_0066:  ldloc.1 
+	IL_0067:  ldc.i4.0 
+	IL_0068:  callvirt instance void class [mscorlib]System.Text.StringBuilder::set_Length(int32)
+	IL_006d:  nop 
+	IL_006e:  nop 
+	IL_006f:  br IL_007e
+
+	IL_0074:  nop 
+	IL_0075:  ldloc.1 
+	IL_0076:  ldloc.3 
+	IL_0077:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_007c:  pop 
+	IL_007d:  nop 
+	IL_007e:  nop 
+	IL_007f:  ldloc.s 5
+	IL_0081:  ldc.i4.1 
+	IL_0082:  add 
+	IL_0083:  stloc.s 5
+	IL_0085:  ldloc.s 5
+	IL_0087:  ldloc.s 4
+	IL_0089:  callvirt instance int32 string::get_Length()
+	IL_008e:  blt IL_001b
+
+	IL_0093:  ldloc.1 
+	IL_0094:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_0099:  ldc.i4.0 
+	IL_009a:  ble IL_00ae
+
+	IL_009f:  nop 
+	IL_00a0:  ldloc.2 
+	IL_00a1:  ldloc.1 
+	IL_00a2:  callvirt instance string object::ToString()
+	IL_00a7:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_00ac:  pop 
+	IL_00ad:  nop 
+	IL_00ae:  ldloc.2 
+	IL_00af:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_00b4:  newarr [mscorlib]System.String
+	IL_00b9:  stloc.s 6
+	IL_00bb:  ldloc.2 
+	IL_00bc:  ldloc.s 6
+	IL_00be:  ldc.i4.0 
+	IL_00bf:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::CopyTo(string[], int32)
+	IL_00c4:  ldloc.s 6
+	IL_00c6:  stloc.s 7
+	IL_00c8:  br IL_00cd
+
+	IL_00cd:  ldloc.s 7
+	IL_00cf:  ret 
+    } // end of method CommandLineParser::ParseArguments
+
+    // method line 95
+    .method private static hidebysig 
+           default bool IsDelimiter (char c, char[] delimiters)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 64 61 79 73 00 00 ) // ...get-days..
+        // Method begins at RVA 0x4da0
+	// Code size 54 (0x36)
+	.maxstack 2
+	.locals init (
+		char	V_0,
+		char[]	V_1,
+		int32	V_2,
+		bool	V_3)
+	IL_0000:  nop 
+	IL_0001:  nop 
+	IL_0002:  ldarg.1 
+	IL_0003:  stloc.1 
+	IL_0004:  ldc.i4.0 
+	IL_0005:  stloc.2 
+	IL_0006:  br IL_0024
 
-        // Method begins at RVA 0x3930
-	// Code size 16 (0x10)
-	.maxstack 1
+	IL_000b:  ldloc.1 
+	IL_000c:  ldloc.2 
+	IL_000d:  ldelem.u2 
+	IL_000e:  stloc.0 
+	IL_000f:  nop 
+	IL_0010:  ldarg.0 
+	IL_0011:  ldloc.0 
+	IL_0012:  bne.un IL_001f
+
+	IL_0017:  nop 
+	IL_0018:  ldc.i4.1 
+	IL_0019:  stloc.3 
+	IL_001a:  br IL_0034
+
+	IL_001f:  nop 
+	IL_0020:  ldloc.2 
+	IL_0021:  ldc.i4.1 
+	IL_0022:  add 
+	IL_0023:  stloc.2 
+	IL_0024:  ldloc.2 
+	IL_0025:  ldloc.1 
+	IL_0026:  ldlen 
+	IL_0027:  conv.i4 
+	IL_0028:  blt IL_000b
+
+	IL_002d:  ldc.i4.0 
+	IL_002e:  stloc.3 
+	IL_002f:  br IL_0034
+
+	IL_0034:  ldloc.3 
+	IL_0035:  ret 
+    } // end of method CommandLineParser::IsDelimiter
+
+    // method line 96
+    .method private hidebysig 
+           instance default void ProcessResponseFile (string file)  cil managed 
+    {
+        // Method begins at RVA 0x4de4
+	// Code size 148 (0x94)
+	.maxstack 4
 	.locals init (
-		int32	V_0)
+		char[]	V_0,
+		class [System]System.Collections.Specialized.StringCollection	V_1,
+		class [mscorlib]System.IO.StreamReader	V_2,
+		string	V_3,
+		string[]	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int32 valuetype [mscorlib]System.TimeSpan::get_Days()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_0001:  ldc.i4.2 
+	IL_0002:  newarr [mscorlib]System.Char
+	IL_0007:  dup 
+	IL_0008:  ldc.i4.0 
+	IL_0009:  ldc.i4.s 0x20
+	IL_000b:  stelem.i2 
+	IL_000c:  dup 
+	IL_000d:  ldc.i4.1 
+	IL_000e:  ldc.i4.s 0x09
+	IL_0010:  stelem.i2 
+	IL_0011:  stloc.0 
+	IL_0012:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0017:  stloc.1 
+	IL_0018:  ldarg.1 
+	IL_0019:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
+	IL_001e:  ldc.i4.1 
+	IL_001f:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
+	IL_0024:  stloc.2 
+	.try { // 0
+	  IL_0025:  nop 
+	  IL_0026:  br IL_0055
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetDays
+	  IL_002b:  nop 
+	  IL_002c:  ldloc.3 
+	  IL_002d:  ldloc.0 
+	  IL_002e:  callvirt instance string string::Trim(char[])
+	  IL_0033:  stloc.3 
+	  IL_0034:  ldloc.3 
+	  IL_0035:  ldstr "#"
+	  IL_003a:  callvirt instance bool string::StartsWith(string)
+	  IL_003f:  brtrue IL_0054
 
-    // method line 171
-    .method public static hidebysig 
-           default int32 GetHours (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
+	  IL_0044:  nop 
+	  IL_0045:  ldloc.1 
+	  IL_0046:  ldarg.0 
+	  IL_0047:  ldloc.3 
+	  IL_0048:  ldloc.0 
+	  IL_0049:  call instance string[] class NAnt.Core.Util.CommandLineParser::ParseArguments(string, char[])
+	  IL_004e:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
+	  IL_0053:  nop 
+	  IL_0054:  nop 
+	  IL_0055:  ldloc.2 
+	  IL_0056:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	  IL_005b:  dup 
+	  IL_005c:  stloc.3 
+	  IL_005d:  brtrue IL_002b
+
+	  IL_0062:  ldloc.1 
+	  IL_0063:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	  IL_0068:  newarr [mscorlib]System.String
+	  IL_006d:  stloc.s 4
+	  IL_006f:  ldloc.1 
+	  IL_0070:  ldloc.s 4
+	  IL_0072:  ldc.i4.0 
+	  IL_0073:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::CopyTo(string[], int32)
+	  IL_0078:  ldarg.0 
+	  IL_0079:  ldloc.s 4
+	  IL_007b:  call instance void class NAnt.Core.Util.CommandLineParser::ParseArgumentList(string[])
+	  IL_0080:  nop 
+	  IL_0081:  leave IL_0093
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0086:  ldloc.2 
+	  IL_0087:  brfalse IL_0092
+
+	  IL_008c:  ldloc.2 
+	  IL_008d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0092:  endfinally 
+	} // end handler 0
+	IL_0093:  ret 
+    } // end of method CommandLineParser::ProcessResponseFile
+
+    // method line 97
+    .method private hidebysig 
+           instance default void ParseArgumentList (string[] args)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 68 6F 75 72 73 00 00 ) // ...get-hours..
+        // Method begins at RVA 0x4e94
+	// Code size 675 (0x2a3)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		string[]	V_1,
+		int32	V_2,
+		char	V_3,
+		int32	V_4,
+		string	V_5,
+		string	V_6,
+		class NAnt.Core.Util.CommandLineArgument	V_7,
+		class [mscorlib]System.Attribute[]	V_8,
+		class [mscorlib]System.ObsoleteAttribute	V_9,
+		string	V_10,
+		string	V_11)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_000d
 
-        // Method begins at RVA 0x394c
-	// Code size 16 (0x10)
-	.maxstack 1
+	IL_0007:  nop 
+	IL_0008:  br IL_02a2
+
+	IL_000d:  nop 
+	IL_000e:  ldarg.1 
+	IL_000f:  stloc.1 
+	IL_0010:  ldc.i4.0 
+	IL_0011:  stloc.2 
+	IL_0012:  br IL_0299
+
+	IL_0017:  ldloc.1 
+	IL_0018:  ldloc.2 
+	IL_0019:  ldelem.ref 
+	IL_001a:  stloc.0 
+	IL_001b:  nop 
+	IL_001c:  ldloc.0 
+	IL_001d:  callvirt instance int32 string::get_Length()
+	IL_0022:  brtrue IL_002d
+
+	IL_0027:  nop 
+	IL_0028:  br IL_0295
+
+	IL_002d:  ldloc.0 
+	IL_002e:  ldc.i4.0 
+	IL_002f:  callvirt instance char string::get_Chars(int32)
+	IL_0034:  stloc.3 
+	IL_0035:  ldloc.3 
+	IL_0036:  ldc.i4.s 0x2d
+	IL_0038:  sub 
+	IL_0039:  switch (
+	  IL_0057,
+	  IL_004a,
+	  IL_0057)
+	IL_004a:  ldloc.3 
+	IL_004b:  ldc.i4.s 0x40
+	IL_004d:  beq IL_0207
+
+	IL_0052:  br IL_025a
+
+	IL_0057:  ldloc.0 
+	IL_0058:  ldc.i4.3 
+	IL_0059:  newarr [mscorlib]System.Char
+	IL_005e:  dup 
+	IL_005f:  ldtoken field valuetype '<PrivateImplementationDetails>'/'$ArrayType=8' '<PrivateImplementationDetails>'::'$field-70EF559FCFA85790B0637E1592D4E2FF36031FDF'
+	IL_0064:  call void class [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, valuetype [mscorlib]System.RuntimeFieldHandle)
+	IL_0069:  ldc.i4.1 
+	IL_006a:  callvirt instance int32 string::IndexOfAny(char[], int32)
+	IL_006f:  stloc.s 4
+	IL_0071:  ldloc.0 
+	IL_0072:  ldc.i4.1 
+	IL_0073:  ldloc.s 4
+	IL_0075:  ldc.i4.m1 
+	IL_0076:  bne.un IL_0088
+
+	IL_007b:  ldloc.0 
+	IL_007c:  callvirt instance int32 string::get_Length()
+	IL_0081:  ldc.i4.1 
+	IL_0082:  sub 
+	IL_0083:  br IL_008c
+
+	IL_0088:  ldloc.s 4
+	IL_008a:  ldc.i4.1 
+	IL_008b:  sub 
+	IL_008c:  callvirt instance string string::Substring(int32, int32)
+	IL_0091:  stloc.s 5
+	IL_0093:  ldloc.s 5
+	IL_0095:  callvirt instance int32 string::get_Length()
+	IL_009a:  ldc.i4.1 
+	IL_009b:  add 
+	IL_009c:  ldloc.0 
+	IL_009d:  callvirt instance int32 string::get_Length()
+	IL_00a2:  bne.un IL_00b1
+
+	IL_00a7:  nop 
+	IL_00a8:  ldnull 
+	IL_00a9:  stloc.s 6
+	IL_00ab:  nop 
+	IL_00ac:  br IL_0106
+
+	IL_00b1:  ldloc.0 
+	IL_00b2:  callvirt instance int32 string::get_Length()
+	IL_00b7:  ldc.i4.1 
+	IL_00b8:  ldloc.s 5
+	IL_00ba:  callvirt instance int32 string::get_Length()
+	IL_00bf:  add 
+	IL_00c0:  ble IL_00f3
+
+	IL_00c5:  ldloc.0 
+	IL_00c6:  ldc.i4.1 
+	IL_00c7:  ldloc.s 5
+	IL_00c9:  callvirt instance int32 string::get_Length()
+	IL_00ce:  add 
+	IL_00cf:  callvirt instance char string::get_Chars(int32)
+	IL_00d4:  ldc.i4.s 0x3a
+	IL_00d6:  bne.un IL_00f3
+
+	IL_00db:  nop 
+	IL_00dc:  ldloc.0 
+	IL_00dd:  ldloc.s 5
+	IL_00df:  callvirt instance int32 string::get_Length()
+	IL_00e4:  ldc.i4.2 
+	IL_00e5:  add 
+	IL_00e6:  callvirt instance string string::Substring(int32)
+	IL_00eb:  stloc.s 6
+	IL_00ed:  nop 
+	IL_00ee:  br IL_0106
+
+	IL_00f3:  nop 
+	IL_00f4:  ldloc.0 
+	IL_00f5:  ldloc.s 5
+	IL_00f7:  callvirt instance int32 string::get_Length()
+	IL_00fc:  ldc.i4.1 
+	IL_00fd:  add 
+	IL_00fe:  callvirt instance string string::Substring(int32)
+	IL_0103:  stloc.s 6
+	IL_0105:  nop 
+	IL_0106:  ldarg.0 
+	IL_0107:  ldfld class NAnt.Core.Util.CommandLineArgumentCollection NAnt.Core.Util.CommandLineParser::_argumentCollection
+	IL_010c:  ldloc.s 5
+	IL_010e:  callvirt instance class NAnt.Core.Util.CommandLineArgument class NAnt.Core.Util.CommandLineArgumentCollection::get_Item(string)
+	IL_0113:  stloc.s 7
+	IL_0115:  ldloc.s 7
+	IL_0117:  brtrue IL_0133
+
+	IL_011c:  nop 
+	IL_011d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0122:  ldstr "Unknown argument '{0}'"
+	IL_0127:  ldloc.0 
+	IL_0128:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_012d:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
+	IL_0132:  throw 
+	IL_0133:  nop 
+	IL_0134:  ldloc.s 7
+	IL_0136:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo class NAnt.Core.Util.CommandLineArgument::get_Property()
+	IL_013b:  ldtoken [mscorlib]System.ObsoleteAttribute
+	IL_0140:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0145:  ldc.i4.0 
+	IL_0146:  callvirt instance object[] class [mscorlib]System.Reflection.MemberInfo::GetCustomAttributes(class [mscorlib]System.Type, bool)
+	IL_014b:  castclass class [mscorlib]System.Attribute[]
+	IL_0150:  stloc.s 8
+	IL_0152:  ldloc.s 8
+	IL_0154:  ldlen 
+	IL_0155:  conv.i4 
+	IL_0156:  ldc.i4.0 
+	IL_0157:  ble IL_01c4
+
+	IL_015c:  nop 
+	IL_015d:  ldloc.s 8
+	IL_015f:  ldc.i4.0 
+	IL_0160:  ldelem.ref 
+	IL_0161:  castclass [mscorlib]System.ObsoleteAttribute
+	IL_0166:  stloc.s 9
+	IL_0168:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_016d:  ldstr "NA1177"
+	IL_0172:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0177:  ldloc.s 5
+	IL_0179:  ldloc.s 9
+	IL_017b:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
+	IL_0180:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0185:  stloc.s 10
+	IL_0187:  ldloc.s 9
+	IL_0189:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
+	IL_018e:  brfalse IL_019c
+
+	IL_0193:  nop 
+	IL_0194:  ldloc.s 10
+	IL_0196:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
+	IL_019b:  throw 
+	IL_019c:  nop 
+	IL_019d:  ldsfld string [mscorlib]System.String::Empty
+	IL_01a2:  call void class [mscorlib]System.Console::WriteLine(string)
+	IL_01a7:  ldstr "Warning: "
+	IL_01ac:  ldloc.s 10
+	IL_01ae:  call string string::Concat(string, string)
+	IL_01b3:  call void class [mscorlib]System.Console::WriteLine(string)
+	IL_01b8:  ldsfld string [mscorlib]System.String::Empty
+	IL_01bd:  call void class [mscorlib]System.Console::WriteLine(string)
+	IL_01c2:  nop 
+	IL_01c3:  nop 
+	IL_01c4:  ldloc.s 7
+	IL_01c6:  callvirt instance bool class NAnt.Core.Util.CommandLineArgument::get_IsExclusive()
+	IL_01cb:  brfalse IL_01f6
+
+	IL_01d0:  ldarg.1 
+	IL_01d1:  ldlen 
+	IL_01d2:  conv.i4 
+	IL_01d3:  ldc.i4.1 
+	IL_01d4:  ble IL_01f6
+
+	IL_01d9:  nop 
+	IL_01da:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01df:  ldstr "Commandline argument '-{0}' cannot be combined with other arguments."
+	IL_01e4:  ldloc.s 7
+	IL_01e6:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
+	IL_01eb:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_01f0:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
+	IL_01f5:  throw 
+	IL_01f6:  nop 
+	IL_01f7:  ldloc.s 7
+	IL_01f9:  ldloc.s 6
+	IL_01fb:  callvirt instance void class NAnt.Core.Util.CommandLineArgument::SetValue(string)
+	IL_0200:  nop 
+	IL_0201:  nop 
+	IL_0202:  br IL_0294
+
+	IL_0207:  ldarg.0 
+	IL_0208:  ldfld bool NAnt.Core.Util.CommandLineParser::_supportsResponseFile
+	IL_020d:  brfalse IL_0255
+
+	IL_0212:  nop 
+	IL_0213:  ldloc.0 
+	IL_0214:  ldc.i4.1 
+	IL_0215:  ldloc.0 
+	IL_0216:  callvirt instance int32 string::get_Length()
+	IL_021b:  ldc.i4.1 
+	IL_021c:  sub 
+	IL_021d:  callvirt instance string string::Substring(int32, int32)
+	IL_0222:  stloc.s 11
+	IL_0224:  ldloc.s 11
+	IL_0226:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_022b:  brtrue IL_0248
+
+	IL_0230:  nop 
+	IL_0231:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0236:  ldstr "Unable to open response file '{0}'."
+	IL_023b:  ldloc.s 11
+	IL_023d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0242:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
+	IL_0247:  throw 
+	IL_0248:  ldarg.0 
+	IL_0249:  ldloc.s 11
+	IL_024b:  call instance void class NAnt.Core.Util.CommandLineParser::ProcessResponseFile(string)
+	IL_0250:  br IL_0294
+
+	IL_0255:  br IL_0295
+
+	IL_025a:  ldarg.0 
+	IL_025b:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
+	IL_0260:  brfalse IL_0278
+
+	IL_0265:  nop 
+	IL_0266:  ldarg.0 
+	IL_0267:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
+	IL_026c:  ldloc.0 
+	IL_026d:  callvirt instance void class NAnt.Core.Util.CommandLineArgument::SetValue(string)
+	IL_0272:  nop 
+	IL_0273:  br IL_028f
+
+	IL_0278:  nop 
+	IL_0279:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_027e:  ldstr "Unknown argument '{0}'"
+	IL_0283:  ldloc.0 
+	IL_0284:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0289:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
+	IL_028e:  throw 
+	IL_028f:  br IL_0294
+
+	IL_0294:  nop 
+	IL_0295:  ldloc.2 
+	IL_0296:  ldc.i4.1 
+	IL_0297:  add 
+	IL_0298:  stloc.2 
+	IL_0299:  ldloc.2 
+	IL_029a:  ldloc.1 
+	IL_029b:  ldlen 
+	IL_029c:  conv.i4 
+	IL_029d:  blt IL_0017
+
+	IL_02a2:  ret 
+    } // end of method CommandLineParser::ParseArgumentList
+
+    // method line 98
+    .method private static hidebysig 
+           default class NAnt.Core.Util.CommandLineArgumentAttribute GetCommandLineAttribute (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
+    {
+        // Method begins at RVA 0x5144
+	// Code size 62 (0x3e)
+	.maxstack 3
 	.locals init (
-		int32	V_0)
+		object[]	V_0,
+		class NAnt.Core.Util.CommandLineArgumentAttribute	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int32 valuetype [mscorlib]System.TimeSpan::get_Hours()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_0001:  ldarg.0 
+	IL_0002:  ldtoken NAnt.Core.Util.CommandLineArgumentAttribute
+	IL_0007:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000c:  ldc.i4.0 
+	IL_000d:  callvirt instance object[] class [mscorlib]System.Reflection.MemberInfo::GetCustomAttributes(class [mscorlib]System.Type, bool)
+	IL_0012:  stloc.0 
+	IL_0013:  ldloc.0 
+	IL_0014:  ldlen 
+	IL_0015:  conv.i4 
+	IL_0016:  ldc.i4.1 
+	IL_0017:  bne.un IL_002a
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetHours
+	IL_001c:  ldloc.0 
+	IL_001d:  ldc.i4.0 
+	IL_001e:  ldelem.ref 
+	IL_001f:  castclass NAnt.Core.Util.CommandLineArgumentAttribute
+	IL_0024:  stloc.1 
+	IL_0025:  br IL_003c
 
-    // method line 172
-    .method public static hidebysig 
-           default int32 GetMinutes (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
+	IL_002a:  ldloc.0 
+	IL_002b:  ldlen 
+	IL_002c:  conv.i4 
+	IL_002d:  ldc.i4.0 
+	IL_002e:  ceq 
+	IL_0030:  call void class [System]System.Diagnostics.Debug::Assert(bool)
+	IL_0035:  ldnull 
+	IL_0036:  stloc.1 
+	IL_0037:  br IL_003c
+
+	IL_003c:  ldloc.1 
+	IL_003d:  ret 
+    } // end of method CommandLineParser::GetCommandLineAttribute
+
+	.property instance string LogoBanner ()
+	{
+		.get instance default string NAnt.Core.Util.CommandLineParser::get_LogoBanner () 
+	}
+	.property instance string Usage ()
+	{
+		.get instance default string NAnt.Core.Util.CommandLineParser::get_Usage () 
+	}
+	.property instance bool NoArgs ()
+	{
+		.get instance default bool NAnt.Core.Util.CommandLineParser::get_NoArgs () 
+	}
+  } // end of class NAnt.Core.Util.CommandLineParser
+}
+
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi sealed serializable beforefieldinit CommandLineArgumentException
+  	extends [mscorlib]System.ArgumentException
+  {
+
+    // method line 99
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0B 67 65 74 2D 6D 69 6E 75 74 65 73 00 00 ) // ...get-minutes..
+        // Method begins at RVA 0x518e
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.ArgumentException::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method CommandLineArgumentException::.ctor
 
-        // Method begins at RVA 0x3968
-	// Code size 16 (0x10)
-	.maxstack 1
+    // method line 100
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message)  cil managed 
+    {
+        // Method begins at RVA 0x5197
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0007:  nop 
+	IL_0008:  ret 
+    } // end of method CommandLineArgumentException::.ctor
+
+    // method line 101
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, class [mscorlib]System.Exception innerException)  cil managed 
+    {
+        // Method begins at RVA 0x51a1
+	// Code size 10 (0xa)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class [mscorlib]System.ArgumentException::'.ctor'(string, class [mscorlib]System.Exception)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method CommandLineArgumentException::.ctor
+
+    // method line 102
+    .method private hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
+    {
+        // Method begins at RVA 0x51ac
+	// Code size 10 (0xa)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class [mscorlib]System.ArgumentException::'.ctor'(class [mscorlib]System.Runtime.Serialization.SerializationInfo, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method CommandLineArgumentException::.ctor
+
+  } // end of class NAnt.Core.Util.CommandLineArgumentException
+}
+
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi sealed beforefieldinit ReflectionUtils
+  	extends [mscorlib]System.Object
+  {
+
+    // method line 103
+    .method private hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x51b7
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method ReflectionUtils::.ctor
+
+    // method line 104
+    .method public static hidebysig 
+           default class [mscorlib]System.Type GetTypeFromString (string typeName, bool throwOnError)  cil managed 
+    {
+        // Method begins at RVA 0x51c0
+	// Code size 242 (0xf2)
+	.maxstack 4
 	.locals init (
-		int32	V_0)
+		class [mscorlib]System.Type	V_0,
+		int32	V_1,
+		int32	V_2,
+		string	V_3,
+		string	V_4,
+		class [mscorlib]System.Reflection.Assembly[]	V_5,
+		class [mscorlib]System.Reflection.Assembly	V_6,
+		class [mscorlib]System.Reflection.Assembly[]	V_7,
+		int32	V_8,
+		class [mscorlib]System.Type	V_9)
 	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int32 valuetype [mscorlib]System.TimeSpan::get_Minutes()
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool)
 	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_0009:  ldloc.0 
+	IL_000a:  ldnull 
+	IL_000b:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0010:  brfalse IL_00e7
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetMinutes
+	IL_0015:  nop 
+	IL_0016:  ldarg.0 
+	IL_0017:  ldc.i4.s 0x2c
+	IL_0019:  callvirt instance int32 string::IndexOf(char)
+	IL_001e:  ldc.i4.m1 
+	IL_001f:  beq IL_0095
 
-    // method line 173
+	IL_0024:  nop 
+	IL_0025:  ldarg.0 
+	IL_0026:  ldc.i4.s 0x2c
+	IL_0028:  callvirt instance int32 string::IndexOf(char)
+	IL_002d:  stloc.1 
+	IL_002e:  ldarg.0 
+	IL_002f:  ldc.i4.s 0x2c
+	IL_0031:  ldloc.1 
+	IL_0032:  ldc.i4.1 
+	IL_0033:  add 
+	IL_0034:  callvirt instance int32 string::IndexOf(char, int32)
+	IL_0039:  stloc.2 
+	IL_003a:  ldarg.0 
+	IL_003b:  ldc.i4.0 
+	IL_003c:  ldloc.1 
+	IL_003d:  callvirt instance string string::Substring(int32, int32)
+	IL_0042:  stloc.3 
+	IL_0043:  ldnull 
+	IL_0044:  stloc.s 4
+	IL_0046:  ldloc.2 
+	IL_0047:  ldc.i4.m1 
+	IL_0048:  beq IL_0069
+
+	IL_004d:  nop 
+	IL_004e:  ldarg.0 
+	IL_004f:  ldloc.1 
+	IL_0050:  ldc.i4.1 
+	IL_0051:  add 
+	IL_0052:  ldloc.2 
+	IL_0053:  ldloc.1 
+	IL_0054:  sub 
+	IL_0055:  ldc.i4.1 
+	IL_0056:  sub 
+	IL_0057:  callvirt instance string string::Substring(int32, int32)
+	IL_005c:  callvirt instance string string::Trim()
+	IL_0061:  stloc.s 4
+	IL_0063:  nop 
+	IL_0064:  br IL_007b
+
+	IL_0069:  nop 
+	IL_006a:  ldarg.0 
+	IL_006b:  ldloc.1 
+	IL_006c:  ldc.i4.1 
+	IL_006d:  add 
+	IL_006e:  callvirt instance string string::Substring(int32)
+	IL_0073:  callvirt instance string string::Trim()
+	IL_0078:  stloc.s 4
+	IL_007a:  nop 
+	IL_007b:  ldloc.3 
+	IL_007c:  ldstr ", "
+	IL_0081:  ldloc.s 4
+	IL_0083:  call string string::Concat(string, string, string)
+	IL_0088:  ldc.i4.0 
+	IL_0089:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool)
+	IL_008e:  stloc.0 
+	IL_008f:  nop 
+	IL_0090:  br IL_00e6
+
+	IL_0095:  nop 
+	IL_0096:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_009b:  callvirt instance class [mscorlib]System.Reflection.Assembly[] class [mscorlib]System.AppDomain::GetAssemblies()
+	IL_00a0:  stloc.s 5
+	IL_00a2:  nop 
+	IL_00a3:  ldloc.s 5
+	IL_00a5:  stloc.s 7
+	IL_00a7:  ldc.i4.0 
+	IL_00a8:  stloc.s 8
+	IL_00aa:  br IL_00da
+
+	IL_00af:  ldloc.s 7
+	IL_00b1:  ldloc.s 8
+	IL_00b3:  ldelem.ref 
+	IL_00b4:  stloc.s 6
+	IL_00b6:  nop 
+	IL_00b7:  ldloc.s 6
+	IL_00b9:  ldarg.0 
+	IL_00ba:  ldc.i4.0 
+	IL_00bb:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool)
+	IL_00c0:  stloc.0 
+	IL_00c1:  ldloc.0 
+	IL_00c2:  ldnull 
+	IL_00c3:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_00c8:  brfalse IL_00d3
+
+	IL_00cd:  nop 
+	IL_00ce:  br IL_00e5
+
+	IL_00d3:  nop 
+	IL_00d4:  ldloc.s 8
+	IL_00d6:  ldc.i4.1 
+	IL_00d7:  add 
+	IL_00d8:  stloc.s 8
+	IL_00da:  ldloc.s 8
+	IL_00dc:  ldloc.s 7
+	IL_00de:  ldlen 
+	IL_00df:  conv.i4 
+	IL_00e0:  blt IL_00af
+
+	IL_00e5:  nop 
+	IL_00e6:  nop 
+	IL_00e7:  ldloc.0 
+	IL_00e8:  stloc.s 9
+	IL_00ea:  br IL_00ef
+
+	IL_00ef:  ldloc.s 9
+	IL_00f1:  ret 
+    } // end of method ReflectionUtils::GetTypeFromString
+
+  } // end of class NAnt.Core.Util.ReflectionUtils
+}
+
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi sealed beforefieldinit StringUtils
+  	extends [mscorlib]System.Object
+  {
+
+    // method line 105
+    .method private hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x52be
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method StringUtils::.ctor
+
+    // method line 106
     .method public static hidebysig 
-           default int32 GetSeconds (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
+           default bool EndsWith (string 'value', char c)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0B 67 65 74 2D 73 65 63 6F 6E 64 73 00 00 ) // ...get-seconds..
+        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
+		01 00 50 53 74 72 69 6E 67 55 74 69 6C 73 2E 45   // ..PStringUtils.E
+		6E 64 73 57 69 74 68 20 6D 65 74 68 6F 64 20 69   // ndsWith method i
+		73 20 64 65 70 72 65 63 69 61 74 65 64 2E 20 55   // s depreciated. U
+		73 65 20 73 74 72 69 6E 67 2E 45 6E 64 73 57 69   // se string.EndsWi
+		74 68 28 73 74 72 69 6E 67 29 20 69 6E 73 74 65   // th(string) inste
+		61 64 2E 00 00                                  ) // ad...
 
-        // Method begins at RVA 0x3984
-	// Code size 16 (0x10)
-	.maxstack 1
+        // Method begins at RVA 0x52c8
+	// Code size 63 (0x3f)
+	.maxstack 3
 	.locals init (
-		int32	V_0)
+		int32	V_0,
+		bool	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int32 valuetype [mscorlib]System.TimeSpan::get_Seconds()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_0001:  ldarg.0 
+	IL_0002:  brtrue IL_0012
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetSeconds
+	IL_0007:  ldstr "value"
+	IL_000c:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0011:  throw 
+	IL_0012:  ldarg.0 
+	IL_0013:  callvirt instance int32 string::get_Length()
+	IL_0018:  stloc.0 
+	IL_0019:  ldloc.0 
+	IL_001a:  brfalse IL_0036
 
-    // method line 174
+	IL_001f:  ldarg.0 
+	IL_0020:  ldloc.0 
+	IL_0021:  ldc.i4.1 
+	IL_0022:  sub 
+	IL_0023:  callvirt instance char string::get_Chars(int32)
+	IL_0028:  ldarg.1 
+	IL_0029:  bne.un IL_0036
+
+	IL_002e:  nop 
+	IL_002f:  ldc.i4.1 
+	IL_0030:  stloc.1 
+	IL_0031:  br IL_003d
+
+	IL_0036:  ldc.i4.0 
+	IL_0037:  stloc.1 
+	IL_0038:  br IL_003d
+
+	IL_003d:  ldloc.1 
+	IL_003e:  ret 
+    } // end of method StringUtils::EndsWith
+
+    // method line 107
     .method public static hidebysig 
-           default int32 GetMilliseconds (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
+           default bool IsNullOrEmpty (string 'value')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 10 67 65 74 2D 6D 69 6C 6C 69 73 65 63 6F   // ...get-milliseco
-		6E 64 73 00 00                                  ) // nds..
+        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
+		01 00 61 53 74 72 69 6E 67 55 74 69 6C 73 2E 49   // ..aStringUtils.I
+		73 4E 75 6C 6C 4F 72 45 6D 70 74 79 20 6D 65 74   // sNullOrEmpty met
+		68 6F 64 20 69 73 20 64 65 70 72 65 63 69 61 74   // hod is depreciat
+		65 64 2E 20 55 73 65 20 53 79 73 74 65 6D 2E 53   // ed. Use System.S
+		74 72 69 6E 67 2E 49 73 4E 75 6C 6C 4F 72 45 6D   // tring.IsNullOrEm
+		70 74 79 28 73 74 72 69 6E 67 29 20 69 6E 73 74   // pty(string) inst
+		65 61 64 2E 00 00                               ) // ead...
 
-        // Method begins at RVA 0x39a0
-	// Code size 16 (0x10)
-	.maxstack 1
+        // Method begins at RVA 0x5314
+	// Code size 27 (0x1b)
+	.maxstack 2
 	.locals init (
-		int32	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int32 valuetype [mscorlib]System.TimeSpan::get_Milliseconds()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_0001:  ldarg.0 
+	IL_0002:  brfalse IL_0012
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetMilliseconds
+	IL_0007:  ldarg.0 
+	IL_0008:  callvirt instance int32 string::get_Length()
+	IL_000d:  ldc.i4.0 
+	IL_000e:  ceq 
+	IL_0010:  br.s IL_0013
 
-    // method line 175
+	IL_0012:  ldc.i4.1 
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0019
+
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method StringUtils::IsNullOrEmpty
+
+    // method line 108
     .method public static hidebysig 
-           default int64 GetTicks (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
+           default string ConvertEmptyToNull (string 'value')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 74 69 63 6B 73 00 00 ) // ...get-ticks..
-
-        // Method begins at RVA 0x39bc
-	// Code size 16 (0x10)
+        // Method begins at RVA 0x533c
+	// Code size 28 (0x1c)
 	.maxstack 1
 	.locals init (
-		int64	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  call instance int64 valuetype [mscorlib]System.TimeSpan::get_Ticks()
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_0001:  ldarg.0 
+	IL_0002:  call bool string::IsNullOrEmpty(string)
+	IL_0007:  brtrue IL_0013
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method TimeSpanFunctions::GetTicks
+	IL_000c:  ldarg.0 
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_001a
 
-    // method line 176
+	IL_0013:  ldnull 
+	IL_0014:  stloc.0 
+	IL_0015:  br IL_001a
+
+	IL_001a:  ldloc.0 
+	IL_001b:  ret 
+    } // end of method StringUtils::ConvertEmptyToNull
+
+    // method line 109
     .method public static hidebysig 
-           default valuetype [mscorlib]System.TimeSpan FromDays (float64 'value')  cil managed 
+           default string ConvertNullToEmpty (string 'value')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 66 72 6F 6D 2D 64 61 79 73 00 00 ) // ...from-days..
-
-        // Method begins at RVA 0x39d8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x5364
+	// Code size 27 (0x1b)
 	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.TimeSpan	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromDays(float64)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  brtrue IL_0012
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TimeSpanFunctions::FromDays
+	IL_0007:  ldsfld string [mscorlib]System.String::Empty
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0019
 
-    // method line 177
+	IL_0012:  ldarg.0 
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0019
+
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method StringUtils::ConvertNullToEmpty
+
+    // method line 110
     .method public static hidebysig 
-           default valuetype [mscorlib]System.TimeSpan FromHours (float64 'value')  cil managed 
+           default string Join (string separator, class [System]System.Collections.Specialized.StringCollection 'value')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 66 72 6F 6D 2D 68 6F 75 72 73 00 00 ) // ...from-hours..
+        // Method begins at RVA 0x538c
+	// Code size 66 (0x42)
+	.maxstack 3
+	.locals init (
+		string[]	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0012
 
-        // Method begins at RVA 0x39f4
-	// Code size 15 (0xf)
+	IL_0007:  ldstr "value"
+	IL_000c:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0011:  throw 
+	IL_0012:  ldarg.0 
+	IL_0013:  brtrue IL_001f
+
+	IL_0018:  ldsfld string [mscorlib]System.String::Empty
+	IL_001d:  starg.s 0
+	IL_001f:  ldarg.1 
+	IL_0020:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0025:  newarr [mscorlib]System.String
+	IL_002a:  stloc.0 
+	IL_002b:  ldarg.1 
+	IL_002c:  ldloc.0 
+	IL_002d:  ldc.i4.0 
+	IL_002e:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::CopyTo(string[], int32)
+	IL_0033:  ldarg.0 
+	IL_0034:  ldloc.0 
+	IL_0035:  call string string::Join(string, string[])
+	IL_003a:  stloc.1 
+	IL_003b:  br IL_0040
+
+	IL_0040:  ldloc.1 
+	IL_0041:  ret 
+    } // end of method StringUtils::Join
+
+    // method line 111
+    .method public static hidebysig 
+           default class [System]System.Collections.Specialized.StringCollection Clone (class [System]System.Collections.Specialized.StringCollection stringCollection)  cil managed 
+    {
+        // Method begins at RVA 0x53dc
+	// Code size 43 (0x2b)
+	.maxstack 3
+	.locals init (
+		string[]	V_0,
+		class [System]System.Collections.Specialized.StringCollection	V_1,
+		class [System]System.Collections.Specialized.StringCollection	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0007:  newarr [mscorlib]System.String
+	IL_000c:  stloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::CopyTo(string[], int32)
+	IL_0015:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_001a:  stloc.1 
+	IL_001b:  ldloc.1 
+	IL_001c:  ldloc.0 
+	IL_001d:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
+	IL_0022:  ldloc.1 
+	IL_0023:  stloc.2 
+	IL_0024:  br IL_0029
+
+	IL_0029:  ldloc.2 
+	IL_002a:  ret 
+    } // end of method StringUtils::Clone
+
+  } // end of class NAnt.Core.Util.StringUtils
+}
+
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi beforefieldinit StopWatchStack
+  	extends [mscorlib]System.Object
+  {
+    .field  private initonly  class NAnt.Core.Util.DateTimeProvider _dtProvider
+    .field  private initonly  class [mscorlib]System.Collections.Stack _stack
+
+    // method line 112
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Util.DateTimeProvider dtProvider)  cil managed 
+    {
+        // Method begins at RVA 0x5413
+	// Code size 26 (0x1a)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
+	IL_0006:  stfld class [mscorlib]System.Collections.Stack NAnt.Core.Util.StopWatchStack::_stack
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void object::'.ctor'()
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  ldarg.1 
+	IL_0014:  stfld class NAnt.Core.Util.DateTimeProvider NAnt.Core.Util.StopWatchStack::_dtProvider
+	IL_0019:  ret 
+    } // end of method StopWatchStack::.ctor
+
+    // method line 113
+    .method public hidebysig 
+           instance default void PushStart ()  cil managed 
+    {
+        // Method begins at RVA 0x542e
+	// Code size 24 (0x18)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.Util.StopWatchStack::_stack
+	IL_0007:  ldarg.0 
+	IL_0008:  ldfld class NAnt.Core.Util.DateTimeProvider NAnt.Core.Util.StopWatchStack::_dtProvider
+	IL_000d:  newobj instance void class NAnt.Core.Util.StopWatchStack/StopWatch::'.ctor'(class NAnt.Core.Util.DateTimeProvider)
+	IL_0012:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
+	IL_0017:  ret 
+    } // end of method StopWatchStack::PushStart
+
+    // method line 114
+    .method public hidebysig 
+           instance default valuetype [mscorlib]System.TimeSpan PopStop ()  cil managed 
+    {
+        // Method begins at RVA 0x5448
+	// Code size 30 (0x1e)
 	.maxstack 1
 	.locals init (
 		valuetype [mscorlib]System.TimeSpan	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromHours(float64)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.Util.StopWatchStack::_stack
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
+	IL_000c:  castclass NAnt.Core.Util.StopWatchStack/StopWatch
+	IL_0011:  callvirt instance valuetype [mscorlib]System.TimeSpan class NAnt.Core.Util.StopWatchStack/StopWatch::Elapsed()
+	IL_0016:  stloc.0 
+	IL_0017:  br IL_001c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TimeSpanFunctions::FromHours
+	IL_001c:  ldloc.0 
+	IL_001d:  ret 
+    } // end of method StopWatchStack::PopStop
 
-    // method line 178
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.TimeSpan FromMinutes (float64 'value')  cil managed 
+  .class nested private auto ansi beforefieldinit StopWatch
+  	extends [mscorlib]System.Object
+  {
+    .field  private initonly  class NAnt.Core.Util.DateTimeProvider _dtProvider
+    .field  private initonly  valuetype [mscorlib]System.DateTime _start
+
+    // method line 115
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Util.DateTimeProvider dtProvider)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0C 66 72 6F 6D 2D 6D 69 6E 75 74 65 73 00   // ...from-minutes.
-		00                                              ) // .
+        // Method begins at RVA 0x5472
+	// Code size 27 (0x1b)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld class NAnt.Core.Util.DateTimeProvider NAnt.Core.Util.StopWatchStack/StopWatch::_dtProvider
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  callvirt instance valuetype [mscorlib]System.DateTime class NAnt.Core.Util.DateTimeProvider::get_Now()
+	IL_0015:  stfld valuetype [mscorlib]System.DateTime NAnt.Core.Util.StopWatchStack/StopWatch::_start
+	IL_001a:  ret 
+    } // end of method StopWatch::.ctor
 
-        // Method begins at RVA 0x3a10
-	// Code size 15 (0xf)
-	.maxstack 1
+    // method line 116
+    .method public hidebysig 
+           instance default valuetype [mscorlib]System.TimeSpan Elapsed ()  cil managed 
+    {
+        // Method begins at RVA 0x5490
+	// Code size 31 (0x1f)
+	.maxstack 2
 	.locals init (
 		valuetype [mscorlib]System.TimeSpan	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromMinutes(float64)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class NAnt.Core.Util.DateTimeProvider NAnt.Core.Util.StopWatchStack/StopWatch::_dtProvider
+	IL_0007:  callvirt instance valuetype [mscorlib]System.DateTime class NAnt.Core.Util.DateTimeProvider::get_Now()
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld valuetype [mscorlib]System.DateTime NAnt.Core.Util.StopWatchStack/StopWatch::_start
+	IL_0012:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.DateTime::op_Subtraction(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	IL_0017:  stloc.0 
+	IL_0018:  br IL_001d
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TimeSpanFunctions::FromMinutes
+	IL_001d:  ldloc.0 
+	IL_001e:  ret 
+    } // end of method StopWatch::Elapsed
 
-    // method line 179
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.TimeSpan FromSeconds (float64 'value')  cil managed 
+  } // end of class StopWatch
+
+  } // end of class NAnt.Core.Util.StopWatchStack
+}
+
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi sealed CommandLineArgumentTypes
+  	extends [mscorlib]System.Enum
+  {
+    .custom instance void class [mscorlib]System.FlagsAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Core.Util.CommandLineArgumentTypes Required = int32(0x00000001)
+    .field public static literal  valuetype NAnt.Core.Util.CommandLineArgumentTypes Unique = int32(0x00000002)
+    .field public static literal  valuetype NAnt.Core.Util.CommandLineArgumentTypes Multiple = int32(0x00000004)
+    .field public static literal  valuetype NAnt.Core.Util.CommandLineArgumentTypes Exclusive = int32(0x00000008)
+    .field public static literal  valuetype NAnt.Core.Util.CommandLineArgumentTypes AtMostOnce = int32(0x00000000)
+    .field public static literal  valuetype NAnt.Core.Util.CommandLineArgumentTypes MultipleUnique = int32(0x00000006)
+
+  } // end of class NAnt.Core.Util.CommandLineArgumentTypes
+}
+
+.namespace NAnt.Core.Util
+{
+  .class public auto ansi beforefieldinit CommandLineArgumentAttribute
+  	extends [mscorlib]System.Attribute
+  {
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 80 00 00 00 02 00 54 02 0D 41 6C 6C 6F 77   // ........T..Allow
+		4D 75 6C 74 69 70 6C 65 00 54 02 09 49 6E 68 65   // Multiple.T..Inhe
+		72 69 74 65 64 01                               ) // rited.
+
+    .field  private  valuetype NAnt.Core.Util.CommandLineArgumentTypes _argumentType
+    .field  private  string _name
+    .field  private  string _shortName
+    .field  private  string _description
+
+    // method line 117
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.Core.Util.CommandLineArgumentTypes argumentType)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0C 66 72 6F 6D 2D 73 65 63 6F 6E 64 73 00   // ...from-seconds.
-		00                                              ) // .
+        // Method begins at RVA 0x2050
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgumentAttribute::_argumentType
+	IL_000e:  ret 
+    } // end of method CommandLineArgumentAttribute::.ctor
 
-        // Method begins at RVA 0x3a2c
+    // method line 118
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.Util.CommandLineArgumentTypes get_Type ()  cil managed 
+    {
+        // Method begins at RVA 0x2060
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.TimeSpan	V_0)
+		valuetype NAnt.Core.Util.CommandLineArgumentTypes	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromSeconds(float64)
+	IL_0002:  ldfld valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgumentAttribute::_argumentType
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TimeSpanFunctions::FromSeconds
+    } // end of method CommandLineArgumentAttribute::get_Type
 
-    // method line 180
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.TimeSpan FromMilliseconds (float64 'value')  cil managed 
+    // method line 119
+    .method public hidebysig specialname 
+           instance default string get_Name ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 11 66 72 6F 6D 2D 6D 69 6C 6C 69 73 65 63   // ...from-millisec
-		6F 6E 64 73 00 00                               ) // onds..
-
-        // Method begins at RVA 0x3a48
+        // Method begins at RVA 0x207c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.TimeSpan	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromMilliseconds(float64)
+	IL_0002:  ldfld string NAnt.Core.Util.CommandLineArgumentAttribute::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TimeSpanFunctions::FromMilliseconds
+    } // end of method CommandLineArgumentAttribute::get_Name
 
-    // method line 181
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.TimeSpan FromTicks (int64 'value')  cil managed 
+    // method line 120
+    .method public hidebysig specialname 
+           instance default void set_Name (string 'value')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 66 72 6F 6D 2D 74 69 63 6B 73 00 00 ) // ...from-ticks..
+        // Method begins at RVA 0x2097
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Util.CommandLineArgumentAttribute::_name
+	IL_0008:  ret 
+    } // end of method CommandLineArgumentAttribute::set_Name
 
-        // Method begins at RVA 0x3a64
+    // method line 121
+    .method public hidebysig specialname 
+           instance default string get_ShortName ()  cil managed 
+    {
+        // Method begins at RVA 0x20a4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.TimeSpan	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromTicks(int64)
+	IL_0002:  ldfld string NAnt.Core.Util.CommandLineArgumentAttribute::_shortName
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TimeSpanFunctions::FromTicks
-
-  } // end of class NAnt.Core.Functions.TimeSpanFunctions
-}
-
-.namespace NAnt.Core.Functions
-{
-  .class public auto ansi beforefieldinit TimeSpanConversionFunctions
-  	extends NAnt.Core.FunctionSetBase
-  {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 08 74 69 6D 65 73 70 61 6E 0A 43 6F 6E 76   // ...timespan.Conv
-		65 72 73 69 6F 6E 00 00                         ) // ersion..
-
+    } // end of method CommandLineArgumentAttribute::get_ShortName
 
-    // method line 182
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+    // method line 122
+    .method public hidebysig specialname 
+           instance default void set_ShortName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3a7f
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x20bf
+	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method TimeSpanConversionFunctions::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Util.CommandLineArgumentAttribute::_shortName
+	IL_0008:  ret 
+    } // end of method CommandLineArgumentAttribute::set_ShortName
 
-    // method line 183
-    .method public static hidebysig 
-           default valuetype [mscorlib]System.TimeSpan Parse (string s)  cil managed 
+    // method line 123
+    .method public hidebysig specialname 
+           instance default string get_Description ()  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
-
-        // Method begins at RVA 0x3a8c
+        // Method begins at RVA 0x20cc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.TimeSpan	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::Parse(string)
+	IL_0002:  ldfld string NAnt.Core.Util.CommandLineArgumentAttribute::_description
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TimeSpanConversionFunctions::Parse
+    } // end of method CommandLineArgumentAttribute::get_Description
 
-    // method line 184
-    .method public static hidebysig 
-           default string ToString (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
+    // method line 124
+    .method public hidebysig specialname 
+           instance default void set_Description (string 'value')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
-
-        // Method begins at RVA 0x3aa8
-	// Code size 22 (0x16)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x20e7
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarga.s 0
-	IL_0003:  constrained. [mscorlib]System.TimeSpan
-	IL_0009:  callvirt instance string object::ToString()
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0014
-
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method TimeSpanConversionFunctions::ToString
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Util.CommandLineArgumentAttribute::_description
+	IL_0008:  ret 
+    } // end of method CommandLineArgumentAttribute::set_Description
 
-  } // end of class NAnt.Core.Functions.TimeSpanConversionFunctions
+	.property instance valuetype NAnt.Core.Util.CommandLineArgumentTypes Type ()
+	{
+		.get instance default valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgumentAttribute::get_Type () 
+	}
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.Core.Util.CommandLineArgumentAttribute::get_Name () 
+		.set instance default void NAnt.Core.Util.CommandLineArgumentAttribute::set_Name (string 'value') 
+	}
+	.property instance string ShortName ()
+	{
+		.get instance default string NAnt.Core.Util.CommandLineArgumentAttribute::get_ShortName () 
+		.set instance default void NAnt.Core.Util.CommandLineArgumentAttribute::set_ShortName (string 'value') 
+	}
+	.property instance string Description ()
+	{
+		.get instance default string NAnt.Core.Util.CommandLineArgumentAttribute::get_Description () 
+		.set instance default void NAnt.Core.Util.CommandLineArgumentAttribute::set_Description (string 'value') 
+	}
+  } // end of class NAnt.Core.Util.CommandLineArgumentAttribute
 }
 
 .namespace NAnt.Core.Functions
@@ -5108,11 +6984,11 @@
 		6D 62 6C 79 00 00                               ) // mbly..
 
 
-    // method line 185
+    // method line 125
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x3aca
+        // Method begins at RVA 0x54f1
 	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -5123,7 +6999,7 @@
 	IL_0009:  ret 
     } // end of method AssemblyFunctions::.ctor
 
-    // method line 186
+    // method line 126
     .method public hidebysig 
            instance default class [mscorlib]System.Reflection.Assembly LoadFromFile (string assemblyFile)  cil managed 
     {
@@ -5131,7 +7007,7 @@
 		01 00 0E 6C 6F 61 64 2D 66 72 6F 6D 2D 66 69 6C   // ...load-from-fil
 		65 00 00                                        ) // e..
 
-        // Method begins at RVA 0x3ad8
+        // Method begins at RVA 0x54fc
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -5149,13 +7025,13 @@
 	IL_0019:  ret 
     } // end of method AssemblyFunctions::LoadFromFile
 
-    // method line 187
+    // method line 127
     .method public hidebysig 
            instance default class [mscorlib]System.Reflection.Assembly Load (string assemblyString)  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 04 6C 6F 61 64 00 00 ) // ...load..
 
-        // Method begins at RVA 0x3b00
+        // Method begins at RVA 0x5524
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5170,7 +7046,7 @@
 	IL_000e:  ret 
     } // end of method AssemblyFunctions::Load
 
-    // method line 188
+    // method line 128
     .method public static hidebysig 
            default string GetFullName (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
     {
@@ -5178,7 +7054,7 @@
 		01 00 0D 67 65 74 2D 66 75 6C 6C 2D 6E 61 6D 65   // ...get-full-name
 		00 00                                           ) // ..
 
-        // Method begins at RVA 0x3b1c
+        // Method begins at RVA 0x5540
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5193,13 +7069,13 @@
 	IL_000e:  ret 
     } // end of method AssemblyFunctions::GetFullName
 
-    // method line 189
+    // method line 129
     .method public static hidebysig 
            default class [mscorlib]System.Reflection.AssemblyName GetName (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 6E 61 6D 65 00 00 ) // ...get-name..
 
-        // Method begins at RVA 0x3b38
+        // Method begins at RVA 0x555c
 	// Code size 16 (0x10)
 	.maxstack 2
 	.locals init (
@@ -5215,7 +7091,7 @@
 	IL_000f:  ret 
     } // end of method AssemblyFunctions::GetName
 
-    // method line 190
+    // method line 130
     .method public static hidebysig 
            default string GetLocation (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
     {
@@ -5223,7 +7099,7 @@
 		01 00 0C 67 65 74 2D 6C 6F 63 61 74 69 6F 6E 00   // ...get-location.
 		00                                              ) // .
 
-        // Method begins at RVA 0x3b54
+        // Method begins at RVA 0x5578
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5243,17 +7119,225 @@
 
 .namespace NAnt.Core.Functions
 {
+  .class public auto ansi beforefieldinit FileVersionInfoFunctions
+  	extends NAnt.Core.FunctionSetBase
+  {
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 0F 66 69 6C 65 76 65 72 73 69 6F 6E 69 6E   // ...fileversionin
+		66 6F 07 56 65 72 73 69 6F 6E 00 00             ) // fo.Version..
+
+
+    // method line 131
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+    {
+        // Method begins at RVA 0x5593
+	// Code size 10 (0xa)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method FileVersionInfoFunctions::.ctor
+
+    // method line 132
+    .method public hidebysig 
+           instance default class [System]System.Diagnostics.FileVersionInfo GetVersionInfo (string fileName)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 10 67 65 74 2D 76 65 72 73 69 6F 6E 2D 69   // ...get-version-i
+		6E 66 6F 00 00                                  ) // nfo..
+
+        // Method begins at RVA 0x55a0
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class [System]System.Diagnostics.FileVersionInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	IL_000d:  call class [System]System.Diagnostics.FileVersionInfo class [System]System.Diagnostics.FileVersionInfo::GetVersionInfo(string)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method FileVersionInfoFunctions::GetVersionInfo
+
+    // method line 133
+    .method public static hidebysig 
+           default string GetCompanyName (class [System]System.Diagnostics.FileVersionInfo fileVersionInfo)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 10 67 65 74 2D 63 6F 6D 70 61 6E 79 2D 6E   // ...get-company-n
+		61 6D 65 00 00                                  ) // ame..
+
+        // Method begins at RVA 0x55c8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance string class [System]System.Diagnostics.FileVersionInfo::get_CompanyName()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FileVersionInfoFunctions::GetCompanyName
+
+    // method line 134
+    .method public static hidebysig 
+           default class [mscorlib]System.Version GetFileVersion (class [System]System.Diagnostics.FileVersionInfo fileVersionInfo)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 10 67 65 74 2D 66 69 6C 65 2D 76 65 72 73   // ...get-file-vers
+		69 6F 6E 00 00                                  ) // ion..
+
+        // Method begins at RVA 0x55e4
+	// Code size 38 (0x26)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Version	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FileMajorPart()
+	IL_0007:  ldarg.0 
+	IL_0008:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FileMinorPart()
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FileBuildPart()
+	IL_0013:  ldarg.0 
+	IL_0014:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FilePrivatePart()
+	IL_0019:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32, int32, int32)
+	IL_001e:  stloc.0 
+	IL_001f:  br IL_0024
+
+	IL_0024:  ldloc.0 
+	IL_0025:  ret 
+    } // end of method FileVersionInfoFunctions::GetFileVersion
+
+    // method line 135
+    .method public static hidebysig 
+           default string GetProductName (class [System]System.Diagnostics.FileVersionInfo fileVersionInfo)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 10 67 65 74 2D 70 72 6F 64 75 63 74 2D 6E   // ...get-product-n
+		61 6D 65 00 00                                  ) // ame..
+
+        // Method begins at RVA 0x5618
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance string class [System]System.Diagnostics.FileVersionInfo::get_ProductName()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FileVersionInfoFunctions::GetProductName
+
+    // method line 136
+    .method public static hidebysig 
+           default class [mscorlib]System.Version GetProductVersion (class [System]System.Diagnostics.FileVersionInfo fileVersionInfo)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 13 67 65 74 2D 70 72 6F 64 75 63 74 2D 76   // ...get-product-v
+		65 72 73 69 6F 6E 00 00                         ) // ersion..
+
+        // Method begins at RVA 0x5634
+	// Code size 38 (0x26)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Version	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_ProductMajorPart()
+	IL_0007:  ldarg.0 
+	IL_0008:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_ProductMinorPart()
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_ProductBuildPart()
+	IL_0013:  ldarg.0 
+	IL_0014:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_ProductPrivatePart()
+	IL_0019:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32, int32, int32)
+	IL_001e:  stloc.0 
+	IL_001f:  br IL_0024
+
+	IL_0024:  ldloc.0 
+	IL_0025:  ret 
+    } // end of method FileVersionInfoFunctions::GetProductVersion
+
+  } // end of class NAnt.Core.Functions.FileVersionInfoFunctions
+}
+
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit DnsFunctions
+  	extends NAnt.Core.FunctionSetBase
+  {
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (01 00 03 64 6E 73 03 44 4E 53 00 00 ) // ...dns.DNS..
+
+
+    // method line 137
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+    {
+        // Method begins at RVA 0x5666
+	// Code size 10 (0xa)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method DnsFunctions::.ctor
+
+    // method line 138
+    .method public static hidebysig 
+           default string GetHostName ()  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0D 67 65 74 2D 68 6F 73 74 2D 6E 61 6D 65   // ...get-host-name
+		00 00                                           ) // ..
+
+        // Method begins at RVA 0x5674
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  call string class [System]System.Net.Dns::GetHostName()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method DnsFunctions::GetHostName
+
+  } // end of class NAnt.Core.Functions.DnsFunctions
+}
+
+.namespace NAnt.Core.Functions
+{
   .class public auto ansi beforefieldinit FileFunctions
   	extends NAnt.Core.FunctionSetBase
   {
     .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (01 00 04 66 69 6C 65 04 46 69 6C 65 00 00 ) // ...file.File..
 
 
-    // method line 191
+    // method line 139
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x3b6f
+        // Method begins at RVA 0x568e
 	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -5264,7 +7348,7 @@
 	IL_0009:  ret 
     } // end of method FileFunctions::.ctor
 
-    // method line 192
+    // method line 140
     .method public hidebysig 
            instance default valuetype [mscorlib]System.DateTime GetCreationTime (string path)  cil managed 
     {
@@ -5272,7 +7356,7 @@
 		01 00 11 67 65 74 2D 63 72 65 61 74 69 6F 6E 2D   // ...get-creation-
 		74 69 6D 65 00 00                               ) // time..
 
-        // Method begins at RVA 0x3b7c
+        // Method begins at RVA 0x569c
 	// Code size 62 (0x3e)
 	.maxstack 3
 	.locals init (
@@ -5304,7 +7388,7 @@
 	IL_003d:  ret 
     } // end of method FileFunctions::GetCreationTime
 
-    // method line 193
+    // method line 141
     .method public hidebysig 
            instance default valuetype [mscorlib]System.DateTime GetLastWriteTime (string path)  cil managed 
     {
@@ -5312,7 +7396,7 @@
 		01 00 13 67 65 74 2D 6C 61 73 74 2D 77 72 69 74   // ...get-last-writ
 		65 2D 74 69 6D 65 00 00                         ) // e-time..
 
-        // Method begins at RVA 0x3bc8
+        // Method begins at RVA 0x56e8
 	// Code size 62 (0x3e)
 	.maxstack 3
 	.locals init (
@@ -5344,7 +7428,7 @@
 	IL_003d:  ret 
     } // end of method FileFunctions::GetLastWriteTime
 
-    // method line 194
+    // method line 142
     .method public hidebysig 
            instance default valuetype [mscorlib]System.DateTime GetLastAccessTime (string path)  cil managed 
     {
@@ -5352,7 +7436,7 @@
 		01 00 14 67 65 74 2D 6C 61 73 74 2D 61 63 63 65   // ...get-last-acce
 		73 73 2D 74 69 6D 65 00 00                      ) // ss-time..
 
-        // Method begins at RVA 0x3c14
+        // Method begins at RVA 0x5734
 	// Code size 62 (0x3e)
 	.maxstack 3
 	.locals init (
@@ -5384,13 +7468,13 @@
 	IL_003d:  ret 
     } // end of method FileFunctions::GetLastAccessTime
 
-    // method line 195
+    // method line 143
     .method public hidebysig 
            instance default bool Exists (string file)  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
 
-        // Method begins at RVA 0x3c60
+        // Method begins at RVA 0x5780
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -5408,13 +7492,13 @@
 	IL_0019:  ret 
     } // end of method FileFunctions::Exists
 
-    // method line 196
+    // method line 144
     .method public hidebysig 
            instance default bool UpToDate (string srcFile, string targetFile)  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 75 70 2D 74 6F 2D 64 61 74 65 00 00 ) // ...up-to-date..
 
-        // Method begins at RVA 0x3c88
+        // Method begins at RVA 0x57a8
 	// Code size 75 (0x4b)
 	.maxstack 2
 	.locals init (
@@ -5460,13 +7544,13 @@
 	IL_004a:  ret 
     } // end of method FileFunctions::UpToDate
 
-    // method line 197
+    // method line 145
     .method public hidebysig 
            instance default int64 GetLength (string file)  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 67 65 74 2D 6C 65 6E 67 74 68 00 00 ) // ...get-length..
 
-        // Method begins at RVA 0x3ce0
+        // Method begins at RVA 0x5800
 	// Code size 33 (0x21)
 	.maxstack 2
 	.locals init (
@@ -5488,14 +7572,14 @@
 	IL_0020:  ret 
     } // end of method FileFunctions::GetLength
 
-    // method line 198
+    // method line 146
     .method public hidebysig 
            instance default bool IsAssembly (string assemblyFile)  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
 		01 00 0B 69 73 2D 61 73 73 65 6D 62 6C 79 00 00 ) // ...is-assembly..
 
-        // Method begins at RVA 0x3d10
+        // Method begins at RVA 0x5830
 	// Code size 47 (0x2f)
 	.maxstack 2
 	.locals init (
@@ -5539,17 +7623,19 @@
 
 .namespace NAnt.Core.Functions
 {
-  .class public auto ansi beforefieldinit PathFunctions
+  .class public auto ansi beforefieldinit VersionFunctions
   	extends NAnt.Core.FunctionSetBase
   {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (01 00 04 70 61 74 68 04 50 61 74 68 00 00 ) // ...path.Path..
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 07 76 65 72 73 69 6F 6E 07 56 65 72 73 69   // ...version.Versi
+		6F 6E 00 00                                     ) // on..
 
 
-    // method line 199
+    // method line 147
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x3d68
+        // Method begins at RVA 0x5888
 	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -5558,311 +7644,182 @@
 	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
 	IL_0008:  nop 
 	IL_0009:  ret 
-    } // end of method PathFunctions::.ctor
-
-    // method line 200
-    .method public hidebysig 
-           instance default string GetFullPath (string path)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0D 67 65 74 2D 66 75 6C 6C 2D 70 61 74 68   // ...get-full-path
-		00 00                                           ) // ..
-
-        // Method begins at RVA 0x3d74
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method PathFunctions::GetFullPath
-
-    // method line 201
-    .method public static hidebysig 
-           default string Combine (string path1, string path2)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 07 63 6F 6D 62 69 6E 65 00 00 ) // ...combine..
-
-        // Method begins at RVA 0x3d98
-	// Code size 16 (0x10)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method PathFunctions::Combine
-
-    // method line 202
-    .method public static hidebysig 
-           default string ChangeExtension (string path, string extension)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 10 63 68 61 6E 67 65 2D 65 78 74 65 6E 73   // ...change-extens
-		69 6F 6E 00 00                                  ) // ion..
-
-        // Method begins at RVA 0x3db4
-	// Code size 16 (0x10)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method PathFunctions::ChangeExtension
-
-    // method line 203
-    .method public static hidebysig 
-           default string GetDirectoryName (string path)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 12 67 65 74 2D 64 69 72 65 63 74 6F 72 79   // ...get-directory
-		2D 6E 61 6D 65 00 00                            ) // -name..
-
-        // Method begins at RVA 0x3dd0
-	// Code size 22 (0x16)
-	.maxstack 1
-	.locals init (
-		string	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
-	IL_000e:  stloc.1 
-	IL_000f:  br IL_0014
-
-	IL_0014:  ldloc.1 
-	IL_0015:  ret 
-    } // end of method PathFunctions::GetDirectoryName
+    } // end of method VersionFunctions::.ctor
 
-    // method line 204
+    // method line 148
     .method public static hidebysig 
-           default string GetExtension (string path)  cil managed 
+           default int32 GetMajor (class [mscorlib]System.Version version)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0D 67 65 74 2D 65 78 74 65 6E 73 69 6F 6E   // ...get-extension
-		00 00                                           ) // ..
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 6D 61 6A 6F 72 00 00 ) // ...get-major..
 
-        // Method begins at RVA 0x3df4
+        // Method begins at RVA 0x5894
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_0002:  callvirt instance int32 class [mscorlib]System.Version::get_Major()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PathFunctions::GetExtension
+    } // end of method VersionFunctions::GetMajor
 
-    // method line 205
+    // method line 149
     .method public static hidebysig 
-           default string GetFileName (string path)  cil managed 
+           default int32 GetMinor (class [mscorlib]System.Version version)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0D 67 65 74 2D 66 69 6C 65 2D 6E 61 6D 65   // ...get-file-name
-		00 00                                           ) // ..
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 6D 69 6E 6F 72 00 00 ) // ...get-minor..
 
-        // Method begins at RVA 0x3e10
+        // Method begins at RVA 0x58b0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_0002:  callvirt instance int32 class [mscorlib]System.Version::get_Minor()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PathFunctions::GetFileName
+    } // end of method VersionFunctions::GetMinor
 
-    // method line 206
+    // method line 150
     .method public static hidebysig 
-           default string GetFileNameWithoutExtension (string path)  cil managed 
+           default int32 GetBuild (class [mscorlib]System.Version version)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 1F 67 65 74 2D 66 69 6C 65 2D 6E 61 6D 65   // ...get-file-name
-		2D 77 69 74 68 6F 75 74 2D 65 78 74 65 6E 73 69   // -without-extensi
-		6F 6E 00 00                                     ) // on..
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 62 75 69 6C 64 00 00 ) // ...get-build..
 
-        // Method begins at RVA 0x3e2c
+        // Method begins at RVA 0x58cc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_0002:  callvirt instance int32 class [mscorlib]System.Version::get_Build()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PathFunctions::GetFileNameWithoutExtension
+    } // end of method VersionFunctions::GetBuild
 
-    // method line 207
+    // method line 151
     .method public static hidebysig 
-           default string GetPathRoot (string path)  cil managed 
+           default int32 GetRevision (class [mscorlib]System.Version version)  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0D 67 65 74 2D 70 61 74 68 2D 72 6F 6F 74   // ...get-path-root
-		00 00                                           ) // ..
+		01 00 0C 67 65 74 2D 72 65 76 69 73 69 6F 6E 00   // ...get-revision.
+		00                                              ) // .
 
-        // Method begins at RVA 0x3e48
-	// Code size 22 (0x16)
+        // Method begins at RVA 0x58e8
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0,
-		string	V_1)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call string class [mscorlib]System.IO.Path::GetPathRoot(string)
+	IL_0002:  callvirt instance int32 class [mscorlib]System.Version::get_Revision()
 	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
-	IL_000e:  stloc.1 
-	IL_000f:  br IL_0014
+	IL_0008:  br IL_000d
 
-	IL_0014:  ldloc.1 
-	IL_0015:  ret 
-    } // end of method PathFunctions::GetPathRoot
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VersionFunctions::GetRevision
 
-    // method line 208
-    .method public static hidebysig 
-           default string GetTempFileName ()  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 12 67 65 74 2D 74 65 6D 70 2D 66 69 6C 65   // ...get-temp-file
-		2D 6E 61 6D 65 00 00                            ) // -name..
+  } // end of class NAnt.Core.Functions.VersionFunctions
+}
 
-        // Method begins at RVA 0x3e6c
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  call string class [mscorlib]System.IO.Path::GetTempFileName()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit VersionConversionFunctions
+  	extends NAnt.Core.FunctionSetBase
+  {
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 07 76 65 72 73 69 6F 6E 0A 43 6F 6E 76 65   // ...version.Conve
+		72 73 69 6F 6E 00 00                            ) // rsion..
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method PathFunctions::GetTempFileName
 
-    // method line 209
-    .method public static hidebysig 
-           default string GetTempPath ()  cil managed 
+    // method line 152
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0D 67 65 74 2D 74 65 6D 70 2D 70 61 74 68   // ...get-temp-path
-		00 00                                           ) // ..
-
-        // Method begins at RVA 0x3e88
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  call string class [mscorlib]System.IO.Path::GetTempPath()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method PathFunctions::GetTempPath
+        // Method begins at RVA 0x5903
+	// Code size 10 (0xa)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method VersionConversionFunctions::.ctor
 
-    // method line 210
+    // method line 153
     .method public static hidebysig 
-           default bool HasExtension (string path)  cil managed 
+           default class [mscorlib]System.Version Parse (string version)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0D 68 61 73 2D 65 78 74 65 6E 73 69 6F 6E   // ...has-extension
-		00 00                                           ) // ..
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
 
-        // Method begins at RVA 0x3ea4
+        // Method begins at RVA 0x5910
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.Version	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call bool class [mscorlib]System.IO.Path::HasExtension(string)
+	IL_0002:  newobj instance void class [mscorlib]System.Version::'.ctor'(string)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PathFunctions::HasExtension
+    } // end of method VersionConversionFunctions::Parse
 
-    // method line 211
+    // method line 154
     .method public static hidebysig 
-           default bool IsPathRooted (string path)  cil managed 
+           default string ToString (class [mscorlib]System.Version 'value')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0E 69 73 2D 70 61 74 68 2D 72 6F 6F 74 65   // ...is-path-roote
-		64 00 00                                        ) // d..
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
 
-        // Method begins at RVA 0x3ec0
+        // Method begins at RVA 0x592c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_0002:  callvirt instance string object::ToString()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PathFunctions::IsPathRooted
+    } // end of method VersionConversionFunctions::ToString
 
-  } // end of class NAnt.Core.Functions.PathFunctions
+  } // end of class NAnt.Core.Functions.VersionConversionFunctions
 }
 
 .namespace NAnt.Core.Functions
 {
-  .class public auto ansi beforefieldinit PkgConfigFunctions
+  .class public auto ansi beforefieldinit FrameworkFunctions
   	extends NAnt.Core.FunctionSetBase
   {
     .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 0A 70 6B 67 2D 63 6F 6E 66 69 67 0B 55 6E   // ...pkg-config.Un
-		69 78 2F 43 79 67 77 69 6E 00 00                ) // ix/Cygwin..
+		01 00 09 66 72 61 6D 65 77 6F 72 6B 04 4E 41 6E   // ...framework.NAn
+		74 00 00                                        ) // t..
 
 
-    // method line 212
+    // method line 155
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x3edb
+        // Method begins at RVA 0x5947
 	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -5871,589 +7828,613 @@
 	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
 	IL_0008:  nop 
 	IL_0009:  ret 
-    } // end of method PkgConfigFunctions::.ctor
+    } // end of method FrameworkFunctions::.ctor
 
-    // method line 213
+    // method line 156
     .method public hidebysig 
-           instance default string GetVariable (string package, string name)  cil managed 
+           instance default bool Exists (string framework)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0C 67 65 74 2D 76 61 72 69 61 62 6C 65 00   // ...get-variable.
-		00                                              ) // .
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
 
-        // Method begins at RVA 0x3ee8
-	// Code size 94 (0x5e)
-	.maxstack 7
+        // Method begins at RVA 0x5954
+	// Code size 42 (0x2a)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		class NAnt.Core.FrameworkInfo	V_0,
+		bool	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionary::get_Item(string)
+	IL_0012:  stloc.0 
+	IL_0013:  ldloc.0 
+	IL_0014:  brfalse IL_0021
+
+	IL_0019:  ldloc.0 
+	IL_001a:  callvirt instance bool class NAnt.Core.FrameworkInfo::get_IsValid()
+	IL_001f:  br.s IL_0022
+
+	IL_0021:  ldc.i4.0 
+	IL_0022:  stloc.1 
+	IL_0023:  br IL_0028
+
+	IL_0028:  ldloc.1 
+	IL_0029:  ret 
+    } // end of method FrameworkFunctions::Exists
+
+    // method line 157
+    .method public hidebysig 
+           instance default bool SdkExists (string framework)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 73 64 6B 2D 65 78 69 73 74 73 00 00 ) // ...sdk-exists..
+
+        // Method begins at RVA 0x598c
+	// Code size 29 (0x1d)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.FrameworkInfo	V_0,
+		bool	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::Exists(string)
-	IL_0008:  brtrue IL_0029
+	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
+	IL_000f:  ldnull 
+	IL_0010:  ceq 
+	IL_0012:  ldc.i4.0 
+	IL_0013:  ceq 
+	IL_0015:  stloc.1 
+	IL_0016:  br IL_001b
 
-	IL_000d:  nop 
-	IL_000e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0013:  ldstr "NA1100"
-	IL_0018:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_001d:  ldarg.1 
-	IL_001e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0023:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0028:  throw 
-	IL_0029:  ldarg.0 
-	IL_002a:  ldc.i4.2 
-	IL_002b:  newarr NAnt.Core.Types.Argument
-	IL_0030:  dup 
-	IL_0031:  ldc.i4.0 
-	IL_0032:  ldstr "--variable=\""
-	IL_0037:  ldarg.2 
-	IL_0038:  ldstr "\""
-	IL_003d:  call string string::Concat(string, string, string)
-	IL_0042:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0047:  stelem.ref 
-	IL_0048:  dup 
-	IL_0049:  ldc.i4.1 
-	IL_004a:  ldarg.1 
-	IL_004b:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0050:  stelem.ref 
-	IL_0051:  call instance string class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigString(class NAnt.Core.Types.Argument[])
-	IL_0056:  stloc.0 
-	IL_0057:  br IL_005c
+	IL_001b:  ldloc.1 
+	IL_001c:  ret 
+    } // end of method FrameworkFunctions::SdkExists
 
-	IL_005c:  ldloc.0 
-	IL_005d:  ret 
-    } // end of method PkgConfigFunctions::GetVariable
+    // method line 158
+    .method public hidebysig 
+           instance default string GetTargetFramework ()  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 14 67 65 74 2D 74 61 72 67 65 74 2D 66 72   // ...get-target-fr
+		61 6D 65 77 6F 72 6B 00 00                      ) // amework..
 
-    // method line 214
+        // Method begins at RVA 0x59b8
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_000c:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FrameworkFunctions::GetTargetFramework
+
+    // method line 159
     .method public hidebysig 
-           instance default string GetLinkFlags (string package)  cil managed 
+           instance default string GetRuntimeFramework ()  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0E 67 65 74 2D 6C 69 6E 6B 2D 66 6C 61 67   // ...get-link-flag
-		73 00 00                                        ) // s..
+		01 00 15 67 65 74 2D 72 75 6E 74 69 6D 65 2D 66   // ...get-runtime-f
+		72 61 6D 65 77 6F 72 6B 00 00                   ) // ramework..
 
-        // Method begins at RVA 0x3f54
-	// Code size 83 (0x53)
-	.maxstack 5
+        // Method begins at RVA 0x59e0
+	// Code size 25 (0x19)
+	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
+	IL_000c:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FrameworkFunctions::GetRuntimeFramework
+
+    // method line 160
+    .method public hidebysig 
+           instance default string GetFamily (string framework)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 67 65 74 2D 66 61 6D 69 6C 79 00 00 ) // ...get-family..
+
+        // Method begins at RVA 0x5a08
+	// Code size 23 (0x17)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.FrameworkInfo	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::Exists(string)
-	IL_0008:  brtrue IL_0029
+	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Family()
+	IL_000f:  stloc.1 
+	IL_0010:  br IL_0015
 
-	IL_000d:  nop 
-	IL_000e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0013:  ldstr "NA1100"
-	IL_0018:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_001d:  ldarg.1 
-	IL_001e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0023:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0028:  throw 
-	IL_0029:  ldarg.0 
-	IL_002a:  ldc.i4.2 
-	IL_002b:  newarr NAnt.Core.Types.Argument
-	IL_0030:  dup 
-	IL_0031:  ldc.i4.0 
-	IL_0032:  ldstr "--libs"
-	IL_0037:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_003c:  stelem.ref 
-	IL_003d:  dup 
-	IL_003e:  ldc.i4.1 
-	IL_003f:  ldarg.1 
-	IL_0040:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0045:  stelem.ref 
-	IL_0046:  call instance string class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigString(class NAnt.Core.Types.Argument[])
-	IL_004b:  stloc.0 
-	IL_004c:  br IL_0051
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method FrameworkFunctions::GetFamily
 
-	IL_0051:  ldloc.0 
-	IL_0052:  ret 
-    } // end of method PkgConfigFunctions::GetLinkFlags
+    // method line 161
+    .method public hidebysig 
+           instance default class [mscorlib]System.Version GetVersion ()  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0B 67 65 74 2D 76 65 72 73 69 6F 6E 00 00 ) // ...get-version..
 
-    // method line 215
+        // Method begins at RVA 0x5a2c
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Version	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_000c:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_Version()
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FrameworkFunctions::GetVersion
+
+    // method line 162
     .method public hidebysig 
-           instance default string GetCompileFlags (string package)  cil managed 
+           instance default class [mscorlib]System.Version GetVersion (string framework)  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 11 67 65 74 2D 63 6F 6D 70 69 6C 65 2D 66   // ...get-compile-f
-		6C 61 67 73 00 00                               ) // lags..
+		01 00 0B 67 65 74 2D 76 65 72 73 69 6F 6E 00 00 ) // ...get-version..
 
-        // Method begins at RVA 0x3fb4
-	// Code size 83 (0x53)
-	.maxstack 5
+        // Method begins at RVA 0x5a54
+	// Code size 23 (0x17)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		class NAnt.Core.FrameworkInfo	V_0,
+		class [mscorlib]System.Version	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::Exists(string)
-	IL_0008:  brtrue IL_0029
-
-	IL_000d:  nop 
-	IL_000e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0013:  ldstr "NA1100"
-	IL_0018:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_001d:  ldarg.1 
-	IL_001e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0023:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0028:  throw 
-	IL_0029:  ldarg.0 
-	IL_002a:  ldc.i4.2 
-	IL_002b:  newarr NAnt.Core.Types.Argument
-	IL_0030:  dup 
-	IL_0031:  ldc.i4.0 
-	IL_0032:  ldstr "--cflags"
-	IL_0037:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_003c:  stelem.ref 
-	IL_003d:  dup 
-	IL_003e:  ldc.i4.1 
-	IL_003f:  ldarg.1 
-	IL_0040:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0045:  stelem.ref 
-	IL_0046:  call instance string class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigString(class NAnt.Core.Types.Argument[])
-	IL_004b:  stloc.0 
-	IL_004c:  br IL_0051
+	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_Version()
+	IL_000f:  stloc.1 
+	IL_0010:  br IL_0015
 
-	IL_0051:  ldloc.0 
-	IL_0052:  ret 
-    } // end of method PkgConfigFunctions::GetCompileFlags
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method FrameworkFunctions::GetVersion
 
-    // method line 216
+    // method line 163
     .method public hidebysig 
-           instance default string GetModVersion (string package)  cil managed 
+           instance default string GetDescription ()  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0F 67 65 74 2D 6D 6F 64 2D 76 65 72 73 69   // ...get-mod-versi
+		01 00 0F 67 65 74 2D 64 65 73 63 72 69 70 74 69   // ...get-descripti
 		6F 6E 00 00                                     ) // on..
 
-        // Method begins at RVA 0x4014
-	// Code size 83 (0x53)
-	.maxstack 5
+        // Method begins at RVA 0x5a78
+	// Code size 25 (0x19)
+	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::Exists(string)
-	IL_0008:  brtrue IL_0029
-
-	IL_000d:  nop 
-	IL_000e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0013:  ldstr "NA1100"
-	IL_0018:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_001d:  ldarg.1 
-	IL_001e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0023:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0028:  throw 
-	IL_0029:  ldarg.0 
-	IL_002a:  ldc.i4.2 
-	IL_002b:  newarr NAnt.Core.Types.Argument
-	IL_0030:  dup 
-	IL_0031:  ldc.i4.0 
-	IL_0032:  ldstr "--modversion"
-	IL_0037:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_003c:  stelem.ref 
-	IL_003d:  dup 
-	IL_003e:  ldc.i4.1 
-	IL_003f:  ldarg.1 
-	IL_0040:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0045:  stelem.ref 
-	IL_0046:  call instance string class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigString(class NAnt.Core.Types.Argument[])
-	IL_004b:  stloc.0 
-	IL_004c:  br IL_0051
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_000c:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Description()
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_0051:  ldloc.0 
-	IL_0052:  ret 
-    } // end of method PkgConfigFunctions::GetModVersion
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FrameworkFunctions::GetDescription
 
-    // method line 217
+    // method line 164
     .method public hidebysig 
-           instance default bool IsAtLeastVersion (string package, string version)  cil managed 
+           instance default string GetDescription (string framework)  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 12 69 73 2D 61 74 6C 65 61 73 74 2D 76 65   // ...is-atleast-ve
-		72 73 69 6F 6E 00 00                            ) // rsion..
+		01 00 0F 67 65 74 2D 64 65 73 63 72 69 70 74 69   // ...get-descripti
+		6F 6E 00 00                                     ) // on..
 
-        // Method begins at RVA 0x4074
-	// Code size 54 (0x36)
-	.maxstack 7
+        // Method begins at RVA 0x5aa0
+	// Code size 23 (0x17)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.FrameworkInfo	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.2 
-	IL_0003:  newarr NAnt.Core.Types.Argument
-	IL_0008:  dup 
-	IL_0009:  ldc.i4.0 
-	IL_000a:  ldstr "--atleast-version=\""
-	IL_000f:  ldarg.2 
-	IL_0010:  ldstr "\""
-	IL_0015:  call string string::Concat(string, string, string)
-	IL_001a:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_001f:  stelem.ref 
-	IL_0020:  dup 
-	IL_0021:  ldc.i4.1 
-	IL_0022:  ldarg.1 
-	IL_0023:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0028:  stelem.ref 
-	IL_0029:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigBool(class NAnt.Core.Types.Argument[])
-	IL_002e:  stloc.0 
-	IL_002f:  br IL_0034
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Description()
+	IL_000f:  stloc.1 
+	IL_0010:  br IL_0015
 
-	IL_0034:  ldloc.0 
-	IL_0035:  ret 
-    } // end of method PkgConfigFunctions::IsAtLeastVersion
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method FrameworkFunctions::GetDescription
 
-    // method line 218
+    // method line 165
     .method public hidebysig 
-           instance default bool IsExactVersion (string package, string version)  cil managed 
+           instance default class [mscorlib]System.Version GetClrVersion ()  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 10 69 73 2D 65 78 61 63 74 2D 76 65 72 73   // ...is-exact-vers
-		69 6F 6E 00 00                                  ) // ion..
+		01 00 0F 67 65 74 2D 63 6C 72 2D 76 65 72 73 69   // ...get-clr-versi
+		6F 6E 00 00                                     ) // on..
 
-        // Method begins at RVA 0x40b8
-	// Code size 54 (0x36)
-	.maxstack 7
+        // Method begins at RVA 0x5ac4
+	// Code size 25 (0x19)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.Version	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.2 
-	IL_0003:  newarr NAnt.Core.Types.Argument
-	IL_0008:  dup 
-	IL_0009:  ldc.i4.0 
-	IL_000a:  ldstr "--exact-version=\""
-	IL_000f:  ldarg.2 
-	IL_0010:  ldstr "\""
-	IL_0015:  call string string::Concat(string, string, string)
-	IL_001a:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_001f:  stelem.ref 
-	IL_0020:  dup 
-	IL_0021:  ldc.i4.1 
-	IL_0022:  ldarg.1 
-	IL_0023:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0028:  stelem.ref 
-	IL_0029:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigBool(class NAnt.Core.Types.Argument[])
-	IL_002e:  stloc.0 
-	IL_002f:  br IL_0034
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_000c:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_0034:  ldloc.0 
-	IL_0035:  ret 
-    } // end of method PkgConfigFunctions::IsExactVersion
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FrameworkFunctions::GetClrVersion
 
-    // method line 219
+    // method line 166
     .method public hidebysig 
-           instance default bool IsMaxVersion (string package, string version)  cil managed 
+           instance default class [mscorlib]System.Version GetClrVersion (string framework)  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0E 69 73 2D 6D 61 78 2D 76 65 72 73 69 6F   // ...is-max-versio
-		6E 00 00                                        ) // n..
+		01 00 0F 67 65 74 2D 63 6C 72 2D 76 65 72 73 69   // ...get-clr-versi
+		6F 6E 00 00                                     ) // on..
 
-        // Method begins at RVA 0x40fc
-	// Code size 54 (0x36)
-	.maxstack 7
+        // Method begins at RVA 0x5aec
+	// Code size 23 (0x17)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.FrameworkInfo	V_0,
+		class [mscorlib]System.Version	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.2 
-	IL_0003:  newarr NAnt.Core.Types.Argument
-	IL_0008:  dup 
-	IL_0009:  ldc.i4.0 
-	IL_000a:  ldstr "--max-version=\""
-	IL_000f:  ldarg.2 
-	IL_0010:  ldstr "\""
-	IL_0015:  call string string::Concat(string, string, string)
-	IL_001a:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_001f:  stelem.ref 
-	IL_0020:  dup 
-	IL_0021:  ldc.i4.1 
-	IL_0022:  ldarg.1 
-	IL_0023:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0028:  stelem.ref 
-	IL_0029:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigBool(class NAnt.Core.Types.Argument[])
-	IL_002e:  stloc.0 
-	IL_002f:  br IL_0034
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
+	IL_000f:  stloc.1 
+	IL_0010:  br IL_0015
 
-	IL_0034:  ldloc.0 
-	IL_0035:  ret 
-    } // end of method PkgConfigFunctions::IsMaxVersion
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method FrameworkFunctions::GetClrVersion
 
-    // method line 220
+    // method line 167
     .method public hidebysig 
-           instance default bool IsBetweenVersion (string package, string minVersion, string maxVersion)  cil managed 
+           instance default string GetFrameworkDirectory (string framework)  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 12 69 73 2D 62 65 74 77 65 65 6E 2D 76 65   // ...is-between-ve
-		72 73 69 6F 6E 00 00                            ) // rsion..
+		01 00 17 67 65 74 2D 66 72 61 6D 65 77 6F 72 6B   // ...get-framework
+		2D 64 69 72 65 63 74 6F 72 79 00 00             ) // -directory..
 
-        // Method begins at RVA 0x4140
-	// Code size 78 (0x4e)
-	.maxstack 7
+        // Method begins at RVA 0x5b10
+	// Code size 28 (0x1c)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.FrameworkInfo	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.3 
-	IL_0003:  newarr NAnt.Core.Types.Argument
-	IL_0008:  dup 
-	IL_0009:  ldc.i4.0 
-	IL_000a:  ldstr "--atleast-version=\""
-	IL_000f:  ldarg.2 
-	IL_0010:  ldstr "\""
-	IL_0015:  call string string::Concat(string, string, string)
-	IL_001a:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_001f:  stelem.ref 
-	IL_0020:  dup 
-	IL_0021:  ldc.i4.1 
-	IL_0022:  ldstr "--max-version=\""
-	IL_0027:  ldarg.3 
-	IL_0028:  ldstr "\""
-	IL_002d:  call string string::Concat(string, string, string)
-	IL_0032:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0037:  stelem.ref 
-	IL_0038:  dup 
-	IL_0039:  ldc.i4.2 
-	IL_003a:  ldarg.1 
-	IL_003b:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0040:  stelem.ref 
-	IL_0041:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigBool(class NAnt.Core.Types.Argument[])
-	IL_0046:  stloc.0 
-	IL_0047:  br IL_004c
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
+	IL_000f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0014:  stloc.1 
+	IL_0015:  br IL_001a
 
-	IL_004c:  ldloc.0 
-	IL_004d:  ret 
-    } // end of method PkgConfigFunctions::IsBetweenVersion
+	IL_001a:  ldloc.1 
+	IL_001b:  ret 
+    } // end of method FrameworkFunctions::GetFrameworkDirectory
 
-    // method line 221
+    // method line 168
     .method public hidebysig 
-           instance default bool Exists (string package)  cil managed 
+           instance default string GetAssemblyDirectory (string framework)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 16 67 65 74 2D 61 73 73 65 6D 62 6C 79 2D   // ...get-assembly-
+		64 69 72 65 63 74 6F 72 79 00 00                ) // directory..
 
-        // Method begins at RVA 0x419c
-	// Code size 43 (0x2b)
-	.maxstack 5
+        // Method begins at RVA 0x5b38
+	// Code size 28 (0x1c)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.FrameworkInfo	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.2 
-	IL_0003:  newarr NAnt.Core.Types.Argument
-	IL_0008:  dup 
-	IL_0009:  ldc.i4.0 
-	IL_000a:  ldstr "--exists"
-	IL_000f:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0014:  stelem.ref 
-	IL_0015:  dup 
-	IL_0016:  ldc.i4.1 
-	IL_0017:  ldarg.1 
-	IL_0018:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_001d:  stelem.ref 
-	IL_001e:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigBool(class NAnt.Core.Types.Argument[])
-	IL_0023:  stloc.0 
-	IL_0024:  br IL_0029
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory()
+	IL_000f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0014:  stloc.1 
+	IL_0015:  br IL_001a
 
-	IL_0029:  ldloc.0 
-	IL_002a:  ret 
-    } // end of method PkgConfigFunctions::Exists
+	IL_001a:  ldloc.1 
+	IL_001b:  ret 
+    } // end of method FrameworkFunctions::GetAssemblyDirectory
 
-    // method line 222
-    .method private hidebysig 
-           instance default bool RunPkgConfigBool (class NAnt.Core.Types.Argument[] args)  cil managed 
+    // method line 169
+    .method public hidebysig 
+           instance default string GetSdkDirectory (string framework)  cil managed 
     {
-        // Method begins at RVA 0x41d4
-	// Code size 71 (0x47)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 11 67 65 74 2D 73 64 6B 2D 64 69 72 65 63   // ...get-sdk-direc
+		74 6F 72 79 00 00                               ) // tory..
+
+        // Method begins at RVA 0x5b60
+	// Code size 46 (0x2e)
 	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.MemoryStream	V_0,
-		class NAnt.Core.Tasks.ExecTask	V_1,
-		bool	V_2)
+		class NAnt.Core.FrameworkInfo	V_0,
+		class [mscorlib]System.IO.DirectoryInfo	V_1,
+		string	V_2)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  call instance class NAnt.Core.Tasks.ExecTask class NAnt.Core.Functions.PkgConfigFunctions::GetTask(class [mscorlib]System.IO.Stream)
-	IL_000e:  stloc.1 
-	IL_000f:  ldloc.1 
-	IL_0010:  callvirt instance class NAnt.Core.Types.ArgumentCollection class NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_0015:  ldarg.1 
-	IL_0016:  callvirt instance void class NAnt.Core.Types.ArgumentCollection::AddRange(class NAnt.Core.Types.Argument[])
-	.try { // 0
-	  IL_001b:  nop 
-	  IL_001c:  ldloc.1 
-	  IL_001d:  callvirt instance void class NAnt.Core.Task::Execute()
-	  IL_0022:  ldc.i4.1 
-	  IL_0023:  stloc.2 
-	  IL_0024:  leave IL_0045
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
+	IL_000f:  stloc.1 
+	IL_0010:  ldloc.1 
+	IL_0011:  brfalse IL_0021
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0029:  pop 
-	  IL_002a:  nop 
-	  IL_002b:  ldloc.1 
-	  IL_002c:  callvirt instance int32 class NAnt.Core.Tasks.ExternalProgramBase::get_ExitCode()
-	  IL_0031:  ldc.i4 -1000
-	  IL_0036:  bne.un IL_003e
+	IL_0016:  ldloc.1 
+	IL_0017:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001c:  br IL_0026
 
-	  IL_003b:  nop 
-	  IL_003c:  rethrow 
-	  IL_003e:  ldc.i4.0 
-	  IL_003f:  stloc.2 
-	  IL_0040:  leave IL_0045
+	IL_0021:  ldsfld string [mscorlib]System.String::Empty
+	IL_0026:  stloc.2 
+	IL_0027:  br IL_002c
 
-	} // end handler 0
-	IL_0045:  ldloc.2 
-	IL_0046:  ret 
-    } // end of method PkgConfigFunctions::RunPkgConfigBool
+	IL_002c:  ldloc.2 
+	IL_002d:  ret 
+    } // end of method FrameworkFunctions::GetSdkDirectory
 
-    // method line 223
-    .method private hidebysig 
-           instance default string RunPkgConfigString (class NAnt.Core.Types.Argument[] args)  cil managed 
+    // method line 170
+    .method public hidebysig 
+           instance default string GetToolPath (string tool)  cil managed 
     {
-        // Method begins at RVA 0x4238
-	// Code size 134 (0x86)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0D 67 65 74 2D 74 6F 6F 6C 2D 70 61 74 68   // ...get-tool-path
+		00 00                                           ) // ..
+
+        // Method begins at RVA 0x5b9c
+	// Code size 57 (0x39)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance string class NAnt.Core.FrameworkInfo::GetToolPath(string)
+	IL_0012:  stloc.0 
+	IL_0013:  ldloc.0 
+	IL_0014:  brtrue IL_0030
+
+	IL_0019:  nop 
+	IL_001a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001f:  ldstr "\"{0}\" could not be found in any of the configured tool paths."
+	IL_0024:  ldarg.1 
+	IL_0025:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002a:  newobj instance void class [mscorlib]System.IO.FileNotFoundException::'.ctor'(string)
+	IL_002f:  throw 
+	IL_0030:  ldloc.0 
+	IL_0031:  stloc.1 
+	IL_0032:  br IL_0037
+
+	IL_0037:  ldloc.1 
+	IL_0038:  ret 
+    } // end of method FrameworkFunctions::GetToolPath
+
+    // method line 171
+    .method public hidebysig 
+           instance default string GetRuntimeEngine (string framework)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 12 67 65 74 2D 72 75 6E 74 69 6D 65 2D 65   // ...get-runtime-e
+		6E 67 69 6E 65 00 00                            ) // ngine..
+
+        // Method begins at RVA 0x5be4
+	// Code size 23 (0x17)
 	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.MemoryStream	V_0,
-		class NAnt.Core.Tasks.ExecTask	V_1,
-		class [mscorlib]System.IO.StreamReader	V_2,
-		string	V_3,
-		string	V_4,
-		class [mscorlib]System.Exception	V_5,
-		class [mscorlib]System.IO.StreamReader	V_6,
-		string	V_7)
+		class NAnt.Core.FrameworkInfo	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  call instance class NAnt.Core.Tasks.ExecTask class NAnt.Core.Functions.PkgConfigFunctions::GetTask(class [mscorlib]System.IO.Stream)
-	IL_000e:  stloc.1 
-	IL_000f:  ldloc.1 
-	IL_0010:  callvirt instance class NAnt.Core.Types.ArgumentCollection class NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_0015:  ldarg.1 
-	IL_0016:  callvirt instance void class NAnt.Core.Types.ArgumentCollection::AddRange(class NAnt.Core.Types.Argument[])
-	.try { // 0
-	  IL_001b:  nop 
-	  IL_001c:  ldloc.1 
-	  IL_001d:  callvirt instance void class NAnt.Core.Task::Execute()
-	  IL_0022:  ldloc.0 
-	  IL_0023:  ldc.i4.0 
-	  IL_0024:  conv.i8 
-	  IL_0025:  callvirt instance void class [mscorlib]System.IO.Stream::set_Position(int64)
-	  IL_002a:  ldloc.0 
-	  IL_002b:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(class [mscorlib]System.IO.Stream)
-	  IL_0030:  stloc.2 
-	  IL_0031:  ldloc.2 
-	  IL_0032:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	  IL_0037:  stloc.3 
-	  IL_0038:  ldloc.2 
-	  IL_0039:  callvirt instance void class [mscorlib]System.IO.TextReader::Close()
-	  IL_003e:  ldloc.3 
-	  IL_003f:  stloc.s 4
-	  IL_0041:  leave IL_0083
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Functions.FrameworkFunctions::GetFramework(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  callvirt instance string class NAnt.Core.FrameworkInfo::get_RuntimeEngine()
+	IL_000f:  stloc.1 
+	IL_0010:  br IL_0015
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0046:  stloc.s 5
-	  IL_0048:  nop 
-	  IL_0049:  ldloc.0 
-	  IL_004a:  ldc.i4.0 
-	  IL_004b:  conv.i8 
-	  IL_004c:  callvirt instance void class [mscorlib]System.IO.Stream::set_Position(int64)
-	  IL_0051:  ldloc.0 
-	  IL_0052:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(class [mscorlib]System.IO.Stream)
-	  IL_0057:  stloc.s 6
-	  IL_0059:  ldloc.s 6
-	  IL_005b:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
-	  IL_0060:  stloc.s 7
-	  IL_0062:  ldloc.s 6
-	  IL_0064:  callvirt instance void class [mscorlib]System.IO.TextReader::Close()
-	  IL_0069:  ldloc.s 7
-	  IL_006b:  callvirt instance int32 string::get_Length()
-	  IL_0070:  brfalse IL_0080
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method FrameworkFunctions::GetRuntimeEngine
 
-	  IL_0075:  nop 
-	  IL_0076:  ldloc.s 7
-	  IL_0078:  ldloc.s 5
-	  IL_007a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class [mscorlib]System.Exception)
-	  IL_007f:  throw 
-	  IL_0080:  nop 
-	  IL_0081:  rethrow 
-	} // end handler 0
-	IL_0083:  ldloc.s 4
-	IL_0085:  ret 
-    } // end of method PkgConfigFunctions::RunPkgConfigString
+    // method line 172
+    .method public hidebysig 
+           instance default string GetFrameworks (valuetype NAnt.Core.FrameworkTypes types)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0E 67 65 74 2D 66 72 61 6D 65 77 6F 72 6B   // ...get-framework
+		73 00 00                                        ) // s..
 
-    // method line 224
+        // Method begins at RVA 0x5c08
+	// Code size 109 (0x6d)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.FrameworkInfo[]	V_0,
+		string	V_1,
+		class [mscorlib]System.Text.StringBuilder	V_2,
+		int32	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.Core.FrameworkInfo[] class NAnt.Core.Project::GetFrameworks(valuetype NAnt.Core.FrameworkTypes)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  ldlen 
+	IL_0010:  conv.i4 
+	IL_0011:  brtrue IL_0021
+
+	IL_0016:  ldsfld string [mscorlib]System.String::Empty
+	IL_001b:  stloc.1 
+	IL_001c:  br IL_006b
+
+	IL_0021:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0026:  stloc.2 
+	IL_0027:  ldc.i4.0 
+	IL_0028:  stloc.3 
+	IL_0029:  br IL_0056
+
+	IL_002e:  nop 
+	IL_002f:  ldloc.3 
+	IL_0030:  ldc.i4.0 
+	IL_0031:  ble IL_0042
+
+	IL_0036:  ldloc.2 
+	IL_0037:  ldstr ","
+	IL_003c:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0041:  pop 
+	IL_0042:  ldloc.2 
+	IL_0043:  ldloc.0 
+	IL_0044:  ldloc.3 
+	IL_0045:  ldelem.ref 
+	IL_0046:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	IL_004b:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0050:  pop 
+	IL_0051:  nop 
+	IL_0052:  ldloc.3 
+	IL_0053:  ldc.i4.1 
+	IL_0054:  add 
+	IL_0055:  stloc.3 
+	IL_0056:  ldloc.3 
+	IL_0057:  ldloc.0 
+	IL_0058:  ldlen 
+	IL_0059:  conv.i4 
+	IL_005a:  blt IL_002e
+
+	IL_005f:  ldloc.2 
+	IL_0060:  callvirt instance string object::ToString()
+	IL_0065:  stloc.1 
+	IL_0066:  br IL_006b
+
+	IL_006b:  ldloc.1 
+	IL_006c:  ret 
+    } // end of method FrameworkFunctions::GetFrameworks
+
+    // method line 173
     .method private hidebysig 
-           instance default class NAnt.Core.Tasks.ExecTask GetTask (class [mscorlib]System.IO.Stream 'stream')  cil managed 
+           instance default class NAnt.Core.FrameworkInfo GetFramework (string framework)  cil managed 
     {
-        // Method begins at RVA 0x42dc
-	// Code size 83 (0x53)
+        // Method begins at RVA 0x5c84
+	// Code size 114 (0x72)
 	.maxstack 3
 	.locals init (
-		class NAnt.Core.Tasks.ExecTask	V_0,
-		class [mscorlib]System.IO.TextWriter	V_1,
-		class NAnt.Core.Tasks.ExecTask	V_2)
+		class NAnt.Core.FrameworkInfo	V_0,
+		class NAnt.Core.FrameworkInfo	V_1)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.Tasks.ExecTask::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_000e:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_0013:  ldloc.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
-	IL_001a:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_001f:  ldloc.0 
-	IL_0020:  ldstr "pkg-config"
-	IL_0025:  callvirt instance void class NAnt.Core.Tasks.ExecTask::set_FileName(string)
-	IL_002a:  ldloc.0 
-	IL_002b:  ldc.i4 9999
-	IL_0030:  callvirt instance void class NAnt.Core.Task::set_Threshold(valuetype NAnt.Core.Level)
-	IL_0035:  ldloc.0 
-	IL_0036:  ldarg.1 
-	IL_0037:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(class [mscorlib]System.IO.Stream)
-	IL_003c:  stloc.1 
-	IL_003d:  ldloc.0 
-	IL_003e:  ldloc.1 
-	IL_003f:  callvirt instance void class NAnt.Core.Tasks.ExternalProgramBase::set_OutputWriter(class [mscorlib]System.IO.TextWriter)
-	IL_0044:  ldloc.1 
-	IL_0045:  callvirt instance void class NAnt.Core.Tasks.ExternalProgramBase::set_ErrorWriter(class [mscorlib]System.IO.TextWriter)
-	IL_004a:  ldloc.0 
-	IL_004b:  stloc.2 
-	IL_004c:  br IL_0051
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.0 
+	IL_0003:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0008:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_000d:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	IL_0012:  call bool string::op_Equality(string, string)
+	IL_0017:  brfalse IL_002e
 
-	IL_0051:  ldloc.2 
-	IL_0052:  ret 
-    } // end of method PkgConfigFunctions::GetTask
+	IL_001c:  nop 
+	IL_001d:  ldarg.0 
+	IL_001e:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0023:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_0028:  stloc.0 
+	IL_0029:  br IL_0070
 
-  } // end of class NAnt.Core.Functions.PkgConfigFunctions
+	IL_002e:  ldarg.0 
+	IL_002f:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0034:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
+	IL_0039:  ldarg.1 
+	IL_003a:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionary::get_Item(string)
+	IL_003f:  stloc.1 
+	IL_0040:  ldloc.1 
+	IL_0041:  brtrue IL_0062
+
+	IL_0046:  nop 
+	IL_0047:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_004c:  ldstr "NA1096"
+	IL_0051:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0056:  ldarg.1 
+	IL_0057:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_005c:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0061:  throw 
+	IL_0062:  nop 
+	IL_0063:  ldloc.1 
+	IL_0064:  callvirt instance void class NAnt.Core.FrameworkInfo::Validate()
+	IL_0069:  ldloc.1 
+	IL_006a:  stloc.0 
+	IL_006b:  br IL_0070
+
+	IL_0070:  ldloc.0 
+	IL_0071:  ret 
+    } // end of method FrameworkFunctions::GetFramework
+
+  } // end of class NAnt.Core.Functions.FrameworkFunctions
 }
 
 .namespace NAnt.Core.Functions
 {
-  .class public auto ansi beforefieldinit OperatingSystemFunctions
+  .class public auto ansi beforefieldinit AssemblyNameFunctions
   	extends NAnt.Core.FunctionSetBase
   {
     .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 10 6F 70 65 72 61 74 69 6E 67 2D 73 79 73   // ...operating-sys
-		74 65 6D 10 4F 70 65 72 61 74 69 6E 67 20 53 79   // tem.Operating Sy
-		73 74 65 6D 00 00                               ) // stem..
+		01 00 0C 61 73 73 65 6D 62 6C 79 6E 61 6D 65 08   // ...assemblyname.
+		41 73 73 65 6D 62 6C 79 00 00                   ) // Assembly..
 
 
-    // method line 225
+    // method line 174
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x433b
+        // Method begins at RVA 0x5d02
 	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -6462,75 +8443,147 @@
 	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
 	IL_0008:  nop 
 	IL_0009:  ret 
-    } // end of method OperatingSystemFunctions::.ctor
+    } // end of method AssemblyNameFunctions::.ctor
 
-    // method line 226
+    // method line 175
     .method public static hidebysig 
-           default valuetype [mscorlib]System.PlatformID GetPlatform (class [mscorlib]System.OperatingSystem operatingSystem)  cil managed 
+           default string GetCodeBase (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0C 67 65 74 2D 70 6C 61 74 66 6F 72 6D 00   // ...get-platform.
+		01 00 0C 67 65 74 2D 63 6F 64 65 62 61 73 65 00   // ...get-codebase.
 		00                                              ) // .
 
-        // Method begins at RVA 0x4348
+        // Method begins at RVA 0x5d10
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.PlatformID	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
+	IL_0002:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_CodeBase()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method OperatingSystemFunctions::GetPlatform
+    } // end of method AssemblyNameFunctions::GetCodeBase
 
-    // method line 227
+    // method line 176
     .method public static hidebysig 
-           default class [mscorlib]System.Version GetVersion (class [mscorlib]System.OperatingSystem operatingSystem)  cil managed 
+           default string GetEscapedCodeBase (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
-		01 00 0B 67 65 74 2D 76 65 72 73 69 6F 6E 00 00 ) // ...get-version..
+		01 00 14 67 65 74 2D 65 73 63 61 70 65 64 2D 63   // ...get-escaped-c
+		6F 64 65 62 61 73 65 00 00                      ) // odebase..
 
-        // Method begins at RVA 0x4364
+        // Method begins at RVA 0x5d2c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Version	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.OperatingSystem::get_Version()
+	IL_0002:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_EscapedCodeBase()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method OperatingSystemFunctions::GetVersion
+    } // end of method AssemblyNameFunctions::GetEscapedCodeBase
 
-    // method line 228
+    // method line 177
     .method public static hidebysig 
-           default string ToString (class [mscorlib]System.OperatingSystem operatingSystem)  cil managed 
+           default string GetFullName (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0D 67 65 74 2D 66 75 6C 6C 2D 6E 61 6D 65   // ...get-full-name
+		00 00                                           ) // ..
 
-        // Method begins at RVA 0x4380
+        // Method begins at RVA 0x5d48
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string object::ToString()
+	IL_0002:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_FullName()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method OperatingSystemFunctions::ToString
+    } // end of method AssemblyNameFunctions::GetFullName
 
-  } // end of class NAnt.Core.Functions.OperatingSystemFunctions
+    // method line 178
+    .method public static hidebysig 
+           default string GetName (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 6E 61 6D 65 00 00 ) // ...get-name..
+
+        // Method begins at RVA 0x5d64
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AssemblyNameFunctions::GetName
+
+    // method line 179
+    .method public static hidebysig 
+           default class [mscorlib]System.Version GetVersion (class [mscorlib]System.Reflection.AssemblyName assemblyName)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0B 67 65 74 2D 76 65 72 73 69 6F 6E 00 00 ) // ...get-version..
+
+        // Method begins at RVA 0x5d80
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Version	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AssemblyNameFunctions::GetVersion
+
+    // method line 180
+    .method public hidebysig 
+           instance default class [mscorlib]System.Reflection.AssemblyName GetAssemblyName (string assemblyFile)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 11 67 65 74 2D 61 73 73 65 6D 62 6C 79 2D   // ...get-assembly-
+		6E 61 6D 65 00 00                               ) // name..
+
+        // Method begins at RVA 0x5d9c
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Reflection.AssemblyName	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	IL_000d:  call class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.AssemblyName::GetAssemblyName(string)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method AssemblyNameFunctions::GetAssemblyName
+
+  } // end of class NAnt.Core.Functions.AssemblyNameFunctions
 }
 
 .namespace NAnt.Core.Functions
@@ -6541,11 +8594,11 @@
     .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (01 00 04 6D 61 74 68 04 4D 61 74 68 00 00 ) // ...math.Math..
 
 
-    // method line 229
+    // method line 181
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x439b
+        // Method begins at RVA 0x5dc2
 	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -6556,13 +8609,13 @@
 	IL_0009:  ret 
     } // end of method MathFunctions::.ctor
 
-    // method line 230
+    // method line 182
     .method public static hidebysig 
            default float64 Round (float64 'value')  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 72 6F 75 6E 64 00 00 ) // ...round..
 
-        // Method begins at RVA 0x43a8
+        // Method begins at RVA 0x5dd0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -6577,13 +8630,13 @@
 	IL_000e:  ret 
     } // end of method MathFunctions::Round
 
-    // method line 231
+    // method line 183
     .method public static hidebysig 
            default float64 Floor (float64 'value')  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 66 6C 6F 6F 72 00 00 ) // ...floor..
 
-        // Method begins at RVA 0x43c4
+        // Method begins at RVA 0x5dec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -6598,13 +8651,13 @@
 	IL_000e:  ret 
     } // end of method MathFunctions::Floor
 
-    // method line 232
+    // method line 184
     .method public static hidebysig 
            default float64 Ceiling (float64 'value')  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 07 63 65 69 6C 69 6E 67 00 00 ) // ...ceiling..
 
-        // Method begins at RVA 0x43e0
+        // Method begins at RVA 0x5e08
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -6619,13 +8672,13 @@
 	IL_000e:  ret 
     } // end of method MathFunctions::Ceiling
 
-    // method line 233
+    // method line 185
     .method public static hidebysig 
            default float64 Abs (float64 'value')  cil managed 
     {
         .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 03 61 62 73 00 00 ) // ...abs..
 
-        // Method begins at RVA 0x43fc
+        // Method begins at RVA 0x5e24
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -6643,8881 +8696,6934 @@
   } // end of class NAnt.Core.Functions.MathFunctions
 }
 
-.namespace NAnt.Core.Configuration
+.namespace NAnt.Core.Functions
 {
-  .class private auto ansi serializable beforefieldinit ConditionalElement
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit OperatingSystemFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 10 6F 70 65 72 61 74 69 6E 67 2D 73 79 73   // ...operating-sys
+		74 65 6D 10 4F 70 65 72 61 74 69 6E 67 20 53 79   // tem.Operating Sy
+		73 74 65 6D 00 00                               ) // stem..
 
-    // method line 234
+
+    // method line 186
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x6cec
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x5e3f
+	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Configuration.ConditionalElement::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  ret 
-    } // end of method ConditionalElement::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method OperatingSystemFunctions::.ctor
 
-    // method line 235
-    .method family virtual hidebysig 
-           instance default void InitializeXml (class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo framework)  cil managed 
+    // method line 187
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.PlatformID GetPlatform (class [mscorlib]System.OperatingSystem operatingSystem)  cil managed 
     {
-        // Method begins at RVA 0x6cfc
-	// Code size 25 (0x19)
-	.maxstack 4
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0C 67 65 74 2D 70 6C 61 74 66 6F 72 6D 00   // ...get-platform.
+		00                                              ) // .
+
+        // Method begins at RVA 0x5e4c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator	V_0)
+		valuetype [mscorlib]System.PlatformID	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance void class NAnt.Core.Element::set_XmlNode(class [System.Xml]System.Xml.XmlNode)
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  ldarg.2 
-	IL_000b:  ldarg.3 
-	IL_000c:  newobj instance void class NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator::'.ctor'(class NAnt.Core.Configuration.ConditionalElement, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
-	IL_0011:  stloc.0 
-	IL_0012:  ldloc.0 
-	IL_0013:  callvirt instance void class NAnt.Core.Element/AttributeConfigurator::Initialize()
-	IL_0018:  ret 
-    } // end of method ConditionalElement::InitializeXml
+	IL_0002:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 236
-    .method family hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method OperatingSystemFunctions::GetPlatform
+
+    // method line 188
+    .method public static hidebysig 
+           default class [mscorlib]System.Version GetVersion (class [mscorlib]System.OperatingSystem operatingSystem)  cil managed 
     {
-        // Method begins at RVA 0x6d24
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0B 67 65 74 2D 76 65 72 73 69 6F 6E 00 00 ) // ...get-version..
+
+        // Method begins at RVA 0x5e68
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.Version	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Configuration.ConditionalElement::_ifDefined
+	IL_0002:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.OperatingSystem::get_Version()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ConditionalElement::get_IfDefined
+    } // end of method OperatingSystemFunctions::GetVersion
 
-    // method line 237
-    .method family hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 189
+    .method public static hidebysig 
+           default string ToString (class [mscorlib]System.OperatingSystem operatingSystem)  cil managed 
     {
-        // Method begins at RVA 0x6d3f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Configuration.ConditionalElement::_ifDefined
-	IL_0008:  ret 
-    } // end of method ConditionalElement::set_IfDefined
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
 
-    // method line 238
-    .method family hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x6d4c
+        // Method begins at RVA 0x5e84
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Configuration.ConditionalElement::_unlessDefined
+	IL_0002:  callvirt instance string object::ToString()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ConditionalElement::get_UnlessDefined
+    } // end of method OperatingSystemFunctions::ToString
 
-    // method line 239
-    .method family hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+  } // end of class NAnt.Core.Functions.OperatingSystemFunctions
+}
+
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit ConversionFunctions
+  	extends NAnt.Core.FunctionSetBase
+  {
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 07 63 6F 6E 76 65 72 74 0A 43 6F 6E 76 65   // ...convert.Conve
+		72 73 69 6F 6E 00 00                            ) // rsion..
+
+
+    // method line 190
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary propDict)  cil managed 
     {
-        // Method begins at RVA 0x6d67
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x5e9f
+	// Code size 10 (0xa)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Configuration.ConditionalElement::_unlessDefined
-	IL_0008:  ret 
-    } // end of method ConditionalElement::set_UnlessDefined
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method ConversionFunctions::.ctor
 
-    // method line 240
-    .method assembly hidebysig specialname 
-           instance default bool get_Enabled ()  cil managed 
+    // method line 191
+    .method public static hidebysig 
+           default int32 ToInt (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x6d74
-	// Code size 32 (0x20)
-	.maxstack 2
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 74 6F 2D 69 6E 74 00 00 ) // ...to-int..
+
+        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 2F 55 73 65 20 74 79 70 65 2D 73 70 65 63   // ../Use type-spec
+		69 66 69 63 20 63 6F 6E 76 65 72 73 69 6F 6E 20   // ific conversion 
+		66 75 6E 63 74 69 6F 6E 73 20 69 6E 73 74 65 61   // functions instea
+		64 2E 00 00 00                                  ) // d....
+
+        // Method begins at RVA 0x5eac
+	// Code size 10 (0xa)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Configuration.ConditionalElement::get_IfDefined()
-	IL_0007:  brfalse IL_0017
-
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance bool class NAnt.Core.Configuration.ConditionalElement::get_UnlessDefined()
-	IL_0012:  ldc.i4.0 
-	IL_0013:  ceq 
-	IL_0015:  br.s IL_0018
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_0017:  ldc.i4.0 
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_001e
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ConversionFunctions::ToInt
 
-	IL_001e:  ldloc.0 
-	IL_001f:  ret 
-    } // end of method ConditionalElement::get_Enabled
+    // method line 192
+    .method public static hidebysig 
+           default float64 ToDouble (float64 'value')  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 64 6F 75 62 6C 65 00 00 ) // ...to-double..
 
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 2F 55 73 65 20 74 79 70 65 2D 73 70 65 63   // ../Use type-spec
+		69 66 69 63 20 63 6F 6E 76 65 72 73 69 6F 6E 20   // ific conversion 
+		66 75 6E 63 74 69 6F 6E 73 20 69 6E 73 74 65 61   // functions instea
+		64 2E 00 00 00                                  ) // d....
 
-		.get instance default bool NAnt.Core.Configuration.ConditionalElement::get_IfDefined () 
-		.set instance default void NAnt.Core.Configuration.ConditionalElement::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+        // Method begins at RVA 0x5ec4
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		float64	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-		.get instance default bool NAnt.Core.Configuration.ConditionalElement::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Configuration.ConditionalElement::set_UnlessDefined (bool 'value') 
-	}
-	.property instance bool Enabled ()
-	{
-		.get instance default bool NAnt.Core.Configuration.ConditionalElement::get_Enabled () 
-	}
-  .class nested private auto ansi beforefieldinit ConditionalConfigurator
-  	extends NAnt.Core.Element/AttributeConfigurator
-  {
-    .field  private initonly  bool _enabled
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ConversionFunctions::ToDouble
 
-    // method line 241
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Configuration.ConditionalElement element, class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo targetFramework)  cil managed 
+    // method line 193
+    .method public static hidebysig 
+           default string ConvertToString (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x6da0
-	// Code size 148 (0x94)
-	.maxstack 5
-	.locals init (
-		class [mscorlib]System.Type	V_0,
-		class [mscorlib]System.Reflection.PropertyInfo	V_1,
-		class [mscorlib]System.Reflection.PropertyInfo	V_2)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator::_enabled
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.2 
-	IL_000a:  ldarg.3 
-	IL_000b:  ldarg.s 4
-	IL_000d:  call instance void class NAnt.Core.Element/AttributeConfigurator::'.ctor'(class NAnt.Core.Element, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
-	IL_0012:  nop 
-	IL_0013:  ldarg.1 
-	IL_0014:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0019:  stloc.0 
-	IL_001a:  ldloc.0 
-	IL_001b:  ldstr "IfDefined"
-	IL_0020:  ldc.i4.s 0x24
-	IL_0022:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo class [mscorlib]System.Type::GetProperty(string, valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_0027:  stloc.1 
-	IL_0028:  ldarg.0 
-	IL_0029:  ldloc.1 
-	IL_002a:  callvirt instance bool class NAnt.Core.Element/AttributeConfigurator::InitializeAttribute(class [mscorlib]System.Reflection.PropertyInfo)
-	IL_002f:  pop 
-	IL_0030:  ldarg.1 
-	IL_0031:  callvirt instance bool class NAnt.Core.Configuration.ConditionalElement::get_IfDefined()
-	IL_0036:  brtrue IL_0049
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
 
-	IL_003b:  nop 
-	IL_003c:  ldarg.0 
-	IL_003d:  ldc.i4.0 
-	IL_003e:  stfld bool NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator::_enabled
-	IL_0043:  nop 
-	IL_0044:  br IL_0070
+        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 2F 55 73 65 20 74 79 70 65 2D 73 70 65 63   // ../Use type-spec
+		69 66 69 63 20 63 6F 6E 76 65 72 73 69 6F 6E 20   // ific conversion 
+		66 75 6E 63 74 69 6F 6E 73 20 69 6E 73 74 65 61   // functions instea
+		64 2E 00 00 00                                  ) // d....
 
-	IL_0049:  nop 
-	IL_004a:  ldloc.0 
-	IL_004b:  ldstr "UnlessDefined"
-	IL_0050:  ldc.i4.s 0x24
-	IL_0052:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo class [mscorlib]System.Type::GetProperty(string, valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_0057:  stloc.2 
-	IL_0058:  ldarg.0 
-	IL_0059:  ldloc.2 
-	IL_005a:  callvirt instance bool class NAnt.Core.Element/AttributeConfigurator::InitializeAttribute(class [mscorlib]System.Reflection.PropertyInfo)
-	IL_005f:  pop 
-	IL_0060:  ldarg.0 
-	IL_0061:  ldarg.1 
-	IL_0062:  callvirt instance bool class NAnt.Core.Configuration.ConditionalElement::get_UnlessDefined()
-	IL_0067:  ldc.i4.0 
-	IL_0068:  ceq 
-	IL_006a:  stfld bool NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator::_enabled
-	IL_006f:  nop 
-	IL_0070:  ldarg.0 
-	IL_0071:  ldfld bool NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator::_enabled
-	IL_0076:  brtrue IL_0093
+        // Method begins at RVA 0x5edc
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_007b:  nop 
-	IL_007c:  ldarg.0 
-	IL_007d:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedAttributes()
-	IL_0082:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
-	IL_0087:  ldarg.0 
-	IL_0088:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
-	IL_008d:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
-	IL_0092:  nop 
-	IL_0093:  ret 
-    } // end of method ConditionalConfigurator::.ctor
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ConversionFunctions::ConvertToString
 
-    // method line 242
-    .method family virtual hidebysig 
-           instance default bool InitializeAttribute (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
+    // method line 194
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.DateTime ToDateTime (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x6e40
-	// Code size 34 (0x22)
-	.maxstack 2
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0B 74 6F 2D 64 61 74 65 74 69 6D 65 00 00 ) // ...to-datetime..
+
+        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 2F 55 73 65 20 74 79 70 65 2D 73 70 65 63   // ../Use type-spec
+		69 66 69 63 20 63 6F 6E 76 65 72 73 69 6F 6E 20   // ific conversion 
+		66 75 6E 63 74 69 6F 6E 73 20 69 6E 73 74 65 61   // functions instea
+		64 2E 00 00 00                                  ) // d....
+
+        // Method begins at RVA 0x5ef4
+	// Code size 10 (0xa)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype [mscorlib]System.DateTime	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator::_enabled
-	IL_0007:  brtrue IL_0013
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_000c:  ldc.i4.1 
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0020
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ConversionFunctions::ToDateTime
 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  call instance bool class NAnt.Core.Element/AttributeConfigurator::InitializeAttribute(class [mscorlib]System.Reflection.PropertyInfo)
-	IL_001a:  stloc.0 
-	IL_001b:  br IL_0020
+    // method line 195
+    .method public static hidebysig 
+           default bool ToBoolean (bool 'value')  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 74 6F 2D 62 6F 6F 6C 65 61 6E 00 00 ) // ...to-boolean..
 
-	IL_0020:  ldloc.0 
-	IL_0021:  ret 
-    } // end of method ConditionalConfigurator::InitializeAttribute
+        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 2F 55 73 65 20 74 79 70 65 2D 73 70 65 63   // ../Use type-spec
+		69 66 69 63 20 63 6F 6E 76 65 72 73 69 6F 6E 20   // ific conversion 
+		66 75 6E 63 74 69 6F 6E 73 20 69 6E 73 74 65 61   // functions instea
+		64 2E 00 00 00                                  ) // d....
 
-    // method line 243
-    .method family virtual hidebysig 
-           instance default void InitializeOrderedChildElements ()  cil managed 
-    {
-        // Method begins at RVA 0x6e6e
-	// Code size 24 (0x18)
-	.maxstack 8
+        // Method begins at RVA 0x5f0c
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator::_enabled
-	IL_0007:  brtrue IL_0011
-
-	IL_000c:  br IL_0017
-
-	IL_0011:  ldarg.0 
-	IL_0012:  call instance void class NAnt.Core.Element/AttributeConfigurator::InitializeOrderedChildElements()
-	IL_0017:  ret 
-    } // end of method ConditionalConfigurator::InitializeOrderedChildElements
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-  } // end of class ConditionalConfigurator
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ConversionFunctions::ToBoolean
 
-  } // end of class NAnt.Core.Configuration.ConditionalElement
+  } // end of class NAnt.Core.Functions.ConversionFunctions
 }
 
-.namespace NAnt.Core.Configuration
+.namespace NAnt.Core.Functions
 {
-  .class private auto ansi serializable beforefieldinit DirList
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit NAntFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _baseDirectory
-    .field  private  class NAnt.Core.Configuration.DirectoryName[] _directoryNames
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (01 00 04 6E 61 6E 74 04 4E 41 6E 74 00 00 ) // ...nant.NAnt..
 
-    // method line 244
+
+    // method line 196
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x6e87
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x5f22
+	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_0006:  ret 
-    } // end of method DirList::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method NAntFunctions::.ctor
 
-    // method line 245
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
+    // method line 197
+    .method public hidebysig 
+           instance default string GetBaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x6e90
-	// Code size 49 (0x31)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 12 67 65 74 2D 62 61 73 65 2D 64 69 72 65   // ...get-base-dire
+		63 74 6F 72 79 00 00                            ) // ctory..
+
+        // Method begins at RVA 0x5f30
+	// Code size 19 (0x13)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Configuration.DirList::_baseDirectory
-	IL_0007:  brtrue IL_0023
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0013:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_0018:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_001d:  stloc.0 
-	IL_001e:  br IL_002f
-
-	IL_0023:  ldarg.0 
-	IL_0024:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Configuration.DirList::_baseDirectory
-	IL_0029:  stloc.0 
-	IL_002a:  br IL_002f
+	IL_0001:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_0006:  callvirt instance string class [mscorlib]System.AppDomain::get_BaseDirectory()
+	IL_000b:  stloc.0 
+	IL_000c:  br IL_0011
 
-	IL_002f:  ldloc.0 
-	IL_0030:  ret 
-    } // end of method DirList::get_Directory
+	IL_0011:  ldloc.0 
+	IL_0012:  ret 
+    } // end of method NAntFunctions::GetBaseDirectory
 
-    // method line 246
-    .method public hidebysig specialname 
-           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    // method line 198
+    .method public hidebysig 
+           instance default class [mscorlib]System.Reflection.Assembly GetAssembly ()  cil managed 
     {
-        // Method begins at RVA 0x6ecd
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Configuration.DirList::_baseDirectory
-	IL_0008:  ret 
-    } // end of method DirList::set_Directory
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0C 67 65 74 2D 61 73 73 65 6D 62 6C 79 00   // ...get-assembly.
+		00                                              ) // .
 
-    // method line 247
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Configuration.DirectoryName[] get_DirectoryNames ()  cil managed 
-    {
-        // Method begins at RVA 0x6ed8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x5f50
+	// Code size 50 (0x32)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Configuration.DirectoryName[]	V_0)
+		class [mscorlib]System.Reflection.Assembly	V_0,
+		class [mscorlib]System.Reflection.Assembly	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::_directoryNames
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetEntryAssembly()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	IL_000d:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	IL_0012:  ldstr "NAnt"
+	IL_0017:  call bool string::op_Inequality(string, string)
+	IL_001c:  brfalse IL_0029
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DirList::get_DirectoryNames
+	IL_0021:  nop 
+	IL_0022:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetExecutingAssembly()
+	IL_0027:  stloc.0 
+	IL_0028:  nop 
+	IL_0029:  ldloc.0 
+	IL_002a:  stloc.1 
+	IL_002b:  br IL_0030
 
-    // method line 248
-    .method public hidebysig specialname 
-           instance default void set_DirectoryNames (class NAnt.Core.Configuration.DirectoryName[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6ef3
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::_directoryNames
-	IL_0008:  ret 
-    } // end of method DirList::set_DirectoryNames
+	IL_0030:  ldloc.1 
+	IL_0031:  ret 
+    } // end of method NAntFunctions::GetAssembly
 
-    // method line 249
+    // method line 199
     .method public hidebysig 
-           instance default string[] GetDirectories ()  cil managed 
+           instance default string ScanProbingPaths (string fileName)  cil managed 
     {
-        // Method begins at RVA 0x6f00
-	// Code size 28 (0x1c)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		string[]	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Configuration.DirList::get_Directory()
-	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_000c:  stloc.0 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  call instance string[] class NAnt.Core.Configuration.DirList::GetDirectories(string)
-	IL_0014:  stloc.1 
-	IL_0015:  br IL_001a
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 12 73 63 61 6E 2D 70 72 6F 62 69 6E 67 2D   // ...scan-probing-
+		70 61 74 68 73 00 00                            ) // paths..
 
-	IL_001a:  ldloc.1 
-	IL_001b:  ret 
-    } // end of method DirList::GetDirectories
+        .custom instance void class [System]System.ComponentModel.EditorBrowsableAttribute::'.ctor'(valuetype [System]System.ComponentModel.EditorBrowsableState) =  (01 00 01 00 00 00 00 00 ) // ........
 
-    // method line 250
-    .method assembly hidebysig 
-           instance default string[] GetDirectories (string baseDir)  cil managed 
-    {
-        // Method begins at RVA 0x6f28
-	// Code size 116 (0x74)
-	.maxstack 4
+        // Method begins at RVA 0x5f90
+	// Code size 92 (0x5c)
+	.maxstack 3
 	.locals init (
-		string[]	V_0,
-		string[]	V_1,
-		int32	V_2,
-		class NAnt.Core.Configuration.DirectoryName	V_3)
+		string	V_0,
+		class NAnt.Core.FrameworkInfo	V_1,
+		string[]	V_2,
+		string	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0012
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0009:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_000e:  stloc.1 
+	IL_000f:  ldloc.1 
+	IL_0010:  callvirt instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
+	IL_0015:  brfalse IL_0036
 
-	IL_0007:  ldstr "baseDir"
-	IL_000c:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0011:  throw 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldfld class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::_directoryNames
-	IL_0018:  brtrue IL_002a
+	IL_001a:  nop 
+	IL_001b:  ldloc.1 
+	IL_001c:  callvirt instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
+	IL_0021:  callvirt instance class NAnt.Core.Configuration.DirList class NAnt.Core.Configuration.Runtime::get_ProbingPaths()
+	IL_0026:  callvirt instance string[] class NAnt.Core.Configuration.DirList::GetDirectories()
+	IL_002b:  stloc.2 
+	IL_002c:  ldloc.2 
+	IL_002d:  ldarg.1 
+	IL_002e:  ldc.i4.1 
+	IL_002f:  call string class NAnt.Core.Util.FileUtils::ResolveFile(string[], string, bool)
+	IL_0034:  stloc.0 
+	IL_0035:  nop 
+	IL_0036:  ldloc.0 
+	IL_0037:  brtrue IL_0053
 
-	IL_001d:  nop 
-	IL_001e:  ldc.i4.0 
-	IL_001f:  newarr [mscorlib]System.String
-	IL_0024:  stloc.0 
-	IL_0025:  br IL_0072
+	IL_003c:  nop 
+	IL_003d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0042:  ldstr "\"{0}\" could not be found in any of the configured probing paths."
+	IL_0047:  ldarg.1 
+	IL_0048:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_004d:  newobj instance void class [mscorlib]System.IO.FileNotFoundException::'.ctor'(string)
+	IL_0052:  throw 
+	IL_0053:  ldloc.0 
+	IL_0054:  stloc.3 
+	IL_0055:  br IL_005a
 
-	IL_002a:  ldarg.0 
-	IL_002b:  ldfld class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::_directoryNames
-	IL_0030:  ldlen 
-	IL_0031:  conv.i4 
-	IL_0032:  newarr [mscorlib]System.String
-	IL_0037:  stloc.1 
-	IL_0038:  ldc.i4.0 
-	IL_0039:  stloc.2 
-	IL_003a:  br IL_005d
+	IL_005a:  ldloc.3 
+	IL_005b:  ret 
+    } // end of method NAntFunctions::ScanProbingPaths
 
-	IL_003f:  nop 
-	IL_0040:  ldarg.0 
-	IL_0041:  ldfld class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::_directoryNames
-	IL_0046:  ldloc.2 
-	IL_0047:  ldelem.ref 
-	IL_0048:  stloc.3 
-	IL_0049:  ldloc.1 
-	IL_004a:  ldloc.2 
-	IL_004b:  ldarg.1 
-	IL_004c:  ldloc.3 
-	IL_004d:  callvirt instance string class NAnt.Core.Configuration.DirectoryName::get_DirName()
-	IL_0052:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0057:  stelem.ref 
-	IL_0058:  nop 
-	IL_0059:  ldloc.2 
-	IL_005a:  ldc.i4.1 
-	IL_005b:  add 
-	IL_005c:  stloc.2 
-	IL_005d:  ldloc.2 
-	IL_005e:  ldarg.0 
-	IL_005f:  ldfld class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::_directoryNames
-	IL_0064:  ldlen 
-	IL_0065:  conv.i4 
-	IL_0066:  blt IL_003f
+    // method line 200
+    .method public hidebysig 
+           instance default string ScanProbingPaths (string baseDirectory, string fileName)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 12 73 63 61 6E 2D 70 72 6F 62 69 6E 67 2D   // ...scan-probing-
+		70 61 74 68 73 00 00                            ) // paths..
 
-	IL_006b:  ldloc.1 
-	IL_006c:  stloc.0 
-	IL_006d:  br IL_0072
+        .custom instance void class [System]System.ComponentModel.EditorBrowsableAttribute::'.ctor'(valuetype [System]System.ComponentModel.EditorBrowsableState) =  (01 00 01 00 00 00 00 00 ) // ........
 
-	IL_0072:  ldloc.0 
-	IL_0073:  ret 
-    } // end of method DirList::GetDirectories
+        // Method begins at RVA 0x5ff8
+	// Code size 93 (0x5d)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		class NAnt.Core.FrameworkInfo	V_1,
+		string[]	V_2,
+		string	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0009:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_000e:  stloc.1 
+	IL_000f:  ldloc.1 
+	IL_0010:  callvirt instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
+	IL_0015:  brfalse IL_0037
 
-	.property instance class [mscorlib]System.IO.DirectoryInfo Directory ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 69 72 00 00 ) // ...dir..
+	IL_001a:  nop 
+	IL_001b:  ldloc.1 
+	IL_001c:  callvirt instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
+	IL_0021:  callvirt instance class NAnt.Core.Configuration.DirList class NAnt.Core.Configuration.Runtime::get_ProbingPaths()
+	IL_0026:  ldarg.1 
+	IL_0027:  callvirt instance string[] class NAnt.Core.Configuration.DirList::GetDirectories(string)
+	IL_002c:  stloc.2 
+	IL_002d:  ldloc.2 
+	IL_002e:  ldarg.2 
+	IL_002f:  ldc.i4.1 
+	IL_0030:  call string class NAnt.Core.Util.FileUtils::ResolveFile(string[], string, bool)
+	IL_0035:  stloc.0 
+	IL_0036:  nop 
+	IL_0037:  ldloc.0 
+	IL_0038:  brtrue IL_0054
 
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Configuration.DirList::get_Directory () 
-		.set instance default void NAnt.Core.Configuration.DirList::set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance class NAnt.Core.Configuration.DirectoryName[] DirectoryNames ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 09 64 69 72 65 63 74 6F 72 79 00 00 ) // ...directory..
+	IL_003d:  nop 
+	IL_003e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0043:  ldstr "\"{0}\" could not be found in any of the configured probing paths."
+	IL_0048:  ldarg.2 
+	IL_0049:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_004e:  newobj instance void class [mscorlib]System.IO.FileNotFoundException::'.ctor'(string)
+	IL_0053:  throw 
+	IL_0054:  ldloc.0 
+	IL_0055:  stloc.3 
+	IL_0056:  br IL_005b
 
-		.get instance default class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::get_DirectoryNames () 
-		.set instance default void NAnt.Core.Configuration.DirList::set_DirectoryNames (class NAnt.Core.Configuration.DirectoryName[] 'value') 
-	}
-  } // end of class NAnt.Core.Configuration.DirList
+	IL_005b:  ldloc.3 
+	IL_005c:  ret 
+    } // end of method NAntFunctions::ScanProbingPaths
+
+  } // end of class NAnt.Core.Functions.NAntFunctions
 }
 
-.namespace NAnt.Core.Configuration
+.namespace NAnt.Core.Functions
 {
-  .class private auto ansi serializable beforefieldinit ManagedExecutionMode
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit ProjectFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .field  private  class NAnt.Core.Configuration.RuntimeEngine _engine
-    .field  private  class NAnt.Core.Types.EnvironmentSet _environmentSet
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 07 70 72 6F 6A 65 63 74 04 4E 41 6E 74 00   // ...project.NAnt.
+		00                                              ) // .
 
-    // method line 251
+
+    // method line 201
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x6fa8
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x6061
+	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Types.EnvironmentSet::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.Types.EnvironmentSet NAnt.Core.Configuration.ManagedExecutionMode::_environmentSet
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_0011:  ret 
-    } // end of method ManagedExecutionMode::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method ProjectFunctions::.ctor
 
-    // method line 252
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Configuration.RuntimeEngine get_Engine ()  cil managed 
+    // method line 202
+    .method public hidebysig 
+           instance default string GetName ()  cil managed 
     {
-        // Method begins at RVA 0x6fbc
-	// Code size 15 (0xf)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 6E 61 6D 65 00 00 ) // ...get-name..
+
+        // Method begins at RVA 0x606c
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Configuration.RuntimeEngine	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Configuration.RuntimeEngine NAnt.Core.Configuration.ManagedExecutionMode::_engine
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance string class NAnt.Core.Project::get_ProjectName()
+	IL_000c:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedExecutionMode::get_Engine
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ProjectFunctions::GetName
 
-    // method line 253
-    .method public hidebysig specialname 
-           instance default void set_Engine (class NAnt.Core.Configuration.RuntimeEngine 'value')  cil managed 
+    // method line 203
+    .method public hidebysig 
+           instance default string GetBuildFileUri ()  cil managed 
     {
-        // Method begins at RVA 0x6fd7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Configuration.RuntimeEngine NAnt.Core.Configuration.ManagedExecutionMode::_engine
-	IL_0008:  ret 
-    } // end of method ManagedExecutionMode::set_Engine
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 11 67 65 74 2D 62 75 69 6C 64 66 69 6C 65   // ...get-buildfile
+		2D 75 72 69 00 00                               ) // -uri..
 
-    // method line 254
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.EnvironmentSet get_Environment ()  cil managed 
-    {
-        // Method begins at RVA 0x6fe4
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x6094
+	// Code size 59 (0x3b)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.EnvironmentSet	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.EnvironmentSet NAnt.Core.Configuration.ManagedExecutionMode::_environmentSet
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedExecutionMode::get_Environment
-
-	.property instance class NAnt.Core.Configuration.RuntimeEngine Engine ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 06 65 6E 67 69 6E 65 00 00 ) // ...engine..
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
+	IL_000c:  ldnull 
+	IL_000d:  call bool class [System]System.Uri::op_Inequality(class [System]System.Uri, class [System]System.Uri)
+	IL_0012:  brfalse IL_002e
 
-		.get instance default class NAnt.Core.Configuration.RuntimeEngine NAnt.Core.Configuration.ManagedExecutionMode::get_Engine () 
-		.set instance default void NAnt.Core.Configuration.ManagedExecutionMode::set_Engine (class NAnt.Core.Configuration.RuntimeEngine 'value') 
-	}
-	.property instance class NAnt.Core.Types.EnvironmentSet Environment ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0B 65 6E 76 69 72 6F 6E 6D 65 6E 74 00 00 ) // ...environment..
+	IL_0017:  nop 
+	IL_0018:  ldarg.0 
+	IL_0019:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_001e:  callvirt instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
+	IL_0023:  callvirt instance string object::ToString()
+	IL_0028:  stloc.0 
+	IL_0029:  br IL_0039
 
-		.get instance default class NAnt.Core.Types.EnvironmentSet NAnt.Core.Configuration.ManagedExecutionMode::get_Environment () 
-	}
-  } // end of class NAnt.Core.Configuration.ManagedExecutionMode
-}
+	IL_002e:  ldsfld string [mscorlib]System.String::Empty
+	IL_0033:  stloc.0 
+	IL_0034:  br IL_0039
 
-.namespace NAnt.Core.Configuration
-{
-  .class private auto ansi serializable beforefieldinit ManagedExecutionModes
-  	extends NAnt.Core.Element
-  {
-    .field  private  class NAnt.Core.Configuration.ManagedExecutionMode _autoMode
-    .field  private  class NAnt.Core.Configuration.ManagedExecutionMode _strictMode
+	IL_0039:  ldloc.0 
+	IL_003a:  ret 
+    } // end of method ProjectFunctions::GetBuildFileUri
 
-    // method line 255
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 204
+    .method public hidebysig 
+           instance default string GetBuildFilePath ()  cil managed 
     {
-        // Method begins at RVA 0x6fff
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_0006:  ret 
-    } // end of method ManagedExecutionModes::.ctor
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 12 67 65 74 2D 62 75 69 6C 64 66 69 6C 65   // ...get-buildfile
+		2D 70 61 74 68 00 00                            ) // -path..
 
-    // method line 256
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Configuration.ManagedExecutionMode get_Auto ()  cil managed 
-    {
-        // Method begins at RVA 0x7008
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x60dc
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Configuration.ManagedExecutionMode	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Configuration.ManagedExecutionModes::_autoMode
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance string class NAnt.Core.Project::get_BuildFileLocalName()
+	IL_000c:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedExecutionModes::get_Auto
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ProjectFunctions::GetBuildFilePath
 
-    // method line 257
-    .method public hidebysig specialname 
-           instance default void set_Auto (class NAnt.Core.Configuration.ManagedExecutionMode 'value')  cil managed 
+    // method line 205
+    .method public hidebysig 
+           instance default string GetDefaultTarget ()  cil managed 
     {
-        // Method begins at RVA 0x7023
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Configuration.ManagedExecutionModes::_autoMode
-	IL_0008:  ret 
-    } // end of method ManagedExecutionModes::set_Auto
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 12 67 65 74 2D 64 65 66 61 75 6C 74 2D 74   // ...get-default-t
+		61 72 67 65 74 00 00                            ) // arget..
 
-    // method line 258
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Configuration.ManagedExecutionMode get_Strict ()  cil managed 
-    {
-        // Method begins at RVA 0x7030
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x6104
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Configuration.ManagedExecutionMode	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Configuration.ManagedExecutionModes::_strictMode
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedExecutionModes::get_Strict
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance string class NAnt.Core.Project::get_DefaultTargetName()
+	IL_000c:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-    // method line 259
-    .method public hidebysig specialname 
-           instance default void set_Strict (class NAnt.Core.Configuration.ManagedExecutionMode 'value')  cil managed 
-    {
-        // Method begins at RVA 0x704b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Configuration.ManagedExecutionModes::_strictMode
-	IL_0008:  ret 
-    } // end of method ManagedExecutionModes::set_Strict
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ProjectFunctions::GetDefaultTarget
 
-    // method line 260
+    // method line 206
     .method public hidebysig 
-           instance default class NAnt.Core.Configuration.ManagedExecutionMode GetExecutionMode (valuetype NAnt.Core.Types.ManagedExecution 'managed')  cil managed 
+           instance default string GetBaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x7058
-	// Code size 86 (0x56)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 12 67 65 74 2D 62 61 73 65 2D 64 69 72 65   // ...get-base-dire
+		63 74 6F 72 79 00 00                            ) // ctory..
+
+        // Method begins at RVA 0x612c
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Configuration.ManagedExecutionMode	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  switch (
-	  IL_0018,
-	  IL_001f,
-	  IL_002b)
-	IL_0013:  br IL_004e
-
-	IL_0018:  ldnull 
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_0054
-
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance class NAnt.Core.Configuration.ManagedExecutionMode class NAnt.Core.Configuration.ManagedExecutionModes::get_Auto()
-	IL_0025:  stloc.0 
-	IL_0026:  br IL_0054
-
-	IL_002b:  ldarg.0 
-	IL_002c:  call instance class NAnt.Core.Configuration.ManagedExecutionMode class NAnt.Core.Configuration.ManagedExecutionModes::get_Strict()
-	IL_0031:  brfalse IL_0042
-
-	IL_0036:  ldarg.0 
-	IL_0037:  call instance class NAnt.Core.Configuration.ManagedExecutionMode class NAnt.Core.Configuration.ManagedExecutionModes::get_Strict()
-	IL_003c:  stloc.0 
-	IL_003d:  br IL_0054
-
-	IL_0042:  ldarg.0 
-	IL_0043:  call instance class NAnt.Core.Configuration.ManagedExecutionMode class NAnt.Core.Configuration.ManagedExecutionModes::get_Auto()
-	IL_0048:  stloc.0 
-	IL_0049:  br IL_0054
-
-	IL_004e:  newobj instance void class [mscorlib]System.NotImplementedException::'.ctor'()
-	IL_0053:  throw 
-	IL_0054:  ldloc.0 
-	IL_0055:  ret 
-    } // end of method ManagedExecutionModes::GetExecutionMode
-
-	.property instance class NAnt.Core.Configuration.ManagedExecutionMode Auto ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 04 61 75 74 6F 00 00 ) // ...auto..
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-		.get instance default class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Configuration.ManagedExecutionModes::get_Auto () 
-		.set instance default void NAnt.Core.Configuration.ManagedExecutionModes::set_Auto (class NAnt.Core.Configuration.ManagedExecutionMode 'value') 
-	}
-	.property instance class NAnt.Core.Configuration.ManagedExecutionMode Strict ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 06 73 74 72 69 63 74 00 00 ) // ...strict..
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ProjectFunctions::GetBaseDirectory
 
-		.get instance default class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Configuration.ManagedExecutionModes::get_Strict () 
-		.set instance default void NAnt.Core.Configuration.ManagedExecutionModes::set_Strict (class NAnt.Core.Configuration.ManagedExecutionMode 'value') 
-	}
-  } // end of class NAnt.Core.Configuration.ManagedExecutionModes
+  } // end of class NAnt.Core.Functions.ProjectFunctions
 }
 
-.namespace NAnt.Core.Configuration
+.namespace NAnt.Core.Functions
 {
-  .class private auto ansi serializable beforefieldinit DirectoryName
-  	extends NAnt.Core.Configuration.ConditionalElement
+  .class public auto ansi beforefieldinit TargetFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .field  private  string _name
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 06 74 61 72 67 65 74 04 4E 41 6E 74 00 00 ) // ...target.NAnt..
 
-    // method line 261
+
+    // method line 207
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x70ba
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x614c
+	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Configuration.ConditionalElement::'.ctor'()
-	IL_0006:  ret 
-    } // end of method DirectoryName::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method TargetFunctions::.ctor
 
-    // method line 262
-    .method public hidebysig specialname 
-           instance default string get_DirName ()  cil managed 
+    // method line 208
+    .method public hidebysig 
+           instance default bool Exists (string name)  cil managed 
     {
-        // Method begins at RVA 0x70c4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Configuration.DirectoryName::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DirectoryName::get_DirName
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
 
-    // method line 263
-    .method public hidebysig specialname 
-           instance default void set_DirName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x70df
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x6158
+	// Code size 32 (0x20)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Configuration.DirectoryName::_name
-	IL_0008:  ret 
-    } // end of method DirectoryName::set_DirName
-
-	.property instance string DirName ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.get instance default string NAnt.Core.Configuration.DirectoryName::get_DirName () 
-		.set instance default void NAnt.Core.Configuration.DirectoryName::set_DirName (string 'value') 
-	}
-  } // end of class NAnt.Core.Configuration.DirectoryName
-}
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.TargetCollection class NAnt.Core.Project::get_Targets()
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
+	IL_0012:  ldnull 
+	IL_0013:  ceq 
+	IL_0015:  ldc.i4.0 
+	IL_0016:  ceq 
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_001e
 
-.namespace NAnt.Core.Configuration
-{
-  .class private auto ansi serializable beforefieldinit RuntimeEngine
-  	extends NAnt.Core.Element
-  {
-    .field  private  class [mscorlib]System.IO.FileInfo _program
-    .field  private  class NAnt.Core.Types.ArgumentCollection _arguments
+	IL_001e:  ldloc.0 
+	IL_001f:  ret 
+    } // end of method TargetFunctions::Exists
 
-    // method line 264
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 209
+    .method public hidebysig 
+           instance default string GetCurrentTarget ()  cil managed 
     {
-        // Method begins at RVA 0x70e9
-	// Code size 18 (0x12)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Types.ArgumentCollection::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.Types.ArgumentCollection NAnt.Core.Configuration.RuntimeEngine::_arguments
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_0011:  ret 
-    } // end of method RuntimeEngine::.ctor
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 12 67 65 74 2D 63 75 72 72 65 6E 74 2D 74   // ...get-current-t
+		61 72 67 65 74 00 00                            ) // arget..
 
-    // method line 265
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Program ()  cil managed 
-    {
-        // Method begins at RVA 0x70fc
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x6184
+	// Code size 45 (0x2d)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		class NAnt.Core.Target	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Configuration.RuntimeEngine::_program
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.Target class NAnt.Core.Project::get_CurrentTarget()
+	IL_000c:  stloc.0 
 	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RuntimeEngine::get_Program
-
-    // method line 266
-    .method public hidebysig specialname 
-           instance default void set_Program (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x7117
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Configuration.RuntimeEngine::_program
-	IL_0008:  ret 
-    } // end of method RuntimeEngine::set_Program
+	IL_000e:  brtrue IL_001f
 
-    // method line 267
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.ArgumentCollection get_Arguments ()  cil managed 
-    {
-        // Method begins at RVA 0x7124
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.ArgumentCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.ArgumentCollection NAnt.Core.Configuration.RuntimeEngine::_arguments
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0013:  nop 
+	IL_0014:  ldstr "No target is being executed."
+	IL_0019:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
+	IL_001e:  throw 
+	IL_001f:  ldloc.0 
+	IL_0020:  callvirt instance string class NAnt.Core.Target::get_Name()
+	IL_0025:  stloc.1 
+	IL_0026:  br IL_002b
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RuntimeEngine::get_Arguments
+	IL_002b:  ldloc.1 
+	IL_002c:  ret 
+    } // end of method TargetFunctions::GetCurrentTarget
 
-    // method line 268
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 210
+    .method public hidebysig 
+           instance default bool HasExecuted (string name)  cil managed 
     {
-        // Method begins at RVA 0x7140
-	// Code size 73 (0x49)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0C 68 61 73 2D 65 78 65 63 75 74 65 64 00   // ...has-executed.
+		00                                              ) // .
+
+        // Method begins at RVA 0x61c0
+	// Code size 67 (0x43)
 	.maxstack 3
+	.locals init (
+		class NAnt.Core.Target	V_0,
+		bool	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.Element::Initialize()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Configuration.RuntimeEngine::get_Program()
-	IL_000d:  ldnull 
-	IL_000e:  ceq 
-	IL_0010:  ldc.i4.0 
-	IL_0011:  ceq 
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Configuration.RuntimeEngine::get_Program()
-	IL_0019:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_001e:  ldc.i4.0 
-	IL_001f:  ceq 
-	IL_0021:  and 
-	IL_0022:  brfalse IL_0048
-
-	IL_0027:  nop 
-	IL_0028:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_002d:  ldstr "Runtime engine '{0}' does not exist."
-	IL_0032:  ldarg.0 
-	IL_0033:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Configuration.RuntimeEngine::get_Program()
-	IL_0038:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_003d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0042:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0047:  throw 
-	IL_0048:  ret 
-    } // end of method RuntimeEngine::Initialize
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.TargetCollection class NAnt.Core.Project::get_Targets()
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
+	IL_0012:  stloc.0 
+	IL_0013:  ldloc.0 
+	IL_0014:  brtrue IL_0035
 
-	.property instance class [mscorlib]System.IO.FileInfo Program ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 70 72 6F 67 72 61 6D 01 00 54 02 08 52   // ...program..T..R
-		65 71 75 69 72 65 64 01                         ) // equired.
+	IL_0019:  nop 
+	IL_001a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001f:  ldstr "NA1097"
+	IL_0024:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0029:  ldarg.1 
+	IL_002a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002f:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0034:  throw 
+	IL_0035:  ldloc.0 
+	IL_0036:  callvirt instance bool class NAnt.Core.Target::get_Executed()
+	IL_003b:  stloc.1 
+	IL_003c:  br IL_0041
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Configuration.RuntimeEngine::get_Program () 
-		.set instance default void NAnt.Core.Configuration.RuntimeEngine::set_Program (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class NAnt.Core.Types.ArgumentCollection Arguments ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 03 61 72 67 00 00 ) // ...arg..
+	IL_0041:  ldloc.1 
+	IL_0042:  ret 
+    } // end of method TargetFunctions::HasExecuted
 
-		.get instance default class NAnt.Core.Types.ArgumentCollection NAnt.Core.Configuration.RuntimeEngine::get_Arguments () 
-	}
-  } // end of class NAnt.Core.Configuration.RuntimeEngine
+  } // end of class NAnt.Core.Functions.TargetFunctions
 }
 
-.namespace NAnt.Core.Configuration
+.namespace NAnt.Core.Functions
 {
-  .class private auto ansi serializable beforefieldinit Runtime
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit TaskFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .field  private  class NAnt.Core.Configuration.ManagedExecutionModes _modes
-    .field  private  class NAnt.Core.Configuration.DirList _probingPaths
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (01 00 04 74 61 73 6B 04 4E 41 6E 74 00 00 ) // ...task.NAnt..
 
-    // method line 269
+
+    // method line 211
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x7195
-	// Code size 29 (0x1d)
+        // Method begins at RVA 0x620f
+	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Configuration.ManagedExecutionModes::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.Configuration.ManagedExecutionModes NAnt.Core.Configuration.Runtime::_modes
-	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class NAnt.Core.Configuration.DirList::'.ctor'()
-	IL_0011:  stfld class NAnt.Core.Configuration.DirList NAnt.Core.Configuration.Runtime::_probingPaths
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_001c:  ret 
-    } // end of method Runtime::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method TaskFunctions::.ctor
 
-    // method line 270
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Configuration.DirList get_ProbingPaths ()  cil managed 
+    // method line 212
+    .method public hidebysig 
+           instance default bool Exists (string name)  cil managed 
     {
-        // Method begins at RVA 0x71b4
-	// Code size 15 (0xf)
-	.maxstack 1
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
+
+        // Method begins at RVA 0x621c
+	// Code size 20 (0x14)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Configuration.DirList	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Configuration.DirList NAnt.Core.Configuration.Runtime::_probingPaths
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
+	IL_0006:  ldarg.1 
+	IL_0007:  callvirt instance bool class NAnt.Core.TaskBuilderCollection::Contains(string)
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Runtime::get_ProbingPaths
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method TaskFunctions::Exists
 
-    // method line 271
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Configuration.ManagedExecutionModes get_Modes ()  cil managed 
+    // method line 213
+    .method public hidebysig 
+           instance default class [mscorlib]System.Reflection.Assembly GetAssembly (string name)  cil managed 
     {
-        // Method begins at RVA 0x71d0
-	// Code size 15 (0xf)
-	.maxstack 1
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0C 67 65 74 2D 61 73 73 65 6D 62 6C 79 00   // ...get-assembly.
+		00                                              ) // .
+
+        // Method begins at RVA 0x623c
+	// Code size 61 (0x3d)
+	.maxstack 3
 	.locals init (
-		class NAnt.Core.Configuration.ManagedExecutionModes	V_0)
+		class NAnt.Core.TaskBuilder	V_0,
+		class [mscorlib]System.Reflection.Assembly	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Configuration.ManagedExecutionModes NAnt.Core.Configuration.Runtime::_modes
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
+	IL_0001:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
+	IL_0006:  ldarg.1 
+	IL_0007:  callvirt instance class NAnt.Core.TaskBuilder class NAnt.Core.TaskBuilderCollection::get_Item(string)
+	IL_000c:  stloc.0 
 	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Runtime::get_Modes
+	IL_000e:  brtrue IL_002f
 
-	.property instance class NAnt.Core.Configuration.DirList ProbingPaths ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0D 70 72 6F 62 69 6E 67 2D 70 61 74 68 73   // ...probing-paths
-		00 00                                           ) // ..
+	IL_0013:  nop 
+	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0019:  ldstr "NA1099"
+	IL_001e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0023:  ldarg.1 
+	IL_0024:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0029:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_002e:  throw 
+	IL_002f:  ldloc.0 
+	IL_0030:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
+	IL_0035:  stloc.1 
+	IL_0036:  br IL_003b
 
-		.get instance default class NAnt.Core.Configuration.DirList NAnt.Core.Configuration.Runtime::get_ProbingPaths () 
-	}
-	.property instance class NAnt.Core.Configuration.ManagedExecutionModes Modes ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 05 6D 6F 64 65 73 00 00 ) // ...modes..
+	IL_003b:  ldloc.1 
+	IL_003c:  ret 
+    } // end of method TaskFunctions::GetAssembly
 
-		.get instance default class NAnt.Core.Configuration.ManagedExecutionModes NAnt.Core.Configuration.Runtime::get_Modes () 
-	}
-  } // end of class NAnt.Core.Configuration.Runtime
+  } // end of class NAnt.Core.Functions.TaskFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi beforefieldinit XsltExtensionObject
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit PropertyFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
-		01 00 13 78 73 6C 74 65 78 74 65 6E 73 69 6F 6E   // ...xsltextension
-		6F 62 6A 65 63 74 00 00                         ) // object..
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 08 70 72 6F 70 65 72 74 79 04 4E 41 6E 74   // ...property.NAnt
+		00 00                                           ) // ..
 
-    .field  private  string _namespaceUri
-    .field  private  string _typeName
-    .field  private  class [mscorlib]System.IO.FileInfo _assemblyPath
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
 
-    // method line 272
+    // method line 214
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x71eb
-	// Code size 26 (0x1a)
+        // Method begins at RVA 0x6285
+	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld string [mscorlib]System.String::Empty
-	IL_0006:  stfld string NAnt.Core.Types.XsltExtensionObject::_namespaceUri
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.1 
-	IL_000d:  stfld bool NAnt.Core.Types.XsltExtensionObject::_ifDefined
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_0018:  nop 
-	IL_0019:  ret 
-    } // end of method XsltExtensionObject::.ctor
-
-    // method line 273
-    .method public hidebysig specialname 
-           instance default string get_NamespaceUri ()  cil managed 
-    {
-        // Method begins at RVA 0x7208
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.XsltExtensionObject::_namespaceUri
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltExtensionObject::get_NamespaceUri
-
-    // method line 274
-    .method public hidebysig specialname 
-           instance default void set_NamespaceUri (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x7223
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.XsltExtensionObject::_namespaceUri
-	IL_0008:  ret 
-    } // end of method XsltExtensionObject::set_NamespaceUri
-
-    // method line 275
-    .method public hidebysig specialname 
-           instance default string get_TypeName ()  cil managed 
-    {
-        // Method begins at RVA 0x7230
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.XsltExtensionObject::_typeName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltExtensionObject::get_TypeName
-
-    // method line 276
-    .method public hidebysig specialname 
-           instance default void set_TypeName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x724b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.XsltExtensionObject::_typeName
-	IL_0008:  ret 
-    } // end of method XsltExtensionObject::set_TypeName
-
-    // method line 277
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_AssemblyPath ()  cil managed 
-    {
-        // Method begins at RVA 0x7258
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.XsltExtensionObject::_assemblyPath
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltExtensionObject::get_AssemblyPath
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method PropertyFunctions::.ctor
 
-    // method line 278
-    .method public hidebysig specialname 
-           instance default void set_AssemblyPath (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 215
+    .method public hidebysig 
+           instance default bool Exists (string name)  cil managed 
     {
-        // Method begins at RVA 0x7273
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.XsltExtensionObject::_assemblyPath
-	IL_0008:  ret 
-    } // end of method XsltExtensionObject::set_AssemblyPath
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
 
-    // method line 279
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x7280
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x6290
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.XsltExtensionObject::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance bool class NAnt.Core.PropertyDictionary::Contains(string)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltExtensionObject::get_IfDefined
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method PropertyFunctions::Exists
 
-    // method line 280
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 216
+    .method public hidebysig 
+           instance default bool IsReadOnly (string name)  cil managed 
     {
-        // Method begins at RVA 0x729b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.XsltExtensionObject::_ifDefined
-	IL_0008:  ret 
-    } // end of method XsltExtensionObject::set_IfDefined
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0B 69 73 2D 72 65 61 64 6F 6E 6C 79 00 00 ) // ...is-readonly..
 
-    // method line 281
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x72a8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x62b8
+	// Code size 76 (0x4c)
+	.maxstack 3
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.XsltExtensionObject::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance bool class NAnt.Core.PropertyDictionary::Contains(string)
+	IL_0012:  brtrue IL_0033
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltExtensionObject::get_UnlessDefined
+	IL_0017:  nop 
+	IL_0018:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001d:  ldstr "NA1053"
+	IL_0022:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0027:  ldarg.1 
+	IL_0028:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0032:  throw 
+	IL_0033:  ldarg.0 
+	IL_0034:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0039:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_003e:  ldarg.1 
+	IL_003f:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsReadOnlyProperty(string)
+	IL_0044:  stloc.0 
+	IL_0045:  br IL_004a
 
-    // method line 282
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x72c3
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.XsltExtensionObject::_unlessDefined
-	IL_0008:  ret 
-    } // end of method XsltExtensionObject::set_UnlessDefined
+	IL_004a:  ldloc.0 
+	IL_004b:  ret 
+    } // end of method PropertyFunctions::IsReadOnly
 
-    // method line 283
+    // method line 217
     .method public hidebysig 
-           instance default object CreateInstance ()  cil managed 
+           instance default bool IsDynamic (string name)  cil managed 
     {
-        // Method begins at RVA 0x72d0
-	// Code size 217 (0xd9)
-	.maxstack 4
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 69 73 2D 64 79 6E 61 6D 69 63 00 00 ) // ...is-dynamic..
+
+        // Method begins at RVA 0x6310
+	// Code size 76 (0x4c)
+	.maxstack 3
 	.locals init (
-		object	V_0,
-		class [mscorlib]System.Reflection.Assembly	V_1,
-		class [mscorlib]System.Exception	V_2,
-		object	V_3)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.XsltExtensionObject::get_AssemblyPath()
-	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_000c:  brtrue IL_003d
-
-	IL_0011:  nop 
-	IL_0012:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0017:  ldstr "NA1166"
-	IL_001c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0021:  ldarg.0 
-	IL_0022:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.XsltExtensionObject::get_AssemblyPath()
-	IL_0027:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_002c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0031:  ldarg.0 
-	IL_0032:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0037:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_003c:  throw 
-	IL_003d:  ldnull 
-	IL_003e:  stloc.0 
-	.try { // 0
-	  IL_003f:  nop 
-	  IL_0040:  ldarg.0 
-	  IL_0041:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.XsltExtensionObject::get_AssemblyPath()
-	  IL_0046:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_004b:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFrom(string)
-	  IL_0050:  stloc.1 
-	  IL_0051:  ldloc.1 
-	  IL_0052:  ldarg.0 
-	  IL_0053:  call instance string class NAnt.Core.Types.XsltExtensionObject::get_TypeName()
-	  IL_0058:  callvirt instance object class [mscorlib]System.Reflection.Assembly::CreateInstance(string)
-	  IL_005d:  stloc.0 
-	  IL_005e:  ldloc.0 
-	  IL_005f:  brtrue IL_0096
-
-	  IL_0064:  nop 
-	  IL_0065:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_006a:  ldstr "NA1168"
-	  IL_006f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0074:  ldarg.0 
-	  IL_0075:  call instance string class NAnt.Core.Types.XsltExtensionObject::get_TypeName()
-	  IL_007a:  ldarg.0 
-	  IL_007b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.XsltExtensionObject::get_AssemblyPath()
-	  IL_0080:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0085:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_008a:  ldarg.0 
-	  IL_008b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0090:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_0095:  throw 
-	  IL_0096:  nop 
-	  IL_0097:  leave IL_00d0
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_009c:  stloc.2 
-	  IL_009d:  nop 
-	  IL_009e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_00a3:  ldstr "NA1167"
-	  IL_00a8:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_00ad:  ldarg.0 
-	  IL_00ae:  call instance string class NAnt.Core.Types.XsltExtensionObject::get_TypeName()
-	  IL_00b3:  ldarg.0 
-	  IL_00b4:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.XsltExtensionObject::get_AssemblyPath()
-	  IL_00b9:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_00be:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_00c3:  ldarg.0 
-	  IL_00c4:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_00c9:  ldloc.2 
-	  IL_00ca:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_00cf:  throw 
-	} // end handler 0
-	IL_00d0:  ldloc.0 
-	IL_00d1:  stloc.3 
-	IL_00d2:  br IL_00d7
-
-	IL_00d7:  ldloc.3 
-	IL_00d8:  ret 
-    } // end of method XsltExtensionObject::CreateInstance
-
-	.property instance string NamespaceUri ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 6E 61 6D 65 73 70 61 63 65 75 72 69 00   // ...namespaceuri.
-		00                                              ) // .
-
-		.get instance default string NAnt.Core.Types.XsltExtensionObject::get_NamespaceUri () 
-		.set instance default void NAnt.Core.Types.XsltExtensionObject::set_NamespaceUri (string 'value') 
-	}
-	.property instance string TypeName ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 74 79 70 65 6E 61 6D 65 01 00 54 02 08   // ...typename..T..
-		52 65 71 75 69 72 65 64 01                      ) // Required.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.Core.Types.XsltExtensionObject::get_TypeName () 
-		.set instance default void NAnt.Core.Types.XsltExtensionObject::set_TypeName (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo AssemblyPath ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 61 73 73 65 6D 62 6C 79 01 00 54 02 08   // ...assembly..T..
-		52 65 71 75 69 72 65 64 01                      ) // Required.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Types.XsltExtensionObject::get_AssemblyPath () 
-		.set instance default void NAnt.Core.Types.XsltExtensionObject::set_AssemblyPath (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance bool class NAnt.Core.PropertyDictionary::Contains(string)
+	IL_0012:  brtrue IL_0033
 
-		.get instance default bool NAnt.Core.Types.XsltExtensionObject::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.XsltExtensionObject::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+	IL_0017:  nop 
+	IL_0018:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001d:  ldstr "NA1053"
+	IL_0022:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0027:  ldarg.1 
+	IL_0028:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0032:  throw 
+	IL_0033:  ldarg.0 
+	IL_0034:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0039:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_003e:  ldarg.1 
+	IL_003f:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsDynamicProperty(string)
+	IL_0044:  stloc.0 
+	IL_0045:  br IL_004a
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_004a:  ldloc.0 
+	IL_004b:  ret 
+    } // end of method PropertyFunctions::IsDynamic
 
-		.get instance default bool NAnt.Core.Types.XsltExtensionObject::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.XsltExtensionObject::set_UnlessDefined (bool 'value') 
-	}
-  } // end of class NAnt.Core.Types.XsltExtensionObject
+  } // end of class NAnt.Core.Functions.PropertyFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi beforefieldinit Credential
-  	extends NAnt.Core.DataTypeBase
+  .class public auto ansi beforefieldinit PlatformFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 0A 63 72 65 64 65 6E 74 69 61 6C 00 00 ) // ...credential..
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 08 70 6C 61 74 66 6F 72 6D 04 4E 41 6E 74   // ...platform.NAnt
+		00 00                                           ) // ..
 
-    .field  private  string _domain
-    .field  private  string _password
-    .field  private  string _userName
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
 
-    // method line 284
+    // method line 218
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x75da
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x6368
+	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.Credential::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method Credential::.ctor
-
-    // method line 285
-    .method public hidebysig specialname 
-           instance default string get_Domain ()  cil managed 
-    {
-        // Method begins at RVA 0x75ec
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Credential::_domain
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Credential::get_Domain
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method PlatformFunctions::.ctor
 
-    // method line 286
-    .method public hidebysig specialname 
-           instance default void set_Domain (string 'value')  cil managed 
+    // method line 219
+    .method public hidebysig 
+           instance default string GetName ()  cil managed 
     {
-        // Method begins at RVA 0x7607
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Types.Credential::_domain
-	IL_000d:  ret 
-    } // end of method Credential::set_Domain
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 6E 61 6D 65 00 00 ) // ...get-name..
 
-    // method line 287
-    .method public hidebysig specialname 
-           instance default string get_Password ()  cil managed 
-    {
-        // Method begins at RVA 0x7618
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x6374
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Credential::_password
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Credential::get_Password
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  callvirt instance string class NAnt.Core.Project::get_PlatformName()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 288
-    .method public hidebysig specialname 
-           instance default void set_Password (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x7633
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Types.Credential::_password
-	IL_000d:  ret 
-    } // end of method Credential::set_Password
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PlatformFunctions::GetName
 
-    // method line 289
-    .method public hidebysig specialname 
-           instance default string get_UserName ()  cil managed 
+    // method line 220
+    .method public static hidebysig 
+           default bool IsWin32 ()  cil managed 
     {
-        // Method begins at RVA 0x7644
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Credential::_userName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 69 73 2D 77 69 6E 33 32 00 00 ) // ...is-win32..
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Credential::get_UserName
+        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
+		01 00 24 55 73 65 20 74 68 65 20 69 73 2D 77 69   // ..$Use the is-wi
+		6E 64 6F 77 73 20 66 75 6E 63 74 69 6F 6E 20 69   // ndows function i
+		6E 73 74 65 61 64 2E 00 00                      ) // nstead...
 
-    // method line 290
-    .method public hidebysig specialname 
-           instance default void set_UserName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x765f
+        // Method begins at RVA 0x6394
 	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Types.Credential::_userName
-	IL_000d:  ret 
-    } // end of method Credential::set_UserName
-
-    // method line 291
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x7670
-	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Credential::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  call bool class NAnt.Core.PlatformHelper::get_IsWindows()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Credential::get_IfDefined
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method PlatformFunctions::IsWin32
 
-    // method line 292
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 221
+    .method public static hidebysig 
+           default bool IsWindows ()  cil managed 
     {
-        // Method begins at RVA 0x768b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Credential::_ifDefined
-	IL_0008:  ret 
-    } // end of method Credential::set_IfDefined
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 69 73 2D 77 69 6E 64 6F 77 73 00 00 ) // ...is-windows..
 
-    // method line 293
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x7698
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x63b0
+	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Credential::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  call bool class NAnt.Core.PlatformHelper::get_IsWindows()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Credential::get_UnlessDefined
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method PlatformFunctions::IsWindows
 
-    // method line 294
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 222
+    .method public static hidebysig 
+           default bool IsUnix ()  cil managed 
     {
-        // Method begins at RVA 0x76b3
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Credential::_unlessDefined
-	IL_0008:  ret 
-    } // end of method Credential::set_UnlessDefined
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 07 69 73 2D 75 6E 69 78 00 00 ) // ...is-unix..
 
-    // method line 295
-    .method public hidebysig 
-           instance default class [System]System.Net.ICredentials GetCredential ()  cil managed 
-    {
-        // Method begins at RVA 0x76c0
-	// Code size 60 (0x3c)
-	.maxstack 3
+        // Method begins at RVA 0x63cc
+	// Code size 14 (0xe)
+	.maxstack 1
 	.locals init (
-		class [System]System.Net.ICredentials	V_0,
-		class [System]System.Net.ICredentials	V_1)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  call instance bool class NAnt.Core.Types.Credential::get_IfDefined()
-	IL_0009:  brfalse IL_0033
-
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance bool class NAnt.Core.Types.Credential::get_UnlessDefined()
-	IL_0014:  brtrue IL_0033
-
-	IL_0019:  nop 
-	IL_001a:  ldarg.0 
-	IL_001b:  call instance string class NAnt.Core.Types.Credential::get_UserName()
-	IL_0020:  ldarg.0 
-	IL_0021:  call instance string class NAnt.Core.Types.Credential::get_Password()
-	IL_0026:  ldarg.0 
-	IL_0027:  call instance string class NAnt.Core.Types.Credential::get_Domain()
-	IL_002c:  newobj instance void class [System]System.Net.NetworkCredential::'.ctor'(string, string, string)
-	IL_0031:  stloc.0 
-	IL_0032:  nop 
-	IL_0033:  ldloc.0 
-	IL_0034:  stloc.1 
-	IL_0035:  br IL_003a
-
-	IL_003a:  ldloc.1 
-	IL_003b:  ret 
-    } // end of method Credential::GetCredential
-
-	.property instance string Domain ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 64 6F 6D 61 69 6E 01 00 54 02 08 52 65   // ...domain..T..Re
-		71 75 69 72 65 64 00                            ) // quired.
-
-		.get instance default string NAnt.Core.Types.Credential::get_Domain () 
-		.set instance default void NAnt.Core.Types.Credential::set_Domain (string 'value') 
-	}
-	.property instance string Password ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 70 61 73 73 77 6F 72 64 01 00 54 02 08   // ...password..T..
-		52 65 71 75 69 72 65 64 00                      ) // Required.
-
-		.get instance default string NAnt.Core.Types.Credential::get_Password () 
-		.set instance default void NAnt.Core.Types.Credential::set_Password (string 'value') 
-	}
-	.property instance string UserName ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 75 73 65 72 6E 61 6D 65 01 00 54 02 08   // ...username..T..
-		52 65 71 75 69 72 65 64 00                      ) // Required.
-
-		.get instance default string NAnt.Core.Types.Credential::get_UserName () 
-		.set instance default void NAnt.Core.Types.Credential::set_UserName (string 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.Credential::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.Credential::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method PlatformFunctions::IsUnix
 
-		.get instance default bool NAnt.Core.Types.Credential::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.Credential::set_UnlessDefined (bool 'value') 
-	}
-  } // end of class NAnt.Core.Types.Credential
+  } // end of class NAnt.Core.Functions.PlatformFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi serializable beforefieldinit ArgumentCollection
-  	extends [mscorlib]System.Collections.CollectionBase
+  .class public auto ansi beforefieldinit DirectoryFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
-
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 09 64 69 72 65 63 74 6F 72 79 09 44 69 72   // ...directory.Dir
+		65 63 74 6F 72 79 00 00                         ) // ectory..
 
-    // method line 296
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x7708
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method ArgumentCollection::.ctor
 
-    // method line 297
+    // method line 223
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.ArgumentCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x7711
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x63e6
+	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Types.ArgumentCollection::AddRange(class NAnt.Core.Types.ArgumentCollection)
-	IL_000e:  ret 
-    } // end of method ArgumentCollection::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method DirectoryFunctions::.ctor
 
-    // method line 298
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.Argument[] 'value')  cil managed 
+    // method line 224
+    .method public hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetCreationTime (string path)  cil managed 
     {
-        // Method begins at RVA 0x7721
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Types.ArgumentCollection::AddRange(class NAnt.Core.Types.Argument[])
-	IL_000e:  ret 
-    } // end of method ArgumentCollection::.ctor
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 11 67 65 74 2D 63 72 65 61 74 69 6F 6E 2D   // ...get-creation-
+		74 69 6D 65 00 00                               ) // time..
 
-    // method line 299
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Argument get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x7734
-	// Code size 26 (0x1a)
-	.maxstack 2
+        // Method begins at RVA 0x63f4
+	// Code size 62 (0x3e)
+	.maxstack 3
 	.locals init (
-		class NAnt.Core.Types.Argument	V_0)
+		string	V_0,
+		valuetype [mscorlib]System.DateTime	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
 	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.Core.Types.Argument
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0014:  brtrue IL_0030
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ArgumentCollection::get_Item
+	IL_0019:  nop 
+	IL_001a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001f:  ldstr "Could not find a part of the path \"{0}\"."
+	IL_0024:  ldloc.0 
+	IL_0025:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002a:  newobj instance void class [mscorlib]System.IO.IOException::'.ctor'(string)
+	IL_002f:  throw 
+	IL_0030:  ldloc.0 
+	IL_0031:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.Directory::GetCreationTime(string)
+	IL_0036:  stloc.1 
+	IL_0037:  br IL_003c
 
-    // method line 300
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.Argument 'value')  cil managed 
-    {
-        // Method begins at RVA 0x775a
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method ArgumentCollection::set_Item
+	IL_003c:  ldloc.1 
+	IL_003d:  ret 
+    } // end of method DirectoryFunctions::GetCreationTime
 
-    // method line 301
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Argument get_Item (string 'value')  cil managed 
+    // method line 225
+    .method public hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetLastWriteTime (string path)  cil managed 
     {
-        // Method begins at RVA 0x776c
-	// Code size 111 (0x6f)
-	.maxstack 2
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 13 67 65 74 2D 6C 61 73 74 2D 77 72 69 74   // ...get-last-writ
+		65 2D 74 69 6D 65 00 00                         ) // e-time..
+
+        // Method begins at RVA 0x6440
+	// Code size 62 (0x3e)
+	.maxstack 3
 	.locals init (
-		class NAnt.Core.Types.Argument	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Types.Argument	V_2,
-		class [mscorlib]System.IDisposable	V_3)
+		string	V_0,
+		valuetype [mscorlib]System.DateTime	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0066
-
-	IL_0007:  nop 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0014:  stloc.1 
-	.try { // 0
-	  IL_0015:  br IL_0041
-
-	  IL_001a:  ldloc.1 
-	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.Core.Types.Argument
-	  IL_0025:  stloc.0 
-	  IL_0026:  nop 
-	  IL_0027:  ldloc.0 
-	  IL_0028:  callvirt instance string class NAnt.Core.Types.Argument::get_StringValue()
-	  IL_002d:  ldarg.1 
-	  IL_002e:  call bool string::op_Equality(string, string)
-	  IL_0033:  brfalse IL_0040
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0014:  brtrue IL_0030
 
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  stloc.2 
-	  IL_003b:  leave IL_006d
+	IL_0019:  nop 
+	IL_001a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001f:  ldstr "Could not find a part of the path \"{0}\"."
+	IL_0024:  ldloc.0 
+	IL_0025:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002a:  newobj instance void class [mscorlib]System.IO.IOException::'.ctor'(string)
+	IL_002f:  throw 
+	IL_0030:  ldloc.0 
+	IL_0031:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.Directory::GetLastWriteTime(string)
+	IL_0036:  stloc.1 
+	IL_0037:  br IL_003c
 
-	  IL_0040:  nop 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_001a
+	IL_003c:  ldloc.1 
+	IL_003d:  ret 
+    } // end of method DirectoryFunctions::GetLastWriteTime
 
-	  IL_004c:  leave IL_0065
+    // method line 226
+    .method public hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetLastAccessTime (string path)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 14 67 65 74 2D 6C 61 73 74 2D 61 63 63 65   // ...get-last-acce
+		73 73 2D 74 69 6D 65 00 00                      ) // ss-time..
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0051:  ldloc.1 
-	  IL_0052:  isinst [mscorlib]System.IDisposable
-	  IL_0057:  dup 
-	  IL_0058:  stloc.3 
-	  IL_0059:  brfalse IL_0064
+        // Method begins at RVA 0x648c
+	// Code size 62 (0x3e)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		valuetype [mscorlib]System.DateTime	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0014:  brtrue IL_0030
 
-	  IL_005e:  ldloc.3 
-	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0064:  endfinally 
-	} // end handler 0
-	IL_0065:  nop 
-	IL_0066:  ldnull 
-	IL_0067:  stloc.2 
-	IL_0068:  br IL_006d
+	IL_0019:  nop 
+	IL_001a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001f:  ldstr "Could not find a part of the path \"{0}\"."
+	IL_0024:  ldloc.0 
+	IL_0025:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002a:  newobj instance void class [mscorlib]System.IO.IOException::'.ctor'(string)
+	IL_002f:  throw 
+	IL_0030:  ldloc.0 
+	IL_0031:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.Directory::GetLastAccessTime(string)
+	IL_0036:  stloc.1 
+	IL_0037:  br IL_003c
 
-	IL_006d:  ldloc.2 
-	IL_006e:  ret 
-    } // end of method ArgumentCollection::get_Item
+	IL_003c:  ldloc.1 
+	IL_003d:  ret 
+    } // end of method DirectoryFunctions::GetLastAccessTime
 
-    // method line 302
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
+    // method line 227
+    .method public static hidebysig 
+           default string GetCurrentDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x77f8
-	// Code size 28 (0x1c)
-	.maxstack 2
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 15 67 65 74 2D 63 75 72 72 65 6E 74 2D 64   // ...get-current-d
+		69 72 65 63 74 6F 72 79 00 00                   ) // irectory..
+
+        // Method begins at RVA 0x64d8
+	// Code size 14 (0xe)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		string	V_1)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0001:  call string class [mscorlib]System.IO.Directory::GetCurrentDirectory()
 	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  call instance void class NAnt.Core.Types.ArgumentCollection::ToString(class [mscorlib]System.Text.StringBuilder)
-	IL_000e:  ldloc.0 
-	IL_000f:  callvirt instance string object::ToString()
-	IL_0014:  stloc.1 
-	IL_0015:  br IL_001a
+	IL_0007:  br IL_000c
 
-	IL_001a:  ldloc.1 
-	IL_001b:  ret 
-    } // end of method ArgumentCollection::ToString
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method DirectoryFunctions::GetCurrentDirectory
 
-    // method line 303
+    // method line 228
     .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.Argument item)  cil managed 
+           instance default string GetParentDirectory (string path)  cil managed 
     {
-        // Method begins at RVA 0x7820
-	// Code size 21 (0x15)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 14 67 65 74 2D 70 61 72 65 6E 74 2D 64 69   // ...get-parent-di
+		72 65 63 74 6F 72 79 00 00                      ) // rectory..
+
+        // Method begins at RVA 0x64f4
+	// Code size 56 (0x38)
 	.maxstack 2
 	.locals init (
-		int32	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0,
+		class [mscorlib]System.IO.DirectoryInfo	V_1,
+		string	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
 	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
+	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	IL_000d:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0012:  stloc.0 
 	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ArgumentCollection::Add
+	IL_0014:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.DirectoryInfo::get_Parent()
+	IL_0019:  stloc.1 
+	IL_001a:  ldloc.1 
+	IL_001b:  brfalse IL_002b
 
-    // method line 304
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.Argument[] items)  cil managed 
-    {
-        // Method begins at RVA 0x7844
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
+	IL_0020:  ldloc.1 
+	IL_0021:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0026:  br IL_0030
 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Core.Types.ArgumentCollection::Add(class NAnt.Core.Types.Argument)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
+	IL_002b:  ldsfld string [mscorlib]System.String::Empty
+	IL_0030:  stloc.2 
+	IL_0031:  br IL_0036
 
-	IL_0021:  ret 
-    } // end of method ArgumentCollection::AddRange
+	IL_0036:  ldloc.2 
+	IL_0037:  ret 
+    } // end of method DirectoryFunctions::GetParentDirectory
 
-    // method line 305
+    // method line 229
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.ArgumentCollection items)  cil managed 
+           instance default string GetDirectoryRoot (string path)  cil managed 
     {
-        // Method begins at RVA 0x7874
-	// Code size 41 (0x29)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Core.Types.Argument class NAnt.Core.Types.ArgumentCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Core.Types.ArgumentCollection::Add(class NAnt.Core.Types.Argument)
-	IL_0016:  pop 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0023:  blt IL_0008
-
-	IL_0028:  ret 
-    } // end of method ArgumentCollection::AddRange
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 12 67 65 74 2D 64 69 72 65 63 74 6F 72 79   // ...get-directory
+		2D 72 6F 6F 74 00 00                            ) // -root..
 
-    // method line 306
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.Argument item)  cil managed 
-    {
-        // Method begins at RVA 0x78ac
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x6538
+	// Code size 33 (0x21)
 	.maxstack 2
 	.locals init (
-		bool	V_0)
+		string	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
 	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
+	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	IL_000d:  call string class [mscorlib]System.IO.Directory::GetDirectoryRoot(string)
+	IL_0012:  stloc.0 
 	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ArgumentCollection::Contains
+	IL_0014:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
+	IL_0019:  stloc.1 
+	IL_001a:  br IL_001f
 
-    // method line 307
+	IL_001f:  ldloc.1 
+	IL_0020:  ret 
+    } // end of method DirectoryFunctions::GetDirectoryRoot
+
+    // method line 230
     .method public hidebysig 
-           instance default bool Contains (string 'value')  cil managed 
+           instance default bool Exists (string path)  cil managed 
     {
-        // Method begins at RVA 0x78d0
-	// Code size 22 (0x16)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
+
+        // Method begins at RVA 0x6568
+	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.Types.Argument class NAnt.Core.Types.ArgumentCollection::get_Item(string)
-	IL_0008:  ldnull 
-	IL_0009:  ceq 
-	IL_000b:  ldc.i4.0 
-	IL_000c:  ceq 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0014
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	IL_000d:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method ArgumentCollection::Contains
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method DirectoryFunctions::Exists
 
-    // method line 308
+    // method line 231
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.Argument[] 'array', int32 index)  cil managed 
+           instance default string GetName (string path)  cil managed 
     {
-        // Method begins at RVA 0x78f2
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method ArgumentCollection::CopyTo
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 6E 61 6D 65 00 00 ) // ...get-name..
 
-    // method line 309
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.Argument item)  cil managed 
-    {
-        // Method begins at RVA 0x7904
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x6590
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0001:  ldarg.1 
+	IL_0002:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ArgumentCollection::IndexOf
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method DirectoryFunctions::GetName
 
-    // method line 310
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.Argument item)  cil managed 
+  } // end of class NAnt.Core.Functions.DirectoryFunctions
+}
+
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit TimeSpanFunctions
+  	extends NAnt.Core.FunctionSetBase
+  {
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 08 74 69 6D 65 73 70 61 6E 09 44 61 74 65   // ...timespan.Date
+		2F 54 69 6D 65 00 00                            ) // /Time..
+
+
+    // method line 232
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x7925
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x65b0
+	// Code size 10 (0xa)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method ArgumentCollection::Insert
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method TimeSpanFunctions::.ctor
 
-    // method line 311
-    .method public hidebysig 
-           instance default class NAnt.Core.Types.ArgumentEnumerator GetEnumerator ()  cil managed 
+    // method line 233
+    .method public static hidebysig 
+           default float64 GetTotalDays (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x7938
-	// Code size 15 (0xf)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0E 67 65 74 2D 74 6F 74 61 6C 2D 64 61 79   // ...get-total-day
+		73 00 00                                        ) // s..
+
+        // Method begins at RVA 0x65bc
+	// Code size 16 (0x10)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.ArgumentEnumerator	V_0)
+		float64	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.Types.ArgumentEnumerator::'.ctor'(class NAnt.Core.Types.ArgumentCollection)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance float64 valuetype [mscorlib]System.TimeSpan::get_TotalDays()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ArgumentCollection::GetEnumerator
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetTotalDays
 
-    // method line 312
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.Argument item)  cil managed 
+    // method line 234
+    .method public static hidebysig 
+           default float64 GetTotalHours (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x7953
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method ArgumentCollection::Remove
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0F 67 65 74 2D 74 6F 74 61 6C 2D 68 6F 75   // ...get-total-hou
+		72 73 00 00                                     ) // rs..
 
-    // method line 313
-    .method assembly hidebysig 
-           instance default void ToString (class [mscorlib]System.Text.StringBuilder sb)  cil managed 
-    {
-        // Method begins at RVA 0x7964
-	// Code size 120 (0x78)
-	.maxstack 2
+        // Method begins at RVA 0x65d8
+	// Code size 16 (0x10)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.Argument	V_0,
-		class NAnt.Core.Types.ArgumentEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2)
+		float64	V_0)
 	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance class NAnt.Core.Types.ArgumentEnumerator class NAnt.Core.Types.ArgumentCollection::GetEnumerator()
-	IL_0008:  stloc.1 
-	.try { // 0
-	  IL_0009:  br IL_0053
-
-	  IL_000e:  ldloc.1 
-	  IL_000f:  callvirt instance class NAnt.Core.Types.Argument class NAnt.Core.Types.ArgumentEnumerator::get_Current()
-	  IL_0014:  stloc.0 
-	  IL_0015:  nop 
-	  IL_0016:  ldloc.0 
-	  IL_0017:  callvirt instance bool class NAnt.Core.Types.Argument::get_IfDefined()
-	  IL_001c:  brfalse IL_0052
-
-	  IL_0021:  ldloc.0 
-	  IL_0022:  callvirt instance bool class NAnt.Core.Types.Argument::get_UnlessDefined()
-	  IL_0027:  brtrue IL_0052
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance float64 valuetype [mscorlib]System.TimeSpan::get_TotalHours()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	  IL_002c:  nop 
-	  IL_002d:  ldarg.1 
-	  IL_002e:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	  IL_0033:  ldc.i4.0 
-	  IL_0034:  ble IL_0044
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetTotalHours
 
-	  IL_0039:  nop 
-	  IL_003a:  ldarg.1 
-	  IL_003b:  ldc.i4.s 0x20
-	  IL_003d:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	  IL_0042:  pop 
-	  IL_0043:  nop 
-	  IL_0044:  ldarg.1 
-	  IL_0045:  ldloc.0 
-	  IL_0046:  callvirt instance string object::ToString()
-	  IL_004b:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_0050:  pop 
-	  IL_0051:  nop 
-	  IL_0052:  nop 
-	  IL_0053:  ldloc.1 
-	  IL_0054:  callvirt instance bool class NAnt.Core.Types.ArgumentEnumerator::MoveNext()
-	  IL_0059:  brtrue IL_000e
+    // method line 235
+    .method public static hidebysig 
+           default float64 GetTotalMinutes (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 11 67 65 74 2D 74 6F 74 61 6C 2D 6D 69 6E   // ...get-total-min
+		75 74 65 73 00 00                               ) // utes..
 
-	  IL_005e:  leave IL_0077
+        // Method begins at RVA 0x65f4
+	// Code size 16 (0x10)
+	.maxstack 1
+	.locals init (
+		float64	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance float64 valuetype [mscorlib]System.TimeSpan::get_TotalMinutes()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0063:  ldloc.1 
-	  IL_0064:  isinst [mscorlib]System.IDisposable
-	  IL_0069:  dup 
-	  IL_006a:  stloc.2 
-	  IL_006b:  brfalse IL_0076
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetTotalMinutes
 
-	  IL_0070:  ldloc.2 
-	  IL_0071:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0076:  endfinally 
-	} // end handler 0
-	IL_0077:  ret 
-    } // end of method ArgumentCollection::ToString
+    // method line 236
+    .method public static hidebysig 
+           default float64 GetTotalSeconds (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 11 67 65 74 2D 74 6F 74 61 6C 2D 73 65 63   // ...get-total-sec
+		6F 6E 64 73 00 00                               ) // onds..
 
-	.property instance class NAnt.Core.Types.Argument Item (int32)
-	{
-		.get instance default class NAnt.Core.Types.Argument NAnt.Core.Types.ArgumentCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Core.Types.ArgumentCollection::set_Item (int32 index, class NAnt.Core.Types.Argument 'value') 
-	}
-	.property instance class NAnt.Core.Types.Argument Item (string)
-	{
-		.get instance default class NAnt.Core.Types.Argument NAnt.Core.Types.ArgumentCollection::get_Item (string 'value') 
-	}
-  } // end of class NAnt.Core.Types.ArgumentCollection
-}
+        // Method begins at RVA 0x6610
+	// Code size 16 (0x10)
+	.maxstack 1
+	.locals init (
+		float64	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance float64 valuetype [mscorlib]System.TimeSpan::get_TotalSeconds()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-.namespace NAnt.Core.Types
-{
-  .class public auto ansi beforefieldinit ArgumentEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetTotalSeconds
 
-    // method line 314
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.ArgumentCollection arguments)  cil managed 
+    // method line 237
+    .method public static hidebysig 
+           default float64 GetTotalMilliseconds (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x79f8
-	// Code size 22 (0x16)
-	.maxstack 2
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 16 67 65 74 2D 74 6F 74 61 6C 2D 6D 69 6C   // ...get-total-mil
+		6C 69 73 65 63 6F 6E 64 73 00 00                ) // liseconds..
+
+        // Method begins at RVA 0x662c
+	// Code size 16 (0x10)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
+		float64	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance float64 valuetype [mscorlib]System.TimeSpan::get_TotalMilliseconds()
 	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.ArgumentEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method ArgumentEnumerator::.ctor
+	IL_0009:  br IL_000e
 
-    // method line 315
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Argument get_Current ()  cil managed 
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetTotalMilliseconds
+
+    // method line 238
+    .method public static hidebysig 
+           default int32 GetDays (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x7a1c
-	// Code size 25 (0x19)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 64 61 79 73 00 00 ) // ...get-days..
+
+        // Method begins at RVA 0x6648
+	// Code size 16 (0x10)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.Argument	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.ArgumentEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.Types.Argument
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.TimeSpan::get_Days()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ArgumentEnumerator::get_Current
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetDays
 
-    // method line 316
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    // method line 239
+    .method public static hidebysig 
+           default int32 GetHours (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x7a44
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 68 6F 75 72 73 00 00 ) // ...get-hours..
+
+        // Method begins at RVA 0x6664
+	// Code size 16 (0x10)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.ArgumentEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.TimeSpan::get_Hours()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ArgumentEnumerator::System.Collections.IEnumerator.get_Current
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetHours
 
-    // method line 317
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
+    // method line 240
+    .method public static hidebysig 
+           default int32 GetMinutes (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x7a64
-	// Code size 20 (0x14)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0B 67 65 74 2D 6D 69 6E 75 74 65 73 00 00 ) // ...get-minutes..
+
+        // Method begins at RVA 0x6680
+	// Code size 16 (0x10)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.ArgumentEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.TimeSpan::get_Minutes()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ArgumentEnumerator::MoveNext
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetMinutes
 
-    // method line 318
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    // method line 241
+    .method public static hidebysig 
+           default int32 GetSeconds (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x7a84
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0B 67 65 74 2D 73 65 63 6F 6E 64 73 00 00 ) // ...get-seconds..
+
+        // Method begins at RVA 0x669c
+	// Code size 16 (0x10)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.ArgumentEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.TimeSpan::get_Seconds()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ArgumentEnumerator::System.Collections.IEnumerator.MoveNext
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetSeconds
 
-    // method line 319
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
+    // method line 242
+    .method public static hidebysig 
+           default int32 GetMilliseconds (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x7aa4
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.ArgumentEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method ArgumentEnumerator::Reset
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 10 67 65 74 2D 6D 69 6C 6C 69 73 65 63 6F   // ...get-milliseco
+		6E 64 73 00 00                                  ) // nds..
 
-    // method line 320
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x7ab2
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
+        // Method begins at RVA 0x66b8
+	// Code size 16 (0x10)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.ArgumentEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method ArgumentEnumerator::System.Collections.IEnumerator.Reset
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.TimeSpan::get_Milliseconds()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.Core.Types.ArgumentEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.Core.Types.Argument Current ()
-	{
-		.get instance default class NAnt.Core.Types.Argument NAnt.Core.Types.ArgumentEnumerator::get_Current () 
-	}
-  } // end of class NAnt.Core.Types.ArgumentEnumerator
-}
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetMilliseconds
 
-.namespace NAnt.Core.Types
-{
-  .class public auto ansi beforefieldinit PatternSet
-  	extends NAnt.Core.DataTypeBase
-  {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 0A 70 61 74 74 65 72 6E 73 65 74 00 00 ) // ...patternset..
+    // method line 243
+    .method public static hidebysig 
+           default int64 GetTicks (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 74 69 63 6B 73 00 00 ) // ...get-ticks..
 
-    .field  private initonly  class NAnt.Core.Types.PatternCollection _include
-    .field  private initonly  class NAnt.Core.Types.PatternCollection _exclude
-    .field  private initonly  class NAnt.Core.Types.PatternCollection _includesFile
-    .field  private initonly  class NAnt.Core.Types.PatternCollection _excludesFile
+        // Method begins at RVA 0x66d4
+	// Code size 16 (0x10)
+	.maxstack 1
+	.locals init (
+		int64	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int64 valuetype [mscorlib]System.TimeSpan::get_Ticks()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-    // method line 321
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x7ac0
-	// Code size 52 (0x34)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class NAnt.Core.Types.PatternCollection::'.ctor'()
-	IL_000d:  stfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_include
-	IL_0012:  ldarg.0 
-	IL_0013:  newobj instance void class NAnt.Core.Types.PatternCollection::'.ctor'()
-	IL_0018:  stfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_exclude
-	IL_001d:  ldarg.0 
-	IL_001e:  newobj instance void class NAnt.Core.Types.PatternCollection::'.ctor'()
-	IL_0023:  stfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_includesFile
-	IL_0028:  ldarg.0 
-	IL_0029:  newobj instance void class NAnt.Core.Types.PatternCollection::'.ctor'()
-	IL_002e:  stfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_excludesFile
-	IL_0033:  ret 
-    } // end of method PatternSet::.ctor
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method TimeSpanFunctions::GetTicks
 
-    // method line 322
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PatternCollection get_Include ()  cil managed 
+    // method line 244
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.TimeSpan FromDays (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x7af8
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 66 72 6F 6D 2D 64 61 79 73 00 00 ) // ...from-days..
+
+        // Method begins at RVA 0x66f0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.PatternCollection	V_0)
+		valuetype [mscorlib]System.TimeSpan	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_include
+	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromDays(float64)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PatternSet::get_Include
+    } // end of method TimeSpanFunctions::FromDays
 
-    // method line 323
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PatternCollection get_IncludesFile ()  cil managed 
+    // method line 245
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.TimeSpan FromHours (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x7b14
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 66 72 6F 6D 2D 68 6F 75 72 73 00 00 ) // ...from-hours..
+
+        // Method begins at RVA 0x670c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.PatternCollection	V_0)
+		valuetype [mscorlib]System.TimeSpan	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_includesFile
+	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromHours(float64)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PatternSet::get_IncludesFile
+    } // end of method TimeSpanFunctions::FromHours
 
-    // method line 324
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PatternCollection get_Exclude ()  cil managed 
+    // method line 246
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.TimeSpan FromMinutes (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x7b30
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0C 66 72 6F 6D 2D 6D 69 6E 75 74 65 73 00   // ...from-minutes.
+		00                                              ) // .
+
+        // Method begins at RVA 0x6728
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.PatternCollection	V_0)
+		valuetype [mscorlib]System.TimeSpan	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_exclude
+	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromMinutes(float64)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PatternSet::get_Exclude
+    } // end of method TimeSpanFunctions::FromMinutes
 
-    // method line 325
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PatternCollection get_ExcludesFile ()  cil managed 
+    // method line 247
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.TimeSpan FromSeconds (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x7b4c
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0C 66 72 6F 6D 2D 73 65 63 6F 6E 64 73 00   // ...from-seconds.
+		00                                              ) // .
+
+        // Method begins at RVA 0x6744
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.PatternCollection	V_0)
+		valuetype [mscorlib]System.TimeSpan	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_excludesFile
+	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromSeconds(float64)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PatternSet::get_ExcludesFile
+    } // end of method TimeSpanFunctions::FromSeconds
 
-    // method line 326
-    .method public hidebysig 
-           instance default void Append (class NAnt.Core.Types.PatternSet patternSet)  cil managed 
+    // method line 248
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.TimeSpan FromMilliseconds (float64 'value')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 0A 70 61 74 74 65 72 6E 73 65 74 00 00 ) // ...patternset..
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 11 66 72 6F 6D 2D 6D 69 6C 6C 69 73 65 63   // ...from-millisec
+		6F 6E 64 73 00 00                               ) // onds..
 
-        // Method begins at RVA 0x7b68
-	// Code size 134 (0x86)
-	.maxstack 3
+        // Method begins at RVA 0x6760
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string[]	V_0,
-		string	V_1,
-		string[]	V_2,
-		int32	V_3,
-		string[]	V_4,
-		string	V_5,
-		string[]	V_6,
-		int32	V_7)
+		valuetype [mscorlib]System.TimeSpan	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance string[] class NAnt.Core.Types.PatternSet::GetIncludePatterns()
+	IL_0001:  ldarg.0 
+	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromMilliseconds(float64)
 	IL_0007:  stloc.0 
-	IL_0008:  nop 
-	IL_0009:  ldloc.0 
-	IL_000a:  stloc.2 
-	IL_000b:  ldc.i4.0 
-	IL_000c:  stloc.3 
-	IL_000d:  br IL_0034
-
-	IL_0012:  ldloc.2 
-	IL_0013:  ldloc.3 
-	IL_0014:  ldelem.ref 
-	IL_0015:  stloc.1 
-	IL_0016:  nop 
-	IL_0017:  ldarg.0 
-	IL_0018:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_include
-	IL_001d:  ldarg.0 
-	IL_001e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0023:  ldloc.1 
-	IL_0024:  newobj instance void class NAnt.Core.Types.Pattern::'.ctor'(class NAnt.Core.Project, string)
-	IL_0029:  callvirt instance int32 class NAnt.Core.Types.PatternCollection::Add(class NAnt.Core.Types.Pattern)
-	IL_002e:  pop 
-	IL_002f:  nop 
-	IL_0030:  ldloc.3 
-	IL_0031:  ldc.i4.1 
-	IL_0032:  add 
-	IL_0033:  stloc.3 
-	IL_0034:  ldloc.3 
-	IL_0035:  ldloc.2 
-	IL_0036:  ldlen 
-	IL_0037:  conv.i4 
-	IL_0038:  blt IL_0012
-
-	IL_003d:  ldarg.1 
-	IL_003e:  callvirt instance string[] class NAnt.Core.Types.PatternSet::GetExcludePatterns()
-	IL_0043:  stloc.s 4
-	IL_0045:  nop 
-	IL_0046:  ldloc.s 4
-	IL_0048:  stloc.s 6
-	IL_004a:  ldc.i4.0 
-	IL_004b:  stloc.s 7
-	IL_004d:  br IL_007a
-
-	IL_0052:  ldloc.s 6
-	IL_0054:  ldloc.s 7
-	IL_0056:  ldelem.ref 
-	IL_0057:  stloc.s 5
-	IL_0059:  nop 
-	IL_005a:  ldarg.0 
-	IL_005b:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_exclude
-	IL_0060:  ldarg.0 
-	IL_0061:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0066:  ldloc.s 5
-	IL_0068:  newobj instance void class NAnt.Core.Types.Pattern::'.ctor'(class NAnt.Core.Project, string)
-	IL_006d:  callvirt instance int32 class NAnt.Core.Types.PatternCollection::Add(class NAnt.Core.Types.Pattern)
-	IL_0072:  pop 
-	IL_0073:  nop 
-	IL_0074:  ldloc.s 7
-	IL_0076:  ldc.i4.1 
-	IL_0077:  add 
-	IL_0078:  stloc.s 7
-	IL_007a:  ldloc.s 7
-	IL_007c:  ldloc.s 6
-	IL_007e:  ldlen 
-	IL_007f:  conv.i4 
-	IL_0080:  blt IL_0052
+	IL_0008:  br IL_000d
 
-	IL_0085:  ret 
-    } // end of method PatternSet::Append
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TimeSpanFunctions::FromMilliseconds
 
-    // method line 327
-    .method public hidebysig 
-           instance default string[] GetIncludePatterns ()  cil managed 
+    // method line 249
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.TimeSpan FromTicks (int64 'value')  cil managed 
     {
-        // Method begins at RVA 0x7bfc
-	// Code size 301 (0x12d)
-	.maxstack 3
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 66 72 6F 6D 2D 74 69 63 6B 73 00 00 ) // ...from-ticks..
+
+        // Method begins at RVA 0x677c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0,
-		class NAnt.Core.Types.Pattern	V_1,
-		class NAnt.Core.Types.PatternEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		class NAnt.Core.Types.Pattern	V_4,
-		class NAnt.Core.Types.PatternEnumerator	V_5,
-		string	V_6,
-		class [mscorlib]System.IDisposable	V_7,
-		string[]	V_8)
+		valuetype [mscorlib]System.TimeSpan	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Types.PatternCollection class NAnt.Core.Types.PatternSet::get_Include()
-	IL_0007:  callvirt instance int32 class NAnt.Core.Types.PatternCollection::get_Count()
-	IL_000c:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
-	IL_0011:  stloc.0 
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance class NAnt.Core.Types.PatternCollection class NAnt.Core.Types.PatternSet::get_Include()
-	IL_0019:  callvirt instance class NAnt.Core.Types.PatternEnumerator class NAnt.Core.Types.PatternCollection::GetEnumerator()
-	IL_001e:  stloc.2 
-	.try { // 0
-	  IL_001f:  br IL_004b
-
-	  IL_0024:  ldloc.2 
-	  IL_0025:  callvirt instance class NAnt.Core.Types.Pattern class NAnt.Core.Types.PatternEnumerator::get_Current()
-	  IL_002a:  stloc.1 
-	  IL_002b:  nop 
-	  IL_002c:  ldloc.1 
-	  IL_002d:  callvirt instance bool class NAnt.Core.Types.Pattern::get_Enabled()
-	  IL_0032:  brtrue IL_003d
-
-	  IL_0037:  nop 
-	  IL_0038:  leave IL_004b
-
-	  IL_003d:  ldloc.0 
-	  IL_003e:  ldloc.1 
-	  IL_003f:  callvirt instance string class NAnt.Core.Types.Pattern::get_PatternName()
-	  IL_0044:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0049:  pop 
-	  IL_004a:  nop 
-	  IL_004b:  ldloc.2 
-	  IL_004c:  callvirt instance bool class NAnt.Core.Types.PatternEnumerator::MoveNext()
-	  IL_0051:  brtrue IL_0024
-
-	  IL_0056:  leave IL_006f
-
-	} // end .try 0
-	finally  { // 0
-	  IL_005b:  ldloc.2 
-	  IL_005c:  isinst [mscorlib]System.IDisposable
-	  IL_0061:  dup 
-	  IL_0062:  stloc.3 
-	  IL_0063:  brfalse IL_006e
-
-	  IL_0068:  ldloc.3 
-	  IL_0069:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_006e:  endfinally 
-	} // end handler 0
-	IL_006f:  nop 
-	IL_0070:  ldarg.0 
-	IL_0071:  call instance class NAnt.Core.Types.PatternCollection class NAnt.Core.Types.PatternSet::get_IncludesFile()
-	IL_0076:  callvirt instance class NAnt.Core.Types.PatternEnumerator class NAnt.Core.Types.PatternCollection::GetEnumerator()
-	IL_007b:  stloc.s 5
-	.try { // 1
-	  IL_007d:  br IL_00e6
-
-	  IL_0082:  ldloc.s 5
-	  IL_0084:  callvirt instance class NAnt.Core.Types.Pattern class NAnt.Core.Types.PatternEnumerator::get_Current()
-	  IL_0089:  stloc.s 4
-	  IL_008b:  nop 
-	  IL_008c:  ldloc.s 4
-	  IL_008e:  callvirt instance bool class NAnt.Core.Types.Pattern::get_Enabled()
-	  IL_0093:  brtrue IL_009e
-
-	  IL_0098:  nop 
-	  IL_0099:  leave IL_00e6
-
-	  IL_009e:  ldarg.0 
-	  IL_009f:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_00a4:  ldloc.s 4
-	  IL_00a6:  callvirt instance string class NAnt.Core.Types.Pattern::get_PatternName()
-	  IL_00ab:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	  IL_00b0:  stloc.s 6
-	  IL_00b2:  ldloc.s 6
-	  IL_00b4:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_00b9:  brtrue IL_00dc
+	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromTicks(int64)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_00be:  nop 
-	  IL_00bf:  ldstr "Includesfile '"
-	  IL_00c4:  ldloc.s 6
-	  IL_00c6:  ldstr "' not found."
-	  IL_00cb:  call string string::Concat(string, string, string)
-	  IL_00d0:  ldarg.0 
-	  IL_00d1:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_00d6:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_00db:  throw 
-	  IL_00dc:  ldarg.0 
-	  IL_00dd:  ldloc.s 6
-	  IL_00df:  ldloc.0 
-	  IL_00e0:  call instance void class NAnt.Core.Types.PatternSet::ReadPatterns(string, class [mscorlib]System.Collections.ArrayList)
-	  IL_00e5:  nop 
-	  IL_00e6:  ldloc.s 5
-	  IL_00e8:  callvirt instance bool class NAnt.Core.Types.PatternEnumerator::MoveNext()
-	  IL_00ed:  brtrue IL_0082
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TimeSpanFunctions::FromTicks
 
-	  IL_00f2:  leave IL_010e
+  } // end of class NAnt.Core.Functions.TimeSpanFunctions
+}
 
-	} // end .try 1
-	finally  { // 1
-	  IL_00f7:  ldloc.s 5
-	  IL_00f9:  isinst [mscorlib]System.IDisposable
-	  IL_00fe:  dup 
-	  IL_00ff:  stloc.s 7
-	  IL_0101:  brfalse IL_010d
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit TimeSpanConversionFunctions
+  	extends NAnt.Core.FunctionSetBase
+  {
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 08 74 69 6D 65 73 70 61 6E 0A 43 6F 6E 76   // ...timespan.Conv
+		65 72 73 69 6F 6E 00 00                         ) // ersion..
 
-	  IL_0106:  ldloc.s 7
-	  IL_0108:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_010d:  endfinally 
-	} // end handler 1
-	IL_010e:  ldloc.0 
-	IL_010f:  ldtoken [mscorlib]System.String
-	IL_0114:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0119:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
-	IL_011e:  castclass string[]
-	IL_0123:  stloc.s 8
-	IL_0125:  br IL_012a
 
-	IL_012a:  ldloc.s 8
-	IL_012c:  ret 
-    } // end of method PatternSet::GetIncludePatterns
+    // method line 250
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+    {
+        // Method begins at RVA 0x6797
+	// Code size 10 (0xa)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method TimeSpanConversionFunctions::.ctor
 
-    // method line 328
-    .method public hidebysig 
-           instance default string[] GetExcludePatterns ()  cil managed 
+    // method line 251
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.TimeSpan Parse (string s)  cil managed 
     {
-        // Method begins at RVA 0x7d54
-	// Code size 301 (0x12d)
-	.maxstack 3
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
+
+        // Method begins at RVA 0x67a4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0,
-		class NAnt.Core.Types.Pattern	V_1,
-		class NAnt.Core.Types.PatternEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		class NAnt.Core.Types.Pattern	V_4,
-		class NAnt.Core.Types.PatternEnumerator	V_5,
-		string	V_6,
-		class [mscorlib]System.IDisposable	V_7,
-		string[]	V_8)
+		valuetype [mscorlib]System.TimeSpan	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Types.PatternCollection class NAnt.Core.Types.PatternSet::get_Exclude()
-	IL_0007:  callvirt instance int32 class NAnt.Core.Types.PatternCollection::get_Count()
-	IL_000c:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
-	IL_0011:  stloc.0 
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance class NAnt.Core.Types.PatternCollection class NAnt.Core.Types.PatternSet::get_Exclude()
-	IL_0019:  callvirt instance class NAnt.Core.Types.PatternEnumerator class NAnt.Core.Types.PatternCollection::GetEnumerator()
-	IL_001e:  stloc.2 
-	.try { // 0
-	  IL_001f:  br IL_004b
-
-	  IL_0024:  ldloc.2 
-	  IL_0025:  callvirt instance class NAnt.Core.Types.Pattern class NAnt.Core.Types.PatternEnumerator::get_Current()
-	  IL_002a:  stloc.1 
-	  IL_002b:  nop 
-	  IL_002c:  ldloc.1 
-	  IL_002d:  callvirt instance bool class NAnt.Core.Types.Pattern::get_Enabled()
-	  IL_0032:  brtrue IL_003d
-
-	  IL_0037:  nop 
-	  IL_0038:  leave IL_004b
-
-	  IL_003d:  ldloc.0 
-	  IL_003e:  ldloc.1 
-	  IL_003f:  callvirt instance string class NAnt.Core.Types.Pattern::get_PatternName()
-	  IL_0044:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0049:  pop 
-	  IL_004a:  nop 
-	  IL_004b:  ldloc.2 
-	  IL_004c:  callvirt instance bool class NAnt.Core.Types.PatternEnumerator::MoveNext()
-	  IL_0051:  brtrue IL_0024
-
-	  IL_0056:  leave IL_006f
-
-	} // end .try 0
-	finally  { // 0
-	  IL_005b:  ldloc.2 
-	  IL_005c:  isinst [mscorlib]System.IDisposable
-	  IL_0061:  dup 
-	  IL_0062:  stloc.3 
-	  IL_0063:  brfalse IL_006e
-
-	  IL_0068:  ldloc.3 
-	  IL_0069:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_006e:  endfinally 
-	} // end handler 0
-	IL_006f:  nop 
-	IL_0070:  ldarg.0 
-	IL_0071:  call instance class NAnt.Core.Types.PatternCollection class NAnt.Core.Types.PatternSet::get_ExcludesFile()
-	IL_0076:  callvirt instance class NAnt.Core.Types.PatternEnumerator class NAnt.Core.Types.PatternCollection::GetEnumerator()
-	IL_007b:  stloc.s 5
-	.try { // 1
-	  IL_007d:  br IL_00e6
-
-	  IL_0082:  ldloc.s 5
-	  IL_0084:  callvirt instance class NAnt.Core.Types.Pattern class NAnt.Core.Types.PatternEnumerator::get_Current()
-	  IL_0089:  stloc.s 4
-	  IL_008b:  nop 
-	  IL_008c:  ldloc.s 4
-	  IL_008e:  callvirt instance bool class NAnt.Core.Types.Pattern::get_Enabled()
-	  IL_0093:  brtrue IL_009e
-
-	  IL_0098:  nop 
-	  IL_0099:  leave IL_00e6
-
-	  IL_009e:  ldarg.0 
-	  IL_009f:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_00a4:  ldloc.s 4
-	  IL_00a6:  callvirt instance string class NAnt.Core.Types.Pattern::get_PatternName()
-	  IL_00ab:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	  IL_00b0:  stloc.s 6
-	  IL_00b2:  ldloc.s 6
-	  IL_00b4:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_00b9:  brtrue IL_00dc
-
-	  IL_00be:  nop 
-	  IL_00bf:  ldstr "Excludesfile '"
-	  IL_00c4:  ldloc.s 6
-	  IL_00c6:  ldstr "' not found."
-	  IL_00cb:  call string string::Concat(string, string, string)
-	  IL_00d0:  ldarg.0 
-	  IL_00d1:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_00d6:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_00db:  throw 
-	  IL_00dc:  ldarg.0 
-	  IL_00dd:  ldloc.s 6
-	  IL_00df:  ldloc.0 
-	  IL_00e0:  call instance void class NAnt.Core.Types.PatternSet::ReadPatterns(string, class [mscorlib]System.Collections.ArrayList)
-	  IL_00e5:  nop 
-	  IL_00e6:  ldloc.s 5
-	  IL_00e8:  callvirt instance bool class NAnt.Core.Types.PatternEnumerator::MoveNext()
-	  IL_00ed:  brtrue IL_0082
-
-	  IL_00f2:  leave IL_010e
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00f7:  ldloc.s 5
-	  IL_00f9:  isinst [mscorlib]System.IDisposable
-	  IL_00fe:  dup 
-	  IL_00ff:  stloc.s 7
-	  IL_0101:  brfalse IL_010d
-
-	  IL_0106:  ldloc.s 7
-	  IL_0108:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_010d:  endfinally 
-	} // end handler 1
-	IL_010e:  ldloc.0 
-	IL_010f:  ldtoken [mscorlib]System.String
-	IL_0114:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0119:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
-	IL_011e:  castclass string[]
-	IL_0123:  stloc.s 8
-	IL_0125:  br IL_012a
+	IL_0002:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::Parse(string)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_012a:  ldloc.s 8
-	IL_012c:  ret 
-    } // end of method PatternSet::GetExcludePatterns
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TimeSpanConversionFunctions::Parse
 
-    // method line 329
-    .method private hidebysig 
-           instance default void ReadPatterns (string fileName, class [mscorlib]System.Collections.ArrayList patterns)  cil managed 
+    // method line 252
+    .method public static hidebysig 
+           default string ToString (valuetype [mscorlib]System.TimeSpan 'value')  cil managed 
     {
-        // Method begins at RVA 0x7eac
-	// Code size 104 (0x68)
-	.maxstack 3
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
+
+        // Method begins at RVA 0x67c0
+	// Code size 22 (0x16)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.StreamReader	V_0,
-		string	V_1)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
-	IL_0007:  ldc.i4.1 
-	IL_0008:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
-	IL_000d:  stloc.0 
-	.try { // 0
-	  IL_000e:  nop 
-	  IL_000f:  ldloc.0 
-	  IL_0010:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	  IL_0015:  stloc.1 
-	  IL_0016:  br IL_004e
-
-	  IL_001b:  nop 
-	  IL_001c:  ldloc.1 
-	  IL_001d:  callvirt instance string string::Trim()
-	  IL_0022:  stloc.1 
-	  IL_0023:  ldloc.1 
-	  IL_0024:  callvirt instance int32 string::get_Length()
-	  IL_0029:  brfalse IL_0046
-
-	  IL_002e:  ldloc.1 
-	  IL_002f:  ldc.i4.0 
-	  IL_0030:  callvirt instance char string::get_Chars(int32)
-	  IL_0035:  ldc.i4.s 0x23
-	  IL_0037:  beq IL_0046
-
-	  IL_003c:  nop 
-	  IL_003d:  ldarg.2 
-	  IL_003e:  ldloc.1 
-	  IL_003f:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0044:  pop 
-	  IL_0045:  nop 
-	  IL_0046:  ldloc.0 
-	  IL_0047:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	  IL_004c:  stloc.1 
-	  IL_004d:  nop 
-	  IL_004e:  ldloc.1 
-	  IL_004f:  brtrue IL_001b
-
-	  IL_0054:  nop 
-	  IL_0055:  leave IL_0067
-
-	} // end .try 0
-	finally  { // 0
-	  IL_005a:  ldloc.0 
-	  IL_005b:  brfalse IL_0066
-
-	  IL_0060:  ldloc.0 
-	  IL_0061:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0066:  endfinally 
-	} // end handler 0
-	IL_0067:  ret 
-    } // end of method PatternSet::ReadPatterns
-
-	.property instance class NAnt.Core.Types.PatternCollection Include ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 69 6E 63 6C 75 64 65 00 00 ) // ...include..
-
-		.get instance default class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::get_Include () 
-	}
-	.property instance class NAnt.Core.Types.PatternCollection IncludesFile ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (
-		01 00 0C 69 6E 63 6C 75 64 65 73 66 69 6C 65 00   // ...includesfile.
-		00                                              ) // .
-
-		.get instance default class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::get_IncludesFile () 
-	}
-	.property instance class NAnt.Core.Types.PatternCollection Exclude ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 65 78 63 6C 75 64 65 00 00 ) // ...exclude..
+	IL_0001:  ldarga.s 0
+	IL_0003:  constrained. [mscorlib]System.TimeSpan
+	IL_0009:  callvirt instance string object::ToString()
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0014
 
-		.get instance default class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::get_Exclude () 
-	}
-	.property instance class NAnt.Core.Types.PatternCollection ExcludesFile ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (
-		01 00 0C 65 78 63 6C 75 64 65 73 66 69 6C 65 00   // ...excludesfile.
-		00                                              ) // .
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method TimeSpanConversionFunctions::ToString
 
-		.get instance default class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::get_ExcludesFile () 
-	}
-  } // end of class NAnt.Core.Types.PatternSet
+  } // end of class NAnt.Core.Functions.TimeSpanConversionFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi serializable beforefieldinit XmlNamespaceCollection
-  	extends [mscorlib]System.Collections.CollectionBase
+  .class public auto ansi beforefieldinit DateTimeFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
-
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 08 64 61 74 65 74 69 6D 65 09 44 61 74 65   // ...datetime.Date
+		2F 54 69 6D 65 00 00                            ) // /Time..
 
-    // method line 330
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x7f30
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method XmlNamespaceCollection::.ctor
 
-    // method line 331
+    // method line 253
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XmlNamespaceCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x7f39
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x67e2
+	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Types.XmlNamespaceCollection::AddRange(class NAnt.Core.Types.XmlNamespaceCollection)
-	IL_000e:  ret 
-    } // end of method XmlNamespaceCollection::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method DateTimeFunctions::.ctor
 
-    // method line 332
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XmlNamespace[] 'value')  cil managed 
+    // method line 254
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.DateTime Now ()  cil managed 
     {
-        // Method begins at RVA 0x7f49
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Types.XmlNamespaceCollection::AddRange(class NAnt.Core.Types.XmlNamespace[])
-	IL_000e:  ret 
-    } // end of method XmlNamespaceCollection::.ctor
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 03 6E 6F 77 00 00 ) // ...now..
 
-    // method line 333
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XmlNamespace get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x7f5c
-	// Code size 26 (0x1a)
-	.maxstack 2
+        // Method begins at RVA 0x67f0
+	// Code size 14 (0xe)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.XmlNamespace	V_0)
+		valuetype [mscorlib]System.DateTime	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.Core.Types.XmlNamespace
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0001:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method XmlNamespaceCollection::get_Item
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method DateTimeFunctions::Now
 
-    // method line 334
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.XmlNamespace 'value')  cil managed 
+    // method line 255
+    .method public static hidebysig 
+           default int32 GetYear (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x7f82
-	// Code size 15 (0xf)
-	.maxstack 8
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 79 65 61 72 00 00 ) // ...get-year..
+
+        // Method begins at RVA 0x680c
+	// Code size 16 (0x10)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method XmlNamespaceCollection::set_Item
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Year()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-    // method line 335
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XmlNamespace get_Item (string 'value')  cil managed 
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetYear
+
+    // method line 256
+    .method public static hidebysig 
+           default int32 GetMonth (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x7f94
-	// Code size 111 (0x6f)
-	.maxstack 2
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 6D 6F 6E 74 68 00 00 ) // ...get-month..
+
+        // Method begins at RVA 0x6828
+	// Code size 16 (0x10)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.XmlNamespace	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Types.XmlNamespace	V_2,
-		class [mscorlib]System.IDisposable	V_3)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0066
-
-	IL_0007:  nop 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0014:  stloc.1 
-	.try { // 0
-	  IL_0015:  br IL_0041
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Month()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	  IL_001a:  ldloc.1 
-	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.Core.Types.XmlNamespace
-	  IL_0025:  stloc.0 
-	  IL_0026:  nop 
-	  IL_0027:  ldloc.0 
-	  IL_0028:  callvirt instance string class NAnt.Core.Types.XmlNamespace::get_Prefix()
-	  IL_002d:  ldarg.1 
-	  IL_002e:  call bool string::op_Equality(string, string)
-	  IL_0033:  brfalse IL_0040
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetMonth
 
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  stloc.2 
-	  IL_003b:  leave IL_006d
+    // method line 257
+    .method public static hidebysig 
+           default int32 GetDay (valuetype [mscorlib]System.DateTime 'date')  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 07 67 65 74 2D 64 61 79 00 00 ) // ...get-day..
 
-	  IL_0040:  nop 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_001a
+        // Method begins at RVA 0x6844
+	// Code size 16 (0x10)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Day()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	  IL_004c:  leave IL_0065
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetDay
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0051:  ldloc.1 
-	  IL_0052:  isinst [mscorlib]System.IDisposable
-	  IL_0057:  dup 
-	  IL_0058:  stloc.3 
-	  IL_0059:  brfalse IL_0064
+    // method line 258
+    .method public static hidebysig 
+           default int32 GetHour (valuetype [mscorlib]System.DateTime 'date')  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 67 65 74 2D 68 6F 75 72 00 00 ) // ...get-hour..
 
-	  IL_005e:  ldloc.3 
-	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0064:  endfinally 
-	} // end handler 0
-	IL_0065:  nop 
-	IL_0066:  ldnull 
-	IL_0067:  stloc.2 
-	IL_0068:  br IL_006d
+        // Method begins at RVA 0x6860
+	// Code size 16 (0x10)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Hour()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_006d:  ldloc.2 
-	IL_006e:  ret 
-    } // end of method XmlNamespaceCollection::get_Item
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetHour
 
-    // method line 336
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.XmlNamespace item)  cil managed 
+    // method line 259
+    .method public static hidebysig 
+           default int32 GetMinute (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x8020
-	// Code size 21 (0x15)
-	.maxstack 2
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 67 65 74 2D 6D 69 6E 75 74 65 00 00 ) // ...get-minute..
+
+        // Method begins at RVA 0x687c
+	// Code size 16 (0x10)
+	.maxstack 1
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Minute()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method XmlNamespaceCollection::Add
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetMinute
 
-    // method line 337
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.XmlNamespace[] items)  cil managed 
+    // method line 260
+    .method public static hidebysig 
+           default int32 GetSecond (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x8044
-	// Code size 34 (0x22)
-	.maxstack 3
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 67 65 74 2D 73 65 63 6F 6E 64 00 00 ) // ...get-second..
+
+        // Method begins at RVA 0x6898
+	// Code size 16 (0x10)
+	.maxstack 1
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Core.Types.XmlNamespaceCollection::Add(class NAnt.Core.Types.XmlNamespace)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Second()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_0021:  ret 
-    } // end of method XmlNamespaceCollection::AddRange
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetSecond
 
-    // method line 338
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.XmlNamespaceCollection items)  cil managed 
+    // method line 261
+    .method public static hidebysig 
+           default int32 GetMillisecond (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x8074
-	// Code size 41 (0x29)
-	.maxstack 3
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0F 67 65 74 2D 6D 69 6C 6C 69 73 65 63 6F   // ...get-milliseco
+		6E 64 00 00                                     ) // nd..
+
+        // Method begins at RVA 0x68b4
+	// Code size 16 (0x10)
+	.maxstack 1
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Core.Types.XmlNamespace class NAnt.Core.Types.XmlNamespaceCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Core.Types.XmlNamespaceCollection::Add(class NAnt.Core.Types.XmlNamespace)
-	IL_0016:  pop 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0023:  blt IL_0008
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_Millisecond()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_0028:  ret 
-    } // end of method XmlNamespaceCollection::AddRange
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetMillisecond
 
-    // method line 339
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.XmlNamespace item)  cil managed 
+    // method line 262
+    .method public static hidebysig 
+           default int64 GetTicks (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x80ac
-	// Code size 21 (0x15)
-	.maxstack 2
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 74 69 63 6B 73 00 00 ) // ...get-ticks..
+
+        // Method begins at RVA 0x68d0
+	// Code size 16 (0x10)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		int64	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int64 valuetype [mscorlib]System.DateTime::get_Ticks()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method XmlNamespaceCollection::Contains
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetTicks
 
-    // method line 340
-    .method public hidebysig 
-           instance default bool Contains (string 'value')  cil managed 
+    // method line 263
+    .method public static hidebysig 
+           default int32 GetDayOfWeek (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x80d0
-	// Code size 22 (0x16)
-	.maxstack 2
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0F 67 65 74 2D 64 61 79 2D 6F 66 2D 77 65   // ...get-day-of-we
+		65 6B 00 00                                     ) // ek..
+
+        // Method begins at RVA 0x68ec
+	// Code size 16 (0x10)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.Types.XmlNamespace class NAnt.Core.Types.XmlNamespaceCollection::get_Item(string)
-	IL_0008:  ldnull 
-	IL_0009:  ceq 
-	IL_000b:  ldc.i4.0 
-	IL_000c:  ceq 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0014
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance valuetype [mscorlib]System.DayOfWeek valuetype [mscorlib]System.DateTime::get_DayOfWeek()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method XmlNamespaceCollection::Contains
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetDayOfWeek
 
-    // method line 341
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.XmlNamespace[] 'array', int32 index)  cil managed 
+    // method line 264
+    .method public static hidebysig 
+           default int32 GetDayOfYear (valuetype [mscorlib]System.DateTime 'date')  cil managed 
     {
-        // Method begins at RVA 0x80f2
-	// Code size 15 (0xf)
-	.maxstack 8
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0F 67 65 74 2D 64 61 79 2D 6F 66 2D 79 65   // ...get-day-of-ye
+		61 72 00 00                                     ) // ar..
+
+        // Method begins at RVA 0x6908
+	// Code size 16 (0x10)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method XmlNamespaceCollection::CopyTo
+	IL_0001:  ldarga.s 0
+	IL_0003:  call instance int32 valuetype [mscorlib]System.DateTime::get_DayOfYear()
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-    // method line 342
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.XmlNamespace item)  cil managed 
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetDayOfYear
+
+    // method line 265
+    .method public static hidebysig 
+           default int32 GetDaysInMonth (int32 year, int32 month)  cil managed 
     {
-        // Method begins at RVA 0x8104
-	// Code size 21 (0x15)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 11 67 65 74 2D 64 61 79 73 2D 69 6E 2D 6D   // ...get-days-in-m
+		6F 6E 74 68 00 00                               ) // onth..
+
+        // Method begins at RVA 0x6924
+	// Code size 16 (0x10)
 	.maxstack 2
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  ldarg.1 
+	IL_0003:  call int32 valuetype [mscorlib]System.DateTime::DaysInMonth(int32, int32)
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method XmlNamespaceCollection::IndexOf
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method DateTimeFunctions::GetDaysInMonth
 
-    // method line 343
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.XmlNamespace item)  cil managed 
+    // method line 266
+    .method public static hidebysig 
+           default bool IsLeapYear (int32 year)  cil managed 
     {
-        // Method begins at RVA 0x8125
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method XmlNamespaceCollection::Insert
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0C 69 73 2D 6C 65 61 70 2D 79 65 61 72 00   // ...is-leap-year.
+		00                                              ) // .
 
-    // method line 344
-    .method public hidebysig 
-           instance default class NAnt.Core.Types.XmlNamespaceEnumerator GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x8138
+        // Method begins at RVA 0x6940
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.XmlNamespaceEnumerator	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.Types.XmlNamespaceEnumerator::'.ctor'(class NAnt.Core.Types.XmlNamespaceCollection)
+	IL_0002:  call bool valuetype [mscorlib]System.DateTime::IsLeapYear(int32)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XmlNamespaceCollection::GetEnumerator
-
-    // method line 345
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.XmlNamespace item)  cil managed 
-    {
-        // Method begins at RVA 0x8153
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method XmlNamespaceCollection::Remove
+    } // end of method DateTimeFunctions::IsLeapYear
 
-	.property instance class NAnt.Core.Types.XmlNamespace Item (int32)
-	{
-		.get instance default class NAnt.Core.Types.XmlNamespace NAnt.Core.Types.XmlNamespaceCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Core.Types.XmlNamespaceCollection::set_Item (int32 index, class NAnt.Core.Types.XmlNamespace 'value') 
-	}
-	.property instance class NAnt.Core.Types.XmlNamespace Item (string)
-	{
-		.get instance default class NAnt.Core.Types.XmlNamespace NAnt.Core.Types.XmlNamespaceCollection::get_Item (string 'value') 
-	}
-  } // end of class NAnt.Core.Types.XmlNamespaceCollection
+  } // end of class NAnt.Core.Functions.DateTimeFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi beforefieldinit XmlNamespaceEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+  .class public auto ansi beforefieldinit DateTimeConversionFunctions
+  	extends NAnt.Core.FunctionSetBase
+  {
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 08 64 61 74 65 74 69 6D 65 0A 43 6F 6E 76   // ...datetime.Conv
+		65 72 73 69 6F 6E 00 00                         ) // ersion..
 
-    // method line 346
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XmlNamespaceCollection arguments)  cil managed 
+
+    // method line 267
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x8164
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
+        // Method begins at RVA 0x695b
+	// Code size 10 (0xa)
+	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method XmlNamespaceEnumerator::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method DateTimeConversionFunctions::.ctor
 
-    // method line 347
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XmlNamespace get_Current ()  cil managed 
+    // method line 268
+    .method public static hidebysig 
+           default valuetype [mscorlib]System.DateTime Parse (string s)  cil managed 
     {
-        // Method begins at RVA 0x8188
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.XmlNamespace	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.Types.XmlNamespace
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method XmlNamespaceEnumerator::get_Current
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
 
-    // method line 348
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x81b0
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+        // Method begins at RVA 0x6968
 	// Code size 20 (0x14)
-	.maxstack 1
+	.maxstack 2
 	.locals init (
-		object	V_0)
+		valuetype [mscorlib]System.DateTime	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0007:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::Parse(string, class [mscorlib]System.IFormatProvider)
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method XmlNamespaceEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method DateTimeConversionFunctions::Parse
 
-    // method line 349
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
+    // method line 269
+    .method public static hidebysig 
+           default string ToString (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x81d0
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method XmlNamespaceEnumerator::MoveNext
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
 
-    // method line 350
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x81f0
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x6988
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  ldarga.s 0
+	IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0008:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method XmlNamespaceEnumerator::System.Collections.IEnumerator.MoveNext
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method DateTimeConversionFunctions::ToString
 
-    // method line 351
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
+    // method line 270
+    .method public static hidebysig 
+           default string ToString (valuetype [mscorlib]System.DateTime 'value', string format)  cil managed 
     {
-        // Method begins at RVA 0x8210
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method XmlNamespaceEnumerator::Reset
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 10 66 6F 72 6D 61 74 2D 74 6F 2D 73 74 72   // ...format-to-str
+		69 6E 67 00 00                                  ) // ing..
 
-    // method line 352
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x821e
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
+        // Method begins at RVA 0x69ac
+	// Code size 22 (0x16)
+	.maxstack 3
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method XmlNamespaceEnumerator::System.Collections.IEnumerator.Reset
+	IL_0001:  ldarga.s 0
+	IL_0003:  ldarg.1 
+	IL_0004:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0009:  call instance string valuetype [mscorlib]System.DateTime::ToString(string, class [mscorlib]System.IFormatProvider)
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0014
 
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.Core.Types.XmlNamespaceEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.Core.Types.XmlNamespace Current ()
-	{
-		.get instance default class NAnt.Core.Types.XmlNamespace NAnt.Core.Types.XmlNamespaceEnumerator::get_Current () 
-	}
-  } // end of class NAnt.Core.Types.XmlNamespaceEnumerator
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method DateTimeConversionFunctions::ToString
+
+  } // end of class NAnt.Core.Functions.DateTimeConversionFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi serializable beforefieldinit Argument
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit PathFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 03 61 72 67 00 00 ) // ...arg..
-
-    .field  private  class [mscorlib]System.IO.FileInfo _file
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _directory
-    .field  private  class NAnt.Core.Types.PathSet _path
-    .field  private  string _value
-    .field  private  string _line
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
-
-    // method line 353
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x822c
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.Argument::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method Argument::.ctor
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (01 00 04 70 61 74 68 04 50 61 74 68 00 00 ) // ...path.Path..
 
-    // method line 354
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x823c
-	// Code size 22 (0x16)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.Argument::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  stfld string NAnt.Core.Types.Argument::_value
-	IL_0015:  ret 
-    } // end of method Argument::.ctor
 
-    // method line 355
+    // method line 271
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x8253
-	// Code size 22 (0x16)
+        // Method begins at RVA 0x69ce
+	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.Argument::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.Argument::_file
-	IL_0015:  ret 
-    } // end of method Argument::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method PathFunctions::.ctor
 
-    // method line 356
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.PathSet 'value')  cil managed 
+    // method line 272
+    .method public hidebysig 
+           instance default string GetFullPath (string path)  cil managed 
     {
-        // Method begins at RVA 0x826a
-	// Code size 22 (0x16)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.Argument::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  stfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
-	IL_0015:  ret 
-    } // end of method Argument::.ctor
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0D 67 65 74 2D 66 75 6C 6C 2D 70 61 74 68   // ...get-full-path
+		00 00                                           ) // ..
 
-    // method line 357
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
-    {
-        // Method begins at RVA 0x8284
-	// Code size 170 (0xaa)
-	.maxstack 1
+        // Method begins at RVA 0x69dc
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.Argument::get_File()
-	IL_0007:  brfalse IL_0023
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.Argument::get_File()
-	IL_0013:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0018:  call string class NAnt.Core.Types.Argument::QuoteArgument(string)
-	IL_001d:  stloc.0 
-	IL_001e:  br IL_00a8
-
-	IL_0023:  ldarg.0 
-	IL_0024:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.Argument::get_Directory()
-	IL_0029:  brfalse IL_0045
-
-	IL_002e:  nop 
-	IL_002f:  ldarg.0 
-	IL_0030:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.Argument::get_Directory()
-	IL_0035:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_003a:  call string class NAnt.Core.Types.Argument::QuoteArgument(string)
-	IL_003f:  stloc.0 
-	IL_0040:  br IL_00a8
-
-	IL_0045:  ldarg.0 
-	IL_0046:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.Argument::get_Path()
-	IL_004b:  brfalse IL_0067
-
-	IL_0050:  nop 
-	IL_0051:  ldarg.0 
-	IL_0052:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.Argument::get_Path()
-	IL_0057:  callvirt instance string object::ToString()
-	IL_005c:  call string class NAnt.Core.Types.Argument::QuoteArgument(string)
-	IL_0061:  stloc.0 
-	IL_0062:  br IL_00a8
-
-	IL_0067:  ldarg.0 
-	IL_0068:  call instance string class NAnt.Core.Types.Argument::get_Value()
-	IL_006d:  brfalse IL_0084
-
-	IL_0072:  nop 
-	IL_0073:  ldarg.0 
-	IL_0074:  call instance string class NAnt.Core.Types.Argument::get_Value()
-	IL_0079:  call string class NAnt.Core.Types.Argument::QuoteArgument(string)
-	IL_007e:  stloc.0 
-	IL_007f:  br IL_00a8
-
-	IL_0084:  ldarg.0 
-	IL_0085:  call instance string class NAnt.Core.Types.Argument::get_Line()
-	IL_008a:  brfalse IL_009c
-
-	IL_008f:  nop 
-	IL_0090:  ldarg.0 
-	IL_0091:  call instance string class NAnt.Core.Types.Argument::get_Line()
-	IL_0096:  stloc.0 
-	IL_0097:  br IL_00a8
-
-	IL_009c:  nop 
-	IL_009d:  ldsfld string [mscorlib]System.String::Empty
-	IL_00a2:  stloc.0 
-	IL_00a3:  br IL_00a8
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_00a8:  ldloc.0 
-	IL_00a9:  ret 
-    } // end of method Argument::ToString
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method PathFunctions::GetFullPath
 
-    // method line 358
-    .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
+    // method line 273
+    .method public static hidebysig 
+           default string Combine (string path1, string path2)  cil managed 
     {
-        // Method begins at RVA 0x833c
-	// Code size 15 (0xf)
-	.maxstack 1
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 07 63 6F 6D 62 69 6E 65 00 00 ) // ...combine..
+
+        // Method begins at RVA 0x6a00
+	// Code size 16 (0x10)
+	.maxstack 2
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Argument::_value
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Argument::get_Value
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method PathFunctions::Combine
 
-    // method line 359
-    .method public hidebysig specialname 
-           instance default void set_Value (string 'value')  cil managed 
+    // method line 274
+    .method public static hidebysig 
+           default string ChangeExtension (string path, string extension)  cil managed 
     {
-        // Method begins at RVA 0x8357
-	// Code size 9 (0x9)
-	.maxstack 8
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 10 63 68 61 6E 67 65 2D 65 78 74 65 6E 73   // ...change-extens
+		69 6F 6E 00 00                                  ) // ion..
+
+        // Method begins at RVA 0x6a1c
+	// Code size 16 (0x10)
+	.maxstack 2
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.Argument::_value
-	IL_0008:  ret 
-    } // end of method Argument::set_Value
+	IL_0003:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-    // method line 360
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method PathFunctions::ChangeExtension
+
+    // method line 275
+    .method public static hidebysig 
+           default string GetDirectoryName (string path)  cil managed 
     {
-        // Method begins at RVA 0x8364
-	// Code size 15 (0xf)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 12 67 65 74 2D 64 69 72 65 63 74 6F 72 79   // ...get-directory
+		2D 6E 61 6D 65 00 00                            ) // -name..
+
+        // Method begins at RVA 0x6a38
+	// Code size 22 (0x16)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		string	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.Argument::_file
+	IL_0002:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
 	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0008:  ldloc.0 
+	IL_0009:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
+	IL_000e:  stloc.1 
+	IL_000f:  br IL_0014
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Argument::get_File
+	IL_0014:  ldloc.1 
+	IL_0015:  ret 
+    } // end of method PathFunctions::GetDirectoryName
 
-    // method line 361
-    .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 276
+    .method public static hidebysig 
+           default string GetExtension (string path)  cil managed 
     {
-        // Method begins at RVA 0x837f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.Argument::_file
-	IL_0008:  ret 
-    } // end of method Argument::set_File
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0D 67 65 74 2D 65 78 74 65 6E 73 69 6F 6E   // ...get-extension
+		00 00                                           ) // ..
 
-    // method line 362
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
-    {
-        // Method begins at RVA 0x838c
+        // Method begins at RVA 0x6a5c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.Argument::_directory
+	IL_0002:  call string class [mscorlib]System.IO.Path::GetExtension(string)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Argument::get_Directory
+    } // end of method PathFunctions::GetExtension
 
-    // method line 363
-    .method public hidebysig specialname 
-           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    // method line 277
+    .method public static hidebysig 
+           default string GetFileName (string path)  cil managed 
     {
-        // Method begins at RVA 0x83a7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.Argument::_directory
-	IL_0008:  ret 
-    } // end of method Argument::set_Directory
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0D 67 65 74 2D 66 69 6C 65 2D 6E 61 6D 65   // ...get-file-name
+		00 00                                           ) // ..
 
-    // method line 364
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
-    {
-        // Method begins at RVA 0x83b4
+        // Method begins at RVA 0x6a78
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.PathSet	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
+	IL_0002:  call string class [mscorlib]System.IO.Path::GetFileName(string)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Argument::get_Path
+    } // end of method PathFunctions::GetFileName
 
-    // method line 365
-    .method public hidebysig specialname 
-           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
+    // method line 278
+    .method public static hidebysig 
+           default string GetFileNameWithoutExtension (string path)  cil managed 
     {
-        // Method begins at RVA 0x83cf
-	// Code size 38 (0x26)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
-	IL_0007:  brfalse IL_001e
-
-	IL_000c:  nop 
-	IL_000d:  ldstr "Either set the path using the \"path\" attribute or the <path> element. You cannot set both."
-	IL_0012:  ldarg.0 
-	IL_0013:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_001d:  throw 
-	IL_001e:  ldarg.0 
-	IL_001f:  ldarg.1 
-	IL_0020:  stfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
-	IL_0025:  ret 
-    } // end of method Argument::set_Path
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 1F 67 65 74 2D 66 69 6C 65 2D 6E 61 6D 65   // ...get-file-name
+		2D 77 69 74 68 6F 75 74 2D 65 78 74 65 6E 73 69   // -without-extensi
+		6F 6E 00 00                                     ) // on..
 
-    // method line 366
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PathSet get_PathSet ()  cil managed 
-    {
-        // Method begins at RVA 0x83f8
+        // Method begins at RVA 0x6a94
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.PathSet	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
+	IL_0002:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Argument::get_PathSet
+    } // end of method PathFunctions::GetFileNameWithoutExtension
 
-    // method line 367
-    .method public hidebysig specialname 
-           instance default void set_PathSet (class NAnt.Core.Types.PathSet 'value')  cil managed 
+    // method line 279
+    .method public static hidebysig 
+           default string GetPathRoot (string path)  cil managed 
     {
-        // Method begins at RVA 0x8413
-	// Code size 38 (0x26)
-	.maxstack 8
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0D 67 65 74 2D 70 61 74 68 2D 72 6F 6F 74   // ...get-path-root
+		00 00                                           ) // ..
+
+        // Method begins at RVA 0x6ab0
+	// Code size 22 (0x16)
+	.maxstack 1
+	.locals init (
+		string	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
-	IL_0007:  brfalse IL_001e
+	IL_0002:  call string class [mscorlib]System.IO.Path::GetPathRoot(string)
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
+	IL_000e:  stloc.1 
+	IL_000f:  br IL_0014
 
-	IL_000c:  nop 
-	IL_000d:  ldstr "Either set the path using the \"path\" attribute or the <path> element. You cannot set both."
-	IL_0012:  ldarg.0 
-	IL_0013:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_001d:  throw 
-	IL_001e:  ldarg.0 
-	IL_001f:  ldarg.1 
-	IL_0020:  stfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
-	IL_0025:  ret 
-    } // end of method Argument::set_PathSet
+	IL_0014:  ldloc.1 
+	IL_0015:  ret 
+    } // end of method PathFunctions::GetPathRoot
 
-    // method line 368
-    .method public hidebysig specialname 
-           instance default string get_Line ()  cil managed 
+    // method line 280
+    .method public static hidebysig 
+           default string GetTempFileName ()  cil managed 
     {
-        // Method begins at RVA 0x843c
-	// Code size 15 (0xf)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 12 67 65 74 2D 74 65 6D 70 2D 66 69 6C 65   // ...get-temp-file
+		2D 6E 61 6D 65 00 00                            ) // -name..
+
+        // Method begins at RVA 0x6ad4
+	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Argument::_line
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  call string class [mscorlib]System.IO.Path::GetTempFileName()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Argument::get_Line
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method PathFunctions::GetTempFileName
 
-    // method line 369
-    .method public hidebysig specialname 
-           instance default void set_Line (string 'value')  cil managed 
+    // method line 281
+    .method public static hidebysig 
+           default string GetTempPath ()  cil managed 
     {
-        // Method begins at RVA 0x8457
-	// Code size 9 (0x9)
-	.maxstack 8
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0D 67 65 74 2D 74 65 6D 70 2D 70 61 74 68   // ...get-temp-path
+		00 00                                           ) // ..
+
+        // Method begins at RVA 0x6af0
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.Argument::_line
-	IL_0008:  ret 
-    } // end of method Argument::set_Line
+	IL_0001:  call string class [mscorlib]System.IO.Path::GetTempPath()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-    // method line 370
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method PathFunctions::GetTempPath
+
+    // method line 282
+    .method public static hidebysig 
+           default bool HasExtension (string path)  cil managed 
     {
-        // Method begins at RVA 0x8464
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0D 68 61 73 2D 65 78 74 65 6E 73 69 6F 6E   // ...has-extension
+		00 00                                           ) // ..
+
+        // Method begins at RVA 0x6b0c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Argument::_ifDefined
+	IL_0002:  call bool class [mscorlib]System.IO.Path::HasExtension(string)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Argument::get_IfDefined
+    } // end of method PathFunctions::HasExtension
 
-    // method line 371
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 283
+    .method public static hidebysig 
+           default bool IsPathRooted (string path)  cil managed 
     {
-        // Method begins at RVA 0x847f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Argument::_ifDefined
-	IL_0008:  ret 
-    } // end of method Argument::set_IfDefined
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0E 69 73 2D 70 61 74 68 2D 72 6F 6F 74 65   // ...is-path-roote
+		64 00 00                                        ) // d..
 
-    // method line 372
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x848c
+        // Method begins at RVA 0x6b28
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Argument::_unlessDefined
+	IL_0002:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Argument::get_UnlessDefined
+    } // end of method PathFunctions::IsPathRooted
 
-    // method line 373
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+  } // end of class NAnt.Core.Functions.PathFunctions
+}
+
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit Int32ConversionFunctions
+  	extends NAnt.Core.FunctionSetBase
+  {
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 03 69 6E 74 0A 43 6F 6E 76 65 72 73 69 6F   // ...int.Conversio
+		6E 00 00                                        ) // n..
+
+
+    // method line 284
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x84a7
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x6b43
+	// Code size 10 (0xa)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Argument::_unlessDefined
-	IL_0008:  ret 
-    } // end of method Argument::set_UnlessDefined
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method Int32ConversionFunctions::.ctor
 
-    // method line 374
-    .method assembly hidebysig specialname 
-           instance default string get_StringValue ()  cil managed 
+    // method line 285
+    .method public static hidebysig 
+           default int32 Parse (string s)  cil managed 
     {
-        // Method begins at RVA 0x84b4
-	// Code size 127 (0x7f)
-	.maxstack 1
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
+
+        // Method begins at RVA 0x6b50
+	// Code size 20 (0x14)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.Argument::get_File()
-	IL_0007:  brfalse IL_001e
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.Argument::get_File()
-	IL_0013:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_007d
-
-	IL_001e:  ldarg.0 
-	IL_001f:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.Argument::get_Directory()
-	IL_0024:  brfalse IL_003b
-
-	IL_0029:  nop 
-	IL_002a:  ldarg.0 
-	IL_002b:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.Argument::get_Directory()
-	IL_0030:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0035:  stloc.0 
-	IL_0036:  br IL_007d
-
-	IL_003b:  ldarg.0 
-	IL_003c:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.Argument::get_Path()
-	IL_0041:  brfalse IL_0058
-
-	IL_0046:  nop 
-	IL_0047:  ldarg.0 
-	IL_0048:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.Argument::get_Path()
-	IL_004d:  callvirt instance string object::ToString()
-	IL_0052:  stloc.0 
-	IL_0053:  br IL_007d
-
-	IL_0058:  ldarg.0 
-	IL_0059:  call instance string class NAnt.Core.Types.Argument::get_Line()
-	IL_005e:  brfalse IL_0070
-
-	IL_0063:  nop 
-	IL_0064:  ldarg.0 
-	IL_0065:  call instance string class NAnt.Core.Types.Argument::get_Line()
-	IL_006a:  stloc.0 
-	IL_006b:  br IL_007d
-
-	IL_0070:  nop 
-	IL_0071:  ldarg.0 
-	IL_0072:  call instance string class NAnt.Core.Types.Argument::get_Value()
-	IL_0077:  stloc.0 
-	IL_0078:  br IL_007d
+	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0007:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_007d:  ldloc.0 
-	IL_007e:  ret 
-    } // end of method Argument::get_StringValue
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method Int32ConversionFunctions::Parse
 
-    // method line 375
-    .method private static hidebysig 
-           default string QuoteArgument (string argument)  cil managed 
+    // method line 286
+    .method public static hidebysig 
+           default string ToString (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x8540
-	// Code size 97 (0x61)
-	.maxstack 3
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
+
+        // Method begins at RVA 0x6b70
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "\""
-	IL_0007:  callvirt instance int32 string::IndexOf(string)
-	IL_000c:  ldc.i4.m1 
-	IL_000d:  ble IL_001a
-
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  stloc.0 
-	IL_0015:  br IL_005f
-
-	IL_001a:  ldarg.0 
-	IL_001b:  ldstr "'"
-	IL_0020:  callvirt instance int32 string::IndexOf(string)
-	IL_0025:  ldc.i4.m1 
-	IL_0026:  bgt IL_003c
-
-	IL_002b:  ldarg.0 
-	IL_002c:  ldstr " "
-	IL_0031:  callvirt instance int32 string::IndexOf(string)
-	IL_0036:  ldc.i4.m1 
-	IL_0037:  ble IL_0057
-
-	IL_003c:  nop 
-	IL_003d:  ldc.i4.s 0x22
-	IL_003f:  box [mscorlib]System.Char
-	IL_0044:  ldarg.0 
-	IL_0045:  ldc.i4.s 0x22
-	IL_0047:  box [mscorlib]System.Char
-	IL_004c:  call string string::Concat(object, object, object)
-	IL_0051:  stloc.0 
-	IL_0052:  br IL_005f
-
-	IL_0057:  nop 
-	IL_0058:  ldarg.0 
-	IL_0059:  stloc.0 
-	IL_005a:  br IL_005f
-
-	IL_005f:  ldloc.0 
-	IL_0060:  ret 
-    } // end of method Argument::QuoteArgument
-
-	.property instance string Value ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 76 61 6C 75 65 00 00 ) // ...value..
-
-		.get instance default string NAnt.Core.Types.Argument::get_Value () 
-		.set instance default void NAnt.Core.Types.Argument::set_Value (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo File ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Types.Argument::get_File () 
-		.set instance default void NAnt.Core.Types.Argument::set_File (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo Directory ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 69 72 00 00 ) // ...dir..
-
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.Argument::get_Directory () 
-		.set instance default void NAnt.Core.Types.Argument::set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance class NAnt.Core.Types.PathSet Path ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
-
-		.get instance default class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::get_Path () 
-		.set instance default void NAnt.Core.Types.Argument::set_Path (class NAnt.Core.Types.PathSet 'value') 
-	}
-	.property instance class NAnt.Core.Types.PathSet PathSet ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
-
-		.get instance default class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::get_PathSet () 
-		.set instance default void NAnt.Core.Types.Argument::set_PathSet (class NAnt.Core.Types.PathSet 'value') 
-	}
-	.property instance string Line ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 6C 69 6E 65 00 00 ) // ...line..
-
-		.get instance default string NAnt.Core.Types.Argument::get_Line () 
-		.set instance default void NAnt.Core.Types.Argument::set_Line (string 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.Argument::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.Argument::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+	IL_0001:  ldarga.s 0
+	IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0008:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method Int32ConversionFunctions::ToString
 
-		.get instance default bool NAnt.Core.Types.Argument::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.Argument::set_UnlessDefined (bool 'value') 
-	}
-	.property instance string StringValue ()
-	{
-		.get instance default string NAnt.Core.Types.Argument::get_StringValue () 
-	}
-  } // end of class NAnt.Core.Types.Argument
+  } // end of class NAnt.Core.Functions.Int32ConversionFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi beforefieldinit Proxy
-  	extends NAnt.Core.DataTypeBase
+  .class public auto ansi beforefieldinit PkgConfigFunctions
+  	extends NAnt.Core.FunctionSetBase
   {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 05 70 72 6F 78 79 00 00 ) // ...proxy..
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 0A 70 6B 67 2D 63 6F 6E 66 69 67 0B 55 6E   // ...pkg-config.Un
+		69 78 2F 43 79 67 77 69 6E 00 00                ) // ix/Cygwin..
 
-    .field  private  string _host
-    .field  private  int32 _port
-    .field  private  bool _bypassOnLocal
-    .field  private  class NAnt.Core.Types.Credential _credentials
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
 
-    // method line 376
+    // method line 287
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x85ad
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x6b91
+	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.Proxy::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method Proxy::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method PkgConfigFunctions::.ctor
 
-    // method line 377
-    .method public hidebysig specialname 
-           instance default string get_Host ()  cil managed 
+    // method line 288
+    .method public hidebysig 
+           instance default string GetVariable (string package, string name)  cil managed 
     {
-        // Method begins at RVA 0x85c0
-	// Code size 15 (0xf)
-	.maxstack 1
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0C 67 65 74 2D 76 61 72 69 61 62 6C 65 00   // ...get-variable.
+		00                                              ) // .
+
+        // Method begins at RVA 0x6b9c
+	// Code size 94 (0x5e)
+	.maxstack 7
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Proxy::_host
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::Exists(string)
+	IL_0008:  brtrue IL_0029
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Proxy::get_Host
+	IL_000d:  nop 
+	IL_000e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0013:  ldstr "NA1100"
+	IL_0018:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_001d:  ldarg.1 
+	IL_001e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0023:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0028:  throw 
+	IL_0029:  ldarg.0 
+	IL_002a:  ldc.i4.2 
+	IL_002b:  newarr NAnt.Core.Types.Argument
+	IL_0030:  dup 
+	IL_0031:  ldc.i4.0 
+	IL_0032:  ldstr "--variable=\""
+	IL_0037:  ldarg.2 
+	IL_0038:  ldstr "\""
+	IL_003d:  call string string::Concat(string, string, string)
+	IL_0042:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0047:  stelem.ref 
+	IL_0048:  dup 
+	IL_0049:  ldc.i4.1 
+	IL_004a:  ldarg.1 
+	IL_004b:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0050:  stelem.ref 
+	IL_0051:  call instance string class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigString(class NAnt.Core.Types.Argument[])
+	IL_0056:  stloc.0 
+	IL_0057:  br IL_005c
 
-    // method line 378
-    .method public hidebysig specialname 
-           instance default void set_Host (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x85db
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Types.Proxy::_host
-	IL_000d:  ret 
-    } // end of method Proxy::set_Host
+	IL_005c:  ldloc.0 
+	IL_005d:  ret 
+    } // end of method PkgConfigFunctions::GetVariable
 
-    // method line 379
-    .method public hidebysig specialname 
-           instance default int32 get_Port ()  cil managed 
+    // method line 289
+    .method public hidebysig 
+           instance default string GetLinkFlags (string package)  cil managed 
     {
-        // Method begins at RVA 0x85ec
-	// Code size 15 (0xf)
-	.maxstack 1
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0E 67 65 74 2D 6C 69 6E 6B 2D 66 6C 61 67   // ...get-link-flag
+		73 00 00                                        ) // s..
+
+        // Method begins at RVA 0x6c08
+	// Code size 83 (0x53)
+	.maxstack 5
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Types.Proxy::_port
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::Exists(string)
+	IL_0008:  brtrue IL_0029
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Proxy::get_Port
+	IL_000d:  nop 
+	IL_000e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0013:  ldstr "NA1100"
+	IL_0018:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_001d:  ldarg.1 
+	IL_001e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0023:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0028:  throw 
+	IL_0029:  ldarg.0 
+	IL_002a:  ldc.i4.2 
+	IL_002b:  newarr NAnt.Core.Types.Argument
+	IL_0030:  dup 
+	IL_0031:  ldc.i4.0 
+	IL_0032:  ldstr "--libs"
+	IL_0037:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_003c:  stelem.ref 
+	IL_003d:  dup 
+	IL_003e:  ldc.i4.1 
+	IL_003f:  ldarg.1 
+	IL_0040:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0045:  stelem.ref 
+	IL_0046:  call instance string class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigString(class NAnt.Core.Types.Argument[])
+	IL_004b:  stloc.0 
+	IL_004c:  br IL_0051
 
-    // method line 380
-    .method public hidebysig specialname 
-           instance default void set_Port (int32 'value')  cil managed 
+	IL_0051:  ldloc.0 
+	IL_0052:  ret 
+    } // end of method PkgConfigFunctions::GetLinkFlags
+
+    // method line 290
+    .method public hidebysig 
+           instance default string GetCompileFlags (string package)  cil managed 
     {
-        // Method begins at RVA 0x8607
-	// Code size 9 (0x9)
-	.maxstack 8
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 11 67 65 74 2D 63 6F 6D 70 69 6C 65 2D 66   // ...get-compile-f
+		6C 61 67 73 00 00                               ) // lags..
+
+        // Method begins at RVA 0x6c68
+	// Code size 83 (0x53)
+	.maxstack 5
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.Types.Proxy::_port
-	IL_0008:  ret 
-    } // end of method Proxy::set_Port
+	IL_0003:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::Exists(string)
+	IL_0008:  brtrue IL_0029
 
-    // method line 381
-    .method public hidebysig specialname 
-           instance default bool get_BypassOnLocal ()  cil managed 
-    {
-        // Method begins at RVA 0x8614
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Proxy::_bypassOnLocal
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_000d:  nop 
+	IL_000e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0013:  ldstr "NA1100"
+	IL_0018:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_001d:  ldarg.1 
+	IL_001e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0023:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0028:  throw 
+	IL_0029:  ldarg.0 
+	IL_002a:  ldc.i4.2 
+	IL_002b:  newarr NAnt.Core.Types.Argument
+	IL_0030:  dup 
+	IL_0031:  ldc.i4.0 
+	IL_0032:  ldstr "--cflags"
+	IL_0037:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_003c:  stelem.ref 
+	IL_003d:  dup 
+	IL_003e:  ldc.i4.1 
+	IL_003f:  ldarg.1 
+	IL_0040:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0045:  stelem.ref 
+	IL_0046:  call instance string class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigString(class NAnt.Core.Types.Argument[])
+	IL_004b:  stloc.0 
+	IL_004c:  br IL_0051
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Proxy::get_BypassOnLocal
+	IL_0051:  ldloc.0 
+	IL_0052:  ret 
+    } // end of method PkgConfigFunctions::GetCompileFlags
 
-    // method line 382
-    .method public hidebysig specialname 
-           instance default void set_BypassOnLocal (bool 'value')  cil managed 
+    // method line 291
+    .method public hidebysig 
+           instance default string GetModVersion (string package)  cil managed 
     {
-        // Method begins at RVA 0x862f
-	// Code size 9 (0x9)
-	.maxstack 8
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0F 67 65 74 2D 6D 6F 64 2D 76 65 72 73 69   // ...get-mod-versi
+		6F 6E 00 00                                     ) // on..
+
+        // Method begins at RVA 0x6cc8
+	// Code size 83 (0x53)
+	.maxstack 5
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Proxy::_bypassOnLocal
-	IL_0008:  ret 
-    } // end of method Proxy::set_BypassOnLocal
+	IL_0003:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::Exists(string)
+	IL_0008:  brtrue IL_0029
 
-    // method line 383
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Credential get_Credentials ()  cil managed 
+	IL_000d:  nop 
+	IL_000e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0013:  ldstr "NA1100"
+	IL_0018:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_001d:  ldarg.1 
+	IL_001e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0023:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0028:  throw 
+	IL_0029:  ldarg.0 
+	IL_002a:  ldc.i4.2 
+	IL_002b:  newarr NAnt.Core.Types.Argument
+	IL_0030:  dup 
+	IL_0031:  ldc.i4.0 
+	IL_0032:  ldstr "--modversion"
+	IL_0037:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_003c:  stelem.ref 
+	IL_003d:  dup 
+	IL_003e:  ldc.i4.1 
+	IL_003f:  ldarg.1 
+	IL_0040:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0045:  stelem.ref 
+	IL_0046:  call instance string class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigString(class NAnt.Core.Types.Argument[])
+	IL_004b:  stloc.0 
+	IL_004c:  br IL_0051
+
+	IL_0051:  ldloc.0 
+	IL_0052:  ret 
+    } // end of method PkgConfigFunctions::GetModVersion
+
+    // method line 292
+    .method public hidebysig 
+           instance default bool IsAtLeastVersion (string package, string version)  cil managed 
     {
-        // Method begins at RVA 0x863c
-	// Code size 15 (0xf)
-	.maxstack 1
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 12 69 73 2D 61 74 6C 65 61 73 74 2D 76 65   // ...is-atleast-ve
+		72 73 69 6F 6E 00 00                            ) // rsion..
+
+        // Method begins at RVA 0x6d28
+	// Code size 54 (0x36)
+	.maxstack 7
 	.locals init (
-		class NAnt.Core.Types.Credential	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.Credential NAnt.Core.Types.Proxy::_credentials
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldc.i4.2 
+	IL_0003:  newarr NAnt.Core.Types.Argument
+	IL_0008:  dup 
+	IL_0009:  ldc.i4.0 
+	IL_000a:  ldstr "--atleast-version=\""
+	IL_000f:  ldarg.2 
+	IL_0010:  ldstr "\""
+	IL_0015:  call string string::Concat(string, string, string)
+	IL_001a:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_001f:  stelem.ref 
+	IL_0020:  dup 
+	IL_0021:  ldc.i4.1 
+	IL_0022:  ldarg.1 
+	IL_0023:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0028:  stelem.ref 
+	IL_0029:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigBool(class NAnt.Core.Types.Argument[])
+	IL_002e:  stloc.0 
+	IL_002f:  br IL_0034
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Proxy::get_Credentials
+	IL_0034:  ldloc.0 
+	IL_0035:  ret 
+    } // end of method PkgConfigFunctions::IsAtLeastVersion
 
-    // method line 384
-    .method public hidebysig specialname 
-           instance default void set_Credentials (class NAnt.Core.Types.Credential 'value')  cil managed 
+    // method line 293
+    .method public hidebysig 
+           instance default bool IsExactVersion (string package, string version)  cil managed 
     {
-        // Method begins at RVA 0x8657
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.Credential NAnt.Core.Types.Proxy::_credentials
-	IL_0008:  ret 
-    } // end of method Proxy::set_Credentials
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 10 69 73 2D 65 78 61 63 74 2D 76 65 72 73   // ...is-exact-vers
+		69 6F 6E 00 00                                  ) // ion..
 
-    // method line 385
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x8664
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x6d6c
+	// Code size 54 (0x36)
+	.maxstack 7
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Proxy::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldc.i4.2 
+	IL_0003:  newarr NAnt.Core.Types.Argument
+	IL_0008:  dup 
+	IL_0009:  ldc.i4.0 
+	IL_000a:  ldstr "--exact-version=\""
+	IL_000f:  ldarg.2 
+	IL_0010:  ldstr "\""
+	IL_0015:  call string string::Concat(string, string, string)
+	IL_001a:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_001f:  stelem.ref 
+	IL_0020:  dup 
+	IL_0021:  ldc.i4.1 
+	IL_0022:  ldarg.1 
+	IL_0023:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0028:  stelem.ref 
+	IL_0029:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigBool(class NAnt.Core.Types.Argument[])
+	IL_002e:  stloc.0 
+	IL_002f:  br IL_0034
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Proxy::get_IfDefined
+	IL_0034:  ldloc.0 
+	IL_0035:  ret 
+    } // end of method PkgConfigFunctions::IsExactVersion
 
-    // method line 386
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 294
+    .method public hidebysig 
+           instance default bool IsMaxVersion (string package, string version)  cil managed 
     {
-        // Method begins at RVA 0x867f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Proxy::_ifDefined
-	IL_0008:  ret 
-    } // end of method Proxy::set_IfDefined
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0E 69 73 2D 6D 61 78 2D 76 65 72 73 69 6F   // ...is-max-versio
+		6E 00 00                                        ) // n..
 
-    // method line 387
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x868c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x6db0
+	// Code size 54 (0x36)
+	.maxstack 7
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Proxy::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldc.i4.2 
+	IL_0003:  newarr NAnt.Core.Types.Argument
+	IL_0008:  dup 
+	IL_0009:  ldc.i4.0 
+	IL_000a:  ldstr "--max-version=\""
+	IL_000f:  ldarg.2 
+	IL_0010:  ldstr "\""
+	IL_0015:  call string string::Concat(string, string, string)
+	IL_001a:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_001f:  stelem.ref 
+	IL_0020:  dup 
+	IL_0021:  ldc.i4.1 
+	IL_0022:  ldarg.1 
+	IL_0023:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0028:  stelem.ref 
+	IL_0029:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigBool(class NAnt.Core.Types.Argument[])
+	IL_002e:  stloc.0 
+	IL_002f:  br IL_0034
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Proxy::get_UnlessDefined
+	IL_0034:  ldloc.0 
+	IL_0035:  ret 
+    } // end of method PkgConfigFunctions::IsMaxVersion
 
-    // method line 388
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 295
+    .method public hidebysig 
+           instance default bool IsBetweenVersion (string package, string minVersion, string maxVersion)  cil managed 
     {
-        // Method begins at RVA 0x86a7
-	// Code size 9 (0x9)
-	.maxstack 8
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 12 69 73 2D 62 65 74 77 65 65 6E 2D 76 65   // ...is-between-ve
+		72 73 69 6F 6E 00 00                            ) // rsion..
+
+        // Method begins at RVA 0x6df4
+	// Code size 78 (0x4e)
+	.maxstack 7
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Proxy::_unlessDefined
-	IL_0008:  ret 
-    } // end of method Proxy::set_UnlessDefined
+	IL_0002:  ldc.i4.3 
+	IL_0003:  newarr NAnt.Core.Types.Argument
+	IL_0008:  dup 
+	IL_0009:  ldc.i4.0 
+	IL_000a:  ldstr "--atleast-version=\""
+	IL_000f:  ldarg.2 
+	IL_0010:  ldstr "\""
+	IL_0015:  call string string::Concat(string, string, string)
+	IL_001a:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_001f:  stelem.ref 
+	IL_0020:  dup 
+	IL_0021:  ldc.i4.1 
+	IL_0022:  ldstr "--max-version=\""
+	IL_0027:  ldarg.3 
+	IL_0028:  ldstr "\""
+	IL_002d:  call string string::Concat(string, string, string)
+	IL_0032:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0037:  stelem.ref 
+	IL_0038:  dup 
+	IL_0039:  ldc.i4.2 
+	IL_003a:  ldarg.1 
+	IL_003b:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0040:  stelem.ref 
+	IL_0041:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigBool(class NAnt.Core.Types.Argument[])
+	IL_0046:  stloc.0 
+	IL_0047:  br IL_004c
 
-    // method line 389
+	IL_004c:  ldloc.0 
+	IL_004d:  ret 
+    } // end of method PkgConfigFunctions::IsBetweenVersion
+
+    // method line 296
     .method public hidebysig 
-           instance default class [System]System.Net.IWebProxy GetWebProxy ()  cil managed 
+           instance default bool Exists (string package)  cil managed 
     {
-        // Method begins at RVA 0x86b4
-	// Code size 105 (0x69)
-	.maxstack 2
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 06 65 78 69 73 74 73 00 00 ) // ...exists..
+
+        // Method begins at RVA 0x6e50
+	// Code size 43 (0x2b)
+	.maxstack 5
 	.locals init (
-		class [System]System.Net.WebProxy	V_0,
-		class [System]System.Net.IWebProxy	V_1)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Types.Proxy::get_IfDefined()
-	IL_0007:  brfalse IL_005b
-
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance bool class NAnt.Core.Types.Proxy::get_UnlessDefined()
-	IL_0012:  brtrue IL_005b
-
-	IL_0017:  nop 
-	IL_0018:  ldarg.0 
-	IL_0019:  call instance string class NAnt.Core.Types.Proxy::get_Host()
-	IL_001e:  ldarg.0 
-	IL_001f:  call instance int32 class NAnt.Core.Types.Proxy::get_Port()
-	IL_0024:  newobj instance void class [System]System.Net.WebProxy::'.ctor'(string, int32)
-	IL_0029:  stloc.0 
-	IL_002a:  ldloc.0 
-	IL_002b:  ldarg.0 
-	IL_002c:  call instance bool class NAnt.Core.Types.Proxy::get_BypassOnLocal()
-	IL_0031:  callvirt instance void class [System]System.Net.WebProxy::set_BypassProxyOnLocal(bool)
-	IL_0036:  ldarg.0 
-	IL_0037:  call instance class NAnt.Core.Types.Credential class NAnt.Core.Types.Proxy::get_Credentials()
-	IL_003c:  brfalse IL_0054
-
-	IL_0041:  nop 
-	IL_0042:  ldloc.0 
-	IL_0043:  ldarg.0 
-	IL_0044:  call instance class NAnt.Core.Types.Credential class NAnt.Core.Types.Proxy::get_Credentials()
-	IL_0049:  callvirt instance class [System]System.Net.ICredentials class NAnt.Core.Types.Credential::GetCredential()
-	IL_004e:  callvirt instance void class [System]System.Net.WebProxy::set_Credentials(class [System]System.Net.ICredentials)
-	IL_0053:  nop 
-	IL_0054:  ldloc.0 
-	IL_0055:  stloc.1 
-	IL_0056:  br IL_0067
-
-	IL_005b:  nop 
-	IL_005c:  call class [System]System.Net.IWebProxy class [System]System.Net.GlobalProxySelection::get_Select()
-	IL_0061:  stloc.1 
-	IL_0062:  br IL_0067
-
-	IL_0067:  ldloc.1 
-	IL_0068:  ret 
-    } // end of method Proxy::GetWebProxy
-
-	.property instance string Host ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 68 6F 73 74 01 00 54 02 08 52 65 71 75   // ...host..T..Requ
-		69 72 65 64 01                                  ) // ired.
+	IL_0002:  ldc.i4.2 
+	IL_0003:  newarr NAnt.Core.Types.Argument
+	IL_0008:  dup 
+	IL_0009:  ldc.i4.0 
+	IL_000a:  ldstr "--exists"
+	IL_000f:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0014:  stelem.ref 
+	IL_0015:  dup 
+	IL_0016:  ldc.i4.1 
+	IL_0017:  ldarg.1 
+	IL_0018:  newobj instance void class NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_001d:  stelem.ref 
+	IL_001e:  call instance bool class NAnt.Core.Functions.PkgConfigFunctions::RunPkgConfigBool(class NAnt.Core.Types.Argument[])
+	IL_0023:  stloc.0 
+	IL_0024:  br IL_0029
 
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+	IL_0029:  ldloc.0 
+	IL_002a:  ret 
+    } // end of method PkgConfigFunctions::Exists
 
-		.get instance default string NAnt.Core.Types.Proxy::get_Host () 
-		.set instance default void NAnt.Core.Types.Proxy::set_Host (string 'value') 
-	}
-	.property instance int32 Port ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 70 6F 72 74 01 00 54 02 08 52 65 71 75   // ...port..T..Requ
-		69 72 65 64 01                                  ) // ired.
+    // method line 297
+    .method private hidebysig 
+           instance default bool RunPkgConfigBool (class NAnt.Core.Types.Argument[] args)  cil managed 
+    {
+        // Method begins at RVA 0x6e88
+	// Code size 71 (0x47)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.IO.MemoryStream	V_0,
+		class NAnt.Core.Tasks.ExecTask	V_1,
+		bool	V_2)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  call instance class NAnt.Core.Tasks.ExecTask class NAnt.Core.Functions.PkgConfigFunctions::GetTask(class [mscorlib]System.IO.Stream)
+	IL_000e:  stloc.1 
+	IL_000f:  ldloc.1 
+	IL_0010:  callvirt instance class NAnt.Core.Types.ArgumentCollection class NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_0015:  ldarg.1 
+	IL_0016:  callvirt instance void class NAnt.Core.Types.ArgumentCollection::AddRange(class NAnt.Core.Types.Argument[])
+	.try { // 0
+	  IL_001b:  nop 
+	  IL_001c:  ldloc.1 
+	  IL_001d:  callvirt instance void class NAnt.Core.Task::Execute()
+	  IL_0022:  ldc.i4.1 
+	  IL_0023:  stloc.2 
+	  IL_0024:  leave IL_0045
 
-		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0029:  pop 
+	  IL_002a:  nop 
+	  IL_002b:  ldloc.1 
+	  IL_002c:  callvirt instance int32 class NAnt.Core.Tasks.ExternalProgramBase::get_ExitCode()
+	  IL_0031:  ldc.i4 -1000
+	  IL_0036:  bne.un IL_003e
 
-		.get instance default int32 NAnt.Core.Types.Proxy::get_Port () 
-		.set instance default void NAnt.Core.Types.Proxy::set_Port (int32 'value') 
-	}
-	.property instance bool BypassOnLocal ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 62 79 70 61 73 73 6F 6E 6C 6F 63 61 6C   // ...bypassonlocal
-		01 00 54 02 08 52 65 71 75 69 72 65 64 00       ) // ..T..Required.
+	  IL_003b:  nop 
+	  IL_003c:  rethrow 
+	  IL_003e:  ldc.i4.0 
+	  IL_003f:  stloc.2 
+	  IL_0040:  leave IL_0045
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	} // end handler 0
+	IL_0045:  ldloc.2 
+	IL_0046:  ret 
+    } // end of method PkgConfigFunctions::RunPkgConfigBool
 
-		.get instance default bool NAnt.Core.Types.Proxy::get_BypassOnLocal () 
-		.set instance default void NAnt.Core.Types.Proxy::set_BypassOnLocal (bool 'value') 
-	}
-	.property instance class NAnt.Core.Types.Credential Credentials ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0B 63 72 65 64 65 6E 74 69 61 6C 73 01 00   // ...credentials..
-		54 02 08 52 65 71 75 69 72 65 64 00             ) // T..Required.
+    // method line 298
+    .method private hidebysig 
+           instance default string RunPkgConfigString (class NAnt.Core.Types.Argument[] args)  cil managed 
+    {
+        // Method begins at RVA 0x6eec
+	// Code size 134 (0x86)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.IO.MemoryStream	V_0,
+		class NAnt.Core.Tasks.ExecTask	V_1,
+		class [mscorlib]System.IO.StreamReader	V_2,
+		string	V_3,
+		string	V_4,
+		class [mscorlib]System.Exception	V_5,
+		class [mscorlib]System.IO.StreamReader	V_6,
+		string	V_7)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  call instance class NAnt.Core.Tasks.ExecTask class NAnt.Core.Functions.PkgConfigFunctions::GetTask(class [mscorlib]System.IO.Stream)
+	IL_000e:  stloc.1 
+	IL_000f:  ldloc.1 
+	IL_0010:  callvirt instance class NAnt.Core.Types.ArgumentCollection class NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_0015:  ldarg.1 
+	IL_0016:  callvirt instance void class NAnt.Core.Types.ArgumentCollection::AddRange(class NAnt.Core.Types.Argument[])
+	.try { // 0
+	  IL_001b:  nop 
+	  IL_001c:  ldloc.1 
+	  IL_001d:  callvirt instance void class NAnt.Core.Task::Execute()
+	  IL_0022:  ldloc.0 
+	  IL_0023:  ldc.i4.0 
+	  IL_0024:  conv.i8 
+	  IL_0025:  callvirt instance void class [mscorlib]System.IO.Stream::set_Position(int64)
+	  IL_002a:  ldloc.0 
+	  IL_002b:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(class [mscorlib]System.IO.Stream)
+	  IL_0030:  stloc.2 
+	  IL_0031:  ldloc.2 
+	  IL_0032:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	  IL_0037:  stloc.3 
+	  IL_0038:  ldloc.2 
+	  IL_0039:  callvirt instance void class [mscorlib]System.IO.TextReader::Close()
+	  IL_003e:  ldloc.3 
+	  IL_003f:  stloc.s 4
+	  IL_0041:  leave IL_0083
 
-		.get instance default class NAnt.Core.Types.Credential NAnt.Core.Types.Proxy::get_Credentials () 
-		.set instance default void NAnt.Core.Types.Proxy::set_Credentials (class NAnt.Core.Types.Credential 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 02 69 66 01 00 54 02 08 52 65 71 75 69 72   // ...if..T..Requir
-		65 64 00                                        ) // ed.
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0046:  stloc.s 5
+	  IL_0048:  nop 
+	  IL_0049:  ldloc.0 
+	  IL_004a:  ldc.i4.0 
+	  IL_004b:  conv.i8 
+	  IL_004c:  callvirt instance void class [mscorlib]System.IO.Stream::set_Position(int64)
+	  IL_0051:  ldloc.0 
+	  IL_0052:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(class [mscorlib]System.IO.Stream)
+	  IL_0057:  stloc.s 6
+	  IL_0059:  ldloc.s 6
+	  IL_005b:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
+	  IL_0060:  stloc.s 7
+	  IL_0062:  ldloc.s 6
+	  IL_0064:  callvirt instance void class [mscorlib]System.IO.TextReader::Close()
+	  IL_0069:  ldloc.s 7
+	  IL_006b:  callvirt instance int32 string::get_Length()
+	  IL_0070:  brfalse IL_0080
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	  IL_0075:  nop 
+	  IL_0076:  ldloc.s 7
+	  IL_0078:  ldloc.s 5
+	  IL_007a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class [mscorlib]System.Exception)
+	  IL_007f:  throw 
+	  IL_0080:  nop 
+	  IL_0081:  rethrow 
+	} // end handler 0
+	IL_0083:  ldloc.s 4
+	IL_0085:  ret 
+    } // end of method PkgConfigFunctions::RunPkgConfigString
 
-		.get instance default bool NAnt.Core.Types.Proxy::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.Proxy::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 75 6E 6C 65 73 73 01 00 54 02 08 52 65   // ...unless..T..Re
-		71 75 69 72 65 64 00                            ) // quired.
+    // method line 299
+    .method private hidebysig 
+           instance default class NAnt.Core.Tasks.ExecTask GetTask (class [mscorlib]System.IO.Stream 'stream')  cil managed 
+    {
+        // Method begins at RVA 0x6f90
+	// Code size 83 (0x53)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.Tasks.ExecTask	V_0,
+		class [mscorlib]System.IO.TextWriter	V_1,
+		class NAnt.Core.Tasks.ExecTask	V_2)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.Core.Tasks.ExecTask::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_000e:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_0013:  ldloc.0 
+	IL_0014:  ldarg.0 
+	IL_0015:  callvirt instance class NAnt.Core.Project class NAnt.Core.FunctionSetBase::get_Project()
+	IL_001a:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_001f:  ldloc.0 
+	IL_0020:  ldstr "pkg-config"
+	IL_0025:  callvirt instance void class NAnt.Core.Tasks.ExecTask::set_FileName(string)
+	IL_002a:  ldloc.0 
+	IL_002b:  ldc.i4 9999
+	IL_0030:  callvirt instance void class NAnt.Core.Task::set_Threshold(valuetype NAnt.Core.Level)
+	IL_0035:  ldloc.0 
+	IL_0036:  ldarg.1 
+	IL_0037:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(class [mscorlib]System.IO.Stream)
+	IL_003c:  stloc.1 
+	IL_003d:  ldloc.0 
+	IL_003e:  ldloc.1 
+	IL_003f:  callvirt instance void class NAnt.Core.Tasks.ExternalProgramBase::set_OutputWriter(class [mscorlib]System.IO.TextWriter)
+	IL_0044:  ldloc.1 
+	IL_0045:  callvirt instance void class NAnt.Core.Tasks.ExternalProgramBase::set_ErrorWriter(class [mscorlib]System.IO.TextWriter)
+	IL_004a:  ldloc.0 
+	IL_004b:  stloc.2 
+	IL_004c:  br IL_0051
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0051:  ldloc.2 
+	IL_0052:  ret 
+    } // end of method PkgConfigFunctions::GetTask
 
-		.get instance default bool NAnt.Core.Types.Proxy::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.Proxy::set_UnlessDefined (bool 'value') 
-	}
-  } // end of class NAnt.Core.Types.Proxy
+  } // end of class NAnt.Core.Functions.PkgConfigFunctions
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Functions
 {
-  .class public auto ansi serializable beforefieldinit PatternCollection
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IList, [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+  .class public auto ansi beforefieldinit DoubleConversionFunctions
+  	extends NAnt.Core.FunctionSetBase
+  {
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 06 64 6F 75 62 6C 65 0A 43 6F 6E 76 65 72   // ...double.Conver
+		73 69 6F 6E 00 00                               ) // sion..
 
-    .field  private initonly  class [mscorlib]System.Collections.ArrayList _list
 
-    // method line 390
+    // method line 300
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x8729
-	// Code size 19 (0x13)
+        // Method begins at RVA 0x6fef
+	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_000d:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PatternCollection::_list
-	IL_0012:  ret 
-    } // end of method PatternCollection::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method DoubleConversionFunctions::.ctor
 
-    // method line 391
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Pattern get_Item (int32 index)  cil managed 
+    // method line 301
+    .method public static hidebysig 
+           default float64 Parse (string s)  cil managed 
     {
-        // Method begins at RVA 0x8740
-	// Code size 26 (0x1a)
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
+
+        // Method begins at RVA 0x6ffc
+	// Code size 20 (0x14)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.Pattern	V_0)
+		float64	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	IL_000d:  castclass NAnt.Core.Types.Pattern
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0007:  call float64 float64::Parse(string, class [mscorlib]System.IFormatProvider)
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method PatternCollection::get_Item
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method DoubleConversionFunctions::Parse
 
-    // method line 392
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.Pattern 'value')  cil managed 
+    // method line 302
+    .method public static hidebysig 
+           default string ToString (float64 'value')  cil managed 
     {
-        // Method begins at RVA 0x8766
-	// Code size 15 (0xf)
-	.maxstack 8
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
+
+        // Method begins at RVA 0x701c
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ArrayList::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method PatternCollection::set_Item
+	IL_0001:  ldarga.s 0
+	IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0008:  call instance string float64::ToString(class [mscorlib]System.IFormatProvider)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-    // method line 393
-    .method private hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_List ()  cil managed 
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method DoubleConversionFunctions::ToString
+
+  } // end of class NAnt.Core.Functions.DoubleConversionFunctions
+}
+
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit StringFunctions
+  	extends NAnt.Core.FunctionSetBase
+  {
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 06 73 74 72 69 6E 67 06 53 74 72 69 6E 67   // ...string.String
+		00 00                                           ) // ..
+
+
+    // method line 303
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary propDict)  cil managed 
+    {
+        // Method begins at RVA 0x703d
+	// Code size 10 (0xa)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method StringFunctions::.ctor
+
+    // method line 304
+    .method public static hidebysig 
+           default int32 GetLength (string s)  cil managed 
     {
-        // Method begins at RVA 0x8778
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 67 65 74 2D 6C 65 6E 67 74 68 00 00 ) // ...get-length..
+
+        // Method begins at RVA 0x7048
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PatternCollection::_list
+	IL_0002:  callvirt instance int32 string::get_Length()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PatternCollection::get_List
+    } // end of method StringFunctions::GetLength
 
-    // method line 394
-    .method public final virtual hidebysig newslot specialname 
-           instance default int32 get_Count ()  cil managed 
+    // method line 305
+    .method public static hidebysig 
+           default string Substring (string str, int32 startIndex, int32 length)  cil managed 
     {
-        // Method begins at RVA 0x8794
-	// Code size 20 (0x14)
-	.maxstack 1
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 73 75 62 73 74 72 69 6E 67 00 00 ) // ...substring..
+
+        // Method begins at RVA 0x7064
+	// Code size 17 (0x11)
+	.maxstack 3
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  callvirt instance string string::Substring(int32, int32)
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_000f
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method PatternCollection::get_Count
+	IL_000f:  ldloc.0 
+	IL_0010:  ret 
+    } // end of method StringFunctions::Substring
 
-    // method line 395
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.ICollection.CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
+    // method line 306
+    .method public static hidebysig 
+           default bool StartsWith (string s1, string s2)  cil managed 
     {
-        // Method begins at RVA 0x87b4
-	.override class [mscorlib]System.Collections.ICollection::CopyTo
-	// Code size 15 (0xf)
-	.maxstack 8
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0B 73 74 61 72 74 73 2D 77 69 74 68 00 00 ) // ...starts-with..
+
+        // Method begins at RVA 0x7084
+	// Code size 26 (0x1a)
+	.maxstack 3
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ArrayList::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method PatternCollection::System.Collections.ICollection.CopyTo
+	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0006:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance bool class [mscorlib]System.Globalization.CompareInfo::IsPrefix(string, string)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-    // method line 396
-    .method private final virtual hidebysig newslot specialname 
-           instance default bool System.Collections.ICollection.get_IsSynchronized ()  cil managed 
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method StringFunctions::StartsWith
+
+    // method line 307
+    .method public static hidebysig 
+           default bool EndsWith (string s1, string s2)  cil managed 
     {
-        // Method begins at RVA 0x87c4
-	.override class [mscorlib]System.Collections.ICollection::get_IsSynchronized
-	// Code size 20 (0x14)
-	.maxstack 1
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 65 6E 64 73 2D 77 69 74 68 00 00 ) // ...ends-with..
+
+        // Method begins at RVA 0x70ac
+	// Code size 26 (0x1a)
+	.maxstack 3
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.ArrayList::get_IsSynchronized()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0006:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance bool class [mscorlib]System.Globalization.CompareInfo::IsSuffix(string, string)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method PatternCollection::System.Collections.ICollection.get_IsSynchronized
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method StringFunctions::EndsWith
 
-    // method line 397
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.ICollection.get_SyncRoot ()  cil managed 
+    // method line 308
+    .method public static hidebysig 
+           default string ToLower (string s)  cil managed 
     {
-        // Method begins at RVA 0x87e4
-	.override class [mscorlib]System.Collections.ICollection::get_SyncRoot
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 74 6F 2D 6C 6F 77 65 72 00 00 ) // ...to-lower..
+
+        // Method begins at RVA 0x70d4
 	// Code size 20 (0x14)
-	.maxstack 1
+	.maxstack 2
 	.locals init (
-		object	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_SyncRoot()
+	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0007:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method PatternCollection::System.Collections.ICollection.get_SyncRoot
+    } // end of method StringFunctions::ToLower
 
-    // method line 398
-    .method private final virtual hidebysig newslot 
-           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
+    // method line 309
+    .method public static hidebysig 
+           default string ToUpper (string s)  cil managed 
     {
-        // Method begins at RVA 0x8804
-	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 74 6F 2D 75 70 70 65 72 00 00 ) // ...to-upper..
+
+        // Method begins at RVA 0x70f4
 	// Code size 20 (0x14)
-	.maxstack 1
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.Collections.IEnumerator	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0007:  callvirt instance string string::ToUpper(class [mscorlib]System.Globalization.CultureInfo)
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method PatternCollection::System.Collections.IEnumerable.GetEnumerator
+    } // end of method StringFunctions::ToUpper
 
-    // method line 399
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IList.get_Item (int32 index)  cil managed 
+    // method line 310
+    .method public static hidebysig 
+           default string Replace (string str, string oldValue, string newValue)  cil managed 
     {
-        // Method begins at RVA 0x8824
-	.override class [mscorlib]System.Collections.IList::get_Item
-	// Code size 16 (0x10)
-	.maxstack 2
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 07 72 65 70 6C 61 63 65 00 00 ) // ...replace..
+
+        // Method begins at RVA 0x7114
+	// Code size 17 (0x11)
+	.maxstack 3
 	.locals init (
-		object	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.Types.Pattern class NAnt.Core.Types.PatternCollection::get_Item(int32)
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
+	IL_0003:  ldarg.2 
+	IL_0004:  callvirt instance string string::Replace(string, string)
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_000f
 
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method PatternCollection::System.Collections.IList.get_Item
+	IL_000f:  ldloc.0 
+	IL_0010:  ret 
+    } // end of method StringFunctions::Replace
 
-    // method line 400
-    .method private final virtual hidebysig newslot specialname 
-           instance default void System.Collections.IList.set_Item (int32 index, object 'value')  cil managed 
+    // method line 311
+    .method public static hidebysig 
+           default bool Contains (string source, string 'value')  cil managed 
     {
-        // Method begins at RVA 0x8840
-	.override class [mscorlib]System.Collections.IList::set_Item
-	// Code size 81 (0x51)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "value"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.2 
-	IL_0014:  isinst NAnt.Core.Types.Pattern
-	IL_0019:  brtrue IL_0043
-
-	IL_001e:  nop 
-	IL_001f:  ldstr "Specified value is not an instance of "
-	IL_0024:  ldtoken NAnt.Core.Types.Pattern
-	IL_0029:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_002e:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0033:  ldstr "."
-	IL_0038:  call string string::Concat(string, string, string)
-	IL_003d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0042:  throw 
-	IL_0043:  ldarg.0 
-	IL_0044:  ldarg.1 
-	IL_0045:  ldarg.2 
-	IL_0046:  castclass NAnt.Core.Types.Pattern
-	IL_004b:  call instance void class NAnt.Core.Types.PatternCollection::set_Item(int32, class NAnt.Core.Types.Pattern)
-	IL_0050:  ret 
-    } // end of method PatternCollection::System.Collections.IList.set_Item
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 63 6F 6E 74 61 69 6E 73 00 00 ) // ...contains..
 
-    // method line 401
-    .method private final virtual hidebysig newslot specialname 
-           instance default bool System.Collections.IList.get_IsFixedSize ()  cil managed 
-    {
-        // Method begins at RVA 0x88a0
-	.override class [mscorlib]System.Collections.IList::get_IsFixedSize
-	// Code size 10 (0xa)
-	.maxstack 1
+        // Method begins at RVA 0x7134
+	// Code size 33 (0x21)
+	.maxstack 4
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0006:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.1 
+	IL_000d:  ldc.i4.0 
+	IL_000e:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::IndexOf(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
+	IL_0013:  ldc.i4.0 
+	IL_0014:  clt 
+	IL_0016:  ldc.i4.0 
+	IL_0017:  ceq 
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_001f
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method PatternCollection::System.Collections.IList.get_IsFixedSize
+	IL_001f:  ldloc.0 
+	IL_0020:  ret 
+    } // end of method StringFunctions::Contains
 
-    // method line 402
-    .method private final virtual hidebysig newslot specialname 
-           instance default bool System.Collections.IList.get_IsReadOnly ()  cil managed 
+    // method line 312
+    .method public static hidebysig 
+           default int32 IndexOf (string source, string 'value')  cil managed 
     {
-        // Method begins at RVA 0x88b8
-	.override class [mscorlib]System.Collections.IList::get_IsReadOnly
-	// Code size 10 (0xa)
-	.maxstack 1
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 69 6E 64 65 78 2D 6F 66 00 00 ) // ...index-of..
+
+        // Method begins at RVA 0x7164
+	// Code size 27 (0x1b)
+	.maxstack 4
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0006:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.1 
+	IL_000d:  ldc.i4.0 
+	IL_000e:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::IndexOf(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0019
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method PatternCollection::System.Collections.IList.get_IsReadOnly
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method StringFunctions::IndexOf
 
-    // method line 403
-    .method private final virtual hidebysig newslot 
-           instance default int32 System.Collections.IList.Add (object 'value')  cil managed 
+    // method line 313
+    .method public static hidebysig 
+           default int32 LastIndexOf (string source, string 'value')  cil managed 
     {
-        // Method begins at RVA 0x88d0
-	.override class [mscorlib]System.Collections.IList::Add
-	// Code size 87 (0x57)
-	.maxstack 3
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0D 6C 61 73 74 2D 69 6E 64 65 78 2D 6F 66   // ...last-index-of
+		00 00                                           ) // ..
+
+        // Method begins at RVA 0x718c
+	// Code size 27 (0x1b)
+	.maxstack 4
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0006:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.1 
+	IL_000d:  ldc.i4.0 
+	IL_000e:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::LastIndexOf(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0019
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "value"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.1 
-	IL_0014:  isinst NAnt.Core.Types.Pattern
-	IL_0019:  brtrue IL_0043
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method StringFunctions::LastIndexOf
 
-	IL_001e:  nop 
-	IL_001f:  ldstr "Specified value is not an instance of "
-	IL_0024:  ldtoken NAnt.Core.Types.Pattern
-	IL_0029:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_002e:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0033:  ldstr "."
-	IL_0038:  call string string::Concat(string, string, string)
-	IL_003d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0042:  throw 
-	IL_0043:  ldarg.0 
-	IL_0044:  ldarg.1 
-	IL_0045:  castclass NAnt.Core.Types.Pattern
-	IL_004a:  call instance int32 class NAnt.Core.Types.PatternCollection::Add(class NAnt.Core.Types.Pattern)
-	IL_004f:  stloc.0 
-	IL_0050:  br IL_0055
+    // method line 314
+    .method public static hidebysig 
+           default string PadLeft (string s, int32 totalWidth, string paddingChar)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 70 61 64 2D 6C 65 66 74 00 00 ) // ...pad-left..
 
-	IL_0055:  ldloc.0 
-	IL_0056:  ret 
-    } // end of method PatternCollection::System.Collections.IList.Add
+        // Method begins at RVA 0x71b4
+	// Code size 23 (0x17)
+	.maxstack 4
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  ldc.i4.0 
+	IL_0005:  callvirt instance char string::get_Chars(int32)
+	IL_000a:  callvirt instance string string::PadLeft(int32, char)
+	IL_000f:  stloc.0 
+	IL_0010:  br IL_0015
 
-    // method line 404
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IList.Contains (object 'value')  cil managed 
+	IL_0015:  ldloc.0 
+	IL_0016:  ret 
+    } // end of method StringFunctions::PadLeft
+
+    // method line 315
+    .method public static hidebysig 
+           default string PadRight (string s, int32 totalWidth, string paddingChar)  cil managed 
     {
-        // Method begins at RVA 0x8934
-	.override class [mscorlib]System.Collections.IList::Contains
-	// Code size 87 (0x57)
-	.maxstack 3
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 70 61 64 2D 72 69 67 68 74 00 00 ) // ...pad-right..
+
+        // Method begins at RVA 0x71d8
+	// Code size 23 (0x17)
+	.maxstack 4
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  ldc.i4.0 
+	IL_0005:  callvirt instance char string::get_Chars(int32)
+	IL_000a:  callvirt instance string string::PadRight(int32, char)
+	IL_000f:  stloc.0 
+	IL_0010:  br IL_0015
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "value"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.1 
-	IL_0014:  isinst NAnt.Core.Types.Pattern
-	IL_0019:  brtrue IL_0043
+	IL_0015:  ldloc.0 
+	IL_0016:  ret 
+    } // end of method StringFunctions::PadRight
 
-	IL_001e:  nop 
-	IL_001f:  ldstr "Specified value is not an instance of "
-	IL_0024:  ldtoken NAnt.Core.Types.Pattern
-	IL_0029:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_002e:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0033:  ldstr "."
-	IL_0038:  call string string::Concat(string, string, string)
-	IL_003d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0042:  throw 
-	IL_0043:  ldarg.0 
-	IL_0044:  ldarg.1 
-	IL_0045:  castclass NAnt.Core.Types.Pattern
-	IL_004a:  call instance bool class NAnt.Core.Types.PatternCollection::Contains(class NAnt.Core.Types.Pattern)
-	IL_004f:  stloc.0 
-	IL_0050:  br IL_0055
+    // method line 316
+    .method public static hidebysig 
+           default string Trim (string s)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 04 74 72 69 6D 00 00 ) // ...trim..
 
-	IL_0055:  ldloc.0 
-	IL_0056:  ret 
-    } // end of method PatternCollection::System.Collections.IList.Contains
+        // Method begins at RVA 0x71fc
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance string string::Trim()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 405
-    .method public final virtual hidebysig newslot 
-           instance default void Clear ()  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method StringFunctions::Trim
+
+    // method line 317
+    .method public static hidebysig 
+           default string TrimStart (string s)  cil managed 
     {
-        // Method begins at RVA 0x8997
-	// Code size 13 (0xd)
-	.maxstack 8
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 0A 74 72 69 6D 2D 73 74 61 72 74 00 00 ) // ...trim-start..
+
+        // Method begins at RVA 0x7218
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Clear()
-	IL_000c:  ret 
-    } // end of method PatternCollection::Clear
+	IL_0002:  callvirt instance string string::TrimStart()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 406
-    .method private final virtual hidebysig newslot 
-           instance default int32 System.Collections.IList.IndexOf (object 'value')  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method StringFunctions::TrimStart
+
+    // method line 318
+    .method public static hidebysig 
+           default string TrimEnd (string s)  cil managed 
     {
-        // Method begins at RVA 0x89a8
-	.override class [mscorlib]System.Collections.IList::IndexOf
-	// Code size 87 (0x57)
-	.maxstack 3
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 08 74 72 69 6D 2D 65 6E 64 00 00 ) // ...trim-end..
+
+        // Method begins at RVA 0x7234
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance string string::TrimEnd()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "value"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.1 
-	IL_0014:  isinst NAnt.Core.Types.Pattern
-	IL_0019:  brtrue IL_0043
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method StringFunctions::TrimEnd
 
-	IL_001e:  nop 
-	IL_001f:  ldstr "Specified value is not an instance of "
-	IL_0024:  ldtoken NAnt.Core.Types.Pattern
-	IL_0029:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_002e:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0033:  ldstr "."
-	IL_0038:  call string string::Concat(string, string, string)
-	IL_003d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0042:  throw 
-	IL_0043:  ldarg.0 
-	IL_0044:  ldarg.1 
-	IL_0045:  castclass NAnt.Core.Types.Pattern
-	IL_004a:  call instance int32 class NAnt.Core.Types.PatternCollection::IndexOf(class NAnt.Core.Types.Pattern)
-	IL_004f:  stloc.0 
-	IL_0050:  br IL_0055
+  } // end of class NAnt.Core.Functions.StringFunctions
+}
 
-	IL_0055:  ldloc.0 
-	IL_0056:  ret 
-    } // end of method PatternCollection::System.Collections.IList.IndexOf
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit EnvironmentFunctions
+  	extends NAnt.Core.FunctionSetBase
+  {
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 0B 65 6E 76 69 72 6F 6E 6D 65 6E 74 0B 45   // ...environment.E
+		6E 76 69 72 6F 6E 6D 65 6E 74 00 00             ) // nvironment..
 
-    // method line 407
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IList.Insert (int32 index, object 'value')  cil managed 
+
+    // method line 319
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x8a0c
-	.override class [mscorlib]System.Collections.IList::Insert
-	// Code size 81 (0x51)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  brtrue IL_0013
+        // Method begins at RVA 0x724f
+	// Code size 10 (0xa)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method EnvironmentFunctions::.ctor
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "value"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.2 
-	IL_0014:  isinst NAnt.Core.Types.Pattern
-	IL_0019:  brtrue IL_0043
+    // method line 320
+    .method public static hidebysig 
+           default string GetFolderPath (valuetype [mscorlib]System.Environment/SpecialFolder folder)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0F 67 65 74 2D 66 6F 6C 64 65 72 2D 70 61   // ...get-folder-pa
+		74 68 00 00                                     ) // th..
 
-	IL_001e:  nop 
-	IL_001f:  ldstr "Specified value is not an instance of "
-	IL_0024:  ldtoken NAnt.Core.Types.Pattern
-	IL_0029:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_002e:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0033:  ldstr "."
-	IL_0038:  call string string::Concat(string, string, string)
-	IL_003d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0042:  throw 
-	IL_0043:  ldarg.0 
-	IL_0044:  ldarg.1 
-	IL_0045:  ldarg.2 
-	IL_0046:  castclass NAnt.Core.Types.Pattern
-	IL_004b:  call instance void class NAnt.Core.Types.PatternCollection::Insert(int32, class NAnt.Core.Types.Pattern)
-	IL_0050:  ret 
-    } // end of method PatternCollection::System.Collections.IList.Insert
+        // Method begins at RVA 0x725c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 408
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IList.Remove (object 'value')  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method EnvironmentFunctions::GetFolderPath
+
+    // method line 321
+    .method public static hidebysig 
+           default string GetMachineName ()  cil managed 
     {
-        // Method begins at RVA 0x8a6c
-	.override class [mscorlib]System.Collections.IList::Remove
-	// Code size 80 (0x50)
-	.maxstack 3
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 10 67 65 74 2D 6D 61 63 68 69 6E 65 2D 6E   // ...get-machine-n
+		61 6D 65 00 00                                  ) // ame..
+
+        // Method begins at RVA 0x7278
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	IL_0001:  call string class [mscorlib]System.Environment::get_MachineName()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "value"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.1 
-	IL_0014:  isinst NAnt.Core.Types.Pattern
-	IL_0019:  brtrue IL_0043
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method EnvironmentFunctions::GetMachineName
 
-	IL_001e:  nop 
-	IL_001f:  ldstr "Specified value is not an instance of "
-	IL_0024:  ldtoken NAnt.Core.Types.Pattern
-	IL_0029:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_002e:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0033:  ldstr "."
-	IL_0038:  call string string::Concat(string, string, string)
-	IL_003d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0042:  throw 
-	IL_0043:  ldarg.0 
-	IL_0044:  ldarg.1 
-	IL_0045:  castclass NAnt.Core.Types.Pattern
-	IL_004a:  call instance void class NAnt.Core.Types.PatternCollection::Remove(class NAnt.Core.Types.Pattern)
-	IL_004f:  ret 
-    } // end of method PatternCollection::System.Collections.IList.Remove
+    // method line 322
+    .method public static hidebysig 
+           default class [mscorlib]System.OperatingSystem GetOperatingSystem ()  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 14 67 65 74 2D 6F 70 65 72 61 74 69 6E 67   // ...get-operating
+		2D 73 79 73 74 65 6D 00 00                      ) // -system..
 
-    // method line 409
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IList.RemoveAt (int32 index)  cil managed 
+        // Method begins at RVA 0x7294
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.OperatingSystem	V_0)
+	IL_0000:  nop 
+	IL_0001:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method EnvironmentFunctions::GetOperatingSystem
+
+    // method line 323
+    .method public static hidebysig 
+           default string GetUserName ()  cil managed 
     {
-        // Method begins at RVA 0x8ac8
-	.override class [mscorlib]System.Collections.IList::RemoveAt
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0D 67 65 74 2D 75 73 65 72 2D 6E 61 6D 65   // ...get-user-name
+		00 00                                           ) // ..
+
+        // Method begins at RVA 0x72b0
 	// Code size 14 (0xe)
-	.maxstack 8
+	.maxstack 1
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.ArrayList::RemoveAt(int32)
+	IL_0001:  call string class [mscorlib]System.Environment::get_UserName()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
 	IL_000d:  ret 
-    } // end of method PatternCollection::System.Collections.IList.RemoveAt
+    } // end of method EnvironmentFunctions::GetUserName
 
-    // method line 410
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.Pattern item)  cil managed 
+    // method line 324
+    .method public static hidebysig 
+           default string GetVariable (string name)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0C 67 65 74 2D 76 61 72 69 61 62 6C 65 00   // ...get-variable.
+		00                                              ) // .
+
+        // Method begins at RVA 0x72cc
+	// Code size 54 (0x36)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call bool class NAnt.Core.Functions.EnvironmentFunctions::VariableExists(string)
+	IL_0007:  brtrue IL_0028
+
+	IL_000c:  nop 
+	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0012:  ldstr "NA1095"
+	IL_0017:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_001c:  ldarg.0 
+	IL_001d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0022:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0027:  throw 
+	IL_0028:  ldarg.0 
+	IL_0029:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
+	IL_002e:  stloc.0 
+	IL_002f:  br IL_0034
+
+	IL_0034:  ldloc.0 
+	IL_0035:  ret 
+    } // end of method EnvironmentFunctions::GetVariable
+
+    // method line 325
+    .method public static hidebysig 
+           default bool VariableExists (string name)  cil managed 
     {
-        // Method begins at RVA 0x8ad8
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0F 76 61 72 69 61 62 6C 65 2D 65 78 69 73   // ...variable-exis
+		74 73 00 00                                     ) // ts..
+
+        // Method begins at RVA 0x7310
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		int32	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_0002:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
+	IL_0007:  ldnull 
+	IL_0008:  ceq 
+	IL_000a:  ldc.i4.0 
+	IL_000b:  ceq 
 	IL_000d:  stloc.0 
 	IL_000e:  br IL_0013
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method PatternCollection::Add
+    } // end of method EnvironmentFunctions::VariableExists
 
-    // method line 411
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.Pattern[] items)  cil managed 
+    // method line 326
+    .method public static hidebysig 
+           default class [mscorlib]System.Version GetVersion ()  cil managed 
     {
-        // Method begins at RVA 0x8afc
-	// Code size 34 (0x22)
-	.maxstack 3
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (
+		01 00 0B 67 65 74 2D 76 65 72 73 69 6F 6E 00 00 ) // ...get-version..
+
+        // Method begins at RVA 0x7334
+	// Code size 14 (0xe)
+	.maxstack 1
 	.locals init (
-		int32	V_0)
+		class [mscorlib]System.Version	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Core.Types.PatternCollection::Add(class NAnt.Core.Types.Pattern)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
+	IL_0001:  call class [mscorlib]System.Version class [mscorlib]System.Environment::get_Version()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0021:  ret 
-    } // end of method PatternCollection::AddRange
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method EnvironmentFunctions::GetVersion
 
-    // method line 412
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.PatternCollection items)  cil managed 
+    // method line 327
+    .method public static hidebysig 
+           default string NewLine ()  cil managed 
     {
-        // Method begins at RVA 0x8b2c
-	// Code size 41 (0x29)
-	.maxstack 3
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 07 6E 65 77 6C 69 6E 65 00 00 ) // ...newline..
+
+        // Method begins at RVA 0x7350
+	// Code size 14 (0xe)
+	.maxstack 1
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
+	IL_0001:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method EnvironmentFunctions::NewLine
+
+  } // end of class NAnt.Core.Functions.EnvironmentFunctions
+}
+
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit Int64ConversionFunctions
+  	extends NAnt.Core.FunctionSetBase
+  {
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 04 6C 6F 6E 67 0A 43 6F 6E 76 65 72 73 69   // ...long.Conversi
+		6F 6E 00 00                                     ) // on..
 
+
+    // method line 328
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+    {
+        // Method begins at RVA 0x736a
+	// Code size 10 (0xa)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
 	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Core.Types.Pattern class NAnt.Core.Types.PatternCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Core.Types.PatternCollection::Add(class NAnt.Core.Types.Pattern)
-	IL_0016:  pop 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class NAnt.Core.Types.PatternCollection::get_Count()
-	IL_0023:  blt IL_0008
+	IL_0009:  ret 
+    } // end of method Int64ConversionFunctions::.ctor
 
-	IL_0028:  ret 
-    } // end of method PatternCollection::AddRange
+    // method line 329
+    .method public static hidebysig 
+           default int64 Parse (string s)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
 
-    // method line 413
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.Pattern item)  cil managed 
+        // Method begins at RVA 0x7378
+	// Code size 20 (0x14)
+	.maxstack 2
+	.locals init (
+		int64	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0007:  call int64 int64::Parse(string, class [mscorlib]System.IFormatProvider)
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method Int64ConversionFunctions::Parse
+
+    // method line 330
+    .method public static hidebysig 
+           default string ToString (int64 'value')  cil managed 
     {
-        // Method begins at RVA 0x8b64
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
+
+        // Method begins at RVA 0x7398
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.ArrayList::Contains(object)
+	IL_0001:  ldarga.s 0
+	IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0008:  call instance string int64::ToString(class [mscorlib]System.IFormatProvider)
 	IL_000d:  stloc.0 
 	IL_000e:  br IL_0013
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method PatternCollection::Contains
+    } // end of method Int64ConversionFunctions::ToString
 
-    // method line 414
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.Pattern[] 'array', int32 index)  cil managed 
+  } // end of class NAnt.Core.Functions.Int64ConversionFunctions
+}
+
+.namespace NAnt.Core.Functions
+{
+  .class public auto ansi beforefieldinit BooleanConversionFunctions
+  	extends NAnt.Core.FunctionSetBase
+  {
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 04 62 6F 6F 6C 0A 43 6F 6E 76 65 72 73 69   // ...bool.Conversi
+		6F 6E 00 00                                     ) // on..
+
+
+    // method line 331
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
     {
-        // Method begins at RVA 0x8b85
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x73b9
+	// Code size 10 (0xa)
 	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.FunctionSetBase::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method BooleanConversionFunctions::.ctor
+
+    // method line 332
+    .method public static hidebysig 
+           default bool Parse (string s)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 05 70 61 72 73 65 00 00 ) // ...parse..
+
+        // Method begins at RVA 0x73c4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ArrayList::CopyTo(class [mscorlib]System.Array, int32)
+	IL_0002:  call bool bool::Parse(string)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PatternCollection::CopyTo
+    } // end of method BooleanConversionFunctions::Parse
 
-    // method line 415
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.Pattern item)  cil managed 
+    // method line 333
+    .method public static hidebysig 
+           default string ToString (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x8b98
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 74 6F 2D 73 74 72 69 6E 67 00 00 ) // ...to-string..
+
+        // Method begins at RVA 0x73e0
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::IndexOf(object)
+	IL_0001:  ldarga.s 0
+	IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0008:  call instance string bool::ToString(class [mscorlib]System.IFormatProvider)
 	IL_000d:  stloc.0 
 	IL_000e:  br IL_0013
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method PatternCollection::IndexOf
+    } // end of method BooleanConversionFunctions::ToString
 
-    // method line 416
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.Pattern item)  cil managed 
+  } // end of class NAnt.Core.Functions.BooleanConversionFunctions
+}
+
+.namespace NAnt.Core.Configuration
+{
+  .class private auto ansi serializable beforefieldinit DirectoryName
+  	extends NAnt.Core.Configuration.ConditionalElement
+  {
+    .field  private  string _name
+
+    // method line 334
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x8bb9
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x9e73
+	// Code size 7 (0x7)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method PatternCollection::Insert
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Configuration.ConditionalElement::'.ctor'()
+	IL_0006:  ret 
+    } // end of method DirectoryName::.ctor
 
-    // method line 417
-    .method public hidebysig 
-           instance default class NAnt.Core.Types.PatternEnumerator GetEnumerator ()  cil managed 
+    // method line 335
+    .method public hidebysig specialname 
+           instance default string get_DirName ()  cil managed 
     {
-        // Method begins at RVA 0x8bcc
+        // Method begins at RVA 0x9e7c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.PatternEnumerator	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.Types.PatternEnumerator::'.ctor'(class NAnt.Core.Types.PatternCollection)
+	IL_0002:  ldfld string NAnt.Core.Configuration.DirectoryName::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PatternCollection::GetEnumerator
+    } // end of method DirectoryName::get_DirName
 
-    // method line 418
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.Pattern item)  cil managed 
+    // method line 336
+    .method public hidebysig specialname 
+           instance default void set_DirName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x8be7
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x9e97
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Remove(object)
-	IL_000d:  ret 
-    } // end of method PatternCollection::Remove
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Configuration.DirectoryName::_name
+	IL_0008:  ret 
+    } // end of method DirectoryName::set_DirName
 
-	.property instance bool System.Collections.ICollection.IsSynchronized ()
-	{
-		.get instance default bool NAnt.Core.Types.PatternCollection::System.Collections.ICollection.get_IsSynchronized () 
-	}
-	.property instance object System.Collections.ICollection.SyncRoot ()
-	{
-		.get instance default object NAnt.Core.Types.PatternCollection::System.Collections.ICollection.get_SyncRoot () 
-	}
-	.property instance object System.Collections.IList.Item (int32)
-	{
-		.get instance default object NAnt.Core.Types.PatternCollection::System.Collections.IList.get_Item (int32 index) 
-		.set instance default void NAnt.Core.Types.PatternCollection::System.Collections.IList.set_Item (int32 index, object 'value') 
-	}
-	.property instance bool System.Collections.IList.IsFixedSize ()
-	{
-		.get instance default bool NAnt.Core.Types.PatternCollection::System.Collections.IList.get_IsFixedSize () 
-	}
-	.property instance bool System.Collections.IList.IsReadOnly ()
-	{
-		.get instance default bool NAnt.Core.Types.PatternCollection::System.Collections.IList.get_IsReadOnly () 
-	}
-	.property instance class NAnt.Core.Types.Pattern Item (int32)
-	{
-		.get instance default class NAnt.Core.Types.Pattern NAnt.Core.Types.PatternCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Core.Types.PatternCollection::set_Item (int32 index, class NAnt.Core.Types.Pattern 'value') 
-	}
-	.property instance class [mscorlib]System.Collections.ArrayList List ()
-	{
-		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PatternCollection::get_List () 
-	}
-	.property instance int32 Count ()
+	.property instance string DirName ()
 	{
-		.get instance default int32 NAnt.Core.Types.PatternCollection::get_Count () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.get instance default string NAnt.Core.Configuration.DirectoryName::get_DirName () 
+		.set instance default void NAnt.Core.Configuration.DirectoryName::set_DirName (string 'value') 
 	}
-  } // end of class NAnt.Core.Types.PatternCollection
+  } // end of class NAnt.Core.Configuration.DirectoryName
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Configuration
 {
-  .class public auto ansi beforefieldinit PatternEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+  .class private auto ansi serializable beforefieldinit Runtime
+  	extends NAnt.Core.Element
+  {
+    .field  private  class NAnt.Core.Configuration.ManagedExecutionModes _modes
+    .field  private  class NAnt.Core.Configuration.DirList _probingPaths
 
-    // method line 419
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.PatternCollection arguments)  cil managed 
+    // method line 337
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x8bf8
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
+        // Method begins at RVA 0x9ea1
+	// Code size 29 (0x1d)
+	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.PatternEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method PatternEnumerator::.ctor
+	IL_0001:  newobj instance void class NAnt.Core.Configuration.ManagedExecutionModes::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.Configuration.ManagedExecutionModes NAnt.Core.Configuration.Runtime::_modes
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class NAnt.Core.Configuration.DirList::'.ctor'()
+	IL_0011:  stfld class NAnt.Core.Configuration.DirList NAnt.Core.Configuration.Runtime::_probingPaths
+	IL_0016:  ldarg.0 
+	IL_0017:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_001c:  ret 
+    } // end of method Runtime::.ctor
 
-    // method line 420
+    // method line 338
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Pattern get_Current ()  cil managed 
+           instance default class NAnt.Core.Configuration.DirList get_ProbingPaths ()  cil managed 
     {
-        // Method begins at RVA 0x8c1c
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x9ec0
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.Pattern	V_0)
+		class NAnt.Core.Configuration.DirList	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.PatternEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.Types.Pattern
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0002:  ldfld class NAnt.Core.Configuration.DirList NAnt.Core.Configuration.Runtime::_probingPaths
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method PatternEnumerator::get_Current
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Runtime::get_ProbingPaths
 
-    // method line 421
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    // method line 339
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Configuration.ManagedExecutionModes get_Modes ()  cil managed 
     {
-        // Method begins at RVA 0x8c44
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x9edc
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		class NAnt.Core.Configuration.ManagedExecutionModes	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.PatternEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld class NAnt.Core.Configuration.ManagedExecutionModes NAnt.Core.Configuration.Runtime::_modes
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method PatternEnumerator::System.Collections.IEnumerator.get_Current
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Runtime::get_Modes
 
-    // method line 422
-    .method public final virtual hidebysig newslot 
-           instance default bool MoveNext ()  cil managed 
+	.property instance class NAnt.Core.Configuration.DirList ProbingPaths ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0D 70 72 6F 62 69 6E 67 2D 70 61 74 68 73   // ...probing-paths
+		00 00                                           ) // ..
+
+		.get instance default class NAnt.Core.Configuration.DirList NAnt.Core.Configuration.Runtime::get_ProbingPaths () 
+	}
+	.property instance class NAnt.Core.Configuration.ManagedExecutionModes Modes ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 05 6D 6F 64 65 73 00 00 ) // ...modes..
+
+		.get instance default class NAnt.Core.Configuration.ManagedExecutionModes NAnt.Core.Configuration.Runtime::get_Modes () 
+	}
+  } // end of class NAnt.Core.Configuration.Runtime
+}
+
+.namespace NAnt.Core.Configuration
+{
+  .class private auto ansi serializable beforefieldinit ManagedExecutionMode
+  	extends NAnt.Core.Element
+  {
+    .field  private  class NAnt.Core.Configuration.RuntimeEngine _engine
+    .field  private  class NAnt.Core.Types.EnvironmentSet _environmentSet
+
+    // method line 340
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x8c64
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x9ef7
+	// Code size 18 (0x12)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class NAnt.Core.Types.EnvironmentSet::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.Types.EnvironmentSet NAnt.Core.Configuration.ManagedExecutionMode::_environmentSet
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0011:  ret 
+    } // end of method ManagedExecutionMode::.ctor
+
+    // method line 341
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Configuration.RuntimeEngine get_Engine ()  cil managed 
+    {
+        // Method begins at RVA 0x9f0c
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Configuration.RuntimeEngine	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.PatternEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld class NAnt.Core.Configuration.RuntimeEngine NAnt.Core.Configuration.ManagedExecutionMode::_engine
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method PatternEnumerator::MoveNext
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedExecutionMode::get_Engine
 
-    // method line 423
-    .method public final virtual hidebysig newslot 
-           instance default void Reset ()  cil managed 
+    // method line 342
+    .method public hidebysig specialname 
+           instance default void set_Engine (class NAnt.Core.Configuration.RuntimeEngine 'value')  cil managed 
     {
-        // Method begins at RVA 0x8c84
-	// Code size 13 (0xd)
+        // Method begins at RVA 0x9f27
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.PatternEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method PatternEnumerator::Reset
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Configuration.RuntimeEngine NAnt.Core.Configuration.ManagedExecutionMode::_engine
+	IL_0008:  ret 
+    } // end of method ManagedExecutionMode::set_Engine
 
-	.property instance object System.Collections.IEnumerator.Current ()
+    // method line 343
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.EnvironmentSet get_Environment ()  cil managed 
+    {
+        // Method begins at RVA 0x9f34
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.EnvironmentSet	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Types.EnvironmentSet NAnt.Core.Configuration.ManagedExecutionMode::_environmentSet
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedExecutionMode::get_Environment
+
+	.property instance class NAnt.Core.Configuration.RuntimeEngine Engine ()
 	{
-		.get instance default object NAnt.Core.Types.PatternEnumerator::System.Collections.IEnumerator.get_Current () 
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 06 65 6E 67 69 6E 65 00 00 ) // ...engine..
+
+		.get instance default class NAnt.Core.Configuration.RuntimeEngine NAnt.Core.Configuration.ManagedExecutionMode::get_Engine () 
+		.set instance default void NAnt.Core.Configuration.ManagedExecutionMode::set_Engine (class NAnt.Core.Configuration.RuntimeEngine 'value') 
 	}
-	.property instance class NAnt.Core.Types.Pattern Current ()
+	.property instance class NAnt.Core.Types.EnvironmentSet Environment ()
 	{
-		.get instance default class NAnt.Core.Types.Pattern NAnt.Core.Types.PatternEnumerator::get_Current () 
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0B 65 6E 76 69 72 6F 6E 6D 65 6E 74 00 00 ) // ...environment..
+
+		.get instance default class NAnt.Core.Types.EnvironmentSet NAnt.Core.Configuration.ManagedExecutionMode::get_Environment () 
 	}
-  } // end of class NAnt.Core.Types.PatternEnumerator
+  } // end of class NAnt.Core.Configuration.ManagedExecutionMode
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Configuration
 {
-  .class public auto ansi serializable beforefieldinit FileSet
-  	extends NAnt.Core.DataTypeBase
+  .class private auto ansi serializable beforefieldinit RuntimeEngine
+  	extends NAnt.Core.Element
   {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
-
-    .field  private  bool _hasScanned
-    .field  private  bool _defaultExcludes
-    .field  private  bool _failOnEmpty
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _baseDirectory
-    .field  private  class NAnt.Core.DirectoryScanner _scanner
-    .field  private  class [System]System.Collections.Specialized.StringCollection _asis
-    .field  private  class NAnt.Core.PathScanner _pathFiles
-    .field  private static initonly  class [log4net]log4net.ILog logger
+    .field  private  class [mscorlib]System.IO.FileInfo _program
+    .field  private  class NAnt.Core.Types.ArgumentCollection _arguments
 
-    // method line 424
+    // method line 344
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x8c92
-	// Code size 48 (0x30)
+        // Method begins at RVA 0x9f4f
+	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.FileSet::_defaultExcludes
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class NAnt.Core.DirectoryScanner::'.ctor'()
-	IL_000d:  stfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_0012:  ldarg.0 
-	IL_0013:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0018:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::_asis
-	IL_001d:  ldarg.0 
-	IL_001e:  newobj instance void class NAnt.Core.PathScanner::'.ctor'()
-	IL_0023:  stfld class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::_pathFiles
-	IL_0028:  ldarg.0 
-	IL_0029:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
-	IL_002e:  nop 
-	IL_002f:  ret 
-    } // end of method FileSet::.ctor
+	IL_0001:  newobj instance void class NAnt.Core.Types.ArgumentCollection::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.Types.ArgumentCollection NAnt.Core.Configuration.RuntimeEngine::_arguments
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0011:  ret 
+    } // end of method RuntimeEngine::.ctor
 
-    // method line 425
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.FileSet fs)  cil managed 
+    // method line 345
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Program ()  cil managed 
     {
-        // Method begins at RVA 0x8cc3
-	// Code size 55 (0x37)
+        // Method begins at RVA 0x9f64
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Configuration.RuntimeEngine::_program
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method RuntimeEngine::get_Program
+
+    // method line 346
+    .method public hidebysig specialname 
+           instance default void set_Program (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9f7f
+	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.FileSet::_defaultExcludes
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class NAnt.Core.DirectoryScanner::'.ctor'()
-	IL_000d:  stfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_0012:  ldarg.0 
-	IL_0013:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0018:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::_asis
-	IL_001d:  ldarg.0 
-	IL_001e:  newobj instance void class NAnt.Core.PathScanner::'.ctor'()
-	IL_0023:  stfld class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::_pathFiles
-	IL_0028:  ldarg.0 
-	IL_0029:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
-	IL_002e:  nop 
-	IL_002f:  ldarg.1 
-	IL_0030:  ldarg.0 
-	IL_0031:  callvirt instance void class NAnt.Core.Types.FileSet::CopyTo(class NAnt.Core.Types.FileSet)
-	IL_0036:  ret 
-    } // end of method FileSet::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Configuration.RuntimeEngine::_program
+	IL_0008:  ret 
+    } // end of method RuntimeEngine::set_Program
 
-    // method line 426
+    // method line 347
     .method public hidebysig specialname 
-           instance default bool get_CaseSensitive ()  cil managed 
+           instance default class NAnt.Core.Types.ArgumentCollection get_Arguments ()  cil managed 
     {
-        // Method begins at RVA 0x8cfc
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x9f8c
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Types.ArgumentCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_0007:  callvirt instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld class NAnt.Core.Types.ArgumentCollection NAnt.Core.Configuration.RuntimeEngine::_arguments
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FileSet::get_CaseSensitive
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method RuntimeEngine::get_Arguments
 
-    // method line 427
-    .method public hidebysig specialname 
-           instance default void set_CaseSensitive (bool 'value')  cil managed 
+    // method line 348
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x8d1c
-	// Code size 14 (0xe)
-	.maxstack 8
+        // Method begins at RVA 0x9fa8
+	// Code size 73 (0x49)
+	.maxstack 3
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class NAnt.Core.DirectoryScanner::set_CaseSensitive(bool)
-	IL_000d:  ret 
-    } // end of method FileSet::set_CaseSensitive
+	IL_0002:  call instance void class NAnt.Core.Element::Initialize()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Configuration.RuntimeEngine::get_Program()
+	IL_000d:  ldnull 
+	IL_000e:  ceq 
+	IL_0010:  ldc.i4.0 
+	IL_0011:  ceq 
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Configuration.RuntimeEngine::get_Program()
+	IL_0019:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_001e:  ldc.i4.0 
+	IL_001f:  ceq 
+	IL_0021:  and 
+	IL_0022:  brfalse IL_0048
 
-    // method line 428
+	IL_0027:  nop 
+	IL_0028:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_002d:  ldstr "Runtime engine '{0}' does not exist."
+	IL_0032:  ldarg.0 
+	IL_0033:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Configuration.RuntimeEngine::get_Program()
+	IL_0038:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_003d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0042:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0047:  throw 
+	IL_0048:  ret 
+    } // end of method RuntimeEngine::Initialize
+
+	.property instance class [mscorlib]System.IO.FileInfo Program ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 70 72 6F 67 72 61 6D 01 00 54 02 08 52   // ...program..T..R
+		65 71 75 69 72 65 64 01                         ) // equired.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Configuration.RuntimeEngine::get_Program () 
+		.set instance default void NAnt.Core.Configuration.RuntimeEngine::set_Program (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class NAnt.Core.Types.ArgumentCollection Arguments ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 03 61 72 67 00 00 ) // ...arg..
+
+		.get instance default class NAnt.Core.Types.ArgumentCollection NAnt.Core.Configuration.RuntimeEngine::get_Arguments () 
+	}
+  } // end of class NAnt.Core.Configuration.RuntimeEngine
+}
+
+.namespace NAnt.Core.Configuration
+{
+  .class private auto ansi serializable beforefieldinit ManagedExecutionModes
+  	extends NAnt.Core.Element
+  {
+    .field  private  class NAnt.Core.Configuration.ManagedExecutionMode _autoMode
+    .field  private  class NAnt.Core.Configuration.ManagedExecutionMode _strictMode
+
+    // method line 349
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x9ffd
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ManagedExecutionModes::.ctor
+
+    // method line 350
     .method public hidebysig specialname 
-           instance default bool get_FailOnEmpty ()  cil managed 
+           instance default class NAnt.Core.Configuration.ManagedExecutionMode get_Auto ()  cil managed 
     {
-        // Method begins at RVA 0x8d2c
+        // Method begins at RVA 0xa008
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Configuration.ManagedExecutionMode	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_failOnEmpty
+	IL_0002:  ldfld class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Configuration.ManagedExecutionModes::_autoMode
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FileSet::get_FailOnEmpty
+    } // end of method ManagedExecutionModes::get_Auto
 
-    // method line 429
+    // method line 351
     .method public hidebysig specialname 
-           instance default void set_FailOnEmpty (bool 'value')  cil managed 
+           instance default void set_Auto (class NAnt.Core.Configuration.ManagedExecutionMode 'value')  cil managed 
     {
-        // Method begins at RVA 0x8d47
+        // Method begins at RVA 0xa023
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.FileSet::_failOnEmpty
+	IL_0003:  stfld class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Configuration.ManagedExecutionModes::_autoMode
 	IL_0008:  ret 
-    } // end of method FileSet::set_FailOnEmpty
+    } // end of method ManagedExecutionModes::set_Auto
 
-    // method line 430
+    // method line 352
     .method public hidebysig specialname 
-           instance default bool get_DefaultExcludes ()  cil managed 
+           instance default class NAnt.Core.Configuration.ManagedExecutionMode get_Strict ()  cil managed 
     {
-        // Method begins at RVA 0x8d54
+        // Method begins at RVA 0xa030
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Configuration.ManagedExecutionMode	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_defaultExcludes
+	IL_0002:  ldfld class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Configuration.ManagedExecutionModes::_strictMode
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FileSet::get_DefaultExcludes
+    } // end of method ManagedExecutionModes::get_Strict
 
-    // method line 431
+    // method line 353
     .method public hidebysig specialname 
-           instance default void set_DefaultExcludes (bool 'value')  cil managed 
+           instance default void set_Strict (class NAnt.Core.Configuration.ManagedExecutionMode 'value')  cil managed 
     {
-        // Method begins at RVA 0x8d6f
+        // Method begins at RVA 0xa04b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.FileSet::_defaultExcludes
+	IL_0003:  stfld class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Configuration.ManagedExecutionModes::_strictMode
 	IL_0008:  ret 
-    } // end of method FileSet::set_DefaultExcludes
+    } // end of method ManagedExecutionModes::set_Strict
 
-    // method line 432
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
+    // method line 354
+    .method public hidebysig 
+           instance default class NAnt.Core.Configuration.ManagedExecutionMode GetExecutionMode (valuetype NAnt.Core.Types.ManagedExecution 'managed')  cil managed 
     {
-        // Method begins at RVA 0x8d7c
-	// Code size 127 (0x7f)
-	.maxstack 2
+        // Method begins at RVA 0xa058
+	// Code size 86 (0x56)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		class NAnt.Core.Configuration.ManagedExecutionMode	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::_baseDirectory
-	IL_0007:  brtrue IL_0071
+	IL_0001:  ldarg.1 
+	IL_0002:  switch (
+	  IL_0018,
+	  IL_001f,
+	  IL_002b)
+	IL_0013:  br IL_004e
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance object class NAnt.Core.Element::get_Parent()
-	IL_0013:  brfalse IL_004e
+	IL_0018:  ldnull 
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_0054
 
-	IL_0018:  ldtoken NAnt.Core.Types.FileSet
-	IL_001d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0022:  ldarg.0 
-	IL_0023:  call instance object class NAnt.Core.Element::get_Parent()
-	IL_0028:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_002d:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_0032:  brfalse IL_004e
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance class NAnt.Core.Configuration.ManagedExecutionMode class NAnt.Core.Configuration.ManagedExecutionModes::get_Auto()
+	IL_0025:  stloc.0 
+	IL_0026:  br IL_0054
 
-	IL_0037:  nop 
-	IL_0038:  ldarg.0 
-	IL_0039:  call instance object class NAnt.Core.Element::get_Parent()
-	IL_003e:  castclass NAnt.Core.Types.FileSet
-	IL_0043:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_002b:  ldarg.0 
+	IL_002c:  call instance class NAnt.Core.Configuration.ManagedExecutionMode class NAnt.Core.Configuration.ManagedExecutionModes::get_Strict()
+	IL_0031:  brfalse IL_0042
+
+	IL_0036:  ldarg.0 
+	IL_0037:  call instance class NAnt.Core.Configuration.ManagedExecutionMode class NAnt.Core.Configuration.ManagedExecutionModes::get_Strict()
+	IL_003c:  stloc.0 
+	IL_003d:  br IL_0054
+
+	IL_0042:  ldarg.0 
+	IL_0043:  call instance class NAnt.Core.Configuration.ManagedExecutionMode class NAnt.Core.Configuration.ManagedExecutionModes::get_Auto()
 	IL_0048:  stloc.0 
-	IL_0049:  br IL_007d
+	IL_0049:  br IL_0054
 
-	IL_004e:  ldarg.0 
-	IL_004f:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0054:  brfalse IL_0070
+	IL_004e:  newobj instance void class [mscorlib]System.NotImplementedException::'.ctor'()
+	IL_0053:  throw 
+	IL_0054:  ldloc.0 
+	IL_0055:  ret 
+    } // end of method ManagedExecutionModes::GetExecutionMode
 
-	IL_0059:  nop 
-	IL_005a:  ldarg.0 
-	IL_005b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0060:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_0065:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_006a:  stloc.0 
-	IL_006b:  br IL_007d
+	.property instance class NAnt.Core.Configuration.ManagedExecutionMode Auto ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 04 61 75 74 6F 00 00 ) // ...auto..
 
-	IL_0070:  nop 
-	IL_0071:  ldarg.0 
-	IL_0072:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::_baseDirectory
-	IL_0077:  stloc.0 
-	IL_0078:  br IL_007d
+		.get instance default class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Configuration.ManagedExecutionModes::get_Auto () 
+		.set instance default void NAnt.Core.Configuration.ManagedExecutionModes::set_Auto (class NAnt.Core.Configuration.ManagedExecutionMode 'value') 
+	}
+	.property instance class NAnt.Core.Configuration.ManagedExecutionMode Strict ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 06 73 74 72 69 63 74 00 00 ) // ...strict..
 
-	IL_007d:  ldloc.0 
-	IL_007e:  ret 
-    } // end of method FileSet::get_BaseDirectory
+		.get instance default class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Configuration.ManagedExecutionModes::get_Strict () 
+		.set instance default void NAnt.Core.Configuration.ManagedExecutionModes::set_Strict (class NAnt.Core.Configuration.ManagedExecutionMode 'value') 
+	}
+  } // end of class NAnt.Core.Configuration.ManagedExecutionModes
+}
 
-    // method line 433
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x8e07
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::_baseDirectory
-	IL_0008:  ret 
-    } // end of method FileSet::set_BaseDirectory
+.namespace NAnt.Core.Configuration
+{
+  .class private auto ansi serializable beforefieldinit ConditionalElement
+  	extends NAnt.Core.Element
+  {
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 434
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Includes ()  cil managed 
+    // method line 355
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x8e14
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_0007:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_Includes()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FileSet::get_Includes
+        // Method begins at RVA 0x9cd8
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Configuration.ConditionalElement::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  ret 
+    } // end of method ConditionalElement::.ctor
 
-    // method line 435
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Excludes ()  cil managed 
+    // method line 356
+    .method family virtual hidebysig 
+           instance default void InitializeXml (class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo framework)  cil managed 
     {
-        // Method begins at RVA 0x8e34
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x9ce8
+	// Code size 25 (0x19)
+	.maxstack 4
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
+		class NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_0007:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_Excludes()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance void class NAnt.Core.Element::set_XmlNode(class [System.Xml]System.Xml.XmlNode)
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  ldarg.2 
+	IL_000b:  ldarg.3 
+	IL_000c:  newobj instance void class NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator::'.ctor'(class NAnt.Core.Configuration.ConditionalElement, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
+	IL_0011:  stloc.0 
 	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FileSet::get_Excludes
+	IL_0013:  callvirt instance void class NAnt.Core.Element/AttributeConfigurator::Initialize()
+	IL_0018:  ret 
+    } // end of method ConditionalElement::InitializeXml
 
-    // method line 436
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_AsIs ()  cil managed 
+    // method line 357
+    .method family hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x8e54
+        // Method begins at RVA 0x9d10
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::_asis
+	IL_0002:  ldfld bool NAnt.Core.Configuration.ConditionalElement::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FileSet::get_AsIs
+    } // end of method ConditionalElement::get_IfDefined
 
-    // method line 437
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.PathScanner get_PathFiles ()  cil managed 
+    // method line 358
+    .method family hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9d2b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Configuration.ConditionalElement::_ifDefined
+	IL_0008:  ret 
+    } // end of method ConditionalElement::set_IfDefined
+
+    // method line 359
+    .method family hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x8e70
+        // Method begins at RVA 0x9d38
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.PathScanner	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::_pathFiles
+	IL_0002:  ldfld bool NAnt.Core.Configuration.ConditionalElement::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FileSet::get_PathFiles
+    } // end of method ConditionalElement::get_UnlessDefined
 
-    // method line 438
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_FileNames ()  cil managed 
+    // method line 360
+    .method family hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x8e8c
-	// Code size 39 (0x27)
-	.maxstack 1
+        // Method begins at RVA 0x9d53
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Configuration.ConditionalElement::_unlessDefined
+	IL_0008:  ret 
+    } // end of method ConditionalElement::set_UnlessDefined
+
+    // method line 361
+    .method assembly hidebysig specialname 
+           instance default bool get_Enabled ()  cil managed 
+    {
+        // Method begins at RVA 0x9d60
+	// Code size 32 (0x20)
+	.maxstack 2
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_hasScanned
-	IL_0007:  brtrue IL_0014
+	IL_0002:  call instance bool class NAnt.Core.Configuration.ConditionalElement::get_IfDefined()
+	IL_0007:  brfalse IL_0017
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance void class NAnt.Core.Types.FileSet::Scan()
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_001a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_FileNames()
-	IL_001f:  stloc.0 
-	IL_0020:  br IL_0025
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance bool class NAnt.Core.Configuration.ConditionalElement::get_UnlessDefined()
+	IL_0012:  ldc.i4.0 
+	IL_0013:  ceq 
+	IL_0015:  br.s IL_0018
 
-	IL_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method FileSet::get_FileNames
+	IL_0017:  ldc.i4.0 
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_001e
 
-    // method line 439
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_DirectoryNames ()  cil managed 
+	IL_001e:  ldloc.0 
+	IL_001f:  ret 
+    } // end of method ConditionalElement::get_Enabled
+
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+
+		.get instance default bool NAnt.Core.Configuration.ConditionalElement::get_IfDefined () 
+		.set instance default void NAnt.Core.Configuration.ConditionalElement::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+
+		.get instance default bool NAnt.Core.Configuration.ConditionalElement::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Configuration.ConditionalElement::set_UnlessDefined (bool 'value') 
+	}
+	.property instance bool Enabled ()
+	{
+		.get instance default bool NAnt.Core.Configuration.ConditionalElement::get_Enabled () 
+	}
+  .class nested private auto ansi beforefieldinit ConditionalConfigurator
+  	extends NAnt.Core.Element/AttributeConfigurator
+  {
+    .field  private initonly  bool _enabled
+
+    // method line 362
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Configuration.ConditionalElement element, class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo targetFramework)  cil managed 
     {
-        // Method begins at RVA 0x8ec0
-	// Code size 39 (0x27)
-	.maxstack 1
+        // Method begins at RVA 0x9d8c
+	// Code size 148 (0x94)
+	.maxstack 5
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_hasScanned
-	IL_0007:  brtrue IL_0014
+		class [mscorlib]System.Type	V_0,
+		class [mscorlib]System.Reflection.PropertyInfo	V_1,
+		class [mscorlib]System.Reflection.PropertyInfo	V_2)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator::_enabled
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.2 
+	IL_000a:  ldarg.3 
+	IL_000b:  ldarg.s 4
+	IL_000d:  call instance void class NAnt.Core.Element/AttributeConfigurator::'.ctor'(class NAnt.Core.Element, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
+	IL_0012:  nop 
+	IL_0013:  ldarg.1 
+	IL_0014:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0019:  stloc.0 
+	IL_001a:  ldloc.0 
+	IL_001b:  ldstr "IfDefined"
+	IL_0020:  ldc.i4.s 0x24
+	IL_0022:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo class [mscorlib]System.Type::GetProperty(string, valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_0027:  stloc.1 
+	IL_0028:  ldarg.0 
+	IL_0029:  ldloc.1 
+	IL_002a:  callvirt instance bool class NAnt.Core.Element/AttributeConfigurator::InitializeAttribute(class [mscorlib]System.Reflection.PropertyInfo)
+	IL_002f:  pop 
+	IL_0030:  ldarg.1 
+	IL_0031:  callvirt instance bool class NAnt.Core.Configuration.ConditionalElement::get_IfDefined()
+	IL_0036:  brtrue IL_0049
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance void class NAnt.Core.Types.FileSet::Scan()
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_001a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_DirectoryNames()
-	IL_001f:  stloc.0 
-	IL_0020:  br IL_0025
+	IL_003b:  nop 
+	IL_003c:  ldarg.0 
+	IL_003d:  ldc.i4.0 
+	IL_003e:  stfld bool NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator::_enabled
+	IL_0043:  nop 
+	IL_0044:  br IL_0070
 
-	IL_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method FileSet::get_DirectoryNames
+	IL_0049:  nop 
+	IL_004a:  ldloc.0 
+	IL_004b:  ldstr "UnlessDefined"
+	IL_0050:  ldc.i4.s 0x24
+	IL_0052:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo class [mscorlib]System.Type::GetProperty(string, valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_0057:  stloc.2 
+	IL_0058:  ldarg.0 
+	IL_0059:  ldloc.2 
+	IL_005a:  callvirt instance bool class NAnt.Core.Element/AttributeConfigurator::InitializeAttribute(class [mscorlib]System.Reflection.PropertyInfo)
+	IL_005f:  pop 
+	IL_0060:  ldarg.0 
+	IL_0061:  ldarg.1 
+	IL_0062:  callvirt instance bool class NAnt.Core.Configuration.ConditionalElement::get_UnlessDefined()
+	IL_0067:  ldc.i4.0 
+	IL_0068:  ceq 
+	IL_006a:  stfld bool NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator::_enabled
+	IL_006f:  nop 
+	IL_0070:  ldarg.0 
+	IL_0071:  ldfld bool NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator::_enabled
+	IL_0076:  brtrue IL_0093
 
-    // method line 440
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_ScannedDirectories ()  cil managed 
+	IL_007b:  nop 
+	IL_007c:  ldarg.0 
+	IL_007d:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedAttributes()
+	IL_0082:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
+	IL_0087:  ldarg.0 
+	IL_0088:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
+	IL_008d:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
+	IL_0092:  nop 
+	IL_0093:  ret 
+    } // end of method ConditionalConfigurator::.ctor
+
+    // method line 363
+    .method family virtual hidebysig 
+           instance default bool InitializeAttribute (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
     {
-        // Method begins at RVA 0x8ef4
-	// Code size 39 (0x27)
-	.maxstack 1
+        // Method begins at RVA 0x9e2c
+	// Code size 34 (0x22)
+	.maxstack 2
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_hasScanned
-	IL_0007:  brtrue IL_0014
+	IL_0002:  ldfld bool NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator::_enabled
+	IL_0007:  brtrue IL_0013
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance void class NAnt.Core.Types.FileSet::Scan()
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_001a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_ScannedDirectories()
-	IL_001f:  stloc.0 
-	IL_0020:  br IL_0025
+	IL_000c:  ldc.i4.1 
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0020
 
-	IL_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method FileSet::get_ScannedDirectories
+	IL_0013:  ldarg.0 
+	IL_0014:  ldarg.1 
+	IL_0015:  call instance bool class NAnt.Core.Element/AttributeConfigurator::InitializeAttribute(class [mscorlib]System.Reflection.PropertyInfo)
+	IL_001a:  stloc.0 
+	IL_001b:  br IL_0020
 
-    // method line 441
-    .method public hidebysig specialname 
-           instance default void set_SetIncludes (class NAnt.Core.Types.FileSet/Include[] 'value')  cil managed 
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method ConditionalConfigurator::InitializeAttribute
+
+    // method line 364
+    .method family virtual hidebysig 
+           instance default void InitializeOrderedChildElements ()  cil managed 
     {
-        // Method begins at RVA 0x8f27
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x9e5a
+	// Code size 24 (0x18)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Types.FileSet::set_IncludeElements(class NAnt.Core.Types.FileSet/Include[])
-	IL_0008:  ret 
-    } // end of method FileSet::set_SetIncludes
+	IL_0002:  ldfld bool NAnt.Core.Configuration.ConditionalElement/ConditionalConfigurator::_enabled
+	IL_0007:  brtrue IL_0011
 
-    // method line 442
-    .method public hidebysig specialname 
-           instance default void set_IncludeElements (class NAnt.Core.Types.FileSet/Include[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x8f34
-	// Code size 239 (0xef)
-	.maxstack 4
-	.locals init (
-		class NAnt.Core.Types.FileSet/Include	V_0,
-		class NAnt.Core.Types.FileSet/Include[]	V_1,
-		int32	V_2)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.1 
-	IL_0003:  stloc.1 
-	IL_0004:  ldc.i4.0 
-	IL_0005:  stloc.2 
-	IL_0006:  br IL_00e5
+	IL_000c:  br IL_0017
 
-	IL_000b:  ldloc.1 
-	IL_000c:  ldloc.2 
-	IL_000d:  ldelem.ref 
-	IL_000e:  stloc.0 
-	IL_000f:  nop 
-	IL_0010:  ldloc.0 
-	IL_0011:  callvirt instance bool class NAnt.Core.Types.FileSet/Exclude::get_IfDefined()
-	IL_0016:  brfalse IL_00e0
+	IL_0011:  ldarg.0 
+	IL_0012:  call instance void class NAnt.Core.Element/AttributeConfigurator::InitializeOrderedChildElements()
+	IL_0017:  ret 
+    } // end of method ConditionalConfigurator::InitializeOrderedChildElements
 
-	IL_001b:  ldloc.0 
-	IL_001c:  callvirt instance bool class NAnt.Core.Types.FileSet/Exclude::get_UnlessDefined()
-	IL_0021:  brtrue IL_00e0
+  } // end of class ConditionalConfigurator
 
-	IL_0026:  nop 
-	IL_0027:  ldloc.0 
-	IL_0028:  callvirt instance bool class NAnt.Core.Types.FileSet/Include::get_AsIs()
-	IL_002d:  brfalse IL_006a
+  } // end of class NAnt.Core.Configuration.ConditionalElement
+}
 
-	IL_0032:  nop 
-	IL_0033:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
-	IL_0038:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_003d:  ldstr "Including AsIs="
-	IL_0042:  ldloc.0 
-	IL_0043:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
-	IL_0048:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_004d:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
-	IL_0052:  ldarg.0 
-	IL_0053:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_AsIs()
-	IL_0058:  ldloc.0 
-	IL_0059:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
-	IL_005e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0063:  pop 
-	IL_0064:  nop 
-	IL_0065:  br IL_00df
+.namespace NAnt.Core.Configuration
+{
+  .class private auto ansi serializable beforefieldinit DirList
+  	extends NAnt.Core.Element
+  {
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _baseDirectory
+    .field  private  class NAnt.Core.Configuration.DirectoryName[] _directoryNames
 
-	IL_006a:  ldloc.0 
-	IL_006b:  callvirt instance bool class NAnt.Core.Types.FileSet/Include::get_FromPath()
-	IL_0070:  brfalse IL_00ac
+    // method line 365
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xa0ba
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0006:  ret 
+    } // end of method DirList::.ctor
 
-	IL_0075:  nop 
-	IL_0076:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
-	IL_007b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0080:  ldstr "Including FromPath="
-	IL_0085:  ldloc.0 
-	IL_0086:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
-	IL_008b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0090:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
-	IL_0095:  ldarg.0 
-	IL_0096:  call instance class NAnt.Core.PathScanner class NAnt.Core.Types.FileSet::get_PathFiles()
-	IL_009b:  ldloc.0 
-	IL_009c:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
-	IL_00a1:  callvirt instance void class NAnt.Core.PathScanner::Add(string)
-	IL_00a6:  nop 
-	IL_00a7:  br IL_00df
+    // method line 366
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
+    {
+        // Method begins at RVA 0xa0c4
+	// Code size 49 (0x31)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Configuration.DirList::_baseDirectory
+	IL_0007:  brtrue IL_0023
 
-	IL_00ac:  nop 
-	IL_00ad:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
-	IL_00b2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00b7:  ldstr "Including pattern"
-	IL_00bc:  ldloc.0 
-	IL_00bd:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
-	IL_00c2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00c7:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
-	IL_00cc:  ldarg.0 
-	IL_00cd:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
-	IL_00d2:  ldloc.0 
-	IL_00d3:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
-	IL_00d8:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_00dd:  pop 
-	IL_00de:  nop 
-	IL_00df:  nop 
-	IL_00e0:  nop 
-	IL_00e1:  ldloc.2 
-	IL_00e2:  ldc.i4.1 
-	IL_00e3:  add 
-	IL_00e4:  stloc.2 
-	IL_00e5:  ldloc.2 
-	IL_00e6:  ldloc.1 
-	IL_00e7:  ldlen 
-	IL_00e8:  conv.i4 
-	IL_00e9:  blt IL_000b
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0013:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_0018:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_001d:  stloc.0 
+	IL_001e:  br IL_002f
 
-	IL_00ee:  ret 
-    } // end of method FileSet::set_IncludeElements
+	IL_0023:  ldarg.0 
+	IL_0024:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Configuration.DirList::_baseDirectory
+	IL_0029:  stloc.0 
+	IL_002a:  br IL_002f
 
-    // method line 443
+	IL_002f:  ldloc.0 
+	IL_0030:  ret 
+    } // end of method DirList::get_Directory
+
+    // method line 367
     .method public hidebysig specialname 
-           instance default void set_SetExcludes (class NAnt.Core.Types.FileSet/Exclude[] 'value')  cil managed 
+           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x902f
+        // Method begins at RVA 0xa101
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Types.FileSet::set_ExcludeElements(class NAnt.Core.Types.FileSet/Exclude[])
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Configuration.DirList::_baseDirectory
 	IL_0008:  ret 
-    } // end of method FileSet::set_SetExcludes
+    } // end of method DirList::set_Directory
 
-    // method line 444
+    // method line 368
     .method public hidebysig specialname 
-           instance default void set_ExcludeElements (class NAnt.Core.Types.FileSet/Exclude[] 'value')  cil managed 
+           instance default class NAnt.Core.Configuration.DirectoryName[] get_DirectoryNames ()  cil managed 
     {
-        // Method begins at RVA 0x903c
-	// Code size 104 (0x68)
-	.maxstack 4
+        // Method begins at RVA 0xa10c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet/Exclude	V_0,
-		class NAnt.Core.Types.FileSet/Exclude[]	V_1,
-		int32	V_2)
+		class NAnt.Core.Configuration.DirectoryName[]	V_0)
 	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.1 
-	IL_0003:  stloc.1 
-	IL_0004:  ldc.i4.0 
-	IL_0005:  stloc.2 
-	IL_0006:  br IL_005e
-
-	IL_000b:  ldloc.1 
-	IL_000c:  ldloc.2 
-	IL_000d:  ldelem.ref 
-	IL_000e:  stloc.0 
-	IL_000f:  nop 
-	IL_0010:  ldloc.0 
-	IL_0011:  callvirt instance bool class NAnt.Core.Types.FileSet/Exclude::get_IfDefined()
-	IL_0016:  brfalse IL_0059
-
-	IL_001b:  ldloc.0 
-	IL_001c:  callvirt instance bool class NAnt.Core.Types.FileSet/Exclude::get_UnlessDefined()
-	IL_0021:  brtrue IL_0059
-
-	IL_0026:  nop 
-	IL_0027:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
-	IL_002c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0031:  ldstr "Excluding pattern"
-	IL_0036:  ldloc.0 
-	IL_0037:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
-	IL_003c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0041:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
-	IL_0046:  ldarg.0 
-	IL_0047:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_004c:  ldloc.0 
-	IL_004d:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
-	IL_0052:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0057:  pop 
-	IL_0058:  nop 
-	IL_0059:  nop 
-	IL_005a:  ldloc.2 
-	IL_005b:  ldc.i4.1 
-	IL_005c:  add 
-	IL_005d:  stloc.2 
-	IL_005e:  ldloc.2 
-	IL_005f:  ldloc.1 
-	IL_0060:  ldlen 
-	IL_0061:  conv.i4 
-	IL_0062:  blt IL_000b
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::_directoryNames
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0067:  ret 
-    } // end of method FileSet::set_ExcludeElements
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DirList::get_DirectoryNames
 
-    // method line 445
+    // method line 369
     .method public hidebysig specialname 
-           instance default void set_SetIncludesList (class NAnt.Core.Types.FileSet/IncludesFile[] 'value')  cil managed 
+           instance default void set_DirectoryNames (class NAnt.Core.Configuration.DirectoryName[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x90b0
+        // Method begins at RVA 0xa127
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Types.FileSet::set_IncludesFiles(class NAnt.Core.Types.FileSet/IncludesFile[])
+	IL_0003:  stfld class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::_directoryNames
 	IL_0008:  ret 
-    } // end of method FileSet::set_SetIncludesList
+    } // end of method DirList::set_DirectoryNames
 
-    // method line 446
-    .method public hidebysig specialname 
-           instance default void set_IncludesFiles (class NAnt.Core.Types.FileSet/IncludesFile[] 'value')  cil managed 
+    // method line 370
+    .method public hidebysig 
+           instance default string[] GetDirectories ()  cil managed 
     {
-        // Method begins at RVA 0x90bc
-	// Code size 422 (0x1a6)
-	.maxstack 4
+        // Method begins at RVA 0xa134
+	// Code size 28 (0x1c)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.FileSet/IncludesFile	V_0,
-		class NAnt.Core.Types.FileSet/IncludesFile[]	V_1,
-		int32	V_2,
-		string	V_3,
-		class [System]System.Collections.Specialized.StringEnumerator	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		string	V_6,
-		class [System]System.Collections.Specialized.StringEnumerator	V_7,
-		class [mscorlib]System.IDisposable	V_8,
-		string	V_9,
-		class [System]System.Collections.Specialized.StringEnumerator	V_10,
-		class [mscorlib]System.IDisposable	V_11)
+		string	V_0,
+		string[]	V_1)
 	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.1 
-	IL_0003:  stloc.1 
-	IL_0004:  ldc.i4.0 
-	IL_0005:  stloc.2 
-	IL_0006:  br IL_019c
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Configuration.DirList::get_Directory()
+	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_000c:  stloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  call instance string[] class NAnt.Core.Configuration.DirList::GetDirectories(string)
+	IL_0014:  stloc.1 
+	IL_0015:  br IL_001a
 
-	IL_000b:  ldloc.1 
-	IL_000c:  ldloc.2 
-	IL_000d:  ldelem.ref 
-	IL_000e:  stloc.0 
-	IL_000f:  nop 
-	IL_0010:  ldloc.0 
-	IL_0011:  callvirt instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_IfDefined()
-	IL_0016:  brfalse IL_0197
+	IL_001a:  ldloc.1 
+	IL_001b:  ret 
+    } // end of method DirList::GetDirectories
 
-	IL_001b:  ldloc.0 
-	IL_001c:  callvirt instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_UnlessDefined()
-	IL_0021:  brtrue IL_0197
+    // method line 371
+    .method assembly hidebysig 
+           instance default string[] GetDirectories (string baseDir)  cil managed 
+    {
+        // Method begins at RVA 0xa15c
+	// Code size 116 (0x74)
+	.maxstack 4
+	.locals init (
+		string[]	V_0,
+		string[]	V_1,
+		int32	V_2,
+		class NAnt.Core.Configuration.DirectoryName	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0012
 
-	IL_0026:  nop 
-	IL_0027:  ldloc.0 
-	IL_0028:  callvirt instance bool class NAnt.Core.Types.FileSet/IncludesFile::get_AsIs()
-	IL_002d:  brfalse IL_00a5
+	IL_0007:  ldstr "baseDir"
+	IL_000c:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0011:  throw 
+	IL_0012:  ldarg.0 
+	IL_0013:  ldfld class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::_directoryNames
+	IL_0018:  brtrue IL_002a
 
-	IL_0032:  nop 
-	IL_0033:  nop 
-	IL_0034:  ldloc.0 
-	IL_0035:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet/ExcludesFile::get_Patterns()
-	IL_003a:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_003f:  stloc.s 4
-	.try { // 0
-	  IL_0041:  br IL_0077
+	IL_001d:  nop 
+	IL_001e:  ldc.i4.0 
+	IL_001f:  newarr [mscorlib]System.String
+	IL_0024:  stloc.0 
+	IL_0025:  br IL_0072
 
-	  IL_0046:  ldloc.s 4
-	  IL_0048:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_004d:  stloc.3 
-	  IL_004e:  nop 
-	  IL_004f:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
-	  IL_0054:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0059:  ldstr "Including AsIs="
-	  IL_005e:  ldloc.3 
-	  IL_005f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0064:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
-	  IL_0069:  ldarg.0 
-	  IL_006a:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_AsIs()
-	  IL_006f:  ldloc.3 
-	  IL_0070:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_0075:  pop 
-	  IL_0076:  nop 
-	  IL_0077:  ldloc.s 4
-	  IL_0079:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_007e:  brtrue IL_0046
+	IL_002a:  ldarg.0 
+	IL_002b:  ldfld class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::_directoryNames
+	IL_0030:  ldlen 
+	IL_0031:  conv.i4 
+	IL_0032:  newarr [mscorlib]System.String
+	IL_0037:  stloc.1 
+	IL_0038:  ldc.i4.0 
+	IL_0039:  stloc.2 
+	IL_003a:  br IL_005d
 
-	  IL_0083:  leave IL_009f
+	IL_003f:  nop 
+	IL_0040:  ldarg.0 
+	IL_0041:  ldfld class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::_directoryNames
+	IL_0046:  ldloc.2 
+	IL_0047:  ldelem.ref 
+	IL_0048:  stloc.3 
+	IL_0049:  ldloc.1 
+	IL_004a:  ldloc.2 
+	IL_004b:  ldarg.1 
+	IL_004c:  ldloc.3 
+	IL_004d:  callvirt instance string class NAnt.Core.Configuration.DirectoryName::get_DirName()
+	IL_0052:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0057:  stelem.ref 
+	IL_0058:  nop 
+	IL_0059:  ldloc.2 
+	IL_005a:  ldc.i4.1 
+	IL_005b:  add 
+	IL_005c:  stloc.2 
+	IL_005d:  ldloc.2 
+	IL_005e:  ldarg.0 
+	IL_005f:  ldfld class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::_directoryNames
+	IL_0064:  ldlen 
+	IL_0065:  conv.i4 
+	IL_0066:  blt IL_003f
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0088:  ldloc.s 4
-	  IL_008a:  isinst [mscorlib]System.IDisposable
-	  IL_008f:  dup 
-	  IL_0090:  stloc.s 5
-	  IL_0092:  brfalse IL_009e
+	IL_006b:  ldloc.1 
+	IL_006c:  stloc.0 
+	IL_006d:  br IL_0072
 
-	  IL_0097:  ldloc.s 5
-	  IL_0099:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_009e:  endfinally 
-	} // end handler 0
-	IL_009f:  nop 
-	IL_00a0:  br IL_0196
+	IL_0072:  ldloc.0 
+	IL_0073:  ret 
+    } // end of method DirList::GetDirectories
 
-	IL_00a5:  ldloc.0 
-	IL_00a6:  callvirt instance bool class NAnt.Core.Types.FileSet/IncludesFile::get_FromPath()
-	IL_00ab:  brfalse IL_0125
+	.property instance class [mscorlib]System.IO.DirectoryInfo Directory ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 69 72 00 00 ) // ...dir..
 
-	IL_00b0:  nop 
-	IL_00b1:  nop 
-	IL_00b2:  ldloc.0 
-	IL_00b3:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet/ExcludesFile::get_Patterns()
-	IL_00b8:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_00bd:  stloc.s 7
-	.try { // 1
-	  IL_00bf:  br IL_00f7
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Configuration.DirList::get_Directory () 
+		.set instance default void NAnt.Core.Configuration.DirList::set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value') 
+	}
+	.property instance class NAnt.Core.Configuration.DirectoryName[] DirectoryNames ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 09 64 69 72 65 63 74 6F 72 79 00 00 ) // ...directory..
 
-	  IL_00c4:  ldloc.s 7
-	  IL_00c6:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_00cb:  stloc.s 6
-	  IL_00cd:  nop 
-	  IL_00ce:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
-	  IL_00d3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_00d8:  ldstr "Including FromPath="
-	  IL_00dd:  ldloc.s 6
-	  IL_00df:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_00e4:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
-	  IL_00e9:  ldarg.0 
-	  IL_00ea:  call instance class NAnt.Core.PathScanner class NAnt.Core.Types.FileSet::get_PathFiles()
-	  IL_00ef:  ldloc.s 6
-	  IL_00f1:  callvirt instance void class NAnt.Core.PathScanner::Add(string)
-	  IL_00f6:  nop 
-	  IL_00f7:  ldloc.s 7
-	  IL_00f9:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_00fe:  brtrue IL_00c4
+		.get instance default class NAnt.Core.Configuration.DirectoryName[] NAnt.Core.Configuration.DirList::get_DirectoryNames () 
+		.set instance default void NAnt.Core.Configuration.DirList::set_DirectoryNames (class NAnt.Core.Configuration.DirectoryName[] 'value') 
+	}
+  } // end of class NAnt.Core.Configuration.DirList
+}
 
-	  IL_0103:  leave IL_011f
+.namespace NAnt.Core.Attributes
+{
+  .class public auto ansi abstract beforefieldinit ValidatorAttribute
+  	extends [mscorlib]System.Attribute
+  {
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 01                                  ) // ited.
 
-	} // end .try 1
-	finally  { // 1
-	  IL_0108:  ldloc.s 7
-	  IL_010a:  isinst [mscorlib]System.IDisposable
-	  IL_010f:  dup 
-	  IL_0110:  stloc.s 8
-	  IL_0112:  brfalse IL_011e
 
-	  IL_0117:  ldloc.s 8
-	  IL_0119:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_011e:  endfinally 
-	} // end handler 1
-	IL_011f:  nop 
-	IL_0120:  br IL_0196
+    // method line 372
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xa1dc
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ValidatorAttribute::.ctor
 
-	IL_0125:  nop 
-	IL_0126:  nop 
-	IL_0127:  ldloc.0 
-	IL_0128:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet/ExcludesFile::get_Patterns()
-	IL_012d:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0132:  stloc.s 10
-	.try { // 2
-	  IL_0134:  br IL_016d
+    // method line 373
+    .method public virtual hidebysig newslot abstract 
+           instance default void Validate (object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ValidatorAttribute::Validate
 
-	  IL_0139:  ldloc.s 10
-	  IL_013b:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0140:  stloc.s 9
-	  IL_0142:  nop 
-	  IL_0143:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
-	  IL_0148:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_014d:  ldstr "Including Pattern="
-	  IL_0152:  ldloc.s 9
-	  IL_0154:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0159:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
-	  IL_015e:  ldarg.0 
-	  IL_015f:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
-	  IL_0164:  ldloc.s 9
-	  IL_0166:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_016b:  pop 
-	  IL_016c:  nop 
-	  IL_016d:  ldloc.s 10
-	  IL_016f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0174:  brtrue IL_0139
+  } // end of class NAnt.Core.Attributes.ValidatorAttribute
+}
 
-	  IL_0179:  leave IL_0195
+.namespace NAnt.Core.Attributes
+{
+  .class public auto ansi sealed beforefieldinit Int32ValidatorAttribute
+  	extends NAnt.Core.Attributes.ValidatorAttribute
+  {
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 01                                  ) // ited.
 
-	} // end .try 2
-	finally  { // 2
-	  IL_017e:  ldloc.s 10
-	  IL_0180:  isinst [mscorlib]System.IDisposable
-	  IL_0185:  dup 
-	  IL_0186:  stloc.s 11
-	  IL_0188:  brfalse IL_0194
+    .field  private  int32 _minValue
+    .field  private  int32 _maxValue
+    .field  private  int32 _base
 
-	  IL_018d:  ldloc.s 11
-	  IL_018f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0194:  endfinally 
-	} // end handler 2
-	IL_0195:  nop 
-	IL_0196:  nop 
-	IL_0197:  nop 
-	IL_0198:  ldloc.2 
-	IL_0199:  ldc.i4.1 
-	IL_019a:  add 
-	IL_019b:  stloc.2 
-	IL_019c:  ldloc.2 
-	IL_019d:  ldloc.1 
-	IL_019e:  ldlen 
-	IL_019f:  conv.i4 
-	IL_01a0:  blt IL_000b
+    // method line 374
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xa1e4
+	// Code size 38 (0x26)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4 -2147483648
+	IL_0006:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_minValue
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4 2147483647
+	IL_0011:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_maxValue
+	IL_0016:  ldarg.0 
+	IL_0017:  ldc.i4.s 0x0a
+	IL_0019:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_base
+	IL_001e:  ldarg.0 
+	IL_001f:  call instance void class NAnt.Core.Attributes.ValidatorAttribute::'.ctor'()
+	IL_0024:  nop 
+	IL_0025:  ret 
+    } // end of method Int32ValidatorAttribute::.ctor
 
-	IL_01a5:  ret 
-    } // end of method FileSet::set_IncludesFiles
+    // method line 375
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (int32 minValue, int32 maxValue)  cil managed 
+    {
+        // Method begins at RVA 0xa20b
+	// Code size 52 (0x34)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4 -2147483648
+	IL_0006:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_minValue
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4 2147483647
+	IL_0011:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_maxValue
+	IL_0016:  ldarg.0 
+	IL_0017:  ldc.i4.s 0x0a
+	IL_0019:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_base
+	IL_001e:  ldarg.0 
+	IL_001f:  call instance void class NAnt.Core.Attributes.ValidatorAttribute::'.ctor'()
+	IL_0024:  nop 
+	IL_0025:  ldarg.0 
+	IL_0026:  ldarg.1 
+	IL_0027:  call instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::set_MinValue(int32)
+	IL_002c:  ldarg.0 
+	IL_002d:  ldarg.2 
+	IL_002e:  call instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::set_MaxValue(int32)
+	IL_0033:  ret 
+    } // end of method Int32ValidatorAttribute::.ctor
 
-    // method line 447
+    // method line 376
     .method public hidebysig specialname 
-           instance default void set_ExcludesFiles (class NAnt.Core.Types.FileSet/ExcludesFile[] 'value')  cil managed 
+           instance default int32 get_MinValue ()  cil managed 
     {
-        // Method begins at RVA 0x9298
-	// Code size 163 (0xa3)
-	.maxstack 4
+        // Method begins at RVA 0xa240
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet/ExcludesFile	V_0,
-		class NAnt.Core.Types.FileSet/ExcludesFile[]	V_1,
-		int32	V_2,
-		string	V_3,
-		class [System]System.Collections.Specialized.StringEnumerator	V_4,
-		class [mscorlib]System.IDisposable	V_5)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.1 
-	IL_0003:  stloc.1 
-	IL_0004:  ldc.i4.0 
-	IL_0005:  stloc.2 
-	IL_0006:  br IL_0099
-
-	IL_000b:  ldloc.1 
-	IL_000c:  ldloc.2 
-	IL_000d:  ldelem.ref 
-	IL_000e:  stloc.0 
-	IL_000f:  nop 
-	IL_0010:  ldloc.0 
-	IL_0011:  callvirt instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_IfDefined()
-	IL_0016:  brfalse IL_0094
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_minValue
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_001b:  ldloc.0 
-	IL_001c:  callvirt instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_UnlessDefined()
-	IL_0021:  brtrue IL_0094
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Int32ValidatorAttribute::get_MinValue
 
-	IL_0026:  nop 
-	IL_0027:  nop 
-	IL_0028:  ldloc.0 
-	IL_0029:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet/ExcludesFile::get_Patterns()
-	IL_002e:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0033:  stloc.s 4
-	.try { // 0
-	  IL_0035:  br IL_006b
+    // method line 377
+    .method public hidebysig specialname 
+           instance default void set_MinValue (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa25b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_minValue
+	IL_0008:  ret 
+    } // end of method Int32ValidatorAttribute::set_MinValue
 
-	  IL_003a:  ldloc.s 4
-	  IL_003c:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0041:  stloc.3 
-	  IL_0042:  nop 
-	  IL_0043:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
-	  IL_0048:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_004d:  ldstr "Excluding="
-	  IL_0052:  ldloc.3 
-	  IL_0053:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0058:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
-	  IL_005d:  ldarg.0 
-	  IL_005e:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	  IL_0063:  ldloc.3 
-	  IL_0064:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_0069:  pop 
-	  IL_006a:  nop 
-	  IL_006b:  ldloc.s 4
-	  IL_006d:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0072:  brtrue IL_003a
+    // method line 378
+    .method public hidebysig specialname 
+           instance default int32 get_MaxValue ()  cil managed 
+    {
+        // Method begins at RVA 0xa268
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_maxValue
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_0077:  leave IL_0093
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Int32ValidatorAttribute::get_MaxValue
 
-	} // end .try 0
-	finally  { // 0
-	  IL_007c:  ldloc.s 4
-	  IL_007e:  isinst [mscorlib]System.IDisposable
-	  IL_0083:  dup 
-	  IL_0084:  stloc.s 5
-	  IL_0086:  brfalse IL_0092
+    // method line 379
+    .method public hidebysig specialname 
+           instance default void set_MaxValue (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa283
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_maxValue
+	IL_0008:  ret 
+    } // end of method Int32ValidatorAttribute::set_MaxValue
 
-	  IL_008b:  ldloc.s 5
-	  IL_008d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0092:  endfinally 
-	} // end handler 0
-	IL_0093:  nop 
-	IL_0094:  nop 
-	IL_0095:  ldloc.2 
-	IL_0096:  ldc.i4.1 
-	IL_0097:  add 
-	IL_0098:  stloc.2 
-	IL_0099:  ldloc.2 
-	IL_009a:  ldloc.1 
-	IL_009b:  ldlen 
-	IL_009c:  conv.i4 
-	IL_009d:  blt IL_000b
+    // method line 380
+    .method public hidebysig specialname 
+           instance default int32 get_Base ()  cil managed 
+    {
+        // Method begins at RVA 0xa290
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_base
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_00a2:  ret 
-    } // end of method FileSet::set_ExcludesFiles
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Int32ValidatorAttribute::get_Base
 
-    // method line 448
+    // method line 381
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_MostRecentLastWriteTimeFile ()  cil managed 
+           instance default void set_Base (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x9358
-	// Code size 210 (0xd2)
+        // Method begins at RVA 0xa2ab
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_base
+	IL_0008:  ret 
+    } // end of method Int32ValidatorAttribute::set_Base
+
+    // method line 382
+    .method public virtual hidebysig 
+           instance default void Validate (object 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa2b8
+	// Code size 173 (0xad)
 	.maxstack 5
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [mscorlib]System.IO.FileInfo	V_3,
-		class [mscorlib]System.IDisposable	V_4,
-		class [mscorlib]System.IO.FileInfo	V_5)
+		int32	V_0,
+		class [mscorlib]System.Exception	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  nop 
-	IL_0004:  ldarg.0 
-	IL_0005:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_000a:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_000f:  stloc.2 
 	.try { // 0
-	  IL_0010:  br IL_00a1
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  isinst [mscorlib]System.String
+	  IL_0008:  brfalse IL_0026
 
-	  IL_0015:  ldloc.2 
-	  IL_0016:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_001b:  stloc.1 
-	  IL_001c:  nop 
-	  IL_001d:  ldloc.1 
-	  IL_001e:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_0023:  stloc.3 
-	  IL_0024:  ldloc.0 
-	  IL_0025:  brtrue IL_0039
+	  IL_000d:  nop 
+	  IL_000e:  ldarg.1 
+	  IL_000f:  castclass [mscorlib]System.String
+	  IL_0014:  ldarg.0 
+	  IL_0015:  call instance int32 class NAnt.Core.Attributes.Int32ValidatorAttribute::get_Base()
+	  IL_001a:  call int32 class [mscorlib]System.Convert::ToInt32(string, int32)
+	  IL_001f:  stloc.0 
+	  IL_0020:  nop 
+	  IL_0021:  br IL_0034
 
-	  IL_002a:  ldloc.3 
-	  IL_002b:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_0030:  brfalse IL_0039
+	  IL_0026:  nop 
+	  IL_0027:  ldarg.1 
+	  IL_0028:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_002d:  call int32 class [mscorlib]System.Convert::ToInt32(object, class [mscorlib]System.IFormatProvider)
+	  IL_0032:  stloc.0 
+	  IL_0033:  nop 
+	  IL_0034:  nop 
+	  IL_0035:  leave IL_005d
 
-	  IL_0035:  nop 
-	  IL_0036:  ldloc.3 
-	  IL_0037:  stloc.0 
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.3 
-	  IL_003a:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_003f:  brtrue IL_0065
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_003a:  stloc.1 
+	  IL_003b:  nop 
+	  IL_003c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0041:  ldstr "NA1091"
+	  IL_0046:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_004b:  ldarg.1 
+	  IL_004c:  callvirt instance string object::ToString()
+	  IL_0051:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0056:  ldloc.1 
+	  IL_0057:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class [mscorlib]System.Exception)
+	  IL_005c:  throw 
+	} // end handler 0
+	IL_005d:  ldloc.0 
+	IL_005e:  ldarg.0 
+	IL_005f:  call instance int32 class NAnt.Core.Attributes.Int32ValidatorAttribute::get_MinValue()
+	IL_0064:  blt IL_0075
 
-	  IL_0044:  nop 
-	  IL_0045:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
-	  IL_004a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_004f:  ldstr "File '{0}' does not exist (and is not newer than {1})"
-	  IL_0054:  ldloc.1 
-	  IL_0055:  ldloc.0 
-	  IL_0056:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_005b:  callvirt instance void class [log4net]log4net.ILog::Info(object)
-	  IL_0060:  leave IL_00a1
+	IL_0069:  ldloc.0 
+	IL_006a:  ldarg.0 
+	IL_006b:  call instance int32 class NAnt.Core.Attributes.Int32ValidatorAttribute::get_MaxValue()
+	IL_0070:  ble IL_00ac
 
-	  IL_0065:  ldloc.0 
-	  IL_0066:  brfalse IL_00a0
+	IL_0075:  nop 
+	IL_0076:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_007b:  ldstr "NA1090"
+	IL_0080:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0085:  ldarg.1 
+	IL_0086:  callvirt instance string object::ToString()
+	IL_008b:  ldarg.0 
+	IL_008c:  call instance int32 class NAnt.Core.Attributes.Int32ValidatorAttribute::get_MinValue()
+	IL_0091:  box [mscorlib]System.Int32
+	IL_0096:  ldarg.0 
+	IL_0097:  call instance int32 class NAnt.Core.Attributes.Int32ValidatorAttribute::get_MaxValue()
+	IL_009c:  box [mscorlib]System.Int32
+	IL_00a1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_00a6:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string)
+	IL_00ab:  throw 
+	IL_00ac:  ret 
+    } // end of method Int32ValidatorAttribute::Validate
 
-	  IL_006b:  ldloc.3 
-	  IL_006c:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	  IL_0071:  ldloc.0 
-	  IL_0072:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	  IL_0077:  call bool valuetype [mscorlib]System.DateTime::op_GreaterThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	  IL_007c:  brfalse IL_00a0
+	.property instance int32 MinValue ()
+	{
+		.get instance default int32 NAnt.Core.Attributes.Int32ValidatorAttribute::get_MinValue () 
+		.set instance default void NAnt.Core.Attributes.Int32ValidatorAttribute::set_MinValue (int32 'value') 
+	}
+	.property instance int32 MaxValue ()
+	{
+		.get instance default int32 NAnt.Core.Attributes.Int32ValidatorAttribute::get_MaxValue () 
+		.set instance default void NAnt.Core.Attributes.Int32ValidatorAttribute::set_MaxValue (int32 'value') 
+	}
+	.property instance int32 Base ()
+	{
+		.get instance default int32 NAnt.Core.Attributes.Int32ValidatorAttribute::get_Base () 
+		.set instance default void NAnt.Core.Attributes.Int32ValidatorAttribute::set_Base (int32 'value') 
+	}
+  } // end of class NAnt.Core.Attributes.Int32ValidatorAttribute
+}
 
-	  IL_0081:  nop 
-	  IL_0082:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
-	  IL_0087:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_008c:  ldstr "'{0}' was newer than {1}"
-	  IL_0091:  ldloc.1 
-	  IL_0092:  ldloc.0 
-	  IL_0093:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0098:  callvirt instance void class [log4net]log4net.ILog::Info(object)
-	  IL_009d:  ldloc.3 
-	  IL_009e:  stloc.0 
-	  IL_009f:  nop 
-	  IL_00a0:  nop 
-	  IL_00a1:  ldloc.2 
-	  IL_00a2:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_00a7:  brtrue IL_0015
+.namespace NAnt.Core.Attributes
+{
+  .class public auto ansi sealed beforefieldinit StringValidatorAttribute
+  	extends NAnt.Core.Attributes.ValidatorAttribute
+  {
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 01                                  ) // ited.
 
-	  IL_00ac:  leave IL_00c7
+    .field  private  bool _allowEmpty
+    .field  private  string _expression
+    .field  private  string _expressionErrorMessage
 
-	} // end .try 0
-	finally  { // 0
-	  IL_00b1:  ldloc.2 
-	  IL_00b2:  isinst [mscorlib]System.IDisposable
-	  IL_00b7:  dup 
-	  IL_00b8:  stloc.s 4
-	  IL_00ba:  brfalse IL_00c6
+    // method line 383
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xa384
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Attributes.StringValidatorAttribute::_allowEmpty
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Attributes.ValidatorAttribute::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method StringValidatorAttribute::.ctor
 
-	  IL_00bf:  ldloc.s 4
-	  IL_00c1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00c6:  endfinally 
-	} // end handler 0
-	IL_00c7:  ldloc.0 
-	IL_00c8:  stloc.s 5
-	IL_00ca:  br IL_00cf
+    // method line 384
+    .method public hidebysig specialname 
+           instance default bool get_AllowEmpty ()  cil managed 
+    {
+        // Method begins at RVA 0xa394
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Attributes.StringValidatorAttribute::_allowEmpty
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_00cf:  ldloc.s 5
-	IL_00d1:  ret 
-    } // end of method FileSet::get_MostRecentLastWriteTimeFile
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method StringValidatorAttribute::get_AllowEmpty
 
-    // method line 449
-    .method public virtual hidebysig newslot 
-           instance default object Clone ()  cil managed 
+    // method line 385
+    .method public hidebysig specialname 
+           instance default void set_AllowEmpty (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9448
-	// Code size 23 (0x17)
-	.maxstack 2
+        // Method begins at RVA 0xa3af
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Attributes.StringValidatorAttribute::_allowEmpty
+	IL_0008:  ret 
+    } // end of method StringValidatorAttribute::set_AllowEmpty
+
+    // method line 386
+    .method public hidebysig specialname 
+           instance default string get_Expression ()  cil managed 
+    {
+        // Method begins at RVA 0xa3bc
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0,
-		object	V_1)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  call instance void class NAnt.Core.Types.FileSet::CopyTo(class NAnt.Core.Types.FileSet)
-	IL_000e:  ldloc.0 
-	IL_000f:  stloc.1 
-	IL_0010:  br IL_0015
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Attributes.StringValidatorAttribute::_expression
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method FileSet::Clone
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method StringValidatorAttribute::get_Expression
 
-    // method line 450
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 387
+    .method public hidebysig specialname 
+           instance default void set_Expression (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x946c
-	// Code size 395 (0x18b)
-	.maxstack 2
+        // Method begins at RVA 0xa3d7
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.DataTypeBase::Initialize()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance bool class NAnt.Core.Types.FileSet::get_DefaultExcludes()
-	IL_000d:  brfalse IL_018a
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Attributes.StringValidatorAttribute::_expression
+	IL_0008:  ret 
+    } // end of method StringValidatorAttribute::set_Expression
 
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_0019:  ldstr "**/.svn"
-	IL_001e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0023:  pop 
-	IL_0024:  ldarg.0 
-	IL_0025:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_002a:  ldstr "**/.svn/**"
-	IL_002f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0034:  pop 
-	IL_0035:  ldarg.0 
-	IL_0036:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_003b:  ldstr "**/_svn"
-	IL_0040:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0045:  pop 
-	IL_0046:  ldarg.0 
-	IL_0047:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_004c:  ldstr "**/_svn/**"
-	IL_0051:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0056:  pop 
-	IL_0057:  ldarg.0 
-	IL_0058:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_005d:  ldstr "**/.git"
-	IL_0062:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0067:  pop 
-	IL_0068:  ldarg.0 
-	IL_0069:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_006e:  ldstr "**/.git/**"
-	IL_0073:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0078:  pop 
-	IL_0079:  ldarg.0 
-	IL_007a:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_007f:  ldstr "**/.git*"
-	IL_0084:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0089:  pop 
-	IL_008a:  ldarg.0 
-	IL_008b:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_0090:  ldstr "**/.hg"
-	IL_0095:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_009a:  pop 
-	IL_009b:  ldarg.0 
-	IL_009c:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_00a1:  ldstr "**/.hg/**"
-	IL_00a6:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_00ab:  pop 
-	IL_00ac:  ldarg.0 
-	IL_00ad:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_00b2:  ldstr "**/.hg*"
-	IL_00b7:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_00bc:  pop 
-	IL_00bd:  ldarg.0 
-	IL_00be:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_00c3:  ldstr "**/SCCS"
-	IL_00c8:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_00cd:  pop 
-	IL_00ce:  ldarg.0 
-	IL_00cf:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_00d4:  ldstr "**/SCCS/**"
-	IL_00d9:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_00de:  pop 
-	IL_00df:  ldarg.0 
-	IL_00e0:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_00e5:  ldstr "**/vssver.scc"
-	IL_00ea:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_00ef:  pop 
-	IL_00f0:  ldarg.0 
-	IL_00f1:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_00f6:  ldstr "**/vssver2.scc"
-	IL_00fb:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0100:  pop 
-	IL_0101:  ldarg.0 
-	IL_0102:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_0107:  ldstr "**/_vti_cnf/**"
-	IL_010c:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0111:  pop 
-	IL_0112:  ldarg.0 
-	IL_0113:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_0118:  ldstr "**/*~"
-	IL_011d:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0122:  pop 
-	IL_0123:  ldarg.0 
-	IL_0124:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_0129:  ldstr "**/#*#"
-	IL_012e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0133:  pop 
-	IL_0134:  ldarg.0 
-	IL_0135:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_013a:  ldstr "**/.#*"
-	IL_013f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0144:  pop 
-	IL_0145:  ldarg.0 
-	IL_0146:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_014b:  ldstr "**/%*%"
-	IL_0150:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0155:  pop 
-	IL_0156:  ldarg.0 
-	IL_0157:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_015c:  ldstr "**/CVS"
-	IL_0161:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0166:  pop 
-	IL_0167:  ldarg.0 
-	IL_0168:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_016d:  ldstr "**/CVS/**"
-	IL_0172:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0177:  pop 
-	IL_0178:  ldarg.0 
-	IL_0179:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_017e:  ldstr "**/.cvsignore"
-	IL_0183:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0188:  pop 
-	IL_0189:  nop 
-	IL_018a:  ret 
-    } // end of method FileSet::Initialize
+    // method line 388
+    .method public hidebysig specialname 
+           instance default string get_ExpressionErrorMessage ()  cil managed 
+    {
+        // Method begins at RVA 0xa3e4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Attributes.StringValidatorAttribute::_expressionErrorMessage
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 451
-    .method public virtual hidebysig 
-           instance default void Reset ()  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method StringValidatorAttribute::get_ExpressionErrorMessage
+
+    // method line 389
+    .method public hidebysig specialname 
+           instance default void set_ExpressionErrorMessage (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9603
+        // Method begins at RVA 0xa3ff
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  stfld bool NAnt.Core.Types.FileSet::_hasScanned
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Attributes.StringValidatorAttribute::_expressionErrorMessage
 	IL_0008:  ret 
-    } // end of method FileSet::Reset
+    } // end of method StringValidatorAttribute::set_ExpressionErrorMessage
 
-    // method line 452
+    // method line 390
     .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
+           instance default void Validate (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x9610
-	// Code size 398 (0x18e)
+        // Method begins at RVA 0xa40c
+	// Code size 203 (0xcb)
 	.maxstack 3
 	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		string	V_4,
-		class [System]System.Collections.Specialized.StringEnumerator	V_5,
-		class [mscorlib]System.IDisposable	V_6,
-		string	V_7)
+		string	V_0,
+		class [mscorlib]System.Exception	V_1,
+		string	V_2)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld bool NAnt.Core.Types.FileSet::_hasScanned
-	IL_000d:  brtrue IL_008c
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0008:  call string class [mscorlib]System.Convert::ToString(object, class [mscorlib]System.IFormatProvider)
+	  IL_000d:  stloc.0 
+	  IL_000e:  nop 
+	  IL_000f:  leave IL_0037
 
-	IL_0012:  nop 
-	IL_0013:  ldloc.0 
-	IL_0014:  ldstr "Base path: {0}"
-	IL_0019:  ldarg.0 
-	IL_001a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_001f:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	IL_0024:  pop 
-	IL_0025:  ldloc.0 
-	IL_0026:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
-	IL_002b:  pop 
-	IL_002c:  ldloc.0 
-	IL_002d:  ldstr "AsIs:"
-	IL_0032:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
-	IL_0037:  pop 
-	IL_0038:  ldloc.0 
-	IL_0039:  ldarg.0 
-	IL_003a:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_AsIs()
-	IL_003f:  callvirt instance string object::ToString()
-	IL_0044:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
-	IL_0049:  pop 
-	IL_004a:  ldloc.0 
-	IL_004b:  ldstr "Files:"
-	IL_0050:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
-	IL_0055:  pop 
-	IL_0056:  ldloc.0 
-	IL_0057:  ldarg.0 
-	IL_0058:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_005d:  callvirt instance string object::ToString()
-	IL_0062:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
-	IL_0067:  pop 
-	IL_0068:  ldloc.0 
-	IL_0069:  ldstr "PathFiles:"
-	IL_006e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
-	IL_0073:  pop 
-	IL_0074:  ldloc.0 
-	IL_0075:  ldarg.0 
-	IL_0076:  ldfld class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::_pathFiles
-	IL_007b:  callvirt instance string object::ToString()
-	IL_0080:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
-	IL_0085:  pop 
-	IL_0086:  nop 
-	IL_0087:  br IL_017e
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0014:  stloc.1 
+	  IL_0015:  nop 
+	  IL_0016:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_001b:  ldstr "NA1092"
+	  IL_0020:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0025:  ldarg.1 
+	  IL_0026:  callvirt instance string object::ToString()
+	  IL_002b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0030:  ldloc.1 
+	  IL_0031:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class [mscorlib]System.Exception)
+	  IL_0036:  throw 
+	} // end handler 0
+	IL_0037:  ldloc.0 
+	IL_0038:  call bool string::IsNullOrEmpty(string)
+	IL_003d:  brfalse IL_005f
 
-	IL_008c:  nop 
-	IL_008d:  ldloc.0 
-	IL_008e:  ldstr "IsEverythingIncluded: {0}"
-	IL_0093:  ldarg.0 
-	IL_0094:  call instance bool class NAnt.Core.Types.FileSet::get_IsEverythingIncluded()
-	IL_0099:  box [mscorlib]System.Boolean
-	IL_009e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	IL_00a3:  pop 
-	IL_00a4:  ldloc.0 
-	IL_00a5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
-	IL_00aa:  pop 
-	IL_00ab:  ldloc.0 
-	IL_00ac:  ldstr "Files:"
-	IL_00b1:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
-	IL_00b6:  pop 
-	IL_00b7:  nop 
-	IL_00b8:  ldarg.0 
-	IL_00b9:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_00be:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_00c3:  stloc.2 
-	.try { // 0
-	  IL_00c4:  br IL_00e6
+	IL_0042:  nop 
+	IL_0043:  ldarg.0 
+	IL_0044:  call instance bool class NAnt.Core.Attributes.StringValidatorAttribute::get_AllowEmpty()
+	IL_0049:  brtrue IL_005a
 
-	  IL_00c9:  ldloc.2 
-	  IL_00ca:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_00cf:  stloc.1 
-	  IL_00d0:  nop 
-	  IL_00d1:  ldloc.0 
-	  IL_00d2:  ldloc.1 
-	  IL_00d3:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_00d8:  pop 
-	  IL_00d9:  ldloc.0 
-	  IL_00da:  call string class [mscorlib]System.Environment::get_NewLine()
-	  IL_00df:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_00e4:  pop 
-	  IL_00e5:  nop 
-	  IL_00e6:  ldloc.2 
-	  IL_00e7:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_00ec:  brtrue IL_00c9
+	IL_004e:  nop 
+	IL_004f:  ldstr "An empty value is not allowed."
+	IL_0054:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string)
+	IL_0059:  throw 
+	IL_005a:  br IL_00ca
 
-	  IL_00f1:  leave IL_010a
+	IL_005f:  ldarg.0 
+	IL_0060:  call instance string class NAnt.Core.Attributes.StringValidatorAttribute::get_Expression()
+	IL_0065:  call bool string::IsNullOrEmpty(string)
+	IL_006a:  brtrue IL_00ca
 
-	} // end .try 0
-	finally  { // 0
-	  IL_00f6:  ldloc.2 
-	  IL_00f7:  isinst [mscorlib]System.IDisposable
-	  IL_00fc:  dup 
-	  IL_00fd:  stloc.3 
-	  IL_00fe:  brfalse IL_0109
+	IL_006f:  nop 
+	IL_0070:  ldarg.1 
+	IL_0071:  call string class [mscorlib]System.Convert::ToString(object)
+	IL_0076:  ldarg.0 
+	IL_0077:  call instance string class NAnt.Core.Attributes.StringValidatorAttribute::get_Expression()
+	IL_007c:  call bool class [System]System.Text.RegularExpressions.Regex::IsMatch(string, string)
+	IL_0081:  brtrue IL_00c9
 
-	  IL_0103:  ldloc.3 
-	  IL_0104:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0109:  endfinally 
-	} // end handler 0
-	IL_010a:  ldloc.0 
-	IL_010b:  ldstr "Dirs:"
-	IL_0110:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0115:  pop 
-	IL_0116:  ldloc.0 
-	IL_0117:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_011c:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0121:  pop 
-	IL_0122:  nop 
-	IL_0123:  ldarg.0 
-	IL_0124:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
-	IL_0129:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_012e:  stloc.s 5
-	.try { // 1
-	  IL_0130:  br IL_0155
+	IL_0086:  nop 
+	IL_0087:  ldstr "String {0} does not match expression {1}."
+	IL_008c:  ldarg.1 
+	IL_008d:  ldarg.0 
+	IL_008e:  call instance string class NAnt.Core.Attributes.StringValidatorAttribute::get_Expression()
+	IL_0093:  call string string::Format(string, object, object)
+	IL_0098:  stloc.2 
+	IL_0099:  ldarg.0 
+	IL_009a:  call instance string class NAnt.Core.Attributes.StringValidatorAttribute::get_ExpressionErrorMessage()
+	IL_009f:  brfalse IL_00c2
 
-	  IL_0135:  ldloc.s 5
-	  IL_0137:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_013c:  stloc.s 4
-	  IL_013e:  nop 
-	  IL_013f:  ldloc.0 
-	  IL_0140:  ldloc.s 4
-	  IL_0142:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_0147:  pop 
-	  IL_0148:  ldloc.0 
-	  IL_0149:  call string class [mscorlib]System.Environment::get_NewLine()
-	  IL_014e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_0153:  pop 
-	  IL_0154:  nop 
-	  IL_0155:  ldloc.s 5
-	  IL_0157:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_015c:  brtrue IL_0135
+	IL_00a4:  ldsfld string [mscorlib]System.String::Empty
+	IL_00a9:  ldarg.0 
+	IL_00aa:  call instance string class NAnt.Core.Attributes.StringValidatorAttribute::get_ExpressionErrorMessage()
+	IL_00af:  call bool string::op_Inequality(string, string)
+	IL_00b4:  brfalse IL_00c2
 
-	  IL_0161:  leave IL_017d
+	IL_00b9:  nop 
+	IL_00ba:  ldarg.0 
+	IL_00bb:  call instance string class NAnt.Core.Attributes.StringValidatorAttribute::get_ExpressionErrorMessage()
+	IL_00c0:  stloc.2 
+	IL_00c1:  nop 
+	IL_00c2:  ldloc.2 
+	IL_00c3:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string)
+	IL_00c8:  throw 
+	IL_00c9:  nop 
+	IL_00ca:  ret 
+    } // end of method StringValidatorAttribute::Validate
 
-	} // end .try 1
-	finally  { // 1
-	  IL_0166:  ldloc.s 5
-	  IL_0168:  isinst [mscorlib]System.IDisposable
-	  IL_016d:  dup 
-	  IL_016e:  stloc.s 6
-	  IL_0170:  brfalse IL_017c
+	.property instance bool AllowEmpty ()
+	{
+		.get instance default bool NAnt.Core.Attributes.StringValidatorAttribute::get_AllowEmpty () 
+		.set instance default void NAnt.Core.Attributes.StringValidatorAttribute::set_AllowEmpty (bool 'value') 
+	}
+	.property instance string Expression ()
+	{
+		.get instance default string NAnt.Core.Attributes.StringValidatorAttribute::get_Expression () 
+		.set instance default void NAnt.Core.Attributes.StringValidatorAttribute::set_Expression (string 'value') 
+	}
+	.property instance string ExpressionErrorMessage ()
+	{
+		.get instance default string NAnt.Core.Attributes.StringValidatorAttribute::get_ExpressionErrorMessage () 
+		.set instance default void NAnt.Core.Attributes.StringValidatorAttribute::set_ExpressionErrorMessage (string 'value') 
+	}
+  } // end of class NAnt.Core.Attributes.StringValidatorAttribute
+}
 
-	  IL_0175:  ldloc.s 6
-	  IL_0177:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_017c:  endfinally 
-	} // end handler 1
-	IL_017d:  nop 
-	IL_017e:  ldloc.0 
-	IL_017f:  callvirt instance string object::ToString()
-	IL_0184:  stloc.s 7
-	IL_0186:  br IL_018b
+.namespace NAnt.Core.Attributes
+{
+  .class public auto ansi beforefieldinit BuildElementAttribute
+  	extends [mscorlib]System.Attribute
+  {
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 C0 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 01                                  ) // ited.
 
-	IL_018b:  ldloc.s 7
-	IL_018d:  ret 
-    } // end of method FileSet::ToString
+    .field  private  string _name
+    .field  private  bool _required
+    .field  private  bool _processXml
 
-    // method line 453
-    .method public hidebysig 
-           instance default void AddPatternSet (class NAnt.Core.Types.PatternSet patternSet)  cil managed 
+    // method line 391
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 0A 70 61 74 74 65 72 6E 73 65 74 00 00 ) // ...patternset..
-
-        // Method begins at RVA 0x97c8
-	// Code size 36 (0x24)
+        // Method begins at RVA 0xa4f4
+	// Code size 22 (0x16)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string[] class NAnt.Core.Types.PatternSet::GetIncludePatterns()
-	IL_000d:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
-	IL_0018:  ldarg.1 
-	IL_0019:  callvirt instance string[] class NAnt.Core.Types.PatternSet::GetExcludePatterns()
-	IL_001e:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
-	IL_0023:  ret 
-    } // end of method FileSet::AddPatternSet
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Attributes.BuildElementAttribute::_processXml
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class [mscorlib]System.Attribute::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  call instance void class NAnt.Core.Attributes.BuildElementAttribute::set_Name(string)
+	IL_0015:  ret 
+    } // end of method BuildElementAttribute::.ctor
 
-    // method line 454
-    .method public virtual hidebysig newslot 
-           instance default void Scan ()  cil managed 
+    // method line 392
+    .method public hidebysig specialname 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x97f0
-	// Code size 369 (0x171)
-	.maxstack 4
+        // Method begins at RVA 0xa50c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		class [System]System.Collections.Specialized.StringEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2,
-		string	V_3,
-		class [System]System.Collections.Specialized.StringEnumerator	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		class [mscorlib]System.Exception	V_6)
+		string	V_0)
 	IL_0000:  nop 
-	.try { // 2
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.0 
-	  IL_0003:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	  IL_0008:  ldarg.0 
-	  IL_0009:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
-	  IL_000e:  callvirt instance void class NAnt.Core.DirectoryScanner::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	  IL_0013:  ldarg.0 
-	  IL_0014:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	  IL_0019:  callvirt instance void class NAnt.Core.DirectoryScanner::Scan()
-	  IL_001e:  nop 
-	  IL_001f:  ldarg.0 
-	  IL_0020:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_AsIs()
-	  IL_0025:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_002a:  stloc.1 
-	  .try { // 0
-	    IL_002b:  br IL_0071
-
-	    IL_0030:  ldloc.1 
-	    IL_0031:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_0036:  stloc.0 
-	    IL_0037:  nop 
-	    IL_0038:  ldloc.0 
-	    IL_0039:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	    IL_003e:  brfalse IL_005c
-
-	    IL_0043:  nop 
-	    IL_0044:  ldarg.0 
-	    IL_0045:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	    IL_004a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_DirectoryNames()
-	    IL_004f:  ldloc.0 
-	    IL_0050:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_0055:  pop 
-	    IL_0056:  nop 
-	    IL_0057:  br IL_0070
-
-	    IL_005c:  nop 
-	    IL_005d:  ldarg.0 
-	    IL_005e:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	    IL_0063:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_FileNames()
-	    IL_0068:  ldloc.0 
-	    IL_0069:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_006e:  pop 
-	    IL_006f:  nop 
-	    IL_0070:  nop 
-	    IL_0071:  ldloc.1 
-	    IL_0072:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_0077:  brtrue IL_0030
-
-	    IL_007c:  leave IL_0095
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_0081:  ldloc.1 
-	    IL_0082:  isinst [mscorlib]System.IDisposable
-	    IL_0087:  dup 
-	    IL_0088:  stloc.2 
-	    IL_0089:  brfalse IL_0094
-
-	    IL_008e:  ldloc.2 
-	    IL_008f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0094:  endfinally 
-	  } // end handler 0
-	  IL_0095:  nop 
-	  IL_0096:  ldarg.0 
-	  IL_0097:  call instance class NAnt.Core.PathScanner class NAnt.Core.Types.FileSet::get_PathFiles()
-	  IL_009c:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.PathScanner::Scan()
-	  IL_00a1:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_00a6:  stloc.s 4
-	  .try { // 1
-	    IL_00a8:  br IL_00c9
-
-	    IL_00ad:  ldloc.s 4
-	    IL_00af:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_00b4:  stloc.3 
-	    IL_00b5:  nop 
-	    IL_00b6:  ldarg.0 
-	    IL_00b7:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	    IL_00bc:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_FileNames()
-	    IL_00c1:  ldloc.3 
-	    IL_00c2:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_00c7:  pop 
-	    IL_00c8:  nop 
-	    IL_00c9:  ldloc.s 4
-	    IL_00cb:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_00d0:  brtrue IL_00ad
-
-	    IL_00d5:  leave IL_00f1
-
-	  } // end .try 1
-	  finally  { // 1
-	    IL_00da:  ldloc.s 4
-	    IL_00dc:  isinst [mscorlib]System.IDisposable
-	    IL_00e1:  dup 
-	    IL_00e2:  stloc.s 5
-	    IL_00e4:  brfalse IL_00f0
-
-	    IL_00e9:  ldloc.s 5
-	    IL_00eb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_00f0:  endfinally 
-	  } // end handler 1
-	  IL_00f1:  ldarg.0 
-	  IL_00f2:  ldc.i4.1 
-	  IL_00f3:  stfld bool NAnt.Core.Types.FileSet::_hasScanned
-	  IL_00f8:  nop 
-	  IL_00f9:  leave IL_0114
-
-	} // end .try 2
-	catch class [mscorlib]System.Exception { // 2
-	  IL_00fe:  stloc.s 6
-	  IL_0100:  nop 
-	  IL_0101:  ldstr "Error creating FileSet."
-	  IL_0106:  ldarg.0 
-	  IL_0107:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_010c:  ldloc.s 6
-	  IL_010e:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0113:  throw 
-	} // end handler 2
-	IL_0114:  ldarg.0 
-	IL_0115:  call instance bool class NAnt.Core.Types.FileSet::get_FailOnEmpty()
-	IL_011a:  brfalse IL_0170
-
-	IL_011f:  ldarg.0 
-	IL_0120:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_0125:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_FileNames()
-	IL_012a:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_012f:  brtrue IL_0170
-
-	IL_0134:  nop 
-	IL_0135:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_013a:  ldstr "NA1164"
-	IL_013f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0144:  ldarg.0 
-	IL_0145:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_014a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.DirectoryScanner::get_BaseDirectory()
-	IL_014f:  ldarg.0 
-	IL_0150:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_0155:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_Includes()
-	IL_015a:  callvirt instance string object::ToString()
-	IL_015f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0164:  ldarg.0 
-	IL_0165:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_016a:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class NAnt.Core.Location)
-	IL_016f:  throw 
-	IL_0170:  ret 
-    } // end of method FileSet::Scan
-
-    // method line 455
-    .method family hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.FileSet clone)  cil managed 
-    {
-        // Method begins at RVA 0x9998
-	// Code size 136 (0x88)
-	.maxstack 2
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.DataTypeBase::CopyTo(class NAnt.Core.DataTypeBase)
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::_asis
-	IL_000f:  call class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Util.StringUtils::Clone(class [System]System.Collections.Specialized.StringCollection)
-	IL_0014:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::_asis
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::_baseDirectory
-	IL_001f:  brfalse IL_003c
-
-	IL_0024:  nop 
-	IL_0025:  ldarg.1 
-	IL_0026:  ldarg.0 
-	IL_0027:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::_baseDirectory
-	IL_002c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0031:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0036:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::_baseDirectory
-	IL_003b:  nop 
-	IL_003c:  ldarg.1 
-	IL_003d:  ldarg.0 
-	IL_003e:  ldfld bool NAnt.Core.Types.FileSet::_defaultExcludes
-	IL_0043:  stfld bool NAnt.Core.Types.FileSet::_defaultExcludes
-	IL_0048:  ldarg.1 
-	IL_0049:  ldarg.0 
-	IL_004a:  ldfld bool NAnt.Core.Types.FileSet::_failOnEmpty
-	IL_004f:  stfld bool NAnt.Core.Types.FileSet::_failOnEmpty
-	IL_0054:  ldarg.1 
-	IL_0055:  ldarg.0 
-	IL_0056:  ldfld bool NAnt.Core.Types.FileSet::_hasScanned
-	IL_005b:  stfld bool NAnt.Core.Types.FileSet::_hasScanned
-	IL_0060:  ldarg.1 
-	IL_0061:  ldarg.0 
-	IL_0062:  ldfld class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::_pathFiles
-	IL_0067:  callvirt instance class NAnt.Core.PathScanner class NAnt.Core.PathScanner::Clone()
-	IL_006c:  stfld class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::_pathFiles
-	IL_0071:  ldarg.1 
-	IL_0072:  ldarg.0 
-	IL_0073:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_0078:  callvirt instance object class NAnt.Core.DirectoryScanner::Clone()
-	IL_007d:  castclass NAnt.Core.DirectoryScanner
-	IL_0082:  stfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_0087:  ret 
-    } // end of method FileSet::CopyTo
-
-    // method line 456
-    .method assembly hidebysig 
-           instance default string Find (string fileName)  cil managed 
-    {
-        // Method begins at RVA 0x9a2c
-	// Code size 133 (0x85)
-	.maxstack 4
-	.locals init (
-		valuetype [mscorlib]System.Globalization.CompareOptions	V_0,
-		class [mscorlib]System.Globalization.CompareInfo	V_1,
-		string	V_2,
-		class [System]System.Collections.Specialized.StringEnumerator	V_3,
-		string	V_4,
-		class [mscorlib]System.IDisposable	V_5)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0008:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
-	IL_000d:  stloc.1 
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance bool class NAnt.Core.Types.FileSet::get_CaseSensitive()
-	IL_0014:  brtrue IL_001d
-
-	IL_0019:  ldloc.0 
-	IL_001a:  ldc.i4.1 
-	IL_001b:  or 
-	IL_001c:  stloc.0 
-	IL_001d:  nop 
-	IL_001e:  ldarg.0 
-	IL_001f:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0024:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0029:  stloc.3 
-	.try { // 0
-	  IL_002a:  br IL_0054
-
-	  IL_002f:  ldloc.3 
-	  IL_0030:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0035:  stloc.2 
-	  IL_0036:  nop 
-	  IL_0037:  ldloc.1 
-	  IL_0038:  ldloc.2 
-	  IL_0039:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	  IL_003e:  ldarg.1 
-	  IL_003f:  ldloc.0 
-	  IL_0040:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::Compare(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
-	  IL_0045:  brtrue IL_0053
-
-	  IL_004a:  nop 
-	  IL_004b:  ldloc.2 
-	  IL_004c:  stloc.s 4
-	  IL_004e:  leave IL_0082
-
-	  IL_0053:  nop 
-	  IL_0054:  ldloc.3 
-	  IL_0055:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_005a:  brtrue IL_002f
-
-	  IL_005f:  leave IL_007a
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0064:  ldloc.3 
-	  IL_0065:  isinst [mscorlib]System.IDisposable
-	  IL_006a:  dup 
-	  IL_006b:  stloc.s 5
-	  IL_006d:  brfalse IL_0079
-
-	  IL_0072:  ldloc.s 5
-	  IL_0074:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0079:  endfinally 
-	} // end handler 0
-	IL_007a:  ldnull 
-	IL_007b:  stloc.s 4
-	IL_007d:  br IL_0082
-
-	IL_0082:  ldloc.s 4
-	IL_0084:  ret 
-    } // end of method FileSet::Find
-
-    // method line 457
-    .method famorassem hidebysig specialname 
-           instance default bool get_IsEverythingIncluded ()  cil managed 
-    {
-        // Method begins at RVA 0x9ad0
-	// Code size 39 (0x27)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_hasScanned
-	IL_0007:  brtrue IL_0014
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance void class NAnt.Core.Types.FileSet::Scan()
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
-	IL_001a:  callvirt instance bool class NAnt.Core.DirectoryScanner::get_IsEverythingIncluded()
-	IL_001f:  stloc.0 
-	IL_0020:  br IL_0025
-
-	IL_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method FileSet::get_IsEverythingIncluded
-
-    // method line 458
-    .method public static hidebysig 
-           default string FindMoreRecentLastWriteTime (string fileName, valuetype [mscorlib]System.DateTime targetLastWriteTime)  cil managed 
-    {
-        // Method begins at RVA 0x9b04
-	// Code size 30 (0x1e)
-	.maxstack 2
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_000e:  pop 
-	IL_000f:  ldloc.0 
-	IL_0010:  ldarg.1 
-	IL_0011:  call string class NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
-	IL_0016:  stloc.1 
-	IL_0017:  br IL_001c
-
-	IL_001c:  ldloc.1 
-	IL_001d:  ret 
-    } // end of method FileSet::FindMoreRecentLastWriteTime
-
-    // method line 459
-    .method public static hidebysig 
-           default string FindMoreRecentLastWriteTime (class [System]System.Collections.Specialized.StringCollection fileNames, valuetype [mscorlib]System.DateTime targetLastWriteTime)  cil managed 
-    {
-        // Method begins at RVA 0x9b30
-	// Code size 198 (0xc6)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		class [System]System.Collections.Specialized.StringEnumerator	V_1,
-		class [mscorlib]System.IO.FileInfo	V_2,
-		string	V_3,
-		class [mscorlib]System.IDisposable	V_4)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0008:  stloc.1 
-	.try { // 0
-	  IL_0009:  br IL_0097
-
-	  IL_000e:  ldloc.1 
-	  IL_000f:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0014:  stloc.0 
-	  IL_0015:  nop 
-	  IL_0016:  ldloc.0 
-	  IL_0017:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	  IL_001c:  brfalse IL_0096
-
-	  IL_0021:  nop 
-	  IL_0022:  ldloc.0 
-	  IL_0023:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_0028:  stloc.2 
-	  IL_0029:  ldloc.2 
-	  IL_002a:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_002f:  brtrue IL_005c
-
-	  IL_0034:  nop 
-	  IL_0035:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
-	  IL_003a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_003f:  ldstr "File '{0}' no longer exist (so the target might need to be updated)"
-	  IL_0044:  ldloc.0 
-	  IL_0045:  ldarg.1 
-	  IL_0046:  box [mscorlib]System.DateTime
-	  IL_004b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0050:  callvirt instance void class [log4net]log4net.ILog::Info(object)
-	  IL_0055:  ldloc.0 
-	  IL_0056:  stloc.3 
-	  IL_0057:  leave IL_00c4
-
-	  IL_005c:  ldloc.2 
-	  IL_005d:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	  IL_0062:  ldarg.1 
-	  IL_0063:  call bool valuetype [mscorlib]System.DateTime::op_GreaterThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	  IL_0068:  brfalse IL_0095
-
-	  IL_006d:  nop 
-	  IL_006e:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
-	  IL_0073:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0078:  ldstr "'{0}' was newer than {1}"
-	  IL_007d:  ldloc.0 
-	  IL_007e:  ldarg.1 
-	  IL_007f:  box [mscorlib]System.DateTime
-	  IL_0084:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0089:  callvirt instance void class [log4net]log4net.ILog::Info(object)
-	  IL_008e:  ldloc.0 
-	  IL_008f:  stloc.3 
-	  IL_0090:  leave IL_00c4
-
-	  IL_0095:  nop 
-	  IL_0096:  nop 
-	  IL_0097:  ldloc.1 
-	  IL_0098:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_009d:  brtrue IL_000e
-
-	  IL_00a2:  leave IL_00bd
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00a7:  ldloc.1 
-	  IL_00a8:  isinst [mscorlib]System.IDisposable
-	  IL_00ad:  dup 
-	  IL_00ae:  stloc.s 4
-	  IL_00b0:  brfalse IL_00bc
-
-	  IL_00b5:  ldloc.s 4
-	  IL_00b7:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00bc:  endfinally 
-	} // end handler 0
-	IL_00bd:  ldnull 
-	IL_00be:  stloc.3 
-	IL_00bf:  br IL_00c4
-
-	IL_00c4:  ldloc.3 
-	IL_00c5:  ret 
-    } // end of method FileSet::FindMoreRecentLastWriteTime
-
-    // method line 460
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x9c14
-	// Code size 21 (0x15)
-	.maxstack 8
-	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
-	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
-	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
-	IL_0014:  ret 
-    } // end of method FileSet::.cctor
-
-	.property instance bool CaseSensitive ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 63 61 73 65 73 65 6E 73 69 74 69 76 65   // ...casesensitive
-		00 00                                           ) // ..
-
-		.get instance default bool NAnt.Core.Types.FileSet::get_CaseSensitive () 
-		.set instance default void NAnt.Core.Types.FileSet::set_CaseSensitive (bool 'value') 
-	}
-	.property instance bool FailOnEmpty ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 66 61 69 6C 6F 6E 65 6D 70 74 79 00 00 ) // ...failonempty..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.FileSet::get_FailOnEmpty () 
-		.set instance default void NAnt.Core.Types.FileSet::set_FailOnEmpty (bool 'value') 
-	}
-	.property instance bool DefaultExcludes ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0F 64 65 66 61 75 6C 74 65 78 63 6C 75 64   // ...defaultexclud
-		65 73 00 00                                     ) // es..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.FileSet::get_DefaultExcludes () 
-		.set instance default void NAnt.Core.Types.FileSet::set_DefaultExcludes (bool 'value') 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 62 61 73 65 64 69 72 00 00 ) // ...basedir..
-
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::get_BaseDirectory () 
-		.set instance default void NAnt.Core.Types.FileSet::set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection Includes ()
-	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::get_Includes () 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection Excludes ()
-	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::get_Excludes () 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection AsIs ()
-	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::get_AsIs () 
-	}
-	.property instance class NAnt.Core.PathScanner PathFiles ()
-	{
-		.get instance default class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::get_PathFiles () 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection FileNames ()
-	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::get_FileNames () 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection DirectoryNames ()
-	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::get_DirectoryNames () 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection ScannedDirectories ()
-	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::get_ScannedDirectories () 
-	}
-	.property instance class NAnt.Core.Types.FileSet/Include[] SetIncludes ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 08 69 6E 63 6C 75 64 65 73 00 00 ) // ...includes..
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 1E 55 73 65 20 3C 69 6E 63 6C 75 64 65 3E   // ...Use <include>
-		20 65 6C 65 6D 65 6E 74 20 69 6E 73 74 65 61 64   //  element instead
-		2E 00 00 00                                     ) // ....
-
-		.set instance default void NAnt.Core.Types.FileSet::set_SetIncludes (class NAnt.Core.Types.FileSet/Include[] 'value') 
-	}
-	.property instance class NAnt.Core.Types.FileSet/Include[] IncludeElements ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 69 6E 63 6C 75 64 65 00 00 ) // ...include..
-
-		.set instance default void NAnt.Core.Types.FileSet::set_IncludeElements (class NAnt.Core.Types.FileSet/Include[] 'value') 
-	}
-	.property instance class NAnt.Core.Types.FileSet/Exclude[] SetExcludes ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 08 65 78 63 6C 75 64 65 73 00 00 ) // ...excludes..
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 1E 55 73 65 20 3C 65 78 63 6C 75 64 65 3E   // ...Use <exclude>
-		20 65 6C 65 6D 65 6E 74 20 69 6E 73 74 65 61 64   //  element instead
-		2E 00 00 00                                     ) // ....
-
-		.set instance default void NAnt.Core.Types.FileSet::set_SetExcludes (class NAnt.Core.Types.FileSet/Exclude[] 'value') 
-	}
-	.property instance class NAnt.Core.Types.FileSet/Exclude[] ExcludeElements ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 65 78 63 6C 75 64 65 00 00 ) // ...exclude..
-
-		.set instance default void NAnt.Core.Types.FileSet::set_ExcludeElements (class NAnt.Core.Types.FileSet/Exclude[] 'value') 
-	}
-	.property instance class NAnt.Core.Types.FileSet/IncludesFile[] SetIncludesList ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (
-		01 00 0C 69 6E 63 6C 75 64 65 73 4C 69 73 74 00   // ...includesList.
-		00                                              ) // .
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 1B 55 73 65 20 3C 69 6E 63 6C 75 64 65 73   // ...Use <includes
-		66 69 6C 65 3E 20 69 6E 73 74 65 61 64 2E 00 00   // file> instead...
-		00                                              ) // .
-
-		.set instance default void NAnt.Core.Types.FileSet::set_SetIncludesList (class NAnt.Core.Types.FileSet/IncludesFile[] 'value') 
-	}
-	.property instance class NAnt.Core.Types.FileSet/IncludesFile[] IncludesFiles ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (
-		01 00 0C 69 6E 63 6C 75 64 65 73 66 69 6C 65 00   // ...includesfile.
-		00                                              ) // .
-
-		.set instance default void NAnt.Core.Types.FileSet::set_IncludesFiles (class NAnt.Core.Types.FileSet/IncludesFile[] 'value') 
-	}
-	.property instance class NAnt.Core.Types.FileSet/ExcludesFile[] ExcludesFiles ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (
-		01 00 0C 65 78 63 6C 75 64 65 73 66 69 6C 65 00   // ...excludesfile.
-		00                                              ) // .
-
-		.set instance default void NAnt.Core.Types.FileSet::set_ExcludesFiles (class NAnt.Core.Types.FileSet/ExcludesFile[] 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo MostRecentLastWriteTimeFile ()
-	{
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Types.FileSet::get_MostRecentLastWriteTimeFile () 
-	}
-	.property instance bool IsEverythingIncluded ()
-	{
-		.get instance default bool NAnt.Core.Types.FileSet::get_IsEverythingIncluded () 
-	}
-  .class nested public auto ansi beforefieldinit Exclude
-  	extends NAnt.Core.Element
-  {
-    .field  private  string _pattern
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
-
-    // method line 461
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x9c2a
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.FileSet/Exclude::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  ret 
-    } // end of method Exclude::.ctor
-
-    // method line 462
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_Pattern ()  cil managed 
-    {
-        // Method begins at RVA 0x9c3c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.FileSet/Exclude::_pattern
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Attributes.BuildElementAttribute::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Exclude::get_Pattern
+    } // end of method BuildElementAttribute::get_Name
 
-    // method line 463
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Pattern (string 'value')  cil managed 
+    // method line 393
+    .method public hidebysig specialname 
+           instance default void set_Name (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9c57
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0xa528
+	// Code size 66 (0x42)
+	.maxstack 3
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.FileSet/Exclude::_pattern
-	IL_0008:  ret 
-    } // end of method Exclude::set_Pattern
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-    // method line 464
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_IfDefined ()  cil managed 
+	IL_0007:  nop 
+	IL_0008:  ldstr "name"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldarg.1 
+	IL_0015:  callvirt instance string string::Trim()
+	IL_001a:  stfld string NAnt.Core.Attributes.BuildElementAttribute::_name
+	IL_001f:  ldarg.0 
+	IL_0020:  ldfld string NAnt.Core.Attributes.BuildElementAttribute::_name
+	IL_0025:  callvirt instance int32 string::get_Length()
+	IL_002a:  brtrue IL_0041
+
+	IL_002f:  nop 
+	IL_0030:  ldstr "name"
+	IL_0035:  ldarg.1 
+	IL_0036:  ldstr "A zero-length string is not an allowed value."
+	IL_003b:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
+	IL_0040:  throw 
+	IL_0041:  ret 
+    } // end of method BuildElementAttribute::set_Name
+
+    // method line 394
+    .method public hidebysig specialname 
+           instance default bool get_Required ()  cil managed 
     {
-        // Method begins at RVA 0x9c64
+        // Method begins at RVA 0xa578
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/Exclude::_ifDefined
+	IL_0002:  ldfld bool NAnt.Core.Attributes.BuildElementAttribute::_required
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Exclude::get_IfDefined
+    } // end of method BuildElementAttribute::get_Required
 
-    // method line 465
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 395
+    .method public hidebysig specialname 
+           instance default void set_Required (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9c7f
+        // Method begins at RVA 0xa593
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.FileSet/Exclude::_ifDefined
+	IL_0003:  stfld bool NAnt.Core.Attributes.BuildElementAttribute::_required
 	IL_0008:  ret 
-    } // end of method Exclude::set_IfDefined
+    } // end of method BuildElementAttribute::set_Required
 
-    // method line 466
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+    // method line 396
+    .method public hidebysig specialname 
+           instance default bool get_ProcessXml ()  cil managed 
     {
-        // Method begins at RVA 0x9c8c
+        // Method begins at RVA 0xa5a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/Exclude::_unlessDefined
+	IL_0002:  ldfld bool NAnt.Core.Attributes.BuildElementAttribute::_processXml
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Exclude::get_UnlessDefined
+    } // end of method BuildElementAttribute::get_ProcessXml
 
-    // method line 467
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 397
+    .method public hidebysig specialname 
+           instance default void set_ProcessXml (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9ca7
+        // Method begins at RVA 0xa5bb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.FileSet/Exclude::_unlessDefined
+	IL_0003:  stfld bool NAnt.Core.Attributes.BuildElementAttribute::_processXml
 	IL_0008:  ret 
-    } // end of method Exclude::set_UnlessDefined
+    } // end of method BuildElementAttribute::set_ProcessXml
 
-	.property instance string Pattern ()
+	.property instance string Name ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.Core.Types.FileSet/Exclude::get_Pattern () 
-		.set instance default void NAnt.Core.Types.FileSet/Exclude::set_Pattern (string 'value') 
+		.get instance default string NAnt.Core.Attributes.BuildElementAttribute::get_Name () 
+		.set instance default void NAnt.Core.Attributes.BuildElementAttribute::set_Name (string 'value') 
 	}
-	.property instance bool IfDefined ()
+	.property instance bool Required ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.FileSet/Exclude::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.FileSet/Exclude::set_IfDefined (bool 'value') 
+		.get instance default bool NAnt.Core.Attributes.BuildElementAttribute::get_Required () 
+		.set instance default void NAnt.Core.Attributes.BuildElementAttribute::set_Required (bool 'value') 
 	}
-	.property instance bool UnlessDefined ()
+	.property instance bool ProcessXml ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.FileSet/Exclude::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.FileSet/Exclude::set_UnlessDefined (bool 'value') 
+		.get instance default bool NAnt.Core.Attributes.BuildElementAttribute::get_ProcessXml () 
+		.set instance default void NAnt.Core.Attributes.BuildElementAttribute::set_ProcessXml (bool 'value') 
 	}
-  } // end of class Exclude
+  } // end of class NAnt.Core.Attributes.BuildElementAttribute
+}
 
-  .class nested public auto ansi beforefieldinit Include
-  	extends NAnt.Core.Types.FileSet/Exclude
+.namespace NAnt.Core.Attributes
+{
+  .class public auto ansi sealed beforefieldinit TaskAttributeAttribute
+  	extends NAnt.Core.Attributes.BuildAttributeAttribute
   {
-    .field  private  bool _asIs
-    .field  private  bool _fromPath
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 01                                  ) // ited.
 
-    // method line 468
+
+    // method line 398
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (string name)  cil managed 
     {
-        // Method begins at RVA 0x9cb1
-	// Code size 7 (0x7)
+        // Method begins at RVA 0xa6c5
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Types.FileSet/Exclude::'.ctor'()
-	IL_0006:  ret 
-    } // end of method Include::.ctor
-
-    // method line 469
-    .method public hidebysig specialname 
-           instance default bool get_AsIs ()  cil managed 
-    {
-        // Method begins at RVA 0x9cbc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/Include::_asIs
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class NAnt.Core.Attributes.BuildAttributeAttribute::'.ctor'(string)
+	IL_0007:  nop 
+	IL_0008:  ret 
+    } // end of method TaskAttributeAttribute::.ctor
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Include::get_AsIs
+  } // end of class NAnt.Core.Attributes.TaskAttributeAttribute
+}
 
-    // method line 470
-    .method public hidebysig specialname 
-           instance default void set_AsIs (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x9cd7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.FileSet/Include::_asIs
-	IL_0008:  ret 
-    } // end of method Include::set_AsIs
+.namespace NAnt.Core.Attributes
+{
+  .class public auto ansi sealed beforefieldinit FileSetAttribute
+  	extends NAnt.Core.Attributes.BuildElementAttribute
+  {
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 01                                  ) // ited.
 
-    // method line 471
-    .method public hidebysig specialname 
-           instance default bool get_FromPath ()  cil managed 
-    {
-        // Method begins at RVA 0x9ce4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/Include::_fromPath
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+    .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 4D 50 6C 65 61 73 65 20 75 73 65 20 61 20   // ..MPlease use a 
+		42 75 69 6C 64 45 6C 65 6D 65 6E 74 20 61 74 74   // BuildElement att
+		72 69 62 75 74 65 20 69 6E 73 74 65 61 64 2E 20   // ribute instead. 
+		54 68 69 73 20 63 6C 61 73 73 20 77 69 6C 6C 20   // This class will 
+		62 65 20 72 65 6D 6F 76 65 64 20 73 6F 6F 6E 2E   // be removed soon.
+		01 00 00                                        ) // ...
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Include::get_FromPath
 
-    // method line 472
-    .method public hidebysig specialname 
-           instance default void set_FromPath (bool 'value')  cil managed 
+    // method line 399
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
     {
-        // Method begins at RVA 0x9cff
+        // Method begins at RVA 0xa6cf
 	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.FileSet/Include::_fromPath
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string)
+	IL_0007:  nop 
 	IL_0008:  ret 
-    } // end of method Include::set_FromPath
+    } // end of method FileSetAttribute::.ctor
 
-    // method line 473
-    .method public virtual hidebysig specialname 
-           instance default string get_Pattern ()  cil managed 
-    {
-        // Method begins at RVA 0x9d0c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+  } // end of class NAnt.Core.Attributes.FileSetAttribute
+}
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Include::get_Pattern
+.namespace NAnt.Core.Attributes
+{
+  .class public auto ansi sealed beforefieldinit BuildElementCollectionAttribute
+  	extends NAnt.Core.Attributes.BuildElementArrayAttribute
+  {
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 01                                  ) // ited.
 
-    // method line 474
-    .method public virtual hidebysig specialname 
-           instance default void set_Pattern (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x9d27
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Types.FileSet/Exclude::set_Pattern(string)
-	IL_0008:  ret 
-    } // end of method Include::set_Pattern
+    .field  private  string _elementName
 
-    // method line 475
-    .method public virtual hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+    // method line 400
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string collectionName, string childName)  cil managed 
     {
-        // Method begins at RVA 0x9d34
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Types.FileSet/Exclude::get_IfDefined()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+        // Method begins at RVA 0xa724
+	// Code size 73 (0x49)
+	.maxstack 3
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string)
+	IL_0007:  nop 
+	IL_0008:  ldarg.2 
+	IL_0009:  brtrue IL_001a
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Include::get_IfDefined
+	IL_000e:  nop 
+	IL_000f:  ldstr "childName"
+	IL_0014:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0019:  throw 
+	IL_001a:  ldarg.0 
+	IL_001b:  ldarg.2 
+	IL_001c:  callvirt instance string string::Trim()
+	IL_0021:  stfld string NAnt.Core.Attributes.BuildElementCollectionAttribute::_elementName
+	IL_0026:  ldarg.0 
+	IL_0027:  ldfld string NAnt.Core.Attributes.BuildElementCollectionAttribute::_elementName
+	IL_002c:  callvirt instance int32 string::get_Length()
+	IL_0031:  brtrue IL_0048
 
-    // method line 476
-    .method public virtual hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x9d4f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Types.FileSet/Exclude::set_IfDefined(bool)
-	IL_0008:  ret 
-    } // end of method Include::set_IfDefined
+	IL_0036:  nop 
+	IL_0037:  ldstr "childName"
+	IL_003c:  ldarg.2 
+	IL_003d:  ldstr "A zero-length string is not an allowed value."
+	IL_0042:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
+	IL_0047:  throw 
+	IL_0048:  ret 
+    } // end of method BuildElementCollectionAttribute::.ctor
 
-    // method line 477
-    .method public virtual hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+    // method line 401
+    .method public hidebysig specialname 
+           instance default string get_ChildElementName ()  cil managed 
     {
-        // Method begins at RVA 0x9d5c
+        // Method begins at RVA 0xa77c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Types.FileSet/Exclude::get_UnlessDefined()
+	IL_0002:  ldfld string NAnt.Core.Attributes.BuildElementCollectionAttribute::_elementName
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Include::get_UnlessDefined
-
-    // method line 478
-    .method public virtual hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x9d77
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Types.FileSet/Exclude::set_UnlessDefined(bool)
-	IL_0008:  ret 
-    } // end of method Include::set_UnlessDefined
-
-	.property instance bool AsIs ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 61 73 69 73 00 00 ) // ...asis..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.FileSet/Include::get_AsIs () 
-		.set instance default void NAnt.Core.Types.FileSet/Include::set_AsIs (bool 'value') 
-	}
-	.property instance bool FromPath ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 66 72 6F 6D 70 61 74 68 00 00 ) // ...frompath..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.FileSet/Include::get_FromPath () 
-		.set instance default void NAnt.Core.Types.FileSet/Include::set_FromPath (bool 'value') 
-	}
-	.property instance string Pattern ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.Core.Types.FileSet/Include::get_Pattern () 
-		.set instance default void NAnt.Core.Types.FileSet/Include::set_Pattern (string 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    } // end of method BuildElementCollectionAttribute::get_ChildElementName
 
-		.get instance default bool NAnt.Core.Types.FileSet/Include::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.FileSet/Include::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
+	.property instance string ChildElementName ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.FileSet/Include::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.FileSet/Include::set_UnlessDefined (bool 'value') 
+		.get instance default string NAnt.Core.Attributes.BuildElementCollectionAttribute::get_ChildElementName () 
 	}
-  } // end of class Include
+  } // end of class NAnt.Core.Attributes.BuildElementCollectionAttribute
+}
 
-  .class nested public auto ansi beforefieldinit ExcludesFile
-  	extends NAnt.Core.Element
+.namespace NAnt.Core.Attributes
+{
+  .class public auto ansi sealed beforefieldinit FunctionSetAttribute
+  	extends [mscorlib]System.Attribute
   {
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
-    .field  private  class [mscorlib]System.IO.FileInfo _patternFile
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 04 00 00 00 02 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 00 54 02 0D 41 6C 6C 6F 77 4D 75 6C   // ited.T..AllowMul
+		74 69 70 6C 65 00                               ) // tiple.
 
-    // method line 479
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x9d81
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.FileSet/ExcludesFile::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  ret 
-    } // end of method ExcludesFile::.ctor
+    .field  private  string _prefix
+    .field  private  string _category
 
-    // method line 480
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Patterns ()  cil managed 
+    // method line 402
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string prefix, string category)  cil managed 
     {
-        // Method begins at RVA 0x9d90
-	// Code size 191 (0xbf)
+        // Method begins at RVA 0xa798
+	// Code size 126 (0x7e)
 	.maxstack 3
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		class [System]System.Collections.Specialized.StringCollection	V_1,
-		class [mscorlib]System.IO.StreamReader	V_2,
-		string	V_3,
-		class [mscorlib]System.Exception	V_4)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.FileSet/ExcludesFile::get_PatternFile()
-	IL_000d:  brtrue IL_001a
-
-	IL_0012:  nop 
-	IL_0013:  ldloc.0 
-	IL_0014:  stloc.1 
-	IL_0015:  br IL_00bd
-
-	.try { // 1
-	  IL_001a:  nop 
-	  IL_001b:  ldarg.0 
-	  IL_001c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.FileSet/ExcludesFile::get_PatternFile()
-	  IL_0021:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0026:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
-	  IL_002b:  ldc.i4.1 
-	  IL_002c:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
-	  IL_0031:  stloc.2 
-	  .try { // 0
-	    IL_0032:  nop 
-	    IL_0033:  ldloc.2 
-	    IL_0034:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	    IL_0039:  stloc.3 
-	    IL_003a:  br IL_0072
-
-	    IL_003f:  nop 
-	    IL_0040:  ldloc.3 
-	    IL_0041:  callvirt instance string string::Trim()
-	    IL_0046:  stloc.3 
-	    IL_0047:  ldloc.3 
-	    IL_0048:  callvirt instance int32 string::get_Length()
-	    IL_004d:  brfalse IL_006a
-
-	    IL_0052:  ldloc.3 
-	    IL_0053:  ldc.i4.0 
-	    IL_0054:  callvirt instance char string::get_Chars(int32)
-	    IL_0059:  ldc.i4.s 0x23
-	    IL_005b:  beq IL_006a
-
-	    IL_0060:  nop 
-	    IL_0061:  ldloc.0 
-	    IL_0062:  ldloc.3 
-	    IL_0063:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_0068:  pop 
-	    IL_0069:  nop 
-	    IL_006a:  ldloc.2 
-	    IL_006b:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	    IL_0070:  stloc.3 
-	    IL_0071:  nop 
-	    IL_0072:  ldloc.3 
-	    IL_0073:  brtrue IL_003f
-
-	    IL_0078:  nop 
-	    IL_0079:  leave IL_008b
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_007e:  ldloc.2 
-	    IL_007f:  brfalse IL_008a
-
-	    IL_0084:  ldloc.2 
-	    IL_0085:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_008a:  endfinally 
-	  } // end handler 0
-	  IL_008b:  ldloc.0 
-	  IL_008c:  stloc.1 
-	  IL_008d:  leave IL_00bd
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  brtrue IL_0019
 
-	} // end .try 1
-	catch class [mscorlib]System.Exception { // 1
-	  IL_0092:  stloc.s 4
-	  IL_0094:  nop 
-	  IL_0095:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_009a:  ldstr "'{0}' list could not be opened."
-	  IL_009f:  ldarg.0 
-	  IL_00a0:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.FileSet/ExcludesFile::get_PatternFile()
-	  IL_00a5:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_00aa:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_00af:  ldarg.0 
-	  IL_00b0:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_00b5:  ldloc.s 4
-	  IL_00b7:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_00bc:  throw 
-	} // end handler 1
-	IL_00bd:  ldloc.1 
-	IL_00be:  ret 
-    } // end of method ExcludesFile::get_Patterns
+	IL_000d:  nop 
+	IL_000e:  ldstr "prefix"
+	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0018:  throw 
+	IL_0019:  ldarg.2 
+	IL_001a:  brtrue IL_002b
 
-    // method line 481
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x9e78
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/ExcludesFile::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_001f:  nop 
+	IL_0020:  ldstr "category"
+	IL_0025:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_002a:  throw 
+	IL_002b:  ldarg.1 
+	IL_002c:  callvirt instance string string::Trim()
+	IL_0031:  callvirt instance int32 string::get_Length()
+	IL_0036:  brtrue IL_004d
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExcludesFile::get_IfDefined
+	IL_003b:  nop 
+	IL_003c:  ldstr "prefix"
+	IL_0041:  ldarg.1 
+	IL_0042:  ldstr "A zero-length string is not an allowed value."
+	IL_0047:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
+	IL_004c:  throw 
+	IL_004d:  ldarg.2 
+	IL_004e:  callvirt instance string string::Trim()
+	IL_0053:  callvirt instance int32 string::get_Length()
+	IL_0058:  brtrue IL_006f
 
-    // method line 482
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x9e93
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.FileSet/ExcludesFile::_ifDefined
-	IL_0008:  ret 
-    } // end of method ExcludesFile::set_IfDefined
+	IL_005d:  nop 
+	IL_005e:  ldstr "category"
+	IL_0063:  ldarg.2 
+	IL_0064:  ldstr "A zero-length string is not an allowed value."
+	IL_0069:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
+	IL_006e:  throw 
+	IL_006f:  ldarg.0 
+	IL_0070:  ldarg.1 
+	IL_0071:  stfld string NAnt.Core.Attributes.FunctionSetAttribute::_prefix
+	IL_0076:  ldarg.0 
+	IL_0077:  ldarg.2 
+	IL_0078:  stfld string NAnt.Core.Attributes.FunctionSetAttribute::_category
+	IL_007d:  ret 
+    } // end of method FunctionSetAttribute::.ctor
 
-    // method line 483
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+    // method line 403
+    .method public hidebysig specialname 
+           instance default string get_Category ()  cil managed 
     {
-        // Method begins at RVA 0x9ea0
+        // Method begins at RVA 0xa824
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/ExcludesFile::_unlessDefined
+	IL_0002:  ldfld string NAnt.Core.Attributes.FunctionSetAttribute::_category
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExcludesFile::get_UnlessDefined
+    } // end of method FunctionSetAttribute::get_Category
 
-    // method line 484
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 404
+    .method public hidebysig specialname 
+           instance default void set_Category (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9ebb
+        // Method begins at RVA 0xa83f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.FileSet/ExcludesFile::_unlessDefined
+	IL_0003:  stfld string NAnt.Core.Attributes.FunctionSetAttribute::_category
 	IL_0008:  ret 
-    } // end of method ExcludesFile::set_UnlessDefined
+    } // end of method FunctionSetAttribute::set_Category
 
-    // method line 485
+    // method line 405
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_PatternFile ()  cil managed 
+           instance default string get_Prefix ()  cil managed 
     {
-        // Method begins at RVA 0x9ec8
+        // Method begins at RVA 0xa84c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.FileSet/ExcludesFile::_patternFile
+	IL_0002:  ldfld string NAnt.Core.Attributes.FunctionSetAttribute::_prefix
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExcludesFile::get_PatternFile
+    } // end of method FunctionSetAttribute::get_Prefix
 
-    // method line 486
+    // method line 406
     .method public hidebysig specialname 
-           instance default void set_PatternFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_Prefix (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9ee3
+        // Method begins at RVA 0xa867
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.FileSet/ExcludesFile::_patternFile
+	IL_0003:  stfld string NAnt.Core.Attributes.FunctionSetAttribute::_prefix
 	IL_0008:  ret 
-    } // end of method ExcludesFile::set_PatternFile
+    } // end of method FunctionSetAttribute::set_Prefix
 
-	.property instance class [System]System.Collections.Specialized.StringCollection Patterns ()
+	.property instance string Category ()
 	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet/ExcludesFile::get_Patterns () 
+		.get instance default string NAnt.Core.Attributes.FunctionSetAttribute::get_Category () 
+		.set instance default void NAnt.Core.Attributes.FunctionSetAttribute::set_Category (string 'value') 
 	}
-	.property instance bool IfDefined ()
+	.property instance string Prefix ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.FileSet/ExcludesFile::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.FileSet/ExcludesFile::set_IfDefined (bool 'value') 
+		.get instance default string NAnt.Core.Attributes.FunctionSetAttribute::get_Prefix () 
+		.set instance default void NAnt.Core.Attributes.FunctionSetAttribute::set_Prefix (string 'value') 
 	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+  } // end of class NAnt.Core.Attributes.FunctionSetAttribute
+}
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+.namespace NAnt.Core.Attributes
+{
+  .class public auto ansi sealed beforefieldinit TaskNameAttribute
+  	extends NAnt.Core.Attributes.ElementNameAttribute
+  {
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 04 00 00 00 02 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 00 54 02 0D 41 6C 6C 6F 77 4D 75 6C   // ited.T..AllowMul
+		74 69 70 6C 65 00                               ) // tiple.
 
-		.get instance default bool NAnt.Core.Types.FileSet/ExcludesFile::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.FileSet/ExcludesFile::set_UnlessDefined (bool 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo PatternFile ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
-		69 72 65 64 01                                  ) // ired.
 
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+    // method line 407
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
+    {
+        // Method begins at RVA 0xa8ee
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string)
+	IL_0007:  nop 
+	IL_0008:  ret 
+    } // end of method TaskNameAttribute::.ctor
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Types.FileSet/ExcludesFile::get_PatternFile () 
-		.set instance default void NAnt.Core.Types.FileSet/ExcludesFile::set_PatternFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-  } // end of class ExcludesFile
+  } // end of class NAnt.Core.Attributes.TaskNameAttribute
+}
 
-  .class nested public auto ansi beforefieldinit IncludesFile
-  	extends NAnt.Core.Types.FileSet/ExcludesFile
+.namespace NAnt.Core.Attributes
+{
+  .class public auto ansi sealed beforefieldinit DateTimeValidatorAttribute
+  	extends NAnt.Core.Attributes.ValidatorAttribute
   {
-    .field  private  bool _asIs
-    .field  private  bool _fromPath
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 01                                  ) // ited.
 
-    // method line 487
+
+    // method line 408
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x9eed
-	// Code size 7 (0x7)
+        // Method begins at RVA 0xa8f8
+	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Types.FileSet/ExcludesFile::'.ctor'()
-	IL_0006:  ret 
-    } // end of method IncludesFile::.ctor
+	IL_0001:  call instance void class NAnt.Core.Attributes.ValidatorAttribute::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method DateTimeValidatorAttribute::.ctor
 
-    // method line 488
-    .method public hidebysig specialname 
-           instance default bool get_AsIs ()  cil managed 
+    // method line 409
+    .method public virtual hidebysig 
+           instance default void Validate (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x9ef8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xa904
+	// Code size 56 (0x38)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.Exception	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/IncludesFile::_asIs
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0008:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.Convert::ToDateTime(object, class [mscorlib]System.IFormatProvider)
+	  IL_000d:  pop 
+	  IL_000e:  nop 
+	  IL_000f:  leave IL_0037
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method IncludesFile::get_AsIs
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0014:  stloc.0 
+	  IL_0015:  nop 
+	  IL_0016:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_001b:  ldstr "NA1089"
+	  IL_0020:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0025:  ldarg.1 
+	  IL_0026:  callvirt instance string object::ToString()
+	  IL_002b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0030:  ldloc.0 
+	  IL_0031:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class [mscorlib]System.Exception)
+	  IL_0036:  throw 
+	} // end handler 0
+	IL_0037:  ret 
+    } // end of method DateTimeValidatorAttribute::Validate
 
-    // method line 489
-    .method public hidebysig specialname 
-           instance default void set_AsIs (bool 'value')  cil managed 
+  } // end of class NAnt.Core.Attributes.DateTimeValidatorAttribute
+}
+
+.namespace NAnt.Core.Attributes
+{
+  .class public auto ansi sealed beforefieldinit FrameworkConfigurableAttribute
+  	extends [mscorlib]System.Attribute
+  {
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 01                                  ) // ited.
+
+    .field  private  string _name
+    .field  private  bool _required
+    .field  private  bool _expandProperties
+
+    // method line 410
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
     {
-        // Method begins at RVA 0x9f13
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xa958
+	// Code size 22 (0x16)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.FileSet/IncludesFile::_asIs
-	IL_0008:  ret 
-    } // end of method IncludesFile::set_AsIs
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::_expandProperties
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class [mscorlib]System.Attribute::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  call instance void class NAnt.Core.Attributes.FrameworkConfigurableAttribute::set_Name(string)
+	IL_0015:  ret 
+    } // end of method FrameworkConfigurableAttribute::.ctor
 
-    // method line 490
+    // method line 411
     .method public hidebysig specialname 
-           instance default bool get_FromPath ()  cil managed 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x9f20
+        // Method begins at RVA 0xa970
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/IncludesFile::_fromPath
+	IL_0002:  ldfld string NAnt.Core.Attributes.FrameworkConfigurableAttribute::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IncludesFile::get_FromPath
+    } // end of method FrameworkConfigurableAttribute::get_Name
 
-    // method line 491
+    // method line 412
     .method public hidebysig specialname 
-           instance default void set_FromPath (bool 'value')  cil managed 
+           instance default void set_Name (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9f3b
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0xa98c
+	// Code size 66 (0x42)
+	.maxstack 3
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.FileSet/IncludesFile::_fromPath
-	IL_0008:  ret 
-    } // end of method IncludesFile::set_FromPath
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-    // method line 492
-    .method public virtual hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+	IL_0007:  nop 
+	IL_0008:  ldstr "name"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldarg.1 
+	IL_0015:  callvirt instance string string::Trim()
+	IL_001a:  stfld string NAnt.Core.Attributes.FrameworkConfigurableAttribute::_name
+	IL_001f:  ldarg.0 
+	IL_0020:  ldfld string NAnt.Core.Attributes.FrameworkConfigurableAttribute::_name
+	IL_0025:  callvirt instance int32 string::get_Length()
+	IL_002a:  brtrue IL_0041
+
+	IL_002f:  nop 
+	IL_0030:  ldstr "name"
+	IL_0035:  ldarg.1 
+	IL_0036:  ldstr "A zero-length string is not an allowed value."
+	IL_003b:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
+	IL_0040:  throw 
+	IL_0041:  ret 
+    } // end of method FrameworkConfigurableAttribute::set_Name
+
+    // method line 413
+    .method public hidebysig specialname 
+           instance default bool get_Required ()  cil managed 
     {
-        // Method begins at RVA 0x9f48
+        // Method begins at RVA 0xa9dc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_IfDefined()
+	IL_0002:  ldfld bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::_required
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IncludesFile::get_IfDefined
+    } // end of method FrameworkConfigurableAttribute::get_Required
 
-    // method line 493
-    .method public virtual hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 414
+    .method public hidebysig specialname 
+           instance default void set_Required (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9f63
+        // Method begins at RVA 0xa9f7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Types.FileSet/ExcludesFile::set_IfDefined(bool)
+	IL_0003:  stfld bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::_required
 	IL_0008:  ret 
-    } // end of method IncludesFile::set_IfDefined
+    } // end of method FrameworkConfigurableAttribute::set_Required
 
-    // method line 494
-    .method public virtual hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+    // method line 415
+    .method public hidebysig specialname 
+           instance default bool get_ExpandProperties ()  cil managed 
     {
-        // Method begins at RVA 0x9f70
+        // Method begins at RVA 0xaa04
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_UnlessDefined()
+	IL_0002:  ldfld bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::_expandProperties
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IncludesFile::get_UnlessDefined
+    } // end of method FrameworkConfigurableAttribute::get_ExpandProperties
 
-    // method line 495
-    .method public virtual hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 416
+    .method public hidebysig specialname 
+           instance default void set_ExpandProperties (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9f8b
+        // Method begins at RVA 0xaa1f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Types.FileSet/ExcludesFile::set_UnlessDefined(bool)
+	IL_0003:  stfld bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::_expandProperties
 	IL_0008:  ret 
-    } // end of method IncludesFile::set_UnlessDefined
-
-	.property instance bool AsIs ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 61 73 69 73 00 00 ) // ...asis..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    } // end of method FrameworkConfigurableAttribute::set_ExpandProperties
 
-		.get instance default bool NAnt.Core.Types.FileSet/IncludesFile::get_AsIs () 
-		.set instance default void NAnt.Core.Types.FileSet/IncludesFile::set_AsIs (bool 'value') 
-	}
-	.property instance bool FromPath ()
+	.property instance string Name ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 66 72 6F 6D 70 61 74 68 00 00 ) // ...frompath..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.FileSet/IncludesFile::get_FromPath () 
-		.set instance default void NAnt.Core.Types.FileSet/IncludesFile::set_FromPath (bool 'value') 
+		.get instance default string NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_Name () 
+		.set instance default void NAnt.Core.Attributes.FrameworkConfigurableAttribute::set_Name (string 'value') 
 	}
-	.property instance bool IfDefined ()
+	.property instance bool Required ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.FileSet/IncludesFile::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.FileSet/IncludesFile::set_IfDefined (bool 'value') 
+		.get instance default bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_Required () 
+		.set instance default void NAnt.Core.Attributes.FrameworkConfigurableAttribute::set_Required (bool 'value') 
 	}
-	.property instance bool UnlessDefined ()
+	.property instance bool ExpandProperties ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.FileSet/IncludesFile::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.FileSet/IncludesFile::set_UnlessDefined (bool 'value') 
+		.get instance default bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_ExpandProperties () 
+		.set instance default void NAnt.Core.Attributes.FrameworkConfigurableAttribute::set_ExpandProperties (bool 'value') 
 	}
-  } // end of class IncludesFile
-
-  } // end of class NAnt.Core.Types.FileSet
+  } // end of class NAnt.Core.Attributes.FrameworkConfigurableAttribute
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Attributes
 {
-  .class public auto ansi beforefieldinit RawXml
-  	extends NAnt.Core.Element
+  .class public auto ansi sealed beforefieldinit BooleanValidatorAttribute
+  	extends NAnt.Core.Attributes.ValidatorAttribute
   {
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 01                                  ) // ited.
 
-    // method line 496
+
+    // method line 417
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x9f95
-	// Code size 7 (0x7)
+        // Method begins at RVA 0xaa29
+	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_0006:  ret 
-    } // end of method RawXml::.ctor
-
-    // method line 497
-    .method public hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlNode get_Xml ()  cil managed 
-    {
-        // Method begins at RVA 0x9fa0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::get_XmlNode()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RawXml::get_Xml
+	IL_0001:  call instance void class NAnt.Core.Attributes.ValidatorAttribute::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method BooleanValidatorAttribute::.ctor
 
-    // method line 498
-    .method family virtual hidebysig specialname 
-           instance default bool get_CustomXmlProcessing ()  cil managed 
+    // method line 418
+    .method public virtual hidebysig 
+           instance default void Validate (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x9fbc
-	// Code size 10 (0xa)
-	.maxstack 1
+        // Method begins at RVA 0xaa34
+	// Code size 56 (0x38)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.Exception	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0008:  call bool class [mscorlib]System.Convert::ToBoolean(object, class [mscorlib]System.IFormatProvider)
+	  IL_000d:  pop 
+	  IL_000e:  nop 
+	  IL_000f:  leave IL_0037
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method RawXml::get_CustomXmlProcessing
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0014:  stloc.0 
+	  IL_0015:  nop 
+	  IL_0016:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_001b:  ldstr "NA1088"
+	  IL_0020:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0025:  ldarg.1 
+	  IL_0026:  callvirt instance string object::ToString()
+	  IL_002b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0030:  ldloc.0 
+	  IL_0031:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class [mscorlib]System.Exception)
+	  IL_0036:  throw 
+	} // end handler 0
+	IL_0037:  ret 
+    } // end of method BooleanValidatorAttribute::Validate
 
-	.property instance class [System.Xml]System.Xml.XmlNode Xml ()
-	{
-		.get instance default class [System.Xml]System.Xml.XmlNode NAnt.Core.Types.RawXml::get_Xml () 
-	}
-	.property instance bool CustomXmlProcessing ()
-	{
-		.get instance default bool NAnt.Core.Types.RawXml::get_CustomXmlProcessing () 
-	}
-  } // end of class NAnt.Core.Types.RawXml
+  } // end of class NAnt.Core.Attributes.BooleanValidatorAttribute
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Attributes
 {
-  .class public auto ansi beforefieldinit Pattern
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit ElementNameAttribute
+  	extends [mscorlib]System.Attribute
   {
-    .field  private  string _patternName
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 04 00 00 00 02 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 00 54 02 0D 41 6C 6C 6F 77 4D 75 6C   // ited.T..AllowMul
+		74 69 70 6C 65 00                               ) // tiple.
 
-    // method line 499
+    .field  private  string _name
+
+    // method line 419
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (string name)  cil managed 
     {
-        // Method begins at RVA 0x9fd2
+        // Method begins at RVA 0xa871
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.Pattern::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method Pattern::.ctor
-
-    // method line 500
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, string patternName)  cil managed 
-    {
-        // Method begins at RVA 0x9fe2
-	// Code size 29 (0x1d)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.Pattern::_ifDefined
+	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
+	IL_0006:  nop 
 	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.2 
-	IL_0010:  callvirt instance void class NAnt.Core.Types.Pattern::set_PatternName(string)
-	IL_0015:  ldarg.0 
-	IL_0016:  ldarg.1 
-	IL_0017:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_001c:  ret 
-    } // end of method Pattern::.ctor
-
-    // method line 501
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_PatternName ()  cil managed 
-    {
-        // Method begins at RVA 0xa000
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Pattern::_patternName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Pattern::get_PatternName
-
-    // method line 502
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_PatternName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xa01b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.Pattern::_patternName
-	IL_0008:  ret 
-    } // end of method Pattern::set_PatternName
-
-    // method line 503
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0xa028
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Pattern::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Attributes.ElementNameAttribute::set_Name(string)
 	IL_000e:  ret 
-    } // end of method Pattern::get_IfDefined
-
-    // method line 504
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xa043
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Pattern::_ifDefined
-	IL_0008:  ret 
-    } // end of method Pattern::set_IfDefined
+    } // end of method ElementNameAttribute::.ctor
 
-    // method line 505
+    // method line 420
     .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0xa050
+        // Method begins at RVA 0xa884
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Pattern::_unlessDefined
+	IL_0002:  ldfld string NAnt.Core.Attributes.ElementNameAttribute::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Pattern::get_UnlessDefined
+    } // end of method ElementNameAttribute::get_Name
 
-    // method line 506
+    // method line 421
     .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xa06b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Pattern::_unlessDefined
-	IL_0008:  ret 
-    } // end of method Pattern::set_UnlessDefined
-
-    // method line 507
-    .method assembly hidebysig specialname 
-           instance default bool get_Enabled ()  cil managed 
+           instance default void set_Name (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa078
-	// Code size 32 (0x20)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0xa8a0
+	// Code size 66 (0x42)
+	.maxstack 3
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Types.Pattern::get_IfDefined()
-	IL_0007:  brfalse IL_0017
-
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance bool class NAnt.Core.Types.Pattern::get_UnlessDefined()
-	IL_0012:  ldc.i4.0 
-	IL_0013:  ceq 
-	IL_0015:  br.s IL_0018
-
-	IL_0017:  ldc.i4.0 
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_001e
-
-	IL_001e:  ldloc.0 
-	IL_001f:  ret 
-    } // end of method Pattern::get_Enabled
-
-	.property instance string PatternName ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.Core.Types.Pattern::get_PatternName () 
-		.set instance default void NAnt.Core.Types.Pattern::set_PatternName (string 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 02 69 66 01 00 54 02 08 52 65 71 75 69 72   // ...if..T..Requir
-		65 64 00                                        ) // ed.
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-		.get instance default bool NAnt.Core.Types.Pattern::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.Pattern::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 75 6E 6C 65 73 73 01 00 54 02 08 52 65   // ...unless..T..Re
-		71 75 69 72 65 64 00                            ) // quired.
+	IL_0007:  nop 
+	IL_0008:  ldstr "name"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldarg.1 
+	IL_0015:  callvirt instance string string::Trim()
+	IL_001a:  stfld string NAnt.Core.Attributes.ElementNameAttribute::_name
+	IL_001f:  ldarg.0 
+	IL_0020:  ldfld string NAnt.Core.Attributes.ElementNameAttribute::_name
+	IL_0025:  callvirt instance int32 string::get_Length()
+	IL_002a:  brtrue IL_0041
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_002f:  nop 
+	IL_0030:  ldstr "name"
+	IL_0035:  ldarg.1 
+	IL_0036:  ldstr "A zero-length string is not an allowed value."
+	IL_003b:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
+	IL_0040:  throw 
+	IL_0041:  ret 
+    } // end of method ElementNameAttribute::set_Name
 
-		.get instance default bool NAnt.Core.Types.Pattern::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.Pattern::set_UnlessDefined (bool 'value') 
-	}
-	.property instance bool Enabled ()
+	.property instance string Name ()
 	{
-		.get instance default bool NAnt.Core.Types.Pattern::get_Enabled () 
+		.get instance default string NAnt.Core.Attributes.ElementNameAttribute::get_Name () 
+		.set instance default void NAnt.Core.Attributes.ElementNameAttribute::set_Name (string 'value') 
 	}
-  } // end of class NAnt.Core.Types.Pattern
+  } // end of class NAnt.Core.Attributes.ElementNameAttribute
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Attributes
 {
-  .class public auto ansi beforefieldinit XsltParameter
-  	extends NAnt.Core.Element
+  .class public auto ansi sealed beforefieldinit FunctionAttribute
+  	extends [mscorlib]System.Attribute
   {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
-		01 00 0D 78 73 6C 74 70 61 72 61 6D 65 74 65 72   // ...xsltparameter
-		00 00                                           ) // ..
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 40 00 00 00 02 00 54 02 09 49 6E 68 65 72   // ..@.....T..Inher
+		69 74 65 64 00 54 02 0D 41 6C 6C 6F 77 4D 75 6C   // ited.T..AllowMul
+		74 69 70 6C 65 00                               ) // tiple.
 
     .field  private  string _name
-    .field  private  string _namespaceUri
-    .field  private  string _value
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
 
-    // method line 508
+    // method line 422
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (string name)  cil managed 
     {
-        // Method begins at RVA 0xa0a4
-	// Code size 48 (0x30)
-	.maxstack 8
+        // Method begins at RVA 0xaa88
+	// Code size 67 (0x43)
+	.maxstack 3
 	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld string [mscorlib]System.String::Empty
-	IL_0006:  stfld string NAnt.Core.Types.XsltParameter::_name
-	IL_000b:  ldarg.0 
-	IL_000c:  ldsfld string [mscorlib]System.String::Empty
-	IL_0011:  stfld string NAnt.Core.Types.XsltParameter::_namespaceUri
-	IL_0016:  ldarg.0 
-	IL_0017:  ldsfld string [mscorlib]System.String::Empty
-	IL_001c:  stfld string NAnt.Core.Types.XsltParameter::_value
-	IL_0021:  ldarg.0 
-	IL_0022:  ldc.i4.1 
-	IL_0023:  stfld bool NAnt.Core.Types.XsltParameter::_ifDefined
-	IL_0028:  ldarg.0 
-	IL_0029:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_002e:  nop 
-	IL_002f:  ret 
-    } // end of method XsltParameter::.ctor
-
-    // method line 509
-    .method public hidebysig specialname 
-           instance default string get_ParameterName ()  cil managed 
-    {
-        // Method begins at RVA 0xa0d8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.XsltParameter::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  brtrue IL_0019
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltParameter::get_ParameterName
+	IL_000d:  nop 
+	IL_000e:  ldstr "name"
+	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0018:  throw 
+	IL_0019:  ldarg.1 
+	IL_001a:  callvirt instance string string::Trim()
+	IL_001f:  callvirt instance int32 string::get_Length()
+	IL_0024:  brtrue IL_003b
 
-    // method line 510
-    .method public hidebysig specialname 
-           instance default void set_ParameterName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xa0f3
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.XsltParameter::_name
-	IL_0008:  ret 
-    } // end of method XsltParameter::set_ParameterName
+	IL_0029:  nop 
+	IL_002a:  ldstr "name"
+	IL_002f:  ldarg.1 
+	IL_0030:  ldstr "A zero-length string is not an allowed value."
+	IL_0035:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
+	IL_003a:  throw 
+	IL_003b:  ldarg.0 
+	IL_003c:  ldarg.1 
+	IL_003d:  stfld string NAnt.Core.Attributes.FunctionAttribute::_name
+	IL_0042:  ret 
+    } // end of method FunctionAttribute::.ctor
 
-    // method line 511
+    // method line 423
     .method public hidebysig specialname 
-           instance default string get_NamespaceUri ()  cil managed 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0xa100
+        // Method begins at RVA 0xaad8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.XsltParameter::_namespaceUri
+	IL_0002:  ldfld string NAnt.Core.Attributes.FunctionAttribute::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XsltParameter::get_NamespaceUri
+    } // end of method FunctionAttribute::get_Name
 
-    // method line 512
+    // method line 424
     .method public hidebysig specialname 
-           instance default void set_NamespaceUri (string 'value')  cil managed 
+           instance default void set_Name (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa11b
+        // Method begins at RVA 0xaaf3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.XsltParameter::_namespaceUri
+	IL_0003:  stfld string NAnt.Core.Attributes.FunctionAttribute::_name
 	IL_0008:  ret 
-    } // end of method XsltParameter::set_NamespaceUri
+    } // end of method FunctionAttribute::set_Name
 
-    // method line 513
-    .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
-    {
-        // Method begins at RVA 0xa128
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.XsltParameter::_value
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.Core.Attributes.FunctionAttribute::get_Name () 
+		.set instance default void NAnt.Core.Attributes.FunctionAttribute::set_Name (string 'value') 
+	}
+  } // end of class NAnt.Core.Attributes.FunctionAttribute
+}
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltParameter::get_Value
+.namespace NAnt.Core.Attributes
+{
+  .class public auto ansi sealed LocationType
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Core.Attributes.LocationType FrameworkDir = int32(0x00000000)
+    .field public static literal  valuetype NAnt.Core.Attributes.LocationType FrameworkSdkDir = int32(0x00000001)
 
-    // method line 514
-    .method public hidebysig specialname 
-           instance default void set_Value (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xa143
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.XsltParameter::_value
-	IL_0008:  ret 
-    } // end of method XsltParameter::set_Value
+  } // end of class NAnt.Core.Attributes.LocationType
+}
 
-    // method line 515
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0xa150
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.XsltParameter::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+.namespace NAnt.Core.Attributes
+{
+  .class public auto ansi beforefieldinit ProgramLocationAttribute
+  	extends [mscorlib]System.Attribute
+  {
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 04 00 00 00 02 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 00 54 02 0D 41 6C 6C 6F 77 4D 75 6C   // ited.T..AllowMul
+		74 69 70 6C 65 00                               ) // tiple.
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XsltParameter::get_IfDefined
+    .field  private  valuetype NAnt.Core.Attributes.LocationType _locationType
 
-    // method line 516
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    // method line 425
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.Core.Attributes.LocationType 'type')  cil managed 
     {
-        // Method begins at RVA 0xa16b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xaafd
+	// Code size 15 (0xf)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.XsltParameter::_ifDefined
-	IL_0008:  ret 
-    } // end of method XsltParameter::set_IfDefined
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Attributes.ProgramLocationAttribute::set_LocationType(valuetype NAnt.Core.Attributes.LocationType)
+	IL_000e:  ret 
+    } // end of method ProgramLocationAttribute::.ctor
 
-    // method line 517
+    // method line 426
     .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+           instance default valuetype NAnt.Core.Attributes.LocationType get_LocationType ()  cil managed 
     {
-        // Method begins at RVA 0xa178
+        // Method begins at RVA 0xab10
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype NAnt.Core.Attributes.LocationType	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.XsltParameter::_unlessDefined
+	IL_0002:  ldfld valuetype NAnt.Core.Attributes.LocationType NAnt.Core.Attributes.ProgramLocationAttribute::_locationType
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XsltParameter::get_UnlessDefined
+    } // end of method ProgramLocationAttribute::get_LocationType
 
-    // method line 518
+    // method line 427
     .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+           instance default void set_LocationType (valuetype NAnt.Core.Attributes.LocationType 'value')  cil managed 
     {
-        // Method begins at RVA 0xa193
+        // Method begins at RVA 0xab2b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.XsltParameter::_unlessDefined
+	IL_0003:  stfld valuetype NAnt.Core.Attributes.LocationType NAnt.Core.Attributes.ProgramLocationAttribute::_locationType
 	IL_0008:  ret 
-    } // end of method XsltParameter::set_UnlessDefined
-
-	.property instance string ParameterName ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.Core.Types.XsltParameter::get_ParameterName () 
-		.set instance default void NAnt.Core.Types.XsltParameter::set_ParameterName (string 'value') 
-	}
-	.property instance string NamespaceUri ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 6E 61 6D 65 73 70 61 63 65 75 72 69 00   // ...namespaceuri.
-		00                                              ) // .
-
-		.get instance default string NAnt.Core.Types.XsltParameter::get_NamespaceUri () 
-		.set instance default void NAnt.Core.Types.XsltParameter::set_NamespaceUri (string 'value') 
-	}
-	.property instance string Value ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 05 76 61 6C 75 65 01 00 54 02 08 52 65 71   // ...value..T..Req
-		75 69 72 65 64 01                               ) // uired.
-
-		.get instance default string NAnt.Core.Types.XsltParameter::get_Value () 
-		.set instance default void NAnt.Core.Types.XsltParameter::set_Value (string 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    } // end of method ProgramLocationAttribute::set_LocationType
 
-		.get instance default bool NAnt.Core.Types.XsltParameter::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.XsltParameter::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
+	.property instance valuetype NAnt.Core.Attributes.LocationType LocationType ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.XsltParameter::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.XsltParameter::set_UnlessDefined (bool 'value') 
+		.get instance default valuetype NAnt.Core.Attributes.LocationType NAnt.Core.Attributes.ProgramLocationAttribute::get_LocationType () 
+		.set instance default void NAnt.Core.Attributes.ProgramLocationAttribute::set_LocationType (valuetype NAnt.Core.Attributes.LocationType 'value') 
 	}
-  } // end of class NAnt.Core.Types.XsltParameter
+  } // end of class NAnt.Core.Attributes.ProgramLocationAttribute
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Attributes
 {
-  .class public auto ansi beforefieldinit XmlNamespace
-  	extends NAnt.Core.Element
+  .class public auto ansi abstract beforefieldinit BuildAttributeAttribute
+  	extends [mscorlib]System.Attribute
   {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 09 6E 61 6D 65 73 70 61 63 65 00 00 ) // ...namespace..
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 01                                  ) // ited.
 
-    .field  private  string _prefix
-    .field  private  string _uri
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+    .field  private  string _name
+    .field  private  bool _required
+    .field  private  bool _expandProperties
+    .field  private  bool _processXml
 
-    // method line 519
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 428
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
     {
-        // Method begins at RVA 0xa19d
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xa5c5
+	// Code size 29 (0x1d)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.XmlNamespace::_ifDefined
+	IL_0002:  stfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_expandProperties
 	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  ret 
-    } // end of method XmlNamespace::.ctor
+	IL_0008:  ldc.i4.1 
+	IL_0009:  stfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_processXml
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance void class [mscorlib]System.Attribute::'.ctor'()
+	IL_0014:  nop 
+	IL_0015:  ldarg.0 
+	IL_0016:  ldarg.1 
+	IL_0017:  call instance void class NAnt.Core.Attributes.BuildAttributeAttribute::set_Name(string)
+	IL_001c:  ret 
+    } // end of method BuildAttributeAttribute::.ctor
 
-    // method line 520
+    // method line 429
     .method public hidebysig specialname 
-           instance default string get_Prefix ()  cil managed 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0xa1ac
+        // Method begins at RVA 0xa5e4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.XmlNamespace::_prefix
+	IL_0002:  ldfld string NAnt.Core.Attributes.BuildAttributeAttribute::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XmlNamespace::get_Prefix
+    } // end of method BuildAttributeAttribute::get_Name
 
-    // method line 521
+    // method line 430
     .method public hidebysig specialname 
-           instance default void set_Prefix (string 'value')  cil managed 
+           instance default void set_Name (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xa1c7
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0xa600
+	// Code size 66 (0x42)
+	.maxstack 3
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.XmlNamespace::_prefix
-	IL_0008:  ret 
-    } // end of method XmlNamespace::set_Prefix
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-    // method line 522
+	IL_0007:  nop 
+	IL_0008:  ldstr "name"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldarg.1 
+	IL_0015:  callvirt instance string string::Trim()
+	IL_001a:  stfld string NAnt.Core.Attributes.BuildAttributeAttribute::_name
+	IL_001f:  ldarg.0 
+	IL_0020:  ldfld string NAnt.Core.Attributes.BuildAttributeAttribute::_name
+	IL_0025:  callvirt instance int32 string::get_Length()
+	IL_002a:  brtrue IL_0041
+
+	IL_002f:  nop 
+	IL_0030:  ldstr "name"
+	IL_0035:  ldarg.1 
+	IL_0036:  ldstr "A zero-length string is not an allowed value."
+	IL_003b:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
+	IL_0040:  throw 
+	IL_0041:  ret 
+    } // end of method BuildAttributeAttribute::set_Name
+
+    // method line 431
     .method public hidebysig specialname 
-           instance default string get_Uri ()  cil managed 
+           instance default bool get_Required ()  cil managed 
     {
-        // Method begins at RVA 0xa1d4
+        // Method begins at RVA 0xa650
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.XmlNamespace::_uri
+	IL_0002:  ldfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_required
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XmlNamespace::get_Uri
+    } // end of method BuildAttributeAttribute::get_Required
 
-    // method line 523
+    // method line 432
     .method public hidebysig specialname 
-           instance default void set_Uri (string 'value')  cil managed 
+           instance default void set_Required (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xa1ef
+        // Method begins at RVA 0xa66b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.XmlNamespace::_uri
+	IL_0003:  stfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_required
 	IL_0008:  ret 
-    } // end of method XmlNamespace::set_Uri
+    } // end of method BuildAttributeAttribute::set_Required
 
-    // method line 524
+    // method line 433
     .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+           instance default bool get_ExpandProperties ()  cil managed 
     {
-        // Method begins at RVA 0xa1fc
+        // Method begins at RVA 0xa678
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.XmlNamespace::_ifDefined
+	IL_0002:  ldfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_expandProperties
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XmlNamespace::get_IfDefined
+    } // end of method BuildAttributeAttribute::get_ExpandProperties
 
-    // method line 525
+    // method line 434
     .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+           instance default void set_ExpandProperties (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xa217
+        // Method begins at RVA 0xa693
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.XmlNamespace::_ifDefined
+	IL_0003:  stfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_expandProperties
 	IL_0008:  ret 
-    } // end of method XmlNamespace::set_IfDefined
+    } // end of method BuildAttributeAttribute::set_ExpandProperties
 
-    // method line 526
+    // method line 435
     .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+           instance default bool get_ProcessXml ()  cil managed 
     {
-        // Method begins at RVA 0xa224
+        // Method begins at RVA 0xa6a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.XmlNamespace::_unlessDefined
+	IL_0002:  ldfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_processXml
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XmlNamespace::get_UnlessDefined
+    } // end of method BuildAttributeAttribute::get_ProcessXml
 
-    // method line 527
+    // method line 436
     .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+           instance default void set_ProcessXml (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xa23f
+        // Method begins at RVA 0xa6bb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.XmlNamespace::_unlessDefined
+	IL_0003:  stfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_processXml
 	IL_0008:  ret 
-    } // end of method XmlNamespace::set_UnlessDefined
+    } // end of method BuildAttributeAttribute::set_ProcessXml
 
-	.property instance string Prefix ()
+	.property instance string Name ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 70 72 65 66 69 78 01 00 54 02 08 52 65   // ...prefix..T..Re
-		71 75 69 72 65 64 01                            ) // quired.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 01                                           ) // y.
-
-		.get instance default string NAnt.Core.Types.XmlNamespace::get_Prefix () 
-		.set instance default void NAnt.Core.Types.XmlNamespace::set_Prefix (string 'value') 
+		.get instance default string NAnt.Core.Attributes.BuildAttributeAttribute::get_Name () 
+		.set instance default void NAnt.Core.Attributes.BuildAttributeAttribute::set_Name (string 'value') 
 	}
-	.property instance string Uri ()
+	.property instance bool Required ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 03 75 72 69 01 00 54 02 08 52 65 71 75 69   // ...uri..T..Requi
-		72 65 64 01                                     ) // red.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 01                                           ) // y.
-
-		.get instance default string NAnt.Core.Types.XmlNamespace::get_Uri () 
-		.set instance default void NAnt.Core.Types.XmlNamespace::set_Uri (string 'value') 
+		.get instance default bool NAnt.Core.Attributes.BuildAttributeAttribute::get_Required () 
+		.set instance default void NAnt.Core.Attributes.BuildAttributeAttribute::set_Required (bool 'value') 
 	}
-	.property instance bool IfDefined ()
+	.property instance bool ExpandProperties ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.XmlNamespace::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.XmlNamespace::set_IfDefined (bool 'value') 
+		.get instance default bool NAnt.Core.Attributes.BuildAttributeAttribute::get_ExpandProperties () 
+		.set instance default void NAnt.Core.Attributes.BuildAttributeAttribute::set_ExpandProperties (bool 'value') 
 	}
-	.property instance bool UnlessDefined ()
+	.property instance bool ProcessXml ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Types.XmlNamespace::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.XmlNamespace::set_UnlessDefined (bool 'value') 
+		.get instance default bool NAnt.Core.Attributes.BuildAttributeAttribute::get_ProcessXml () 
+		.set instance default void NAnt.Core.Attributes.BuildAttributeAttribute::set_ProcessXml (bool 'value') 
 	}
-  } // end of class NAnt.Core.Types.XmlNamespace
+  } // end of class NAnt.Core.Attributes.BuildAttributeAttribute
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Attributes
 {
-  .class public auto ansi beforefieldinit DirSet
-  	extends NAnt.Core.Types.FileSet
-  	implements [mscorlib]System.ICloneable  {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 06 64 69 72 73 65 74 00 00 ) // ...dirset..
-
+  .class public auto ansi beforefieldinit BuildElementArrayAttribute
+  	extends NAnt.Core.Attributes.BuildElementAttribute
+  {
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 01                                  ) // ited.
 
-    // method line 528
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xa249
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method DirSet::.ctor
+    .field  private  class [mscorlib]System.Type _elementType
 
-    // method line 529
+    // method line 437
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.FileSet fs)  cil managed 
+           instance default void '.ctor' (string name)  cil managed 
     {
-        // Method begins at RVA 0xa252
+        // Method begins at RVA 0xa6d9
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class NAnt.Core.Types.FileSet::'.ctor'(class NAnt.Core.Types.FileSet)
+	IL_0002:  call instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string)
 	IL_0007:  nop 
 	IL_0008:  ret 
-    } // end of method DirSet::.ctor
+    } // end of method BuildElementArrayAttribute::.ctor
 
-  } // end of class NAnt.Core.Types.DirSet
+    // method line 438
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Type get_ElementType ()  cil managed 
+    {
+        // Method begins at RVA 0xa6e4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Type	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.Core.Attributes.BuildElementArrayAttribute::_elementType
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildElementArrayAttribute::get_ElementType
+
+    // method line 439
+    .method public hidebysig specialname 
+           instance default void set_ElementType (class [mscorlib]System.Type 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa6ff
+	// Code size 33 (0x21)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldnull 
+	IL_0003:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0008:  brfalse IL_0019
+
+	IL_000d:  nop 
+	IL_000e:  ldstr "ElementType"
+	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0018:  throw 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldarg.1 
+	IL_001b:  stfld class [mscorlib]System.Type NAnt.Core.Attributes.BuildElementArrayAttribute::_elementType
+	IL_0020:  ret 
+    } // end of method BuildElementArrayAttribute::set_ElementType
+
+	.property instance class [mscorlib]System.Type ElementType ()
+	{
+		.get instance default class [mscorlib]System.Type NAnt.Core.Attributes.BuildElementArrayAttribute::get_ElementType () 
+		.set instance default void NAnt.Core.Attributes.BuildElementArrayAttribute::set_ElementType (class [mscorlib]System.Type 'value') 
+	}
+  } // end of class NAnt.Core.Attributes.BuildElementArrayAttribute
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi serializable beforefieldinit XsltParameterCollection
+  .class public auto ansi serializable beforefieldinit FilterCollection
   	extends [mscorlib]System.Collections.CollectionBase
   {
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 530
+    // method line 440
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xa25c
+        // Method begins at RVA 0xab35
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
 	IL_0006:  nop 
 	IL_0007:  ret 
-    } // end of method XsltParameterCollection::.ctor
+    } // end of method FilterCollection::.ctor
 
-    // method line 531
+    // method line 441
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XsltParameterCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Filters.FilterCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0xa265
+        // Method begins at RVA 0xab3e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -15525,15 +15631,15 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Types.XsltParameterCollection::AddRange(class NAnt.Core.Types.XsltParameterCollection)
+	IL_0009:  call instance void class NAnt.Core.Filters.FilterCollection::AddRange(class NAnt.Core.Filters.FilterCollection)
 	IL_000e:  ret 
-    } // end of method XsltParameterCollection::.ctor
+    } // end of method FilterCollection::.ctor
 
-    // method line 532
+    // method line 442
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XsltParameter[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Filters.Filter[] 'value')  cil managed 
     {
-        // Method begins at RVA 0xa275
+        // Method begins at RVA 0xab4e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -15541,37 +15647,37 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Types.XsltParameterCollection::AddRange(class NAnt.Core.Types.XsltParameter[])
+	IL_0009:  call instance void class NAnt.Core.Filters.FilterCollection::AddRange(class NAnt.Core.Filters.Filter[])
 	IL_000e:  ret 
-    } // end of method XsltParameterCollection::.ctor
+    } // end of method FilterCollection::.ctor
 
-    // method line 533
+    // method line 443
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XsltParameter get_Item (int32 index)  cil managed 
+           instance default class NAnt.Core.Filters.Filter get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0xa288
+        // Method begins at RVA 0xab60
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.XsltParameter	V_0)
+		class NAnt.Core.Filters.Filter	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.Core.Types.XsltParameter
+	IL_000d:  castclass NAnt.Core.Filters.Filter
 	IL_0012:  stloc.0 
 	IL_0013:  br IL_0018
 
 	IL_0018:  ldloc.0 
 	IL_0019:  ret 
-    } // end of method XsltParameterCollection::get_Item
+    } // end of method FilterCollection::get_Item
 
-    // method line 534
+    // method line 444
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.XsltParameter 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.Core.Filters.Filter 'value')  cil managed 
     {
-        // Method begins at RVA 0xa2ae
+        // Method begins at RVA 0xab86
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -15581,82 +15687,13 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
 	IL_000e:  ret 
-    } // end of method XsltParameterCollection::set_Item
-
-    // method line 535
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XsltParameter get_Item (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xa2c0
-	// Code size 111 (0x6f)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Types.XsltParameter	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Types.XsltParameter	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0066
-
-	IL_0007:  nop 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0014:  stloc.1 
-	.try { // 0
-	  IL_0015:  br IL_0041
-
-	  IL_001a:  ldloc.1 
-	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.Core.Types.XsltParameter
-	  IL_0025:  stloc.0 
-	  IL_0026:  nop 
-	  IL_0027:  ldloc.0 
-	  IL_0028:  callvirt instance string class NAnt.Core.Element::get_Name()
-	  IL_002d:  ldarg.1 
-	  IL_002e:  call bool string::op_Equality(string, string)
-	  IL_0033:  brfalse IL_0040
-
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  stloc.2 
-	  IL_003b:  leave IL_006d
-
-	  IL_0040:  nop 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_001a
-
-	  IL_004c:  leave IL_0065
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0051:  ldloc.1 
-	  IL_0052:  isinst [mscorlib]System.IDisposable
-	  IL_0057:  dup 
-	  IL_0058:  stloc.3 
-	  IL_0059:  brfalse IL_0064
-
-	  IL_005e:  ldloc.3 
-	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0064:  endfinally 
-	} // end handler 0
-	IL_0065:  nop 
-	IL_0066:  ldnull 
-	IL_0067:  stloc.2 
-	IL_0068:  br IL_006d
-
-	IL_006d:  ldloc.2 
-	IL_006e:  ret 
-    } // end of method XsltParameterCollection::get_Item
+    } // end of method FilterCollection::set_Item
 
-    // method line 536
+    // method line 445
     .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.XsltParameter item)  cil managed 
+           instance default int32 Add (class NAnt.Core.Filters.Filter item)  cil managed 
     {
-        // Method begins at RVA 0xa34c
+        // Method begins at RVA 0xab98
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -15671,13 +15708,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method XsltParameterCollection::Add
+    } // end of method FilterCollection::Add
 
-    // method line 537
+    // method line 446
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.XsltParameter[] items)  cil managed 
+           instance default void AddRange (class NAnt.Core.Filters.Filter[] items)  cil managed 
     {
-        // Method begins at RVA 0xa370
+        // Method begins at RVA 0xabbc
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -15692,7 +15729,7 @@
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
 	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Core.Types.XsltParameterCollection::Add(class NAnt.Core.Types.XsltParameter)
+	IL_000d:  call instance int32 class NAnt.Core.Filters.FilterCollection::Add(class NAnt.Core.Filters.Filter)
 	IL_0012:  pop 
 	IL_0013:  nop 
 	IL_0014:  ldloc.0 
@@ -15706,13 +15743,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method XsltParameterCollection::AddRange
+    } // end of method FilterCollection::AddRange
 
-    // method line 538
+    // method line 447
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.XsltParameterCollection items)  cil managed 
+           instance default void AddRange (class NAnt.Core.Filters.FilterCollection items)  cil managed 
     {
-        // Method begins at RVA 0xa3a0
+        // Method begins at RVA 0xabec
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -15726,8 +15763,8 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Core.Types.XsltParameter class NAnt.Core.Types.XsltParameterCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Core.Types.XsltParameterCollection::Add(class NAnt.Core.Types.XsltParameter)
+	IL_000c:  callvirt instance class NAnt.Core.Filters.Filter class NAnt.Core.Filters.FilterCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Core.Filters.FilterCollection::Add(class NAnt.Core.Filters.Filter)
 	IL_0016:  pop 
 	IL_0017:  nop 
 	IL_0018:  ldloc.0 
@@ -15740,13 +15777,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method XsltParameterCollection::AddRange
+    } // end of method FilterCollection::AddRange
 
-    // method line 539
+    // method line 448
     .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.XsltParameter item)  cil managed 
+           instance default bool Contains (class NAnt.Core.Filters.Filter item)  cil managed 
     {
-        // Method begins at RVA 0xa3d8
+        // Method begins at RVA 0xac24
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -15761,37 +15798,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method XsltParameterCollection::Contains
-
-    // method line 540
-    .method public hidebysig 
-           instance default bool Contains (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xa3fc
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.Types.XsltParameter class NAnt.Core.Types.XsltParameterCollection::get_Item(string)
-	IL_0008:  ldnull 
-	IL_0009:  ceq 
-	IL_000b:  ldc.i4.0 
-	IL_000c:  ceq 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0014
-
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method XsltParameterCollection::Contains
+    } // end of method FilterCollection::Contains
 
-    // method line 541
+    // method line 449
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.XsltParameter[] 'array', int32 index)  cil managed 
+           instance default void CopyTo (class NAnt.Core.Filters.Filter[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0xa41e
+        // Method begins at RVA 0xac45
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -15801,13 +15814,13 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
 	IL_000e:  ret 
-    } // end of method XsltParameterCollection::CopyTo
+    } // end of method FilterCollection::CopyTo
 
-    // method line 542
+    // method line 450
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.XsltParameter item)  cil managed 
+           instance default int32 IndexOf (class NAnt.Core.Filters.Filter item)  cil managed 
     {
-        // Method begins at RVA 0xa430
+        // Method begins at RVA 0xac58
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -15822,13 +15835,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method XsltParameterCollection::IndexOf
+    } // end of method FilterCollection::IndexOf
 
-    // method line 543
+    // method line 451
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.XsltParameter item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.Core.Filters.Filter item)  cil managed 
     {
-        // Method begins at RVA 0xa451
+        // Method begins at RVA 0xac79
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -15838,32 +15851,32 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
 	IL_000e:  ret 
-    } // end of method XsltParameterCollection::Insert
+    } // end of method FilterCollection::Insert
 
-    // method line 544
+    // method line 452
     .method public hidebysig 
-           instance default class NAnt.Core.Types.XsltParameterEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.Core.Filters.FilterEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xa464
+        // Method begins at RVA 0xac8c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.XsltParameterEnumerator	V_0)
+		class NAnt.Core.Filters.FilterEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.Types.XsltParameterEnumerator::'.ctor'(class NAnt.Core.Types.XsltParameterCollection)
+	IL_0002:  newobj instance void class NAnt.Core.Filters.FilterEnumerator::'.ctor'(class NAnt.Core.Filters.FilterCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XsltParameterCollection::GetEnumerator
+    } // end of method FilterCollection::GetEnumerator
 
-    // method line 545
+    // method line 453
     .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.XsltParameter item)  cil managed 
+           instance default void Remove (class NAnt.Core.Filters.Filter item)  cil managed 
     {
-        // Method begins at RVA 0xa47f
+        // Method begins at RVA 0xaca7
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -15872,32 +15885,28 @@
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method XsltParameterCollection::Remove
+    } // end of method FilterCollection::Remove
 
-	.property instance class NAnt.Core.Types.XsltParameter Item (int32)
-	{
-		.get instance default class NAnt.Core.Types.XsltParameter NAnt.Core.Types.XsltParameterCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Core.Types.XsltParameterCollection::set_Item (int32 index, class NAnt.Core.Types.XsltParameter 'value') 
-	}
-	.property instance class NAnt.Core.Types.XsltParameter Item (string)
+	.property instance class NAnt.Core.Filters.Filter Item (int32)
 	{
-		.get instance default class NAnt.Core.Types.XsltParameter NAnt.Core.Types.XsltParameterCollection::get_Item (string 'value') 
+		.get instance default class NAnt.Core.Filters.Filter NAnt.Core.Filters.FilterCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Core.Filters.FilterCollection::set_Item (int32 index, class NAnt.Core.Filters.Filter 'value') 
 	}
-  } // end of class NAnt.Core.Types.XsltParameterCollection
+  } // end of class NAnt.Core.Filters.FilterCollection
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi beforefieldinit XsltParameterEnumerator
+  .class public auto ansi beforefieldinit FilterEnumerator
   	extends [mscorlib]System.Object
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 546
+    // method line 454
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.XsltParameterCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Filters.FilterCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0xa490
+        // Method begins at RVA 0xacb8
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -15910,36 +15919,36 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldloc.0 
 	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltParameterEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method XsltParameterEnumerator::.ctor
+    } // end of method FilterEnumerator::.ctor
 
-    // method line 547
+    // method line 455
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XsltParameter get_Current ()  cil managed 
+           instance default class NAnt.Core.Filters.Filter get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xa4b4
+        // Method begins at RVA 0xacdc
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.XsltParameter	V_0)
+		class NAnt.Core.Filters.Filter	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltParameterEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.Types.XsltParameter
+	IL_000c:  castclass NAnt.Core.Filters.Filter
 	IL_0011:  stloc.0 
 	IL_0012:  br IL_0017
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method XsltParameterEnumerator::get_Current
+    } // end of method FilterEnumerator::get_Current
 
-    // method line 548
+    // method line 456
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xa4dc
+        // Method begins at RVA 0xad04
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -15947,40 +15956,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltParameterEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method XsltParameterEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method FilterEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 549
+    // method line 457
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xa4fc
+        // Method begins at RVA 0xad24
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltParameterEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method XsltParameterEnumerator::MoveNext
+    } // end of method FilterEnumerator::MoveNext
 
-    // method line 550
+    // method line 458
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xa51c
+        // Method begins at RVA 0xad44
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -15988,287 +15997,202 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltParameterEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method XsltParameterEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method FilterEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 551
+    // method line 459
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0xa53c
+        // Method begins at RVA 0xad64
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltParameterEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method XsltParameterEnumerator::Reset
+    } // end of method FilterEnumerator::Reset
 
-    // method line 552
+    // method line 460
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0xa54a
+        // Method begins at RVA 0xad72
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltParameterEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method XsltParameterEnumerator::System.Collections.IEnumerator.Reset
+    } // end of method FilterEnumerator::System.Collections.IEnumerator.Reset
 
 	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default object NAnt.Core.Types.XsltParameterEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.Core.Filters.FilterEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.Core.Types.XsltParameter Current ()
+	.property instance class NAnt.Core.Filters.Filter Current ()
 	{
-		.get instance default class NAnt.Core.Types.XsltParameter NAnt.Core.Types.XsltParameterEnumerator::get_Current () 
+		.get instance default class NAnt.Core.Filters.Filter NAnt.Core.Filters.FilterEnumerator::get_Current () 
 	}
-  } // end of class NAnt.Core.Types.XsltParameterEnumerator
+  } // end of class NAnt.Core.Filters.FilterEnumerator
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi beforefieldinit Token
-  	extends NAnt.Core.Element
+  .class public auto ansi abstract beforefieldinit Filter
+  	extends NAnt.Core.Filters.ChainableReader
   {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 05 74 6F 6B 65 6E 00 00 ) // ...token..
-
-    .field  private  string _key
-    .field  private  string _value
     .field  private  bool _ifDefined
     .field  private  bool _unlessDefined
 
-    // method line 553
-    .method public hidebysig specialname rtspecialname 
+    // method line 461
+    .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xa558
+        // Method begins at RVA 0xaed1
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.Token::_ifDefined
+	IL_0002:  stfld bool NAnt.Core.Filters.Filter::_ifDefined
 	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0008:  call instance void class NAnt.Core.Filters.ChainableReader::'.ctor'()
 	IL_000d:  ret 
-    } // end of method Token::.ctor
-
-    // method line 554
-    .method public hidebysig specialname 
-           instance default string get_Key ()  cil managed 
-    {
-        // Method begins at RVA 0xa568
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Token::_key
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Token::get_Key
-
-    // method line 555
-    .method public hidebysig specialname 
-           instance default void set_Key (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xa583
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.Token::_key
-	IL_0008:  ret 
-    } // end of method Token::set_Key
-
-    // method line 556
-    .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
-    {
-        // Method begins at RVA 0xa590
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Token::_value
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Token::get_Value
-
-    // method line 557
-    .method public hidebysig specialname 
-           instance default void set_Value (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xa5ab
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.Token::_value
-	IL_0008:  ret 
-    } // end of method Token::set_Value
+    } // end of method Filter::.ctor
 
-    // method line 558
+    // method line 462
     .method public hidebysig specialname 
            instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0xa5b8
+        // Method begins at RVA 0xaee0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Token::_ifDefined
+	IL_0002:  ldfld bool NAnt.Core.Filters.Filter::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Token::get_IfDefined
+    } // end of method Filter::get_IfDefined
 
-    // method line 559
+    // method line 463
     .method public hidebysig specialname 
            instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xa5d3
+        // Method begins at RVA 0xaefb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Token::_ifDefined
+	IL_0003:  stfld bool NAnt.Core.Filters.Filter::_ifDefined
 	IL_0008:  ret 
-    } // end of method Token::set_IfDefined
+    } // end of method Filter::set_IfDefined
 
-    // method line 560
+    // method line 464
     .method public hidebysig specialname 
            instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0xa5e0
+        // Method begins at RVA 0xaf08
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Token::_unlessDefined
+	IL_0002:  ldfld bool NAnt.Core.Filters.Filter::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Token::get_UnlessDefined
+    } // end of method Filter::get_UnlessDefined
 
-    // method line 561
+    // method line 465
     .method public hidebysig specialname 
            instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xa5fb
+        // Method begins at RVA 0xaf23
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Token::_unlessDefined
+	IL_0003:  stfld bool NAnt.Core.Filters.Filter::_unlessDefined
 	IL_0008:  ret 
-    } // end of method Token::set_UnlessDefined
-
-	.property instance string Key ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 03 6B 65 79 01 00 54 02 08 52 65 71 75 69   // ...key..T..Requi
-		72 65 64 01                                     ) // red.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+    } // end of method Filter::set_UnlessDefined
 
-		.get instance default string NAnt.Core.Types.Token::get_Key () 
-		.set instance default void NAnt.Core.Types.Token::set_Key (string 'value') 
-	}
-	.property instance string Value ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 05 76 61 6C 75 65 01 00 54 02 08 52 65 71   // ...value..T..Req
-		75 69 72 65 64 01                               ) // uired.
+    // method line 466
+    .method public virtual hidebysig newslot 
+           instance default void InitializeFilter ()  cil managed 
+    {
+        // Method begins at RVA 0xaf2d
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method Filter::InitializeFilter
 
-		.get instance default string NAnt.Core.Types.Token::get_Value () 
-		.set instance default void NAnt.Core.Types.Token::set_Value (string 'value') 
-	}
 	.property instance bool IfDefined ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 02 69 66 01 00 54 02 08 52 65 71 75 69 72   // ...if..T..Requir
-		65 64 00                                        ) // ed.
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
 
 		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Core.Types.Token::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.Token::set_IfDefined (bool 'value') 
+		.get instance default bool NAnt.Core.Filters.Filter::get_IfDefined () 
+		.set instance default void NAnt.Core.Filters.Filter::set_IfDefined (bool 'value') 
 	}
 	.property instance bool UnlessDefined ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 75 6E 6C 65 73 73 01 00 54 02 08 52 65   // ...unless..T..Re
-		71 75 69 72 65 64 00                            ) // quired.
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
 
 		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Core.Types.Token::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.Token::set_UnlessDefined (bool 'value') 
+		.get instance default bool NAnt.Core.Filters.Filter::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Filters.Filter::set_UnlessDefined (bool 'value') 
 	}
-  } // end of class NAnt.Core.Types.Token
+  } // end of class NAnt.Core.Filters.Filter
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi serializable beforefieldinit OptionCollection
+  .class public auto ansi serializable beforefieldinit FilterBuilderCollection
   	extends [mscorlib]System.Collections.CollectionBase
   {
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 562
+    // method line 467
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xa605
+        // Method begins at RVA 0xaf30
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
 	IL_0006:  nop 
 	IL_0007:  ret 
-    } // end of method OptionCollection::.ctor
+    } // end of method FilterBuilderCollection::.ctor
 
-    // method line 563
+    // method line 468
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.OptionCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Filters.FilterBuilderCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0xa60e
+        // Method begins at RVA 0xaf39
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -16276,15 +16200,15 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Types.OptionCollection::AddRange(class NAnt.Core.Types.OptionCollection)
+	IL_0009:  call instance void class NAnt.Core.Filters.FilterBuilderCollection::AddRange(class NAnt.Core.Filters.FilterBuilderCollection)
 	IL_000e:  ret 
-    } // end of method OptionCollection::.ctor
+    } // end of method FilterBuilderCollection::.ctor
 
-    // method line 564
+    // method line 469
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.Option[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Filters.FilterBuilder[] 'value')  cil managed 
     {
-        // Method begins at RVA 0xa61e
+        // Method begins at RVA 0xaf49
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -16292,37 +16216,37 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Types.OptionCollection::AddRange(class NAnt.Core.Types.Option[])
+	IL_0009:  call instance void class NAnt.Core.Filters.FilterBuilderCollection::AddRange(class NAnt.Core.Filters.FilterBuilder[])
 	IL_000e:  ret 
-    } // end of method OptionCollection::.ctor
+    } // end of method FilterBuilderCollection::.ctor
 
-    // method line 565
+    // method line 470
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Option get_Item (int32 index)  cil managed 
+           instance default class NAnt.Core.Filters.FilterBuilder get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0xa630
+        // Method begins at RVA 0xaf5c
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.Option	V_0)
+		class NAnt.Core.Filters.FilterBuilder	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.Core.Types.Option
+	IL_000d:  castclass NAnt.Core.Filters.FilterBuilder
 	IL_0012:  stloc.0 
 	IL_0013:  br IL_0018
 
 	IL_0018:  ldloc.0 
 	IL_0019:  ret 
-    } // end of method OptionCollection::get_Item
+    } // end of method FilterBuilderCollection::get_Item
 
-    // method line 566
+    // method line 471
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.Option 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.Core.Filters.FilterBuilder 'value')  cil managed 
     {
-        // Method begins at RVA 0xa656
+        // Method begins at RVA 0xaf82
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16332,19 +16256,19 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
 	IL_000e:  ret 
-    } // end of method OptionCollection::set_Item
+    } // end of method FilterBuilderCollection::set_Item
 
-    // method line 567
+    // method line 472
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Option get_Item (string name)  cil managed 
+           instance default class NAnt.Core.Filters.FilterBuilder get_Item (string filterName)  cil managed 
     {
-        // Method begins at RVA 0xa668
+        // Method begins at RVA 0xaf94
 	// Code size 111 (0x6f)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.Option	V_0,
+		class NAnt.Core.Filters.FilterBuilder	V_0,
 		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Types.Option	V_2,
+		class NAnt.Core.Filters.FilterBuilder	V_2,
 		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
@@ -16361,12 +16285,12 @@
 
 	  IL_001a:  ldloc.1 
 	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.Core.Types.Option
+	  IL_0020:  castclass NAnt.Core.Filters.FilterBuilder
 	  IL_0025:  stloc.0 
 	  IL_0026:  nop 
 	  IL_0027:  ldarg.1 
 	  IL_0028:  ldloc.0 
-	  IL_0029:  callvirt instance string class NAnt.Core.Types.Option::get_OptionName()
+	  IL_0029:  callvirt instance string class NAnt.Core.Filters.FilterBuilder::get_FilterName()
 	  IL_002e:  callvirt instance bool string::Equals(string)
 	  IL_0033:  brfalse IL_0040
 
@@ -16401,13 +16325,13 @@
 
 	IL_006d:  ldloc.2 
 	IL_006e:  ret 
-    } // end of method OptionCollection::get_Item
+    } // end of method FilterBuilderCollection::get_Item
 
-    // method line 568
+    // method line 473
     .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.Option item)  cil managed 
+           instance default int32 Add (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
     {
-        // Method begins at RVA 0xa6f4
+        // Method begins at RVA 0xb020
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -16422,13 +16346,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method OptionCollection::Add
+    } // end of method FilterBuilderCollection::Add
 
-    // method line 569
+    // method line 474
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.Option[] items)  cil managed 
+           instance default void AddRange (class NAnt.Core.Filters.FilterBuilder[] items)  cil managed 
     {
-        // Method begins at RVA 0xa718
+        // Method begins at RVA 0xb044
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -16443,7 +16367,7 @@
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
 	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Core.Types.OptionCollection::Add(class NAnt.Core.Types.Option)
+	IL_000d:  call instance int32 class NAnt.Core.Filters.FilterBuilderCollection::Add(class NAnt.Core.Filters.FilterBuilder)
 	IL_0012:  pop 
 	IL_0013:  nop 
 	IL_0014:  ldloc.0 
@@ -16457,13 +16381,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method OptionCollection::AddRange
+    } // end of method FilterBuilderCollection::AddRange
 
-    // method line 570
+    // method line 475
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.OptionCollection items)  cil managed 
+           instance default void AddRange (class NAnt.Core.Filters.FilterBuilderCollection items)  cil managed 
     {
-        // Method begins at RVA 0xa748
+        // Method begins at RVA 0xb074
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -16477,8 +16401,8 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Core.Types.Option class NAnt.Core.Types.OptionCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Core.Types.OptionCollection::Add(class NAnt.Core.Types.Option)
+	IL_000c:  callvirt instance class NAnt.Core.Filters.FilterBuilder class NAnt.Core.Filters.FilterBuilderCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Core.Filters.FilterBuilderCollection::Add(class NAnt.Core.Filters.FilterBuilder)
 	IL_0016:  pop 
 	IL_0017:  nop 
 	IL_0018:  ldloc.0 
@@ -16491,13 +16415,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method OptionCollection::AddRange
+    } // end of method FilterBuilderCollection::AddRange
 
-    // method line 571
+    // method line 476
     .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.Option item)  cil managed 
+           instance default bool Contains (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
     {
-        // Method begins at RVA 0xa780
+        // Method begins at RVA 0xb0ac
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -16512,13 +16436,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method OptionCollection::Contains
+    } // end of method FilterBuilderCollection::Contains
 
-    // method line 572
+    // method line 477
     .method public hidebysig 
            instance default bool Contains (string taskName)  cil managed 
     {
-        // Method begins at RVA 0xa7a4
+        // Method begins at RVA 0xb0d0
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -16526,7 +16450,7 @@
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.Types.Option class NAnt.Core.Types.OptionCollection::get_Item(string)
+	IL_0003:  call instance class NAnt.Core.Filters.FilterBuilder class NAnt.Core.Filters.FilterBuilderCollection::get_Item(string)
 	IL_0008:  ldnull 
 	IL_0009:  ceq 
 	IL_000b:  ldc.i4.0 
@@ -16536,13 +16460,13 @@
 
 	IL_0014:  ldloc.0 
 	IL_0015:  ret 
-    } // end of method OptionCollection::Contains
+    } // end of method FilterBuilderCollection::Contains
 
-    // method line 573
+    // method line 478
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.Option[] 'array', int32 index)  cil managed 
+           instance default void CopyTo (class NAnt.Core.Filters.FilterBuilder[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0xa7c6
+        // Method begins at RVA 0xb0f2
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16552,13 +16476,13 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
 	IL_000e:  ret 
-    } // end of method OptionCollection::CopyTo
+    } // end of method FilterBuilderCollection::CopyTo
 
-    // method line 574
+    // method line 479
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.Option item)  cil managed 
+           instance default int32 IndexOf (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
     {
-        // Method begins at RVA 0xa7d8
+        // Method begins at RVA 0xb104
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -16573,13 +16497,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method OptionCollection::IndexOf
+    } // end of method FilterBuilderCollection::IndexOf
 
-    // method line 575
+    // method line 480
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.Option item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.Core.Filters.FilterBuilder item)  cil managed 
     {
-        // Method begins at RVA 0xa7f9
+        // Method begins at RVA 0xb125
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16589,32 +16513,32 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
 	IL_000e:  ret 
-    } // end of method OptionCollection::Insert
+    } // end of method FilterBuilderCollection::Insert
 
-    // method line 576
+    // method line 481
     .method public hidebysig 
-           instance default class NAnt.Core.Types.OptionEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.Core.Filters.FilterBuilderEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xa80c
+        // Method begins at RVA 0xb138
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.OptionEnumerator	V_0)
+		class NAnt.Core.Filters.FilterBuilderEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.Types.OptionEnumerator::'.ctor'(class NAnt.Core.Types.OptionCollection)
+	IL_0002:  newobj instance void class NAnt.Core.Filters.FilterBuilderEnumerator::'.ctor'(class NAnt.Core.Filters.FilterBuilderCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method OptionCollection::GetEnumerator
+    } // end of method FilterBuilderCollection::GetEnumerator
 
-    // method line 577
+    // method line 482
     .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.Option item)  cil managed 
+           instance default void Remove (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
     {
-        // Method begins at RVA 0xa827
+        // Method begins at RVA 0xb153
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16623,32 +16547,32 @@
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method OptionCollection::Remove
+    } // end of method FilterBuilderCollection::Remove
 
-	.property instance class NAnt.Core.Types.Option Item (int32)
+	.property instance class NAnt.Core.Filters.FilterBuilder Item (int32)
 	{
-		.get instance default class NAnt.Core.Types.Option NAnt.Core.Types.OptionCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Core.Types.OptionCollection::set_Item (int32 index, class NAnt.Core.Types.Option 'value') 
+		.get instance default class NAnt.Core.Filters.FilterBuilder NAnt.Core.Filters.FilterBuilderCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Core.Filters.FilterBuilderCollection::set_Item (int32 index, class NAnt.Core.Filters.FilterBuilder 'value') 
 	}
-	.property instance class NAnt.Core.Types.Option Item (string)
+	.property instance class NAnt.Core.Filters.FilterBuilder Item (string)
 	{
-		.get instance default class NAnt.Core.Types.Option NAnt.Core.Types.OptionCollection::get_Item (string name) 
+		.get instance default class NAnt.Core.Filters.FilterBuilder NAnt.Core.Filters.FilterBuilderCollection::get_Item (string filterName) 
 	}
-  } // end of class NAnt.Core.Types.OptionCollection
+  } // end of class NAnt.Core.Filters.FilterBuilderCollection
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi beforefieldinit OptionEnumerator
+  .class public auto ansi beforefieldinit FilterBuilderEnumerator
   	extends [mscorlib]System.Object
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 578
+    // method line 483
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.OptionCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Filters.FilterBuilderCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0xa838
+        // Method begins at RVA 0xb164
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -16661,36 +16585,36 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldloc.0 
 	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.OptionEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method OptionEnumerator::.ctor
+    } // end of method FilterBuilderEnumerator::.ctor
 
-    // method line 579
+    // method line 484
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Option get_Current ()  cil managed 
+           instance default class NAnt.Core.Filters.FilterBuilder get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xa85c
+        // Method begins at RVA 0xb188
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.Option	V_0)
+		class NAnt.Core.Filters.FilterBuilder	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.OptionEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.Types.Option
+	IL_000c:  castclass NAnt.Core.Filters.FilterBuilder
 	IL_0011:  stloc.0 
 	IL_0012:  br IL_0017
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method OptionEnumerator::get_Current
+    } // end of method FilterBuilderEnumerator::get_Current
 
-    // method line 580
+    // method line 485
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xa884
+        // Method begins at RVA 0xb1b0
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -16698,40 +16622,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.OptionEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method OptionEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method FilterBuilderEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 581
+    // method line 486
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xa8a4
+        // Method begins at RVA 0xb1d0
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.OptionEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method OptionEnumerator::MoveNext
+    } // end of method FilterBuilderEnumerator::MoveNext
 
-    // method line 582
+    // method line 487
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xa8c4
+        // Method begins at RVA 0xb1f0
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -16739,3036 +16663,3320 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.OptionEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method OptionEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method FilterBuilderEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 583
+    // method line 488
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0xa8e4
+        // Method begins at RVA 0xb210
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.OptionEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method OptionEnumerator::Reset
+    } // end of method FilterBuilderEnumerator::Reset
 
-    // method line 584
+    // method line 489
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0xa8f2
+        // Method begins at RVA 0xb21e
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.OptionEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method OptionEnumerator::System.Collections.IEnumerator.Reset
+    } // end of method FilterBuilderEnumerator::System.Collections.IEnumerator.Reset
 
 	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default object NAnt.Core.Types.OptionEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.Core.Filters.FilterBuilderEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.Core.Types.Option Current ()
+	.property instance class NAnt.Core.Filters.FilterBuilder Current ()
 	{
-		.get instance default class NAnt.Core.Types.Option NAnt.Core.Types.OptionEnumerator::get_Current () 
+		.get instance default class NAnt.Core.Filters.FilterBuilder NAnt.Core.Filters.FilterBuilderEnumerator::get_Current () 
 	}
-  } // end of class NAnt.Core.Types.OptionEnumerator
+  } // end of class NAnt.Core.Filters.FilterBuilderEnumerator
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi serializable beforefieldinit EnvironmentVariableCollection
-  	extends [mscorlib]System.Collections.CollectionBase
+  .class private auto ansi beforefieldinit PhysicalTextReader
+  	extends NAnt.Core.Filters.Filter
   {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
-
-
-    // method line 585
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xa900
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method EnvironmentVariableCollection::.ctor
-
-    // method line 586
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.EnvironmentVariableCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0xa909
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Types.EnvironmentVariableCollection::AddRange(class NAnt.Core.Types.EnvironmentVariableCollection)
-	IL_000e:  ret 
-    } // end of method EnvironmentVariableCollection::.ctor
 
-    // method line 587
+    // method line 490
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.EnvironmentVariable[] 'value')  cil managed 
+           instance default void '.ctor' (class [mscorlib]System.IO.TextReader textReader)  cil managed 
     {
-        // Method begins at RVA 0xa919
+        // Method begins at RVA 0xb22c
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0001:  call instance void class NAnt.Core.Filters.Filter::'.ctor'()
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Types.EnvironmentVariableCollection::AddRange(class NAnt.Core.Types.EnvironmentVariable[])
+	IL_0009:  call instance void class NAnt.Core.Filters.ChainableReader::Chain(class [mscorlib]System.IO.TextReader)
 	IL_000e:  ret 
-    } // end of method EnvironmentVariableCollection::.ctor
+    } // end of method PhysicalTextReader::.ctor
 
-    // method line 588
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.EnvironmentVariable get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0xa92c
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Types.EnvironmentVariable	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.Core.Types.EnvironmentVariable
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+  } // end of class NAnt.Core.Filters.PhysicalTextReader
+}
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method EnvironmentVariableCollection::get_Item
+.namespace NAnt.Core.Filters
+{
+  .class public auto ansi beforefieldinit FilterBuilder
+  	extends NAnt.Core.Extensibility.ExtensionBuilder
+  {
+    .field  private initonly  string _className
+    .field  private initonly  string _filterName
 
-    // method line 589
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.EnvironmentVariable 'value')  cil managed 
+    // method line 491
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly', string className)  cil managed 
     {
-        // Method begins at RVA 0xa952
+        // Method begins at RVA 0xb2ac
 	// Code size 15 (0xf)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call class NAnt.Core.Extensibility.ExtensionAssembly class NAnt.Core.Extensibility.ExtensionAssembly::Create(class [mscorlib]System.Reflection.Assembly)
+	IL_0007:  ldarg.2 
+	IL_0008:  call instance void class NAnt.Core.Filters.FilterBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, string)
+	IL_000d:  nop 
 	IL_000e:  ret 
-    } // end of method EnvironmentVariableCollection::set_Item
+    } // end of method FilterBuilder::.ctor
 
-    // method line 590
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.EnvironmentVariable get_Item (string name)  cil managed 
+    // method line 492
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, string className)  cil managed 
     {
-        // Method begins at RVA 0xa964
-	// Code size 111 (0x6f)
+        // Method begins at RVA 0xb2bc
+	// Code size 66 (0x42)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.EnvironmentVariable	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Types.EnvironmentVariable	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
+		class NAnt.Core.Attributes.ElementNameAttribute	V_0)
+	IL_0000:  ldarg.0 
 	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0066
-
+	IL_0002:  call instance void class NAnt.Core.Extensibility.ExtensionBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly)
 	IL_0007:  nop 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0014:  stloc.1 
-	.try { // 0
-	  IL_0015:  br IL_0041
-
-	  IL_001a:  ldloc.1 
-	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.Core.Types.EnvironmentVariable
-	  IL_0025:  stloc.0 
-	  IL_0026:  nop 
-	  IL_0027:  ldloc.0 
-	  IL_0028:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_VariableName()
-	  IL_002d:  ldarg.1 
-	  IL_002e:  call bool string::op_Equality(string, string)
-	  IL_0033:  brfalse IL_0040
-
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  stloc.2 
-	  IL_003b:  leave IL_006d
-
-	  IL_0040:  nop 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_001a
-
-	  IL_004c:  leave IL_0065
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0051:  ldloc.1 
-	  IL_0052:  isinst [mscorlib]System.IDisposable
-	  IL_0057:  dup 
-	  IL_0058:  stloc.3 
-	  IL_0059:  brfalse IL_0064
-
-	  IL_005e:  ldloc.3 
-	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0064:  endfinally 
-	} // end handler 0
-	IL_0065:  nop 
-	IL_0066:  ldnull 
-	IL_0067:  stloc.2 
-	IL_0068:  br IL_006d
-
-	IL_006d:  ldloc.2 
-	IL_006e:  ret 
-    } // end of method EnvironmentVariableCollection::get_Item
-
-    // method line 591
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
-    {
-        // Method begins at RVA 0xa9f0
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method EnvironmentVariableCollection::Add
-
-    // method line 592
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.EnvironmentVariable[] items)  cil managed 
-    {
-        // Method begins at RVA 0xaa14
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Core.Types.EnvironmentVariableCollection::Add(class NAnt.Core.Types.EnvironmentVariable)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
-
-	IL_0021:  ret 
-    } // end of method EnvironmentVariableCollection::AddRange
-
-    // method line 593
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.EnvironmentVariableCollection items)  cil managed 
-    {
-        // Method begins at RVA 0xaa44
-	// Code size 41 (0x29)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Core.Types.EnvironmentVariable class NAnt.Core.Types.EnvironmentVariableCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Core.Types.EnvironmentVariableCollection::Add(class NAnt.Core.Types.EnvironmentVariable)
-	IL_0016:  pop 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0023:  blt IL_0008
-
-	IL_0028:  ret 
-    } // end of method EnvironmentVariableCollection::AddRange
-
-    // method line 594
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
-    {
-        // Method begins at RVA 0xaa7c
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method EnvironmentVariableCollection::Contains
-
-    // method line 595
-    .method public hidebysig 
-           instance default bool Contains (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xaaa0
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.Types.EnvironmentVariable class NAnt.Core.Types.EnvironmentVariableCollection::get_Item(string)
-	IL_0008:  ldnull 
-	IL_0009:  ceq 
-	IL_000b:  ldc.i4.0 
-	IL_000c:  ceq 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0014
-
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method EnvironmentVariableCollection::Contains
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.2 
+	IL_000a:  stfld string NAnt.Core.Filters.FilterBuilder::_className
+	IL_000f:  ldarg.0 
+	IL_0010:  call instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
+	IL_0015:  ldarg.0 
+	IL_0016:  call instance string class NAnt.Core.Filters.FilterBuilder::get_ClassName()
+	IL_001b:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string)
+	IL_0020:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
+	IL_0025:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_002a:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	IL_002f:  castclass NAnt.Core.Attributes.ElementNameAttribute
+	IL_0034:  stloc.0 
+	IL_0035:  ldarg.0 
+	IL_0036:  ldloc.0 
+	IL_0037:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
+	IL_003c:  stfld string NAnt.Core.Filters.FilterBuilder::_filterName
+	IL_0041:  ret 
+    } // end of method FilterBuilder::.ctor
 
-    // method line 596
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.EnvironmentVariable[] 'array', int32 index)  cil managed 
+    // method line 493
+    .method public hidebysig specialname 
+           instance default string get_ClassName ()  cil managed 
     {
-        // Method begins at RVA 0xaac2
+        // Method begins at RVA 0xb30c
 	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method EnvironmentVariableCollection::CopyTo
-
-    // method line 597
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
-    {
-        // Method begins at RVA 0xaad4
-	// Code size 21 (0x15)
-	.maxstack 2
+	.maxstack 1
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method EnvironmentVariableCollection::IndexOf
+	IL_0002:  ldfld string NAnt.Core.Filters.FilterBuilder::_className
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 598
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
-    {
-        // Method begins at RVA 0xaaf5
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method EnvironmentVariableCollection::Insert
+    } // end of method FilterBuilder::get_ClassName
 
-    // method line 599
-    .method public hidebysig 
-           instance default class NAnt.Core.Types.EnvironmentVariableEnumerator GetEnumerator ()  cil managed 
+    // method line 494
+    .method public hidebysig specialname 
+           instance default string get_FilterName ()  cil managed 
     {
-        // Method begins at RVA 0xab08
+        // Method begins at RVA 0xb328
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.EnvironmentVariableEnumerator	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.Types.EnvironmentVariableEnumerator::'.ctor'(class NAnt.Core.Types.EnvironmentVariableCollection)
+	IL_0002:  ldfld string NAnt.Core.Filters.FilterBuilder::_filterName
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method EnvironmentVariableCollection::GetEnumerator
+    } // end of method FilterBuilder::get_FilterName
 
-    // method line 600
+    // method line 495
     .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
+           instance default class NAnt.Core.Filters.Filter CreateFilter ()  cil managed 
     {
-        // Method begins at RVA 0xab23
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xb344
+        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
+	// Code size 42 (0x2a)
 	.maxstack 8
+	.locals init (
+		class NAnt.Core.Filters.Filter	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method EnvironmentVariableCollection::Remove
+	IL_0002:  call instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance string class NAnt.Core.Filters.FilterBuilder::get_ClassName()
+	IL_000d:  ldc.i4.1 
+	IL_000e:  ldc.i4.s 0x14
+	IL_0010:  ldnull 
+	IL_0011:  ldnull 
+	IL_0012:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0017:  ldnull 
+	IL_0018:  callvirt instance object class [mscorlib]System.Reflection.Assembly::CreateInstance(string, bool, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo, object[])
+	IL_001d:  castclass NAnt.Core.Filters.Filter
+	IL_0022:  stloc.0 
+	IL_0023:  br IL_0028
 
-	.property instance class NAnt.Core.Types.EnvironmentVariable Item (int32)
+	IL_0028:  ldloc.0 
+	IL_0029:  ret 
+    } // end of method FilterBuilder::CreateFilter
+
+	.property instance string ClassName ()
 	{
-		.get instance default class NAnt.Core.Types.EnvironmentVariable NAnt.Core.Types.EnvironmentVariableCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Core.Types.EnvironmentVariableCollection::set_Item (int32 index, class NAnt.Core.Types.EnvironmentVariable 'value') 
+		.get instance default string NAnt.Core.Filters.FilterBuilder::get_ClassName () 
 	}
-	.property instance class NAnt.Core.Types.EnvironmentVariable Item (string)
+	.property instance string FilterName ()
 	{
-		.get instance default class NAnt.Core.Types.EnvironmentVariable NAnt.Core.Types.EnvironmentVariableCollection::get_Item (string name) 
+		.get instance default string NAnt.Core.Filters.FilterBuilder::get_FilterName () 
 	}
-  } // end of class NAnt.Core.Types.EnvironmentVariableCollection
+  } // end of class NAnt.Core.Filters.FilterBuilder
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi beforefieldinit EnvironmentVariableEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+  .class public auto ansi abstract beforefieldinit ChainableReader
+  	extends NAnt.Core.Element
+  	implements [mscorlib]System.IDisposable  {
+    .field  private  class NAnt.Core.Filters.ChainableReader/internalRead InternalRead
+    .field  private  class NAnt.Core.Filters.ChainableReader/internalPeek InternalPeek
+    .field  private  class NAnt.Core.Filters.ChainableReader/internalClose InternalClose
+    .field  private  bool _baseReader
 
-    // method line 601
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.EnvironmentVariableCollection arguments)  cil managed 
+    // method line 496
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xab34
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
+        // Method begins at RVA 0xad80
+	// Code size 7 (0x7)
+	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method EnvironmentVariableEnumerator::.ctor
+	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ChainableReader::.ctor
 
-    // method line 602
+    // method line 497
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.EnvironmentVariable get_Current ()  cil managed 
+           instance default bool get_Base ()  cil managed 
     {
-        // Method begins at RVA 0xab58
-	// Code size 25 (0x19)
+        // Method begins at RVA 0xad88
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.EnvironmentVariable	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.Types.EnvironmentVariable
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0002:  ldfld bool NAnt.Core.Filters.ChainableReader::_baseReader
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method EnvironmentVariableEnumerator::get_Current
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ChainableReader::get_Base
 
-    // method line 603
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    // method line 498
+    .method public virtual hidebysig newslot 
+           instance default void Chain (class NAnt.Core.Filters.ChainableReader parentChainedReader)  cil managed 
     {
-        // Method begins at RVA 0xab80
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		object	V_0)
+        // Method begins at RVA 0xada4
+	// Code size 89 (0x59)
+	.maxstack 3
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0018
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method EnvironmentVariableEnumerator::System.Collections.IEnumerator.get_Current
+	IL_0007:  nop 
+	IL_0008:  ldstr "parentChainedReader"
+	IL_000d:  ldstr "Argument can not be null"
+	IL_0012:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string, string)
+	IL_0017:  throw 
+	IL_0018:  ldarg.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  dup 
+	IL_001b:  ldvirtftn instance int32 class NAnt.Core.Filters.ChainableReader::Read()
+	IL_0021:  newobj instance void class NAnt.Core.Filters.ChainableReader/internalRead::'.ctor'(object, native int)
+	IL_0026:  stfld class NAnt.Core.Filters.ChainableReader/internalRead NAnt.Core.Filters.ChainableReader::InternalRead
+	IL_002b:  ldarg.0 
+	IL_002c:  ldarg.1 
+	IL_002d:  dup 
+	IL_002e:  ldvirtftn instance int32 class NAnt.Core.Filters.ChainableReader::Peek()
+	IL_0034:  newobj instance void class NAnt.Core.Filters.ChainableReader/internalPeek::'.ctor'(object, native int)
+	IL_0039:  stfld class NAnt.Core.Filters.ChainableReader/internalPeek NAnt.Core.Filters.ChainableReader::InternalPeek
+	IL_003e:  ldarg.0 
+	IL_003f:  ldarg.1 
+	IL_0040:  dup 
+	IL_0041:  ldvirtftn instance void class NAnt.Core.Filters.ChainableReader::Close()
+	IL_0047:  newobj instance void class NAnt.Core.Filters.ChainableReader/internalClose::'.ctor'(object, native int)
+	IL_004c:  stfld class NAnt.Core.Filters.ChainableReader/internalClose NAnt.Core.Filters.ChainableReader::InternalClose
+	IL_0051:  ldarg.0 
+	IL_0052:  ldc.i4.0 
+	IL_0053:  stfld bool NAnt.Core.Filters.ChainableReader::_baseReader
+	IL_0058:  ret 
+    } // end of method ChainableReader::Chain
 
-    // method line 604
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
+    // method line 499
+    .method public virtual hidebysig newslot 
+           instance default void Chain (class [mscorlib]System.IO.TextReader baseReader)  cil managed 
+    {
+        // Method begins at RVA 0xae0c
+	// Code size 89 (0x59)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0018
+
+	IL_0007:  nop 
+	IL_0008:  ldstr "baseReader"
+	IL_000d:  ldstr "Argument can not be null"
+	IL_0012:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string, string)
+	IL_0017:  throw 
+	IL_0018:  ldarg.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  dup 
+	IL_001b:  ldvirtftn instance int32 class [mscorlib]System.IO.TextReader::Read()
+	IL_0021:  newobj instance void class NAnt.Core.Filters.ChainableReader/internalRead::'.ctor'(object, native int)
+	IL_0026:  stfld class NAnt.Core.Filters.ChainableReader/internalRead NAnt.Core.Filters.ChainableReader::InternalRead
+	IL_002b:  ldarg.0 
+	IL_002c:  ldarg.1 
+	IL_002d:  dup 
+	IL_002e:  ldvirtftn instance int32 class [mscorlib]System.IO.TextReader::Peek()
+	IL_0034:  newobj instance void class NAnt.Core.Filters.ChainableReader/internalPeek::'.ctor'(object, native int)
+	IL_0039:  stfld class NAnt.Core.Filters.ChainableReader/internalPeek NAnt.Core.Filters.ChainableReader::InternalPeek
+	IL_003e:  ldarg.0 
+	IL_003f:  ldarg.1 
+	IL_0040:  dup 
+	IL_0041:  ldvirtftn instance void class [mscorlib]System.IO.TextReader::Close()
+	IL_0047:  newobj instance void class NAnt.Core.Filters.ChainableReader/internalClose::'.ctor'(object, native int)
+	IL_004c:  stfld class NAnt.Core.Filters.ChainableReader/internalClose NAnt.Core.Filters.ChainableReader::InternalClose
+	IL_0051:  ldarg.0 
+	IL_0052:  ldc.i4.1 
+	IL_0053:  stfld bool NAnt.Core.Filters.ChainableReader::_baseReader
+	IL_0058:  ret 
+    } // end of method ChainableReader::Chain
+
+    // method line 500
+    .method public virtual hidebysig newslot 
+           instance default int32 Peek ()  cil managed 
     {
-        // Method begins at RVA 0xaba0
+        // Method begins at RVA 0xae74
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_0002:  ldfld class NAnt.Core.Filters.ChainableReader/internalPeek NAnt.Core.Filters.ChainableReader::InternalPeek
+	IL_0007:  callvirt instance int32 class NAnt.Core.Filters.ChainableReader/internalPeek::Invoke()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method EnvironmentVariableEnumerator::MoveNext
+    } // end of method ChainableReader::Peek
 
-    // method line 605
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    // method line 501
+    .method public virtual hidebysig newslot 
+           instance default int32 Read ()  cil managed 
     {
-        // Method begins at RVA 0xabc0
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+        // Method begins at RVA 0xae94
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_0002:  ldfld class NAnt.Core.Filters.ChainableReader/internalRead NAnt.Core.Filters.ChainableReader::InternalRead
+	IL_0007:  callvirt instance int32 class NAnt.Core.Filters.ChainableReader/internalRead::Invoke()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method EnvironmentVariableEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method ChainableReader::Read
 
-    // method line 606
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
+    // method line 502
+    .method public virtual hidebysig newslot 
+           instance default void Close ()  cil managed 
     {
-        // Method begins at RVA 0xabe0
+        // Method begins at RVA 0xaeb4
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_0002:  ldfld class NAnt.Core.Filters.ChainableReader/internalClose NAnt.Core.Filters.ChainableReader::InternalClose
+	IL_0007:  callvirt instance void class NAnt.Core.Filters.ChainableReader/internalClose::Invoke()
 	IL_000c:  ret 
-    } // end of method EnvironmentVariableEnumerator::Reset
+    } // end of method ChainableReader::Close
 
-    // method line 607
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    // method line 503
+    .method public final virtual hidebysig newslot 
+           instance default void Dispose ()  cil managed 
     {
-        // Method begins at RVA 0xabee
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
+        // Method begins at RVA 0xaec2
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method EnvironmentVariableEnumerator::System.Collections.IEnumerator.Reset
+	IL_0002:  callvirt instance void class NAnt.Core.Filters.ChainableReader::Close()
+	IL_0007:  ldarg.0 
+	IL_0008:  call void class [mscorlib]System.GC::SuppressFinalize(object)
+	IL_000d:  ret 
+    } // end of method ChainableReader::Dispose
 
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.Core.Types.EnvironmentVariableEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.Core.Types.EnvironmentVariable Current ()
+	.property instance bool Base ()
 	{
-		.get instance default class NAnt.Core.Types.EnvironmentVariable NAnt.Core.Types.EnvironmentVariableEnumerator::get_Current () 
+		.get instance default bool NAnt.Core.Filters.ChainableReader::get_Base () 
 	}
-  } // end of class NAnt.Core.Types.EnvironmentVariableEnumerator
-}
-
-.namespace NAnt.Core.Types
-{
-  .class public auto ansi serializable beforefieldinit EnvironmentVariable
-  	extends NAnt.Core.Element
+  .class nested private auto ansi sealed internalRead
+  	extends [mscorlib]System.MulticastDelegate
   {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 03 65 6E 76 00 00 ) // ...env..
-
-    .field  private  string _name
-    .field  private  string _value
-    .field  private  string _literalValue
-    .field  private  class [mscorlib]System.IO.FileInfo _file
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _directory
-    .field  private  class NAnt.Core.Types.PathSet _path
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
 
-    // method line 608
+    // method line 504
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name, string 'value')  cil managed 
+           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
     {
-        // Method begins at RVA 0xabfc
-	// Code size 29 (0x1d)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.EnvironmentVariable::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  stfld string NAnt.Core.Types.EnvironmentVariable::_name
-	IL_0015:  ldarg.0 
-	IL_0016:  ldarg.2 
-	IL_0017:  stfld string NAnt.Core.Types.EnvironmentVariable::_value
-	IL_001c:  ret 
-    } // end of method EnvironmentVariable::.ctor
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method internalRead::.ctor
 
-    // method line 609
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 505
+    .method public virtual hidebysig newslot 
+           instance default int32 Invoke ()  runtime managed 
     {
-        // Method begins at RVA 0xac1a
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.EnvironmentVariable::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method EnvironmentVariable::.ctor
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method internalRead::Invoke
 
-    // method line 610
-    .method public hidebysig specialname 
-           instance default string get_VariableName ()  cil managed 
+    // method line 506
+    .method public virtual hidebysig newslot 
+           instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
     {
-        // Method begins at RVA 0xac2c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.EnvironmentVariable::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_VariableName
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method internalRead::BeginInvoke
 
-    // method line 611
-    .method public hidebysig specialname 
-           instance default void set_VariableName (string 'value')  cil managed 
+    // method line 507
+    .method public virtual hidebysig newslot 
+           instance default int32 EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
     {
-        // Method begins at RVA 0xac47
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.EnvironmentVariable::_name
-	IL_0008:  ret 
-    } // end of method EnvironmentVariable::set_VariableName
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method internalRead::EndInvoke
 
-    // method line 612
-    .method public hidebysig specialname 
-           instance default string get_LiteralValue ()  cil managed 
-    {
-        // Method begins at RVA 0xac54
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.EnvironmentVariable::_literalValue
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+  } // end of class internalRead
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_LiteralValue
+  .class nested private auto ansi sealed internalPeek
+  	extends [mscorlib]System.MulticastDelegate
+  {
 
-    // method line 613
-    .method public hidebysig specialname 
-           instance default void set_LiteralValue (string 'value')  cil managed 
+    // method line 508
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
     {
-        // Method begins at RVA 0xac6f
-	// Code size 16 (0x10)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.EnvironmentVariable::_value
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  stfld string NAnt.Core.Types.EnvironmentVariable::_literalValue
-	IL_000f:  ret 
-    } // end of method EnvironmentVariable::set_LiteralValue
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method internalPeek::.ctor
 
-    // method line 614
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+    // method line 509
+    .method public virtual hidebysig newslot 
+           instance default int32 Invoke ()  runtime managed 
     {
-        // Method begins at RVA 0xac80
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.EnvironmentVariable::_file
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_File
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method internalPeek::Invoke
 
-    // method line 615
-    .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 510
+    .method public virtual hidebysig newslot 
+           instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
     {
-        // Method begins at RVA 0xac9b
-	// Code size 21 (0x15)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance string object::ToString()
-	IL_0008:  stfld string NAnt.Core.Types.EnvironmentVariable::_value
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.1 
-	IL_000f:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.EnvironmentVariable::_file
-	IL_0014:  ret 
-    } // end of method EnvironmentVariable::set_File
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method internalPeek::BeginInvoke
 
-    // method line 616
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
+    // method line 511
+    .method public virtual hidebysig newslot 
+           instance default int32 EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
     {
-        // Method begins at RVA 0xacb4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.EnvironmentVariable::_directory
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method internalPeek::EndInvoke
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_Directory
+  } // end of class internalPeek
 
-    // method line 617
-    .method public hidebysig specialname 
-           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0xaccf
-	// Code size 21 (0x15)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance string object::ToString()
-	IL_0008:  stfld string NAnt.Core.Types.EnvironmentVariable::_value
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.1 
-	IL_000f:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.EnvironmentVariable::_directory
-	IL_0014:  ret 
-    } // end of method EnvironmentVariable::set_Directory
+  .class nested private auto ansi sealed internalClose
+  	extends [mscorlib]System.MulticastDelegate
+  {
 
-    // method line 618
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
+    // method line 512
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
     {
-        // Method begins at RVA 0xace8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.PathSet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.EnvironmentVariable::_path
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method internalClose::.ctor
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_Path
+    // method line 513
+    .method public virtual hidebysig newslot 
+           instance default void Invoke ()  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method internalClose::Invoke
 
-    // method line 619
-    .method public hidebysig specialname 
-           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
+    // method line 514
+    .method public virtual hidebysig newslot 
+           instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
     {
-        // Method begins at RVA 0xad03
-	// Code size 21 (0x15)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance string object::ToString()
-	IL_0008:  stfld string NAnt.Core.Types.EnvironmentVariable::_value
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.1 
-	IL_000f:  stfld class NAnt.Core.Types.PathSet NAnt.Core.Types.EnvironmentVariable::_path
-	IL_0014:  ret 
-    } // end of method EnvironmentVariable::set_Path
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method internalClose::BeginInvoke
 
-    // method line 620
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PathSet get_PathSet ()  cil managed 
+    // method line 515
+    .method public virtual hidebysig newslot 
+           instance default void EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
     {
-        // Method begins at RVA 0xad1c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.PathSet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.EnvironmentVariable::_path
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method internalClose::EndInvoke
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_PathSet
+  } // end of class internalClose
 
-    // method line 621
-    .method public hidebysig specialname 
-           instance default void set_PathSet (class NAnt.Core.Types.PathSet 'value')  cil managed 
+  } // end of class NAnt.Core.Filters.ChainableReader
+}
+
+.namespace NAnt.Core.Filters
+{
+  .class public auto ansi serializable beforefieldinit FilterChain
+  	extends NAnt.Core.DataTypeBase
+  {
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
+		01 00 0B 66 69 6C 74 65 72 63 68 61 69 6E 00 00 ) // ...filterchain..
+
+    .field  private  class [mscorlib]System.Text.Encoding _inputEncoding
+    .field  private  class NAnt.Core.Filters.FilterCollection _filters
+
+    // method line 516
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xad37
-	// Code size 50 (0x32)
+        // Method begins at RVA 0xb58e
+	// Code size 18 (0x12)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.EnvironmentVariable::_path
-	IL_0007:  brfalse IL_001e
-
-	IL_000c:  nop 
-	IL_000d:  ldstr "Either set the path using the \"path\" attribute or the <path> element. You cannot set both."
-	IL_0012:  ldarg.0 
-	IL_0013:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_001d:  throw 
-	IL_001e:  ldarg.0 
-	IL_001f:  ldarg.1 
-	IL_0020:  callvirt instance string object::ToString()
-	IL_0025:  stfld string NAnt.Core.Types.EnvironmentVariable::_value
-	IL_002a:  ldarg.0 
-	IL_002b:  ldarg.1 
-	IL_002c:  stfld class NAnt.Core.Types.PathSet NAnt.Core.Types.EnvironmentVariable::_path
-	IL_0031:  ret 
-    } // end of method EnvironmentVariable::set_PathSet
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class NAnt.Core.Filters.FilterCollection::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.Filters.FilterCollection NAnt.Core.Filters.FilterChain::_filters
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
+	IL_0011:  ret 
+    } // end of method FilterChain::.ctor
 
-    // method line 622
+    // method line 517
     .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
+           instance default class NAnt.Core.Filters.FilterCollection get_Filters ()  cil managed 
     {
-        // Method begins at RVA 0xad6c
+        // Method begins at RVA 0xb5a4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Filters.FilterCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.EnvironmentVariable::_value
+	IL_0002:  ldfld class NAnt.Core.Filters.FilterCollection NAnt.Core.Filters.FilterChain::_filters
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_Value
+    } // end of method FilterChain::get_Filters
 
-    // method line 623
+    // method line 518
     .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+           instance default class [mscorlib]System.Text.Encoding get_InputEncoding ()  cil managed 
     {
-        // Method begins at RVA 0xad88
+        // Method begins at RVA 0xb5c0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.Text.Encoding	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.EnvironmentVariable::_ifDefined
+	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Filters.FilterChain::_inputEncoding
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_IfDefined
+    } // end of method FilterChain::get_InputEncoding
 
-    // method line 624
+    // method line 519
     .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+           instance default void set_InputEncoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
     {
-        // Method begins at RVA 0xada3
+        // Method begins at RVA 0xb5db
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.EnvironmentVariable::_ifDefined
+	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Core.Filters.FilterChain::_inputEncoding
 	IL_0008:  ret 
-    } // end of method EnvironmentVariable::set_IfDefined
+    } // end of method FilterChain::set_InputEncoding
 
-    // method line 625
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+    // method line 520
+    .method family virtual hidebysig 
+           instance default void InitializeXml (class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo framework)  cil managed 
     {
-        // Method begins at RVA 0xadb0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xb5e8
+	// Code size 25 (0x19)
+	.maxstack 4
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Filters.FilterChain/FilterChainConfigurator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.EnvironmentVariable::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method EnvironmentVariable::get_UnlessDefined
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance void class NAnt.Core.Element::set_XmlNode(class [System.Xml]System.Xml.XmlNode)
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  ldarg.2 
+	IL_000b:  ldarg.3 
+	IL_000c:  newobj instance void class NAnt.Core.Filters.FilterChain/FilterChainConfigurator::'.ctor'(class NAnt.Core.Element, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
+	IL_0011:  stloc.0 
+	IL_0012:  ldloc.0 
+	IL_0013:  callvirt instance void class NAnt.Core.Element/AttributeConfigurator::Initialize()
+	IL_0018:  ret 
+    } // end of method FilterChain::InitializeXml
 
-    // method line 626
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 521
+    .method assembly hidebysig 
+           instance default class NAnt.Core.Filters.Filter GetBaseFilter (class NAnt.Core.Filters.PhysicalTextReader physicalTextReader)  cil managed 
     {
-        // Method begins at RVA 0xadcb
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0xb610
+	// Code size 164 (0xa4)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Filters.Filter	V_0,
+		class NAnt.Core.Filters.Filter	V_1,
+		class NAnt.Core.Filters.Filter	V_2,
+		class NAnt.Core.Filters.FilterEnumerator	V_3,
+		class [mscorlib]System.IDisposable	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.EnvironmentVariable::_unlessDefined
-	IL_0008:  ret 
-    } // end of method EnvironmentVariable::set_UnlessDefined
-
-	.property instance string VariableName ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_000f
 
-		.get instance default string NAnt.Core.Types.EnvironmentVariable::get_VariableName () 
-		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_VariableName (string 'value') 
-	}
-	.property instance string LiteralValue ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 76 61 6C 75 65 00 00 ) // ...value..
+	IL_0007:  nop 
+	IL_0008:  ldnull 
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_00a2
 
-		.get instance default string NAnt.Core.Types.EnvironmentVariable::get_LiteralValue () 
-		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_LiteralValue (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo File ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
+	IL_000f:  ldarg.1 
+	IL_0010:  callvirt instance bool class NAnt.Core.Filters.ChainableReader::get_Base()
+	IL_0015:  brtrue IL_0031
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Types.EnvironmentVariable::get_File () 
-		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_File (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo Directory ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 69 72 00 00 ) // ...dir..
+	IL_001a:  nop 
+	IL_001b:  ldstr "String_UseBaseFilter"
+	IL_0020:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0025:  ldarg.0 
+	IL_0026:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_002b:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0030:  throw 
+	IL_0031:  ldarg.1 
+	IL_0032:  stloc.1 
+	IL_0033:  nop 
+	IL_0034:  ldarg.0 
+	IL_0035:  call instance class NAnt.Core.Filters.FilterCollection class NAnt.Core.Filters.FilterChain::get_Filters()
+	IL_003a:  callvirt instance class NAnt.Core.Filters.FilterEnumerator class NAnt.Core.Filters.FilterCollection::GetEnumerator()
+	IL_003f:  stloc.3 
+	.try { // 0
+	  IL_0040:  br IL_0075
 
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.EnvironmentVariable::get_Directory () 
-		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance class NAnt.Core.Types.PathSet Path ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
+	  IL_0045:  ldloc.3 
+	  IL_0046:  callvirt instance class NAnt.Core.Filters.Filter class NAnt.Core.Filters.FilterEnumerator::get_Current()
+	  IL_004b:  stloc.2 
+	  IL_004c:  nop 
+	  IL_004d:  ldloc.2 
+	  IL_004e:  callvirt instance bool class NAnt.Core.Filters.Filter::get_IfDefined()
+	  IL_0053:  brfalse IL_0074
 
-		.get instance default class NAnt.Core.Types.PathSet NAnt.Core.Types.EnvironmentVariable::get_Path () 
-		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_Path (class NAnt.Core.Types.PathSet 'value') 
-	}
-	.property instance class NAnt.Core.Types.PathSet PathSet ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
+	  IL_0058:  ldloc.2 
+	  IL_0059:  callvirt instance bool class NAnt.Core.Filters.Filter::get_UnlessDefined()
+	  IL_005e:  brtrue IL_0074
 
-		.get instance default class NAnt.Core.Types.PathSet NAnt.Core.Types.EnvironmentVariable::get_PathSet () 
-		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_PathSet (class NAnt.Core.Types.PathSet 'value') 
-	}
-	.property instance string Value ()
+	  IL_0063:  nop 
+	  IL_0064:  ldloc.2 
+	  IL_0065:  ldloc.1 
+	  IL_0066:  callvirt instance void class NAnt.Core.Filters.ChainableReader::Chain(class NAnt.Core.Filters.ChainableReader)
+	  IL_006b:  ldloc.2 
+	  IL_006c:  callvirt instance void class NAnt.Core.Filters.Filter::InitializeFilter()
+	  IL_0071:  ldloc.2 
+	  IL_0072:  stloc.1 
+	  IL_0073:  nop 
+	  IL_0074:  nop 
+	  IL_0075:  ldloc.3 
+	  IL_0076:  callvirt instance bool class NAnt.Core.Filters.FilterEnumerator::MoveNext()
+	  IL_007b:  brtrue IL_0045
+
+	  IL_0080:  leave IL_009b
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0085:  ldloc.3 
+	  IL_0086:  isinst [mscorlib]System.IDisposable
+	  IL_008b:  dup 
+	  IL_008c:  stloc.s 4
+	  IL_008e:  brfalse IL_009a
+
+	  IL_0093:  ldloc.s 4
+	  IL_0095:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_009a:  endfinally 
+	} // end handler 0
+	IL_009b:  ldloc.1 
+	IL_009c:  stloc.0 
+	IL_009d:  br IL_00a2
+
+	IL_00a2:  ldloc.0 
+	IL_00a3:  ret 
+    } // end of method FilterChain::GetBaseFilter
+
+    // method line 522
+    .method assembly static hidebysig 
+           default bool IsNullOrEmpty (class NAnt.Core.Filters.FilterChain filterChain)  cil managed 
+    {
+        // Method begins at RVA 0xb6d0
+	// Code size 41 (0x29)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  brtrue IL_000f
+
+	IL_0007:  nop 
+	IL_0008:  ldc.i4.1 
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_0027
+
+	IL_000f:  nop 
+	IL_0010:  ldarg.0 
+	IL_0011:  callvirt instance class NAnt.Core.Filters.FilterCollection class NAnt.Core.Filters.FilterChain::get_Filters()
+	IL_0016:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_001b:  ldc.i4.0 
+	IL_001c:  cgt 
+	IL_001e:  ldc.i4.0 
+	IL_001f:  ceq 
+	IL_0021:  stloc.0 
+	IL_0022:  br IL_0027
+
+	IL_0027:  ldloc.0 
+	IL_0028:  ret 
+    } // end of method FilterChain::IsNullOrEmpty
+
+	.property instance class NAnt.Core.Filters.FilterCollection Filters ()
 	{
-		.get instance default string NAnt.Core.Types.EnvironmentVariable::get_Value () 
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (
+		01 00 06 66 69 6C 74 65 72 01 00 54 50 0B 45 6C   // ...filter..TP.El
+		65 6D 65 6E 74 54 79 70 65 18 4E 41 6E 74 2E 43   // ementType.NAnt.C
+		6F 72 65 2E 46 69 6C 74 65 72 73 2E 46 69 6C 74   // ore.Filters.Filt
+		65 72                                           ) // er
+
+		.get instance default class NAnt.Core.Filters.FilterCollection NAnt.Core.Filters.FilterChain::get_Filters () 
 	}
-	.property instance bool IfDefined ()
+	.property instance class [mscorlib]System.Text.Encoding InputEncoding ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 65 6E 63 6F 64 69 6E 67 00 00 ) // ...encoding..
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 37 54 68 65 20 69 6E 70 75 74 20 65 6E 63   // ..7The input enc
+		6F 64 69 6E 67 20 73 68 6F 75 6C 64 20 6E 6F 77   // oding should now
+		20 62 65 20 73 70 65 63 69 66 69 65 64 20 6F 6E   //  be specified on
+		20 74 68 65 20 74 61 73 6B 2E 01 00 00          ) //  the task....
 
-		.get instance default bool NAnt.Core.Types.EnvironmentVariable::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_IfDefined (bool 'value') 
+		.get instance default class [mscorlib]System.Text.Encoding NAnt.Core.Filters.FilterChain::get_InputEncoding () 
+		.set instance default void NAnt.Core.Filters.FilterChain::set_InputEncoding (class [mscorlib]System.Text.Encoding 'value') 
 	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+  .class nested public auto ansi beforefieldinit FilterChainConfigurator
+  	extends NAnt.Core.Element/AttributeConfigurator
+  {
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    // method line 523
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Element element, class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo targetFramework)  cil managed 
+    {
+        // Method begins at RVA 0xb705
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  ldarg.s 4
+	IL_0006:  call instance void class NAnt.Core.Element/AttributeConfigurator::'.ctor'(class NAnt.Core.Element, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
+	IL_000b:  nop 
+	IL_000c:  ret 
+    } // end of method FilterChainConfigurator::.ctor
 
-		.get instance default bool NAnt.Core.Types.EnvironmentVariable::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_UnlessDefined (bool 'value') 
-	}
-  } // end of class NAnt.Core.Types.EnvironmentVariable
+    // method line 524
+    .method family virtual hidebysig 
+           instance default bool InitializeBuildElementCollection (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
+    {
+        // Method begins at RVA 0xb714
+	// Code size 732 (0x2dc)
+	.maxstack 8
+	.locals init (
+		class [mscorlib]System.Type	V_0,
+		class NAnt.Core.Attributes.BuildElementArrayAttribute	V_1,
+		bool	V_2,
+		class [System.Xml]System.Xml.XmlNodeList	V_3,
+		class [mscorlib]System.Collections.ArrayList	V_4,
+		class [System.Xml]System.Xml.XmlNode	V_5,
+		class [mscorlib]System.Collections.IEnumerator	V_6,
+		class NAnt.Core.Filters.Filter	V_7,
+		class [mscorlib]System.IDisposable	V_8,
+		class [mscorlib]System.Reflection.MethodInfo	V_9,
+		class [mscorlib]System.Reflection.MethodInfo[]	V_10,
+		class [mscorlib]System.Reflection.MethodInfo	V_11,
+		class [mscorlib]System.Reflection.MethodInfo[]	V_12,
+		int32	V_13,
+		class [mscorlib]System.Reflection.ParameterInfo	V_14,
+		object	V_15,
+		object	V_16,
+		object	V_17,
+		class [mscorlib]System.Collections.IEnumerator	V_18,
+		class [mscorlib]System.IDisposable	V_19)
+	IL_0000:  nop 
+	IL_0001:  ldtoken NAnt.Core.Filters.Filter
+	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000b:  stloc.0 
+	IL_000c:  ldarg.1 
+	IL_000d:  ldtoken NAnt.Core.Attributes.BuildElementArrayAttribute
+	IL_0012:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0017:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	IL_001c:  castclass NAnt.Core.Attributes.BuildElementArrayAttribute
+	IL_0021:  stloc.1 
+	IL_0022:  ldloc.1 
+	IL_0023:  brfalse IL_0042
+
+	IL_0028:  ldarg.1 
+	IL_0029:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_002e:  ldtoken NAnt.Core.Filters.FilterCollection
+	IL_0033:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0038:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_003d:  brfalse IL_0050
+
+	IL_0042:  nop 
+	IL_0043:  ldarg.0 
+	IL_0044:  ldarg.1 
+	IL_0045:  call instance bool class NAnt.Core.Element/AttributeConfigurator::InitializeBuildElementCollection(class [mscorlib]System.Reflection.PropertyInfo)
+	IL_004a:  stloc.2 
+	IL_004b:  br IL_02da
+
+	IL_0050:  ldarg.0 
+	IL_0051:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_0056:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::get_ChildNodes()
+	IL_005b:  stloc.3 
+	IL_005c:  ldloc.3 
+	IL_005d:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_0062:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
+	IL_0067:  stloc.s 4
+	IL_0069:  nop 
+	IL_006a:  ldloc.3 
+	IL_006b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_0070:  stloc.s 6
+	.try { // 0
+	  IL_0072:  br IL_00e6
+
+	  IL_0077:  ldloc.s 6
+	  IL_0079:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_007e:  castclass [System.Xml]System.Xml.XmlNode
+	  IL_0083:  stloc.s 5
+	  IL_0085:  nop 
+	  IL_0086:  ldloc.s 5
+	  IL_0088:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
+	  IL_008d:  ldc.i4.1 
+	  IL_008e:  bne.un IL_00b4
+
+	  IL_0093:  ldloc.s 5
+	  IL_0095:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	  IL_009a:  ldarg.0 
+	  IL_009b:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
+	  IL_00a0:  ldstr "nant"
+	  IL_00a5:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
+	  IL_00aa:  callvirt instance bool string::Equals(string)
+	  IL_00af:  brtrue IL_00ba
+
+	  IL_00b4:  nop 
+	  IL_00b5:  leave IL_00e6
+
+	  IL_00ba:  ldarg.0 
+	  IL_00bb:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
+	  IL_00c0:  ldloc.s 5
+	  IL_00c2:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_00c7:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Remove(string)
+	  IL_00cc:  ldloc.s 5
+	  IL_00ce:  ldarg.0 
+	  IL_00cf:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	  IL_00d4:  call class NAnt.Core.Filters.Filter class NAnt.Core.TypeFactory::CreateFilter(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Element)
+	  IL_00d9:  stloc.s 7
+	  IL_00db:  ldloc.s 4
+	  IL_00dd:  ldloc.s 7
+	  IL_00df:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_00e4:  pop 
+	  IL_00e5:  nop 
+	  IL_00e6:  ldloc.s 6
+	  IL_00e8:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00ed:  brtrue IL_0077
+
+	  IL_00f2:  leave IL_010e
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00f7:  ldloc.s 6
+	  IL_00f9:  isinst [mscorlib]System.IDisposable
+	  IL_00fe:  dup 
+	  IL_00ff:  stloc.s 8
+	  IL_0101:  brfalse IL_010d
+
+	  IL_0106:  ldloc.s 8
+	  IL_0108:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_010d:  endfinally 
+	} // end handler 0
+	IL_010e:  ldnull 
+	IL_010f:  stloc.s 9
+	IL_0111:  ldarg.1 
+	IL_0112:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_0117:  ldc.i4.s 0x14
+	IL_0119:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_011e:  stloc.s 10
+	IL_0120:  nop 
+	IL_0121:  ldloc.s 10
+	IL_0123:  stloc.s 12
+	IL_0125:  ldc.i4.0 
+	IL_0126:  stloc.s 13
+	IL_0128:  br IL_018a
+
+	IL_012d:  ldloc.s 12
+	IL_012f:  ldloc.s 13
+	IL_0131:  ldelem.ref 
+	IL_0132:  stloc.s 11
+	IL_0134:  nop 
+	IL_0135:  ldloc.s 11
+	IL_0137:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_013c:  ldstr "Add"
+	IL_0141:  call bool string::op_Equality(string, string)
+	IL_0146:  brfalse IL_0183
+
+	IL_014b:  ldloc.s 11
+	IL_014d:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_0152:  ldlen 
+	IL_0153:  conv.i4 
+	IL_0154:  ldc.i4.1 
+	IL_0155:  bne.un IL_0183
+
+	IL_015a:  nop 
+	IL_015b:  ldloc.s 11
+	IL_015d:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_0162:  ldc.i4.0 
+	IL_0163:  ldelem.ref 
+	IL_0164:  stloc.s 14
+	IL_0166:  ldloc.s 14
+	IL_0168:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	IL_016d:  ldloc.0 
+	IL_016e:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_0173:  brfalse IL_0182
+
+	IL_0178:  nop 
+	IL_0179:  ldloc.s 11
+	IL_017b:  stloc.s 9
+	IL_017d:  br IL_0195
+
+	IL_0182:  nop 
+	IL_0183:  nop 
+	IL_0184:  ldloc.s 13
+	IL_0186:  ldc.i4.1 
+	IL_0187:  add 
+	IL_0188:  stloc.s 13
+	IL_018a:  ldloc.s 13
+	IL_018c:  ldloc.s 12
+	IL_018e:  ldlen 
+	IL_018f:  conv.i4 
+	IL_0190:  blt IL_012d
+
+	IL_0195:  ldloc.s 9
+	IL_0197:  ldnull 
+	IL_0198:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_019d:  brfalse IL_01f2
+
+	IL_01a2:  nop 
+	IL_01a3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01a8:  ldstr "NA1020"
+	IL_01ad:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_01b2:  ldc.i4.4 
+	IL_01b3:  newarr [mscorlib]System.Object
+	IL_01b8:  dup 
+	IL_01b9:  ldc.i4.0 
+	IL_01ba:  ldloc.0 
+	IL_01bb:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_01c0:  stelem.ref 
+	IL_01c1:  dup 
+	IL_01c2:  ldc.i4.1 
+	IL_01c3:  ldarg.1 
+	IL_01c4:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_01c9:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_01ce:  stelem.ref 
+	IL_01cf:  dup 
+	IL_01d0:  ldc.i4.2 
+	IL_01d1:  ldarg.1 
+	IL_01d2:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_01d7:  stelem.ref 
+	IL_01d8:  dup 
+	IL_01d9:  ldc.i4.3 
+	IL_01da:  ldarg.0 
+	IL_01db:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
+	IL_01e0:  stelem.ref 
+	IL_01e1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_01e6:  ldarg.0 
+	IL_01e7:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_01ec:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_01f1:  throw 
+	IL_01f2:  ldarg.1 
+	IL_01f3:  ldarg.0 
+	IL_01f4:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_01f9:  ldc.i4.0 
+	IL_01fa:  ldnull 
+	IL_01fb:  ldnull 
+	IL_01fc:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0201:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_0206:  stloc.s 15
+	IL_0208:  ldloc.s 15
+	IL_020a:  brtrue IL_0275
+
+	IL_020f:  nop 
+	IL_0210:  ldarg.1 
+	IL_0211:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
+	IL_0216:  brtrue IL_0248
+
+	IL_021b:  nop 
+	IL_021c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0221:  ldstr "NA1093"
+	IL_0226:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_022b:  ldloc.1 
+	IL_022c:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_0231:  ldarg.0 
+	IL_0232:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
+	IL_0237:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_023c:  ldarg.0 
+	IL_023d:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_0242:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0247:  throw 
+	IL_0248:  ldarg.1 
+	IL_0249:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_024e:  ldc.i4.s 0x14
+	IL_0250:  ldnull 
+	IL_0251:  ldnull 
+	IL_0252:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0257:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_025c:  stloc.s 16
+	IL_025e:  ldarg.1 
+	IL_025f:  ldarg.0 
+	IL_0260:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_0265:  ldloc.s 16
+	IL_0267:  ldc.i4.0 
+	IL_0268:  ldnull 
+	IL_0269:  ldnull 
+	IL_026a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_026f:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_0274:  nop 
+	IL_0275:  nop 
+	IL_0276:  ldloc.s 4
+	IL_0278:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_027d:  stloc.s 18
+	.try { // 1
+	  IL_027f:  br IL_02ab
+
+	  IL_0284:  ldloc.s 18
+	  IL_0286:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_028b:  stloc.s 17
+	  IL_028d:  nop 
+	  IL_028e:  ldloc.s 9
+	  IL_0290:  ldloc.s 15
+	  IL_0292:  ldc.i4.0 
+	  IL_0293:  ldnull 
+	  IL_0294:  ldc.i4.1 
+	  IL_0295:  newarr [mscorlib]System.Object
+	  IL_029a:  dup 
+	  IL_029b:  ldc.i4.0 
+	  IL_029c:  ldloc.s 17
+	  IL_029e:  stelem.ref 
+	  IL_029f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_02a4:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	  IL_02a9:  pop 
+	  IL_02aa:  nop 
+	  IL_02ab:  ldloc.s 18
+	  IL_02ad:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_02b2:  brtrue IL_0284
+
+	  IL_02b7:  leave IL_02d3
+
+	} // end .try 1
+	finally  { // 1
+	  IL_02bc:  ldloc.s 18
+	  IL_02be:  isinst [mscorlib]System.IDisposable
+	  IL_02c3:  dup 
+	  IL_02c4:  stloc.s 19
+	  IL_02c6:  brfalse IL_02d2
+
+	  IL_02cb:  ldloc.s 19
+	  IL_02cd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_02d2:  endfinally 
+	} // end handler 1
+	IL_02d3:  ldc.i4.1 
+	IL_02d4:  stloc.2 
+	IL_02d5:  br IL_02da
+
+	IL_02da:  ldloc.2 
+	IL_02db:  ret 
+    } // end of method FilterChainConfigurator::InitializeBuildElementCollection
+
+  } // end of class FilterChainConfigurator
+
+  } // end of class NAnt.Core.Filters.FilterChain
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi serializable beforefieldinit EnvironmentSet
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit ReplaceString
+  	extends NAnt.Core.Filters.Filter
   {
     .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
-		01 00 0B 65 6E 76 69 72 6F 6E 6D 65 6E 74 00 00 ) // ...environment..
+		01 00 0D 72 65 70 6C 61 63 65 73 74 72 69 6E 67   // ...replacestring
+		00 00                                           ) // ..
 
-    .field  private  class NAnt.Core.Types.OptionCollection _options
-    .field  private  class NAnt.Core.Types.EnvironmentVariableCollection _environmentVariables
+    .field  private  string _from
+    .field  private  string _to
+    .field  private  string _outputBuffer
+    .field  private  bool _endStreamAfterBuffer
+    .field  private  int32 _bufferPosition
+    .field  private  bool _stringNotFound
+    .field  private  bool _ignoreCase
+    .field  private  class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate ReadChar
 
-    // method line 627
+    // method line 525
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xadd5
-	// Code size 29 (0x1d)
+        // Method begins at RVA 0xba18
+	// Code size 32 (0x20)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Types.OptionCollection::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.Types.OptionCollection NAnt.Core.Types.EnvironmentSet::_options
+	IL_0001:  ldsfld string [mscorlib]System.String::Empty
+	IL_0006:  stfld string NAnt.Core.Filters.ReplaceString::_to
 	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class NAnt.Core.Types.EnvironmentVariableCollection::'.ctor'()
-	IL_0011:  stfld class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Types.EnvironmentSet::_environmentVariables
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_001c:  ret 
-    } // end of method EnvironmentSet::.ctor
+	IL_000c:  ldc.i4.0 
+	IL_000d:  stfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
+	IL_0012:  ldarg.0 
+	IL_0013:  ldc.i4.1 
+	IL_0014:  stfld bool NAnt.Core.Filters.ReplaceString::_stringNotFound
+	IL_0019:  ldarg.0 
+	IL_001a:  call instance void class NAnt.Core.Filters.Filter::'.ctor'()
+	IL_001f:  ret 
+    } // end of method ReplaceString::.ctor
 
-    // method line 628
+    // method line 526
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.OptionCollection get_Options ()  cil managed 
+           instance default string get_From ()  cil managed 
     {
-        // Method begins at RVA 0xadf4
+        // Method begins at RVA 0xba3c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.OptionCollection	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.OptionCollection NAnt.Core.Types.EnvironmentSet::_options
+	IL_0002:  ldfld string NAnt.Core.Filters.ReplaceString::_from
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method EnvironmentSet::get_Options
+    } // end of method ReplaceString::get_From
 
-    // method line 629
+    // method line 527
     .method public hidebysig specialname 
-           instance default void set_Options (class NAnt.Core.Types.OptionCollection 'value')  cil managed 
+           instance default void set_From (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xae0f
+        // Method begins at RVA 0xba57
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.OptionCollection NAnt.Core.Types.EnvironmentSet::_options
+	IL_0003:  stfld string NAnt.Core.Filters.ReplaceString::_from
 	IL_0008:  ret 
-    } // end of method EnvironmentSet::set_Options
+    } // end of method ReplaceString::set_From
 
-    // method line 630
+    // method line 528
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.EnvironmentVariableCollection get_EnvironmentVariables ()  cil managed 
+           instance default string get_To ()  cil managed 
     {
-        // Method begins at RVA 0xae1c
+        // Method begins at RVA 0xba64
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.EnvironmentVariableCollection	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Types.EnvironmentSet::_environmentVariables
+	IL_0002:  ldfld string NAnt.Core.Filters.ReplaceString::_to
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method EnvironmentSet::get_EnvironmentVariables
+    } // end of method ReplaceString::get_To
 
-    // method line 631
+    // method line 529
     .method public hidebysig specialname 
-           instance default void set_EnvironmentVariables (class NAnt.Core.Types.EnvironmentVariableCollection 'value')  cil managed 
+           instance default void set_To (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xae37
+        // Method begins at RVA 0xba7f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Types.EnvironmentSet::_environmentVariables
+	IL_0003:  stfld string NAnt.Core.Filters.ReplaceString::_to
 	IL_0008:  ret 
-    } // end of method EnvironmentSet::set_EnvironmentVariables
-
-	.property instance class NAnt.Core.Types.OptionCollection Options ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 06 6F 70 74 69 6F 6E 00 00 ) // ...option..
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
-		01 00 1F 55 73 65 20 3C 76 61 72 69 61 62 6C 65   // ...Use <variable
-		3E 20 65 6C 65 6D 65 6E 74 20 69 6E 73 74 65 61   // > element instea
-		64 2E 00 00                                     ) // d...
-
-		.get instance default class NAnt.Core.Types.OptionCollection NAnt.Core.Types.EnvironmentSet::get_Options () 
-		.set instance default void NAnt.Core.Types.EnvironmentSet::set_Options (class NAnt.Core.Types.OptionCollection 'value') 
-	}
-	.property instance class NAnt.Core.Types.EnvironmentVariableCollection EnvironmentVariables ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 08 76 61 72 69 61 62 6C 65 00 00 ) // ...variable..
-
-		.get instance default class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Types.EnvironmentSet::get_EnvironmentVariables () 
-		.set instance default void NAnt.Core.Types.EnvironmentSet::set_EnvironmentVariables (class NAnt.Core.Types.EnvironmentVariableCollection 'value') 
-	}
-  } // end of class NAnt.Core.Types.EnvironmentSet
-}
-
-.namespace NAnt.Core.Types
-{
-  .class public auto ansi serializable beforefieldinit PathSet
-  	extends NAnt.Core.DataTypeBase
-  {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
-
-    .field  private  class [mscorlib]System.Collections.ArrayList _elements
-    .field  private  class [System]System.Collections.Specialized.StringCollection _translatedElements
-    .field  private static initonly  bool _dosBasedFileSystem
-
-    // method line 632
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xae41
-	// Code size 30 (0x1e)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0006:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PathSet::_elements
-	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0011:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.PathSet::_translatedElements
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
-	IL_001c:  nop 
-	IL_001d:  ret 
-    } // end of method PathSet::.ctor
-
-    // method line 633
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, string path)  cil managed 
-    {
-        // Method begins at RVA 0xae60
-	// Code size 50 (0x32)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0006:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PathSet::_elements
-	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0011:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.PathSet::_translatedElements
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
-	IL_001c:  nop 
-	IL_001d:  ldarg.0 
-	IL_001e:  ldarg.1 
-	IL_001f:  call instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_0024:  ldarg.0 
-	IL_0025:  ldarg.1 
-	IL_0026:  ldarg.2 
-	IL_0027:  call class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.PathSet::TranslatePath(class NAnt.Core.Project, string)
-	IL_002c:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.PathSet::_translatedElements
-	IL_0031:  ret 
-    } // end of method PathSet::.ctor
+    } // end of method ReplaceString::set_To
 
-    // method line 634
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
+    // method line 530
+    .method public hidebysig specialname 
+           instance default bool get_IgnoreCase ()  cil managed 
     {
-        // Method begins at RVA 0xae94
-	// Code size 115 (0x73)
-	.maxstack 3
+        // Method begins at RVA 0xba8c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		string	V_1,
-		class [mscorlib]System.Text.StringBuilder	V_2,
-		int32	V_3)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.PathSet::GetElements()
+	IL_0002:  ldfld bool NAnt.Core.Filters.ReplaceString::_ignoreCase
 	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_000e:  brtrue IL_001f
-
-	IL_0013:  nop 
-	IL_0014:  ldstr ""
-	IL_0019:  stloc.1 
-	IL_001a:  br IL_0071
-
-	IL_001f:  ldloc.0 
-	IL_0020:  ldc.i4.0 
-	IL_0021:  callvirt instance string class [System]System.Collections.Specialized.StringCollection::get_Item(int32)
-	IL_0026:  ldloc.0 
-	IL_0027:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_002c:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string, int32)
-	IL_0031:  stloc.2 
-	IL_0032:  ldc.i4.1 
-	IL_0033:  stloc.3 
-	IL_0034:  br IL_0059
-
-	IL_0039:  nop 
-	IL_003a:  ldloc.2 
-	IL_003b:  ldsfld char [mscorlib]System.IO.Path::PathSeparator
-	IL_0040:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_0045:  pop 
-	IL_0046:  ldloc.2 
-	IL_0047:  ldloc.0 
-	IL_0048:  ldloc.3 
-	IL_0049:  callvirt instance string class [System]System.Collections.Specialized.StringCollection::get_Item(int32)
-	IL_004e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0053:  pop 
-	IL_0054:  nop 
-	IL_0055:  ldloc.3 
-	IL_0056:  ldc.i4.1 
-	IL_0057:  add 
-	IL_0058:  stloc.3 
-	IL_0059:  ldloc.3 
-	IL_005a:  ldloc.0 
-	IL_005b:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0060:  blt IL_0039
-
-	IL_0065:  ldloc.2 
-	IL_0066:  callvirt instance string object::ToString()
-	IL_006b:  stloc.1 
-	IL_006c:  br IL_0071
+	IL_0008:  br IL_000d
 
-	IL_0071:  ldloc.1 
-	IL_0072:  ret 
-    } // end of method PathSet::ToString
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ReplaceString::get_IgnoreCase
 
-    // method line 635
-    .method public hidebysig 
-           instance default void AddPath (class NAnt.Core.Types.PathSet path)  cil managed 
+    // method line 531
+    .method public hidebysig specialname 
+           instance default void set_IgnoreCase (bool 'value')  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
-
-        // Method begins at RVA 0xaf13
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xbaa7
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PathSet::_elements
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_000d:  pop 
-	IL_000e:  ret 
-    } // end of method PathSet::AddPath
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Filters.ReplaceString::_ignoreCase
+	IL_0008:  ret 
+    } // end of method ReplaceString::set_IgnoreCase
 
-    // method line 636
-    .method public hidebysig 
-           instance default void AddPathElement (class NAnt.Core.Types.PathElement pathElement)  cil managed 
+    // method line 532
+    .method public virtual hidebysig 
+           instance default void Chain (class NAnt.Core.Filters.ChainableReader chainedReader)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0B 70 61 74 68 65 6C 65 6D 65 6E 74 00 00 ) // ...pathelement..
-
-        // Method begins at RVA 0xaf23
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xbab1
+	// Code size 27 (0x1b)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PathSet::_elements
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_000d:  pop 
-	IL_000e:  ret 
-    } // end of method PathSet::AddPathElement
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Filters.ChainableReader::Chain(class NAnt.Core.Filters.ChainableReader)
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldftn instance int32 class NAnt.Core.Filters.ChainableReader::Read()
+	IL_0010:  newobj instance void class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate::'.ctor'(object, native int)
+	IL_0015:  stfld class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate NAnt.Core.Filters.ReplaceString::ReadChar
+	IL_001a:  ret 
+    } // end of method ReplaceString::Chain
 
-    // method line 637
-    .method public hidebysig 
-           instance default class [System]System.Collections.Specialized.StringCollection GetElements ()  cil managed 
+    // method line 533
+    .method public virtual hidebysig 
+           instance default int32 Read ()  cil managed 
     {
-        // Method begins at RVA 0xaf34
-	// Code size 353 (0x161)
+        // Method begins at RVA 0xbad0
+	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		object	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		string	V_3,
-		class [System]System.Collections.Specialized.StringEnumerator	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		class NAnt.Core.Types.PathElement	V_6,
-		string	V_7,
-		class [System]System.Collections.Specialized.StringEnumerator	V_8,
-		class [mscorlib]System.IDisposable	V_9,
-		class [mscorlib]System.IDisposable	V_10,
-		class [System]System.Collections.Specialized.StringCollection	V_11)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.PathSet::_translatedElements
-	IL_0007:  call class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Util.StringUtils::Clone(class [System]System.Collections.Specialized.StringCollection)
-	IL_000c:  stloc.0 
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PathSet::_elements
-	IL_0014:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0019:  stloc.2 
-	.try { // 2
-	  IL_001a:  br IL_0130
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate NAnt.Core.Filters.ReplaceString::ReadChar
+	IL_0008:  call instance int32 class NAnt.Core.Filters.ReplaceString::GetNextCharacter(class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	  IL_001f:  ldloc.2 
-	  IL_0020:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0025:  stloc.1 
-	  IL_0026:  nop 
-	  IL_0027:  ldloc.1 
-	  IL_0028:  isinst NAnt.Core.Types.PathSet
-	  IL_002d:  brfalse IL_0099
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ReplaceString::Read
 
-	  IL_0032:  nop 
-	  IL_0033:  nop 
-	  IL_0034:  ldloc.1 
-	  IL_0035:  castclass NAnt.Core.Types.PathSet
-	  IL_003a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.PathSet::GetElements()
-	  IL_003f:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_0044:  stloc.s 4
-	  .try { // 0
-	    IL_0046:  br IL_006b
+    // method line 534
+    .method public virtual hidebysig 
+           instance default int32 Peek ()  cil managed 
+    {
+        // Method begins at RVA 0xbaf1
+	// Code size 17 (0x11)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldstr "String_PeekNotSupported"
+	IL_0006:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_000b:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
+	IL_0010:  throw 
+    } // end of method ReplaceString::Peek
 
-	    IL_004b:  ldloc.s 4
-	    IL_004d:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_0052:  stloc.3 
-	    IL_0053:  nop 
-	    IL_0054:  ldloc.0 
-	    IL_0055:  ldloc.3 
-	    IL_0056:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	    IL_005b:  brtrue IL_006a
+    // method line 535
+    .method private hidebysig 
+           instance default bool FindString (int32 startChar, [out] bool& streamEnded, [out] string& nonMatchingChars)  cil managed 
+    {
+        // Method begins at RVA 0xbb04
+	// Code size 164 (0xa4)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		int32	V_1,
+		int32	V_2,
+		bool	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.2 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  stind.i1 
+	IL_0004:  ldarg.3 
+	IL_0005:  ldstr ""
+	IL_000a:  stind.ref 
+	IL_000b:  ldarg.0 
+	IL_000c:  ldfld string NAnt.Core.Filters.ReplaceString::_from
+	IL_0011:  callvirt instance int32 string::get_Length()
+	IL_0016:  ldarg.0 
+	IL_0017:  ldfld string NAnt.Core.Filters.ReplaceString::_from
+	IL_001c:  callvirt instance int32 string::get_Length()
+	IL_0021:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(int32, int32)
+	IL_0026:  stloc.0 
+	IL_0027:  ldloc.0 
+	IL_0028:  ldarg.1 
+	IL_0029:  conv.u2 
+	IL_002a:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_002f:  pop 
+	IL_0030:  ldc.i4.1 
+	IL_0031:  stloc.2 
+	IL_0032:  br IL_008a
 
-	    IL_0060:  nop 
-	    IL_0061:  ldloc.0 
-	    IL_0062:  ldloc.3 
-	    IL_0063:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_0068:  pop 
-	    IL_0069:  nop 
-	    IL_006a:  nop 
-	    IL_006b:  ldloc.s 4
-	    IL_006d:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_0072:  brtrue IL_004b
+	IL_0037:  nop 
+	IL_0038:  ldarg.0 
+	IL_0039:  call instance int32 class NAnt.Core.Filters.ChainableReader::Read()
+	IL_003e:  stloc.1 
+	IL_003f:  ldloc.1 
+	IL_0040:  ldc.i4.m1 
+	IL_0041:  beq IL_0051
 
-	    IL_0077:  leave IL_0093
+	IL_0046:  nop 
+	IL_0047:  ldloc.0 
+	IL_0048:  ldloc.1 
+	IL_0049:  conv.u2 
+	IL_004a:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_004f:  pop 
+	IL_0050:  nop 
+	IL_0051:  ldarg.0 
+	IL_0052:  ldloc.1 
+	IL_0053:  ldarg.0 
+	IL_0054:  ldfld string NAnt.Core.Filters.ReplaceString::_from
+	IL_0059:  ldloc.2 
+	IL_005a:  callvirt instance char string::get_Chars(int32)
+	IL_005f:  call instance bool class NAnt.Core.Filters.ReplaceString::CompareCharacters(int32, int32)
+	IL_0064:  brtrue IL_0085
 
-	  } // end .try 0
-	  finally  { // 0
-	    IL_007c:  ldloc.s 4
-	    IL_007e:  isinst [mscorlib]System.IDisposable
-	    IL_0083:  dup 
-	    IL_0084:  stloc.s 5
-	    IL_0086:  brfalse IL_0092
+	IL_0069:  nop 
+	IL_006a:  ldloc.1 
+	IL_006b:  ldc.i4.m1 
+	IL_006c:  bne.un IL_0076
 
-	    IL_008b:  ldloc.s 5
-	    IL_008d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0092:  endfinally 
-	  } // end handler 0
-	  IL_0093:  nop 
-	  IL_0094:  br IL_012f
+	IL_0071:  nop 
+	IL_0072:  ldarg.2 
+	IL_0073:  ldc.i4.1 
+	IL_0074:  stind.i1 
+	IL_0075:  nop 
+	IL_0076:  ldarg.3 
+	IL_0077:  ldloc.0 
+	IL_0078:  callvirt instance string object::ToString()
+	IL_007d:  stind.ref 
+	IL_007e:  ldc.i4.0 
+	IL_007f:  stloc.3 
+	IL_0080:  br IL_00a2
 
-	  IL_0099:  ldloc.1 
-	  IL_009a:  isinst NAnt.Core.Types.PathElement
-	  IL_009f:  brfalse IL_012f
+	IL_0085:  nop 
+	IL_0086:  ldloc.2 
+	IL_0087:  ldc.i4.1 
+	IL_0088:  add 
+	IL_0089:  stloc.2 
+	IL_008a:  ldloc.2 
+	IL_008b:  ldarg.0 
+	IL_008c:  ldfld string NAnt.Core.Filters.ReplaceString::_from
+	IL_0091:  callvirt instance int32 string::get_Length()
+	IL_0096:  blt IL_0037
 
-	  IL_00a4:  nop 
-	  IL_00a5:  ldloc.1 
-	  IL_00a6:  castclass NAnt.Core.Types.PathElement
-	  IL_00ab:  stloc.s 6
-	  IL_00ad:  ldloc.s 6
-	  IL_00af:  callvirt instance bool class NAnt.Core.Types.PathElement::get_IfDefined()
-	  IL_00b4:  brfalse IL_00c5
+	IL_009b:  ldc.i4.1 
+	IL_009c:  stloc.3 
+	IL_009d:  br IL_00a2
 
-	  IL_00b9:  ldloc.s 6
-	  IL_00bb:  callvirt instance bool class NAnt.Core.Types.PathElement::get_UnlessDefined()
-	  IL_00c0:  brfalse IL_00cb
+	IL_00a2:  ldloc.3 
+	IL_00a3:  ret 
+    } // end of method ReplaceString::FindString
 
-	  IL_00c5:  nop 
-	  IL_00c6:  leave IL_0130
+    // method line 536
+    .method private hidebysig 
+           instance default int32 GetNextCharacter (class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate AcquireChar)  cil managed 
+    {
+        // Method begins at RVA 0xbbb4
+	// Code size 397 (0x18d)
+	.maxstack 4
+	.locals init (
+		int32	V_0,
+		int32	V_1,
+		int32	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
+	IL_0007:  brtrue IL_001a
 
-	  IL_00cb:  nop 
-	  IL_00cc:  ldloc.1 
-	  IL_00cd:  castclass NAnt.Core.Types.PathElement
-	  IL_00d2:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.PathElement::get_Parts()
-	  IL_00d7:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_00dc:  stloc.s 8
-	  .try { // 1
-	    IL_00de:  br IL_0106
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance int32 class NAnt.Core.Filters.ChainableReader::Read()
+	IL_0013:  stloc.0 
+	IL_0014:  nop 
+	IL_0015:  br IL_00e3
 
-	    IL_00e3:  ldloc.s 8
-	    IL_00e5:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_00ea:  stloc.s 7
-	    IL_00ec:  nop 
-	    IL_00ed:  ldloc.0 
-	    IL_00ee:  ldloc.s 7
-	    IL_00f0:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	    IL_00f5:  brtrue IL_0105
+	IL_001a:  nop 
+	IL_001b:  ldarg.0 
+	IL_001c:  ldfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
+	IL_0021:  ldarg.0 
+	IL_0022:  ldfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
+	IL_0027:  callvirt instance int32 string::get_Length()
+	IL_002c:  bge IL_00ac
 
-	    IL_00fa:  nop 
-	    IL_00fb:  ldloc.0 
-	    IL_00fc:  ldloc.s 7
-	    IL_00fe:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_0103:  pop 
-	    IL_0104:  nop 
-	    IL_0105:  nop 
-	    IL_0106:  ldloc.s 8
-	    IL_0108:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_010d:  brtrue IL_00e3
+	IL_0031:  nop 
+	IL_0032:  ldarg.0 
+	IL_0033:  ldfld bool NAnt.Core.Filters.ReplaceString::_stringNotFound
+	IL_0038:  brfalse IL_0083
 
-	    IL_0112:  leave IL_012e
+	IL_003d:  ldarg.0 
+	IL_003e:  ldfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
+	IL_0043:  ldarg.0 
+	IL_0044:  ldfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
+	IL_0049:  callvirt instance int32 string::get_Length()
+	IL_004e:  ldc.i4.1 
+	IL_004f:  sub 
+	IL_0050:  bne.un IL_0083
 
-	  } // end .try 1
-	  finally  { // 1
-	    IL_0117:  ldloc.s 8
-	    IL_0119:  isinst [mscorlib]System.IDisposable
-	    IL_011e:  dup 
-	    IL_011f:  stloc.s 9
-	    IL_0121:  brfalse IL_012d
+	IL_0055:  nop 
+	IL_0056:  ldarg.0 
+	IL_0057:  ldfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
+	IL_005c:  ldarg.0 
+	IL_005d:  ldfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
+	IL_0062:  callvirt instance int32 string::get_Length()
+	IL_0067:  ldc.i4.1 
+	IL_0068:  sub 
+	IL_0069:  callvirt instance char string::get_Chars(int32)
+	IL_006e:  stloc.0 
+	IL_006f:  ldarg.0 
+	IL_0070:  dup 
+	IL_0071:  ldfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
+	IL_0076:  ldc.i4.1 
+	IL_0077:  add 
+	IL_0078:  stfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
+	IL_007d:  nop 
+	IL_007e:  br IL_00a6
 
-	    IL_0126:  ldloc.s 9
-	    IL_0128:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_012d:  endfinally 
-	  } // end handler 1
-	  IL_012e:  nop 
-	  IL_012f:  nop 
-	  IL_0130:  ldloc.2 
-	  IL_0131:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0136:  brtrue IL_001f
+	IL_0083:  nop 
+	IL_0084:  ldarg.0 
+	IL_0085:  ldfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
+	IL_008a:  ldarg.0 
+	IL_008b:  dup 
+	IL_008c:  ldfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
+	IL_0091:  dup 
+	IL_0092:  stloc.1 
+	IL_0093:  ldc.i4.1 
+	IL_0094:  add 
+	IL_0095:  stfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
+	IL_009a:  ldloc.1 
+	IL_009b:  callvirt instance char string::get_Chars(int32)
+	IL_00a0:  stloc.2 
+	IL_00a1:  br IL_018b
 
-	  IL_013b:  leave IL_0156
+	IL_00a6:  nop 
+	IL_00a7:  br IL_00e2
 
-	} // end .try 2
-	finally  { // 2
-	  IL_0140:  ldloc.2 
-	  IL_0141:  isinst [mscorlib]System.IDisposable
-	  IL_0146:  dup 
-	  IL_0147:  stloc.s 10
-	  IL_0149:  brfalse IL_0155
+	IL_00ac:  nop 
+	IL_00ad:  ldarg.0 
+	IL_00ae:  ldnull 
+	IL_00af:  stfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
+	IL_00b4:  ldarg.0 
+	IL_00b5:  ldc.i4.0 
+	IL_00b6:  stfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
+	IL_00bb:  ldarg.0 
+	IL_00bc:  ldfld bool NAnt.Core.Filters.ReplaceString::_endStreamAfterBuffer
+	IL_00c1:  brtrue IL_00d9
 
-	  IL_014e:  ldloc.s 10
-	  IL_0150:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0155:  endfinally 
-	} // end handler 2
-	IL_0156:  ldloc.0 
-	IL_0157:  stloc.s 11
-	IL_0159:  br IL_015e
+	IL_00c6:  nop 
+	IL_00c7:  ldarg.0 
+	IL_00c8:  ldfld class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate NAnt.Core.Filters.ReplaceString::ReadChar
+	IL_00cd:  callvirt instance int32 class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate::Invoke()
+	IL_00d2:  stloc.0 
+	IL_00d3:  nop 
+	IL_00d4:  br IL_00e1
 
-	IL_015e:  ldloc.s 11
-	IL_0160:  ret 
-    } // end of method PathSet::GetElements
+	IL_00d9:  nop 
+	IL_00da:  ldc.i4.m1 
+	IL_00db:  stloc.2 
+	IL_00dc:  br IL_018b
 
-    // method line 638
-    .method public static hidebysig 
-           default class [System]System.Collections.Specialized.StringCollection TranslatePath (class NAnt.Core.Project project, string source)  cil managed 
-    {
-        // Method begins at RVA 0xb0f0
-	// Code size 388 (0x184)
-	.maxstack 7
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		class [System]System.Collections.Specialized.StringCollection	V_1,
-		string[]	V_2,
-		int32	V_3,
-		string	V_4,
-		string	V_5,
-		string	V_6,
-		string	V_7,
-		string[]	V_8,
-		int32	V_9,
-		string	V_10,
-		class [mscorlib]System.Exception	V_11)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.1 
-	IL_0008:  brtrue IL_0015
+	IL_00e1:  nop 
+	IL_00e2:  nop 
+	IL_00e3:  ldarg.0 
+	IL_00e4:  ldloc.0 
+	IL_00e5:  ldarg.0 
+	IL_00e6:  ldfld string NAnt.Core.Filters.ReplaceString::_from
+	IL_00eb:  ldc.i4.0 
+	IL_00ec:  callvirt instance char string::get_Chars(int32)
+	IL_00f1:  call instance bool class NAnt.Core.Filters.ReplaceString::CompareCharacters(int32, int32)
+	IL_00f6:  brfalse IL_0183
 
-	IL_000d:  nop 
-	IL_000e:  ldloc.0 
-	IL_000f:  stloc.1 
-	IL_0010:  br IL_0182
+	IL_00fb:  nop 
+	IL_00fc:  ldarg.0 
+	IL_00fd:  ldloc.0 
+	IL_00fe:  ldarg.0 
+	IL_00ff:  ldflda bool NAnt.Core.Filters.ReplaceString::_endStreamAfterBuffer
+	IL_0104:  ldarg.0 
+	IL_0105:  ldflda string NAnt.Core.Filters.ReplaceString::_outputBuffer
+	IL_010a:  call instance bool class NAnt.Core.Filters.ReplaceString::FindString(int32, [out] bool&, [out] string&)
+	IL_010f:  brfalse IL_016d
 
-	IL_0015:  ldarg.1 
-	IL_0016:  ldc.i4.2 
-	IL_0017:  newarr [mscorlib]System.Char
-	IL_001c:  dup 
-	IL_001d:  ldc.i4.0 
-	IL_001e:  ldc.i4.s 0x3a
-	IL_0020:  stelem.i2 
-	IL_0021:  dup 
-	IL_0022:  ldc.i4.1 
-	IL_0023:  ldc.i4.s 0x3b
-	IL_0025:  stelem.i2 
-	IL_0026:  callvirt instance string[] string::Split(char[])
-	IL_002b:  stloc.2 
-	IL_002c:  ldc.i4.0 
-	IL_002d:  stloc.3 
-	IL_002e:  br IL_0172
+	IL_0114:  nop 
+	IL_0115:  ldarg.0 
+	IL_0116:  ldc.i4.0 
+	IL_0117:  stfld bool NAnt.Core.Filters.ReplaceString::_stringNotFound
+	IL_011c:  ldarg.0 
+	IL_011d:  ldfld string NAnt.Core.Filters.ReplaceString::_to
+	IL_0122:  ldsfld string [mscorlib]System.String::Empty
+	IL_0127:  call bool string::op_Equality(string, string)
+	IL_012c:  brfalse IL_0146
 
-	IL_0033:  nop 
-	IL_0034:  ldloc.2 
-	IL_0035:  ldloc.3 
-	IL_0036:  ldelem.ref 
-	IL_0037:  stloc.s 4
-	IL_0039:  ldloc.s 4
-	IL_003b:  callvirt instance int32 string::get_Length()
-	IL_0040:  ldc.i4.1 
-	IL_0041:  bne.un IL_00b3
+	IL_0131:  nop 
+	IL_0132:  ldarg.0 
+	IL_0133:  ldnull 
+	IL_0134:  stfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
+	IL_0139:  ldarg.0 
+	IL_013a:  ldarg.1 
+	IL_013b:  call instance int32 class NAnt.Core.Filters.ReplaceString::GetNextCharacter(class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate)
+	IL_0140:  stloc.2 
+	IL_0141:  br IL_018b
 
-	IL_0046:  ldloc.s 4
-	IL_0048:  ldc.i4.0 
-	IL_0049:  callvirt instance char string::get_Chars(int32)
-	IL_004e:  call bool char::IsLetter(char)
-	IL_0053:  brfalse IL_00b3
+	IL_0146:  nop 
+	IL_0147:  ldarg.0 
+	IL_0148:  ldarg.0 
+	IL_0149:  ldfld string NAnt.Core.Filters.ReplaceString::_to
+	IL_014e:  stfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
+	IL_0153:  ldarg.0 
+	IL_0154:  ldc.i4.1 
+	IL_0155:  stfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
+	IL_015a:  nop 
+	IL_015b:  ldarg.0 
+	IL_015c:  ldfld string NAnt.Core.Filters.ReplaceString::_to
+	IL_0161:  ldc.i4.0 
+	IL_0162:  callvirt instance char string::get_Chars(int32)
+	IL_0167:  stloc.2 
+	IL_0168:  br IL_018b
 
-	IL_0058:  ldsfld bool NAnt.Core.Types.PathSet::_dosBasedFileSystem
-	IL_005d:  brfalse IL_00b3
+	IL_016d:  nop 
+	IL_016e:  ldarg.0 
+	IL_016f:  ldc.i4.1 
+	IL_0170:  stfld bool NAnt.Core.Filters.ReplaceString::_stringNotFound
+	IL_0175:  ldarg.0 
+	IL_0176:  ldc.i4.1 
+	IL_0177:  stfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
+	IL_017c:  ldloc.0 
+	IL_017d:  stloc.2 
+	IL_017e:  br IL_018b
 
-	IL_0062:  ldloc.2 
-	IL_0063:  ldlen 
-	IL_0064:  conv.i4 
-	IL_0065:  ldloc.3 
-	IL_0066:  ldc.i4.1 
-	IL_0067:  add 
-	IL_0068:  ble IL_00b3
+	IL_0183:  nop 
+	IL_0184:  ldloc.0 
+	IL_0185:  stloc.2 
+	IL_0186:  br IL_018b
 
-	IL_006d:  nop 
-	IL_006e:  ldloc.2 
-	IL_006f:  ldloc.3 
-	IL_0070:  ldc.i4.1 
-	IL_0071:  add 
-	IL_0072:  ldelem.ref 
-	IL_0073:  callvirt instance string string::Trim()
-	IL_0078:  stloc.s 5
-	IL_007a:  ldloc.s 5
-	IL_007c:  ldstr "\\"
-	IL_0081:  callvirt instance bool string::StartsWith(string)
-	IL_0086:  brtrue IL_009c
+	IL_018b:  ldloc.2 
+	IL_018c:  ret 
+    } // end of method ReplaceString::GetNextCharacter
 
-	IL_008b:  ldloc.s 5
-	IL_008d:  ldstr "/"
-	IL_0092:  callvirt instance bool string::StartsWith(string)
-	IL_0097:  brfalse IL_00b2
+    // method line 537
+    .method private hidebysig 
+           instance default bool CompareCharacters (int32 char1, int32 char2)  cil managed 
+    {
+        // Method begins at RVA 0xbd50
+	// Code size 48 (0x30)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Filters.ReplaceString::_ignoreCase
+	IL_0007:  brfalse IL_0023
 
-	IL_009c:  nop 
-	IL_009d:  ldloc.s 4
-	IL_009f:  ldstr ":"
-	IL_00a4:  ldloc.s 5
-	IL_00a6:  call string string::Concat(string, string, string)
-	IL_00ab:  stloc.s 4
-	IL_00ad:  ldloc.3 
-	IL_00ae:  ldc.i4.1 
-	IL_00af:  add 
-	IL_00b0:  stloc.3 
-	IL_00b1:  nop 
-	IL_00b2:  nop 
-	IL_00b3:  ldloc.s 4
-	IL_00b5:  call string class [mscorlib]System.Environment::ExpandEnvironmentVariables(string)
-	IL_00ba:  stloc.s 6
-	IL_00bc:  ldloc.s 6
-	IL_00be:  ldstr "%"
-	IL_00c3:  callvirt instance bool string::StartsWith(string)
-	IL_00c8:  brfalse IL_00e4
+	IL_000c:  nop 
+	IL_000d:  ldarg.1 
+	IL_000e:  conv.u2 
+	IL_000f:  call char char::ToUpper(char)
+	IL_0014:  ldarg.2 
+	IL_0015:  conv.u2 
+	IL_0016:  call char char::ToUpper(char)
+	IL_001b:  ceq 
+	IL_001d:  stloc.0 
+	IL_001e:  br IL_002e
 
-	IL_00cd:  ldloc.s 6
-	IL_00cf:  ldstr "%"
-	IL_00d4:  callvirt instance bool string::EndsWith(string)
-	IL_00d9:  brfalse IL_00e4
+	IL_0023:  nop 
+	IL_0024:  ldarg.1 
+	IL_0025:  ldarg.2 
+	IL_0026:  ceq 
+	IL_0028:  stloc.0 
+	IL_0029:  br IL_002e
 
-	IL_00de:  nop 
-	IL_00df:  br IL_016e
+	IL_002e:  ldloc.0 
+	IL_002f:  ret 
+    } // end of method ReplaceString::CompareCharacters
 
-	IL_00e4:  nop 
-	IL_00e5:  ldloc.s 6
-	IL_00e7:  ldsfld char [mscorlib]System.IO.Path::PathSeparator
-	IL_00ec:  ldc.i4.0 
-	IL_00ed:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	IL_00f2:  stloc.s 8
-	IL_00f4:  ldc.i4.0 
-	IL_00f5:  stloc.s 9
-	IL_00f7:  br IL_0162
+	.property instance string From ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 66 72 6F 6D 01 00 54 02 08 52 65 71 75   // ...from..T..Requ
+		69 72 65 64 01                                  ) // ired.
 
-	IL_00fc:  ldloc.s 8
-	IL_00fe:  ldloc.s 9
-	IL_0100:  ldelem.ref 
-	IL_0101:  stloc.s 7
-	IL_0103:  nop 
-	.try { // 0
-	  IL_0104:  nop 
-	  IL_0105:  ldarg.0 
-	  IL_0106:  ldloc.s 7
-	  IL_0108:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	  IL_010d:  stloc.s 10
-	  IL_010f:  ldloc.0 
-	  IL_0110:  ldloc.s 10
-	  IL_0112:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	  IL_0117:  brtrue IL_0127
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-	  IL_011c:  nop 
-	  IL_011d:  ldloc.0 
-	  IL_011e:  ldloc.s 10
-	  IL_0120:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_0125:  pop 
-	  IL_0126:  nop 
-	  IL_0127:  nop 
-	  IL_0128:  leave IL_015b
+		.get instance default string NAnt.Core.Filters.ReplaceString::get_From () 
+		.set instance default void NAnt.Core.Filters.ReplaceString::set_From (string 'value') 
+	}
+	.property instance string To ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 02 74 6F 01 00 54 02 08 52 65 71 75 69 72   // ...to..T..Requir
+		65 64 00                                        ) // ed.
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_012d:  stloc.s 11
-	  IL_012f:  nop 
-	  IL_0130:  ldarg.0 
-	  IL_0131:  ldc.i4 2000
-	  IL_0136:  ldstr "Dropping path element '{0}' as it could not be resolved to a full path. {1}"
-	  IL_013b:  ldc.i4.2 
-	  IL_013c:  newarr [mscorlib]System.Object
-	  IL_0141:  dup 
-	  IL_0142:  ldc.i4.0 
-	  IL_0143:  ldloc.s 7
-	  IL_0145:  stelem.ref 
-	  IL_0146:  dup 
-	  IL_0147:  ldc.i4.1 
-	  IL_0148:  ldloc.s 11
-	  IL_014a:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	  IL_014f:  stelem.ref 
-	  IL_0150:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0155:  nop 
-	  IL_0156:  leave IL_015b
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 01                                           ) // y.
 
-	} // end handler 0
-	IL_015b:  nop 
-	IL_015c:  ldloc.s 9
-	IL_015e:  ldc.i4.1 
-	IL_015f:  add 
-	IL_0160:  stloc.s 9
-	IL_0162:  ldloc.s 9
-	IL_0164:  ldloc.s 8
-	IL_0166:  ldlen 
-	IL_0167:  conv.i4 
-	IL_0168:  blt IL_00fc
+		.get instance default string NAnt.Core.Filters.ReplaceString::get_To () 
+		.set instance default void NAnt.Core.Filters.ReplaceString::set_To (string 'value') 
+	}
+	.property instance bool IgnoreCase ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0A 69 67 6E 6F 72 65 63 61 73 65 01 00 54   // ...ignorecase..T
+		02 08 52 65 71 75 69 72 65 64 00                ) // ..Required.
 
-	IL_016d:  nop 
-	IL_016e:  ldloc.3 
-	IL_016f:  ldc.i4.1 
-	IL_0170:  add 
-	IL_0171:  stloc.3 
-	IL_0172:  ldloc.3 
-	IL_0173:  ldloc.2 
-	IL_0174:  ldlen 
-	IL_0175:  conv.i4 
-	IL_0176:  blt IL_0033
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	IL_017b:  ldloc.0 
-	IL_017c:  stloc.1 
-	IL_017d:  br IL_0182
+		.get instance default bool NAnt.Core.Filters.ReplaceString::get_IgnoreCase () 
+		.set instance default void NAnt.Core.Filters.ReplaceString::set_IgnoreCase (bool 'value') 
+	}
+  .class nested private auto ansi sealed AcquireCharDelegate
+  	extends [mscorlib]System.MulticastDelegate
+  {
 
-	IL_0182:  ldloc.1 
-	IL_0183:  ret 
-    } // end of method PathSet::TranslatePath
+    // method line 538
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::.ctor
 
-    // method line 639
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+    // method line 539
+    .method public virtual hidebysig newslot 
+           instance default int32 Invoke ()  runtime managed 
     {
-        // Method begins at RVA 0xb290
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldsfld char [mscorlib]System.IO.Path::PathSeparator
-	IL_0005:  ldc.i4.s 0x3b
-	IL_0007:  ceq 
-	IL_0009:  stsfld bool NAnt.Core.Types.PathSet::_dosBasedFileSystem
-	IL_000e:  ret 
-    } // end of method PathSet::.cctor
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::Invoke
 
-  } // end of class NAnt.Core.Types.PathSet
+    // method line 540
+    .method public virtual hidebysig newslot 
+           instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::BeginInvoke
+
+    // method line 541
+    .method public virtual hidebysig newslot 
+           instance default int32 EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::EndInvoke
+
+  } // end of class AcquireCharDelegate
+
+  } // end of class NAnt.Core.Filters.ReplaceString
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi serializable beforefieldinit FormatterCollection
-  	extends [mscorlib]System.Collections.CollectionBase
+  .class public auto ansi beforefieldinit ExpandProperties
+  	extends NAnt.Core.Filters.Filter
   {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
+		01 00 10 65 78 70 61 6E 64 70 72 6F 70 65 72 74   // ...expandpropert
+		69 65 73 00 00                                  ) // ies..
 
+    .field  private  class [mscorlib]System.Text.StringBuilder _buffer
+    .field private static literal  unsigned int16 MAX_RELIABLE_EXPRESSION_LENGTH = int16(0x00000800)
+    .field private static literal  int32 BUFFER_LENGTH = int32(0x00000fff)
 
-    // method line 640
+    // method line 542
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xb2a0
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method FormatterCollection::.ctor
-
-    // method line 641
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.FormatterCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb2a9
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Types.FormatterCollection::AddRange(class NAnt.Core.Types.FormatterCollection)
-	IL_000e:  ret 
-    } // end of method FormatterCollection::.ctor
-
-    // method line 642
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.Formatter[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb2b9
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xbd8c
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Types.FormatterCollection::AddRange(class NAnt.Core.Types.Formatter[])
-	IL_000e:  ret 
-    } // end of method FormatterCollection::.ctor
+	IL_0001:  call instance void class NAnt.Core.Filters.Filter::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ExpandProperties::.ctor
 
-    // method line 643
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Formatter get_Item (int32 index)  cil managed 
+    // method line 543
+    .method private hidebysig specialname 
+           instance default bool get_AtEnd ()  cil managed 
     {
-        // Method begins at RVA 0xb2cc
-	// Code size 26 (0x1a)
+        // Method begins at RVA 0xbd94
+	// Code size 23 (0x17)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.Formatter	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.Core.Types.Formatter
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0002:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
+	IL_0007:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_000c:  ldc.i4.0 
+	IL_000d:  ceq 
+	IL_000f:  stloc.0 
+	IL_0010:  br IL_0015
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method FormatterCollection::get_Item
+	IL_0015:  ldloc.0 
+	IL_0016:  ret 
+    } // end of method ExpandProperties::get_AtEnd
 
-    // method line 644
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Types.Formatter 'value')  cil managed 
+    // method line 544
+    .method public virtual hidebysig 
+           instance default void InitializeFilter ()  cil managed 
     {
-        // Method begins at RVA 0xb2f2
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xbdb7
+	// Code size 24 (0x18)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method FormatterCollection::set_Item
+	IL_0002:  ldc.i4 4095
+	IL_0007:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(int32)
+	IL_000c:  stfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
+	IL_0011:  ldarg.0 
+	IL_0012:  call instance void class NAnt.Core.Filters.ExpandProperties::ReplenishBuffer()
+	IL_0017:  ret 
+    } // end of method ExpandProperties::InitializeFilter
 
-    // method line 645
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Types.Formatter item)  cil managed 
+    // method line 545
+    .method public virtual hidebysig 
+           instance default int32 Read ()  cil managed 
     {
-        // Method begins at RVA 0xb304
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0xbdd0
+	// Code size 36 (0x24)
+	.maxstack 1
 	.locals init (
-		int32	V_0)
+		int32	V_0,
+		int32	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  callvirt instance int32 class NAnt.Core.Filters.ChainableReader::Peek()
+	IL_0007:  stloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance bool class NAnt.Core.Filters.ExpandProperties::get_AtEnd()
+	IL_000e:  brtrue IL_001b
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method FormatterCollection::Add
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance void class NAnt.Core.Filters.ExpandProperties::Advance()
+	IL_001a:  nop 
+	IL_001b:  ldloc.0 
+	IL_001c:  stloc.1 
+	IL_001d:  br IL_0022
 
-    // method line 646
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.Formatter[] items)  cil managed 
+	IL_0022:  ldloc.1 
+	IL_0023:  ret 
+    } // end of method ExpandProperties::Read
+
+    // method line 546
+    .method public virtual hidebysig 
+           instance default int32 Peek ()  cil managed 
     {
-        // Method begins at RVA 0xb328
-	// Code size 34 (0x22)
-	.maxstack 3
+        // Method begins at RVA 0xbe00
+	// Code size 41 (0x29)
+	.maxstack 2
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.Core.Filters.ExpandProperties::get_AtEnd()
+	IL_0007:  brfalse IL_0014
 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Core.Types.FormatterCollection::Add(class NAnt.Core.Types.Formatter)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
+	IL_000c:  nop 
+	IL_000d:  ldc.i4.m1 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0027
 
-	IL_0021:  ret 
-    } // end of method FormatterCollection::AddRange
+	IL_0014:  nop 
+	IL_0015:  ldarg.0 
+	IL_0016:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
+	IL_001b:  ldc.i4.0 
+	IL_001c:  callvirt instance char class [mscorlib]System.Text.StringBuilder::get_Chars(int32)
+	IL_0021:  stloc.0 
+	IL_0022:  br IL_0027
 
-    // method line 647
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Types.FormatterCollection items)  cil managed 
+	IL_0027:  ldloc.0 
+	IL_0028:  ret 
+    } // end of method ExpandProperties::Peek
+
+    // method line 547
+    .method private hidebysig 
+           instance default void Advance ()  cil managed 
     {
-        // Method begins at RVA 0xb358
-	// Code size 41 (0x29)
+        // Method begins at RVA 0xbe38
+	// Code size 73 (0x49)
 	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.Core.Filters.ExpandProperties::get_AtEnd()
+	IL_0007:  brfalse IL_001d
+
+	IL_000c:  nop 
+	IL_000d:  ldstr "String_EndOfOutput"
+	IL_0012:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0017:  newobj instance void class [mscorlib]System.IndexOutOfRangeException::'.ctor'(string)
+	IL_001c:  throw 
+	IL_001d:  ldarg.0 
+	IL_001e:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
+	IL_0023:  ldc.i4.0 
+	IL_0024:  ldc.i4.1 
+	IL_0025:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Remove(int32, int32)
+	IL_002a:  pop 
+	IL_002b:  ldarg.0 
+	IL_002c:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
+	IL_0031:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_0036:  ldc.i4 2047
+	IL_003b:  bne.un IL_0048
+
+	IL_0040:  nop 
+	IL_0041:  ldarg.0 
+	IL_0042:  call instance void class NAnt.Core.Filters.ExpandProperties::ReplenishBuffer()
+	IL_0047:  nop 
+	IL_0048:  ret 
+    } // end of method ExpandProperties::Advance
+
+    // method line 548
+    .method private hidebysig 
+           instance default void ReplenishBuffer ()  cil managed 
+    {
+        // Method begins at RVA 0xbe90
+	// Code size 273 (0x111)
+	.maxstack 5
 	.locals init (
-		int32	V_0)
+		bool	V_0,
+		int32	V_1,
+		string	V_2,
+		int32	V_3,
+		int32	V_4,
+		string	V_5)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
+	IL_0001:  ldc.i4.1 
 	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
+	IL_0003:  br IL_0031
 
 	IL_0008:  nop 
 	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Core.Types.Formatter class NAnt.Core.Types.FormatterCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Core.Types.FormatterCollection::Add(class NAnt.Core.Types.Formatter)
-	IL_0016:  pop 
+	IL_000a:  call instance int32 class NAnt.Core.Filters.ChainableReader::Read()
+	IL_000f:  stloc.1 
+	IL_0010:  ldloc.1 
+	IL_0011:  ldc.i4.m1 
+	IL_0012:  beq IL_002c
+
 	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0023:  blt IL_0008
+	IL_0018:  ldarg.0 
+	IL_0019:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
+	IL_001e:  ldloc.1 
+	IL_001f:  conv.u2 
+	IL_0020:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_0025:  pop 
+	IL_0026:  nop 
+	IL_0027:  br IL_0030
 
-	IL_0028:  ret 
-    } // end of method FormatterCollection::AddRange
+	IL_002c:  nop 
+	IL_002d:  ldc.i4.0 
+	IL_002e:  stloc.0 
+	IL_002f:  nop 
+	IL_0030:  nop 
+	IL_0031:  ldarg.0 
+	IL_0032:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
+	IL_0037:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_003c:  ldc.i4 4095
+	IL_0041:  bge IL_004c
 
-    // method line 648
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Types.Formatter item)  cil managed 
-    {
-        // Method begins at RVA 0xb390
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0046:  ldloc.0 
+	IL_0047:  brtrue IL_0008
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method FormatterCollection::Contains
+	IL_004c:  ldarg.0 
+	IL_004d:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
+	IL_0052:  callvirt instance string object::ToString()
+	IL_0057:  stloc.2 
+	IL_0058:  ldloc.2 
+	IL_0059:  ldstr "${"
+	IL_005e:  callvirt instance int32 string::LastIndexOf(string)
+	IL_0063:  stloc.3 
+	IL_0064:  ldloc.2 
+	IL_0065:  ldc.i4.s 0x7d
+	IL_0067:  callvirt instance int32 string::LastIndexOf(char)
+	IL_006c:  stloc.s 4
+	IL_006e:  ldloc.s 4
+	IL_0070:  ldloc.3 
+	IL_0071:  bge IL_00d7
 
-    // method line 649
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Types.Formatter[] 'array', int32 index)  cil managed 
-    {
-        // Method begins at RVA 0xb3b1
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method FormatterCollection::CopyTo
+	IL_0076:  nop 
+	IL_0077:  ldarg.0 
+	IL_0078:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_007d:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0082:  ldloc.2 
+	IL_0083:  ldc.i4.0 
+	IL_0084:  ldloc.3 
+	IL_0085:  callvirt instance string string::Substring(int32, int32)
+	IL_008a:  ldarg.0 
+	IL_008b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0090:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
+	IL_0095:  stloc.s 5
+	IL_0097:  ldloc.2 
+	IL_0098:  ldloc.3 
+	IL_0099:  callvirt instance string string::Substring(int32)
+	IL_009e:  stloc.2 
+	IL_009f:  ldarg.0 
+	IL_00a0:  ldloc.s 5
+	IL_00a2:  ldc.i4 4095
+	IL_00a7:  ldloc.s 5
+	IL_00a9:  callvirt instance int32 string::get_Length()
+	IL_00ae:  ldloc.2 
+	IL_00af:  callvirt instance int32 string::get_Length()
+	IL_00b4:  add 
+	IL_00b5:  call int32 class [mscorlib]System.Math::Max(int32, int32)
+	IL_00ba:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string, int32)
+	IL_00bf:  stfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
+	IL_00c4:  ldarg.0 
+	IL_00c5:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
+	IL_00ca:  ldloc.2 
+	IL_00cb:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00d0:  pop 
+	IL_00d1:  nop 
+	IL_00d2:  br IL_0110
 
-    // method line 650
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Types.Formatter item)  cil managed 
-    {
-        // Method begins at RVA 0xb3c4
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_00d7:  nop 
+	IL_00d8:  ldarg.0 
+	IL_00d9:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_00de:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_00e3:  ldloc.2 
+	IL_00e4:  ldarg.0 
+	IL_00e5:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_00ea:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
+	IL_00ef:  stloc.s 5
+	IL_00f1:  ldarg.0 
+	IL_00f2:  ldloc.s 5
+	IL_00f4:  ldc.i4 4095
+	IL_00f9:  ldloc.s 5
+	IL_00fb:  callvirt instance int32 string::get_Length()
+	IL_0100:  call int32 class [mscorlib]System.Math::Max(int32, int32)
+	IL_0105:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string, int32)
+	IL_010a:  stfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
+	IL_010f:  nop 
+	IL_0110:  ret 
+    } // end of method ExpandProperties::ReplenishBuffer
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method FormatterCollection::IndexOf
+	.property instance bool AtEnd ()
+	{
+		.get instance default bool NAnt.Core.Filters.ExpandProperties::get_AtEnd () 
+	}
+  } // end of class NAnt.Core.Filters.ExpandProperties
+}
 
-    // method line 651
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Types.Formatter item)  cil managed 
+.namespace NAnt.Core.Filters
+{
+  .class public auto ansi beforefieldinit TabsToSpaces
+  	extends NAnt.Core.Filters.Filter
+  {
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
+		01 00 0C 74 61 62 73 74 6F 73 70 61 63 65 73 00   // ...tabstospaces.
+		00                                              ) // .
+
+    .field  private  int32 _tabLength
+    .field  private  int32 _spacesRemaining
+    .field  private  class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate ReadChar
+
+    // method line 549
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xb3e5
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xbfad
+	// Code size 14 (0xe)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method FormatterCollection::Insert
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.8 
+	IL_0002:  stfld int32 NAnt.Core.Filters.TabsToSpaces::_tabLength
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Filters.Filter::'.ctor'()
+	IL_000d:  ret 
+    } // end of method TabsToSpaces::.ctor
 
-    // method line 652
-    .method public hidebysig 
-           instance default class NAnt.Core.Types.FormatterEnumerator GetEnumerator ()  cil managed 
+    // method line 550
+    .method public hidebysig specialname 
+           instance default int32 get_TabLength ()  cil managed 
     {
-        // Method begins at RVA 0xb3f8
+        // Method begins at RVA 0xbfbc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FormatterEnumerator	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.Types.FormatterEnumerator::'.ctor'(class NAnt.Core.Types.FormatterCollection)
+	IL_0002:  ldfld int32 NAnt.Core.Filters.TabsToSpaces::_tabLength
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FormatterCollection::GetEnumerator
+    } // end of method TabsToSpaces::get_TabLength
 
-    // method line 653
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Types.Formatter item)  cil managed 
+    // method line 551
+    .method public hidebysig specialname 
+           instance default void set_TabLength (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0xb413
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xbfd7
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method FormatterCollection::Remove
-
-	.property instance class NAnt.Core.Types.Formatter Item (int32)
-	{
-		.get instance default class NAnt.Core.Types.Formatter NAnt.Core.Types.FormatterCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Core.Types.FormatterCollection::set_Item (int32 index, class NAnt.Core.Types.Formatter 'value') 
-	}
-  } // end of class NAnt.Core.Types.FormatterCollection
-}
-
-.namespace NAnt.Core.Types
-{
-  .class public auto ansi beforefieldinit FormatterEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Core.Filters.TabsToSpaces::_tabLength
+	IL_0008:  ret 
+    } // end of method TabsToSpaces::set_TabLength
 
-    // method line 654
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Types.FormatterCollection arguments)  cil managed 
+    // method line 552
+    .method public virtual hidebysig 
+           instance default void Chain (class NAnt.Core.Filters.ChainableReader chainedReader)  cil managed 
     {
-        // Method begins at RVA 0xb424
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  stloc.0 
+        // Method begins at RVA 0xbfe1
+	// Code size 27 (0x1b)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Filters.ChainableReader::Chain(class NAnt.Core.Filters.ChainableReader)
+	IL_0008:  ldarg.0 
 	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.FormatterEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method FormatterEnumerator::.ctor
+	IL_000a:  ldftn instance int32 class NAnt.Core.Filters.ChainableReader::Read()
+	IL_0010:  newobj instance void class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate::'.ctor'(object, native int)
+	IL_0015:  stfld class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate NAnt.Core.Filters.TabsToSpaces::ReadChar
+	IL_001a:  ret 
+    } // end of method TabsToSpaces::Chain
 
-    // method line 655
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Formatter get_Current ()  cil managed 
+    // method line 553
+    .method public virtual hidebysig 
+           instance default int32 Peek ()  cil managed 
     {
-        // Method begins at RVA 0xb448
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.Formatter	V_0)
+        // Method begins at RVA 0xbffd
+	// Code size 17 (0x11)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.FormatterEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.Types.Formatter
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method FormatterEnumerator::get_Current
+	IL_0001:  ldstr "String_PeekNotSupported"
+	IL_0006:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_000b:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
+	IL_0010:  throw 
+    } // end of method TabsToSpaces::Peek
 
-    // method line 656
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    // method line 554
+    .method public virtual hidebysig 
+           instance default int32 Read ()  cil managed 
     {
-        // Method begins at RVA 0xb470
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0xc010
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		object	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.FormatterEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate NAnt.Core.Filters.TabsToSpaces::ReadChar
+	IL_0008:  call instance int32 class NAnt.Core.Filters.TabsToSpaces::GetNextCharacter(class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FormatterEnumerator::System.Collections.IEnumerator.get_Current
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method TabsToSpaces::Read
 
-    // method line 657
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
+    // method line 555
+    .method private hidebysig 
+           instance default int32 GetNextCharacter (class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate AcquireChar)  cil managed 
     {
-        // Method begins at RVA 0xb490
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0xc034
+	// Code size 84 (0x54)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		int32	V_0,
+		int32	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.FormatterEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld int32 NAnt.Core.Filters.TabsToSpaces::_spacesRemaining
+	IL_0007:  brtrue IL_003b
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FormatterEnumerator::MoveNext
+	IL_000c:  nop 
+	IL_000d:  ldarg.1 
+	IL_000e:  callvirt instance int32 class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate::Invoke()
+	IL_0013:  stloc.0 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.s 0x09
+	IL_0017:  bne.un IL_0033
 
-    // method line 658
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+	IL_001c:  nop 
+	IL_001d:  ldarg.0 
+	IL_001e:  ldarg.0 
+	IL_001f:  call instance int32 class NAnt.Core.Filters.TabsToSpaces::get_TabLength()
+	IL_0024:  ldc.i4.1 
+	IL_0025:  sub 
+	IL_0026:  stfld int32 NAnt.Core.Filters.TabsToSpaces::_spacesRemaining
+	IL_002b:  ldc.i4.s 0x20
+	IL_002d:  stloc.1 
+	IL_002e:  br IL_0052
+
+	IL_0033:  nop 
+	IL_0034:  ldloc.0 
+	IL_0035:  stloc.1 
+	IL_0036:  br IL_0052
+
+	IL_003b:  nop 
+	IL_003c:  ldarg.0 
+	IL_003d:  dup 
+	IL_003e:  ldfld int32 NAnt.Core.Filters.TabsToSpaces::_spacesRemaining
+	IL_0043:  ldc.i4.1 
+	IL_0044:  sub 
+	IL_0045:  stfld int32 NAnt.Core.Filters.TabsToSpaces::_spacesRemaining
+	IL_004a:  ldc.i4.s 0x20
+	IL_004c:  stloc.1 
+	IL_004d:  br IL_0052
+
+	IL_0052:  ldloc.1 
+	IL_0053:  ret 
+    } // end of method TabsToSpaces::GetNextCharacter
+
+	.property instance int32 TabLength ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 74 61 62 6C 65 6E 67 74 68 00 00 ) // ...tablength..
+
+		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (
+		01 00 02 00 54 08 08 4D 69 6E 56 61 6C 75 65 01   // ....T..MinValue.
+		00 00 00 54 08 08 4D 61 78 56 61 6C 75 65 64 00   // ...T..MaxValued.
+		00 00                                           ) // ..
+
+		.get instance default int32 NAnt.Core.Filters.TabsToSpaces::get_TabLength () 
+		.set instance default void NAnt.Core.Filters.TabsToSpaces::set_TabLength (int32 'value') 
+	}
+  .class nested private auto ansi sealed AcquireCharDelegate
+  	extends [mscorlib]System.MulticastDelegate
+  {
+
+    // method line 556
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
     {
-        // Method begins at RVA 0xb4b0
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.FormatterEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::.ctor
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FormatterEnumerator::System.Collections.IEnumerator.MoveNext
+    // method line 557
+    .method public virtual hidebysig newslot 
+           instance default int32 Invoke ()  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::Invoke
 
-    // method line 659
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
+    // method line 558
+    .method public virtual hidebysig newslot 
+           instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
     {
-        // Method begins at RVA 0xb4d0
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.FormatterEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method FormatterEnumerator::Reset
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::BeginInvoke
 
-    // method line 660
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    // method line 559
+    .method public virtual hidebysig newslot 
+           instance default int32 EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
     {
-        // Method begins at RVA 0xb4de
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.FormatterEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method FormatterEnumerator::System.Collections.IEnumerator.Reset
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::EndInvoke
 
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.Core.Types.FormatterEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.Core.Types.Formatter Current ()
-	{
-		.get instance default class NAnt.Core.Types.Formatter NAnt.Core.Types.FormatterEnumerator::get_Current () 
-	}
-  } // end of class NAnt.Core.Types.FormatterEnumerator
+  } // end of class AcquireCharDelegate
+
+  } // end of class NAnt.Core.Filters.TabsToSpaces
 }
 
-.namespace NAnt.Core.Types
+.namespace NAnt.Core.Filters
 {
-  .class public auto ansi serializable beforefieldinit PathElement
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit ReplaceTokens
+  	extends NAnt.Core.Filters.Filter
   {
     .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
-		01 00 0B 70 61 74 68 65 6C 65 6D 65 6E 74 00 00 ) // ...pathelement..
+		01 00 0D 72 65 70 6C 61 63 65 74 6F 6B 65 6E 73   // ...replacetokens
+		00 00                                           ) // ..
 
-    .field  private  class [mscorlib]System.IO.FileInfo _file
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _directory
-    .field  private  class NAnt.Core.Types.PathSet _path
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+    .field  private  char _beginToken
+    .field  private  char _endToken
+    .field  private  class NAnt.Core.Types.Token[] _tokens
+    .field  private  class [System]System.Collections.Specialized.StringDictionary _tokenValues
+    .field  private  class [mscorlib]System.Text.StringBuilder _tokenString
+    .field  private  int32 _maxTokenLength
+    .field  private  string _outputBuffer
+    .field  private  bool _endStreamAfterBuffer
+    .field  private  int32 _bufferPosition
+    .field  private  bool _unknownToken
+    .field  private  bool _tokenNotFound
+    .field  private  bool _ignoreCase
+    .field  private  class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate ReadChar
 
-    // method line 661
+    // method line 560
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xb4ec
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xc094
+	// Code size 48 (0x30)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.PathElement::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  ret 
-    } // end of method PathElement::.ctor
+	IL_0001:  ldc.i4.s 0x40
+	IL_0003:  stfld char NAnt.Core.Filters.ReplaceTokens::_beginToken
+	IL_0008:  ldarg.0 
+	IL_0009:  ldc.i4.s 0x40
+	IL_000b:  stfld char NAnt.Core.Filters.ReplaceTokens::_endToken
+	IL_0010:  ldarg.0 
+	IL_0011:  newobj instance void class [System]System.Collections.Specialized.StringDictionary::'.ctor'()
+	IL_0016:  stfld class [System]System.Collections.Specialized.StringDictionary NAnt.Core.Filters.ReplaceTokens::_tokenValues
+	IL_001b:  ldarg.0 
+	IL_001c:  ldc.i4.1 
+	IL_001d:  stfld bool NAnt.Core.Filters.ReplaceTokens::_unknownToken
+	IL_0022:  ldarg.0 
+	IL_0023:  ldc.i4.1 
+	IL_0024:  stfld bool NAnt.Core.Filters.ReplaceTokens::_tokenNotFound
+	IL_0029:  ldarg.0 
+	IL_002a:  call instance void class NAnt.Core.Filters.Filter::'.ctor'()
+	IL_002f:  ret 
+    } // end of method ReplaceTokens::.ctor
 
-    // method line 662
+    // method line 561
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+           instance default char get_BeginToken ()  cil managed 
     {
-        // Method begins at RVA 0xb4fc
+        // Method begins at RVA 0xc0c8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		char	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.PathElement::_file
+	IL_0002:  ldfld char NAnt.Core.Filters.ReplaceTokens::_beginToken
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PathElement::get_File
+    } // end of method ReplaceTokens::get_BeginToken
 
-    // method line 663
+    // method line 562
     .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_BeginToken (char 'value')  cil managed 
     {
-        // Method begins at RVA 0xb517
+        // Method begins at RVA 0xc0e3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.PathElement::_file
+	IL_0003:  stfld char NAnt.Core.Filters.ReplaceTokens::_beginToken
 	IL_0008:  ret 
-    } // end of method PathElement::set_File
+    } // end of method ReplaceTokens::set_BeginToken
 
-    // method line 664
+    // method line 563
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
+           instance default char get_EndToken ()  cil managed 
     {
-        // Method begins at RVA 0xb524
+        // Method begins at RVA 0xc0f0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		char	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.PathElement::_directory
+	IL_0002:  ldfld char NAnt.Core.Filters.ReplaceTokens::_endToken
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PathElement::get_Directory
+    } // end of method ReplaceTokens::get_EndToken
 
-    // method line 665
+    // method line 564
     .method public hidebysig specialname 
-           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+           instance default void set_EndToken (char 'value')  cil managed 
     {
-        // Method begins at RVA 0xb53f
+        // Method begins at RVA 0xc10b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.PathElement::_directory
+	IL_0003:  stfld char NAnt.Core.Filters.ReplaceTokens::_endToken
 	IL_0008:  ret 
-    } // end of method PathElement::set_Directory
+    } // end of method ReplaceTokens::set_EndToken
 
-    // method line 666
+    // method line 565
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
+           instance default class NAnt.Core.Types.Token[] get_Tokens ()  cil managed 
     {
-        // Method begins at RVA 0xb54c
+        // Method begins at RVA 0xc118
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.PathSet	V_0)
+		class NAnt.Core.Types.Token[]	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.PathElement::_path
+	IL_0002:  ldfld class NAnt.Core.Types.Token[] NAnt.Core.Filters.ReplaceTokens::_tokens
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PathElement::get_Path
+    } // end of method ReplaceTokens::get_Tokens
 
-    // method line 667
+    // method line 566
     .method public hidebysig specialname 
-           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
+           instance default void set_Tokens (class NAnt.Core.Types.Token[] 'value')  cil managed 
     {
-        // Method begins at RVA 0xb567
+        // Method begins at RVA 0xc133
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.PathSet NAnt.Core.Types.PathElement::_path
+	IL_0003:  stfld class NAnt.Core.Types.Token[] NAnt.Core.Filters.ReplaceTokens::_tokens
 	IL_0008:  ret 
-    } // end of method PathElement::set_Path
+    } // end of method ReplaceTokens::set_Tokens
 
-    // method line 668
+    // method line 567
     .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+           instance default bool get_IgnoreCase ()  cil managed 
     {
-        // Method begins at RVA 0xb574
+        // Method begins at RVA 0xc140
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.PathElement::_ifDefined
+	IL_0002:  ldfld bool NAnt.Core.Filters.ReplaceTokens::_ignoreCase
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PathElement::get_IfDefined
+    } // end of method ReplaceTokens::get_IgnoreCase
 
-    // method line 669
+    // method line 568
     .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+           instance default void set_IgnoreCase (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xb58f
+        // Method begins at RVA 0xc15b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.PathElement::_ifDefined
+	IL_0003:  stfld bool NAnt.Core.Filters.ReplaceTokens::_ignoreCase
 	IL_0008:  ret 
-    } // end of method PathElement::set_IfDefined
-
-    // method line 670
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0xb59c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.PathElement::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method PathElement::get_UnlessDefined
+    } // end of method ReplaceTokens::set_IgnoreCase
 
-    // method line 671
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 569
+    .method public virtual hidebysig 
+           instance default void Chain (class NAnt.Core.Filters.ChainableReader chainedReader)  cil managed 
     {
-        // Method begins at RVA 0xb5b7
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xc165
+	// Code size 27 (0x1b)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.PathElement::_unlessDefined
-	IL_0008:  ret 
-    } // end of method PathElement::set_UnlessDefined
+	IL_0003:  call instance void class NAnt.Core.Filters.ChainableReader::Chain(class NAnt.Core.Filters.ChainableReader)
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldftn instance int32 class NAnt.Core.Filters.ChainableReader::Read()
+	IL_0010:  newobj instance void class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate::'.ctor'(object, native int)
+	IL_0015:  stfld class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate NAnt.Core.Filters.ReplaceTokens::ReadChar
+	IL_001a:  ret 
+    } // end of method ReplaceTokens::Chain
 
-    // method line 672
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Parts ()  cil managed 
+    // method line 570
+    .method public virtual hidebysig 
+           instance default int32 Read ()  cil managed 
     {
-        // Method begins at RVA 0xb5c4
-	// Code size 129 (0x81)
+        // Method begins at RVA 0xc184
+	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		class [System]System.Collections.Specialized.StringCollection	V_1,
-		class [System]System.Collections.Specialized.StringCollection	V_2)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.PathElement::get_File()
-	IL_0007:  brfalse IL_002c
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate NAnt.Core.Filters.ReplaceTokens::ReadChar
+	IL_0008:  call instance int32 class NAnt.Core.Filters.ReplaceTokens::GetNextCharacter(class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_000c:  nop 
-	IL_000d:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0012:  stloc.0 
 	IL_0013:  ldloc.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.PathElement::get_File()
-	IL_001a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0024:  pop 
-	IL_0025:  ldloc.0 
-	IL_0026:  stloc.1 
-	IL_0027:  br IL_007f
+	IL_0014:  ret 
+    } // end of method ReplaceTokens::Read
 
-	IL_002c:  ldarg.0 
-	IL_002d:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.PathElement::get_Directory()
-	IL_0032:  brfalse IL_0057
+    // method line 571
+    .method public virtual hidebysig 
+           instance default int32 Peek ()  cil managed 
+    {
+        // Method begins at RVA 0xc1a5
+	// Code size 17 (0x11)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldstr "String_PeekNotSupported"
+	IL_0006:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_000b:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
+	IL_0010:  throw 
+    } // end of method ReplaceTokens::Peek
 
-	IL_0037:  nop 
-	IL_0038:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_003d:  stloc.2 
-	IL_003e:  ldloc.2 
-	IL_003f:  ldarg.0 
-	IL_0040:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.PathElement::get_Directory()
-	IL_0045:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_004a:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_004f:  pop 
-	IL_0050:  ldloc.2 
-	IL_0051:  stloc.1 
-	IL_0052:  br IL_007f
+    // method line 572
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0xc1b8
+	// Code size 190 (0xbe)
+	.maxstack 4
+	.locals init (
+		class NAnt.Core.Types.Token	V_0,
+		class NAnt.Core.Types.Token[]	V_1,
+		int32	V_2)
+	IL_0000:  nop 
+	IL_0001:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  call instance class NAnt.Core.Types.Token[] class NAnt.Core.Filters.ReplaceTokens::get_Tokens()
+	IL_0008:  stloc.1 
+	IL_0009:  ldc.i4.0 
+	IL_000a:  stloc.2 
+	IL_000b:  br IL_0072
 
-	IL_0057:  ldarg.0 
-	IL_0058:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.PathElement::get_Path()
-	IL_005d:  brfalse IL_0074
+	IL_0010:  ldloc.1 
+	IL_0011:  ldloc.2 
+	IL_0012:  ldelem.ref 
+	IL_0013:  stloc.0 
+	IL_0014:  nop 
+	IL_0015:  ldloc.0 
+	IL_0016:  callvirt instance bool class NAnt.Core.Types.Token::get_IfDefined()
+	IL_001b:  brfalse IL_006d
 
-	IL_0062:  nop 
-	IL_0063:  ldarg.0 
-	IL_0064:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.PathElement::get_Path()
-	IL_0069:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.PathSet::GetElements()
-	IL_006e:  stloc.1 
-	IL_006f:  br IL_007f
+	IL_0020:  ldloc.0 
+	IL_0021:  callvirt instance bool class NAnt.Core.Types.Token::get_UnlessDefined()
+	IL_0026:  brtrue IL_006d
 
-	IL_0074:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0079:  stloc.1 
-	IL_007a:  br IL_007f
+	IL_002b:  nop 
+	IL_002c:  ldarg.0 
+	IL_002d:  ldfld class [System]System.Collections.Specialized.StringDictionary NAnt.Core.Filters.ReplaceTokens::_tokenValues
+	IL_0032:  ldloc.0 
+	IL_0033:  callvirt instance string class NAnt.Core.Types.Token::get_Key()
+	IL_0038:  ldloc.0 
+	IL_0039:  callvirt instance string class NAnt.Core.Types.Token::get_Value()
+	IL_003e:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::Add(string, string)
+	IL_0043:  ldloc.0 
+	IL_0044:  callvirt instance string class NAnt.Core.Types.Token::get_Key()
+	IL_0049:  callvirt instance int32 string::get_Length()
+	IL_004e:  ldarg.0 
+	IL_004f:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_maxTokenLength
+	IL_0054:  ble IL_006c
 
-	IL_007f:  ldloc.1 
-	IL_0080:  ret 
-    } // end of method PathElement::get_Parts
+	IL_0059:  nop 
+	IL_005a:  ldarg.0 
+	IL_005b:  ldloc.0 
+	IL_005c:  callvirt instance string class NAnt.Core.Types.Token::get_Key()
+	IL_0061:  callvirt instance int32 string::get_Length()
+	IL_0066:  stfld int32 NAnt.Core.Filters.ReplaceTokens::_maxTokenLength
+	IL_006b:  nop 
+	IL_006c:  nop 
+	IL_006d:  nop 
+	IL_006e:  ldloc.2 
+	IL_006f:  ldc.i4.1 
+	IL_0070:  add 
+	IL_0071:  stloc.2 
+	IL_0072:  ldloc.2 
+	IL_0073:  ldloc.1 
+	IL_0074:  ldlen 
+	IL_0075:  conv.i4 
+	IL_0076:  blt IL_0010
 
-    // method line 673
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+	IL_007b:  ldarg.0 
+	IL_007c:  ldfld class [System]System.Collections.Specialized.StringDictionary NAnt.Core.Filters.ReplaceTokens::_tokenValues
+	IL_0081:  callvirt instance int32 class [System]System.Collections.Specialized.StringDictionary::get_Count()
+	IL_0086:  brtrue IL_00a2
+
+	IL_008b:  nop 
+	IL_008c:  ldstr "String_OneOrMoreTokens"
+	IL_0091:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0096:  ldarg.0 
+	IL_0097:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_009c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_00a1:  throw 
+	IL_00a2:  ldarg.0 
+	IL_00a3:  ldarg.0 
+	IL_00a4:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_maxTokenLength
+	IL_00a9:  ldc.i4.1 
+	IL_00aa:  add 
+	IL_00ab:  ldarg.0 
+	IL_00ac:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_maxTokenLength
+	IL_00b1:  ldc.i4.1 
+	IL_00b2:  add 
+	IL_00b3:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(int32, int32)
+	IL_00b8:  stfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
+	IL_00bd:  ret 
+    } // end of method ReplaceTokens::Initialize
+
+    // method line 573
+    .method private hidebysig 
+           instance default string FindTokenContents ([out] bool& tokenNotFound, [out] bool& unknownToken, [out] bool& streamEnded)  cil managed 
     {
-        // Method begins at RVA 0xb654
-	// Code size 134 (0x86)
+        // Method begins at RVA 0xc284
+	// Code size 385 (0x181)
 	.maxstack 3
+	.locals init (
+		int32	V_0,
+		char	V_1,
+		bool	V_2,
+		int32	V_3,
+		string	V_4,
+		string	V_5,
+		string	V_6)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.PathElement::get_File()
-	IL_0007:  brtrue IL_0043
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  call instance char class NAnt.Core.Filters.ReplaceTokens::get_BeginToken()
+	IL_0009:  stloc.1 
+	IL_000a:  ldc.i4.0 
+	IL_000b:  stloc.2 
+	IL_000c:  ldarg.1 
+	IL_000d:  ldc.i4.0 
+	IL_000e:  stind.i1 
+	IL_000f:  ldarg.3 
+	IL_0010:  ldc.i4.0 
+	IL_0011:  stind.i1 
+	IL_0012:  ldarg.2 
+	IL_0013:  ldc.i4.1 
+	IL_0014:  stind.i1 
+	IL_0015:  ldarg.0 
+	IL_0016:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
+	IL_001b:  ldc.i4.0 
+	IL_001c:  callvirt instance void class [mscorlib]System.Text.StringBuilder::set_Length(int32)
+	IL_0021:  br IL_00d1
 
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.PathElement::get_Directory()
-	IL_0012:  brtrue IL_0043
+	IL_0026:  nop 
+	IL_0027:  ldloc.0 
+	IL_0028:  ldc.i4.1 
+	IL_0029:  add 
+	IL_002a:  stloc.0 
+	IL_002b:  ldarg.0 
+	IL_002c:  call instance int32 class NAnt.Core.Filters.ChainableReader::Read()
+	IL_0031:  stloc.3 
+	IL_0032:  ldloc.3 
+	IL_0033:  conv.u2 
+	IL_0034:  stloc.1 
+	IL_0035:  ldloc.3 
+	IL_0036:  ldc.i4.m1 
+	IL_0037:  bne.un IL_0058
 
-	IL_0017:  ldarg.0 
-	IL_0018:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.PathElement::get_Path()
-	IL_001d:  brtrue IL_0043
+	IL_003c:  nop 
+	IL_003d:  ldarg.1 
+	IL_003e:  ldc.i4.1 
+	IL_003f:  stind.i1 
+	IL_0040:  ldarg.2 
+	IL_0041:  ldc.i4.1 
+	IL_0042:  stind.i1 
+	IL_0043:  ldarg.3 
+	IL_0044:  ldc.i4.1 
+	IL_0045:  stind.i1 
+	IL_0046:  ldarg.0 
+	IL_0047:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
+	IL_004c:  callvirt instance string object::ToString()
+	IL_0051:  stloc.s 4
+	IL_0053:  br IL_017e
 
-	IL_0022:  nop 
-	IL_0023:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InstalledUICulture()
-	IL_0028:  ldstr "At least \"file\", \"directory\" or \"path\" must be specified."
-	IL_002d:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_0032:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0037:  ldarg.0 
-	IL_0038:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_003d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0042:  throw 
-	IL_0043:  ldarg.0 
-	IL_0044:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.PathElement::get_File()
-	IL_0049:  brtrue IL_0085
+	IL_0058:  ldarg.0 
+	IL_0059:  ldloc.1 
+	IL_005a:  ldarg.0 
+	IL_005b:  call instance char class NAnt.Core.Filters.ReplaceTokens::get_EndToken()
+	IL_0060:  call instance bool class NAnt.Core.Filters.ReplaceTokens::CompareCharacters(int32, int32)
+	IL_0065:  brfalse IL_0072
 
-	IL_004e:  ldarg.0 
-	IL_004f:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.PathElement::get_Directory()
-	IL_0054:  brtrue IL_0085
+	IL_006a:  nop 
+	IL_006b:  ldc.i4.1 
+	IL_006c:  stloc.2 
+	IL_006d:  br IL_00dd
 
-	IL_0059:  ldarg.0 
-	IL_005a:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.PathElement::get_Path()
-	IL_005f:  brtrue IL_0085
+	IL_0072:  ldarg.0 
+	IL_0073:  ldloc.1 
+	IL_0074:  ldarg.0 
+	IL_0075:  call instance char class NAnt.Core.Filters.ReplaceTokens::get_BeginToken()
+	IL_007a:  call instance bool class NAnt.Core.Filters.ReplaceTokens::CompareCharacters(int32, int32)
+	IL_007f:  brfalse IL_00c1
 
-	IL_0064:  nop 
-	IL_0065:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InstalledUICulture()
-	IL_006a:  ldstr "\"file\", \"directory\" and \"path\" cannot be specified together."
-	IL_006f:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_0074:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0079:  ldarg.0 
-	IL_007a:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_007f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0084:  throw 
-	IL_0085:  ret 
-    } // end of method PathElement::Initialize
+	IL_0084:  ldarg.0 
+	IL_0085:  ldarg.0 
+	IL_0086:  call instance char class NAnt.Core.Filters.ReplaceTokens::get_EndToken()
+	IL_008b:  ldarg.0 
+	IL_008c:  call instance char class NAnt.Core.Filters.ReplaceTokens::get_BeginToken()
+	IL_0091:  call instance bool class NAnt.Core.Filters.ReplaceTokens::CompareCharacters(int32, int32)
+	IL_0096:  brtrue IL_00c1
 
-	.property instance class [mscorlib]System.IO.FileInfo File ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
+	IL_009b:  nop 
+	IL_009c:  ldarg.1 
+	IL_009d:  ldc.i4.1 
+	IL_009e:  stind.i1 
+	IL_009f:  ldarg.2 
+	IL_00a0:  ldc.i4.1 
+	IL_00a1:  stind.i1 
+	IL_00a2:  ldarg.0 
+	IL_00a3:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
+	IL_00a8:  ldloc.1 
+	IL_00a9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_00ae:  pop 
+	IL_00af:  ldarg.0 
+	IL_00b0:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
+	IL_00b5:  callvirt instance string object::ToString()
+	IL_00ba:  stloc.s 4
+	IL_00bc:  br IL_017e
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Types.PathElement::get_File () 
-		.set instance default void NAnt.Core.Types.PathElement::set_File (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo Directory ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 69 72 00 00 ) // ...dir..
+	IL_00c1:  nop 
+	IL_00c2:  ldarg.0 
+	IL_00c3:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
+	IL_00c8:  ldloc.1 
+	IL_00c9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_00ce:  pop 
+	IL_00cf:  nop 
+	IL_00d0:  nop 
+	IL_00d1:  ldloc.0 
+	IL_00d2:  ldarg.0 
+	IL_00d3:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_maxTokenLength
+	IL_00d8:  ble IL_0026
 
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.PathElement::get_Directory () 
-		.set instance default void NAnt.Core.Types.PathElement::set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance class NAnt.Core.Types.PathSet Path ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
+	IL_00dd:  ldloc.2 
+	IL_00de:  brfalse IL_0165
 
-		.get instance default class NAnt.Core.Types.PathSet NAnt.Core.Types.PathElement::get_Path () 
-		.set instance default void NAnt.Core.Types.PathElement::set_Path (class NAnt.Core.Types.PathSet 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+	IL_00e3:  nop 
+	IL_00e4:  ldnull 
+	IL_00e5:  stloc.s 5
+	IL_00e7:  ldarg.0 
+	IL_00e8:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
+	IL_00ed:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_00f2:  brfalse IL_011a
 
-		.get instance default bool NAnt.Core.Types.PathElement::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.PathElement::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+	IL_00f7:  nop 
+	IL_00f8:  ldarg.0 
+	IL_00f9:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
+	IL_00fe:  callvirt instance string object::ToString()
+	IL_0103:  stloc.s 6
+	IL_0105:  ldarg.0 
+	IL_0106:  ldfld class [System]System.Collections.Specialized.StringDictionary NAnt.Core.Filters.ReplaceTokens::_tokenValues
+	IL_010b:  ldloc.s 6
+	IL_010d:  callvirt instance string class [System]System.Collections.Specialized.StringDictionary::get_Item(string)
+	IL_0112:  stloc.s 5
+	IL_0114:  nop 
+	IL_0115:  br IL_012f
 
-		.get instance default bool NAnt.Core.Types.PathElement::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.PathElement::set_UnlessDefined (bool 'value') 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection Parts ()
-	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.PathElement::get_Parts () 
-	}
-  } // end of class NAnt.Core.Types.PathElement
-}
+	IL_011a:  nop 
+	IL_011b:  ldarg.1 
+	IL_011c:  ldc.i4.1 
+	IL_011d:  stind.i1 
+	IL_011e:  ldarg.2 
+	IL_011f:  ldc.i4.1 
+	IL_0120:  stind.i1 
+	IL_0121:  ldloc.1 
+	IL_0122:  ldc.i4.1 
+	IL_0123:  newobj instance void string::'.ctor'(char, int32)
+	IL_0128:  stloc.s 4
+	IL_012a:  br IL_017e
 
-.namespace NAnt.Core.Types
-{
-  .class public auto ansi beforefieldinit Option
-  	extends NAnt.Core.Element
-  {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 06 6F 70 74 69 6F 6E 00 00 ) // ...option..
+	IL_012f:  ldloc.s 5
+	IL_0131:  brfalse IL_0146
 
-    .field  private  string _name
-    .field  private  string _value
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+	IL_0136:  nop 
+	IL_0137:  ldarg.1 
+	IL_0138:  ldc.i4.0 
+	IL_0139:  stind.i1 
+	IL_013a:  ldarg.2 
+	IL_013b:  ldc.i4.0 
+	IL_013c:  stind.i1 
+	IL_013d:  ldloc.s 5
+	IL_013f:  stloc.s 4
+	IL_0141:  br IL_017e
 
-    // method line 674
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name, string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb6e6
-	// Code size 29 (0x1d)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.Option::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  stfld string NAnt.Core.Types.Option::_name
-	IL_0015:  ldarg.0 
-	IL_0016:  ldarg.2 
-	IL_0017:  stfld string NAnt.Core.Types.Option::_value
-	IL_001c:  ret 
-    } // end of method Option::.ctor
+	IL_0146:  nop 
+	IL_0147:  ldarg.1 
+	IL_0148:  ldc.i4.1 
+	IL_0149:  stind.i1 
+	IL_014a:  ldarg.2 
+	IL_014b:  ldc.i4.1 
+	IL_014c:  stind.i1 
+	IL_014d:  ldarg.0 
+	IL_014e:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
+	IL_0153:  ldloc.1 
+	IL_0154:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_0159:  callvirt instance string object::ToString()
+	IL_015e:  stloc.s 4
+	IL_0160:  br IL_017e
 
-    // method line 675
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xb704
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.Option::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method Option::.ctor
+	IL_0165:  nop 
+	IL_0166:  ldarg.1 
+	IL_0167:  ldc.i4.1 
+	IL_0168:  stind.i1 
+	IL_0169:  ldarg.2 
+	IL_016a:  ldc.i4.0 
+	IL_016b:  stind.i1 
+	IL_016c:  ldarg.0 
+	IL_016d:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
+	IL_0172:  callvirt instance string object::ToString()
+	IL_0177:  stloc.s 4
+	IL_0179:  br IL_017e
 
-    // method line 676
-    .method public hidebysig specialname 
-           instance default string get_OptionName ()  cil managed 
+	IL_017e:  ldloc.s 4
+	IL_0180:  ret 
+    } // end of method ReplaceTokens::FindTokenContents
+
+    // method line 574
+    .method private hidebysig 
+           instance default int32 GetNextCharacter (class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate AcquireChar)  cil managed 
     {
-        // Method begins at RVA 0xb714
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xc414
+	// Code size 386 (0x182)
+	.maxstack 5
 	.locals init (
-		string	V_0)
+		int32	V_0,
+		int32	V_1,
+		int32	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Option::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
+	IL_0007:  brtrue IL_001a
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Option::get_OptionName
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance int32 class NAnt.Core.Filters.ChainableReader::Read()
+	IL_0013:  stloc.0 
+	IL_0014:  nop 
+	IL_0015:  br IL_00ee
 
-    // method line 677
-    .method public hidebysig specialname 
-           instance default void set_OptionName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb72f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.Option::_name
-	IL_0008:  ret 
-    } // end of method Option::set_OptionName
+	IL_001a:  nop 
+	IL_001b:  ldarg.0 
+	IL_001c:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
+	IL_0021:  ldarg.0 
+	IL_0022:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
+	IL_0027:  callvirt instance int32 string::get_Length()
+	IL_002c:  bge IL_00b7
 
-    // method line 678
-    .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
-    {
-        // Method begins at RVA 0xb73c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Option::_value
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0031:  nop 
+	IL_0032:  ldarg.0 
+	IL_0033:  ldfld bool NAnt.Core.Filters.ReplaceTokens::_tokenNotFound
+	IL_0038:  brfalse IL_008e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Option::get_Value
+	IL_003d:  ldarg.0 
+	IL_003e:  ldfld bool NAnt.Core.Filters.ReplaceTokens::_unknownToken
+	IL_0043:  brfalse IL_008e
 
-    // method line 679
-    .method public hidebysig specialname 
-           instance default void set_Value (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb757
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.Option::_value
-	IL_0008:  ret 
-    } // end of method Option::set_Value
+	IL_0048:  ldarg.0 
+	IL_0049:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
+	IL_004e:  ldarg.0 
+	IL_004f:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
+	IL_0054:  callvirt instance int32 string::get_Length()
+	IL_0059:  ldc.i4.1 
+	IL_005a:  sub 
+	IL_005b:  bne.un IL_008e
 
-    // method line 680
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0xb764
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Option::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0060:  nop 
+	IL_0061:  ldarg.0 
+	IL_0062:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
+	IL_0067:  ldarg.0 
+	IL_0068:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
+	IL_006d:  callvirt instance int32 string::get_Length()
+	IL_0072:  ldc.i4.1 
+	IL_0073:  sub 
+	IL_0074:  callvirt instance char string::get_Chars(int32)
+	IL_0079:  stloc.0 
+	IL_007a:  ldarg.0 
+	IL_007b:  dup 
+	IL_007c:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
+	IL_0081:  ldc.i4.1 
+	IL_0082:  add 
+	IL_0083:  stfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
+	IL_0088:  nop 
+	IL_0089:  br IL_00b1
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Option::get_IfDefined
+	IL_008e:  nop 
+	IL_008f:  ldarg.0 
+	IL_0090:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
+	IL_0095:  ldarg.0 
+	IL_0096:  dup 
+	IL_0097:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
+	IL_009c:  dup 
+	IL_009d:  stloc.1 
+	IL_009e:  ldc.i4.1 
+	IL_009f:  add 
+	IL_00a0:  stfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
+	IL_00a5:  ldloc.1 
+	IL_00a6:  callvirt instance char string::get_Chars(int32)
+	IL_00ab:  stloc.2 
+	IL_00ac:  br IL_0180
 
-    // method line 681
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb77f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Option::_ifDefined
-	IL_0008:  ret 
-    } // end of method Option::set_IfDefined
+	IL_00b1:  nop 
+	IL_00b2:  br IL_00ed
 
-    // method line 682
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+	IL_00b7:  nop 
+	IL_00b8:  ldarg.0 
+	IL_00b9:  ldnull 
+	IL_00ba:  stfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
+	IL_00bf:  ldarg.0 
+	IL_00c0:  ldc.i4.0 
+	IL_00c1:  stfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
+	IL_00c6:  ldarg.0 
+	IL_00c7:  ldfld bool NAnt.Core.Filters.ReplaceTokens::_endStreamAfterBuffer
+	IL_00cc:  brtrue IL_00e4
+
+	IL_00d1:  nop 
+	IL_00d2:  ldarg.0 
+	IL_00d3:  ldfld class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate NAnt.Core.Filters.ReplaceTokens::ReadChar
+	IL_00d8:  callvirt instance int32 class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate::Invoke()
+	IL_00dd:  stloc.0 
+	IL_00de:  nop 
+	IL_00df:  br IL_00ec
+
+	IL_00e4:  nop 
+	IL_00e5:  ldc.i4.m1 
+	IL_00e6:  stloc.2 
+	IL_00e7:  br IL_0180
+
+	IL_00ec:  nop 
+	IL_00ed:  nop 
+	IL_00ee:  ldarg.0 
+	IL_00ef:  ldloc.0 
+	IL_00f0:  ldarg.0 
+	IL_00f1:  call instance char class NAnt.Core.Filters.ReplaceTokens::get_BeginToken()
+	IL_00f6:  call instance bool class NAnt.Core.Filters.ReplaceTokens::CompareCharacters(int32, int32)
+	IL_00fb:  brfalse IL_0178
+
+	IL_0100:  nop 
+	IL_0101:  ldarg.0 
+	IL_0102:  ldarg.0 
+	IL_0103:  ldarg.0 
+	IL_0104:  ldflda bool NAnt.Core.Filters.ReplaceTokens::_tokenNotFound
+	IL_0109:  ldarg.0 
+	IL_010a:  ldflda bool NAnt.Core.Filters.ReplaceTokens::_unknownToken
+	IL_010f:  ldarg.0 
+	IL_0110:  ldflda bool NAnt.Core.Filters.ReplaceTokens::_endStreamAfterBuffer
+	IL_0115:  call instance string class NAnt.Core.Filters.ReplaceTokens::FindTokenContents([out] bool&, [out] bool&, [out] bool&)
+	IL_011a:  stfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
+	IL_011f:  ldarg.0 
+	IL_0120:  ldfld bool NAnt.Core.Filters.ReplaceTokens::_tokenNotFound
+	IL_0125:  brfalse IL_013e
+
+	IL_012a:  nop 
+	IL_012b:  ldarg.0 
+	IL_012c:  ldc.i4.0 
+	IL_012d:  stfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
+	IL_0132:  ldarg.0 
+	IL_0133:  call instance char class NAnt.Core.Filters.ReplaceTokens::get_BeginToken()
+	IL_0138:  stloc.2 
+	IL_0139:  br IL_0180
+
+	IL_013e:  nop 
+	IL_013f:  ldarg.0 
+	IL_0140:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
+	IL_0145:  callvirt instance int32 string::get_Length()
+	IL_014a:  ldc.i4.0 
+	IL_014b:  ble IL_016a
+
+	IL_0150:  nop 
+	IL_0151:  ldarg.0 
+	IL_0152:  ldc.i4.1 
+	IL_0153:  stfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
+	IL_0158:  ldarg.0 
+	IL_0159:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
+	IL_015e:  ldc.i4.0 
+	IL_015f:  callvirt instance char string::get_Chars(int32)
+	IL_0164:  stloc.2 
+	IL_0165:  br IL_0180
+
+	IL_016a:  nop 
+	IL_016b:  ldarg.0 
+	IL_016c:  ldarg.1 
+	IL_016d:  call instance int32 class NAnt.Core.Filters.ReplaceTokens::GetNextCharacter(class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate)
+	IL_0172:  stloc.2 
+	IL_0173:  br IL_0180
+
+	IL_0178:  nop 
+	IL_0179:  ldloc.0 
+	IL_017a:  stloc.2 
+	IL_017b:  br IL_0180
+
+	IL_0180:  ldloc.2 
+	IL_0181:  ret 
+    } // end of method ReplaceTokens::GetNextCharacter
+
+    // method line 575
+    .method private hidebysig 
+           instance default bool CompareCharacters (int32 char1, int32 char2)  cil managed 
     {
-        // Method begins at RVA 0xb78c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xc5a4
+	// Code size 48 (0x30)
+	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Option::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance bool class NAnt.Core.Filters.ReplaceTokens::get_IgnoreCase()
+	IL_0007:  brfalse IL_0023
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Option::get_UnlessDefined
+	IL_000c:  nop 
+	IL_000d:  ldarg.1 
+	IL_000e:  conv.u2 
+	IL_000f:  call char char::ToUpper(char)
+	IL_0014:  ldarg.2 
+	IL_0015:  conv.u2 
+	IL_0016:  call char char::ToUpper(char)
+	IL_001b:  ceq 
+	IL_001d:  stloc.0 
+	IL_001e:  br IL_002e
 
-    // method line 683
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb7a7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Option::_unlessDefined
-	IL_0008:  ret 
-    } // end of method Option::set_UnlessDefined
+	IL_0023:  nop 
+	IL_0024:  ldarg.1 
+	IL_0025:  ldarg.2 
+	IL_0026:  ceq 
+	IL_0028:  stloc.0 
+	IL_0029:  br IL_002e
 
-	.property instance string OptionName ()
+	IL_002e:  ldloc.0 
+	IL_002f:  ret 
+    } // end of method ReplaceTokens::CompareCharacters
+
+	.property instance char BeginToken ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
-		69 72 65 64 01                                  ) // ired.
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 62 65 67 69 6E 74 6F 6B 65 6E 00 00 ) // ...begintoken..
 
 		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
 		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
 		79 00                                           ) // y.
 
-		.get instance default string NAnt.Core.Types.Option::get_OptionName () 
-		.set instance default void NAnt.Core.Types.Option::set_OptionName (string 'value') 
+		.get instance default char NAnt.Core.Filters.ReplaceTokens::get_BeginToken () 
+		.set instance default void NAnt.Core.Filters.ReplaceTokens::set_BeginToken (char 'value') 
 	}
-	.property instance string Value ()
+	.property instance char EndToken ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 76 61 6C 75 65 00 00 ) // ...value..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 65 6E 64 74 6F 6B 65 6E 00 00 ) // ...endtoken..
 
-		.get instance default string NAnt.Core.Types.Option::get_Value () 
-		.set instance default void NAnt.Core.Types.Option::set_Value (string 'value') 
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default char NAnt.Core.Filters.ReplaceTokens::get_EndToken () 
+		.set instance default void NAnt.Core.Filters.ReplaceTokens::set_EndToken (char 'value') 
 	}
-	.property instance bool IfDefined ()
+	.property instance class NAnt.Core.Types.Token[] Tokens ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 05 74 6F 6B 65 6E 00 00 ) // ...token..
 
-		.get instance default bool NAnt.Core.Types.Option::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.Option::set_IfDefined (bool 'value') 
+		.get instance default class NAnt.Core.Types.Token[] NAnt.Core.Filters.ReplaceTokens::get_Tokens () 
+		.set instance default void NAnt.Core.Filters.ReplaceTokens::set_Tokens (class NAnt.Core.Types.Token[] 'value') 
 	}
-	.property instance bool UnlessDefined ()
+	.property instance bool IgnoreCase ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0A 69 67 6E 6F 72 65 63 61 73 65 01 00 54   // ...ignorecase..T
+		02 08 52 65 71 75 69 72 65 64 00                ) // ..Required.
 
 		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Core.Types.Option::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.Option::set_UnlessDefined (bool 'value') 
+		.get instance default bool NAnt.Core.Filters.ReplaceTokens::get_IgnoreCase () 
+		.set instance default void NAnt.Core.Filters.ReplaceTokens::set_IgnoreCase (bool 'value') 
 	}
-  } // end of class NAnt.Core.Types.Option
-}
-
-.namespace NAnt.Core.Types
-{
-  .class public auto ansi sealed ManagedExecution
-  	extends [mscorlib]System.Enum
-  {
-    .custom instance void class [System]System.ComponentModel.TypeConverterAttribute::'.ctor'(class [mscorlib]System.Type) =  (
-		01 00 29 4E 41 6E 74 2E 43 6F 72 65 2E 54 79 70   // ..)NAnt.Core.Typ
-		65 73 2E 4D 61 6E 61 67 65 64 45 78 65 63 75 74   // es.ManagedExecut
-		69 6F 6E 43 6F 6E 76 65 72 74 65 72 00 00       ) // ionConverter..
-
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.Types.ManagedExecution Default = int32(0x00000000)
-    .field public static literal  valuetype NAnt.Core.Types.ManagedExecution Auto = int32(0x00000001)
-    .field public static literal  valuetype NAnt.Core.Types.ManagedExecution Strict = int32(0x00000002)
-
-  } // end of class NAnt.Core.Types.ManagedExecution
-}
-
-.namespace NAnt.Core.Types
-{
-  .class public auto ansi beforefieldinit ManagedExecutionConverter
-  	extends [System]System.ComponentModel.EnumConverter
+  .class nested private auto ansi sealed AcquireCharDelegate
+  	extends [mscorlib]System.MulticastDelegate
   {
 
-    // method line 684
+    // method line 576
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
     {
-        // Method begins at RVA 0xb7b1
-	// Code size 18 (0x12)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldtoken NAnt.Core.Types.ManagedExecution
-	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000b:  call instance void class [System]System.ComponentModel.EnumConverter::'.ctor'(class [mscorlib]System.Type)
-	IL_0010:  nop 
-	IL_0011:  ret 
-    } // end of method ManagedExecutionConverter::.ctor
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::.ctor
 
-    // method line 685
-    .method public virtual hidebysig 
-           instance default object ConvertFrom (class [System]System.ComponentModel.ITypeDescriptorContext context, class [mscorlib]System.Globalization.CultureInfo culture, object 'value')  cil managed 
+    // method line 577
+    .method public virtual hidebysig newslot 
+           instance default int32 Invoke ()  runtime managed 
     {
-        // Method begins at RVA 0xb7c4
-	// Code size 122 (0x7a)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		object	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.3 
-	IL_0002:  isinst [mscorlib]System.String
-	IL_0007:  brfalse IL_0069
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.3 
-	IL_000e:  castclass [mscorlib]System.String
-	IL_0013:  stloc.0 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldsfld string [mscorlib]System.Boolean::TrueString
-	IL_001a:  ldc.i4.1 
-	IL_001b:  ldarg.2 
-	IL_001c:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_0021:  brtrue IL_0033
-
-	IL_0026:  nop 
-	IL_0027:  ldc.i4.1 
-	IL_0028:  box NAnt.Core.Types.ManagedExecution
-	IL_002d:  stloc.1 
-	IL_002e:  br IL_0078
-
-	IL_0033:  ldloc.0 
-	IL_0034:  ldsfld string [mscorlib]System.Boolean::FalseString
-	IL_0039:  ldc.i4.1 
-	IL_003a:  ldarg.2 
-	IL_003b:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_0040:  brtrue IL_0052
-
-	IL_0045:  nop 
-	IL_0046:  ldc.i4.0 
-	IL_0047:  box NAnt.Core.Types.ManagedExecution
-	IL_004c:  stloc.1 
-	IL_004d:  br IL_0078
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::Invoke
 
-	IL_0052:  ldtoken NAnt.Core.Types.ManagedExecution
-	IL_0057:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_005c:  ldloc.0 
-	IL_005d:  ldc.i4.1 
-	IL_005e:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	IL_0063:  stloc.1 
-	IL_0064:  br IL_0078
+    // method line 578
+    .method public virtual hidebysig newslot 
+           instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::BeginInvoke
 
-	IL_0069:  ldarg.0 
-	IL_006a:  ldarg.1 
-	IL_006b:  ldarg.2 
-	IL_006c:  ldarg.3 
-	IL_006d:  call instance object class [System]System.ComponentModel.EnumConverter::ConvertFrom(class [System]System.ComponentModel.ITypeDescriptorContext, class [mscorlib]System.Globalization.CultureInfo, object)
-	IL_0072:  stloc.1 
-	IL_0073:  br IL_0078
+    // method line 579
+    .method public virtual hidebysig newslot 
+           instance default int32 EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method AcquireCharDelegate::EndInvoke
 
-	IL_0078:  ldloc.1 
-	IL_0079:  ret 
-    } // end of method ManagedExecutionConverter::ConvertFrom
+  } // end of class AcquireCharDelegate
 
-  } // end of class NAnt.Core.Types.ManagedExecutionConverter
+  } // end of class NAnt.Core.Filters.ReplaceTokens
 }
 
 .namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit Formatter
-  	extends NAnt.Core.Element
+  .class public auto ansi beforefieldinit Credential
+  	extends NAnt.Core.DataTypeBase
   {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 09 66 6F 72 6D 61 74 74 65 72 00 00 ) // ...formatter..
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 0A 63 72 65 64 65 6E 74 69 61 6C 00 00 ) // ...credential..
 
-    .field  private  string _property
-    .field  private  string _pattern
+    .field  private  string _domain
+    .field  private  string _password
+    .field  private  string _userName
     .field  private  bool _ifDefined
     .field  private  bool _unlessDefined
 
-    // method line 686
+    // method line 580
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xb84a
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xc5e0
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Types.Formatter::_ifDefined
+	IL_0002:  stfld bool NAnt.Core.Types.Credential::_ifDefined
 	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0008:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method Credential::.ctor
+
+    // method line 581
+    .method public hidebysig specialname 
+           instance default string get_Domain ()  cil managed 
+    {
+        // Method begins at RVA 0xc5f0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Types.Credential::_domain
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Credential::get_Domain
+
+    // method line 582
+    .method public hidebysig specialname 
+           instance default void set_Domain (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xc60b
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Types.Credential::_domain
 	IL_000d:  ret 
-    } // end of method Formatter::.ctor
+    } // end of method Credential::set_Domain
 
-    // method line 687
+    // method line 583
     .method public hidebysig specialname 
-           instance default string get_Property ()  cil managed 
+           instance default string get_Password ()  cil managed 
     {
-        // Method begins at RVA 0xb85c
+        // Method begins at RVA 0xc61c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Formatter::_property
+	IL_0002:  ldfld string NAnt.Core.Types.Credential::_password
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Formatter::get_Property
+    } // end of method Credential::get_Password
 
-    // method line 688
+    // method line 584
     .method public hidebysig specialname 
-           instance default void set_Property (string 'value')  cil managed 
+           instance default void set_Password (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xb877
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xc637
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.Formatter::_property
-	IL_0008:  ret 
-    } // end of method Formatter::set_Property
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Types.Credential::_password
+	IL_000d:  ret 
+    } // end of method Credential::set_Password
 
-    // method line 689
+    // method line 585
     .method public hidebysig specialname 
-           instance default string get_Pattern ()  cil managed 
+           instance default string get_UserName ()  cil managed 
     {
-        // Method begins at RVA 0xb884
+        // Method begins at RVA 0xc648
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Types.Formatter::_pattern
+	IL_0002:  ldfld string NAnt.Core.Types.Credential::_userName
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Formatter::get_Pattern
+    } // end of method Credential::get_UserName
 
-    // method line 690
+    // method line 586
     .method public hidebysig specialname 
-           instance default void set_Pattern (string 'value')  cil managed 
+           instance default void set_UserName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xb89f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xc663
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Types.Formatter::_pattern
-	IL_0008:  ret 
-    } // end of method Formatter::set_Pattern
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Types.Credential::_userName
+	IL_000d:  ret 
+    } // end of method Credential::set_UserName
 
-    // method line 691
+    // method line 587
     .method public hidebysig specialname 
            instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0xb8ac
+        // Method begins at RVA 0xc674
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Formatter::_ifDefined
+	IL_0002:  ldfld bool NAnt.Core.Types.Credential::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Formatter::get_IfDefined
+    } // end of method Credential::get_IfDefined
 
-    // method line 692
+    // method line 588
     .method public hidebysig specialname 
            instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xb8c7
+        // Method begins at RVA 0xc68f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Formatter::_ifDefined
+	IL_0003:  stfld bool NAnt.Core.Types.Credential::_ifDefined
 	IL_0008:  ret 
-    } // end of method Formatter::set_IfDefined
+    } // end of method Credential::set_IfDefined
 
-    // method line 693
+    // method line 589
     .method public hidebysig specialname 
            instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0xb8d4
+        // Method begins at RVA 0xc69c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Types.Formatter::_unlessDefined
+	IL_0002:  ldfld bool NAnt.Core.Types.Credential::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Formatter::get_UnlessDefined
+    } // end of method Credential::get_UnlessDefined
 
-    // method line 694
+    // method line 590
     .method public hidebysig specialname 
            instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xb8ef
+        // Method begins at RVA 0xc6b7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Types.Formatter::_unlessDefined
+	IL_0003:  stfld bool NAnt.Core.Types.Credential::_unlessDefined
 	IL_0008:  ret 
-    } // end of method Formatter::set_UnlessDefined
+    } // end of method Credential::set_UnlessDefined
 
-	.property instance string Property ()
+    // method line 591
+    .method public hidebysig 
+           instance default class [System]System.Net.ICredentials GetCredential ()  cil managed 
+    {
+        // Method begins at RVA 0xc6c4
+	// Code size 60 (0x3c)
+	.maxstack 3
+	.locals init (
+		class [System]System.Net.ICredentials	V_0,
+		class [System]System.Net.ICredentials	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  call instance bool class NAnt.Core.Types.Credential::get_IfDefined()
+	IL_0009:  brfalse IL_0033
+
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance bool class NAnt.Core.Types.Credential::get_UnlessDefined()
+	IL_0014:  brtrue IL_0033
+
+	IL_0019:  nop 
+	IL_001a:  ldarg.0 
+	IL_001b:  call instance string class NAnt.Core.Types.Credential::get_UserName()
+	IL_0020:  ldarg.0 
+	IL_0021:  call instance string class NAnt.Core.Types.Credential::get_Password()
+	IL_0026:  ldarg.0 
+	IL_0027:  call instance string class NAnt.Core.Types.Credential::get_Domain()
+	IL_002c:  newobj instance void class [System]System.Net.NetworkCredential::'.ctor'(string, string, string)
+	IL_0031:  stloc.0 
+	IL_0032:  nop 
+	IL_0033:  ldloc.0 
+	IL_0034:  stloc.1 
+	IL_0035:  br IL_003a
+
+	IL_003a:  ldloc.1 
+	IL_003b:  ret 
+    } // end of method Credential::GetCredential
+
+	.property instance string Domain ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
-		52 65 71 75 69 72 65 64 01                      ) // Required.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+		01 00 06 64 6F 6D 61 69 6E 01 00 54 02 08 52 65   // ...domain..T..Re
+		71 75 69 72 65 64 00                            ) // quired.
 
-		.get instance default string NAnt.Core.Types.Formatter::get_Property () 
-		.set instance default void NAnt.Core.Types.Formatter::set_Property (string 'value') 
+		.get instance default string NAnt.Core.Types.Credential::get_Domain () 
+		.set instance default void NAnt.Core.Types.Credential::set_Domain (string 'value') 
 	}
-	.property instance string Pattern ()
+	.property instance string Password ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 70 61 74 74 65 72 6E 01 00 54 02 08 52   // ...pattern..T..R
-		65 71 75 69 72 65 64 01                         ) // equired.
+		01 00 08 70 61 73 73 77 6F 72 64 01 00 54 02 08   // ...password..T..
+		52 65 71 75 69 72 65 64 00                      ) // Required.
 
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+		.get instance default string NAnt.Core.Types.Credential::get_Password () 
+		.set instance default void NAnt.Core.Types.Credential::set_Password (string 'value') 
+	}
+	.property instance string UserName ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 75 73 65 72 6E 61 6D 65 01 00 54 02 08   // ...username..T..
+		52 65 71 75 69 72 65 64 00                      ) // Required.
 
-		.get instance default string NAnt.Core.Types.Formatter::get_Pattern () 
-		.set instance default void NAnt.Core.Types.Formatter::set_Pattern (string 'value') 
+		.get instance default string NAnt.Core.Types.Credential::get_UserName () 
+		.set instance default void NAnt.Core.Types.Credential::set_UserName (string 'value') 
 	}
 	.property instance bool IfDefined ()
 	{
@@ -19776,8 +19984,8 @@
 
 		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Core.Types.Formatter::get_IfDefined () 
-		.set instance default void NAnt.Core.Types.Formatter::set_IfDefined (bool 'value') 
+		.get instance default bool NAnt.Core.Types.Credential::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.Credential::set_IfDefined (bool 'value') 
 	}
 	.property instance bool UnlessDefined ()
 	{
@@ -19785,10 +19993,10 @@
 
 		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Core.Types.Formatter::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Types.Formatter::set_UnlessDefined (bool 'value') 
+		.get instance default bool NAnt.Core.Types.Credential::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.Credential::set_UnlessDefined (bool 'value') 
 	}
-  } // end of class NAnt.Core.Types.Formatter
+  } // end of class NAnt.Core.Types.Credential
 }
 
 .namespace NAnt.Core.Types
@@ -19799,11 +20007,11 @@
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 695
+    // method line 592
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xb8f9
+        // Method begins at RVA 0xc70c
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -19812,11 +20020,11 @@
 	IL_0007:  ret 
     } // end of method XsltExtensionObjectCollection::.ctor
 
-    // method line 696
+    // method line 593
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.Core.Types.XsltExtensionObjectCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0xb902
+        // Method begins at RVA 0xc715
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -19828,11 +20036,11 @@
 	IL_000e:  ret 
     } // end of method XsltExtensionObjectCollection::.ctor
 
-    // method line 697
+    // method line 594
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.Core.Types.XsltExtensionObject[] 'value')  cil managed 
     {
-        // Method begins at RVA 0xb912
+        // Method begins at RVA 0xc725
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -19844,11 +20052,11 @@
 	IL_000e:  ret 
     } // end of method XsltExtensionObjectCollection::.ctor
 
-    // method line 698
+    // method line 595
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.XsltExtensionObject get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0xb924
+        // Method begins at RVA 0xc738
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -19866,11 +20074,11 @@
 	IL_0019:  ret 
     } // end of method XsltExtensionObjectCollection::get_Item
 
-    // method line 699
+    // method line 596
     .method public hidebysig specialname 
            instance default void set_Item (int32 index, class NAnt.Core.Types.XsltExtensionObject 'value')  cil managed 
     {
-        // Method begins at RVA 0xb94a
+        // Method begins at RVA 0xc75e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -19882,11 +20090,11 @@
 	IL_000e:  ret 
     } // end of method XsltExtensionObjectCollection::set_Item
 
-    // method line 700
+    // method line 597
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.XsltExtensionObject get_Item (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xb95c
+        // Method begins at RVA 0xc770
 	// Code size 111 (0x6f)
 	.maxstack 2
 	.locals init (
@@ -19951,11 +20159,11 @@
 	IL_006e:  ret 
     } // end of method XsltExtensionObjectCollection::get_Item
 
-    // method line 701
+    // method line 598
     .method public hidebysig 
            instance default int32 Add (class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
     {
-        // Method begins at RVA 0xb9e8
+        // Method begins at RVA 0xc7fc
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -19972,11 +20180,11 @@
 	IL_0014:  ret 
     } // end of method XsltExtensionObjectCollection::Add
 
-    // method line 702
+    // method line 599
     .method public hidebysig 
            instance default void AddRange (class NAnt.Core.Types.XsltExtensionObject[] items)  cil managed 
     {
-        // Method begins at RVA 0xba0c
+        // Method begins at RVA 0xc820
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -20007,11 +20215,11 @@
 	IL_0021:  ret 
     } // end of method XsltExtensionObjectCollection::AddRange
 
-    // method line 703
+    // method line 600
     .method public hidebysig 
            instance default void AddRange (class NAnt.Core.Types.XsltExtensionObjectCollection items)  cil managed 
     {
-        // Method begins at RVA 0xba3c
+        // Method begins at RVA 0xc850
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -20041,11 +20249,11 @@
 	IL_0028:  ret 
     } // end of method XsltExtensionObjectCollection::AddRange
 
-    // method line 704
+    // method line 601
     .method public hidebysig 
            instance default bool Contains (class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
     {
-        // Method begins at RVA 0xba74
+        // Method begins at RVA 0xc888
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -20062,11 +20270,11 @@
 	IL_0014:  ret 
     } // end of method XsltExtensionObjectCollection::Contains
 
-    // method line 705
+    // method line 602
     .method public hidebysig 
            instance default bool Contains (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xba98
+        // Method begins at RVA 0xc8ac
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -20086,11 +20294,11 @@
 	IL_0015:  ret 
     } // end of method XsltExtensionObjectCollection::Contains
 
-    // method line 706
+    // method line 603
     .method public hidebysig 
            instance default void CopyTo (class NAnt.Core.Types.XsltExtensionObject[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0xbaba
+        // Method begins at RVA 0xc8ce
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20102,11 +20310,11 @@
 	IL_000e:  ret 
     } // end of method XsltExtensionObjectCollection::CopyTo
 
-    // method line 707
+    // method line 604
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
     {
-        // Method begins at RVA 0xbacc
+        // Method begins at RVA 0xc8e0
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -20123,11 +20331,11 @@
 	IL_0014:  ret 
     } // end of method XsltExtensionObjectCollection::IndexOf
 
-    // method line 708
+    // method line 605
     .method public hidebysig 
            instance default void Insert (int32 index, class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
     {
-        // Method begins at RVA 0xbaed
+        // Method begins at RVA 0xc901
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20139,11 +20347,11 @@
 	IL_000e:  ret 
     } // end of method XsltExtensionObjectCollection::Insert
 
-    // method line 709
+    // method line 606
     .method public hidebysig 
            instance default class NAnt.Core.Types.XsltExtensionObjectEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xbb00
+        // Method begins at RVA 0xc914
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -20158,11 +20366,11 @@
 	IL_000e:  ret 
     } // end of method XsltExtensionObjectCollection::GetEnumerator
 
-    // method line 710
+    // method line 607
     .method public hidebysig 
            instance default void Remove (class NAnt.Core.Types.XsltExtensionObject item)  cil managed 
     {
-        // Method begins at RVA 0xbb1b
+        // Method begins at RVA 0xc92f
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20192,11 +20400,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 711
+    // method line 608
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.Core.Types.XsltExtensionObjectCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0xbb2c
+        // Method begins at RVA 0xc940
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -20213,11 +20421,11 @@
 	IL_0015:  ret 
     } // end of method XsltExtensionObjectEnumerator::.ctor
 
-    // method line 712
+    // method line 609
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.XsltExtensionObject get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xbb50
+        // Method begins at RVA 0xc964
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -20234,11 +20442,11 @@
 	IL_0018:  ret 
     } // end of method XsltExtensionObjectEnumerator::get_Current
 
-    // method line 713
+    // method line 610
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0xbb78
+        // Method begins at RVA 0xc98c
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -20255,11 +20463,11 @@
 	IL_0013:  ret 
     } // end of method XsltExtensionObjectEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 714
+    // method line 611
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xbb98
+        // Method begins at RVA 0xc9ac
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -20275,11 +20483,11 @@
 	IL_0013:  ret 
     } // end of method XsltExtensionObjectEnumerator::MoveNext
 
-    // method line 715
+    // method line 612
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xbbb8
+        // Method begins at RVA 0xc9cc
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -20296,11 +20504,11 @@
 	IL_0013:  ret 
     } // end of method XsltExtensionObjectEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 716
+    // method line 613
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0xbbd8
+        // Method begins at RVA 0xc9ec
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20310,11 +20518,11 @@
 	IL_000c:  ret 
     } // end of method XsltExtensionObjectEnumerator::Reset
 
-    // method line 717
+    // method line 614
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0xbbe6
+        // Method begins at RVA 0xc9fa
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
@@ -20336,16022 +20544,13531 @@
   } // end of class NAnt.Core.Types.XsltExtensionObjectEnumerator
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit NAntSchemaTask
-  	extends NAnt.Core.Task
+  .class public auto ansi serializable beforefieldinit XsltParameterCollection
+  	extends [mscorlib]System.Collections.CollectionBase
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 0A 6E 61 6E 74 73 63 68 65 6D 61 00 00 ) // ...nantschema..
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
-    .field  private  string _forType
-    .field  private  string _targetNamespace
-    .field  private static initonly  class [log4net]log4net.ILog logger
-    .field  private static initonly  string[] mixedTaskNames
 
-    // method line 718
+    // method line 615
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xc3e2
-	// Code size 18 (0x12)
+        // Method begins at RVA 0xca08
+	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldstr "http://tempuri.org/nant-donotuse.xsd"
-	IL_0006:  stfld string NAnt.Core.Tasks.NAntSchemaTask::_targetNamespace
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0011:  ret 
-    } // end of method NAntSchemaTask::.ctor
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method XsltParameterCollection::.ctor
 
-    // method line 719
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
+    // method line 616
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.XsltParameterCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0xc3f8
+        // Method begins at RVA 0xca11
 	// Code size 15 (0xf)
-	.maxstack 1
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Types.XsltParameterCollection::AddRange(class NAnt.Core.Types.XsltParameterCollection)
+	IL_000e:  ret 
+    } // end of method XsltParameterCollection::.ctor
+
+    // method line 617
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.XsltParameter[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0xca21
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Types.XsltParameterCollection::AddRange(class NAnt.Core.Types.XsltParameter[])
+	IL_000e:  ret 
+    } // end of method XsltParameterCollection::.ctor
+
+    // method line 618
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.XsltParameter get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0xca34
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		class NAnt.Core.Types.XsltParameter	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.NAntSchemaTask::_outputFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.Core.Types.XsltParameter
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntSchemaTask::get_OutputFile
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method XsltParameterCollection::get_Item
 
-    // method line 720
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 619
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.XsltParameter 'value')  cil managed 
     {
-        // Method begins at RVA 0xc413
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xca5a
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method XsltParameterCollection::set_Item
+
+    // method line 620
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.XsltParameter get_Item (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xca6c
+	// Code size 111 (0x6f)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Types.XsltParameter	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.Types.XsltParameter	V_2,
+		class [mscorlib]System.IDisposable	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0066
+
+	IL_0007:  nop 
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0014:  stloc.1 
+	.try { // 0
+	  IL_0015:  br IL_0041
+
+	  IL_001a:  ldloc.1 
+	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0020:  castclass NAnt.Core.Types.XsltParameter
+	  IL_0025:  stloc.0 
+	  IL_0026:  nop 
+	  IL_0027:  ldloc.0 
+	  IL_0028:  callvirt instance string class NAnt.Core.Element::get_Name()
+	  IL_002d:  ldarg.1 
+	  IL_002e:  call bool string::op_Equality(string, string)
+	  IL_0033:  brfalse IL_0040
+
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  stloc.2 
+	  IL_003b:  leave IL_006d
+
+	  IL_0040:  nop 
+	  IL_0041:  ldloc.1 
+	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0047:  brtrue IL_001a
+
+	  IL_004c:  leave IL_0065
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0051:  ldloc.1 
+	  IL_0052:  isinst [mscorlib]System.IDisposable
+	  IL_0057:  dup 
+	  IL_0058:  stloc.3 
+	  IL_0059:  brfalse IL_0064
+
+	  IL_005e:  ldloc.3 
+	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0064:  endfinally 
+	} // end handler 0
+	IL_0065:  nop 
+	IL_0066:  ldnull 
+	IL_0067:  stloc.2 
+	IL_0068:  br IL_006d
+
+	IL_006d:  ldloc.2 
+	IL_006e:  ret 
+    } // end of method XsltParameterCollection::get_Item
+
+    // method line 621
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.Types.XsltParameter item)  cil managed 
+    {
+        // Method begins at RVA 0xcaf8
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method XsltParameterCollection::Add
+
+    // method line 622
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.XsltParameter[] items)  cil managed 
+    {
+        // Method begins at RVA 0xcb1c
+	// Code size 34 (0x22)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.Core.Types.XsltParameterCollection::Add(class NAnt.Core.Types.XsltParameter)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
+
+	IL_0021:  ret 
+    } // end of method XsltParameterCollection::AddRange
+
+    // method line 623
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.XsltParameterCollection items)  cil managed 
+    {
+        // Method begins at RVA 0xcb4c
+	// Code size 41 (0x29)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.Core.Types.XsltParameter class NAnt.Core.Types.XsltParameterCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Core.Types.XsltParameterCollection::Add(class NAnt.Core.Types.XsltParameter)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
+
+	IL_0028:  ret 
+    } // end of method XsltParameterCollection::AddRange
+
+    // method line 624
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.Types.XsltParameter item)  cil managed 
+    {
+        // Method begins at RVA 0xcb84
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method XsltParameterCollection::Contains
+
+    // method line 625
+    .method public hidebysig 
+           instance default bool Contains (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xcba8
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.NAntSchemaTask::_outputFile
-	IL_0008:  ret 
-    } // end of method NAntSchemaTask::set_OutputFile
+	IL_0003:  call instance class NAnt.Core.Types.XsltParameter class NAnt.Core.Types.XsltParameterCollection::get_Item(string)
+	IL_0008:  ldnull 
+	IL_0009:  ceq 
+	IL_000b:  ldc.i4.0 
+	IL_000c:  ceq 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0014
 
-    // method line 721
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_TargetNamespace ()  cil managed 
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method XsltParameterCollection::Contains
+
+    // method line 626
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.XsltParameter[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0xc420
+        // Method begins at RVA 0xcbca
 	// Code size 15 (0xf)
-	.maxstack 1
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method XsltParameterCollection::CopyTo
+
+    // method line 627
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.Types.XsltParameter item)  cil managed 
+    {
+        // Method begins at RVA 0xcbdc
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.NAntSchemaTask::_targetNamespace
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntSchemaTask::get_TargetNamespace
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method XsltParameterCollection::IndexOf
 
-    // method line 722
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_TargetNamespace (string 'value')  cil managed 
+    // method line 628
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.Types.XsltParameter item)  cil managed 
     {
-        // Method begins at RVA 0xc43b
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xcbfd
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.NAntSchemaTask::_targetNamespace
-	IL_000d:  ret 
-    } // end of method NAntSchemaTask::set_TargetNamespace
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method XsltParameterCollection::Insert
 
-    // method line 723
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_ForType ()  cil managed 
+    // method line 629
+    .method public hidebysig 
+           instance default class NAnt.Core.Types.XsltParameterEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xc44c
+        // Method begins at RVA 0xcc10
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.XsltParameterEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.NAntSchemaTask::_forType
+	IL_0002:  newobj instance void class NAnt.Core.Types.XsltParameterEnumerator::'.ctor'(class NAnt.Core.Types.XsltParameterCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method NAntSchemaTask::get_ForType
+    } // end of method XsltParameterCollection::GetEnumerator
 
-    // method line 724
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_ForType (string 'value')  cil managed 
+    // method line 630
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.Types.XsltParameter item)  cil managed 
     {
-        // Method begins at RVA 0xc467
+        // Method begins at RVA 0xcc2b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.NAntSchemaTask::_forType
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method NAntSchemaTask::set_ForType
+    } // end of method XsltParameterCollection::Remove
 
-    // method line 725
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+	.property instance class NAnt.Core.Types.XsltParameter Item (int32)
+	{
+		.get instance default class NAnt.Core.Types.XsltParameter NAnt.Core.Types.XsltParameterCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Core.Types.XsltParameterCollection::set_Item (int32 index, class NAnt.Core.Types.XsltParameter 'value') 
+	}
+	.property instance class NAnt.Core.Types.XsltParameter Item (string)
+	{
+		.get instance default class NAnt.Core.Types.XsltParameter NAnt.Core.Types.XsltParameterCollection::get_Item (string 'value') 
+	}
+  } // end of class NAnt.Core.Types.XsltParameterCollection
+}
+
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi beforefieldinit XsltParameterEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+
+    // method line 631
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.XsltParameterCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0xc478
-        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
-	// Code size 592 (0x250)
-	.maxstack 7
+        // Method begins at RVA 0xcc3c
+	// Code size 22 (0x16)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0,
-		class [mscorlib]System.Collections.ArrayList	V_1,
-		class NAnt.Core.TaskBuilder	V_2,
-		class NAnt.Core.TaskBuilderEnumerator	V_3,
-		class [mscorlib]System.IDisposable	V_4,
-		class NAnt.Core.DataTypeBaseBuilder	V_5,
-		class NAnt.Core.DataTypeBaseBuilderEnumerator	V_6,
-		class [mscorlib]System.IDisposable	V_7,
-		class [mscorlib]System.IO.MemoryStream	V_8,
-		class [System.Xml]System.Xml.Schema.XmlSchema	V_9,
-		class [System.Xml]System.Xml.Schema.XmlSchemaException	V_10,
-		class [mscorlib]System.Security.Permissions.FileIOPermission	V_11,
-		class [mscorlib]System.IO.FileStream	V_12,
-		unsigned int8[]	V_13,
-		int32	V_14)
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltParameterEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method XsltParameterEnumerator::.ctor
+
+    // method line 632
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.XsltParameter get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0xcc60
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.XsltParameter	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class NAnt.Core.Tasks.NAntSchemaTask::get_ForType()
-	IL_0007:  brtrue IL_00ee
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltParameterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.Core.Types.XsltParameter
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_000c:  nop 
-	IL_000d:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
-	IL_0012:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0017:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
-	IL_001c:  stloc.0 
-	IL_001d:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
-	IL_0022:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0027:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
-	IL_002c:  stloc.1 
-	IL_002d:  nop 
-	IL_002e:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
-	IL_0033:  callvirt instance class NAnt.Core.TaskBuilderEnumerator class NAnt.Core.TaskBuilderCollection::GetEnumerator()
-	IL_0038:  stloc.3 
-	.try { // 0
-	  IL_0039:  br IL_0061
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method XsltParameterEnumerator::get_Current
 
-	  IL_003e:  ldloc.3 
-	  IL_003f:  callvirt instance class NAnt.Core.TaskBuilder class NAnt.Core.TaskBuilderEnumerator::get_Current()
-	  IL_0044:  stloc.2 
-	  IL_0045:  nop 
-	  IL_0046:  ldloc.0 
-	  IL_0047:  ldloc.2 
-	  IL_0048:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
-	  IL_004d:  ldloc.2 
-	  IL_004e:  callvirt instance string class NAnt.Core.TaskBuilder::get_ClassName()
-	  IL_0053:  ldc.i4.1 
-	  IL_0054:  ldc.i4.1 
-	  IL_0055:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool, bool)
-	  IL_005a:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_005f:  pop 
-	  IL_0060:  nop 
-	  IL_0061:  ldloc.3 
-	  IL_0062:  callvirt instance bool class NAnt.Core.TaskBuilderEnumerator::MoveNext()
-	  IL_0067:  brtrue IL_003e
+    // method line 633
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0xcc88
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltParameterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	  IL_006c:  leave IL_0087
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method XsltParameterEnumerator::System.Collections.IEnumerator.get_Current
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0071:  ldloc.3 
-	  IL_0072:  isinst [mscorlib]System.IDisposable
-	  IL_0077:  dup 
-	  IL_0078:  stloc.s 4
-	  IL_007a:  brfalse IL_0086
+    // method line 634
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0xcca8
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltParameterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	  IL_007f:  ldloc.s 4
-	  IL_0081:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0086:  endfinally 
-	} // end handler 0
-	IL_0087:  nop 
-	IL_0088:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
-	IL_008d:  callvirt instance class NAnt.Core.DataTypeBaseBuilderEnumerator class NAnt.Core.DataTypeBaseBuilderCollection::GetEnumerator()
-	IL_0092:  stloc.s 6
-	.try { // 1
-	  IL_0094:  br IL_00c0
-
-	  IL_0099:  ldloc.s 6
-	  IL_009b:  callvirt instance class NAnt.Core.DataTypeBaseBuilder class NAnt.Core.DataTypeBaseBuilderEnumerator::get_Current()
-	  IL_00a0:  stloc.s 5
-	  IL_00a2:  nop 
-	  IL_00a3:  ldloc.1 
-	  IL_00a4:  ldloc.s 5
-	  IL_00a6:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
-	  IL_00ab:  ldloc.s 5
-	  IL_00ad:  callvirt instance string class NAnt.Core.DataTypeBaseBuilder::get_ClassName()
-	  IL_00b2:  ldc.i4.1 
-	  IL_00b3:  ldc.i4.1 
-	  IL_00b4:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool, bool)
-	  IL_00b9:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_00be:  pop 
-	  IL_00bf:  nop 
-	  IL_00c0:  ldloc.s 6
-	  IL_00c2:  callvirt instance bool class NAnt.Core.DataTypeBaseBuilderEnumerator::MoveNext()
-	  IL_00c7:  brtrue IL_0099
-
-	  IL_00cc:  leave IL_00e8
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00d1:  ldloc.s 6
-	  IL_00d3:  isinst [mscorlib]System.IDisposable
-	  IL_00d8:  dup 
-	  IL_00d9:  stloc.s 7
-	  IL_00db:  brfalse IL_00e7
-
-	  IL_00e0:  ldloc.s 7
-	  IL_00e2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00e7:  endfinally 
-	} // end handler 1
-	IL_00e8:  nop 
-	IL_00e9:  br IL_0111
-
-	IL_00ee:  nop 
-	IL_00ef:  ldc.i4.1 
-	IL_00f0:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
-	IL_00f5:  stloc.0 
-	IL_00f6:  ldloc.0 
-	IL_00f7:  ldarg.0 
-	IL_00f8:  callvirt instance string class NAnt.Core.Tasks.NAntSchemaTask::get_ForType()
-	IL_00fd:  ldc.i4.1 
-	IL_00fe:  ldc.i4.1 
-	IL_00ff:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool, bool)
-	IL_0104:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_0109:  pop 
-	IL_010a:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_010f:  stloc.1 
-	IL_0110:  nop 
-	IL_0111:  newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
-	IL_0116:  stloc.s 8
-	IL_0118:  ldloc.s 8
-	IL_011a:  ldloc.0 
-	IL_011b:  ldtoken [mscorlib]System.Type
-	IL_0120:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0125:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
-	IL_012a:  castclass class [mscorlib]System.Type[]
-	IL_012f:  ldloc.1 
-	IL_0130:  ldtoken [mscorlib]System.Type
-	IL_0135:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_013a:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
-	IL_013f:  castclass class [mscorlib]System.Type[]
-	IL_0144:  ldarg.0 
-	IL_0145:  callvirt instance string class NAnt.Core.Tasks.NAntSchemaTask::get_TargetNamespace()
-	IL_014a:  call class [System.Xml]System.Xml.Schema.XmlSchema class NAnt.Core.Tasks.NAntSchemaTask::WriteSchema(class [mscorlib]System.IO.Stream, class [mscorlib]System.Type[], class [mscorlib]System.Type[], string)
-	IL_014f:  pop 
-	IL_0150:  ldloc.s 8
-	IL_0152:  ldc.i4.0 
-	IL_0153:  conv.i8 
-	IL_0154:  callvirt instance void class [mscorlib]System.IO.Stream::set_Position(int64)
-	.try { // 2
-	  IL_0159:  nop 
-	  IL_015a:  ldloc.s 8
-	  IL_015c:  ldnull 
-	  IL_015d:  call class [System.Xml]System.Xml.Schema.XmlSchema class [System.Xml]System.Xml.Schema.XmlSchema::Read(class [mscorlib]System.IO.Stream, class [System.Xml]System.Xml.Schema.ValidationEventHandler)
-	  IL_0162:  stloc.s 9
-	  IL_0164:  ldloc.s 9
-	  IL_0166:  ldnull 
-	  IL_0167:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchema::Compile(class [System.Xml]System.Xml.Schema.ValidationEventHandler)
-	  IL_016c:  nop 
-	  IL_016d:  leave IL_0188
-
-	} // end .try 2
-	catch class [System.Xml]System.Xml.Schema.XmlSchemaException { // 2
-	  IL_0172:  stloc.s 10
-	  IL_0174:  nop 
-	  IL_0175:  ldstr "The generated XML schema is not valid."
-	  IL_017a:  ldarg.0 
-	  IL_017b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0180:  ldloc.s 10
-	  IL_0182:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0187:  throw 
-	} // end handler 2
-	IL_0188:  ldloc.s 8
-	IL_018a:  ldc.i4.0 
-	IL_018b:  conv.i8 
-	IL_018c:  callvirt instance void class [mscorlib]System.IO.Stream::set_Position(int64)
-	IL_0191:  ldc.i4.s 0x0f
-	IL_0193:  ldarg.0 
-	IL_0194:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.NAntSchemaTask::get_OutputFile()
-	IL_0199:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_019e:  newobj instance void class [mscorlib]System.Security.Permissions.FileIOPermission::'.ctor'(valuetype [mscorlib]System.Security.Permissions.FileIOPermissionAccess, string)
-	IL_01a3:  stloc.s 11
-	IL_01a5:  ldloc.s 11
-	IL_01a7:  callvirt instance void class [mscorlib]System.Security.CodeAccessPermission::Assert()
-	IL_01ac:  ldarg.0 
-	IL_01ad:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.NAntSchemaTask::get_OutputFile()
-	IL_01b2:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_01b7:  ldc.i4.2 
-	IL_01b8:  ldc.i4.2 
-	IL_01b9:  ldc.i4.1 
-	IL_01ba:  call class [mscorlib]System.IO.FileStream class [mscorlib]System.IO.File::Open(string, valuetype [mscorlib]System.IO.FileMode, valuetype [mscorlib]System.IO.FileAccess, valuetype [mscorlib]System.IO.FileShare)
-	IL_01bf:  stloc.s 12
-	.try { // 3
-	  IL_01c1:  nop 
-	  IL_01c2:  ldc.i4 4096
-	  IL_01c7:  newarr [mscorlib]System.Byte
-	  IL_01cc:  stloc.s 13
-	  IL_01ce:  ldloc.s 8
-	  IL_01d0:  ldloc.s 13
-	  IL_01d2:  ldc.i4.0 
-	  IL_01d3:  ldloc.s 13
-	  IL_01d5:  ldlen 
-	  IL_01d6:  conv.i4 
-	  IL_01d7:  callvirt instance int32 class [mscorlib]System.IO.Stream::Read(unsigned int8[], int32, int32)
-	  IL_01dc:  stloc.s 14
-	  IL_01de:  br IL_0201
-
-	  IL_01e3:  nop 
-	  IL_01e4:  ldloc.s 12
-	  IL_01e6:  ldloc.s 13
-	  IL_01e8:  ldc.i4.0 
-	  IL_01e9:  ldloc.s 14
-	  IL_01eb:  callvirt instance void class [mscorlib]System.IO.Stream::Write(unsigned int8[], int32, int32)
-	  IL_01f0:  ldloc.s 8
-	  IL_01f2:  ldloc.s 13
-	  IL_01f4:  ldc.i4.0 
-	  IL_01f5:  ldloc.s 13
-	  IL_01f7:  ldlen 
-	  IL_01f8:  conv.i4 
-	  IL_01f9:  callvirt instance int32 class [mscorlib]System.IO.Stream::Read(unsigned int8[], int32, int32)
-	  IL_01fe:  stloc.s 14
-	  IL_0200:  nop 
-	  IL_0201:  ldloc.s 14
-	  IL_0203:  brtrue IL_01e3
-
-	  IL_0208:  ldloc.s 12
-	  IL_020a:  callvirt instance void class [mscorlib]System.IO.Stream::Flush()
-	  IL_020f:  ldloc.s 12
-	  IL_0211:  callvirt instance void class [mscorlib]System.IO.Stream::Close()
-	  IL_0216:  nop 
-	  IL_0217:  leave IL_022b
-
-	} // end .try 3
-	finally  { // 3
-	  IL_021c:  ldloc.s 12
-	  IL_021e:  brfalse IL_022a
-
-	  IL_0223:  ldloc.s 12
-	  IL_0225:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_022a:  endfinally 
-	} // end handler 3
-	IL_022b:  ldarg.0 
-	IL_022c:  ldc.i4 3000
-	IL_0231:  ldstr "Wrote schema to '{0}'."
-	IL_0236:  ldc.i4.1 
-	IL_0237:  newarr [mscorlib]System.Object
-	IL_023c:  dup 
-	IL_023d:  ldc.i4.0 
-	IL_023e:  ldarg.0 
-	IL_023f:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.NAntSchemaTask::get_OutputFile()
-	IL_0244:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0249:  stelem.ref 
-	IL_024a:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_024f:  ret 
-    } // end of method NAntSchemaTask::ExecuteTask
-
-    // method line 726
-    .method public static hidebysig 
-           default class [System.Xml]System.Xml.Schema.XmlSchema WriteSchema (class [mscorlib]System.IO.Stream 'stream', class [mscorlib]System.Type[] tasks, class [mscorlib]System.Type[] dataTypes, string targetNS)  cil managed 
-    {
-        // Method begins at RVA 0xc708
-	// Code size 68 (0x44)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator	V_0,
-		class [System.Xml]System.Xml.Schema.XmlSchema	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  newobj instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::'.ctor'(class [mscorlib]System.Type[], class [mscorlib]System.Type[], string)
-	IL_0009:  stloc.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchema class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::get_Schema()
-	IL_0010:  callvirt instance bool class [System.Xml]System.Xml.Schema.XmlSchema::get_IsCompiled()
-	IL_0015:  brtrue IL_0022
-
-	IL_001a:  nop 
-	IL_001b:  ldloc.0 
-	IL_001c:  callvirt instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::Compile()
-	IL_0021:  nop 
-	IL_0022:  ldarg.0 
-	IL_0023:  brfalse IL_0036
-
-	IL_0028:  nop 
-	IL_0029:  ldloc.0 
-	IL_002a:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchema class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::get_Schema()
-	IL_002f:  ldarg.0 
-	IL_0030:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchema::Write(class [mscorlib]System.IO.Stream)
-	IL_0035:  nop 
-	IL_0036:  ldloc.0 
-	IL_0037:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchema class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::get_Schema()
-	IL_003c:  stloc.1 
-	IL_003d:  br IL_0042
-
-	IL_0042:  ldloc.1 
-	IL_0043:  ret 
-    } // end of method NAntSchemaTask::WriteSchema
-
-    // method line 727
-    .method family static hidebysig 
-           default string GenerateIDFromType (class [mscorlib]System.Type 'type')  cil managed 
-    {
-        // Method begins at RVA 0xc758
-	// Code size 60 (0x3c)
-	.maxstack 3
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string object::ToString()
-	IL_0007:  ldstr "+"
-	IL_000c:  ldstr "-"
-	IL_0011:  callvirt instance string string::Replace(string, string)
-	IL_0016:  ldstr "["
-	IL_001b:  ldstr "_"
-	IL_0020:  callvirt instance string string::Replace(string, string)
-	IL_0025:  ldstr "]"
-	IL_002a:  ldstr "_"
-	IL_002f:  callvirt instance string string::Replace(string, string)
-	IL_0034:  stloc.0 
-	IL_0035:  br IL_003a
-
-	IL_003a:  ldloc.0 
-	IL_003b:  ret 
-    } // end of method NAntSchemaTask::GenerateIDFromType
-
-    // method line 728
-    .method family static hidebysig 
-           default class [System.Xml]System.Xml.Schema.XmlSchemaAttribute CreateXsdAttribute (string name, bool required)  cil managed 
-    {
-        // Method begins at RVA 0xc7a0
-	// Code size 52 (0x34)
-	.maxstack 2
-	.locals init (
-		class [System.Xml]System.Xml.Schema.XmlSchemaAttribute	V_0,
-		class [System.Xml]System.Xml.Schema.XmlSchemaAttribute	V_1)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaAttribute::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaAttribute::set_Name(string)
-	IL_000e:  ldarg.1 
-	IL_000f:  brfalse IL_0022
-
-	IL_0014:  nop 
-	IL_0015:  ldloc.0 
-	IL_0016:  ldc.i4.3 
-	IL_0017:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaAttribute::set_Use(valuetype [System.Xml]System.Xml.Schema.XmlSchemaUse)
-	IL_001c:  nop 
-	IL_001d:  br IL_002b
-
-	IL_0022:  nop 
-	IL_0023:  ldloc.0 
-	IL_0024:  ldc.i4.1 
-	IL_0025:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaAttribute::set_Use(valuetype [System.Xml]System.Xml.Schema.XmlSchemaUse)
-	IL_002a:  nop 
-	IL_002b:  ldloc.0 
-	IL_002c:  stloc.1 
-	IL_002d:  br IL_0032
-
-	IL_0032:  ldloc.1 
-	IL_0033:  ret 
-    } // end of method NAntSchemaTask::CreateXsdAttribute
-
-    // method line 729
-    .method family static hidebysig 
-           default class [System.Xml]System.Xml.Schema.XmlSchemaSequence CreateXsdSequence (valuetype [mscorlib]System.Decimal min, valuetype [mscorlib]System.Decimal max)  cil managed 
-    {
-        // Method begins at RVA 0xc7e0
-	// Code size 71 (0x47)
-	.maxstack 6
-	.locals init (
-		class [System.Xml]System.Xml.Schema.XmlSchemaSequence	V_0,
-		class [System.Xml]System.Xml.Schema.XmlSchemaSequence	V_1)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaSequence::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MinOccurs(valuetype [mscorlib]System.Decimal)
-	IL_000e:  ldarg.1 
-	IL_000f:  ldc.i4.m1 
-	IL_0010:  ldc.i4.m1 
-	IL_0011:  ldc.i4.m1 
-	IL_0012:  ldc.i4.0 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32, int32, int32, bool, unsigned int8)
-	IL_0019:  call bool valuetype [mscorlib]System.Decimal::op_Inequality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal)
-	IL_001e:  brfalse IL_0031
-
-	IL_0023:  nop 
-	IL_0024:  ldloc.0 
-	IL_0025:  ldarg.1 
-	IL_0026:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MaxOccurs(valuetype [mscorlib]System.Decimal)
-	IL_002b:  nop 
-	IL_002c:  br IL_003e
-
-	IL_0031:  nop 
-	IL_0032:  ldloc.0 
-	IL_0033:  ldstr "unbounded"
-	IL_0038:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MaxOccursString(string)
-	IL_003d:  nop 
-	IL_003e:  ldloc.0 
-	IL_003f:  stloc.1 
-	IL_0040:  br IL_0045
-
-	IL_0045:  ldloc.1 
-	IL_0046:  ret 
-    } // end of method NAntSchemaTask::CreateXsdSequence
-
-    // method line 730
-    .method family static hidebysig 
-           default class [System.Xml]System.Xml.XmlNode[] TextToNodeArray (string text)  cil managed 
-    {
-        // Method begins at RVA 0xc834
-	// Code size 31 (0x1f)
-	.maxstack 5
-	.locals init (
-		class [System.Xml]System.Xml.XmlDocument	V_0,
-		class [System.Xml]System.Xml.XmlNode[]	V_1)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldc.i4.1 
-	IL_0008:  newarr [System.Xml]System.Xml.XmlNode
-	IL_000d:  dup 
-	IL_000e:  ldc.i4.0 
-	IL_000f:  ldloc.0 
-	IL_0010:  ldarg.0 
-	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlText class [System.Xml]System.Xml.XmlDocument::CreateTextNode(string)
-	IL_0016:  stelem.ref 
-	IL_0017:  stloc.1 
-	IL_0018:  br IL_001d
-
-	IL_001d:  ldloc.1 
-	IL_001e:  ret 
-    } // end of method NAntSchemaTask::TextToNodeArray
-
-    // method line 731
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xc85f
-	// Code size 40 (0x28)
-	.maxstack 8
-	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
-	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
-	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.Tasks.NAntSchemaTask::logger
-	IL_0014:  ldc.i4.1 
-	IL_0015:  newarr [mscorlib]System.String
-	IL_001a:  dup 
-	IL_001b:  ldc.i4.0 
-	IL_001c:  ldstr "NAnt.Core.Tasks.DescriptionTask"
-	IL_0021:  stelem.ref 
-	IL_0022:  stsfld string[] NAnt.Core.Tasks.NAntSchemaTask::mixedTaskNames
-	IL_0027:  ret 
-    } // end of method NAntSchemaTask::.cctor
-
-	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 6F 75 74 70 75 74 01 00 54 02 08 52 65   // ...output..T..Re
-		71 75 69 72 65 64 01                            ) // quired.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.NAntSchemaTask::get_OutputFile () 
-		.set instance default void NAnt.Core.Tasks.NAntSchemaTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string TargetNamespace ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 74 61 72 67 65 74 2D 6E 73 01 00 54 02   // ...target-ns..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
-
-		.get instance default string NAnt.Core.Tasks.NAntSchemaTask::get_TargetNamespace () 
-		.set instance default void NAnt.Core.Tasks.NAntSchemaTask::set_TargetNamespace (string 'value') 
-	}
-	.property instance string ForType ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 05 63 6C 61 73 73 01 00 54 02 08 52 65 71   // ...class..T..Req
-		75 69 72 65 64 00                               ) // uired.
-
-		.get instance default string NAnt.Core.Tasks.NAntSchemaTask::get_ForType () 
-		.set instance default void NAnt.Core.Tasks.NAntSchemaTask::set_ForType (string 'value') 
-	}
-  .class nested private auto ansi beforefieldinit NAntSchemaGenerator
-  	extends [mscorlib]System.Object
-  {
-    .field  private  class [mscorlib]System.Collections.IDictionary _nantComplexTypes
-    .field  private  class [System.Xml]System.Xml.Schema.XmlSchemaComplexType _targetCT
-    .field  private  class [System.Xml]System.Xml.Schema.XmlSchema _nantSchema
-
-    // method line 732
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Type[] tasks, class [mscorlib]System.Type[] dataTypes, string targetNS)  cil managed 
-    {
-        // Method begins at RVA 0xc888
-	// Code size 934 (0x3a6)
-	.maxstack 7
-	.locals init (
-		class [System.Xml]System.Xml.Schema.XmlSchemaAnnotation	V_0,
-		class [System.Xml]System.Xml.Schema.XmlSchemaDocumentation	V_1,
-		string	V_2,
-		class [mscorlib]System.Collections.ArrayList	V_3,
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_4,
-		class [mscorlib]System.Collections.ArrayList	V_5,
-		class [mscorlib]System.Type	V_6,
-		class [mscorlib]System.Type[]	V_7,
-		int32	V_8,
-		class [mscorlib]System.Type	V_9,
-		class [mscorlib]System.Type[]	V_10,
-		int32	V_11,
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_12,
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_13,
-		class [mscorlib]System.Collections.IEnumerator	V_14,
-		class [System.Xml]System.Xml.Schema.XmlSchemaSequence	V_15,
-		class [mscorlib]System.IDisposable	V_16,
-		class [System.Xml]System.Xml.Schema.XmlSchemaElement	V_17,
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_18)
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchema::'.ctor'()
-	IL_0006:  stfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void object::'.ctor'()
-	IL_0011:  nop 
-	IL_0012:  ldarg.3 
-	IL_0013:  brfalse IL_0046
-
-	IL_0018:  nop 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
-	IL_001f:  ldarg.3 
-	IL_0020:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchema::set_TargetNamespace(string)
-	IL_0025:  ldarg.0 
-	IL_0026:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
-	IL_002b:  callvirt instance class [System.Xml]System.Xml.Serialization.XmlSerializerNamespaces class [System.Xml]System.Xml.Schema.XmlSchemaObject::get_Namespaces()
-	IL_0030:  ldstr "nant"
-	IL_0035:  ldarg.0 
-	IL_0036:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
-	IL_003b:  callvirt instance string class [System.Xml]System.Xml.Schema.XmlSchema::get_TargetNamespace()
-	IL_0040:  callvirt instance void class [System.Xml]System.Xml.Serialization.XmlSerializerNamespaces::Add(string, string)
-	IL_0045:  nop 
-	IL_0046:  ldarg.0 
-	IL_0047:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
-	IL_004c:  callvirt instance class [System.Xml]System.Xml.Serialization.XmlSerializerNamespaces class [System.Xml]System.Xml.Schema.XmlSchemaObject::get_Namespaces()
-	IL_0051:  ldstr "xs"
-	IL_0056:  ldstr "http://www.w3.org/2001/XMLSchema"
-	IL_005b:  callvirt instance void class [System.Xml]System.Xml.Serialization.XmlSerializerNamespaces::Add(string, string)
-	IL_0060:  ldarg.0 
-	IL_0061:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
-	IL_0066:  ldc.i4.1 
-	IL_0067:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchema::set_ElementFormDefault(valuetype [System.Xml]System.Xml.Schema.XmlSchemaForm)
-	IL_006c:  ldarg.0 
-	IL_006d:  ldarg.1 
-	IL_006e:  ldlen 
-	IL_006f:  conv.i4 
-	IL_0070:  ldarg.2 
-	IL_0071:  ldlen 
-	IL_0072:  conv.i4 
-	IL_0073:  add 
-	IL_0074:  newobj instance void class [System]System.Collections.Specialized.HybridDictionary::'.ctor'(int32)
-	IL_0079:  stfld class [mscorlib]System.Collections.IDictionary NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantComplexTypes
-	IL_007e:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaAnnotation::'.ctor'()
-	IL_0083:  stloc.0 
-	IL_0084:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaDocumentation::'.ctor'()
-	IL_0089:  stloc.1 
-	IL_008a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_008f:  ldstr "String_SchemaGenerated"
-	IL_0094:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0099:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
-	IL_009e:  box [mscorlib]System.DateTime
-	IL_00a3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00a8:  stloc.2 
-	IL_00a9:  ldloc.1 
-	IL_00aa:  ldloc.2 
-	IL_00ab:  call class [System.Xml]System.Xml.XmlNode[] class NAnt.Core.Tasks.NAntSchemaTask::TextToNodeArray(string)
-	IL_00b0:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaDocumentation::set_Markup(class [System.Xml]System.Xml.XmlNode[])
-	IL_00b5:  ldloc.0 
-	IL_00b6:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaAnnotation::get_Items()
-	IL_00bb:  ldloc.1 
-	IL_00bc:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_00c1:  pop 
-	IL_00c2:  ldarg.0 
-	IL_00c3:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
-	IL_00c8:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchema::get_Items()
-	IL_00cd:  ldloc.0 
-	IL_00ce:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_00d3:  pop 
-	IL_00d4:  ldc.i4.4 
-	IL_00d5:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
-	IL_00da:  stloc.3 
-	IL_00db:  ldarg.0 
-	IL_00dc:  ldtoken NAnt.Core.TaskContainer
-	IL_00e1:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_00e6:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindOrCreateComplexType(class [mscorlib]System.Type)
-	IL_00eb:  stloc.s 4
-	IL_00ed:  ldloc.s 4
-	IL_00ef:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaParticle class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Particle()
-	IL_00f4:  brtrue IL_0117
-
-	IL_00f9:  nop 
-	IL_00fa:  ldloc.s 4
-	IL_00fc:  ldc.i4.0 
-	IL_00fd:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
-	IL_0102:  ldc.i4.m1 
-	IL_0103:  ldc.i4.m1 
-	IL_0104:  ldc.i4.m1 
-	IL_0105:  ldc.i4.0 
-	IL_0106:  ldc.i4.0 
-	IL_0107:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32, int32, int32, bool, unsigned int8)
-	IL_010c:  call class [System.Xml]System.Xml.Schema.XmlSchemaSequence class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdSequence(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal)
-	IL_0111:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::set_Particle(class [System.Xml]System.Xml.Schema.XmlSchemaParticle)
-	IL_0116:  nop 
-	IL_0117:  ldloc.3 
-	IL_0118:  ldloc.s 4
-	IL_011a:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_011f:  pop 
-	IL_0120:  ldarg.2 
-	IL_0121:  ldlen 
-	IL_0122:  conv.i4 
-	IL_0123:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
-	IL_0128:  stloc.s 5
-	IL_012a:  nop 
-	IL_012b:  ldarg.2 
-	IL_012c:  stloc.s 7
-	IL_012e:  ldc.i4.0 
-	IL_012f:  stloc.s 8
-	IL_0131:  br IL_0155
-
-	IL_0136:  ldloc.s 7
-	IL_0138:  ldloc.s 8
-	IL_013a:  ldelem.ref 
-	IL_013b:  stloc.s 6
-	IL_013d:  nop 
-	IL_013e:  ldloc.s 5
-	IL_0140:  ldarg.0 
-	IL_0141:  ldloc.s 6
-	IL_0143:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindOrCreateComplexType(class [mscorlib]System.Type)
-	IL_0148:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_014d:  pop 
-	IL_014e:  nop 
-	IL_014f:  ldloc.s 8
-	IL_0151:  ldc.i4.1 
-	IL_0152:  add 
-	IL_0153:  stloc.s 8
-	IL_0155:  ldloc.s 8
-	IL_0157:  ldloc.s 7
-	IL_0159:  ldlen 
-	IL_015a:  conv.i4 
-	IL_015b:  blt IL_0136
-
-	IL_0160:  nop 
-	IL_0161:  ldarg.1 
-	IL_0162:  stloc.s 10
-	IL_0164:  ldc.i4.0 
-	IL_0165:  stloc.s 11
-	IL_0167:  br IL_01a6
-
-	IL_016c:  ldloc.s 10
-	IL_016e:  ldloc.s 11
-	IL_0170:  ldelem.ref 
-	IL_0171:  stloc.s 9
-	IL_0173:  nop 
-	IL_0174:  ldarg.0 
-	IL_0175:  ldloc.s 9
-	IL_0177:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindOrCreateComplexType(class [mscorlib]System.Type)
-	IL_017c:  stloc.s 12
-	IL_017e:  ldloc.s 9
-	IL_0180:  ldtoken NAnt.Core.TaskContainer
-	IL_0185:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_018a:  callvirt instance bool class [mscorlib]System.Type::IsSubclassOf(class [mscorlib]System.Type)
-	IL_018f:  brfalse IL_019f
-
-	IL_0194:  nop 
-	IL_0195:  ldloc.3 
-	IL_0196:  ldloc.s 12
-	IL_0198:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_019d:  pop 
-	IL_019e:  nop 
-	IL_019f:  nop 
-	IL_01a0:  ldloc.s 11
-	IL_01a2:  ldc.i4.1 
-	IL_01a3:  add 
-	IL_01a4:  stloc.s 11
-	IL_01a6:  ldloc.s 11
-	IL_01a8:  ldloc.s 10
-	IL_01aa:  ldlen 
-	IL_01ab:  conv.i4 
-	IL_01ac:  blt IL_016c
-
-	IL_01b1:  ldarg.0 
-	IL_01b2:  call instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::Compile()
-	IL_01b7:  nop 
-	IL_01b8:  ldloc.3 
-	IL_01b9:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_01be:  stloc.s 14
-	.try { // 0
-	  IL_01c0:  br IL_021b
-
-	  IL_01c5:  ldloc.s 14
-	  IL_01c7:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_01cc:  castclass [System.Xml]System.Xml.Schema.XmlSchemaComplexType
-	  IL_01d1:  stloc.s 13
-	  IL_01d3:  nop 
-	  IL_01d4:  ldloc.s 13
-	  IL_01d6:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaParticle class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Particle()
-	  IL_01db:  isinst [System.Xml]System.Xml.Schema.XmlSchemaSequence
-	  IL_01e0:  stloc.s 15
-	  IL_01e2:  ldloc.s 15
-	  IL_01e4:  brfalse IL_0209
-
-	  IL_01e9:  nop 
-	  IL_01ea:  ldloc.s 15
-	  IL_01ec:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaGroupBase::get_Items()
-	  IL_01f1:  ldarg.0 
-	  IL_01f2:  ldarg.1 
-	  IL_01f3:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::CreateTaskListComplexType(class [mscorlib]System.Type[])
-	  IL_01f8:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaParticle class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Particle()
-	  IL_01fd:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	  IL_0202:  pop 
-	  IL_0203:  nop 
-	  IL_0204:  br IL_021a
-
-	  IL_0209:  nop 
-	  IL_020a:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.NAntSchemaTask::logger
-	  IL_020f:  ldstr "Unable to fixup complextype with children. Particle is not XmlSchemaSequence"
-	  IL_0214:  callvirt instance void class [log4net]log4net.ILog::Error(object)
-	  IL_0219:  nop 
-	  IL_021a:  nop 
-	  IL_021b:  ldloc.s 14
-	  IL_021d:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0222:  brtrue IL_01c5
-
-	  IL_0227:  leave IL_0243
-
-	} // end .try 0
-	finally  { // 0
-	  IL_022c:  ldloc.s 14
-	  IL_022e:  isinst [mscorlib]System.IDisposable
-	  IL_0233:  dup 
-	  IL_0234:  stloc.s 16
-	  IL_0236:  brfalse IL_0242
-
-	  IL_023b:  ldloc.s 16
-	  IL_023d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0242:  endfinally 
-	} // end handler 0
-	IL_0243:  ldarg.0 
-	IL_0244:  call instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::Compile()
-	IL_0249:  ldarg.0 
-	IL_024a:  ldarg.0 
-	IL_024b:  ldarg.1 
-	IL_024c:  ldarg.2 
-	IL_024d:  ldc.i4.0 
-	IL_024e:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::CreateTaskListComplexType(class [mscorlib]System.Type[], class [mscorlib]System.Type[], bool)
-	IL_0253:  stfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
-	IL_0258:  ldarg.0 
-	IL_0259:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
-	IL_025e:  ldstr "Target"
-	IL_0263:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaType::set_Name(string)
-	IL_0268:  ldarg.0 
-	IL_0269:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
-	IL_026e:  ldc.i4.1 
-	IL_026f:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaType::set_IsMixed(bool)
-	IL_0274:  ldarg.0 
-	IL_0275:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
-	IL_027a:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
-	IL_027f:  ldstr "name"
-	IL_0284:  ldc.i4.1 
-	IL_0285:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
-	IL_028a:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_028f:  pop 
-	IL_0290:  ldarg.0 
-	IL_0291:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
-	IL_0296:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
-	IL_029b:  ldstr "depends"
-	IL_02a0:  ldc.i4.0 
-	IL_02a1:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
-	IL_02a6:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_02ab:  pop 
-	IL_02ac:  ldarg.0 
-	IL_02ad:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
-	IL_02b2:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
-	IL_02b7:  ldstr "description"
-	IL_02bc:  ldc.i4.0 
-	IL_02bd:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
-	IL_02c2:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_02c7:  pop 
-	IL_02c8:  ldarg.0 
-	IL_02c9:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
-	IL_02ce:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
-	IL_02d3:  ldstr "if"
-	IL_02d8:  ldc.i4.0 
-	IL_02d9:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
-	IL_02de:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_02e3:  pop 
-	IL_02e4:  ldarg.0 
-	IL_02e5:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
-	IL_02ea:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
-	IL_02ef:  ldstr "unless"
-	IL_02f4:  ldc.i4.0 
-	IL_02f5:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
-	IL_02fa:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_02ff:  pop 
-	IL_0300:  ldarg.0 
-	IL_0301:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
-	IL_0306:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchema::get_Items()
-	IL_030b:  ldarg.0 
-	IL_030c:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
-	IL_0311:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_0316:  pop 
-	IL_0317:  ldarg.0 
-	IL_0318:  call instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::Compile()
-	IL_031d:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::'.ctor'()
-	IL_0322:  stloc.s 17
-	IL_0324:  ldloc.s 17
-	IL_0326:  ldstr "project"
-	IL_032b:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_Name(string)
-	IL_0330:  ldarg.0 
-	IL_0331:  ldarg.1 
-	IL_0332:  ldarg.2 
-	IL_0333:  ldc.i4.1 
-	IL_0334:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::CreateTaskListComplexType(class [mscorlib]System.Type[], class [mscorlib]System.Type[], bool)
-	IL_0339:  stloc.s 18
-	IL_033b:  ldloc.s 17
-	IL_033d:  ldloc.s 18
-	IL_033f:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_SchemaType(class [System.Xml]System.Xml.Schema.XmlSchemaType)
-	IL_0344:  ldloc.s 18
-	IL_0346:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
-	IL_034b:  ldstr "name"
-	IL_0350:  ldc.i4.1 
-	IL_0351:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
-	IL_0356:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_035b:  pop 
-	IL_035c:  ldloc.s 18
-	IL_035e:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
-	IL_0363:  ldstr "default"
-	IL_0368:  ldc.i4.0 
-	IL_0369:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
-	IL_036e:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_0373:  pop 
-	IL_0374:  ldloc.s 18
-	IL_0376:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
-	IL_037b:  ldstr "basedir"
-	IL_0380:  ldc.i4.0 
-	IL_0381:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
-	IL_0386:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_038b:  pop 
-	IL_038c:  ldarg.0 
-	IL_038d:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
-	IL_0392:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchema::get_Items()
-	IL_0397:  ldloc.s 17
-	IL_0399:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_039e:  pop 
-	IL_039f:  ldarg.0 
-	IL_03a0:  call instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::Compile()
-	IL_03a5:  ret 
-    } // end of method NAntSchemaGenerator::.ctor
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method XsltParameterEnumerator::MoveNext
 
-    // method line 733
-    .method public hidebysig specialname 
-           instance default class [System.Xml]System.Xml.Schema.XmlSchema get_Schema ()  cil managed 
+    // method line 635
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xcc4c
-	// Code size 39 (0x27)
+        // Method begins at RVA 0xccc8
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		class [System.Xml]System.Xml.Schema.XmlSchema	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
-	IL_0007:  callvirt instance bool class [System.Xml]System.Xml.Schema.XmlSchema::get_IsCompiled()
-	IL_000c:  brtrue IL_0019
-
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::Compile()
-	IL_0018:  nop 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
-	IL_001f:  stloc.0 
-	IL_0020:  br IL_0025
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltParameterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method NAntSchemaGenerator::get_Schema
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method XsltParameterEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 734
+    // method line 636
     .method public hidebysig 
-           instance default void Compile ()  cil managed 
+           instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0xcc7f
-	// Code size 25 (0x19)
+        // Method begins at RVA 0xcce8
+	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
-	IL_0007:  ldarg.0 
-	IL_0008:  ldftn instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::ValidationEH(object, class [System.Xml]System.Xml.Schema.ValidationEventArgs)
-	IL_000e:  newobj instance void class [System.Xml]System.Xml.Schema.ValidationEventHandler::'.ctor'(object, native int)
-	IL_0013:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchema::Compile(class [System.Xml]System.Xml.Schema.ValidationEventHandler)
-	IL_0018:  ret 
-    } // end of method NAntSchemaGenerator::Compile
-
-    // method line 735
-    .method family hidebysig 
-           instance default class [System.Xml]System.Xml.Schema.XmlSchemaComplexType CreateTaskListComplexType (class [mscorlib]System.Type[] tasks)  cil managed 
-    {
-        // Method begins at RVA 0xcc9c
-	// Code size 23 (0x17)
-	.maxstack 4
-	.locals init (
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldc.i4.0 
-	IL_0004:  newarr [mscorlib]System.Type
-	IL_0009:  ldc.i4.0 
-	IL_000a:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::CreateTaskListComplexType(class [mscorlib]System.Type[], class [mscorlib]System.Type[], bool)
-	IL_000f:  stloc.0 
-	IL_0010:  br IL_0015
-
-	IL_0015:  ldloc.0 
-	IL_0016:  ret 
-    } // end of method NAntSchemaGenerator::CreateTaskListComplexType
-
-    // method line 736
-    .method family hidebysig 
-           instance default class [System.Xml]System.Xml.Schema.XmlSchemaComplexType CreateTaskListComplexType (class [mscorlib]System.Type[] tasks, class [mscorlib]System.Type[] dataTypes, bool includeProjectLevelItems)  cil managed 
-    {
-        // Method begins at RVA 0xccc0
-	// Code size 392 (0x188)
-	.maxstack 6
-	.locals init (
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_0,
-		class [System.Xml]System.Xml.Schema.XmlSchemaChoice	V_1,
-		class [mscorlib]System.Type	V_2,
-		class [mscorlib]System.Type[]	V_3,
-		int32	V_4,
-		class [System.Xml]System.Xml.Schema.XmlSchemaElement	V_5,
-		string	V_6,
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_7,
-		class [mscorlib]System.Type	V_8,
-		class [mscorlib]System.Type[]	V_9,
-		int32	V_10,
-		class [System.Xml]System.Xml.Schema.XmlSchemaElement	V_11,
-		string	V_12,
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_13,
-		class [System.Xml]System.Xml.Schema.XmlSchemaElement	V_14,
-		class [System.Xml]System.Xml.Schema.XmlSchemaAny	V_15,
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_16)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaChoice::'.ctor'()
-	IL_000c:  stloc.1 
-	IL_000d:  ldloc.1 
-	IL_000e:  ldc.i4.0 
-	IL_000f:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
-	IL_0014:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MinOccurs(valuetype [mscorlib]System.Decimal)
-	IL_0019:  ldloc.1 
-	IL_001a:  ldstr "unbounded"
-	IL_001f:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MaxOccursString(string)
-	IL_0024:  ldloc.0 
-	IL_0025:  ldloc.1 
-	IL_0026:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::set_Particle(class [System.Xml]System.Xml.Schema.XmlSchemaParticle)
-	IL_002b:  nop 
-	IL_002c:  ldarg.1 
-	IL_002d:  stloc.3 
-	IL_002e:  ldc.i4.0 
-	IL_002f:  stloc.s 4
-	IL_0031:  br IL_0086
-
-	IL_0036:  ldloc.3 
-	IL_0037:  ldloc.s 4
-	IL_0039:  ldelem.ref 
-	IL_003a:  stloc.2 
-	IL_003b:  nop 
-	IL_003c:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::'.ctor'()
-	IL_0041:  stloc.s 5
-	IL_0043:  ldloc.2 
-	IL_0044:  call string class NAnt.Core.Tasks.NAntSchemaTask::GenerateIDFromType(class [mscorlib]System.Type)
-	IL_0049:  stloc.s 6
-	IL_004b:  ldarg.0 
-	IL_004c:  ldloc.s 6
-	IL_004e:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindComplexTypeByID(string)
-	IL_0053:  stloc.s 7
-	IL_0055:  ldloc.s 5
-	IL_0057:  ldarg.0 
-	IL_0058:  ldloc.2 
-	IL_0059:  call instance string class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::GetTaskName(class [mscorlib]System.Type)
-	IL_005e:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_Name(string)
-	IL_0063:  ldloc.s 5
-	IL_0065:  ldloc.s 7
-	IL_0067:  callvirt instance class [System.Xml]System.Xml.XmlQualifiedName class [System.Xml]System.Xml.Schema.XmlSchemaType::get_QualifiedName()
-	IL_006c:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_SchemaTypeName(class [System.Xml]System.Xml.XmlQualifiedName)
-	IL_0071:  ldloc.1 
-	IL_0072:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaGroupBase::get_Items()
-	IL_0077:  ldloc.s 5
-	IL_0079:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_007e:  pop 
-	IL_007f:  nop 
-	IL_0080:  ldloc.s 4
-	IL_0082:  ldc.i4.1 
-	IL_0083:  add 
-	IL_0084:  stloc.s 4
-	IL_0086:  ldloc.s 4
-	IL_0088:  ldloc.3 
-	IL_0089:  ldlen 
-	IL_008a:  conv.i4 
-	IL_008b:  blt IL_0036
-
-	IL_0090:  nop 
-	IL_0091:  ldarg.2 
-	IL_0092:  stloc.s 9
-	IL_0094:  ldc.i4.0 
-	IL_0095:  stloc.s 10
-	IL_0097:  br IL_00f0
-
-	IL_009c:  ldloc.s 9
-	IL_009e:  ldloc.s 10
-	IL_00a0:  ldelem.ref 
-	IL_00a1:  stloc.s 8
-	IL_00a3:  nop 
-	IL_00a4:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::'.ctor'()
-	IL_00a9:  stloc.s 11
-	IL_00ab:  ldloc.s 8
-	IL_00ad:  call string class NAnt.Core.Tasks.NAntSchemaTask::GenerateIDFromType(class [mscorlib]System.Type)
-	IL_00b2:  stloc.s 12
-	IL_00b4:  ldarg.0 
-	IL_00b5:  ldloc.s 12
-	IL_00b7:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindComplexTypeByID(string)
-	IL_00bc:  stloc.s 13
-	IL_00be:  ldloc.s 11
-	IL_00c0:  ldarg.0 
-	IL_00c1:  ldloc.s 8
-	IL_00c3:  call instance string class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::GetDataTypeName(class [mscorlib]System.Type)
-	IL_00c8:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_Name(string)
-	IL_00cd:  ldloc.s 11
-	IL_00cf:  ldloc.s 13
-	IL_00d1:  callvirt instance class [System.Xml]System.Xml.XmlQualifiedName class [System.Xml]System.Xml.Schema.XmlSchemaType::get_QualifiedName()
-	IL_00d6:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_SchemaTypeName(class [System.Xml]System.Xml.XmlQualifiedName)
-	IL_00db:  ldloc.1 
-	IL_00dc:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaGroupBase::get_Items()
-	IL_00e1:  ldloc.s 11
-	IL_00e3:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_00e8:  pop 
-	IL_00e9:  nop 
-	IL_00ea:  ldloc.s 10
-	IL_00ec:  ldc.i4.1 
-	IL_00ed:  add 
-	IL_00ee:  stloc.s 10
-	IL_00f0:  ldloc.s 10
-	IL_00f2:  ldloc.s 9
-	IL_00f4:  ldlen 
-	IL_00f5:  conv.i4 
-	IL_00f6:  blt IL_009c
-
-	IL_00fb:  ldarg.3 
-	IL_00fc:  brfalse IL_0136
-
-	IL_0101:  nop 
-	IL_0102:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::'.ctor'()
-	IL_0107:  stloc.s 14
-	IL_0109:  ldloc.s 14
-	IL_010b:  ldstr "target"
-	IL_0110:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_Name(string)
-	IL_0115:  ldloc.s 14
-	IL_0117:  ldarg.0 
-	IL_0118:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
-	IL_011d:  callvirt instance class [System.Xml]System.Xml.XmlQualifiedName class [System.Xml]System.Xml.Schema.XmlSchemaType::get_QualifiedName()
-	IL_0122:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_SchemaTypeName(class [System.Xml]System.Xml.XmlQualifiedName)
-	IL_0127:  ldloc.1 
-	IL_0128:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaGroupBase::get_Items()
-	IL_012d:  ldloc.s 14
-	IL_012f:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_0134:  pop 
-	IL_0135:  nop 
-	IL_0136:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaAny::'.ctor'()
-	IL_013b:  stloc.s 15
-	IL_013d:  ldloc.s 15
-	IL_013f:  ldc.i4.0 
-	IL_0140:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
-	IL_0145:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MinOccurs(valuetype [mscorlib]System.Decimal)
-	IL_014a:  ldloc.s 15
-	IL_014c:  ldc.i4.m1 
-	IL_014d:  ldc.i4.m1 
-	IL_014e:  ldc.i4.m1 
-	IL_014f:  ldc.i4.0 
-	IL_0150:  ldc.i4.0 
-	IL_0151:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32, int32, int32, bool, unsigned int8)
-	IL_0156:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MaxOccurs(valuetype [mscorlib]System.Decimal)
-	IL_015b:  ldloc.s 15
-	IL_015d:  ldstr "##other"
-	IL_0162:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaAny::set_Namespace(string)
-	IL_0167:  ldloc.s 15
-	IL_0169:  ldc.i4.3 
-	IL_016a:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaAny::set_ProcessContents(valuetype [System.Xml]System.Xml.Schema.XmlSchemaContentProcessing)
-	IL_016f:  ldloc.1 
-	IL_0170:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaGroupBase::get_Items()
-	IL_0175:  ldloc.s 15
-	IL_0177:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_017c:  pop 
-	IL_017d:  ldloc.0 
-	IL_017e:  stloc.s 16
-	IL_0180:  br IL_0185
-
-	IL_0185:  ldloc.s 16
-	IL_0187:  ret 
-    } // end of method NAntSchemaGenerator::CreateTaskListComplexType
-
-    // method line 737
-    .method family hidebysig 
-           instance default void ValidationEH (object sender, class [System.Xml]System.Xml.Schema.ValidationEventArgs args)  cil managed 
-    {
-        // Method begins at RVA 0xce54
-	// Code size 136 (0x88)
-	.maxstack 4
-	.locals init (
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  callvirt instance valuetype [System.Xml]System.Xml.Schema.XmlSeverityType class [System.Xml]System.Xml.Schema.ValidationEventArgs::get_Severity()
-	IL_0007:  ldc.i4.1 
-	IL_0008:  bne.un IL_0023
-
-	IL_000d:  nop 
-	IL_000e:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.NAntSchemaTask::logger
-	IL_0013:  ldstr "WARNING: "
-	IL_0018:  callvirt instance void class [log4net]log4net.ILog::Info(object)
-	IL_001d:  nop 
-	IL_001e:  br IL_003f
-
-	IL_0023:  ldarg.2 
-	IL_0024:  callvirt instance valuetype [System.Xml]System.Xml.Schema.XmlSeverityType class [System.Xml]System.Xml.Schema.ValidationEventArgs::get_Severity()
-	IL_0029:  brtrue IL_003f
-
-	IL_002e:  nop 
-	IL_002f:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.NAntSchemaTask::logger
-	IL_0034:  ldstr "ERROR: "
-	IL_0039:  callvirt instance void class [log4net]log4net.ILog::Error(object)
-	IL_003e:  nop 
-	IL_003f:  ldarg.2 
-	IL_0040:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaException class [System.Xml]System.Xml.Schema.ValidationEventArgs::get_Exception()
-	IL_0045:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObject class [System.Xml]System.Xml.Schema.XmlSchemaException::get_SourceSchemaObject()
-	IL_004a:  isinst [System.Xml]System.Xml.Schema.XmlSchemaComplexType
-	IL_004f:  stloc.0 
-	IL_0050:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.NAntSchemaTask::logger
-	IL_0055:  ldarg.2 
-	IL_0056:  callvirt instance string object::ToString()
-	IL_005b:  callvirt instance void class [log4net]log4net.ILog::Info(object)
-	IL_0060:  ldloc.0 
-	IL_0061:  brfalse IL_0087
-
-	IL_0066:  nop 
-	IL_0067:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.NAntSchemaTask::logger
-	IL_006c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0071:  ldstr "{0}"
-	IL_0076:  ldloc.0 
-	IL_0077:  callvirt instance string class [System.Xml]System.Xml.Schema.XmlSchemaType::get_Name()
-	IL_007c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0081:  callvirt instance void class [log4net]log4net.ILog::Info(object)
-	IL_0086:  nop 
-	IL_0087:  ret 
-    } // end of method NAntSchemaGenerator::ValidationEH
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltParameterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method XsltParameterEnumerator::Reset
 
-    // method line 738
-    .method family hidebysig 
-           instance default class [System.Xml]System.Xml.Schema.XmlSchemaComplexType FindComplexTypeByID (string id)  cil managed 
+    // method line 637
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0xcee8
-	// Code size 51 (0x33)
-	.maxstack 2
-	.locals init (
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_0)
+        // Method begins at RVA 0xccf6
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionary NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantComplexTypes
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IDictionary::Contains(object)
-	IL_000d:  brfalse IL_002a
-
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldfld class [mscorlib]System.Collections.IDictionary NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantComplexTypes
-	IL_0019:  ldarg.1 
-	IL_001a:  callvirt instance object class [mscorlib]System.Collections.IDictionary::get_Item(object)
-	IL_001f:  castclass [System.Xml]System.Xml.Schema.XmlSchemaComplexType
-	IL_0024:  stloc.0 
-	IL_0025:  br IL_0031
-
-	IL_002a:  ldnull 
-	IL_002b:  stloc.0 
-	IL_002c:  br IL_0031
-
-	IL_0031:  ldloc.0 
-	IL_0032:  ret 
-    } // end of method NAntSchemaGenerator::FindComplexTypeByID
-
-    // method line 739
-    .method family hidebysig 
-           instance default class [System.Xml]System.Xml.Schema.XmlSchemaComplexType FindOrCreateComplexType (class [mscorlib]System.Type t)  cil managed 
-    {
-        // Method begins at RVA 0xcf28
-	// Code size 1102 (0x44e)
-	.maxstack 6
-	.locals init (
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_0,
-		string	V_1,
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_2,
-		class [System.Xml]System.Xml.Schema.XmlSchemaSequence	V_3,
-		class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection	V_4,
-		class [mscorlib]System.Reflection.MemberInfo	V_5,
-		class [mscorlib]System.Reflection.MemberInfo[]	V_6,
-		int32	V_7,
-		class NAnt.Core.Attributes.TaskAttributeAttribute	V_8,
-		class NAnt.Core.Attributes.BuildElementAttribute	V_9,
-		class [System.Xml]System.Xml.Schema.XmlSchemaAttribute	V_10,
-		valuetype [mscorlib]System.Decimal	V_11,
-		class [System.Xml]System.Xml.Schema.XmlSchemaElement	V_12,
-		class [mscorlib]System.Type	V_13,
-		class [mscorlib]System.Reflection.MethodInfo	V_14,
-		class NAnt.Core.Attributes.BuildElementArrayAttribute	V_15,
-		class [mscorlib]System.Type	V_16,
-		class [mscorlib]System.Reflection.MethodInfo	V_17,
-		class [mscorlib]System.Reflection.MethodInfo[]	V_18,
-		int32	V_19,
-		class [mscorlib]System.Reflection.ParameterInfo	V_20,
-		class NAnt.Core.Attributes.BuildElementCollectionAttribute	V_21,
-		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_22,
-		class [System.Xml]System.Xml.Schema.XmlSchemaSequence	V_23,
-		class [System.Xml]System.Xml.Schema.XmlSchemaElement	V_24)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call string class NAnt.Core.Tasks.NAntSchemaTask::GenerateIDFromType(class [mscorlib]System.Type)
-	IL_0007:  stloc.1 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldloc.1 
-	IL_000a:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindComplexTypeByID(string)
-	IL_000f:  stloc.0 
-	IL_0010:  ldloc.0 
-	IL_0011:  brfalse IL_001e
-
-	IL_0016:  nop 
-	IL_0017:  ldloc.0 
-	IL_0018:  stloc.2 
-	IL_0019:  br IL_044c
-
-	IL_001e:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::'.ctor'()
-	IL_0023:  stloc.0 
-	IL_0024:  ldloc.0 
-	IL_0025:  ldloc.1 
-	IL_0026:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaType::set_Name(string)
-	IL_002b:  ldsfld string[] NAnt.Core.Tasks.NAntSchemaTask::mixedTaskNames
-	IL_0030:  ldloc.0 
-	IL_0031:  callvirt instance string class [System.Xml]System.Xml.Schema.XmlSchemaType::get_Name()
-	IL_0036:  call int32 class [mscorlib]System.Array::IndexOf<string> (!!0[], !!0)
-	IL_003b:  ldc.i4.m1 
-	IL_003c:  beq IL_004a
-
-	IL_0041:  nop 
-	IL_0042:  ldloc.0 
-	IL_0043:  ldc.i4.1 
-	IL_0044:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaType::set_IsMixed(bool)
-	IL_0049:  nop 
-	IL_004a:  ldarg.0 
-	IL_004b:  ldfld class [mscorlib]System.Collections.IDictionary NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantComplexTypes
-	IL_0050:  ldloc.1 
-	IL_0051:  ldloc.0 
-	IL_0052:  callvirt instance void class [mscorlib]System.Collections.IDictionary::Add(object, object)
-	IL_0057:  ldnull 
-	IL_0058:  stloc.3 
-	IL_0059:  ldloc.0 
-	IL_005a:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
-	IL_005f:  stloc.s 4
-	IL_0061:  nop 
-	IL_0062:  ldarg.1 
-	IL_0063:  ldc.i4.s 0x14
-	IL_0065:  callvirt instance class [mscorlib]System.Reflection.MemberInfo[] class [mscorlib]System.Type::GetMembers(valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_006a:  stloc.s 6
-	IL_006c:  ldc.i4.0 
-	IL_006d:  stloc.s 7
-	IL_006f:  br IL_03fb
-
-	IL_0074:  ldloc.s 6
-	IL_0076:  ldloc.s 7
-	IL_0078:  ldelem.ref 
-	IL_0079:  stloc.s 5
-	IL_007b:  nop 
-	IL_007c:  ldloc.s 5
-	IL_007e:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_0083:  ldtoken [mscorlib]System.Object
-	IL_0088:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_008d:  callvirt instance bool class [mscorlib]System.Type::Equals(class [mscorlib]System.Type)
-	IL_0092:  brfalse IL_009d
-
-	IL_0097:  nop 
-	IL_0098:  br IL_03f5
-
-	IL_009d:  ldloc.s 5
-	IL_009f:  ldtoken NAnt.Core.Attributes.TaskAttributeAttribute
-	IL_00a4:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_00a9:  ldc.i4.0 
-	IL_00aa:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_00af:  castclass NAnt.Core.Attributes.TaskAttributeAttribute
-	IL_00b4:  stloc.s 8
-	IL_00b6:  ldloc.s 5
-	IL_00b8:  ldtoken NAnt.Core.Attributes.BuildElementAttribute
-	IL_00bd:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_00c2:  ldc.i4.0 
-	IL_00c3:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_00c8:  castclass NAnt.Core.Attributes.BuildElementAttribute
-	IL_00cd:  stloc.s 9
-	IL_00cf:  ldloc.s 8
-	IL_00d1:  brfalse IL_00fc
-
-	IL_00d6:  nop 
-	IL_00d7:  ldloc.s 8
-	IL_00d9:  callvirt instance string class NAnt.Core.Attributes.BuildAttributeAttribute::get_Name()
-	IL_00de:  ldloc.s 8
-	IL_00e0:  callvirt instance bool class NAnt.Core.Attributes.BuildAttributeAttribute::get_Required()
-	IL_00e5:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
-	IL_00ea:  stloc.s 10
-	IL_00ec:  ldloc.s 4
-	IL_00ee:  ldloc.s 10
-	IL_00f0:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_00f5:  pop 
-	IL_00f6:  nop 
-	IL_00f7:  br IL_03f4
-
-	IL_00fc:  ldloc.s 9
-	IL_00fe:  brfalse IL_03f4
-
-	IL_0103:  nop 
-	IL_0104:  ldc.i4.0 
-	IL_0105:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
-	IL_010a:  stloc.s 11
-	IL_010c:  ldloc.s 9
-	IL_010e:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_Required()
-	IL_0113:  brfalse IL_0122
-
-	IL_0118:  nop 
-	IL_0119:  ldc.i4.1 
-	IL_011a:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
-	IL_011f:  stloc.s 11
-	IL_0121:  nop 
-	IL_0122:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::'.ctor'()
-	IL_0127:  stloc.s 12
-	IL_0129:  ldloc.s 12
-	IL_012b:  ldloc.s 11
-	IL_012d:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MinOccurs(valuetype [mscorlib]System.Decimal)
-	IL_0132:  ldloc.s 12
-	IL_0134:  ldc.i4.1 
-	IL_0135:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
-	IL_013a:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MaxOccurs(valuetype [mscorlib]System.Decimal)
-	IL_013f:  ldloc.s 12
-	IL_0141:  ldloc.s 9
-	IL_0143:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_0148:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_Name(string)
-	IL_014d:  ldloc.s 5
-	IL_014f:  isinst [mscorlib]System.Reflection.PropertyInfo
-	IL_0154:  brfalse IL_016e
-
-	IL_0159:  nop 
-	IL_015a:  ldloc.s 5
-	IL_015c:  castclass [mscorlib]System.Reflection.PropertyInfo
-	IL_0161:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_0166:  stloc.s 13
-	IL_0168:  nop 
-	IL_0169:  br IL_01e9
-
-	IL_016e:  ldloc.s 5
-	IL_0170:  isinst [mscorlib]System.Reflection.FieldInfo
-	IL_0175:  brfalse IL_018f
-
-	IL_017a:  nop 
-	IL_017b:  ldloc.s 5
-	IL_017d:  castclass [mscorlib]System.Reflection.FieldInfo
-	IL_0182:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.FieldInfo::get_FieldType()
-	IL_0187:  stloc.s 13
-	IL_0189:  nop 
-	IL_018a:  br IL_01e9
-
-	IL_018f:  ldloc.s 5
-	IL_0191:  isinst [mscorlib]System.Reflection.MethodInfo
-	IL_0196:  brfalse IL_01dd
-
-	IL_019b:  nop 
-	IL_019c:  ldloc.s 5
-	IL_019e:  castclass [mscorlib]System.Reflection.MethodInfo
-	IL_01a3:  stloc.s 14
-	IL_01a5:  ldloc.s 14
-	IL_01a7:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_01ac:  ldlen 
-	IL_01ad:  conv.i4 
-	IL_01ae:  ldc.i4.1 
-	IL_01af:  bne.un IL_01cb
-
-	IL_01b4:  nop 
-	IL_01b5:  ldloc.s 14
-	IL_01b7:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_01bc:  ldc.i4.0 
-	IL_01bd:  ldelem.ref 
-	IL_01be:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	IL_01c3:  stloc.s 13
-	IL_01c5:  nop 
-	IL_01c6:  br IL_01d7
-
-	IL_01cb:  nop 
-	IL_01cc:  ldstr "Method should have one parameter."
-	IL_01d1:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
-	IL_01d6:  throw 
-	IL_01d7:  nop 
-	IL_01d8:  br IL_01e9
-
-	IL_01dd:  nop 
-	IL_01de:  ldstr "Member Type != Field/Property/Method"
-	IL_01e3:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
-	IL_01e8:  throw 
-	IL_01e9:  ldloc.s 5
-	IL_01eb:  ldtoken NAnt.Core.Attributes.BuildElementArrayAttribute
-	IL_01f0:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_01f5:  ldc.i4.0 
-	IL_01f6:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_01fb:  castclass NAnt.Core.Attributes.BuildElementArrayAttribute
-	IL_0200:  stloc.s 15
-	IL_0202:  ldloc.s 15
-	IL_0204:  brfalse IL_0312
-
-	IL_0209:  nop 
-	IL_020a:  ldloc.s 15
-	IL_020c:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Attributes.BuildElementArrayAttribute::get_ElementType()
-	IL_0211:  ldnull 
-	IL_0212:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0217:  brfalse IL_02b5
-
-	IL_021c:  nop 
-	IL_021d:  ldloc.s 13
-	IL_021f:  callvirt instance bool class [mscorlib]System.Type::get_IsArray()
-	IL_0224:  brfalse IL_0239
-
-	IL_0229:  nop 
-	IL_022a:  ldloc.s 13
-	IL_022c:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Type::GetElementType()
-	IL_0231:  stloc.s 13
-	IL_0233:  nop 
-	IL_0234:  br IL_02af
-
-	IL_0239:  nop 
-	IL_023a:  ldnull 
-	IL_023b:  stloc.s 16
-	IL_023d:  nop 
-	IL_023e:  ldloc.s 13
-	IL_0240:  ldc.i4.s 0x14
-	IL_0242:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_0247:  stloc.s 18
-	IL_0249:  ldc.i4.0 
-	IL_024a:  stloc.s 19
-	IL_024c:  br IL_029f
-
-	IL_0251:  ldloc.s 18
-	IL_0253:  ldloc.s 19
-	IL_0255:  ldelem.ref 
-	IL_0256:  stloc.s 17
-	IL_0258:  nop 
-	IL_0259:  ldloc.s 17
-	IL_025b:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_0260:  ldstr "Add"
-	IL_0265:  call bool string::op_Equality(string, string)
-	IL_026a:  brfalse IL_0298
-
-	IL_026f:  ldloc.s 17
-	IL_0271:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_0276:  ldlen 
-	IL_0277:  conv.i4 
-	IL_0278:  ldc.i4.1 
-	IL_0279:  bne.un IL_0298
-
-	IL_027e:  nop 
-	IL_027f:  ldloc.s 17
-	IL_0281:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_0286:  ldc.i4.0 
-	IL_0287:  ldelem.ref 
-	IL_0288:  stloc.s 20
-	IL_028a:  ldloc.s 20
-	IL_028c:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	IL_0291:  stloc.s 16
-	IL_0293:  br IL_02aa
-
-	IL_0298:  nop 
-	IL_0299:  ldloc.s 19
-	IL_029b:  ldc.i4.1 
-	IL_029c:  add 
-	IL_029d:  stloc.s 19
-	IL_029f:  ldloc.s 19
-	IL_02a1:  ldloc.s 18
-	IL_02a3:  ldlen 
-	IL_02a4:  conv.i4 
-	IL_02a5:  blt IL_0251
-
-	IL_02aa:  ldloc.s 16
-	IL_02ac:  stloc.s 13
-	IL_02ae:  nop 
-	IL_02af:  nop 
-	IL_02b0:  br IL_02c0
-
-	IL_02b5:  nop 
-	IL_02b6:  ldloc.s 15
-	IL_02b8:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Attributes.BuildElementArrayAttribute::get_ElementType()
-	IL_02bd:  stloc.s 13
-	IL_02bf:  nop 
-	IL_02c0:  ldloc.s 13
-	IL_02c2:  ldnull 
-	IL_02c3:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_02c8:  brtrue IL_02e3
-
-	IL_02cd:  ldtoken NAnt.Core.Element
-	IL_02d2:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_02d7:  ldloc.s 13
-	IL_02d9:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_02de:  brtrue IL_0311
-
-	IL_02e3:  nop 
-	IL_02e4:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_02e9:  ldstr "NA1140"
-	IL_02ee:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_02f3:  ldloc.s 5
-	IL_02f5:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_02fa:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_02ff:  ldloc.s 5
-	IL_0301:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_0306:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_030b:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_0310:  throw 
-	IL_0311:  nop 
-	IL_0312:  ldloc.s 5
-	IL_0314:  ldtoken NAnt.Core.Attributes.BuildElementCollectionAttribute
-	IL_0319:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_031e:  ldc.i4.0 
-	IL_031f:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_0324:  castclass NAnt.Core.Attributes.BuildElementCollectionAttribute
-	IL_0329:  stloc.s 21
-	IL_032b:  ldloc.s 21
-	IL_032d:  brfalse IL_03aa
-
-	IL_0332:  nop 
-	IL_0333:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::'.ctor'()
-	IL_0338:  stloc.s 22
-	IL_033a:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaSequence::'.ctor'()
-	IL_033f:  stloc.s 23
-	IL_0341:  ldloc.s 22
-	IL_0343:  ldloc.s 23
-	IL_0345:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::set_Particle(class [System.Xml]System.Xml.Schema.XmlSchemaParticle)
-	IL_034a:  ldloc.s 23
-	IL_034c:  ldc.i4.0 
-	IL_034d:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
-	IL_0352:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MinOccurs(valuetype [mscorlib]System.Decimal)
-	IL_0357:  ldloc.s 23
-	IL_0359:  ldstr "unbounded"
-	IL_035e:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MaxOccursString(string)
-	IL_0363:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::'.ctor'()
-	IL_0368:  stloc.s 24
-	IL_036a:  ldloc.s 24
-	IL_036c:  ldloc.s 21
-	IL_036e:  callvirt instance string class NAnt.Core.Attributes.BuildElementCollectionAttribute::get_ChildElementName()
-	IL_0373:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_Name(string)
-	IL_0378:  ldloc.s 24
-	IL_037a:  ldarg.0 
-	IL_037b:  ldloc.s 13
-	IL_037d:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindOrCreateComplexType(class [mscorlib]System.Type)
-	IL_0382:  callvirt instance class [System.Xml]System.Xml.XmlQualifiedName class [System.Xml]System.Xml.Schema.XmlSchemaType::get_QualifiedName()
-	IL_0387:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_SchemaTypeName(class [System.Xml]System.Xml.XmlQualifiedName)
-	IL_038c:  ldloc.s 23
-	IL_038e:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaGroupBase::get_Items()
-	IL_0393:  ldloc.s 24
-	IL_0395:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_039a:  pop 
-	IL_039b:  ldloc.s 12
-	IL_039d:  ldloc.s 22
-	IL_039f:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_SchemaType(class [System.Xml]System.Xml.Schema.XmlSchemaType)
-	IL_03a4:  nop 
-	IL_03a5:  br IL_03c0
-
-	IL_03aa:  nop 
-	IL_03ab:  ldloc.s 12
-	IL_03ad:  ldarg.0 
-	IL_03ae:  ldloc.s 13
-	IL_03b0:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindOrCreateComplexType(class [mscorlib]System.Type)
-	IL_03b5:  callvirt instance class [System.Xml]System.Xml.XmlQualifiedName class [System.Xml]System.Xml.Schema.XmlSchemaType::get_QualifiedName()
-	IL_03ba:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_SchemaTypeName(class [System.Xml]System.Xml.XmlQualifiedName)
-	IL_03bf:  nop 
-	IL_03c0:  ldloc.3 
-	IL_03c1:  brtrue IL_03e5
-
-	IL_03c6:  nop 
-	IL_03c7:  ldc.i4.0 
-	IL_03c8:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
-	IL_03cd:  ldc.i4.m1 
-	IL_03ce:  ldc.i4.m1 
-	IL_03cf:  ldc.i4.m1 
-	IL_03d0:  ldc.i4.0 
-	IL_03d1:  ldc.i4.0 
-	IL_03d2:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32, int32, int32, bool, unsigned int8)
-	IL_03d7:  call class [System.Xml]System.Xml.Schema.XmlSchemaSequence class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdSequence(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal)
-	IL_03dc:  stloc.3 
-	IL_03dd:  ldloc.0 
-	IL_03de:  ldloc.3 
-	IL_03df:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::set_Particle(class [System.Xml]System.Xml.Schema.XmlSchemaParticle)
-	IL_03e4:  nop 
-	IL_03e5:  ldloc.3 
-	IL_03e6:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaGroupBase::get_Items()
-	IL_03eb:  ldloc.s 12
-	IL_03ed:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_03f2:  pop 
-	IL_03f3:  nop 
-	IL_03f4:  nop 
-	IL_03f5:  ldloc.s 7
-	IL_03f7:  ldc.i4.1 
-	IL_03f8:  add 
-	IL_03f9:  stloc.s 7
-	IL_03fb:  ldloc.s 7
-	IL_03fd:  ldloc.s 6
-	IL_03ff:  ldlen 
-	IL_0400:  conv.i4 
-	IL_0401:  blt IL_0074
-
-	IL_0406:  ldloc.0 
-	IL_0407:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaAnyAttribute::'.ctor'()
-	IL_040c:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::set_AnyAttribute(class [System.Xml]System.Xml.Schema.XmlSchemaAnyAttribute)
-	IL_0411:  ldloc.0 
-	IL_0412:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaAnyAttribute class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_AnyAttribute()
-	IL_0417:  ldstr "##other"
-	IL_041c:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaAnyAttribute::set_Namespace(string)
-	IL_0421:  ldloc.0 
-	IL_0422:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaAnyAttribute class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_AnyAttribute()
-	IL_0427:  ldc.i4.1 
-	IL_0428:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaAnyAttribute::set_ProcessContents(valuetype [System.Xml]System.Xml.Schema.XmlSchemaContentProcessing)
-	IL_042d:  ldarg.0 
-	IL_042e:  call instance class [System.Xml]System.Xml.Schema.XmlSchema class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::get_Schema()
-	IL_0433:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchema::get_Items()
-	IL_0438:  ldloc.0 
-	IL_0439:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
-	IL_043e:  pop 
-	IL_043f:  ldarg.0 
-	IL_0440:  call instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::Compile()
-	IL_0445:  ldloc.0 
-	IL_0446:  stloc.2 
-	IL_0447:  br IL_044c
-
-	IL_044c:  ldloc.2 
-	IL_044d:  ret 
-    } // end of method NAntSchemaGenerator::FindOrCreateComplexType
-
-    // method line 740
-    .method private hidebysig 
-           instance default string GetTaskName (class [mscorlib]System.Type t)  cil managed 
-    {
-        // Method begins at RVA 0xd384
-	// Code size 58 (0x3a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.Attributes.TaskNameAttribute[]	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldtoken NAnt.Core.Attributes.TaskNameAttribute
-	IL_0007:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000c:  ldc.i4.0 
-	IL_000d:  callvirt instance object[] class [mscorlib]System.Reflection.MemberInfo::GetCustomAttributes(class [mscorlib]System.Type, bool)
-	IL_0012:  castclass class NAnt.Core.Attributes.TaskNameAttribute[]
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldlen 
-	IL_001a:  conv.i4 
-	IL_001b:  ldc.i4.1 
-	IL_001c:  bne.un IL_0030
-
-	IL_0021:  nop 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldc.i4.0 
-	IL_0024:  ldelem.ref 
-	IL_0025:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
-	IL_002a:  stloc.1 
-	IL_002b:  br IL_0038
-
-	IL_0030:  nop 
-	IL_0031:  ldnull 
-	IL_0032:  stloc.1 
-	IL_0033:  br IL_0038
-
-	IL_0038:  ldloc.1 
-	IL_0039:  ret 
-    } // end of method NAntSchemaGenerator::GetTaskName
-
-    // method line 741
-    .method private hidebysig 
-           instance default string GetDataTypeName (class [mscorlib]System.Type t)  cil managed 
-    {
-        // Method begins at RVA 0xd3cc
-	// Code size 58 (0x3a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.Attributes.ElementNameAttribute[]	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
-	IL_0007:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000c:  ldc.i4.0 
-	IL_000d:  callvirt instance object[] class [mscorlib]System.Reflection.MemberInfo::GetCustomAttributes(class [mscorlib]System.Type, bool)
-	IL_0012:  castclass class NAnt.Core.Attributes.ElementNameAttribute[]
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldlen 
-	IL_001a:  conv.i4 
-	IL_001b:  ldc.i4.1 
-	IL_001c:  bne.un IL_0030
-
-	IL_0021:  nop 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldc.i4.0 
-	IL_0024:  ldelem.ref 
-	IL_0025:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
-	IL_002a:  stloc.1 
-	IL_002b:  br IL_0038
-
-	IL_0030:  nop 
-	IL_0031:  ldnull 
-	IL_0032:  stloc.1 
-	IL_0033:  br IL_0038
-
-	IL_0038:  ldloc.1 
-	IL_0039:  ret 
-    } // end of method NAntSchemaGenerator::GetDataTypeName
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XsltParameterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method XsltParameterEnumerator::System.Collections.IEnumerator.Reset
 
-	.property instance class [System.Xml]System.Xml.Schema.XmlSchema Schema ()
+	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::get_Schema () 
+		.get instance default object NAnt.Core.Types.XsltParameterEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-  } // end of class NAntSchemaGenerator
-
-  } // end of class NAnt.Core.Tasks.NAntSchemaTask
+	.property instance class NAnt.Core.Types.XsltParameter Current ()
+	{
+		.get instance default class NAnt.Core.Types.XsltParameter NAnt.Core.Types.XsltParameterEnumerator::get_Current () 
+	}
+  } // end of class NAnt.Core.Types.XsltParameterEnumerator
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit MkDirTask
-  	extends NAnt.Core.Task
+  .class public auto ansi beforefieldinit XmlNamespace
+  	extends NAnt.Core.Element
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 6D 6B 64 69 72 00 00 ) // ...mkdir..
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 09 6E 61 6D 65 73 70 61 63 65 00 00 ) // ...namespace..
 
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _dir
+    .field  private  string _prefix
+    .field  private  string _uri
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 742
+    // method line 638
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xd412
-	// Code size 7 (0x7)
+        // Method begins at RVA 0xcd04
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0006:  ret 
-    } // end of method MkDirTask::.ctor
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.XmlNamespace::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  ret 
+    } // end of method XmlNamespace::.ctor
 
-    // method line 743
+    // method line 639
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Dir ()  cil managed 
+           instance default string get_Prefix ()  cil managed 
     {
-        // Method begins at RVA 0xd41c
+        // Method begins at RVA 0xcd14
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.MkDirTask::_dir
+	IL_0002:  ldfld string NAnt.Core.Types.XmlNamespace::_prefix
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MkDirTask::get_Dir
+    } // end of method XmlNamespace::get_Prefix
 
-    // method line 744
+    // method line 640
     .method public hidebysig specialname 
-           instance default void set_Dir (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+           instance default void set_Prefix (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xd437
+        // Method begins at RVA 0xcd2f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.MkDirTask::_dir
+	IL_0003:  stfld string NAnt.Core.Types.XmlNamespace::_prefix
 	IL_0008:  ret 
-    } // end of method MkDirTask::set_Dir
+    } // end of method XmlNamespace::set_Prefix
 
-    // method line 745
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 641
+    .method public hidebysig specialname 
+           instance default string get_Uri ()  cil managed 
     {
-        // Method begins at RVA 0xd444
-	// Code size 120 (0x78)
-	.maxstack 7
+        // Method begins at RVA 0xcd3c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Exception	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.0 
-	  IL_0003:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.MkDirTask::get_Dir()
-	  IL_0008:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_000d:  brtrue IL_0043
-
-	  IL_0012:  nop 
-	  IL_0013:  ldarg.0 
-	  IL_0014:  ldc.i4 3000
-	  IL_0019:  ldstr "Creating directory '{0}'."
-	  IL_001e:  ldc.i4.1 
-	  IL_001f:  newarr [mscorlib]System.Object
-	  IL_0024:  dup 
-	  IL_0025:  ldc.i4.0 
-	  IL_0026:  ldarg.0 
-	  IL_0027:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.MkDirTask::get_Dir()
-	  IL_002c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0031:  stelem.ref 
-	  IL_0032:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0037:  ldarg.0 
-	  IL_0038:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.MkDirTask::get_Dir()
-	  IL_003d:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
-	  IL_0042:  nop 
-	  IL_0043:  nop 
-	  IL_0044:  leave IL_0077
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0049:  stloc.0 
-	  IL_004a:  nop 
-	  IL_004b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0050:  ldstr "NA1137"
-	  IL_0055:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_005a:  ldarg.0 
-	  IL_005b:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.MkDirTask::get_Dir()
-	  IL_0060:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0065:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_006a:  ldarg.0 
-	  IL_006b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0070:  ldloc.0 
-	  IL_0071:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0076:  throw 
-	} // end handler 0
-	IL_0077:  ret 
-    } // end of method MkDirTask::ExecuteTask
-
-	.property instance class [mscorlib]System.IO.DirectoryInfo Dir ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 03 64 69 72 01 00 54 02 08 52 65 71 75 69   // ...dir..T..Requi
-		72 65 64 01                                     ) // red.
-
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.MkDirTask::get_Dir () 
-		.set instance default void NAnt.Core.Tasks.MkDirTask::set_Dir (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-  } // end of class NAnt.Core.Tasks.MkDirTask
-}
-
-.namespace NAnt.Core.Tasks
-{
-  .class public auto ansi beforefieldinit SysInfoTask
-  	extends NAnt.Core.Task
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 73 79 73 69 6E 66 6F 00 00 ) // ...sysinfo..
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Types.XmlNamespace::_uri
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    .field  private  string _prefix
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method XmlNamespace::get_Uri
 
-    // method line 746
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 642
+    .method public hidebysig specialname 
+           instance default void set_Uri (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xd4d8
-	// Code size 18 (0x12)
+        // Method begins at RVA 0xcd57
+	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldstr "sys."
-	IL_0006:  stfld string NAnt.Core.Tasks.SysInfoTask::_prefix
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0011:  ret 
-    } // end of method SysInfoTask::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Types.XmlNamespace::_uri
+	IL_0008:  ret 
+    } // end of method XmlNamespace::set_Uri
 
-    // method line 747
+    // method line 643
     .method public hidebysig specialname 
-           instance default string get_Prefix ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0xd4ec
+        // Method begins at RVA 0xcd64
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.SysInfoTask::_prefix
+	IL_0002:  ldfld bool NAnt.Core.Types.XmlNamespace::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method SysInfoTask::get_Prefix
+    } // end of method XmlNamespace::get_IfDefined
 
-    // method line 748
+    // method line 644
     .method public hidebysig specialname 
-           instance default void set_Prefix (string 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xd507
+        // Method begins at RVA 0xcd7f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.SysInfoTask::_prefix
+	IL_0003:  stfld bool NAnt.Core.Types.XmlNamespace::_ifDefined
 	IL_0008:  ret 
-    } // end of method SysInfoTask::set_Prefix
+    } // end of method XmlNamespace::set_IfDefined
 
-    // method line 749
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 645
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0xd514
-	// Code size 788 (0x314)
-	.maxstack 7
+        // Method begins at RVA 0xcd8c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.PlatformID	V_0,
-		class [mscorlib]System.Collections.IDictionary	V_1,
-		string	V_2,
-		class [mscorlib]System.Collections.IEnumerator	V_3,
-		class [mscorlib]System.Exception	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_6,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_7,
-		string	V_8,
-		class [mscorlib]System.IDisposable	V_9)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 3000
-	IL_0007:  ldstr "Setting system information properties under "
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
-	IL_0012:  ldstr "*"
-	IL_0017:  call string string::Concat(string, string, string)
-	IL_001c:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_0021:  ldarg.0 
-	IL_0022:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0027:  ldarg.0 
-	IL_0028:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
-	IL_002d:  ldstr "clr.version"
-	IL_0032:  call string string::Concat(string, string)
-	IL_0037:  call class [mscorlib]System.Version class [mscorlib]System.Environment::get_Version()
-	IL_003c:  callvirt instance string object::ToString()
-	IL_0041:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0046:  ldarg.0 
-	IL_0047:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_004c:  ldarg.0 
-	IL_004d:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
-	IL_0052:  ldstr "os.platform"
-	IL_0057:  call string string::Concat(string, string)
-	IL_005c:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
-	IL_0061:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
-	IL_0066:  stloc.0 
-	IL_0067:  ldloca.s 0
-	IL_0069:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_006e:  constrained. [mscorlib]System.PlatformID
-	IL_0074:  callvirt instance string class [mscorlib]System.Enum::ToString(class [mscorlib]System.IFormatProvider)
-	IL_0079:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_007e:  ldarg.0 
-	IL_007f:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0084:  ldarg.0 
-	IL_0085:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
-	IL_008a:  ldstr "os.version"
-	IL_008f:  call string string::Concat(string, string)
-	IL_0094:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
-	IL_0099:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.OperatingSystem::get_Version()
-	IL_009e:  callvirt instance string object::ToString()
-	IL_00a3:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_00a8:  ldarg.0 
-	IL_00a9:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_00ae:  ldarg.0 
-	IL_00af:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
-	IL_00b4:  ldstr "os.folder.applicationdata"
-	IL_00b9:  call string string::Concat(string, string)
-	IL_00be:  ldc.i4.s 0x1a
-	IL_00c0:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
-	IL_00c5:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_00ca:  ldarg.0 
-	IL_00cb:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_00d0:  ldarg.0 
-	IL_00d1:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
-	IL_00d6:  ldstr "os.folder.commonapplicationData"
-	IL_00db:  call string string::Concat(string, string)
-	IL_00e0:  ldc.i4.s 0x23
-	IL_00e2:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
-	IL_00e7:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_00ec:  ldarg.0 
-	IL_00ed:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_00f2:  ldarg.0 
-	IL_00f3:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
-	IL_00f8:  ldstr "os.folder.commonprogramFiles"
-	IL_00fd:  call string string::Concat(string, string)
-	IL_0102:  ldc.i4.s 0x2b
-	IL_0104:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
-	IL_0109:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_010e:  ldarg.0 
-	IL_010f:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0114:  ldarg.0 
-	IL_0115:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
-	IL_011a:  ldstr "os.folder.desktopdirectory"
-	IL_011f:  call string string::Concat(string, string)
-	IL_0124:  ldc.i4.s 0x10
-	IL_0126:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
-	IL_012b:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0130:  ldarg.0 
-	IL_0131:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0136:  ldarg.0 
-	IL_0137:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
-	IL_013c:  ldstr "os.folder.programfiles"
-	IL_0141:  call string string::Concat(string, string)
-	IL_0146:  ldc.i4.s 0x26
-	IL_0148:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
-	IL_014d:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0152:  ldarg.0 
-	IL_0153:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0158:  ldarg.0 
-	IL_0159:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
-	IL_015e:  ldstr "os.folder.system"
-	IL_0163:  call string string::Concat(string, string)
-	IL_0168:  ldc.i4.s 0x25
-	IL_016a:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
-	IL_016f:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0174:  ldarg.0 
-	IL_0175:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_017a:  ldarg.0 
-	IL_017b:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
-	IL_0180:  ldstr "os.folder.temp"
-	IL_0185:  call string string::Concat(string, string)
-	IL_018a:  call string class [mscorlib]System.IO.Path::GetTempPath()
-	IL_018f:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0194:  ldarg.0 
-	IL_0195:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_019a:  ldarg.0 
-	IL_019b:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
-	IL_01a0:  ldstr "os"
-	IL_01a5:  call string string::Concat(string, string)
-	IL_01aa:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
-	IL_01af:  callvirt instance string object::ToString()
-	IL_01b4:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_01b9:  call class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Environment::GetEnvironmentVariables()
-	IL_01be:  stloc.1 
-	IL_01bf:  nop 
-	IL_01c0:  ldloc.1 
-	IL_01c1:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.IDictionary::get_Keys()
-	IL_01c6:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_01cb:  stloc.3 
-	.try { // 1
-	  IL_01cc:  br IL_0250
-
-	  IL_01d1:  ldloc.3 
-	  IL_01d2:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_01d7:  castclass [mscorlib]System.String
-	  IL_01dc:  stloc.2 
-	  IL_01dd:  nop 
-	  .try { // 0
-	    IL_01de:  nop 
-	    IL_01df:  ldarg.0 
-	    IL_01e0:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	    IL_01e5:  ldarg.0 
-	    IL_01e6:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
-	    IL_01eb:  ldstr "env."
-	    IL_01f0:  ldloc.2 
-	    IL_01f1:  call string string::Concat(string, string, string)
-	    IL_01f6:  ldloc.1 
-	    IL_01f7:  ldloc.2 
-	    IL_01f8:  callvirt instance object class [mscorlib]System.Collections.IDictionary::get_Item(object)
-	    IL_01fd:  castclass [mscorlib]System.String
-	    IL_0202:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	    IL_0207:  nop 
-	    IL_0208:  leave IL_024f
-
-	  } // end .try 0
-	  catch class [mscorlib]System.Exception { // 0
-	    IL_020d:  stloc.s 4
-	    IL_020f:  nop 
-	    IL_0210:  ldarg.0 
-	    IL_0211:  call instance bool class NAnt.Core.Task::get_FailOnError()
-	    IL_0216:  brtrue IL_0246
-
-	    IL_021b:  nop 
-	    IL_021c:  ldarg.0 
-	    IL_021d:  ldc.i4 4000
-	    IL_0222:  ldstr "Property could not be created for environment variable '{0}' : {1}"
-	    IL_0227:  ldc.i4.2 
-	    IL_0228:  newarr [mscorlib]System.Object
-	    IL_022d:  dup 
-	    IL_022e:  ldc.i4.0 
-	    IL_022f:  ldloc.2 
-	    IL_0230:  stelem.ref 
-	    IL_0231:  dup 
-	    IL_0232:  ldc.i4.1 
-	    IL_0233:  ldloc.s 4
-	    IL_0235:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	    IL_023a:  stelem.ref 
-	    IL_023b:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	    IL_0240:  nop 
-	    IL_0241:  br IL_0249
-
-	    IL_0246:  nop 
-	    IL_0247:  rethrow 
-	    IL_0249:  nop 
-	    IL_024a:  leave IL_024f
-
-	  } // end handler 0
-	  IL_024f:  nop 
-	  IL_0250:  ldloc.3 
-	  IL_0251:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0256:  brtrue IL_01d1
-
-	  IL_025b:  leave IL_0276
+	IL_0002:  ldfld bool NAnt.Core.Types.XmlNamespace::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	} // end .try 1
-	finally  { // 1
-	  IL_0260:  ldloc.3 
-	  IL_0261:  isinst [mscorlib]System.IDisposable
-	  IL_0266:  dup 
-	  IL_0267:  stloc.s 5
-	  IL_0269:  brfalse IL_0275
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method XmlNamespace::get_UnlessDefined
 
-	  IL_026e:  ldloc.s 5
-	  IL_0270:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0275:  endfinally 
-	} // end handler 1
-	IL_0276:  ldarg.0 
-	IL_0277:  callvirt instance bool class NAnt.Core.Task::get_Verbose()
-	IL_027c:  brfalse IL_0313
+    // method line 646
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xcda7
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.XmlNamespace::_unlessDefined
+	IL_0008:  ret 
+    } // end of method XmlNamespace::set_UnlessDefined
 
-	IL_0281:  nop 
-	IL_0282:  nop 
-	IL_0283:  ldarg.0 
-	IL_0284:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0289:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.DictionaryBase::GetEnumerator()
-	IL_028e:  stloc.s 7
-	.try { // 2
-	  IL_0290:  br IL_02ea
+	.property instance string Prefix ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 70 72 65 66 69 78 01 00 54 02 08 52 65   // ...prefix..T..Re
+		71 75 69 72 65 64 01                            ) // quired.
 
-	  IL_0295:  ldloc.s 7
-	  IL_0297:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_029c:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_02a1:  stloc.s 6
-	  IL_02a3:  nop 
-	  IL_02a4:  ldloca.s 6
-	  IL_02a6:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_02ab:  castclass [mscorlib]System.String
-	  IL_02b0:  stloc.s 8
-	  IL_02b2:  ldloc.s 8
-	  IL_02b4:  ldarg.0 
-	  IL_02b5:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
-	  IL_02ba:  callvirt instance bool string::StartsWith(string)
-	  IL_02bf:  brfalse IL_02e9
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 01                                           ) // y.
 
-	  IL_02c4:  nop 
-	  IL_02c5:  ldarg.0 
-	  IL_02c6:  ldc.i4 3000
-	  IL_02cb:  ldloc.s 8
-	  IL_02cd:  ldstr " = "
-	  IL_02d2:  ldloca.s 6
-	  IL_02d4:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_02d9:  callvirt instance string object::ToString()
-	  IL_02de:  call string string::Concat(string, string, string)
-	  IL_02e3:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	  IL_02e8:  nop 
-	  IL_02e9:  nop 
-	  IL_02ea:  ldloc.s 7
-	  IL_02ec:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_02f1:  brtrue IL_0295
+		.get instance default string NAnt.Core.Types.XmlNamespace::get_Prefix () 
+		.set instance default void NAnt.Core.Types.XmlNamespace::set_Prefix (string 'value') 
+	}
+	.property instance string Uri ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 03 75 72 69 01 00 54 02 08 52 65 71 75 69   // ...uri..T..Requi
+		72 65 64 01                                     ) // red.
 
-	  IL_02f6:  leave IL_0312
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 01                                           ) // y.
 
-	} // end .try 2
-	finally  { // 2
-	  IL_02fb:  ldloc.s 7
-	  IL_02fd:  isinst [mscorlib]System.IDisposable
-	  IL_0302:  dup 
-	  IL_0303:  stloc.s 9
-	  IL_0305:  brfalse IL_0311
+		.get instance default string NAnt.Core.Types.XmlNamespace::get_Uri () 
+		.set instance default void NAnt.Core.Types.XmlNamespace::set_Uri (string 'value') 
+	}
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
 
-	  IL_030a:  ldloc.s 9
-	  IL_030c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0311:  endfinally 
-	} // end handler 2
-	IL_0312:  nop 
-	IL_0313:  ret 
-    } // end of method SysInfoTask::ExecuteTask
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	.property instance string Prefix ()
+		.get instance default bool NAnt.Core.Types.XmlNamespace::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.XmlNamespace::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 70 72 65 66 69 78 01 00 54 02 08 52 65   // ...prefix..T..Re
-		71 75 69 72 65 64 00                            ) // quired.
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
 
-		.get instance default string NAnt.Core.Tasks.SysInfoTask::get_Prefix () 
-		.set instance default void NAnt.Core.Tasks.SysInfoTask::set_Prefix (string 'value') 
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.XmlNamespace::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.XmlNamespace::set_UnlessDefined (bool 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.SysInfoTask
+  } // end of class NAnt.Core.Types.XmlNamespace
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit XmlPeekTask
-  	extends NAnt.Core.Task
+  .class public auto ansi beforefieldinit XsltExtensionObject
+  	extends NAnt.Core.Element
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 78 6D 6C 70 65 65 6B 00 00 ) // ...xmlpeek..
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
+		01 00 13 78 73 6C 74 65 78 74 65 6E 73 69 6F 6E   // ...xsltextension
+		6F 62 6A 65 63 74 00 00                         ) // object..
 
-    .field  private  class [mscorlib]System.IO.FileInfo _xmlFile
-    .field  private  int32 _nodeIndex
-    .field  private  string _property
-    .field  private  string _xPath
-    .field  private  class NAnt.Core.Types.XmlNamespaceCollection _namespaces
+    .field  private  string _namespaceUri
+    .field  private  string _typeName
+    .field  private  class [mscorlib]System.IO.FileInfo _assemblyPath
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 750
+    // method line 647
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xd85c
-	// Code size 25 (0x19)
+        // Method begins at RVA 0xcdb1
+	// Code size 26 (0x1a)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld int32 NAnt.Core.Tasks.XmlPeekTask::_nodeIndex
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class NAnt.Core.Types.XmlNamespaceCollection::'.ctor'()
-	IL_000d:  stfld class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPeekTask::_namespaces
+	IL_0001:  ldsfld string [mscorlib]System.String::Empty
+	IL_0006:  stfld string NAnt.Core.Types.XsltExtensionObject::_namespaceUri
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4.1 
+	IL_000d:  stfld bool NAnt.Core.Types.XsltExtensionObject::_ifDefined
 	IL_0012:  ldarg.0 
-	IL_0013:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0018:  ret 
-    } // end of method XmlPeekTask::.ctor
+	IL_0013:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0018:  nop 
+	IL_0019:  ret 
+    } // end of method XsltExtensionObject::.ctor
 
-    // method line 751
+    // method line 648
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_XmlFile ()  cil managed 
+           instance default string get_NamespaceUri ()  cil managed 
     {
-        // Method begins at RVA 0xd878
+        // Method begins at RVA 0xcdcc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.XmlPeekTask::_xmlFile
+	IL_0002:  ldfld string NAnt.Core.Types.XsltExtensionObject::_namespaceUri
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XmlPeekTask::get_XmlFile
+    } // end of method XsltExtensionObject::get_NamespaceUri
 
-    // method line 752
+    // method line 649
     .method public hidebysig specialname 
-           instance default void set_XmlFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_NamespaceUri (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xd893
+        // Method begins at RVA 0xcde7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.XmlPeekTask::_xmlFile
+	IL_0003:  stfld string NAnt.Core.Types.XsltExtensionObject::_namespaceUri
 	IL_0008:  ret 
-    } // end of method XmlPeekTask::set_XmlFile
+    } // end of method XsltExtensionObject::set_NamespaceUri
 
-    // method line 753
+    // method line 650
     .method public hidebysig specialname 
-           instance default int32 get_NodeIndex ()  cil managed 
+           instance default string get_TypeName ()  cil managed 
     {
-        // Method begins at RVA 0xd8a0
+        // Method begins at RVA 0xcdf4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Tasks.XmlPeekTask::_nodeIndex
+	IL_0002:  ldfld string NAnt.Core.Types.XsltExtensionObject::_typeName
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XmlPeekTask::get_NodeIndex
+    } // end of method XsltExtensionObject::get_TypeName
 
-    // method line 754
+    // method line 651
     .method public hidebysig specialname 
-           instance default void set_NodeIndex (int32 'value')  cil managed 
+           instance default void set_TypeName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xd8bb
+        // Method begins at RVA 0xce0f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.Tasks.XmlPeekTask::_nodeIndex
+	IL_0003:  stfld string NAnt.Core.Types.XsltExtensionObject::_typeName
 	IL_0008:  ret 
-    } // end of method XmlPeekTask::set_NodeIndex
+    } // end of method XsltExtensionObject::set_TypeName
 
-    // method line 755
+    // method line 652
     .method public hidebysig specialname 
-           instance default string get_Property ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_AssemblyPath ()  cil managed 
     {
-        // Method begins at RVA 0xd8c8
+        // Method begins at RVA 0xce1c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.XmlPeekTask::_property
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.XsltExtensionObject::_assemblyPath
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XmlPeekTask::get_Property
+    } // end of method XsltExtensionObject::get_AssemblyPath
 
-    // method line 756
+    // method line 653
     .method public hidebysig specialname 
-           instance default void set_Property (string 'value')  cil managed 
+           instance default void set_AssemblyPath (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xd8e3
+        // Method begins at RVA 0xce37
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.XmlPeekTask::_property
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.XsltExtensionObject::_assemblyPath
 	IL_0008:  ret 
-    } // end of method XmlPeekTask::set_Property
+    } // end of method XsltExtensionObject::set_AssemblyPath
 
-    // method line 757
+    // method line 654
     .method public hidebysig specialname 
-           instance default string get_XPath ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0xd8f0
+        // Method begins at RVA 0xce44
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.XmlPeekTask::_xPath
+	IL_0002:  ldfld bool NAnt.Core.Types.XsltExtensionObject::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XmlPeekTask::get_XPath
+    } // end of method XsltExtensionObject::get_IfDefined
 
-    // method line 758
+    // method line 655
     .method public hidebysig specialname 
-           instance default void set_XPath (string 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xd90b
+        // Method begins at RVA 0xce5f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.XmlPeekTask::_xPath
+	IL_0003:  stfld bool NAnt.Core.Types.XsltExtensionObject::_ifDefined
 	IL_0008:  ret 
-    } // end of method XmlPeekTask::set_XPath
+    } // end of method XsltExtensionObject::set_IfDefined
 
-    // method line 759
+    // method line 656
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XmlNamespaceCollection get_Namespaces ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0xd918
+        // Method begins at RVA 0xce6c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.XmlNamespaceCollection	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPeekTask::_namespaces
+	IL_0002:  ldfld bool NAnt.Core.Types.XsltExtensionObject::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XmlPeekTask::get_Namespaces
+    } // end of method XsltExtensionObject::get_UnlessDefined
 
-    // method line 760
+    // method line 657
     .method public hidebysig specialname 
-           instance default void set_Namespaces (class NAnt.Core.Types.XmlNamespaceCollection 'value')  cil managed 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xd933
+        // Method begins at RVA 0xce87
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPeekTask::_namespaces
+	IL_0003:  stfld bool NAnt.Core.Types.XsltExtensionObject::_unlessDefined
 	IL_0008:  ret 
-    } // end of method XmlPeekTask::set_Namespaces
+    } // end of method XsltExtensionObject::set_UnlessDefined
 
-    // method line 761
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 658
+    .method public hidebysig 
+           instance default object CreateInstance ()  cil managed 
     {
-        // Method begins at RVA 0xd940
-	// Code size 218 (0xda)
-	.maxstack 7
+        // Method begins at RVA 0xce94
+	// Code size 217 (0xd9)
+	.maxstack 4
 	.locals init (
-		class [System.Xml]System.Xml.XmlDocument	V_0,
-		class NAnt.Core.BuildException	V_1,
-		class [mscorlib]System.Exception	V_2)
+		object	V_0,
+		class [mscorlib]System.Reflection.Assembly	V_1,
+		class [mscorlib]System.Exception	V_2,
+		object	V_3)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 2000
-	IL_0007:  ldstr "Peeking at '{0}' with XPath expression '{1}'."
-	IL_000c:  ldc.i4.2 
-	IL_000d:  newarr [mscorlib]System.Object
-	IL_0012:  dup 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPeekTask::get_XmlFile()
-	IL_001a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001f:  stelem.ref 
-	IL_0020:  dup 
-	IL_0021:  ldc.i4.1 
-	IL_0022:  ldarg.0 
-	IL_0023:  call instance string class NAnt.Core.Tasks.XmlPeekTask::get_XPath()
-	IL_0028:  stelem.ref 
-	IL_0029:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_002e:  ldarg.0 
-	IL_002f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPeekTask::get_XmlFile()
-	IL_0034:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0039:  brtrue IL_006a
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.XsltExtensionObject::get_AssemblyPath()
+	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_000c:  brtrue IL_003d
 
-	IL_003e:  nop 
-	IL_003f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0044:  ldstr "NA1154"
-	IL_0049:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_004e:  ldarg.0 
-	IL_004f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPeekTask::get_XmlFile()
-	IL_0054:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0059:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_005e:  ldarg.0 
-	IL_005f:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0064:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0069:  throw 
+	IL_0011:  nop 
+	IL_0012:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0017:  ldstr "NA1166"
+	IL_001c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0021:  ldarg.0 
+	IL_0022:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.XsltExtensionObject::get_AssemblyPath()
+	IL_0027:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_002c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0031:  ldarg.0 
+	IL_0032:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0037:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_003c:  throw 
+	IL_003d:  ldnull 
+	IL_003e:  stloc.0 
 	.try { // 0
-	  IL_006a:  nop 
-	  IL_006b:  ldarg.0 
-	  IL_006c:  ldarg.0 
-	  IL_006d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPeekTask::get_XmlFile()
-	  IL_0072:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0077:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Tasks.XmlPeekTask::LoadDocument(string)
-	  IL_007c:  stloc.0 
-	  IL_007d:  ldarg.0 
-	  IL_007e:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	  IL_0083:  ldarg.0 
-	  IL_0084:  call instance string class NAnt.Core.Tasks.XmlPeekTask::get_Property()
-	  IL_0089:  ldarg.0 
-	  IL_008a:  ldarg.0 
-	  IL_008b:  call instance string class NAnt.Core.Tasks.XmlPeekTask::get_XPath()
-	  IL_0090:  ldloc.0 
-	  IL_0091:  ldarg.0 
-	  IL_0092:  call instance int32 class NAnt.Core.Tasks.XmlPeekTask::get_NodeIndex()
-	  IL_0097:  call instance string class NAnt.Core.Tasks.XmlPeekTask::GetNodeContents(string, class [System.Xml]System.Xml.XmlDocument, int32)
-	  IL_009c:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	  IL_00a1:  nop 
-	  IL_00a2:  leave IL_00d9
-
-	} // end .try 0
-	catch class NAnt.Core.BuildException { // 0
-	  IL_00a7:  stloc.1 
-	  IL_00a8:  nop 
-	  IL_00a9:  ldloc.1 
-	  IL_00aa:  throw 
-	} // end handler 0
-	catch class [mscorlib]System.Exception { // 1
-	  IL_00ab:  stloc.2 
-	  IL_00ac:  nop 
-	  IL_00ad:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_00b2:  ldstr "NA1153"
-	  IL_00b7:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_00bc:  ldarg.0 
-	  IL_00bd:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPeekTask::get_XmlFile()
-	  IL_00c2:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_00c7:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_00cc:  ldarg.0 
-	  IL_00cd:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_00d2:  ldloc.2 
-	  IL_00d3:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_00d8:  throw 
-	} // end handler 1
-	IL_00d9:  ret 
-    } // end of method XmlPeekTask::ExecuteTask
+	  IL_003f:  nop 
+	  IL_0040:  ldarg.0 
+	  IL_0041:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.XsltExtensionObject::get_AssemblyPath()
+	  IL_0046:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_004b:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFrom(string)
+	  IL_0050:  stloc.1 
+	  IL_0051:  ldloc.1 
+	  IL_0052:  ldarg.0 
+	  IL_0053:  call instance string class NAnt.Core.Types.XsltExtensionObject::get_TypeName()
+	  IL_0058:  callvirt instance object class [mscorlib]System.Reflection.Assembly::CreateInstance(string)
+	  IL_005d:  stloc.0 
+	  IL_005e:  ldloc.0 
+	  IL_005f:  brtrue IL_0096
 
-    // method line 762
-    .method private hidebysig 
-           instance default class [System.Xml]System.Xml.XmlDocument LoadDocument (string fileName)  cil managed 
-    {
-        // Method begins at RVA 0xda44
-	// Code size 62 (0x3e)
-	.maxstack 3
-	.locals init (
-		class [System.Xml]System.Xml.XmlDocument	V_0,
-		class [System.Xml]System.Xml.XmlDocument	V_1,
-		class [mscorlib]System.Exception	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	.try { // 0
-	  IL_0003:  nop 
-	  IL_0004:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	  IL_0009:  stloc.0 
-	  IL_000a:  ldloc.0 
-	  IL_000b:  ldarg.1 
-	  IL_000c:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(string)
-	  IL_0011:  ldloc.0 
-	  IL_0012:  stloc.1 
-	  IL_0013:  leave IL_003c
+	  IL_0064:  nop 
+	  IL_0065:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_006a:  ldstr "NA1168"
+	  IL_006f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0074:  ldarg.0 
+	  IL_0075:  call instance string class NAnt.Core.Types.XsltExtensionObject::get_TypeName()
+	  IL_007a:  ldarg.0 
+	  IL_007b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.XsltExtensionObject::get_AssemblyPath()
+	  IL_0080:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0085:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_008a:  ldarg.0 
+	  IL_008b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0090:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_0095:  throw 
+	  IL_0096:  nop 
+	  IL_0097:  leave IL_00d0
 
 	} // end .try 0
 	catch class [mscorlib]System.Exception { // 0
-	  IL_0018:  stloc.2 
-	  IL_0019:  nop 
-	  IL_001a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_001f:  ldstr "NA1158"
-	  IL_0024:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0029:  ldarg.1 
-	  IL_002a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_002f:  ldarg.0 
-	  IL_0030:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0035:  ldloc.2 
-	  IL_0036:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_003b:  throw 
+	  IL_009c:  stloc.2 
+	  IL_009d:  nop 
+	  IL_009e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_00a3:  ldstr "NA1167"
+	  IL_00a8:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_00ad:  ldarg.0 
+	  IL_00ae:  call instance string class NAnt.Core.Types.XsltExtensionObject::get_TypeName()
+	  IL_00b3:  ldarg.0 
+	  IL_00b4:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.XsltExtensionObject::get_AssemblyPath()
+	  IL_00b9:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_00be:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_00c3:  ldarg.0 
+	  IL_00c4:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_00c9:  ldloc.2 
+	  IL_00ca:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_00cf:  throw 
 	} // end handler 0
-	IL_003c:  ldloc.1 
-	IL_003d:  ret 
-    } // end of method XmlPeekTask::LoadDocument
-
-    // method line 763
-    .method private hidebysig 
-           instance default string GetNodeContents (string xpath, class [System.Xml]System.Xml.XmlDocument document, int32 nodeIndex)  cil managed 
-    {
-        // Method begins at RVA 0xdaa0
-	// Code size 528 (0x210)
-	.maxstack 8
-	.locals init (
-		string	V_0,
-		object	V_1,
-		int32	V_2,
-		class [System.Xml]System.Xml.XmlNamespaceManager	V_3,
-		class NAnt.Core.Types.XmlNamespace	V_4,
-		class NAnt.Core.Types.XmlNamespaceEnumerator	V_5,
-		class [mscorlib]System.IDisposable	V_6,
-		class [System.Xml]System.Xml.XPath.XPathNavigator	V_7,
-		class [System.Xml]System.Xml.XPath.XPathExpression	V_8,
-		class [mscorlib]System.Exception	V_9,
-		class [System.Xml]System.Xml.XPath.XPathNodeIterator	V_10,
-		class [System.Xml]System.Xml.XmlNode	V_11,
-		class [mscorlib]System.IFormattable	V_12,
-		string	V_13)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldnull 
-	IL_0004:  stloc.1 
-	IL_0005:  ldc.i4.0 
-	IL_0006:  stloc.2 
-	.try { // 1
-	  IL_0007:  nop 
-	  IL_0008:  ldarg.2 
-	  IL_0009:  callvirt instance class [System.Xml]System.Xml.XmlNameTable class [System.Xml]System.Xml.XmlDocument::get_NameTable()
-	  IL_000e:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
-	  IL_0013:  stloc.3 
-	  IL_0014:  nop 
-	  IL_0015:  ldarg.0 
-	  IL_0016:  call instance class NAnt.Core.Types.XmlNamespaceCollection class NAnt.Core.Tasks.XmlPeekTask::get_Namespaces()
-	  IL_001b:  callvirt instance class NAnt.Core.Types.XmlNamespaceEnumerator class NAnt.Core.Types.XmlNamespaceCollection::GetEnumerator()
-	  IL_0020:  stloc.s 5
-	  .try { // 0
-	    IL_0022:  br IL_0060
-
-	    IL_0027:  ldloc.s 5
-	    IL_0029:  callvirt instance class NAnt.Core.Types.XmlNamespace class NAnt.Core.Types.XmlNamespaceEnumerator::get_Current()
-	    IL_002e:  stloc.s 4
-	    IL_0030:  nop 
-	    IL_0031:  ldloc.s 4
-	    IL_0033:  callvirt instance bool class NAnt.Core.Types.XmlNamespace::get_IfDefined()
-	    IL_0038:  brfalse IL_005f
-
-	    IL_003d:  ldloc.s 4
-	    IL_003f:  callvirt instance bool class NAnt.Core.Types.XmlNamespace::get_UnlessDefined()
-	    IL_0044:  brtrue IL_005f
-
-	    IL_0049:  nop 
-	    IL_004a:  ldloc.3 
-	    IL_004b:  ldloc.s 4
-	    IL_004d:  callvirt instance string class NAnt.Core.Types.XmlNamespace::get_Prefix()
-	    IL_0052:  ldloc.s 4
-	    IL_0054:  callvirt instance string class NAnt.Core.Types.XmlNamespace::get_Uri()
-	    IL_0059:  callvirt instance void class [System.Xml]System.Xml.XmlNamespaceManager::AddNamespace(string, string)
-	    IL_005e:  nop 
-	    IL_005f:  nop 
-	    IL_0060:  ldloc.s 5
-	    IL_0062:  callvirt instance bool class NAnt.Core.Types.XmlNamespaceEnumerator::MoveNext()
-	    IL_0067:  brtrue IL_0027
-
-	    IL_006c:  leave IL_0088
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_0071:  ldloc.s 5
-	    IL_0073:  isinst [mscorlib]System.IDisposable
-	    IL_0078:  dup 
-	    IL_0079:  stloc.s 6
-	    IL_007b:  brfalse IL_0087
-
-	    IL_0080:  ldloc.s 6
-	    IL_0082:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0087:  endfinally 
-	  } // end handler 0
-	  IL_0088:  ldarg.2 
-	  IL_0089:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XmlNode::CreateNavigator()
-	  IL_008e:  stloc.s 7
-	  IL_0090:  ldloc.s 7
-	  IL_0092:  ldarg.1 
-	  IL_0093:  callvirt instance class [System.Xml]System.Xml.XPath.XPathExpression class [System.Xml]System.Xml.XPath.XPathNavigator::Compile(string)
-	  IL_0098:  stloc.s 8
-	  IL_009a:  ldloc.s 8
-	  IL_009c:  ldloc.3 
-	  IL_009d:  callvirt instance void class [System.Xml]System.Xml.XPath.XPathExpression::SetContext(class [System.Xml]System.Xml.XmlNamespaceManager)
-	  IL_00a2:  ldloc.s 7
-	  IL_00a4:  ldloc.s 8
-	  IL_00a6:  callvirt instance object class [System.Xml]System.Xml.XPath.XPathNavigator::Evaluate(class [System.Xml]System.Xml.XPath.XPathExpression)
-	  IL_00ab:  stloc.1 
-	  IL_00ac:  nop 
-	  IL_00ad:  leave IL_00d8
-
-	} // end .try 1
-	catch class [mscorlib]System.Exception { // 1
-	  IL_00b2:  stloc.s 9
-	  IL_00b4:  nop 
-	  IL_00b5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_00ba:  ldstr "NA1155"
-	  IL_00bf:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_00c4:  ldarg.1 
-	  IL_00c5:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_00ca:  ldarg.0 
-	  IL_00cb:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_00d0:  ldloc.s 9
-	  IL_00d2:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_00d7:  throw 
-	} // end handler 1
-	IL_00d8:  ldloc.1 
-	IL_00d9:  brtrue IL_0100
-
-	IL_00de:  nop 
-	IL_00df:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00e4:  ldstr "NA1156"
-	IL_00e9:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00ee:  ldarg.1 
-	IL_00ef:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00f4:  ldarg.0 
-	IL_00f5:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_00fa:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_00ff:  throw 
-	IL_0100:  ldc.i4.1 
-	IL_0101:  stloc.2 
-	IL_0102:  ldloc.1 
-	IL_0103:  isinst [System.Xml]System.Xml.XPath.XPathNodeIterator
-	IL_0108:  stloc.s 10
-	IL_010a:  ldloc.s 10
-	IL_010c:  brfalse IL_011b
-
-	IL_0111:  nop 
-	IL_0112:  ldloc.s 10
-	IL_0114:  callvirt instance int32 class [System.Xml]System.Xml.XPath.XPathNodeIterator::get_Count()
-	IL_0119:  stloc.2 
-	IL_011a:  nop 
-	IL_011b:  ldarg.0 
-	IL_011c:  ldc.i4 2000
-	IL_0121:  ldstr "Found '{0}' node{1} with the XPath expression '{2}'."
-	IL_0126:  ldc.i4.3 
-	IL_0127:  newarr [mscorlib]System.Object
-	IL_012c:  dup 
-	IL_012d:  ldc.i4.0 
-	IL_012e:  ldloc.2 
-	IL_012f:  box [mscorlib]System.Int32
-	IL_0134:  stelem.ref 
-	IL_0135:  dup 
-	IL_0136:  ldc.i4.1 
-	IL_0137:  ldloc.2 
-	IL_0138:  ldc.i4.1 
-	IL_0139:  ble IL_0148
-
-	IL_013e:  ldstr "s"
-	IL_0143:  br IL_014d
-
-	IL_0148:  ldstr ""
-	IL_014d:  stelem.ref 
-	IL_014e:  dup 
-	IL_014f:  ldc.i4.2 
-	IL_0150:  ldarg.1 
-	IL_0151:  stelem.ref 
-	IL_0152:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0157:  ldloc.s 10
-	IL_0159:  brfalse IL_01d2
-
-	IL_015e:  nop 
-	IL_015f:  ldarg.3 
-	IL_0160:  ldloc.2 
-	IL_0161:  blt IL_018d
-
-	IL_0166:  nop 
-	IL_0167:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_016c:  ldstr "NA1157"
-	IL_0171:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0176:  ldarg.3 
-	IL_0177:  box [mscorlib]System.Int32
-	IL_017c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0181:  ldarg.0 
-	IL_0182:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0187:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_018c:  throw 
-	IL_018d:  br IL_01c0
-
-	IL_0192:  nop 
-	IL_0193:  ldloc.s 10
-	IL_0195:  callvirt instance int32 class [System.Xml]System.Xml.XPath.XPathNodeIterator::get_CurrentPosition()
-	IL_019a:  ldarg.3 
-	IL_019b:  ldc.i4.1 
-	IL_019c:  add 
-	IL_019d:  bne.un IL_01bf
-
-	IL_01a2:  nop 
-	IL_01a3:  ldloc.s 10
-	IL_01a5:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XPath.XPathNodeIterator::get_Current()
-	IL_01aa:  castclass [System.Xml]System.Xml.IHasXmlNode
-	IL_01af:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.IHasXmlNode::GetNode()
-	IL_01b4:  stloc.s 11
-	IL_01b6:  ldloc.s 11
-	IL_01b8:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerXml()
-	IL_01bd:  stloc.0 
-	IL_01be:  nop 
-	IL_01bf:  nop 
-	IL_01c0:  ldloc.s 10
-	IL_01c2:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNodeIterator::MoveNext()
-	IL_01c7:  brtrue IL_0192
-
-	IL_01cc:  nop 
-	IL_01cd:  br IL_0205
-
-	IL_01d2:  nop 
-	IL_01d3:  ldloc.1 
-	IL_01d4:  isinst [mscorlib]System.IFormattable
-	IL_01d9:  brfalse IL_01fb
-
-	IL_01de:  nop 
-	IL_01df:  ldloc.1 
-	IL_01e0:  castclass [mscorlib]System.IFormattable
-	IL_01e5:  stloc.s 12
-	IL_01e7:  ldloc.s 12
-	IL_01e9:  ldnull 
-	IL_01ea:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01ef:  callvirt instance string class [mscorlib]System.IFormattable::ToString(string, class [mscorlib]System.IFormatProvider)
-	IL_01f4:  stloc.0 
-	IL_01f5:  nop 
-	IL_01f6:  br IL_0204
-
-	IL_01fb:  nop 
-	IL_01fc:  ldloc.1 
-	IL_01fd:  callvirt instance string object::ToString()
-	IL_0202:  stloc.0 
-	IL_0203:  nop 
-	IL_0204:  nop 
-	IL_0205:  ldloc.0 
-	IL_0206:  stloc.s 13
-	IL_0208:  br IL_020d
+	IL_00d0:  ldloc.0 
+	IL_00d1:  stloc.3 
+	IL_00d2:  br IL_00d7
 
-	IL_020d:  ldloc.s 13
-	IL_020f:  ret 
-    } // end of method XmlPeekTask::GetNodeContents
+	IL_00d7:  ldloc.3 
+	IL_00d8:  ret 
+    } // end of method XsltExtensionObject::CreateInstance
 
-	.property instance class [mscorlib]System.IO.FileInfo XmlFile ()
+	.property instance string NamespaceUri ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 66 69 6C 65 01 00 54 02 08 52 65 71 75   // ...file..T..Requ
-		69 72 65 64 01                                  ) // ired.
+		01 00 0C 6E 61 6D 65 73 70 61 63 65 75 72 69 00   // ...namespaceuri.
+		00                                              ) // .
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.XmlPeekTask::get_XmlFile () 
-		.set instance default void NAnt.Core.Tasks.XmlPeekTask::set_XmlFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default string NAnt.Core.Types.XsltExtensionObject::get_NamespaceUri () 
+		.set instance default void NAnt.Core.Types.XsltExtensionObject::set_NamespaceUri (string 'value') 
 	}
-	.property instance int32 NodeIndex ()
+	.property instance string TypeName ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 6E 6F 64 65 69 6E 64 65 78 01 00 54 02   // ...nodeindex..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+		01 00 08 74 79 70 65 6E 61 6D 65 01 00 54 02 08   // ...typename..T..
+		52 65 71 75 69 72 65 64 01                      ) // Required.
 
-		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 FF FF FF 7F 00 00 ) // ............
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-		.get instance default int32 NAnt.Core.Tasks.XmlPeekTask::get_NodeIndex () 
-		.set instance default void NAnt.Core.Tasks.XmlPeekTask::set_NodeIndex (int32 'value') 
+		.get instance default string NAnt.Core.Types.XsltExtensionObject::get_TypeName () 
+		.set instance default void NAnt.Core.Types.XsltExtensionObject::set_TypeName (string 'value') 
 	}
-	.property instance string Property ()
+	.property instance class [mscorlib]System.IO.FileInfo AssemblyPath ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
+		01 00 08 61 73 73 65 6D 62 6C 79 01 00 54 02 08   // ...assembly..T..
 		52 65 71 75 69 72 65 64 01                      ) // Required.
 
 		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
 		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
 		79 00                                           ) // y.
 
-		.get instance default string NAnt.Core.Tasks.XmlPeekTask::get_Property () 
-		.set instance default void NAnt.Core.Tasks.XmlPeekTask::set_Property (string 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Types.XsltExtensionObject::get_AssemblyPath () 
+		.set instance default void NAnt.Core.Types.XsltExtensionObject::set_AssemblyPath (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance string XPath ()
+	.property instance bool IfDefined ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 05 78 70 61 74 68 01 00 54 02 08 52 65 71   // ...xpath..T..Req
-		75 69 72 65 64 01                               ) // uired.
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
 
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default string NAnt.Core.Tasks.XmlPeekTask::get_XPath () 
-		.set instance default void NAnt.Core.Tasks.XmlPeekTask::set_XPath (string 'value') 
+		.get instance default bool NAnt.Core.Types.XsltExtensionObject::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.XsltExtensionObject::set_IfDefined (bool 'value') 
 	}
-	.property instance class NAnt.Core.Types.XmlNamespaceCollection Namespaces ()
+	.property instance bool UnlessDefined ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
-		01 00 0A 6E 61 6D 65 73 70 61 63 65 73 09 6E 61   // ...namespaces.na
-		6D 65 73 70 61 63 65 00 00                      ) // mespace..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
 
-		.get instance default class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPeekTask::get_Namespaces () 
-		.set instance default void NAnt.Core.Tasks.XmlPeekTask::set_Namespaces (class NAnt.Core.Types.XmlNamespaceCollection 'value') 
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.XsltExtensionObject::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.XsltExtensionObject::set_UnlessDefined (bool 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.XmlPeekTask
+  } // end of class NAnt.Core.Types.XsltExtensionObject
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit CallTask
-  	extends NAnt.Core.Task
+  .class public auto ansi beforefieldinit Pattern
+  	extends NAnt.Core.Element
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 63 61 6C 6C 00 00 ) // ...call..
-
-    .field  private  string _target
-    .field  private  bool _force
-    .field  private  bool _cascade
+    .field  private  string _patternName
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 764
+    // method line 659
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xdcd8
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xcf8c
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Tasks.CallTask::_cascade
+	IL_0002:  stfld bool NAnt.Core.Types.Pattern::_ifDefined
 	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_000d:  ret 
-    } // end of method CallTask::.ctor
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method Pattern::.ctor
 
-    // method line 765
-    .method public hidebysig specialname 
-           instance default string get_TargetName ()  cil managed 
+    // method line 660
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, string patternName)  cil managed 
+    {
+        // Method begins at RVA 0xcf9c
+	// Code size 29 (0x1d)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.Pattern::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.2 
+	IL_0010:  callvirt instance void class NAnt.Core.Types.Pattern::set_PatternName(string)
+	IL_0015:  ldarg.0 
+	IL_0016:  ldarg.1 
+	IL_0017:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_001c:  ret 
+    } // end of method Pattern::.ctor
+
+    // method line 661
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_PatternName ()  cil managed 
     {
-        // Method begins at RVA 0xdce8
+        // Method begins at RVA 0xcfbc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.CallTask::_target
+	IL_0002:  ldfld string NAnt.Core.Types.Pattern::_patternName
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CallTask::get_TargetName
+    } // end of method Pattern::get_PatternName
 
-    // method line 766
-    .method public hidebysig specialname 
-           instance default void set_TargetName (string 'value')  cil managed 
+    // method line 662
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_PatternName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xdd03
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xcfd7
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.CallTask::_target
-	IL_000d:  ret 
-    } // end of method CallTask::set_TargetName
+	IL_0003:  stfld string NAnt.Core.Types.Pattern::_patternName
+	IL_0008:  ret 
+    } // end of method Pattern::set_PatternName
 
-    // method line 767
+    // method line 663
     .method public hidebysig specialname 
-           instance default bool get_ForceExecute ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0xdd14
+        // Method begins at RVA 0xcfe4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.CallTask::_force
+	IL_0002:  ldfld bool NAnt.Core.Types.Pattern::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CallTask::get_ForceExecute
+    } // end of method Pattern::get_IfDefined
 
-    // method line 768
+    // method line 664
     .method public hidebysig specialname 
-           instance default void set_ForceExecute (bool 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xdd2f
+        // Method begins at RVA 0xcfff
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.CallTask::_force
+	IL_0003:  stfld bool NAnt.Core.Types.Pattern::_ifDefined
 	IL_0008:  ret 
-    } // end of method CallTask::set_ForceExecute
+    } // end of method Pattern::set_IfDefined
 
-    // method line 769
+    // method line 665
     .method public hidebysig specialname 
-           instance default bool get_CascadeDependencies ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0xdd3c
+        // Method begins at RVA 0xd00c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.CallTask::_cascade
+	IL_0002:  ldfld bool NAnt.Core.Types.Pattern::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CallTask::get_CascadeDependencies
+    } // end of method Pattern::get_UnlessDefined
 
-    // method line 770
+    // method line 666
     .method public hidebysig specialname 
-           instance default void set_CascadeDependencies (bool 'value')  cil managed 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xdd57
+        // Method begins at RVA 0xd027
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.CallTask::_cascade
+	IL_0003:  stfld bool NAnt.Core.Types.Pattern::_unlessDefined
 	IL_0008:  ret 
-    } // end of method CallTask::set_CascadeDependencies
-
-    // method line 771
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0xdd64
-	// Code size 173 (0xad)
-	.maxstack 4
-	.locals init (
-		class NAnt.Core.Target	V_0,
-		class NAnt.Core.TargetCollection	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance object class NAnt.Core.Element::get_Parent()
-	IL_0007:  isinst NAnt.Core.Target
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  brfalse IL_0095
-
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_001a:  ldarg.0 
-	IL_001b:  call instance string class NAnt.Core.Tasks.CallTask::get_TargetName()
-	IL_0020:  ldarg.0 
-	IL_0021:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0026:  callvirt instance class NAnt.Core.TargetCollection class NAnt.Core.Project::get_Targets()
-	IL_002b:  callvirt instance class NAnt.Core.TargetCollection class NAnt.Core.Project::TopologicalTargetSort(string, class NAnt.Core.TargetCollection)
-	IL_0030:  stloc.1 
-	IL_0031:  ldloc.1 
-	IL_0032:  ldloc.0 
-	IL_0033:  callvirt instance string class NAnt.Core.Target::get_Name()
-	IL_0038:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
-	IL_003d:  brfalse IL_0094
-
-	IL_0042:  nop 
-	IL_0043:  ldloc.1 
-	IL_0044:  ldloc.1 
-	IL_0045:  ldloc.0 
-	IL_0046:  callvirt instance string class NAnt.Core.Target::get_Name()
-	IL_004b:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
-	IL_0050:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::IndexOf(object)
-	IL_0055:  ldloc.1 
-	IL_0056:  ldloc.1 
-	IL_0057:  ldarg.0 
-	IL_0058:  call instance string class NAnt.Core.Tasks.CallTask::get_TargetName()
-	IL_005d:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
-	IL_0062:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::IndexOf(object)
-	IL_0067:  bge IL_0093
-
-	IL_006c:  nop 
-	IL_006d:  ldstr "Circular dependency: "
-	IL_0072:  ldloc.1 
-	IL_0073:  ldstr " <- "
-	IL_0078:  callvirt instance string class NAnt.Core.TargetCollection::ToString(string)
-	IL_007d:  ldstr " <- "
-	IL_0082:  ldloc.0 
-	IL_0083:  callvirt instance string class NAnt.Core.Target::get_Name()
-	IL_0088:  call string string::Concat(string, string, string, string)
-	IL_008d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_0092:  throw 
-	IL_0093:  nop 
-	IL_0094:  nop 
-	IL_0095:  ldarg.0 
-	IL_0096:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_009b:  ldarg.0 
-	IL_009c:  call instance string class NAnt.Core.Tasks.CallTask::get_TargetName()
-	IL_00a1:  ldarg.0 
-	IL_00a2:  call instance bool class NAnt.Core.Tasks.CallTask::get_CascadeDependencies()
-	IL_00a7:  callvirt instance void class NAnt.Core.Project::Execute(string, bool)
-	IL_00ac:  ret 
-    } // end of method CallTask::ExecuteTask
+    } // end of method Pattern::set_UnlessDefined
 
-    // method line 772
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 667
+    .method assembly hidebysig specialname 
+           instance default bool get_Enabled ()  cil managed 
     {
-        // Method begins at RVA 0xde20
-	// Code size 70 (0x46)
+        // Method begins at RVA 0xd034
+	// Code size 32 (0x20)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Target	V_0,
-		class NAnt.Core.Target	V_1)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.TargetCollection class NAnt.Core.Project::get_Targets()
+	IL_0002:  call instance bool class NAnt.Core.Types.Pattern::get_IfDefined()
+	IL_0007:  brfalse IL_0017
+
 	IL_000c:  ldarg.0 
-	IL_000d:  call instance string class NAnt.Core.Tasks.CallTask::get_TargetName()
-	IL_0012:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  brfalse IL_0045
+	IL_000d:  call instance bool class NAnt.Core.Types.Pattern::get_UnlessDefined()
+	IL_0012:  ldc.i4.0 
+	IL_0013:  ceq 
+	IL_0015:  br.s IL_0018
 
-	IL_001e:  nop 
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance object class NAnt.Core.Element::get_Parent()
-	IL_0025:  isinst NAnt.Core.Target
-	IL_002a:  stloc.1 
-	IL_002b:  ldloc.0 
-	IL_002c:  ldloc.1 
-	IL_002d:  bne.un IL_0044
+	IL_0017:  ldc.i4.0 
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_001e
 
-	IL_0032:  nop 
-	IL_0033:  ldstr "Call task cannot call its own parent."
-	IL_0038:  ldarg.0 
-	IL_0039:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_003e:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0043:  throw 
-	IL_0044:  nop 
-	IL_0045:  ret 
-    } // end of method CallTask::Initialize
+	IL_001e:  ldloc.0 
+	IL_001f:  ret 
+    } // end of method Pattern::get_Enabled
 
-	.property instance string TargetName ()
+	.property instance string PatternName ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 74 61 72 67 65 74 01 00 54 02 08 52 65   // ...target..T..Re
-		71 75 69 72 65 64 01                            ) // quired.
+		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		69 72 65 64 01                                  ) // ired.
 
 		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
 		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
 		79 00                                           ) // y.
 
-		.get instance default string NAnt.Core.Tasks.CallTask::get_TargetName () 
-		.set instance default void NAnt.Core.Tasks.CallTask::set_TargetName (string 'value') 
+		.get instance default string NAnt.Core.Types.Pattern::get_PatternName () 
+		.set instance default void NAnt.Core.Types.Pattern::set_PatternName (string 'value') 
 	}
-	.property instance bool ForceExecute ()
+	.property instance bool IfDefined ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 66 6F 72 63 65 00 00 ) // ...force..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 02 69 66 01 00 54 02 08 52 65 71 75 69 72   // ...if..T..Requir
+		65 64 00                                        ) // ed.
 
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 52 55 73 65 20 74 68 65 20 22 63 61 73 63   // ..RUse the "casc
-		61 73 65 22 20 61 74 74 72 69 62 75 74 65 20 74   // ase" attribute t
-		6F 20 63 6F 6E 74 72 6F 6C 20 77 68 65 74 68 65   // o control whethe
-		72 20 64 65 70 65 6E 64 65 6E 63 69 65 73 20 73   // r dependencies s
-		68 6F 75 6C 64 20 62 65 20 72 65 2D 65 78 65 63   // hould be re-exec
-		75 74 65 64 2E 00 00 00                         ) // uted....
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Core.Tasks.CallTask::get_ForceExecute () 
-		.set instance default void NAnt.Core.Tasks.CallTask::set_ForceExecute (bool 'value') 
+		.get instance default bool NAnt.Core.Types.Pattern::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.Pattern::set_IfDefined (bool 'value') 
 	}
-	.property instance bool CascadeDependencies ()
+	.property instance bool UnlessDefined ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 63 61 73 63 61 64 65 00 00 ) // ...cascade..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 75 6E 6C 65 73 73 01 00 54 02 08 52 65   // ...unless..T..Re
+		71 75 69 72 65 64 00                            ) // quired.
 
-		.get instance default bool NAnt.Core.Tasks.CallTask::get_CascadeDependencies () 
-		.set instance default void NAnt.Core.Tasks.CallTask::set_CascadeDependencies (bool 'value') 
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.Pattern::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.Pattern::set_UnlessDefined (bool 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.CallTask
+	.property instance bool Enabled ()
+	{
+		.get instance default bool NAnt.Core.Types.Pattern::get_Enabled () 
+	}
+  } // end of class NAnt.Core.Types.Pattern
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit TouchTask
-  	extends NAnt.Core.Task
+  .class public auto ansi beforefieldinit Token
+  	extends NAnt.Core.Element
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 74 6F 75 63 68 00 00 ) // ...touch..
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 05 74 6F 6B 65 6E 00 00 ) // ...token..
 
-    .field  private  class [mscorlib]System.IO.FileInfo _file
-    .field  private  int64 _millis
-    .field  private  valuetype [mscorlib]System.DateTime _datetime
-    .field  private  class NAnt.Core.Types.FileSet _fileset
+    .field  private  string _key
+    .field  private  string _value
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 773
+    // method line 668
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xde72
-	// Code size 18 (0x12)
+        // Method begins at RVA 0xd060
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.TouchTask::_fileset
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0011:  ret 
-    } // end of method TouchTask::.ctor
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.Token::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  ret 
+    } // end of method Token::.ctor
 
-    // method line 774
+    // method line 669
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+           instance default string get_Key ()  cil managed 
     {
-        // Method begins at RVA 0xde88
+        // Method begins at RVA 0xd070
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.TouchTask::_file
+	IL_0002:  ldfld string NAnt.Core.Types.Token::_key
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TouchTask::get_File
+    } // end of method Token::get_Key
 
-    // method line 775
+    // method line 670
     .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_Key (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xdea3
+        // Method begins at RVA 0xd08b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.TouchTask::_file
+	IL_0003:  stfld string NAnt.Core.Types.Token::_key
 	IL_0008:  ret 
-    } // end of method TouchTask::set_File
+    } // end of method Token::set_Key
 
-    // method line 776
+    // method line 671
     .method public hidebysig specialname 
-           instance default int64 get_Millis ()  cil managed 
+           instance default string get_Value ()  cil managed 
     {
-        // Method begins at RVA 0xdeb0
+        // Method begins at RVA 0xd098
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int64	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int64 NAnt.Core.Tasks.TouchTask::_millis
+	IL_0002:  ldfld string NAnt.Core.Types.Token::_value
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TouchTask::get_Millis
+    } // end of method Token::get_Value
 
-    // method line 777
+    // method line 672
     .method public hidebysig specialname 
-           instance default void set_Millis (int64 'value')  cil managed 
+           instance default void set_Value (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xdecb
+        // Method begins at RVA 0xd0b3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld int64 NAnt.Core.Tasks.TouchTask::_millis
+	IL_0003:  stfld string NAnt.Core.Types.Token::_value
 	IL_0008:  ret 
-    } // end of method TouchTask::set_Millis
+    } // end of method Token::set_Value
 
-    // method line 778
+    // method line 673
     .method public hidebysig specialname 
-           instance default valuetype [mscorlib]System.DateTime get_Datetime ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0xded8
+        // Method begins at RVA 0xd0c0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype [mscorlib]System.DateTime NAnt.Core.Tasks.TouchTask::_datetime
+	IL_0002:  ldfld bool NAnt.Core.Types.Token::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TouchTask::get_Datetime
+    } // end of method Token::get_IfDefined
 
-    // method line 779
+    // method line 674
     .method public hidebysig specialname 
-           instance default void set_Datetime (valuetype [mscorlib]System.DateTime 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xdef3
+        // Method begins at RVA 0xd0db
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype [mscorlib]System.DateTime NAnt.Core.Tasks.TouchTask::_datetime
+	IL_0003:  stfld bool NAnt.Core.Types.Token::_ifDefined
 	IL_0008:  ret 
-    } // end of method TouchTask::set_Datetime
+    } // end of method Token::set_IfDefined
 
-    // method line 780
+    // method line 675
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_TouchFileSet ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0xdf00
+        // Method begins at RVA 0xd0e8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.TouchTask::_fileset
+	IL_0002:  ldfld bool NAnt.Core.Types.Token::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TouchTask::get_TouchFileSet
+    } // end of method Token::get_UnlessDefined
 
-    // method line 781
+    // method line 676
     .method public hidebysig specialname 
-           instance default void set_TouchFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xdf1b
+        // Method begins at RVA 0xd103
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.TouchTask::_fileset
+	IL_0003:  stfld bool NAnt.Core.Types.Token::_unlessDefined
 	IL_0008:  ret 
-    } // end of method TouchTask::set_TouchFileSet
+    } // end of method Token::set_UnlessDefined
 
-    // method line 782
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0xdf28
-	// Code size 104 (0x68)
-	.maxstack 2
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance int64 class NAnt.Core.Tasks.TouchTask::get_Millis()
-	IL_0007:  ldc.i4.0 
-	IL_0008:  conv.i8 
-	IL_0009:  beq IL_0035
+	.property instance string Key ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 03 6B 65 79 01 00 54 02 08 52 65 71 75 69   // ...key..T..Requi
+		72 65 64 01                                     ) // red.
 
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance valuetype [mscorlib]System.DateTime class NAnt.Core.Tasks.TouchTask::get_Datetime()
-	IL_0014:  ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MinValue
-	IL_0019:  call bool valuetype [mscorlib]System.DateTime::op_Inequality(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	IL_001e:  brfalse IL_0035
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-	IL_0023:  nop 
-	IL_0024:  ldstr "Cannot specify 'millis' and 'datetime' in the same <touch> task."
-	IL_0029:  ldarg.0 
-	IL_002a:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_002f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0034:  throw 
-	IL_0035:  ldarg.0 
-	IL_0036:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.TouchTask::get_File()
-	IL_003b:  brfalse IL_0067
+		.get instance default string NAnt.Core.Types.Token::get_Key () 
+		.set instance default void NAnt.Core.Types.Token::set_Key (string 'value') 
+	}
+	.property instance string Value ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 05 76 61 6C 75 65 01 00 54 02 08 52 65 71   // ...value..T..Req
+		75 69 72 65 64 01                               ) // uired.
 
-	IL_0040:  ldarg.0 
-	IL_0041:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.TouchTask::get_TouchFileSet()
-	IL_0046:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
-	IL_004b:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0050:  brfalse IL_0067
+		.get instance default string NAnt.Core.Types.Token::get_Value () 
+		.set instance default void NAnt.Core.Types.Token::set_Value (string 'value') 
+	}
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 02 69 66 01 00 54 02 08 52 65 71 75 69 72   // ...if..T..Requir
+		65 64 00                                        ) // ed.
 
-	IL_0055:  nop 
-	IL_0056:  ldstr "Cannot specify both 'file' attribute and use <fileset> in the same <touch> task."
-	IL_005b:  ldarg.0 
-	IL_005c:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0061:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0066:  throw 
-	IL_0067:  ret 
-    } // end of method TouchTask::Initialize
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-    // method line 783
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+		.get instance default bool NAnt.Core.Types.Token::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.Token::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 75 6E 6C 65 73 73 01 00 54 02 08 52 65   // ...unless..T..Re
+		71 75 69 72 65 64 00                            ) // quired.
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.Token::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.Token::set_UnlessDefined (bool 'value') 
+	}
+  } // end of class NAnt.Core.Types.Token
+}
+
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi serializable beforefieldinit PathSet
+  	extends NAnt.Core.DataTypeBase
+  {
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
+
+    .field  private  class [mscorlib]System.Collections.ArrayList _elements
+    .field  private  class [System]System.Collections.Specialized.StringCollection _translatedElements
+    .field  private static initonly  bool _dosBasedFileSystem
+
+    // method line 677
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xdf9c
-	// Code size 230 (0xe6)
+        // Method begins at RVA 0xd10d
+	// Code size 30 (0x1e)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0006:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PathSet::_elements
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0011:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.PathSet::_translatedElements
+	IL_0016:  ldarg.0 
+	IL_0017:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
+	IL_001c:  nop 
+	IL_001d:  ret 
+    } // end of method PathSet::.ctor
+
+    // method line 678
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, string path)  cil managed 
+    {
+        // Method begins at RVA 0xd12c
+	// Code size 50 (0x32)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0006:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PathSet::_elements
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0011:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.PathSet::_translatedElements
+	IL_0016:  ldarg.0 
+	IL_0017:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
+	IL_001c:  nop 
+	IL_001d:  ldarg.0 
+	IL_001e:  ldarg.1 
+	IL_001f:  call instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_0024:  ldarg.0 
+	IL_0025:  ldarg.1 
+	IL_0026:  ldarg.2 
+	IL_0027:  call class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.PathSet::TranslatePath(class NAnt.Core.Project, string)
+	IL_002c:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.PathSet::_translatedElements
+	IL_0031:  ret 
+    } // end of method PathSet::.ctor
+
+    // method line 679
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
+    {
+        // Method begins at RVA 0xd160
+	// Code size 115 (0x73)
 	.maxstack 3
 	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0,
+		class [System]System.Collections.Specialized.StringCollection	V_0,
 		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3)
+		class [mscorlib]System.Text.StringBuilder	V_2,
+		int32	V_3)
 	IL_0000:  nop 
-	IL_0001:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.TouchTask::get_TouchFileSet()
-	IL_000d:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_0012:  brtrue IL_0034
-
-	IL_0017:  nop 
-	IL_0018:  ldarg.0 
-	IL_0019:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.TouchTask::get_TouchFileSet()
-	IL_001e:  ldarg.0 
-	IL_001f:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0024:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_0029:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_002e:  callvirt instance void class NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_0033:  nop 
-	IL_0034:  ldarg.0 
-	IL_0035:  call instance int64 class NAnt.Core.Tasks.TouchTask::get_Millis()
-	IL_003a:  ldc.i4.0 
-	IL_003b:  conv.i8 
-	IL_003c:  beq IL_0055
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.PathSet::GetElements()
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_000e:  brtrue IL_001f
 
-	IL_0041:  nop 
-	IL_0042:  ldarg.0 
-	IL_0043:  ldarg.0 
-	IL_0044:  call instance int64 class NAnt.Core.Tasks.TouchTask::get_Millis()
-	IL_0049:  call instance valuetype [mscorlib]System.DateTime class NAnt.Core.Tasks.TouchTask::GetDateTime(int64)
-	IL_004e:  stloc.0 
-	IL_004f:  nop 
-	IL_0050:  br IL_0073
+	IL_0013:  nop 
+	IL_0014:  ldstr ""
+	IL_0019:  stloc.1 
+	IL_001a:  br IL_0071
 
-	IL_0055:  ldarg.0 
-	IL_0056:  call instance valuetype [mscorlib]System.DateTime class NAnt.Core.Tasks.TouchTask::get_Datetime()
-	IL_005b:  ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MinValue
-	IL_0060:  call bool valuetype [mscorlib]System.DateTime::op_Inequality(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	IL_0065:  brfalse IL_0073
+	IL_001f:  ldloc.0 
+	IL_0020:  ldc.i4.0 
+	IL_0021:  callvirt instance string class [System]System.Collections.Specialized.StringCollection::get_Item(int32)
+	IL_0026:  ldloc.0 
+	IL_0027:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_002c:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string, int32)
+	IL_0031:  stloc.2 
+	IL_0032:  ldc.i4.1 
+	IL_0033:  stloc.3 
+	IL_0034:  br IL_0059
 
-	IL_006a:  nop 
-	IL_006b:  ldarg.0 
-	IL_006c:  call instance valuetype [mscorlib]System.DateTime class NAnt.Core.Tasks.TouchTask::get_Datetime()
-	IL_0071:  stloc.0 
-	IL_0072:  nop 
-	IL_0073:  ldarg.0 
-	IL_0074:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.TouchTask::get_File()
-	IL_0079:  brfalse IL_0097
+	IL_0039:  nop 
+	IL_003a:  ldloc.2 
+	IL_003b:  ldsfld char [mscorlib]System.IO.Path::PathSeparator
+	IL_0040:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_0045:  pop 
+	IL_0046:  ldloc.2 
+	IL_0047:  ldloc.0 
+	IL_0048:  ldloc.3 
+	IL_0049:  callvirt instance string class [System]System.Collections.Specialized.StringCollection::get_Item(int32)
+	IL_004e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0053:  pop 
+	IL_0054:  nop 
+	IL_0055:  ldloc.3 
+	IL_0056:  ldc.i4.1 
+	IL_0057:  add 
+	IL_0058:  stloc.3 
+	IL_0059:  ldloc.3 
+	IL_005a:  ldloc.0 
+	IL_005b:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0060:  blt IL_0039
 
-	IL_007e:  nop 
-	IL_007f:  ldarg.0 
-	IL_0080:  ldarg.0 
-	IL_0081:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.TouchTask::get_File()
-	IL_0086:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_008b:  ldloc.0 
-	IL_008c:  call instance void class NAnt.Core.Tasks.TouchTask::TouchFile(string, valuetype [mscorlib]System.DateTime)
-	IL_0091:  nop 
-	IL_0092:  br IL_00e5
+	IL_0065:  ldloc.2 
+	IL_0066:  callvirt instance string object::ToString()
+	IL_006b:  stloc.1 
+	IL_006c:  br IL_0071
 
-	IL_0097:  nop 
-	IL_0098:  nop 
-	IL_0099:  ldarg.0 
-	IL_009a:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.TouchTask::get_TouchFileSet()
-	IL_009f:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_00a4:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_00a9:  stloc.2 
-	.try { // 0
-	  IL_00aa:  br IL_00c0
+	IL_0071:  ldloc.1 
+	IL_0072:  ret 
+    } // end of method PathSet::ToString
 
-	  IL_00af:  ldloc.2 
-	  IL_00b0:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_00b5:  stloc.1 
-	  IL_00b6:  nop 
-	  IL_00b7:  ldarg.0 
-	  IL_00b8:  ldloc.1 
-	  IL_00b9:  ldloc.0 
-	  IL_00ba:  call instance void class NAnt.Core.Tasks.TouchTask::TouchFile(string, valuetype [mscorlib]System.DateTime)
-	  IL_00bf:  nop 
-	  IL_00c0:  ldloc.2 
-	  IL_00c1:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_00c6:  brtrue IL_00af
+    // method line 680
+    .method public hidebysig 
+           instance default void AddPath (class NAnt.Core.Types.PathSet path)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
 
-	  IL_00cb:  leave IL_00e4
+        // Method begins at RVA 0xd1df
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PathSet::_elements
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_000d:  pop 
+	IL_000e:  ret 
+    } // end of method PathSet::AddPath
 
-	} // end .try 0
-	finally  { // 0
-	  IL_00d0:  ldloc.2 
-	  IL_00d1:  isinst [mscorlib]System.IDisposable
-	  IL_00d6:  dup 
-	  IL_00d7:  stloc.3 
-	  IL_00d8:  brfalse IL_00e3
+    // method line 681
+    .method public hidebysig 
+           instance default void AddPathElement (class NAnt.Core.Types.PathElement pathElement)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0B 70 61 74 68 65 6C 65 6D 65 6E 74 00 00 ) // ...pathelement..
 
-	  IL_00dd:  ldloc.3 
-	  IL_00de:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00e3:  endfinally 
-	} // end handler 0
-	IL_00e4:  nop 
-	IL_00e5:  ret 
-    } // end of method TouchTask::ExecuteTask
+        // Method begins at RVA 0xd1ef
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PathSet::_elements
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_000d:  pop 
+	IL_000e:  ret 
+    } // end of method PathSet::AddPathElement
 
-    // method line 784
-    .method private hidebysig 
-           instance default void TouchFile (string path, valuetype [mscorlib]System.DateTime touchDateTime)  cil managed 
+    // method line 682
+    .method public hidebysig 
+           instance default class [System]System.Collections.Specialized.StringCollection GetElements ()  cil managed 
     {
-        // Method begins at RVA 0xe0a0
-	// Code size 229 (0xe5)
-	.maxstack 8
+        // Method begins at RVA 0xd200
+	// Code size 353 (0x161)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.FileStream	V_0,
-		class [mscorlib]System.Exception	V_1,
-		string	V_2)
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		object	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		string	V_3,
+		class [System]System.Collections.Specialized.StringEnumerator	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		class NAnt.Core.Types.PathElement	V_6,
+		string	V_7,
+		class [System]System.Collections.Specialized.StringEnumerator	V_8,
+		class [mscorlib]System.IDisposable	V_9,
+		class [mscorlib]System.IDisposable	V_10,
+		class [System]System.Collections.Specialized.StringCollection	V_11)
 	IL_0000:  nop 
-	.try { // 1
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_0008:  brfalse IL_003d
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.PathSet::_translatedElements
+	IL_0007:  call class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Util.StringUtils::Clone(class [System]System.Collections.Specialized.StringCollection)
+	IL_000c:  stloc.0 
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PathSet::_elements
+	IL_0014:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0019:  stloc.2 
+	.try { // 2
+	  IL_001a:  br IL_0130
 
-	  IL_000d:  nop 
-	  IL_000e:  ldarg.0 
-	  IL_000f:  ldc.i4 2000
-	  IL_0014:  ldstr "Touching file '{0}' with '{1}'."
-	  IL_0019:  ldc.i4.2 
-	  IL_001a:  newarr [mscorlib]System.Object
-	  IL_001f:  dup 
-	  IL_0020:  ldc.i4.0 
-	  IL_0021:  ldarg.1 
-	  IL_0022:  stelem.ref 
-	  IL_0023:  dup 
-	  IL_0024:  ldc.i4.1 
-	  IL_0025:  ldarga.s 2
-	  IL_0027:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_002c:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
-	  IL_0031:  stelem.ref 
-	  IL_0032:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0037:  nop 
-	  IL_0038:  br IL_0083
+	  IL_001f:  ldloc.2 
+	  IL_0020:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0025:  stloc.1 
+	  IL_0026:  nop 
+	  IL_0027:  ldloc.1 
+	  IL_0028:  isinst NAnt.Core.Types.PathSet
+	  IL_002d:  brfalse IL_0099
 
-	  IL_003d:  nop 
-	  IL_003e:  ldarg.0 
-	  IL_003f:  ldc.i4 2000
-	  IL_0044:  ldstr "Creating file '{0}' with '{1}'."
-	  IL_0049:  ldc.i4.2 
-	  IL_004a:  newarr [mscorlib]System.Object
-	  IL_004f:  dup 
-	  IL_0050:  ldc.i4.0 
-	  IL_0051:  ldarg.1 
-	  IL_0052:  stelem.ref 
-	  IL_0053:  dup 
-	  IL_0054:  ldc.i4.1 
-	  IL_0055:  ldarga.s 2
-	  IL_0057:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_005c:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
-	  IL_0061:  stelem.ref 
-	  IL_0062:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0067:  ldarg.1 
-	  IL_0068:  call class [mscorlib]System.IO.FileStream class [mscorlib]System.IO.File::Create(string)
-	  IL_006d:  stloc.0 
+	  IL_0032:  nop 
+	  IL_0033:  nop 
+	  IL_0034:  ldloc.1 
+	  IL_0035:  castclass NAnt.Core.Types.PathSet
+	  IL_003a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.PathSet::GetElements()
+	  IL_003f:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_0044:  stloc.s 4
 	  .try { // 0
-	    IL_006e:  nop 
-	    IL_006f:  nop 
-	    IL_0070:  leave IL_0082
+	    IL_0046:  br IL_006b
+
+	    IL_004b:  ldloc.s 4
+	    IL_004d:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_0052:  stloc.3 
+	    IL_0053:  nop 
+	    IL_0054:  ldloc.0 
+	    IL_0055:  ldloc.3 
+	    IL_0056:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	    IL_005b:  brtrue IL_006a
+
+	    IL_0060:  nop 
+	    IL_0061:  ldloc.0 
+	    IL_0062:  ldloc.3 
+	    IL_0063:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_0068:  pop 
+	    IL_0069:  nop 
+	    IL_006a:  nop 
+	    IL_006b:  ldloc.s 4
+	    IL_006d:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_0072:  brtrue IL_004b
+
+	    IL_0077:  leave IL_0093
 
 	  } // end .try 0
 	  finally  { // 0
-	    IL_0075:  ldloc.0 
-	    IL_0076:  brfalse IL_0081
+	    IL_007c:  ldloc.s 4
+	    IL_007e:  isinst [mscorlib]System.IDisposable
+	    IL_0083:  dup 
+	    IL_0084:  stloc.s 5
+	    IL_0086:  brfalse IL_0092
 
-	    IL_007b:  ldloc.0 
-	    IL_007c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0081:  endfinally 
+	    IL_008b:  ldloc.s 5
+	    IL_008d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0092:  endfinally 
 	  } // end handler 0
-	  IL_0082:  nop 
-	  IL_0083:  ldarg.1 
-	  IL_0084:  ldarg.2 
-	  IL_0085:  call void class [mscorlib]System.IO.File::SetLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	  IL_008a:  nop 
-	  IL_008b:  leave IL_00e4
+	  IL_0093:  nop 
+	  IL_0094:  br IL_012f
 
-	} // end .try 1
-	catch class [mscorlib]System.Exception { // 1
-	  IL_0090:  stloc.1 
-	  IL_0091:  nop 
-	  IL_0092:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0097:  ldstr "NA1152"
-	  IL_009c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_00a1:  ldarg.1 
-	  IL_00a2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_00a7:  stloc.2 
-	  IL_00a8:  ldarg.0 
-	  IL_00a9:  call instance bool class NAnt.Core.Task::get_FailOnError()
-	  IL_00ae:  brfalse IL_00c2
+	  IL_0099:  ldloc.1 
+	  IL_009a:  isinst NAnt.Core.Types.PathElement
+	  IL_009f:  brfalse IL_012f
 
-	  IL_00b3:  nop 
-	  IL_00b4:  ldloc.2 
-	  IL_00b5:  ldarg.0 
-	  IL_00b6:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_00bb:  ldloc.1 
-	  IL_00bc:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_00c1:  throw 
-	  IL_00c2:  ldarg.0 
-	  IL_00c3:  ldc.i4 2000
-	  IL_00c8:  ldloc.2 
-	  IL_00c9:  ldstr " "
-	  IL_00ce:  ldloc.1 
-	  IL_00cf:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	  IL_00d4:  call string string::Concat(string, string, string)
-	  IL_00d9:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	  IL_00de:  nop 
-	  IL_00df:  leave IL_00e4
+	  IL_00a4:  nop 
+	  IL_00a5:  ldloc.1 
+	  IL_00a6:  castclass NAnt.Core.Types.PathElement
+	  IL_00ab:  stloc.s 6
+	  IL_00ad:  ldloc.s 6
+	  IL_00af:  callvirt instance bool class NAnt.Core.Types.PathElement::get_IfDefined()
+	  IL_00b4:  brfalse IL_00c5
 
-	} // end handler 1
-	IL_00e4:  ret 
-    } // end of method TouchTask::TouchFile
+	  IL_00b9:  ldloc.s 6
+	  IL_00bb:  callvirt instance bool class NAnt.Core.Types.PathElement::get_UnlessDefined()
+	  IL_00c0:  brfalse IL_00cb
 
-    // method line 785
-    .method private hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetDateTime (int64 milliSeconds)  cil managed 
+	  IL_00c5:  nop 
+	  IL_00c6:  leave IL_0130
+
+	  IL_00cb:  nop 
+	  IL_00cc:  ldloc.1 
+	  IL_00cd:  castclass NAnt.Core.Types.PathElement
+	  IL_00d2:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.PathElement::get_Parts()
+	  IL_00d7:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_00dc:  stloc.s 8
+	  .try { // 1
+	    IL_00de:  br IL_0106
+
+	    IL_00e3:  ldloc.s 8
+	    IL_00e5:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_00ea:  stloc.s 7
+	    IL_00ec:  nop 
+	    IL_00ed:  ldloc.0 
+	    IL_00ee:  ldloc.s 7
+	    IL_00f0:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	    IL_00f5:  brtrue IL_0105
+
+	    IL_00fa:  nop 
+	    IL_00fb:  ldloc.0 
+	    IL_00fc:  ldloc.s 7
+	    IL_00fe:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_0103:  pop 
+	    IL_0104:  nop 
+	    IL_0105:  nop 
+	    IL_0106:  ldloc.s 8
+	    IL_0108:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_010d:  brtrue IL_00e3
+
+	    IL_0112:  leave IL_012e
+
+	  } // end .try 1
+	  finally  { // 1
+	    IL_0117:  ldloc.s 8
+	    IL_0119:  isinst [mscorlib]System.IDisposable
+	    IL_011e:  dup 
+	    IL_011f:  stloc.s 9
+	    IL_0121:  brfalse IL_012d
+
+	    IL_0126:  ldloc.s 9
+	    IL_0128:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_012d:  endfinally 
+	  } // end handler 1
+	  IL_012e:  nop 
+	  IL_012f:  nop 
+	  IL_0130:  ldloc.2 
+	  IL_0131:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0136:  brtrue IL_001f
+
+	  IL_013b:  leave IL_0156
+
+	} // end .try 2
+	finally  { // 2
+	  IL_0140:  ldloc.2 
+	  IL_0141:  isinst [mscorlib]System.IDisposable
+	  IL_0146:  dup 
+	  IL_0147:  stloc.s 10
+	  IL_0149:  brfalse IL_0155
+
+	  IL_014e:  ldloc.s 10
+	  IL_0150:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0155:  endfinally 
+	} // end handler 2
+	IL_0156:  ldloc.0 
+	IL_0157:  stloc.s 11
+	IL_0159:  br IL_015e
+
+	IL_015e:  ldloc.s 11
+	IL_0160:  ret 
+    } // end of method PathSet::GetElements
+
+    // method line 683
+    .method public static hidebysig 
+           default class [System]System.Collections.Specialized.StringCollection TranslatePath (class NAnt.Core.Project project, string source)  cil managed 
     {
-        // Method begins at RVA 0xe1b0
-	// Code size 39 (0x27)
-	.maxstack 2
+        // Method begins at RVA 0xd3bc
+	// Code size 388 (0x184)
+	.maxstack 7
 	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0,
-		valuetype [mscorlib]System.DateTime	V_1)
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		class [System]System.Collections.Specialized.StringCollection	V_1,
+		string[]	V_2,
+		int32	V_3,
+		string	V_4,
+		string	V_5,
+		string	V_6,
+		string	V_7,
+		string[]	V_8,
+		int32	V_9,
+		string	V_10,
+		class [mscorlib]System.Exception	V_11)
 	IL_0000:  nop 
-	IL_0001:  ldstr "01/01/1970 00:00:00"
-	IL_0006:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_000b:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::Parse(string, class [mscorlib]System.IFormatProvider)
-	IL_0010:  stloc.0 
-	IL_0011:  ldloca.s 0
-	IL_0013:  ldarg.1 
-	IL_0014:  conv.r8 
-	IL_0015:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromMilliseconds(float64)
-	IL_001a:  call instance valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::Add(valuetype [mscorlib]System.TimeSpan)
-	IL_001f:  stloc.1 
-	IL_0020:  br IL_0025
+	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.1 
+	IL_0008:  brtrue IL_0015
 
-	IL_0025:  ldloc.1 
-	IL_0026:  ret 
-    } // end of method TouchTask::GetDateTime
+	IL_000d:  nop 
+	IL_000e:  ldloc.0 
+	IL_000f:  stloc.1 
+	IL_0010:  br IL_0182
 
-	.property instance class [mscorlib]System.IO.FileInfo File ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
+	IL_0015:  ldarg.1 
+	IL_0016:  ldc.i4.2 
+	IL_0017:  newarr [mscorlib]System.Char
+	IL_001c:  dup 
+	IL_001d:  ldc.i4.0 
+	IL_001e:  ldc.i4.s 0x3a
+	IL_0020:  stelem.i2 
+	IL_0021:  dup 
+	IL_0022:  ldc.i4.1 
+	IL_0023:  ldc.i4.s 0x3b
+	IL_0025:  stelem.i2 
+	IL_0026:  callvirt instance string[] string::Split(char[])
+	IL_002b:  stloc.2 
+	IL_002c:  ldc.i4.0 
+	IL_002d:  stloc.3 
+	IL_002e:  br IL_0172
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.TouchTask::get_File () 
-		.set instance default void NAnt.Core.Tasks.TouchTask::set_File (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance int64 Millis ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 6D 69 6C 6C 69 73 00 00 ) // ...millis..
+	IL_0033:  nop 
+	IL_0034:  ldloc.2 
+	IL_0035:  ldloc.3 
+	IL_0036:  ldelem.ref 
+	IL_0037:  stloc.s 4
+	IL_0039:  ldloc.s 4
+	IL_003b:  callvirt instance int32 string::get_Length()
+	IL_0040:  ldc.i4.1 
+	IL_0041:  bne.un IL_00b3
 
-		.get instance default int64 NAnt.Core.Tasks.TouchTask::get_Millis () 
-		.set instance default void NAnt.Core.Tasks.TouchTask::set_Millis (int64 'value') 
-	}
-	.property instance valuetype [mscorlib]System.DateTime Datetime ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 64 61 74 65 74 69 6D 65 00 00 ) // ...datetime..
+	IL_0046:  ldloc.s 4
+	IL_0048:  ldc.i4.0 
+	IL_0049:  callvirt instance char string::get_Chars(int32)
+	IL_004e:  call bool char::IsLetter(char)
+	IL_0053:  brfalse IL_00b3
 
-		.custom instance void class NAnt.Core.Attributes.DateTimeValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0058:  ldsfld bool NAnt.Core.Types.PathSet::_dosBasedFileSystem
+	IL_005d:  brfalse IL_00b3
 
-		.get instance default valuetype [mscorlib]System.DateTime NAnt.Core.Tasks.TouchTask::get_Datetime () 
-		.set instance default void NAnt.Core.Tasks.TouchTask::set_Datetime (valuetype [mscorlib]System.DateTime 'value') 
-	}
-	.property instance class NAnt.Core.Types.FileSet TouchFileSet ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
+	IL_0062:  ldloc.2 
+	IL_0063:  ldlen 
+	IL_0064:  conv.i4 
+	IL_0065:  ldloc.3 
+	IL_0066:  ldc.i4.1 
+	IL_0067:  add 
+	IL_0068:  ble IL_00b3
 
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.TouchTask::get_TouchFileSet () 
-		.set instance default void NAnt.Core.Tasks.TouchTask::set_TouchFileSet (class NAnt.Core.Types.FileSet 'value') 
-	}
-  } // end of class NAnt.Core.Tasks.TouchTask
+	IL_006d:  nop 
+	IL_006e:  ldloc.2 
+	IL_006f:  ldloc.3 
+	IL_0070:  ldc.i4.1 
+	IL_0071:  add 
+	IL_0072:  ldelem.ref 
+	IL_0073:  callvirt instance string string::Trim()
+	IL_0078:  stloc.s 5
+	IL_007a:  ldloc.s 5
+	IL_007c:  ldstr "\\"
+	IL_0081:  callvirt instance bool string::StartsWith(string)
+	IL_0086:  brtrue IL_009c
+
+	IL_008b:  ldloc.s 5
+	IL_008d:  ldstr "/"
+	IL_0092:  callvirt instance bool string::StartsWith(string)
+	IL_0097:  brfalse IL_00b2
+
+	IL_009c:  nop 
+	IL_009d:  ldloc.s 4
+	IL_009f:  ldstr ":"
+	IL_00a4:  ldloc.s 5
+	IL_00a6:  call string string::Concat(string, string, string)
+	IL_00ab:  stloc.s 4
+	IL_00ad:  ldloc.3 
+	IL_00ae:  ldc.i4.1 
+	IL_00af:  add 
+	IL_00b0:  stloc.3 
+	IL_00b1:  nop 
+	IL_00b2:  nop 
+	IL_00b3:  ldloc.s 4
+	IL_00b5:  call string class [mscorlib]System.Environment::ExpandEnvironmentVariables(string)
+	IL_00ba:  stloc.s 6
+	IL_00bc:  ldloc.s 6
+	IL_00be:  ldstr "%"
+	IL_00c3:  callvirt instance bool string::StartsWith(string)
+	IL_00c8:  brfalse IL_00e4
+
+	IL_00cd:  ldloc.s 6
+	IL_00cf:  ldstr "%"
+	IL_00d4:  callvirt instance bool string::EndsWith(string)
+	IL_00d9:  brfalse IL_00e4
+
+	IL_00de:  nop 
+	IL_00df:  br IL_016e
+
+	IL_00e4:  nop 
+	IL_00e5:  ldloc.s 6
+	IL_00e7:  ldsfld char [mscorlib]System.IO.Path::PathSeparator
+	IL_00ec:  ldc.i4.0 
+	IL_00ed:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	IL_00f2:  stloc.s 8
+	IL_00f4:  ldc.i4.0 
+	IL_00f5:  stloc.s 9
+	IL_00f7:  br IL_0162
+
+	IL_00fc:  ldloc.s 8
+	IL_00fe:  ldloc.s 9
+	IL_0100:  ldelem.ref 
+	IL_0101:  stloc.s 7
+	IL_0103:  nop 
+	.try { // 0
+	  IL_0104:  nop 
+	  IL_0105:  ldarg.0 
+	  IL_0106:  ldloc.s 7
+	  IL_0108:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	  IL_010d:  stloc.s 10
+	  IL_010f:  ldloc.0 
+	  IL_0110:  ldloc.s 10
+	  IL_0112:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	  IL_0117:  brtrue IL_0127
+
+	  IL_011c:  nop 
+	  IL_011d:  ldloc.0 
+	  IL_011e:  ldloc.s 10
+	  IL_0120:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_0125:  pop 
+	  IL_0126:  nop 
+	  IL_0127:  nop 
+	  IL_0128:  leave IL_015b
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_012d:  stloc.s 11
+	  IL_012f:  nop 
+	  IL_0130:  ldarg.0 
+	  IL_0131:  ldc.i4 2000
+	  IL_0136:  ldstr "Dropping path element '{0}' as it could not be resolved to a full path. {1}"
+	  IL_013b:  ldc.i4.2 
+	  IL_013c:  newarr [mscorlib]System.Object
+	  IL_0141:  dup 
+	  IL_0142:  ldc.i4.0 
+	  IL_0143:  ldloc.s 7
+	  IL_0145:  stelem.ref 
+	  IL_0146:  dup 
+	  IL_0147:  ldc.i4.1 
+	  IL_0148:  ldloc.s 11
+	  IL_014a:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	  IL_014f:  stelem.ref 
+	  IL_0150:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0155:  nop 
+	  IL_0156:  leave IL_015b
+
+	} // end handler 0
+	IL_015b:  nop 
+	IL_015c:  ldloc.s 9
+	IL_015e:  ldc.i4.1 
+	IL_015f:  add 
+	IL_0160:  stloc.s 9
+	IL_0162:  ldloc.s 9
+	IL_0164:  ldloc.s 8
+	IL_0166:  ldlen 
+	IL_0167:  conv.i4 
+	IL_0168:  blt IL_00fc
+
+	IL_016d:  nop 
+	IL_016e:  ldloc.3 
+	IL_016f:  ldc.i4.1 
+	IL_0170:  add 
+	IL_0171:  stloc.3 
+	IL_0172:  ldloc.3 
+	IL_0173:  ldloc.2 
+	IL_0174:  ldlen 
+	IL_0175:  conv.i4 
+	IL_0176:  blt IL_0033
+
+	IL_017b:  ldloc.0 
+	IL_017c:  stloc.1 
+	IL_017d:  br IL_0182
+
+	IL_0182:  ldloc.1 
+	IL_0183:  ret 
+    } // end of method PathSet::TranslatePath
+
+    // method line 684
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xd55c
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldsfld char [mscorlib]System.IO.Path::PathSeparator
+	IL_0005:  ldc.i4.s 0x3b
+	IL_0007:  ceq 
+	IL_0009:  stsfld bool NAnt.Core.Types.PathSet::_dosBasedFileSystem
+	IL_000e:  ret 
+    } // end of method PathSet::.cctor
+
+  } // end of class NAnt.Core.Types.PathSet
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit PropertyTask
-  	extends NAnt.Core.Task
+  .class public auto ansi beforefieldinit Formatter
+  	extends NAnt.Core.Element
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 08 70 72 6F 70 65 72 74 79 00 00 ) // ...property..
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 09 66 6F 72 6D 61 74 74 65 72 00 00 ) // ...formatter..
 
-    .field  private  string _name
-    .field  private  string _value
-    .field  private  bool _readOnly
-    .field  private  bool _dynamic
-    .field  private  bool _overwrite
+    .field  private  string _property
+    .field  private  string _pattern
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 786
+    // method line 685
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xe1e3
-	// Code size 25 (0x19)
+        // Method begins at RVA 0xd56c
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld string [mscorlib]System.String::Empty
-	IL_0006:  stfld string NAnt.Core.Tasks.PropertyTask::_value
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.1 
-	IL_000d:  stfld bool NAnt.Core.Tasks.PropertyTask::_overwrite
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0018:  ret 
-    } // end of method PropertyTask::.ctor
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.Formatter::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  ret 
+    } // end of method Formatter::.ctor
 
-    // method line 787
+    // method line 686
     .method public hidebysig specialname 
-           instance default string get_PropertyName ()  cil managed 
+           instance default string get_Property ()  cil managed 
     {
-        // Method begins at RVA 0xe200
+        // Method begins at RVA 0xd57c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.PropertyTask::_name
+	IL_0002:  ldfld string NAnt.Core.Types.Formatter::_property
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PropertyTask::get_PropertyName
+    } // end of method Formatter::get_Property
 
-    // method line 788
+    // method line 687
     .method public hidebysig specialname 
-           instance default void set_PropertyName (string 'value')  cil managed 
+           instance default void set_Property (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xe21b
+        // Method begins at RVA 0xd597
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.PropertyTask::_name
+	IL_0003:  stfld string NAnt.Core.Types.Formatter::_property
 	IL_0008:  ret 
-    } // end of method PropertyTask::set_PropertyName
+    } // end of method Formatter::set_Property
 
-    // method line 789
+    // method line 688
     .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
+           instance default string get_Pattern ()  cil managed 
     {
-        // Method begins at RVA 0xe228
+        // Method begins at RVA 0xd5a4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.PropertyTask::_value
+	IL_0002:  ldfld string NAnt.Core.Types.Formatter::_pattern
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PropertyTask::get_Value
+    } // end of method Formatter::get_Pattern
 
-    // method line 790
+    // method line 689
     .method public hidebysig specialname 
-           instance default void set_Value (string 'value')  cil managed 
+           instance default void set_Pattern (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xe243
+        // Method begins at RVA 0xd5bf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.PropertyTask::_value
+	IL_0003:  stfld string NAnt.Core.Types.Formatter::_pattern
 	IL_0008:  ret 
-    } // end of method PropertyTask::set_Value
+    } // end of method Formatter::set_Pattern
 
-    // method line 791
+    // method line 690
     .method public hidebysig specialname 
-           instance default bool get_ReadOnly ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0xe250
+        // Method begins at RVA 0xd5cc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.PropertyTask::_readOnly
+	IL_0002:  ldfld bool NAnt.Core.Types.Formatter::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PropertyTask::get_ReadOnly
-
-    // method line 792
-    .method public hidebysig specialname 
-           instance default void set_ReadOnly (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xe26b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.PropertyTask::_readOnly
-	IL_0008:  ret 
-    } // end of method PropertyTask::set_ReadOnly
-
-    // method line 793
-    .method public hidebysig specialname 
-           instance default bool get_Dynamic ()  cil managed 
-    {
-        // Method begins at RVA 0xe278
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.PropertyTask::_dynamic
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method PropertyTask::get_Dynamic
+    } // end of method Formatter::get_IfDefined
 
-    // method line 794
+    // method line 691
     .method public hidebysig specialname 
-           instance default void set_Dynamic (bool 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xe293
+        // Method begins at RVA 0xd5e7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.PropertyTask::_dynamic
+	IL_0003:  stfld bool NAnt.Core.Types.Formatter::_ifDefined
 	IL_0008:  ret 
-    } // end of method PropertyTask::set_Dynamic
+    } // end of method Formatter::set_IfDefined
 
-    // method line 795
+    // method line 692
     .method public hidebysig specialname 
-           instance default bool get_Overwrite ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0xe2a0
+        // Method begins at RVA 0xd5f4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.PropertyTask::_overwrite
+	IL_0002:  ldfld bool NAnt.Core.Types.Formatter::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method PropertyTask::get_Overwrite
+    } // end of method Formatter::get_UnlessDefined
 
-    // method line 796
+    // method line 693
     .method public hidebysig specialname 
-           instance default void set_Overwrite (bool 'value')  cil managed 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xe2bb
+        // Method begins at RVA 0xd60f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.PropertyTask::_overwrite
+	IL_0003:  stfld bool NAnt.Core.Types.Formatter::_unlessDefined
 	IL_0008:  ret 
-    } // end of method PropertyTask::set_Overwrite
-
-    // method line 797
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0xe2c8
-	// Code size 726 (0x2d6)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		class NAnt.Core.FrameworkInfo	V_1,
-		class [mscorlib]System.Collections.ArrayList	V_2,
-		class NAnt.Core.FrameworkInfo	V_3,
-		class NAnt.Core.FrameworkInfoDictionaryEnumerator	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		string	V_6)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Tasks.PropertyTask::get_Dynamic()
-	IL_0007:  brtrue IL_002b
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance string class NAnt.Core.Tasks.PropertyTask::get_Value()
-	IL_0019:  ldarg.0 
-	IL_001a:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_001f:  callvirt instance string class NAnt.Core.Project::ExpandProperties(string, class NAnt.Core.Location)
-	IL_0024:  stloc.0 
-	IL_0025:  nop 
-	IL_0026:  br IL_0034
-
-	IL_002b:  nop 
-	IL_002c:  ldarg.0 
-	IL_002d:  call instance string class NAnt.Core.Tasks.PropertyTask::get_Value()
-	IL_0032:  stloc.0 
-	IL_0033:  nop 
-	IL_0034:  ldarg.0 
-	IL_0035:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
-	IL_003a:  ldstr "nant.settings.currentframework"
-	IL_003f:  call bool string::op_Equality(string, string)
-	IL_0044:  brfalse IL_01b5
-
-	IL_0049:  nop 
-	IL_004a:  ldarg.0 
-	IL_004b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0050:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
-	IL_0055:  ldloc.0 
-	IL_0056:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionary::get_Item(string)
-	IL_005b:  stloc.1 
-	IL_005c:  ldloc.1 
-	IL_005d:  brfalse IL_00ea
-
-	IL_0062:  nop 
-	IL_0063:  ldarg.0 
-	IL_0064:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0069:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_006e:  brfalse IL_00b8
-
-	IL_0073:  nop 
-	IL_0074:  ldarg.0 
-	IL_0075:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_007a:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_007f:  ldloc.1 
-	IL_0080:  beq IL_00b2
-
-	IL_0085:  nop 
-	IL_0086:  ldarg.0 
-	IL_0087:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_008c:  ldloc.1 
-	IL_008d:  callvirt instance void class NAnt.Core.Project::set_TargetFramework(class NAnt.Core.FrameworkInfo)
-	IL_0092:  ldarg.0 
-	IL_0093:  ldc.i4 3000
-	IL_0098:  ldstr "Target framework changed to \"{0}\"."
-	IL_009d:  ldc.i4.1 
-	IL_009e:  newarr [mscorlib]System.Object
-	IL_00a3:  dup 
-	IL_00a4:  ldc.i4.0 
-	IL_00a5:  ldloc.1 
-	IL_00a6:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Description()
-	IL_00ab:  stelem.ref 
-	IL_00ac:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_00b1:  nop 
-	IL_00b2:  nop 
-	IL_00b3:  br IL_00e5
-
-	IL_00b8:  nop 
-	IL_00b9:  ldarg.0 
-	IL_00ba:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_00bf:  ldloc.1 
-	IL_00c0:  callvirt instance void class NAnt.Core.Project::set_TargetFramework(class NAnt.Core.FrameworkInfo)
-	IL_00c5:  ldarg.0 
-	IL_00c6:  ldc.i4 3000
-	IL_00cb:  ldstr "Target framework set to \"{0}\"."
-	IL_00d0:  ldc.i4.1 
-	IL_00d1:  newarr [mscorlib]System.Object
-	IL_00d6:  dup 
-	IL_00d7:  ldc.i4.0 
-	IL_00d8:  ldloc.1 
-	IL_00d9:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Description()
-	IL_00de:  stelem.ref 
-	IL_00df:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_00e4:  nop 
-	IL_00e5:  br IL_02d5
-
-	IL_00ea:  nop 
-	IL_00eb:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_00f0:  stloc.2 
-	IL_00f1:  nop 
-	IL_00f2:  ldarg.0 
-	IL_00f3:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_00f8:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
-	IL_00fd:  callvirt instance class NAnt.Core.FrameworkInfoDictionaryEnumerator class NAnt.Core.FrameworkInfoDictionary::GetEnumerator()
-	IL_0102:  stloc.s 4
-	.try { // 0
-	  IL_0104:  br IL_0120
-
-	  IL_0109:  ldloc.s 4
-	  IL_010b:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Current()
-	  IL_0110:  stloc.3 
-	  IL_0111:  nop 
-	  IL_0112:  ldloc.2 
-	  IL_0113:  ldloc.3 
-	  IL_0114:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	  IL_0119:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_011e:  pop 
-	  IL_011f:  nop 
-	  IL_0120:  ldloc.s 4
-	  IL_0122:  callvirt instance bool class NAnt.Core.FrameworkInfoDictionaryEnumerator::MoveNext()
-	  IL_0127:  brtrue IL_0109
-
-	  IL_012c:  leave IL_0148
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0131:  ldloc.s 4
-	  IL_0133:  isinst [mscorlib]System.IDisposable
-	  IL_0138:  dup 
-	  IL_0139:  stloc.s 5
-	  IL_013b:  brfalse IL_0147
-
-	  IL_0140:  ldloc.s 5
-	  IL_0142:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0147:  endfinally 
-	} // end handler 0
-	IL_0148:  ldsfld string [mscorlib]System.String::Empty
-	IL_014d:  stloc.s 6
-	IL_014f:  ldloc.2 
-	IL_0150:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_0155:  ldc.i4.0 
-	IL_0156:  ble IL_0192
-
-	IL_015b:  nop 
-	IL_015c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0161:  ldstr "String_ValidValues"
-	IL_0166:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_016b:  ldstr ", "
-	IL_0170:  ldloc.2 
-	IL_0171:  ldtoken [mscorlib]System.String
-	IL_0176:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_017b:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
-	IL_0180:  castclass string[]
-	IL_0185:  call string string::Join(string, string[])
-	IL_018a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_018f:  stloc.s 6
-	IL_0191:  nop 
-	IL_0192:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0197:  ldstr "NA1143"
-	IL_019c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_01a1:  ldloc.0 
-	IL_01a2:  ldloc.s 6
-	IL_01a4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_01a9:  ldarg.0 
-	IL_01aa:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_01af:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_01b4:  throw 
-	IL_01b5:  ldarg.0 
-	IL_01b6:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_01bb:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_01c0:  ldarg.0 
-	IL_01c1:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
-	IL_01c6:  callvirt instance bool class NAnt.Core.PropertyDictionary::Contains(string)
-	IL_01cb:  brtrue IL_022d
-
-	IL_01d0:  nop 
-	IL_01d1:  ldarg.0 
-	IL_01d2:  call instance bool class NAnt.Core.Tasks.PropertyTask::get_ReadOnly()
-	IL_01d7:  brfalse IL_01f5
-
-	IL_01dc:  nop 
-	IL_01dd:  ldarg.0 
-	IL_01de:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_01e3:  ldarg.0 
-	IL_01e4:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
-	IL_01e9:  ldloc.0 
-	IL_01ea:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	IL_01ef:  nop 
-	IL_01f0:  br IL_0209
-
-	IL_01f5:  nop 
-	IL_01f6:  ldarg.0 
-	IL_01f7:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_01fc:  ldarg.0 
-	IL_01fd:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
-	IL_0202:  ldloc.0 
-	IL_0203:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0208:  nop 
-	IL_0209:  ldarg.0 
-	IL_020a:  call instance bool class NAnt.Core.Tasks.PropertyTask::get_Dynamic()
-	IL_020f:  brfalse IL_0227
-
-	IL_0214:  nop 
-	IL_0215:  ldarg.0 
-	IL_0216:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_021b:  ldarg.0 
-	IL_021c:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
-	IL_0221:  callvirt instance void class NAnt.Core.PropertyDictionary::MarkDynamic(string)
-	IL_0226:  nop 
-	IL_0227:  nop 
-	IL_0228:  br IL_02d5
-
-	IL_022d:  nop 
-	IL_022e:  ldarg.0 
-	IL_022f:  call instance bool class NAnt.Core.Tasks.PropertyTask::get_Overwrite()
-	IL_0234:  brfalse IL_02b3
-
-	IL_0239:  nop 
-	IL_023a:  ldarg.0 
-	IL_023b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0240:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0245:  ldarg.0 
-	IL_0246:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
-	IL_024b:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsReadOnlyProperty(string)
-	IL_0250:  brfalse IL_027b
-
-	IL_0255:  nop 
-	IL_0256:  ldarg.0 
-	IL_0257:  ldc.i4 4000
-	IL_025c:  ldstr "Read-only property \"{0}\" cannot be overwritten."
-	IL_0261:  ldc.i4.1 
-	IL_0262:  newarr [mscorlib]System.Object
-	IL_0267:  dup 
-	IL_0268:  ldc.i4.0 
-	IL_0269:  ldarg.0 
-	IL_026a:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
-	IL_026f:  stelem.ref 
-	IL_0270:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0275:  nop 
-	IL_0276:  br IL_02ad
-
-	IL_027b:  nop 
-	IL_027c:  ldarg.0 
-	IL_027d:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0282:  ldarg.0 
-	IL_0283:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
-	IL_0288:  ldloc.0 
-	IL_0289:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_028e:  ldarg.0 
-	IL_028f:  call instance bool class NAnt.Core.Tasks.PropertyTask::get_Dynamic()
-	IL_0294:  brfalse IL_02ac
-
-	IL_0299:  nop 
-	IL_029a:  ldarg.0 
-	IL_029b:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_02a0:  ldarg.0 
-	IL_02a1:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
-	IL_02a6:  callvirt instance void class NAnt.Core.PropertyDictionary::MarkDynamic(string)
-	IL_02ab:  nop 
-	IL_02ac:  nop 
-	IL_02ad:  nop 
-	IL_02ae:  br IL_02d4
-
-	IL_02b3:  nop 
-	IL_02b4:  ldarg.0 
-	IL_02b5:  ldc.i4 2000
-	IL_02ba:  ldstr "Property \"{0}\" already exists, and \"overwrite\" is set to false."
-	IL_02bf:  ldc.i4.1 
-	IL_02c0:  newarr [mscorlib]System.Object
-	IL_02c5:  dup 
-	IL_02c6:  ldc.i4.0 
-	IL_02c7:  ldarg.0 
-	IL_02c8:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
-	IL_02cd:  stelem.ref 
-	IL_02ce:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_02d3:  nop 
-	IL_02d4:  nop 
-	IL_02d5:  ret 
-    } // end of method PropertyTask::ExecuteTask
+    } // end of method Formatter::set_UnlessDefined
 
-	.property instance string PropertyName ()
+	.property instance string Property ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
-		69 72 65 64 01                                  ) // ired.
+		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
+		52 65 71 75 69 72 65 64 01                      ) // Required.
 
 		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
 		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
 		79 00                                           ) // y.
 
-		.get instance default string NAnt.Core.Tasks.PropertyTask::get_PropertyName () 
-		.set instance default void NAnt.Core.Tasks.PropertyTask::set_PropertyName (string 'value') 
+		.get instance default string NAnt.Core.Types.Formatter::get_Property () 
+		.set instance default void NAnt.Core.Types.Formatter::set_Property (string 'value') 
 	}
-	.property instance string Value ()
+	.property instance string Pattern ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 05 76 61 6C 75 65 02 00 54 02 08 52 65 71   // ...value..T..Req
-		75 69 72 65 64 01 54 02 10 45 78 70 61 6E 64 50   // uired.T..ExpandP
-		72 6F 70 65 72 74 69 65 73 00                   ) // roperties.
+		01 00 07 70 61 74 74 65 72 6E 01 00 54 02 08 52   // ...pattern..T..R
+		65 71 75 69 72 65 64 01                         ) // equired.
 
 		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
 		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 01                                           ) // y.
-
-		.get instance default string NAnt.Core.Tasks.PropertyTask::get_Value () 
-		.set instance default void NAnt.Core.Tasks.PropertyTask::set_Value (string 'value') 
-	}
-	.property instance bool ReadOnly ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 72 65 61 64 6F 6E 6C 79 01 00 54 02 08   // ...readonly..T..
-		52 65 71 75 69 72 65 64 00                      ) // Required.
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		79 00                                           ) // y.
 
-		.get instance default bool NAnt.Core.Tasks.PropertyTask::get_ReadOnly () 
-		.set instance default void NAnt.Core.Tasks.PropertyTask::set_ReadOnly (bool 'value') 
+		.get instance default string NAnt.Core.Types.Formatter::get_Pattern () 
+		.set instance default void NAnt.Core.Types.Formatter::set_Pattern (string 'value') 
 	}
-	.property instance bool Dynamic ()
+	.property instance bool IfDefined ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 64 79 6E 61 6D 69 63 01 00 54 02 08 52   // ...dynamic..T..R
-		65 71 75 69 72 65 64 00                         ) // equired.
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
 
 		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Core.Tasks.PropertyTask::get_Dynamic () 
-		.set instance default void NAnt.Core.Tasks.PropertyTask::set_Dynamic (bool 'value') 
+		.get instance default bool NAnt.Core.Types.Formatter::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.Formatter::set_IfDefined (bool 'value') 
 	}
-	.property instance bool Overwrite ()
+	.property instance bool UnlessDefined ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 6F 76 65 72 77 72 69 74 65 01 00 54 02   // ...overwrite..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
 
 		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Core.Tasks.PropertyTask::get_Overwrite () 
-		.set instance default void NAnt.Core.Tasks.PropertyTask::set_Overwrite (bool 'value') 
+		.get instance default bool NAnt.Core.Types.Formatter::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.Formatter::set_UnlessDefined (bool 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.PropertyTask
+  } // end of class NAnt.Core.Types.Formatter
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit ExecTask
-  	extends NAnt.Core.Tasks.ExternalProgramBase
+  .class public auto ansi beforefieldinit RawXml
+  	extends NAnt.Core.Element
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 65 78 65 63 00 00 ) // ...exec..
-
-    .field  private  string _program
-    .field  private  string _commandline
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _baseDirectory
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _workingDirectory
-    .field  private  class [mscorlib]System.IO.FileInfo _output
-    .field  private  bool _outputAppend
-    .field  private  class NAnt.Core.Types.EnvironmentSet _environmentSet
-    .field  private  string _resultProperty
-    .field  private  string _processIdProperty
 
-    // method line 798
+    // method line 694
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xf21c
-	// Code size 18 (0x12)
+        // Method begins at RVA 0xd619
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Types.EnvironmentSet::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.Types.EnvironmentSet NAnt.Core.Tasks.ExecTask::_environmentSet
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
-	IL_0011:  ret 
-    } // end of method ExecTask::.ctor
+	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0006:  ret 
+    } // end of method RawXml::.ctor
 
-    // method line 799
+    // method line 695
     .method public hidebysig specialname 
-           instance default string get_FileName ()  cil managed 
+           instance default class [System.Xml]System.Xml.XmlNode get_Xml ()  cil managed 
     {
-        // Method begins at RVA 0xf230
+        // Method begins at RVA 0xd624
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [System.Xml]System.Xml.XmlNode	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.ExecTask::_program
+	IL_0002:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::get_XmlNode()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExecTask::get_FileName
+    } // end of method RawXml::get_Xml
 
-    // method line 800
-    .method public hidebysig specialname 
-           instance default void set_FileName (string 'value')  cil managed 
+    // method line 696
+    .method family virtual hidebysig specialname 
+           instance default bool get_CustomXmlProcessing ()  cil managed 
     {
-        // Method begins at RVA 0xf24b
-	// Code size 14 (0xe)
-	.maxstack 8
+        // Method begins at RVA 0xd640
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.ExecTask::_program
-	IL_000d:  ret 
-    } // end of method ExecTask::set_FileName
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-    // method line 801
-    .method public hidebysig specialname 
-           instance default string get_CommandLineArguments ()  cil managed 
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method RawXml::get_CustomXmlProcessing
+
+	.property instance class [System.Xml]System.Xml.XmlNode Xml ()
+	{
+		.get instance default class [System.Xml]System.Xml.XmlNode NAnt.Core.Types.RawXml::get_Xml () 
+	}
+	.property instance bool CustomXmlProcessing ()
+	{
+		.get instance default bool NAnt.Core.Types.RawXml::get_CustomXmlProcessing () 
+	}
+  } // end of class NAnt.Core.Types.RawXml
+}
+
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi serializable beforefieldinit ArgumentCollection
+  	extends [mscorlib]System.Collections.CollectionBase
+  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+
+
+    // method line 697
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xd656
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method ArgumentCollection::.ctor
+
+    // method line 698
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.ArgumentCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0xf25c
+        // Method begins at RVA 0xd65f
 	// Code size 15 (0xf)
-	.maxstack 1
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Types.ArgumentCollection::AddRange(class NAnt.Core.Types.ArgumentCollection)
+	IL_000e:  ret 
+    } // end of method ArgumentCollection::.ctor
+
+    // method line 699
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.Argument[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0xd66f
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Types.ArgumentCollection::AddRange(class NAnt.Core.Types.Argument[])
+	IL_000e:  ret 
+    } // end of method ArgumentCollection::.ctor
+
+    // method line 700
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Argument get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0xd680
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.Argument	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.ExecTask::_commandline
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.Core.Types.Argument
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExecTask::get_CommandLineArguments
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ArgumentCollection::get_Item
 
-    // method line 802
+    // method line 701
     .method public hidebysig specialname 
-           instance default void set_CommandLineArguments (string 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.Argument 'value')  cil managed 
     {
-        // Method begins at RVA 0xf277
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xd6a6
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.ExecTask::_commandline
-	IL_000d:  ret 
-    } // end of method ExecTask::set_CommandLineArguments
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method ArgumentCollection::set_Item
 
-    // method line 803
+    // method line 702
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.EnvironmentSet get_EnvironmentSet ()  cil managed 
+           instance default class NAnt.Core.Types.Argument get_Item (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xf288
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xd6b8
+	// Code size 111 (0x6f)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.EnvironmentSet	V_0)
+		class NAnt.Core.Types.Argument	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.Types.Argument	V_2,
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.EnvironmentSet NAnt.Core.Tasks.ExecTask::_environmentSet
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0066
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExecTask::get_EnvironmentSet
+	IL_0007:  nop 
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0014:  stloc.1 
+	.try { // 0
+	  IL_0015:  br IL_0041
 
-    // method line 804
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_WorkingDirectory ()  cil managed 
+	  IL_001a:  ldloc.1 
+	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0020:  castclass NAnt.Core.Types.Argument
+	  IL_0025:  stloc.0 
+	  IL_0026:  nop 
+	  IL_0027:  ldloc.0 
+	  IL_0028:  callvirt instance string class NAnt.Core.Types.Argument::get_StringValue()
+	  IL_002d:  ldarg.1 
+	  IL_002e:  call bool string::op_Equality(string, string)
+	  IL_0033:  brfalse IL_0040
+
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  stloc.2 
+	  IL_003b:  leave IL_006d
+
+	  IL_0040:  nop 
+	  IL_0041:  ldloc.1 
+	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0047:  brtrue IL_001a
+
+	  IL_004c:  leave IL_0065
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0051:  ldloc.1 
+	  IL_0052:  isinst [mscorlib]System.IDisposable
+	  IL_0057:  dup 
+	  IL_0058:  stloc.3 
+	  IL_0059:  brfalse IL_0064
+
+	  IL_005e:  ldloc.3 
+	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0064:  endfinally 
+	} // end handler 0
+	IL_0065:  nop 
+	IL_0066:  ldnull 
+	IL_0067:  stloc.2 
+	IL_0068:  br IL_006d
+
+	IL_006d:  ldloc.2 
+	IL_006e:  ret 
+    } // end of method ArgumentCollection::get_Item
+
+    // method line 703
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0xf2a4
-	// Code size 39 (0x27)
-	.maxstack 1
+        // Method begins at RVA 0xd744
+	// Code size 28 (0x1c)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  call instance void class NAnt.Core.Types.ArgumentCollection::ToString(class [mscorlib]System.Text.StringBuilder)
+	IL_000e:  ldloc.0 
+	IL_000f:  callvirt instance string object::ToString()
+	IL_0014:  stloc.1 
+	IL_0015:  br IL_001a
+
+	IL_001a:  ldloc.1 
+	IL_001b:  ret 
+    } // end of method ArgumentCollection::ToString
+
+    // method line 704
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.Types.Argument item)  cil managed 
+    {
+        // Method begins at RVA 0xd76c
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_workingDirectory
-	IL_0007:  brtrue IL_0019
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0025
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ArgumentCollection::Add
 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_workingDirectory
-	IL_001f:  stloc.0 
-	IL_0020:  br IL_0025
+    // method line 705
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.Argument[] items)  cil managed 
+    {
+        // Method begins at RVA 0xd790
+	// Code size 34 (0x22)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
 
-	IL_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method ExecTask::get_WorkingDirectory
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.Core.Types.ArgumentCollection::Add(class NAnt.Core.Types.Argument)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
 
-    // method line 805
-    .method public hidebysig specialname 
-           instance default void set_WorkingDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+	IL_0021:  ret 
+    } // end of method ArgumentCollection::AddRange
+
+    // method line 706
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.ArgumentCollection items)  cil managed 
     {
-        // Method begins at RVA 0xf2d7
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0xd7c0
+	// Code size 41 (0x29)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_workingDirectory
-	IL_0008:  ret 
-    } // end of method ExecTask::set_WorkingDirectory
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
 
-    // method line 806
-    .method public hidebysig specialname 
-           instance default string get_ResultProperty ()  cil managed 
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.Core.Types.Argument class NAnt.Core.Types.ArgumentCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Core.Types.ArgumentCollection::Add(class NAnt.Core.Types.Argument)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
+
+	IL_0028:  ret 
+    } // end of method ArgumentCollection::AddRange
+
+    // method line 707
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.Types.Argument item)  cil managed 
     {
-        // Method begins at RVA 0xf2e4
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xd7f8
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.ExecTask::_resultProperty
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExecTask::get_ResultProperty
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ArgumentCollection::Contains
 
-    // method line 807
-    .method public hidebysig specialname 
-           instance default void set_ResultProperty (string 'value')  cil managed 
+    // method line 708
+    .method public hidebysig 
+           instance default bool Contains (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xf2ff
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0xd81c
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.ExecTask::_resultProperty
-	IL_0008:  ret 
-    } // end of method ExecTask::set_ResultProperty
+	IL_0003:  call instance class NAnt.Core.Types.Argument class NAnt.Core.Types.ArgumentCollection::get_Item(string)
+	IL_0008:  ldnull 
+	IL_0009:  ceq 
+	IL_000b:  ldc.i4.0 
+	IL_000c:  ceq 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0014
 
-    // method line 808
-    .method public virtual hidebysig specialname 
-           instance default bool get_UseRuntimeEngine ()  cil managed 
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method ArgumentCollection::Contains
+
+    // method line 709
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.Argument[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0xf30c
+        // Method begins at RVA 0xd83e
 	// Code size 15 (0xf)
-	.maxstack 1
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method ArgumentCollection::CopyTo
+
+    // method line 710
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.Types.Argument item)  cil managed 
+    {
+        // Method begins at RVA 0xd850
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_UseRuntimeEngine()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExecTask::get_UseRuntimeEngine
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ArgumentCollection::IndexOf
 
-    // method line 809
-    .method public virtual hidebysig specialname 
-           instance default void set_UseRuntimeEngine (bool 'value')  cil managed 
+    // method line 711
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.Types.Argument item)  cil managed 
     {
-        // Method begins at RVA 0xf327
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xd871
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::set_UseRuntimeEngine(bool)
-	IL_0008:  ret 
-    } // end of method ExecTask::set_UseRuntimeEngine
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method ArgumentCollection::Insert
 
-    // method line 810
-    .method public virtual hidebysig specialname 
-           instance default valuetype NAnt.Core.Types.ManagedExecution get_Managed ()  cil managed 
+    // method line 712
+    .method public hidebysig 
+           instance default class NAnt.Core.Types.ArgumentEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0xf334
+        // Method begins at RVA 0xd884
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.Types.ManagedExecution	V_0)
+		class NAnt.Core.Types.ArgumentEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance valuetype NAnt.Core.Types.ManagedExecution class NAnt.Core.Tasks.ExternalProgramBase::get_Managed()
+	IL_0002:  newobj instance void class NAnt.Core.Types.ArgumentEnumerator::'.ctor'(class NAnt.Core.Types.ArgumentCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExecTask::get_Managed
+    } // end of method ArgumentCollection::GetEnumerator
 
-    // method line 811
-    .method public virtual hidebysig specialname 
-           instance default void set_Managed (valuetype NAnt.Core.Types.ManagedExecution 'value')  cil managed 
+    // method line 713
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.Types.Argument item)  cil managed 
     {
-        // Method begins at RVA 0xf34f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xd89f
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::set_Managed(valuetype NAnt.Core.Types.ManagedExecution)
-	IL_0008:  ret 
-    } // end of method ExecTask::set_Managed
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
+	IL_000d:  ret 
+    } // end of method ArgumentCollection::Remove
 
-    // method line 812
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramFileName ()  cil managed 
+    // method line 714
+    .method assembly hidebysig 
+           instance default void ToString (class [mscorlib]System.Text.StringBuilder sb)  cil managed 
     {
-        // Method begins at RVA 0xf35c
-	// Code size 127 (0x7f)
+        // Method begins at RVA 0xd8b0
+	// Code size 120 (0x78)
 	.maxstack 2
 	.locals init (
-		string	V_0,
-		string	V_1)
+		class NAnt.Core.Types.Argument	V_0,
+		class NAnt.Core.Types.ArgumentEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.Core.Tasks.ExecTask::get_FileName()
-	IL_0007:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	IL_000c:  brfalse IL_001e
+	IL_0001:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  call instance class NAnt.Core.Types.ArgumentEnumerator class NAnt.Core.Types.ArgumentCollection::GetEnumerator()
+	IL_0008:  stloc.1 
+	.try { // 0
+	  IL_0009:  br IL_0053
 
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance string class NAnt.Core.Tasks.ExecTask::get_FileName()
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_007d
+	  IL_000e:  ldloc.1 
+	  IL_000f:  callvirt instance class NAnt.Core.Types.Argument class NAnt.Core.Types.ArgumentEnumerator::get_Current()
+	  IL_0014:  stloc.0 
+	  IL_0015:  nop 
+	  IL_0016:  ldloc.0 
+	  IL_0017:  callvirt instance bool class NAnt.Core.Types.Argument::get_IfDefined()
+	  IL_001c:  brfalse IL_0052
 
-	IL_001e:  ldarg.0 
-	IL_001f:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_baseDirectory
-	IL_0024:  brtrue IL_005b
+	  IL_0021:  ldloc.0 
+	  IL_0022:  callvirt instance bool class NAnt.Core.Types.Argument::get_UnlessDefined()
+	  IL_0027:  brtrue IL_0052
 
-	IL_0029:  nop 
-	IL_002a:  ldarg.0 
-	IL_002b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0030:  ldarg.0 
-	IL_0031:  call instance string class NAnt.Core.Tasks.ExecTask::get_FileName()
-	IL_0036:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	IL_003b:  stloc.1 
-	IL_003c:  ldloc.1 
-	IL_003d:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0042:  brfalse IL_004f
+	  IL_002c:  nop 
+	  IL_002d:  ldarg.1 
+	  IL_002e:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	  IL_0033:  ldc.i4.0 
+	  IL_0034:  ble IL_0044
 
-	IL_0047:  nop 
-	IL_0048:  ldloc.1 
-	IL_0049:  stloc.0 
-	IL_004a:  br IL_007d
+	  IL_0039:  nop 
+	  IL_003a:  ldarg.1 
+	  IL_003b:  ldc.i4.s 0x20
+	  IL_003d:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	  IL_0042:  pop 
+	  IL_0043:  nop 
+	  IL_0044:  ldarg.1 
+	  IL_0045:  ldloc.0 
+	  IL_0046:  callvirt instance string object::ToString()
+	  IL_004b:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_0050:  pop 
+	  IL_0051:  nop 
+	  IL_0052:  nop 
+	  IL_0053:  ldloc.1 
+	  IL_0054:  callvirt instance bool class NAnt.Core.Types.ArgumentEnumerator::MoveNext()
+	  IL_0059:  brtrue IL_000e
 
-	IL_004f:  ldarg.0 
-	IL_0050:  call instance string class NAnt.Core.Tasks.ExecTask::get_FileName()
-	IL_0055:  stloc.0 
-	IL_0056:  br IL_007d
+	  IL_005e:  leave IL_0077
 
-	IL_005b:  nop 
-	IL_005c:  ldarg.0 
-	IL_005d:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
-	IL_0062:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0067:  ldarg.0 
-	IL_0068:  call instance string class NAnt.Core.Tasks.ExecTask::get_FileName()
-	IL_006d:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0072:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
-	IL_0077:  stloc.0 
-	IL_0078:  br IL_007d
+	} // end .try 0
+	finally  { // 0
+	  IL_0063:  ldloc.1 
+	  IL_0064:  isinst [mscorlib]System.IDisposable
+	  IL_0069:  dup 
+	  IL_006a:  stloc.2 
+	  IL_006b:  brfalse IL_0076
 
-	IL_007d:  ldloc.0 
-	IL_007e:  ret 
-    } // end of method ExecTask::get_ProgramFileName
+	  IL_0070:  ldloc.2 
+	  IL_0071:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0076:  endfinally 
+	} // end handler 0
+	IL_0077:  ret 
+    } // end of method ArgumentCollection::ToString
 
-    // method line 813
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+	.property instance class NAnt.Core.Types.Argument Item (int32)
+	{
+		.get instance default class NAnt.Core.Types.Argument NAnt.Core.Types.ArgumentCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Core.Types.ArgumentCollection::set_Item (int32 index, class NAnt.Core.Types.Argument 'value') 
+	}
+	.property instance class NAnt.Core.Types.Argument Item (string)
+	{
+		.get instance default class NAnt.Core.Types.Argument NAnt.Core.Types.ArgumentCollection::get_Item (string 'value') 
+	}
+  } // end of class NAnt.Core.Types.ArgumentCollection
+}
+
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi beforefieldinit ArgumentEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+
+    // method line 715
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.ArgumentCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0xf3e8
-	// Code size 80 (0x50)
-	.maxstack 4
+        // Method begins at RVA 0xd944
+	// Code size 22 (0x16)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.Exception	V_0)
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.ArgumentEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method ArgumentEnumerator::.ctor
+
+    // method line 716
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Argument get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0xd968
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.Argument	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.Task::Initialize()
-	.try { // 0
-	  IL_0007:  nop 
-	  IL_0008:  ldarg.0 
-	  IL_0009:  call instance string class NAnt.Core.Tasks.ExecTask::get_FileName()
-	  IL_000e:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	  IL_0013:  brfalse IL_001a
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.ArgumentEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.Core.Types.Argument
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	  IL_0018:  nop 
-	  IL_0019:  nop 
-	  IL_001a:  nop 
-	  IL_001b:  leave IL_004f
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ArgumentEnumerator::get_Current
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0020:  stloc.0 
-	  IL_0021:  nop 
-	  IL_0022:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0027:  ldstr "NA1117"
-	  IL_002c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0031:  ldarg.0 
-	  IL_0032:  call instance string class NAnt.Core.Tasks.ExecTask::get_FileName()
-	  IL_0037:  ldarg.0 
-	  IL_0038:  callvirt instance string class NAnt.Core.Element::get_Name()
-	  IL_003d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0042:  ldarg.0 
-	  IL_0043:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0048:  ldloc.0 
-	  IL_0049:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_004e:  throw 
-	} // end handler 0
-	IL_004f:  ret 
-    } // end of method ExecTask::Initialize
+    // method line 717
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0xd990
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.ArgumentEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 814
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ArgumentEnumerator::System.Collections.IEnumerator.get_Current
+
+    // method line 718
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xf454
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xd9b0
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.ExecTask::_commandline
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.ArgumentEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExecTask::get_ProgramArguments
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ArgumentEnumerator::MoveNext
 
-    // method line 815
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
+    // method line 719
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0xf470
-	// Code size 39 (0x27)
+        // Method begins at RVA 0xd9d0
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_baseDirectory
-	IL_0007:  brtrue IL_0019
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.ArgumentEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0025
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ArgumentEnumerator::System.Collections.IEnumerator.MoveNext
 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_baseDirectory
-	IL_001f:  stloc.0 
-	IL_0020:  br IL_0025
+    // method line 720
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0xd9f0
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.ArgumentEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method ArgumentEnumerator::Reset
 
-	IL_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method ExecTask::get_BaseDirectory
+    // method line 721
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0xd9fe
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.ArgumentEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method ArgumentEnumerator::System.Collections.IEnumerator.Reset
 
-    // method line 816
-    .method public virtual hidebysig specialname 
-           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.Core.Types.ArgumentEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.Core.Types.Argument Current ()
+	{
+		.get instance default class NAnt.Core.Types.Argument NAnt.Core.Types.ArgumentEnumerator::get_Current () 
+	}
+  } // end of class NAnt.Core.Types.ArgumentEnumerator
+}
+
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi beforefieldinit XsltParameter
+  	extends NAnt.Core.Element
+  {
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
+		01 00 0D 78 73 6C 74 70 61 72 61 6D 65 74 65 72   // ...xsltparameter
+		00 00                                           ) // ..
+
+    .field  private  string _name
+    .field  private  string _namespaceUri
+    .field  private  string _value
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
+
+    // method line 722
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xda0c
+	// Code size 48 (0x30)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldsfld string [mscorlib]System.String::Empty
+	IL_0006:  stfld string NAnt.Core.Types.XsltParameter::_name
+	IL_000b:  ldarg.0 
+	IL_000c:  ldsfld string [mscorlib]System.String::Empty
+	IL_0011:  stfld string NAnt.Core.Types.XsltParameter::_namespaceUri
+	IL_0016:  ldarg.0 
+	IL_0017:  ldsfld string [mscorlib]System.String::Empty
+	IL_001c:  stfld string NAnt.Core.Types.XsltParameter::_value
+	IL_0021:  ldarg.0 
+	IL_0022:  ldc.i4.1 
+	IL_0023:  stfld bool NAnt.Core.Types.XsltParameter::_ifDefined
+	IL_0028:  ldarg.0 
+	IL_0029:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_002e:  nop 
+	IL_002f:  ret 
+    } // end of method XsltParameter::.ctor
+
+    // method line 723
+    .method public hidebysig specialname 
+           instance default string get_ParameterName ()  cil managed 
+    {
+        // Method begins at RVA 0xda40
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Types.XsltParameter::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method XsltParameter::get_ParameterName
+
+    // method line 724
+    .method public hidebysig specialname 
+           instance default void set_ParameterName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xf4a3
+        // Method begins at RVA 0xda5b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_baseDirectory
+	IL_0003:  stfld string NAnt.Core.Types.XsltParameter::_name
 	IL_0008:  ret 
-    } // end of method ExecTask::set_BaseDirectory
+    } // end of method XsltParameter::set_ParameterName
 
-    // method line 817
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Output ()  cil managed 
+    // method line 725
+    .method public hidebysig specialname 
+           instance default string get_NamespaceUri ()  cil managed 
     {
-        // Method begins at RVA 0xf4b0
+        // Method begins at RVA 0xda68
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.ExecTask::_output
+	IL_0002:  ldfld string NAnt.Core.Types.XsltParameter::_namespaceUri
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExecTask::get_Output
+    } // end of method XsltParameter::get_NamespaceUri
 
-    // method line 818
-    .method public virtual hidebysig specialname 
-           instance default void set_Output (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 726
+    .method public hidebysig specialname 
+           instance default void set_NamespaceUri (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xf4cb
+        // Method begins at RVA 0xda83
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.ExecTask::_output
+	IL_0003:  stfld string NAnt.Core.Types.XsltParameter::_namespaceUri
 	IL_0008:  ret 
-    } // end of method ExecTask::set_Output
+    } // end of method XsltParameter::set_NamespaceUri
 
-    // method line 819
-    .method public virtual hidebysig specialname 
-           instance default bool get_OutputAppend ()  cil managed 
+    // method line 727
+    .method public hidebysig specialname 
+           instance default string get_Value ()  cil managed 
     {
-        // Method begins at RVA 0xf4d8
+        // Method begins at RVA 0xda90
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.ExecTask::_outputAppend
+	IL_0002:  ldfld string NAnt.Core.Types.XsltParameter::_value
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExecTask::get_OutputAppend
+    } // end of method XsltParameter::get_Value
 
-    // method line 820
-    .method public virtual hidebysig specialname 
-           instance default void set_OutputAppend (bool 'value')  cil managed 
+    // method line 728
+    .method public hidebysig specialname 
+           instance default void set_Value (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xf4f3
+        // Method begins at RVA 0xdaab
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.ExecTask::_outputAppend
+	IL_0003:  stfld string NAnt.Core.Types.XsltParameter::_value
 	IL_0008:  ret 
-    } // end of method ExecTask::set_OutputAppend
+    } // end of method XsltParameter::set_Value
 
-    // method line 821
-    .method public virtual hidebysig specialname 
-           instance default bool get_Spawn ()  cil managed 
+    // method line 729
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0xf500
+        // Method begins at RVA 0xdab8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_Spawn()
+	IL_0002:  ldfld bool NAnt.Core.Types.XsltParameter::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExecTask::get_Spawn
+    } // end of method XsltParameter::get_IfDefined
 
-    // method line 822
-    .method public virtual hidebysig specialname 
-           instance default void set_Spawn (bool 'value')  cil managed 
+    // method line 730
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xf51b
+        // Method begins at RVA 0xdad3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::set_Spawn(bool)
+	IL_0003:  stfld bool NAnt.Core.Types.XsltParameter::_ifDefined
 	IL_0008:  ret 
-    } // end of method ExecTask::set_Spawn
+    } // end of method XsltParameter::set_IfDefined
 
-    // method line 823
+    // method line 731
     .method public hidebysig specialname 
-           instance default string get_ProcessIdProperty ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0xf528
+        // Method begins at RVA 0xdae0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.ExecTask::_processIdProperty
+	IL_0002:  ldfld bool NAnt.Core.Types.XsltParameter::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExecTask::get_ProcessIdProperty
+    } // end of method XsltParameter::get_UnlessDefined
 
-    // method line 824
+    // method line 732
     .method public hidebysig specialname 
-           instance default void set_ProcessIdProperty (string 'value')  cil managed 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xf543
+        // Method begins at RVA 0xdafb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.ExecTask::_processIdProperty
+	IL_0003:  stfld bool NAnt.Core.Types.XsltParameter::_unlessDefined
 	IL_0008:  ret 
-    } // end of method ExecTask::set_ProcessIdProperty
+    } // end of method XsltParameter::set_UnlessDefined
 
-    // method line 825
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+	.property instance string ParameterName ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.Core.Types.XsltParameter::get_ParameterName () 
+		.set instance default void NAnt.Core.Types.XsltParameter::set_ParameterName (string 'value') 
+	}
+	.property instance string NamespaceUri ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0C 6E 61 6D 65 73 70 61 63 65 75 72 69 00   // ...namespaceuri.
+		00                                              ) // .
+
+		.get instance default string NAnt.Core.Types.XsltParameter::get_NamespaceUri () 
+		.set instance default void NAnt.Core.Types.XsltParameter::set_NamespaceUri (string 'value') 
+	}
+	.property instance string Value ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 05 76 61 6C 75 65 01 00 54 02 08 52 65 71   // ...value..T..Req
+		75 69 72 65 64 01                               ) // uired.
+
+		.get instance default string NAnt.Core.Types.XsltParameter::get_Value () 
+		.set instance default void NAnt.Core.Types.XsltParameter::set_Value (string 'value') 
+	}
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.XsltParameter::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.XsltParameter::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.XsltParameter::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.XsltParameter::set_UnlessDefined (bool 'value') 
+	}
+  } // end of class NAnt.Core.Types.XsltParameter
+}
+
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi beforefieldinit DirSet
+  	extends NAnt.Core.Types.FileSet
+  	implements [mscorlib]System.ICloneable  {
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 06 64 69 72 73 65 74 00 00 ) // ...dirset..
+
+
+    // method line 733
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xf550
-	// Code size 117 (0x75)
-	.maxstack 4
+        // Method begins at RVA 0xee09
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method DirSet::.ctor
+
+    // method line 734
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.FileSet fs)  cil managed 
+    {
+        // Method begins at RVA 0xee12
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class NAnt.Core.Types.FileSet::'.ctor'(class NAnt.Core.Types.FileSet)
+	IL_0007:  nop 
+	IL_0008:  ret 
+    } // end of method DirSet::.ctor
+
+  } // end of class NAnt.Core.Types.DirSet
+}
+
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi serializable beforefieldinit OptionCollection
+  	extends [mscorlib]System.Collections.CollectionBase
+  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+
+
+    // method line 735
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xee1c
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method OptionCollection::.ctor
+
+    // method line 736
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.OptionCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0xee25
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Types.OptionCollection::AddRange(class NAnt.Core.Types.OptionCollection)
+	IL_000e:  ret 
+    } // end of method OptionCollection::.ctor
+
+    // method line 737
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.Option[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0xee35
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Types.OptionCollection::AddRange(class NAnt.Core.Types.Option[])
+	IL_000e:  ret 
+    } // end of method OptionCollection::.ctor
+
+    // method line 738
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Option get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0xee48
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
-		int32	V_0,
-		int32	V_1)
+		class NAnt.Core.Types.Option	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance string class NAnt.Core.Tasks.ExecTask::get_ResultProperty()
-	IL_000d:  brfalse IL_0038
-
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0019:  ldarg.0 
-	IL_001a:  call instance string class NAnt.Core.Tasks.ExecTask::get_ResultProperty()
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance int32 class NAnt.Core.Tasks.ExternalProgramBase::get_ExitCode()
-	IL_0025:  stloc.0 
-	IL_0026:  ldloca.s 0
-	IL_0028:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_002d:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
-	IL_0032:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0037:  nop 
-	IL_0038:  ldarg.0 
-	IL_0039:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_Spawn()
-	IL_003e:  brfalse IL_0074
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.Core.Types.Option
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_0043:  ldarg.0 
-	IL_0044:  call instance string class NAnt.Core.Tasks.ExecTask::get_ProcessIdProperty()
-	IL_0049:  brfalse IL_0074
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method OptionCollection::get_Item
 
-	IL_004e:  nop 
-	IL_004f:  ldarg.0 
-	IL_0050:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0055:  ldarg.0 
-	IL_0056:  call instance string class NAnt.Core.Tasks.ExecTask::get_ProcessIdProperty()
-	IL_005b:  ldarg.0 
-	IL_005c:  call instance int32 class NAnt.Core.Tasks.ExternalProgramBase::get_ProcessId()
-	IL_0061:  stloc.1 
-	IL_0062:  ldloca.s 1
-	IL_0064:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0069:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
-	IL_006e:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0073:  nop 
-	IL_0074:  ret 
-    } // end of method ExecTask::ExecuteTask
+    // method line 739
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.Option 'value')  cil managed 
+    {
+        // Method begins at RVA 0xee6e
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method OptionCollection::set_Item
 
-    // method line 826
-    .method family virtual hidebysig 
-           instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
+    // method line 740
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Option get_Item (string name)  cil managed 
     {
-        // Method begins at RVA 0xf5d4
-	// Code size 371 (0x173)
-	.maxstack 3
+        // Method begins at RVA 0xee80
+	// Code size 111 (0x6f)
+	.maxstack 2
 	.locals init (
 		class NAnt.Core.Types.Option	V_0,
-		class NAnt.Core.Types.OptionEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2,
-		class NAnt.Core.Types.EnvironmentVariable	V_3,
-		class NAnt.Core.Types.EnvironmentVariableEnumerator	V_4,
-		class [mscorlib]System.IDisposable	V_5)
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.Types.Option	V_2,
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::PrepareProcess(class [System]System.Diagnostics.Process)
-	IL_0008:  ldarg.1 
-	IL_0009:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.ExecTask::get_WorkingDirectory()
-	IL_0014:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0019:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
-	IL_001e:  nop 
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance class NAnt.Core.Types.EnvironmentSet class NAnt.Core.Tasks.ExecTask::get_EnvironmentSet()
-	IL_0025:  callvirt instance class NAnt.Core.Types.OptionCollection class NAnt.Core.Types.EnvironmentSet::get_Options()
-	IL_002a:  callvirt instance class NAnt.Core.Types.OptionEnumerator class NAnt.Core.Types.OptionCollection::GetEnumerator()
-	IL_002f:  stloc.1 
-	.try { // 0
-	  IL_0030:  br IL_00a1
-
-	  IL_0035:  ldloc.1 
-	  IL_0036:  callvirt instance class NAnt.Core.Types.Option class NAnt.Core.Types.OptionEnumerator::get_Current()
-	  IL_003b:  stloc.0 
-	  IL_003c:  nop 
-	  IL_003d:  ldloc.0 
-	  IL_003e:  callvirt instance bool class NAnt.Core.Types.Option::get_IfDefined()
-	  IL_0043:  brfalse IL_00a0
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0066
 
-	  IL_0048:  ldloc.0 
-	  IL_0049:  callvirt instance bool class NAnt.Core.Types.Option::get_UnlessDefined()
-	  IL_004e:  brtrue IL_00a0
+	IL_0007:  nop 
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0014:  stloc.1 
+	.try { // 0
+	  IL_0015:  br IL_0041
 
-	  IL_0053:  nop 
-	  IL_0054:  ldloc.0 
-	  IL_0055:  callvirt instance string class NAnt.Core.Types.Option::get_Value()
-	  IL_005a:  brtrue IL_0081
+	  IL_001a:  ldloc.1 
+	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0020:  castclass NAnt.Core.Types.Option
+	  IL_0025:  stloc.0 
+	  IL_0026:  nop 
+	  IL_0027:  ldarg.1 
+	  IL_0028:  ldloc.0 
+	  IL_0029:  callvirt instance string class NAnt.Core.Types.Option::get_OptionName()
+	  IL_002e:  callvirt instance bool string::Equals(string)
+	  IL_0033:  brfalse IL_0040
 
-	  IL_005f:  nop 
-	  IL_0060:  ldarg.1 
-	  IL_0061:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	  IL_0066:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
-	  IL_006b:  ldloc.0 
-	  IL_006c:  callvirt instance string class NAnt.Core.Types.Option::get_OptionName()
-	  IL_0071:  ldstr ""
-	  IL_0076:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::set_Item(string, string)
-	  IL_007b:  nop 
-	  IL_007c:  br IL_009f
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  stloc.2 
+	  IL_003b:  leave IL_006d
 
-	  IL_0081:  nop 
-	  IL_0082:  ldarg.1 
-	  IL_0083:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	  IL_0088:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
-	  IL_008d:  ldloc.0 
-	  IL_008e:  callvirt instance string class NAnt.Core.Types.Option::get_OptionName()
-	  IL_0093:  ldloc.0 
-	  IL_0094:  callvirt instance string class NAnt.Core.Types.Option::get_Value()
-	  IL_0099:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::set_Item(string, string)
-	  IL_009e:  nop 
-	  IL_009f:  nop 
-	  IL_00a0:  nop 
-	  IL_00a1:  ldloc.1 
-	  IL_00a2:  callvirt instance bool class NAnt.Core.Types.OptionEnumerator::MoveNext()
-	  IL_00a7:  brtrue IL_0035
+	  IL_0040:  nop 
+	  IL_0041:  ldloc.1 
+	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0047:  brtrue IL_001a
 
-	  IL_00ac:  leave IL_00c5
+	  IL_004c:  leave IL_0065
 
 	} // end .try 0
 	finally  { // 0
-	  IL_00b1:  ldloc.1 
-	  IL_00b2:  isinst [mscorlib]System.IDisposable
-	  IL_00b7:  dup 
-	  IL_00b8:  stloc.2 
-	  IL_00b9:  brfalse IL_00c4
+	  IL_0051:  ldloc.1 
+	  IL_0052:  isinst [mscorlib]System.IDisposable
+	  IL_0057:  dup 
+	  IL_0058:  stloc.3 
+	  IL_0059:  brfalse IL_0064
 
-	  IL_00be:  ldloc.2 
-	  IL_00bf:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00c4:  endfinally 
+	  IL_005e:  ldloc.3 
+	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0064:  endfinally 
 	} // end handler 0
-	IL_00c5:  nop 
-	IL_00c6:  ldarg.0 
-	IL_00c7:  call instance class NAnt.Core.Types.EnvironmentSet class NAnt.Core.Tasks.ExecTask::get_EnvironmentSet()
-	IL_00cc:  callvirt instance class NAnt.Core.Types.EnvironmentVariableCollection class NAnt.Core.Types.EnvironmentSet::get_EnvironmentVariables()
-	IL_00d1:  callvirt instance class NAnt.Core.Types.EnvironmentVariableEnumerator class NAnt.Core.Types.EnvironmentVariableCollection::GetEnumerator()
-	IL_00d6:  stloc.s 4
-	.try { // 1
-	  IL_00d8:  br IL_014a
+	IL_0065:  nop 
+	IL_0066:  ldnull 
+	IL_0067:  stloc.2 
+	IL_0068:  br IL_006d
 
-	  IL_00dd:  ldloc.s 4
-	  IL_00df:  callvirt instance class NAnt.Core.Types.EnvironmentVariable class NAnt.Core.Types.EnvironmentVariableEnumerator::get_Current()
-	  IL_00e4:  stloc.3 
-	  IL_00e5:  nop 
-	  IL_00e6:  ldloc.3 
-	  IL_00e7:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_IfDefined()
-	  IL_00ec:  brfalse IL_0149
+	IL_006d:  ldloc.2 
+	IL_006e:  ret 
+    } // end of method OptionCollection::get_Item
 
-	  IL_00f1:  ldloc.3 
-	  IL_00f2:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_UnlessDefined()
-	  IL_00f7:  brtrue IL_0149
+    // method line 741
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.Types.Option item)  cil managed 
+    {
+        // Method begins at RVA 0xef0c
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	  IL_00fc:  nop 
-	  IL_00fd:  ldloc.3 
-	  IL_00fe:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_Value()
-	  IL_0103:  brtrue IL_012a
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method OptionCollection::Add
 
-	  IL_0108:  nop 
-	  IL_0109:  ldarg.1 
-	  IL_010a:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	  IL_010f:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
-	  IL_0114:  ldloc.3 
-	  IL_0115:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_VariableName()
-	  IL_011a:  ldstr ""
-	  IL_011f:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::set_Item(string, string)
-	  IL_0124:  nop 
-	  IL_0125:  br IL_0148
+    // method line 742
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.Option[] items)  cil managed 
+    {
+        // Method begins at RVA 0xef30
+	// Code size 34 (0x22)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
 
-	  IL_012a:  nop 
-	  IL_012b:  ldarg.1 
-	  IL_012c:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	  IL_0131:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
-	  IL_0136:  ldloc.3 
-	  IL_0137:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_VariableName()
-	  IL_013c:  ldloc.3 
-	  IL_013d:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_Value()
-	  IL_0142:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::set_Item(string, string)
-	  IL_0147:  nop 
-	  IL_0148:  nop 
-	  IL_0149:  nop 
-	  IL_014a:  ldloc.s 4
-	  IL_014c:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariableEnumerator::MoveNext()
-	  IL_0151:  brtrue IL_00dd
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.Core.Types.OptionCollection::Add(class NAnt.Core.Types.Option)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
 
-	  IL_0156:  leave IL_0172
+	IL_0021:  ret 
+    } // end of method OptionCollection::AddRange
 
-	} // end .try 1
-	finally  { // 1
-	  IL_015b:  ldloc.s 4
-	  IL_015d:  isinst [mscorlib]System.IDisposable
-	  IL_0162:  dup 
-	  IL_0163:  stloc.s 5
-	  IL_0165:  brfalse IL_0171
+    // method line 743
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.OptionCollection items)  cil managed 
+    {
+        // Method begins at RVA 0xef60
+	// Code size 41 (0x29)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
 
-	  IL_016a:  ldloc.s 5
-	  IL_016c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0171:  endfinally 
-	} // end handler 1
-	IL_0172:  ret 
-    } // end of method ExecTask::PrepareProcess
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.Core.Types.Option class NAnt.Core.Types.OptionCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Core.Types.OptionCollection::Add(class NAnt.Core.Types.Option)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
 
-	.property instance string FileName ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 70 72 6F 67 72 61 6D 01 00 54 02 08 52   // ...program..T..R
-		65 71 75 69 72 65 64 01                         ) // equired.
+	IL_0028:  ret 
+    } // end of method OptionCollection::AddRange
 
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+    // method line 744
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.Types.Option item)  cil managed 
+    {
+        // Method begins at RVA 0xef98
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-		.get instance default string NAnt.Core.Tasks.ExecTask::get_FileName () 
-		.set instance default void NAnt.Core.Tasks.ExecTask::set_FileName (string 'value') 
-	}
-	.property instance string CommandLineArguments ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 63 6F 6D 6D 61 6E 64 6C 69 6E 65 00 00 ) // ...commandline..
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method OptionCollection::Contains
 
-		.get instance default string NAnt.Core.Tasks.ExecTask::get_CommandLineArguments () 
-		.set instance default void NAnt.Core.Tasks.ExecTask::set_CommandLineArguments (string 'value') 
-	}
-	.property instance class NAnt.Core.Types.EnvironmentSet EnvironmentSet ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0B 65 6E 76 69 72 6F 6E 6D 65 6E 74 00 00 ) // ...environment..
+    // method line 745
+    .method public hidebysig 
+           instance default bool Contains (string taskName)  cil managed 
+    {
+        // Method begins at RVA 0xefbc
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance class NAnt.Core.Types.Option class NAnt.Core.Types.OptionCollection::get_Item(string)
+	IL_0008:  ldnull 
+	IL_0009:  ceq 
+	IL_000b:  ldc.i4.0 
+	IL_000c:  ceq 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0014
 
-		.get instance default class NAnt.Core.Types.EnvironmentSet NAnt.Core.Tasks.ExecTask::get_EnvironmentSet () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo WorkingDirectory ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 77 6F 72 6B 69 6E 67 64 69 72 00 00 ) // ...workingdir..
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method OptionCollection::Contains
 
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::get_WorkingDirectory () 
-		.set instance default void NAnt.Core.Tasks.ExecTask::set_WorkingDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance string ResultProperty ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0E 72 65 73 75 6C 74 70 72 6F 70 65 72 74   // ...resultpropert
-		79 00 00                                        ) // y..
+    // method line 746
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.Option[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0xefde
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method OptionCollection::CopyTo
 
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+    // method line 747
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.Types.Option item)  cil managed 
+    {
+        // Method begins at RVA 0xeff0
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-		.get instance default string NAnt.Core.Tasks.ExecTask::get_ResultProperty () 
-		.set instance default void NAnt.Core.Tasks.ExecTask::set_ResultProperty (string 'value') 
-	}
-	.property instance bool UseRuntimeEngine ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 10 75 73 65 72 75 6E 74 69 6D 65 65 6E 67   // ...useruntimeeng
-		69 6E 65 00 00                                  ) // ine..
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method OptionCollection::IndexOf
 
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 37 55 73 65 20 74 68 65 20 6D 61 6E 61 67   // ..7Use the manag
-		65 64 20 61 74 74 72 69 62 75 74 65 20 61 6E 64   // ed attribute and
-		20 4D 61 6E 61 67 65 64 20 70 72 6F 70 65 72 74   //  Managed propert
-		79 20 69 6E 73 74 65 61 64 2E 00 00 00          ) // y instead....
+    // method line 748
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.Types.Option item)  cil managed 
+    {
+        // Method begins at RVA 0xf011
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method OptionCollection::Insert
 
-		.get instance default bool NAnt.Core.Tasks.ExecTask::get_UseRuntimeEngine () 
-		.set instance default void NAnt.Core.Tasks.ExecTask::set_UseRuntimeEngine (bool 'value') 
-	}
-	.property instance valuetype NAnt.Core.Types.ManagedExecution Managed ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6D 61 6E 61 67 65 64 00 00 ) // ...managed..
+    // method line 749
+    .method public hidebysig 
+           instance default class NAnt.Core.Types.OptionEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0xf024
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.OptionEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.Core.Types.OptionEnumerator::'.ctor'(class NAnt.Core.Types.OptionCollection)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-		.get instance default valuetype NAnt.Core.Types.ManagedExecution NAnt.Core.Tasks.ExecTask::get_Managed () 
-		.set instance default void NAnt.Core.Tasks.ExecTask::set_Managed (valuetype NAnt.Core.Types.ManagedExecution 'value') 
-	}
-	.property instance string ProgramFileName ()
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method OptionCollection::GetEnumerator
+
+    // method line 750
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.Types.Option item)  cil managed 
+    {
+        // Method begins at RVA 0xf03f
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
+	IL_000d:  ret 
+    } // end of method OptionCollection::Remove
+
+	.property instance class NAnt.Core.Types.Option Item (int32)
 	{
-		.get instance default string NAnt.Core.Tasks.ExecTask::get_ProgramFileName () 
+		.get instance default class NAnt.Core.Types.Option NAnt.Core.Types.OptionCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Core.Types.OptionCollection::set_Item (int32 index, class NAnt.Core.Types.Option 'value') 
 	}
-	.property instance string ProgramArguments ()
+	.property instance class NAnt.Core.Types.Option Item (string)
 	{
-		.get instance default string NAnt.Core.Tasks.ExecTask::get_ProgramArguments () 
+		.get instance default class NAnt.Core.Types.Option NAnt.Core.Types.OptionCollection::get_Item (string name) 
 	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 62 61 73 65 64 69 72 00 00 ) // ...basedir..
+  } // end of class NAnt.Core.Types.OptionCollection
+}
 
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::get_BaseDirectory () 
-		.set instance default void NAnt.Core.Tasks.ExecTask::set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo Output ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 6F 75 74 70 75 74 00 00 ) // ...output..
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi beforefieldinit OptionEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.ExecTask::get_Output () 
-		.set instance default void NAnt.Core.Tasks.ExecTask::set_Output (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance bool OutputAppend ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 61 70 70 65 6E 64 00 00 ) // ...append..
+    // method line 751
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.OptionCollection arguments)  cil managed 
+    {
+        // Method begins at RVA 0xf050
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.OptionEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method OptionEnumerator::.ctor
 
-		.get instance default bool NAnt.Core.Tasks.ExecTask::get_OutputAppend () 
-		.set instance default void NAnt.Core.Tasks.ExecTask::set_OutputAppend (bool 'value') 
-	}
-	.property instance bool Spawn ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 73 70 61 77 6E 00 00 ) // ...spawn..
+    // method line 752
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Option get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0xf074
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.Option	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.OptionEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.Core.Types.Option
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-		.get instance default bool NAnt.Core.Tasks.ExecTask::get_Spawn () 
-		.set instance default void NAnt.Core.Tasks.ExecTask::set_Spawn (bool 'value') 
-	}
-	.property instance string ProcessIdProperty ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 70 69 64 70 72 6F 70 65 72 74 79 00 00 ) // ...pidproperty..
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method OptionEnumerator::get_Current
 
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+    // method line 753
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0xf09c
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.OptionEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-		.get instance default string NAnt.Core.Tasks.ExecTask::get_ProcessIdProperty () 
-		.set instance default void NAnt.Core.Tasks.ExecTask::set_ProcessIdProperty (string 'value') 
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method OptionEnumerator::System.Collections.IEnumerator.get_Current
+
+    // method line 754
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0xf0bc
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.OptionEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method OptionEnumerator::MoveNext
+
+    // method line 755
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0xf0dc
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.OptionEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method OptionEnumerator::System.Collections.IEnumerator.MoveNext
+
+    // method line 756
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0xf0fc
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.OptionEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method OptionEnumerator::Reset
+
+    // method line 757
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0xf10a
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.OptionEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method OptionEnumerator::System.Collections.IEnumerator.Reset
+
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.Core.Types.OptionEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-  } // end of class NAnt.Core.Tasks.ExecTask
+	.property instance class NAnt.Core.Types.Option Current ()
+	{
+		.get instance default class NAnt.Core.Types.Option NAnt.Core.Types.OptionEnumerator::get_Current () 
+	}
+  } // end of class NAnt.Core.Types.OptionEnumerator
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit LoopTask
-  	extends NAnt.Core.TaskContainer
+  .class public auto ansi serializable beforefieldinit EnvironmentVariable
+  	extends NAnt.Core.Element
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 66 6F 72 65 61 63 68 00 00 ) // ...foreach..
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 03 65 6E 76 00 00 ) // ...env..
 
-    .field  private  string _prop
-    .field  private  string[] _props
-    .field  private  valuetype NAnt.Core.Tasks.LoopTask/LoopItem _loopItem
-    .field  private  valuetype NAnt.Core.Tasks.LoopTask/LoopTrim _loopTrim
-    .field  private  string _inAttribute
-    .field  private  string _delim
-    .field  private  class NAnt.Core.Tasks.InElement _inElement
-    .field  private  class NAnt.Core.TaskContainer _doStuff
+    .field  private  string _name
+    .field  private  string _value
+    .field  private  string _literalValue
+    .field  private  class [mscorlib]System.IO.FileInfo _file
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _directory
+    .field  private  class NAnt.Core.Types.PathSet _path
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 827
+    // method line 758
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name, string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xf118
+	// Code size 29 (0x1d)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.EnvironmentVariable::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  stfld string NAnt.Core.Types.EnvironmentVariable::_name
+	IL_0015:  ldarg.0 
+	IL_0016:  ldarg.2 
+	IL_0017:  stfld string NAnt.Core.Types.EnvironmentVariable::_value
+	IL_001c:  ret 
+    } // end of method EnvironmentVariable::.ctor
+
+    // method line 759
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xfaa3
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xf136
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld valuetype NAnt.Core.Tasks.LoopTask/LoopTrim NAnt.Core.Tasks.LoopTask::_loopTrim
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.EnvironmentVariable::_ifDefined
 	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.TaskContainer::'.ctor'()
-	IL_000d:  ret 
-    } // end of method LoopTask::.ctor
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method EnvironmentVariable::.ctor
 
-    // method line 828
+    // method line 760
     .method public hidebysig specialname 
-           instance default string get_Property ()  cil managed 
+           instance default string get_VariableName ()  cil managed 
     {
-        // Method begins at RVA 0xfab4
+        // Method begins at RVA 0xf148
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.LoopTask::_prop
+	IL_0002:  ldfld string NAnt.Core.Types.EnvironmentVariable::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LoopTask::get_Property
+    } // end of method EnvironmentVariable::get_VariableName
 
-    // method line 829
+    // method line 761
     .method public hidebysig specialname 
-           instance default void set_Property (string 'value')  cil managed 
+           instance default void set_VariableName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xfad0
-	// Code size 104 (0x68)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		string[]	V_1,
-		int32	V_2)
+        // Method begins at RVA 0xf163
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.LoopTask::_prop
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldfld string NAnt.Core.Tasks.LoopTask::_prop
-	IL_000f:  ldc.i4.s 0x2c
-	IL_0011:  ldc.i4.0 
-	IL_0012:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	IL_0017:  stfld string[] NAnt.Core.Tasks.LoopTask::_props
-	IL_001c:  nop 
-	IL_001d:  ldarg.0 
-	IL_001e:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
-	IL_0023:  stloc.1 
-	IL_0024:  ldc.i4.0 
-	IL_0025:  stloc.2 
-	IL_0026:  br IL_005e
-
-	IL_002b:  ldloc.1 
-	IL_002c:  ldloc.2 
-	IL_002d:  ldelem.ref 
-	IL_002e:  stloc.0 
-	IL_002f:  nop 
-	IL_0030:  ldarg.0 
-	IL_0031:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0036:  ldloc.0 
-	IL_0037:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsReadOnlyProperty(string)
-	IL_003c:  brfalse IL_0059
-
-	IL_0041:  nop 
-	IL_0042:  ldstr "Property is readonly! :"
-	IL_0047:  ldloc.0 
-	IL_0048:  call string string::Concat(string, string)
-	IL_004d:  ldarg.0 
-	IL_004e:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0053:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0058:  throw 
-	IL_0059:  nop 
-	IL_005a:  ldloc.2 
-	IL_005b:  ldc.i4.1 
-	IL_005c:  add 
-	IL_005d:  stloc.2 
-	IL_005e:  ldloc.2 
-	IL_005f:  ldloc.1 
-	IL_0060:  ldlen 
-	IL_0061:  conv.i4 
-	IL_0062:  blt IL_002b
-
-	IL_0067:  ret 
-    } // end of method LoopTask::set_Property
+	IL_0003:  stfld string NAnt.Core.Types.EnvironmentVariable::_name
+	IL_0008:  ret 
+    } // end of method EnvironmentVariable::set_VariableName
 
-    // method line 830
+    // method line 762
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Tasks.LoopTask/LoopItem get_ItemType ()  cil managed 
+           instance default string get_LiteralValue ()  cil managed 
     {
-        // Method begins at RVA 0xfb44
+        // Method begins at RVA 0xf170
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.Tasks.LoopTask/LoopItem	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Tasks.LoopTask/LoopItem NAnt.Core.Tasks.LoopTask::_loopItem
+	IL_0002:  ldfld string NAnt.Core.Types.EnvironmentVariable::_literalValue
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LoopTask::get_ItemType
+    } // end of method EnvironmentVariable::get_LiteralValue
 
-    // method line 831
+    // method line 763
     .method public hidebysig specialname 
-           instance default void set_ItemType (valuetype NAnt.Core.Tasks.LoopTask/LoopItem 'value')  cil managed 
+           instance default void set_LiteralValue (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xfb5f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xf18b
+	// Code size 16 (0x10)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.Core.Tasks.LoopTask/LoopItem NAnt.Core.Tasks.LoopTask::_loopItem
-	IL_0008:  ret 
-    } // end of method LoopTask::set_ItemType
+	IL_0003:  stfld string NAnt.Core.Types.EnvironmentVariable::_value
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  stfld string NAnt.Core.Types.EnvironmentVariable::_literalValue
+	IL_000f:  ret 
+    } // end of method EnvironmentVariable::set_LiteralValue
 
-    // method line 832
+    // method line 764
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Tasks.LoopTask/LoopTrim get_TrimType ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0xfb6c
+        // Method begins at RVA 0xf19c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.Tasks.LoopTask/LoopTrim	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Tasks.LoopTask/LoopTrim NAnt.Core.Tasks.LoopTask::_loopTrim
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.EnvironmentVariable::_file
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LoopTask::get_TrimType
+    } // end of method EnvironmentVariable::get_File
 
-    // method line 833
+    // method line 765
     .method public hidebysig specialname 
-           instance default void set_TrimType (valuetype NAnt.Core.Tasks.LoopTask/LoopTrim 'value')  cil managed 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xfb87
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xf1b7
+	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.Core.Tasks.LoopTask/LoopTrim NAnt.Core.Tasks.LoopTask::_loopTrim
-	IL_0008:  ret 
-    } // end of method LoopTask::set_TrimType
+	IL_0003:  callvirt instance string object::ToString()
+	IL_0008:  stfld string NAnt.Core.Types.EnvironmentVariable::_value
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.1 
+	IL_000f:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.EnvironmentVariable::_file
+	IL_0014:  ret 
+    } // end of method EnvironmentVariable::set_File
 
-    // method line 834
+    // method line 766
     .method public hidebysig specialname 
-           instance default string get_Source ()  cil managed 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
     {
-        // Method begins at RVA 0xfb94
+        // Method begins at RVA 0xf1d0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.LoopTask::_inAttribute
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.EnvironmentVariable::_directory
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LoopTask::get_Source
+    } // end of method EnvironmentVariable::get_Directory
 
-    // method line 835
+    // method line 767
     .method public hidebysig specialname 
-           instance default void set_Source (string 'value')  cil managed 
+           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xfbaf
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xf1eb
+	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.LoopTask::_inAttribute
-	IL_000d:  ret 
-    } // end of method LoopTask::set_Source
+	IL_0003:  callvirt instance string object::ToString()
+	IL_0008:  stfld string NAnt.Core.Types.EnvironmentVariable::_value
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.1 
+	IL_000f:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.EnvironmentVariable::_directory
+	IL_0014:  ret 
+    } // end of method EnvironmentVariable::set_Directory
 
-    // method line 836
+    // method line 768
     .method public hidebysig specialname 
-           instance default string get_Delimiter ()  cil managed 
+           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
     {
-        // Method begins at RVA 0xfbc0
+        // Method begins at RVA 0xf204
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.PathSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.LoopTask::_delim
+	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.EnvironmentVariable::_path
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LoopTask::get_Delimiter
+    } // end of method EnvironmentVariable::get_Path
 
-    // method line 837
+    // method line 769
     .method public hidebysig specialname 
-           instance default void set_Delimiter (string 'value')  cil managed 
+           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xfbdb
-	// Code size 42 (0x2a)
+        // Method begins at RVA 0xf21f
+	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0012
-
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 string::get_Length()
-	IL_000d:  brtrue IL_0020
-
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldnull 
-	IL_0015:  stfld string NAnt.Core.Tasks.LoopTask::_delim
-	IL_001a:  nop 
-	IL_001b:  br IL_0029
-
-	IL_0020:  nop 
-	IL_0021:  ldarg.0 
-	IL_0022:  ldarg.1 
-	IL_0023:  stfld string NAnt.Core.Tasks.LoopTask::_delim
-	IL_0028:  nop 
-	IL_0029:  ret 
-    } // end of method LoopTask::set_Delimiter
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance string object::ToString()
+	IL_0008:  stfld string NAnt.Core.Types.EnvironmentVariable::_value
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.1 
+	IL_000f:  stfld class NAnt.Core.Types.PathSet NAnt.Core.Types.EnvironmentVariable::_path
+	IL_0014:  ret 
+    } // end of method EnvironmentVariable::set_Path
 
-    // method line 838
+    // method line 770
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Tasks.InElement get_InElement ()  cil managed 
+           instance default class NAnt.Core.Types.PathSet get_PathSet ()  cil managed 
     {
-        // Method begins at RVA 0xfc08
+        // Method begins at RVA 0xf238
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Tasks.InElement	V_0)
+		class NAnt.Core.Types.PathSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Tasks.InElement NAnt.Core.Tasks.LoopTask::_inElement
+	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.EnvironmentVariable::_path
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LoopTask::get_InElement
+    } // end of method EnvironmentVariable::get_PathSet
 
-    // method line 839
+    // method line 771
     .method public hidebysig specialname 
-           instance default void set_InElement (class NAnt.Core.Tasks.InElement 'value')  cil managed 
+           instance default void set_PathSet (class NAnt.Core.Types.PathSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xfc23
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xf253
+	// Code size 50 (0x32)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Tasks.InElement NAnt.Core.Tasks.LoopTask::_inElement
-	IL_0008:  ret 
-    } // end of method LoopTask::set_InElement
+	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.EnvironmentVariable::_path
+	IL_0007:  brfalse IL_001e
 
-    // method line 840
+	IL_000c:  nop 
+	IL_000d:  ldstr "Either set the path using the \"path\" attribute or the <path> element. You cannot set both."
+	IL_0012:  ldarg.0 
+	IL_0013:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_001d:  throw 
+	IL_001e:  ldarg.0 
+	IL_001f:  ldarg.1 
+	IL_0020:  callvirt instance string object::ToString()
+	IL_0025:  stfld string NAnt.Core.Types.EnvironmentVariable::_value
+	IL_002a:  ldarg.0 
+	IL_002b:  ldarg.1 
+	IL_002c:  stfld class NAnt.Core.Types.PathSet NAnt.Core.Types.EnvironmentVariable::_path
+	IL_0031:  ret 
+    } // end of method EnvironmentVariable::set_PathSet
+
+    // method line 772
     .method public hidebysig specialname 
-           instance default class NAnt.Core.TaskContainer get_StuffToDo ()  cil managed 
+           instance default string get_Value ()  cil managed 
     {
-        // Method begins at RVA 0xfc30
+        // Method begins at RVA 0xf288
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.TaskContainer	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.TaskContainer NAnt.Core.Tasks.LoopTask::_doStuff
+	IL_0002:  ldfld string NAnt.Core.Types.EnvironmentVariable::_value
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LoopTask::get_StuffToDo
+    } // end of method EnvironmentVariable::get_Value
 
-    // method line 841
+    // method line 773
     .method public hidebysig specialname 
-           instance default void set_StuffToDo (class NAnt.Core.TaskContainer 'value')  cil managed 
-    {
-        // Method begins at RVA 0xfc4b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.TaskContainer NAnt.Core.Tasks.LoopTask::_doStuff
-	IL_0008:  ret 
-    } // end of method LoopTask::set_StuffToDo
-
-    // method line 842
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0xfc58
-	// Code size 1480 (0x5c8)
-	.maxstack 5
+        // Method begins at RVA 0xf2a4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string[]	V_0,
-		int32	V_1,
-		valuetype NAnt.Core.Tasks.LoopTask/LoopItem	V_2,
-		class [mscorlib]System.IO.DirectoryInfo	V_3,
-		class [mscorlib]System.IO.FileInfo[]	V_4,
-		class [mscorlib]System.IO.FileInfo	V_5,
-		class [mscorlib]System.IO.FileInfo[]	V_6,
-		int32	V_7,
-		string	V_8,
-		class [System]System.Collections.Specialized.StringEnumerator	V_9,
-		class [mscorlib]System.IDisposable	V_10,
-		class [mscorlib]System.IO.DirectoryInfo	V_11,
-		class [mscorlib]System.IO.DirectoryInfo[]	V_12,
-		class [mscorlib]System.IO.DirectoryInfo	V_13,
-		class [mscorlib]System.IO.DirectoryInfo[]	V_14,
-		int32	V_15,
-		string	V_16,
-		class [System]System.Collections.Specialized.StringEnumerator	V_17,
-		class [mscorlib]System.IDisposable	V_18,
-		string	V_19,
-		class [System]System.Collections.Specialized.StringEnumerator	V_20,
-		class [mscorlib]System.IDisposable	V_21,
-		string[]	V_22,
-		string	V_23,
-		string[]	V_24,
-		int32	V_25,
-		int32	V_26)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
-	IL_0007:  ldlen 
-	IL_0008:  conv.i4 
-	IL_0009:  newarr [mscorlib]System.String
-	IL_000e:  stloc.0 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  stloc.1 
-	IL_0011:  br IL_0032
-
-	IL_0016:  nop 
-	IL_0017:  ldloc.0 
-	IL_0018:  ldloc.1 
-	IL_0019:  ldarg.0 
-	IL_001a:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_001f:  ldarg.0 
-	IL_0020:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
-	IL_0025:  ldloc.1 
-	IL_0026:  ldelem.ref 
-	IL_0027:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
-	IL_002c:  stelem.ref 
-	IL_002d:  nop 
-	IL_002e:  ldloc.1 
-	IL_002f:  ldc.i4.1 
-	IL_0030:  add 
-	IL_0031:  stloc.1 
-	IL_0032:  ldloc.1 
-	IL_0033:  ldloc.0 
-	IL_0034:  ldlen 
-	IL_0035:  conv.i4 
-	IL_0036:  blt IL_0016
-
-	.try { // 3
-	  IL_003b:  nop 
-	  IL_003c:  ldarg.0 
-	  IL_003d:  call instance valuetype NAnt.Core.Tasks.LoopTask/LoopItem class NAnt.Core.Tasks.LoopTask::get_ItemType()
-	  IL_0042:  stloc.2 
-	  IL_0043:  ldloc.2 
-	  IL_0044:  ldc.i4.1 
-	  IL_0045:  sub 
-	  IL_0046:  switch (
-	    IL_0060,
-	    IL_01f7,
-	    IL_04e4,
-	    IL_0390)
-	  IL_005b:  br IL_058c
-
-	  IL_0060:  ldarg.0 
-	  IL_0061:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_0066:  call bool string::IsNullOrEmpty(string)
-	  IL_006b:  brfalse IL_009c
-
-	  IL_0070:  ldarg.0 
-	  IL_0071:  call instance class NAnt.Core.Tasks.InElement class NAnt.Core.Tasks.LoopTask::get_InElement()
-	  IL_0076:  brtrue IL_009c
-
-	  IL_007b:  nop 
-	  IL_007c:  ldstr "Invalid foreach"
-	  IL_0081:  ldarg.0 
-	  IL_0082:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0087:  ldstr "Nothing to work with...!"
-	  IL_008c:  ldstr "in"
-	  IL_0091:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string, string)
-	  IL_0096:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_009b:  throw 
-	  IL_009c:  ldarg.0 
-	  IL_009d:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_00a2:  call bool string::IsNullOrEmpty(string)
-	  IL_00a7:  brtrue IL_0172
-
-	  IL_00ac:  nop 
-	  IL_00ad:  ldarg.0 
-	  IL_00ae:  ldarg.0 
-	  IL_00af:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_00b4:  ldarg.0 
-	  IL_00b5:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_00ba:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	  IL_00bf:  call instance void class NAnt.Core.Tasks.LoopTask::set_Source(string)
-	  IL_00c4:  ldarg.0 
-	  IL_00c5:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_00ca:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_00cf:  brtrue IL_00fb
-
-	  IL_00d4:  nop 
-	  IL_00d5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_00da:  ldstr "NA1134"
-	  IL_00df:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_00e4:  ldarg.0 
-	  IL_00e5:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_00ea:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_00ef:  ldarg.0 
-	  IL_00f0:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_00f5:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_00fa:  throw 
-	  IL_00fb:  ldarg.0 
-	  IL_00fc:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
-	  IL_0101:  ldlen 
-	  IL_0102:  conv.i4 
-	  IL_0103:  ldc.i4.1 
-	  IL_0104:  beq IL_011b
-
-	  IL_0109:  nop 
-	  IL_010a:  ldstr "Only one property is valid for item=\"File\""
-	  IL_010f:  ldarg.0 
-	  IL_0110:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0115:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_011a:  throw 
-	  IL_011b:  ldarg.0 
-	  IL_011c:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_0121:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	  IL_0126:  stloc.3 
-	  IL_0127:  ldloc.3 
-	  IL_0128:  callvirt instance class [mscorlib]System.IO.FileInfo[] class [mscorlib]System.IO.DirectoryInfo::GetFiles()
-	  IL_012d:  stloc.s 4
-	  IL_012f:  nop 
-	  IL_0130:  ldloc.s 4
-	  IL_0132:  stloc.s 6
-	  IL_0134:  ldc.i4.0 
-	  IL_0135:  stloc.s 7
-	  IL_0137:  br IL_0161
-
-	  IL_013c:  ldloc.s 6
-	  IL_013e:  ldloc.s 7
-	  IL_0140:  ldelem.ref 
-	  IL_0141:  stloc.s 5
-	  IL_0143:  nop 
-	  IL_0144:  ldarg.0 
-	  IL_0145:  ldc.i4.1 
-	  IL_0146:  newarr [mscorlib]System.String
-	  IL_014b:  dup 
-	  IL_014c:  ldc.i4.0 
-	  IL_014d:  ldloc.s 5
-	  IL_014f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0154:  stelem.ref 
-	  IL_0155:  callvirt instance void class NAnt.Core.Tasks.LoopTask::DoWork(string[])
-	  IL_015a:  nop 
-	  IL_015b:  ldloc.s 7
-	  IL_015d:  ldc.i4.1 
-	  IL_015e:  add 
-	  IL_015f:  stloc.s 7
-	  IL_0161:  ldloc.s 7
-	  IL_0163:  ldloc.s 6
-	  IL_0165:  ldlen 
-	  IL_0166:  conv.i4 
-	  IL_0167:  blt IL_013c
-
-	  IL_016c:  nop 
-	  IL_016d:  br IL_01f2
-
-	  IL_0172:  nop 
-	  IL_0173:  ldarg.0 
-	  IL_0174:  call instance class NAnt.Core.TaskContainer class NAnt.Core.Tasks.LoopTask::get_StuffToDo()
-	  IL_0179:  brtrue IL_0190
-
-	  IL_017e:  nop 
-	  IL_017f:  ldstr "Must use <do> with <in>."
-	  IL_0184:  ldarg.0 
-	  IL_0185:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_018a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_018f:  throw 
-	  IL_0190:  nop 
-	  IL_0191:  ldarg.0 
-	  IL_0192:  call instance class NAnt.Core.Tasks.InElement class NAnt.Core.Tasks.LoopTask::get_InElement()
-	  IL_0197:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.InElement::get_Items()
-	  IL_019c:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	  IL_01a1:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_01a6:  stloc.s 9
-	  .try { // 0
-	    IL_01a8:  br IL_01c9
-
-	    IL_01ad:  ldloc.s 9
-	    IL_01af:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_01b4:  stloc.s 8
-	    IL_01b6:  nop 
-	    IL_01b7:  ldarg.0 
-	    IL_01b8:  ldc.i4.1 
-	    IL_01b9:  newarr [mscorlib]System.String
-	    IL_01be:  dup 
-	    IL_01bf:  ldc.i4.0 
-	    IL_01c0:  ldloc.s 8
-	    IL_01c2:  stelem.ref 
-	    IL_01c3:  callvirt instance void class NAnt.Core.Tasks.LoopTask::DoWork(string[])
-	    IL_01c8:  nop 
-	    IL_01c9:  ldloc.s 9
-	    IL_01cb:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_01d0:  brtrue IL_01ad
-
-	    IL_01d5:  leave IL_01f1
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_01da:  ldloc.s 9
-	    IL_01dc:  isinst [mscorlib]System.IDisposable
-	    IL_01e1:  dup 
-	    IL_01e2:  stloc.s 10
-	    IL_01e4:  brfalse IL_01f0
-
-	    IL_01e9:  ldloc.s 10
-	    IL_01eb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_01f0:  endfinally 
-	  } // end handler 0
-	  IL_01f1:  nop 
-	  IL_01f2:  leave IL_058c
-
-	  IL_01f7:  ldarg.0 
-	  IL_01f8:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_01fd:  call bool string::IsNullOrEmpty(string)
-	  IL_0202:  brfalse IL_0233
-
-	  IL_0207:  ldarg.0 
-	  IL_0208:  call instance class NAnt.Core.Tasks.InElement class NAnt.Core.Tasks.LoopTask::get_InElement()
-	  IL_020d:  brtrue IL_0233
-
-	  IL_0212:  nop 
-	  IL_0213:  ldstr "Invalid foreach"
-	  IL_0218:  ldarg.0 
-	  IL_0219:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_021e:  ldstr "Nothing to work with...!"
-	  IL_0223:  ldstr "in"
-	  IL_0228:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string, string)
-	  IL_022d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0232:  throw 
-	  IL_0233:  ldarg.0 
-	  IL_0234:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
-	  IL_0239:  ldlen 
-	  IL_023a:  conv.i4 
-	  IL_023b:  ldc.i4.1 
-	  IL_023c:  beq IL_0253
-
-	  IL_0241:  nop 
-	  IL_0242:  ldstr "Only one property is valid for item=\"Folder\""
-	  IL_0247:  ldarg.0 
-	  IL_0248:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_024d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_0252:  throw 
-	  IL_0253:  ldarg.0 
-	  IL_0254:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_0259:  call bool string::IsNullOrEmpty(string)
-	  IL_025e:  brtrue IL_030b
-
-	  IL_0263:  nop 
-	  IL_0264:  ldarg.0 
-	  IL_0265:  ldarg.0 
-	  IL_0266:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_026b:  ldarg.0 
-	  IL_026c:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_0271:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	  IL_0276:  call instance void class NAnt.Core.Tasks.LoopTask::set_Source(string)
-	  IL_027b:  ldarg.0 
-	  IL_027c:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_0281:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_0286:  brtrue IL_02b2
-
-	  IL_028b:  nop 
-	  IL_028c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0291:  ldstr "NA1134"
-	  IL_0296:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_029b:  ldarg.0 
-	  IL_029c:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_02a1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_02a6:  ldarg.0 
-	  IL_02a7:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_02ac:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_02b1:  throw 
-	  IL_02b2:  ldarg.0 
-	  IL_02b3:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_02b8:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	  IL_02bd:  stloc.s 11
-	  IL_02bf:  ldloc.s 11
-	  IL_02c1:  callvirt instance class [mscorlib]System.IO.DirectoryInfo[] class [mscorlib]System.IO.DirectoryInfo::GetDirectories()
-	  IL_02c6:  stloc.s 12
-	  IL_02c8:  nop 
-	  IL_02c9:  ldloc.s 12
-	  IL_02cb:  stloc.s 14
-	  IL_02cd:  ldc.i4.0 
-	  IL_02ce:  stloc.s 15
-	  IL_02d0:  br IL_02fa
-
-	  IL_02d5:  ldloc.s 14
-	  IL_02d7:  ldloc.s 15
-	  IL_02d9:  ldelem.ref 
-	  IL_02da:  stloc.s 13
-	  IL_02dc:  nop 
-	  IL_02dd:  ldarg.0 
-	  IL_02de:  ldc.i4.1 
-	  IL_02df:  newarr [mscorlib]System.String
-	  IL_02e4:  dup 
-	  IL_02e5:  ldc.i4.0 
-	  IL_02e6:  ldloc.s 13
-	  IL_02e8:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_02ed:  stelem.ref 
-	  IL_02ee:  callvirt instance void class NAnt.Core.Tasks.LoopTask::DoWork(string[])
-	  IL_02f3:  nop 
-	  IL_02f4:  ldloc.s 15
-	  IL_02f6:  ldc.i4.1 
-	  IL_02f7:  add 
-	  IL_02f8:  stloc.s 15
-	  IL_02fa:  ldloc.s 15
-	  IL_02fc:  ldloc.s 14
-	  IL_02fe:  ldlen 
-	  IL_02ff:  conv.i4 
-	  IL_0300:  blt IL_02d5
-
-	  IL_0305:  nop 
-	  IL_0306:  br IL_038b
-
-	  IL_030b:  nop 
-	  IL_030c:  ldarg.0 
-	  IL_030d:  call instance class NAnt.Core.TaskContainer class NAnt.Core.Tasks.LoopTask::get_StuffToDo()
-	  IL_0312:  brtrue IL_0329
-
-	  IL_0317:  nop 
-	  IL_0318:  ldstr "Must use <do> with <in>."
-	  IL_031d:  ldarg.0 
-	  IL_031e:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0323:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_0328:  throw 
-	  IL_0329:  nop 
-	  IL_032a:  ldarg.0 
-	  IL_032b:  call instance class NAnt.Core.Tasks.InElement class NAnt.Core.Tasks.LoopTask::get_InElement()
-	  IL_0330:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.InElement::get_Items()
-	  IL_0335:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
-	  IL_033a:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_033f:  stloc.s 17
-	  .try { // 1
-	    IL_0341:  br IL_0362
-
-	    IL_0346:  ldloc.s 17
-	    IL_0348:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_034d:  stloc.s 16
-	    IL_034f:  nop 
-	    IL_0350:  ldarg.0 
-	    IL_0351:  ldc.i4.1 
-	    IL_0352:  newarr [mscorlib]System.String
-	    IL_0357:  dup 
-	    IL_0358:  ldc.i4.0 
-	    IL_0359:  ldloc.s 16
-	    IL_035b:  stelem.ref 
-	    IL_035c:  callvirt instance void class NAnt.Core.Tasks.LoopTask::DoWork(string[])
-	    IL_0361:  nop 
-	    IL_0362:  ldloc.s 17
-	    IL_0364:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_0369:  brtrue IL_0346
-
-	    IL_036e:  leave IL_038a
-
-	  } // end .try 1
-	  finally  { // 1
-	    IL_0373:  ldloc.s 17
-	    IL_0375:  isinst [mscorlib]System.IDisposable
-	    IL_037a:  dup 
-	    IL_037b:  stloc.s 18
-	    IL_037d:  brfalse IL_0389
-
-	    IL_0382:  ldloc.s 18
-	    IL_0384:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0389:  endfinally 
-	  } // end handler 1
-	  IL_038a:  nop 
-	  IL_038b:  leave IL_058c
-
-	  IL_0390:  ldarg.0 
-	  IL_0391:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_0396:  call bool string::IsNullOrEmpty(string)
-	  IL_039b:  brfalse IL_03cc
-
-	  IL_03a0:  ldarg.0 
-	  IL_03a1:  call instance class NAnt.Core.Tasks.InElement class NAnt.Core.Tasks.LoopTask::get_InElement()
-	  IL_03a6:  brtrue IL_03cc
-
-	  IL_03ab:  nop 
-	  IL_03ac:  ldstr "Invalid foreach"
-	  IL_03b1:  ldarg.0 
-	  IL_03b2:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_03b7:  ldstr "Nothing to work with...!"
-	  IL_03bc:  ldstr "in"
-	  IL_03c1:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string, string)
-	  IL_03c6:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_03cb:  throw 
-	  IL_03cc:  ldarg.0 
-	  IL_03cd:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
-	  IL_03d2:  ldlen 
-	  IL_03d3:  conv.i4 
-	  IL_03d4:  ldc.i4.1 
-	  IL_03d5:  ble IL_03f7
-
-	  IL_03da:  ldarg.0 
-	  IL_03db:  call instance string class NAnt.Core.Tasks.LoopTask::get_Delimiter()
-	  IL_03e0:  brtrue IL_03f7
-
-	  IL_03e5:  nop 
-	  IL_03e6:  ldstr "Delimiter(s) must be specified if multiple properties are specified"
-	  IL_03eb:  ldarg.0 
-	  IL_03ec:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_03f1:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_03f6:  throw 
-	  IL_03f7:  ldarg.0 
-	  IL_03f8:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_03fd:  call bool string::IsNullOrEmpty(string)
-	  IL_0402:  brtrue IL_0468
-
-	  IL_0407:  nop 
-	  IL_0408:  ldarg.0 
-	  IL_0409:  ldarg.0 
-	  IL_040a:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_040f:  ldarg.0 
-	  IL_0410:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_0415:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	  IL_041a:  call instance void class NAnt.Core.Tasks.LoopTask::set_Source(string)
-	  IL_041f:  ldarg.0 
-	  IL_0420:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_0425:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_042a:  brtrue IL_0456
-
-	  IL_042f:  nop 
-	  IL_0430:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0435:  ldstr "NA1133"
-	  IL_043a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_043f:  ldarg.0 
-	  IL_0440:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_0445:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_044a:  ldarg.0 
-	  IL_044b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0450:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_0455:  throw 
-	  IL_0456:  ldarg.0 
-	  IL_0457:  ldarg.0 
-	  IL_0458:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_045d:  call instance void class NAnt.Core.Tasks.LoopTask::DoWorkOnFileLines(string)
-	  IL_0462:  nop 
-	  IL_0463:  br IL_04df
-
-	  IL_0468:  nop 
-	  IL_0469:  ldarg.0 
-	  IL_046a:  call instance class NAnt.Core.TaskContainer class NAnt.Core.Tasks.LoopTask::get_StuffToDo()
-	  IL_046f:  brtrue IL_0486
-
-	  IL_0474:  nop 
-	  IL_0475:  ldstr "Must use <do> with <in>."
-	  IL_047a:  ldarg.0 
-	  IL_047b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0480:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_0485:  throw 
-	  IL_0486:  nop 
-	  IL_0487:  ldarg.0 
-	  IL_0488:  call instance class NAnt.Core.Tasks.InElement class NAnt.Core.Tasks.LoopTask::get_InElement()
-	  IL_048d:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.InElement::get_Items()
-	  IL_0492:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	  IL_0497:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_049c:  stloc.s 20
-	  .try { // 2
-	    IL_049e:  br IL_04b6
-
-	    IL_04a3:  ldloc.s 20
-	    IL_04a5:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_04aa:  stloc.s 19
-	    IL_04ac:  nop 
-	    IL_04ad:  ldarg.0 
-	    IL_04ae:  ldloc.s 19
-	    IL_04b0:  call instance void class NAnt.Core.Tasks.LoopTask::DoWorkOnFileLines(string)
-	    IL_04b5:  nop 
-	    IL_04b6:  ldloc.s 20
-	    IL_04b8:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_04bd:  brtrue IL_04a3
-
-	    IL_04c2:  leave IL_04de
-
-	  } // end .try 2
-	  finally  { // 2
-	    IL_04c7:  ldloc.s 20
-	    IL_04c9:  isinst [mscorlib]System.IDisposable
-	    IL_04ce:  dup 
-	    IL_04cf:  stloc.s 21
-	    IL_04d1:  brfalse IL_04dd
-
-	    IL_04d6:  ldloc.s 21
-	    IL_04d8:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_04dd:  endfinally 
-	  } // end handler 2
-	  IL_04de:  nop 
-	  IL_04df:  leave IL_058c
-
-	  IL_04e4:  ldarg.0 
-	  IL_04e5:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_04ea:  call bool string::IsNullOrEmpty(string)
-	  IL_04ef:  brfalse IL_04fa
-
-	  IL_04f4:  nop 
-	  IL_04f5:  leave IL_05c7
-
-	  IL_04fa:  ldarg.0 
-	  IL_04fb:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
-	  IL_0500:  ldlen 
-	  IL_0501:  conv.i4 
-	  IL_0502:  ldc.i4.1 
-	  IL_0503:  ble IL_051a
-
-	  IL_0508:  nop 
-	  IL_0509:  ldstr "Only one property may be specified for item=\"String\""
-	  IL_050e:  ldarg.0 
-	  IL_050f:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0514:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_0519:  throw 
-	  IL_051a:  ldarg.0 
-	  IL_051b:  call instance string class NAnt.Core.Tasks.LoopTask::get_Delimiter()
-	  IL_0520:  brtrue IL_0537
-
-	  IL_0525:  nop 
-	  IL_0526:  ldstr "Delimiter must be specified for item=\"String\""
-	  IL_052b:  ldarg.0 
-	  IL_052c:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0531:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_0536:  throw 
-	  IL_0537:  ldarg.0 
-	  IL_0538:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
-	  IL_053d:  ldarg.0 
-	  IL_053e:  call instance string class NAnt.Core.Tasks.LoopTask::get_Delimiter()
-	  IL_0543:  callvirt instance char[] string::ToCharArray()
-	  IL_0548:  callvirt instance string[] string::Split(char[])
-	  IL_054d:  stloc.s 22
-	  IL_054f:  nop 
-	  IL_0550:  ldloc.s 22
-	  IL_0552:  stloc.s 24
-	  IL_0554:  ldc.i4.0 
-	  IL_0555:  stloc.s 25
-	  IL_0557:  br IL_057c
-
-	  IL_055c:  ldloc.s 24
-	  IL_055e:  ldloc.s 25
-	  IL_0560:  ldelem.ref 
-	  IL_0561:  stloc.s 23
-	  IL_0563:  nop 
-	  IL_0564:  ldarg.0 
-	  IL_0565:  ldc.i4.1 
-	  IL_0566:  newarr [mscorlib]System.String
-	  IL_056b:  dup 
-	  IL_056c:  ldc.i4.0 
-	  IL_056d:  ldloc.s 23
-	  IL_056f:  stelem.ref 
-	  IL_0570:  callvirt instance void class NAnt.Core.Tasks.LoopTask::DoWork(string[])
-	  IL_0575:  nop 
-	  IL_0576:  ldloc.s 25
-	  IL_0578:  ldc.i4.1 
-	  IL_0579:  add 
-	  IL_057a:  stloc.s 25
-	  IL_057c:  ldloc.s 25
-	  IL_057e:  ldloc.s 24
-	  IL_0580:  ldlen 
-	  IL_0581:  conv.i4 
-	  IL_0582:  blt IL_055c
-
-	  IL_0587:  leave IL_058c
-
-	  IL_058c:  nop 
-	  IL_058d:  leave IL_05c7
-
-	} // end .try 3
-	finally  { // 3
-	  IL_0592:  nop 
-	  IL_0593:  ldc.i4.0 
-	  IL_0594:  stloc.s 26
-	  IL_0596:  br IL_05bb
-
-	  IL_059b:  nop 
-	  IL_059c:  ldarg.0 
-	  IL_059d:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	  IL_05a2:  ldarg.0 
-	  IL_05a3:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
-	  IL_05a8:  ldloc.s 26
-	  IL_05aa:  ldelem.ref 
-	  IL_05ab:  ldloc.0 
-	  IL_05ac:  ldloc.s 26
-	  IL_05ae:  ldelem.ref 
-	  IL_05af:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	  IL_05b4:  nop 
-	  IL_05b5:  ldloc.s 26
-	  IL_05b7:  ldc.i4.1 
-	  IL_05b8:  add 
-	  IL_05b9:  stloc.s 26
-	  IL_05bb:  ldloc.s 26
-	  IL_05bd:  ldloc.0 
-	  IL_05be:  ldlen 
-	  IL_05bf:  conv.i4 
-	  IL_05c0:  blt IL_059b
+	IL_0002:  ldfld bool NAnt.Core.Types.EnvironmentVariable::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_05c5:  nop 
-	  IL_05c6:  endfinally 
-	} // end handler 3
-	IL_05c7:  ret 
-    } // end of method LoopTask::ExecuteTask
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method EnvironmentVariable::get_IfDefined
 
-    // method line 843
-    .method family virtual hidebysig 
-           instance default void ExecuteChildTasks ()  cil managed 
+    // method line 774
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x10290
-	// Code size 39 (0x27)
+        // Method begins at RVA 0xf2bf
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.TaskContainer class NAnt.Core.Tasks.LoopTask::get_StuffToDo()
-	IL_0007:  brtrue IL_0019
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance void class NAnt.Core.TaskContainer::ExecuteChildTasks()
-	IL_0013:  nop 
-	IL_0014:  br IL_0026
-
-	IL_0019:  nop 
-	IL_001a:  ldarg.0 
-	IL_001b:  call instance class NAnt.Core.TaskContainer class NAnt.Core.Tasks.LoopTask::get_StuffToDo()
-	IL_0020:  callvirt instance void class NAnt.Core.Task::Execute()
-	IL_0025:  nop 
-	IL_0026:  ret 
-    } // end of method LoopTask::ExecuteChildTasks
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.EnvironmentVariable::_ifDefined
+	IL_0008:  ret 
+    } // end of method EnvironmentVariable::set_IfDefined
 
-    // method line 844
-    .method family virtual hidebysig newslot 
-           instance default void DoWork (string[] propVals)  cil managed 
+    // method line 775
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-	.param [1]
-	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-        // Method begins at RVA 0x102b8
-	// Code size 155 (0x9b)
-	.maxstack 3
+        // Method begins at RVA 0xf2cc
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		int32	V_0,
-		string	V_1,
-		valuetype NAnt.Core.Tasks.LoopTask/LoopTrim	V_2)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_008b
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Types.EnvironmentVariable::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0008:  nop 
-	IL_0009:  ldarg.1 
-	IL_000a:  ldloc.0 
-	IL_000b:  ldelem.ref 
-	IL_000c:  stloc.1 
 	IL_000d:  ldloc.0 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
-	IL_0014:  ldlen 
-	IL_0015:  conv.i4 
-	IL_0016:  blt IL_002d
-
-	IL_001b:  nop 
-	IL_001c:  ldstr "Too many items on line"
-	IL_0021:  ldarg.0 
-	IL_0022:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0027:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_002c:  throw 
-	IL_002d:  ldarg.0 
-	IL_002e:  call instance valuetype NAnt.Core.Tasks.LoopTask/LoopTrim class NAnt.Core.Tasks.LoopTask::get_TrimType()
-	IL_0033:  stloc.2 
-	IL_0034:  ldloc.2 
-	IL_0035:  ldc.i4.3 
-	IL_0036:  beq IL_004e
-
-	IL_003b:  ldloc.2 
-	IL_003c:  ldc.i4.2 
-	IL_003d:  beq IL_005a
-
-	IL_0042:  ldloc.2 
-	IL_0043:  ldc.i4.1 
-	IL_0044:  beq IL_0066
-
-	IL_0049:  br IL_0072
-
-	IL_004e:  ldloc.1 
-	IL_004f:  callvirt instance string string::Trim()
-	IL_0054:  stloc.1 
-	IL_0055:  br IL_0072
-
-	IL_005a:  ldloc.1 
-	IL_005b:  callvirt instance string string::TrimStart()
-	IL_0060:  stloc.1 
-	IL_0061:  br IL_0072
-
-	IL_0066:  ldloc.1 
-	IL_0067:  callvirt instance string string::TrimEnd()
-	IL_006c:  stloc.1 
-	IL_006d:  br IL_0072
-
-	IL_0072:  ldarg.0 
-	IL_0073:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0078:  ldarg.0 
-	IL_0079:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
-	IL_007e:  ldloc.0 
-	IL_007f:  ldelem.ref 
-	IL_0080:  ldloc.1 
-	IL_0081:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0086:  nop 
-	IL_0087:  ldloc.0 
-	IL_0088:  ldc.i4.1 
-	IL_0089:  add 
-	IL_008a:  stloc.0 
-	IL_008b:  ldloc.0 
-	IL_008c:  ldarg.1 
-	IL_008d:  ldlen 
-	IL_008e:  conv.i4 
-	IL_008f:  blt IL_0008
-
-	IL_0094:  ldarg.0 
-	IL_0095:  call instance void class NAnt.Core.TaskContainer::ExecuteTask()
-	IL_009a:  ret 
-    } // end of method LoopTask::DoWork
+	IL_000e:  ret 
+    } // end of method EnvironmentVariable::get_UnlessDefined
 
-    // method line 845
-    .method private hidebysig 
-           instance default void DoWorkOnFileLines (string filename)  cil managed 
+    // method line 776
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x10360
-	// Code size 115 (0x73)
-	.maxstack 5
-	.locals init (
-		class [mscorlib]System.IO.StreamReader	V_0,
-		string	V_1)
+        // Method begins at RVA 0xf2e7
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call class [mscorlib]System.IO.StreamReader class [mscorlib]System.IO.File::OpenText(string)
-	IL_0007:  stloc.0 
-	.try { // 0
-	  IL_0008:  nop 
-	  IL_0009:  nop 
-	  IL_000a:  nop 
-	  IL_000b:  ldloc.0 
-	  IL_000c:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	  IL_0011:  stloc.1 
-	  IL_0012:  ldloc.1 
-	  IL_0013:  brtrue IL_001e
-
-	  IL_0018:  nop 
-	  IL_0019:  leave IL_005f
-
-	  IL_001e:  ldarg.0 
-	  IL_001f:  call instance string class NAnt.Core.Tasks.LoopTask::get_Delimiter()
-	  IL_0024:  brtrue IL_0040
-
-	  IL_0029:  nop 
-	  IL_002a:  ldarg.0 
-	  IL_002b:  ldc.i4.1 
-	  IL_002c:  newarr [mscorlib]System.String
-	  IL_0031:  dup 
-	  IL_0032:  ldc.i4.0 
-	  IL_0033:  ldloc.1 
-	  IL_0034:  stelem.ref 
-	  IL_0035:  callvirt instance void class NAnt.Core.Tasks.LoopTask::DoWork(string[])
-	  IL_003a:  nop 
-	  IL_003b:  br IL_0059
-
-	  IL_0040:  nop 
-	  IL_0041:  ldarg.0 
-	  IL_0042:  ldloc.1 
-	  IL_0043:  ldarg.0 
-	  IL_0044:  call instance string class NAnt.Core.Tasks.LoopTask::get_Delimiter()
-	  IL_0049:  callvirt instance char[] string::ToCharArray()
-	  IL_004e:  callvirt instance string[] string::Split(char[])
-	  IL_0053:  callvirt instance void class NAnt.Core.Tasks.LoopTask::DoWork(string[])
-	  IL_0058:  nop 
-	  IL_0059:  nop 
-	  IL_005a:  br IL_0009
-
-	  IL_005f:  nop 
-	  IL_0060:  leave IL_0072
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0065:  ldloc.0 
-	  IL_0066:  brfalse IL_0071
-
-	  IL_006b:  ldloc.0 
-	  IL_006c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0071:  endfinally 
-	} // end handler 0
-	IL_0072:  ret 
-    } // end of method LoopTask::DoWorkOnFileLines
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.EnvironmentVariable::_unlessDefined
+	IL_0008:  ret 
+    } // end of method EnvironmentVariable::set_UnlessDefined
 
-	.property instance string Property ()
+	.property instance string VariableName ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
-		52 65 71 75 69 72 65 64 01                      ) // Required.
+		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		69 72 65 64 01                                  ) // ired.
 
 		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
 		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
 		79 00                                           ) // y.
 
-		.get instance default string NAnt.Core.Tasks.LoopTask::get_Property () 
-		.set instance default void NAnt.Core.Tasks.LoopTask::set_Property (string 'value') 
+		.get instance default string NAnt.Core.Types.EnvironmentVariable::get_VariableName () 
+		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_VariableName (string 'value') 
 	}
-	.property instance valuetype NAnt.Core.Tasks.LoopTask/LoopItem ItemType ()
+	.property instance string LiteralValue ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 69 74 65 6D 01 00 54 02 08 52 65 71 75   // ...item..T..Requ
-		69 72 65 64 01                                  ) // ired.
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 76 61 6C 75 65 00 00 ) // ...value..
 
-		.get instance default valuetype NAnt.Core.Tasks.LoopTask/LoopItem NAnt.Core.Tasks.LoopTask::get_ItemType () 
-		.set instance default void NAnt.Core.Tasks.LoopTask::set_ItemType (valuetype NAnt.Core.Tasks.LoopTask/LoopItem 'value') 
+		.get instance default string NAnt.Core.Types.EnvironmentVariable::get_LiteralValue () 
+		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_LiteralValue (string 'value') 
 	}
-	.property instance valuetype NAnt.Core.Tasks.LoopTask/LoopTrim TrimType ()
+	.property instance class [mscorlib]System.IO.FileInfo File ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 74 72 69 6D 00 00 ) // ...trim..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
 
-		.get instance default valuetype NAnt.Core.Tasks.LoopTask/LoopTrim NAnt.Core.Tasks.LoopTask::get_TrimType () 
-		.set instance default void NAnt.Core.Tasks.LoopTask::set_TrimType (valuetype NAnt.Core.Tasks.LoopTask/LoopTrim 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Types.EnvironmentVariable::get_File () 
+		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_File (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance string Source ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo Directory ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 02 69 6E 01 00 54 02 08 52 65 71 75 69 72   // ...in..T..Requir
-		65 64 00                                        ) // ed.
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 69 72 00 00 ) // ...dir..
 
-		.get instance default string NAnt.Core.Tasks.LoopTask::get_Source () 
-		.set instance default void NAnt.Core.Tasks.LoopTask::set_Source (string 'value') 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.EnvironmentVariable::get_Directory () 
+		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value') 
 	}
-	.property instance string Delimiter ()
+	.property instance class NAnt.Core.Types.PathSet Path ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 64 65 6C 69 6D 00 00 ) // ...delim..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
 
-		.get instance default string NAnt.Core.Tasks.LoopTask::get_Delimiter () 
-		.set instance default void NAnt.Core.Tasks.LoopTask::set_Delimiter (string 'value') 
+		.get instance default class NAnt.Core.Types.PathSet NAnt.Core.Types.EnvironmentVariable::get_Path () 
+		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_Path (class NAnt.Core.Types.PathSet 'value') 
 	}
-	.property instance class NAnt.Core.Tasks.InElement InElement ()
+	.property instance class NAnt.Core.Types.PathSet PathSet ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 02 69 6E 00 00 ) // ...in..
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
 
-		.get instance default class NAnt.Core.Tasks.InElement NAnt.Core.Tasks.LoopTask::get_InElement () 
-		.set instance default void NAnt.Core.Tasks.LoopTask::set_InElement (class NAnt.Core.Tasks.InElement 'value') 
+		.get instance default class NAnt.Core.Types.PathSet NAnt.Core.Types.EnvironmentVariable::get_PathSet () 
+		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_PathSet (class NAnt.Core.Types.PathSet 'value') 
 	}
-	.property instance class NAnt.Core.TaskContainer StuffToDo ()
+	.property instance string Value ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 02 64 6F 00 00 ) // ...do..
-
-		.get instance default class NAnt.Core.TaskContainer NAnt.Core.Tasks.LoopTask::get_StuffToDo () 
-		.set instance default void NAnt.Core.Tasks.LoopTask::set_StuffToDo (class NAnt.Core.TaskContainer 'value') 
+		.get instance default string NAnt.Core.Types.EnvironmentVariable::get_Value () 
 	}
-  .class nested public auto ansi sealed LoopItem
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopItem File = int32(0x00000001)
-    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopItem Folder = int32(0x00000002)
-    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopItem String = int32(0x00000003)
-    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopItem Line = int32(0x00000004)
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
 
-  } // end of class LoopItem
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-  .class nested public auto ansi sealed LoopTrim
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopTrim None = int32(0x00000000)
-    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopTrim End = int32(0x00000001)
-    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopTrim Start = int32(0x00000002)
-    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopTrim Both = int32(0x00000003)
+		.get instance default bool NAnt.Core.Types.EnvironmentVariable::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
 
-  } // end of class LoopTrim
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-  } // end of class NAnt.Core.Tasks.LoopTask
+		.get instance default bool NAnt.Core.Types.EnvironmentVariable::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.EnvironmentVariable::set_UnlessDefined (bool 'value') 
+	}
+  } // end of class NAnt.Core.Types.EnvironmentVariable
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit InElement
+  .class public auto ansi serializable beforefieldinit EnvironmentSet
   	extends NAnt.Core.Element
   {
-    .field  private  class NAnt.Core.Types.FileSet _items
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
+		01 00 0B 65 6E 76 69 72 6F 6E 6D 65 6E 74 00 00 ) // ...environment..
 
-    // method line 846
+    .field  private  class NAnt.Core.Types.OptionCollection _options
+    .field  private  class NAnt.Core.Types.EnvironmentVariableCollection _environmentVariables
+
+    // method line 777
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x103f0
-	// Code size 7 (0x7)
+        // Method begins at RVA 0xf2f1
+	// Code size 29 (0x1d)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_0006:  ret 
-    } // end of method InElement::.ctor
+	IL_0001:  newobj instance void class NAnt.Core.Types.OptionCollection::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.Types.OptionCollection NAnt.Core.Types.EnvironmentSet::_options
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class NAnt.Core.Types.EnvironmentVariableCollection::'.ctor'()
+	IL_0011:  stfld class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Types.EnvironmentSet::_environmentVariables
+	IL_0016:  ldarg.0 
+	IL_0017:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_001c:  ret 
+    } // end of method EnvironmentSet::.ctor
 
-    // method line 847
+    // method line 778
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_Items ()  cil managed 
+           instance default class NAnt.Core.Types.OptionCollection get_Options ()  cil managed 
     {
-        // Method begins at RVA 0x103f8
+        // Method begins at RVA 0xf310
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		class NAnt.Core.Types.OptionCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.InElement::_items
+	IL_0002:  ldfld class NAnt.Core.Types.OptionCollection NAnt.Core.Types.EnvironmentSet::_options
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method InElement::get_Items
+    } // end of method EnvironmentSet::get_Options
 
-    // method line 848
+    // method line 779
     .method public hidebysig specialname 
-           instance default void set_Items (class NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_Options (class NAnt.Core.Types.OptionCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x10413
+        // Method begins at RVA 0xf32b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.InElement::_items
+	IL_0003:  stfld class NAnt.Core.Types.OptionCollection NAnt.Core.Types.EnvironmentSet::_options
 	IL_0008:  ret 
-    } // end of method InElement::set_Items
-
-	.property instance class NAnt.Core.Types.FileSet Items ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 05 69 74 65 6D 73 00 00 ) // ...items..
-
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.InElement::get_Items () 
-		.set instance default void NAnt.Core.Tasks.InElement::set_Items (class NAnt.Core.Types.FileSet 'value') 
-	}
-  } // end of class NAnt.Core.Tasks.InElement
-}
-
-.namespace NAnt.Core.Tasks
-{
-  .class public auto ansi beforefieldinit MailTask
-  	extends NAnt.Core.Task
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 6D 61 69 6C 00 00 ) // ...mail..
-
-    .field  private  string _from
-    .field  private  string _replyTo
-    .field  private  string _toList
-    .field  private  string _ccList
-    .field  private  string _bccList
-    .field  private  string _mailHost
-    .field  private  string _subject
-    .field  private  string _message
-    .field  private  string _userName
-    .field  private  string _passWord
-    .field  private  bool _isBodyHtml
-    .field  private  bool _enableSsl
-    .field  private  int32 _portNumber
-    .field  private  class NAnt.Core.Types.FileSet _files
-    .field  private  class NAnt.Core.Types.FileSet _attachments
-
-    // method line 849
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x10420
-	// Code size 106 (0x6a)
-	.maxstack 2
-	IL_0000:  ldarg.0 
-	IL_0001:  ldstr "localhost"
-	IL_0006:  stfld string NAnt.Core.Tasks.MailTask::_mailHost
-	IL_000b:  ldarg.0 
-	IL_000c:  ldstr ""
-	IL_0011:  stfld string NAnt.Core.Tasks.MailTask::_subject
-	IL_0016:  ldarg.0 
-	IL_0017:  ldstr ""
-	IL_001c:  stfld string NAnt.Core.Tasks.MailTask::_message
-	IL_0021:  ldarg.0 
-	IL_0022:  ldstr ""
-	IL_0027:  stfld string NAnt.Core.Tasks.MailTask::_userName
-	IL_002c:  ldarg.0 
-	IL_002d:  ldstr ""
-	IL_0032:  stfld string NAnt.Core.Tasks.MailTask::_passWord
-	IL_0037:  ldarg.0 
-	IL_0038:  ldc.i4.0 
-	IL_0039:  stfld bool NAnt.Core.Tasks.MailTask::_isBodyHtml
-	IL_003e:  ldarg.0 
-	IL_003f:  ldc.i4.0 
-	IL_0040:  stfld bool NAnt.Core.Tasks.MailTask::_enableSsl
-	IL_0045:  ldarg.0 
-	IL_0046:  ldc.i4.s 0x19
-	IL_0048:  stfld int32 NAnt.Core.Tasks.MailTask::_portNumber
-	IL_004d:  ldarg.0 
-	IL_004e:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0053:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_files
-	IL_0058:  ldarg.0 
-	IL_0059:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_005e:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_attachments
-	IL_0063:  ldarg.0 
-	IL_0064:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0069:  ret 
-    } // end of method MailTask::.ctor
+    } // end of method EnvironmentSet::set_Options
 
-    // method line 850
+    // method line 780
     .method public hidebysig specialname 
-           instance default string get_From ()  cil managed 
+           instance default class NAnt.Core.Types.EnvironmentVariableCollection get_EnvironmentVariables ()  cil managed 
     {
-        // Method begins at RVA 0x10498
+        // Method begins at RVA 0xf338
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.EnvironmentVariableCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_from
+	IL_0002:  ldfld class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Types.EnvironmentSet::_environmentVariables
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MailTask::get_From
+    } // end of method EnvironmentSet::get_EnvironmentVariables
 
-    // method line 851
+    // method line 781
     .method public hidebysig specialname 
-           instance default void set_From (string 'value')  cil managed 
+           instance default void set_EnvironmentVariables (class NAnt.Core.Types.EnvironmentVariableCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x104b3
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xf353
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.MailTask::_from
-	IL_000d:  ret 
-    } // end of method MailTask::set_From
+	IL_0003:  stfld class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Types.EnvironmentSet::_environmentVariables
+	IL_0008:  ret 
+    } // end of method EnvironmentSet::set_EnvironmentVariables
 
-    // method line 852
-    .method public hidebysig specialname 
-           instance default string get_ToList ()  cil managed 
-    {
-        // Method begins at RVA 0x104c4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_toList
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	.property instance class NAnt.Core.Types.OptionCollection Options ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 06 6F 70 74 69 6F 6E 00 00 ) // ...option..
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MailTask::get_ToList
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
+		01 00 1F 55 73 65 20 3C 76 61 72 69 61 62 6C 65   // ...Use <variable
+		3E 20 65 6C 65 6D 65 6E 74 20 69 6E 73 74 65 61   // > element instea
+		64 2E 00 00                                     ) // d...
 
-    // method line 853
-    .method public hidebysig specialname 
-           instance default void set_ToList (string 'value')  cil managed 
+		.get instance default class NAnt.Core.Types.OptionCollection NAnt.Core.Types.EnvironmentSet::get_Options () 
+		.set instance default void NAnt.Core.Types.EnvironmentSet::set_Options (class NAnt.Core.Types.OptionCollection 'value') 
+	}
+	.property instance class NAnt.Core.Types.EnvironmentVariableCollection EnvironmentVariables ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 08 76 61 72 69 61 62 6C 65 00 00 ) // ...variable..
+
+		.get instance default class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Types.EnvironmentSet::get_EnvironmentVariables () 
+		.set instance default void NAnt.Core.Types.EnvironmentSet::set_EnvironmentVariables (class NAnt.Core.Types.EnvironmentVariableCollection 'value') 
+	}
+  } // end of class NAnt.Core.Types.EnvironmentSet
+}
+
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi beforefieldinit Proxy
+  	extends NAnt.Core.DataTypeBase
+  {
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 05 70 72 6F 78 79 00 00 ) // ...proxy..
+
+    .field  private  string _host
+    .field  private  int32 _port
+    .field  private  bool _bypassOnLocal
+    .field  private  class NAnt.Core.Types.Credential _credentials
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
+
+    // method line 782
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x104df
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xf35d
+	// Code size 15 (0xf)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.MailTask::_toList
-	IL_0008:  ret 
-    } // end of method MailTask::set_ToList
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.Proxy::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method Proxy::.ctor
 
-    // method line 854
+    // method line 783
     .method public hidebysig specialname 
-           instance default string get_ReplyTo ()  cil managed 
+           instance default string get_Host ()  cil managed 
     {
-        // Method begins at RVA 0x104ec
+        // Method begins at RVA 0xf370
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_replyTo
+	IL_0002:  ldfld string NAnt.Core.Types.Proxy::_host
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MailTask::get_ReplyTo
+    } // end of method Proxy::get_Host
 
-    // method line 855
+    // method line 784
     .method public hidebysig specialname 
-           instance default void set_ReplyTo (string 'value')  cil managed 
+           instance default void set_Host (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x10507
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xf38b
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.MailTask::_replyTo
-	IL_0008:  ret 
-    } // end of method MailTask::set_ReplyTo
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Types.Proxy::_host
+	IL_000d:  ret 
+    } // end of method Proxy::set_Host
 
-    // method line 856
+    // method line 785
     .method public hidebysig specialname 
-           instance default string get_CcList ()  cil managed 
+           instance default int32 get_Port ()  cil managed 
     {
-        // Method begins at RVA 0x10514
+        // Method begins at RVA 0xf39c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_ccList
+	IL_0002:  ldfld int32 NAnt.Core.Types.Proxy::_port
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MailTask::get_CcList
+    } // end of method Proxy::get_Port
 
-    // method line 857
+    // method line 786
     .method public hidebysig specialname 
-           instance default void set_CcList (string 'value')  cil managed 
+           instance default void set_Port (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x1052f
+        // Method begins at RVA 0xf3b7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.MailTask::_ccList
+	IL_0003:  stfld int32 NAnt.Core.Types.Proxy::_port
 	IL_0008:  ret 
-    } // end of method MailTask::set_CcList
+    } // end of method Proxy::set_Port
 
-    // method line 858
+    // method line 787
     .method public hidebysig specialname 
-           instance default string get_BccList ()  cil managed 
+           instance default bool get_BypassOnLocal ()  cil managed 
     {
-        // Method begins at RVA 0x1053c
+        // Method begins at RVA 0xf3c4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_bccList
+	IL_0002:  ldfld bool NAnt.Core.Types.Proxy::_bypassOnLocal
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MailTask::get_BccList
+    } // end of method Proxy::get_BypassOnLocal
 
-    // method line 859
+    // method line 788
     .method public hidebysig specialname 
-           instance default void set_BccList (string 'value')  cil managed 
+           instance default void set_BypassOnLocal (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x10557
+        // Method begins at RVA 0xf3df
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.MailTask::_bccList
+	IL_0003:  stfld bool NAnt.Core.Types.Proxy::_bypassOnLocal
 	IL_0008:  ret 
-    } // end of method MailTask::set_BccList
+    } // end of method Proxy::set_BypassOnLocal
 
-    // method line 860
+    // method line 789
     .method public hidebysig specialname 
-           instance default string get_Mailhost ()  cil managed 
+           instance default class NAnt.Core.Types.Credential get_Credentials ()  cil managed 
     {
-        // Method begins at RVA 0x10564
+        // Method begins at RVA 0xf3ec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.Credential	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_mailHost
+	IL_0002:  ldfld class NAnt.Core.Types.Credential NAnt.Core.Types.Proxy::_credentials
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MailTask::get_Mailhost
+    } // end of method Proxy::get_Credentials
 
-    // method line 861
+    // method line 790
     .method public hidebysig specialname 
-           instance default void set_Mailhost (string 'value')  cil managed 
+           instance default void set_Credentials (class NAnt.Core.Types.Credential 'value')  cil managed 
     {
-        // Method begins at RVA 0x1057f
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xf407
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.MailTask::_mailHost
-	IL_000d:  ret 
-    } // end of method MailTask::set_Mailhost
+	IL_0003:  stfld class NAnt.Core.Types.Credential NAnt.Core.Types.Proxy::_credentials
+	IL_0008:  ret 
+    } // end of method Proxy::set_Credentials
 
-    // method line 862
+    // method line 791
     .method public hidebysig specialname 
-           instance default int32 get_Port ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x10590
+        // Method begins at RVA 0xf414
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Tasks.MailTask::_portNumber
+	IL_0002:  ldfld bool NAnt.Core.Types.Proxy::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MailTask::get_Port
+    } // end of method Proxy::get_IfDefined
 
-    // method line 863
+    // method line 792
     .method public hidebysig specialname 
-           instance default void set_Port (int32 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x105ab
+        // Method begins at RVA 0xf42f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.Tasks.MailTask::_portNumber
+	IL_0003:  stfld bool NAnt.Core.Types.Proxy::_ifDefined
 	IL_0008:  ret 
-    } // end of method MailTask::set_Port
+    } // end of method Proxy::set_IfDefined
 
-    // method line 864
+    // method line 793
     .method public hidebysig specialname 
-           instance default bool get_EnableSsl ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x105b8
+        // Method begins at RVA 0xf43c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.MailTask::_enableSsl
+	IL_0002:  ldfld bool NAnt.Core.Types.Proxy::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MailTask::get_EnableSsl
+    } // end of method Proxy::get_UnlessDefined
 
-    // method line 865
+    // method line 794
     .method public hidebysig specialname 
-           instance default void set_EnableSsl (bool 'value')  cil managed 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x105d3
+        // Method begins at RVA 0xf457
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.MailTask::_enableSsl
+	IL_0003:  stfld bool NAnt.Core.Types.Proxy::_unlessDefined
 	IL_0008:  ret 
-    } // end of method MailTask::set_EnableSsl
+    } // end of method Proxy::set_UnlessDefined
 
-    // method line 866
-    .method public hidebysig specialname 
-           instance default string get_Message ()  cil managed 
+    // method line 795
+    .method public hidebysig 
+           instance default class [System]System.Net.IWebProxy GetWebProxy ()  cil managed 
     {
-        // Method begins at RVA 0x105e0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xf464
+	// Code size 105 (0x69)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		class [System]System.Net.WebProxy	V_0,
+		class [System]System.Net.IWebProxy	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_message
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance bool class NAnt.Core.Types.Proxy::get_IfDefined()
+	IL_0007:  brfalse IL_005b
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MailTask::get_Message
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance bool class NAnt.Core.Types.Proxy::get_UnlessDefined()
+	IL_0012:  brtrue IL_005b
 
-    // method line 867
-    .method public hidebysig specialname 
-           instance default void set_Message (string 'value')  cil managed 
+	IL_0017:  nop 
+	IL_0018:  ldarg.0 
+	IL_0019:  call instance string class NAnt.Core.Types.Proxy::get_Host()
+	IL_001e:  ldarg.0 
+	IL_001f:  call instance int32 class NAnt.Core.Types.Proxy::get_Port()
+	IL_0024:  newobj instance void class [System]System.Net.WebProxy::'.ctor'(string, int32)
+	IL_0029:  stloc.0 
+	IL_002a:  ldloc.0 
+	IL_002b:  ldarg.0 
+	IL_002c:  call instance bool class NAnt.Core.Types.Proxy::get_BypassOnLocal()
+	IL_0031:  callvirt instance void class [System]System.Net.WebProxy::set_BypassProxyOnLocal(bool)
+	IL_0036:  ldarg.0 
+	IL_0037:  call instance class NAnt.Core.Types.Credential class NAnt.Core.Types.Proxy::get_Credentials()
+	IL_003c:  brfalse IL_0054
+
+	IL_0041:  nop 
+	IL_0042:  ldloc.0 
+	IL_0043:  ldarg.0 
+	IL_0044:  call instance class NAnt.Core.Types.Credential class NAnt.Core.Types.Proxy::get_Credentials()
+	IL_0049:  callvirt instance class [System]System.Net.ICredentials class NAnt.Core.Types.Credential::GetCredential()
+	IL_004e:  callvirt instance void class [System]System.Net.WebProxy::set_Credentials(class [System]System.Net.ICredentials)
+	IL_0053:  nop 
+	IL_0054:  ldloc.0 
+	IL_0055:  stloc.1 
+	IL_0056:  br IL_0067
+
+	IL_005b:  nop 
+	IL_005c:  call class [System]System.Net.IWebProxy class [System]System.Net.GlobalProxySelection::get_Select()
+	IL_0061:  stloc.1 
+	IL_0062:  br IL_0067
+
+	IL_0067:  ldloc.1 
+	IL_0068:  ret 
+    } // end of method Proxy::GetWebProxy
+
+	.property instance string Host ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 68 6F 73 74 01 00 54 02 08 52 65 71 75   // ...host..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.Core.Types.Proxy::get_Host () 
+		.set instance default void NAnt.Core.Types.Proxy::set_Host (string 'value') 
+	}
+	.property instance int32 Port ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 70 6F 72 74 01 00 54 02 08 52 65 71 75   // ...port..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default int32 NAnt.Core.Types.Proxy::get_Port () 
+		.set instance default void NAnt.Core.Types.Proxy::set_Port (int32 'value') 
+	}
+	.property instance bool BypassOnLocal ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 62 79 70 61 73 73 6F 6E 6C 6F 63 61 6C   // ...bypassonlocal
+		01 00 54 02 08 52 65 71 75 69 72 65 64 00       ) // ..T..Required.
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.Proxy::get_BypassOnLocal () 
+		.set instance default void NAnt.Core.Types.Proxy::set_BypassOnLocal (bool 'value') 
+	}
+	.property instance class NAnt.Core.Types.Credential Credentials ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0B 63 72 65 64 65 6E 74 69 61 6C 73 01 00   // ...credentials..
+		54 02 08 52 65 71 75 69 72 65 64 00             ) // T..Required.
+
+		.get instance default class NAnt.Core.Types.Credential NAnt.Core.Types.Proxy::get_Credentials () 
+		.set instance default void NAnt.Core.Types.Proxy::set_Credentials (class NAnt.Core.Types.Credential 'value') 
+	}
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 02 69 66 01 00 54 02 08 52 65 71 75 69 72   // ...if..T..Requir
+		65 64 00                                        ) // ed.
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.Proxy::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.Proxy::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 75 6E 6C 65 73 73 01 00 54 02 08 52 65   // ...unless..T..Re
+		71 75 69 72 65 64 00                            ) // quired.
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.Proxy::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.Proxy::set_UnlessDefined (bool 'value') 
+	}
+  } // end of class NAnt.Core.Types.Proxy
+}
+
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi beforefieldinit Option
+  	extends NAnt.Core.Element
+  {
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 06 6F 70 74 69 6F 6E 00 00 ) // ...option..
+
+    .field  private  string _name
+    .field  private  string _value
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
+
+    // method line 796
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name, string 'value')  cil managed 
     {
-        // Method begins at RVA 0x105fb
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xf4d9
+	// Code size 29 (0x1d)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.MailTask::_message
-	IL_000d:  ret 
-    } // end of method MailTask::set_Message
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.Option::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  stfld string NAnt.Core.Types.Option::_name
+	IL_0015:  ldarg.0 
+	IL_0016:  ldarg.2 
+	IL_0017:  stfld string NAnt.Core.Types.Option::_value
+	IL_001c:  ret 
+    } // end of method Option::.ctor
 
-    // method line 868
+    // method line 797
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xf4f7
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.Option::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method Option::.ctor
+
+    // method line 798
     .method public hidebysig specialname 
-           instance default string get_Subject ()  cil managed 
+           instance default string get_OptionName ()  cil managed 
     {
-        // Method begins at RVA 0x1060c
+        // Method begins at RVA 0xf508
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_subject
+	IL_0002:  ldfld string NAnt.Core.Types.Option::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MailTask::get_Subject
+    } // end of method Option::get_OptionName
 
-    // method line 869
+    // method line 799
     .method public hidebysig specialname 
-           instance default void set_Subject (string 'value')  cil managed 
+           instance default void set_OptionName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x10627
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xf523
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.MailTask::_subject
-	IL_000d:  ret 
-    } // end of method MailTask::set_Subject
+	IL_0003:  stfld string NAnt.Core.Types.Option::_name
+	IL_0008:  ret 
+    } // end of method Option::set_OptionName
 
-    // method line 870
+    // method line 800
     .method public hidebysig specialname 
-           instance default bool get_IsBodyHtml ()  cil managed 
+           instance default string get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x10638
+        // Method begins at RVA 0xf530
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.MailTask::_isBodyHtml
+	IL_0002:  ldfld string NAnt.Core.Types.Option::_value
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MailTask::get_IsBodyHtml
+    } // end of method Option::get_Value
 
-    // method line 871
+    // method line 801
     .method public hidebysig specialname 
-           instance default void set_IsBodyHtml (bool 'value')  cil managed 
+           instance default void set_Value (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x10653
+        // Method begins at RVA 0xf54b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.MailTask::_isBodyHtml
+	IL_0003:  stfld string NAnt.Core.Types.Option::_value
 	IL_0008:  ret 
-    } // end of method MailTask::set_IsBodyHtml
+    } // end of method Option::set_Value
 
-    // method line 872
+    // method line 802
     .method public hidebysig specialname 
-           instance default string get_UserName ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x10660
+        // Method begins at RVA 0xf558
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_userName
+	IL_0002:  ldfld bool NAnt.Core.Types.Option::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MailTask::get_UserName
+    } // end of method Option::get_IfDefined
 
-    // method line 873
+    // method line 803
     .method public hidebysig specialname 
-           instance default void set_UserName (string 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1067b
+        // Method begins at RVA 0xf573
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.MailTask::_userName
+	IL_0003:  stfld bool NAnt.Core.Types.Option::_ifDefined
 	IL_0008:  ret 
-    } // end of method MailTask::set_UserName
+    } // end of method Option::set_IfDefined
 
-    // method line 874
+    // method line 804
     .method public hidebysig specialname 
-           instance default string get_Password ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x10688
+        // Method begins at RVA 0xf580
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_passWord
+	IL_0002:  ldfld bool NAnt.Core.Types.Option::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MailTask::get_Password
+    } // end of method Option::get_UnlessDefined
 
-    // method line 875
+    // method line 805
     .method public hidebysig specialname 
-           instance default void set_Password (string 'value')  cil managed 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x106a3
+        // Method begins at RVA 0xf59b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.MailTask::_passWord
+	IL_0003:  stfld bool NAnt.Core.Types.Option::_unlessDefined
 	IL_0008:  ret 
-    } // end of method MailTask::set_Password
+    } // end of method Option::set_UnlessDefined
 
-    // method line 876
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Tasks.MailTask/MailFormat get_Format ()  cil managed 
-    {
-        // Method begins at RVA 0x106b0
-	// Code size 29 (0x1d)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.Core.Tasks.MailTask/MailFormat	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Tasks.MailTask::get_IsBodyHtml()
-	IL_0007:  brfalse IL_0014
+	.property instance string OptionName ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		69 72 65 64 01                                  ) // ired.
 
-	IL_000c:  nop 
-	IL_000d:  ldc.i4.1 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_001b
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-	IL_0014:  ldc.i4.0 
-	IL_0015:  stloc.0 
-	IL_0016:  br IL_001b
+		.get instance default string NAnt.Core.Types.Option::get_OptionName () 
+		.set instance default void NAnt.Core.Types.Option::set_OptionName (string 'value') 
+	}
+	.property instance string Value ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 76 61 6C 75 65 00 00 ) // ...value..
 
-	IL_001b:  ldloc.0 
-	IL_001c:  ret 
-    } // end of method MailTask::get_Format
+		.get instance default string NAnt.Core.Types.Option::get_Value () 
+		.set instance default void NAnt.Core.Types.Option::set_Value (string 'value') 
+	}
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
 
-    // method line 877
-    .method public hidebysig specialname 
-           instance default void set_Format (valuetype NAnt.Core.Tasks.MailTask/MailFormat 'value')  cil managed 
-    {
-        // Method begins at RVA 0x106dc
-	// Code size 105 (0x69)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldtoken NAnt.Core.Tasks.MailTask/MailFormat
-	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000b:  ldarg.1 
-	IL_000c:  box NAnt.Core.Tasks.MailTask/MailFormat
-	IL_0011:  call bool class [mscorlib]System.Enum::IsDefined(class [mscorlib]System.Type, object)
-	IL_0016:  brtrue IL_0037
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	IL_001b:  nop 
-	IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0021:  ldstr "An invalid format {0} was specified."
-	IL_0026:  ldarg.1 
-	IL_0027:  box NAnt.Core.Tasks.MailTask/MailFormat
-	IL_002c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0031:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0036:  throw 
-	IL_0037:  nop 
-	IL_0038:  ldarga.s 1
-	IL_003a:  ldc.i4.1 
-	IL_003b:  box NAnt.Core.Tasks.MailTask/MailFormat
-	IL_0040:  constrained. NAnt.Core.Tasks.MailTask/MailFormat
-	IL_0046:  callvirt instance bool object::Equals(object)
-	IL_004b:  brfalse IL_005e
+		.get instance default bool NAnt.Core.Types.Option::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.Option::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
 
-	IL_0050:  nop 
-	IL_0051:  ldarg.0 
-	IL_0052:  ldc.i4.1 
-	IL_0053:  call instance void class NAnt.Core.Tasks.MailTask::set_IsBodyHtml(bool)
-	IL_0058:  nop 
-	IL_0059:  br IL_0067
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	IL_005e:  nop 
-	IL_005f:  ldarg.0 
-	IL_0060:  ldc.i4.0 
-	IL_0061:  call instance void class NAnt.Core.Tasks.MailTask::set_IsBodyHtml(bool)
-	IL_0066:  nop 
-	IL_0067:  nop 
-	IL_0068:  ret 
-    } // end of method MailTask::set_Format
+		.get instance default bool NAnt.Core.Types.Option::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.Option::set_UnlessDefined (bool 'value') 
+	}
+  } // end of class NAnt.Core.Types.Option
+}
 
-    // method line 878
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_Files ()  cil managed 
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi serializable beforefieldinit EnvironmentVariableCollection
+  	extends [mscorlib]System.Collections.CollectionBase
+  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+
+
+    // method line 806
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x10754
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_files
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+        // Method begins at RVA 0xf5a5
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method EnvironmentVariableCollection::.ctor
 
-	IL_000d:  ldloc.0 
+    // method line 807
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.EnvironmentVariableCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0xf5ae
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Types.EnvironmentVariableCollection::AddRange(class NAnt.Core.Types.EnvironmentVariableCollection)
 	IL_000e:  ret 
-    } // end of method MailTask::get_Files
+    } // end of method EnvironmentVariableCollection::.ctor
 
-    // method line 879
-    .method public hidebysig specialname 
-           instance default void set_Files (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    // method line 808
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.EnvironmentVariable[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x1076f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xf5be
+	// Code size 15 (0xf)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_files
-	IL_0008:  ret 
-    } // end of method MailTask::set_Files
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Types.EnvironmentVariableCollection::AddRange(class NAnt.Core.Types.EnvironmentVariable[])
+	IL_000e:  ret 
+    } // end of method EnvironmentVariableCollection::.ctor
 
-    // method line 880
+    // method line 809
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_Attachments ()  cil managed 
+           instance default class NAnt.Core.Types.EnvironmentVariable get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x1077c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xf5d0
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		class NAnt.Core.Types.EnvironmentVariable	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_attachments
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.Core.Types.EnvironmentVariable
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MailTask::get_Attachments
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method EnvironmentVariableCollection::get_Item
 
-    // method line 881
+    // method line 810
     .method public hidebysig specialname 
-           instance default void set_Attachments (class NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.EnvironmentVariable 'value')  cil managed 
     {
-        // Method begins at RVA 0x10797
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xf5f6
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_attachments
-	IL_0008:  ret 
-    } // end of method MailTask::set_Attachments
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method EnvironmentVariableCollection::set_Item
 
-    // method line 882
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 811
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.EnvironmentVariable get_Item (string name)  cil managed 
     {
-        // Method begins at RVA 0x107a4
-	// Code size 68 (0x44)
+        // Method begins at RVA 0xf608
+	// Code size 111 (0x6f)
 	.maxstack 2
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.Core.Tasks.MailTask::get_ToList()
-	IL_0007:  call bool string::IsNullOrEmpty(string)
-	IL_000c:  brfalse IL_0043
-
-	IL_0011:  ldarg.0 
-	IL_0012:  call instance string class NAnt.Core.Tasks.MailTask::get_CcList()
-	IL_0017:  call bool string::IsNullOrEmpty(string)
-	IL_001c:  brfalse IL_0043
-
-	IL_0021:  ldarg.0 
-	IL_0022:  call instance string class NAnt.Core.Tasks.MailTask::get_BccList()
-	IL_0027:  call bool string::IsNullOrEmpty(string)
-	IL_002c:  brfalse IL_0043
-
-	IL_0031:  nop 
-	IL_0032:  ldstr "There must be at least one name in the \"tolist\", \"cclist\" or \"bcclist\" attributes of the <mail> task."
-	IL_0037:  ldarg.0 
-	IL_0038:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_003d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0042:  throw 
-	IL_0043:  ret 
-    } // end of method MailTask::Initialize
-
-    // method line 883
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x107f4
-	// Code size 1509 (0x5e5)
-	.maxstack 7
 	.locals init (
-		class [System]System.Net.Mail.MailMessage	V_0,
-		class [System]System.Net.Mail.MailAddressCollection	V_1,
-		class [System]System.Net.Mail.MailAddressCollection	V_2,
-		class [System]System.Net.Mail.MailAddressCollection	V_3,
-		class [System]System.Net.Mail.MailAddress	V_4,
-		class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>	V_5,
-		class [System]System.Net.Mail.MailAddress	V_6,
-		class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>	V_7,
-		class [System]System.Net.Mail.MailAddress	V_8,
-		class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>	V_9,
-		class [System]System.Net.Mail.MailAddressCollection	V_10,
-		class [System]System.Net.Mail.MailAddress	V_11,
-		class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>	V_12,
-		class [mscorlib]System.IO.StringWriter	V_13,
-		string	V_14,
-		class [System]System.Collections.Specialized.StringEnumerator	V_15,
-		string	V_16,
-		class [mscorlib]System.Exception	V_17,
-		class [mscorlib]System.IDisposable	V_18,
-		string	V_19,
-		string	V_20,
-		class [System]System.Collections.Specialized.StringEnumerator	V_21,
-		class [System]System.Net.Mail.Attachment	V_22,
-		class [mscorlib]System.Exception	V_23,
-		class [mscorlib]System.IDisposable	V_24,
-		class [System]System.Net.Mail.SmtpClient	V_25,
-		class [mscorlib]System.Exception	V_26,
-		class [mscorlib]System.Text.StringBuilder	V_27,
-		int32	V_28,
-		bool	V_29)
+		class NAnt.Core.Types.EnvironmentVariable	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.Types.EnvironmentVariable	V_2,
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.Net.Mail.MailMessage::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance string class NAnt.Core.Tasks.MailTask::get_ToList()
-	IL_000e:  call instance class [System]System.Net.Mail.MailAddressCollection class NAnt.Core.Tasks.MailTask::ParseAddresses(string)
-	IL_0013:  stloc.1 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldarg.0 
-	IL_0016:  call instance string class NAnt.Core.Tasks.MailTask::get_CcList()
-	IL_001b:  call instance class [System]System.Net.Mail.MailAddressCollection class NAnt.Core.Tasks.MailTask::ParseAddresses(string)
-	IL_0020:  stloc.2 
-	IL_0021:  ldarg.0 
-	IL_0022:  ldarg.0 
-	IL_0023:  call instance string class NAnt.Core.Tasks.MailTask::get_BccList()
-	IL_0028:  call instance class [System]System.Net.Mail.MailAddressCollection class NAnt.Core.Tasks.MailTask::ParseAddresses(string)
-	IL_002d:  stloc.3 
-	IL_002e:  nop 
-	IL_002f:  ldloc.1 
-	IL_0030:  callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::GetEnumerator()
-	IL_0035:  stloc.s 5
-	.try { // 0
-	  IL_0037:  br IL_0054
-
-	  IL_003c:  ldloc.s 5
-	  IL_003e:  callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>::get_Current()
-	  IL_0043:  stloc.s 4
-	  IL_0045:  nop 
-	  IL_0046:  ldloc.0 
-	  IL_0047:  callvirt instance class [System]System.Net.Mail.MailAddressCollection class [System]System.Net.Mail.MailMessage::get_To()
-	  IL_004c:  ldloc.s 4
-	  IL_004e:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::Add(!0)
-	  IL_0053:  nop 
-	  IL_0054:  ldloc.s 5
-	  IL_0056:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_005b:  brtrue IL_003c
-
-	  IL_0060:  leave IL_0074
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0065:  ldloc.s 5
-	  IL_0067:  brfalse IL_0073
-
-	  IL_006c:  ldloc.s 5
-	  IL_006e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0073:  endfinally 
-	} // end handler 0
-	IL_0074:  nop 
-	IL_0075:  ldloc.2 
-	IL_0076:  callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::GetEnumerator()
-	IL_007b:  stloc.s 7
-	.try { // 1
-	  IL_007d:  br IL_009a
-
-	  IL_0082:  ldloc.s 7
-	  IL_0084:  callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>::get_Current()
-	  IL_0089:  stloc.s 6
-	  IL_008b:  nop 
-	  IL_008c:  ldloc.0 
-	  IL_008d:  callvirt instance class [System]System.Net.Mail.MailAddressCollection class [System]System.Net.Mail.MailMessage::get_CC()
-	  IL_0092:  ldloc.s 6
-	  IL_0094:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::Add(!0)
-	  IL_0099:  nop 
-	  IL_009a:  ldloc.s 7
-	  IL_009c:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00a1:  brtrue IL_0082
-
-	  IL_00a6:  leave IL_00ba
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00ab:  ldloc.s 7
-	  IL_00ad:  brfalse IL_00b9
-
-	  IL_00b2:  ldloc.s 7
-	  IL_00b4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00b9:  endfinally 
-	} // end handler 1
-	IL_00ba:  nop 
-	IL_00bb:  ldloc.3 
-	IL_00bc:  callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::GetEnumerator()
-	IL_00c1:  stloc.s 9
-	.try { // 2
-	  IL_00c3:  br IL_00e0
-
-	  IL_00c8:  ldloc.s 9
-	  IL_00ca:  callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>::get_Current()
-	  IL_00cf:  stloc.s 8
-	  IL_00d1:  nop 
-	  IL_00d2:  ldloc.0 
-	  IL_00d3:  callvirt instance class [System]System.Net.Mail.MailAddressCollection class [System]System.Net.Mail.MailMessage::get_Bcc()
-	  IL_00d8:  ldloc.s 8
-	  IL_00da:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::Add(!0)
-	  IL_00df:  nop 
-	  IL_00e0:  ldloc.s 9
-	  IL_00e2:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00e7:  brtrue IL_00c8
-
-	  IL_00ec:  leave IL_0100
-
-	} // end .try 2
-	finally  { // 2
-	  IL_00f1:  ldloc.s 9
-	  IL_00f3:  brfalse IL_00ff
-
-	  IL_00f8:  ldloc.s 9
-	  IL_00fa:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00ff:  endfinally 
-	} // end handler 2
-	IL_0100:  ldarg.0 
-	IL_0101:  call instance string class NAnt.Core.Tasks.MailTask::get_ReplyTo()
-	IL_0106:  call bool string::IsNullOrEmpty(string)
-	IL_010b:  brtrue IL_0176
-
-	IL_0110:  nop 
-	IL_0111:  ldarg.0 
-	IL_0112:  ldarg.0 
-	IL_0113:  call instance string class NAnt.Core.Tasks.MailTask::get_ReplyTo()
-	IL_0118:  call instance class [System]System.Net.Mail.MailAddressCollection class NAnt.Core.Tasks.MailTask::ParseAddresses(string)
-	IL_011d:  stloc.s 10
-	IL_011f:  ldloc.s 10
-	IL_0121:  callvirt instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::get_Count()
-	IL_0126:  ldc.i4.0 
-	IL_0127:  ble IL_0175
-
-	IL_012c:  nop 
-	IL_012d:  nop 
-	IL_012e:  ldloc.s 10
-	IL_0130:  callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::GetEnumerator()
-	IL_0135:  stloc.s 12
-	.try { // 3
-	  IL_0137:  br IL_0154
-
-	  IL_013c:  ldloc.s 12
-	  IL_013e:  callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>::get_Current()
-	  IL_0143:  stloc.s 11
-	  IL_0145:  nop 
-	  IL_0146:  ldloc.0 
-	  IL_0147:  callvirt instance class [System]System.Net.Mail.MailAddressCollection class [System]System.Net.Mail.MailMessage::get_ReplyToList()
-	  IL_014c:  ldloc.s 11
-	  IL_014e:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::Add(!0)
-	  IL_0153:  nop 
-	  IL_0154:  ldloc.s 12
-	  IL_0156:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_015b:  brtrue IL_013c
-
-	  IL_0160:  leave IL_0174
-
-	} // end .try 3
-	finally  { // 3
-	  IL_0165:  ldloc.s 12
-	  IL_0167:  brfalse IL_0173
-
-	  IL_016c:  ldloc.s 12
-	  IL_016e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0173:  endfinally 
-	} // end handler 3
-	IL_0174:  nop 
-	IL_0175:  nop 
-	IL_0176:  ldloc.0 
-	IL_0177:  ldarg.0 
-	IL_0178:  ldarg.0 
-	IL_0179:  call instance string class NAnt.Core.Tasks.MailTask::get_From()
-	IL_017e:  call instance class [System]System.Net.Mail.MailAddress class NAnt.Core.Tasks.MailTask::ConvertStringToMailAddress(string)
-	IL_0183:  callvirt instance void class [System]System.Net.Mail.MailMessage::set_From(class [System]System.Net.Mail.MailAddress)
-	IL_0188:  ldloc.0 
-	IL_0189:  ldarg.0 
-	IL_018a:  call instance string class NAnt.Core.Tasks.MailTask::get_Subject()
-	IL_018f:  callvirt instance void class [System]System.Net.Mail.MailMessage::set_Subject(string)
-	IL_0194:  ldloc.0 
-	IL_0195:  ldarg.0 
-	IL_0196:  call instance bool class NAnt.Core.Tasks.MailTask::get_IsBodyHtml()
-	IL_019b:  callvirt instance void class [System]System.Net.Mail.MailMessage::set_IsBodyHtml(bool)
-	IL_01a0:  ldarg.0 
-	IL_01a1:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.MailTask::get_Files()
-	IL_01a6:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_01ab:  brtrue IL_01cd
-
-	IL_01b0:  nop 
-	IL_01b1:  ldarg.0 
-	IL_01b2:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.MailTask::get_Files()
-	IL_01b7:  ldarg.0 
-	IL_01b8:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_01bd:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_01c2:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_01c7:  callvirt instance void class NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_01cc:  nop 
-	IL_01cd:  ldarg.0 
-	IL_01ce:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.MailTask::get_Attachments()
-	IL_01d3:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_01d8:  brtrue IL_01fa
-
-	IL_01dd:  nop 
-	IL_01de:  ldarg.0 
-	IL_01df:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.MailTask::get_Attachments()
-	IL_01e4:  ldarg.0 
-	IL_01e5:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_01ea:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_01ef:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_01f4:  callvirt instance void class NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_01f9:  nop 
-	IL_01fa:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01ff:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'(class [mscorlib]System.IFormatProvider)
-	IL_0204:  stloc.s 13
-	IL_0206:  ldarg.0 
-	IL_0207:  call instance string class NAnt.Core.Tasks.MailTask::get_Message()
-	IL_020c:  call bool string::IsNullOrEmpty(string)
-	IL_0211:  brtrue IL_022c
-
-	IL_0216:  nop 
-	IL_0217:  ldloc.s 13
-	IL_0219:  ldarg.0 
-	IL_021a:  call instance string class NAnt.Core.Tasks.MailTask::get_Message()
-	IL_021f:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_0224:  ldloc.s 13
-	IL_0226:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	IL_022b:  nop 
-	IL_022c:  nop 
-	IL_022d:  ldarg.0 
-	IL_022e:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.MailTask::get_Files()
-	IL_0233:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0238:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_023d:  stloc.s 15
-	.try { // 5
-	  IL_023f:  br IL_02b4
-
-	  IL_0244:  ldloc.s 15
-	  IL_0246:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_024b:  stloc.s 14
-	  IL_024d:  nop 
-	  .try { // 4
-	    IL_024e:  nop 
-	    IL_024f:  ldarg.0 
-	    IL_0250:  ldloc.s 14
-	    IL_0252:  call instance string class NAnt.Core.Tasks.MailTask::ReadFile(string)
-	    IL_0257:  stloc.s 16
-	    IL_0259:  ldloc.s 16
-	    IL_025b:  call bool string::IsNullOrEmpty(string)
-	    IL_0260:  brtrue IL_027c
-
-	    IL_0265:  nop 
-	    IL_0266:  ldloc.s 13
-	    IL_0268:  ldloc.s 16
-	    IL_026a:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string)
-	    IL_026f:  ldloc.s 13
-	    IL_0271:  ldsfld string [mscorlib]System.String::Empty
-	    IL_0276:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	    IL_027b:  nop 
-	    IL_027c:  nop 
-	    IL_027d:  leave IL_02b3
-
-	  } // end .try 4
-	  catch class [mscorlib]System.Exception { // 4
-	    IL_0282:  stloc.s 17
-	    IL_0284:  nop 
-	    IL_0285:  ldarg.0 
-	    IL_0286:  ldc.i4 4000
-	    IL_028b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0290:  ldstr "NA1135"
-	    IL_0295:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_029a:  ldloc.s 14
-	    IL_029c:  ldloc.s 17
-	    IL_029e:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	    IL_02a3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	    IL_02a8:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	    IL_02ad:  nop 
-	    IL_02ae:  leave IL_02b3
-
-	  } // end handler 4
-	  IL_02b3:  nop 
-	  IL_02b4:  ldloc.s 15
-	  IL_02b6:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_02bb:  brtrue IL_0244
-
-	  IL_02c0:  leave IL_02dc
-
-	} // end .try 5
-	finally  { // 5
-	  IL_02c5:  ldloc.s 15
-	  IL_02c7:  isinst [mscorlib]System.IDisposable
-	  IL_02cc:  dup 
-	  IL_02cd:  stloc.s 18
-	  IL_02cf:  brfalse IL_02db
-
-	  IL_02d4:  ldloc.s 18
-	  IL_02d6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_02db:  endfinally 
-	} // end handler 5
-	IL_02dc:  ldloc.s 13
-	IL_02de:  callvirt instance string object::ToString()
-	IL_02e3:  stloc.s 19
-	IL_02e5:  ldloc.s 19
-	IL_02e7:  callvirt instance int32 string::get_Length()
-	IL_02ec:  brfalse IL_02fb
-
-	IL_02f1:  nop 
-	IL_02f2:  ldloc.0 
-	IL_02f3:  ldloc.s 19
-	IL_02f5:  callvirt instance void class [System]System.Net.Mail.MailMessage::set_Body(string)
-	IL_02fa:  nop 
-	IL_02fb:  nop 
-	IL_02fc:  ldarg.0 
-	IL_02fd:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.MailTask::get_Attachments()
-	IL_0302:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0307:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_030c:  stloc.s 21
-	.try { // 7
-	  IL_030e:  br IL_036c
-
-	  IL_0313:  ldloc.s 21
-	  IL_0315:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_031a:  stloc.s 20
-	  IL_031c:  nop 
-	  .try { // 6
-	    IL_031d:  nop 
-	    IL_031e:  ldloc.s 20
-	    IL_0320:  newobj instance void class [System]System.Net.Mail.Attachment::'.ctor'(string)
-	    IL_0325:  stloc.s 22
-	    IL_0327:  ldloc.0 
-	    IL_0328:  callvirt instance class [System]System.Net.Mail.AttachmentCollection class [System]System.Net.Mail.MailMessage::get_Attachments()
-	    IL_032d:  ldloc.s 22
-	    IL_032f:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.Attachment>::Add(!0)
-	    IL_0334:  nop 
-	    IL_0335:  leave IL_036b
-
-	  } // end .try 6
-	  catch class [mscorlib]System.Exception { // 6
-	    IL_033a:  stloc.s 23
-	    IL_033c:  nop 
-	    IL_033d:  ldarg.0 
-	    IL_033e:  ldc.i4 4000
-	    IL_0343:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0348:  ldstr "NA1136"
-	    IL_034d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_0352:  ldloc.s 20
-	    IL_0354:  ldloc.s 23
-	    IL_0356:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	    IL_035b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	    IL_0360:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	    IL_0365:  nop 
-	    IL_0366:  leave IL_036b
-
-	  } // end handler 6
-	  IL_036b:  nop 
-	  IL_036c:  ldloc.s 21
-	  IL_036e:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0373:  brtrue IL_0313
-
-	  IL_0378:  leave IL_0394
-
-	} // end .try 7
-	finally  { // 7
-	  IL_037d:  ldloc.s 21
-	  IL_037f:  isinst [mscorlib]System.IDisposable
-	  IL_0384:  dup 
-	  IL_0385:  stloc.s 24
-	  IL_0387:  brfalse IL_0393
-
-	  IL_038c:  ldloc.s 24
-	  IL_038e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0393:  endfinally 
-	} // end handler 7
-	IL_0394:  ldarg.0 
-	IL_0395:  ldc.i4 3000
-	IL_039a:  ldstr "Sending mail..."
-	IL_039f:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_03a4:  ldarg.0 
-	IL_03a5:  ldc.i4 2000
-	IL_03aa:  ldstr "To: {0}"
-	IL_03af:  ldc.i4.1 
-	IL_03b0:  newarr [mscorlib]System.Object
-	IL_03b5:  dup 
-	IL_03b6:  ldc.i4.0 
-	IL_03b7:  ldloc.0 
-	IL_03b8:  callvirt instance class [System]System.Net.Mail.MailAddressCollection class [System]System.Net.Mail.MailMessage::get_To()
-	IL_03bd:  stelem.ref 
-	IL_03be:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_03c3:  ldarg.0 
-	IL_03c4:  ldc.i4 2000
-	IL_03c9:  ldstr "Cc: {0}"
-	IL_03ce:  ldc.i4.1 
-	IL_03cf:  newarr [mscorlib]System.Object
-	IL_03d4:  dup 
-	IL_03d5:  ldc.i4.0 
-	IL_03d6:  ldloc.0 
-	IL_03d7:  callvirt instance class [System]System.Net.Mail.MailAddressCollection class [System]System.Net.Mail.MailMessage::get_CC()
-	IL_03dc:  stelem.ref 
-	IL_03dd:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_03e2:  ldarg.0 
-	IL_03e3:  ldc.i4 2000
-	IL_03e8:  ldstr "Bcc: {0}"
-	IL_03ed:  ldc.i4.1 
-	IL_03ee:  newarr [mscorlib]System.Object
-	IL_03f3:  dup 
-	IL_03f4:  ldc.i4.0 
-	IL_03f5:  ldloc.0 
-	IL_03f6:  callvirt instance class [System]System.Net.Mail.MailAddressCollection class [System]System.Net.Mail.MailMessage::get_Bcc()
-	IL_03fb:  stelem.ref 
-	IL_03fc:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0401:  ldarg.0 
-	IL_0402:  ldc.i4 2000
-	IL_0407:  ldstr "Subject: {0}"
-	IL_040c:  ldc.i4.1 
-	IL_040d:  newarr [mscorlib]System.Object
-	IL_0412:  dup 
-	IL_0413:  ldc.i4.0 
-	IL_0414:  ldloc.0 
-	IL_0415:  callvirt instance string class [System]System.Net.Mail.MailMessage::get_Subject()
-	IL_041a:  stelem.ref 
-	IL_041b:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0420:  ldarg.0 
-	IL_0421:  call instance string class NAnt.Core.Tasks.MailTask::get_Mailhost()
-	IL_0426:  newobj instance void class [System]System.Net.Mail.SmtpClient::'.ctor'(string)
-	IL_042b:  stloc.s 25
-	.try { // 9
-	  IL_042d:  nop 
-	  .try { // 8
-	    IL_042e:  nop 
-	    IL_042f:  ldarg.0 
-	    IL_0430:  call instance string class NAnt.Core.Tasks.MailTask::get_UserName()
-	    IL_0435:  call bool string::IsNullOrEmpty(string)
-	    IL_043a:  brtrue IL_046e
-
-	    IL_043f:  ldarg.0 
-	    IL_0440:  call instance string class NAnt.Core.Tasks.MailTask::get_Password()
-	    IL_0445:  call bool string::IsNullOrEmpty(string)
-	    IL_044a:  brtrue IL_046e
-
-	    IL_044f:  nop 
-	    IL_0450:  ldloc.s 25
-	    IL_0452:  ldarg.0 
-	    IL_0453:  call instance string class NAnt.Core.Tasks.MailTask::get_UserName()
-	    IL_0458:  ldarg.0 
-	    IL_0459:  call instance string class NAnt.Core.Tasks.MailTask::get_Password()
-	    IL_045e:  newobj instance void class [System]System.Net.NetworkCredential::'.ctor'(string, string)
-	    IL_0463:  callvirt instance void class [System]System.Net.Mail.SmtpClient::set_Credentials(class [System]System.Net.ICredentialsByHost)
-	    IL_0468:  nop 
-	    IL_0469:  br IL_0497
-
-	    IL_046e:  nop 
-	    IL_046f:  ldsfld bool NAnt.Core.PlatformHelper::IsMono
-	    IL_0474:  brfalse IL_048c
-
-	    IL_0479:  nop 
-	    IL_047a:  ldloc.s 25
-	    IL_047c:  newobj instance void class [System]System.Net.NetworkCredential::'.ctor'()
-	    IL_0481:  callvirt instance void class [System]System.Net.Mail.SmtpClient::set_Credentials(class [System]System.Net.ICredentialsByHost)
-	    IL_0486:  nop 
-	    IL_0487:  br IL_0496
-
-	    IL_048c:  nop 
-	    IL_048d:  ldloc.s 25
-	    IL_048f:  ldc.i4.1 
-	    IL_0490:  callvirt instance void class [System]System.Net.Mail.SmtpClient::set_UseDefaultCredentials(bool)
-	    IL_0495:  nop 
-	    IL_0496:  nop 
-	    IL_0497:  ldloc.s 25
-	    IL_0499:  ldarg.0 
-	    IL_049a:  call instance bool class NAnt.Core.Tasks.MailTask::get_EnableSsl()
-	    IL_049f:  callvirt instance void class [System]System.Net.Mail.SmtpClient::set_EnableSsl(bool)
-	    IL_04a4:  ldloc.s 25
-	    IL_04a6:  ldarg.0 
-	    IL_04a7:  call instance int32 class NAnt.Core.Tasks.MailTask::get_Port()
-	    IL_04ac:  callvirt instance void class [System]System.Net.Mail.SmtpClient::set_Port(int32)
-	    IL_04b1:  ldloc.s 25
-	    IL_04b3:  ldloc.0 
-	    IL_04b4:  callvirt instance void class [System]System.Net.Mail.SmtpClient::Send(class [System]System.Net.Mail.MailMessage)
-	    IL_04b9:  nop 
-	    IL_04ba:  leave IL_05cf
-
-	  } // end .try 8
-	  catch class [mscorlib]System.Exception { // 8
-	    IL_04bf:  stloc.s 26
-	    IL_04c1:  nop 
-	    IL_04c2:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	    IL_04c7:  stloc.s 27
-	    IL_04c9:  ldloc.s 27
-	    IL_04cb:  ldstr "Error enountered while sending mail message."
-	    IL_04d0:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
-	    IL_04d5:  pop 
-	    IL_04d6:  ldloc.s 27
-	    IL_04d8:  ldstr "Make sure that the following information is valid:"
-	    IL_04dd:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
-	    IL_04e2:  pop 
-	    IL_04e3:  ldloc.s 27
-	    IL_04e5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_04ea:  ldstr "Mailhost: {0}"
-	    IL_04ef:  ldarg.0 
-	    IL_04f0:  call instance string class NAnt.Core.Tasks.MailTask::get_Mailhost()
-	    IL_04f5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_04fa:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
-	    IL_04ff:  pop 
-	    IL_0500:  ldloc.s 27
-	    IL_0502:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0507:  ldstr "Mailport: {0}"
-	    IL_050c:  ldarg.0 
-	    IL_050d:  call instance int32 class NAnt.Core.Tasks.MailTask::get_Port()
-	    IL_0512:  stloc.s 28
-	    IL_0514:  ldloca.s 28
-	    IL_0516:  constrained. [mscorlib]System.Int32
-	    IL_051c:  callvirt instance string object::ToString()
-	    IL_0521:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_0526:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
-	    IL_052b:  pop 
-	    IL_052c:  ldloc.s 27
-	    IL_052e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0533:  ldstr "Use SSL: {0}"
-	    IL_0538:  ldarg.0 
-	    IL_0539:  call instance bool class NAnt.Core.Tasks.MailTask::get_EnableSsl()
-	    IL_053e:  stloc.s 29
-	    IL_0540:  ldloca.s 29
-	    IL_0542:  constrained. [mscorlib]System.Boolean
-	    IL_0548:  callvirt instance string object::ToString()
-	    IL_054d:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_0552:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
-	    IL_0557:  pop 
-	    IL_0558:  ldarg.0 
-	    IL_0559:  call instance string class NAnt.Core.Tasks.MailTask::get_UserName()
-	    IL_055e:  call bool string::IsNullOrEmpty(string)
-	    IL_0563:  brtrue IL_059c
-
-	    IL_0568:  ldarg.0 
-	    IL_0569:  call instance string class NAnt.Core.Tasks.MailTask::get_Password()
-	    IL_056e:  call bool string::IsNullOrEmpty(string)
-	    IL_0573:  brtrue IL_059c
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0066
 
-	    IL_0578:  nop 
-	    IL_0579:  ldloc.s 27
-	    IL_057b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0580:  ldstr "Username: {0}"
-	    IL_0585:  ldarg.0 
-	    IL_0586:  call instance string class NAnt.Core.Tasks.MailTask::get_UserName()
-	    IL_058b:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_0590:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
-	    IL_0595:  pop 
-	    IL_0596:  nop 
-	    IL_0597:  br IL_05ab
+	IL_0007:  nop 
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0014:  stloc.1 
+	.try { // 0
+	  IL_0015:  br IL_0041
 
-	    IL_059c:  nop 
-	    IL_059d:  ldloc.s 27
-	    IL_059f:  ldstr "Using default credentials"
-	    IL_05a4:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
-	    IL_05a9:  pop 
-	    IL_05aa:  nop 
-	    IL_05ab:  ldstr "Error sending mail:"
-	    IL_05b0:  call string class [mscorlib]System.Environment::get_NewLine()
-	    IL_05b5:  ldloc.s 27
-	    IL_05b7:  callvirt instance string object::ToString()
-	    IL_05bc:  call string string::Concat(string, string, string)
-	    IL_05c1:  ldarg.0 
-	    IL_05c2:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	    IL_05c7:  ldloc.s 26
-	    IL_05c9:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	    IL_05ce:  throw 
-	  } // end handler 8
-	  IL_05cf:  nop 
-	  IL_05d0:  leave IL_05e4
+	  IL_001a:  ldloc.1 
+	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0020:  castclass NAnt.Core.Types.EnvironmentVariable
+	  IL_0025:  stloc.0 
+	  IL_0026:  nop 
+	  IL_0027:  ldloc.0 
+	  IL_0028:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_VariableName()
+	  IL_002d:  ldarg.1 
+	  IL_002e:  call bool string::op_Equality(string, string)
+	  IL_0033:  brfalse IL_0040
 
-	} // end .try 9
-	finally  { // 9
-	  IL_05d5:  ldloc.s 25
-	  IL_05d7:  brfalse IL_05e3
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  stloc.2 
+	  IL_003b:  leave IL_006d
 
-	  IL_05dc:  ldloc.s 25
-	  IL_05de:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_05e3:  endfinally 
-	} // end handler 9
-	IL_05e4:  ret 
-    } // end of method MailTask::ExecuteTask
+	  IL_0040:  nop 
+	  IL_0041:  ldloc.1 
+	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0047:  brtrue IL_001a
 
-    // method line 884
-    .method private hidebysig 
-           instance default string ReadFile (string filename)  cil managed 
-    {
-        // Method begins at RVA 0x10edc
-	// Code size 49 (0x31)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.StreamReader	V_0,
-		string	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call class [mscorlib]System.IO.FileStream class [mscorlib]System.IO.File::OpenRead(string)
-	IL_0007:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(class [mscorlib]System.IO.Stream)
-	IL_000c:  stloc.0 
-	.try { // 0
-	  IL_000d:  nop 
-	  IL_000e:  ldloc.0 
-	  IL_000f:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
-	  IL_0014:  stloc.1 
-	  IL_0015:  ldloc.0 
-	  IL_0016:  callvirt instance void class [mscorlib]System.IO.TextReader::Close()
-	  IL_001b:  ldloc.1 
-	  IL_001c:  stloc.2 
-	  IL_001d:  leave IL_002f
+	  IL_004c:  leave IL_0065
 
 	} // end .try 0
 	finally  { // 0
-	  IL_0022:  ldloc.0 
-	  IL_0023:  brfalse IL_002e
+	  IL_0051:  ldloc.1 
+	  IL_0052:  isinst [mscorlib]System.IDisposable
+	  IL_0057:  dup 
+	  IL_0058:  stloc.3 
+	  IL_0059:  brfalse IL_0064
 
-	  IL_0028:  ldloc.0 
-	  IL_0029:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_002e:  endfinally 
+	  IL_005e:  ldloc.3 
+	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0064:  endfinally 
 	} // end handler 0
-	IL_002f:  ldloc.2 
-	IL_0030:  ret 
-    } // end of method MailTask::ReadFile
-
-    // method line 885
-    .method private hidebysig 
-           instance default class [System]System.Net.Mail.MailAddressCollection ParseAddresses (string addresses)  cil managed 
-    {
-        // Method begins at RVA 0x10f2c
-	// Code size 147 (0x93)
-	.maxstack 5
-	.locals init (
-		class [System]System.Net.Mail.MailAddressCollection	V_0,
-		string[]	V_1,
-		string	V_2,
-		string[]	V_3,
-		int32	V_4,
-		class [System]System.Net.Mail.MailAddressCollection	V_5)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.Net.Mail.MailAddressCollection::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.1 
-	IL_0008:  call bool string::IsNullOrEmpty(string)
-	IL_000d:  brtrue IL_0088
-
-	IL_0012:  nop 
-	IL_0013:  ldarg.1 
-	IL_0014:  ldstr ";"
-	IL_0019:  callvirt instance bool string::Contains(string)
-	IL_001e:  brfalse IL_0078
-
-	IL_0023:  nop 
-	IL_0024:  ldarg.1 
-	IL_0025:  ldc.i4.1 
-	IL_0026:  newarr [mscorlib]System.Char
-	IL_002b:  dup 
-	IL_002c:  ldc.i4.0 
-	IL_002d:  ldc.i4.s 0x3b
-	IL_002f:  stelem.i2 
-	IL_0030:  callvirt instance string[] string::Split(char[])
-	IL_0035:  stloc.1 
-	IL_0036:  nop 
-	IL_0037:  ldloc.1 
-	IL_0038:  stloc.3 
-	IL_0039:  ldc.i4.0 
-	IL_003a:  stloc.s 4
-	IL_003c:  br IL_0068
-
-	IL_0041:  ldloc.3 
-	IL_0042:  ldloc.s 4
-	IL_0044:  ldelem.ref 
-	IL_0045:  stloc.2 
-	IL_0046:  nop 
-	IL_0047:  ldloc.2 
-	IL_0048:  call bool string::IsNullOrEmpty(string)
-	IL_004d:  brtrue IL_0061
-
-	IL_0052:  nop 
-	IL_0053:  ldloc.0 
-	IL_0054:  ldarg.0 
-	IL_0055:  ldloc.2 
-	IL_0056:  call instance class [System]System.Net.Mail.MailAddress class NAnt.Core.Tasks.MailTask::ConvertStringToMailAddress(string)
-	IL_005b:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::Add(!0)
-	IL_0060:  nop 
-	IL_0061:  nop 
-	IL_0062:  ldloc.s 4
-	IL_0064:  ldc.i4.1 
-	IL_0065:  add 
-	IL_0066:  stloc.s 4
-	IL_0068:  ldloc.s 4
-	IL_006a:  ldloc.3 
-	IL_006b:  ldlen 
-	IL_006c:  conv.i4 
-	IL_006d:  blt IL_0041
-
-	IL_0072:  nop 
-	IL_0073:  br IL_0087
-
-	IL_0078:  nop 
-	IL_0079:  ldloc.0 
-	IL_007a:  ldarg.0 
-	IL_007b:  ldarg.1 
-	IL_007c:  call instance class [System]System.Net.Mail.MailAddress class NAnt.Core.Tasks.MailTask::ConvertStringToMailAddress(string)
-	IL_0081:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::Add(!0)
-	IL_0086:  nop 
-	IL_0087:  nop 
-	IL_0088:  ldloc.0 
-	IL_0089:  stloc.s 5
-	IL_008b:  br IL_0090
+	IL_0065:  nop 
+	IL_0066:  ldnull 
+	IL_0067:  stloc.2 
+	IL_0068:  br IL_006d
 
-	IL_0090:  ldloc.s 5
-	IL_0092:  ret 
-    } // end of method MailTask::ParseAddresses
+	IL_006d:  ldloc.2 
+	IL_006e:  ret 
+    } // end of method EnvironmentVariableCollection::get_Item
 
-    // method line 886
-    .method private hidebysig 
-           instance default class [System]System.Net.Mail.MailAddress ConvertStringToMailAddress (string address)  cil managed 
+    // method line 812
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
     {
-        // Method begins at RVA 0x10fcc
-	// Code size 298 (0x12a)
-	.maxstack 4
+        // Method begins at RVA 0xf694
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		string	V_0,
-		string	V_1,
-		string	V_2,
-		string[]	V_3,
-		string	V_4,
-		string[]	V_5,
-		int32	V_6,
-		class [System]System.Text.RegularExpressions.Regex	V_7,
-		class [System]System.Text.RegularExpressions.Match	V_8,
-		class [System]System.Net.Mail.MailAddress	V_9,
-		class [System]System.Net.Mail.MailAddress	V_10)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance string class NAnt.Core.Tasks.MailTask::UnescapeXmlCodes(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldnull 
-	IL_000a:  stloc.1 
-	IL_000b:  ldnull 
-	IL_000c:  stloc.2 
-	IL_000d:  ldc.i4.4 
-	IL_000e:  newarr [mscorlib]System.String
-	IL_0013:  dup 
-	IL_0014:  ldc.i4.0 
-	IL_0015:  ldstr "^(?<fullname>.+)\\s<(?<email>[^<>\\(\\)\\s]+@[^<>\\(\\)\\s]+\\.[^<>\\(\\)\\s]+)>$"
-	IL_001a:  stelem.ref 
-	IL_001b:  dup 
-	IL_001c:  ldc.i4.1 
-	IL_001d:  ldstr "^<(?<email>[^<>\\(\\)\\s]+@[^<>\\(\\)\\s]+\\.[^\\s]+)>\\s(?<fullname>.+)$"
-	IL_0022:  stelem.ref 
-	IL_0023:  dup 
-	IL_0024:  ldc.i4.2 
-	IL_0025:  ldstr "^\\((?<fullname>.+)\\)\\s(?<email>[^<>\\(\\)\\s]+@[^<>\\(\\)\\s]+\\.[^<>\\(\\)\\s]+)$"
-	IL_002a:  stelem.ref 
-	IL_002b:  dup 
-	IL_002c:  ldc.i4.3 
-	IL_002d:  ldstr "^(?<email>[^<>\\(\\)\\s]+@[^<>\\(\\)\\s]+\\.[^\\s]+)\\s\\((?<fullname>.+)\\)$"
-	IL_0032:  stelem.ref 
-	IL_0033:  stloc.3 
-	IL_0034:  nop 
-	IL_0035:  ldloc.3 
-	IL_0036:  stloc.s 5
-	IL_0038:  ldc.i4.0 
-	IL_0039:  stloc.s 6
-	IL_003b:  br IL_00ac
-
-	IL_0040:  ldloc.s 5
-	IL_0042:  ldloc.s 6
-	IL_0044:  ldelem.ref 
-	IL_0045:  stloc.s 4
-	IL_0047:  nop 
-	IL_0048:  ldloc.s 4
-	IL_004a:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
-	IL_004f:  stloc.s 7
-	IL_0051:  ldloc.s 7
-	IL_0053:  ldloc.0 
-	IL_0054:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
-	IL_0059:  stloc.s 8
-	IL_005b:  ldloc.s 8
-	IL_005d:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
-	IL_0062:  brfalse IL_00a5
-
-	IL_0067:  nop 
-	IL_0068:  ldloc.s 8
-	IL_006a:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	IL_006f:  ldstr "email"
-	IL_0074:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	IL_0079:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	IL_007e:  callvirt instance string string::Trim()
-	IL_0083:  stloc.2 
-	IL_0084:  ldloc.s 8
-	IL_0086:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	IL_008b:  ldstr "fullname"
-	IL_0090:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	IL_0095:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	IL_009a:  callvirt instance string string::Trim()
-	IL_009f:  stloc.1 
-	IL_00a0:  br IL_00b7
-
-	IL_00a5:  nop 
-	IL_00a6:  ldloc.s 6
-	IL_00a8:  ldc.i4.1 
-	IL_00a9:  add 
-	IL_00aa:  stloc.s 6
-	IL_00ac:  ldloc.s 6
-	IL_00ae:  ldloc.s 5
-	IL_00b0:  ldlen 
-	IL_00b1:  conv.i4 
-	IL_00b2:  blt IL_0040
-
-	.try { // 0
-	  IL_00b7:  nop 
-	  IL_00b8:  ldloc.1 
-	  IL_00b9:  call bool string::IsNullOrEmpty(string)
-	  IL_00be:  brtrue IL_00de
-
-	  IL_00c3:  ldloc.2 
-	  IL_00c4:  call bool string::IsNullOrEmpty(string)
-	  IL_00c9:  brtrue IL_00de
-
-	  IL_00ce:  nop 
-	  IL_00cf:  ldloc.2 
-	  IL_00d0:  ldloc.1 
-	  IL_00d1:  newobj instance void class [System]System.Net.Mail.MailAddress::'.ctor'(string, string)
-	  IL_00d6:  stloc.s 9
-	  IL_00d8:  nop 
-	  IL_00d9:  br IL_0102
-
-	  IL_00de:  ldloc.2 
-	  IL_00df:  call bool string::IsNullOrEmpty(string)
-	  IL_00e4:  brtrue IL_00f8
-
-	  IL_00e9:  nop 
-	  IL_00ea:  ldloc.2 
-	  IL_00eb:  newobj instance void class [System]System.Net.Mail.MailAddress::'.ctor'(string)
-	  IL_00f0:  stloc.s 9
-	  IL_00f2:  nop 
-	  IL_00f3:  br IL_0102
-
-	  IL_00f8:  nop 
-	  IL_00f9:  ldloc.0 
-	  IL_00fa:  newobj instance void class [System]System.Net.Mail.MailAddress::'.ctor'(string)
-	  IL_00ff:  stloc.s 9
-	  IL_0101:  nop 
-	  IL_0102:  ldloc.s 9
-	  IL_0104:  stloc.s 10
-	  IL_0106:  leave IL_0127
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	} // end .try 0
-	catch class [mscorlib]System.FormatException { // 0
-	  IL_010b:  pop 
-	  IL_010c:  nop 
-	  IL_010d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0112:  ldstr "{0} is not a recognized email address"
-	  IL_0117:  ldloc.0 
-	  IL_0118:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_011d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	  IL_0122:  throw 
-	} // end handler 0
-	catch class [mscorlib]System.Exception { // 1
-	  IL_0123:  pop 
-	  IL_0124:  nop 
-	  IL_0125:  rethrow 
-	} // end handler 1
-	IL_0127:  ldloc.s 10
-	IL_0129:  ret 
-    } // end of method MailTask::ConvertStringToMailAddress
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method EnvironmentVariableCollection::Add
 
-    // method line 887
-    .method private hidebysig 
-           instance default string UnescapeXmlCodes (string 'value')  cil managed 
+    // method line 813
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.EnvironmentVariable[] items)  cil managed 
     {
-        // Method begins at RVA 0x11120
-	// Code size 85 (0x55)
+        // Method begins at RVA 0xf6b8
+	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
-		string	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "&quot;"
-	IL_0007:  ldstr "\""
-	IL_000c:  callvirt instance string string::Replace(string, string)
-	IL_0011:  ldstr "&amp;"
-	IL_0016:  ldstr "&"
-	IL_001b:  callvirt instance string string::Replace(string, string)
-	IL_0020:  ldstr "&apos;"
-	IL_0025:  ldstr "'"
-	IL_002a:  callvirt instance string string::Replace(string, string)
-	IL_002f:  ldstr "&lt;"
-	IL_0034:  ldstr "<"
-	IL_0039:  callvirt instance string string::Replace(string, string)
-	IL_003e:  ldstr "&gt;"
-	IL_0043:  ldstr ">"
-	IL_0048:  callvirt instance string string::Replace(string, string)
-	IL_004d:  stloc.0 
-	IL_004e:  br IL_0053
-
-	IL_0053:  ldloc.0 
-	IL_0054:  ret 
-    } // end of method MailTask::UnescapeXmlCodes
-
-	.property instance string From ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 66 72 6F 6D 01 00 54 02 08 52 65 71 75   // ...from..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.Core.Tasks.MailTask::get_From () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_From (string 'value') 
-	}
-	.property instance string ToList ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 74 6F 6C 69 73 74 00 00 ) // ...tolist..
-
-		.get instance default string NAnt.Core.Tasks.MailTask::get_ToList () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_ToList (string 'value') 
-	}
-	.property instance string ReplyTo ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 72 65 70 6C 79 74 6F 00 00 ) // ...replyto..
-
-		.get instance default string NAnt.Core.Tasks.MailTask::get_ReplyTo () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_ReplyTo (string 'value') 
-	}
-	.property instance string CcList ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 63 63 6C 69 73 74 00 00 ) // ...cclist..
-
-		.get instance default string NAnt.Core.Tasks.MailTask::get_CcList () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_CcList (string 'value') 
-	}
-	.property instance string BccList ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 62 63 63 6C 69 73 74 00 00 ) // ...bcclist..
-
-		.get instance default string NAnt.Core.Tasks.MailTask::get_BccList () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_BccList (string 'value') 
-	}
-	.property instance string Mailhost ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 6D 61 69 6C 68 6F 73 74 00 00 ) // ...mailhost..
-
-		.get instance default string NAnt.Core.Tasks.MailTask::get_Mailhost () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_Mailhost (string 'value') 
-	}
-	.property instance int32 Port ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 6D 61 69 6C 70 6F 72 74 00 00 ) // ...mailport..
-
-		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default int32 NAnt.Core.Tasks.MailTask::get_Port () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_Port (int32 'value') 
-	}
-	.property instance bool EnableSsl ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 73 73 6C 00 00 ) // ...ssl..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Tasks.MailTask::get_EnableSsl () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_EnableSsl (bool 'value') 
-	}
-	.property instance string Message ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6D 65 73 73 61 67 65 00 00 ) // ...message..
-
-		.get instance default string NAnt.Core.Tasks.MailTask::get_Message () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_Message (string 'value') 
-	}
-	.property instance string Subject ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 73 75 62 6A 65 63 74 00 00 ) // ...subject..
-
-		.get instance default string NAnt.Core.Tasks.MailTask::get_Subject () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_Subject (string 'value') 
-	}
-	.property instance bool IsBodyHtml ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 69 73 62 6F 64 79 68 74 6D 6C 00 00 ) // ...isbodyhtml..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Tasks.MailTask::get_IsBodyHtml () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_IsBodyHtml (bool 'value') 
-	}
-	.property instance string UserName ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 75 73 65 72 00 00 ) // ...user..
-
-		.get instance default string NAnt.Core.Tasks.MailTask::get_UserName () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_UserName (string 'value') 
-	}
-	.property instance string Password ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 70 61 73 73 77 6F 72 64 00 00 ) // ...password..
-
-		.get instance default string NAnt.Core.Tasks.MailTask::get_Password () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_Password (string 'value') 
-	}
-	.property instance valuetype NAnt.Core.Tasks.MailTask/MailFormat Format ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 66 6F 72 6D 61 74 00 00 ) // ...format..
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 41 54 68 65 20 66 6F 72 6D 61 74 20 61 74   // ..AThe format at
-		74 72 69 62 75 74 65 20 69 73 20 64 65 70 72 65   // tribute is depre
-		63 61 74 65 64 2E 20 50 6C 65 61 73 65 20 75 73   // cated. Please us
-		65 20 69 73 62 6F 64 79 68 74 6D 6C 20 69 6E 73   // e isbodyhtml ins
-		74 65 61 64 00 00 00                            ) // tead...
-
-		.get instance default valuetype NAnt.Core.Tasks.MailTask/MailFormat NAnt.Core.Tasks.MailTask::get_Format () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_Format (valuetype NAnt.Core.Tasks.MailTask/MailFormat 'value') 
-	}
-	.property instance class NAnt.Core.Types.FileSet Files ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 05 66 69 6C 65 73 00 00 ) // ...files..
-
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::get_Files () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_Files (class NAnt.Core.Types.FileSet 'value') 
-	}
-	.property instance class NAnt.Core.Types.FileSet Attachments ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0B 61 74 74 61 63 68 6D 65 6E 74 73 00 00 ) // ...attachments..
-
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::get_Attachments () 
-		.set instance default void NAnt.Core.Tasks.MailTask::set_Attachments (class NAnt.Core.Types.FileSet 'value') 
-	}
-  .class nested public auto ansi sealed MailFormat
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.Tasks.MailTask/MailFormat Text = int32(0x00000000)
-    .field public static literal  valuetype NAnt.Core.Tasks.MailTask/MailFormat Html = int32(0x00000001)
-
-  } // end of class MailFormat
-
-  } // end of class NAnt.Core.Tasks.MailTask
-}
-
-.namespace NAnt.Core.Tasks
-{
-  .class public auto ansi beforefieldinit MoveTask
-  	extends NAnt.Core.Tasks.CopyTask
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 6D 6F 76 65 00 00 ) // ...move..
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
 
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.Core.Types.EnvironmentVariableCollection::Add(class NAnt.Core.Types.EnvironmentVariable)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
 
-    // method line 888
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x124a9
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Tasks.CopyTask::'.ctor'()
-	IL_0006:  ret 
-    } // end of method MoveTask::.ctor
+	IL_0021:  ret 
+    } // end of method EnvironmentVariableCollection::AddRange
 
-    // method line 889
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_SourceFile ()  cil managed 
+    // method line 814
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.EnvironmentVariableCollection items)  cil managed 
     {
-        // Method begins at RVA 0x124b4
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xf6e8
+	// Code size 41 (0x29)
+	.maxstack 3
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MoveTask::get_SourceFile
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.Core.Types.EnvironmentVariable class NAnt.Core.Types.EnvironmentVariableCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Core.Types.EnvironmentVariableCollection::Add(class NAnt.Core.Types.EnvironmentVariable)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
 
-    // method line 890
-    .method public virtual hidebysig specialname 
-           instance default void set_SourceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x124cf
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Tasks.CopyTask::set_SourceFile(class [mscorlib]System.IO.FileInfo)
-	IL_0008:  ret 
-    } // end of method MoveTask::set_SourceFile
+	IL_0028:  ret 
+    } // end of method EnvironmentVariableCollection::AddRange
 
-    // method line 891
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_ToFile ()  cil managed 
+    // method line 815
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
     {
-        // Method begins at RVA 0x124dc
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xf720
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MoveTask::get_ToFile
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-    // method line 892
-    .method public virtual hidebysig specialname 
-           instance default void set_ToFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x124f7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Tasks.CopyTask::set_ToFile(class [mscorlib]System.IO.FileInfo)
-	IL_0008:  ret 
-    } // end of method MoveTask::set_ToFile
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method EnvironmentVariableCollection::Contains
 
-    // method line 893
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
+    // method line 816
+    .method public hidebysig 
+           instance default bool Contains (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x12504
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xf744
+	// Code size 22 (0x16)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MoveTask::get_ToDirectory
-
-    // method line 894
-    .method public virtual hidebysig specialname 
-           instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1251f
-	// Code size 9 (0x9)
-	.maxstack 8
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Tasks.CopyTask::set_ToDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_0008:  ret 
-    } // end of method MoveTask::set_ToDirectory
-
-    // method line 895
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_CopyFileSet ()  cil managed 
-    {
-        // Method begins at RVA 0x1252c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0003:  call instance class NAnt.Core.Types.EnvironmentVariable class NAnt.Core.Types.EnvironmentVariableCollection::get_Item(string)
+	IL_0008:  ldnull 
+	IL_0009:  ceq 
+	IL_000b:  ldc.i4.0 
+	IL_000c:  ceq 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0014
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MoveTask::get_CopyFileSet
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method EnvironmentVariableCollection::Contains
 
-    // method line 896
-    .method public virtual hidebysig specialname 
-           instance default void set_CopyFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    // method line 817
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.EnvironmentVariable[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x12547
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xf766
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Tasks.CopyTask::set_CopyFileSet(class NAnt.Core.Types.FileSet)
-	IL_0008:  ret 
-    } // end of method MoveTask::set_CopyFileSet
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method EnvironmentVariableCollection::CopyTo
 
-    // method line 897
-    .method public virtual hidebysig specialname 
-           instance default bool get_Flatten ()  cil managed 
+    // method line 818
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
     {
-        // Method begins at RVA 0x12554
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xf778
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MoveTask::get_Flatten
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method EnvironmentVariableCollection::IndexOf
 
-    // method line 898
-    .method public virtual hidebysig specialname 
-           instance default void set_Flatten (bool 'value')  cil managed 
+    // method line 819
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
     {
-        // Method begins at RVA 0x1256f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xf799
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Tasks.CopyTask::set_Flatten(bool)
-	IL_0008:  ret 
-    } // end of method MoveTask::set_Flatten
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method EnvironmentVariableCollection::Insert
 
-    // method line 899
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.Core.Filters.FilterChain get_Filters ()  cil managed 
+    // method line 820
+    .method public hidebysig 
+           instance default class NAnt.Core.Types.EnvironmentVariableEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x1257c
+        // Method begins at RVA 0xf7ac
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterChain	V_0)
+		class NAnt.Core.Types.EnvironmentVariableEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.CopyTask::get_Filters()
+	IL_0002:  newobj instance void class NAnt.Core.Types.EnvironmentVariableEnumerator::'.ctor'(class NAnt.Core.Types.EnvironmentVariableCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method MoveTask::get_Filters
-
-    // method line 900
-    .method public virtual hidebysig specialname 
-           instance default void set_Filters (class NAnt.Core.Filters.FilterChain 'value')  cil managed 
-    {
-        // Method begins at RVA 0x12597
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Tasks.CopyTask::set_Filters(class NAnt.Core.Filters.FilterChain)
-	IL_0008:  ret 
-    } // end of method MoveTask::set_Filters
+    } // end of method EnvironmentVariableCollection::GetEnumerator
 
-    // method line 901
-    .method family virtual hidebysig 
-           instance default void DoFileOperations ()  cil managed 
+    // method line 821
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.Types.EnvironmentVariable item)  cil managed 
     {
-        // Method begins at RVA 0x125a4
-	// Code size 689 (0x2b1)
+        // Method begins at RVA 0xf7c7
+	// Code size 14 (0xe)
 	.maxstack 8
-	.locals init (
-		int32	V_0,
-		class NAnt.Core.Tasks.CopyTask/FileOperation	V_1,
-		string	V_2,
-		valuetype NAnt.Core.Tasks.CopyTask/OperationType	V_3,
-		string	V_4,
-		class [mscorlib]System.IO.IOException	V_5,
-		int32	V_6,
-		int32	V_7)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
-	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Count()
-	IL_000c:  ldc.i4.0 
-	IL_000d:  bgt IL_0018
-
-	IL_0012:  nop 
-	IL_0013:  br IL_02b0
-
-	IL_0018:  ldc.i4.0 
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_01fd
-
-	IL_001f:  nop 
-	IL_0020:  ldarg.0 
-	IL_0021:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
-	IL_0026:  ldloc.0 
-	IL_0027:  callvirt instance !0 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Item(int32)
-	IL_002c:  stloc.1 
-	IL_002d:  ldloc.1 
-	IL_002e:  callvirt instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::SourceIsIdenticalToTarget()
-	IL_0033:  brfalse IL_0059
-
-	IL_0038:  nop 
-	IL_0039:  ldarg.0 
-	IL_003a:  ldc.i4 4000
-	IL_003f:  ldstr "Skipping self-move of {0}."
-	IL_0044:  ldloc.1 
-	IL_0045:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
-	IL_004a:  call string string::Format(string, object)
-	IL_004f:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_0054:  br IL_01f9
-
-	.try { // 0
-	  IL_0059:  nop 
-	  IL_005a:  ldarg.0 
-	  IL_005b:  ldc.i4 2000
-	  IL_0060:  ldstr "Moving {0}."
-	  IL_0065:  ldc.i4.1 
-	  IL_0066:  newarr [mscorlib]System.Object
-	  IL_006b:  dup 
-	  IL_006c:  ldc.i4.0 
-	  IL_006d:  ldloc.1 
-	  IL_006e:  callvirt instance string object::ToString()
-	  IL_0073:  stelem.ref 
-	  IL_0074:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0079:  ldnull 
-	  IL_007a:  stloc.2 
-	  IL_007b:  ldloc.1 
-	  IL_007c:  callvirt instance valuetype NAnt.Core.Tasks.CopyTask/OperationType class NAnt.Core.Tasks.CopyTask/FileOperation::get_OperationType()
-	  IL_0081:  stloc.3 
-	  IL_0082:  ldloc.3 
-	  IL_0083:  switch (
-	    IL_0099,
-	    IL_0118,
-	    IL_0199)
-	  IL_0094:  br IL_01c1
-
-	  IL_0099:  ldloc.1 
-	  IL_009a:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_009f:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	  IL_00a4:  stloc.2 
-	  IL_00a5:  ldloc.2 
-	  IL_00a6:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_00ab:  brtrue IL_00d3
-
-	  IL_00b0:  nop 
-	  IL_00b1:  ldloc.2 
-	  IL_00b2:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	  IL_00b7:  pop 
-	  IL_00b8:  ldarg.0 
-	  IL_00b9:  ldc.i4 2000
-	  IL_00be:  ldstr "Created directory '{0}'."
-	  IL_00c3:  ldc.i4.1 
-	  IL_00c4:  newarr [mscorlib]System.Object
-	  IL_00c9:  dup 
-	  IL_00ca:  ldc.i4.0 
-	  IL_00cb:  ldloc.2 
-	  IL_00cc:  stelem.ref 
-	  IL_00cd:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_00d2:  nop 
-	  IL_00d3:  ldloc.1 
-	  IL_00d4:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_00d9:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_00de:  brfalse IL_00f0
-
-	  IL_00e3:  nop 
-	  IL_00e4:  ldloc.1 
-	  IL_00e5:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_00ea:  call void class [mscorlib]System.IO.File::Delete(string)
-	  IL_00ef:  nop 
-	  IL_00f0:  ldloc.1 
-	  IL_00f1:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
-	  IL_00f6:  ldloc.1 
-	  IL_00f7:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_00fc:  ldarg.0 
-	  IL_00fd:  callvirt instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.CopyTask::get_Filters()
-	  IL_0102:  ldarg.0 
-	  IL_0103:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_InputEncoding()
-	  IL_0108:  ldarg.0 
-	  IL_0109:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_OutputEncoding()
-	  IL_010e:  call void class NAnt.Core.Util.FileUtils::MoveFile(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
-	  IL_0113:  leave IL_01cc
-
-	  IL_0118:  ldloc.1 
-	  IL_0119:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_011e:  stloc.2 
-	  IL_011f:  ldloc.2 
-	  IL_0120:  ldloc.1 
-	  IL_0121:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
-	  IL_0126:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	  IL_012b:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_0130:  stloc.s 4
-	  IL_0132:  ldloc.2 
-	  IL_0133:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_0138:  brtrue IL_0160
-
-	  IL_013d:  nop 
-	  IL_013e:  ldloc.2 
-	  IL_013f:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	  IL_0144:  pop 
-	  IL_0145:  ldarg.0 
-	  IL_0146:  ldc.i4 2000
-	  IL_014b:  ldstr "Created directory '{0}'."
-	  IL_0150:  ldc.i4.1 
-	  IL_0151:  newarr [mscorlib]System.Object
-	  IL_0156:  dup 
-	  IL_0157:  ldc.i4.0 
-	  IL_0158:  ldloc.2 
-	  IL_0159:  stelem.ref 
-	  IL_015a:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_015f:  nop 
-	  IL_0160:  ldloc.s 4
-	  IL_0162:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_0167:  brfalse IL_0175
-
-	  IL_016c:  nop 
-	  IL_016d:  ldloc.s 4
-	  IL_016f:  call void class [mscorlib]System.IO.File::Delete(string)
-	  IL_0174:  nop 
-	  IL_0175:  ldloc.1 
-	  IL_0176:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
-	  IL_017b:  ldloc.s 4
-	  IL_017d:  ldarg.0 
-	  IL_017e:  callvirt instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.CopyTask::get_Filters()
-	  IL_0183:  ldarg.0 
-	  IL_0184:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_InputEncoding()
-	  IL_0189:  ldarg.0 
-	  IL_018a:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_OutputEncoding()
-	  IL_018f:  call void class NAnt.Core.Util.FileUtils::MoveFile(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
-	  IL_0194:  leave IL_01cc
-
-	  IL_0199:  ldloc.1 
-	  IL_019a:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
-	  IL_019f:  ldloc.1 
-	  IL_01a0:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_01a5:  ldarg.0 
-	  IL_01a6:  callvirt instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.CopyTask::get_Filters()
-	  IL_01ab:  ldarg.0 
-	  IL_01ac:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_InputEncoding()
-	  IL_01b1:  ldarg.0 
-	  IL_01b2:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_OutputEncoding()
-	  IL_01b7:  call void class NAnt.Core.Util.FileUtils::MoveDirectory(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
-	  IL_01bc:  leave IL_01cc
-
-	  IL_01c1:  ldstr "Unrecognized move operation. The move task can only move a file to file, file to directory, or directory to directory."
-	  IL_01c6:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	  IL_01cb:  throw 
-	  IL_01cc:  nop 
-	  IL_01cd:  leave IL_01f8
-
-	} // end .try 0
-	catch class [mscorlib]System.IO.IOException { // 0
-	  IL_01d2:  stloc.s 5
-	  IL_01d4:  nop 
-	  IL_01d5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_01da:  ldstr "Failed to move {0}."
-	  IL_01df:  ldloc.1 
-	  IL_01e0:  callvirt instance string object::ToString()
-	  IL_01e5:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_01ea:  ldarg.0 
-	  IL_01eb:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_01f0:  ldloc.s 5
-	  IL_01f2:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_01f7:  throw 
-	} // end handler 0
-	IL_01f8:  nop 
-	IL_01f9:  ldloc.0 
-	IL_01fa:  ldc.i4.1 
-	IL_01fb:  add 
-	IL_01fc:  stloc.0 
-	IL_01fd:  ldloc.0 
-	IL_01fe:  ldarg.0 
-	IL_01ff:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
-	IL_0204:  callvirt instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Count()
-	IL_0209:  blt IL_001f
-
-	IL_020e:  ldarg.0 
-	IL_020f:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
-	IL_0214:  callvirt instance int32 class NAnt.Core.Tasks.CopyTask/FileOperationMap::CountFileOperations()
-	IL_0219:  stloc.s 6
-	IL_021b:  ldarg.0 
-	IL_021c:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
-	IL_0221:  callvirt instance int32 class NAnt.Core.Tasks.CopyTask/FileOperationMap::CountDirectoryOperations()
-	IL_0226:  stloc.s 7
-	IL_0228:  ldloc.s 6
-	IL_022a:  ldc.i4.0 
-	IL_022b:  ble IL_026c
-
-	IL_0230:  nop 
-	IL_0231:  ldarg.0 
-	IL_0232:  ldc.i4 3000
-	IL_0237:  ldstr "{0} file{1} moved."
-	IL_023c:  ldc.i4.2 
-	IL_023d:  newarr [mscorlib]System.Object
-	IL_0242:  dup 
-	IL_0243:  ldc.i4.0 
-	IL_0244:  ldloc.s 6
-	IL_0246:  box [mscorlib]System.Int32
-	IL_024b:  stelem.ref 
-	IL_024c:  dup 
-	IL_024d:  ldc.i4.1 
-	IL_024e:  ldloc.s 6
-	IL_0250:  ldc.i4.1 
-	IL_0251:  beq IL_0260
-
-	IL_0256:  ldstr "s"
-	IL_025b:  br IL_0265
-
-	IL_0260:  ldstr ""
-	IL_0265:  stelem.ref 
-	IL_0266:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_026b:  nop 
-	IL_026c:  ldloc.s 7
-	IL_026e:  ldc.i4.0 
-	IL_026f:  ble IL_02b0
-
-	IL_0274:  nop 
-	IL_0275:  ldarg.0 
-	IL_0276:  ldc.i4 3000
-	IL_027b:  ldstr "{0} {1} moved."
-	IL_0280:  ldc.i4.2 
-	IL_0281:  newarr [mscorlib]System.Object
-	IL_0286:  dup 
-	IL_0287:  ldc.i4.0 
-	IL_0288:  ldloc.s 7
-	IL_028a:  box [mscorlib]System.Int32
-	IL_028f:  stelem.ref 
-	IL_0290:  dup 
-	IL_0291:  ldc.i4.1 
-	IL_0292:  ldloc.s 7
-	IL_0294:  ldc.i4.1 
-	IL_0295:  beq IL_02a4
-
-	IL_029a:  ldstr "directories"
-	IL_029f:  br IL_02a9
-
-	IL_02a4:  ldstr "directory"
-	IL_02a9:  stelem.ref 
-	IL_02aa:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_02af:  nop 
-	IL_02b0:  ret 
-    } // end of method MoveTask::DoFileOperations
-
-    // method line 902
-    .method family virtual hidebysig 
-           instance default class NAnt.Core.BuildException CreateSourceFileNotFoundException (string sourceFile)  cil managed 
-    {
-        // Method begins at RVA 0x12880
-	// Code size 36 (0x24)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildException	V_0)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0006:  ldstr "Could not find file '{0}' to move."
-	IL_000b:  ldarg.1 
-	IL_000c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0011:  ldarg.0 
-	IL_0012:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0017:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_001c:  stloc.0 
-	IL_001d:  br IL_0022
-
-	IL_0022:  ldloc.0 
-	IL_0023:  ret 
-    } // end of method MoveTask::CreateSourceFileNotFoundException
-
-	.property instance class [mscorlib]System.IO.FileInfo SourceFile ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.MoveTask::get_SourceFile () 
-		.set instance default void NAnt.Core.Tasks.MoveTask::set_SourceFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo ToFile ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 74 6F 66 69 6C 65 00 00 ) // ...tofile..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.MoveTask::get_ToFile () 
-		.set instance default void NAnt.Core.Tasks.MoveTask::set_ToFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo ToDirectory ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 74 6F 64 69 72 00 00 ) // ...todir..
-
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.MoveTask::get_ToDirectory () 
-		.set instance default void NAnt.Core.Tasks.MoveTask::set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance class NAnt.Core.Types.FileSet CopyFileSet ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
+	IL_000d:  ret 
+    } // end of method EnvironmentVariableCollection::Remove
 
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MoveTask::get_CopyFileSet () 
-		.set instance default void NAnt.Core.Tasks.MoveTask::set_CopyFileSet (class NAnt.Core.Types.FileSet 'value') 
-	}
-	.property instance bool Flatten ()
+	.property instance class NAnt.Core.Types.EnvironmentVariable Item (int32)
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 66 6C 61 74 74 65 6E 00 00 ) // ...flatten..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Tasks.MoveTask::get_Flatten () 
-		.set instance default void NAnt.Core.Tasks.MoveTask::set_Flatten (bool 'value') 
+		.get instance default class NAnt.Core.Types.EnvironmentVariable NAnt.Core.Types.EnvironmentVariableCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Core.Types.EnvironmentVariableCollection::set_Item (int32 index, class NAnt.Core.Types.EnvironmentVariable 'value') 
 	}
-	.property instance class NAnt.Core.Filters.FilterChain Filters ()
+	.property instance class NAnt.Core.Types.EnvironmentVariable Item (string)
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0B 66 69 6C 74 65 72 63 68 61 69 6E 00 00 ) // ...filterchain..
-
-		.get instance default class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.MoveTask::get_Filters () 
-		.set instance default void NAnt.Core.Tasks.MoveTask::set_Filters (class NAnt.Core.Filters.FilterChain 'value') 
+		.get instance default class NAnt.Core.Types.EnvironmentVariable NAnt.Core.Types.EnvironmentVariableCollection::get_Item (string name) 
 	}
-  } // end of class NAnt.Core.Tasks.MoveTask
+  } // end of class NAnt.Core.Types.EnvironmentVariableCollection
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit XmlPokeTask
-  	extends NAnt.Core.Task
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 78 6D 6C 70 6F 6B 65 00 00 ) // ...xmlpoke..
-
-    .field  private  class [mscorlib]System.IO.FileInfo _xmlFile
-    .field  private  string _value
-    .field  private  string _xPathExpression
-    .field  private  bool _preserveWhitespace
-    .field  private  class NAnt.Core.Types.XmlNamespaceCollection _namespaces
-
-    // method line 903
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x128b0
-	// Code size 18 (0x12)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Types.XmlNamespaceCollection::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPokeTask::_namespaces
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0011:  ret 
-    } // end of method XmlPokeTask::.ctor
+  .class public auto ansi beforefieldinit EnvironmentVariableEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 904
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_XmlFile ()  cil managed 
+    // method line 822
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.EnvironmentVariableCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x128c4
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xf7d8
+	// Code size 22 (0x16)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.XmlPokeTask::_xmlFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XmlPokeTask::get_XmlFile
-
-    // method line 905
-    .method public hidebysig specialname 
-           instance default void set_XmlFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x128df
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.XmlPokeTask::_xmlFile
-	IL_0008:  ret 
-    } // end of method XmlPokeTask::set_XmlFile
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method EnvironmentVariableEnumerator::.ctor
 
-    // method line 906
+    // method line 823
     .method public hidebysig specialname 
-           instance default string get_XPath ()  cil managed 
+           instance default class NAnt.Core.Types.EnvironmentVariable get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x128ec
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xf7fc
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.EnvironmentVariable	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.XmlPokeTask::_xPathExpression
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XmlPokeTask::get_XPath
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.Core.Types.EnvironmentVariable
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-    // method line 907
-    .method public hidebysig specialname 
-           instance default void set_XPath (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x12907
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.XmlPokeTask::_xPathExpression
-	IL_0008:  ret 
-    } // end of method XmlPokeTask::set_XPath
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method EnvironmentVariableEnumerator::get_Current
 
-    // method line 908
-    .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
+    // method line 824
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x12914
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xf824
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.XmlPokeTask::_value
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XmlPokeTask::get_Value
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 909
-    .method public hidebysig specialname 
-           instance default void set_Value (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1292f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.XmlPokeTask::_value
-	IL_0008:  ret 
-    } // end of method XmlPokeTask::set_Value
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method EnvironmentVariableEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 910
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XmlNamespaceCollection get_Namespaces ()  cil managed 
+    // method line 825
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x1293c
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xf844
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.XmlNamespaceCollection	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPokeTask::_namespaces
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XmlPokeTask::get_Namespaces
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 911
-    .method public hidebysig specialname 
-           instance default void set_Namespaces (class NAnt.Core.Types.XmlNamespaceCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x12957
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPokeTask::_namespaces
-	IL_0008:  ret 
-    } // end of method XmlPokeTask::set_Namespaces
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method EnvironmentVariableEnumerator::MoveNext
 
-    // method line 912
-    .method public hidebysig specialname 
-           instance default bool get_PreserveWhitespace ()  cil managed 
+    // method line 826
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x12964
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xf864
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.XmlPokeTask::_preserveWhitespace
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method XmlPokeTask::get_PreserveWhitespace
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method EnvironmentVariableEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 913
-    .method public hidebysig specialname 
-           instance default void set_PreserveWhitespace (bool 'value')  cil managed 
+    // method line 827
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x1297f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xf884
+	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.XmlPokeTask::_preserveWhitespace
-	IL_0008:  ret 
-    } // end of method XmlPokeTask::set_PreserveWhitespace
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method EnvironmentVariableEnumerator::Reset
 
-    // method line 914
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 828
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x1298c
-	// Code size 329 (0x149)
-	.maxstack 4
-	.locals init (
-		class [System.Xml]System.Xml.XmlDocument	V_0,
-		class [System.Xml]System.Xml.XmlNamespaceManager	V_1,
-		class NAnt.Core.Types.XmlNamespace	V_2,
-		class NAnt.Core.Types.XmlNamespaceEnumerator	V_3,
-		class [mscorlib]System.IDisposable	V_4,
-		class [System.Xml]System.Xml.XmlNodeList	V_5,
-		class NAnt.Core.BuildException	V_6,
-		class [mscorlib]System.Exception	V_7)
+        // Method begins at RVA 0xf892
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPokeTask::get_XmlFile()
-	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_000c:  brtrue IL_003d
-
-	IL_0011:  nop 
-	IL_0012:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0017:  ldstr "NA1154"
-	IL_001c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0021:  ldarg.0 
-	IL_0022:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPokeTask::get_XmlFile()
-	IL_0027:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_002c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0031:  ldarg.0 
-	IL_0032:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0037:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_003c:  throw 
-	.try { // 1
-	  IL_003d:  nop 
-	  IL_003e:  ldarg.0 
-	  IL_003f:  ldarg.0 
-	  IL_0040:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPokeTask::get_XmlFile()
-	  IL_0045:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_004a:  ldarg.0 
-	  IL_004b:  call instance bool class NAnt.Core.Tasks.XmlPokeTask::get_PreserveWhitespace()
-	  IL_0050:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Tasks.XmlPokeTask::LoadDocument(string, bool)
-	  IL_0055:  stloc.0 
-	  IL_0056:  ldloc.0 
-	  IL_0057:  callvirt instance class [System.Xml]System.Xml.XmlNameTable class [System.Xml]System.Xml.XmlDocument::get_NameTable()
-	  IL_005c:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
-	  IL_0061:  stloc.1 
-	  IL_0062:  nop 
-	  IL_0063:  ldarg.0 
-	  IL_0064:  call instance class NAnt.Core.Types.XmlNamespaceCollection class NAnt.Core.Tasks.XmlPokeTask::get_Namespaces()
-	  IL_0069:  callvirt instance class NAnt.Core.Types.XmlNamespaceEnumerator class NAnt.Core.Types.XmlNamespaceCollection::GetEnumerator()
-	  IL_006e:  stloc.3 
-	  .try { // 0
-	    IL_006f:  br IL_00a7
-
-	    IL_0074:  ldloc.3 
-	    IL_0075:  callvirt instance class NAnt.Core.Types.XmlNamespace class NAnt.Core.Types.XmlNamespaceEnumerator::get_Current()
-	    IL_007a:  stloc.2 
-	    IL_007b:  nop 
-	    IL_007c:  ldloc.2 
-	    IL_007d:  callvirt instance bool class NAnt.Core.Types.XmlNamespace::get_IfDefined()
-	    IL_0082:  brfalse IL_00a6
-
-	    IL_0087:  ldloc.2 
-	    IL_0088:  callvirt instance bool class NAnt.Core.Types.XmlNamespace::get_UnlessDefined()
-	    IL_008d:  brtrue IL_00a6
-
-	    IL_0092:  nop 
-	    IL_0093:  ldloc.1 
-	    IL_0094:  ldloc.2 
-	    IL_0095:  callvirt instance string class NAnt.Core.Types.XmlNamespace::get_Prefix()
-	    IL_009a:  ldloc.2 
-	    IL_009b:  callvirt instance string class NAnt.Core.Types.XmlNamespace::get_Uri()
-	    IL_00a0:  callvirt instance void class [System.Xml]System.Xml.XmlNamespaceManager::AddNamespace(string, string)
-	    IL_00a5:  nop 
-	    IL_00a6:  nop 
-	    IL_00a7:  ldloc.3 
-	    IL_00a8:  callvirt instance bool class NAnt.Core.Types.XmlNamespaceEnumerator::MoveNext()
-	    IL_00ad:  brtrue IL_0074
-
-	    IL_00b2:  leave IL_00cd
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_00b7:  ldloc.3 
-	    IL_00b8:  isinst [mscorlib]System.IDisposable
-	    IL_00bd:  dup 
-	    IL_00be:  stloc.s 4
-	    IL_00c0:  brfalse IL_00cc
-
-	    IL_00c5:  ldloc.s 4
-	    IL_00c7:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_00cc:  endfinally 
-	  } // end handler 0
-	  IL_00cd:  ldarg.0 
-	  IL_00ce:  ldarg.0 
-	  IL_00cf:  call instance string class NAnt.Core.Tasks.XmlPokeTask::get_XPath()
-	  IL_00d4:  ldloc.0 
-	  IL_00d5:  ldloc.1 
-	  IL_00d6:  call instance class [System.Xml]System.Xml.XmlNodeList class NAnt.Core.Tasks.XmlPokeTask::SelectNodes(string, class [System.Xml]System.Xml.XmlDocument, class [System.Xml]System.Xml.XmlNamespaceManager)
-	  IL_00db:  stloc.s 5
-	  IL_00dd:  ldloc.s 5
-	  IL_00df:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	  IL_00e4:  ldc.i4.0 
-	  IL_00e5:  ble IL_010c
-
-	  IL_00ea:  nop 
-	  IL_00eb:  ldarg.0 
-	  IL_00ec:  ldloc.s 5
-	  IL_00ee:  ldarg.0 
-	  IL_00ef:  call instance string class NAnt.Core.Tasks.XmlPokeTask::get_Value()
-	  IL_00f4:  call instance void class NAnt.Core.Tasks.XmlPokeTask::UpdateNodes(class [System.Xml]System.Xml.XmlNodeList, string)
-	  IL_00f9:  ldarg.0 
-	  IL_00fa:  ldloc.0 
-	  IL_00fb:  ldarg.0 
-	  IL_00fc:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPokeTask::get_XmlFile()
-	  IL_0101:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0106:  call instance void class NAnt.Core.Tasks.XmlPokeTask::SaveDocument(class [System.Xml]System.Xml.XmlDocument, string)
-	  IL_010b:  nop 
-	  IL_010c:  nop 
-	  IL_010d:  leave IL_0148
-
-	} // end .try 1
-	catch class NAnt.Core.BuildException { // 1
-	  IL_0112:  stloc.s 6
-	  IL_0114:  nop 
-	  IL_0115:  ldloc.s 6
-	  IL_0117:  throw 
-	} // end handler 1
-	catch class [mscorlib]System.Exception { // 2
-	  IL_0118:  stloc.s 7
-	  IL_011a:  nop 
-	  IL_011b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0120:  ldstr "NA1159"
-	  IL_0125:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_012a:  ldarg.0 
-	  IL_012b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPokeTask::get_XmlFile()
-	  IL_0130:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0135:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_013a:  ldarg.0 
-	  IL_013b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0140:  ldloc.s 7
-	  IL_0142:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0147:  throw 
-	} // end handler 2
-	IL_0148:  ret 
-    } // end of method XmlPokeTask::ExecuteTask
-
-    // method line 915
-    .method private hidebysig 
-           instance default class [System.Xml]System.Xml.XmlDocument LoadDocument (string fileName, bool preserveWhitespace)  cil managed 
-    {
-        // Method begins at RVA 0x12b0c
-	// Code size 121 (0x79)
-	.maxstack 7
-	.locals init (
-		class [System.Xml]System.Xml.XmlDocument	V_0,
-		class [System.Xml]System.Xml.XmlDocument	V_1,
-		class [mscorlib]System.Exception	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	.try { // 0
-	  IL_0003:  nop 
-	  IL_0004:  ldarg.0 
-	  IL_0005:  ldc.i4 2000
-	  IL_000a:  ldstr "Attempting to load XML document in file '{0}'."
-	  IL_000f:  ldc.i4.1 
-	  IL_0010:  newarr [mscorlib]System.Object
-	  IL_0015:  dup 
-	  IL_0016:  ldc.i4.0 
-	  IL_0017:  ldarg.1 
-	  IL_0018:  stelem.ref 
-	  IL_0019:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_001e:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	  IL_0023:  stloc.0 
-	  IL_0024:  ldloc.0 
-	  IL_0025:  ldarg.2 
-	  IL_0026:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::set_PreserveWhitespace(bool)
-	  IL_002b:  ldloc.0 
-	  IL_002c:  ldarg.1 
-	  IL_002d:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(string)
-	  IL_0032:  ldarg.0 
-	  IL_0033:  ldc.i4 2000
-	  IL_0038:  ldstr "XML document in file '{0}' loaded successfully."
-	  IL_003d:  ldc.i4.1 
-	  IL_003e:  newarr [mscorlib]System.Object
-	  IL_0043:  dup 
-	  IL_0044:  ldc.i4.0 
-	  IL_0045:  ldarg.1 
-	  IL_0046:  stelem.ref 
-	  IL_0047:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_004c:  ldloc.0 
-	  IL_004d:  stloc.1 
-	  IL_004e:  leave IL_0077
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0053:  stloc.2 
-	  IL_0054:  nop 
-	  IL_0055:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_005a:  ldstr "NA1158"
-	  IL_005f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0064:  ldarg.1 
-	  IL_0065:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_006a:  ldarg.0 
-	  IL_006b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0070:  ldloc.2 
-	  IL_0071:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0076:  throw 
-	} // end handler 0
-	IL_0077:  ldloc.1 
-	IL_0078:  ret 
-    } // end of method XmlPokeTask::LoadDocument
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.EnvironmentVariableEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method EnvironmentVariableEnumerator::System.Collections.IEnumerator.Reset
 
-    // method line 916
-    .method private hidebysig 
-           instance default class [System.Xml]System.Xml.XmlNodeList SelectNodes (string xpath, class [System.Xml]System.Xml.XmlDocument document, class [System.Xml]System.Xml.XmlNamespaceManager nsMgr)  cil managed 
-    {
-        // Method begins at RVA 0x12ba4
-	// Code size 181 (0xb5)
-	.maxstack 7
-	.locals init (
-		class [System.Xml]System.Xml.XmlNodeList	V_0,
-		class [mscorlib]System.Exception	V_1,
-		class [System.Xml]System.Xml.XmlNodeList	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	.try { // 0
-	  IL_0003:  nop 
-	  IL_0004:  ldarg.0 
-	  IL_0005:  ldc.i4 2000
-	  IL_000a:  ldstr "Selecting nodes with XPath expression '{0}'."
-	  IL_000f:  ldc.i4.1 
-	  IL_0010:  newarr [mscorlib]System.Object
-	  IL_0015:  dup 
-	  IL_0016:  ldc.i4.0 
-	  IL_0017:  ldarg.1 
-	  IL_0018:  stelem.ref 
-	  IL_0019:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_001e:  ldarg.2 
-	  IL_001f:  ldarg.1 
-	  IL_0020:  ldarg.3 
-	  IL_0021:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	  IL_0026:  stloc.0 
-	  IL_0027:  nop 
-	  IL_0028:  leave IL_0051
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.Core.Types.EnvironmentVariableEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.Core.Types.EnvironmentVariable Current ()
+	{
+		.get instance default class NAnt.Core.Types.EnvironmentVariable NAnt.Core.Types.EnvironmentVariableEnumerator::get_Current () 
+	}
+  } // end of class NAnt.Core.Types.EnvironmentVariableEnumerator
+}
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_002d:  stloc.1 
-	  IL_002e:  nop 
-	  IL_002f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0034:  ldstr "NA1161"
-	  IL_0039:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_003e:  ldarg.1 
-	  IL_003f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0044:  ldarg.0 
-	  IL_0045:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_004a:  ldloc.1 
-	  IL_004b:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0050:  throw 
-	} // end handler 0
-	IL_0051:  ldloc.0 
-	IL_0052:  brfalse IL_0062
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi sealed ManagedExecution
+  	extends [mscorlib]System.Enum
+  {
+    .custom instance void class [System]System.ComponentModel.TypeConverterAttribute::'.ctor'(class [mscorlib]System.Type) =  (
+		01 00 29 4E 41 6E 74 2E 43 6F 72 65 2E 54 79 70   // ..)NAnt.Core.Typ
+		65 73 2E 4D 61 6E 61 67 65 64 45 78 65 63 75 74   // es.ManagedExecut
+		69 6F 6E 43 6F 6E 76 65 72 74 65 72 00 00       ) // ionConverter..
 
-	IL_0057:  ldloc.0 
-	IL_0058:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_005d:  brtrue IL_0084
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Core.Types.ManagedExecution Default = int32(0x00000000)
+    .field public static literal  valuetype NAnt.Core.Types.ManagedExecution Auto = int32(0x00000001)
+    .field public static literal  valuetype NAnt.Core.Types.ManagedExecution Strict = int32(0x00000002)
 
-	IL_0062:  nop 
-	IL_0063:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0068:  ldstr "NA1156"
-	IL_006d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0072:  ldarg.1 
-	IL_0073:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0078:  ldarg.0 
-	IL_0079:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_007e:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0083:  throw 
-	IL_0084:  ldarg.0 
-	IL_0085:  ldc.i4 3000
-	IL_008a:  ldstr "Found '{0}' nodes matching XPath expression '{1}'."
-	IL_008f:  ldc.i4.2 
-	IL_0090:  newarr [mscorlib]System.Object
-	IL_0095:  dup 
-	IL_0096:  ldc.i4.0 
-	IL_0097:  ldloc.0 
-	IL_0098:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_009d:  box [mscorlib]System.Int32
-	IL_00a2:  stelem.ref 
-	IL_00a3:  dup 
-	IL_00a4:  ldc.i4.1 
-	IL_00a5:  ldarg.1 
-	IL_00a6:  stelem.ref 
-	IL_00a7:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_00ac:  ldloc.0 
-	IL_00ad:  stloc.2 
-	IL_00ae:  br IL_00b3
+  } // end of class NAnt.Core.Types.ManagedExecution
+}
 
-	IL_00b3:  ldloc.2 
-	IL_00b4:  ret 
-    } // end of method XmlPokeTask::SelectNodes
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi beforefieldinit ManagedExecutionConverter
+  	extends [System]System.ComponentModel.EnumConverter
+  {
 
-    // method line 917
-    .method private hidebysig 
-           instance default void UpdateNodes (class [System.Xml]System.Xml.XmlNodeList nodes, string 'value')  cil managed 
+    // method line 829
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x12c78
-	// Code size 161 (0xa1)
-	.maxstack 7
-	.locals init (
-		int32	V_0,
-		class [System.Xml]System.Xml.XmlNode	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 2000
-	IL_0007:  ldstr "Updating nodes with value '{0}'."
-	IL_000c:  ldc.i4.1 
-	IL_000d:  newarr [mscorlib]System.Object
-	IL_0012:  dup 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  ldarg.2 
-	IL_0015:  stelem.ref 
-	IL_0016:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_001b:  ldc.i4.0 
-	IL_001c:  stloc.0 
-	IL_001d:  nop 
-	IL_001e:  ldarg.1 
-	IL_001f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_0024:  stloc.2 
-	.try { // 0
-	  IL_0025:  br IL_0062
-
-	  IL_002a:  ldloc.2 
-	  IL_002b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0030:  castclass [System.Xml]System.Xml.XmlNode
-	  IL_0035:  stloc.1 
-	  IL_0036:  nop 
-	  IL_0037:  ldarg.0 
-	  IL_0038:  ldc.i4 2000
-	  IL_003d:  ldstr "Updating node '{0}'."
-	  IL_0042:  ldc.i4.1 
-	  IL_0043:  newarr [mscorlib]System.Object
-	  IL_0048:  dup 
-	  IL_0049:  ldc.i4.0 
-	  IL_004a:  ldloc.0 
-	  IL_004b:  box [mscorlib]System.Int32
-	  IL_0050:  stelem.ref 
-	  IL_0051:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0056:  ldloc.1 
-	  IL_0057:  ldarg.2 
-	  IL_0058:  callvirt instance void class [System.Xml]System.Xml.XmlNode::set_InnerXml(string)
-	  IL_005d:  ldloc.0 
-	  IL_005e:  ldc.i4.1 
-	  IL_005f:  add 
-	  IL_0060:  stloc.0 
-	  IL_0061:  nop 
-	  IL_0062:  ldloc.2 
-	  IL_0063:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0068:  brtrue IL_002a
-
-	  IL_006d:  leave IL_0086
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0072:  ldloc.2 
-	  IL_0073:  isinst [mscorlib]System.IDisposable
-	  IL_0078:  dup 
-	  IL_0079:  stloc.3 
-	  IL_007a:  brfalse IL_0085
-
-	  IL_007f:  ldloc.3 
-	  IL_0080:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0085:  endfinally 
-	} // end handler 0
-	IL_0086:  ldarg.0 
-	IL_0087:  ldc.i4 2000
-	IL_008c:  ldstr "Updated all nodes successfully."
-	IL_0091:  ldc.i4.1 
-	IL_0092:  newarr [mscorlib]System.Object
-	IL_0097:  dup 
-	IL_0098:  ldc.i4.0 
-	IL_0099:  ldarg.2 
-	IL_009a:  stelem.ref 
-	IL_009b:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_00a0:  ret 
-    } // end of method XmlPokeTask::UpdateNodes
+        // Method begins at RVA 0xf8a0
+	// Code size 18 (0x12)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldtoken NAnt.Core.Types.ManagedExecution
+	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000b:  call instance void class [System]System.ComponentModel.EnumConverter::'.ctor'(class [mscorlib]System.Type)
+	IL_0010:  nop 
+	IL_0011:  ret 
+    } // end of method ManagedExecutionConverter::.ctor
 
-    // method line 918
-    .method private hidebysig 
-           instance default void SaveDocument (class [System.Xml]System.Xml.XmlDocument document, string fileName)  cil managed 
+    // method line 830
+    .method public virtual hidebysig 
+           instance default object ConvertFrom (class [System]System.ComponentModel.ITypeDescriptorContext context, class [mscorlib]System.Globalization.CultureInfo culture, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x12d38
-	// Code size 104 (0x68)
-	.maxstack 7
+        // Method begins at RVA 0xf8b4
+	// Code size 122 (0x7a)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Exception	V_0)
+		string	V_0,
+		object	V_1)
 	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.0 
-	  IL_0003:  ldc.i4 2000
-	  IL_0008:  ldstr "Attempting to save XML document to '{0}'."
-	  IL_000d:  ldc.i4.1 
-	  IL_000e:  newarr [mscorlib]System.Object
-	  IL_0013:  dup 
-	  IL_0014:  ldc.i4.0 
-	  IL_0015:  ldarg.2 
-	  IL_0016:  stelem.ref 
-	  IL_0017:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_001c:  ldarg.1 
-	  IL_001d:  ldarg.2 
-	  IL_001e:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Save(string)
-	  IL_0023:  ldarg.0 
-	  IL_0024:  ldc.i4 2000
-	  IL_0029:  ldstr "XML document successfully saved to '{0}'."
-	  IL_002e:  ldc.i4.1 
-	  IL_002f:  newarr [mscorlib]System.Object
-	  IL_0034:  dup 
-	  IL_0035:  ldc.i4.0 
-	  IL_0036:  ldarg.2 
-	  IL_0037:  stelem.ref 
-	  IL_0038:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_003d:  nop 
-	  IL_003e:  leave IL_0067
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0043:  stloc.0 
-	  IL_0044:  nop 
-	  IL_0045:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_004a:  ldstr "NA1162"
-	  IL_004f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0054:  ldarg.2 
-	  IL_0055:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_005a:  ldarg.0 
-	  IL_005b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0060:  ldloc.0 
-	  IL_0061:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0066:  throw 
-	} // end handler 0
-	IL_0067:  ret 
-    } // end of method XmlPokeTask::SaveDocument
-
-	.property instance class [mscorlib]System.IO.FileInfo XmlFile ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 66 69 6C 65 01 00 54 02 08 52 65 71 75   // ...file..T..Requ
-		69 72 65 64 01                                  ) // ired.
+	IL_0001:  ldarg.3 
+	IL_0002:  isinst [mscorlib]System.String
+	IL_0007:  brfalse IL_0069
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.XmlPokeTask::get_XmlFile () 
-		.set instance default void NAnt.Core.Tasks.XmlPokeTask::set_XmlFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string XPath ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 05 78 70 61 74 68 01 00 54 02 08 52 65 71   // ...xpath..T..Req
-		75 69 72 65 64 01                               ) // uired.
+	IL_000c:  nop 
+	IL_000d:  ldarg.3 
+	IL_000e:  castclass [mscorlib]System.String
+	IL_0013:  stloc.0 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldsfld string [mscorlib]System.Boolean::TrueString
+	IL_001a:  ldc.i4.1 
+	IL_001b:  ldarg.2 
+	IL_001c:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_0021:  brtrue IL_0033
 
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+	IL_0026:  nop 
+	IL_0027:  ldc.i4.1 
+	IL_0028:  box NAnt.Core.Types.ManagedExecution
+	IL_002d:  stloc.1 
+	IL_002e:  br IL_0078
 
-		.get instance default string NAnt.Core.Tasks.XmlPokeTask::get_XPath () 
-		.set instance default void NAnt.Core.Tasks.XmlPokeTask::set_XPath (string 'value') 
-	}
-	.property instance string Value ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 05 76 61 6C 75 65 01 00 54 02 08 52 65 71   // ...value..T..Req
-		75 69 72 65 64 01                               ) // uired.
+	IL_0033:  ldloc.0 
+	IL_0034:  ldsfld string [mscorlib]System.Boolean::FalseString
+	IL_0039:  ldc.i4.1 
+	IL_003a:  ldarg.2 
+	IL_003b:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_0040:  brtrue IL_0052
 
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 01                                           ) // y.
+	IL_0045:  nop 
+	IL_0046:  ldc.i4.0 
+	IL_0047:  box NAnt.Core.Types.ManagedExecution
+	IL_004c:  stloc.1 
+	IL_004d:  br IL_0078
 
-		.get instance default string NAnt.Core.Tasks.XmlPokeTask::get_Value () 
-		.set instance default void NAnt.Core.Tasks.XmlPokeTask::set_Value (string 'value') 
-	}
-	.property instance class NAnt.Core.Types.XmlNamespaceCollection Namespaces ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
-		01 00 0A 6E 61 6D 65 73 70 61 63 65 73 09 6E 61   // ...namespaces.na
-		6D 65 73 70 61 63 65 00 00                      ) // mespace..
+	IL_0052:  ldtoken NAnt.Core.Types.ManagedExecution
+	IL_0057:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_005c:  ldloc.0 
+	IL_005d:  ldc.i4.1 
+	IL_005e:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	IL_0063:  stloc.1 
+	IL_0064:  br IL_0078
 
-		.get instance default class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPokeTask::get_Namespaces () 
-		.set instance default void NAnt.Core.Tasks.XmlPokeTask::set_Namespaces (class NAnt.Core.Types.XmlNamespaceCollection 'value') 
-	}
-	.property instance bool PreserveWhitespace ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 12 70 72 65 73 65 72 76 65 57 68 69 74 65   // ...preserveWhite
-		73 70 61 63 65 01 00 54 02 08 52 65 71 75 69 72   // space..T..Requir
-		65 64 00                                        ) // ed.
+	IL_0069:  ldarg.0 
+	IL_006a:  ldarg.1 
+	IL_006b:  ldarg.2 
+	IL_006c:  ldarg.3 
+	IL_006d:  call instance object class [System]System.ComponentModel.EnumConverter::ConvertFrom(class [System]System.ComponentModel.ITypeDescriptorContext, class [mscorlib]System.Globalization.CultureInfo, object)
+	IL_0072:  stloc.1 
+	IL_0073:  br IL_0078
 
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+	IL_0078:  ldloc.1 
+	IL_0079:  ret 
+    } // end of method ManagedExecutionConverter::ConvertFrom
 
-		.get instance default bool NAnt.Core.Tasks.XmlPokeTask::get_PreserveWhitespace () 
-		.set instance default void NAnt.Core.Tasks.XmlPokeTask::set_PreserveWhitespace (bool 'value') 
-	}
-  } // end of class NAnt.Core.Tasks.XmlPokeTask
+  } // end of class NAnt.Core.Types.ManagedExecutionConverter
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit LoadFileTask
-  	extends NAnt.Core.Task
+  .class public auto ansi serializable beforefieldinit FileSet
+  	extends NAnt.Core.DataTypeBase
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 08 6C 6F 61 64 66 69 6C 65 00 00 ) // ...loadfile..
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
 
-    .field  private  class [mscorlib]System.IO.FileInfo _file
-    .field  private  class [mscorlib]System.Text.Encoding _encoding
-    .field  private  string _property
-    .field  private  class NAnt.Core.Filters.FilterChain _filterChain
+    .field  private  bool _hasScanned
+    .field  private  bool _defaultExcludes
+    .field  private  bool _failOnEmpty
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _baseDirectory
+    .field  private  class NAnt.Core.DirectoryScanner _scanner
+    .field  private  class [System]System.Collections.Specialized.StringCollection _asis
+    .field  private  class NAnt.Core.PathScanner _pathFiles
+    .field  private static initonly  class [log4net]log4net.ILog logger
 
-    // method line 919
+    // method line 831
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x12dbc
-	// Code size 7 (0x7)
+        // Method begins at RVA 0xdb05
+	// Code size 48 (0x30)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0006:  ret 
-    } // end of method LoadFileTask::.ctor
-
-    // method line 920
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
-    {
-        // Method begins at RVA 0x12dc4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.LoadFileTask::_file
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method LoadFileTask::get_File
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.FileSet::_defaultExcludes
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class NAnt.Core.DirectoryScanner::'.ctor'()
+	IL_000d:  stfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_0012:  ldarg.0 
+	IL_0013:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0018:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::_asis
+	IL_001d:  ldarg.0 
+	IL_001e:  newobj instance void class NAnt.Core.PathScanner::'.ctor'()
+	IL_0023:  stfld class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::_pathFiles
+	IL_0028:  ldarg.0 
+	IL_0029:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
+	IL_002e:  nop 
+	IL_002f:  ret 
+    } // end of method FileSet::.ctor
 
-    // method line 921
-    .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 832
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.FileSet fs)  cil managed 
     {
-        // Method begins at RVA 0x12ddf
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xdb36
+	// Code size 55 (0x37)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.LoadFileTask::_file
-	IL_0008:  ret 
-    } // end of method LoadFileTask::set_File
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.FileSet::_defaultExcludes
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class NAnt.Core.DirectoryScanner::'.ctor'()
+	IL_000d:  stfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_0012:  ldarg.0 
+	IL_0013:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0018:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::_asis
+	IL_001d:  ldarg.0 
+	IL_001e:  newobj instance void class NAnt.Core.PathScanner::'.ctor'()
+	IL_0023:  stfld class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::_pathFiles
+	IL_0028:  ldarg.0 
+	IL_0029:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
+	IL_002e:  nop 
+	IL_002f:  ldarg.1 
+	IL_0030:  ldarg.0 
+	IL_0031:  callvirt instance void class NAnt.Core.Types.FileSet::CopyTo(class NAnt.Core.Types.FileSet)
+	IL_0036:  ret 
+    } // end of method FileSet::.ctor
 
-    // method line 922
+    // method line 833
     .method public hidebysig specialname 
-           instance default string get_Property ()  cil managed 
+           instance default bool get_CaseSensitive ()  cil managed 
     {
-        // Method begins at RVA 0x12dec
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xdb70
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.LoadFileTask::_property
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_0007:  callvirt instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method LoadFileTask::get_Property
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FileSet::get_CaseSensitive
 
-    // method line 923
+    // method line 834
     .method public hidebysig specialname 
-           instance default void set_Property (string 'value')  cil managed 
+           instance default void set_CaseSensitive (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x12e07
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xdb90
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.LoadFileTask::_property
-	IL_0008:  ret 
-    } // end of method LoadFileTask::set_Property
+	IL_0002:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class NAnt.Core.DirectoryScanner::set_CaseSensitive(bool)
+	IL_000d:  ret 
+    } // end of method FileSet::set_CaseSensitive
 
-    // method line 924
+    // method line 835
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
+           instance default bool get_FailOnEmpty ()  cil managed 
     {
-        // Method begins at RVA 0x12e14
+        // Method begins at RVA 0xdba0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Text.Encoding	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.LoadFileTask::_encoding
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_failOnEmpty
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LoadFileTask::get_Encoding
+    } // end of method FileSet::get_FailOnEmpty
 
-    // method line 925
+    // method line 836
     .method public hidebysig specialname 
-           instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+           instance default void set_FailOnEmpty (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x12e2f
+        // Method begins at RVA 0xdbbb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.LoadFileTask::_encoding
+	IL_0003:  stfld bool NAnt.Core.Types.FileSet::_failOnEmpty
 	IL_0008:  ret 
-    } // end of method LoadFileTask::set_Encoding
+    } // end of method FileSet::set_FailOnEmpty
 
-    // method line 926
+    // method line 837
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Filters.FilterChain get_FilterChain ()  cil managed 
+           instance default bool get_DefaultExcludes ()  cil managed 
     {
-        // Method begins at RVA 0x12e3c
+        // Method begins at RVA 0xdbc8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterChain	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.LoadFileTask::_filterChain
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_defaultExcludes
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LoadFileTask::get_FilterChain
+    } // end of method FileSet::get_DefaultExcludes
 
-    // method line 927
+    // method line 838
     .method public hidebysig specialname 
-           instance default void set_FilterChain (class NAnt.Core.Filters.FilterChain 'value')  cil managed 
+           instance default void set_DefaultExcludes (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x12e57
+        // Method begins at RVA 0xdbe3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.LoadFileTask::_filterChain
+	IL_0003:  stfld bool NAnt.Core.Types.FileSet::_defaultExcludes
 	IL_0008:  ret 
-    } // end of method LoadFileTask::set_FilterChain
+    } // end of method FileSet::set_DefaultExcludes
 
-    // method line 928
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 839
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x12e64
-	// Code size 159 (0x9f)
-	.maxstack 3
+        // Method begins at RVA 0xdbf0
+	// Code size 127 (0x7f)
+	.maxstack 2
 	.locals init (
-		string	V_0,
-		class [mscorlib]System.IO.IOException	V_1)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.LoadFileTask::get_File()
-	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_000c:  brtrue IL_0038
-
-	IL_0011:  nop 
-	IL_0012:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InstalledUICulture()
-	IL_0017:  ldstr "File '{0}' does not exist."
-	IL_001c:  ldarg.0 
-	IL_001d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.LoadFileTask::get_File()
-	IL_0022:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0027:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002c:  ldarg.0 
-	IL_002d:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0032:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0037:  throw 
-	IL_0038:  ldnull 
-	IL_0039:  stloc.0 
-	.try { // 0
-	  IL_003a:  nop 
-	  IL_003b:  ldarg.0 
-	  IL_003c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.LoadFileTask::get_File()
-	  IL_0041:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0046:  ldarg.0 
-	  IL_0047:  call instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.LoadFileTask::get_FilterChain()
-	  IL_004c:  ldarg.0 
-	  IL_004d:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.LoadFileTask::get_Encoding()
-	  IL_0052:  call string class NAnt.Core.Util.FileUtils::ReadFile(string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding)
-	  IL_0057:  stloc.0 
-	  IL_0058:  nop 
-	  IL_0059:  leave IL_008c
-
-	} // end .try 0
-	catch class [mscorlib]System.IO.IOException { // 0
-	  IL_005e:  stloc.1 
-	  IL_005f:  nop 
-	  IL_0060:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0065:  ldstr "NA1129"
-	  IL_006a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_006f:  ldarg.0 
-	  IL_0070:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.LoadFileTask::get_File()
-	  IL_0075:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_007a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_007f:  ldarg.0 
-	  IL_0080:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0085:  ldloc.1 
-	  IL_0086:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_008b:  throw 
-	} // end handler 0
-	IL_008c:  ldarg.0 
-	IL_008d:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0092:  ldarg.0 
-	IL_0093:  call instance string class NAnt.Core.Tasks.LoadFileTask::get_Property()
-	IL_0098:  ldloc.0 
-	IL_0099:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_009e:  ret 
-    } // end of method LoadFileTask::ExecuteTask
-
-	.property instance class [mscorlib]System.IO.FileInfo File ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 66 69 6C 65 01 00 54 02 08 52 65 71 75   // ...file..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.LoadFileTask::get_File () 
-		.set instance default void NAnt.Core.Tasks.LoadFileTask::set_File (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string Property ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
-		52 65 71 75 69 72 65 64 01                      ) // Required.
-
-		.get instance default string NAnt.Core.Tasks.LoadFileTask::get_Property () 
-		.set instance default void NAnt.Core.Tasks.LoadFileTask::set_Property (string 'value') 
-	}
-	.property instance class [mscorlib]System.Text.Encoding Encoding ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 65 6E 63 6F 64 69 6E 67 00 00 ) // ...encoding..
-
-		.get instance default class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.LoadFileTask::get_Encoding () 
-		.set instance default void NAnt.Core.Tasks.LoadFileTask::set_Encoding (class [mscorlib]System.Text.Encoding 'value') 
-	}
-	.property instance class NAnt.Core.Filters.FilterChain FilterChain ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0B 66 69 6C 74 65 72 63 68 61 69 6E 00 00 ) // ...filterchain..
-
-		.get instance default class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.LoadFileTask::get_FilterChain () 
-		.set instance default void NAnt.Core.Tasks.LoadFileTask::set_FilterChain (class NAnt.Core.Filters.FilterChain 'value') 
-	}
-  } // end of class NAnt.Core.Tasks.LoadFileTask
-}
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::_baseDirectory
+	IL_0007:  brtrue IL_0071
 
-.namespace NAnt.Core.Tasks
-{
-  .class public auto ansi beforefieldinit CopyTask
-  	extends NAnt.Core.Task
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 63 6F 70 79 00 00 ) // ...copy..
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance object class NAnt.Core.Element::get_Parent()
+	IL_0013:  brfalse IL_004e
 
-    .field  private  class [mscorlib]System.IO.FileInfo _sourceFile
-    .field  private  class [mscorlib]System.IO.FileInfo _toFile
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _toDirectory
-    .field  private  bool _overwrite
-    .field  private  bool _flatten
-    .field  private  class NAnt.Core.Types.FileSet _fileset
-    .field  private  class NAnt.Core.Tasks.CopyTask/FileOperationMap _operationMap
-    .field  private  bool _includeEmptyDirs
-    .field  private  class NAnt.Core.Filters.FilterChain _filters
-    .field  private  class [mscorlib]System.Text.Encoding _inputEncoding
-    .field  private  class [mscorlib]System.Text.Encoding _outputEncoding
+	IL_0018:  ldtoken NAnt.Core.Types.FileSet
+	IL_001d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0022:  ldarg.0 
+	IL_0023:  call instance object class NAnt.Core.Element::get_Parent()
+	IL_0028:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_002d:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_0032:  brfalse IL_004e
 
-    // method line 929
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x11184
-	// Code size 72 (0x48)
-	.maxstack 2
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.CopyTask::_fileset
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.1 
-	IL_000d:  stfld bool NAnt.Core.Tasks.CopyTask::_includeEmptyDirs
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0018:  nop 
-	IL_0019:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_001e:  brfalse IL_0035
+	IL_0037:  nop 
+	IL_0038:  ldarg.0 
+	IL_0039:  call instance object class NAnt.Core.Element::get_Parent()
+	IL_003e:  castclass NAnt.Core.Types.FileSet
+	IL_0043:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_0048:  stloc.0 
+	IL_0049:  br IL_007d
 
-	IL_0023:  nop 
-	IL_0024:  ldarg.0 
-	IL_0025:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileOperationMap::'.ctor'()
-	IL_002a:  stfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
-	IL_002f:  nop 
-	IL_0030:  br IL_0047
+	IL_004e:  ldarg.0 
+	IL_004f:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0054:  brfalse IL_0070
 
-	IL_0035:  nop 
-	IL_0036:  ldarg.0 
-	IL_0037:  call class [mscorlib]System.StringComparer class [mscorlib]System.StringComparer::get_InvariantCultureIgnoreCase()
-	IL_003c:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileOperationMap::'.ctor'(class [mscorlib]System.StringComparer)
-	IL_0041:  stfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
-	IL_0046:  nop 
-	IL_0047:  ret 
-    } // end of method CopyTask::.ctor
+	IL_0059:  nop 
+	IL_005a:  ldarg.0 
+	IL_005b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0060:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_0065:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_006a:  stloc.0 
+	IL_006b:  br IL_007d
 
-    // method line 930
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_SourceFile ()  cil managed 
-    {
-        // Method begins at RVA 0x111d8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.CopyTask::_sourceFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0070:  nop 
+	IL_0071:  ldarg.0 
+	IL_0072:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::_baseDirectory
+	IL_0077:  stloc.0 
+	IL_0078:  br IL_007d
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CopyTask::get_SourceFile
+	IL_007d:  ldloc.0 
+	IL_007e:  ret 
+    } // end of method FileSet::get_BaseDirectory
 
-    // method line 931
+    // method line 840
     .method public virtual hidebysig newslot specialname 
-           instance default void set_SourceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x111f3
+        // Method begins at RVA 0xdc7b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.CopyTask::_sourceFile
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::_baseDirectory
 	IL_0008:  ret 
-    } // end of method CopyTask::set_SourceFile
+    } // end of method FileSet::set_BaseDirectory
 
-    // method line 932
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_ToFile ()  cil managed 
+    // method line 841
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Includes ()  cil managed 
     {
-        // Method begins at RVA 0x11200
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xdc88
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.CopyTask::_toFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CopyTask::get_ToFile
+	IL_0002:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_0007:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_Includes()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 933
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_ToFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1121b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.CopyTask::_toFile
-	IL_0008:  ret 
-    } // end of method CopyTask::set_ToFile
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FileSet::get_Includes
 
-    // method line 934
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
+    // method line 842
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Excludes ()  cil managed 
     {
-        // Method begins at RVA 0x11228
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xdca8
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.CopyTask::_toDirectory
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CopyTask::get_ToDirectory
+	IL_0002:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_0007:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_Excludes()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 935
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x11243
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.CopyTask::_toDirectory
-	IL_0008:  ret 
-    } // end of method CopyTask::set_ToDirectory
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FileSet::get_Excludes
 
-    // method line 936
+    // method line 843
     .method public hidebysig specialname 
-           instance default bool get_Overwrite ()  cil managed 
+           instance default class [System]System.Collections.Specialized.StringCollection get_AsIs ()  cil managed 
     {
-        // Method begins at RVA 0x11250
+        // Method begins at RVA 0xdcc8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.CopyTask::_overwrite
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::_asis
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CopyTask::get_Overwrite
+    } // end of method FileSet::get_AsIs
 
-    // method line 937
+    // method line 844
     .method public hidebysig specialname 
-           instance default void set_Overwrite (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1126b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.CopyTask::_overwrite
-	IL_0008:  ret 
-    } // end of method CopyTask::set_Overwrite
-
-    // method line 938
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_Flatten ()  cil managed 
+           instance default class NAnt.Core.PathScanner get_PathFiles ()  cil managed 
     {
-        // Method begins at RVA 0x11278
+        // Method begins at RVA 0xdce4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.PathScanner	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.CopyTask::_flatten
+	IL_0002:  ldfld class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::_pathFiles
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CopyTask::get_Flatten
-
-    // method line 939
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Flatten (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x11293
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.CopyTask::_flatten
-	IL_0008:  ret 
-    } // end of method CopyTask::set_Flatten
+    } // end of method FileSet::get_PathFiles
 
-    // method line 940
+    // method line 845
     .method public hidebysig specialname 
-           instance default bool get_IncludeEmptyDirs ()  cil managed 
+           instance default class [System]System.Collections.Specialized.StringCollection get_FileNames ()  cil managed 
     {
-        // Method begins at RVA 0x112a0
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xdd00
+	// Code size 39 (0x27)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.CopyTask::_includeEmptyDirs
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_hasScanned
+	IL_0007:  brtrue IL_0014
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CopyTask::get_IncludeEmptyDirs
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance void class NAnt.Core.Types.FileSet::Scan()
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_001a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_FileNames()
+	IL_001f:  stloc.0 
+	IL_0020:  br IL_0025
 
-    // method line 941
-    .method public hidebysig specialname 
-           instance default void set_IncludeEmptyDirs (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x112bb
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.CopyTask::_includeEmptyDirs
-	IL_0008:  ret 
-    } // end of method CopyTask::set_IncludeEmptyDirs
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method FileSet::get_FileNames
 
-    // method line 942
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.Core.Types.FileSet get_CopyFileSet ()  cil managed 
+    // method line 846
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_DirectoryNames ()  cil managed 
     {
-        // Method begins at RVA 0x112c8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xdd34
+	// Code size 39 (0x27)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.CopyTask::_fileset
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_hasScanned
+	IL_0007:  brtrue IL_0014
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CopyTask::get_CopyFileSet
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance void class NAnt.Core.Types.FileSet::Scan()
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_001a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_DirectoryNames()
+	IL_001f:  stloc.0 
+	IL_0020:  br IL_0025
 
-    // method line 943
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_CopyFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0x112e3
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.CopyTask::_fileset
-	IL_0008:  ret 
-    } // end of method CopyTask::set_CopyFileSet
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method FileSet::get_DirectoryNames
 
-    // method line 944
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.Core.Filters.FilterChain get_Filters ()  cil managed 
+    // method line 847
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_ScannedDirectories ()  cil managed 
     {
-        // Method begins at RVA 0x112f0
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xdd68
+	// Code size 39 (0x27)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterChain	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.CopyTask::_filters
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_hasScanned
+	IL_0007:  brtrue IL_0014
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CopyTask::get_Filters
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance void class NAnt.Core.Types.FileSet::Scan()
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_001a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_ScannedDirectories()
+	IL_001f:  stloc.0 
+	IL_0020:  br IL_0025
 
-    // method line 945
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Filters (class NAnt.Core.Filters.FilterChain 'value')  cil managed 
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method FileSet::get_ScannedDirectories
+
+    // method line 848
+    .method public hidebysig specialname 
+           instance default void set_SetIncludes (class NAnt.Core.Types.FileSet/Include[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x1130b
+        // Method begins at RVA 0xdd9b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.CopyTask::_filters
+	IL_0003:  call instance void class NAnt.Core.Types.FileSet::set_IncludeElements(class NAnt.Core.Types.FileSet/Include[])
 	IL_0008:  ret 
-    } // end of method CopyTask::set_Filters
+    } // end of method FileSet::set_SetIncludes
 
-    // method line 946
+    // method line 849
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_InputEncoding ()  cil managed 
+           instance default void set_IncludeElements (class NAnt.Core.Types.FileSet/Include[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x11318
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xdda8
+	// Code size 239 (0xef)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Text.Encoding	V_0)
+		class NAnt.Core.Types.FileSet/Include	V_0,
+		class NAnt.Core.Types.FileSet/Include[]	V_1,
+		int32	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.CopyTask::_inputEncoding
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  nop 
+	IL_0002:  ldarg.1 
+	IL_0003:  stloc.1 
+	IL_0004:  ldc.i4.0 
+	IL_0005:  stloc.2 
+	IL_0006:  br IL_00e5
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CopyTask::get_InputEncoding
+	IL_000b:  ldloc.1 
+	IL_000c:  ldloc.2 
+	IL_000d:  ldelem.ref 
+	IL_000e:  stloc.0 
+	IL_000f:  nop 
+	IL_0010:  ldloc.0 
+	IL_0011:  callvirt instance bool class NAnt.Core.Types.FileSet/Exclude::get_IfDefined()
+	IL_0016:  brfalse IL_00e0
 
-    // method line 947
+	IL_001b:  ldloc.0 
+	IL_001c:  callvirt instance bool class NAnt.Core.Types.FileSet/Exclude::get_UnlessDefined()
+	IL_0021:  brtrue IL_00e0
+
+	IL_0026:  nop 
+	IL_0027:  ldloc.0 
+	IL_0028:  callvirt instance bool class NAnt.Core.Types.FileSet/Include::get_AsIs()
+	IL_002d:  brfalse IL_006a
+
+	IL_0032:  nop 
+	IL_0033:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
+	IL_0038:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_003d:  ldstr "Including AsIs="
+	IL_0042:  ldloc.0 
+	IL_0043:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
+	IL_0048:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_004d:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
+	IL_0052:  ldarg.0 
+	IL_0053:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_AsIs()
+	IL_0058:  ldloc.0 
+	IL_0059:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
+	IL_005e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0063:  pop 
+	IL_0064:  nop 
+	IL_0065:  br IL_00df
+
+	IL_006a:  ldloc.0 
+	IL_006b:  callvirt instance bool class NAnt.Core.Types.FileSet/Include::get_FromPath()
+	IL_0070:  brfalse IL_00ac
+
+	IL_0075:  nop 
+	IL_0076:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
+	IL_007b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0080:  ldstr "Including FromPath="
+	IL_0085:  ldloc.0 
+	IL_0086:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
+	IL_008b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0090:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
+	IL_0095:  ldarg.0 
+	IL_0096:  call instance class NAnt.Core.PathScanner class NAnt.Core.Types.FileSet::get_PathFiles()
+	IL_009b:  ldloc.0 
+	IL_009c:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
+	IL_00a1:  callvirt instance void class NAnt.Core.PathScanner::Add(string)
+	IL_00a6:  nop 
+	IL_00a7:  br IL_00df
+
+	IL_00ac:  nop 
+	IL_00ad:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
+	IL_00b2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00b7:  ldstr "Including pattern"
+	IL_00bc:  ldloc.0 
+	IL_00bd:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
+	IL_00c2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00c7:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
+	IL_00cc:  ldarg.0 
+	IL_00cd:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
+	IL_00d2:  ldloc.0 
+	IL_00d3:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
+	IL_00d8:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_00dd:  pop 
+	IL_00de:  nop 
+	IL_00df:  nop 
+	IL_00e0:  nop 
+	IL_00e1:  ldloc.2 
+	IL_00e2:  ldc.i4.1 
+	IL_00e3:  add 
+	IL_00e4:  stloc.2 
+	IL_00e5:  ldloc.2 
+	IL_00e6:  ldloc.1 
+	IL_00e7:  ldlen 
+	IL_00e8:  conv.i4 
+	IL_00e9:  blt IL_000b
+
+	IL_00ee:  ret 
+    } // end of method FileSet::set_IncludeElements
+
+    // method line 850
     .method public hidebysig specialname 
-           instance default void set_InputEncoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+           instance default void set_SetExcludes (class NAnt.Core.Types.FileSet/Exclude[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x11333
+        // Method begins at RVA 0xdea3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.CopyTask::_inputEncoding
+	IL_0003:  call instance void class NAnt.Core.Types.FileSet::set_ExcludeElements(class NAnt.Core.Types.FileSet/Exclude[])
 	IL_0008:  ret 
-    } // end of method CopyTask::set_InputEncoding
+    } // end of method FileSet::set_SetExcludes
 
-    // method line 948
+    // method line 851
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_OutputEncoding ()  cil managed 
+           instance default void set_ExcludeElements (class NAnt.Core.Types.FileSet/Exclude[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x11340
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xdeb0
+	// Code size 104 (0x68)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Text.Encoding	V_0)
+		class NAnt.Core.Types.FileSet/Exclude	V_0,
+		class NAnt.Core.Types.FileSet/Exclude[]	V_1,
+		int32	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.CopyTask::_outputEncoding
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  nop 
+	IL_0002:  ldarg.1 
+	IL_0003:  stloc.1 
+	IL_0004:  ldc.i4.0 
+	IL_0005:  stloc.2 
+	IL_0006:  br IL_005e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CopyTask::get_OutputEncoding
+	IL_000b:  ldloc.1 
+	IL_000c:  ldloc.2 
+	IL_000d:  ldelem.ref 
+	IL_000e:  stloc.0 
+	IL_000f:  nop 
+	IL_0010:  ldloc.0 
+	IL_0011:  callvirt instance bool class NAnt.Core.Types.FileSet/Exclude::get_IfDefined()
+	IL_0016:  brfalse IL_0059
 
-    // method line 949
+	IL_001b:  ldloc.0 
+	IL_001c:  callvirt instance bool class NAnt.Core.Types.FileSet/Exclude::get_UnlessDefined()
+	IL_0021:  brtrue IL_0059
+
+	IL_0026:  nop 
+	IL_0027:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
+	IL_002c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0031:  ldstr "Excluding pattern"
+	IL_0036:  ldloc.0 
+	IL_0037:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
+	IL_003c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0041:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
+	IL_0046:  ldarg.0 
+	IL_0047:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_004c:  ldloc.0 
+	IL_004d:  callvirt instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
+	IL_0052:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0057:  pop 
+	IL_0058:  nop 
+	IL_0059:  nop 
+	IL_005a:  ldloc.2 
+	IL_005b:  ldc.i4.1 
+	IL_005c:  add 
+	IL_005d:  stloc.2 
+	IL_005e:  ldloc.2 
+	IL_005f:  ldloc.1 
+	IL_0060:  ldlen 
+	IL_0061:  conv.i4 
+	IL_0062:  blt IL_000b
+
+	IL_0067:  ret 
+    } // end of method FileSet::set_ExcludeElements
+
+    // method line 852
     .method public hidebysig specialname 
-           instance default void set_OutputEncoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+           instance default void set_SetIncludesList (class NAnt.Core.Types.FileSet/IncludesFile[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x1135b
+        // Method begins at RVA 0xdf24
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.CopyTask::_outputEncoding
+	IL_0003:  call instance void class NAnt.Core.Types.FileSet::set_IncludesFiles(class NAnt.Core.Types.FileSet/IncludesFile[])
 	IL_0008:  ret 
-    } // end of method CopyTask::set_OutputEncoding
-
-    // method line 950
-    .method family hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_FileCopyMap ()  cil managed 
-    {
-        // Method begins at RVA 0x11368
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
-	IL_0007:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.Core.Tasks.CopyTask/FileOperationMap::ConvertToHashtable()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method CopyTask::get_FileCopyMap
+    } // end of method FileSet::set_SetIncludesList
 
-    // method line 951
-    .method family hidebysig specialname 
-           instance default class NAnt.Core.Tasks.CopyTask/FileOperationMap get_OperationMap ()  cil managed 
+    // method line 853
+    .method public hidebysig specialname 
+           instance default void set_IncludesFiles (class NAnt.Core.Types.FileSet/IncludesFile[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x11388
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xdf30
+	// Code size 422 (0x1a6)
+	.maxstack 4
 	.locals init (
-		class NAnt.Core.Tasks.CopyTask/FileOperationMap	V_0)
+		class NAnt.Core.Types.FileSet/IncludesFile	V_0,
+		class NAnt.Core.Types.FileSet/IncludesFile[]	V_1,
+		int32	V_2,
+		string	V_3,
+		class [System]System.Collections.Specialized.StringEnumerator	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		string	V_6,
+		class [System]System.Collections.Specialized.StringEnumerator	V_7,
+		class [mscorlib]System.IDisposable	V_8,
+		string	V_9,
+		class [System]System.Collections.Specialized.StringEnumerator	V_10,
+		class [mscorlib]System.IDisposable	V_11)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  nop 
+	IL_0002:  ldarg.1 
+	IL_0003:  stloc.1 
+	IL_0004:  ldc.i4.0 
+	IL_0005:  stloc.2 
+	IL_0006:  br IL_019c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CopyTask::get_OperationMap
+	IL_000b:  ldloc.1 
+	IL_000c:  ldloc.2 
+	IL_000d:  ldelem.ref 
+	IL_000e:  stloc.0 
+	IL_000f:  nop 
+	IL_0010:  ldloc.0 
+	IL_0011:  callvirt instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_IfDefined()
+	IL_0016:  brfalse IL_0197
 
-    // method line 952
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0x113a4
-	// Code size 321 (0x141)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
-	IL_0007:  brfalse IL_0038
+	IL_001b:  ldloc.0 
+	IL_001c:  callvirt instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_UnlessDefined()
+	IL_0021:  brtrue IL_0197
 
-	IL_000c:  ldarg.0 
-	IL_000d:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
-	IL_0012:  brtrue IL_0038
+	IL_0026:  nop 
+	IL_0027:  ldloc.0 
+	IL_0028:  callvirt instance bool class NAnt.Core.Types.FileSet/IncludesFile::get_AsIs()
+	IL_002d:  brfalse IL_00a5
 
-	IL_0017:  nop 
-	IL_0018:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001d:  ldstr "'flatten' attribute requires that 'todir' has been set."
-	IL_0022:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_0027:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_002c:  ldarg.0 
-	IL_002d:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0032:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0037:  throw 
-	IL_0038:  ldarg.0 
-	IL_0039:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
-	IL_003e:  brtrue IL_0085
+	IL_0032:  nop 
+	IL_0033:  nop 
+	IL_0034:  ldloc.0 
+	IL_0035:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet/ExcludesFile::get_Patterns()
+	IL_003a:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_003f:  stloc.s 4
+	.try { // 0
+	  IL_0041:  br IL_0077
 
-	IL_0043:  ldarg.0 
-	IL_0044:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0049:  brfalse IL_0085
+	  IL_0046:  ldloc.s 4
+	  IL_0048:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_004d:  stloc.3 
+	  IL_004e:  nop 
+	  IL_004f:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
+	  IL_0054:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0059:  ldstr "Including AsIs="
+	  IL_005e:  ldloc.3 
+	  IL_005f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0064:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
+	  IL_0069:  ldarg.0 
+	  IL_006a:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_AsIs()
+	  IL_006f:  ldloc.3 
+	  IL_0070:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_0075:  pop 
+	  IL_0076:  nop 
+	  IL_0077:  ldloc.s 4
+	  IL_0079:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_007e:  brtrue IL_0046
 
-	IL_004e:  ldarg.0 
-	IL_004f:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0054:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
-	IL_0059:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_005e:  ldc.i4.0 
-	IL_005f:  ble IL_0085
+	  IL_0083:  leave IL_009f
 
-	IL_0064:  nop 
-	IL_0065:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_006a:  ldstr "The 'todir' should be set when using the <fileset> element to specify the list of files to be copied."
-	IL_006f:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_0074:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0079:  ldarg.0 
-	IL_007a:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_007f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0084:  throw 
-	IL_0085:  ldarg.0 
-	IL_0086:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
-	IL_008b:  brfalse IL_00d2
+	} // end .try 0
+	finally  { // 0
+	  IL_0088:  ldloc.s 4
+	  IL_008a:  isinst [mscorlib]System.IDisposable
+	  IL_008f:  dup 
+	  IL_0090:  stloc.s 5
+	  IL_0092:  brfalse IL_009e
 
-	IL_0090:  ldarg.0 
-	IL_0091:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0096:  brfalse IL_00d2
+	  IL_0097:  ldloc.s 5
+	  IL_0099:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_009e:  endfinally 
+	} // end handler 0
+	IL_009f:  nop 
+	IL_00a0:  br IL_0196
 
-	IL_009b:  ldarg.0 
-	IL_009c:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_00a1:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
-	IL_00a6:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_00ab:  ldc.i4.0 
-	IL_00ac:  ble IL_00d2
+	IL_00a5:  ldloc.0 
+	IL_00a6:  callvirt instance bool class NAnt.Core.Types.FileSet/IncludesFile::get_FromPath()
+	IL_00ab:  brfalse IL_0125
 
+	IL_00b0:  nop 
 	IL_00b1:  nop 
-	IL_00b2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00b7:  ldstr "The 'file' attribute and the <fileset> element cannot be combined."
-	IL_00bc:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_00c1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_00c6:  ldarg.0 
-	IL_00c7:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_00cc:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_00d1:  throw 
-	IL_00d2:  ldarg.0 
-	IL_00d3:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
-	IL_00d8:  brtrue IL_0109
+	IL_00b2:  ldloc.0 
+	IL_00b3:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet/ExcludesFile::get_Patterns()
+	IL_00b8:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_00bd:  stloc.s 7
+	.try { // 1
+	  IL_00bf:  br IL_00f7
 
-	IL_00dd:  ldarg.0 
-	IL_00de:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
-	IL_00e3:  brtrue IL_0109
+	  IL_00c4:  ldloc.s 7
+	  IL_00c6:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_00cb:  stloc.s 6
+	  IL_00cd:  nop 
+	  IL_00ce:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
+	  IL_00d3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_00d8:  ldstr "Including FromPath="
+	  IL_00dd:  ldloc.s 6
+	  IL_00df:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_00e4:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
+	  IL_00e9:  ldarg.0 
+	  IL_00ea:  call instance class NAnt.Core.PathScanner class NAnt.Core.Types.FileSet::get_PathFiles()
+	  IL_00ef:  ldloc.s 6
+	  IL_00f1:  callvirt instance void class NAnt.Core.PathScanner::Add(string)
+	  IL_00f6:  nop 
+	  IL_00f7:  ldloc.s 7
+	  IL_00f9:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_00fe:  brtrue IL_00c4
 
-	IL_00e8:  nop 
-	IL_00e9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00ee:  ldstr "Either the 'tofile' or 'todir' attribute should be set."
-	IL_00f3:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_00f8:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_00fd:  ldarg.0 
-	IL_00fe:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0103:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0108:  throw 
-	IL_0109:  ldarg.0 
-	IL_010a:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
-	IL_010f:  brfalse IL_0140
+	  IL_0103:  leave IL_011f
 
-	IL_0114:  ldarg.0 
-	IL_0115:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
-	IL_011a:  brfalse IL_0140
+	} // end .try 1
+	finally  { // 1
+	  IL_0108:  ldloc.s 7
+	  IL_010a:  isinst [mscorlib]System.IDisposable
+	  IL_010f:  dup 
+	  IL_0110:  stloc.s 8
+	  IL_0112:  brfalse IL_011e
 
+	  IL_0117:  ldloc.s 8
+	  IL_0119:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_011e:  endfinally 
+	} // end handler 1
 	IL_011f:  nop 
-	IL_0120:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0125:  ldstr "The 'tofile' and 'todir' attribute cannot both be set."
-	IL_012a:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_012f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0134:  ldarg.0 
-	IL_0135:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_013a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_013f:  throw 
-	IL_0140:  ret 
-    } // end of method CopyTask::Initialize
+	IL_0120:  br IL_0196
 
-    // method line 953
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x114f4
-	// Code size 1161 (0x489)
-	.maxstack 7
-	.locals init (
-		class NAnt.Core.Tasks.CopyTask/FileOperation	V_0,
-		class [mscorlib]System.IO.FileSystemInfo	V_1,
-		class [mscorlib]System.IO.FileSystemInfo	V_2,
-		class [mscorlib]System.IO.DirectoryInfo	V_3,
-		string	V_4,
-		class [System]System.Collections.Specialized.StringEnumerator	V_5,
-		class [mscorlib]System.IO.FileInfo	V_6,
-		string	V_7,
-		string	V_8,
-		class [mscorlib]System.IO.FileInfo	V_9,
-		class NAnt.Core.Tasks.CopyTask/FileOperation	V_10,
-		class [mscorlib]System.IDisposable	V_11,
-		string	V_12,
-		class [System]System.Collections.Specialized.StringEnumerator	V_13,
-		class [mscorlib]System.IO.DirectoryInfo	V_14,
-		string	V_15,
-		string	V_16,
-		class [mscorlib]System.Exception	V_17,
-		class [mscorlib]System.IDisposable	V_18)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_000c:  brtrue IL_002e
+	IL_0125:  nop 
+	IL_0126:  nop 
+	IL_0127:  ldloc.0 
+	IL_0128:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet/ExcludesFile::get_Patterns()
+	IL_012d:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0132:  stloc.s 10
+	.try { // 2
+	  IL_0134:  br IL_016d
 
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0018:  ldarg.0 
-	IL_0019:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_001e:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_0023:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0028:  callvirt instance void class NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_002d:  nop 
-	IL_002e:  ldarg.0 
-	IL_002f:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
-	IL_0034:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::Clear()
-	IL_0039:  ldarg.0 
-	IL_003a:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
-	IL_003f:  brfalse IL_00fd
+	  IL_0139:  ldloc.s 10
+	  IL_013b:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0140:  stloc.s 9
+	  IL_0142:  nop 
+	  IL_0143:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
+	  IL_0148:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_014d:  ldstr "Including Pattern="
+	  IL_0152:  ldloc.s 9
+	  IL_0154:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0159:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
+	  IL_015e:  ldarg.0 
+	  IL_015f:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
+	  IL_0164:  ldloc.s 9
+	  IL_0166:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_016b:  pop 
+	  IL_016c:  nop 
+	  IL_016d:  ldloc.s 10
+	  IL_016f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0174:  brtrue IL_0139
 
-	IL_0044:  nop 
-	IL_0045:  ldarg.0 
-	IL_0046:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
-	IL_004b:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0050:  brfalse IL_0063
+	  IL_0179:  leave IL_0195
 
-	IL_0055:  nop 
-	IL_0056:  ldarg.0 
-	IL_0057:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
-	IL_005c:  stloc.1 
-	IL_005d:  nop 
-	IL_005e:  br IL_00a3
+	} // end .try 2
+	finally  { // 2
+	  IL_017e:  ldloc.s 10
+	  IL_0180:  isinst [mscorlib]System.IDisposable
+	  IL_0185:  dup 
+	  IL_0186:  stloc.s 11
+	  IL_0188:  brfalse IL_0194
 
-	IL_0063:  ldarg.0 
-	IL_0064:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
-	IL_0069:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_006e:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0073:  brfalse IL_0090
+	  IL_018d:  ldloc.s 11
+	  IL_018f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0194:  endfinally 
+	} // end handler 2
+	IL_0195:  nop 
+	IL_0196:  nop 
+	IL_0197:  nop 
+	IL_0198:  ldloc.2 
+	IL_0199:  ldc.i4.1 
+	IL_019a:  add 
+	IL_019b:  stloc.2 
+	IL_019c:  ldloc.2 
+	IL_019d:  ldloc.1 
+	IL_019e:  ldlen 
+	IL_019f:  conv.i4 
+	IL_01a0:  blt IL_000b
 
-	IL_0078:  nop 
-	IL_0079:  ldarg.0 
-	IL_007a:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
-	IL_007f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0084:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0089:  stloc.1 
-	IL_008a:  nop 
-	IL_008b:  br IL_00a3
+	IL_01a5:  ret 
+    } // end of method FileSet::set_IncludesFiles
 
-	IL_0090:  nop 
-	IL_0091:  ldarg.0 
-	IL_0092:  ldarg.0 
-	IL_0093:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
-	IL_0098:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_009d:  callvirt instance class NAnt.Core.BuildException class NAnt.Core.Tasks.CopyTask::CreateSourceFileNotFoundException(string)
-	IL_00a2:  throw 
-	IL_00a3:  ldarg.0 
-	IL_00a4:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
-	IL_00a9:  brfalse IL_00bc
+    // method line 854
+    .method public hidebysig specialname 
+           instance default void set_ExcludesFiles (class NAnt.Core.Types.FileSet/ExcludesFile[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0xe10c
+	// Code size 163 (0xa3)
+	.maxstack 4
+	.locals init (
+		class NAnt.Core.Types.FileSet/ExcludesFile	V_0,
+		class NAnt.Core.Types.FileSet/ExcludesFile[]	V_1,
+		int32	V_2,
+		string	V_3,
+		class [System]System.Collections.Specialized.StringEnumerator	V_4,
+		class [mscorlib]System.IDisposable	V_5)
+	IL_0000:  nop 
+	IL_0001:  nop 
+	IL_0002:  ldarg.1 
+	IL_0003:  stloc.1 
+	IL_0004:  ldc.i4.0 
+	IL_0005:  stloc.2 
+	IL_0006:  br IL_0099
 
-	IL_00ae:  nop 
-	IL_00af:  ldarg.0 
-	IL_00b0:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
-	IL_00b5:  stloc.2 
-	IL_00b6:  nop 
-	IL_00b7:  br IL_00c5
+	IL_000b:  ldloc.1 
+	IL_000c:  ldloc.2 
+	IL_000d:  ldelem.ref 
+	IL_000e:  stloc.0 
+	IL_000f:  nop 
+	IL_0010:  ldloc.0 
+	IL_0011:  callvirt instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_IfDefined()
+	IL_0016:  brfalse IL_0094
 
-	IL_00bc:  nop 
-	IL_00bd:  ldarg.0 
-	IL_00be:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
-	IL_00c3:  stloc.2 
-	IL_00c4:  nop 
-	IL_00c5:  ldloc.1 
-	IL_00c6:  ldloc.2 
-	IL_00c7:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileOperation::'.ctor'(class [mscorlib]System.IO.FileSystemInfo, class [mscorlib]System.IO.FileSystemInfo)
-	IL_00cc:  stloc.0 
-	IL_00cd:  ldarg.0 
-	IL_00ce:  call instance bool class NAnt.Core.Tasks.CopyTask::get_Overwrite()
-	IL_00d3:  brtrue IL_00e3
+	IL_001b:  ldloc.0 
+	IL_001c:  callvirt instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_UnlessDefined()
+	IL_0021:  brtrue IL_0094
 
-	IL_00d8:  ldloc.0 
-	IL_00d9:  callvirt instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::get_Outdated()
-	IL_00de:  brfalse IL_00f7
+	IL_0026:  nop 
+	IL_0027:  nop 
+	IL_0028:  ldloc.0 
+	IL_0029:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet/ExcludesFile::get_Patterns()
+	IL_002e:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0033:  stloc.s 4
+	.try { // 0
+	  IL_0035:  br IL_006b
 
-	IL_00e3:  nop 
-	IL_00e4:  ldloc.0 
-	IL_00e5:  callvirt instance void class NAnt.Core.Tasks.CopyTask/FileOperation::NormalizeTargetAttributes()
-	IL_00ea:  ldarg.0 
-	IL_00eb:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
-	IL_00f0:  ldloc.0 
-	IL_00f1:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::Add(!0)
-	IL_00f6:  nop 
-	IL_00f7:  nop 
-	IL_00f8:  br IL_0482
+	  IL_003a:  ldloc.s 4
+	  IL_003c:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0041:  stloc.3 
+	  IL_0042:  nop 
+	  IL_0043:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
+	  IL_0048:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_004d:  ldstr "Excluding="
+	  IL_0052:  ldloc.3 
+	  IL_0053:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0058:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
+	  IL_005d:  ldarg.0 
+	  IL_005e:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	  IL_0063:  ldloc.3 
+	  IL_0064:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_0069:  pop 
+	  IL_006a:  nop 
+	  IL_006b:  ldloc.s 4
+	  IL_006d:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0072:  brtrue IL_003a
 
-	IL_00fd:  ldarg.0 
-	IL_00fe:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0103:  callvirt instance bool class NAnt.Core.Types.FileSet::get_IsEverythingIncluded()
-	IL_0108:  brfalse IL_0166
+	  IL_0077:  leave IL_0093
 
-	IL_010d:  ldarg.0 
-	IL_010e:  callvirt instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
-	IL_0113:  brtrue IL_0166
+	} // end .try 0
+	finally  { // 0
+	  IL_007c:  ldloc.s 4
+	  IL_007e:  isinst [mscorlib]System.IDisposable
+	  IL_0083:  dup 
+	  IL_0084:  stloc.s 5
+	  IL_0086:  brfalse IL_0092
 
-	IL_0118:  ldarg.0 
-	IL_0119:  call instance bool class NAnt.Core.Tasks.CopyTask::get_IncludeEmptyDirs()
-	IL_011e:  brfalse IL_0166
+	  IL_008b:  ldloc.s 5
+	  IL_008d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0092:  endfinally 
+	} // end handler 0
+	IL_0093:  nop 
+	IL_0094:  nop 
+	IL_0095:  ldloc.2 
+	IL_0096:  ldc.i4.1 
+	IL_0097:  add 
+	IL_0098:  stloc.2 
+	IL_0099:  ldloc.2 
+	IL_009a:  ldloc.1 
+	IL_009b:  ldlen 
+	IL_009c:  conv.i4 
+	IL_009d:  blt IL_000b
 
-	IL_0123:  ldarg.0 
-	IL_0124:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0129:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_012e:  ldarg.0 
-	IL_012f:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
-	IL_0134:  call bool class NAnt.Core.Tasks.CopyTask/FileOperation::TargetDirectoryDoesNotExist(class [mscorlib]System.IO.DirectoryInfo, class [mscorlib]System.IO.DirectoryInfo)
-	IL_0139:  brfalse IL_0166
+	IL_00a2:  ret 
+    } // end of method FileSet::set_ExcludesFiles
 
-	IL_013e:  nop 
-	IL_013f:  ldarg.0 
-	IL_0140:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
-	IL_0145:  ldarg.0 
-	IL_0146:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_014b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_0150:  ldarg.0 
-	IL_0151:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
-	IL_0156:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileOperation::'.ctor'(class [mscorlib]System.IO.FileSystemInfo, class [mscorlib]System.IO.FileSystemInfo)
-	IL_015b:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::Add(!0)
-	IL_0160:  nop 
-	IL_0161:  br IL_0482
+    // method line 855
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_MostRecentLastWriteTimeFile ()  cil managed 
+    {
+        // Method begins at RVA 0xe1cc
+	// Code size 210 (0xd2)
+	.maxstack 5
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [mscorlib]System.IO.FileInfo	V_3,
+		class [mscorlib]System.IDisposable	V_4,
+		class [mscorlib]System.IO.FileInfo	V_5)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  nop 
+	IL_0004:  ldarg.0 
+	IL_0005:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_000a:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_000f:  stloc.2 
+	.try { // 0
+	  IL_0010:  br IL_00a1
 
-	IL_0166:  nop 
-	IL_0167:  ldarg.0 
-	IL_0168:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_016d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
-	IL_0172:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0177:  brtrue IL_019f
+	  IL_0015:  ldloc.2 
+	  IL_0016:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_001b:  stloc.1 
+	  IL_001c:  nop 
+	  IL_001d:  ldloc.1 
+	  IL_001e:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_0023:  stloc.3 
+	  IL_0024:  ldloc.0 
+	  IL_0025:  brtrue IL_0039
 
-	IL_017c:  nop 
-	IL_017d:  ldarg.0 
-	IL_017e:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0183:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
-	IL_0188:  ldstr "**/*"
-	IL_018d:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0192:  pop 
-	IL_0193:  ldarg.0 
-	IL_0194:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0199:  callvirt instance void class NAnt.Core.Types.FileSet::Scan()
-	IL_019e:  nop 
-	IL_019f:  ldarg.0 
-	IL_01a0:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_01a5:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_01aa:  stloc.3 
-	IL_01ab:  nop 
-	IL_01ac:  ldarg.0 
-	IL_01ad:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_01b2:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_01b7:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_01bc:  stloc.s 5
-	.try { // 0
-	  IL_01be:  br IL_031d
+	  IL_002a:  ldloc.3 
+	  IL_002b:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_0030:  brfalse IL_0039
 
-	  IL_01c3:  ldloc.s 5
-	  IL_01c5:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_01ca:  stloc.s 4
-	  IL_01cc:  nop 
-	  IL_01cd:  ldloc.s 4
-	  IL_01cf:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_01d4:  stloc.s 6
-	  IL_01d6:  ldloc.s 6
-	  IL_01d8:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_01dd:  brfalse IL_030d
+	  IL_0035:  nop 
+	  IL_0036:  ldloc.3 
+	  IL_0037:  stloc.0 
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.3 
+	  IL_003a:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_003f:  brtrue IL_0065
 
-	  IL_01e2:  nop 
-	  IL_01e3:  ldarg.0 
-	  IL_01e4:  callvirt instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
-	  IL_01e9:  brfalse IL_020e
+	  IL_0044:  nop 
+	  IL_0045:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
+	  IL_004a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_004f:  ldstr "File '{0}' does not exist (and is not newer than {1})"
+	  IL_0054:  ldloc.1 
+	  IL_0055:  ldloc.0 
+	  IL_0056:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_005b:  callvirt instance void class [log4net]log4net.ILog::Info(object)
+	  IL_0060:  leave IL_00a1
 
-	  IL_01ee:  nop 
-	  IL_01ef:  ldarg.0 
-	  IL_01f0:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
-	  IL_01f5:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_01fa:  ldloc.s 6
-	  IL_01fc:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
-	  IL_0201:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_0206:  stloc.s 7
-	  IL_0208:  nop 
-	  IL_0209:  br IL_028d
+	  IL_0065:  ldloc.0 
+	  IL_0066:  brfalse IL_00a0
 
-	  IL_020e:  nop 
-	  IL_020f:  ldstr ""
-	  IL_0214:  stloc.s 8
-	  IL_0216:  ldloc.s 6
-	  IL_0218:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_021d:  ldloc.3 
-	  IL_021e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0223:  ldc.i4.0 
-	  IL_0224:  callvirt instance int32 string::IndexOf(string, int32)
-	  IL_0229:  ldc.i4.m1 
-	  IL_022a:  beq IL_024f
+	  IL_006b:  ldloc.3 
+	  IL_006c:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	  IL_0071:  ldloc.0 
+	  IL_0072:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	  IL_0077:  call bool valuetype [mscorlib]System.DateTime::op_GreaterThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	  IL_007c:  brfalse IL_00a0
 
-	  IL_022f:  nop 
-	  IL_0230:  ldloc.s 6
-	  IL_0232:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0237:  ldloc.3 
-	  IL_0238:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_023d:  callvirt instance int32 string::get_Length()
-	  IL_0242:  callvirt instance string string::Substring(int32)
-	  IL_0247:  stloc.s 8
-	  IL_0249:  nop 
-	  IL_024a:  br IL_025a
+	  IL_0081:  nop 
+	  IL_0082:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
+	  IL_0087:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_008c:  ldstr "'{0}' was newer than {1}"
+	  IL_0091:  ldloc.1 
+	  IL_0092:  ldloc.0 
+	  IL_0093:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0098:  callvirt instance void class [log4net]log4net.ILog::Info(object)
+	  IL_009d:  ldloc.3 
+	  IL_009e:  stloc.0 
+	  IL_009f:  nop 
+	  IL_00a0:  nop 
+	  IL_00a1:  ldloc.2 
+	  IL_00a2:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_00a7:  brtrue IL_0015
 
-	  IL_024f:  nop 
-	  IL_0250:  ldloc.s 6
-	  IL_0252:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
-	  IL_0257:  stloc.s 8
-	  IL_0259:  nop 
-	  IL_025a:  ldloc.s 8
-	  IL_025c:  ldc.i4.0 
-	  IL_025d:  callvirt instance char string::get_Chars(int32)
-	  IL_0262:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	  IL_0267:  bne.un IL_0278
+	  IL_00ac:  leave IL_00c7
 
-	  IL_026c:  nop 
-	  IL_026d:  ldloc.s 8
-	  IL_026f:  ldc.i4.1 
-	  IL_0270:  callvirt instance string string::Substring(int32)
-	  IL_0275:  stloc.s 8
-	  IL_0277:  nop 
-	  IL_0278:  ldarg.0 
-	  IL_0279:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
-	  IL_027e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0283:  ldloc.s 8
-	  IL_0285:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_028a:  stloc.s 7
-	  IL_028c:  nop 
-	  IL_028d:  ldloc.s 7
-	  IL_028f:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_0294:  stloc.s 9
-	  IL_0296:  ldloc.s 6
-	  IL_0298:  ldloc.s 9
-	  IL_029a:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileOperation::'.ctor'(class [mscorlib]System.IO.FileSystemInfo, class [mscorlib]System.IO.FileSystemInfo)
-	  IL_029f:  stloc.s 10
-	  IL_02a1:  ldarg.0 
-	  IL_02a2:  call instance bool class NAnt.Core.Tasks.CopyTask::get_Overwrite()
-	  IL_02a7:  brtrue IL_02b8
+	} // end .try 0
+	finally  { // 0
+	  IL_00b1:  ldloc.2 
+	  IL_00b2:  isinst [mscorlib]System.IDisposable
+	  IL_00b7:  dup 
+	  IL_00b8:  stloc.s 4
+	  IL_00ba:  brfalse IL_00c6
 
-	  IL_02ac:  ldloc.s 10
-	  IL_02ae:  callvirt instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::get_Outdated()
-	  IL_02b3:  brfalse IL_0307
+	  IL_00bf:  ldloc.s 4
+	  IL_00c1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00c6:  endfinally 
+	} // end handler 0
+	IL_00c7:  ldloc.0 
+	IL_00c8:  stloc.s 5
+	IL_00ca:  br IL_00cf
 
-	  IL_02b8:  nop 
-	  IL_02b9:  ldarg.0 
-	  IL_02ba:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
-	  IL_02bf:  ldloc.s 9
-	  IL_02c1:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_02c6:  callvirt instance bool class NAnt.Core.Tasks.CopyTask/FileOperationMap::ContainsKey(string)
-	  IL_02cb:  brfalse IL_02f0
+	IL_00cf:  ldloc.s 5
+	IL_00d1:  ret 
+    } // end of method FileSet::get_MostRecentLastWriteTimeFile
 
-	  IL_02d0:  nop 
-	  IL_02d1:  ldarg.0 
-	  IL_02d2:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
-	  IL_02d7:  ldloc.s 9
-	  IL_02d9:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_02de:  callvirt instance !1 class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Item(!0)
-	  IL_02e3:  ldloc.s 6
-	  IL_02e5:  callvirt instance void class NAnt.Core.Tasks.CopyTask/FileOperation::UpdateSource(class [mscorlib]System.IO.FileSystemInfo)
-	  IL_02ea:  nop 
-	  IL_02eb:  br IL_0306
+    // method line 856
+    .method public virtual hidebysig newslot 
+           instance default object Clone ()  cil managed 
+    {
+        // Method begins at RVA 0xe2bc
+	// Code size 23 (0x17)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Types.FileSet	V_0,
+		object	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  call instance void class NAnt.Core.Types.FileSet::CopyTo(class NAnt.Core.Types.FileSet)
+	IL_000e:  ldloc.0 
+	IL_000f:  stloc.1 
+	IL_0010:  br IL_0015
 
-	  IL_02f0:  nop 
-	  IL_02f1:  ldloc.s 10
-	  IL_02f3:  callvirt instance void class NAnt.Core.Tasks.CopyTask/FileOperation::NormalizeTargetAttributes()
-	  IL_02f8:  ldarg.0 
-	  IL_02f9:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
-	  IL_02fe:  ldloc.s 10
-	  IL_0300:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::Add(!0)
-	  IL_0305:  nop 
-	  IL_0306:  nop 
-	  IL_0307:  nop 
-	  IL_0308:  br IL_031c
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method FileSet::Clone
 
-	  IL_030d:  nop 
-	  IL_030e:  ldarg.0 
-	  IL_030f:  ldloc.s 6
-	  IL_0311:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0316:  callvirt instance class NAnt.Core.BuildException class NAnt.Core.Tasks.CopyTask::CreateSourceFileNotFoundException(string)
-	  IL_031b:  throw 
-	  IL_031c:  nop 
-	  IL_031d:  ldloc.s 5
-	  IL_031f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0324:  brtrue IL_01c3
+    // method line 857
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0xe2e0
+	// Code size 395 (0x18b)
+	.maxstack 2
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance void class NAnt.Core.DataTypeBase::Initialize()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance bool class NAnt.Core.Types.FileSet::get_DefaultExcludes()
+	IL_000d:  brfalse IL_018a
 
-	  IL_0329:  leave IL_0345
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_0019:  ldstr "**/.svn"
+	IL_001e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0023:  pop 
+	IL_0024:  ldarg.0 
+	IL_0025:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_002a:  ldstr "**/.svn/**"
+	IL_002f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0034:  pop 
+	IL_0035:  ldarg.0 
+	IL_0036:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_003b:  ldstr "**/_svn"
+	IL_0040:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0045:  pop 
+	IL_0046:  ldarg.0 
+	IL_0047:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_004c:  ldstr "**/_svn/**"
+	IL_0051:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0056:  pop 
+	IL_0057:  ldarg.0 
+	IL_0058:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_005d:  ldstr "**/.git"
+	IL_0062:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0067:  pop 
+	IL_0068:  ldarg.0 
+	IL_0069:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_006e:  ldstr "**/.git/**"
+	IL_0073:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0078:  pop 
+	IL_0079:  ldarg.0 
+	IL_007a:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_007f:  ldstr "**/.git*"
+	IL_0084:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0089:  pop 
+	IL_008a:  ldarg.0 
+	IL_008b:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_0090:  ldstr "**/.hg"
+	IL_0095:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_009a:  pop 
+	IL_009b:  ldarg.0 
+	IL_009c:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_00a1:  ldstr "**/.hg/**"
+	IL_00a6:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_00ab:  pop 
+	IL_00ac:  ldarg.0 
+	IL_00ad:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_00b2:  ldstr "**/.hg*"
+	IL_00b7:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_00bc:  pop 
+	IL_00bd:  ldarg.0 
+	IL_00be:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_00c3:  ldstr "**/SCCS"
+	IL_00c8:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_00cd:  pop 
+	IL_00ce:  ldarg.0 
+	IL_00cf:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_00d4:  ldstr "**/SCCS/**"
+	IL_00d9:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_00de:  pop 
+	IL_00df:  ldarg.0 
+	IL_00e0:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_00e5:  ldstr "**/vssver.scc"
+	IL_00ea:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_00ef:  pop 
+	IL_00f0:  ldarg.0 
+	IL_00f1:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_00f6:  ldstr "**/vssver2.scc"
+	IL_00fb:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0100:  pop 
+	IL_0101:  ldarg.0 
+	IL_0102:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_0107:  ldstr "**/_vti_cnf/**"
+	IL_010c:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0111:  pop 
+	IL_0112:  ldarg.0 
+	IL_0113:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_0118:  ldstr "**/*~"
+	IL_011d:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0122:  pop 
+	IL_0123:  ldarg.0 
+	IL_0124:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_0129:  ldstr "**/#*#"
+	IL_012e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0133:  pop 
+	IL_0134:  ldarg.0 
+	IL_0135:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_013a:  ldstr "**/.#*"
+	IL_013f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0144:  pop 
+	IL_0145:  ldarg.0 
+	IL_0146:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_014b:  ldstr "**/%*%"
+	IL_0150:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0155:  pop 
+	IL_0156:  ldarg.0 
+	IL_0157:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_015c:  ldstr "**/CVS"
+	IL_0161:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0166:  pop 
+	IL_0167:  ldarg.0 
+	IL_0168:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_016d:  ldstr "**/CVS/**"
+	IL_0172:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0177:  pop 
+	IL_0178:  ldarg.0 
+	IL_0179:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_017e:  ldstr "**/.cvsignore"
+	IL_0183:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0188:  pop 
+	IL_0189:  nop 
+	IL_018a:  ret 
+    } // end of method FileSet::Initialize
+
+    // method line 858
+    .method public virtual hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0xe477
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  stfld bool NAnt.Core.Types.FileSet::_hasScanned
+	IL_0008:  ret 
+    } // end of method FileSet::Reset
+
+    // method line 859
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
+    {
+        // Method begins at RVA 0xe484
+	// Code size 398 (0x18e)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		string	V_4,
+		class [System]System.Collections.Specialized.StringEnumerator	V_5,
+		class [mscorlib]System.IDisposable	V_6,
+		string	V_7)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldfld bool NAnt.Core.Types.FileSet::_hasScanned
+	IL_000d:  brtrue IL_008c
+
+	IL_0012:  nop 
+	IL_0013:  ldloc.0 
+	IL_0014:  ldstr "Base path: {0}"
+	IL_0019:  ldarg.0 
+	IL_001a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_001f:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_0024:  pop 
+	IL_0025:  ldloc.0 
+	IL_0026:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
+	IL_002b:  pop 
+	IL_002c:  ldloc.0 
+	IL_002d:  ldstr "AsIs:"
+	IL_0032:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
+	IL_0037:  pop 
+	IL_0038:  ldloc.0 
+	IL_0039:  ldarg.0 
+	IL_003a:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_AsIs()
+	IL_003f:  callvirt instance string object::ToString()
+	IL_0044:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
+	IL_0049:  pop 
+	IL_004a:  ldloc.0 
+	IL_004b:  ldstr "Files:"
+	IL_0050:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
+	IL_0055:  pop 
+	IL_0056:  ldloc.0 
+	IL_0057:  ldarg.0 
+	IL_0058:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_005d:  callvirt instance string object::ToString()
+	IL_0062:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
+	IL_0067:  pop 
+	IL_0068:  ldloc.0 
+	IL_0069:  ldstr "PathFiles:"
+	IL_006e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
+	IL_0073:  pop 
+	IL_0074:  ldloc.0 
+	IL_0075:  ldarg.0 
+	IL_0076:  ldfld class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::_pathFiles
+	IL_007b:  callvirt instance string object::ToString()
+	IL_0080:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
+	IL_0085:  pop 
+	IL_0086:  nop 
+	IL_0087:  br IL_017e
+
+	IL_008c:  nop 
+	IL_008d:  ldloc.0 
+	IL_008e:  ldstr "IsEverythingIncluded: {0}"
+	IL_0093:  ldarg.0 
+	IL_0094:  call instance bool class NAnt.Core.Types.FileSet::get_IsEverythingIncluded()
+	IL_0099:  box [mscorlib]System.Boolean
+	IL_009e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_00a3:  pop 
+	IL_00a4:  ldloc.0 
+	IL_00a5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
+	IL_00aa:  pop 
+	IL_00ab:  ldloc.0 
+	IL_00ac:  ldstr "Files:"
+	IL_00b1:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
+	IL_00b6:  pop 
+	IL_00b7:  nop 
+	IL_00b8:  ldarg.0 
+	IL_00b9:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_00be:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_00c3:  stloc.2 
+	.try { // 0
+	  IL_00c4:  br IL_00e6
+
+	  IL_00c9:  ldloc.2 
+	  IL_00ca:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_00cf:  stloc.1 
+	  IL_00d0:  nop 
+	  IL_00d1:  ldloc.0 
+	  IL_00d2:  ldloc.1 
+	  IL_00d3:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_00d8:  pop 
+	  IL_00d9:  ldloc.0 
+	  IL_00da:  call string class [mscorlib]System.Environment::get_NewLine()
+	  IL_00df:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_00e4:  pop 
+	  IL_00e5:  nop 
+	  IL_00e6:  ldloc.2 
+	  IL_00e7:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_00ec:  brtrue IL_00c9
+
+	  IL_00f1:  leave IL_010a
 
 	} // end .try 0
 	finally  { // 0
-	  IL_032e:  ldloc.s 5
-	  IL_0330:  isinst [mscorlib]System.IDisposable
-	  IL_0335:  dup 
-	  IL_0336:  stloc.s 11
-	  IL_0338:  brfalse IL_0344
+	  IL_00f6:  ldloc.2 
+	  IL_00f7:  isinst [mscorlib]System.IDisposable
+	  IL_00fc:  dup 
+	  IL_00fd:  stloc.3 
+	  IL_00fe:  brfalse IL_0109
 
-	  IL_033d:  ldloc.s 11
-	  IL_033f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0344:  endfinally 
+	  IL_0103:  ldloc.3 
+	  IL_0104:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0109:  endfinally 
 	} // end handler 0
-	IL_0345:  ldarg.0 
-	IL_0346:  call instance bool class NAnt.Core.Tasks.CopyTask::get_IncludeEmptyDirs()
-	IL_034b:  brfalse IL_0481
+	IL_010a:  ldloc.0 
+	IL_010b:  ldstr "Dirs:"
+	IL_0110:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0115:  pop 
+	IL_0116:  ldloc.0 
+	IL_0117:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_011c:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0121:  pop 
+	IL_0122:  nop 
+	IL_0123:  ldarg.0 
+	IL_0124:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
+	IL_0129:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_012e:  stloc.s 5
+	.try { // 1
+	  IL_0130:  br IL_0155
 
-	IL_0350:  ldarg.0 
-	IL_0351:  callvirt instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
-	IL_0356:  brtrue IL_0481
+	  IL_0135:  ldloc.s 5
+	  IL_0137:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_013c:  stloc.s 4
+	  IL_013e:  nop 
+	  IL_013f:  ldloc.0 
+	  IL_0140:  ldloc.s 4
+	  IL_0142:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_0147:  pop 
+	  IL_0148:  ldloc.0 
+	  IL_0149:  call string class [mscorlib]System.Environment::get_NewLine()
+	  IL_014e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_0153:  pop 
+	  IL_0154:  nop 
+	  IL_0155:  ldloc.s 5
+	  IL_0157:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_015c:  brtrue IL_0135
 
-	IL_035b:  nop 
-	IL_035c:  nop 
-	IL_035d:  ldarg.0 
-	IL_035e:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0363:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
-	IL_0368:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_036d:  stloc.s 13
+	  IL_0161:  leave IL_017d
+
+	} // end .try 1
+	finally  { // 1
+	  IL_0166:  ldloc.s 5
+	  IL_0168:  isinst [mscorlib]System.IDisposable
+	  IL_016d:  dup 
+	  IL_016e:  stloc.s 6
+	  IL_0170:  brfalse IL_017c
+
+	  IL_0175:  ldloc.s 6
+	  IL_0177:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_017c:  endfinally 
+	} // end handler 1
+	IL_017d:  nop 
+	IL_017e:  ldloc.0 
+	IL_017f:  callvirt instance string object::ToString()
+	IL_0184:  stloc.s 7
+	IL_0186:  br IL_018b
+
+	IL_018b:  ldloc.s 7
+	IL_018d:  ret 
+    } // end of method FileSet::ToString
+
+    // method line 860
+    .method public hidebysig 
+           instance default void AddPatternSet (class NAnt.Core.Types.PatternSet patternSet)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 0A 70 61 74 74 65 72 6E 73 65 74 00 00 ) // ...patternset..
+
+        // Method begins at RVA 0xe63c
+	// Code size 36 (0x24)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance string[] class NAnt.Core.Types.PatternSet::GetIncludePatterns()
+	IL_000d:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Excludes()
+	IL_0018:  ldarg.1 
+	IL_0019:  callvirt instance string[] class NAnt.Core.Types.PatternSet::GetExcludePatterns()
+	IL_001e:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
+	IL_0023:  ret 
+    } // end of method FileSet::AddPatternSet
+
+    // method line 861
+    .method public virtual hidebysig newslot 
+           instance default void Scan ()  cil managed 
+    {
+        // Method begins at RVA 0xe664
+	// Code size 369 (0x171)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		class [System]System.Collections.Specialized.StringEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2,
+		string	V_3,
+		class [System]System.Collections.Specialized.StringEnumerator	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		class [mscorlib]System.Exception	V_6)
+	IL_0000:  nop 
 	.try { // 2
-	  IL_036f:  br IL_0458
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.0 
+	  IL_0003:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	  IL_0008:  ldarg.0 
+	  IL_0009:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
+	  IL_000e:  callvirt instance void class NAnt.Core.DirectoryScanner::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	  IL_0013:  ldarg.0 
+	  IL_0014:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	  IL_0019:  callvirt instance void class NAnt.Core.DirectoryScanner::Scan()
+	  IL_001e:  nop 
+	  IL_001f:  ldarg.0 
+	  IL_0020:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_AsIs()
+	  IL_0025:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_002a:  stloc.1 
+	  .try { // 0
+	    IL_002b:  br IL_0071
 
-	  IL_0374:  ldloc.s 13
-	  IL_0376:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_037b:  stloc.s 12
-	  IL_037d:  nop 
-	  IL_037e:  ldloc.s 12
-	  IL_0380:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	  IL_0385:  stloc.s 14
-	  IL_0387:  ldloc.s 14
-	  IL_0389:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_038e:  ldloc.3 
-	  IL_038f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0394:  callvirt instance int32 string::IndexOf(string)
-	  IL_0399:  ldc.i4.m1 
-	  IL_039a:  bne.un IL_03a5
+	    IL_0030:  ldloc.1 
+	    IL_0031:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_0036:  stloc.0 
+	    IL_0037:  nop 
+	    IL_0038:  ldloc.0 
+	    IL_0039:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	    IL_003e:  brfalse IL_005c
 
-	  IL_039f:  nop 
-	  IL_03a0:  leave IL_0458
+	    IL_0043:  nop 
+	    IL_0044:  ldarg.0 
+	    IL_0045:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	    IL_004a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_DirectoryNames()
+	    IL_004f:  ldloc.0 
+	    IL_0050:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_0055:  pop 
+	    IL_0056:  nop 
+	    IL_0057:  br IL_0070
 
-	  IL_03a5:  ldloc.s 14
-	  IL_03a7:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_03ac:  ldloc.3 
-	  IL_03ad:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_03b2:  callvirt instance int32 string::get_Length()
-	  IL_03b7:  callvirt instance string string::Substring(int32)
-	  IL_03bc:  stloc.s 15
-	  IL_03be:  ldloc.s 15
-	  IL_03c0:  callvirt instance int32 string::get_Length()
-	  IL_03c5:  ldc.i4.0 
-	  IL_03c6:  ble IL_03e9
+	    IL_005c:  nop 
+	    IL_005d:  ldarg.0 
+	    IL_005e:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	    IL_0063:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_FileNames()
+	    IL_0068:  ldloc.0 
+	    IL_0069:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_006e:  pop 
+	    IL_006f:  nop 
+	    IL_0070:  nop 
+	    IL_0071:  ldloc.1 
+	    IL_0072:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_0077:  brtrue IL_0030
 
-	  IL_03cb:  ldloc.s 15
-	  IL_03cd:  ldc.i4.0 
-	  IL_03ce:  callvirt instance char string::get_Chars(int32)
-	  IL_03d3:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	  IL_03d8:  bne.un IL_03e9
+	    IL_007c:  leave IL_0095
 
-	  IL_03dd:  nop 
-	  IL_03de:  ldloc.s 15
-	  IL_03e0:  ldc.i4.1 
-	  IL_03e1:  callvirt instance string string::Substring(int32)
-	  IL_03e6:  stloc.s 15
-	  IL_03e8:  nop 
-	  IL_03e9:  ldarg.0 
-	  IL_03ea:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
-	  IL_03ef:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_03f4:  ldloc.s 15
-	  IL_03f6:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_03fb:  stloc.s 16
-	  IL_03fd:  ldloc.s 16
-	  IL_03ff:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_0404:  brtrue IL_0457
+	  } // end .try 0
+	  finally  { // 0
+	    IL_0081:  ldloc.1 
+	    IL_0082:  isinst [mscorlib]System.IDisposable
+	    IL_0087:  dup 
+	    IL_0088:  stloc.2 
+	    IL_0089:  brfalse IL_0094
 
-	  IL_0409:  nop 
+	    IL_008e:  ldloc.2 
+	    IL_008f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0094:  endfinally 
+	  } // end handler 0
+	  IL_0095:  nop 
+	  IL_0096:  ldarg.0 
+	  IL_0097:  call instance class NAnt.Core.PathScanner class NAnt.Core.Types.FileSet::get_PathFiles()
+	  IL_009c:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.PathScanner::Scan()
+	  IL_00a1:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_00a6:  stloc.s 4
 	  .try { // 1
-	    IL_040a:  nop 
-	    IL_040b:  ldloc.s 16
-	    IL_040d:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	    IL_0412:  pop 
-	    IL_0413:  nop 
-	    IL_0414:  leave IL_043b
+	    IL_00a8:  br IL_00c9
+
+	    IL_00ad:  ldloc.s 4
+	    IL_00af:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_00b4:  stloc.3 
+	    IL_00b5:  nop 
+	    IL_00b6:  ldarg.0 
+	    IL_00b7:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	    IL_00bc:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_FileNames()
+	    IL_00c1:  ldloc.3 
+	    IL_00c2:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_00c7:  pop 
+	    IL_00c8:  nop 
+	    IL_00c9:  ldloc.s 4
+	    IL_00cb:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_00d0:  brtrue IL_00ad
+
+	    IL_00d5:  leave IL_00f1
 
 	  } // end .try 1
-	  catch class [mscorlib]System.Exception { // 1
-	    IL_0419:  stloc.s 17
-	    IL_041b:  nop 
-	    IL_041c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0421:  ldstr "Failed to create directory '{0}'."
-	    IL_0426:  ldloc.s 16
-	    IL_0428:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_042d:  ldarg.0 
-	    IL_042e:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	    IL_0433:  ldloc.s 17
-	    IL_0435:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	    IL_043a:  throw 
-	  } // end handler 1
-	  IL_043b:  ldarg.0 
-	  IL_043c:  ldc.i4 2000
-	  IL_0441:  ldstr "Created directory '{0}'."
-	  IL_0446:  ldc.i4.1 
-	  IL_0447:  newarr [mscorlib]System.Object
-	  IL_044c:  dup 
-	  IL_044d:  ldc.i4.0 
-	  IL_044e:  ldloc.s 16
-	  IL_0450:  stelem.ref 
-	  IL_0451:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0456:  nop 
-	  IL_0457:  nop 
-	  IL_0458:  ldloc.s 13
-	  IL_045a:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_045f:  brtrue IL_0374
+	  finally  { // 1
+	    IL_00da:  ldloc.s 4
+	    IL_00dc:  isinst [mscorlib]System.IDisposable
+	    IL_00e1:  dup 
+	    IL_00e2:  stloc.s 5
+	    IL_00e4:  brfalse IL_00f0
 
-	  IL_0464:  leave IL_0480
+	    IL_00e9:  ldloc.s 5
+	    IL_00eb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_00f0:  endfinally 
+	  } // end handler 1
+	  IL_00f1:  ldarg.0 
+	  IL_00f2:  ldc.i4.1 
+	  IL_00f3:  stfld bool NAnt.Core.Types.FileSet::_hasScanned
+	  IL_00f8:  nop 
+	  IL_00f9:  leave IL_0114
 
 	} // end .try 2
-	finally  { // 2
-	  IL_0469:  ldloc.s 13
-	  IL_046b:  isinst [mscorlib]System.IDisposable
-	  IL_0470:  dup 
-	  IL_0471:  stloc.s 18
-	  IL_0473:  brfalse IL_047f
-
-	  IL_0478:  ldloc.s 18
-	  IL_047a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_047f:  endfinally 
+	catch class [mscorlib]System.Exception { // 2
+	  IL_00fe:  stloc.s 6
+	  IL_0100:  nop 
+	  IL_0101:  ldstr "Error creating FileSet."
+	  IL_0106:  ldarg.0 
+	  IL_0107:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_010c:  ldloc.s 6
+	  IL_010e:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0113:  throw 
 	} // end handler 2
-	IL_0480:  nop 
-	IL_0481:  nop 
-	IL_0482:  ldarg.0 
-	IL_0483:  callvirt instance void class NAnt.Core.Tasks.CopyTask::DoFileOperations()
-	IL_0488:  ret 
-    } // end of method CopyTask::ExecuteTask
+	IL_0114:  ldarg.0 
+	IL_0115:  call instance bool class NAnt.Core.Types.FileSet::get_FailOnEmpty()
+	IL_011a:  brfalse IL_0170
 
-    // method line 954
-    .method family virtual hidebysig newslot 
-           instance default void DoFileOperations ()  cil managed 
+	IL_011f:  ldarg.0 
+	IL_0120:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_0125:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_FileNames()
+	IL_012a:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_012f:  brtrue IL_0170
+
+	IL_0134:  nop 
+	IL_0135:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_013a:  ldstr "NA1164"
+	IL_013f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0144:  ldarg.0 
+	IL_0145:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_014a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.DirectoryScanner::get_BaseDirectory()
+	IL_014f:  ldarg.0 
+	IL_0150:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_0155:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_Includes()
+	IL_015a:  callvirt instance string object::ToString()
+	IL_015f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0164:  ldarg.0 
+	IL_0165:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_016a:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class NAnt.Core.Location)
+	IL_016f:  throw 
+	IL_0170:  ret 
+    } // end of method FileSet::Scan
+
+    // method line 862
+    .method family hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.FileSet clone)  cil managed 
     {
-        // Method begins at RVA 0x119d8
-	// Code size 940 (0x3ac)
-	.maxstack 8
-	.locals init (
-		int32	V_0,
-		int32	V_1,
-		int32	V_2,
-		class NAnt.Core.Tasks.CopyTask/FileOperation	V_3,
-		valuetype NAnt.Core.Tasks.CopyTask/OperationType	V_4,
-		string	V_5,
-		string	V_6,
-		class [mscorlib]System.Exception	V_7)
+        // Method begins at RVA 0xe80c
+	// Code size 136 (0x88)
+	.maxstack 2
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
-	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Count()
-	IL_000c:  ldc.i4.0 
-	IL_000d:  bgt IL_0018
-
-	IL_0012:  nop 
-	IL_0013:  br IL_03ab
-
-	IL_0018:  ldarg.0 
-	IL_0019:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
-	IL_001e:  callvirt instance int32 class NAnt.Core.Tasks.CopyTask/FileOperationMap::CountFileOperations()
-	IL_0023:  stloc.0 
-	IL_0024:  ldarg.0 
-	IL_0025:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
-	IL_002a:  callvirt instance int32 class NAnt.Core.Tasks.CopyTask/FileOperationMap::CountDirectoryOperations()
-	IL_002f:  stloc.1 
-	IL_0030:  ldloc.0 
-	IL_0031:  ldc.i4.0 
-	IL_0032:  ble IL_00cf
-
-	IL_0037:  nop 
-	IL_0038:  ldarg.0 
-	IL_0039:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
-	IL_003e:  brfalse IL_008b
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.DataTypeBase::CopyTo(class NAnt.Core.DataTypeBase)
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::_asis
+	IL_000f:  call class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Util.StringUtils::Clone(class [System]System.Collections.Specialized.StringCollection)
+	IL_0014:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::_asis
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::_baseDirectory
+	IL_001f:  brfalse IL_003c
 
-	IL_0043:  nop 
-	IL_0044:  ldarg.0 
-	IL_0045:  ldc.i4 3000
-	IL_004a:  ldstr "Copying {0} file{1} to '{2}'."
-	IL_004f:  ldc.i4.3 
-	IL_0050:  newarr [mscorlib]System.Object
-	IL_0055:  dup 
-	IL_0056:  ldc.i4.0 
-	IL_0057:  ldloc.0 
-	IL_0058:  box [mscorlib]System.Int32
-	IL_005d:  stelem.ref 
-	IL_005e:  dup 
-	IL_005f:  ldc.i4.1 
-	IL_0060:  ldloc.0 
-	IL_0061:  ldc.i4.1 
-	IL_0062:  beq IL_0071
+	IL_0024:  nop 
+	IL_0025:  ldarg.1 
+	IL_0026:  ldarg.0 
+	IL_0027:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::_baseDirectory
+	IL_002c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0031:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0036:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::_baseDirectory
+	IL_003b:  nop 
+	IL_003c:  ldarg.1 
+	IL_003d:  ldarg.0 
+	IL_003e:  ldfld bool NAnt.Core.Types.FileSet::_defaultExcludes
+	IL_0043:  stfld bool NAnt.Core.Types.FileSet::_defaultExcludes
+	IL_0048:  ldarg.1 
+	IL_0049:  ldarg.0 
+	IL_004a:  ldfld bool NAnt.Core.Types.FileSet::_failOnEmpty
+	IL_004f:  stfld bool NAnt.Core.Types.FileSet::_failOnEmpty
+	IL_0054:  ldarg.1 
+	IL_0055:  ldarg.0 
+	IL_0056:  ldfld bool NAnt.Core.Types.FileSet::_hasScanned
+	IL_005b:  stfld bool NAnt.Core.Types.FileSet::_hasScanned
+	IL_0060:  ldarg.1 
+	IL_0061:  ldarg.0 
+	IL_0062:  ldfld class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::_pathFiles
+	IL_0067:  callvirt instance class NAnt.Core.PathScanner class NAnt.Core.PathScanner::Clone()
+	IL_006c:  stfld class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::_pathFiles
+	IL_0071:  ldarg.1 
+	IL_0072:  ldarg.0 
+	IL_0073:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_0078:  callvirt instance object class NAnt.Core.DirectoryScanner::Clone()
+	IL_007d:  castclass NAnt.Core.DirectoryScanner
+	IL_0082:  stfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_0087:  ret 
+    } // end of method FileSet::CopyTo
 
-	IL_0067:  ldstr "s"
-	IL_006c:  br IL_0076
+    // method line 863
+    .method assembly hidebysig 
+           instance default string Find (string fileName)  cil managed 
+    {
+        // Method begins at RVA 0xe8a0
+	// Code size 133 (0x85)
+	.maxstack 4
+	.locals init (
+		valuetype [mscorlib]System.Globalization.CompareOptions	V_0,
+		class [mscorlib]System.Globalization.CompareInfo	V_1,
+		string	V_2,
+		class [System]System.Collections.Specialized.StringEnumerator	V_3,
+		string	V_4,
+		class [mscorlib]System.IDisposable	V_5)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0008:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
+	IL_000d:  stloc.1 
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance bool class NAnt.Core.Types.FileSet::get_CaseSensitive()
+	IL_0014:  brtrue IL_001d
 
-	IL_0071:  ldstr ""
-	IL_0076:  stelem.ref 
-	IL_0077:  dup 
-	IL_0078:  ldc.i4.2 
-	IL_0079:  ldarg.0 
-	IL_007a:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
-	IL_007f:  stelem.ref 
-	IL_0080:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0085:  nop 
-	IL_0086:  br IL_00ce
+	IL_0019:  ldloc.0 
+	IL_001a:  ldc.i4.1 
+	IL_001b:  or 
+	IL_001c:  stloc.0 
+	IL_001d:  nop 
+	IL_001e:  ldarg.0 
+	IL_001f:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0024:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0029:  stloc.3 
+	.try { // 0
+	  IL_002a:  br IL_0054
 
-	IL_008b:  nop 
-	IL_008c:  ldarg.0 
-	IL_008d:  ldc.i4 3000
-	IL_0092:  ldstr "Copying {0} file{1} to '{2}'."
-	IL_0097:  ldc.i4.3 
-	IL_0098:  newarr [mscorlib]System.Object
-	IL_009d:  dup 
-	IL_009e:  ldc.i4.0 
-	IL_009f:  ldloc.0 
-	IL_00a0:  box [mscorlib]System.Int32
-	IL_00a5:  stelem.ref 
-	IL_00a6:  dup 
-	IL_00a7:  ldc.i4.1 
-	IL_00a8:  ldloc.0 
-	IL_00a9:  ldc.i4.1 
-	IL_00aa:  beq IL_00b9
+	  IL_002f:  ldloc.3 
+	  IL_0030:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0035:  stloc.2 
+	  IL_0036:  nop 
+	  IL_0037:  ldloc.1 
+	  IL_0038:  ldloc.2 
+	  IL_0039:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	  IL_003e:  ldarg.1 
+	  IL_003f:  ldloc.0 
+	  IL_0040:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::Compare(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
+	  IL_0045:  brtrue IL_0053
 
-	IL_00af:  ldstr "s"
-	IL_00b4:  br IL_00be
+	  IL_004a:  nop 
+	  IL_004b:  ldloc.2 
+	  IL_004c:  stloc.s 4
+	  IL_004e:  leave IL_0082
 
-	IL_00b9:  ldstr ""
-	IL_00be:  stelem.ref 
-	IL_00bf:  dup 
-	IL_00c0:  ldc.i4.2 
-	IL_00c1:  ldarg.0 
-	IL_00c2:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
-	IL_00c7:  stelem.ref 
-	IL_00c8:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_00cd:  nop 
-	IL_00ce:  nop 
-	IL_00cf:  ldloc.1 
-	IL_00d0:  ldc.i4.0 
-	IL_00d1:  ble IL_016e
+	  IL_0053:  nop 
+	  IL_0054:  ldloc.3 
+	  IL_0055:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_005a:  brtrue IL_002f
 
-	IL_00d6:  nop 
-	IL_00d7:  ldarg.0 
-	IL_00d8:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
-	IL_00dd:  brfalse IL_012a
+	  IL_005f:  leave IL_007a
 
-	IL_00e2:  nop 
-	IL_00e3:  ldarg.0 
-	IL_00e4:  ldc.i4 3000
-	IL_00e9:  ldstr "Copying {0} {1} to '{2}'."
-	IL_00ee:  ldc.i4.3 
-	IL_00ef:  newarr [mscorlib]System.Object
-	IL_00f4:  dup 
-	IL_00f5:  ldc.i4.0 
-	IL_00f6:  ldloc.1 
-	IL_00f7:  box [mscorlib]System.Int32
-	IL_00fc:  stelem.ref 
-	IL_00fd:  dup 
-	IL_00fe:  ldc.i4.1 
-	IL_00ff:  ldloc.1 
-	IL_0100:  ldc.i4.1 
-	IL_0101:  beq IL_0110
+	} // end .try 0
+	finally  { // 0
+	  IL_0064:  ldloc.3 
+	  IL_0065:  isinst [mscorlib]System.IDisposable
+	  IL_006a:  dup 
+	  IL_006b:  stloc.s 5
+	  IL_006d:  brfalse IL_0079
 
-	IL_0106:  ldstr "directories"
-	IL_010b:  br IL_0115
+	  IL_0072:  ldloc.s 5
+	  IL_0074:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0079:  endfinally 
+	} // end handler 0
+	IL_007a:  ldnull 
+	IL_007b:  stloc.s 4
+	IL_007d:  br IL_0082
 
-	IL_0110:  ldstr "directory"
-	IL_0115:  stelem.ref 
-	IL_0116:  dup 
-	IL_0117:  ldc.i4.2 
-	IL_0118:  ldarg.0 
-	IL_0119:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
-	IL_011e:  stelem.ref 
-	IL_011f:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0124:  nop 
-	IL_0125:  br IL_016d
+	IL_0082:  ldloc.s 4
+	IL_0084:  ret 
+    } // end of method FileSet::Find
 
-	IL_012a:  nop 
-	IL_012b:  ldarg.0 
-	IL_012c:  ldc.i4 3000
-	IL_0131:  ldstr "Copying {0} {1} to '{2}'."
-	IL_0136:  ldc.i4.3 
-	IL_0137:  newarr [mscorlib]System.Object
-	IL_013c:  dup 
-	IL_013d:  ldc.i4.0 
-	IL_013e:  ldloc.1 
-	IL_013f:  box [mscorlib]System.Int32
-	IL_0144:  stelem.ref 
-	IL_0145:  dup 
-	IL_0146:  ldc.i4.1 
-	IL_0147:  ldloc.1 
-	IL_0148:  ldc.i4.1 
-	IL_0149:  beq IL_0158
+    // method line 864
+    .method famorassem hidebysig specialname 
+           instance default bool get_IsEverythingIncluded ()  cil managed 
+    {
+        // Method begins at RVA 0xe944
+	// Code size 39 (0x27)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet::_hasScanned
+	IL_0007:  brtrue IL_0014
 
-	IL_014e:  ldstr "directories"
-	IL_0153:  br IL_015d
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance void class NAnt.Core.Types.FileSet::Scan()
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld class NAnt.Core.DirectoryScanner NAnt.Core.Types.FileSet::_scanner
+	IL_001a:  callvirt instance bool class NAnt.Core.DirectoryScanner::get_IsEverythingIncluded()
+	IL_001f:  stloc.0 
+	IL_0020:  br IL_0025
 
-	IL_0158:  ldstr "directory"
-	IL_015d:  stelem.ref 
-	IL_015e:  dup 
-	IL_015f:  ldc.i4.2 
-	IL_0160:  ldarg.0 
-	IL_0161:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
-	IL_0166:  stelem.ref 
-	IL_0167:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_016c:  nop 
-	IL_016d:  nop 
-	IL_016e:  ldc.i4.0 
-	IL_016f:  stloc.2 
-	IL_0170:  br IL_039a
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method FileSet::get_IsEverythingIncluded
 
-	IL_0175:  nop 
-	IL_0176:  ldarg.0 
-	IL_0177:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
-	IL_017c:  ldloc.2 
-	IL_017d:  callvirt instance !0 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Item(int32)
-	IL_0182:  stloc.3 
-	IL_0183:  ldloc.3 
-	IL_0184:  callvirt instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::SourceEqualsTarget()
-	IL_0189:  brfalse IL_01b3
+    // method line 865
+    .method public static hidebysig 
+           default string FindMoreRecentLastWriteTime (string fileName, valuetype [mscorlib]System.DateTime targetLastWriteTime)  cil managed 
+    {
+        // Method begins at RVA 0xe978
+	// Code size 30 (0x1e)
+	.maxstack 2
+	.locals init (
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_000e:  pop 
+	IL_000f:  ldloc.0 
+	IL_0010:  ldarg.1 
+	IL_0011:  call string class NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
+	IL_0016:  stloc.1 
+	IL_0017:  br IL_001c
 
-	IL_018e:  nop 
-	IL_018f:  ldarg.0 
-	IL_0190:  ldc.i4 2000
-	IL_0195:  ldstr "Skipping self-copy of '{0}'."
-	IL_019a:  ldc.i4.1 
-	IL_019b:  newarr [mscorlib]System.Object
-	IL_01a0:  dup 
-	IL_01a1:  ldc.i4.0 
-	IL_01a2:  ldloc.3 
-	IL_01a3:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
-	IL_01a8:  stelem.ref 
-	IL_01a9:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_01ae:  br IL_0396
+	IL_001c:  ldloc.1 
+	IL_001d:  ret 
+    } // end of method FileSet::FindMoreRecentLastWriteTime
 
+    // method line 866
+    .method public static hidebysig 
+           default string FindMoreRecentLastWriteTime (class [System]System.Collections.Specialized.StringCollection fileNames, valuetype [mscorlib]System.DateTime targetLastWriteTime)  cil managed 
+    {
+        // Method begins at RVA 0xe9a4
+	// Code size 198 (0xc6)
+	.maxstack 5
+	.locals init (
+		string	V_0,
+		class [System]System.Collections.Specialized.StringEnumerator	V_1,
+		class [mscorlib]System.IO.FileInfo	V_2,
+		string	V_3,
+		class [mscorlib]System.IDisposable	V_4)
+	IL_0000:  nop 
+	IL_0001:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0008:  stloc.1 
 	.try { // 0
-	  IL_01b3:  nop 
-	  IL_01b4:  ldarg.0 
-	  IL_01b5:  ldc.i4 2000
-	  IL_01ba:  ldstr "Copying {0}."
-	  IL_01bf:  ldc.i4.1 
-	  IL_01c0:  newarr [mscorlib]System.Object
-	  IL_01c5:  dup 
-	  IL_01c6:  ldc.i4.0 
-	  IL_01c7:  ldloc.3 
-	  IL_01c8:  callvirt instance string object::ToString()
-	  IL_01cd:  stelem.ref 
-	  IL_01ce:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_01d3:  ldloc.3 
-	  IL_01d4:  callvirt instance valuetype NAnt.Core.Tasks.CopyTask/OperationType class NAnt.Core.Tasks.CopyTask/FileOperation::get_OperationType()
-	  IL_01d9:  stloc.s 4
-	  IL_01db:  ldloc.s 4
-	  IL_01dd:  switch (
-	    IL_01f3,
-	    IL_0276,
-	    IL_0304)
-	  IL_01ee:  br IL_035e
-
-	  IL_01f3:  ldloc.3 
-	  IL_01f4:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_01f9:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	  IL_01fe:  stloc.s 5
-	  IL_0200:  ldloc.s 5
-	  IL_0202:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_0207:  brtrue IL_0231
-
-	  IL_020c:  nop 
-	  IL_020d:  ldloc.s 5
-	  IL_020f:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	  IL_0214:  pop 
-	  IL_0215:  ldarg.0 
-	  IL_0216:  ldc.i4 2000
-	  IL_021b:  ldstr "Created directory '{0}'."
-	  IL_0220:  ldc.i4.1 
-	  IL_0221:  newarr [mscorlib]System.Object
-	  IL_0226:  dup 
-	  IL_0227:  ldc.i4.0 
-	  IL_0228:  ldloc.s 5
-	  IL_022a:  stelem.ref 
-	  IL_022b:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0230:  nop 
-	  IL_0231:  ldloc.3 
-	  IL_0232:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_0237:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_023c:  brfalse IL_024e
+	  IL_0009:  br IL_0097
 
-	  IL_0241:  nop 
-	  IL_0242:  ldloc.3 
-	  IL_0243:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_0248:  call void class [mscorlib]System.IO.File::Delete(string)
-	  IL_024d:  nop 
-	  IL_024e:  ldloc.3 
-	  IL_024f:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
-	  IL_0254:  ldloc.3 
-	  IL_0255:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_025a:  ldarg.0 
-	  IL_025b:  callvirt instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.CopyTask::get_Filters()
-	  IL_0260:  ldarg.0 
-	  IL_0261:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_InputEncoding()
-	  IL_0266:  ldarg.0 
-	  IL_0267:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_OutputEncoding()
-	  IL_026c:  call void class NAnt.Core.Util.FileUtils::CopyFile(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
-	  IL_0271:  leave IL_0369
+	  IL_000e:  ldloc.1 
+	  IL_000f:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0014:  stloc.0 
+	  IL_0015:  nop 
+	  IL_0016:  ldloc.0 
+	  IL_0017:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	  IL_001c:  brfalse IL_0096
 
-	  IL_0276:  ldloc.3 
-	  IL_0277:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_027c:  ldloc.3 
-	  IL_027d:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
-	  IL_0282:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	  IL_0287:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_028c:  stloc.s 6
-	  IL_028e:  ldloc.3 
-	  IL_028f:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_0294:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_0299:  brtrue IL_02cb
+	  IL_0021:  nop 
+	  IL_0022:  ldloc.0 
+	  IL_0023:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_0028:  stloc.2 
+	  IL_0029:  ldloc.2 
+	  IL_002a:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_002f:  brtrue IL_005c
 
-	  IL_029e:  nop 
-	  IL_029f:  ldloc.3 
-	  IL_02a0:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_02a5:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	  IL_02aa:  pop 
-	  IL_02ab:  ldarg.0 
-	  IL_02ac:  ldc.i4 2000
-	  IL_02b1:  ldstr "Created directory '{0}'."
-	  IL_02b6:  ldc.i4.1 
-	  IL_02b7:  newarr [mscorlib]System.Object
-	  IL_02bc:  dup 
-	  IL_02bd:  ldc.i4.0 
-	  IL_02be:  ldloc.3 
-	  IL_02bf:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_02c4:  stelem.ref 
-	  IL_02c5:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_02ca:  nop 
-	  IL_02cb:  ldloc.s 6
-	  IL_02cd:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_02d2:  brfalse IL_02e0
+	  IL_0034:  nop 
+	  IL_0035:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
+	  IL_003a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_003f:  ldstr "File '{0}' no longer exist (so the target might need to be updated)"
+	  IL_0044:  ldloc.0 
+	  IL_0045:  ldarg.1 
+	  IL_0046:  box [mscorlib]System.DateTime
+	  IL_004b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0050:  callvirt instance void class [log4net]log4net.ILog::Info(object)
+	  IL_0055:  ldloc.0 
+	  IL_0056:  stloc.3 
+	  IL_0057:  leave IL_00c4
 
-	  IL_02d7:  nop 
-	  IL_02d8:  ldloc.s 6
-	  IL_02da:  call void class [mscorlib]System.IO.File::Delete(string)
-	  IL_02df:  nop 
-	  IL_02e0:  ldloc.3 
-	  IL_02e1:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
-	  IL_02e6:  ldloc.s 6
-	  IL_02e8:  ldarg.0 
-	  IL_02e9:  callvirt instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.CopyTask::get_Filters()
-	  IL_02ee:  ldarg.0 
-	  IL_02ef:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_InputEncoding()
-	  IL_02f4:  ldarg.0 
-	  IL_02f5:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_OutputEncoding()
-	  IL_02fa:  call void class NAnt.Core.Util.FileUtils::CopyFile(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
-	  IL_02ff:  leave IL_0369
+	  IL_005c:  ldloc.2 
+	  IL_005d:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	  IL_0062:  ldarg.1 
+	  IL_0063:  call bool valuetype [mscorlib]System.DateTime::op_GreaterThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	  IL_0068:  brfalse IL_0095
 
-	  IL_0304:  ldloc.3 
-	  IL_0305:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_030a:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_030f:  brfalse IL_0336
+	  IL_006d:  nop 
+	  IL_006e:  ldsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
+	  IL_0073:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0078:  ldstr "'{0}' was newer than {1}"
+	  IL_007d:  ldloc.0 
+	  IL_007e:  ldarg.1 
+	  IL_007f:  box [mscorlib]System.DateTime
+	  IL_0084:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0089:  callvirt instance void class [log4net]log4net.ILog::Info(object)
+	  IL_008e:  ldloc.0 
+	  IL_008f:  stloc.3 
+	  IL_0090:  leave IL_00c4
 
-	  IL_0314:  nop 
-	  IL_0315:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_031a:  ldstr "Failed to copy {0}.  Directory '{1}' already exists."
-	  IL_031f:  ldloc.3 
-	  IL_0320:  callvirt instance string object::ToString()
-	  IL_0325:  ldloc.3 
-	  IL_0326:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_032b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0330:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	  IL_0335:  throw 
-	  IL_0336:  ldloc.3 
-	  IL_0337:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
-	  IL_033c:  ldloc.3 
-	  IL_033d:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	  IL_0342:  ldarg.0 
-	  IL_0343:  callvirt instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.CopyTask::get_Filters()
-	  IL_0348:  ldarg.0 
-	  IL_0349:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_InputEncoding()
-	  IL_034e:  ldarg.0 
-	  IL_034f:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_OutputEncoding()
-	  IL_0354:  call void class NAnt.Core.Util.FileUtils::CopyDirectory(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
-	  IL_0359:  leave IL_0369
+	  IL_0095:  nop 
+	  IL_0096:  nop 
+	  IL_0097:  ldloc.1 
+	  IL_0098:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_009d:  brtrue IL_000e
 
-	  IL_035e:  ldstr "Unrecognized copy operation. The copy task can only copy a file to file, file to directory, or directory to directory."
-	  IL_0363:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	  IL_0368:  throw 
-	  IL_0369:  nop 
-	  IL_036a:  leave IL_0395
+	  IL_00a2:  leave IL_00bd
 
 	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_036f:  stloc.s 7
-	  IL_0371:  nop 
-	  IL_0372:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0377:  ldstr "Cannot copy {0}."
-	  IL_037c:  ldloc.3 
-	  IL_037d:  callvirt instance string object::ToString()
-	  IL_0382:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0387:  ldarg.0 
-	  IL_0388:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_038d:  ldloc.s 7
-	  IL_038f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0394:  throw 
+	finally  { // 0
+	  IL_00a7:  ldloc.1 
+	  IL_00a8:  isinst [mscorlib]System.IDisposable
+	  IL_00ad:  dup 
+	  IL_00ae:  stloc.s 4
+	  IL_00b0:  brfalse IL_00bc
+
+	  IL_00b5:  ldloc.s 4
+	  IL_00b7:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00bc:  endfinally 
 	} // end handler 0
-	IL_0395:  nop 
-	IL_0396:  ldloc.2 
-	IL_0397:  ldc.i4.1 
-	IL_0398:  add 
-	IL_0399:  stloc.2 
-	IL_039a:  ldloc.2 
-	IL_039b:  ldarg.0 
-	IL_039c:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
-	IL_03a1:  callvirt instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Count()
-	IL_03a6:  blt IL_0175
+	IL_00bd:  ldnull 
+	IL_00be:  stloc.3 
+	IL_00bf:  br IL_00c4
 
-	IL_03ab:  ret 
-    } // end of method CopyTask::DoFileOperations
+	IL_00c4:  ldloc.3 
+	IL_00c5:  ret 
+    } // end of method FileSet::FindMoreRecentLastWriteTime
 
-    // method line 955
-    .method family virtual hidebysig newslot 
-           instance default class NAnt.Core.BuildException CreateSourceFileNotFoundException (string sourceFile)  cil managed 
+    // method line 867
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x11dac
-	// Code size 36 (0x24)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildException	V_0)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0006:  ldstr "Could not find file '{0}' to copy."
-	IL_000b:  ldarg.1 
-	IL_000c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0011:  ldarg.0 
-	IL_0012:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0017:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_001c:  stloc.0 
-	IL_001d:  br IL_0022
+        // Method begins at RVA 0xea88
+	// Code size 21 (0x15)
+	.maxstack 8
+	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
+	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
+	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.Types.FileSet::logger
+	IL_0014:  ret 
+    } // end of method FileSet::.cctor
 
-	IL_0022:  ldloc.0 
-	IL_0023:  ret 
-    } // end of method CopyTask::CreateSourceFileNotFoundException
+	.property instance bool CaseSensitive ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 63 61 73 65 73 65 6E 73 69 74 69 76 65   // ...casesensitive
+		00 00                                           ) // ..
 
-	.property instance class [mscorlib]System.IO.FileInfo SourceFile ()
+		.get instance default bool NAnt.Core.Types.FileSet::get_CaseSensitive () 
+		.set instance default void NAnt.Core.Types.FileSet::set_CaseSensitive (bool 'value') 
+	}
+	.property instance bool FailOnEmpty ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 66 61 69 6C 6F 6E 65 6D 70 74 79 00 00 ) // ...failonempty..
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.CopyTask::get_SourceFile () 
-		.set instance default void NAnt.Core.Tasks.CopyTask::set_SourceFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.FileSet::get_FailOnEmpty () 
+		.set instance default void NAnt.Core.Types.FileSet::set_FailOnEmpty (bool 'value') 
 	}
-	.property instance class [mscorlib]System.IO.FileInfo ToFile ()
+	.property instance bool DefaultExcludes ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 74 6F 66 69 6C 65 00 00 ) // ...tofile..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0F 64 65 66 61 75 6C 74 65 78 63 6C 75 64   // ...defaultexclud
+		65 73 00 00                                     ) // es..
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.CopyTask::get_ToFile () 
-		.set instance default void NAnt.Core.Tasks.CopyTask::set_ToFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.FileSet::get_DefaultExcludes () 
+		.set instance default void NAnt.Core.Types.FileSet::set_DefaultExcludes (bool 'value') 
 	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo ToDirectory ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 74 6F 64 69 72 00 00 ) // ...todir..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 62 61 73 65 64 69 72 00 00 ) // ...basedir..
 
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.CopyTask::get_ToDirectory () 
-		.set instance default void NAnt.Core.Tasks.CopyTask::set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.FileSet::get_BaseDirectory () 
+		.set instance default void NAnt.Core.Types.FileSet::set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
 	}
-	.property instance bool Overwrite ()
+	.property instance class [System]System.Collections.Specialized.StringCollection Includes ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 6F 76 65 72 77 72 69 74 65 00 00 ) // ...overwrite..
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::get_Includes () 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection Excludes ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::get_Excludes () 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection AsIs ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::get_AsIs () 
+	}
+	.property instance class NAnt.Core.PathScanner PathFiles ()
+	{
+		.get instance default class NAnt.Core.PathScanner NAnt.Core.Types.FileSet::get_PathFiles () 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection FileNames ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::get_FileNames () 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection DirectoryNames ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::get_DirectoryNames () 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection ScannedDirectories ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet::get_ScannedDirectories () 
+	}
+	.property instance class NAnt.Core.Types.FileSet/Include[] SetIncludes ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 08 69 6E 63 6C 75 64 65 73 00 00 ) // ...includes..
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 1E 55 73 65 20 3C 69 6E 63 6C 75 64 65 3E   // ...Use <include>
+		20 65 6C 65 6D 65 6E 74 20 69 6E 73 74 65 61 64   //  element instead
+		2E 00 00 00                                     ) // ....
 
-		.get instance default bool NAnt.Core.Tasks.CopyTask::get_Overwrite () 
-		.set instance default void NAnt.Core.Tasks.CopyTask::set_Overwrite (bool 'value') 
+		.set instance default void NAnt.Core.Types.FileSet::set_SetIncludes (class NAnt.Core.Types.FileSet/Include[] 'value') 
 	}
-	.property instance bool Flatten ()
+	.property instance class NAnt.Core.Types.FileSet/Include[] IncludeElements ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 66 6C 61 74 74 65 6E 00 00 ) // ...flatten..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 69 6E 63 6C 75 64 65 00 00 ) // ...include..
 
-		.get instance default bool NAnt.Core.Tasks.CopyTask::get_Flatten () 
-		.set instance default void NAnt.Core.Tasks.CopyTask::set_Flatten (bool 'value') 
+		.set instance default void NAnt.Core.Types.FileSet::set_IncludeElements (class NAnt.Core.Types.FileSet/Include[] 'value') 
 	}
-	.property instance bool IncludeEmptyDirs ()
+	.property instance class NAnt.Core.Types.FileSet/Exclude[] SetExcludes ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 10 69 6E 63 6C 75 64 65 65 6D 70 74 79 64   // ...includeemptyd
-		69 72 73 00 00                                  ) // irs..
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 08 65 78 63 6C 75 64 65 73 00 00 ) // ...excludes..
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 1E 55 73 65 20 3C 65 78 63 6C 75 64 65 3E   // ...Use <exclude>
+		20 65 6C 65 6D 65 6E 74 20 69 6E 73 74 65 61 64   //  element instead
+		2E 00 00 00                                     ) // ....
 
-		.get instance default bool NAnt.Core.Tasks.CopyTask::get_IncludeEmptyDirs () 
-		.set instance default void NAnt.Core.Tasks.CopyTask::set_IncludeEmptyDirs (bool 'value') 
+		.set instance default void NAnt.Core.Types.FileSet::set_SetExcludes (class NAnt.Core.Types.FileSet/Exclude[] 'value') 
 	}
-	.property instance class NAnt.Core.Types.FileSet CopyFileSet ()
+	.property instance class NAnt.Core.Types.FileSet/Exclude[] ExcludeElements ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 65 78 63 6C 75 64 65 00 00 ) // ...exclude..
 
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.CopyTask::get_CopyFileSet () 
-		.set instance default void NAnt.Core.Tasks.CopyTask::set_CopyFileSet (class NAnt.Core.Types.FileSet 'value') 
+		.set instance default void NAnt.Core.Types.FileSet::set_ExcludeElements (class NAnt.Core.Types.FileSet/Exclude[] 'value') 
 	}
-	.property instance class NAnt.Core.Filters.FilterChain Filters ()
+	.property instance class NAnt.Core.Types.FileSet/IncludesFile[] SetIncludesList ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0B 66 69 6C 74 65 72 63 68 61 69 6E 00 00 ) // ...filterchain..
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (
+		01 00 0C 69 6E 63 6C 75 64 65 73 4C 69 73 74 00   // ...includesList.
+		00                                              ) // .
 
-		.get instance default class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.CopyTask::get_Filters () 
-		.set instance default void NAnt.Core.Tasks.CopyTask::set_Filters (class NAnt.Core.Filters.FilterChain 'value') 
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 1B 55 73 65 20 3C 69 6E 63 6C 75 64 65 73   // ...Use <includes
+		66 69 6C 65 3E 20 69 6E 73 74 65 61 64 2E 00 00   // file> instead...
+		00                                              ) // .
+
+		.set instance default void NAnt.Core.Types.FileSet::set_SetIncludesList (class NAnt.Core.Types.FileSet/IncludesFile[] 'value') 
 	}
-	.property instance class [mscorlib]System.Text.Encoding InputEncoding ()
+	.property instance class NAnt.Core.Types.FileSet/IncludesFile[] IncludesFiles ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 69 6E 70 75 74 65 6E 63 6F 64 69 6E 67   // ...inputencoding
-		00 00                                           ) // ..
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (
+		01 00 0C 69 6E 63 6C 75 64 65 73 66 69 6C 65 00   // ...includesfile.
+		00                                              ) // .
 
-		.get instance default class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.CopyTask::get_InputEncoding () 
-		.set instance default void NAnt.Core.Tasks.CopyTask::set_InputEncoding (class [mscorlib]System.Text.Encoding 'value') 
+		.set instance default void NAnt.Core.Types.FileSet::set_IncludesFiles (class NAnt.Core.Types.FileSet/IncludesFile[] 'value') 
 	}
-	.property instance class [mscorlib]System.Text.Encoding OutputEncoding ()
+	.property instance class NAnt.Core.Types.FileSet/ExcludesFile[] ExcludesFiles ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0E 6F 75 74 70 75 74 65 6E 63 6F 64 69 6E   // ...outputencodin
-		67 00 00                                        ) // g..
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (
+		01 00 0C 65 78 63 6C 75 64 65 73 66 69 6C 65 00   // ...excludesfile.
+		00                                              ) // .
 
-		.get instance default class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.CopyTask::get_OutputEncoding () 
-		.set instance default void NAnt.Core.Tasks.CopyTask::set_OutputEncoding (class [mscorlib]System.Text.Encoding 'value') 
+		.set instance default void NAnt.Core.Types.FileSet::set_ExcludesFiles (class NAnt.Core.Types.FileSet/ExcludesFile[] 'value') 
 	}
-	.property instance class [mscorlib]System.Collections.Hashtable FileCopyMap ()
+	.property instance class [mscorlib]System.IO.FileInfo MostRecentLastWriteTimeFile ()
 	{
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
-		01 00 72 46 69 6C 65 43 6F 70 79 4D 61 70 20 69   // ..rFileCopyMap i
-		73 20 6E 6F 77 20 63 6F 6E 73 69 64 65 72 65 64   // s now considered
-		20 61 20 72 65 61 64 6F 6E 6C 79 20 68 61 73 68   //  a readonly hash
-		74 61 62 6C 65 2E 20 54 6F 20 69 6E 74 65 72 61   // table. To intera
-		63 74 20 77 69 74 68 20 66 69 6C 65 20 6F 70 65   // ct with file ope
-		72 61 74 69 6F 6E 2C 20 75 73 65 20 74 68 65 20   // ration, use the 
-		4F 70 65 72 61 74 69 6F 6E 4D 61 70 20 70 72 6F   // OperationMap pro
-		70 65 72 74 79 00 00                            ) // perty..
-
-		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.Core.Tasks.CopyTask::get_FileCopyMap () 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Types.FileSet::get_MostRecentLastWriteTimeFile () 
 	}
-	.property instance class NAnt.Core.Tasks.CopyTask/FileOperationMap OperationMap ()
+	.property instance bool IsEverythingIncluded ()
 	{
-		.get instance default class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::get_OperationMap () 
+		.get instance default bool NAnt.Core.Types.FileSet::get_IsEverythingIncluded () 
 	}
-  .class nested family auto ansi beforefieldinit FileDateInfo
-  	extends [mscorlib]System.Object
+  .class nested public auto ansi beforefieldinit Exclude
+  	extends NAnt.Core.Element
   {
-    .field  private  valuetype [mscorlib]System.DateTime _lastWriteTime
-    .field  private  string _path
+    .field  private  string _pattern
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 956
+    // method line 868
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.IO.FileSystemInfo file)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x11ddc
-	// Code size 20 (0x14)
+        // Method begins at RVA 0xea9e
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_000d:  call instance void class NAnt.Core.Tasks.CopyTask/FileDateInfo::'.ctor'(string, valuetype [mscorlib]System.DateTime)
-	IL_0012:  nop 
-	IL_0013:  ret 
-    } // end of method FileDateInfo::.ctor
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.FileSet/Exclude::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  ret 
+    } // end of method Exclude::.ctor
 
-    // method line 957
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string path, valuetype [mscorlib]System.DateTime lastWriteTime)  cil managed 
+    // method line 869
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_Pattern ()  cil managed 
     {
-        // Method begins at RVA 0x11df1
-	// Code size 22 (0x16)
+        // Method begins at RVA 0xeab0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Types.FileSet/Exclude::_pattern
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Exclude::get_Pattern
+
+    // method line 870
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Pattern (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xeacb
+	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld string NAnt.Core.Tasks.CopyTask/FileDateInfo::_path
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.2 
-	IL_0010:  stfld valuetype [mscorlib]System.DateTime NAnt.Core.Tasks.CopyTask/FileDateInfo::_lastWriteTime
-	IL_0015:  ret 
-    } // end of method FileDateInfo::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Types.FileSet/Exclude::_pattern
+	IL_0008:  ret 
+    } // end of method Exclude::set_Pattern
 
-    // method line 958
-    .method public hidebysig specialname 
-           instance default string get_Path ()  cil managed 
+    // method line 871
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x11e08
+        // Method begins at RVA 0xead8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.CopyTask/FileDateInfo::_path
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/Exclude::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FileDateInfo::get_Path
+    } // end of method Exclude::get_IfDefined
 
-    // method line 959
-    .method public hidebysig specialname 
-           instance default valuetype [mscorlib]System.DateTime get_LastWriteTime ()  cil managed 
+    // method line 872
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xeaf3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.FileSet/Exclude::_ifDefined
+	IL_0008:  ret 
+    } // end of method Exclude::set_IfDefined
+
+    // method line 873
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x11e24
+        // Method begins at RVA 0xeb00
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype [mscorlib]System.DateTime NAnt.Core.Tasks.CopyTask/FileDateInfo::_lastWriteTime
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/Exclude::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FileDateInfo::get_LastWriteTime
+    } // end of method Exclude::get_UnlessDefined
 
-	.property instance string Path ()
+    // method line 874
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xeb1b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.FileSet/Exclude::_unlessDefined
+	IL_0008:  ret 
+    } // end of method Exclude::set_UnlessDefined
+
+	.property instance string Pattern ()
 	{
-		.get instance default string NAnt.Core.Tasks.CopyTask/FileDateInfo::get_Path () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.Core.Types.FileSet/Exclude::get_Pattern () 
+		.set instance default void NAnt.Core.Types.FileSet/Exclude::set_Pattern (string 'value') 
 	}
-	.property instance valuetype [mscorlib]System.DateTime LastWriteTime ()
+	.property instance bool IfDefined ()
 	{
-		.get instance default valuetype [mscorlib]System.DateTime NAnt.Core.Tasks.CopyTask/FileDateInfo::get_LastWriteTime () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.FileSet/Exclude::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.FileSet/Exclude::set_IfDefined (bool 'value') 
 	}
-  } // end of class FileDateInfo
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
 
-  .class nested family auto ansi beforefieldinit FileOperation
-  	extends [mscorlib]System.Object
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.FileSet/Exclude::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.FileSet/Exclude::set_UnlessDefined (bool 'value') 
+	}
+  } // end of class Exclude
+
+  .class nested public auto ansi beforefieldinit Include
+  	extends NAnt.Core.Types.FileSet/Exclude
   {
-    .field  private  class [mscorlib]System.IO.FileSystemInfo _source
-    .field  private  class [mscorlib]System.IO.FileSystemInfo _target
-    .field  private  class [mscorlib]System.StringComparer _comparer
+    .field  private  bool _asIs
+    .field  private  bool _fromPath
 
-    // method line 960
+    // method line 875
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.IO.FileSystemInfo source, class [mscorlib]System.IO.FileSystemInfo target)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x11e40
-	// Code size 94 (0x5e)
-	.maxstack 2
+        // Method begins at RVA 0xeb25
+	// Code size 7 (0x7)
+	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  brtrue IL_0019
-
-	IL_000d:  nop 
-	IL_000e:  ldstr "source"
-	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0018:  throw 
-	IL_0019:  ldarg.2 
-	IL_001a:  brtrue IL_002b
+	IL_0001:  call instance void class NAnt.Core.Types.FileSet/Exclude::'.ctor'()
+	IL_0006:  ret 
+    } // end of method Include::.ctor
 
-	IL_001f:  nop 
-	IL_0020:  ldstr "target"
-	IL_0025:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_002a:  throw 
-	IL_002b:  ldarg.0 
-	IL_002c:  ldarg.1 
-	IL_002d:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.DirectoryInfo> (class [mscorlib]System.IO.FileSystemInfo)
-	IL_0032:  brfalse IL_004f
+    // method line 876
+    .method public hidebysig specialname 
+           instance default bool get_AsIs ()  cil managed 
+    {
+        // Method begins at RVA 0xeb30
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/Include::_asIs
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0037:  ldarg.0 
-	IL_0038:  ldarg.2 
-	IL_0039:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.FileInfo> (class [mscorlib]System.IO.FileSystemInfo)
-	IL_003e:  brfalse IL_004f
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Include::get_AsIs
 
-	IL_0043:  nop 
-	IL_0044:  ldstr "Cannot transfer directory to file"
-	IL_0049:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_004e:  throw 
-	IL_004f:  ldarg.0 
-	IL_0050:  ldarg.1 
-	IL_0051:  stfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
-	IL_0056:  ldarg.0 
-	IL_0057:  ldarg.2 
-	IL_0058:  stfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
-	IL_005d:  ret 
-    } // end of method FileOperation::.ctor
+    // method line 877
+    .method public hidebysig specialname 
+           instance default void set_AsIs (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xeb4b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.FileSet/Include::_asIs
+	IL_0008:  ret 
+    } // end of method Include::set_AsIs
 
-    // method line 961
+    // method line 878
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.StringComparer get_Comparer ()  cil managed 
+           instance default bool get_FromPath ()  cil managed 
     {
-        // Method begins at RVA 0x11eac
+        // Method begins at RVA 0xeb58
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.StringComparer	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperation::_comparer
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/Include::_fromPath
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FileOperation::get_Comparer
+    } // end of method Include::get_FromPath
 
-    // method line 962
+    // method line 879
     .method public hidebysig specialname 
-           instance default void set_Comparer (class [mscorlib]System.StringComparer 'value')  cil managed 
+           instance default void set_FromPath (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x11ec7
+        // Method begins at RVA 0xeb73
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperation::_comparer
+	IL_0003:  stfld bool NAnt.Core.Types.FileSet/Include::_fromPath
 	IL_0008:  ret 
-    } // end of method FileOperation::set_Comparer
+    } // end of method Include::set_FromPath
 
-    // method line 963
-    .method public hidebysig specialname 
-           instance default string get_Source ()  cil managed 
+    // method line 880
+    .method public virtual hidebysig specialname 
+           instance default string get_Pattern ()  cil managed 
     {
-        // Method begins at RVA 0x11ed4
-	// Code size 20 (0x14)
+        // Method begins at RVA 0xeb80
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
-	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  call instance string class NAnt.Core.Types.FileSet/Exclude::get_Pattern()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FileOperation::get_Source
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Include::get_Pattern
 
-    // method line 964
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileSystemInfo get_SourceInfo ()  cil managed 
+    // method line 881
+    .method public virtual hidebysig specialname 
+           instance default void set_Pattern (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xeb9b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Types.FileSet/Exclude::set_Pattern(string)
+	IL_0008:  ret 
+    } // end of method Include::set_Pattern
+
+    // method line 882
+    .method public virtual hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x11ef4
+        // Method begins at RVA 0xeba8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileSystemInfo	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
+	IL_0002:  call instance bool class NAnt.Core.Types.FileSet/Exclude::get_IfDefined()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FileOperation::get_SourceInfo
+    } // end of method Include::get_IfDefined
 
-    // method line 965
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Type get_SourceType ()  cil managed 
+    // method line 883
+    .method public virtual hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x11f10
-	// Code size 20 (0x14)
+        // Method begins at RVA 0xebc3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Types.FileSet/Exclude::set_IfDefined(bool)
+	IL_0008:  ret 
+    } // end of method Include::set_IfDefined
+
+    // method line 884
+    .method public virtual hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0xebd0
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Type	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
-	IL_0007:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  call instance bool class NAnt.Core.Types.FileSet/Exclude::get_UnlessDefined()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FileOperation::get_SourceType
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Include::get_UnlessDefined
 
-    // method line 966
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Tasks.CopyTask/OperationType get_OperationType ()  cil managed 
+    // method line 885
+    .method public virtual hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x11f30
-	// Code size 94 (0x5e)
-	.maxstack 2
-	.locals init (
-		valuetype NAnt.Core.Tasks.CopyTask/OperationType	V_0)
+        // Method begins at RVA 0xebeb
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance class [mscorlib]System.IO.FileSystemInfo class NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceInfo()
-	IL_0008:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.FileInfo> (class [mscorlib]System.IO.FileSystemInfo)
-	IL_000d:  brfalse IL_002b
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Types.FileSet/Exclude::set_UnlessDefined(bool)
+	IL_0008:  ret 
+    } // end of method Include::set_UnlessDefined
 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance class [mscorlib]System.IO.FileSystemInfo class NAnt.Core.Tasks.CopyTask/FileOperation::get_TargetInfo()
-	IL_0019:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.FileInfo> (class [mscorlib]System.IO.FileSystemInfo)
-	IL_001e:  brfalse IL_002b
+	.property instance bool AsIs ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 61 73 69 73 00 00 ) // ...asis..
 
-	IL_0023:  nop 
-	IL_0024:  ldc.i4.0 
-	IL_0025:  stloc.0 
-	IL_0026:  br IL_005c
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	IL_002b:  ldarg.0 
-	IL_002c:  ldarg.0 
-	IL_002d:  call instance class [mscorlib]System.IO.FileSystemInfo class NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceInfo()
-	IL_0032:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.FileInfo> (class [mscorlib]System.IO.FileSystemInfo)
-	IL_0037:  brfalse IL_0055
+		.get instance default bool NAnt.Core.Types.FileSet/Include::get_AsIs () 
+		.set instance default void NAnt.Core.Types.FileSet/Include::set_AsIs (bool 'value') 
+	}
+	.property instance bool FromPath ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 66 72 6F 6D 70 61 74 68 00 00 ) // ...frompath..
 
-	IL_003c:  ldarg.0 
-	IL_003d:  ldarg.0 
-	IL_003e:  call instance class [mscorlib]System.IO.FileSystemInfo class NAnt.Core.Tasks.CopyTask/FileOperation::get_TargetInfo()
-	IL_0043:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.DirectoryInfo> (class [mscorlib]System.IO.FileSystemInfo)
-	IL_0048:  brfalse IL_0055
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	IL_004d:  nop 
-	IL_004e:  ldc.i4.1 
-	IL_004f:  stloc.0 
-	IL_0050:  br IL_005c
+		.get instance default bool NAnt.Core.Types.FileSet/Include::get_FromPath () 
+		.set instance default void NAnt.Core.Types.FileSet/Include::set_FromPath (bool 'value') 
+	}
+	.property instance string Pattern ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		69 72 65 64 01                                  ) // ired.
 
-	IL_0055:  ldc.i4.2 
-	IL_0056:  stloc.0 
-	IL_0057:  br IL_005c
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-	IL_005c:  ldloc.0 
-	IL_005d:  ret 
-    } // end of method FileOperation::get_OperationType
+		.get instance default string NAnt.Core.Types.FileSet/Include::get_Pattern () 
+		.set instance default void NAnt.Core.Types.FileSet/Include::set_Pattern (string 'value') 
+	}
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
 
-    // method line 967
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.FileSet/Include::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.FileSet/Include::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.FileSet/Include::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.FileSet/Include::set_UnlessDefined (bool 'value') 
+	}
+  } // end of class Include
+
+  .class nested public auto ansi beforefieldinit ExcludesFile
+  	extends NAnt.Core.Element
+  {
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
+    .field  private  class [mscorlib]System.IO.FileInfo _patternFile
+
+    // method line 886
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xebf5
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.FileSet/ExcludesFile::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  ret 
+    } // end of method ExcludesFile::.ctor
+
+    // method line 887
     .method public hidebysig specialname 
-           instance default bool get_Outdated ()  cil managed 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Patterns ()  cil managed 
     {
-        // Method begins at RVA 0x11f9c
-	// Code size 66 (0x42)
-	.maxstack 2
+        // Method begins at RVA 0xec04
+	// Code size 191 (0xbf)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		class [System]System.Collections.Specialized.StringCollection	V_1,
+		class [mscorlib]System.IO.StreamReader	V_2,
+		string	V_3,
+		class [mscorlib]System.Exception	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
-	IL_0008:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.DirectoryInfo> (class [mscorlib]System.IO.FileSystemInfo)
-	IL_000d:  brtrue IL_0039
+	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.FileSet/ExcludesFile::get_PatternFile()
+	IL_000d:  brtrue IL_001a
 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
-	IL_0019:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.FileInfo> (class [mscorlib]System.IO.FileSystemInfo)
-	IL_001e:  brfalse IL_0036
+	IL_0012:  nop 
+	IL_0013:  ldloc.0 
+	IL_0014:  stloc.1 
+	IL_0015:  br IL_00bd
 
-	IL_0023:  ldarg.0 
-	IL_0024:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
-	IL_0029:  ldarg.0 
-	IL_002a:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
-	IL_002f:  call bool class NAnt.Core.Tasks.CopyTask/FileOperation::TargetIsOutdated(class [mscorlib]System.IO.FileSystemInfo, class [mscorlib]System.IO.FileSystemInfo)
-	IL_0034:  br.s IL_0037
+	.try { // 1
+	  IL_001a:  nop 
+	  IL_001b:  ldarg.0 
+	  IL_001c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.FileSet/ExcludesFile::get_PatternFile()
+	  IL_0021:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0026:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
+	  IL_002b:  ldc.i4.1 
+	  IL_002c:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
+	  IL_0031:  stloc.2 
+	  .try { // 0
+	    IL_0032:  nop 
+	    IL_0033:  ldloc.2 
+	    IL_0034:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	    IL_0039:  stloc.3 
+	    IL_003a:  br IL_0072
 
-	IL_0036:  ldc.i4.0 
-	IL_0037:  br.s IL_003a
+	    IL_003f:  nop 
+	    IL_0040:  ldloc.3 
+	    IL_0041:  callvirt instance string string::Trim()
+	    IL_0046:  stloc.3 
+	    IL_0047:  ldloc.3 
+	    IL_0048:  callvirt instance int32 string::get_Length()
+	    IL_004d:  brfalse IL_006a
 
-	IL_0039:  ldc.i4.1 
-	IL_003a:  stloc.0 
-	IL_003b:  br IL_0040
+	    IL_0052:  ldloc.3 
+	    IL_0053:  ldc.i4.0 
+	    IL_0054:  callvirt instance char string::get_Chars(int32)
+	    IL_0059:  ldc.i4.s 0x23
+	    IL_005b:  beq IL_006a
 
-	IL_0040:  ldloc.0 
-	IL_0041:  ret 
-    } // end of method FileOperation::get_Outdated
+	    IL_0060:  nop 
+	    IL_0061:  ldloc.0 
+	    IL_0062:  ldloc.3 
+	    IL_0063:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_0068:  pop 
+	    IL_0069:  nop 
+	    IL_006a:  ldloc.2 
+	    IL_006b:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	    IL_0070:  stloc.3 
+	    IL_0071:  nop 
+	    IL_0072:  ldloc.3 
+	    IL_0073:  brtrue IL_003f
 
-    // method line 968
-    .method public hidebysig specialname 
-           instance default string get_Target ()  cil managed 
+	    IL_0078:  nop 
+	    IL_0079:  leave IL_008b
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_007e:  ldloc.2 
+	    IL_007f:  brfalse IL_008a
+
+	    IL_0084:  ldloc.2 
+	    IL_0085:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_008a:  endfinally 
+	  } // end handler 0
+	  IL_008b:  ldloc.0 
+	  IL_008c:  stloc.1 
+	  IL_008d:  leave IL_00bd
+
+	} // end .try 1
+	catch class [mscorlib]System.Exception { // 1
+	  IL_0092:  stloc.s 4
+	  IL_0094:  nop 
+	  IL_0095:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_009a:  ldstr "'{0}' list could not be opened."
+	  IL_009f:  ldarg.0 
+	  IL_00a0:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.FileSet/ExcludesFile::get_PatternFile()
+	  IL_00a5:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_00aa:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_00af:  ldarg.0 
+	  IL_00b0:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_00b5:  ldloc.s 4
+	  IL_00b7:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_00bc:  throw 
+	} // end handler 1
+	IL_00bd:  ldloc.1 
+	IL_00be:  ret 
+    } // end of method ExcludesFile::get_Patterns
+
+    // method line 888
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x11fec
-	// Code size 20 (0x14)
+        // Method begins at RVA 0xecec
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
-	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/ExcludesFile::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FileOperation::get_Target
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExcludesFile::get_IfDefined
 
-    // method line 969
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileSystemInfo get_TargetInfo ()  cil managed 
+    // method line 889
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xed07
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.FileSet/ExcludesFile::_ifDefined
+	IL_0008:  ret 
+    } // end of method ExcludesFile::set_IfDefined
+
+    // method line 890
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x1200c
+        // Method begins at RVA 0xed14
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileSystemInfo	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/ExcludesFile::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FileOperation::get_TargetInfo
+    } // end of method ExcludesFile::get_UnlessDefined
 
-    // method line 970
+    // method line 891
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xed2f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.FileSet/ExcludesFile::_unlessDefined
+	IL_0008:  ret 
+    } // end of method ExcludesFile::set_UnlessDefined
+
+    // method line 892
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Type get_TargetType ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_PatternFile ()  cil managed 
     {
-        // Method begins at RVA 0x12028
-	// Code size 20 (0x14)
+        // Method begins at RVA 0xed3c
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Type	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
-	IL_0007:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.FileSet/ExcludesFile::_patternFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FileOperation::get_TargetType
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExcludesFile::get_PatternFile
 
-    // method line 971
-    .method public hidebysig 
-           instance default void NormalizeTargetAttributes ()  cil managed 
+    // method line 893
+    .method public hidebysig specialname 
+           instance default void set_PatternFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x12048
-	// Code size 79 (0x4f)
-	.maxstack 2
+        // Method begins at RVA 0xed57
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
-	IL_0008:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.FileInfo> (class [mscorlib]System.IO.FileSystemInfo)
-	IL_000d:  brfalse IL_004e
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.FileSet/ExcludesFile::_patternFile
+	IL_0008:  ret 
+    } // end of method ExcludesFile::set_PatternFile
 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
-	IL_0018:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_001d:  brfalse IL_004e
+	.property instance class [System]System.Collections.Specialized.StringCollection Patterns ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.FileSet/ExcludesFile::get_Patterns () 
+	}
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
 
-	IL_0022:  ldarg.0 
-	IL_0023:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
-	IL_0028:  callvirt instance valuetype [mscorlib]System.IO.FileAttributes class [mscorlib]System.IO.FileSystemInfo::get_Attributes()
-	IL_002d:  ldc.i4 128
-	IL_0032:  beq IL_004e
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	IL_0037:  nop 
-	IL_0038:  ldarg.0 
-	IL_0039:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
-	IL_003e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0043:  ldc.i4 128
-	IL_0048:  call void class [mscorlib]System.IO.File::SetAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
-	IL_004d:  nop 
-	IL_004e:  ret 
-    } // end of method FileOperation::NormalizeTargetAttributes
+		.get instance default bool NAnt.Core.Types.FileSet/ExcludesFile::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.FileSet/ExcludesFile::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
 
-    // method line 972
-    .method public hidebysig 
-           instance default bool SourceEqualsTarget ()  cil managed 
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.FileSet/ExcludesFile::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.FileSet/ExcludesFile::set_UnlessDefined (bool 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo PatternFile ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Types.FileSet/ExcludesFile::get_PatternFile () 
+		.set instance default void NAnt.Core.Types.FileSet/ExcludesFile::set_PatternFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+  } // end of class ExcludesFile
+
+  .class nested public auto ansi beforefieldinit IncludesFile
+  	extends NAnt.Core.Types.FileSet/ExcludesFile
+  {
+    .field  private  bool _asIs
+    .field  private  bool _fromPath
+
+    // method line 894
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x120a4
-	// Code size 45 (0x2d)
-	.maxstack 3
+        // Method begins at RVA 0xed61
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Types.FileSet/ExcludesFile::'.ctor'()
+	IL_0006:  ret 
+    } // end of method IncludesFile::.ctor
+
+    // method line 895
+    .method public hidebysig specialname 
+           instance default bool get_AsIs ()  cil managed 
+    {
+        // Method begins at RVA 0xed6c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperation::_comparer
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
-	IL_000d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0012:  ldarg.0 
-	IL_0013:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
-	IL_0018:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001d:  callvirt instance int32 class [mscorlib]System.StringComparer::Compare(string, string)
-	IL_0022:  ldc.i4.0 
-	IL_0023:  ceq 
-	IL_0025:  stloc.0 
-	IL_0026:  br IL_002b
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/IncludesFile::_asIs
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_002b:  ldloc.0 
-	IL_002c:  ret 
-    } // end of method FileOperation::SourceEqualsTarget
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IncludesFile::get_AsIs
 
-    // method line 973
-    .method public hidebysig 
-           instance default bool SourceIsIdenticalToTarget ()  cil managed 
+    // method line 896
+    .method public hidebysig specialname 
+           instance default void set_AsIs (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x120e0
-	// Code size 37 (0x25)
-	.maxstack 3
+        // Method begins at RVA 0xed87
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.FileSet/IncludesFile::_asIs
+	IL_0008:  ret 
+    } // end of method IncludesFile::set_AsIs
+
+    // method line 897
+    .method public hidebysig specialname 
+           instance default bool get_FromPath ()  cil managed 
+    {
+        // Method begins at RVA 0xed94
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
-	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
-	IL_0012:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0017:  ldc.i4.2 
-	IL_0018:  callvirt instance bool string::Equals(string, valuetype [mscorlib]System.StringComparison)
-	IL_001d:  stloc.0 
-	IL_001e:  br IL_0023
+	IL_0002:  ldfld bool NAnt.Core.Types.FileSet/IncludesFile::_fromPath
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0023:  ldloc.0 
-	IL_0024:  ret 
-    } // end of method FileOperation::SourceIsIdenticalToTarget
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IncludesFile::get_FromPath
 
-    // method line 974
-    .method public hidebysig 
-           instance default void UpdateSource (class [mscorlib]System.IO.FileSystemInfo newSource)  cil managed 
+    // method line 898
+    .method public hidebysig specialname 
+           instance default void set_FromPath (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x12111
-	// Code size 38 (0x26)
+        // Method begins at RVA 0xedaf
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
-	IL_0007:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0012:  call bool valuetype [mscorlib]System.DateTime::op_LessThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	IL_0017:  brfalse IL_0025
-
-	IL_001c:  nop 
-	IL_001d:  ldarg.0 
-	IL_001e:  ldarg.1 
-	IL_001f:  stfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
-	IL_0024:  nop 
-	IL_0025:  ret 
-    } // end of method FileOperation::UpdateSource
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Types.FileSet/IncludesFile::_fromPath
+	IL_0008:  ret 
+    } // end of method IncludesFile::set_FromPath
 
-    // method line 975
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
+    // method line 899
+    .method public virtual hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x12138
-	// Code size 31 (0x1f)
-	.maxstack 3
+        // Method begins at RVA 0xedbc
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldstr "'{0}' to '{1}'"
-	IL_0006:  ldarg.0 
-	IL_0007:  call instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	IL_0012:  call string string::Format(string, object, object)
-	IL_0017:  stloc.0 
-	IL_0018:  br IL_001d
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_IfDefined()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_001d:  ldloc.0 
-	IL_001e:  ret 
-    } // end of method FileOperation::ToString
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IncludesFile::get_IfDefined
 
-    // method line 976
-    .method public static hidebysig 
-           default bool TargetIsOutdated (class [mscorlib]System.IO.FileSystemInfo source, class [mscorlib]System.IO.FileSystemInfo target)  cil managed 
+    // method line 900
+    .method public virtual hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x12164
-	// Code size 40 (0x28)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0xedd7
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0007:  brfalse IL_001f
-
-	IL_000c:  ldarg.0 
-	IL_000d:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0012:  ldarg.1 
-	IL_0013:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0018:  call bool valuetype [mscorlib]System.DateTime::op_GreaterThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	IL_001d:  br.s IL_0020
-
-	IL_001f:  ldc.i4.1 
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
-
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method FileOperation::TargetIsOutdated
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Types.FileSet/ExcludesFile::set_IfDefined(bool)
+	IL_0008:  ret 
+    } // end of method IncludesFile::set_IfDefined
 
-    // method line 977
-    .method public static hidebysig 
-           default bool TargetDirectoryDoesNotExist (class [mscorlib]System.IO.DirectoryInfo source, class [mscorlib]System.IO.DirectoryInfo target)  cil managed 
+    // method line 901
+    .method public virtual hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x12198
-	// Code size 46 (0x2e)
-	.maxstack 3
+        // Method begins at RVA 0xede4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0007:  brtrue IL_0014
-
-	IL_000c:  nop 
-	IL_000d:  ldc.i4.1 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_002c
-
-	IL_0014:  ldarg.0 
-	IL_0015:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001a:  ldarg.1 
-	IL_001b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0020:  ldc.i4.3 
-	IL_0021:  callvirt instance bool string::Equals(string, valuetype [mscorlib]System.StringComparison)
-	IL_0026:  stloc.0 
-	IL_0027:  br IL_002c
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.Core.Types.FileSet/ExcludesFile::get_UnlessDefined()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_002c:  ldloc.0 
-	IL_002d:  ret 
-    } // end of method FileOperation::TargetDirectoryDoesNotExist
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IncludesFile::get_UnlessDefined
 
-    // method line 978
-    .method private hidebysig 
-           instance default bool IsFileSystemType<(class [mscorlib]System.IO.FileSystemInfo) TFileSystemInfo> (class [mscorlib]System.IO.FileSystemInfo item)  cil managed 
+    // method line 902
+    .method public virtual hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x121d4
-	// Code size 30 (0x1e)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0xedff
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0007:  ldtoken !!TFileSystemInfo
-	IL_000c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0011:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0016:  stloc.0 
-	IL_0017:  br IL_001c
-
-	IL_001c:  ldloc.0 
-	IL_001d:  ret 
-    } // end of method FileOperation::IsFileSystemType
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Types.FileSet/ExcludesFile::set_UnlessDefined(bool)
+	IL_0008:  ret 
+    } // end of method IncludesFile::set_UnlessDefined
 
-	.property instance class [mscorlib]System.StringComparer Comparer ()
-	{
-		.get instance default class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperation::get_Comparer () 
-		.set instance default void NAnt.Core.Tasks.CopyTask/FileOperation::set_Comparer (class [mscorlib]System.StringComparer 'value') 
-	}
-	.property instance string Source ()
-	{
-		.get instance default string NAnt.Core.Tasks.CopyTask/FileOperation::get_Source () 
-	}
-	.property instance class [mscorlib]System.IO.FileSystemInfo SourceInfo ()
-	{
-		.get instance default class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceInfo () 
-	}
-	.property instance class [mscorlib]System.Type SourceType ()
-	{
-		.get instance default class [mscorlib]System.Type NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceType () 
-	}
-	.property instance valuetype NAnt.Core.Tasks.CopyTask/OperationType OperationType ()
-	{
-		.get instance default valuetype NAnt.Core.Tasks.CopyTask/OperationType NAnt.Core.Tasks.CopyTask/FileOperation::get_OperationType () 
-	}
-	.property instance bool Outdated ()
+	.property instance bool AsIs ()
 	{
-		.get instance default bool NAnt.Core.Tasks.CopyTask/FileOperation::get_Outdated () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 61 73 69 73 00 00 ) // ...asis..
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.FileSet/IncludesFile::get_AsIs () 
+		.set instance default void NAnt.Core.Types.FileSet/IncludesFile::set_AsIs (bool 'value') 
 	}
-	.property instance string Target ()
+	.property instance bool FromPath ()
 	{
-		.get instance default string NAnt.Core.Tasks.CopyTask/FileOperation::get_Target () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 66 72 6F 6D 70 61 74 68 00 00 ) // ...frompath..
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.FileSet/IncludesFile::get_FromPath () 
+		.set instance default void NAnt.Core.Types.FileSet/IncludesFile::set_FromPath (bool 'value') 
 	}
-	.property instance class [mscorlib]System.IO.FileSystemInfo TargetInfo ()
+	.property instance bool IfDefined ()
 	{
-		.get instance default class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::get_TargetInfo () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.FileSet/IncludesFile::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.FileSet/IncludesFile::set_IfDefined (bool 'value') 
 	}
-	.property instance class [mscorlib]System.Type TargetType ()
+	.property instance bool UnlessDefined ()
 	{
-		.get instance default class [mscorlib]System.Type NAnt.Core.Tasks.CopyTask/FileOperation::get_TargetType () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Types.FileSet/IncludesFile::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.FileSet/IncludesFile::set_UnlessDefined (bool 'value') 
 	}
-  } // end of class FileOperation
+  } // end of class IncludesFile
 
-  .class nested family auto ansi beforefieldinit FileOperationMap
-  	extends class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string,class NAnt.Core.Tasks.CopyTask/FileOperation>
+  } // end of class NAnt.Core.Types.FileSet
+}
+
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi serializable beforefieldinit FormatterCollection
+  	extends [mscorlib]System.Collections.CollectionBase
   {
-    .field  private  class [mscorlib]System.StringComparer _stringComparer
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-    // method line 979
+
+    // method line 903
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x121fe
-	// Code size 24 (0x18)
+        // Method begins at RVA 0xf93a
+	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call class [mscorlib]System.StringComparer class [mscorlib]System.StringComparer::get_InvariantCulture()
-	IL_0006:  call instance void class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::'.ctor'(class [mscorlib]System.Collections.Generic.IEqualityComparer`1<!0>)
-	IL_000b:  nop 
-	IL_000c:  ldarg.0 
-	IL_000d:  call class [mscorlib]System.StringComparer class [mscorlib]System.StringComparer::get_InvariantCulture()
-	IL_0012:  stfld class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperationMap::_stringComparer
-	IL_0017:  ret 
-    } // end of method FileOperationMap::.ctor
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method FormatterCollection::.ctor
 
-    // method line 980
+    // method line 904
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.StringComparer comparer)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Types.FormatterCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x12217
-	// Code size 16 (0x10)
+        // Method begins at RVA 0xf943
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::'.ctor'(class [mscorlib]System.Collections.Generic.IEqualityComparer`1<!0>)
-	IL_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  stfld class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperationMap::_stringComparer
-	IL_000f:  ret 
-    } // end of method FileOperationMap::.ctor
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Types.FormatterCollection::AddRange(class NAnt.Core.Types.FormatterCollection)
+	IL_000e:  ret 
+    } // end of method FormatterCollection::.ctor
 
-    // method line 981
-    .method public hidebysig 
-           instance default bool ContainsKey (string key)  cil managed 
+    // method line 905
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.Formatter[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x12228
-	// Code size 40 (0x28)
+        // Method begins at RVA 0xf953
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Types.FormatterCollection::AddRange(class NAnt.Core.Types.Formatter[])
+	IL_000e:  ret 
+    } // end of method FormatterCollection::.ctor
+
+    // method line 906
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Formatter get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0xf964
+	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Types.Formatter	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Generic.IDictionary`2<!0,!1> class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Dictionary()
-	IL_0007:  brfalse IL_001f
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class [mscorlib]System.Collections.Generic.IDictionary`2<!0,!1> class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Dictionary()
-	IL_0013:  ldarg.1 
-	IL_0014:  callvirt instance bool class [mscorlib]System.Collections.Generic.IDictionary`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::ContainsKey(!0)
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_0026
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.Core.Types.Formatter
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_001f:  ldc.i4.0 
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method FormatterCollection::get_Item
 
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method FileOperationMap::ContainsKey
+    // method line 907
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.Formatter 'value')  cil managed 
+    {
+        // Method begins at RVA 0xf98a
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method FormatterCollection::set_Item
 
-    // method line 982
+    // method line 908
     .method public hidebysig 
-           instance default int32 CountDirectoryOperations ()  cil managed 
+           instance default int32 Add (class NAnt.Core.Types.Formatter item)  cil managed 
     {
-        // Method begins at RVA 0x1225c
-	// Code size 75 (0x4b)
+        // Method begins at RVA 0xf99c
+	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		int32	V_0,
-		int32	V_1,
-		int32	V_2)
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FormatterCollection::Add
+
+    // method line 909
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.Formatter[] items)  cil managed 
+    {
+        // Method begins at RVA 0xf9c0
+	// Code size 34 (0x22)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldc.i4.0 
 	IL_0002:  stloc.0 
-	IL_0003:  ldc.i4.0 
-	IL_0004:  stloc.1 
-	IL_0005:  br IL_0036
+	IL_0003:  br IL_0018
 
-	IL_000a:  nop 
-	IL_000b:  ldarg.0 
-	IL_000c:  ldloc.1 
-	IL_000d:  call instance !0 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Item(int32)
-	IL_0012:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceType()
-	IL_0017:  ldtoken [mscorlib]System.IO.DirectoryInfo
-	IL_001c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0021:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0026:  brfalse IL_0031
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.Core.Types.FormatterCollection::Add(class NAnt.Core.Types.Formatter)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
 
-	IL_002b:  nop 
-	IL_002c:  ldloc.0 
-	IL_002d:  ldc.i4.1 
-	IL_002e:  add 
-	IL_002f:  stloc.0 
-	IL_0030:  nop 
-	IL_0031:  nop 
-	IL_0032:  ldloc.1 
-	IL_0033:  ldc.i4.1 
-	IL_0034:  add 
-	IL_0035:  stloc.1 
-	IL_0036:  ldloc.1 
-	IL_0037:  ldarg.0 
-	IL_0038:  call instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Count()
-	IL_003d:  blt IL_000a
+	IL_0021:  ret 
+    } // end of method FormatterCollection::AddRange
 
-	IL_0042:  ldloc.0 
-	IL_0043:  stloc.2 
-	IL_0044:  br IL_0049
+    // method line 910
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.FormatterCollection items)  cil managed 
+    {
+        // Method begins at RVA 0xf9f0
+	// Code size 41 (0x29)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
 
-	IL_0049:  ldloc.2 
-	IL_004a:  ret 
-    } // end of method FileOperationMap::CountDirectoryOperations
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.Core.Types.Formatter class NAnt.Core.Types.FormatterCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Core.Types.FormatterCollection::Add(class NAnt.Core.Types.Formatter)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
 
-    // method line 983
+	IL_0028:  ret 
+    } // end of method FormatterCollection::AddRange
+
+    // method line 911
     .method public hidebysig 
-           instance default int32 CountFileOperations ()  cil managed 
+           instance default bool Contains (class NAnt.Core.Types.Formatter item)  cil managed 
     {
-        // Method begins at RVA 0x122b4
-	// Code size 75 (0x4b)
+        // Method begins at RVA 0xfa28
+	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		int32	V_0,
-		int32	V_1,
-		int32	V_2)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  ldc.i4.0 
-	IL_0004:  stloc.1 
-	IL_0005:  br IL_0036
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_000a:  nop 
-	IL_000b:  ldarg.0 
-	IL_000c:  ldloc.1 
-	IL_000d:  call instance !0 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Item(int32)
-	IL_0012:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceType()
-	IL_0017:  ldtoken [mscorlib]System.IO.FileInfo
-	IL_001c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0021:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0026:  brfalse IL_0031
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FormatterCollection::Contains
 
-	IL_002b:  nop 
-	IL_002c:  ldloc.0 
-	IL_002d:  ldc.i4.1 
-	IL_002e:  add 
-	IL_002f:  stloc.0 
-	IL_0030:  nop 
-	IL_0031:  nop 
-	IL_0032:  ldloc.1 
-	IL_0033:  ldc.i4.1 
-	IL_0034:  add 
-	IL_0035:  stloc.1 
-	IL_0036:  ldloc.1 
-	IL_0037:  ldarg.0 
-	IL_0038:  call instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Count()
-	IL_003d:  blt IL_000a
+    // method line 912
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.Formatter[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0xfa49
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method FormatterCollection::CopyTo
 
-	IL_0042:  ldloc.0 
-	IL_0043:  stloc.2 
-	IL_0044:  br IL_0049
+    // method line 913
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.Types.Formatter item)  cil managed 
+    {
+        // Method begins at RVA 0xfa5c
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0049:  ldloc.2 
-	IL_004a:  ret 
-    } // end of method FileOperationMap::CountFileOperations
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FormatterCollection::IndexOf
 
-    // method line 984
+    // method line 914
     .method public hidebysig 
-           instance default class [mscorlib]System.Collections.Hashtable ConvertToHashtable ()  cil managed 
+           instance default void Insert (int32 index, class NAnt.Core.Types.Formatter item)  cil managed 
     {
-        // Method begins at RVA 0x1230c
-	// Code size 325 (0x145)
-	.maxstack 4
+        // Method begins at RVA 0xfa7d
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method FormatterCollection::Insert
+
+    // method line 915
+    .method public hidebysig 
+           instance default class NAnt.Core.Types.FormatterEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0xfa90
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0,
-		int32	V_1,
-		class NAnt.Core.Tasks.CopyTask/FileOperation	V_2,
-		string	V_3,
-		string	V_4,
-		class NAnt.Core.DirectoryScanner	V_5,
-		class [System]System.Collections.Specialized.StringCollection	V_6,
-		int32	V_7,
-		string	V_8,
-		class [mscorlib]System.Collections.Hashtable	V_9)
+		class NAnt.Core.Types.FormatterEnumerator	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_0006:  brfalse IL_0018
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.Core.Types.FormatterEnumerator::'.ctor'(class NAnt.Core.Types.FormatterCollection)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_000b:  nop 
-	IL_000c:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0011:  stloc.0 
-	IL_0012:  nop 
-	IL_0013:  br IL_0020
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FormatterCollection::GetEnumerator
 
-	IL_0018:  nop 
-	IL_0019:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_001e:  stloc.0 
-	IL_001f:  nop 
-	IL_0020:  ldc.i4.0 
-	IL_0021:  stloc.1 
-	IL_0022:  br IL_012e
+    // method line 916
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.Types.Formatter item)  cil managed 
+    {
+        // Method begins at RVA 0xfaab
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
+	IL_000d:  ret 
+    } // end of method FormatterCollection::Remove
 
-	IL_0027:  nop 
-	IL_0028:  ldarg.0 
-	IL_0029:  ldloc.1 
-	IL_002a:  call instance !0 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Item(int32)
-	IL_002f:  stloc.2 
-	IL_0030:  ldloc.2 
-	IL_0031:  callvirt instance valuetype NAnt.Core.Tasks.CopyTask/OperationType class NAnt.Core.Tasks.CopyTask/FileOperation::get_OperationType()
-	IL_0036:  brtrue IL_0059
+	.property instance class NAnt.Core.Types.Formatter Item (int32)
+	{
+		.get instance default class NAnt.Core.Types.Formatter NAnt.Core.Types.FormatterCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Core.Types.FormatterCollection::set_Item (int32 index, class NAnt.Core.Types.Formatter 'value') 
+	}
+  } // end of class NAnt.Core.Types.FormatterCollection
+}
 
-	IL_003b:  nop 
-	IL_003c:  ldloc.0 
-	IL_003d:  ldloc.2 
-	IL_003e:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	IL_0043:  ldloc.2 
-	IL_0044:  callvirt instance class [mscorlib]System.IO.FileSystemInfo class NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceInfo()
-	IL_0049:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileDateInfo::'.ctor'(class [mscorlib]System.IO.FileSystemInfo)
-	IL_004e:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_0053:  nop 
-	IL_0054:  br IL_0129
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi beforefieldinit FormatterEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-	IL_0059:  ldloc.2 
-	IL_005a:  callvirt instance valuetype NAnt.Core.Tasks.CopyTask/OperationType class NAnt.Core.Tasks.CopyTask/FileOperation::get_OperationType()
-	IL_005f:  ldc.i4.1 
-	IL_0060:  bne.un IL_0099
+    // method line 917
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.FormatterCollection arguments)  cil managed 
+    {
+        // Method begins at RVA 0xfabc
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.FormatterEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method FormatterEnumerator::.ctor
 
-	IL_0065:  nop 
-	IL_0066:  ldloc.2 
-	IL_0067:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
-	IL_006c:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_0071:  stloc.3 
-	IL_0072:  ldloc.2 
-	IL_0073:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	IL_0078:  ldloc.3 
-	IL_0079:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_007e:  stloc.s 4
-	IL_0080:  ldloc.0 
-	IL_0081:  ldloc.s 4
-	IL_0083:  ldloc.2 
-	IL_0084:  callvirt instance class [mscorlib]System.IO.FileSystemInfo class NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceInfo()
-	IL_0089:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileDateInfo::'.ctor'(class [mscorlib]System.IO.FileSystemInfo)
-	IL_008e:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_0093:  nop 
-	IL_0094:  br IL_0129
+    // method line 918
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Formatter get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0xfae0
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.Formatter	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.FormatterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.Core.Types.Formatter
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_0099:  nop 
-	IL_009a:  newobj instance void class NAnt.Core.DirectoryScanner::'.ctor'()
-	IL_009f:  stloc.s 5
-	IL_00a1:  ldloc.s 5
-	IL_00a3:  ldloc.2 
-	IL_00a4:  callvirt instance class [mscorlib]System.IO.FileSystemInfo class NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceInfo()
-	IL_00a9:  isinst [mscorlib]System.IO.DirectoryInfo
-	IL_00ae:  callvirt instance void class NAnt.Core.DirectoryScanner::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_00b3:  ldloc.s 5
-	IL_00b5:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_Includes()
-	IL_00ba:  ldstr "**/*"
-	IL_00bf:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_00c4:  pop 
-	IL_00c5:  ldloc.s 5
-	IL_00c7:  callvirt instance void class NAnt.Core.DirectoryScanner::Scan()
-	IL_00cc:  ldloc.s 5
-	IL_00ce:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_FileNames()
-	IL_00d3:  stloc.s 6
-	IL_00d5:  ldc.i4.0 
-	IL_00d6:  stloc.s 7
-	IL_00d8:  br IL_011a
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FormatterEnumerator::get_Current
 
-	IL_00dd:  nop 
-	IL_00de:  ldloc.s 6
-	IL_00e0:  ldloc.s 7
-	IL_00e2:  callvirt instance string class [System]System.Collections.Specialized.StringCollection::get_Item(int32)
-	IL_00e7:  stloc.s 8
-	IL_00e9:  ldloc.s 8
-	IL_00eb:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_00f0:  stloc.3 
-	IL_00f1:  ldloc.2 
-	IL_00f2:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	IL_00f7:  ldloc.3 
-	IL_00f8:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_00fd:  stloc.s 4
-	IL_00ff:  ldloc.0 
-	IL_0100:  ldloc.s 4
-	IL_0102:  ldloc.3 
-	IL_0103:  ldloc.3 
-	IL_0104:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.File::GetLastWriteTime(string)
-	IL_0109:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileDateInfo::'.ctor'(string, valuetype [mscorlib]System.DateTime)
-	IL_010e:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_0113:  nop 
-	IL_0114:  ldloc.s 7
-	IL_0116:  ldc.i4.1 
-	IL_0117:  add 
-	IL_0118:  stloc.s 7
-	IL_011a:  ldloc.s 7
-	IL_011c:  ldloc.s 6
-	IL_011e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0123:  blt IL_00dd
+    // method line 919
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0xfb08
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.FormatterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0128:  nop 
-	IL_0129:  nop 
-	IL_012a:  ldloc.1 
-	IL_012b:  ldc.i4.1 
-	IL_012c:  add 
-	IL_012d:  stloc.1 
-	IL_012e:  ldloc.1 
-	IL_012f:  ldarg.0 
-	IL_0130:  call instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Count()
-	IL_0135:  blt IL_0027
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FormatterEnumerator::System.Collections.IEnumerator.get_Current
 
-	IL_013a:  ldloc.0 
-	IL_013b:  stloc.s 9
-	IL_013d:  br IL_0142
+    // method line 920
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0xfb28
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.FormatterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0142:  ldloc.s 9
-	IL_0144:  ret 
-    } // end of method FileOperationMap::ConvertToHashtable
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FormatterEnumerator::MoveNext
 
-    // method line 985
-    .method family virtual hidebysig 
-           instance default string GetKeyForItem (class NAnt.Core.Tasks.CopyTask/FileOperation item)  cil managed 
+    // method line 921
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x12460
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xfb48
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.FormatterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FileOperationMap::GetKeyForItem
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FormatterEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 986
-    .method family virtual hidebysig 
-           instance default void InsertItem (int32 index, class NAnt.Core.Tasks.CopyTask/FileOperation item)  cil managed 
+    // method line 922
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x1247b
-	// Code size 22 (0x16)
+        // Method begins at RVA 0xfb68
+	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperationMap::_stringComparer
-	IL_0008:  callvirt instance void class NAnt.Core.Tasks.CopyTask/FileOperation::set_Comparer(class [mscorlib]System.StringComparer)
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.1 
-	IL_000f:  ldarg.2 
-	IL_0010:  call instance void class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::InsertItem(int32, !1)
-	IL_0015:  ret 
-    } // end of method FileOperationMap::InsertItem
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.FormatterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method FormatterEnumerator::Reset
 
-    // method line 987
-    .method family virtual hidebysig 
-           instance default void SetItem (int32 index, class NAnt.Core.Tasks.CopyTask/FileOperation item)  cil managed 
+    // method line 923
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x12492
-	// Code size 22 (0x16)
+        // Method begins at RVA 0xfb76
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperationMap::_stringComparer
-	IL_0008:  callvirt instance void class NAnt.Core.Tasks.CopyTask/FileOperation::set_Comparer(class [mscorlib]System.StringComparer)
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.1 
-	IL_000f:  ldarg.2 
-	IL_0010:  call instance void class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::SetItem(int32, !1)
-	IL_0015:  ret 
-    } // end of method FileOperationMap::SetItem
-
-  } // end of class FileOperationMap
-
-  .class nested family auto ansi sealed OperationType
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.Tasks.CopyTask/OperationType FileToFile = int32(0x00000000)
-    .field public static literal  valuetype NAnt.Core.Tasks.CopyTask/OperationType FileToDirectory = int32(0x00000001)
-    .field public static literal  valuetype NAnt.Core.Tasks.CopyTask/OperationType DirectoryToDirectory = int32(0x00000002)
-
-  } // end of class OperationType
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.FormatterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method FormatterEnumerator::System.Collections.IEnumerator.Reset
 
-  } // end of class NAnt.Core.Tasks.CopyTask
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.Core.Types.FormatterEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.Core.Types.Formatter Current ()
+	{
+		.get instance default class NAnt.Core.Types.Formatter NAnt.Core.Types.FormatterEnumerator::get_Current () 
+	}
+  } // end of class NAnt.Core.Types.FormatterEnumerator
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit GetTask
-  	extends NAnt.Core.Task
+  .class public auto ansi serializable beforefieldinit Argument
+  	extends NAnt.Core.Element
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 67 65 74 00 00 ) // ...get..
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 03 61 72 67 00 00 ) // ...arg..
 
-    .field  private  string _src
-    .field  private  class [mscorlib]System.IO.FileInfo _destFile
-    .field  private  string _httpProxy
-    .field  private  class NAnt.Core.Types.Proxy _proxy
-    .field  private  int32 _timeout
-    .field  private  bool _useTimeStamp
-    .field  private  class NAnt.Core.Types.Credential _credentials
-    .field  private  class NAnt.Core.Types.FileSet _certificates
+    .field  private  class [mscorlib]System.IO.FileInfo _file
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _directory
+    .field  private  class NAnt.Core.Types.PathSet _path
+    .field  private  string _value
+    .field  private  string _line
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 988
+    // method line 924
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x12f20
-	// Code size 29 (0x1d)
+        // Method begins at RVA 0xfb84
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4 100000
-	IL_0006:  stfld int32 NAnt.Core.Tasks.GetTask::_timeout
-	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0011:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.GetTask::_certificates
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_001c:  ret 
-    } // end of method GetTask::.ctor
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.Argument::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method Argument::.ctor
 
-    // method line 989
-    .method public hidebysig specialname 
-           instance default string get_Source ()  cil managed 
+    // method line 925
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x12f40
-	// Code size 15 (0xf)
+        // Method begins at RVA 0xfb94
+	// Code size 22 (0x16)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.Argument::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  stfld string NAnt.Core.Types.Argument::_value
+	IL_0015:  ret 
+    } // end of method Argument::.ctor
+
+    // method line 926
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0xfbab
+	// Code size 22 (0x16)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.Argument::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.Argument::_file
+	IL_0015:  ret 
+    } // end of method Argument::.ctor
+
+    // method line 927
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.PathSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0xfbc2
+	// Code size 22 (0x16)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.Argument::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  stfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
+	IL_0015:  ret 
+    } // end of method Argument::.ctor
+
+    // method line 928
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
+    {
+        // Method begins at RVA 0xfbdc
+	// Code size 170 (0xaa)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.GetTask::_src
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.Argument::get_File()
+	IL_0007:  brfalse IL_0023
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method GetTask::get_Source
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.Argument::get_File()
+	IL_0013:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0018:  call string class NAnt.Core.Types.Argument::QuoteArgument(string)
+	IL_001d:  stloc.0 
+	IL_001e:  br IL_00a8
 
-    // method line 990
-    .method public hidebysig specialname 
-           instance default void set_Source (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x12f5b
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.GetTask::_src
-	IL_000d:  ret 
-    } // end of method GetTask::set_Source
+	IL_0023:  ldarg.0 
+	IL_0024:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.Argument::get_Directory()
+	IL_0029:  brfalse IL_0045
 
-    // method line 991
+	IL_002e:  nop 
+	IL_002f:  ldarg.0 
+	IL_0030:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.Argument::get_Directory()
+	IL_0035:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_003a:  call string class NAnt.Core.Types.Argument::QuoteArgument(string)
+	IL_003f:  stloc.0 
+	IL_0040:  br IL_00a8
+
+	IL_0045:  ldarg.0 
+	IL_0046:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.Argument::get_Path()
+	IL_004b:  brfalse IL_0067
+
+	IL_0050:  nop 
+	IL_0051:  ldarg.0 
+	IL_0052:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.Argument::get_Path()
+	IL_0057:  callvirt instance string object::ToString()
+	IL_005c:  call string class NAnt.Core.Types.Argument::QuoteArgument(string)
+	IL_0061:  stloc.0 
+	IL_0062:  br IL_00a8
+
+	IL_0067:  ldarg.0 
+	IL_0068:  call instance string class NAnt.Core.Types.Argument::get_Value()
+	IL_006d:  brfalse IL_0084
+
+	IL_0072:  nop 
+	IL_0073:  ldarg.0 
+	IL_0074:  call instance string class NAnt.Core.Types.Argument::get_Value()
+	IL_0079:  call string class NAnt.Core.Types.Argument::QuoteArgument(string)
+	IL_007e:  stloc.0 
+	IL_007f:  br IL_00a8
+
+	IL_0084:  ldarg.0 
+	IL_0085:  call instance string class NAnt.Core.Types.Argument::get_Line()
+	IL_008a:  brfalse IL_009c
+
+	IL_008f:  nop 
+	IL_0090:  ldarg.0 
+	IL_0091:  call instance string class NAnt.Core.Types.Argument::get_Line()
+	IL_0096:  stloc.0 
+	IL_0097:  br IL_00a8
+
+	IL_009c:  nop 
+	IL_009d:  ldsfld string [mscorlib]System.String::Empty
+	IL_00a2:  stloc.0 
+	IL_00a3:  br IL_00a8
+
+	IL_00a8:  ldloc.0 
+	IL_00a9:  ret 
+    } // end of method Argument::ToString
+
+    // method line 929
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_DestinationFile ()  cil managed 
+           instance default string get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x12f6c
+        // Method begins at RVA 0xfc94
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.GetTask::_destFile
+	IL_0002:  ldfld string NAnt.Core.Types.Argument::_value
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method GetTask::get_DestinationFile
+    } // end of method Argument::get_Value
 
-    // method line 992
+    // method line 930
     .method public hidebysig specialname 
-           instance default void set_DestinationFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_Value (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x12f87
+        // Method begins at RVA 0xfcaf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.GetTask::_destFile
+	IL_0003:  stfld string NAnt.Core.Types.Argument::_value
 	IL_0008:  ret 
-    } // end of method GetTask::set_DestinationFile
+    } // end of method Argument::set_Value
 
-    // method line 993
+    // method line 931
     .method public hidebysig specialname 
-           instance default string get_HttpProxy ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0x12f94
+        // Method begins at RVA 0xfcbc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.GetTask::_httpProxy
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.Argument::_file
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method GetTask::get_HttpProxy
+    } // end of method Argument::get_File
 
-    // method line 994
+    // method line 932
     .method public hidebysig specialname 
-           instance default void set_HttpProxy (string 'value')  cil managed 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x12faf
+        // Method begins at RVA 0xfcd7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.GetTask::_httpProxy
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.Argument::_file
 	IL_0008:  ret 
-    } // end of method GetTask::set_HttpProxy
+    } // end of method Argument::set_File
 
-    // method line 995
+    // method line 933
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Proxy get_Proxy ()  cil managed 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
     {
-        // Method begins at RVA 0x12fbc
+        // Method begins at RVA 0xfce4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.Proxy	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.Proxy NAnt.Core.Tasks.GetTask::_proxy
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.Argument::_directory
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method GetTask::get_Proxy
+    } // end of method Argument::get_Directory
 
-    // method line 996
+    // method line 934
     .method public hidebysig specialname 
-           instance default void set_Proxy (class NAnt.Core.Types.Proxy 'value')  cil managed 
+           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x12fd7
+        // Method begins at RVA 0xfcff
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.Proxy NAnt.Core.Tasks.GetTask::_proxy
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.Argument::_directory
 	IL_0008:  ret 
-    } // end of method GetTask::set_Proxy
+    } // end of method Argument::set_Directory
 
-    // method line 997
+    // method line 935
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Credential get_Credentials ()  cil managed 
+           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
     {
-        // Method begins at RVA 0x12fe4
+        // Method begins at RVA 0xfd0c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.Credential	V_0)
+		class NAnt.Core.Types.PathSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.Credential NAnt.Core.Tasks.GetTask::_credentials
+	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method GetTask::get_Credentials
+    } // end of method Argument::get_Path
 
-    // method line 998
+    // method line 936
     .method public hidebysig specialname 
-           instance default void set_Credentials (class NAnt.Core.Types.Credential 'value')  cil managed 
+           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x12fff
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xfd27
+	// Code size 38 (0x26)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.Credential NAnt.Core.Tasks.GetTask::_credentials
-	IL_0008:  ret 
-    } // end of method GetTask::set_Credentials
+	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
+	IL_0007:  brfalse IL_001e
 
-    // method line 999
+	IL_000c:  nop 
+	IL_000d:  ldstr "Either set the path using the \"path\" attribute or the <path> element. You cannot set both."
+	IL_0012:  ldarg.0 
+	IL_0013:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_001d:  throw 
+	IL_001e:  ldarg.0 
+	IL_001f:  ldarg.1 
+	IL_0020:  stfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
+	IL_0025:  ret 
+    } // end of method Argument::set_Path
+
+    // method line 937
     .method public hidebysig specialname 
-           instance default bool get_IgnoreErrors ()  cil managed 
+           instance default class NAnt.Core.Types.PathSet get_PathSet ()  cil managed 
     {
-        // Method begins at RVA 0x1300c
+        // Method begins at RVA 0xfd50
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Types.PathSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Task::get_FailOnError()
+	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method GetTask::get_IgnoreErrors
+    } // end of method Argument::get_PathSet
 
-    // method line 1000
+    // method line 938
     .method public hidebysig specialname 
-           instance default void set_IgnoreErrors (bool 'value')  cil managed 
+           instance default void set_PathSet (class NAnt.Core.Types.PathSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x13027
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xfd6b
+	// Code size 38 (0x26)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Task::set_FailOnError(bool)
-	IL_0008:  ret 
-    } // end of method GetTask::set_IgnoreErrors
+	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
+	IL_0007:  brfalse IL_001e
 
-    // method line 1001
+	IL_000c:  nop 
+	IL_000d:  ldstr "Either set the path using the \"path\" attribute or the <path> element. You cannot set both."
+	IL_0012:  ldarg.0 
+	IL_0013:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_001d:  throw 
+	IL_001e:  ldarg.0 
+	IL_001f:  ldarg.1 
+	IL_0020:  stfld class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::_path
+	IL_0025:  ret 
+    } // end of method Argument::set_PathSet
+
+    // method line 939
     .method public hidebysig specialname 
-           instance default bool get_UseTimeStamp ()  cil managed 
+           instance default string get_Line ()  cil managed 
     {
-        // Method begins at RVA 0x13034
+        // Method begins at RVA 0xfd94
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.GetTask::_useTimeStamp
+	IL_0002:  ldfld string NAnt.Core.Types.Argument::_line
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method GetTask::get_UseTimeStamp
+    } // end of method Argument::get_Line
 
-    // method line 1002
+    // method line 940
     .method public hidebysig specialname 
-           instance default void set_UseTimeStamp (bool 'value')  cil managed 
+           instance default void set_Line (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1304f
+        // Method begins at RVA 0xfdaf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.GetTask::_useTimeStamp
+	IL_0003:  stfld string NAnt.Core.Types.Argument::_line
 	IL_0008:  ret 
-    } // end of method GetTask::set_UseTimeStamp
+    } // end of method Argument::set_Line
 
-    // method line 1003
+    // method line 941
     .method public hidebysig specialname 
-           instance default int32 get_Timeout ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x1305c
+        // Method begins at RVA 0xfdbc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Tasks.GetTask::_timeout
+	IL_0002:  ldfld bool NAnt.Core.Types.Argument::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method GetTask::get_Timeout
+    } // end of method Argument::get_IfDefined
 
-    // method line 1004
+    // method line 942
     .method public hidebysig specialname 
-           instance default void set_Timeout (int32 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x13077
+        // Method begins at RVA 0xfdd7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.Tasks.GetTask::_timeout
+	IL_0003:  stfld bool NAnt.Core.Types.Argument::_ifDefined
 	IL_0008:  ret 
-    } // end of method GetTask::set_Timeout
+    } // end of method Argument::set_IfDefined
 
-    // method line 1005
+    // method line 943
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_Certificates ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x13084
+        // Method begins at RVA 0xfde4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.GetTask::_certificates
+	IL_0002:  ldfld bool NAnt.Core.Types.Argument::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method GetTask::get_Certificates
+    } // end of method Argument::get_UnlessDefined
 
-    // method line 1006
+    // method line 944
     .method public hidebysig specialname 
-           instance default void set_Certificates (class NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1309f
+        // Method begins at RVA 0xfdff
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.GetTask::_certificates
+	IL_0003:  stfld bool NAnt.Core.Types.Argument::_unlessDefined
 	IL_0008:  ret 
-    } // end of method GetTask::set_Certificates
+    } // end of method Argument::set_UnlessDefined
 
-    // method line 1007
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 945
+    .method assembly hidebysig specialname 
+           instance default string get_StringValue ()  cil managed 
     {
-        // Method begins at RVA 0x130ac
-	// Code size 116 (0x74)
-	.maxstack 2
+        // Method begins at RVA 0xfe0c
+	// Code size 127 (0x7f)
+	.maxstack 1
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_000c:  brfalse IL_004b
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.Argument::get_File()
+	IL_0007:  brfalse IL_001e
 
-	IL_0011:  ldarg.0 
-	IL_0012:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	IL_0017:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001c:  call valuetype [mscorlib]System.IO.FileAttributes class [mscorlib]System.IO.File::GetAttributes(string)
-	IL_0021:  ldc.i4.1 
-	IL_0022:  and 
-	IL_0023:  ldc.i4.1 
-	IL_0024:  bne.un IL_004b
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.Argument::get_File()
+	IL_0013:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_007d
+
+	IL_001e:  ldarg.0 
+	IL_001f:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.Argument::get_Directory()
+	IL_0024:  brfalse IL_003b
 
 	IL_0029:  nop 
-	IL_002a:  ldstr "Destination file '{0}' is read-only."
-	IL_002f:  ldarg.0 
-	IL_0030:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	IL_0035:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_003a:  call string string::Format(string, object)
-	IL_003f:  ldarg.0 
-	IL_0040:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0045:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_004a:  throw 
-	IL_004b:  ldarg.0 
-	IL_004c:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.GetTask::get_Proxy()
-	IL_0051:  brfalse IL_0073
+	IL_002a:  ldarg.0 
+	IL_002b:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.Argument::get_Directory()
+	IL_0030:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0035:  stloc.0 
+	IL_0036:  br IL_007d
 
-	IL_0056:  ldarg.0 
-	IL_0057:  call instance string class NAnt.Core.Tasks.GetTask::get_HttpProxy()
-	IL_005c:  brfalse IL_0073
+	IL_003b:  ldarg.0 
+	IL_003c:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.Argument::get_Path()
+	IL_0041:  brfalse IL_0058
 
-	IL_0061:  nop 
-	IL_0062:  ldstr "The <proxy> child element and the 'httpproxy' attribute are mutually exclusive."
-	IL_0067:  ldarg.0 
-	IL_0068:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_006d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0072:  throw 
-	IL_0073:  ret 
-    } // end of method GetTask::Initialize
+	IL_0046:  nop 
+	IL_0047:  ldarg.0 
+	IL_0048:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.Argument::get_Path()
+	IL_004d:  callvirt instance string object::ToString()
+	IL_0052:  stloc.0 
+	IL_0053:  br IL_007d
 
-    // method line 1008
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+	IL_0058:  ldarg.0 
+	IL_0059:  call instance string class NAnt.Core.Types.Argument::get_Line()
+	IL_005e:  brfalse IL_0070
+
+	IL_0063:  nop 
+	IL_0064:  ldarg.0 
+	IL_0065:  call instance string class NAnt.Core.Types.Argument::get_Line()
+	IL_006a:  stloc.0 
+	IL_006b:  br IL_007d
+
+	IL_0070:  nop 
+	IL_0071:  ldarg.0 
+	IL_0072:  call instance string class NAnt.Core.Types.Argument::get_Value()
+	IL_0077:  stloc.0 
+	IL_0078:  br IL_007d
+
+	IL_007d:  ldloc.0 
+	IL_007e:  ret 
+    } // end of method Argument::get_StringValue
+
+    // method line 946
+    .method private static hidebysig 
+           default string QuoteArgument (string argument)  cil managed 
     {
-        // Method begins at RVA 0x1312c
-	// Code size 989 (0x3dd)
-	.maxstack 8
+        // Method begins at RVA 0xfe98
+	// Code size 97 (0x61)
+	.maxstack 3
 	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0,
-		class [System]System.Net.WebRequest	V_1,
-		class [System]System.Net.WebResponse	V_2,
-		class [mscorlib]System.IO.Stream	V_3,
-		int32	V_4,
-		class [mscorlib]System.IO.IOException	V_5,
-		class [mscorlib]System.IO.BinaryWriter	V_6,
-		int32	V_7,
-		unsigned int8[]	V_8,
-		int32	V_9,
-		int32	V_10,
-		int32	V_11,
-		class [System]System.Net.HttpWebResponse	V_12,
-		valuetype [mscorlib]System.DateTime	V_13,
-		class [System]System.Net.WebException	V_14,
-		class [System]System.Net.HttpWebResponse	V_15,
-		valuetype [mscorlib]System.DateTime	V_16,
-		class [mscorlib]System.Exception	V_17)
+		string	V_0)
 	IL_0000:  nop 
-	.try { // 1
-	  IL_0001:  nop 
-	  IL_0002:  ldloca.s 0
-	  IL_0004:  initobj [mscorlib]System.DateTime
-	  IL_000a:  ldarg.0 
-	  IL_000b:  call instance bool class NAnt.Core.Tasks.GetTask::get_UseTimeStamp()
-	  IL_0010:  brfalse IL_0058
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "\""
+	IL_0007:  callvirt instance int32 string::IndexOf(string)
+	IL_000c:  ldc.i4.m1 
+	IL_000d:  ble IL_001a
 
-	  IL_0015:  ldarg.0 
-	  IL_0016:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	  IL_001b:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_0020:  brfalse IL_0058
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  stloc.0 
+	IL_0015:  br IL_005f
 
-	  IL_0025:  nop 
-	  IL_0026:  ldarg.0 
-	  IL_0027:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	  IL_002c:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	  IL_0031:  stloc.0 
-	  IL_0032:  ldarg.0 
-	  IL_0033:  ldc.i4 2000
-	  IL_0038:  ldstr "Local file time stamp is {0}."
-	  IL_003d:  ldc.i4.1 
-	  IL_003e:  newarr [mscorlib]System.Object
-	  IL_0043:  dup 
-	  IL_0044:  ldc.i4.0 
-	  IL_0045:  ldloca.s 0
-	  IL_0047:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_004c:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
-	  IL_0051:  stelem.ref 
-	  IL_0052:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0057:  nop 
-	  IL_0058:  ldarg.0 
-	  IL_0059:  ldarg.0 
-	  IL_005a:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
-	  IL_005f:  ldloc.0 
-	  IL_0060:  call instance class [System]System.Net.WebRequest class NAnt.Core.Tasks.GetTask::GetWebRequest(string, valuetype [mscorlib]System.DateTime)
-	  IL_0065:  stloc.1 
-	  IL_0066:  ldloc.1 
-	  IL_0067:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
-	  IL_006c:  stloc.2 
-	  IL_006d:  ldnull 
-	  IL_006e:  stloc.3 
-	  IL_006f:  ldc.i4.1 
-	  IL_0070:  stloc.s 4
-	  IL_0072:  nop 
-	  IL_0073:  nop 
-	  .try { // 0
-	    IL_0074:  nop 
-	    IL_0075:  ldloc.2 
-	    IL_0076:  callvirt instance class [mscorlib]System.IO.Stream class [System]System.Net.WebResponse::GetResponseStream()
-	    IL_007b:  stloc.3 
-	    IL_007c:  leave IL_0107
+	IL_001a:  ldarg.0 
+	IL_001b:  ldstr "'"
+	IL_0020:  callvirt instance int32 string::IndexOf(string)
+	IL_0025:  ldc.i4.m1 
+	IL_0026:  bgt IL_003c
 
-	  } // end .try 0
-	  catch class [mscorlib]System.IO.IOException { // 0
-	    IL_0081:  stloc.s 5
-	    IL_0083:  nop 
-	    IL_0084:  ldloc.s 4
-	    IL_0086:  ldc.i4.3 
-	    IL_0087:  ble IL_00be
+	IL_002b:  ldarg.0 
+	IL_002c:  ldstr " "
+	IL_0031:  callvirt instance int32 string::IndexOf(string)
+	IL_0036:  ldc.i4.m1 
+	IL_0037:  ble IL_0057
 
-	    IL_008c:  nop 
-	    IL_008d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0092:  ldstr "NA1125"
-	    IL_0097:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_009c:  ldarg.0 
-	    IL_009d:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
-	    IL_00a2:  ldarg.0 
-	    IL_00a3:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	    IL_00a8:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	    IL_00ad:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	    IL_00b2:  ldarg.0 
-	    IL_00b3:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	    IL_00b8:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	    IL_00bd:  throw 
-	    IL_00be:  nop 
-	    IL_00bf:  ldarg.0 
-	    IL_00c0:  ldc.i4 4000
-	    IL_00c5:  ldstr "Unable to open connection to '{0}' (try {1} of 3): "
-	    IL_00ca:  ldloc.s 5
-	    IL_00cc:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	    IL_00d1:  call string string::Concat(string, string)
-	    IL_00d6:  ldc.i4.2 
-	    IL_00d7:  newarr [mscorlib]System.Object
-	    IL_00dc:  dup 
-	    IL_00dd:  ldc.i4.0 
-	    IL_00de:  ldarg.0 
-	    IL_00df:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
-	    IL_00e4:  stelem.ref 
-	    IL_00e5:  dup 
-	    IL_00e6:  ldc.i4.1 
-	    IL_00e7:  ldloc.s 4
-	    IL_00e9:  box [mscorlib]System.Int32
-	    IL_00ee:  stelem.ref 
-	    IL_00ef:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	    IL_00f4:  nop 
-	    IL_00f5:  nop 
-	    IL_00f6:  leave IL_00fb
+	IL_003c:  nop 
+	IL_003d:  ldc.i4.s 0x22
+	IL_003f:  box [mscorlib]System.Char
+	IL_0044:  ldarg.0 
+	IL_0045:  ldc.i4.s 0x22
+	IL_0047:  box [mscorlib]System.Char
+	IL_004c:  call string string::Concat(object, object, object)
+	IL_0051:  stloc.0 
+	IL_0052:  br IL_005f
 
-	  } // end handler 0
-	  IL_00fb:  ldloc.s 4
-	  IL_00fd:  ldc.i4.1 
-	  IL_00fe:  add 
-	  IL_00ff:  stloc.s 4
-	  IL_0101:  nop 
-	  IL_0102:  br IL_0072
+	IL_0057:  nop 
+	IL_0058:  ldarg.0 
+	IL_0059:  stloc.0 
+	IL_005a:  br IL_005f
 
-	  IL_0107:  ldarg.0 
-	  IL_0108:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	  IL_010d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0112:  ldc.i4.2 
-	  IL_0113:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode)
-	  IL_0118:  newobj instance void class [mscorlib]System.IO.BinaryWriter::'.ctor'(class [mscorlib]System.IO.Stream)
-	  IL_011d:  stloc.s 6
-	  IL_011f:  ldarg.0 
-	  IL_0120:  ldc.i4 3000
-	  IL_0125:  ldstr "Retrieving '{0}' to '{1}'."
-	  IL_012a:  ldc.i4.2 
-	  IL_012b:  newarr [mscorlib]System.Object
-	  IL_0130:  dup 
-	  IL_0131:  ldc.i4.0 
-	  IL_0132:  ldarg.0 
-	  IL_0133:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
-	  IL_0138:  stelem.ref 
-	  IL_0139:  dup 
-	  IL_013a:  ldc.i4.1 
-	  IL_013b:  ldarg.0 
-	  IL_013c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	  IL_0141:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0146:  stelem.ref 
-	  IL_0147:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_014c:  ldc.i4 102400
-	  IL_0151:  stloc.s 7
-	  IL_0153:  ldloc.s 7
-	  IL_0155:  newarr [mscorlib]System.Byte
-	  IL_015a:  stloc.s 8
-	  IL_015c:  ldc.i4.0 
-	  IL_015d:  stloc.s 9
-	  IL_015f:  ldc.i4.0 
-	  IL_0160:  stloc.s 10
-	  IL_0162:  ldc.i4.0 
-	  IL_0163:  stloc.s 11
-	  IL_0165:  nop 
-	  IL_0166:  ldloc.3 
-	  IL_0167:  ldloc.s 8
-	  IL_0169:  ldc.i4.0 
-	  IL_016a:  ldloc.s 7
-	  IL_016c:  callvirt instance int32 class [mscorlib]System.IO.Stream::Read(unsigned int8[], int32, int32)
-	  IL_0171:  stloc.s 9
-	  IL_0173:  ldloc.s 9
-	  IL_0175:  brfalse IL_01ba
+	IL_005f:  ldloc.0 
+	IL_0060:  ret 
+    } // end of method Argument::QuoteArgument
 
-	  IL_017a:  nop 
-	  IL_017b:  ldloc.s 6
-	  IL_017d:  ldloc.s 8
-	  IL_017f:  ldc.i4.0 
-	  IL_0180:  ldloc.s 9
-	  IL_0182:  callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(unsigned int8[], int32, int32)
-	  IL_0187:  ldloc.s 10
-	  IL_0189:  ldloc.s 9
-	  IL_018b:  add 
-	  IL_018c:  stloc.s 10
-	  IL_018e:  ldloc.s 11
-	  IL_0190:  ldloc.s 9
-	  IL_0192:  add 
-	  IL_0193:  stloc.s 11
-	  IL_0195:  ldarg.0 
-	  IL_0196:  callvirt instance bool class NAnt.Core.Task::get_Verbose()
-	  IL_019b:  brfalse IL_01b9
+	.property instance string Value ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 76 61 6C 75 65 00 00 ) // ...value..
 
-	  IL_01a0:  ldloc.s 11
-	  IL_01a2:  ldloc.s 7
-	  IL_01a4:  ble IL_01b9
+		.get instance default string NAnt.Core.Types.Argument::get_Value () 
+		.set instance default void NAnt.Core.Types.Argument::set_Value (string 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo File ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
 
-	  IL_01a9:  nop 
-	  IL_01aa:  ldloc.s 11
-	  IL_01ac:  ldloc.s 10
-	  IL_01ae:  bne.un IL_01b5
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Types.Argument::get_File () 
+		.set instance default void NAnt.Core.Types.Argument::set_File (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo Directory ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 69 72 00 00 ) // ...dir..
 
-	  IL_01b3:  nop 
-	  IL_01b4:  nop 
-	  IL_01b5:  ldc.i4.0 
-	  IL_01b6:  stloc.s 11
-	  IL_01b8:  nop 
-	  IL_01b9:  nop 
-	  IL_01ba:  nop 
-	  IL_01bb:  ldloc.s 9
-	  IL_01bd:  brtrue IL_0165
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.Argument::get_Directory () 
+		.set instance default void NAnt.Core.Types.Argument::set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value') 
+	}
+	.property instance class NAnt.Core.Types.PathSet Path ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
 
-	  IL_01c2:  ldloc.s 10
-	  IL_01c4:  ldloc.s 7
-	  IL_01c6:  ble IL_01dd
+		.get instance default class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::get_Path () 
+		.set instance default void NAnt.Core.Types.Argument::set_Path (class NAnt.Core.Types.PathSet 'value') 
+	}
+	.property instance class NAnt.Core.Types.PathSet PathSet ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
 
-	  IL_01cb:  nop 
-	  IL_01cc:  ldarg.0 
-	  IL_01cd:  ldc.i4 2000
-	  IL_01d2:  ldstr ""
-	  IL_01d7:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	  IL_01dc:  nop 
-	  IL_01dd:  ldarg.0 
-	  IL_01de:  ldc.i4 2000
-	  IL_01e3:  ldstr "Number of bytes read: {0}."
-	  IL_01e8:  ldc.i4.1 
-	  IL_01e9:  newarr [mscorlib]System.Object
-	  IL_01ee:  dup 
-	  IL_01ef:  ldc.i4.0 
-	  IL_01f0:  ldloca.s 10
-	  IL_01f2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_01f7:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
-	  IL_01fc:  stelem.ref 
-	  IL_01fd:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0202:  ldloc.s 6
-	  IL_0204:  callvirt instance void class [mscorlib]System.IO.BinaryWriter::Close()
-	  IL_0209:  ldloc.3 
-	  IL_020a:  callvirt instance void class [mscorlib]System.IO.Stream::Close()
-	  IL_020f:  ldarg.0 
-	  IL_0210:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	  IL_0215:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Refresh()
-	  IL_021a:  ldarg.0 
-	  IL_021b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	  IL_0220:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_0225:  brtrue IL_025c
+		.get instance default class NAnt.Core.Types.PathSet NAnt.Core.Types.Argument::get_PathSet () 
+		.set instance default void NAnt.Core.Types.Argument::set_PathSet (class NAnt.Core.Types.PathSet 'value') 
+	}
+	.property instance string Line ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 6C 69 6E 65 00 00 ) // ...line..
 
-	  IL_022a:  nop 
-	  IL_022b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0230:  ldstr "NA1125"
-	  IL_0235:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_023a:  ldarg.0 
-	  IL_023b:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
-	  IL_0240:  ldarg.0 
-	  IL_0241:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	  IL_0246:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_024b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0250:  ldarg.0 
-	  IL_0251:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0256:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_025b:  throw 
-	  IL_025c:  ldarg.0 
-	  IL_025d:  call instance bool class NAnt.Core.Tasks.GetTask::get_UseTimeStamp()
-	  IL_0262:  brfalse IL_02c3
-
-	  IL_0267:  nop 
-	  IL_0268:  ldloc.1 
-	  IL_0269:  isinst [System]System.Net.HttpWebRequest
-	  IL_026e:  brfalse IL_02c2
-
-	  IL_0273:  nop 
-	  IL_0274:  ldloc.2 
-	  IL_0275:  castclass [System]System.Net.HttpWebResponse
-	  IL_027a:  stloc.s 12
-	  IL_027c:  ldloc.s 12
-	  IL_027e:  callvirt instance valuetype [mscorlib]System.DateTime class [System]System.Net.HttpWebResponse::get_LastModified()
-	  IL_0283:  stloc.s 13
-	  IL_0285:  ldarg.0 
-	  IL_0286:  ldc.i4 2000
-	  IL_028b:  ldstr "'{0}' last modified on {1}."
-	  IL_0290:  ldc.i4.2 
-	  IL_0291:  newarr [mscorlib]System.Object
-	  IL_0296:  dup 
-	  IL_0297:  ldc.i4.0 
-	  IL_0298:  ldarg.0 
-	  IL_0299:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
-	  IL_029e:  stelem.ref 
-	  IL_029f:  dup 
-	  IL_02a0:  ldc.i4.1 
-	  IL_02a1:  ldloca.s 13
-	  IL_02a3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_02a8:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
-	  IL_02ad:  stelem.ref 
-	  IL_02ae:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_02b3:  ldarg.0 
-	  IL_02b4:  ldarg.0 
-	  IL_02b5:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	  IL_02ba:  ldloc.s 13
-	  IL_02bc:  call instance void class NAnt.Core.Tasks.GetTask::TouchFile(class [mscorlib]System.IO.FileInfo, valuetype [mscorlib]System.DateTime)
-	  IL_02c1:  nop 
-	  IL_02c2:  nop 
-	  IL_02c3:  nop 
-	  IL_02c4:  leave IL_03dc
-
-	} // end .try 1
-	catch class NAnt.Core.BuildException { // 1
-	  IL_02c9:  pop 
-	  IL_02ca:  nop 
-	  IL_02cb:  rethrow 
-	} // end handler 1
-	catch class [System]System.Net.WebException { // 2
-	  IL_02cd:  stloc.s 14
-	  IL_02cf:  nop 
-	  IL_02d0:  ldloc.s 14
-	  IL_02d2:  callvirt instance valuetype [System]System.Net.WebExceptionStatus class [System]System.Net.WebException::get_Status()
-	  IL_02d7:  ldc.i4.7 
-	  IL_02d8:  bne.un IL_0372
-
-	  IL_02dd:  nop 
-	  IL_02de:  ldloc.s 14
-	  IL_02e0:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebException::get_Response()
-	  IL_02e5:  castclass [System]System.Net.HttpWebResponse
-	  IL_02ea:  stloc.s 15
-	  IL_02ec:  ldloc.s 15
-	  IL_02ee:  callvirt instance valuetype [System]System.Net.HttpStatusCode class [System]System.Net.HttpWebResponse::get_StatusCode()
-	  IL_02f3:  ldc.i4 304
-	  IL_02f8:  bne.un IL_033e
-
-	  IL_02fd:  nop 
-	  IL_02fe:  ldarg.0 
-	  IL_02ff:  ldc.i4 2000
-	  IL_0304:  ldstr "'{0}' not downloaded.  Not modified since {1}."
-	  IL_0309:  ldc.i4.2 
-	  IL_030a:  newarr [mscorlib]System.Object
-	  IL_030f:  dup 
-	  IL_0310:  ldc.i4.0 
-	  IL_0311:  ldarg.0 
-	  IL_0312:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
-	  IL_0317:  stelem.ref 
-	  IL_0318:  dup 
-	  IL_0319:  ldc.i4.1 
-	  IL_031a:  ldarg.0 
-	  IL_031b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	  IL_0320:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	  IL_0325:  stloc.s 16
-	  IL_0327:  ldloca.s 16
-	  IL_0329:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_032e:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
-	  IL_0333:  stelem.ref 
-	  IL_0334:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0339:  leave IL_03dc
-
-	  IL_033e:  nop 
-	  IL_033f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0344:  ldstr "NA1125"
-	  IL_0349:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_034e:  ldarg.0 
-	  IL_034f:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
-	  IL_0354:  ldarg.0 
-	  IL_0355:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	  IL_035a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_035f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0364:  ldarg.0 
-	  IL_0365:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_036a:  ldloc.s 14
-	  IL_036c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0371:  throw 
-	  IL_0372:  nop 
-	  IL_0373:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0378:  ldstr "NA1125"
-	  IL_037d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0382:  ldarg.0 
-	  IL_0383:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
-	  IL_0388:  ldarg.0 
-	  IL_0389:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	  IL_038e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0393:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0398:  ldarg.0 
-	  IL_0399:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_039e:  ldloc.s 14
-	  IL_03a0:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_03a5:  throw 
-	} // end handler 2
-	catch class [mscorlib]System.Exception { // 3
-	  IL_03a6:  stloc.s 17
-	  IL_03a8:  nop 
-	  IL_03a9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_03ae:  ldstr "NA1125"
-	  IL_03b3:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_03b8:  ldarg.0 
-	  IL_03b9:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
-	  IL_03be:  ldarg.0 
-	  IL_03bf:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
-	  IL_03c4:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_03c9:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_03ce:  ldarg.0 
-	  IL_03cf:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_03d4:  ldloc.s 17
-	  IL_03d6:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_03db:  throw 
-	} // end handler 3
-	IL_03dc:  ret 
-    } // end of method GetTask::ExecuteTask
-
-    // method line 1009
-    .method family hidebysig 
-           instance default void TouchFile (class [mscorlib]System.IO.FileInfo file, valuetype [mscorlib]System.DateTime touchDateTime)  cil managed 
-    {
-        // Method begins at RVA 0x1357c
-	// Code size 126 (0x7e)
-	.maxstack 8
-	.locals init (
-		class [mscorlib]System.Exception	V_0)
-	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_0008:  brfalse IL_0049
-
-	  IL_000d:  nop 
-	  IL_000e:  ldarg.0 
-	  IL_000f:  ldc.i4 2000
-	  IL_0014:  ldstr "Touching file {0} with {1}."
-	  IL_0019:  ldc.i4.2 
-	  IL_001a:  newarr [mscorlib]System.Object
-	  IL_001f:  dup 
-	  IL_0020:  ldc.i4.0 
-	  IL_0021:  ldarg.1 
-	  IL_0022:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0027:  stelem.ref 
-	  IL_0028:  dup 
-	  IL_0029:  ldc.i4.1 
-	  IL_002a:  ldarga.s 2
-	  IL_002c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0031:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
-	  IL_0036:  stelem.ref 
-	  IL_0037:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_003c:  ldarg.1 
-	  IL_003d:  ldarg.2 
-	  IL_003e:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::set_LastWriteTime(valuetype [mscorlib]System.DateTime)
-	  IL_0043:  nop 
-	  IL_0044:  br IL_0050
-
-	  IL_0049:  nop 
-	  IL_004a:  newobj instance void class [mscorlib]System.IO.FileNotFoundException::'.ctor'()
-	  IL_004f:  throw 
-	  IL_0050:  nop 
-	  IL_0051:  leave IL_007d
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0056:  stloc.0 
-	  IL_0057:  nop 
-	  IL_0058:  ldarg.0 
-	  IL_0059:  ldc.i4 2000
-	  IL_005e:  ldstr "Error: {0}."
-	  IL_0063:  ldc.i4.1 
-	  IL_0064:  newarr [mscorlib]System.Object
-	  IL_0069:  dup 
-	  IL_006a:  ldc.i4.0 
-	  IL_006b:  ldloc.0 
-	  IL_006c:  callvirt instance string object::ToString()
-	  IL_0071:  stelem.ref 
-	  IL_0072:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0077:  nop 
-	  IL_0078:  leave IL_007d
-
-	} // end handler 0
-	IL_007d:  ret 
-    } // end of method GetTask::TouchFile
-
-    // method line 1010
-    .method private hidebysig 
-           instance default class [System]System.Net.WebRequest GetWebRequest (string url, valuetype [mscorlib]System.DateTime fileLastModified)  cil managed 
-    {
-        // Method begins at RVA 0x13618
-	// Code size 364 (0x16c)
-	.maxstack 2
-	.locals init (
-		class [System]System.Net.WebRequest	V_0,
-		class [System]System.Uri	V_1,
-		class [System]System.Net.HttpWebRequest	V_2,
-		valuetype [mscorlib]System.DateTime	V_3,
-		valuetype [mscorlib]System.DateTime	V_4,
-		valuetype [mscorlib]System.DateTime	V_5,
-		string	V_6,
-		class [System]System.Collections.Specialized.StringEnumerator	V_7,
-		class [mscorlib]System.IDisposable	V_8,
-		class [System]System.Net.WebRequest	V_9)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	IL_0009:  stloc.1 
-	IL_000a:  ldloc.1 
-	IL_000b:  callvirt instance string class [System]System.Uri::get_Scheme()
-	IL_0010:  ldsfld string [System]System.Uri::UriSchemeHttp
-	IL_0015:  call bool string::op_Equality(string, string)
-	IL_001a:  brtrue IL_0034
-
-	IL_001f:  ldloc.1 
-	IL_0020:  callvirt instance string class [System]System.Uri::get_Scheme()
-	IL_0025:  ldsfld string [System]System.Uri::UriSchemeHttps
-	IL_002a:  call bool string::op_Equality(string, string)
-	IL_002f:  brfalse IL_00ed
-
-	IL_0034:  nop 
-	IL_0035:  ldloc.1 
-	IL_0036:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(class [System]System.Uri)
-	IL_003b:  castclass [System]System.Net.HttpWebRequest
-	IL_0040:  stloc.2 
-	IL_0041:  ldarga.s 2
-	IL_0043:  ldloca.s 3
-	IL_0045:  initobj [mscorlib]System.DateTime
-	IL_004b:  ldloc.3 
-	IL_004c:  call instance bool valuetype [mscorlib]System.DateTime::Equals(valuetype [mscorlib]System.DateTime)
-	IL_0051:  brtrue IL_007b
-
-	IL_0056:  nop 
-	IL_0057:  ldarga.s 2
-	IL_0059:  call instance valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::ToUniversalTime()
-	IL_005e:  stloc.s 5
-	IL_0060:  ldloca.s 5
-	IL_0062:  ldc.r8 1.
-	IL_006b:  call instance valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::AddSeconds(float64)
-	IL_0070:  stloc.s 4
-	IL_0072:  ldloc.2 
-	IL_0073:  ldloc.s 4
-	IL_0075:  callvirt instance void class [System]System.Net.HttpWebRequest::set_IfModifiedSince(valuetype [mscorlib]System.DateTime)
-	IL_007a:  nop 
-	IL_007b:  nop 
-	IL_007c:  ldarg.0 
-	IL_007d:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.GetTask::get_Certificates()
-	IL_0082:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0087:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_008c:  stloc.s 7
-	.try { // 0
-	  IL_008e:  br IL_00b1
-
-	  IL_0093:  ldloc.s 7
-	  IL_0095:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_009a:  stloc.s 6
-	  IL_009c:  nop 
-	  IL_009d:  ldloc.2 
-	  IL_009e:  callvirt instance class [System]System.Security.Cryptography.X509Certificates.X509CertificateCollection class [System]System.Net.HttpWebRequest::get_ClientCertificates()
-	  IL_00a3:  ldloc.s 6
-	  IL_00a5:  call class [mscorlib]System.Security.Cryptography.X509Certificates.X509Certificate class [mscorlib]System.Security.Cryptography.X509Certificates.X509Certificate::CreateFromCertFile(string)
-	  IL_00aa:  callvirt instance int32 class [System]System.Security.Cryptography.X509Certificates.X509CertificateCollection::Add(class [mscorlib]System.Security.Cryptography.X509Certificates.X509Certificate)
-	  IL_00af:  pop 
-	  IL_00b0:  nop 
-	  IL_00b1:  ldloc.s 7
-	  IL_00b3:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_00b8:  brtrue IL_0093
-
-	  IL_00bd:  leave IL_00d9
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00c2:  ldloc.s 7
-	  IL_00c4:  isinst [mscorlib]System.IDisposable
-	  IL_00c9:  dup 
-	  IL_00ca:  stloc.s 8
-	  IL_00cc:  brfalse IL_00d8
-
-	  IL_00d1:  ldloc.s 8
-	  IL_00d3:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00d8:  endfinally 
-	} // end handler 0
-	IL_00d9:  ldloc.2 
-	IL_00da:  ldarg.0 
-	IL_00db:  call instance int32 class NAnt.Core.Tasks.GetTask::get_Timeout()
-	IL_00e0:  callvirt instance void class [System]System.Net.HttpWebRequest::set_ReadWriteTimeout(int32)
-	IL_00e5:  ldloc.2 
-	IL_00e6:  stloc.0 
-	IL_00e7:  nop 
-	IL_00e8:  br IL_00f6
-
-	IL_00ed:  nop 
-	IL_00ee:  ldloc.1 
-	IL_00ef:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(class [System]System.Uri)
-	IL_00f4:  stloc.0 
-	IL_00f5:  nop 
-	IL_00f6:  ldloc.0 
-	IL_00f7:  ldarg.0 
-	IL_00f8:  call instance int32 class NAnt.Core.Tasks.GetTask::get_Timeout()
-	IL_00fd:  callvirt instance void class [System]System.Net.WebRequest::set_Timeout(int32)
-	IL_0102:  ldarg.0 
-	IL_0103:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.GetTask::get_Proxy()
-	IL_0108:  brfalse IL_0125
-
-	IL_010d:  nop 
-	IL_010e:  ldloc.0 
-	IL_010f:  ldarg.0 
-	IL_0110:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.GetTask::get_Proxy()
-	IL_0115:  callvirt instance class [System]System.Net.IWebProxy class NAnt.Core.Types.Proxy::GetWebProxy()
-	IL_011a:  callvirt instance void class [System]System.Net.WebRequest::set_Proxy(class [System]System.Net.IWebProxy)
-	IL_011f:  nop 
-	IL_0120:  br IL_0143
-
-	IL_0125:  ldarg.0 
-	IL_0126:  call instance string class NAnt.Core.Tasks.GetTask::get_HttpProxy()
-	IL_012b:  brfalse IL_0143
-
-	IL_0130:  nop 
-	IL_0131:  ldloc.0 
-	IL_0132:  ldarg.0 
-	IL_0133:  call instance string class NAnt.Core.Tasks.GetTask::get_HttpProxy()
-	IL_0138:  newobj instance void class [System]System.Net.WebProxy::'.ctor'(string)
-	IL_013d:  callvirt instance void class [System]System.Net.WebRequest::set_Proxy(class [System]System.Net.IWebProxy)
-	IL_0142:  nop 
-	IL_0143:  ldarg.0 
-	IL_0144:  call instance class NAnt.Core.Types.Credential class NAnt.Core.Tasks.GetTask::get_Credentials()
-	IL_0149:  brfalse IL_0161
-
-	IL_014e:  nop 
-	IL_014f:  ldloc.0 
-	IL_0150:  ldarg.0 
-	IL_0151:  call instance class NAnt.Core.Types.Credential class NAnt.Core.Tasks.GetTask::get_Credentials()
-	IL_0156:  callvirt instance class [System]System.Net.ICredentials class NAnt.Core.Types.Credential::GetCredential()
-	IL_015b:  callvirt instance void class [System]System.Net.WebRequest::set_Credentials(class [System]System.Net.ICredentials)
-	IL_0160:  nop 
-	IL_0161:  ldloc.0 
-	IL_0162:  stloc.s 9
-	IL_0164:  br IL_0169
-
-	IL_0169:  ldloc.s 9
-	IL_016b:  ret 
-    } // end of method GetTask::GetWebRequest
-
-	.property instance string Source ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 03 73 72 63 01 00 54 02 08 52 65 71 75 69   // ...src..T..Requi
-		72 65 64 01                                     ) // red.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.Core.Tasks.GetTask::get_Source () 
-		.set instance default void NAnt.Core.Tasks.GetTask::set_Source (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo DestinationFile ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 64 65 73 74 01 00 54 02 08 52 65 71 75   // ...dest..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.GetTask::get_DestinationFile () 
-		.set instance default void NAnt.Core.Tasks.GetTask::set_DestinationFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string HttpProxy ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 68 74 74 70 70 72 6F 78 79 00 00 ) // ...httpproxy..
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 26 55 73 65 20 74 68 65 20 3C 70 72 6F 78   // ..&Use the <prox
-		79 3E 20 63 68 69 6C 64 20 65 6C 65 6D 65 6E 74   // y> child element
-		20 69 6E 73 74 65 61 64 2E 00 00 00             ) //  instead....
-
-		.get instance default string NAnt.Core.Tasks.GetTask::get_HttpProxy () 
-		.set instance default void NAnt.Core.Tasks.GetTask::set_HttpProxy (string 'value') 
-	}
-	.property instance class NAnt.Core.Types.Proxy Proxy ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 05 70 72 6F 78 79 00 00 ) // ...proxy..
-
-		.get instance default class NAnt.Core.Types.Proxy NAnt.Core.Tasks.GetTask::get_Proxy () 
-		.set instance default void NAnt.Core.Tasks.GetTask::set_Proxy (class NAnt.Core.Types.Proxy 'value') 
-	}
-	.property instance class NAnt.Core.Types.Credential Credentials ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0B 63 72 65 64 65 6E 74 69 61 6C 73 00 00 ) // ...credentials..
-
-		.get instance default class NAnt.Core.Types.Credential NAnt.Core.Tasks.GetTask::get_Credentials () 
-		.set instance default void NAnt.Core.Tasks.GetTask::set_Credentials (class NAnt.Core.Types.Credential 'value') 
+		.get instance default string NAnt.Core.Types.Argument::get_Line () 
+		.set instance default void NAnt.Core.Types.Argument::set_Line (string 'value') 
 	}
-	.property instance bool IgnoreErrors ()
+	.property instance bool IfDefined ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 69 67 6E 6F 72 65 65 72 72 6F 72 73 00   // ...ignoreerrors.
-		00                                              ) // .
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
-		01 00 28 55 73 65 20 74 68 65 20 27 66 61 69 6C   // ..(Use the 'fail
-		6F 6E 65 72 72 6F 72 27 20 61 74 74 72 69 62 75   // onerror' attribu
-		74 65 20 69 6E 73 74 65 61 64 2E 00 00          ) // te instead...
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
 
 		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Core.Tasks.GetTask::get_IgnoreErrors () 
-		.set instance default void NAnt.Core.Tasks.GetTask::set_IgnoreErrors (bool 'value') 
+		.get instance default bool NAnt.Core.Types.Argument::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.Argument::set_IfDefined (bool 'value') 
 	}
-	.property instance bool UseTimeStamp ()
+	.property instance bool UnlessDefined ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 75 73 65 74 69 6D 65 73 74 61 6D 70 00   // ...usetimestamp.
-		00                                              ) // .
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
 
 		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Core.Tasks.GetTask::get_UseTimeStamp () 
-		.set instance default void NAnt.Core.Tasks.GetTask::set_UseTimeStamp (bool 'value') 
-	}
-	.property instance int32 Timeout ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 74 69 6D 65 6F 75 74 00 00 ) // ...timeout..
-
-		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default int32 NAnt.Core.Tasks.GetTask::get_Timeout () 
-		.set instance default void NAnt.Core.Tasks.GetTask::set_Timeout (int32 'value') 
+		.get instance default bool NAnt.Core.Types.Argument::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.Argument::set_UnlessDefined (bool 'value') 
 	}
-	.property instance class NAnt.Core.Types.FileSet Certificates ()
+	.property instance string StringValue ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0C 63 65 72 74 69 66 69 63 61 74 65 73 00   // ...certificates.
-		00                                              ) // .
-
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.GetTask::get_Certificates () 
-		.set instance default void NAnt.Core.Tasks.GetTask::set_Certificates (class NAnt.Core.Types.FileSet 'value') 
+		.get instance default string NAnt.Core.Types.Argument::get_StringValue () 
 	}
-  } // end of class NAnt.Core.Tasks.GetTask
-}
-
-.namespace NAnt.Core.Tasks
-{
-  .class public auto ansi beforefieldinit DescriptionTask
-  	extends NAnt.Core.Task
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (
-		01 00 0B 64 65 73 63 72 69 70 74 69 6F 6E 00 00 ) // ...description..
-
-
-    // method line 1011
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x137a0
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0006:  ret 
-    } // end of method DescriptionTask::.ctor
-
-    // method line 1012
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x137a8
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method DescriptionTask::ExecuteTask
-
-  } // end of class NAnt.Core.Tasks.DescriptionTask
+  } // end of class NAnt.Core.Types.Argument
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit UpToDateTask
-  	extends NAnt.Core.Task
+  .class public auto ansi beforefieldinit PatternSet
+  	extends NAnt.Core.DataTypeBase
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 08 75 70 74 6F 64 61 74 65 00 00 ) // ...uptodate..
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 0A 70 61 74 74 65 72 6E 73 65 74 00 00 ) // ...patternset..
 
-    .field  private  string _propertyName
-    .field  private  class NAnt.Core.Types.FileSet _sourceFiles
-    .field  private  class NAnt.Core.Types.FileSet _targetFiles
+    .field  private initonly  class NAnt.Core.Types.PatternCollection _include
+    .field  private initonly  class NAnt.Core.Types.PatternCollection _exclude
+    .field  private initonly  class NAnt.Core.Types.PatternCollection _includesFile
+    .field  private initonly  class NAnt.Core.Types.PatternCollection _excludesFile
 
-    // method line 1013
+    // method line 947
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x137ab
-	// Code size 7 (0x7)
+        // Method begins at RVA 0xff05
+	// Code size 52 (0x34)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0006:  ret 
-    } // end of method UpToDateTask::.ctor
+	IL_0001:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class NAnt.Core.Types.PatternCollection::'.ctor'()
+	IL_000d:  stfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_include
+	IL_0012:  ldarg.0 
+	IL_0013:  newobj instance void class NAnt.Core.Types.PatternCollection::'.ctor'()
+	IL_0018:  stfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_exclude
+	IL_001d:  ldarg.0 
+	IL_001e:  newobj instance void class NAnt.Core.Types.PatternCollection::'.ctor'()
+	IL_0023:  stfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_includesFile
+	IL_0028:  ldarg.0 
+	IL_0029:  newobj instance void class NAnt.Core.Types.PatternCollection::'.ctor'()
+	IL_002e:  stfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_excludesFile
+	IL_0033:  ret 
+    } // end of method PatternSet::.ctor
 
-    // method line 1014
+    // method line 948
     .method public hidebysig specialname 
-           instance default string get_PropertyName ()  cil managed 
+           instance default class NAnt.Core.Types.PatternCollection get_Include ()  cil managed 
     {
-        // Method begins at RVA 0x137b4
+        // Method begins at RVA 0xff3c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.PatternCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.UpToDateTask::_propertyName
+	IL_0002:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_include
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method UpToDateTask::get_PropertyName
-
-    // method line 1015
-    .method public hidebysig specialname 
-           instance default void set_PropertyName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x137cf
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.UpToDateTask::_propertyName
-	IL_000d:  ret 
-    } // end of method UpToDateTask::set_PropertyName
+    } // end of method PatternSet::get_Include
 
-    // method line 1016
+    // method line 949
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_SourceFiles ()  cil managed 
+           instance default class NAnt.Core.Types.PatternCollection get_IncludesFile ()  cil managed 
     {
-        // Method begins at RVA 0x137e0
+        // Method begins at RVA 0xff58
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		class NAnt.Core.Types.PatternCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_sourceFiles
+	IL_0002:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_includesFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method UpToDateTask::get_SourceFiles
+    } // end of method PatternSet::get_IncludesFile
 
-    // method line 1017
+    // method line 950
     .method public hidebysig specialname 
-           instance default void set_SourceFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default class NAnt.Core.Types.PatternCollection get_Exclude ()  cil managed 
     {
-        // Method begins at RVA 0x137fb
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0xff74
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.PatternCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_sourceFiles
-	IL_0008:  ret 
-    } // end of method UpToDateTask::set_SourceFiles
+	IL_0002:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_exclude
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 1018
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PatternSet::get_Exclude
+
+    // method line 951
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_TargetFiles ()  cil managed 
+           instance default class NAnt.Core.Types.PatternCollection get_ExcludesFile ()  cil managed 
     {
-        // Method begins at RVA 0x13808
+        // Method begins at RVA 0xff90
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		class NAnt.Core.Types.PatternCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_targetFiles
+	IL_0002:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_excludesFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method UpToDateTask::get_TargetFiles
+    } // end of method PatternSet::get_ExcludesFile
 
-    // method line 1019
-    .method public hidebysig specialname 
-           instance default void set_TargetFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    // method line 952
+    .method public hidebysig 
+           instance default void Append (class NAnt.Core.Types.PatternSet patternSet)  cil managed 
     {
-        // Method begins at RVA 0x13823
-	// Code size 9 (0x9)
-	.maxstack 8
+        .custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 0A 70 61 74 74 65 72 6E 73 65 74 00 00 ) // ...patternset..
+
+        // Method begins at RVA 0xffac
+	// Code size 134 (0x86)
+	.maxstack 3
+	.locals init (
+		string[]	V_0,
+		string	V_1,
+		string[]	V_2,
+		int32	V_3,
+		string[]	V_4,
+		string	V_5,
+		string[]	V_6,
+		int32	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance string[] class NAnt.Core.Types.PatternSet::GetIncludePatterns()
+	IL_0007:  stloc.0 
+	IL_0008:  nop 
+	IL_0009:  ldloc.0 
+	IL_000a:  stloc.2 
+	IL_000b:  ldc.i4.0 
+	IL_000c:  stloc.3 
+	IL_000d:  br IL_0034
+
+	IL_0012:  ldloc.2 
+	IL_0013:  ldloc.3 
+	IL_0014:  ldelem.ref 
+	IL_0015:  stloc.1 
+	IL_0016:  nop 
+	IL_0017:  ldarg.0 
+	IL_0018:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_include
+	IL_001d:  ldarg.0 
+	IL_001e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0023:  ldloc.1 
+	IL_0024:  newobj instance void class NAnt.Core.Types.Pattern::'.ctor'(class NAnt.Core.Project, string)
+	IL_0029:  callvirt instance int32 class NAnt.Core.Types.PatternCollection::Add(class NAnt.Core.Types.Pattern)
+	IL_002e:  pop 
+	IL_002f:  nop 
+	IL_0030:  ldloc.3 
+	IL_0031:  ldc.i4.1 
+	IL_0032:  add 
+	IL_0033:  stloc.3 
+	IL_0034:  ldloc.3 
+	IL_0035:  ldloc.2 
+	IL_0036:  ldlen 
+	IL_0037:  conv.i4 
+	IL_0038:  blt IL_0012
+
+	IL_003d:  ldarg.1 
+	IL_003e:  callvirt instance string[] class NAnt.Core.Types.PatternSet::GetExcludePatterns()
+	IL_0043:  stloc.s 4
+	IL_0045:  nop 
+	IL_0046:  ldloc.s 4
+	IL_0048:  stloc.s 6
+	IL_004a:  ldc.i4.0 
+	IL_004b:  stloc.s 7
+	IL_004d:  br IL_007a
+
+	IL_0052:  ldloc.s 6
+	IL_0054:  ldloc.s 7
+	IL_0056:  ldelem.ref 
+	IL_0057:  stloc.s 5
+	IL_0059:  nop 
+	IL_005a:  ldarg.0 
+	IL_005b:  ldfld class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::_exclude
+	IL_0060:  ldarg.0 
+	IL_0061:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0066:  ldloc.s 5
+	IL_0068:  newobj instance void class NAnt.Core.Types.Pattern::'.ctor'(class NAnt.Core.Project, string)
+	IL_006d:  callvirt instance int32 class NAnt.Core.Types.PatternCollection::Add(class NAnt.Core.Types.Pattern)
+	IL_0072:  pop 
+	IL_0073:  nop 
+	IL_0074:  ldloc.s 7
+	IL_0076:  ldc.i4.1 
+	IL_0077:  add 
+	IL_0078:  stloc.s 7
+	IL_007a:  ldloc.s 7
+	IL_007c:  ldloc.s 6
+	IL_007e:  ldlen 
+	IL_007f:  conv.i4 
+	IL_0080:  blt IL_0052
+
+	IL_0085:  ret 
+    } // end of method PatternSet::Append
+
+    // method line 953
+    .method public hidebysig 
+           instance default string[] GetIncludePatterns ()  cil managed 
+    {
+        // Method begins at RVA 0x10040
+	// Code size 301 (0x12d)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.Collections.ArrayList	V_0,
+		class NAnt.Core.Types.Pattern	V_1,
+		class NAnt.Core.Types.PatternEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		class NAnt.Core.Types.Pattern	V_4,
+		class NAnt.Core.Types.PatternEnumerator	V_5,
+		string	V_6,
+		class [mscorlib]System.IDisposable	V_7,
+		string[]	V_8)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_targetFiles
-	IL_0008:  ret 
-    } // end of method UpToDateTask::set_TargetFiles
+	IL_0002:  call instance class NAnt.Core.Types.PatternCollection class NAnt.Core.Types.PatternSet::get_Include()
+	IL_0007:  callvirt instance int32 class NAnt.Core.Types.PatternCollection::get_Count()
+	IL_000c:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
+	IL_0011:  stloc.0 
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance class NAnt.Core.Types.PatternCollection class NAnt.Core.Types.PatternSet::get_Include()
+	IL_0019:  callvirt instance class NAnt.Core.Types.PatternEnumerator class NAnt.Core.Types.PatternCollection::GetEnumerator()
+	IL_001e:  stloc.2 
+	.try { // 0
+	  IL_001f:  br IL_004b
 
-    // method line 1020
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+	  IL_0024:  ldloc.2 
+	  IL_0025:  callvirt instance class NAnt.Core.Types.Pattern class NAnt.Core.Types.PatternEnumerator::get_Current()
+	  IL_002a:  stloc.1 
+	  IL_002b:  nop 
+	  IL_002c:  ldloc.1 
+	  IL_002d:  callvirt instance bool class NAnt.Core.Types.Pattern::get_Enabled()
+	  IL_0032:  brtrue IL_003d
+
+	  IL_0037:  nop 
+	  IL_0038:  leave IL_004b
+
+	  IL_003d:  ldloc.0 
+	  IL_003e:  ldloc.1 
+	  IL_003f:  callvirt instance string class NAnt.Core.Types.Pattern::get_PatternName()
+	  IL_0044:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0049:  pop 
+	  IL_004a:  nop 
+	  IL_004b:  ldloc.2 
+	  IL_004c:  callvirt instance bool class NAnt.Core.Types.PatternEnumerator::MoveNext()
+	  IL_0051:  brtrue IL_0024
+
+	  IL_0056:  leave IL_006f
+
+	} // end .try 0
+	finally  { // 0
+	  IL_005b:  ldloc.2 
+	  IL_005c:  isinst [mscorlib]System.IDisposable
+	  IL_0061:  dup 
+	  IL_0062:  stloc.3 
+	  IL_0063:  brfalse IL_006e
+
+	  IL_0068:  ldloc.3 
+	  IL_0069:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_006e:  endfinally 
+	} // end handler 0
+	IL_006f:  nop 
+	IL_0070:  ldarg.0 
+	IL_0071:  call instance class NAnt.Core.Types.PatternCollection class NAnt.Core.Types.PatternSet::get_IncludesFile()
+	IL_0076:  callvirt instance class NAnt.Core.Types.PatternEnumerator class NAnt.Core.Types.PatternCollection::GetEnumerator()
+	IL_007b:  stloc.s 5
+	.try { // 1
+	  IL_007d:  br IL_00e6
+
+	  IL_0082:  ldloc.s 5
+	  IL_0084:  callvirt instance class NAnt.Core.Types.Pattern class NAnt.Core.Types.PatternEnumerator::get_Current()
+	  IL_0089:  stloc.s 4
+	  IL_008b:  nop 
+	  IL_008c:  ldloc.s 4
+	  IL_008e:  callvirt instance bool class NAnt.Core.Types.Pattern::get_Enabled()
+	  IL_0093:  brtrue IL_009e
+
+	  IL_0098:  nop 
+	  IL_0099:  leave IL_00e6
+
+	  IL_009e:  ldarg.0 
+	  IL_009f:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_00a4:  ldloc.s 4
+	  IL_00a6:  callvirt instance string class NAnt.Core.Types.Pattern::get_PatternName()
+	  IL_00ab:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	  IL_00b0:  stloc.s 6
+	  IL_00b2:  ldloc.s 6
+	  IL_00b4:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_00b9:  brtrue IL_00dc
+
+	  IL_00be:  nop 
+	  IL_00bf:  ldstr "Includesfile '"
+	  IL_00c4:  ldloc.s 6
+	  IL_00c6:  ldstr "' not found."
+	  IL_00cb:  call string string::Concat(string, string, string)
+	  IL_00d0:  ldarg.0 
+	  IL_00d1:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_00d6:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_00db:  throw 
+	  IL_00dc:  ldarg.0 
+	  IL_00dd:  ldloc.s 6
+	  IL_00df:  ldloc.0 
+	  IL_00e0:  call instance void class NAnt.Core.Types.PatternSet::ReadPatterns(string, class [mscorlib]System.Collections.ArrayList)
+	  IL_00e5:  nop 
+	  IL_00e6:  ldloc.s 5
+	  IL_00e8:  callvirt instance bool class NAnt.Core.Types.PatternEnumerator::MoveNext()
+	  IL_00ed:  brtrue IL_0082
+
+	  IL_00f2:  leave IL_010e
+
+	} // end .try 1
+	finally  { // 1
+	  IL_00f7:  ldloc.s 5
+	  IL_00f9:  isinst [mscorlib]System.IDisposable
+	  IL_00fe:  dup 
+	  IL_00ff:  stloc.s 7
+	  IL_0101:  brfalse IL_010d
+
+	  IL_0106:  ldloc.s 7
+	  IL_0108:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_010d:  endfinally 
+	} // end handler 1
+	IL_010e:  ldloc.0 
+	IL_010f:  ldtoken [mscorlib]System.String
+	IL_0114:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0119:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
+	IL_011e:  castclass string[]
+	IL_0123:  stloc.s 8
+	IL_0125:  br IL_012a
+
+	IL_012a:  ldloc.s 8
+	IL_012c:  ret 
+    } // end of method PatternSet::GetIncludePatterns
+
+    // method line 954
+    .method public hidebysig 
+           instance default string[] GetExcludePatterns ()  cil managed 
     {
-        // Method begins at RVA 0x13830
-	// Code size 169 (0xa9)
-	.maxstack 7
+        // Method begins at RVA 0x10198
+	// Code size 301 (0x12d)
+	.maxstack 3
 	.locals init (
-		bool	V_0,
-		class [mscorlib]System.IO.FileInfo	V_1,
-		string	V_2,
-		bool	V_3)
+		class [mscorlib]System.Collections.ArrayList	V_0,
+		class NAnt.Core.Types.Pattern	V_1,
+		class NAnt.Core.Types.PatternEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		class NAnt.Core.Types.Pattern	V_4,
+		class NAnt.Core.Types.PatternEnumerator	V_5,
+		string	V_6,
+		class [mscorlib]System.IDisposable	V_7,
+		string[]	V_8)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_targetFiles
-	IL_0009:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.FileSet::get_MostRecentLastWriteTimeFile()
-	IL_000e:  stloc.1 
-	IL_000f:  ldloc.1 
-	IL_0010:  brfalse IL_0020
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Types.PatternCollection class NAnt.Core.Types.PatternSet::get_Exclude()
+	IL_0007:  callvirt instance int32 class NAnt.Core.Types.PatternCollection::get_Count()
+	IL_000c:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
+	IL_0011:  stloc.0 
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance class NAnt.Core.Types.PatternCollection class NAnt.Core.Types.PatternSet::get_Exclude()
+	IL_0019:  callvirt instance class NAnt.Core.Types.PatternEnumerator class NAnt.Core.Types.PatternCollection::GetEnumerator()
+	IL_001e:  stloc.2 
+	.try { // 0
+	  IL_001f:  br IL_004b
 
-	IL_0015:  ldloc.1 
-	IL_0016:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_001b:  brtrue IL_0039
+	  IL_0024:  ldloc.2 
+	  IL_0025:  callvirt instance class NAnt.Core.Types.Pattern class NAnt.Core.Types.PatternEnumerator::get_Current()
+	  IL_002a:  stloc.1 
+	  IL_002b:  nop 
+	  IL_002c:  ldloc.1 
+	  IL_002d:  callvirt instance bool class NAnt.Core.Types.Pattern::get_Enabled()
+	  IL_0032:  brtrue IL_003d
 
-	IL_0020:  nop 
-	IL_0021:  ldc.i4.0 
-	IL_0022:  stloc.0 
-	IL_0023:  ldarg.0 
-	IL_0024:  ldc.i4 2000
-	IL_0029:  ldstr "Destination file(s) do(es) not exist."
-	IL_002e:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_0033:  nop 
-	IL_0034:  br IL_0087
+	  IL_0037:  nop 
+	  IL_0038:  leave IL_004b
 
-	IL_0039:  nop 
-	IL_003a:  ldarg.0 
-	IL_003b:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_sourceFiles
-	IL_0040:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0045:  ldloc.1 
-	IL_0046:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_004b:  call string class NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
-	IL_0050:  stloc.2 
-	IL_0051:  ldloc.2 
-	IL_0052:  ldnull 
-	IL_0053:  ceq 
-	IL_0055:  ldc.i4.0 
-	IL_0056:  ceq 
-	IL_0058:  stloc.3 
-	IL_0059:  ldloc.3 
-	IL_005a:  brfalse IL_0086
+	  IL_003d:  ldloc.0 
+	  IL_003e:  ldloc.1 
+	  IL_003f:  callvirt instance string class NAnt.Core.Types.Pattern::get_PatternName()
+	  IL_0044:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0049:  pop 
+	  IL_004a:  nop 
+	  IL_004b:  ldloc.2 
+	  IL_004c:  callvirt instance bool class NAnt.Core.Types.PatternEnumerator::MoveNext()
+	  IL_0051:  brtrue IL_0024
 
-	IL_005f:  nop 
-	IL_0060:  ldc.i4.0 
-	IL_0061:  stloc.0 
-	IL_0062:  ldarg.0 
-	IL_0063:  ldc.i4 2000
-	IL_0068:  ldstr "{0} is newer than {1}."
-	IL_006d:  ldc.i4.2 
-	IL_006e:  newarr [mscorlib]System.Object
-	IL_0073:  dup 
-	IL_0074:  ldc.i4.0 
-	IL_0075:  ldloc.2 
-	IL_0076:  stelem.ref 
-	IL_0077:  dup 
-	IL_0078:  ldc.i4.1 
-	IL_0079:  ldloc.1 
-	IL_007a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
-	IL_007f:  stelem.ref 
-	IL_0080:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0085:  nop 
-	IL_0086:  nop 
-	IL_0087:  ldarg.0 
-	IL_0088:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_008d:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0092:  ldarg.0 
-	IL_0093:  call instance string class NAnt.Core.Tasks.UpToDateTask::get_PropertyName()
-	IL_0098:  ldloc.0 
-	IL_0099:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_009e:  call string class [mscorlib]System.Convert::ToString(bool, class [mscorlib]System.IFormatProvider)
-	IL_00a3:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_00a8:  ret 
-    } // end of method UpToDateTask::ExecuteTask
+	  IL_0056:  leave IL_006f
 
-	.property instance string PropertyName ()
+	} // end .try 0
+	finally  { // 0
+	  IL_005b:  ldloc.2 
+	  IL_005c:  isinst [mscorlib]System.IDisposable
+	  IL_0061:  dup 
+	  IL_0062:  stloc.3 
+	  IL_0063:  brfalse IL_006e
+
+	  IL_0068:  ldloc.3 
+	  IL_0069:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_006e:  endfinally 
+	} // end handler 0
+	IL_006f:  nop 
+	IL_0070:  ldarg.0 
+	IL_0071:  call instance class NAnt.Core.Types.PatternCollection class NAnt.Core.Types.PatternSet::get_ExcludesFile()
+	IL_0076:  callvirt instance class NAnt.Core.Types.PatternEnumerator class NAnt.Core.Types.PatternCollection::GetEnumerator()
+	IL_007b:  stloc.s 5
+	.try { // 1
+	  IL_007d:  br IL_00e6
+
+	  IL_0082:  ldloc.s 5
+	  IL_0084:  callvirt instance class NAnt.Core.Types.Pattern class NAnt.Core.Types.PatternEnumerator::get_Current()
+	  IL_0089:  stloc.s 4
+	  IL_008b:  nop 
+	  IL_008c:  ldloc.s 4
+	  IL_008e:  callvirt instance bool class NAnt.Core.Types.Pattern::get_Enabled()
+	  IL_0093:  brtrue IL_009e
+
+	  IL_0098:  nop 
+	  IL_0099:  leave IL_00e6
+
+	  IL_009e:  ldarg.0 
+	  IL_009f:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_00a4:  ldloc.s 4
+	  IL_00a6:  callvirt instance string class NAnt.Core.Types.Pattern::get_PatternName()
+	  IL_00ab:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	  IL_00b0:  stloc.s 6
+	  IL_00b2:  ldloc.s 6
+	  IL_00b4:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_00b9:  brtrue IL_00dc
+
+	  IL_00be:  nop 
+	  IL_00bf:  ldstr "Excludesfile '"
+	  IL_00c4:  ldloc.s 6
+	  IL_00c6:  ldstr "' not found."
+	  IL_00cb:  call string string::Concat(string, string, string)
+	  IL_00d0:  ldarg.0 
+	  IL_00d1:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_00d6:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_00db:  throw 
+	  IL_00dc:  ldarg.0 
+	  IL_00dd:  ldloc.s 6
+	  IL_00df:  ldloc.0 
+	  IL_00e0:  call instance void class NAnt.Core.Types.PatternSet::ReadPatterns(string, class [mscorlib]System.Collections.ArrayList)
+	  IL_00e5:  nop 
+	  IL_00e6:  ldloc.s 5
+	  IL_00e8:  callvirt instance bool class NAnt.Core.Types.PatternEnumerator::MoveNext()
+	  IL_00ed:  brtrue IL_0082
+
+	  IL_00f2:  leave IL_010e
+
+	} // end .try 1
+	finally  { // 1
+	  IL_00f7:  ldloc.s 5
+	  IL_00f9:  isinst [mscorlib]System.IDisposable
+	  IL_00fe:  dup 
+	  IL_00ff:  stloc.s 7
+	  IL_0101:  brfalse IL_010d
+
+	  IL_0106:  ldloc.s 7
+	  IL_0108:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_010d:  endfinally 
+	} // end handler 1
+	IL_010e:  ldloc.0 
+	IL_010f:  ldtoken [mscorlib]System.String
+	IL_0114:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0119:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
+	IL_011e:  castclass string[]
+	IL_0123:  stloc.s 8
+	IL_0125:  br IL_012a
+
+	IL_012a:  ldloc.s 8
+	IL_012c:  ret 
+    } // end of method PatternSet::GetExcludePatterns
+
+    // method line 955
+    .method private hidebysig 
+           instance default void ReadPatterns (string fileName, class [mscorlib]System.Collections.ArrayList patterns)  cil managed 
+    {
+        // Method begins at RVA 0x102f0
+	// Code size 104 (0x68)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.IO.StreamReader	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
+	IL_0007:  ldc.i4.1 
+	IL_0008:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
+	IL_000d:  stloc.0 
+	.try { // 0
+	  IL_000e:  nop 
+	  IL_000f:  ldloc.0 
+	  IL_0010:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	  IL_0015:  stloc.1 
+	  IL_0016:  br IL_004e
+
+	  IL_001b:  nop 
+	  IL_001c:  ldloc.1 
+	  IL_001d:  callvirt instance string string::Trim()
+	  IL_0022:  stloc.1 
+	  IL_0023:  ldloc.1 
+	  IL_0024:  callvirt instance int32 string::get_Length()
+	  IL_0029:  brfalse IL_0046
+
+	  IL_002e:  ldloc.1 
+	  IL_002f:  ldc.i4.0 
+	  IL_0030:  callvirt instance char string::get_Chars(int32)
+	  IL_0035:  ldc.i4.s 0x23
+	  IL_0037:  beq IL_0046
+
+	  IL_003c:  nop 
+	  IL_003d:  ldarg.2 
+	  IL_003e:  ldloc.1 
+	  IL_003f:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0044:  pop 
+	  IL_0045:  nop 
+	  IL_0046:  ldloc.0 
+	  IL_0047:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	  IL_004c:  stloc.1 
+	  IL_004d:  nop 
+	  IL_004e:  ldloc.1 
+	  IL_004f:  brtrue IL_001b
+
+	  IL_0054:  nop 
+	  IL_0055:  leave IL_0067
+
+	} // end .try 0
+	finally  { // 0
+	  IL_005a:  ldloc.0 
+	  IL_005b:  brfalse IL_0066
+
+	  IL_0060:  ldloc.0 
+	  IL_0061:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0066:  endfinally 
+	} // end handler 0
+	IL_0067:  ret 
+    } // end of method PatternSet::ReadPatterns
+
+	.property instance class NAnt.Core.Types.PatternCollection Include ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
-		52 65 71 75 69 72 65 64 01                      ) // Required.
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 69 6E 63 6C 75 64 65 00 00 ) // ...include..
 
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+		.get instance default class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::get_Include () 
+	}
+	.property instance class NAnt.Core.Types.PatternCollection IncludesFile ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (
+		01 00 0C 69 6E 63 6C 75 64 65 73 66 69 6C 65 00   // ...includesfile.
+		00                                              ) // .
 
-		.get instance default string NAnt.Core.Tasks.UpToDateTask::get_PropertyName () 
-		.set instance default void NAnt.Core.Tasks.UpToDateTask::set_PropertyName (string 'value') 
+		.get instance default class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::get_IncludesFile () 
 	}
-	.property instance class NAnt.Core.Types.FileSet SourceFiles ()
+	.property instance class NAnt.Core.Types.PatternCollection Exclude ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0B 73 6F 75 72 63 65 66 69 6C 65 73 00 00 ) // ...sourcefiles..
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 65 78 63 6C 75 64 65 00 00 ) // ...exclude..
 
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::get_SourceFiles () 
-		.set instance default void NAnt.Core.Tasks.UpToDateTask::set_SourceFiles (class NAnt.Core.Types.FileSet 'value') 
+		.get instance default class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::get_Exclude () 
 	}
-	.property instance class NAnt.Core.Types.FileSet TargetFiles ()
+	.property instance class NAnt.Core.Types.PatternCollection ExcludesFile ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0B 74 61 72 67 65 74 66 69 6C 65 73 00 00 ) // ...targetfiles..
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (
+		01 00 0C 65 78 63 6C 75 64 65 73 66 69 6C 65 00   // ...excludesfile.
+		00                                              ) // .
 
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::get_TargetFiles () 
-		.set instance default void NAnt.Core.Tasks.UpToDateTask::set_TargetFiles (class NAnt.Core.Types.FileSet 'value') 
+		.get instance default class NAnt.Core.Types.PatternCollection NAnt.Core.Types.PatternSet::get_ExcludesFile () 
 	}
-  } // end of class NAnt.Core.Tasks.UpToDateTask
+  } // end of class NAnt.Core.Types.PatternSet
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit AttribTask
-  	extends NAnt.Core.Task
+  .class public auto ansi serializable beforefieldinit PathElement
+  	extends NAnt.Core.Element
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 61 74 74 72 69 62 00 00 ) // ...attrib..
+    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
+		01 00 0B 70 61 74 68 65 6C 65 6D 65 6E 74 00 00 ) // ...pathelement..
 
     .field  private  class [mscorlib]System.IO.FileInfo _file
-    .field  private  class NAnt.Core.Types.FileSet _fileset
-    .field  private  bool _archiveAttrib
-    .field  private  bool _hiddenAttrib
-    .field  private  bool _normalAttrib
-    .field  private  bool _readOnlyAttrib
-    .field  private  bool _systemAttrib
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _directory
+    .field  private  class NAnt.Core.Types.PathSet _path
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 1021
+    // method line 956
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x138e5
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x10374
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.AttribTask::_fileset
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0011:  ret 
-    } // end of method AttribTask::.ctor
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Types.PathElement::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_000d:  ret 
+    } // end of method PathElement::.ctor
 
-    // method line 1022
+    // method line 957
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0x138f8
+        // Method begins at RVA 0x10384
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.AttribTask::_file
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.PathElement::_file
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AttribTask::get_File
+    } // end of method PathElement::get_File
 
-    // method line 1023
+    // method line 958
     .method public hidebysig specialname 
            instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x13913
+        // Method begins at RVA 0x1039f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.AttribTask::_file
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Types.PathElement::_file
 	IL_0008:  ret 
-    } // end of method AttribTask::set_File
+    } // end of method PathElement::set_File
 
-    // method line 1024
+    // method line 959
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_AttribFileSet ()  cil managed 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
     {
-        // Method begins at RVA 0x13920
+        // Method begins at RVA 0x103ac
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.AttribTask::_fileset
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.PathElement::_directory
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AttribTask::get_AttribFileSet
+    } // end of method PathElement::get_Directory
 
-    // method line 1025
+    // method line 960
     .method public hidebysig specialname 
-           instance default void set_AttribFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x1393b
+        // Method begins at RVA 0x103c7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.AttribTask::_fileset
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.PathElement::_directory
 	IL_0008:  ret 
-    } // end of method AttribTask::set_AttribFileSet
+    } // end of method PathElement::set_Directory
 
-    // method line 1026
+    // method line 961
     .method public hidebysig specialname 
-           instance default bool get_ArchiveAttrib ()  cil managed 
+           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
     {
-        // Method begins at RVA 0x13948
+        // Method begins at RVA 0x103d4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Types.PathSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.AttribTask::_archiveAttrib
+	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Types.PathElement::_path
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AttribTask::get_ArchiveAttrib
+    } // end of method PathElement::get_Path
 
-    // method line 1027
+    // method line 962
     .method public hidebysig specialname 
-           instance default void set_ArchiveAttrib (bool 'value')  cil managed 
+           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x13963
+        // Method begins at RVA 0x103ef
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.AttribTask::_archiveAttrib
+	IL_0003:  stfld class NAnt.Core.Types.PathSet NAnt.Core.Types.PathElement::_path
 	IL_0008:  ret 
-    } // end of method AttribTask::set_ArchiveAttrib
+    } // end of method PathElement::set_Path
 
-    // method line 1028
+    // method line 963
     .method public hidebysig specialname 
-           instance default bool get_HiddenAttrib ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x13970
+        // Method begins at RVA 0x103fc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.AttribTask::_hiddenAttrib
+	IL_0002:  ldfld bool NAnt.Core.Types.PathElement::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AttribTask::get_HiddenAttrib
+    } // end of method PathElement::get_IfDefined
 
-    // method line 1029
+    // method line 964
     .method public hidebysig specialname 
-           instance default void set_HiddenAttrib (bool 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1398b
+        // Method begins at RVA 0x10417
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.AttribTask::_hiddenAttrib
+	IL_0003:  stfld bool NAnt.Core.Types.PathElement::_ifDefined
 	IL_0008:  ret 
-    } // end of method AttribTask::set_HiddenAttrib
+    } // end of method PathElement::set_IfDefined
 
-    // method line 1030
+    // method line 965
     .method public hidebysig specialname 
-           instance default bool get_NormalAttrib ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x13998
+        // Method begins at RVA 0x10424
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.AttribTask::_normalAttrib
+	IL_0002:  ldfld bool NAnt.Core.Types.PathElement::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AttribTask::get_NormalAttrib
+    } // end of method PathElement::get_UnlessDefined
 
-    // method line 1031
+    // method line 966
     .method public hidebysig specialname 
-           instance default void set_NormalAttrib (bool 'value')  cil managed 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x139b3
+        // Method begins at RVA 0x1043f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.AttribTask::_normalAttrib
+	IL_0003:  stfld bool NAnt.Core.Types.PathElement::_unlessDefined
 	IL_0008:  ret 
-    } // end of method AttribTask::set_NormalAttrib
+    } // end of method PathElement::set_UnlessDefined
 
-    // method line 1032
+    // method line 967
     .method public hidebysig specialname 
-           instance default bool get_ReadOnlyAttrib ()  cil managed 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Parts ()  cil managed 
     {
-        // Method begins at RVA 0x139c0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1044c
+	// Code size 129 (0x81)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		class [System]System.Collections.Specialized.StringCollection	V_1,
+		class [System]System.Collections.Specialized.StringCollection	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.AttribTask::_readOnlyAttrib
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.PathElement::get_File()
+	IL_0007:  brfalse IL_002c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AttribTask::get_ReadOnlyAttrib
+	IL_000c:  nop 
+	IL_000d:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0012:  stloc.0 
+	IL_0013:  ldloc.0 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.PathElement::get_File()
+	IL_001a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0024:  pop 
+	IL_0025:  ldloc.0 
+	IL_0026:  stloc.1 
+	IL_0027:  br IL_007f
 
-    // method line 1033
-    .method public hidebysig specialname 
-           instance default void set_ReadOnlyAttrib (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x139db
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.AttribTask::_readOnlyAttrib
-	IL_0008:  ret 
-    } // end of method AttribTask::set_ReadOnlyAttrib
+	IL_002c:  ldarg.0 
+	IL_002d:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.PathElement::get_Directory()
+	IL_0032:  brfalse IL_0057
 
-    // method line 1034
-    .method public hidebysig specialname 
-           instance default bool get_SystemAttrib ()  cil managed 
-    {
-        // Method begins at RVA 0x139e8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.AttribTask::_systemAttrib
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0037:  nop 
+	IL_0038:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_003d:  stloc.2 
+	IL_003e:  ldloc.2 
+	IL_003f:  ldarg.0 
+	IL_0040:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.PathElement::get_Directory()
+	IL_0045:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_004a:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_004f:  pop 
+	IL_0050:  ldloc.2 
+	IL_0051:  stloc.1 
+	IL_0052:  br IL_007f
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AttribTask::get_SystemAttrib
+	IL_0057:  ldarg.0 
+	IL_0058:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.PathElement::get_Path()
+	IL_005d:  brfalse IL_0074
 
-    // method line 1035
-    .method public hidebysig specialname 
-           instance default void set_SystemAttrib (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x13a03
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.AttribTask::_systemAttrib
-	IL_0008:  ret 
-    } // end of method AttribTask::set_SystemAttrib
+	IL_0062:  nop 
+	IL_0063:  ldarg.0 
+	IL_0064:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.PathElement::get_Path()
+	IL_0069:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.PathSet::GetElements()
+	IL_006e:  stloc.1 
+	IL_006f:  br IL_007f
 
-    // method line 1036
+	IL_0074:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0079:  stloc.1 
+	IL_007a:  br IL_007f
+
+	IL_007f:  ldloc.1 
+	IL_0080:  ret 
+    } // end of method PathElement::get_Parts
+
+    // method line 968
     .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x13a10
-	// Code size 506 (0x1fa)
-	.maxstack 8
-	.locals init (
-		valuetype [mscorlib]System.IO.FileAttributes	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		valuetype [mscorlib]System.IO.FileAttributes	V_4,
-		string	V_5,
-		class [System]System.Collections.Specialized.StringEnumerator	V_6,
-		class [mscorlib]System.IDisposable	V_7)
+        // Method begins at RVA 0x104dc
+	// Code size 134 (0x86)
+	.maxstack 3
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_000c:  brtrue IL_002e
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.PathElement::get_File()
+	IL_0007:  brtrue IL_0043
 
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	IL_0018:  ldarg.0 
-	IL_0019:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_001e:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_0023:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0028:  callvirt instance void class NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_002d:  nop 
-	IL_002e:  ldarg.0 
-	IL_002f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.AttribTask::get_File()
-	IL_0034:  brfalse IL_0057
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.PathElement::get_Directory()
+	IL_0012:  brtrue IL_0043
 
-	IL_0039:  nop 
-	IL_003a:  ldarg.0 
-	IL_003b:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	IL_0040:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
-	IL_0045:  ldarg.0 
-	IL_0046:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.AttribTask::get_File()
-	IL_004b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0050:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0055:  pop 
-	IL_0056:  nop 
-	IL_0057:  ldarg.0 
-	IL_0058:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	IL_005d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0062:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0067:  ldc.i4.0 
-	IL_0068:  ble IL_0105
+	IL_0017:  ldarg.0 
+	IL_0018:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.PathElement::get_Path()
+	IL_001d:  brtrue IL_0043
 
-	IL_006d:  nop 
-	IL_006e:  ldarg.0 
-	IL_006f:  call instance valuetype [mscorlib]System.IO.FileAttributes class NAnt.Core.Tasks.AttribTask::GetFileAttributes()
-	IL_0074:  stloc.0 
-	IL_0075:  ldarg.0 
-	IL_0076:  ldc.i4 3000
-	IL_007b:  ldstr "Setting file attributes for {0} files to {1}."
-	IL_0080:  ldc.i4.2 
-	IL_0081:  newarr [mscorlib]System.Object
-	IL_0086:  dup 
-	IL_0087:  ldc.i4.0 
-	IL_0088:  ldarg.0 
-	IL_0089:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	IL_008e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0093:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0098:  box [mscorlib]System.Int32
-	IL_009d:  stelem.ref 
-	IL_009e:  dup 
-	IL_009f:  ldc.i4.1 
-	IL_00a0:  ldloca.s 0
-	IL_00a2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00a7:  constrained. [mscorlib]System.IO.FileAttributes
-	IL_00ad:  callvirt instance string class [mscorlib]System.Enum::ToString(class [mscorlib]System.IFormatProvider)
-	IL_00b2:  stelem.ref 
-	IL_00b3:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_00b8:  nop 
-	IL_00b9:  ldarg.0 
-	IL_00ba:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	IL_00bf:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_00c4:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_00c9:  stloc.2 
-	.try { // 0
-	  IL_00ca:  br IL_00e0
+	IL_0022:  nop 
+	IL_0023:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InstalledUICulture()
+	IL_0028:  ldstr "At least \"file\", \"directory\" or \"path\" must be specified."
+	IL_002d:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_0032:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0037:  ldarg.0 
+	IL_0038:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_003d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0042:  throw 
+	IL_0043:  ldarg.0 
+	IL_0044:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.PathElement::get_File()
+	IL_0049:  brtrue IL_0085
 
-	  IL_00cf:  ldloc.2 
-	  IL_00d0:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_00d5:  stloc.1 
-	  IL_00d6:  nop 
-	  IL_00d7:  ldarg.0 
-	  IL_00d8:  ldloc.1 
-	  IL_00d9:  ldloc.0 
-	  IL_00da:  call instance void class NAnt.Core.Tasks.AttribTask::SetFileAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
-	  IL_00df:  nop 
-	  IL_00e0:  ldloc.2 
-	  IL_00e1:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_00e6:  brtrue IL_00cf
+	IL_004e:  ldarg.0 
+	IL_004f:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.PathElement::get_Directory()
+	IL_0054:  brtrue IL_0085
 
-	  IL_00eb:  leave IL_0104
+	IL_0059:  ldarg.0 
+	IL_005a:  call instance class NAnt.Core.Types.PathSet class NAnt.Core.Types.PathElement::get_Path()
+	IL_005f:  brtrue IL_0085
 
-	} // end .try 0
-	finally  { // 0
-	  IL_00f0:  ldloc.2 
-	  IL_00f1:  isinst [mscorlib]System.IDisposable
-	  IL_00f6:  dup 
-	  IL_00f7:  stloc.3 
-	  IL_00f8:  brfalse IL_0103
+	IL_0064:  nop 
+	IL_0065:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InstalledUICulture()
+	IL_006a:  ldstr "\"file\", \"directory\" and \"path\" cannot be specified together."
+	IL_006f:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_0074:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0079:  ldarg.0 
+	IL_007a:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_007f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0084:  throw 
+	IL_0085:  ret 
+    } // end of method PathElement::Initialize
 
-	  IL_00fd:  ldloc.3 
-	  IL_00fe:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0103:  endfinally 
-	} // end handler 0
-	IL_0104:  nop 
-	IL_0105:  ldarg.0 
-	IL_0106:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	IL_010b:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
-	IL_0110:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0115:  ldc.i4.0 
-	IL_0116:  ble IL_01bd
+	.property instance class [mscorlib]System.IO.FileInfo File ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
 
-	IL_011b:  nop 
-	IL_011c:  ldarg.0 
-	IL_011d:  call instance valuetype [mscorlib]System.IO.FileAttributes class NAnt.Core.Tasks.AttribTask::GetDirectoryAttributes()
-	IL_0122:  stloc.s 4
-	IL_0124:  ldarg.0 
-	IL_0125:  ldc.i4 3000
-	IL_012a:  ldstr "Setting attributes for {0} directories to {1}."
-	IL_012f:  ldc.i4.2 
-	IL_0130:  newarr [mscorlib]System.Object
-	IL_0135:  dup 
-	IL_0136:  ldc.i4.0 
-	IL_0137:  ldarg.0 
-	IL_0138:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	IL_013d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
-	IL_0142:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0147:  box [mscorlib]System.Int32
-	IL_014c:  stelem.ref 
-	IL_014d:  dup 
-	IL_014e:  ldc.i4.1 
-	IL_014f:  ldloca.s 4
-	IL_0151:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0156:  constrained. [mscorlib]System.IO.FileAttributes
-	IL_015c:  callvirt instance string class [mscorlib]System.Enum::ToString(class [mscorlib]System.IFormatProvider)
-	IL_0161:  stelem.ref 
-	IL_0162:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0167:  nop 
-	IL_0168:  ldarg.0 
-	IL_0169:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	IL_016e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
-	IL_0173:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0178:  stloc.s 6
-	.try { // 1
-	  IL_017a:  br IL_0194
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Types.PathElement::get_File () 
+		.set instance default void NAnt.Core.Types.PathElement::set_File (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo Directory ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 69 72 00 00 ) // ...dir..
 
-	  IL_017f:  ldloc.s 6
-	  IL_0181:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0186:  stloc.s 5
-	  IL_0188:  nop 
-	  IL_0189:  ldarg.0 
-	  IL_018a:  ldloc.s 5
-	  IL_018c:  ldloc.s 4
-	  IL_018e:  call instance void class NAnt.Core.Tasks.AttribTask::SetDirectoryAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
-	  IL_0193:  nop 
-	  IL_0194:  ldloc.s 6
-	  IL_0196:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_019b:  brtrue IL_017f
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Types.PathElement::get_Directory () 
+		.set instance default void NAnt.Core.Types.PathElement::set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value') 
+	}
+	.property instance class NAnt.Core.Types.PathSet Path ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
 
-	  IL_01a0:  leave IL_01bc
+		.get instance default class NAnt.Core.Types.PathSet NAnt.Core.Types.PathElement::get_Path () 
+		.set instance default void NAnt.Core.Types.PathElement::set_Path (class NAnt.Core.Types.PathSet 'value') 
+	}
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
 
-	} // end .try 1
-	finally  { // 1
-	  IL_01a5:  ldloc.s 6
-	  IL_01a7:  isinst [mscorlib]System.IDisposable
-	  IL_01ac:  dup 
-	  IL_01ad:  stloc.s 7
-	  IL_01af:  brfalse IL_01bb
+		.get instance default bool NAnt.Core.Types.PathElement::get_IfDefined () 
+		.set instance default void NAnt.Core.Types.PathElement::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
 
-	  IL_01b4:  ldloc.s 7
-	  IL_01b6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01bb:  endfinally 
-	} // end handler 1
-	IL_01bc:  nop 
-	IL_01bd:  ldarg.0 
-	IL_01be:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	IL_01c3:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_01c8:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_01cd:  brtrue IL_01f9
+		.get instance default bool NAnt.Core.Types.PathElement::get_UnlessDefined () 
+		.set instance default void NAnt.Core.Types.PathElement::set_UnlessDefined (bool 'value') 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection Parts ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Types.PathElement::get_Parts () 
+	}
+  } // end of class NAnt.Core.Types.PathElement
+}
 
-	IL_01d2:  ldarg.0 
-	IL_01d3:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	IL_01d8:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
-	IL_01dd:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_01e2:  brtrue IL_01f9
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi serializable beforefieldinit XmlNamespaceCollection
+  	extends [mscorlib]System.Collections.CollectionBase
+  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-	IL_01e7:  nop 
-	IL_01e8:  ldarg.0 
-	IL_01e9:  ldc.i4 2000
-	IL_01ee:  ldstr "No matching files or directories found."
-	IL_01f3:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_01f8:  nop 
-	IL_01f9:  ret 
-    } // end of method AttribTask::ExecuteTask
 
-    // method line 1037
-    .method private hidebysig 
-           instance default valuetype [mscorlib]System.IO.FileAttributes GetFileAttributes ()  cil managed 
+    // method line 969
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x13c34
-	// Code size 141 (0x8d)
-	.maxstack 2
-	.locals init (
-		valuetype [mscorlib]System.IO.FileAttributes	V_0,
-		valuetype [mscorlib]System.IO.FileAttributes	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  call instance bool class NAnt.Core.Tasks.AttribTask::get_NormalAttrib()
-	IL_0009:  brfalse IL_001b
-
-	IL_000e:  nop 
-	IL_000f:  ldc.i4 128
-	IL_0014:  stloc.0 
-	IL_0015:  nop 
-	IL_0016:  br IL_0062
-
-	IL_001b:  nop 
-	IL_001c:  ldarg.0 
-	IL_001d:  call instance bool class NAnt.Core.Tasks.AttribTask::get_ArchiveAttrib()
-	IL_0022:  brfalse IL_002e
-
-	IL_0027:  nop 
-	IL_0028:  ldloc.0 
-	IL_0029:  ldc.i4.s 0x20
-	IL_002b:  or 
-	IL_002c:  stloc.0 
-	IL_002d:  nop 
-	IL_002e:  ldarg.0 
-	IL_002f:  call instance bool class NAnt.Core.Tasks.AttribTask::get_HiddenAttrib()
-	IL_0034:  brfalse IL_003f
-
-	IL_0039:  nop 
-	IL_003a:  ldloc.0 
-	IL_003b:  ldc.i4.2 
-	IL_003c:  or 
-	IL_003d:  stloc.0 
-	IL_003e:  nop 
-	IL_003f:  ldarg.0 
-	IL_0040:  call instance bool class NAnt.Core.Tasks.AttribTask::get_ReadOnlyAttrib()
-	IL_0045:  brfalse IL_0050
-
-	IL_004a:  nop 
-	IL_004b:  ldloc.0 
-	IL_004c:  ldc.i4.1 
-	IL_004d:  or 
-	IL_004e:  stloc.0 
-	IL_004f:  nop 
-	IL_0050:  ldarg.0 
-	IL_0051:  call instance bool class NAnt.Core.Tasks.AttribTask::get_SystemAttrib()
-	IL_0056:  brfalse IL_0061
-
-	IL_005b:  nop 
-	IL_005c:  ldloc.0 
-	IL_005d:  ldc.i4.4 
-	IL_005e:  or 
-	IL_005f:  stloc.0 
-	IL_0060:  nop 
-	IL_0061:  nop 
-	IL_0062:  ldtoken [mscorlib]System.IO.FileAttributes
-	IL_0067:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_006c:  ldloc.0 
-	IL_006d:  box [mscorlib]System.IO.FileAttributes
-	IL_0072:  call bool class [mscorlib]System.Enum::IsDefined(class [mscorlib]System.Type, object)
-	IL_0077:  brtrue IL_0084
+        // Method begins at RVA 0x1056e
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method XmlNamespaceCollection::.ctor
 
-	IL_007c:  nop 
-	IL_007d:  ldc.i4 128
-	IL_0082:  stloc.0 
-	IL_0083:  nop 
-	IL_0084:  ldloc.0 
-	IL_0085:  stloc.1 
-	IL_0086:  br IL_008b
+    // method line 970
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.XmlNamespaceCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x10577
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Types.XmlNamespaceCollection::AddRange(class NAnt.Core.Types.XmlNamespaceCollection)
+	IL_000e:  ret 
+    } // end of method XmlNamespaceCollection::.ctor
 
-	IL_008b:  ldloc.1 
-	IL_008c:  ret 
-    } // end of method AttribTask::GetFileAttributes
+    // method line 971
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.XmlNamespace[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x10587
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.Types.XmlNamespaceCollection::AddRange(class NAnt.Core.Types.XmlNamespace[])
+	IL_000e:  ret 
+    } // end of method XmlNamespaceCollection::.ctor
 
-    // method line 1038
-    .method private hidebysig 
-           instance default void SetFileAttributes (string path, valuetype [mscorlib]System.IO.FileAttributes fileAttributes)  cil managed 
+    // method line 972
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.XmlNamespace get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x13cd0
-	// Code size 114 (0x72)
-	.maxstack 5
+        // Method begins at RVA 0x10598
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.Exception	V_0,
-		string	V_1)
+		class NAnt.Core.Types.XmlNamespace	V_0)
 	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.0 
-	  IL_0003:  ldc.i4 2000
-	  IL_0008:  ldarg.1 
-	  IL_0009:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	  IL_000e:  ldarg.1 
-	  IL_000f:  ldarg.2 
-	  IL_0010:  call void class [mscorlib]System.IO.File::SetAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
-	  IL_0015:  nop 
-	  IL_0016:  leave IL_0071
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_001b:  stloc.0 
-	  IL_001c:  nop 
-	  IL_001d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0022:  ldstr "NA1102"
-	  IL_0027:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_002c:  ldarg.1 
-	  IL_002d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0032:  stloc.1 
-	  IL_0033:  ldarg.0 
-	  IL_0034:  call instance bool class NAnt.Core.Task::get_FailOnError()
-	  IL_0039:  brfalse IL_004d
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.Core.Types.XmlNamespace
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	  IL_003e:  nop 
-	  IL_003f:  ldloc.1 
-	  IL_0040:  ldarg.0 
-	  IL_0041:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0046:  ldloc.0 
-	  IL_0047:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_004c:  throw 
-	  IL_004d:  nop 
-	  IL_004e:  ldarg.0 
-	  IL_004f:  ldc.i4 2000
-	  IL_0054:  ldloc.1 
-	  IL_0055:  ldstr " "
-	  IL_005a:  ldloc.0 
-	  IL_005b:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	  IL_0060:  call string string::Concat(string, string, string)
-	  IL_0065:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	  IL_006a:  nop 
-	  IL_006b:  nop 
-	  IL_006c:  leave IL_0071
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method XmlNamespaceCollection::get_Item
 
-	} // end handler 0
-	IL_0071:  ret 
-    } // end of method AttribTask::SetFileAttributes
+    // method line 973
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.XmlNamespace 'value')  cil managed 
+    {
+        // Method begins at RVA 0x105be
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method XmlNamespaceCollection::set_Item
 
-    // method line 1039
-    .method private hidebysig 
-           instance default valuetype [mscorlib]System.IO.FileAttributes GetDirectoryAttributes ()  cil managed 
+    // method line 974
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.XmlNamespace get_Item (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x13d60
-	// Code size 95 (0x5f)
+        // Method begins at RVA 0x105d0
+	// Code size 111 (0x6f)
 	.maxstack 2
 	.locals init (
-		valuetype [mscorlib]System.IO.FileAttributes	V_0,
-		valuetype [mscorlib]System.IO.FileAttributes	V_1)
+		class NAnt.Core.Types.XmlNamespace	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.Types.XmlNamespace	V_2,
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.s 0x10
-	IL_0003:  stloc.0 
-	IL_0004:  ldarg.0 
-	IL_0005:  call instance bool class NAnt.Core.Tasks.AttribTask::get_NormalAttrib()
-	IL_000a:  brtrue IL_0056
-
-	IL_000f:  nop 
-	IL_0010:  ldarg.0 
-	IL_0011:  call instance bool class NAnt.Core.Tasks.AttribTask::get_ArchiveAttrib()
-	IL_0016:  brfalse IL_0022
-
-	IL_001b:  nop 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldc.i4.s 0x20
-	IL_001f:  or 
-	IL_0020:  stloc.0 
-	IL_0021:  nop 
-	IL_0022:  ldarg.0 
-	IL_0023:  call instance bool class NAnt.Core.Tasks.AttribTask::get_HiddenAttrib()
-	IL_0028:  brfalse IL_0033
-
-	IL_002d:  nop 
-	IL_002e:  ldloc.0 
-	IL_002f:  ldc.i4.2 
-	IL_0030:  or 
-	IL_0031:  stloc.0 
-	IL_0032:  nop 
-	IL_0033:  ldarg.0 
-	IL_0034:  call instance bool class NAnt.Core.Tasks.AttribTask::get_ReadOnlyAttrib()
-	IL_0039:  brfalse IL_0044
-
-	IL_003e:  nop 
-	IL_003f:  ldloc.0 
-	IL_0040:  ldc.i4.1 
-	IL_0041:  or 
-	IL_0042:  stloc.0 
-	IL_0043:  nop 
-	IL_0044:  ldarg.0 
-	IL_0045:  call instance bool class NAnt.Core.Tasks.AttribTask::get_SystemAttrib()
-	IL_004a:  brfalse IL_0055
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0066
 
-	IL_004f:  nop 
-	IL_0050:  ldloc.0 
-	IL_0051:  ldc.i4.4 
-	IL_0052:  or 
-	IL_0053:  stloc.0 
-	IL_0054:  nop 
-	IL_0055:  nop 
-	IL_0056:  ldloc.0 
-	IL_0057:  stloc.1 
-	IL_0058:  br IL_005d
+	IL_0007:  nop 
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0014:  stloc.1 
+	.try { // 0
+	  IL_0015:  br IL_0041
 
-	IL_005d:  ldloc.1 
-	IL_005e:  ret 
-    } // end of method AttribTask::GetDirectoryAttributes
+	  IL_001a:  ldloc.1 
+	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0020:  castclass NAnt.Core.Types.XmlNamespace
+	  IL_0025:  stloc.0 
+	  IL_0026:  nop 
+	  IL_0027:  ldloc.0 
+	  IL_0028:  callvirt instance string class NAnt.Core.Types.XmlNamespace::get_Prefix()
+	  IL_002d:  ldarg.1 
+	  IL_002e:  call bool string::op_Equality(string, string)
+	  IL_0033:  brfalse IL_0040
 
-    // method line 1040
-    .method private hidebysig 
-           instance default void SetDirectoryAttributes (string path, valuetype [mscorlib]System.IO.FileAttributes fileAttributes)  cil managed 
-    {
-        // Method begins at RVA 0x13dcc
-	// Code size 139 (0x8b)
-	.maxstack 5
-	.locals init (
-		class [mscorlib]System.Exception	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_0008:  brfalse IL_0027
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  stloc.2 
+	  IL_003b:  leave IL_006d
 
-	  IL_000d:  nop 
-	  IL_000e:  ldarg.0 
-	  IL_000f:  ldc.i4 2000
-	  IL_0014:  ldarg.1 
-	  IL_0015:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	  IL_001a:  ldarg.1 
-	  IL_001b:  ldarg.2 
-	  IL_001c:  call void class [mscorlib]System.IO.File::SetAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
-	  IL_0021:  nop 
-	  IL_0022:  br IL_002e
+	  IL_0040:  nop 
+	  IL_0041:  ldloc.1 
+	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0047:  brtrue IL_001a
 
-	  IL_0027:  nop 
-	  IL_0028:  newobj instance void class [mscorlib]System.IO.DirectoryNotFoundException::'.ctor'()
-	  IL_002d:  throw 
-	  IL_002e:  nop 
-	  IL_002f:  leave IL_008a
+	  IL_004c:  leave IL_0065
 
 	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0034:  stloc.0 
-	  IL_0035:  nop 
-	  IL_0036:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_003b:  ldstr "NA1101"
-	  IL_0040:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0045:  ldarg.1 
-	  IL_0046:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_004b:  stloc.1 
-	  IL_004c:  ldarg.0 
-	  IL_004d:  call instance bool class NAnt.Core.Task::get_FailOnError()
-	  IL_0052:  brfalse IL_0066
-
-	  IL_0057:  nop 
-	  IL_0058:  ldloc.1 
-	  IL_0059:  ldarg.0 
-	  IL_005a:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_005f:  ldloc.0 
-	  IL_0060:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0065:  throw 
-	  IL_0066:  nop 
-	  IL_0067:  ldarg.0 
-	  IL_0068:  ldc.i4 2000
-	  IL_006d:  ldloc.1 
-	  IL_006e:  ldstr " "
-	  IL_0073:  ldloc.0 
-	  IL_0074:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	  IL_0079:  call string string::Concat(string, string, string)
-	  IL_007e:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	  IL_0083:  nop 
-	  IL_0084:  nop 
-	  IL_0085:  leave IL_008a
+	finally  { // 0
+	  IL_0051:  ldloc.1 
+	  IL_0052:  isinst [mscorlib]System.IDisposable
+	  IL_0057:  dup 
+	  IL_0058:  stloc.3 
+	  IL_0059:  brfalse IL_0064
 
+	  IL_005e:  ldloc.3 
+	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0064:  endfinally 
 	} // end handler 0
-	IL_008a:  ret 
-    } // end of method AttribTask::SetDirectoryAttributes
-
-	.property instance class [mscorlib]System.IO.FileInfo File ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.AttribTask::get_File () 
-		.set instance default void NAnt.Core.Tasks.AttribTask::set_File (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class NAnt.Core.Types.FileSet AttribFileSet ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
+	IL_0065:  nop 
+	IL_0066:  ldnull 
+	IL_0067:  stloc.2 
+	IL_0068:  br IL_006d
 
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.AttribTask::get_AttribFileSet () 
-		.set instance default void NAnt.Core.Tasks.AttribTask::set_AttribFileSet (class NAnt.Core.Types.FileSet 'value') 
-	}
-	.property instance bool ArchiveAttrib ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 61 72 63 68 69 76 65 00 00 ) // ...archive..
+	IL_006d:  ldloc.2 
+	IL_006e:  ret 
+    } // end of method XmlNamespaceCollection::get_Item
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    // method line 975
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.Types.XmlNamespace item)  cil managed 
+    {
+        // Method begins at RVA 0x1065c
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-		.get instance default bool NAnt.Core.Tasks.AttribTask::get_ArchiveAttrib () 
-		.set instance default void NAnt.Core.Tasks.AttribTask::set_ArchiveAttrib (bool 'value') 
-	}
-	.property instance bool HiddenAttrib ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 68 69 64 64 65 6E 00 00 ) // ...hidden..
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method XmlNamespaceCollection::Add
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    // method line 976
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.XmlNamespace[] items)  cil managed 
+    {
+        // Method begins at RVA 0x10680
+	// Code size 34 (0x22)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
 
-		.get instance default bool NAnt.Core.Tasks.AttribTask::get_HiddenAttrib () 
-		.set instance default void NAnt.Core.Tasks.AttribTask::set_HiddenAttrib (bool 'value') 
-	}
-	.property instance bool NormalAttrib ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 6E 6F 72 6D 61 6C 00 00 ) // ...normal..
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.Core.Types.XmlNamespaceCollection::Add(class NAnt.Core.Types.XmlNamespace)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0021:  ret 
+    } // end of method XmlNamespaceCollection::AddRange
 
-		.get instance default bool NAnt.Core.Tasks.AttribTask::get_NormalAttrib () 
-		.set instance default void NAnt.Core.Tasks.AttribTask::set_NormalAttrib (bool 'value') 
-	}
-	.property instance bool ReadOnlyAttrib ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 72 65 61 64 6F 6E 6C 79 00 00 ) // ...readonly..
+    // method line 977
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.XmlNamespaceCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x106b0
+	// Code size 41 (0x29)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.Core.Types.XmlNamespace class NAnt.Core.Types.XmlNamespaceCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Core.Types.XmlNamespaceCollection::Add(class NAnt.Core.Types.XmlNamespace)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
 
-		.get instance default bool NAnt.Core.Tasks.AttribTask::get_ReadOnlyAttrib () 
-		.set instance default void NAnt.Core.Tasks.AttribTask::set_ReadOnlyAttrib (bool 'value') 
-	}
-	.property instance bool SystemAttrib ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 73 79 73 74 65 6D 00 00 ) // ...system..
+	IL_0028:  ret 
+    } // end of method XmlNamespaceCollection::AddRange
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    // method line 978
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.Types.XmlNamespace item)  cil managed 
+    {
+        // Method begins at RVA 0x106e8
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-		.get instance default bool NAnt.Core.Tasks.AttribTask::get_SystemAttrib () 
-		.set instance default void NAnt.Core.Tasks.AttribTask::set_SystemAttrib (bool 'value') 
-	}
-  } // end of class NAnt.Core.Tasks.AttribTask
-}
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method XmlNamespaceCollection::Contains
 
-.namespace NAnt.Core.Tasks
-{
-  .class public auto ansi beforefieldinit RegexTask
-  	extends NAnt.Core.Task
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 72 65 67 65 78 00 00 ) // ...regex..
+    // method line 979
+    .method public hidebysig 
+           instance default bool Contains (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1070c
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance class NAnt.Core.Types.XmlNamespace class NAnt.Core.Types.XmlNamespaceCollection::get_Item(string)
+	IL_0008:  ldnull 
+	IL_0009:  ceq 
+	IL_000b:  ldc.i4.0 
+	IL_000c:  ceq 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0014
 
-    .field  private  string _pattern
-    .field  private  string _input
-    .field  private  valuetype [System]System.Text.RegularExpressions.RegexOptions _options
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method XmlNamespaceCollection::Contains
 
-    // method line 1041
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 980
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.XmlNamespace[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x13e74
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x1072e
+	// Code size 15 (0xf)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld valuetype [System]System.Text.RegularExpressions.RegexOptions NAnt.Core.Tasks.RegexTask::_options
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_000d:  ret 
-    } // end of method RegexTask::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method XmlNamespaceCollection::CopyTo
 
-    // method line 1042
-    .method public hidebysig specialname 
-           instance default string get_Pattern ()  cil managed 
+    // method line 981
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.Types.XmlNamespace item)  cil managed 
     {
-        // Method begins at RVA 0x13e84
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x10740
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.RegexTask::_pattern
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RegexTask::get_Pattern
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method XmlNamespaceCollection::IndexOf
 
-    // method line 1043
-    .method public hidebysig specialname 
-           instance default void set_Pattern (string 'value')  cil managed 
+    // method line 982
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.Types.XmlNamespace item)  cil managed 
     {
-        // Method begins at RVA 0x13e9f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x10761
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.RegexTask::_pattern
-	IL_0008:  ret 
-    } // end of method RegexTask::set_Pattern
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method XmlNamespaceCollection::Insert
 
-    // method line 1044
-    .method public hidebysig specialname 
-           instance default valuetype [System]System.Text.RegularExpressions.RegexOptions get_Options ()  cil managed 
+    // method line 983
+    .method public hidebysig 
+           instance default class NAnt.Core.Types.XmlNamespaceEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x13eac
+        // Method begins at RVA 0x10774
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype [System]System.Text.RegularExpressions.RegexOptions	V_0)
+		class NAnt.Core.Types.XmlNamespaceEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype [System]System.Text.RegularExpressions.RegexOptions NAnt.Core.Tasks.RegexTask::_options
+	IL_0002:  newobj instance void class NAnt.Core.Types.XmlNamespaceEnumerator::'.ctor'(class NAnt.Core.Types.XmlNamespaceCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method RegexTask::get_Options
+    } // end of method XmlNamespaceCollection::GetEnumerator
 
-    // method line 1045
-    .method public hidebysig specialname 
-           instance default void set_Options (valuetype [System]System.Text.RegularExpressions.RegexOptions 'value')  cil managed 
+    // method line 984
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.Types.XmlNamespace item)  cil managed 
     {
-        // Method begins at RVA 0x13ec7
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1078f
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype [System]System.Text.RegularExpressions.RegexOptions NAnt.Core.Tasks.RegexTask::_options
-	IL_0008:  ret 
-    } // end of method RegexTask::set_Options
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
+	IL_000d:  ret 
+    } // end of method XmlNamespaceCollection::Remove
 
-    // method line 1046
+	.property instance class NAnt.Core.Types.XmlNamespace Item (int32)
+	{
+		.get instance default class NAnt.Core.Types.XmlNamespace NAnt.Core.Types.XmlNamespaceCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Core.Types.XmlNamespaceCollection::set_Item (int32 index, class NAnt.Core.Types.XmlNamespace 'value') 
+	}
+	.property instance class NAnt.Core.Types.XmlNamespace Item (string)
+	{
+		.get instance default class NAnt.Core.Types.XmlNamespace NAnt.Core.Types.XmlNamespaceCollection::get_Item (string 'value') 
+	}
+  } // end of class NAnt.Core.Types.XmlNamespaceCollection
+}
+
+.namespace NAnt.Core.Types
+{
+  .class public auto ansi beforefieldinit XmlNamespaceEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+
+    // method line 985
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.XmlNamespaceCollection arguments)  cil managed 
+    {
+        // Method begins at RVA 0x107a0
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method XmlNamespaceEnumerator::.ctor
+
+    // method line 986
     .method public hidebysig specialname 
-           instance default string get_Input ()  cil managed 
+           instance default class NAnt.Core.Types.XmlNamespace get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x13ed4
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x107c4
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.XmlNamespace	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.RegexTask::_input
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.Core.Types.XmlNamespace
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RegexTask::get_Input
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method XmlNamespaceEnumerator::get_Current
 
-    // method line 1047
-    .method public hidebysig specialname 
-           instance default void set_Input (string 'value')  cil managed 
+    // method line 987
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x13eef
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x107ec
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.RegexTask::_input
-	IL_0008:  ret 
-    } // end of method RegexTask::set_Input
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 1048
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method XmlNamespaceEnumerator::System.Collections.IEnumerator.get_Current
+
+    // method line 988
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x13efc
-	// Code size 257 (0x101)
-	.maxstack 8
+        // Method begins at RVA 0x1080c
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0,
-		class [mscorlib]System.ArgumentException	V_1,
-		class [System]System.Text.RegularExpressions.Match	V_2,
-		int32	V_3,
-		string	V_4)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	.try { // 0
-	  IL_0003:  nop 
-	  IL_0004:  ldarg.0 
-	  IL_0005:  call instance string class NAnt.Core.Tasks.RegexTask::get_Pattern()
-	  IL_000a:  ldarg.0 
-	  IL_000b:  call instance valuetype [System]System.Text.RegularExpressions.RegexOptions class NAnt.Core.Tasks.RegexTask::get_Options()
-	  IL_0010:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
-	  IL_0015:  stloc.0 
-	  IL_0016:  nop 
-	  IL_0017:  leave IL_0045
-
-	} // end .try 0
-	catch class [mscorlib]System.ArgumentException { // 0
-	  IL_001c:  stloc.1 
-	  IL_001d:  nop 
-	  IL_001e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0023:  ldstr "NA1145"
-	  IL_0028:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_002d:  ldarg.0 
-	  IL_002e:  call instance string class NAnt.Core.Tasks.RegexTask::get_Pattern()
-	  IL_0033:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0038:  ldarg.0 
-	  IL_0039:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_003e:  ldloc.1 
-	  IL_003f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0044:  throw 
-	} // end handler 0
-	IL_0045:  ldloc.0 
-	IL_0046:  ldarg.0 
-	IL_0047:  call instance string class NAnt.Core.Tasks.RegexTask::get_Input()
-	IL_004c:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
-	IL_0051:  stloc.2 
-	IL_0052:  ldloc.2 
-	IL_0053:  call class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Match::get_Empty()
-	IL_0058:  bne.un IL_008a
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_005d:  nop 
-	IL_005e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0063:  ldstr "NA1144"
-	IL_0068:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_006d:  ldarg.0 
-	IL_006e:  call instance string class NAnt.Core.Tasks.RegexTask::get_Pattern()
-	IL_0073:  ldarg.0 
-	IL_0074:  call instance string class NAnt.Core.Tasks.RegexTask::get_Input()
-	IL_0079:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_007e:  ldarg.0 
-	IL_007f:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0084:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0089:  throw 
-	IL_008a:  ldc.i4.1 
-	IL_008b:  stloc.3 
-	IL_008c:  br IL_00ef
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method XmlNamespaceEnumerator::MoveNext
 
-	IL_0091:  nop 
-	IL_0092:  ldloc.0 
-	IL_0093:  ldloc.3 
-	IL_0094:  callvirt instance string class [System]System.Text.RegularExpressions.Regex::GroupNameFromNumber(int32)
-	IL_0099:  stloc.s 4
-	IL_009b:  ldarg.0 
-	IL_009c:  ldc.i4 2000
-	IL_00a1:  ldstr "Setting property '{0}' to '{1}'."
-	IL_00a6:  ldc.i4.2 
-	IL_00a7:  newarr [mscorlib]System.Object
-	IL_00ac:  dup 
-	IL_00ad:  ldc.i4.0 
-	IL_00ae:  ldloc.s 4
-	IL_00b0:  stelem.ref 
-	IL_00b1:  dup 
-	IL_00b2:  ldc.i4.1 
-	IL_00b3:  ldloc.2 
-	IL_00b4:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	IL_00b9:  ldloc.s 4
-	IL_00bb:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	IL_00c0:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	IL_00c5:  stelem.ref 
-	IL_00c6:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_00cb:  ldarg.0 
-	IL_00cc:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_00d1:  ldloc.s 4
-	IL_00d3:  ldloc.2 
-	IL_00d4:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	IL_00d9:  ldloc.s 4
-	IL_00db:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	IL_00e0:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	IL_00e5:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_00ea:  nop 
-	IL_00eb:  ldloc.3 
-	IL_00ec:  ldc.i4.1 
-	IL_00ed:  add 
-	IL_00ee:  stloc.3 
-	IL_00ef:  ldloc.3 
-	IL_00f0:  ldloc.2 
-	IL_00f1:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	IL_00f6:  callvirt instance int32 class [System]System.Text.RegularExpressions.GroupCollection::get_Count()
-	IL_00fb:  blt IL_0091
+    // method line 989
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x1082c
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0100:  ret 
-    } // end of method RegexTask::ExecuteTask
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method XmlNamespaceEnumerator::System.Collections.IEnumerator.MoveNext
 
-	.property instance string Pattern ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 70 61 74 74 65 72 6E 01 00 54 02 08 52   // ...pattern..T..R
-		65 71 75 69 72 65 64 01                         ) // equired.
+    // method line 990
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x1084c
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method XmlNamespaceEnumerator::Reset
 
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+    // method line 991
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x1085a
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.XmlNamespaceEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method XmlNamespaceEnumerator::System.Collections.IEnumerator.Reset
 
-		.get instance default string NAnt.Core.Tasks.RegexTask::get_Pattern () 
-		.set instance default void NAnt.Core.Tasks.RegexTask::set_Pattern (string 'value') 
-	}
-	.property instance valuetype [System]System.Text.RegularExpressions.RegexOptions Options ()
+	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 6F 70 74 69 6F 6E 73 01 00 54 02 08 52   // ...options..T..R
-		65 71 75 69 72 65 64 00                         ) // equired.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 01                                           ) // y.
-
-		.get instance default valuetype [System]System.Text.RegularExpressions.RegexOptions NAnt.Core.Tasks.RegexTask::get_Options () 
-		.set instance default void NAnt.Core.Tasks.RegexTask::set_Options (valuetype [System]System.Text.RegularExpressions.RegexOptions 'value') 
+		.get instance default object NAnt.Core.Types.XmlNamespaceEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance string Input ()
+	.property instance class NAnt.Core.Types.XmlNamespace Current ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 05 69 6E 70 75 74 01 00 54 02 08 52 65 71   // ...input..T..Req
-		75 69 72 65 64 01                               ) // uired.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 01                                           ) // y.
-
-		.get instance default string NAnt.Core.Tasks.RegexTask::get_Input () 
-		.set instance default void NAnt.Core.Tasks.RegexTask::set_Input (string 'value') 
+		.get instance default class NAnt.Core.Types.XmlNamespace NAnt.Core.Types.XmlNamespaceEnumerator::get_Current () 
 	}
-  } // end of class NAnt.Core.Tasks.RegexTask
+  } // end of class NAnt.Core.Types.XmlNamespaceEnumerator
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit IfTask
-  	extends NAnt.Core.TaskContainer
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+  .class public auto ansi serializable beforefieldinit PatternCollection
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IList, [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-    .field  private  string _propNameTrue
-    .field  private  string _propNameExists
-    .field  private  string _targetName
-    .field  private  string _test
-    .field  private  class NAnt.Core.Types.FileSet _compareFiles
-    .field  private  class NAnt.Core.Types.FileSet _uptodateFiles
+    .field  private initonly  class [mscorlib]System.Collections.ArrayList _list
 
-    // method line 1049
+    // method line 992
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1401c
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x10868
+	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.TaskContainer::'.ctor'()
-	IL_0006:  ret 
-    } // end of method IfTask::.ctor
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_000d:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PatternCollection::_list
+	IL_0012:  ret 
+    } // end of method PatternCollection::.ctor
 
-    // method line 1050
+    // method line 993
     .method public hidebysig specialname 
-           instance default void set_UpToDateFile (string 'value')  cil managed 
+           instance default class NAnt.Core.Types.Pattern get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x14024
-	// Code size 90 (0x5a)
+        // Method begins at RVA 0x1087c
+	// Code size 26 (0x1a)
 	.maxstack 2
+	.locals init (
+		class NAnt.Core.Types.Pattern	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
-	IL_0007:  brtrue IL_0047
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	IL_000d:  castclass NAnt.Core.Types.Pattern
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0013:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
-	IL_0018:  ldarg.0 
-	IL_0019:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
-	IL_001e:  ldarg.0 
-	IL_001f:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_0024:  ldarg.0 
-	IL_0025:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
-	IL_002a:  ldarg.0 
-	IL_002b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0030:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_0035:  ldarg.0 
-	IL_0036:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
-	IL_003b:  ldarg.0 
-	IL_003c:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
-	IL_0041:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0046:  nop 
-	IL_0047:  ldarg.0 
-	IL_0048:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
-	IL_004d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
-	IL_0052:  ldarg.1 
-	IL_0053:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0058:  pop 
-	IL_0059:  ret 
-    } // end of method IfTask::set_UpToDateFile
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method PatternCollection::get_Item
 
-    // method line 1051
+    // method line 994
     .method public hidebysig specialname 
-           instance default void set_CompareFile (string 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.Core.Types.Pattern 'value')  cil managed 
     {
-        // Method begins at RVA 0x1408c
-	// Code size 90 (0x5a)
-	.maxstack 2
+        // Method begins at RVA 0x108a2
+	// Code size 15 (0xf)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
-	IL_0007:  brtrue IL_0047
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0013:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
-	IL_0018:  ldarg.0 
-	IL_0019:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
-	IL_001e:  ldarg.0 
-	IL_001f:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_0024:  ldarg.0 
-	IL_0025:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
-	IL_002a:  ldarg.0 
-	IL_002b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0030:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_0035:  ldarg.0 
-	IL_0036:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
-	IL_003b:  ldarg.0 
-	IL_003c:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
-	IL_0041:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0046:  nop 
-	IL_0047:  ldarg.0 
-	IL_0048:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
-	IL_004d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
-	IL_0052:  ldarg.1 
-	IL_0053:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0058:  pop 
-	IL_0059:  ret 
-    } // end of method IfTask::set_CompareFile
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ArrayList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method PatternCollection::set_Item
 
-    // method line 1052
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_CompareFiles ()  cil managed 
+    // method line 995
+    .method private hidebysig specialname 
+           instance default class [mscorlib]System.Collections.ArrayList get_List ()  cil managed 
     {
-        // Method begins at RVA 0x140f4
+        // Method begins at RVA 0x108b4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		class [mscorlib]System.Collections.ArrayList	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PatternCollection::_list
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IfTask::get_CompareFiles
-
-    // method line 1053
-    .method public hidebysig specialname 
-           instance default void set_CompareFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1410f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
-	IL_0008:  ret 
-    } // end of method IfTask::set_CompareFiles
+    } // end of method PatternCollection::get_List
 
-    // method line 1054
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_UpToDateFiles ()  cil managed 
+    // method line 996
+    .method public final virtual hidebysig newslot specialname 
+           instance default int32 get_Count ()  cil managed 
     {
-        // Method begins at RVA 0x1411c
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x108d0
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method IfTask::get_UpToDateFiles
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PatternCollection::get_Count
 
-    // method line 1055
-    .method public hidebysig specialname 
-           instance default void set_UpToDateFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    // method line 997
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.ICollection.CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x14137
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x108f0
+	.override class [mscorlib]System.Collections.ICollection::CopyTo
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
-	IL_0008:  ret 
-    } // end of method IfTask::set_UpToDateFiles
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ArrayList::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method PatternCollection::System.Collections.ICollection.CopyTo
 
-    // method line 1056
-    .method public hidebysig specialname 
-           instance default string get_PropertyNameTrue ()  cil managed 
+    // method line 998
+    .method private final virtual hidebysig newslot specialname 
+           instance default bool System.Collections.ICollection.get_IsSynchronized ()  cil managed 
     {
-        // Method begins at RVA 0x14144
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x10900
+	.override class [mscorlib]System.Collections.ICollection::get_IsSynchronized
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.IfTask::_propNameTrue
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.ArrayList::get_IsSynchronized()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method IfTask::get_PropertyNameTrue
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PatternCollection::System.Collections.ICollection.get_IsSynchronized
 
-    // method line 1057
-    .method public hidebysig specialname 
-           instance default void set_PropertyNameTrue (string 'value')  cil managed 
+    // method line 999
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.ICollection.get_SyncRoot ()  cil managed 
     {
-        // Method begins at RVA 0x1415f
-	// Code size 14 (0xe)
-	.maxstack 8
+        // Method begins at RVA 0x10920
+	.override class [mscorlib]System.Collections.ICollection::get_SyncRoot
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.IfTask::_propNameTrue
-	IL_000d:  ret 
-    } // end of method IfTask::set_PropertyNameTrue
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_SyncRoot()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 1058
-    .method public hidebysig specialname 
-           instance default string get_PropertyNameExists ()  cil managed 
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PatternCollection::System.Collections.ICollection.get_SyncRoot
+
+    // method line 1000
+    .method private final virtual hidebysig newslot 
+           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x14170
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x10940
+	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Collections.IEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.IfTask::_propNameExists
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method IfTask::get_PropertyNameExists
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PatternCollection::System.Collections.IEnumerable.GetEnumerator
 
-    // method line 1059
-    .method public hidebysig specialname 
-           instance default void set_PropertyNameExists (string 'value')  cil managed 
+    // method line 1001
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IList.get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x1418b
-	// Code size 14 (0xe)
-	.maxstack 8
+        // Method begins at RVA 0x10960
+	.override class [mscorlib]System.Collections.IList::get_Item
+	// Code size 16 (0x10)
+	.maxstack 2
+	.locals init (
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.IfTask::_propNameExists
-	IL_000d:  ret 
-    } // end of method IfTask::set_PropertyNameExists
+	IL_0003:  call instance class NAnt.Core.Types.Pattern class NAnt.Core.Types.PatternCollection::get_Item(int32)
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-    // method line 1060
-    .method public hidebysig specialname 
-           instance default string get_TargetNameExists ()  cil managed 
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method PatternCollection::System.Collections.IList.get_Item
+
+    // method line 1002
+    .method private final virtual hidebysig newslot specialname 
+           instance default void System.Collections.IList.set_Item (int32 index, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x1419c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x1097c
+	.override class [mscorlib]System.Collections.IList::set_Item
+	// Code size 81 (0x51)
+	.maxstack 3
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.IfTask::_targetName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldarg.2 
+	IL_0002:  brtrue IL_0013
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method IfTask::get_TargetNameExists
+	IL_0007:  nop 
+	IL_0008:  ldstr "value"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.2 
+	IL_0014:  isinst NAnt.Core.Types.Pattern
+	IL_0019:  brtrue IL_0043
 
-    // method line 1061
-    .method public hidebysig specialname 
-           instance default void set_TargetNameExists (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x141b7
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.IfTask::_targetName
-	IL_000d:  ret 
-    } // end of method IfTask::set_TargetNameExists
+	IL_001e:  nop 
+	IL_001f:  ldstr "Specified value is not an instance of "
+	IL_0024:  ldtoken NAnt.Core.Types.Pattern
+	IL_0029:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_002e:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0033:  ldstr "."
+	IL_0038:  call string string::Concat(string, string, string)
+	IL_003d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0042:  throw 
+	IL_0043:  ldarg.0 
+	IL_0044:  ldarg.1 
+	IL_0045:  ldarg.2 
+	IL_0046:  castclass NAnt.Core.Types.Pattern
+	IL_004b:  call instance void class NAnt.Core.Types.PatternCollection::set_Item(int32, class NAnt.Core.Types.Pattern)
+	IL_0050:  ret 
+    } // end of method PatternCollection::System.Collections.IList.set_Item
 
-    // method line 1062
-    .method public hidebysig specialname 
-           instance default string get_Test ()  cil managed 
+    // method line 1003
+    .method private final virtual hidebysig newslot specialname 
+           instance default bool System.Collections.IList.get_IsFixedSize ()  cil managed 
     {
-        // Method begins at RVA 0x141c8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x109dc
+	.override class [mscorlib]System.Collections.IList::get_IsFixedSize
+	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.IfTask::_test
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method IfTask::get_Test
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-    // method line 1063
-    .method public hidebysig specialname 
-           instance default void set_Test (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x141e3
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.IfTask::_test
-	IL_000d:  ret 
-    } // end of method IfTask::set_Test
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method PatternCollection::System.Collections.IList.get_IsFixedSize
 
-    // method line 1064
-    .method family virtual hidebysig newslot specialname 
-           instance default bool get_ConditionsTrue ()  cil managed 
+    // method line 1004
+    .method private final virtual hidebysig newslot specialname 
+           instance default bool System.Collections.IList.get_IsReadOnly ()  cil managed 
     {
-        // Method begins at RVA 0x141f4
-	// Code size 457 (0x1c9)
-	.maxstack 7
+        // Method begins at RVA 0x109f4
+	.override class [mscorlib]System.Collections.IList::get_IsReadOnly
+	// Code size 10 (0xa)
+	.maxstack 1
 	.locals init (
-		bool	V_0,
-		bool	V_1,
-		class [mscorlib]System.Exception	V_2,
-		class [mscorlib]System.IO.FileInfo	V_3,
-		string	V_4,
-		bool	V_5)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.1 
+	IL_0001:  ldc.i4.0 
 	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  call instance string class NAnt.Core.Tasks.IfTask::get_Test()
-	IL_0009:  brfalse IL_002d
+	IL_0003:  br IL_0008
 
-	IL_000e:  nop 
-	IL_000f:  ldarg.0 
-	IL_0010:  call instance string class NAnt.Core.Tasks.IfTask::get_Test()
-	IL_0015:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001a:  call bool class [mscorlib]System.Convert::ToBoolean(string, class [mscorlib]System.IFormatProvider)
-	IL_001f:  brtrue IL_002c
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method PatternCollection::System.Collections.IList.get_IsReadOnly
 
-	IL_0024:  nop 
-	IL_0025:  ldc.i4.0 
-	IL_0026:  stloc.1 
-	IL_0027:  br IL_01c7
+    // method line 1005
+    .method private final virtual hidebysig newslot 
+           instance default int32 System.Collections.IList.Add (object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x10a0c
+	.override class [mscorlib]System.Collections.IList::Add
+	// Code size 87 (0x57)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-	IL_002c:  nop 
-	IL_002d:  ldarg.0 
-	IL_002e:  call instance string class NAnt.Core.Tasks.IfTask::get_TargetNameExists()
-	IL_0033:  brfalse IL_006e
+	IL_0007:  nop 
+	IL_0008:  ldstr "value"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.1 
+	IL_0014:  isinst NAnt.Core.Types.Pattern
+	IL_0019:  brtrue IL_0043
 
-	IL_0038:  nop 
-	IL_0039:  ldloc.0 
-	IL_003a:  brfalse IL_005d
+	IL_001e:  nop 
+	IL_001f:  ldstr "Specified value is not an instance of "
+	IL_0024:  ldtoken NAnt.Core.Types.Pattern
+	IL_0029:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_002e:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0033:  ldstr "."
+	IL_0038:  call string string::Concat(string, string, string)
+	IL_003d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0042:  throw 
+	IL_0043:  ldarg.0 
+	IL_0044:  ldarg.1 
+	IL_0045:  castclass NAnt.Core.Types.Pattern
+	IL_004a:  call instance int32 class NAnt.Core.Types.PatternCollection::Add(class NAnt.Core.Types.Pattern)
+	IL_004f:  stloc.0 
+	IL_0050:  br IL_0055
 
-	IL_003f:  ldarg.0 
-	IL_0040:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0045:  callvirt instance class NAnt.Core.TargetCollection class NAnt.Core.Project::get_Targets()
-	IL_004a:  ldarg.0 
-	IL_004b:  call instance string class NAnt.Core.Tasks.IfTask::get_TargetNameExists()
-	IL_0050:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
-	IL_0055:  ldnull 
-	IL_0056:  ceq 
-	IL_0058:  ldc.i4.0 
-	IL_0059:  ceq 
-	IL_005b:  br.s IL_005e
+	IL_0055:  ldloc.0 
+	IL_0056:  ret 
+    } // end of method PatternCollection::System.Collections.IList.Add
 
-	IL_005d:  ldc.i4.0 
-	IL_005e:  stloc.0 
-	IL_005f:  ldloc.0 
-	IL_0060:  brtrue IL_006d
+    // method line 1006
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IList.Contains (object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x10a70
+	.override class [mscorlib]System.Collections.IList::Contains
+	// Code size 87 (0x57)
+	.maxstack 3
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-	IL_0065:  nop 
-	IL_0066:  ldc.i4.0 
-	IL_0067:  stloc.1 
-	IL_0068:  br IL_01c7
+	IL_0007:  nop 
+	IL_0008:  ldstr "value"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.1 
+	IL_0014:  isinst NAnt.Core.Types.Pattern
+	IL_0019:  brtrue IL_0043
 
-	IL_006d:  nop 
-	IL_006e:  ldarg.0 
-	IL_006f:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameExists()
-	IL_0074:  brfalse IL_00a4
+	IL_001e:  nop 
+	IL_001f:  ldstr "Specified value is not an instance of "
+	IL_0024:  ldtoken NAnt.Core.Types.Pattern
+	IL_0029:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_002e:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0033:  ldstr "."
+	IL_0038:  call string string::Concat(string, string, string)
+	IL_003d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0042:  throw 
+	IL_0043:  ldarg.0 
+	IL_0044:  ldarg.1 
+	IL_0045:  castclass NAnt.Core.Types.Pattern
+	IL_004a:  call instance bool class NAnt.Core.Types.PatternCollection::Contains(class NAnt.Core.Types.Pattern)
+	IL_004f:  stloc.0 
+	IL_0050:  br IL_0055
 
-	IL_0079:  nop 
-	IL_007a:  ldloc.0 
-	IL_007b:  brfalse IL_0093
+	IL_0055:  ldloc.0 
+	IL_0056:  ret 
+    } // end of method PatternCollection::System.Collections.IList.Contains
 
-	IL_0080:  ldarg.0 
-	IL_0081:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0086:  ldarg.0 
-	IL_0087:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameExists()
-	IL_008c:  callvirt instance bool class NAnt.Core.PropertyDictionary::Contains(string)
-	IL_0091:  br.s IL_0094
+    // method line 1007
+    .method public final virtual hidebysig newslot 
+           instance default void Clear ()  cil managed 
+    {
+        // Method begins at RVA 0x10ad3
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Clear()
+	IL_000c:  ret 
+    } // end of method PatternCollection::Clear
 
-	IL_0093:  ldc.i4.0 
-	IL_0094:  stloc.0 
-	IL_0095:  ldloc.0 
-	IL_0096:  brtrue IL_00a3
+    // method line 1008
+    .method private final virtual hidebysig newslot 
+           instance default int32 System.Collections.IList.IndexOf (object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x10ae4
+	.override class [mscorlib]System.Collections.IList::IndexOf
+	// Code size 87 (0x57)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-	IL_009b:  nop 
-	IL_009c:  ldc.i4.0 
-	IL_009d:  stloc.1 
-	IL_009e:  br IL_01c7
+	IL_0007:  nop 
+	IL_0008:  ldstr "value"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.1 
+	IL_0014:  isinst NAnt.Core.Types.Pattern
+	IL_0019:  brtrue IL_0043
 
-	IL_00a3:  nop 
-	IL_00a4:  ldarg.0 
-	IL_00a5:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameTrue()
-	IL_00aa:  brfalse IL_010f
+	IL_001e:  nop 
+	IL_001f:  ldstr "Specified value is not an instance of "
+	IL_0024:  ldtoken NAnt.Core.Types.Pattern
+	IL_0029:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_002e:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0033:  ldstr "."
+	IL_0038:  call string string::Concat(string, string, string)
+	IL_003d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0042:  throw 
+	IL_0043:  ldarg.0 
+	IL_0044:  ldarg.1 
+	IL_0045:  castclass NAnt.Core.Types.Pattern
+	IL_004a:  call instance int32 class NAnt.Core.Types.PatternCollection::IndexOf(class NAnt.Core.Types.Pattern)
+	IL_004f:  stloc.0 
+	IL_0050:  br IL_0055
 
-	IL_00af:  nop 
-	.try { // 0
-	  IL_00b0:  nop 
-	  IL_00b1:  ldloc.0 
-	  IL_00b2:  brfalse IL_00cf
+	IL_0055:  ldloc.0 
+	IL_0056:  ret 
+    } // end of method PatternCollection::System.Collections.IList.IndexOf
 
-	  IL_00b7:  ldarg.0 
-	  IL_00b8:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	  IL_00bd:  ldarg.0 
-	  IL_00be:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameTrue()
-	  IL_00c3:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
-	  IL_00c8:  call bool bool::Parse(string)
-	  IL_00cd:  br.s IL_00d0
+    // method line 1009
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IList.Insert (int32 index, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x10b48
+	.override class [mscorlib]System.Collections.IList::Insert
+	// Code size 81 (0x51)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.2 
+	IL_0002:  brtrue IL_0013
 
-	  IL_00cf:  ldc.i4.0 
-	  IL_00d0:  stloc.0 
-	  IL_00d1:  ldloc.0 
-	  IL_00d2:  brtrue IL_00df
+	IL_0007:  nop 
+	IL_0008:  ldstr "value"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.2 
+	IL_0014:  isinst NAnt.Core.Types.Pattern
+	IL_0019:  brtrue IL_0043
 
-	  IL_00d7:  nop 
-	  IL_00d8:  ldc.i4.0 
-	  IL_00d9:  stloc.1 
-	  IL_00da:  leave IL_01c7
+	IL_001e:  nop 
+	IL_001f:  ldstr "Specified value is not an instance of "
+	IL_0024:  ldtoken NAnt.Core.Types.Pattern
+	IL_0029:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_002e:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0033:  ldstr "."
+	IL_0038:  call string string::Concat(string, string, string)
+	IL_003d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0042:  throw 
+	IL_0043:  ldarg.0 
+	IL_0044:  ldarg.1 
+	IL_0045:  ldarg.2 
+	IL_0046:  castclass NAnt.Core.Types.Pattern
+	IL_004b:  call instance void class NAnt.Core.Types.PatternCollection::Insert(int32, class NAnt.Core.Types.Pattern)
+	IL_0050:  ret 
+    } // end of method PatternCollection::System.Collections.IList.Insert
 
-	  IL_00df:  nop 
-	  IL_00e0:  leave IL_010e
+    // method line 1010
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IList.Remove (object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x10ba8
+	.override class [mscorlib]System.Collections.IList::Remove
+	// Code size 80 (0x50)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_00e5:  stloc.2 
-	  IL_00e6:  nop 
-	  IL_00e7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_00ec:  ldstr "NA1126"
-	  IL_00f1:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_00f6:  ldarg.0 
-	  IL_00f7:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameTrue()
-	  IL_00fc:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0101:  ldarg.0 
-	  IL_0102:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0107:  ldloc.2 
-	  IL_0108:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_010d:  throw 
-	} // end handler 0
-	IL_010e:  nop 
-	IL_010f:  ldarg.0 
-	IL_0110:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.IfTask::get_UpToDateFiles()
-	IL_0115:  brfalse IL_01c0
+	IL_0007:  nop 
+	IL_0008:  ldstr "value"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.1 
+	IL_0014:  isinst NAnt.Core.Types.Pattern
+	IL_0019:  brtrue IL_0043
 
-	IL_011a:  nop 
-	IL_011b:  ldarg.0 
-	IL_011c:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.IfTask::get_UpToDateFiles()
-	IL_0121:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.FileSet::get_MostRecentLastWriteTimeFile()
-	IL_0126:  stloc.3 
-	IL_0127:  ldloc.3 
-	IL_0128:  brfalse IL_0138
+	IL_001e:  nop 
+	IL_001f:  ldstr "Specified value is not an instance of "
+	IL_0024:  ldtoken NAnt.Core.Types.Pattern
+	IL_0029:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_002e:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0033:  ldstr "."
+	IL_0038:  call string string::Concat(string, string, string)
+	IL_003d:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0042:  throw 
+	IL_0043:  ldarg.0 
+	IL_0044:  ldarg.1 
+	IL_0045:  castclass NAnt.Core.Types.Pattern
+	IL_004a:  call instance void class NAnt.Core.Types.PatternCollection::Remove(class NAnt.Core.Types.Pattern)
+	IL_004f:  ret 
+    } // end of method PatternCollection::System.Collections.IList.Remove
 
-	IL_012d:  ldloc.3 
-	IL_012e:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0133:  brtrue IL_0151
+    // method line 1011
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IList.RemoveAt (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x10c04
+	.override class [mscorlib]System.Collections.IList::RemoveAt
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.ArrayList::RemoveAt(int32)
+	IL_000d:  ret 
+    } // end of method PatternCollection::System.Collections.IList.RemoveAt
 
-	IL_0138:  nop 
-	IL_0139:  ldc.i4.0 
-	IL_013a:  stloc.0 
-	IL_013b:  ldarg.0 
-	IL_013c:  ldc.i4 2000
-	IL_0141:  ldstr "Uptodatefile(s) do(es) not exist."
-	IL_0146:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_014b:  nop 
-	IL_014c:  br IL_01b1
+    // method line 1012
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.Types.Pattern item)  cil managed 
+    {
+        // Method begins at RVA 0x10c14
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0151:  nop 
-	IL_0152:  ldarg.0 
-	IL_0153:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
-	IL_0158:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_015d:  ldloc.3 
-	IL_015e:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0163:  call string class NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
-	IL_0168:  stloc.s 4
-	IL_016a:  ldloc.s 4
-	IL_016c:  ldnull 
-	IL_016d:  ceq 
-	IL_016f:  ldc.i4.0 
-	IL_0170:  ceq 
-	IL_0172:  stloc.s 5
-	IL_0174:  ldloc.s 5
-	IL_0176:  brfalse IL_01a1
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method PatternCollection::Add
 
-	IL_017b:  nop 
-	IL_017c:  ldarg.0 
-	IL_017d:  ldc.i4 2000
-	IL_0182:  ldstr "{0} is newer than {1}."
-	IL_0187:  ldc.i4.2 
-	IL_0188:  newarr [mscorlib]System.Object
-	IL_018d:  dup 
-	IL_018e:  ldc.i4.0 
-	IL_018f:  ldloc.s 4
-	IL_0191:  stelem.ref 
-	IL_0192:  dup 
-	IL_0193:  ldc.i4.1 
-	IL_0194:  ldloc.3 
-	IL_0195:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
-	IL_019a:  stelem.ref 
-	IL_019b:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_01a0:  nop 
-	IL_01a1:  ldloc.0 
-	IL_01a2:  brfalse IL_01ae
+    // method line 1013
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.Pattern[] items)  cil managed 
+    {
+        // Method begins at RVA 0x10c38
+	// Code size 34 (0x22)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
 
-	IL_01a7:  ldloc.s 5
-	IL_01a9:  ldc.i4.0 
-	IL_01aa:  ceq 
-	IL_01ac:  br.s IL_01af
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.Core.Types.PatternCollection::Add(class NAnt.Core.Types.Pattern)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
 
-	IL_01ae:  ldc.i4.0 
-	IL_01af:  stloc.0 
-	IL_01b0:  nop 
-	IL_01b1:  ldloc.0 
-	IL_01b2:  brtrue IL_01bf
+	IL_0021:  ret 
+    } // end of method PatternCollection::AddRange
 
-	IL_01b7:  nop 
-	IL_01b8:  ldc.i4.0 
-	IL_01b9:  stloc.1 
-	IL_01ba:  br IL_01c7
+    // method line 1014
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.Types.PatternCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x10c68
+	// Code size 41 (0x29)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
 
-	IL_01bf:  nop 
-	IL_01c0:  ldloc.0 
-	IL_01c1:  stloc.1 
-	IL_01c2:  br IL_01c7
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.Core.Types.Pattern class NAnt.Core.Types.PatternCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Core.Types.PatternCollection::Add(class NAnt.Core.Types.Pattern)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class NAnt.Core.Types.PatternCollection::get_Count()
+	IL_0023:  blt IL_0008
 
-	IL_01c7:  ldloc.1 
-	IL_01c8:  ret 
-    } // end of method IfTask::get_ConditionsTrue
+	IL_0028:  ret 
+    } // end of method PatternCollection::AddRange
 
-    // method line 1065
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 1015
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.Types.Pattern item)  cil managed 
     {
-        // Method begins at RVA 0x143dc
+        // Method begins at RVA 0x10ca0
 	// Code size 21 (0x15)
-	.maxstack 8
+	.maxstack 2
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance bool class NAnt.Core.Tasks.IfTask::get_ConditionsTrue()
-	IL_0007:  brfalse IL_0014
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.ArrayList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance void class NAnt.Core.TaskContainer::ExecuteTask()
-	IL_0013:  nop 
+	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method IfTask::ExecuteTask
+    } // end of method PatternCollection::Contains
 
-    // method line 1066
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 1016
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.Types.Pattern[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x143f4
-	// Code size 92 (0x5c)
-	.maxstack 2
+        // Method begins at RVA 0x10cc1
+	// Code size 15 (0xf)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.TaskContainer::Initialize()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.IfTask::get_UpToDateFiles()
-	IL_000d:  brfalse IL_001d
-
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.IfTask::get_CompareFiles()
-	IL_0018:  brtrue IL_005b
-
-	IL_001d:  ldarg.0 
-	IL_001e:  call instance string class NAnt.Core.Tasks.IfTask::get_Test()
-	IL_0023:  brtrue IL_005b
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ArrayList::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method PatternCollection::CopyTo
 
-	IL_0028:  ldarg.0 
-	IL_0029:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameExists()
-	IL_002e:  brtrue IL_005b
+    // method line 1017
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.Types.Pattern item)  cil managed 
+    {
+        // Method begins at RVA 0x10cd4
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0033:  ldarg.0 
-	IL_0034:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameTrue()
-	IL_0039:  brtrue IL_005b
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method PatternCollection::IndexOf
 
-	IL_003e:  ldarg.0 
-	IL_003f:  call instance string class NAnt.Core.Tasks.IfTask::get_TargetNameExists()
-	IL_0044:  brtrue IL_005b
+    // method line 1018
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.Types.Pattern item)  cil managed 
+    {
+        // Method begins at RVA 0x10cf5
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method PatternCollection::Insert
 
-	IL_0049:  nop 
-	IL_004a:  ldstr "At least one if condition must be set (test, propertytrue, targetexists, etc...):"
-	IL_004f:  ldarg.0 
-	IL_0050:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0055:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_005a:  throw 
-	IL_005b:  ret 
-    } // end of method IfTask::Initialize
+    // method line 1019
+    .method public hidebysig 
+           instance default class NAnt.Core.Types.PatternEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x10d08
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.PatternEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.Core.Types.PatternEnumerator::'.ctor'(class NAnt.Core.Types.PatternCollection)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	.property instance string UpToDateFile ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 75 70 74 6F 64 61 74 65 66 69 6C 65 00   // ...uptodatefile.
-		00                                              ) // .
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PatternCollection::GetEnumerator
 
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 47 55 73 65 20 3C 69 66 20 74 65 73 74 3D   // ..GUse <if test=
-		22 24 7B 66 69 6C 65 3A 3A 75 70 2D 74 6F 2D 64   // "${file::up-to-d
-		61 74 65 28 63 6F 6D 70 61 72 65 66 69 6C 65 2C   // ate(comparefile,
-		20 75 70 74 6F 64 61 74 65 66 69 6C 65 29 7D 22   //  uptodatefile)}"
-		3E 20 69 6E 73 74 65 61 64 2E 00 00 00          ) // > instead....
+    // method line 1020
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.Types.Pattern item)  cil managed 
+    {
+        // Method begins at RVA 0x10d23
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Types.PatternCollection::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Remove(object)
+	IL_000d:  ret 
+    } // end of method PatternCollection::Remove
 
-		.set instance default void NAnt.Core.Tasks.IfTask::set_UpToDateFile (string 'value') 
-	}
-	.property instance string CompareFile ()
+	.property instance bool System.Collections.ICollection.IsSynchronized ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 63 6F 6D 70 61 72 65 66 69 6C 65 00 00 ) // ...comparefile..
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 47 55 73 65 20 3C 69 66 20 74 65 73 74 3D   // ..GUse <if test=
-		22 24 7B 66 69 6C 65 3A 3A 75 70 2D 74 6F 2D 64   // "${file::up-to-d
-		61 74 65 28 63 6F 6D 70 61 72 65 66 69 6C 65 2C   // ate(comparefile,
-		20 75 70 74 6F 64 61 74 65 66 69 6C 65 29 7D 22   //  uptodatefile)}"
-		3E 20 69 6E 73 74 65 61 64 2E 00 00 00          ) // > instead....
-
-		.set instance default void NAnt.Core.Tasks.IfTask::set_CompareFile (string 'value') 
+		.get instance default bool NAnt.Core.Types.PatternCollection::System.Collections.ICollection.get_IsSynchronized () 
 	}
-	.property instance class NAnt.Core.Types.FileSet CompareFiles ()
+	.property instance object System.Collections.ICollection.SyncRoot ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0C 63 6F 6D 70 61 72 65 66 69 6C 65 73 00   // ...comparefiles.
-		00                                              ) // .
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 1E 55 73 65 20 3C 75 70 74 6F 64 61 74 65   // ...Use <uptodate
-		20 2F 3E 20 74 61 73 6B 20 69 6E 73 74 65 61 64   //  /> task instead
-		2E 00 00 00                                     ) // ....
-
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::get_CompareFiles () 
-		.set instance default void NAnt.Core.Tasks.IfTask::set_CompareFiles (class NAnt.Core.Types.FileSet 'value') 
+		.get instance default object NAnt.Core.Types.PatternCollection::System.Collections.ICollection.get_SyncRoot () 
 	}
-	.property instance class NAnt.Core.Types.FileSet UpToDateFiles ()
+	.property instance object System.Collections.IList.Item (int32)
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0D 75 70 74 6F 64 61 74 65 66 69 6C 65 73   // ...uptodatefiles
-		00 00                                           ) // ..
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 1E 55 73 65 20 3C 75 70 74 6F 64 61 74 65   // ...Use <uptodate
-		20 2F 3E 20 74 61 73 6B 20 69 6E 73 74 65 61 64   //  /> task instead
-		2E 00 00 00                                     ) // ....
-
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::get_UpToDateFiles () 
-		.set instance default void NAnt.Core.Tasks.IfTask::set_UpToDateFiles (class NAnt.Core.Types.FileSet 'value') 
+		.get instance default object NAnt.Core.Types.PatternCollection::System.Collections.IList.get_Item (int32 index) 
+		.set instance default void NAnt.Core.Types.PatternCollection::System.Collections.IList.set_Item (int32 index, object 'value') 
 	}
-	.property instance string PropertyNameTrue ()
+	.property instance bool System.Collections.IList.IsFixedSize ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 70 72 6F 70 65 72 74 79 74 72 75 65 00   // ...propertytrue.
-		00                                              ) // .
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 28 55 73 65 20 3C 69 66 20 74 65 73 74 3D   // ..(Use <if test=
-		22 24 7B 70 72 6F 70 65 72 74 79 6E 61 6D 65 7D   // "${propertyname}
-		22 3E 20 69 6E 73 74 65 61 64 2E 00 00 00       ) // "> instead....
-
-		.get instance default string NAnt.Core.Tasks.IfTask::get_PropertyNameTrue () 
-		.set instance default void NAnt.Core.Tasks.IfTask::set_PropertyNameTrue (string 'value') 
+		.get instance default bool NAnt.Core.Types.PatternCollection::System.Collections.IList.get_IsFixedSize () 
 	}
-	.property instance string PropertyNameExists ()
+	.property instance bool System.Collections.IList.IsReadOnly ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0E 70 72 6F 70 65 72 74 79 65 78 69 73 74   // ...propertyexist
-		73 00 00                                        ) // s..
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 3C 55 73 65 20 3C 69 66 20 74 65 73 74 3D   // ..<Use <if test=
-		22 24 7B 70 72 6F 70 65 72 74 79 3A 3A 65 78 69   // "${property::exi
-		73 74 73 28 27 70 72 6F 70 65 72 74 79 6E 61 6D   // sts('propertynam
-		65 27 29 7D 22 3E 20 69 6E 73 74 65 61 64 2E 00   // e')}"> instead..
-		00 00                                           ) // ..
-
-		.get instance default string NAnt.Core.Tasks.IfTask::get_PropertyNameExists () 
-		.set instance default void NAnt.Core.Tasks.IfTask::set_PropertyNameExists (string 'value') 
+		.get instance default bool NAnt.Core.Types.PatternCollection::System.Collections.IList.get_IsReadOnly () 
 	}
-	.property instance string TargetNameExists ()
+	.property instance class NAnt.Core.Types.Pattern Item (int32)
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 74 61 72 67 65 74 65 78 69 73 74 73 00   // ...targetexists.
-		00                                              ) // .
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 38 55 73 65 20 3C 69 66 20 74 65 73 74 3D   // ..8Use <if test=
-		22 24 7B 74 61 72 67 65 74 3A 3A 65 78 69 73 74   // "${target::exist
-		73 28 27 74 61 72 67 65 74 6E 61 6D 65 27 29 7D   // s('targetname')}
-		22 3E 20 69 6E 73 74 65 61 64 2E 00 00 00       ) // "> instead....
-
-		.get instance default string NAnt.Core.Tasks.IfTask::get_TargetNameExists () 
-		.set instance default void NAnt.Core.Tasks.IfTask::set_TargetNameExists (string 'value') 
+		.get instance default class NAnt.Core.Types.Pattern NAnt.Core.Types.PatternCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Core.Types.PatternCollection::set_Item (int32 index, class NAnt.Core.Types.Pattern 'value') 
 	}
-	.property instance string Test ()
+	.property instance class [mscorlib]System.Collections.ArrayList List ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 74 65 73 74 00 00 ) // ...test..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default string NAnt.Core.Tasks.IfTask::get_Test () 
-		.set instance default void NAnt.Core.Tasks.IfTask::set_Test (string 'value') 
+		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.Core.Types.PatternCollection::get_List () 
 	}
-	.property instance bool ConditionsTrue ()
+	.property instance int32 Count ()
 	{
-		.get instance default bool NAnt.Core.Tasks.IfTask::get_ConditionsTrue () 
+		.get instance default int32 NAnt.Core.Types.PatternCollection::get_Count () 
 	}
-  } // end of class NAnt.Core.Tasks.IfTask
+  } // end of class NAnt.Core.Types.PatternCollection
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Types
 {
-  .class public auto ansi beforefieldinit IfNotTask
-  	extends NAnt.Core.Tasks.IfTask
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 69 66 6E 6F 74 00 00 ) // ...ifnot..
+  .class public auto ansi beforefieldinit PatternEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 1A 55 73 65 20 74 68 65 20 3C 69 66 3E 20   // ...Use the <if> 
-		74 61 73 6B 20 69 6E 73 74 65 61 64 2E 00 00 00 ) // task instead....
+    // method line 1021
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Types.PatternCollection arguments)  cil managed 
+    {
+        // Method begins at RVA 0x10d34
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.PatternEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method PatternEnumerator::.ctor
 
+    // method line 1022
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Pattern get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x10d58
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.Pattern	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.PatternEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.Core.Types.Pattern
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-    // method line 1067
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method PatternEnumerator::get_Current
+
+    // method line 1023
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x1445c
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Tasks.IfTask::'.ctor'()
-	IL_0006:  ret 
-    } // end of method IfNotTask::.ctor
+        // Method begins at RVA 0x10d80
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.PatternEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 1068
-    .method family virtual hidebysig specialname 
-           instance default bool get_ConditionsTrue ()  cil managed 
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PatternEnumerator::System.Collections.IEnumerator.get_Current
+
+    // method line 1024
+    .method public final virtual hidebysig newslot 
+           instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x14464
-	// Code size 18 (0x12)
-	.maxstack 2
+        // Method begins at RVA 0x10da0
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Tasks.IfTask::get_ConditionsTrue()
-	IL_0007:  ldc.i4.0 
-	IL_0008:  ceq 
-	IL_000a:  stloc.0 
-	IL_000b:  br IL_0010
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.PatternEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0010:  ldloc.0 
-	IL_0011:  ret 
-    } // end of method IfNotTask::get_ConditionsTrue
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PatternEnumerator::MoveNext
 
-	.property instance bool ConditionsTrue ()
+    // method line 1025
+    .method public final virtual hidebysig newslot 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x10dc0
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Types.PatternEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method PatternEnumerator::Reset
+
+	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default bool NAnt.Core.Tasks.IfNotTask::get_ConditionsTrue () 
+		.get instance default object NAnt.Core.Types.PatternEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-  } // end of class NAnt.Core.Tasks.IfNotTask
+	.property instance class NAnt.Core.Types.Pattern Current ()
+	{
+		.get instance default class NAnt.Core.Types.Pattern NAnt.Core.Types.PatternEnumerator::get_Current () 
+	}
+  } // end of class NAnt.Core.Types.PatternEnumerator
 }
 
-.namespace NAnt.Core.Tasks
+.namespace NAnt.Core.Extensibility
 {
-  .class public auto ansi beforefieldinit SetEnvTask
-  	extends NAnt.Core.Task
+  .class private auto ansi beforefieldinit FunctionArgument
+  	extends [mscorlib]System.Object
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 73 65 74 65 6E 76 00 00 ) // ...setenv..
-
-    .field  private  string _name
-    .field  private  string _value
-    .field  private  string _literalValue
-    .field  private  class [mscorlib]System.IO.FileInfo _file
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _directory
-    .field  private  class NAnt.Core.Types.PathSet _path
-    .field  private  class NAnt.Core.Types.EnvironmentVariableCollection _environmentVariables
+    .field  private initonly  int32 _index
+    .field  private initonly  string _name
+    .field  private initonly  object _value
+    .field  private initonly  valuetype NAnt.Core.ExpressionTokenizer/Position _beforeArgument
+    .field  private initonly  valuetype NAnt.Core.ExpressionTokenizer/Position _afterArgument
 
-    // method line 1069
+    // method line 1026
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (string name, int32 index, object 'value', valuetype NAnt.Core.ExpressionTokenizer/Position beforeArgument, valuetype NAnt.Core.ExpressionTokenizer/Position afterArgument)  cil managed 
     {
-        // Method begins at RVA 0x14482
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x10dce
+	// Code size 45 (0x2d)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Types.EnvironmentVariableCollection::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Tasks.SetEnvTask::_environmentVariables
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0011:  ret 
-    } // end of method SetEnvTask::.ctor
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld string NAnt.Core.Extensibility.FunctionArgument::_name
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.2 
+	IL_0010:  stfld int32 NAnt.Core.Extensibility.FunctionArgument::_index
+	IL_0015:  ldarg.0 
+	IL_0016:  ldarg.3 
+	IL_0017:  stfld object NAnt.Core.Extensibility.FunctionArgument::_value
+	IL_001c:  ldarg.0 
+	IL_001d:  ldarg.s 4
+	IL_001f:  stfld valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::_beforeArgument
+	IL_0024:  ldarg.0 
+	IL_0025:  ldarg.s 5
+	IL_0027:  stfld valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::_afterArgument
+	IL_002c:  ret 
+    } // end of method FunctionArgument::.ctor
 
-    // method line 1070
+    // method line 1027
     .method public hidebysig specialname 
-           instance default string get_EnvName ()  cil managed 
+           instance default int32 get_Index ()  cil managed 
     {
-        // Method begins at RVA 0x14498
+        // Method begins at RVA 0x10dfc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.SetEnvTask::_name
+	IL_0002:  ldfld int32 NAnt.Core.Extensibility.FunctionArgument::_index
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method SetEnvTask::get_EnvName
-
-    // method line 1071
-    .method public hidebysig specialname 
-           instance default void set_EnvName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x144b3
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.SetEnvTask::_name
-	IL_000d:  ret 
-    } // end of method SetEnvTask::set_EnvName
+    } // end of method FunctionArgument::get_Index
 
-    // method line 1072
+    // method line 1028
     .method public hidebysig specialname 
-           instance default string get_LiteralValue ()  cil managed 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x144c4
+        // Method begins at RVA 0x10e18
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.SetEnvTask::_literalValue
+	IL_0002:  ldfld string NAnt.Core.Extensibility.FunctionArgument::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method SetEnvTask::get_LiteralValue
-
-    // method line 1073
-    .method public hidebysig specialname 
-           instance default void set_LiteralValue (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x144df
-	// Code size 16 (0x10)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.SetEnvTask::_value
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  stfld string NAnt.Core.Tasks.SetEnvTask::_literalValue
-	IL_000f:  ret 
-    } // end of method SetEnvTask::set_LiteralValue
+    } // end of method FunctionArgument::get_Name
 
-    // method line 1074
+    // method line 1029
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+           instance default object get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x144f0
+        // Method begins at RVA 0x10e34
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.SetEnvTask::_file
+	IL_0002:  ldfld object NAnt.Core.Extensibility.FunctionArgument::_value
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method SetEnvTask::get_File
-
-    // method line 1075
-    .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1450b
-	// Code size 21 (0x15)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance string object::ToString()
-	IL_0008:  stfld string NAnt.Core.Tasks.SetEnvTask::_value
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.1 
-	IL_000f:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.SetEnvTask::_file
-	IL_0014:  ret 
-    } // end of method SetEnvTask::set_File
+    } // end of method FunctionArgument::get_Value
 
-    // method line 1076
+    // method line 1030
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
+           instance default valuetype NAnt.Core.ExpressionTokenizer/Position get_BeforeArgument ()  cil managed 
     {
-        // Method begins at RVA 0x14524
+        // Method begins at RVA 0x10e50
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.SetEnvTask::_directory
+	IL_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::_beforeArgument
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method SetEnvTask::get_Directory
-
-    // method line 1077
-    .method public hidebysig specialname 
-           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1453f
-	// Code size 21 (0x15)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance string object::ToString()
-	IL_0008:  stfld string NAnt.Core.Tasks.SetEnvTask::_value
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.1 
-	IL_000f:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.SetEnvTask::_directory
-	IL_0014:  ret 
-    } // end of method SetEnvTask::set_Directory
+    } // end of method FunctionArgument::get_BeforeArgument
 
-    // method line 1078
+    // method line 1031
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
+           instance default valuetype NAnt.Core.ExpressionTokenizer/Position get_AfterArgument ()  cil managed 
     {
-        // Method begins at RVA 0x14558
+        // Method begins at RVA 0x10e6c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.PathSet	V_0)
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Tasks.SetEnvTask::_path
+	IL_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::_afterArgument
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method SetEnvTask::get_Path
+    } // end of method FunctionArgument::get_AfterArgument
 
-    // method line 1079
-    .method public hidebysig specialname 
-           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
+	.property instance int32 Index ()
+	{
+		.get instance default int32 NAnt.Core.Extensibility.FunctionArgument::get_Index () 
+	}
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.Core.Extensibility.FunctionArgument::get_Name () 
+	}
+	.property instance object Value ()
+	{
+		.get instance default object NAnt.Core.Extensibility.FunctionArgument::get_Value () 
+	}
+	.property instance valuetype NAnt.Core.ExpressionTokenizer/Position BeforeArgument ()
+	{
+		.get instance default valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::get_BeforeArgument () 
+	}
+	.property instance valuetype NAnt.Core.ExpressionTokenizer/Position AfterArgument ()
+	{
+		.get instance default valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.Extensibility.FunctionArgument::get_AfterArgument () 
+	}
+  } // end of class NAnt.Core.Extensibility.FunctionArgument
+}
+
+.namespace NAnt.Core.Extensibility
+{
+  .class interface public auto ansi abstract IPluginConsumer
+  {
+
+    // method line 1032
+    .method public virtual hidebysig newslot abstract 
+           instance default void ConsumePlugin (class NAnt.Core.Extensibility.IPlugin 'type')  cil managed 
     {
-        // Method begins at RVA 0x14573
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x0
+    } // end of method IPluginConsumer::ConsumePlugin
+
+  } // end of class NAnt.Core.Extensibility.IPluginConsumer
+}
+
+.namespace NAnt.Core.Extensibility
+{
+  .class private auto ansi beforefieldinit ExtensionAssembly
+  	extends [mscorlib]System.Object
+  {
+    .field  private static  class [mscorlib]System.Collections.Hashtable _extensionAssemblies
+    .field  private initonly  class [mscorlib]System.Reflection.Assembly _assembly
+    .field  private  class [System.Xml]System.Xml.XmlNode _configurationSection
+    .field  private  bool _configurationInit
+
+    // method line 1033
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
+    {
+        // Method begins at RVA 0x10e87
+	// Code size 15 (0xf)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance string object::ToString()
-	IL_0008:  stfld string NAnt.Core.Tasks.SetEnvTask::_value
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.1 
-	IL_000f:  stfld class NAnt.Core.Types.PathSet NAnt.Core.Tasks.SetEnvTask::_path
-	IL_0014:  ret 
-    } // end of method SetEnvTask::set_Path
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionAssembly::_assembly
+	IL_000e:  ret 
+    } // end of method ExtensionAssembly::.ctor
 
-    // method line 1080
+    // method line 1034
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.EnvironmentVariableCollection get_EnvironmentVariables ()  cil managed 
+           instance default class [mscorlib]System.Reflection.Assembly get_Assembly ()  cil managed 
     {
-        // Method begins at RVA 0x1458c
+        // Method begins at RVA 0x10e98
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.EnvironmentVariableCollection	V_0)
+		class [mscorlib]System.Reflection.Assembly	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Tasks.SetEnvTask::_environmentVariables
+	IL_0002:  ldfld class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionAssembly::_assembly
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method SetEnvTask::get_EnvironmentVariables
-
-    // method line 1081
-    .method public hidebysig specialname 
-           instance default void set_EnvironmentVariables (class NAnt.Core.Types.EnvironmentVariableCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x145a7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Tasks.SetEnvTask::_environmentVariables
-	IL_0008:  ret 
-    } // end of method SetEnvTask::set_EnvironmentVariables
+    } // end of method ExtensionAssembly::get_Assembly
 
-    // method line 1082
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 1035
+    .method assembly hidebysig specialname 
+           instance default class [System.Xml]System.Xml.XmlNode get_ConfigurationSection ()  cil managed 
     {
-        // Method begins at RVA 0x145b1
-	// Code size 47 (0x2f)
-	.maxstack 8
+        // Method begins at RVA 0x10eb4
+	// Code size 115 (0x73)
+	.maxstack 2
+	.locals init (
+		class [System.Xml]System.Xml.XmlNode	V_0,
+		class [mscorlib]System.IO.Stream	V_1,
+		class [System.Xml]System.Xml.XmlDocument	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.Core.Tasks.SetEnvTask::get_EnvName()
-	IL_0007:  brtrue IL_002e
+	IL_0002:  ldfld bool NAnt.Core.Extensibility.ExtensionAssembly::_configurationInit
+	IL_0007:  brfalse IL_0018
 
 	IL_000c:  ldarg.0 
-	IL_000d:  call instance class NAnt.Core.Types.EnvironmentVariableCollection class NAnt.Core.Tasks.SetEnvTask::get_EnvironmentVariables()
-	IL_0012:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0017:  brtrue IL_002e
+	IL_000d:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Extensibility.ExtensionAssembly::_configurationSection
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0071
 
-	IL_001c:  nop 
-	IL_001d:  ldstr "Either the \"name\" attribute or at least one nested <variable> element is required."
-	IL_0022:  ldarg.0 
-	IL_0023:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0028:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_002d:  throw 
-	IL_002e:  ret 
-    } // end of method SetEnvTask::Initialize
+	.try { // 1
+	  IL_0018:  nop 
+	  IL_0019:  ldarg.0 
+	  IL_001a:  ldfld class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionAssembly::_assembly
+	  IL_001f:  ldstr "NAnt.Extension.config"
+	  IL_0024:  callvirt instance class [mscorlib]System.IO.Stream class [mscorlib]System.Reflection.Assembly::GetManifestResourceStream(string)
+	  IL_0029:  stloc.1 
+	  IL_002a:  ldloc.1 
+	  IL_002b:  brfalse IL_005b
 
-    // method line 1083
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+	  IL_0030:  nop 
+	  .try { // 0
+	    IL_0031:  nop 
+	    IL_0032:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
+	    IL_0037:  stloc.2 
+	    IL_0038:  ldloc.2 
+	    IL_0039:  ldloc.1 
+	    IL_003a:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(class [mscorlib]System.IO.Stream)
+	    IL_003f:  ldarg.0 
+	    IL_0040:  ldloc.2 
+	    IL_0041:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	    IL_0046:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Extensibility.ExtensionAssembly::_configurationSection
+	    IL_004b:  nop 
+	    IL_004c:  leave IL_005a
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_0051:  nop 
+	    IL_0052:  ldloc.1 
+	    IL_0053:  callvirt instance void class [mscorlib]System.IO.Stream::Close()
+	    IL_0058:  nop 
+	    IL_0059:  endfinally 
+	  } // end handler 0
+	  IL_005a:  nop 
+	  IL_005b:  ldarg.0 
+	  IL_005c:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Extensibility.ExtensionAssembly::_configurationSection
+	  IL_0061:  stloc.0 
+	  IL_0062:  leave IL_0071
+
+	} // end .try 1
+	finally  { // 1
+	  IL_0067:  nop 
+	  IL_0068:  ldarg.0 
+	  IL_0069:  ldc.i4.1 
+	  IL_006a:  stfld bool NAnt.Core.Extensibility.ExtensionAssembly::_configurationInit
+	  IL_006f:  nop 
+	  IL_0070:  endfinally 
+	} // end handler 1
+	IL_0071:  ldloc.0 
+	IL_0072:  ret 
+    } // end of method ExtensionAssembly::get_ConfigurationSection
+
+    // method line 1036
+    .method public static hidebysig 
+           default class NAnt.Core.Extensibility.ExtensionAssembly Create (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
     {
-        // Method begins at RVA 0x145e4
-	// Code size 149 (0x95)
+        // Method begins at RVA 0x10f50
+	// Code size 84 (0x54)
 	.maxstack 3
 	.locals init (
-		class NAnt.Core.Types.EnvironmentVariable	V_0,
-		class NAnt.Core.Types.EnvironmentVariableEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2)
+		string	V_0,
+		class NAnt.Core.Extensibility.ExtensionAssembly	V_1,
+		class NAnt.Core.Extensibility.ExtensionAssembly	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.Core.Tasks.SetEnvTask::get_EnvName()
-	IL_0007:  brfalse IL_002b
+	IL_0002:  ldnull 
+	IL_0003:  call bool class [mscorlib]System.Reflection.Assembly::op_Equality(class [mscorlib]System.Reflection.Assembly, class [mscorlib]System.Reflection.Assembly)
+	IL_0008:  brfalse IL_0018
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class NAnt.Core.Types.EnvironmentVariableCollection class NAnt.Core.Tasks.SetEnvTask::get_EnvironmentVariables()
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance string class NAnt.Core.Tasks.SetEnvTask::get_EnvName()
+	IL_000d:  ldstr "assembly"
+	IL_0012:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0017:  throw 
+	IL_0018:  ldarg.0 
+	IL_0019:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
+	IL_001e:  stloc.0 
+	IL_001f:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Extensibility.ExtensionAssembly::_extensionAssemblies
+	IL_0024:  ldloc.0 
+	IL_0025:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_002a:  isinst NAnt.Core.Extensibility.ExtensionAssembly
+	IL_002f:  stloc.1 
+	IL_0030:  ldloc.1 
+	IL_0031:  brtrue IL_004b
+
+	IL_0036:  nop 
+	IL_0037:  ldarg.0 
+	IL_0038:  newobj instance void class NAnt.Core.Extensibility.ExtensionAssembly::'.ctor'(class [mscorlib]System.Reflection.Assembly)
+	IL_003d:  stloc.1 
+	IL_003e:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Extensibility.ExtensionAssembly::_extensionAssemblies
+	IL_0043:  ldloc.0 
+	IL_0044:  ldarg.0 
+	IL_0045:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_004a:  nop 
+	IL_004b:  ldloc.1 
+	IL_004c:  stloc.2 
+	IL_004d:  br IL_0052
+
+	IL_0052:  ldloc.2 
+	IL_0053:  ret 
+    } // end of method ExtensionAssembly::Create
+
+    // method line 1037
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x10fb0
+	// Code size 11 (0xb)
+	.maxstack 8
+	IL_0000:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0005:  stsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Extensibility.ExtensionAssembly::_extensionAssemblies
+	IL_000a:  ret 
+    } // end of method ExtensionAssembly::.cctor
+
+	.property instance class [mscorlib]System.Reflection.Assembly Assembly ()
+	{
+		.get instance default class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionAssembly::get_Assembly () 
+	}
+	.property instance class [System.Xml]System.Xml.XmlNode ConfigurationSection ()
+	{
+		.get instance default class [System.Xml]System.Xml.XmlNode NAnt.Core.Extensibility.ExtensionAssembly::get_ConfigurationSection () 
+	}
+  } // end of class NAnt.Core.Extensibility.ExtensionAssembly
+}
+
+.namespace NAnt.Core.Extensibility
+{
+  .class interface public auto ansi abstract IPlugin
+  {
+
+  } // end of class NAnt.Core.Extensibility.IPlugin
+}
+
+.namespace NAnt.Core.Extensibility
+{
+  .class public auto ansi abstract beforefieldinit ExtensionBuilder
+  	extends [mscorlib]System.Object
+  {
+    .field  private initonly  class NAnt.Core.Extensibility.ExtensionAssembly _extensionAssembly
+
+    // method line 1038
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly)  cil managed 
+    {
+        // Method begins at RVA 0xb23c
+	// Code size 33 (0x21)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  brtrue IL_0019
+
+	IL_000d:  nop 
+	IL_000e:  ldstr "extensionAssembly"
+	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0018:  throw 
 	IL_0019:  ldarg.0 
-	IL_001a:  ldfld string NAnt.Core.Tasks.SetEnvTask::_value
-	IL_001f:  newobj instance void class NAnt.Core.Types.EnvironmentVariable::'.ctor'(string, string)
-	IL_0024:  callvirt instance int32 class NAnt.Core.Types.EnvironmentVariableCollection::Add(class NAnt.Core.Types.EnvironmentVariable)
-	IL_0029:  pop 
-	IL_002a:  nop 
-	IL_002b:  nop 
-	IL_002c:  ldarg.0 
-	IL_002d:  call instance class NAnt.Core.Types.EnvironmentVariableCollection class NAnt.Core.Tasks.SetEnvTask::get_EnvironmentVariables()
-	IL_0032:  callvirt instance class NAnt.Core.Types.EnvironmentVariableEnumerator class NAnt.Core.Types.EnvironmentVariableCollection::GetEnumerator()
-	IL_0037:  stloc.1 
+	IL_001a:  ldarg.1 
+	IL_001b:  stfld class NAnt.Core.Extensibility.ExtensionAssembly NAnt.Core.Extensibility.ExtensionBuilder::_extensionAssembly
+	IL_0020:  ret 
+    } // end of method ExtensionBuilder::.ctor
+
+    // method line 1039
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
+    {
+        // Method begins at RVA 0xb25e
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call class NAnt.Core.Extensibility.ExtensionAssembly class NAnt.Core.Extensibility.ExtensionAssembly::Create(class [mscorlib]System.Reflection.Assembly)
+	IL_0007:  call instance void class NAnt.Core.Extensibility.ExtensionBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly)
+	IL_000c:  nop 
+	IL_000d:  ret 
+    } // end of method ExtensionBuilder::.ctor
+
+    // method line 1040
+    .method assembly hidebysig specialname 
+           instance default class NAnt.Core.Extensibility.ExtensionAssembly get_ExtensionAssembly ()  cil managed 
+    {
+        // Method begins at RVA 0xb270
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Extensibility.ExtensionAssembly	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Extensibility.ExtensionAssembly NAnt.Core.Extensibility.ExtensionBuilder::_extensionAssembly
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExtensionBuilder::get_ExtensionAssembly
+
+    // method line 1041
+    .method famorassem hidebysig specialname 
+           instance default class [mscorlib]System.Reflection.Assembly get_Assembly ()  cil managed 
+    {
+        // Method begins at RVA 0xb28c
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Reflection.Assembly	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Extensibility.ExtensionAssembly class NAnt.Core.Extensibility.ExtensionBuilder::get_ExtensionAssembly()
+	IL_0007:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionAssembly::get_Assembly()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ExtensionBuilder::get_Assembly
+
+	.property instance class NAnt.Core.Extensibility.ExtensionAssembly ExtensionAssembly ()
+	{
+		.get instance default class NAnt.Core.Extensibility.ExtensionAssembly NAnt.Core.Extensibility.ExtensionBuilder::get_ExtensionAssembly () 
+	}
+	.property instance class [mscorlib]System.Reflection.Assembly Assembly ()
+	{
+		.get instance default class [mscorlib]System.Reflection.Assembly NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly () 
+	}
+  } // end of class NAnt.Core.Extensibility.ExtensionBuilder
+}
+
+.namespace NAnt.Core.Extensibility
+{
+  .class public auto ansi sealed beforefieldinit PluginConsumerAttribute
+  	extends [mscorlib]System.Attribute
+  {
+    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
+		01 00 04 00 00 00 02 00 54 02 09 49 6E 68 65 72   // ........T..Inher
+		69 74 65 64 00 54 02 0D 41 6C 6C 6F 77 4D 75 6C   // ited.T..AllowMul
+		74 69 70 6C 65 01                               ) // tiple.
+
+    .field  private  class [mscorlib]System.Type _type
+
+    // method line 1042
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Type 'type')  cil managed 
+    {
+        // Method begins at RVA 0x10fbc
+	// Code size 39 (0x27)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  ldnull 
+	IL_0009:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_000e:  brfalse IL_001f
+
+	IL_0013:  nop 
+	IL_0014:  ldstr "type"
+	IL_0019:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_001e:  throw 
+	IL_001f:  ldarg.0 
+	IL_0020:  ldarg.1 
+	IL_0021:  stfld class [mscorlib]System.Type NAnt.Core.Extensibility.PluginConsumerAttribute::_type
+	IL_0026:  ret 
+    } // end of method PluginConsumerAttribute::.ctor
+
+    // method line 1043
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Type get_PluginType ()  cil managed 
+    {
+        // Method begins at RVA 0x10fe4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Type	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.Core.Extensibility.PluginConsumerAttribute::_type
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PluginConsumerAttribute::get_PluginType
+
+	.property instance class [mscorlib]System.Type PluginType ()
+	{
+		.get instance default class [mscorlib]System.Type NAnt.Core.Extensibility.PluginConsumerAttribute::get_PluginType () 
+	}
+  } // end of class NAnt.Core.Extensibility.PluginConsumerAttribute
+}
+
+.namespace NAnt.Core.Extensibility
+{
+  .class private auto ansi beforefieldinit PluginBuilder
+  	extends NAnt.Core.Extensibility.ExtensionBuilder
+  {
+    .field  private initonly  class [mscorlib]System.Type _pluginType
+
+    // method line 1044
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, class [mscorlib]System.Type pluginType)  cil managed 
+    {
+        // Method begins at RVA 0x10fff
+	// Code size 16 (0x10)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class NAnt.Core.Extensibility.ExtensionBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly)
+	IL_0007:  nop 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.2 
+	IL_000a:  stfld class [mscorlib]System.Type NAnt.Core.Extensibility.PluginBuilder::_pluginType
+	IL_000f:  ret 
+    } // end of method PluginBuilder::.ctor
+
+    // method line 1045
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Type get_PluginType ()  cil managed 
+    {
+        // Method begins at RVA 0x11010
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Type	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.Core.Extensibility.PluginBuilder::_pluginType
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PluginBuilder::get_PluginType
+
+    // method line 1046
+    .method public hidebysig 
+           instance default class NAnt.Core.Extensibility.IPlugin CreatePlugin ()  cil managed 
+    {
+        // Method begins at RVA 0x1102c
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Extensibility.IPlugin	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Type class NAnt.Core.Extensibility.PluginBuilder::get_PluginType()
+	IL_0007:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type)
+	IL_000c:  castclass NAnt.Core.Extensibility.IPlugin
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method PluginBuilder::CreatePlugin
+
+	.property instance class [mscorlib]System.Type PluginType ()
+	{
+		.get instance default class [mscorlib]System.Type NAnt.Core.Extensibility.PluginBuilder::get_PluginType () 
+	}
+  } // end of class NAnt.Core.Extensibility.PluginBuilder
+}
+
+.namespace NAnt.Core.Extensibility
+{
+  .class private auto ansi beforefieldinit PluginScanner
+  	extends [mscorlib]System.Object
+  {
+    .field  private initonly  class [mscorlib]System.Collections.ArrayList _pluginBuilders
+
+    // method line 1047
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x11051
+	// Code size 18 (0x12)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0006:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Extensibility.PluginScanner::_pluginBuilders
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void object::'.ctor'()
+	IL_0011:  ret 
+    } // end of method PluginScanner::.ctor
+
+    // method line 1048
+    .method public hidebysig 
+           instance default bool ScanTypeForPlugins (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, class [mscorlib]System.Type 'type', class NAnt.Core.Task task)  cil managed 
+    {
+        // Method begins at RVA 0x11064
+	// Code size 116 (0x74)
+	.maxstack 7
+	.locals init (
+		bool	V_0,
+		bool	V_1,
+		class NAnt.Core.Extensibility.PluginBuilder	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.2 
+	IL_0002:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
+	IL_0007:  brfalse IL_0013
+
+	IL_000c:  ldc.i4.0 
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0072
+
 	.try { // 0
-	  IL_0038:  br IL_0070
+	  IL_0013:  nop 
+	  IL_0014:  ldtoken NAnt.Core.Extensibility.IPlugin
+	  IL_0019:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_001e:  ldarg.2 
+	  IL_001f:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	  IL_0024:  stloc.1 
+	  IL_0025:  ldloc.1 
+	  IL_0026:  brtrue IL_0033
 
-	  IL_003d:  ldloc.1 
-	  IL_003e:  callvirt instance class NAnt.Core.Types.EnvironmentVariable class NAnt.Core.Types.EnvironmentVariableEnumerator::get_Current()
-	  IL_0043:  stloc.0 
-	  IL_0044:  nop 
-	  IL_0045:  ldloc.0 
-	  IL_0046:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_IfDefined()
-	  IL_004b:  brfalse IL_006f
+	  IL_002b:  nop 
+	  IL_002c:  ldc.i4.0 
+	  IL_002d:  stloc.0 
+	  IL_002e:  leave IL_0072
 
-	  IL_0050:  ldloc.0 
-	  IL_0051:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_UnlessDefined()
-	  IL_0056:  brtrue IL_006f
+	  IL_0033:  ldarg.1 
+	  IL_0034:  ldarg.2 
+	  IL_0035:  newobj instance void class NAnt.Core.Extensibility.PluginBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, class [mscorlib]System.Type)
+	  IL_003a:  stloc.2 
+	  IL_003b:  ldarg.0 
+	  IL_003c:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Extensibility.PluginScanner::_pluginBuilders
+	  IL_0041:  ldloc.2 
+	  IL_0042:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0047:  pop 
+	  IL_0048:  ldc.i4.1 
+	  IL_0049:  stloc.0 
+	  IL_004a:  leave IL_0072
 
-	  IL_005b:  nop 
-	  IL_005c:  ldarg.0 
-	  IL_005d:  ldloc.0 
-	  IL_005e:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_VariableName()
-	  IL_0063:  ldloc.0 
-	  IL_0064:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_Value()
-	  IL_0069:  call instance void class NAnt.Core.Tasks.SetEnvTask::SetSingleEnvironmentVariable(string, string)
+	} // end .try 0
+	catch class [mscorlib]System.Object { // 0
+	  IL_004f:  pop 
+	  IL_0050:  nop 
+	  IL_0051:  ldarg.3 
+	  IL_0052:  ldc.i4 5000
+	  IL_0057:  ldstr "Failure scanning \"{0}\" for plugins."
+	  IL_005c:  ldc.i4.1 
+	  IL_005d:  newarr [mscorlib]System.Object
+	  IL_0062:  dup 
+	  IL_0063:  ldc.i4.0 
+	  IL_0064:  ldarg.2 
+	  IL_0065:  callvirt instance string class [mscorlib]System.Type::get_AssemblyQualifiedName()
+	  IL_006a:  stelem.ref 
+	  IL_006b:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0070:  rethrow 
+	} // end handler 0
+	IL_0072:  ldloc.0 
+	IL_0073:  ret 
+    } // end of method PluginScanner::ScanTypeForPlugins
+
+    // method line 1049
+    .method public hidebysig 
+           instance default void RegisterPlugins (class NAnt.Core.Extensibility.IPluginConsumer consumer)  cil managed 
+    {
+        // Method begins at RVA 0x110f4
+	// Code size 209 (0xd1)
+	.maxstack 3
+	.locals init (
+		object[]	V_0,
+		class NAnt.Core.Extensibility.PluginBuilder	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class NAnt.Core.Extensibility.PluginConsumerAttribute	V_3,
+		object[]	V_4,
+		int32	V_5,
+		class [mscorlib]System.IDisposable	V_6)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
+
+	IL_0007:  nop 
+	IL_0008:  ldstr "consumer"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.1 
+	IL_0014:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0019:  ldtoken NAnt.Core.Extensibility.PluginConsumerAttribute
+	IL_001e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0023:  ldc.i4.0 
+	IL_0024:  callvirt instance object[] class [mscorlib]System.Reflection.MemberInfo::GetCustomAttributes(class [mscorlib]System.Type, bool)
+	IL_0029:  stloc.0 
+	IL_002a:  ldloc.0 
+	IL_002b:  ldlen 
+	IL_002c:  conv.i4 
+	IL_002d:  brtrue IL_0038
+
+	IL_0032:  nop 
+	IL_0033:  br IL_00d0
+
+	IL_0038:  nop 
+	IL_0039:  ldarg.0 
+	IL_003a:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Extensibility.PluginScanner::_pluginBuilders
+	IL_003f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0044:  stloc.2 
+	.try { // 0
+	  IL_0045:  br IL_00aa
+
+	  IL_004a:  ldloc.2 
+	  IL_004b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0050:  castclass NAnt.Core.Extensibility.PluginBuilder
+	  IL_0055:  stloc.1 
+	  IL_0056:  nop 
+	  IL_0057:  nop 
+	  IL_0058:  ldloc.0 
+	  IL_0059:  stloc.s 4
+	  IL_005b:  ldc.i4.0 
+	  IL_005c:  stloc.s 5
+	  IL_005e:  br IL_009e
+
+	  IL_0063:  ldloc.s 4
+	  IL_0065:  ldloc.s 5
+	  IL_0067:  ldelem.ref 
+	  IL_0068:  castclass NAnt.Core.Extensibility.PluginConsumerAttribute
+	  IL_006d:  stloc.3 
 	  IL_006e:  nop 
-	  IL_006f:  nop 
-	  IL_0070:  ldloc.1 
-	  IL_0071:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariableEnumerator::MoveNext()
-	  IL_0076:  brtrue IL_003d
+	  IL_006f:  ldloc.3 
+	  IL_0070:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Extensibility.PluginConsumerAttribute::get_PluginType()
+	  IL_0075:  ldloc.1 
+	  IL_0076:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Extensibility.PluginBuilder::get_PluginType()
+	  IL_007b:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	  IL_0080:  brfalse IL_0097
 
-	  IL_007b:  leave IL_0094
+	  IL_0085:  nop 
+	  IL_0086:  ldarg.1 
+	  IL_0087:  ldloc.1 
+	  IL_0088:  callvirt instance class NAnt.Core.Extensibility.IPlugin class NAnt.Core.Extensibility.PluginBuilder::CreatePlugin()
+	  IL_008d:  callvirt instance void class NAnt.Core.Extensibility.IPluginConsumer::ConsumePlugin(class NAnt.Core.Extensibility.IPlugin)
+	  IL_0092:  leave IL_00a9
+
+	  IL_0097:  nop 
+	  IL_0098:  ldloc.s 5
+	  IL_009a:  ldc.i4.1 
+	  IL_009b:  add 
+	  IL_009c:  stloc.s 5
+	  IL_009e:  ldloc.s 5
+	  IL_00a0:  ldloc.s 4
+	  IL_00a2:  ldlen 
+	  IL_00a3:  conv.i4 
+	  IL_00a4:  blt IL_0063
+
+	  IL_00a9:  nop 
+	  IL_00aa:  ldloc.2 
+	  IL_00ab:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00b0:  brtrue IL_004a
+
+	  IL_00b5:  leave IL_00d0
 
 	} // end .try 0
 	finally  { // 0
-	  IL_0080:  ldloc.1 
-	  IL_0081:  isinst [mscorlib]System.IDisposable
-	  IL_0086:  dup 
-	  IL_0087:  stloc.2 
-	  IL_0088:  brfalse IL_0093
+	  IL_00ba:  ldloc.2 
+	  IL_00bb:  isinst [mscorlib]System.IDisposable
+	  IL_00c0:  dup 
+	  IL_00c1:  stloc.s 6
+	  IL_00c3:  brfalse IL_00cf
 
-	  IL_008d:  ldloc.2 
-	  IL_008e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0093:  endfinally 
+	  IL_00c8:  ldloc.s 6
+	  IL_00ca:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00cf:  endfinally 
 	} // end handler 0
-	IL_0094:  ret 
-    } // end of method SetEnvTask::ExecuteTask
+	IL_00d0:  ret 
+    } // end of method PluginScanner::RegisterPlugins
 
-    // method line 1084
-    .method private hidebysig 
-           instance default void SetSingleEnvironmentVariable (string name, string 'value')  cil managed 
+  } // end of class NAnt.Core.Extensibility.PluginScanner
+}
+
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit TStampTask
+  	extends NAnt.Core.Task
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 74 73 74 61 6D 70 00 00 ) // ...tstamp..
+
+    .field  private  string _property
+    .field  private  string _pattern
+    .field  private  class NAnt.Core.Types.FormatterCollection _formatters
+
+    // method line 1050
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x14698
-	// Code size 95 (0x5f)
-	.maxstack 7
+        // Method begins at RVA 0x119d2
+	// Code size 18 (0x12)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class NAnt.Core.Types.FormatterCollection::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.Types.FormatterCollection NAnt.Core.Tasks.TStampTask::_formatters
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0011:  ret 
+    } // end of method TStampTask::.ctor
+
+    // method line 1051
+    .method public hidebysig specialname 
+           instance default string get_Property ()  cil managed 
+    {
+        // Method begins at RVA 0x119e8
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		class [mscorlib]System.Exception	V_1)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 2000
-	IL_0007:  ldstr "Setting environment variable \"{0}\" to \"{1}\"."
-	IL_000c:  ldc.i4.2 
-	IL_000d:  newarr [mscorlib]System.Object
-	IL_0012:  dup 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  stelem.ref 
-	IL_0016:  dup 
-	IL_0017:  ldc.i4.1 
-	IL_0018:  ldarg.2 
-	IL_0019:  stelem.ref 
-	IL_001a:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_001f:  ldnull 
-	IL_0020:  stloc.0 
-	IL_0021:  ldarg.2 
-	IL_0022:  brfalse IL_0030
+	IL_0002:  ldfld string NAnt.Core.Tasks.TStampTask::_property
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0027:  nop 
-	IL_0028:  ldarg.2 
-	IL_0029:  call string class [mscorlib]System.Environment::ExpandEnvironmentVariables(string)
-	IL_002e:  stloc.0 
-	IL_002f:  nop 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TStampTask::get_Property
+
+    // method line 1052
+    .method public hidebysig specialname 
+           instance default void set_Property (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x11a03
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Tasks.TStampTask::_property
+	IL_0008:  ret 
+    } // end of method TStampTask::set_Property
+
+    // method line 1053
+    .method public hidebysig specialname 
+           instance default string get_Pattern ()  cil managed 
+    {
+        // Method begins at RVA 0x11a10
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Tasks.TStampTask::_pattern
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TStampTask::get_Pattern
+
+    // method line 1054
+    .method public hidebysig specialname 
+           instance default void set_Pattern (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x11a2b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Tasks.TStampTask::_pattern
+	IL_0008:  ret 
+    } // end of method TStampTask::set_Pattern
+
+    // method line 1055
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FormatterCollection get_Formatters ()  cil managed 
+    {
+        // Method begins at RVA 0x11a38
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.FormatterCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Types.FormatterCollection NAnt.Core.Tasks.TStampTask::_formatters
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TStampTask::get_Formatters
+
+    // method line 1056
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x11a54
+	// Code size 447 (0x1bf)
+	.maxstack 8
+	.locals init (
+		valuetype [mscorlib]System.DateTime	V_0,
+		class NAnt.Core.Types.Formatter	V_1,
+		class NAnt.Core.Types.FormatterEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3)
+	IL_0000:  nop 
+	IL_0001:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldc.i4 3000
+	IL_000d:  ldstr "{0} {1}."
+	IL_0012:  ldc.i4.2 
+	IL_0013:  newarr [mscorlib]System.Object
+	IL_0018:  dup 
+	IL_0019:  ldc.i4.0 
+	IL_001a:  ldloca.s 0
+	IL_001c:  call instance string valuetype [mscorlib]System.DateTime::ToLongDateString()
+	IL_0021:  stelem.ref 
+	IL_0022:  dup 
+	IL_0023:  ldc.i4.1 
+	IL_0024:  ldloca.s 0
+	IL_0026:  call instance string valuetype [mscorlib]System.DateTime::ToLongTimeString()
+	IL_002b:  stelem.ref 
+	IL_002c:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0031:  ldarg.0 
+	IL_0032:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0037:  ldstr "tstamp.date"
+	IL_003c:  ldloca.s 0
+	IL_003e:  ldstr "yyyyMMdd"
+	IL_0043:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0048:  call instance string valuetype [mscorlib]System.DateTime::ToString(string, class [mscorlib]System.IFormatProvider)
+	IL_004d:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0052:  ldarg.0 
+	IL_0053:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0058:  ldstr "tstamp.time"
+	IL_005d:  ldloca.s 0
+	IL_005f:  ldstr "HHmm"
+	IL_0064:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0069:  call instance string valuetype [mscorlib]System.DateTime::ToString(string, class [mscorlib]System.IFormatProvider)
+	IL_006e:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0073:  ldarg.0 
+	IL_0074:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0079:  ldstr "tstamp.now"
+	IL_007e:  ldloca.s 0
+	IL_0080:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0085:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
+	IL_008a:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_008f:  ldarg.0 
+	IL_0090:  ldfld string NAnt.Core.Tasks.TStampTask::_property
+	IL_0095:  brfalse IL_0107
+
+	IL_009a:  ldarg.0 
+	IL_009b:  ldfld string NAnt.Core.Tasks.TStampTask::_pattern
+	IL_00a0:  brfalse IL_0107
+
+	IL_00a5:  nop 
+	IL_00a6:  ldarg.0 
+	IL_00a7:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_00ac:  ldarg.0 
+	IL_00ad:  ldfld string NAnt.Core.Tasks.TStampTask::_property
+	IL_00b2:  ldloca.s 0
+	IL_00b4:  ldarg.0 
+	IL_00b5:  ldfld string NAnt.Core.Tasks.TStampTask::_pattern
+	IL_00ba:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00bf:  call instance string valuetype [mscorlib]System.DateTime::ToString(string, class [mscorlib]System.IFormatProvider)
+	IL_00c4:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_00c9:  ldarg.0 
+	IL_00ca:  ldc.i4 2000
+	IL_00cf:  ldstr "{0} = {1}."
+	IL_00d4:  ldc.i4.2 
+	IL_00d5:  newarr [mscorlib]System.Object
+	IL_00da:  dup 
+	IL_00db:  ldc.i4.0 
+	IL_00dc:  ldarg.0 
+	IL_00dd:  ldfld string NAnt.Core.Tasks.TStampTask::_property
+	IL_00e2:  stelem.ref 
+	IL_00e3:  dup 
+	IL_00e4:  ldc.i4.1 
+	IL_00e5:  ldarg.0 
+	IL_00e6:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_00eb:  ldarg.0 
+	IL_00ec:  ldfld string NAnt.Core.Tasks.TStampTask::_property
+	IL_00f1:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
+	IL_00f6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00fb:  callvirt instance string string::ToString(class [mscorlib]System.IFormatProvider)
+	IL_0100:  stelem.ref 
+	IL_0101:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0106:  nop 
+	IL_0107:  nop 
+	IL_0108:  ldarg.0 
+	IL_0109:  call instance class NAnt.Core.Types.FormatterCollection class NAnt.Core.Tasks.TStampTask::get_Formatters()
+	IL_010e:  callvirt instance class NAnt.Core.Types.FormatterEnumerator class NAnt.Core.Types.FormatterCollection::GetEnumerator()
+	IL_0113:  stloc.2 
 	.try { // 0
-	  IL_0030:  nop 
-	  IL_0031:  ldarg.1 
-	  IL_0032:  ldloc.0 
-	  IL_0033:  call void class [mscorlib]System.Environment::SetEnvironmentVariable(string, string)
-	  IL_0038:  nop 
-	  IL_0039:  leave IL_005e
+	  IL_0114:  br IL_019a
+
+	  IL_0119:  ldloc.2 
+	  IL_011a:  callvirt instance class NAnt.Core.Types.Formatter class NAnt.Core.Types.FormatterEnumerator::get_Current()
+	  IL_011f:  stloc.1 
+	  IL_0120:  nop 
+	  IL_0121:  ldarg.0 
+	  IL_0122:  call instance bool class NAnt.Core.Task::get_IfDefined()
+	  IL_0127:  brfalse IL_0199
+
+	  IL_012c:  ldarg.0 
+	  IL_012d:  call instance bool class NAnt.Core.Task::get_UnlessDefined()
+	  IL_0132:  brtrue IL_0199
+
+	  IL_0137:  nop 
+	  IL_0138:  ldarg.0 
+	  IL_0139:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	  IL_013e:  ldloc.1 
+	  IL_013f:  callvirt instance string class NAnt.Core.Types.Formatter::get_Property()
+	  IL_0144:  ldloca.s 0
+	  IL_0146:  ldloc.1 
+	  IL_0147:  callvirt instance string class NAnt.Core.Types.Formatter::get_Pattern()
+	  IL_014c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0151:  call instance string valuetype [mscorlib]System.DateTime::ToString(string, class [mscorlib]System.IFormatProvider)
+	  IL_0156:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	  IL_015b:  ldarg.0 
+	  IL_015c:  ldc.i4 2000
+	  IL_0161:  ldstr "{0} = {1}."
+	  IL_0166:  ldc.i4.2 
+	  IL_0167:  newarr [mscorlib]System.Object
+	  IL_016c:  dup 
+	  IL_016d:  ldc.i4.0 
+	  IL_016e:  ldloc.1 
+	  IL_016f:  callvirt instance string class NAnt.Core.Types.Formatter::get_Property()
+	  IL_0174:  stelem.ref 
+	  IL_0175:  dup 
+	  IL_0176:  ldc.i4.1 
+	  IL_0177:  ldarg.0 
+	  IL_0178:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	  IL_017d:  ldloc.1 
+	  IL_017e:  callvirt instance string class NAnt.Core.Types.Formatter::get_Property()
+	  IL_0183:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
+	  IL_0188:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_018d:  callvirt instance string string::ToString(class [mscorlib]System.IFormatProvider)
+	  IL_0192:  stelem.ref 
+	  IL_0193:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0198:  nop 
+	  IL_0199:  nop 
+	  IL_019a:  ldloc.2 
+	  IL_019b:  callvirt instance bool class NAnt.Core.Types.FormatterEnumerator::MoveNext()
+	  IL_01a0:  brtrue IL_0119
+
+	  IL_01a5:  leave IL_01be
 
 	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_003e:  stloc.1 
-	  IL_003f:  nop 
-	  IL_0040:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0045:  ldstr "Error setting environment variable \"{0}\" to \"{1}\"."
-	  IL_004a:  ldarg.1 
-	  IL_004b:  ldarg.2 
-	  IL_004c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0051:  ldarg.0 
-	  IL_0052:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0057:  ldloc.1 
-	  IL_0058:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_005d:  throw 
+	finally  { // 0
+	  IL_01aa:  ldloc.2 
+	  IL_01ab:  isinst [mscorlib]System.IDisposable
+	  IL_01b0:  dup 
+	  IL_01b1:  stloc.3 
+	  IL_01b2:  brfalse IL_01bd
+
+	  IL_01b7:  ldloc.3 
+	  IL_01b8:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01bd:  endfinally 
 	} // end handler 0
-	IL_005e:  ret 
-    } // end of method SetEnvTask::SetSingleEnvironmentVariable
+	IL_01be:  ret 
+    } // end of method TStampTask::ExecuteTask
 
-	.property instance string EnvName ()
+	.property instance string Property ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 6E 61 6D 65 00 00 ) // ...name..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
+		52 65 71 75 69 72 65 64 00                      ) // Required.
 
-		.get instance default string NAnt.Core.Tasks.SetEnvTask::get_EnvName () 
-		.set instance default void NAnt.Core.Tasks.SetEnvTask::set_EnvName (string 'value') 
+		.get instance default string NAnt.Core.Tasks.TStampTask::get_Property () 
+		.set instance default void NAnt.Core.Tasks.TStampTask::set_Property (string 'value') 
 	}
-	.property instance string LiteralValue ()
+	.property instance string Pattern ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 76 61 6C 75 65 00 00 ) // ...value..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 70 61 74 74 65 72 6E 01 00 54 02 08 52   // ...pattern..T..R
+		65 71 75 69 72 65 64 00                         ) // equired.
 
-		.get instance default string NAnt.Core.Tasks.SetEnvTask::get_LiteralValue () 
-		.set instance default void NAnt.Core.Tasks.SetEnvTask::set_LiteralValue (string 'value') 
+		.get instance default string NAnt.Core.Tasks.TStampTask::get_Pattern () 
+		.set instance default void NAnt.Core.Tasks.TStampTask::set_Pattern (string 'value') 
 	}
-	.property instance class [mscorlib]System.IO.FileInfo File ()
+	.property instance class NAnt.Core.Types.FormatterCollection Formatters ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 09 66 6F 72 6D 61 74 74 65 72 00 00 ) // ...formatter..
+
+		.get instance default class NAnt.Core.Types.FormatterCollection NAnt.Core.Tasks.TStampTask::get_Formatters () 
+	}
+  } // end of class NAnt.Core.Tasks.TStampTask
+}
+
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit MoveTask
+  	extends NAnt.Core.Tasks.CopyTask
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 6D 6F 76 65 00 00 ) // ...move..
+
+
+    // method line 1057
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x12f55
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Tasks.CopyTask::'.ctor'()
+	IL_0006:  ret 
+    } // end of method MoveTask::.ctor
+
+    // method line 1058
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_SourceFile ()  cil managed 
+    {
+        // Method begins at RVA 0x12f60
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MoveTask::get_SourceFile
+
+    // method line 1059
+    .method public virtual hidebysig specialname 
+           instance default void set_SourceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x12f7b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Tasks.CopyTask::set_SourceFile(class [mscorlib]System.IO.FileInfo)
+	IL_0008:  ret 
+    } // end of method MoveTask::set_SourceFile
+
+    // method line 1060
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_ToFile ()  cil managed 
+    {
+        // Method begins at RVA 0x12f88
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MoveTask::get_ToFile
+
+    // method line 1061
+    .method public virtual hidebysig specialname 
+           instance default void set_ToFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x12fa3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Tasks.CopyTask::set_ToFile(class [mscorlib]System.IO.FileInfo)
+	IL_0008:  ret 
+    } // end of method MoveTask::set_ToFile
+
+    // method line 1062
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x12fb0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MoveTask::get_ToDirectory
+
+    // method line 1063
+    .method public virtual hidebysig specialname 
+           instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x12fcb
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Tasks.CopyTask::set_ToDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_0008:  ret 
+    } // end of method MoveTask::set_ToDirectory
+
+    // method line 1064
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_CopyFileSet ()  cil managed 
+    {
+        // Method begins at RVA 0x12fd8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.FileSet	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MoveTask::get_CopyFileSet
+
+    // method line 1065
+    .method public virtual hidebysig specialname 
+           instance default void set_CopyFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x12ff3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Tasks.CopyTask::set_CopyFileSet(class NAnt.Core.Types.FileSet)
+	IL_0008:  ret 
+    } // end of method MoveTask::set_CopyFileSet
+
+    // method line 1066
+    .method public virtual hidebysig specialname 
+           instance default bool get_Flatten ()  cil managed 
+    {
+        // Method begins at RVA 0x13000
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MoveTask::get_Flatten
+
+    // method line 1067
+    .method public virtual hidebysig specialname 
+           instance default void set_Flatten (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1301b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Tasks.CopyTask::set_Flatten(bool)
+	IL_0008:  ret 
+    } // end of method MoveTask::set_Flatten
+
+    // method line 1068
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.Core.Filters.FilterChain get_Filters ()  cil managed 
+    {
+        // Method begins at RVA 0x13028
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Filters.FilterChain	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.CopyTask::get_Filters()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MoveTask::get_Filters
+
+    // method line 1069
+    .method public virtual hidebysig specialname 
+           instance default void set_Filters (class NAnt.Core.Filters.FilterChain 'value')  cil managed 
+    {
+        // Method begins at RVA 0x13043
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Tasks.CopyTask::set_Filters(class NAnt.Core.Filters.FilterChain)
+	IL_0008:  ret 
+    } // end of method MoveTask::set_Filters
+
+    // method line 1070
+    .method family virtual hidebysig 
+           instance default void DoFileOperations ()  cil managed 
+    {
+        // Method begins at RVA 0x13050
+	// Code size 689 (0x2b1)
+	.maxstack 8
+	.locals init (
+		int32	V_0,
+		class NAnt.Core.Tasks.CopyTask/FileOperation	V_1,
+		string	V_2,
+		valuetype NAnt.Core.Tasks.CopyTask/OperationType	V_3,
+		string	V_4,
+		class [mscorlib]System.IO.IOException	V_5,
+		int32	V_6,
+		int32	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
+	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Count()
+	IL_000c:  ldc.i4.0 
+	IL_000d:  bgt IL_0018
+
+	IL_0012:  nop 
+	IL_0013:  br IL_02b0
+
+	IL_0018:  ldc.i4.0 
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_01fd
+
+	IL_001f:  nop 
+	IL_0020:  ldarg.0 
+	IL_0021:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
+	IL_0026:  ldloc.0 
+	IL_0027:  callvirt instance !0 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Item(int32)
+	IL_002c:  stloc.1 
+	IL_002d:  ldloc.1 
+	IL_002e:  callvirt instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::SourceIsIdenticalToTarget()
+	IL_0033:  brfalse IL_0059
+
+	IL_0038:  nop 
+	IL_0039:  ldarg.0 
+	IL_003a:  ldc.i4 4000
+	IL_003f:  ldstr "Skipping self-move of {0}."
+	IL_0044:  ldloc.1 
+	IL_0045:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
+	IL_004a:  call string string::Format(string, object)
+	IL_004f:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_0054:  br IL_01f9
+
+	.try { // 0
+	  IL_0059:  nop 
+	  IL_005a:  ldarg.0 
+	  IL_005b:  ldc.i4 2000
+	  IL_0060:  ldstr "Moving {0}."
+	  IL_0065:  ldc.i4.1 
+	  IL_0066:  newarr [mscorlib]System.Object
+	  IL_006b:  dup 
+	  IL_006c:  ldc.i4.0 
+	  IL_006d:  ldloc.1 
+	  IL_006e:  callvirt instance string object::ToString()
+	  IL_0073:  stelem.ref 
+	  IL_0074:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0079:  ldnull 
+	  IL_007a:  stloc.2 
+	  IL_007b:  ldloc.1 
+	  IL_007c:  callvirt instance valuetype NAnt.Core.Tasks.CopyTask/OperationType class NAnt.Core.Tasks.CopyTask/FileOperation::get_OperationType()
+	  IL_0081:  stloc.3 
+	  IL_0082:  ldloc.3 
+	  IL_0083:  switch (
+	    IL_0099,
+	    IL_0118,
+	    IL_0199)
+	  IL_0094:  br IL_01c1
+
+	  IL_0099:  ldloc.1 
+	  IL_009a:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_009f:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	  IL_00a4:  stloc.2 
+	  IL_00a5:  ldloc.2 
+	  IL_00a6:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_00ab:  brtrue IL_00d3
+
+	  IL_00b0:  nop 
+	  IL_00b1:  ldloc.2 
+	  IL_00b2:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	  IL_00b7:  pop 
+	  IL_00b8:  ldarg.0 
+	  IL_00b9:  ldc.i4 2000
+	  IL_00be:  ldstr "Created directory '{0}'."
+	  IL_00c3:  ldc.i4.1 
+	  IL_00c4:  newarr [mscorlib]System.Object
+	  IL_00c9:  dup 
+	  IL_00ca:  ldc.i4.0 
+	  IL_00cb:  ldloc.2 
+	  IL_00cc:  stelem.ref 
+	  IL_00cd:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_00d2:  nop 
+	  IL_00d3:  ldloc.1 
+	  IL_00d4:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_00d9:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_00de:  brfalse IL_00f0
+
+	  IL_00e3:  nop 
+	  IL_00e4:  ldloc.1 
+	  IL_00e5:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_00ea:  call void class [mscorlib]System.IO.File::Delete(string)
+	  IL_00ef:  nop 
+	  IL_00f0:  ldloc.1 
+	  IL_00f1:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
+	  IL_00f6:  ldloc.1 
+	  IL_00f7:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_00fc:  ldarg.0 
+	  IL_00fd:  callvirt instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.CopyTask::get_Filters()
+	  IL_0102:  ldarg.0 
+	  IL_0103:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_InputEncoding()
+	  IL_0108:  ldarg.0 
+	  IL_0109:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_OutputEncoding()
+	  IL_010e:  call void class NAnt.Core.Util.FileUtils::MoveFile(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
+	  IL_0113:  leave IL_01cc
+
+	  IL_0118:  ldloc.1 
+	  IL_0119:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_011e:  stloc.2 
+	  IL_011f:  ldloc.2 
+	  IL_0120:  ldloc.1 
+	  IL_0121:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
+	  IL_0126:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	  IL_012b:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_0130:  stloc.s 4
+	  IL_0132:  ldloc.2 
+	  IL_0133:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_0138:  brtrue IL_0160
+
+	  IL_013d:  nop 
+	  IL_013e:  ldloc.2 
+	  IL_013f:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	  IL_0144:  pop 
+	  IL_0145:  ldarg.0 
+	  IL_0146:  ldc.i4 2000
+	  IL_014b:  ldstr "Created directory '{0}'."
+	  IL_0150:  ldc.i4.1 
+	  IL_0151:  newarr [mscorlib]System.Object
+	  IL_0156:  dup 
+	  IL_0157:  ldc.i4.0 
+	  IL_0158:  ldloc.2 
+	  IL_0159:  stelem.ref 
+	  IL_015a:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_015f:  nop 
+	  IL_0160:  ldloc.s 4
+	  IL_0162:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_0167:  brfalse IL_0175
+
+	  IL_016c:  nop 
+	  IL_016d:  ldloc.s 4
+	  IL_016f:  call void class [mscorlib]System.IO.File::Delete(string)
+	  IL_0174:  nop 
+	  IL_0175:  ldloc.1 
+	  IL_0176:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
+	  IL_017b:  ldloc.s 4
+	  IL_017d:  ldarg.0 
+	  IL_017e:  callvirt instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.CopyTask::get_Filters()
+	  IL_0183:  ldarg.0 
+	  IL_0184:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_InputEncoding()
+	  IL_0189:  ldarg.0 
+	  IL_018a:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_OutputEncoding()
+	  IL_018f:  call void class NAnt.Core.Util.FileUtils::MoveFile(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
+	  IL_0194:  leave IL_01cc
+
+	  IL_0199:  ldloc.1 
+	  IL_019a:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
+	  IL_019f:  ldloc.1 
+	  IL_01a0:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_01a5:  ldarg.0 
+	  IL_01a6:  callvirt instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.CopyTask::get_Filters()
+	  IL_01ab:  ldarg.0 
+	  IL_01ac:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_InputEncoding()
+	  IL_01b1:  ldarg.0 
+	  IL_01b2:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_OutputEncoding()
+	  IL_01b7:  call void class NAnt.Core.Util.FileUtils::MoveDirectory(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
+	  IL_01bc:  leave IL_01cc
+
+	  IL_01c1:  ldstr "Unrecognized move operation. The move task can only move a file to file, file to directory, or directory to directory."
+	  IL_01c6:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	  IL_01cb:  throw 
+	  IL_01cc:  nop 
+	  IL_01cd:  leave IL_01f8
+
+	} // end .try 0
+	catch class [mscorlib]System.IO.IOException { // 0
+	  IL_01d2:  stloc.s 5
+	  IL_01d4:  nop 
+	  IL_01d5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_01da:  ldstr "Failed to move {0}."
+	  IL_01df:  ldloc.1 
+	  IL_01e0:  callvirt instance string object::ToString()
+	  IL_01e5:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_01ea:  ldarg.0 
+	  IL_01eb:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_01f0:  ldloc.s 5
+	  IL_01f2:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_01f7:  throw 
+	} // end handler 0
+	IL_01f8:  nop 
+	IL_01f9:  ldloc.0 
+	IL_01fa:  ldc.i4.1 
+	IL_01fb:  add 
+	IL_01fc:  stloc.0 
+	IL_01fd:  ldloc.0 
+	IL_01fe:  ldarg.0 
+	IL_01ff:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
+	IL_0204:  callvirt instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Count()
+	IL_0209:  blt IL_001f
+
+	IL_020e:  ldarg.0 
+	IL_020f:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
+	IL_0214:  callvirt instance int32 class NAnt.Core.Tasks.CopyTask/FileOperationMap::CountFileOperations()
+	IL_0219:  stloc.s 6
+	IL_021b:  ldarg.0 
+	IL_021c:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
+	IL_0221:  callvirt instance int32 class NAnt.Core.Tasks.CopyTask/FileOperationMap::CountDirectoryOperations()
+	IL_0226:  stloc.s 7
+	IL_0228:  ldloc.s 6
+	IL_022a:  ldc.i4.0 
+	IL_022b:  ble IL_026c
+
+	IL_0230:  nop 
+	IL_0231:  ldarg.0 
+	IL_0232:  ldc.i4 3000
+	IL_0237:  ldstr "{0} file{1} moved."
+	IL_023c:  ldc.i4.2 
+	IL_023d:  newarr [mscorlib]System.Object
+	IL_0242:  dup 
+	IL_0243:  ldc.i4.0 
+	IL_0244:  ldloc.s 6
+	IL_0246:  box [mscorlib]System.Int32
+	IL_024b:  stelem.ref 
+	IL_024c:  dup 
+	IL_024d:  ldc.i4.1 
+	IL_024e:  ldloc.s 6
+	IL_0250:  ldc.i4.1 
+	IL_0251:  beq IL_0260
+
+	IL_0256:  ldstr "s"
+	IL_025b:  br IL_0265
+
+	IL_0260:  ldstr ""
+	IL_0265:  stelem.ref 
+	IL_0266:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_026b:  nop 
+	IL_026c:  ldloc.s 7
+	IL_026e:  ldc.i4.0 
+	IL_026f:  ble IL_02b0
+
+	IL_0274:  nop 
+	IL_0275:  ldarg.0 
+	IL_0276:  ldc.i4 3000
+	IL_027b:  ldstr "{0} {1} moved."
+	IL_0280:  ldc.i4.2 
+	IL_0281:  newarr [mscorlib]System.Object
+	IL_0286:  dup 
+	IL_0287:  ldc.i4.0 
+	IL_0288:  ldloc.s 7
+	IL_028a:  box [mscorlib]System.Int32
+	IL_028f:  stelem.ref 
+	IL_0290:  dup 
+	IL_0291:  ldc.i4.1 
+	IL_0292:  ldloc.s 7
+	IL_0294:  ldc.i4.1 
+	IL_0295:  beq IL_02a4
+
+	IL_029a:  ldstr "directories"
+	IL_029f:  br IL_02a9
+
+	IL_02a4:  ldstr "directory"
+	IL_02a9:  stelem.ref 
+	IL_02aa:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_02af:  nop 
+	IL_02b0:  ret 
+    } // end of method MoveTask::DoFileOperations
+
+    // method line 1071
+    .method family virtual hidebysig 
+           instance default class NAnt.Core.BuildException CreateSourceFileNotFoundException (string sourceFile)  cil managed 
+    {
+        // Method begins at RVA 0x1332c
+	// Code size 36 (0x24)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildException	V_0)
+	IL_0000:  nop 
+	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0006:  ldstr "Could not find file '{0}' to move."
+	IL_000b:  ldarg.1 
+	IL_000c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0011:  ldarg.0 
+	IL_0012:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0017:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_001c:  stloc.0 
+	IL_001d:  br IL_0022
+
+	IL_0022:  ldloc.0 
+	IL_0023:  ret 
+    } // end of method MoveTask::CreateSourceFileNotFoundException
+
+	.property instance class [mscorlib]System.IO.FileInfo SourceFile ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.SetEnvTask::get_File () 
-		.set instance default void NAnt.Core.Tasks.SetEnvTask::set_File (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.MoveTask::get_SourceFile () 
+		.set instance default void NAnt.Core.Tasks.MoveTask::set_SourceFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo Directory ()
+	.property instance class [mscorlib]System.IO.FileInfo ToFile ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 69 72 00 00 ) // ...dir..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 74 6F 66 69 6C 65 00 00 ) // ...tofile..
 
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.SetEnvTask::get_Directory () 
-		.set instance default void NAnt.Core.Tasks.SetEnvTask::set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.MoveTask::get_ToFile () 
+		.set instance default void NAnt.Core.Tasks.MoveTask::set_ToFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance class NAnt.Core.Types.PathSet Path ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo ToDirectory ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 74 6F 64 69 72 00 00 ) // ...todir..
 
-		.get instance default class NAnt.Core.Types.PathSet NAnt.Core.Tasks.SetEnvTask::get_Path () 
-		.set instance default void NAnt.Core.Tasks.SetEnvTask::set_Path (class NAnt.Core.Types.PathSet 'value') 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.MoveTask::get_ToDirectory () 
+		.set instance default void NAnt.Core.Tasks.MoveTask::set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
 	}
-	.property instance class NAnt.Core.Types.EnvironmentVariableCollection EnvironmentVariables ()
+	.property instance class NAnt.Core.Types.FileSet CopyFileSet ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (
-		01 00 08 76 61 72 69 61 62 6C 65 01 00 54 50 0B   // ...variable..TP.
-		45 6C 65 6D 65 6E 74 54 79 70 65 23 4E 41 6E 74   // ElementType#NAnt
-		2E 43 6F 72 65 2E 54 79 70 65 73 2E 45 6E 76 69   // .Core.Types.Envi
-		72 6F 6E 6D 65 6E 74 56 61 72 69 61 62 6C 65    ) // ronmentVariable
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
 
-		.get instance default class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Tasks.SetEnvTask::get_EnvironmentVariables () 
-		.set instance default void NAnt.Core.Tasks.SetEnvTask::set_EnvironmentVariables (class NAnt.Core.Types.EnvironmentVariableCollection 'value') 
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MoveTask::get_CopyFileSet () 
+		.set instance default void NAnt.Core.Tasks.MoveTask::set_CopyFileSet (class NAnt.Core.Types.FileSet 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.SetEnvTask
+	.property instance bool Flatten ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 66 6C 61 74 74 65 6E 00 00 ) // ...flatten..
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Tasks.MoveTask::get_Flatten () 
+		.set instance default void NAnt.Core.Tasks.MoveTask::set_Flatten (bool 'value') 
+	}
+	.property instance class NAnt.Core.Filters.FilterChain Filters ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0B 66 69 6C 74 65 72 63 68 61 69 6E 00 00 ) // ...filterchain..
+
+		.get instance default class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.MoveTask::get_Filters () 
+		.set instance default void NAnt.Core.Tasks.MoveTask::set_Filters (class NAnt.Core.Filters.FilterChain 'value') 
+	}
+  } // end of class NAnt.Core.Tasks.MoveTask
 }
 
 .namespace NAnt.Core.Tasks
@@ -36365,11 +34082,11 @@
     .field  private  class [mscorlib]System.IO.DirectoryInfo _path
     .field  private  class NAnt.Core.Types.FileSet _fileset
 
-    // method line 1085
+    // method line 1072
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x14714
+        // Method begins at RVA 0x1335c
 	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -36380,11 +34097,11 @@
 	IL_0011:  ret 
     } // end of method LoadTasksTask::.ctor
 
-    // method line 1086
+    // method line 1073
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_AssemblyPath ()  cil managed 
     {
-        // Method begins at RVA 0x14728
+        // Method begins at RVA 0x13370
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -36399,11 +34116,11 @@
 	IL_000e:  ret 
     } // end of method LoadTasksTask::get_AssemblyPath
 
-    // method line 1087
+    // method line 1074
     .method public hidebysig specialname 
            instance default void set_AssemblyPath (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x14743
+        // Method begins at RVA 0x1338b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -36413,11 +34130,11 @@
 	IL_0008:  ret 
     } // end of method LoadTasksTask::set_AssemblyPath
 
-    // method line 1088
+    // method line 1075
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_Path ()  cil managed 
     {
-        // Method begins at RVA 0x14750
+        // Method begins at RVA 0x13398
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -36432,11 +34149,11 @@
 	IL_000e:  ret 
     } // end of method LoadTasksTask::get_Path
 
-    // method line 1089
+    // method line 1076
     .method public hidebysig specialname 
            instance default void set_Path (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x1476b
+        // Method begins at RVA 0x133b3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -36446,11 +34163,11 @@
 	IL_0008:  ret 
     } // end of method LoadTasksTask::set_Path
 
-    // method line 1090
+    // method line 1077
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.FileSet get_TaskFileSet ()  cil managed 
     {
-        // Method begins at RVA 0x14778
+        // Method begins at RVA 0x133c0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -36465,11 +34182,11 @@
 	IL_000e:  ret 
     } // end of method LoadTasksTask::get_TaskFileSet
 
-    // method line 1091
+    // method line 1078
     .method public hidebysig specialname 
            instance default void set_TaskFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x14793
+        // Method begins at RVA 0x133db
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -36479,11 +34196,11 @@
 	IL_0008:  ret 
     } // end of method LoadTasksTask::set_TaskFileSet
 
-    // method line 1092
+    // method line 1079
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x147a0
+        // Method begins at RVA 0x133e8
         .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
 	// Code size 559 (0x22f)
 	.maxstack 5
@@ -36716,11 +34433,11 @@
 	IL_022e:  ret 
     } // end of method LoadTasksTask::ExecuteTask
 
-    // method line 1093
+    // method line 1080
     .method family virtual hidebysig 
            instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x14a1c
+        // Method begins at RVA 0x13664
 	// Code size 42 (0x2a)
 	.maxstack 8
 	IL_0000:  nop 
@@ -36767,5773 +34484,1775 @@
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit IncludeTask
+  .class public auto ansi beforefieldinit UpToDateTask
   	extends NAnt.Core.Task
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 69 6E 63 6C 75 64 65 00 00 ) // ...include..
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 08 75 70 74 6F 64 61 74 65 00 00 ) // ...uptodate..
 
-    .field  private  string _buildFileName
-    .field  private static  class [mscorlib]System.Collections.Stack _includedFileNames
-    .field  private static  string _currentBasedir
-    .field  private static  int32 _nestinglevel
+    .field  private  string _propertyName
+    .field  private  class NAnt.Core.Types.FileSet _sourceFiles
+    .field  private  class NAnt.Core.Types.FileSet _targetFiles
 
-    // method line 1094
+    // method line 1081
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x14a47
+        // Method begins at RVA 0x1368f
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
 	IL_0006:  ret 
-    } // end of method IncludeTask::.ctor
+    } // end of method UpToDateTask::.ctor
 
-    // method line 1095
+    // method line 1082
     .method public hidebysig specialname 
-           instance default string get_BuildFileName ()  cil managed 
+           instance default string get_PropertyName ()  cil managed 
     {
-        // Method begins at RVA 0x14a50
+        // Method begins at RVA 0x13698
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.IncludeTask::_buildFileName
+	IL_0002:  ldfld string NAnt.Core.Tasks.UpToDateTask::_propertyName
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IncludeTask::get_BuildFileName
+    } // end of method UpToDateTask::get_PropertyName
 
-    // method line 1096
+    // method line 1083
     .method public hidebysig specialname 
-           instance default void set_BuildFileName (string 'value')  cil managed 
+           instance default void set_PropertyName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x14a6b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x136b3
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.IncludeTask::_buildFileName
-	IL_0008:  ret 
-    } // end of method IncludeTask::set_BuildFileName
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.UpToDateTask::_propertyName
+	IL_000d:  ret 
+    } // end of method UpToDateTask::set_PropertyName
 
-    // method line 1097
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 1084
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_SourceFiles ()  cil managed 
     {
-        // Method begins at RVA 0x14a78
-	// Code size 271 (0x10f)
-	.maxstack 3
+        // Method begins at RVA 0x136c4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		class [mscorlib]System.Exception	V_1,
-		string	V_2,
-		class [mscorlib]System.Collections.IEnumerator	V_3,
-		class [mscorlib]System.IDisposable	V_4)
+		class NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance object class NAnt.Core.Element::get_Parent()
-	IL_0007:  brfalse IL_0033
-
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance object class NAnt.Core.Element::get_Parent()
-	IL_0012:  isinst NAnt.Core.Project
-	IL_0017:  brtrue IL_0033
-
-	IL_001c:  nop 
-	IL_001d:  ldstr "NA1180"
-	IL_0022:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0027:  ldarg.0 
-	IL_0028:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_002d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0032:  throw 
-	IL_0033:  ldsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
-	IL_0038:  call bool string::IsNullOrEmpty(string)
-	IL_003d:  brtrue IL_004c
-
-	IL_0042:  ldsfld int32 NAnt.Core.Tasks.IncludeTask::_nestinglevel
-	IL_0047:  brtrue IL_005e
-
-	IL_004c:  nop 
-	IL_004d:  ldarg.0 
-	IL_004e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0053:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_0058:  stsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
-	IL_005d:  nop 
-	IL_005e:  ldnull 
-	IL_005f:  stloc.0 
-	.try { // 0
-	  IL_0060:  nop 
-	  IL_0061:  ldsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
-	  IL_0066:  ldarg.0 
-	  IL_0067:  call instance string class NAnt.Core.Tasks.IncludeTask::get_BuildFileName()
-	  IL_006c:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_0071:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
-	  IL_0076:  stloc.0 
-	  IL_0077:  nop 
-	  IL_0078:  leave IL_00a6
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_007d:  stloc.1 
-	  IL_007e:  nop 
-	  IL_007f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0084:  ldstr "NA1128"
-	  IL_0089:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_008e:  ldarg.0 
-	  IL_008f:  call instance string class NAnt.Core.Tasks.IncludeTask::get_BuildFileName()
-	  IL_0094:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0099:  ldarg.0 
-	  IL_009a:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_009f:  ldloc.1 
-	  IL_00a0:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_00a5:  throw 
-	} // end handler 0
-	IL_00a6:  nop 
-	IL_00a7:  ldsfld class [mscorlib]System.Collections.Stack NAnt.Core.Tasks.IncludeTask::_includedFileNames
-	IL_00ac:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.Stack::GetEnumerator()
-	IL_00b1:  stloc.3 
-	.try { // 1
-	  IL_00b2:  br IL_00e8
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_sourceFiles
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_00b7:  ldloc.3 
-	  IL_00b8:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_00bd:  castclass [mscorlib]System.String
-	  IL_00c2:  stloc.2 
-	  IL_00c3:  nop 
-	  IL_00c4:  ldloc.2 
-	  IL_00c5:  ldloc.0 
-	  IL_00c6:  call bool string::op_Equality(string, string)
-	  IL_00cb:  brfalse IL_00e7
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method UpToDateTask::get_SourceFiles
 
-	  IL_00d0:  nop 
-	  IL_00d1:  ldstr "NA1179"
-	  IL_00d6:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_00db:  ldarg.0 
-	  IL_00dc:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_00e1:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_00e6:  throw 
-	  IL_00e7:  nop 
-	  IL_00e8:  ldloc.3 
-	  IL_00e9:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00ee:  brtrue IL_00b7
+    // method line 1085
+    .method public hidebysig specialname 
+           instance default void set_SourceFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x136df
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_sourceFiles
+	IL_0008:  ret 
+    } // end of method UpToDateTask::set_SourceFiles
 
-	  IL_00f3:  leave IL_010e
+    // method line 1086
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_TargetFiles ()  cil managed 
+    {
+        // Method begins at RVA 0x136ec
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.FileSet	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_targetFiles
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	} // end .try 1
-	finally  { // 1
-	  IL_00f8:  ldloc.3 
-	  IL_00f9:  isinst [mscorlib]System.IDisposable
-	  IL_00fe:  dup 
-	  IL_00ff:  stloc.s 4
-	  IL_0101:  brfalse IL_010d
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method UpToDateTask::get_TargetFiles
 
-	  IL_0106:  ldloc.s 4
-	  IL_0108:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_010d:  endfinally 
-	} // end handler 1
-	IL_010e:  ret 
-    } // end of method IncludeTask::Initialize
+    // method line 1087
+    .method public hidebysig specialname 
+           instance default void set_TargetFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x13707
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_targetFiles
+	IL_0008:  ret 
+    } // end of method UpToDateTask::set_TargetFiles
 
-    // method line 1098
+    // method line 1088
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x14bb0
-	// Code size 564 (0x234)
+        // Method begins at RVA 0x13714
+	// Code size 169 (0xa9)
 	.maxstack 7
 	.locals init (
-		string	V_0,
-		class [System.Xml]System.Xml.XmlDocument	V_1,
+		bool	V_0,
+		class [mscorlib]System.IO.FileInfo	V_1,
 		string	V_2,
-		class [System.Xml]System.Xml.XmlDocument	V_3,
-		class [System.Xml]System.Xml.XmlDocument	V_4,
-		string	V_5,
-		string	V_6,
-		class [System.Xml]System.Xml.XmlTextReader	V_7,
-		class [System.Xml]System.Xml.XmlAttribute	V_8,
-		class [mscorlib]System.IO.StringWriter	V_9,
-		class [System.Xml]System.Xml.XmlTextWriter	V_10,
-		class [mscorlib]System.Exception	V_11)
+		bool	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
-	IL_0006:  ldarg.0 
-	IL_0007:  call instance string class NAnt.Core.Tasks.IncludeTask::get_BuildFileName()
-	IL_000c:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0011:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
-	IL_0016:  stloc.0 
-	IL_0017:  ldloc.0 
-	IL_0018:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_001d:  brtrue IL_0044
-
-	IL_0022:  nop 
-	IL_0023:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0028:  ldstr "NA1127"
-	IL_002d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0032:  ldloc.0 
-	IL_0033:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0038:  ldarg.0 
-	IL_0039:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_003e:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0043:  throw 
-	IL_0044:  ldarg.0 
-	IL_0045:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_004a:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	IL_004f:  ldloc.0 
-	IL_0050:  callvirt instance bool class NAnt.Core.LocationMap::FileIsMapped(string)
-	IL_0055:  brfalse IL_007f
-
-	IL_005a:  nop 
-	IL_005b:  ldarg.0 
-	IL_005c:  ldc.i4 2000
-	IL_0061:  ldstr "String_DuplicateInclude"
-	IL_0066:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_006b:  ldc.i4.1 
-	IL_006c:  newarr [mscorlib]System.Object
-	IL_0071:  dup 
-	IL_0072:  ldc.i4.0 
-	IL_0073:  ldloc.0 
-	IL_0074:  stelem.ref 
-	IL_0075:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_007a:  br IL_0233
-
-	IL_007f:  nop 
-	IL_0080:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	IL_0085:  stloc.1 
-	IL_0086:  ldloc.1 
-	IL_0087:  ldloc.0 
-	IL_0088:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(string)
-	IL_008d:  ldarg.0 
-	IL_008e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0093:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	IL_0098:  ldloc.1 
-	IL_0099:  callvirt instance void class NAnt.Core.LocationMap::Add(class [System.Xml]System.Xml.XmlDocument)
-	IL_009e:  ldnull 
-	IL_009f:  stloc.1 
-	IL_00a0:  nop 
-	IL_00a1:  ldsfld class [mscorlib]System.Collections.Stack NAnt.Core.Tasks.IncludeTask::_includedFileNames
-	IL_00a6:  ldloc.0 
-	IL_00a7:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
-	IL_00ac:  ldsfld int32 NAnt.Core.Tasks.IncludeTask::_nestinglevel
-	IL_00b1:  ldc.i4.1 
-	IL_00b2:  add 
-	IL_00b3:  stsfld int32 NAnt.Core.Tasks.IncludeTask::_nestinglevel
-	IL_00b8:  ldarg.0 
-	IL_00b9:  ldc.i4 2000
-	IL_00be:  ldstr "Including file {0}."
-	IL_00c3:  ldc.i4.1 
-	IL_00c4:  newarr [mscorlib]System.Object
-	IL_00c9:  dup 
-	IL_00ca:  ldc.i4.0 
-	IL_00cb:  ldloc.0 
-	IL_00cc:  stelem.ref 
-	IL_00cd:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_00d2:  ldsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
-	IL_00d7:  stloc.2 
-	IL_00d8:  ldloc.0 
-	IL_00d9:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_00de:  stsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
-	.try { // 3
-	  .try { // 1
-	    IL_00e3:  nop 
-	    IL_00e4:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	    IL_00e9:  stloc.3 
-	    IL_00ea:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	    IL_00ef:  stloc.s 4
-	    IL_00f1:  ldarg.0 
-	    IL_00f2:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	    IL_00f7:  callvirt instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::get_Document()
-	    IL_00fc:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	    IL_0101:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	    IL_0106:  stloc.s 5
-	    IL_0108:  ldstr ""
-	    IL_010d:  stloc.s 6
-	    IL_010f:  ldloc.0 
-	    IL_0110:  newobj instance void class [System.Xml]System.Xml.XmlTextReader::'.ctor'(string)
-	    IL_0115:  stloc.s 7
-	    IL_0117:  ldloc.s 7
-	    IL_0119:  ldc.i4.0 
-	    IL_011a:  callvirt instance void class [System.Xml]System.Xml.XmlTextReader::set_Namespaces(bool)
-	    IL_011f:  ldloc.3 
-	    IL_0120:  ldloc.s 7
-	    IL_0122:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(class [System.Xml]System.Xml.XmlReader)
-	    IL_0127:  ldloc.3 
-	    IL_0128:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	    IL_012d:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	    IL_0132:  ldstr "xmlns"
-	    IL_0137:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNamedNodeMap::RemoveNamedItem(string)
-	    IL_013c:  pop 
-	    IL_013d:  ldloc.s 7
-	    IL_013f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0144:  ldnull 
-	    IL_0145:  stloc.s 7
-	    IL_0147:  ldloc.s 5
-	    IL_0149:  call bool string::IsNullOrEmpty(string)
-	    IL_014e:  brtrue IL_0159
-
-	    IL_0153:  nop 
-	    IL_0154:  ldloc.s 5
-	    IL_0156:  stloc.s 6
-	    IL_0158:  nop 
-	    IL_0159:  ldloc.s 6
-	    IL_015b:  call bool string::IsNullOrEmpty(string)
-	    IL_0160:  brtrue IL_0190
-
-	    IL_0165:  nop 
-	    IL_0166:  ldloc.3 
-	    IL_0167:  ldstr "xmlns"
-	    IL_016c:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlDocument::CreateAttribute(string)
-	    IL_0171:  stloc.s 8
-	    IL_0173:  ldloc.s 8
-	    IL_0175:  ldloc.s 6
-	    IL_0177:  callvirt instance void class [System.Xml]System.Xml.XmlNode::set_Value(string)
-	    IL_017c:  ldloc.3 
-	    IL_017d:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	    IL_0182:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	    IL_0187:  ldloc.s 8
-	    IL_0189:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::Append(class [System.Xml]System.Xml.XmlAttribute)
-	    IL_018e:  pop 
-	    IL_018f:  nop 
-	    IL_0190:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'()
-	    IL_0195:  stloc.s 9
-	    .try { // 0
-	      IL_0197:  nop 
-	      IL_0198:  ldloc.s 9
-	      IL_019a:  newobj instance void class [System.Xml]System.Xml.XmlTextWriter::'.ctor'(class [mscorlib]System.IO.TextWriter)
-	      IL_019f:  stloc.s 10
-	      IL_01a1:  ldloc.3 
-	      IL_01a2:  ldloc.s 10
-	      IL_01a4:  callvirt instance void class [System.Xml]System.Xml.XmlNode::WriteTo(class [System.Xml]System.Xml.XmlWriter)
-	      IL_01a9:  ldloc.s 4
-	      IL_01ab:  ldloc.s 9
-	      IL_01ad:  callvirt instance string object::ToString()
-	      IL_01b2:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::LoadXml(string)
-	      IL_01b7:  ldloc.s 10
-	      IL_01b9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	      IL_01be:  ldnull 
-	      IL_01bf:  stloc.s 10
-	      IL_01c1:  nop 
-	      IL_01c2:  leave IL_01d6
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_targetFiles
+	IL_0009:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.FileSet::get_MostRecentLastWriteTimeFile()
+	IL_000e:  stloc.1 
+	IL_000f:  ldloc.1 
+	IL_0010:  brfalse IL_0020
 
-	    } // end .try 0
-	    finally  { // 0
-	      IL_01c7:  ldloc.s 9
-	      IL_01c9:  brfalse IL_01d5
+	IL_0015:  ldloc.1 
+	IL_0016:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_001b:  brtrue IL_0039
 
-	      IL_01ce:  ldloc.s 9
-	      IL_01d0:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	      IL_01d5:  endfinally 
-	    } // end handler 0
-	    IL_01d6:  ldarg.0 
-	    IL_01d7:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	    IL_01dc:  ldloc.s 4
-	    IL_01de:  callvirt instance void class NAnt.Core.Project::InitializeProjectDocument(class [System.Xml]System.Xml.XmlDocument)
-	    IL_01e3:  nop 
-	    IL_01e4:  leave IL_0233
+	IL_0020:  nop 
+	IL_0021:  ldc.i4.0 
+	IL_0022:  stloc.0 
+	IL_0023:  ldarg.0 
+	IL_0024:  ldc.i4 2000
+	IL_0029:  ldstr "Destination file(s) do(es) not exist."
+	IL_002e:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_0033:  nop 
+	IL_0034:  br IL_0087
 
-	  } // end .try 1
-	  catch class NAnt.Core.BuildException { // 1
-	    IL_01e9:  pop 
-	    IL_01ea:  nop 
-	    IL_01eb:  rethrow 
-	  } // end handler 1
-	  catch class [mscorlib]System.Exception { // 2
-	    IL_01ed:  stloc.s 11
-	    IL_01ef:  nop 
-	    IL_01f0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_01f5:  ldstr "NA1128"
-	    IL_01fa:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_01ff:  ldloc.0 
-	    IL_0200:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_0205:  ldarg.0 
-	    IL_0206:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	    IL_020b:  ldloc.s 11
-	    IL_020d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	    IL_0212:  throw 
-	  } // end handler 2
-	} // end .try 3
-	finally  { // 3
-	  IL_0213:  nop 
-	  IL_0214:  ldsfld class [mscorlib]System.Collections.Stack NAnt.Core.Tasks.IncludeTask::_includedFileNames
-	  IL_0219:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
-	  IL_021e:  pop 
-	  IL_021f:  ldsfld int32 NAnt.Core.Tasks.IncludeTask::_nestinglevel
-	  IL_0224:  ldc.i4.1 
-	  IL_0225:  sub 
-	  IL_0226:  stsfld int32 NAnt.Core.Tasks.IncludeTask::_nestinglevel
-	  IL_022b:  ldloc.2 
-	  IL_022c:  stsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
-	  IL_0231:  nop 
-	  IL_0232:  endfinally 
-	} // end handler 3
-	IL_0233:  ret 
-    } // end of method IncludeTask::ExecuteTask
+	IL_0039:  nop 
+	IL_003a:  ldarg.0 
+	IL_003b:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::_sourceFiles
+	IL_0040:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0045:  ldloc.1 
+	IL_0046:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_004b:  call string class NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
+	IL_0050:  stloc.2 
+	IL_0051:  ldloc.2 
+	IL_0052:  ldnull 
+	IL_0053:  ceq 
+	IL_0055:  ldc.i4.0 
+	IL_0056:  ceq 
+	IL_0058:  stloc.3 
+	IL_0059:  ldloc.3 
+	IL_005a:  brfalse IL_0086
 
-    // method line 1099
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x14e54
-	// Code size 27 (0x1b)
-	.maxstack 8
-	IL_0000:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
-	IL_0005:  stsfld class [mscorlib]System.Collections.Stack NAnt.Core.Tasks.IncludeTask::_includedFileNames
-	IL_000a:  ldstr ""
-	IL_000f:  stsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
-	IL_0014:  ldc.i4.0 
-	IL_0015:  stsfld int32 NAnt.Core.Tasks.IncludeTask::_nestinglevel
-	IL_001a:  ret 
-    } // end of method IncludeTask::.cctor
+	IL_005f:  nop 
+	IL_0060:  ldc.i4.0 
+	IL_0061:  stloc.0 
+	IL_0062:  ldarg.0 
+	IL_0063:  ldc.i4 2000
+	IL_0068:  ldstr "{0} is newer than {1}."
+	IL_006d:  ldc.i4.2 
+	IL_006e:  newarr [mscorlib]System.Object
+	IL_0073:  dup 
+	IL_0074:  ldc.i4.0 
+	IL_0075:  ldloc.2 
+	IL_0076:  stelem.ref 
+	IL_0077:  dup 
+	IL_0078:  ldc.i4.1 
+	IL_0079:  ldloc.1 
+	IL_007a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
+	IL_007f:  stelem.ref 
+	IL_0080:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0085:  nop 
+	IL_0086:  nop 
+	IL_0087:  ldarg.0 
+	IL_0088:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_008d:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0092:  ldarg.0 
+	IL_0093:  call instance string class NAnt.Core.Tasks.UpToDateTask::get_PropertyName()
+	IL_0098:  ldloc.0 
+	IL_0099:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_009e:  call string class [mscorlib]System.Convert::ToString(bool, class [mscorlib]System.IFormatProvider)
+	IL_00a3:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_00a8:  ret 
+    } // end of method UpToDateTask::ExecuteTask
 
-	.property instance string BuildFileName ()
+	.property instance string PropertyName ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 62 75 69 6C 64 66 69 6C 65 01 00 54 02   // ...buildfile..T.
-		08 52 65 71 75 69 72 65 64 01                   ) // .Required.
+		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
+		52 65 71 75 69 72 65 64 01                      ) // Required.
 
 		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
 		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
 		79 00                                           ) // y.
 
-		.get instance default string NAnt.Core.Tasks.IncludeTask::get_BuildFileName () 
-		.set instance default void NAnt.Core.Tasks.IncludeTask::set_BuildFileName (string 'value') 
+		.get instance default string NAnt.Core.Tasks.UpToDateTask::get_PropertyName () 
+		.set instance default void NAnt.Core.Tasks.UpToDateTask::set_PropertyName (string 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.IncludeTask
+	.property instance class NAnt.Core.Types.FileSet SourceFiles ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0B 73 6F 75 72 63 65 66 69 6C 65 73 00 00 ) // ...sourcefiles..
+
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::get_SourceFiles () 
+		.set instance default void NAnt.Core.Tasks.UpToDateTask::set_SourceFiles (class NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance class NAnt.Core.Types.FileSet TargetFiles ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0B 74 61 72 67 65 74 66 69 6C 65 73 00 00 ) // ...targetfiles..
+
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.UpToDateTask::get_TargetFiles () 
+		.set instance default void NAnt.Core.Tasks.UpToDateTask::set_TargetFiles (class NAnt.Core.Types.FileSet 'value') 
+	}
+  } // end of class NAnt.Core.Tasks.UpToDateTask
 }
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit StyleTask
+  .class public auto ansi beforefieldinit SetEnvTask
   	extends NAnt.Core.Task
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 73 74 79 6C 65 00 00 ) // ...style..
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 73 65 74 65 6E 76 00 00 ) // ...setenv..
 
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _destDir
-    .field  private  string _extension
-    .field  private  class [System]System.Uri _xsltFile
-    .field  private  class [mscorlib]System.IO.FileInfo _srcFile
-    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
-    .field  private  class NAnt.Core.Types.FileSet _inFiles
-    .field  private  class NAnt.Core.Types.XsltParameterCollection _xsltParameters
-    .field  private  class NAnt.Core.Types.XsltExtensionObjectCollection _xsltExtensions
-    .field  private  class NAnt.Core.Types.Proxy _proxy
+    .field  private  string _name
+    .field  private  string _value
+    .field  private  string _literalValue
+    .field  private  class [mscorlib]System.IO.FileInfo _file
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _directory
+    .field  private  class NAnt.Core.Types.PathSet _path
+    .field  private  class NAnt.Core.Types.EnvironmentVariableCollection _environmentVariables
 
-    // method line 1100
+    // method line 1089
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x14e70
-	// Code size 51 (0x33)
+        // Method begins at RVA 0x137c9
+	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldstr "html"
-	IL_0006:  stfld string NAnt.Core.Tasks.StyleTask::_extension
+	IL_0001:  newobj instance void class NAnt.Core.Types.EnvironmentVariableCollection::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Tasks.SetEnvTask::_environmentVariables
 	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0011:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.StyleTask::_inFiles
-	IL_0016:  ldarg.0 
-	IL_0017:  newobj instance void class NAnt.Core.Types.XsltParameterCollection::'.ctor'()
-	IL_001c:  stfld class NAnt.Core.Types.XsltParameterCollection NAnt.Core.Tasks.StyleTask::_xsltParameters
-	IL_0021:  ldarg.0 
-	IL_0022:  newobj instance void class NAnt.Core.Types.XsltExtensionObjectCollection::'.ctor'()
-	IL_0027:  stfld class NAnt.Core.Types.XsltExtensionObjectCollection NAnt.Core.Tasks.StyleTask::_xsltExtensions
-	IL_002c:  ldarg.0 
-	IL_002d:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0032:  ret 
-    } // end of method StyleTask::.ctor
-
-    // method line 1101
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_DestDir ()  cil managed 
-    {
-        // Method begins at RVA 0x14ea4
-	// Code size 49 (0x31)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.StyleTask::_destDir
-	IL_0007:  brtrue IL_0023
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0013:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_0018:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_001d:  stloc.0 
-	IL_001e:  br IL_002f
-
-	IL_0023:  ldarg.0 
-	IL_0024:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.StyleTask::_destDir
-	IL_0029:  stloc.0 
-	IL_002a:  br IL_002f
-
-	IL_002f:  ldloc.0 
-	IL_0030:  ret 
-    } // end of method StyleTask::get_DestDir
-
-    // method line 1102
-    .method public hidebysig specialname 
-           instance default void set_DestDir (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x14ee1
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.StyleTask::_destDir
-	IL_0008:  ret 
-    } // end of method StyleTask::set_DestDir
+	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0011:  ret 
+    } // end of method SetEnvTask::.ctor
 
-    // method line 1103
+    // method line 1090
     .method public hidebysig specialname 
-           instance default string get_Extension ()  cil managed 
+           instance default string get_EnvName ()  cil managed 
     {
-        // Method begins at RVA 0x14eec
+        // Method begins at RVA 0x137dc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.StyleTask::_extension
+	IL_0002:  ldfld string NAnt.Core.Tasks.SetEnvTask::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method StyleTask::get_Extension
+    } // end of method SetEnvTask::get_EnvName
 
-    // method line 1104
+    // method line 1091
     .method public hidebysig specialname 
-           instance default void set_Extension (string 'value')  cil managed 
+           instance default void set_EnvName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x14f07
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x137f7
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.StyleTask::_extension
-	IL_0008:  ret 
-    } // end of method StyleTask::set_Extension
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.SetEnvTask::_name
+	IL_000d:  ret 
+    } // end of method SetEnvTask::set_EnvName
 
-    // method line 1105
+    // method line 1092
     .method public hidebysig specialname 
-           instance default class [System]System.Uri get_XsltFile ()  cil managed 
+           instance default string get_LiteralValue ()  cil managed 
     {
-        // Method begins at RVA 0x14f14
+        // Method begins at RVA 0x13808
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System]System.Uri	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Uri NAnt.Core.Tasks.StyleTask::_xsltFile
+	IL_0002:  ldfld string NAnt.Core.Tasks.SetEnvTask::_literalValue
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method StyleTask::get_XsltFile
+    } // end of method SetEnvTask::get_LiteralValue
 
-    // method line 1106
+    // method line 1093
     .method public hidebysig specialname 
-           instance default void set_XsltFile (class [System]System.Uri 'value')  cil managed 
+           instance default void set_LiteralValue (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x14f2f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x13823
+	// Code size 16 (0x10)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [System]System.Uri NAnt.Core.Tasks.StyleTask::_xsltFile
-	IL_0008:  ret 
-    } // end of method StyleTask::set_XsltFile
+	IL_0003:  stfld string NAnt.Core.Tasks.SetEnvTask::_value
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  stfld string NAnt.Core.Tasks.SetEnvTask::_literalValue
+	IL_000f:  ret 
+    } // end of method SetEnvTask::set_LiteralValue
 
-    // method line 1107
+    // method line 1094
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_SrcFile ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0x14f3c
+        // Method begins at RVA 0x13834
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.StyleTask::_srcFile
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.SetEnvTask::_file
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method StyleTask::get_SrcFile
+    } // end of method SetEnvTask::get_File
 
-    // method line 1108
+    // method line 1095
     .method public hidebysig specialname 
-           instance default void set_SrcFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x14f57
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1384f
+	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.StyleTask::_srcFile
-	IL_0008:  ret 
-    } // end of method StyleTask::set_SrcFile
+	IL_0003:  callvirt instance string object::ToString()
+	IL_0008:  stfld string NAnt.Core.Tasks.SetEnvTask::_value
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.1 
+	IL_000f:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.SetEnvTask::_file
+	IL_0014:  ret 
+    } // end of method SetEnvTask::set_File
 
-    // method line 1109
+    // method line 1096
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
     {
-        // Method begins at RVA 0x14f64
+        // Method begins at RVA 0x13868
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.StyleTask::_outputFile
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.SetEnvTask::_directory
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method StyleTask::get_OutputFile
+    } // end of method SetEnvTask::get_Directory
 
-    // method line 1110
+    // method line 1097
     .method public hidebysig specialname 
-           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x14f7f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x13883
+	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.StyleTask::_outputFile
-	IL_0008:  ret 
-    } // end of method StyleTask::set_OutputFile
+	IL_0003:  callvirt instance string object::ToString()
+	IL_0008:  stfld string NAnt.Core.Tasks.SetEnvTask::_value
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.1 
+	IL_000f:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.SetEnvTask::_directory
+	IL_0014:  ret 
+    } // end of method SetEnvTask::set_Directory
 
-    // method line 1111
+    // method line 1098
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_InFiles ()  cil managed 
+           instance default class NAnt.Core.Types.PathSet get_Path ()  cil managed 
     {
-        // Method begins at RVA 0x14f8c
+        // Method begins at RVA 0x1389c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
+		class NAnt.Core.Types.PathSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.StyleTask::_inFiles
+	IL_0002:  ldfld class NAnt.Core.Types.PathSet NAnt.Core.Tasks.SetEnvTask::_path
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method StyleTask::get_InFiles
+    } // end of method SetEnvTask::get_Path
 
-    // method line 1112
+    // method line 1099
     .method public hidebysig specialname 
-           instance default void set_InFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_Path (class NAnt.Core.Types.PathSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x14fa7
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x138b7
+	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.StyleTask::_inFiles
-	IL_0008:  ret 
-    } // end of method StyleTask::set_InFiles
-
-    // method line 1113
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XsltParameterCollection get_Parameters ()  cil managed 
-    {
-        // Method begins at RVA 0x14fb4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.XsltParameterCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.XsltParameterCollection NAnt.Core.Tasks.StyleTask::_xsltParameters
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method StyleTask::get_Parameters
-
-    // method line 1114
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.XsltExtensionObjectCollection get_ExtensionObjects ()  cil managed 
-    {
-        // Method begins at RVA 0x14fd0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.XsltExtensionObjectCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.XsltExtensionObjectCollection NAnt.Core.Tasks.StyleTask::_xsltExtensions
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method StyleTask::get_ExtensionObjects
+	IL_0003:  callvirt instance string object::ToString()
+	IL_0008:  stfld string NAnt.Core.Tasks.SetEnvTask::_value
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.1 
+	IL_000f:  stfld class NAnt.Core.Types.PathSet NAnt.Core.Tasks.SetEnvTask::_path
+	IL_0014:  ret 
+    } // end of method SetEnvTask::set_Path
 
-    // method line 1115
+    // method line 1100
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Proxy get_Proxy ()  cil managed 
+           instance default class NAnt.Core.Types.EnvironmentVariableCollection get_EnvironmentVariables ()  cil managed 
     {
-        // Method begins at RVA 0x14fec
+        // Method begins at RVA 0x138d0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.Proxy	V_0)
+		class NAnt.Core.Types.EnvironmentVariableCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.Proxy NAnt.Core.Tasks.StyleTask::_proxy
+	IL_0002:  ldfld class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Tasks.SetEnvTask::_environmentVariables
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method StyleTask::get_Proxy
+    } // end of method SetEnvTask::get_EnvironmentVariables
 
-    // method line 1116
+    // method line 1101
     .method public hidebysig specialname 
-           instance default void set_Proxy (class NAnt.Core.Types.Proxy 'value')  cil managed 
+           instance default void set_EnvironmentVariables (class NAnt.Core.Types.EnvironmentVariableCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x15007
+        // Method begins at RVA 0x138eb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.Proxy NAnt.Core.Tasks.StyleTask::_proxy
+	IL_0003:  stfld class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Tasks.SetEnvTask::_environmentVariables
 	IL_0008:  ret 
-    } // end of method StyleTask::set_Proxy
+    } // end of method SetEnvTask::set_EnvironmentVariables
 
-    // method line 1117
+    // method line 1102
     .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x15014
-	// Code size 1638 (0x666)
-	.maxstack 7
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		class [mscorlib]System.IO.FileInfo	V_1,
-		class [System]System.Net.HttpWebRequest	V_2,
-		class [System]System.Net.HttpWebResponse	V_3,
-		string	V_4,
-		class [System]System.Collections.Specialized.StringEnumerator	V_5,
-		string	V_6,
-		string	V_7,
-		int32	V_8,
-		class [mscorlib]System.IO.FileInfo	V_9,
-		class [mscorlib]System.IO.FileInfo	V_10,
-		bool	V_11,
-		class [mscorlib]System.IO.FileInfo	V_12,
-		class [System.Xml]System.Xml.XmlReader	V_13,
-		class [System.Xml]System.Xml.XmlReader	V_14,
-		class [mscorlib]System.IO.TextWriter	V_15,
-		string	V_16,
-		class [System.Xml]System.Xml.XPath.XPathDocument	V_17,
-		class [System.Xml]System.Xml.Xsl.XsltArgumentList	V_18,
-		class NAnt.Core.Types.XsltParameter	V_19,
-		class NAnt.Core.Types.XsltParameterEnumerator	V_20,
-		class [mscorlib]System.IDisposable	V_21,
-		class NAnt.Core.Types.XsltExtensionObject	V_22,
-		class NAnt.Core.Types.XsltExtensionObjectEnumerator	V_23,
-		object	V_24,
-		class [mscorlib]System.IDisposable	V_25,
-		class [mscorlib]System.IO.FileInfo	V_26,
-		class [System.Xml]System.Xml.Xsl.XslCompiledTransform	V_27,
-		string	V_28,
-		class [mscorlib]System.Exception	V_29,
-		class [mscorlib]System.IDisposable	V_30)
+        // Method begins at RVA 0x138f5
+	// Code size 47 (0x2f)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.StyleTask::get_InFiles()
-	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_000c:  brtrue IL_002e
-
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.StyleTask::get_InFiles()
-	IL_0018:  ldarg.0 
-	IL_0019:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_001e:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_0023:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0028:  callvirt instance void class NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_002d:  nop 
-	IL_002e:  ldnull 
-	IL_002f:  stloc.0 
-	IL_0030:  ldarg.0 
-	IL_0031:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.StyleTask::get_SrcFile()
-	IL_0036:  brfalse IL_005a
-
-	IL_003b:  nop 
-	IL_003c:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0041:  stloc.0 
-	IL_0042:  ldloc.0 
-	IL_0043:  ldarg.0 
-	IL_0044:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.StyleTask::get_SrcFile()
-	IL_0049:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_004e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0053:  pop 
-	IL_0054:  nop 
-	IL_0055:  br IL_00af
-
-	IL_005a:  ldarg.0 
-	IL_005b:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.StyleTask::get_InFiles()
-	IL_0060:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0065:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_006a:  ldc.i4.0 
-	IL_006b:  ble IL_00af
-
-	IL_0070:  nop 
-	IL_0071:  ldarg.0 
-	IL_0072:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.StyleTask::get_OutputFile()
-	IL_0077:  brfalse IL_00a2
-
-	IL_007c:  nop 
-	IL_007d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0082:  ldstr "NA1148"
-	IL_0087:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_008c:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_0091:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0096:  ldarg.0 
-	IL_0097:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_009c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_00a1:  throw 
-	IL_00a2:  ldarg.0 
-	IL_00a3:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.StyleTask::get_InFiles()
-	IL_00a8:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_00ad:  stloc.0 
-	IL_00ae:  nop 
-	IL_00af:  ldloc.0 
-	IL_00b0:  brfalse IL_00c0
-
-	IL_00b5:  ldloc.0 
-	IL_00b6:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_00bb:  brtrue IL_00e6
-
-	IL_00c0:  nop 
-	IL_00c1:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00c6:  ldstr "NA1147"
-	IL_00cb:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00d0:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_00d5:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_00da:  ldarg.0 
-	IL_00db:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_00e0:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_00e5:  throw 
-	IL_00e6:  ldarg.0 
-	IL_00e7:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
-	IL_00ec:  callvirt instance bool class [System]System.Uri::get_IsFile()
-	IL_00f1:  brfalse IL_0140
-
-	IL_00f6:  nop 
-	IL_00f7:  ldarg.0 
-	IL_00f8:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
-	IL_00fd:  callvirt instance string class [System]System.Uri::get_LocalPath()
-	IL_0102:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0107:  stloc.1 
-	IL_0108:  ldloc.1 
-	IL_0109:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_010e:  brtrue IL_013a
-
-	IL_0113:  nop 
-	IL_0114:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0119:  ldstr "NA1149"
-	IL_011e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0123:  ldloc.1 
-	IL_0124:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0129:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_012e:  ldarg.0 
-	IL_012f:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0134:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0139:  throw 
-	IL_013a:  nop 
-	IL_013b:  br IL_01b4
-
-	IL_0140:  nop 
-	IL_0141:  ldarg.0 
-	IL_0142:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
-	IL_0147:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(class [System]System.Uri)
-	IL_014c:  castclass [System]System.Net.HttpWebRequest
-	IL_0151:  stloc.2 
-	IL_0152:  ldarg.0 
-	IL_0153:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.StyleTask::get_Proxy()
-	IL_0158:  brfalse IL_0170
-
-	IL_015d:  nop 
-	IL_015e:  ldloc.2 
-	IL_015f:  ldarg.0 
-	IL_0160:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.StyleTask::get_Proxy()
-	IL_0165:  callvirt instance class [System]System.Net.IWebProxy class NAnt.Core.Types.Proxy::GetWebProxy()
-	IL_016a:  callvirt instance void class [System]System.Net.WebRequest::set_Proxy(class [System]System.Net.IWebProxy)
-	IL_016f:  nop 
-	IL_0170:  ldloc.2 
-	IL_0171:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
-	IL_0176:  castclass [System]System.Net.HttpWebResponse
-	IL_017b:  stloc.3 
-	IL_017c:  ldloc.3 
-	IL_017d:  callvirt instance valuetype [System]System.Net.HttpStatusCode class [System]System.Net.HttpWebResponse::get_StatusCode()
-	IL_0182:  ldc.i4 200
-	IL_0187:  beq IL_01b3
-
-	IL_018c:  nop 
-	IL_018d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0192:  ldstr "NA1149"
-	IL_0197:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_019c:  ldarg.0 
-	IL_019d:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
-	IL_01a2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_01a7:  ldarg.0 
-	IL_01a8:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_01ad:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_01b2:  throw 
-	IL_01b3:  nop 
-	IL_01b4:  nop 
-	IL_01b5:  ldloc.0 
-	IL_01b6:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_01bb:  stloc.s 5
-	.try { // 6
-	  IL_01bd:  br IL_063d
-
-	  IL_01c2:  ldloc.s 5
-	  IL_01c4:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_01c9:  stloc.s 4
-	  IL_01cb:  nop 
-	  IL_01cc:  ldnull 
-	  IL_01cd:  stloc.s 6
-	  IL_01cf:  ldarg.0 
-	  IL_01d0:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.StyleTask::get_OutputFile()
-	  IL_01d5:  brfalse IL_01e9
-
-	  IL_01da:  nop 
-	  IL_01db:  ldarg.0 
-	  IL_01dc:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.StyleTask::get_OutputFile()
-	  IL_01e1:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_01e6:  stloc.s 6
-	  IL_01e8:  nop 
-	  IL_01e9:  ldloc.s 6
-	  IL_01eb:  call bool string::IsNullOrEmpty(string)
-	  IL_01f0:  brfalse IL_026d
-
-	  IL_01f5:  nop 
-	  IL_01f6:  ldarg.0 
-	  IL_01f7:  call instance string class NAnt.Core.Tasks.StyleTask::get_Extension()
-	  IL_01fc:  ldstr "."
-	  IL_0201:  callvirt instance int32 string::IndexOf(string)
-	  IL_0206:  ldc.i4.m1 
-	  IL_0207:  ble IL_0217
-
-	  IL_020c:  ldarg.0 
-	  IL_020d:  call instance string class NAnt.Core.Tasks.StyleTask::get_Extension()
-	  IL_0212:  br IL_0227
-
-	  IL_0217:  ldstr "."
-	  IL_021c:  ldarg.0 
-	  IL_021d:  call instance string class NAnt.Core.Tasks.StyleTask::get_Extension()
-	  IL_0222:  call string string::Concat(string, string)
-	  IL_0227:  stloc.s 7
-	  IL_0229:  ldloc.s 4
-	  IL_022b:  ldc.i4.s 0x2e
-	  IL_022d:  callvirt instance int32 string::LastIndexOf(char)
-	  IL_0232:  stloc.s 8
-	  IL_0234:  ldloc.s 8
-	  IL_0236:  ldc.i4.m1 
-	  IL_0237:  bne.un IL_024e
-
-	  IL_023c:  nop 
-	  IL_023d:  ldloc.s 4
-	  IL_023f:  ldloc.s 7
-	  IL_0241:  call string string::Concat(string, string)
-	  IL_0246:  stloc.s 6
-	  IL_0248:  nop 
-	  IL_0249:  br IL_0263
-
-	  IL_024e:  nop 
-	  IL_024f:  ldloc.s 4
-	  IL_0251:  ldc.i4.0 
-	  IL_0252:  ldloc.s 8
-	  IL_0254:  callvirt instance string string::Substring(int32, int32)
-	  IL_0259:  ldloc.s 7
-	  IL_025b:  call string string::Concat(string, string)
-	  IL_0260:  stloc.s 6
-	  IL_0262:  nop 
-	  IL_0263:  ldloc.s 6
-	  IL_0265:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	  IL_026a:  stloc.s 6
-	  IL_026c:  nop 
-	  IL_026d:  ldloc.s 4
-	  IL_026f:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_0274:  stloc.s 9
-	  IL_0276:  ldarg.0 
-	  IL_0277:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.StyleTask::get_DestDir()
-	  IL_027c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0281:  ldloc.s 6
-	  IL_0283:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_0288:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
-	  IL_028d:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_0292:  stloc.s 10
-	  IL_0294:  ldloc.s 9
-	  IL_0296:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_029b:  brtrue IL_02c8
-
-	  IL_02a0:  nop 
-	  IL_02a1:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_02a6:  ldstr "NA1150"
-	  IL_02ab:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_02b0:  ldloc.s 9
-	  IL_02b2:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_02b7:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_02bc:  ldarg.0 
-	  IL_02bd:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_02c2:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_02c7:  throw 
-	  IL_02c8:  ldloc.s 10
-	  IL_02ca:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_02cf:  brfalse IL_02e9
-
-	  IL_02d4:  ldloc.s 9
-	  IL_02d6:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	  IL_02db:  ldloc.s 10
-	  IL_02dd:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	  IL_02e2:  call bool valuetype [mscorlib]System.DateTime::op_GreaterThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	  IL_02e7:  br.s IL_02ea
-
-	  IL_02e9:  ldc.i4.1 
-	  IL_02ea:  stloc.s 11
-	  IL_02ec:  ldloc.s 11
-	  IL_02ee:  brtrue IL_032f
-
-	  IL_02f3:  ldarg.0 
-	  IL_02f4:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
-	  IL_02f9:  callvirt instance bool class [System]System.Uri::get_IsFile()
-	  IL_02fe:  brfalse IL_032f
-
-	  IL_0303:  nop 
-	  IL_0304:  ldarg.0 
-	  IL_0305:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
-	  IL_030a:  callvirt instance string class [System]System.Uri::get_LocalPath()
-	  IL_030f:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_0314:  stloc.s 12
-	  IL_0316:  ldloc.s 11
-	  IL_0318:  ldloc.s 12
-	  IL_031a:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	  IL_031f:  ldloc.s 10
-	  IL_0321:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	  IL_0326:  call bool valuetype [mscorlib]System.DateTime::op_GreaterThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	  IL_032b:  or 
-	  IL_032c:  stloc.s 11
-	  IL_032e:  nop 
-	  IL_032f:  ldloc.s 11
-	  IL_0331:  brfalse IL_063c
-
-	  IL_0336:  nop 
-	  IL_0337:  ldnull 
-	  IL_0338:  stloc.s 13
-	  IL_033a:  ldnull 
-	  IL_033b:  stloc.s 14
-	  IL_033d:  ldnull 
-	  IL_033e:  stloc.s 15
-	  .try { // 5
-	    .try { // 4
-	      IL_0340:  nop 
-	      IL_0341:  call string class [mscorlib]System.IO.Directory::GetCurrentDirectory()
-	      IL_0346:  stloc.s 16
-	      IL_0348:  ldnull 
-	      IL_0349:  stloc.s 17
-	      .try { // 0
-	        IL_034b:  nop 
-	        IL_034c:  ldloc.s 9
-	        IL_034e:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
-	        IL_0353:  call void class [mscorlib]System.IO.Directory::SetCurrentDirectory(string)
-	        IL_0358:  ldarg.0 
-	        IL_0359:  ldc.i4 2000
-	        IL_035e:  ldstr "Loading XML file '{0}'."
-	        IL_0363:  ldc.i4.1 
-	        IL_0364:  newarr [mscorlib]System.Object
-	        IL_0369:  dup 
-	        IL_036a:  ldc.i4.0 
-	        IL_036b:  ldloc.s 9
-	        IL_036d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	        IL_0372:  stelem.ref 
-	        IL_0373:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	        IL_0378:  ldarg.0 
-	        IL_0379:  ldloc.s 9
-	        IL_037b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	        IL_0380:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	        IL_0385:  callvirt instance class [System.Xml]System.Xml.XmlReader class NAnt.Core.Tasks.StyleTask::CreateXmlReader(class [System]System.Uri)
-	        IL_038a:  stloc.s 13
-	        IL_038c:  ldloc.s 13
-	        IL_038e:  newobj instance void class [System.Xml]System.Xml.XPath.XPathDocument::'.ctor'(class [System.Xml]System.Xml.XmlReader)
-	        IL_0393:  stloc.s 17
-	        IL_0395:  nop 
-	        IL_0396:  leave IL_03a5
-
-	      } // end .try 0
-	      finally  { // 0
-	        IL_039b:  nop 
-	        IL_039c:  ldloc.s 16
-	        IL_039e:  call void class [mscorlib]System.IO.Directory::SetCurrentDirectory(string)
-	        IL_03a3:  nop 
-	        IL_03a4:  endfinally 
-	      } // end handler 0
-	      IL_03a5:  newobj instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::'.ctor'()
-	      IL_03aa:  stloc.s 18
-	      IL_03ac:  nop 
-	      IL_03ad:  ldarg.0 
-	      IL_03ae:  call instance class NAnt.Core.Types.XsltParameterCollection class NAnt.Core.Tasks.StyleTask::get_Parameters()
-	      IL_03b3:  callvirt instance class NAnt.Core.Types.XsltParameterEnumerator class NAnt.Core.Types.XsltParameterCollection::GetEnumerator()
-	      IL_03b8:  stloc.s 20
-	      .try { // 1
-	        IL_03ba:  br IL_03fe
-
-	        IL_03bf:  ldloc.s 20
-	        IL_03c1:  callvirt instance class NAnt.Core.Types.XsltParameter class NAnt.Core.Types.XsltParameterEnumerator::get_Current()
-	        IL_03c6:  stloc.s 19
-	        IL_03c8:  nop 
-	        IL_03c9:  ldarg.0 
-	        IL_03ca:  call instance bool class NAnt.Core.Task::get_IfDefined()
-	        IL_03cf:  brfalse IL_03fd
-
-	        IL_03d4:  ldarg.0 
-	        IL_03d5:  call instance bool class NAnt.Core.Task::get_UnlessDefined()
-	        IL_03da:  brtrue IL_03fd
-
-	        IL_03df:  nop 
-	        IL_03e0:  ldloc.s 18
-	        IL_03e2:  ldloc.s 19
-	        IL_03e4:  callvirt instance string class NAnt.Core.Types.XsltParameter::get_ParameterName()
-	        IL_03e9:  ldloc.s 19
-	        IL_03eb:  callvirt instance string class NAnt.Core.Types.XsltParameter::get_NamespaceUri()
-	        IL_03f0:  ldloc.s 19
-	        IL_03f2:  callvirt instance string class NAnt.Core.Types.XsltParameter::get_Value()
-	        IL_03f7:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
-	        IL_03fc:  nop 
-	        IL_03fd:  nop 
-	        IL_03fe:  ldloc.s 20
-	        IL_0400:  callvirt instance bool class NAnt.Core.Types.XsltParameterEnumerator::MoveNext()
-	        IL_0405:  brtrue IL_03bf
-
-	        IL_040a:  leave IL_0426
-
-	      } // end .try 1
-	      finally  { // 1
-	        IL_040f:  ldloc.s 20
-	        IL_0411:  isinst [mscorlib]System.IDisposable
-	        IL_0416:  dup 
-	        IL_0417:  stloc.s 21
-	        IL_0419:  brfalse IL_0425
-
-	        IL_041e:  ldloc.s 21
-	        IL_0420:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	        IL_0425:  endfinally 
-	      } // end handler 1
-	      IL_0426:  nop 
-	      IL_0427:  ldarg.0 
-	      IL_0428:  call instance class NAnt.Core.Types.XsltExtensionObjectCollection class NAnt.Core.Tasks.StyleTask::get_ExtensionObjects()
-	      IL_042d:  callvirt instance class NAnt.Core.Types.XsltExtensionObjectEnumerator class NAnt.Core.Types.XsltExtensionObjectCollection::GetEnumerator()
-	      IL_0432:  stloc.s 23
-	      .try { // 2
-	        IL_0434:  br IL_0477
-
-	        IL_0439:  ldloc.s 23
-	        IL_043b:  callvirt instance class NAnt.Core.Types.XsltExtensionObject class NAnt.Core.Types.XsltExtensionObjectEnumerator::get_Current()
-	        IL_0440:  stloc.s 22
-	        IL_0442:  nop 
-	        IL_0443:  ldloc.s 22
-	        IL_0445:  callvirt instance bool class NAnt.Core.Types.XsltExtensionObject::get_IfDefined()
-	        IL_044a:  brfalse IL_0476
-
-	        IL_044f:  ldloc.s 22
-	        IL_0451:  callvirt instance bool class NAnt.Core.Types.XsltExtensionObject::get_UnlessDefined()
-	        IL_0456:  brtrue IL_0476
-
-	        IL_045b:  nop 
-	        IL_045c:  ldloc.s 22
-	        IL_045e:  callvirt instance object class NAnt.Core.Types.XsltExtensionObject::CreateInstance()
-	        IL_0463:  stloc.s 24
-	        IL_0465:  ldloc.s 18
-	        IL_0467:  ldloc.s 22
-	        IL_0469:  callvirt instance string class NAnt.Core.Types.XsltExtensionObject::get_NamespaceUri()
-	        IL_046e:  ldloc.s 24
-	        IL_0470:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddExtensionObject(string, object)
-	        IL_0475:  nop 
-	        IL_0476:  nop 
-	        IL_0477:  ldloc.s 23
-	        IL_0479:  callvirt instance bool class NAnt.Core.Types.XsltExtensionObjectEnumerator::MoveNext()
-	        IL_047e:  brtrue IL_0439
-
-	        IL_0483:  leave IL_049f
-
-	      } // end .try 2
-	      finally  { // 2
-	        IL_0488:  ldloc.s 23
-	        IL_048a:  isinst [mscorlib]System.IDisposable
-	        IL_048f:  dup 
-	        IL_0490:  stloc.s 25
-	        IL_0492:  brfalse IL_049e
-
-	        IL_0497:  ldloc.s 25
-	        IL_0499:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	        IL_049e:  endfinally 
-	      } // end handler 2
-	      .try { // 3
-	        IL_049f:  nop 
-	        IL_04a0:  ldarg.0 
-	        IL_04a1:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
-	        IL_04a6:  callvirt instance bool class [System]System.Uri::get_IsFile()
-	        IL_04ab:  brfalse IL_04d0
-
-	        IL_04b0:  nop 
-	        IL_04b1:  ldarg.0 
-	        IL_04b2:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
-	        IL_04b7:  callvirt instance string class [System]System.Uri::get_LocalPath()
-	        IL_04bc:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	        IL_04c1:  stloc.s 26
-	        IL_04c3:  ldloc.s 26
-	        IL_04c5:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
-	        IL_04ca:  call void class [mscorlib]System.IO.Directory::SetCurrentDirectory(string)
-	        IL_04cf:  nop 
-	        IL_04d0:  ldarg.0 
-	        IL_04d1:  ldc.i4 2000
-	        IL_04d6:  ldstr "Loading stylesheet '{0}'."
-	        IL_04db:  ldc.i4.1 
-	        IL_04dc:  newarr [mscorlib]System.Object
-	        IL_04e1:  dup 
-	        IL_04e2:  ldc.i4.0 
-	        IL_04e3:  ldarg.0 
-	        IL_04e4:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
-	        IL_04e9:  stelem.ref 
-	        IL_04ea:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	        IL_04ef:  ldarg.0 
-	        IL_04f0:  ldarg.0 
-	        IL_04f1:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
-	        IL_04f6:  callvirt instance class [System.Xml]System.Xml.XmlReader class NAnt.Core.Tasks.StyleTask::CreateXmlReader(class [System]System.Uri)
-	        IL_04fb:  stloc.s 14
-	        IL_04fd:  ldarg.0 
-	        IL_04fe:  ldloc.s 10
-	        IL_0500:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	        IL_0505:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.Tasks.StyleTask::CreateWriter(string)
-	        IL_050a:  stloc.s 15
-	        IL_050c:  ldarg.0 
-	        IL_050d:  ldc.i4 3000
-	        IL_0512:  ldstr "Processing '{0}' to '{1}'."
-	        IL_0517:  ldc.i4.2 
-	        IL_0518:  newarr [mscorlib]System.Object
-	        IL_051d:  dup 
-	        IL_051e:  ldc.i4.0 
-	        IL_051f:  ldloc.s 9
-	        IL_0521:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	        IL_0526:  stelem.ref 
-	        IL_0527:  dup 
-	        IL_0528:  ldc.i4.1 
-	        IL_0529:  ldloc.s 10
-	        IL_052b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	        IL_0530:  stelem.ref 
-	        IL_0531:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	        IL_0536:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
-	        IL_053b:  stloc.s 27
-	        IL_053d:  ldloc.s 27
-	        IL_053f:  callvirt instance class [mscorlib]System.Type object::GetType()
-	        IL_0544:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	        IL_0549:  stloc.s 28
-	        IL_054b:  ldarg.0 
-	        IL_054c:  ldc.i4 2000
-	        IL_0551:  ldstr "Using {0} to load '{1}'."
-	        IL_0556:  ldc.i4.2 
-	        IL_0557:  newarr [mscorlib]System.Object
-	        IL_055c:  dup 
-	        IL_055d:  ldc.i4.0 
-	        IL_055e:  ldloc.s 28
-	        IL_0560:  stelem.ref 
-	        IL_0561:  dup 
-	        IL_0562:  ldc.i4.1 
-	        IL_0563:  ldarg.0 
-	        IL_0564:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
-	        IL_0569:  stelem.ref 
-	        IL_056a:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	        IL_056f:  ldloc.s 27
-	        IL_0571:  ldloc.s 14
-	        IL_0573:  ldc.i4.1 
-	        IL_0574:  ldc.i4.1 
-	        IL_0575:  newobj instance void class [System.Xml]System.Xml.Xsl.XsltSettings::'.ctor'(bool, bool)
-	        IL_057a:  newobj instance void class [System.Xml]System.Xml.XmlUrlResolver::'.ctor'()
-	        IL_057f:  callvirt instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::Load(class [System.Xml]System.Xml.XmlReader, class [System.Xml]System.Xml.Xsl.XsltSettings, class [System.Xml]System.Xml.XmlResolver)
-	        IL_0584:  ldarg.0 
-	        IL_0585:  ldc.i4 2000
-	        IL_058a:  ldstr "Using {0} to process '{1}' to '{2}'."
-	        IL_058f:  ldc.i4.3 
-	        IL_0590:  newarr [mscorlib]System.Object
-	        IL_0595:  dup 
-	        IL_0596:  ldc.i4.0 
-	        IL_0597:  ldloc.s 28
-	        IL_0599:  stelem.ref 
-	        IL_059a:  dup 
-	        IL_059b:  ldc.i4.1 
-	        IL_059c:  ldloc.s 9
-	        IL_059e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	        IL_05a3:  stelem.ref 
-	        IL_05a4:  dup 
-	        IL_05a5:  ldc.i4.2 
-	        IL_05a6:  ldloc.s 10
-	        IL_05a8:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	        IL_05ad:  stelem.ref 
-	        IL_05ae:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	        IL_05b3:  ldloc.s 27
-	        IL_05b5:  ldloc.s 17
-	        IL_05b7:  ldloc.s 18
-	        IL_05b9:  ldloc.s 15
-	        IL_05bb:  callvirt instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::Transform(class [System.Xml]System.Xml.XPath.IXPathNavigable, class [System.Xml]System.Xml.Xsl.XsltArgumentList, class [mscorlib]System.IO.TextWriter)
-	        IL_05c0:  nop 
-	        IL_05c1:  leave IL_05d0
-
-	      } // end .try 3
-	      finally  { // 3
-	        IL_05c6:  nop 
-	        IL_05c7:  ldloc.s 16
-	        IL_05c9:  call void class [mscorlib]System.IO.Directory::SetCurrentDirectory(string)
-	        IL_05ce:  nop 
-	        IL_05cf:  endfinally 
-	      } // end handler 3
-	      IL_05d0:  nop 
-	      IL_05d1:  leave IL_063b
-
-	    } // end .try 4
-	    catch class [mscorlib]System.Exception { // 4
-	      IL_05d6:  stloc.s 29
-	      IL_05d8:  nop 
-	      IL_05d9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	      IL_05de:  ldstr "NA1151"
-	      IL_05e3:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	      IL_05e8:  ldloc.s 9
-	      IL_05ea:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	      IL_05ef:  ldarg.0 
-	      IL_05f0:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
-	      IL_05f5:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	      IL_05fa:  ldarg.0 
-	      IL_05fb:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	      IL_0600:  ldloc.s 29
-	      IL_0602:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	      IL_0607:  throw 
-	    } // end handler 4
-	  } // end .try 5
-	  finally  { // 5
-	    IL_0608:  nop 
-	    IL_0609:  ldloc.s 13
-	    IL_060b:  brfalse IL_0619
-
-	    IL_0610:  nop 
-	    IL_0611:  ldloc.s 13
-	    IL_0613:  callvirt instance void class [System.Xml]System.Xml.XmlReader::Close()
-	    IL_0618:  nop 
-	    IL_0619:  ldloc.s 14
-	    IL_061b:  brfalse IL_0629
-
-	    IL_0620:  nop 
-	    IL_0621:  ldloc.s 14
-	    IL_0623:  callvirt instance void class [System.Xml]System.Xml.XmlReader::Close()
-	    IL_0628:  nop 
-	    IL_0629:  ldloc.s 15
-	    IL_062b:  brfalse IL_0639
-
-	    IL_0630:  nop 
-	    IL_0631:  ldloc.s 15
-	    IL_0633:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
-	    IL_0638:  nop 
-	    IL_0639:  nop 
-	    IL_063a:  endfinally 
-	  } // end handler 5
-	  IL_063b:  nop 
-	  IL_063c:  nop 
-	  IL_063d:  ldloc.s 5
-	  IL_063f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0644:  brtrue IL_01c2
-
-	  IL_0649:  leave IL_0665
+	IL_0002:  call instance string class NAnt.Core.Tasks.SetEnvTask::get_EnvName()
+	IL_0007:  brtrue IL_002e
 
-	} // end .try 6
-	finally  { // 6
-	  IL_064e:  ldloc.s 5
-	  IL_0650:  isinst [mscorlib]System.IDisposable
-	  IL_0655:  dup 
-	  IL_0656:  stloc.s 30
-	  IL_0658:  brfalse IL_0664
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance class NAnt.Core.Types.EnvironmentVariableCollection class NAnt.Core.Tasks.SetEnvTask::get_EnvironmentVariables()
+	IL_0012:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0017:  brtrue IL_002e
 
-	  IL_065d:  ldloc.s 30
-	  IL_065f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0664:  endfinally 
-	} // end handler 6
-	IL_0665:  ret 
-    } // end of method StyleTask::ExecuteTask
+	IL_001c:  nop 
+	IL_001d:  ldstr "Either the \"name\" attribute or at least one nested <variable> element is required."
+	IL_0022:  ldarg.0 
+	IL_0023:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0028:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_002d:  throw 
+	IL_002e:  ret 
+    } // end of method SetEnvTask::Initialize
 
-    // method line 1118
-    .method family virtual hidebysig newslot 
-           instance default class [System.Xml]System.Xml.XmlReader CreateXmlReader (class [System]System.Uri uri)  cil managed 
+    // method line 1103
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x15734
-	// Code size 175 (0xaf)
+        // Method begins at RVA 0x13928
+	// Code size 149 (0x95)
 	.maxstack 3
 	.locals init (
-		class [mscorlib]System.IO.Stream	V_0,
-		class [System.Xml]System.Xml.XmlUrlResolver	V_1,
-		class [System]System.Net.HttpWebRequest	V_2,
-		class [System.Xml]System.Xml.XmlTextReader	V_3,
-		class [System.Xml]System.Xml.XmlReader	V_4)
+		class NAnt.Core.Types.EnvironmentVariable	V_0,
+		class NAnt.Core.Types.EnvironmentVariableEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldnull 
-	IL_0004:  stloc.1 
-	IL_0005:  ldarg.1 
-	IL_0006:  callvirt instance bool class [System]System.Uri::get_IsFile()
-	IL_000b:  brfalse IL_0025
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.Core.Tasks.SetEnvTask::get_EnvName()
+	IL_0007:  brfalse IL_002b
 
-	IL_0010:  nop 
-	IL_0011:  ldarg.1 
-	IL_0012:  callvirt instance string class [System]System.Uri::get_LocalPath()
-	IL_0017:  ldc.i4.3 
-	IL_0018:  ldc.i4.1 
-	IL_0019:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode, valuetype [mscorlib]System.IO.FileAccess)
-	IL_001e:  stloc.0 
-	IL_001f:  nop 
-	IL_0020:  br IL_008b
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class NAnt.Core.Types.EnvironmentVariableCollection class NAnt.Core.Tasks.SetEnvTask::get_EnvironmentVariables()
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance string class NAnt.Core.Tasks.SetEnvTask::get_EnvName()
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld string NAnt.Core.Tasks.SetEnvTask::_value
+	IL_001f:  newobj instance void class NAnt.Core.Types.EnvironmentVariable::'.ctor'(string, string)
+	IL_0024:  callvirt instance int32 class NAnt.Core.Types.EnvironmentVariableCollection::Add(class NAnt.Core.Types.EnvironmentVariable)
+	IL_0029:  pop 
+	IL_002a:  nop 
+	IL_002b:  nop 
+	IL_002c:  ldarg.0 
+	IL_002d:  call instance class NAnt.Core.Types.EnvironmentVariableCollection class NAnt.Core.Tasks.SetEnvTask::get_EnvironmentVariables()
+	IL_0032:  callvirt instance class NAnt.Core.Types.EnvironmentVariableEnumerator class NAnt.Core.Types.EnvironmentVariableCollection::GetEnumerator()
+	IL_0037:  stloc.1 
+	.try { // 0
+	  IL_0038:  br IL_0070
 
-	IL_0025:  nop 
-	IL_0026:  newobj instance void class [System.Xml]System.Xml.XmlUrlResolver::'.ctor'()
-	IL_002b:  stloc.1 
-	IL_002c:  ldarg.1 
-	IL_002d:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(class [System]System.Uri)
-	IL_0032:  castclass [System]System.Net.HttpWebRequest
-	IL_0037:  stloc.2 
-	IL_0038:  ldarg.0 
-	IL_0039:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.StyleTask::get_Proxy()
-	IL_003e:  brfalse IL_0071
+	  IL_003d:  ldloc.1 
+	  IL_003e:  callvirt instance class NAnt.Core.Types.EnvironmentVariable class NAnt.Core.Types.EnvironmentVariableEnumerator::get_Current()
+	  IL_0043:  stloc.0 
+	  IL_0044:  nop 
+	  IL_0045:  ldloc.0 
+	  IL_0046:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_IfDefined()
+	  IL_004b:  brfalse IL_006f
 
-	IL_0043:  nop 
-	IL_0044:  ldloc.2 
-	IL_0045:  ldarg.0 
-	IL_0046:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.StyleTask::get_Proxy()
-	IL_004b:  callvirt instance class [System]System.Net.IWebProxy class NAnt.Core.Types.Proxy::GetWebProxy()
-	IL_0050:  callvirt instance void class [System]System.Net.WebRequest::set_Proxy(class [System]System.Net.IWebProxy)
-	IL_0055:  ldloc.1 
-	IL_0056:  ldarg.0 
-	IL_0057:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.StyleTask::get_Proxy()
-	IL_005c:  callvirt instance class NAnt.Core.Types.Credential class NAnt.Core.Types.Proxy::get_Credentials()
-	IL_0061:  callvirt instance class [System]System.Net.ICredentials class NAnt.Core.Types.Credential::GetCredential()
-	IL_0066:  callvirt instance void class [System.Xml]System.Xml.XmlResolver::set_Credentials(class [System]System.Net.ICredentials)
-	IL_006b:  nop 
-	IL_006c:  br IL_007e
+	  IL_0050:  ldloc.0 
+	  IL_0051:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_UnlessDefined()
+	  IL_0056:  brtrue IL_006f
 
-	IL_0071:  nop 
-	IL_0072:  ldloc.1 
-	IL_0073:  call class [System]System.Net.ICredentials class [System]System.Net.CredentialCache::get_DefaultCredentials()
-	IL_0078:  callvirt instance void class [System.Xml]System.Xml.XmlResolver::set_Credentials(class [System]System.Net.ICredentials)
-	IL_007d:  nop 
-	IL_007e:  ldloc.2 
-	IL_007f:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
-	IL_0084:  callvirt instance class [mscorlib]System.IO.Stream class [System]System.Net.WebResponse::GetResponseStream()
-	IL_0089:  stloc.0 
-	IL_008a:  nop 
-	IL_008b:  ldarg.1 
-	IL_008c:  callvirt instance string object::ToString()
-	IL_0091:  ldloc.0 
-	IL_0092:  newobj instance void class [System.Xml]System.Xml.XmlTextReader::'.ctor'(string, class [mscorlib]System.IO.Stream)
-	IL_0097:  stloc.3 
-	IL_0098:  ldloc.3 
-	IL_0099:  ldloc.1 
-	IL_009a:  callvirt instance void class [System.Xml]System.Xml.XmlTextReader::set_XmlResolver(class [System.Xml]System.Xml.XmlResolver)
-	IL_009f:  ldloc.3 
-	IL_00a0:  newobj instance void class [System.Xml]System.Xml.XmlValidatingReader::'.ctor'(class [System.Xml]System.Xml.XmlReader)
-	IL_00a5:  stloc.s 4
-	IL_00a7:  br IL_00ac
+	  IL_005b:  nop 
+	  IL_005c:  ldarg.0 
+	  IL_005d:  ldloc.0 
+	  IL_005e:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_VariableName()
+	  IL_0063:  ldloc.0 
+	  IL_0064:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_Value()
+	  IL_0069:  call instance void class NAnt.Core.Tasks.SetEnvTask::SetSingleEnvironmentVariable(string, string)
+	  IL_006e:  nop 
+	  IL_006f:  nop 
+	  IL_0070:  ldloc.1 
+	  IL_0071:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariableEnumerator::MoveNext()
+	  IL_0076:  brtrue IL_003d
 
-	IL_00ac:  ldloc.s 4
-	IL_00ae:  ret 
-    } // end of method StyleTask::CreateXmlReader
+	  IL_007b:  leave IL_0094
 
-    // method line 1119
-    .method family virtual hidebysig newslot 
-           instance default class [mscorlib]System.IO.TextWriter CreateWriter (string filepath)  cil managed 
+	} // end .try 0
+	finally  { // 0
+	  IL_0080:  ldloc.1 
+	  IL_0081:  isinst [mscorlib]System.IDisposable
+	  IL_0086:  dup 
+	  IL_0087:  stloc.2 
+	  IL_0088:  brfalse IL_0093
+
+	  IL_008d:  ldloc.2 
+	  IL_008e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0093:  endfinally 
+	} // end handler 0
+	IL_0094:  ret 
+    } // end of method SetEnvTask::ExecuteTask
+
+    // method line 1104
+    .method private hidebysig 
+           instance default void SetSingleEnvironmentVariable (string name, string 'value')  cil managed 
     {
-        // Method begins at RVA 0x157f0
-	// Code size 58 (0x3a)
-	.maxstack 1
+        // Method begins at RVA 0x139dc
+	// Code size 95 (0x5f)
+	.maxstack 7
 	.locals init (
 		string	V_0,
-		class [mscorlib]System.IO.TextWriter	V_1)
+		class [mscorlib]System.Exception	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
-	IL_0007:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  call bool string::IsNullOrEmpty(string)
-	IL_0013:  brtrue IL_002c
-
-	IL_0018:  ldloc.0 
-	IL_0019:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_001e:  brtrue IL_002c
-
-	IL_0023:  nop 
-	IL_0024:  ldloc.0 
-	IL_0025:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	IL_002a:  pop 
-	IL_002b:  nop 
-	IL_002c:  ldarg.1 
-	IL_002d:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string)
-	IL_0032:  stloc.1 
-	IL_0033:  br IL_0038
-
-	IL_0038:  ldloc.1 
-	IL_0039:  ret 
-    } // end of method StyleTask::CreateWriter
-
-	.property instance class [mscorlib]System.IO.DirectoryInfo DestDir ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 64 65 73 74 64 69 72 01 00 54 02 08 52   // ...destdir..T..R
-		65 71 75 69 72 65 64 00                         ) // equired.
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4 2000
+	IL_0007:  ldstr "Setting environment variable \"{0}\" to \"{1}\"."
+	IL_000c:  ldc.i4.2 
+	IL_000d:  newarr [mscorlib]System.Object
+	IL_0012:  dup 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  ldarg.1 
+	IL_0015:  stelem.ref 
+	IL_0016:  dup 
+	IL_0017:  ldc.i4.1 
+	IL_0018:  ldarg.2 
+	IL_0019:  stelem.ref 
+	IL_001a:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_001f:  ldnull 
+	IL_0020:  stloc.0 
+	IL_0021:  ldarg.2 
+	IL_0022:  brfalse IL_0030
 
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.StyleTask::get_DestDir () 
-		.set instance default void NAnt.Core.Tasks.StyleTask::set_DestDir (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance string Extension ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 65 78 74 65 6E 73 69 6F 6E 01 00 54 02   // ...extension..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+	IL_0027:  nop 
+	IL_0028:  ldarg.2 
+	IL_0029:  call string class [mscorlib]System.Environment::ExpandEnvironmentVariables(string)
+	IL_002e:  stloc.0 
+	IL_002f:  nop 
+	.try { // 0
+	  IL_0030:  nop 
+	  IL_0031:  ldarg.1 
+	  IL_0032:  ldloc.0 
+	  IL_0033:  call void class [mscorlib]System.Environment::SetEnvironmentVariable(string, string)
+	  IL_0038:  nop 
+	  IL_0039:  leave IL_005e
 
-		.get instance default string NAnt.Core.Tasks.StyleTask::get_Extension () 
-		.set instance default void NAnt.Core.Tasks.StyleTask::set_Extension (string 'value') 
-	}
-	.property instance class [System]System.Uri XsltFile ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 05 73 74 79 6C 65 01 00 54 02 08 52 65 71   // ...style..T..Req
-		75 69 72 65 64 01                               ) // uired.
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_003e:  stloc.1 
+	  IL_003f:  nop 
+	  IL_0040:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0045:  ldstr "Error setting environment variable \"{0}\" to \"{1}\"."
+	  IL_004a:  ldarg.1 
+	  IL_004b:  ldarg.2 
+	  IL_004c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0051:  ldarg.0 
+	  IL_0052:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0057:  ldloc.1 
+	  IL_0058:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_005d:  throw 
+	} // end handler 0
+	IL_005e:  ret 
+    } // end of method SetEnvTask::SetSingleEnvironmentVariable
 
-		.get instance default class [System]System.Uri NAnt.Core.Tasks.StyleTask::get_XsltFile () 
-		.set instance default void NAnt.Core.Tasks.StyleTask::set_XsltFile (class [System]System.Uri 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo SrcFile ()
+	.property instance string EnvName ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 02 69 6E 01 00 54 02 08 52 65 71 75 69 72   // ...in..T..Requir
-		65 64 00                                        ) // ed.
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 6E 61 6D 65 00 00 ) // ...name..
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.StyleTask::get_SrcFile () 
-		.set instance default void NAnt.Core.Tasks.StyleTask::set_SrcFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default string NAnt.Core.Tasks.SetEnvTask::get_EnvName () 
+		.set instance default void NAnt.Core.Tasks.SetEnvTask::set_EnvName (string 'value') 
 	}
-	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
+	.property instance string LiteralValue ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 03 6F 75 74 01 00 54 02 08 52 65 71 75 69   // ...out..T..Requi
-		72 65 64 00                                     ) // red.
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 76 61 6C 75 65 00 00 ) // ...value..
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.StyleTask::get_OutputFile () 
-		.set instance default void NAnt.Core.Tasks.StyleTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default string NAnt.Core.Tasks.SetEnvTask::get_LiteralValue () 
+		.set instance default void NAnt.Core.Tasks.SetEnvTask::set_LiteralValue (string 'value') 
 	}
-	.property instance class NAnt.Core.Types.FileSet InFiles ()
+	.property instance class [mscorlib]System.IO.FileInfo File ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 69 6E 66 69 6C 65 73 00 00 ) // ...infiles..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
 
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.StyleTask::get_InFiles () 
-		.set instance default void NAnt.Core.Tasks.StyleTask::set_InFiles (class NAnt.Core.Types.FileSet 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.SetEnvTask::get_File () 
+		.set instance default void NAnt.Core.Tasks.SetEnvTask::set_File (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance class NAnt.Core.Types.XsltParameterCollection Parameters ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo Directory ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
-		01 00 0A 70 61 72 61 6D 65 74 65 72 73 09 70 61   // ...parameters.pa
-		72 61 6D 65 74 65 72 00 00                      ) // rameter..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 69 72 00 00 ) // ...dir..
 
-		.get instance default class NAnt.Core.Types.XsltParameterCollection NAnt.Core.Tasks.StyleTask::get_Parameters () 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.SetEnvTask::get_Directory () 
+		.set instance default void NAnt.Core.Tasks.SetEnvTask::set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value') 
 	}
-	.property instance class NAnt.Core.Types.XsltExtensionObjectCollection ExtensionObjects ()
+	.property instance class NAnt.Core.Types.PathSet Path ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
-		01 00 10 65 78 74 65 6E 73 69 6F 6E 6F 62 6A 65   // ...extensionobje
-		63 74 73 0F 65 78 74 65 6E 73 69 6F 6E 6F 62 6A   // cts.extensionobj
-		65 63 74 00 00                                  ) // ect..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 70 61 74 68 00 00 ) // ...path..
 
-		.get instance default class NAnt.Core.Types.XsltExtensionObjectCollection NAnt.Core.Tasks.StyleTask::get_ExtensionObjects () 
+		.get instance default class NAnt.Core.Types.PathSet NAnt.Core.Tasks.SetEnvTask::get_Path () 
+		.set instance default void NAnt.Core.Tasks.SetEnvTask::set_Path (class NAnt.Core.Types.PathSet 'value') 
 	}
-	.property instance class NAnt.Core.Types.Proxy Proxy ()
+	.property instance class NAnt.Core.Types.EnvironmentVariableCollection EnvironmentVariables ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 05 70 72 6F 78 79 00 00 ) // ...proxy..
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (
+		01 00 08 76 61 72 69 61 62 6C 65 01 00 54 50 0B   // ...variable..TP.
+		45 6C 65 6D 65 6E 74 54 79 70 65 23 4E 41 6E 74   // ElementType#NAnt
+		2E 43 6F 72 65 2E 54 79 70 65 73 2E 45 6E 76 69   // .Core.Types.Envi
+		72 6F 6E 6D 65 6E 74 56 61 72 69 61 62 6C 65    ) // ronmentVariable
 
-		.get instance default class NAnt.Core.Types.Proxy NAnt.Core.Tasks.StyleTask::get_Proxy () 
-		.set instance default void NAnt.Core.Tasks.StyleTask::set_Proxy (class NAnt.Core.Types.Proxy 'value') 
+		.get instance default class NAnt.Core.Types.EnvironmentVariableCollection NAnt.Core.Tasks.SetEnvTask::get_EnvironmentVariables () 
+		.set instance default void NAnt.Core.Tasks.SetEnvTask::set_EnvironmentVariables (class NAnt.Core.Types.EnvironmentVariableCollection 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.StyleTask
+  } // end of class NAnt.Core.Tasks.SetEnvTask
 }
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit TStampTask
+  .class public auto ansi beforefieldinit PropertyTask
   	extends NAnt.Core.Task
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 74 73 74 61 6D 70 00 00 ) // ...tstamp..
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 08 70 72 6F 70 65 72 74 79 00 00 ) // ...property..
 
-    .field  private  string _property
-    .field  private  string _pattern
-    .field  private  class NAnt.Core.Types.FormatterCollection _formatters
+    .field  private  string _name
+    .field  private  string _value
+    .field  private  bool _readOnly
+    .field  private  bool _dynamic
+    .field  private  bool _overwrite
 
-    // method line 1120
+    // method line 1105
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x15836
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x13a58
+	// Code size 25 (0x19)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Types.FormatterCollection::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.Types.FormatterCollection NAnt.Core.Tasks.TStampTask::_formatters
+	IL_0001:  ldsfld string [mscorlib]System.String::Empty
+	IL_0006:  stfld string NAnt.Core.Tasks.PropertyTask::_value
 	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0011:  ret 
-    } // end of method TStampTask::.ctor
+	IL_000c:  ldc.i4.1 
+	IL_000d:  stfld bool NAnt.Core.Tasks.PropertyTask::_overwrite
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0018:  ret 
+    } // end of method PropertyTask::.ctor
 
-    // method line 1121
+    // method line 1106
     .method public hidebysig specialname 
-           instance default string get_Property ()  cil managed 
+           instance default string get_PropertyName ()  cil managed 
     {
-        // Method begins at RVA 0x1584c
+        // Method begins at RVA 0x13a74
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.TStampTask::_property
+	IL_0002:  ldfld string NAnt.Core.Tasks.PropertyTask::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TStampTask::get_Property
+    } // end of method PropertyTask::get_PropertyName
 
-    // method line 1122
+    // method line 1107
     .method public hidebysig specialname 
-           instance default void set_Property (string 'value')  cil managed 
+           instance default void set_PropertyName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x15867
+        // Method begins at RVA 0x13a8f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.TStampTask::_property
+	IL_0003:  stfld string NAnt.Core.Tasks.PropertyTask::_name
 	IL_0008:  ret 
-    } // end of method TStampTask::set_Property
+    } // end of method PropertyTask::set_PropertyName
 
-    // method line 1123
+    // method line 1108
     .method public hidebysig specialname 
-           instance default string get_Pattern ()  cil managed 
+           instance default string get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x15874
+        // Method begins at RVA 0x13a9c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.TStampTask::_pattern
+	IL_0002:  ldfld string NAnt.Core.Tasks.PropertyTask::_value
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TStampTask::get_Pattern
+    } // end of method PropertyTask::get_Value
 
-    // method line 1124
+    // method line 1109
     .method public hidebysig specialname 
-           instance default void set_Pattern (string 'value')  cil managed 
+           instance default void set_Value (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1588f
+        // Method begins at RVA 0x13ab7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.TStampTask::_pattern
+	IL_0003:  stfld string NAnt.Core.Tasks.PropertyTask::_value
 	IL_0008:  ret 
-    } // end of method TStampTask::set_Pattern
+    } // end of method PropertyTask::set_Value
 
-    // method line 1125
+    // method line 1110
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FormatterCollection get_Formatters ()  cil managed 
+           instance default bool get_ReadOnly ()  cil managed 
     {
-        // Method begins at RVA 0x1589c
+        // Method begins at RVA 0x13ac4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.FormatterCollection	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FormatterCollection NAnt.Core.Tasks.TStampTask::_formatters
+	IL_0002:  ldfld bool NAnt.Core.Tasks.PropertyTask::_readOnly
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TStampTask::get_Formatters
+    } // end of method PropertyTask::get_ReadOnly
 
-    // method line 1126
+    // method line 1111
+    .method public hidebysig specialname 
+           instance default void set_ReadOnly (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x13adf
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.PropertyTask::_readOnly
+	IL_0008:  ret 
+    } // end of method PropertyTask::set_ReadOnly
+
+    // method line 1112
+    .method public hidebysig specialname 
+           instance default bool get_Dynamic ()  cil managed 
+    {
+        // Method begins at RVA 0x13aec
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Tasks.PropertyTask::_dynamic
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PropertyTask::get_Dynamic
+
+    // method line 1113
+    .method public hidebysig specialname 
+           instance default void set_Dynamic (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x13b07
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.PropertyTask::_dynamic
+	IL_0008:  ret 
+    } // end of method PropertyTask::set_Dynamic
+
+    // method line 1114
+    .method public hidebysig specialname 
+           instance default bool get_Overwrite ()  cil managed 
+    {
+        // Method begins at RVA 0x13b14
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Tasks.PropertyTask::_overwrite
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PropertyTask::get_Overwrite
+
+    // method line 1115
+    .method public hidebysig specialname 
+           instance default void set_Overwrite (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x13b2f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.PropertyTask::_overwrite
+	IL_0008:  ret 
+    } // end of method PropertyTask::set_Overwrite
+
+    // method line 1116
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x158b8
-	// Code size 447 (0x1bf)
-	.maxstack 8
+        // Method begins at RVA 0x13b3c
+	// Code size 726 (0x2d6)
+	.maxstack 7
 	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0,
-		class NAnt.Core.Types.Formatter	V_1,
-		class NAnt.Core.Types.FormatterEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3)
+		string	V_0,
+		class NAnt.Core.FrameworkInfo	V_1,
+		class [mscorlib]System.Collections.ArrayList	V_2,
+		class NAnt.Core.FrameworkInfo	V_3,
+		class NAnt.Core.FrameworkInfoDictionaryEnumerator	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		string	V_6)
 	IL_0000:  nop 
-	IL_0001:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4 3000
-	IL_000d:  ldstr "{0} {1}."
-	IL_0012:  ldc.i4.2 
-	IL_0013:  newarr [mscorlib]System.Object
-	IL_0018:  dup 
-	IL_0019:  ldc.i4.0 
-	IL_001a:  ldloca.s 0
-	IL_001c:  call instance string valuetype [mscorlib]System.DateTime::ToLongDateString()
-	IL_0021:  stelem.ref 
-	IL_0022:  dup 
-	IL_0023:  ldc.i4.1 
-	IL_0024:  ldloca.s 0
-	IL_0026:  call instance string valuetype [mscorlib]System.DateTime::ToLongTimeString()
-	IL_002b:  stelem.ref 
-	IL_002c:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0031:  ldarg.0 
-	IL_0032:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0037:  ldstr "tstamp.date"
-	IL_003c:  ldloca.s 0
-	IL_003e:  ldstr "yyyyMMdd"
-	IL_0043:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0048:  call instance string valuetype [mscorlib]System.DateTime::ToString(string, class [mscorlib]System.IFormatProvider)
-	IL_004d:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0052:  ldarg.0 
-	IL_0053:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0058:  ldstr "tstamp.time"
-	IL_005d:  ldloca.s 0
-	IL_005f:  ldstr "HHmm"
-	IL_0064:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0069:  call instance string valuetype [mscorlib]System.DateTime::ToString(string, class [mscorlib]System.IFormatProvider)
-	IL_006e:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0073:  ldarg.0 
-	IL_0074:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_0079:  ldstr "tstamp.now"
-	IL_007e:  ldloca.s 0
-	IL_0080:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0085:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
-	IL_008a:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_008f:  ldarg.0 
-	IL_0090:  ldfld string NAnt.Core.Tasks.TStampTask::_property
-	IL_0095:  brfalse IL_0107
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.Core.Tasks.PropertyTask::get_Dynamic()
+	IL_0007:  brtrue IL_002b
 
-	IL_009a:  ldarg.0 
-	IL_009b:  ldfld string NAnt.Core.Tasks.TStampTask::_pattern
-	IL_00a0:  brfalse IL_0107
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance string class NAnt.Core.Tasks.PropertyTask::get_Value()
+	IL_0019:  ldarg.0 
+	IL_001a:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_001f:  callvirt instance string class NAnt.Core.Project::ExpandProperties(string, class NAnt.Core.Location)
+	IL_0024:  stloc.0 
+	IL_0025:  nop 
+	IL_0026:  br IL_0034
 
-	IL_00a5:  nop 
-	IL_00a6:  ldarg.0 
-	IL_00a7:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_00ac:  ldarg.0 
-	IL_00ad:  ldfld string NAnt.Core.Tasks.TStampTask::_property
-	IL_00b2:  ldloca.s 0
-	IL_00b4:  ldarg.0 
-	IL_00b5:  ldfld string NAnt.Core.Tasks.TStampTask::_pattern
-	IL_00ba:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00bf:  call instance string valuetype [mscorlib]System.DateTime::ToString(string, class [mscorlib]System.IFormatProvider)
-	IL_00c4:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_00c9:  ldarg.0 
-	IL_00ca:  ldc.i4 2000
-	IL_00cf:  ldstr "{0} = {1}."
-	IL_00d4:  ldc.i4.2 
-	IL_00d5:  newarr [mscorlib]System.Object
-	IL_00da:  dup 
-	IL_00db:  ldc.i4.0 
-	IL_00dc:  ldarg.0 
-	IL_00dd:  ldfld string NAnt.Core.Tasks.TStampTask::_property
-	IL_00e2:  stelem.ref 
-	IL_00e3:  dup 
-	IL_00e4:  ldc.i4.1 
-	IL_00e5:  ldarg.0 
-	IL_00e6:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_00eb:  ldarg.0 
-	IL_00ec:  ldfld string NAnt.Core.Tasks.TStampTask::_property
-	IL_00f1:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
-	IL_00f6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00fb:  callvirt instance string string::ToString(class [mscorlib]System.IFormatProvider)
-	IL_0100:  stelem.ref 
-	IL_0101:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0106:  nop 
-	IL_0107:  nop 
-	IL_0108:  ldarg.0 
-	IL_0109:  call instance class NAnt.Core.Types.FormatterCollection class NAnt.Core.Tasks.TStampTask::get_Formatters()
-	IL_010e:  callvirt instance class NAnt.Core.Types.FormatterEnumerator class NAnt.Core.Types.FormatterCollection::GetEnumerator()
-	IL_0113:  stloc.2 
-	.try { // 0
-	  IL_0114:  br IL_019a
+	IL_002b:  nop 
+	IL_002c:  ldarg.0 
+	IL_002d:  call instance string class NAnt.Core.Tasks.PropertyTask::get_Value()
+	IL_0032:  stloc.0 
+	IL_0033:  nop 
+	IL_0034:  ldarg.0 
+	IL_0035:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
+	IL_003a:  ldstr "nant.settings.currentframework"
+	IL_003f:  call bool string::op_Equality(string, string)
+	IL_0044:  brfalse IL_01b5
 
-	  IL_0119:  ldloc.2 
-	  IL_011a:  callvirt instance class NAnt.Core.Types.Formatter class NAnt.Core.Types.FormatterEnumerator::get_Current()
-	  IL_011f:  stloc.1 
-	  IL_0120:  nop 
-	  IL_0121:  ldarg.0 
-	  IL_0122:  call instance bool class NAnt.Core.Task::get_IfDefined()
-	  IL_0127:  brfalse IL_0199
+	IL_0049:  nop 
+	IL_004a:  ldarg.0 
+	IL_004b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0050:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
+	IL_0055:  ldloc.0 
+	IL_0056:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionary::get_Item(string)
+	IL_005b:  stloc.1 
+	IL_005c:  ldloc.1 
+	IL_005d:  brfalse IL_00ea
 
-	  IL_012c:  ldarg.0 
-	  IL_012d:  call instance bool class NAnt.Core.Task::get_UnlessDefined()
-	  IL_0132:  brtrue IL_0199
+	IL_0062:  nop 
+	IL_0063:  ldarg.0 
+	IL_0064:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0069:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_006e:  brfalse IL_00b8
 
-	  IL_0137:  nop 
-	  IL_0138:  ldarg.0 
-	  IL_0139:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	  IL_013e:  ldloc.1 
-	  IL_013f:  callvirt instance string class NAnt.Core.Types.Formatter::get_Property()
-	  IL_0144:  ldloca.s 0
-	  IL_0146:  ldloc.1 
-	  IL_0147:  callvirt instance string class NAnt.Core.Types.Formatter::get_Pattern()
-	  IL_014c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0151:  call instance string valuetype [mscorlib]System.DateTime::ToString(string, class [mscorlib]System.IFormatProvider)
-	  IL_0156:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	  IL_015b:  ldarg.0 
-	  IL_015c:  ldc.i4 2000
-	  IL_0161:  ldstr "{0} = {1}."
-	  IL_0166:  ldc.i4.2 
-	  IL_0167:  newarr [mscorlib]System.Object
-	  IL_016c:  dup 
-	  IL_016d:  ldc.i4.0 
-	  IL_016e:  ldloc.1 
-	  IL_016f:  callvirt instance string class NAnt.Core.Types.Formatter::get_Property()
-	  IL_0174:  stelem.ref 
-	  IL_0175:  dup 
-	  IL_0176:  ldc.i4.1 
-	  IL_0177:  ldarg.0 
-	  IL_0178:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	  IL_017d:  ldloc.1 
-	  IL_017e:  callvirt instance string class NAnt.Core.Types.Formatter::get_Property()
-	  IL_0183:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
-	  IL_0188:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_018d:  callvirt instance string string::ToString(class [mscorlib]System.IFormatProvider)
-	  IL_0192:  stelem.ref 
-	  IL_0193:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0198:  nop 
-	  IL_0199:  nop 
-	  IL_019a:  ldloc.2 
-	  IL_019b:  callvirt instance bool class NAnt.Core.Types.FormatterEnumerator::MoveNext()
-	  IL_01a0:  brtrue IL_0119
+	IL_0073:  nop 
+	IL_0074:  ldarg.0 
+	IL_0075:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_007a:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_007f:  ldloc.1 
+	IL_0080:  beq IL_00b2
 
-	  IL_01a5:  leave IL_01be
+	IL_0085:  nop 
+	IL_0086:  ldarg.0 
+	IL_0087:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_008c:  ldloc.1 
+	IL_008d:  callvirt instance void class NAnt.Core.Project::set_TargetFramework(class NAnt.Core.FrameworkInfo)
+	IL_0092:  ldarg.0 
+	IL_0093:  ldc.i4 3000
+	IL_0098:  ldstr "Target framework changed to \"{0}\"."
+	IL_009d:  ldc.i4.1 
+	IL_009e:  newarr [mscorlib]System.Object
+	IL_00a3:  dup 
+	IL_00a4:  ldc.i4.0 
+	IL_00a5:  ldloc.1 
+	IL_00a6:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Description()
+	IL_00ab:  stelem.ref 
+	IL_00ac:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_00b1:  nop 
+	IL_00b2:  nop 
+	IL_00b3:  br IL_00e5
+
+	IL_00b8:  nop 
+	IL_00b9:  ldarg.0 
+	IL_00ba:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_00bf:  ldloc.1 
+	IL_00c0:  callvirt instance void class NAnt.Core.Project::set_TargetFramework(class NAnt.Core.FrameworkInfo)
+	IL_00c5:  ldarg.0 
+	IL_00c6:  ldc.i4 3000
+	IL_00cb:  ldstr "Target framework set to \"{0}\"."
+	IL_00d0:  ldc.i4.1 
+	IL_00d1:  newarr [mscorlib]System.Object
+	IL_00d6:  dup 
+	IL_00d7:  ldc.i4.0 
+	IL_00d8:  ldloc.1 
+	IL_00d9:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Description()
+	IL_00de:  stelem.ref 
+	IL_00df:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_00e4:  nop 
+	IL_00e5:  br IL_02d5
+
+	IL_00ea:  nop 
+	IL_00eb:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_00f0:  stloc.2 
+	IL_00f1:  nop 
+	IL_00f2:  ldarg.0 
+	IL_00f3:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_00f8:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
+	IL_00fd:  callvirt instance class NAnt.Core.FrameworkInfoDictionaryEnumerator class NAnt.Core.FrameworkInfoDictionary::GetEnumerator()
+	IL_0102:  stloc.s 4
+	.try { // 0
+	  IL_0104:  br IL_0120
+
+	  IL_0109:  ldloc.s 4
+	  IL_010b:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Current()
+	  IL_0110:  stloc.3 
+	  IL_0111:  nop 
+	  IL_0112:  ldloc.2 
+	  IL_0113:  ldloc.3 
+	  IL_0114:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	  IL_0119:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_011e:  pop 
+	  IL_011f:  nop 
+	  IL_0120:  ldloc.s 4
+	  IL_0122:  callvirt instance bool class NAnt.Core.FrameworkInfoDictionaryEnumerator::MoveNext()
+	  IL_0127:  brtrue IL_0109
+
+	  IL_012c:  leave IL_0148
 
 	} // end .try 0
 	finally  { // 0
-	  IL_01aa:  ldloc.2 
-	  IL_01ab:  isinst [mscorlib]System.IDisposable
-	  IL_01b0:  dup 
-	  IL_01b1:  stloc.3 
-	  IL_01b2:  brfalse IL_01bd
+	  IL_0131:  ldloc.s 4
+	  IL_0133:  isinst [mscorlib]System.IDisposable
+	  IL_0138:  dup 
+	  IL_0139:  stloc.s 5
+	  IL_013b:  brfalse IL_0147
 
-	  IL_01b7:  ldloc.3 
-	  IL_01b8:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01bd:  endfinally 
+	  IL_0140:  ldloc.s 5
+	  IL_0142:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0147:  endfinally 
 	} // end handler 0
-	IL_01be:  ret 
-    } // end of method TStampTask::ExecuteTask
+	IL_0148:  ldsfld string [mscorlib]System.String::Empty
+	IL_014d:  stloc.s 6
+	IL_014f:  ldloc.2 
+	IL_0150:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_0155:  ldc.i4.0 
+	IL_0156:  ble IL_0192
 
-	.property instance string Property ()
+	IL_015b:  nop 
+	IL_015c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0161:  ldstr "String_ValidValues"
+	IL_0166:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_016b:  ldstr ", "
+	IL_0170:  ldloc.2 
+	IL_0171:  ldtoken [mscorlib]System.String
+	IL_0176:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_017b:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
+	IL_0180:  castclass string[]
+	IL_0185:  call string string::Join(string, string[])
+	IL_018a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_018f:  stloc.s 6
+	IL_0191:  nop 
+	IL_0192:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0197:  ldstr "NA1143"
+	IL_019c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_01a1:  ldloc.0 
+	IL_01a2:  ldloc.s 6
+	IL_01a4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_01a9:  ldarg.0 
+	IL_01aa:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_01af:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_01b4:  throw 
+	IL_01b5:  ldarg.0 
+	IL_01b6:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_01bb:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_01c0:  ldarg.0 
+	IL_01c1:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
+	IL_01c6:  callvirt instance bool class NAnt.Core.PropertyDictionary::Contains(string)
+	IL_01cb:  brtrue IL_022d
+
+	IL_01d0:  nop 
+	IL_01d1:  ldarg.0 
+	IL_01d2:  call instance bool class NAnt.Core.Tasks.PropertyTask::get_ReadOnly()
+	IL_01d7:  brfalse IL_01f5
+
+	IL_01dc:  nop 
+	IL_01dd:  ldarg.0 
+	IL_01de:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_01e3:  ldarg.0 
+	IL_01e4:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
+	IL_01e9:  ldloc.0 
+	IL_01ea:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	IL_01ef:  nop 
+	IL_01f0:  br IL_0209
+
+	IL_01f5:  nop 
+	IL_01f6:  ldarg.0 
+	IL_01f7:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_01fc:  ldarg.0 
+	IL_01fd:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
+	IL_0202:  ldloc.0 
+	IL_0203:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0208:  nop 
+	IL_0209:  ldarg.0 
+	IL_020a:  call instance bool class NAnt.Core.Tasks.PropertyTask::get_Dynamic()
+	IL_020f:  brfalse IL_0227
+
+	IL_0214:  nop 
+	IL_0215:  ldarg.0 
+	IL_0216:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_021b:  ldarg.0 
+	IL_021c:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
+	IL_0221:  callvirt instance void class NAnt.Core.PropertyDictionary::MarkDynamic(string)
+	IL_0226:  nop 
+	IL_0227:  nop 
+	IL_0228:  br IL_02d5
+
+	IL_022d:  nop 
+	IL_022e:  ldarg.0 
+	IL_022f:  call instance bool class NAnt.Core.Tasks.PropertyTask::get_Overwrite()
+	IL_0234:  brfalse IL_02b3
+
+	IL_0239:  nop 
+	IL_023a:  ldarg.0 
+	IL_023b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0240:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0245:  ldarg.0 
+	IL_0246:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
+	IL_024b:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsReadOnlyProperty(string)
+	IL_0250:  brfalse IL_027b
+
+	IL_0255:  nop 
+	IL_0256:  ldarg.0 
+	IL_0257:  ldc.i4 4000
+	IL_025c:  ldstr "Read-only property \"{0}\" cannot be overwritten."
+	IL_0261:  ldc.i4.1 
+	IL_0262:  newarr [mscorlib]System.Object
+	IL_0267:  dup 
+	IL_0268:  ldc.i4.0 
+	IL_0269:  ldarg.0 
+	IL_026a:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
+	IL_026f:  stelem.ref 
+	IL_0270:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0275:  nop 
+	IL_0276:  br IL_02ad
+
+	IL_027b:  nop 
+	IL_027c:  ldarg.0 
+	IL_027d:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0282:  ldarg.0 
+	IL_0283:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
+	IL_0288:  ldloc.0 
+	IL_0289:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_028e:  ldarg.0 
+	IL_028f:  call instance bool class NAnt.Core.Tasks.PropertyTask::get_Dynamic()
+	IL_0294:  brfalse IL_02ac
+
+	IL_0299:  nop 
+	IL_029a:  ldarg.0 
+	IL_029b:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_02a0:  ldarg.0 
+	IL_02a1:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
+	IL_02a6:  callvirt instance void class NAnt.Core.PropertyDictionary::MarkDynamic(string)
+	IL_02ab:  nop 
+	IL_02ac:  nop 
+	IL_02ad:  nop 
+	IL_02ae:  br IL_02d4
+
+	IL_02b3:  nop 
+	IL_02b4:  ldarg.0 
+	IL_02b5:  ldc.i4 2000
+	IL_02ba:  ldstr "Property \"{0}\" already exists, and \"overwrite\" is set to false."
+	IL_02bf:  ldc.i4.1 
+	IL_02c0:  newarr [mscorlib]System.Object
+	IL_02c5:  dup 
+	IL_02c6:  ldc.i4.0 
+	IL_02c7:  ldarg.0 
+	IL_02c8:  call instance string class NAnt.Core.Tasks.PropertyTask::get_PropertyName()
+	IL_02cd:  stelem.ref 
+	IL_02ce:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_02d3:  nop 
+	IL_02d4:  nop 
+	IL_02d5:  ret 
+    } // end of method PropertyTask::ExecuteTask
+
+	.property instance string PropertyName ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
+		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.Core.Tasks.PropertyTask::get_PropertyName () 
+		.set instance default void NAnt.Core.Tasks.PropertyTask::set_PropertyName (string 'value') 
+	}
+	.property instance string Value ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 05 76 61 6C 75 65 02 00 54 02 08 52 65 71   // ...value..T..Req
+		75 69 72 65 64 01 54 02 10 45 78 70 61 6E 64 50   // uired.T..ExpandP
+		72 6F 70 65 72 74 69 65 73 00                   ) // roperties.
+
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 01                                           ) // y.
+
+		.get instance default string NAnt.Core.Tasks.PropertyTask::get_Value () 
+		.set instance default void NAnt.Core.Tasks.PropertyTask::set_Value (string 'value') 
+	}
+	.property instance bool ReadOnly ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 72 65 61 64 6F 6E 6C 79 01 00 54 02 08   // ...readonly..T..
 		52 65 71 75 69 72 65 64 00                      ) // Required.
 
-		.get instance default string NAnt.Core.Tasks.TStampTask::get_Property () 
-		.set instance default void NAnt.Core.Tasks.TStampTask::set_Property (string 'value') 
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Tasks.PropertyTask::get_ReadOnly () 
+		.set instance default void NAnt.Core.Tasks.PropertyTask::set_ReadOnly (bool 'value') 
 	}
-	.property instance string Pattern ()
+	.property instance bool Dynamic ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 70 61 74 74 65 72 6E 01 00 54 02 08 52   // ...pattern..T..R
+		01 00 07 64 79 6E 61 6D 69 63 01 00 54 02 08 52   // ...dynamic..T..R
 		65 71 75 69 72 65 64 00                         ) // equired.
 
-		.get instance default string NAnt.Core.Tasks.TStampTask::get_Pattern () 
-		.set instance default void NAnt.Core.Tasks.TStampTask::set_Pattern (string 'value') 
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Tasks.PropertyTask::get_Dynamic () 
+		.set instance default void NAnt.Core.Tasks.PropertyTask::set_Dynamic (bool 'value') 
 	}
-	.property instance class NAnt.Core.Types.FormatterCollection Formatters ()
+	.property instance bool Overwrite ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 09 66 6F 72 6D 61 74 74 65 72 00 00 ) // ...formatter..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 09 6F 76 65 72 77 72 69 74 65 01 00 54 02   // ...overwrite..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
 
-		.get instance default class NAnt.Core.Types.FormatterCollection NAnt.Core.Tasks.TStampTask::get_Formatters () 
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Tasks.PropertyTask::get_Overwrite () 
+		.set instance default void NAnt.Core.Tasks.PropertyTask::set_Overwrite (bool 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.TStampTask
+  } // end of class NAnt.Core.Tasks.PropertyTask
 }
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit TryCatchTask
+  .class public auto ansi beforefieldinit EchoTask
   	extends NAnt.Core.Task
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 08 74 72 79 63 61 74 63 68 00 00 ) // ...trycatch..
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 65 63 68 6F 00 00 ) // ...echo..
 
-    .field  private  class NAnt.Core.ElementContainer _tryBlock
-    .field  private  class NAnt.Core.Tasks.TryCatchTask/CatchElement _catchBlock
-    .field  private  class NAnt.Core.ElementContainer _finallyBlock
+    .field  private  string _message
+    .field  private  string _contents
+    .field  private  class [mscorlib]System.IO.FileInfo _file
+    .field  private  bool _append
+    .field  private  valuetype NAnt.Core.Level _messageLevel
+    .field  private  class [mscorlib]System.Text.Encoding _encoding
 
-    // method line 1127
+    // method line 1117
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x15a94
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x13e30
+	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0006:  ret 
-    } // end of method TryCatchTask::.ctor
+	IL_0001:  ldc.i4 3000
+	IL_0006:  stfld valuetype NAnt.Core.Level NAnt.Core.Tasks.EchoTask::_messageLevel
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0011:  ret 
+    } // end of method EchoTask::.ctor
 
-    // method line 1128
+    // method line 1118
     .method public hidebysig specialname 
-           instance default class NAnt.Core.ElementContainer get_TryBlock ()  cil managed 
+           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
     {
-        // Method begins at RVA 0x15a9c
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x13e44
+	// Code size 37 (0x25)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.ElementContainer	V_0)
+		class [mscorlib]System.Text.Encoding	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::_tryBlock
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.EchoTask::_encoding
+	IL_0007:  brtrue IL_0017
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TryCatchTask::get_TryBlock
+	IL_000c:  newobj instance void class [mscorlib]System.Text.UTF8Encoding::'.ctor'()
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0023
 
-    // method line 1129
+	IL_0017:  ldarg.0 
+	IL_0018:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.EchoTask::_encoding
+	IL_001d:  stloc.0 
+	IL_001e:  br IL_0023
+
+	IL_0023:  ldloc.0 
+	IL_0024:  ret 
+    } // end of method EchoTask::get_Encoding
+
+    // method line 1119
     .method public hidebysig specialname 
-           instance default void set_TryBlock (class NAnt.Core.ElementContainer 'value')  cil managed 
+           instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
     {
-        // Method begins at RVA 0x15ab7
+        // Method begins at RVA 0x13e75
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::_tryBlock
+	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.EchoTask::_encoding
 	IL_0008:  ret 
-    } // end of method TryCatchTask::set_TryBlock
+    } // end of method EchoTask::set_Encoding
 
-    // method line 1130
+    // method line 1120
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Tasks.TryCatchTask/CatchElement get_CatchBlock ()  cil managed 
+           instance default string get_Message ()  cil managed 
     {
-        // Method begins at RVA 0x15ac4
+        // Method begins at RVA 0x13e80
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Tasks.TryCatchTask/CatchElement	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Tasks.TryCatchTask/CatchElement NAnt.Core.Tasks.TryCatchTask::_catchBlock
+	IL_0002:  ldfld string NAnt.Core.Tasks.EchoTask::_message
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TryCatchTask::get_CatchBlock
+    } // end of method EchoTask::get_Message
 
-    // method line 1131
+    // method line 1121
     .method public hidebysig specialname 
-           instance default void set_CatchBlock (class NAnt.Core.Tasks.TryCatchTask/CatchElement 'value')  cil managed 
+           instance default void set_Message (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x15adf
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x13e9c
+	// Code size 79 (0x4f)
+	.maxstack 2
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Tasks.TryCatchTask/CatchElement NAnt.Core.Tasks.TryCatchTask::_catchBlock
-	IL_0008:  ret 
-    } // end of method TryCatchTask::set_CatchBlock
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0045
 
-    // method line 1132
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance string string::Trim()
+	IL_000d:  callvirt instance int32 string::get_Length()
+	IL_0012:  ldc.i4.0 
+	IL_0013:  ble IL_0045
+
+	IL_0018:  nop 
+	IL_0019:  ldarg.0 
+	IL_001a:  call instance string class NAnt.Core.Tasks.EchoTask::get_Contents()
+	IL_001f:  brfalse IL_0036
+
+	IL_0024:  nop 
+	IL_0025:  ldstr "Inline content and the message attribute are mutually exclusive in the <echo> task."
+	IL_002a:  ldarg.0 
+	IL_002b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0030:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0035:  throw 
+	IL_0036:  nop 
+	IL_0037:  ldarg.0 
+	IL_0038:  ldarg.1 
+	IL_0039:  stfld string NAnt.Core.Tasks.EchoTask::_message
+	IL_003e:  nop 
+	IL_003f:  nop 
+	IL_0040:  br IL_004e
+
+	IL_0045:  nop 
+	IL_0046:  ldarg.0 
+	IL_0047:  ldnull 
+	IL_0048:  stfld string NAnt.Core.Tasks.EchoTask::_message
+	IL_004d:  nop 
+	IL_004e:  ret 
+    } // end of method EchoTask::set_Message
+
+    // method line 1122
     .method public hidebysig specialname 
-           instance default class NAnt.Core.ElementContainer get_FinallyBlock ()  cil managed 
+           instance default string get_Contents ()  cil managed 
     {
-        // Method begins at RVA 0x15aec
+        // Method begins at RVA 0x13ef8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.ElementContainer	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::_finallyBlock
+	IL_0002:  ldfld string NAnt.Core.Tasks.EchoTask::_contents
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TryCatchTask::get_FinallyBlock
+    } // end of method EchoTask::get_Contents
 
-    // method line 1133
+    // method line 1123
     .method public hidebysig specialname 
-           instance default void set_FinallyBlock (class NAnt.Core.ElementContainer 'value')  cil managed 
-    {
-        // Method begins at RVA 0x15b07
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::_finallyBlock
-	IL_0008:  ret 
-    } // end of method TryCatchTask::set_FinallyBlock
-
-    // method line 1134
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+           instance default void set_Contents (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x15b14
-	// Code size 101 (0x65)
+        // Method begins at RVA 0x13f14
+	// Code size 79 (0x4f)
 	.maxstack 2
-	.locals init (
-		class NAnt.Core.BuildException	V_0)
 	IL_0000:  nop 
-	.try { // 1
-	  .try { // 0
-	    IL_0001:  nop 
-	    IL_0002:  ldarg.0 
-	    IL_0003:  call instance class NAnt.Core.ElementContainer class NAnt.Core.Tasks.TryCatchTask::get_TryBlock()
-	    IL_0008:  brfalse IL_001a
-
-	    IL_000d:  nop 
-	    IL_000e:  ldarg.0 
-	    IL_000f:  call instance class NAnt.Core.ElementContainer class NAnt.Core.Tasks.TryCatchTask::get_TryBlock()
-	    IL_0014:  callvirt instance void class NAnt.Core.ElementContainer::Execute()
-	    IL_0019:  nop 
-	    IL_001a:  nop 
-	    IL_001b:  leave IL_0064
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0045
 
-	  } // end .try 0
-	  catch class NAnt.Core.BuildException { // 0
-	    IL_0020:  stloc.0 
-	    IL_0021:  nop 
-	    IL_0022:  ldarg.0 
-	    IL_0023:  call instance class NAnt.Core.Tasks.TryCatchTask/CatchElement class NAnt.Core.Tasks.TryCatchTask::get_CatchBlock()
-	    IL_0028:  brfalse IL_0040
-
-	    IL_002d:  nop 
-	    IL_002e:  ldarg.0 
-	    IL_002f:  call instance class NAnt.Core.Tasks.TryCatchTask/CatchElement class NAnt.Core.Tasks.TryCatchTask::get_CatchBlock()
-	    IL_0034:  ldloc.0 
-	    IL_0035:  callvirt instance void class NAnt.Core.Tasks.TryCatchTask/CatchElement::Catch(class NAnt.Core.BuildException)
-	    IL_003a:  nop 
-	    IL_003b:  br IL_0043
-
-	    IL_0040:  nop 
-	    IL_0041:  rethrow 
-	    IL_0043:  nop 
-	    IL_0044:  leave IL_0064
-
-	  } // end handler 0
-	} // end .try 1
-	finally  { // 1
-	  IL_0049:  nop 
-	  IL_004a:  ldarg.0 
-	  IL_004b:  call instance class NAnt.Core.ElementContainer class NAnt.Core.Tasks.TryCatchTask::get_FinallyBlock()
-	  IL_0050:  brfalse IL_0062
-
-	  IL_0055:  nop 
-	  IL_0056:  ldarg.0 
-	  IL_0057:  call instance class NAnt.Core.ElementContainer class NAnt.Core.Tasks.TryCatchTask::get_FinallyBlock()
-	  IL_005c:  callvirt instance void class NAnt.Core.ElementContainer::Execute()
-	  IL_0061:  nop 
-	  IL_0062:  nop 
-	  IL_0063:  endfinally 
-	} // end handler 1
-	IL_0064:  ret 
-    } // end of method TryCatchTask::ExecuteTask
-
-	.property instance class NAnt.Core.ElementContainer TryBlock ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 03 74 72 79 01 00 54 02 08 52 65 71 75 69   // ...try..T..Requi
-		72 65 64 01                                     ) // red.
-
-		.get instance default class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::get_TryBlock () 
-		.set instance default void NAnt.Core.Tasks.TryCatchTask::set_TryBlock (class NAnt.Core.ElementContainer 'value') 
-	}
-	.property instance class NAnt.Core.Tasks.TryCatchTask/CatchElement CatchBlock ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 05 63 61 74 63 68 01 00 54 02 08 52 65 71   // ...catch..T..Req
-		75 69 72 65 64 00                               ) // uired.
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance string string::Trim()
+	IL_000d:  callvirt instance int32 string::get_Length()
+	IL_0012:  ldc.i4.0 
+	IL_0013:  ble IL_0045
 
-		.get instance default class NAnt.Core.Tasks.TryCatchTask/CatchElement NAnt.Core.Tasks.TryCatchTask::get_CatchBlock () 
-		.set instance default void NAnt.Core.Tasks.TryCatchTask::set_CatchBlock (class NAnt.Core.Tasks.TryCatchTask/CatchElement 'value') 
-	}
-	.property instance class NAnt.Core.ElementContainer FinallyBlock ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 07 66 69 6E 61 6C 6C 79 01 00 54 02 08 52   // ...finally..T..R
-		65 71 75 69 72 65 64 00                         ) // equired.
+	IL_0018:  nop 
+	IL_0019:  ldarg.0 
+	IL_001a:  call instance string class NAnt.Core.Tasks.EchoTask::get_Message()
+	IL_001f:  brfalse IL_0036
 
-		.get instance default class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::get_FinallyBlock () 
-		.set instance default void NAnt.Core.Tasks.TryCatchTask::set_FinallyBlock (class NAnt.Core.ElementContainer 'value') 
-	}
-  .class nested public auto ansi beforefieldinit CatchElement
-  	extends NAnt.Core.ElementContainer
-  {
-    .field  private  string _property
+	IL_0024:  nop 
+	IL_0025:  ldstr "Inline content and the message attribute are mutually exclusive in the <echo> task."
+	IL_002a:  ldarg.0 
+	IL_002b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0030:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0035:  throw 
+	IL_0036:  nop 
+	IL_0037:  ldarg.0 
+	IL_0038:  ldarg.1 
+	IL_0039:  stfld string NAnt.Core.Tasks.EchoTask::_contents
+	IL_003e:  nop 
+	IL_003f:  nop 
+	IL_0040:  br IL_004e
 
-    // method line 1135
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x15e37
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.ElementContainer::'.ctor'()
-	IL_0006:  ret 
-    } // end of method CatchElement::.ctor
+	IL_0045:  nop 
+	IL_0046:  ldarg.0 
+	IL_0047:  ldnull 
+	IL_0048:  stfld string NAnt.Core.Tasks.EchoTask::_contents
+	IL_004d:  nop 
+	IL_004e:  ret 
+    } // end of method EchoTask::set_Contents
 
-    // method line 1136
+    // method line 1124
     .method public hidebysig specialname 
-           instance default string get_Property ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0x15e40
+        // Method begins at RVA 0x13f70
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.TryCatchTask/CatchElement::_property
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.EchoTask::_file
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CatchElement::get_Property
+    } // end of method EchoTask::get_File
 
-    // method line 1137
+    // method line 1125
     .method public hidebysig specialname 
-           instance default void set_Property (string 'value')  cil managed 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x15e5b
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x13f8b
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.TryCatchTask/CatchElement::_property
-	IL_000d:  ret 
-    } // end of method CatchElement::set_Property
-
-    // method line 1138
-    .method public hidebysig 
-           instance default void Catch (class NAnt.Core.BuildException be)  cil managed 
-    {
-        // Method begins at RVA 0x15e6c
-	// Code size 182 (0xb6)
-	.maxstack 3
-	.locals init (
-		bool	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  ldnull 
-	IL_0004:  stloc.1 
-	IL_0005:  ldarg.0 
-	IL_0006:  call instance string class NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property()
-	IL_000b:  brfalse IL_005c
-
-	IL_0010:  nop 
-	IL_0011:  ldarg.0 
-	IL_0012:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0017:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_001c:  ldarg.0 
-	IL_001d:  call instance string class NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property()
-	IL_0022:  callvirt instance bool class NAnt.Core.PropertyDictionary::Contains(string)
-	IL_0027:  stloc.0 
-	IL_0028:  ldarg.0 
-	IL_0029:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_002e:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0033:  ldarg.0 
-	IL_0034:  call instance string class NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property()
-	IL_0039:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
-	IL_003e:  stloc.1 
-	IL_003f:  ldarg.0 
-	IL_0040:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0045:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_004a:  ldarg.0 
-	IL_004b:  call instance string class NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property()
-	IL_0050:  ldarg.1 
-	IL_0051:  callvirt instance string class NAnt.Core.BuildException::get_RawMessage()
-	IL_0056:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_005b:  nop 
-	.try { // 0
-	  IL_005c:  nop 
-	  IL_005d:  ldarg.0 
-	  IL_005e:  callvirt instance void class NAnt.Core.ElementContainer::Execute()
-	  IL_0063:  nop 
-	  IL_0064:  leave IL_00b5
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0069:  nop 
-	  IL_006a:  ldarg.0 
-	  IL_006b:  call instance string class NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property()
-	  IL_0070:  brfalse IL_00b3
-
-	  IL_0075:  nop 
-	  IL_0076:  ldloc.0 
-	  IL_0077:  brtrue IL_0099
-
-	  IL_007c:  nop 
-	  IL_007d:  ldarg.0 
-	  IL_007e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_0083:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	  IL_0088:  ldarg.0 
-	  IL_0089:  call instance string class NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property()
-	  IL_008e:  callvirt instance void class NAnt.Core.PropertyDictionary::Remove(string)
-	  IL_0093:  nop 
-	  IL_0094:  br IL_00b2
-
-	  IL_0099:  nop 
-	  IL_009a:  ldarg.0 
-	  IL_009b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_00a0:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	  IL_00a5:  ldarg.0 
-	  IL_00a6:  call instance string class NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property()
-	  IL_00ab:  ldloc.1 
-	  IL_00ac:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	  IL_00b1:  nop 
-	  IL_00b2:  nop 
-	  IL_00b3:  nop 
-	  IL_00b4:  endfinally 
-	} // end handler 0
-	IL_00b5:  ret 
-    } // end of method CatchElement::Catch
-
-	.property instance string Property ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
-		52 65 71 75 69 72 65 64 00                      ) // Required.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property () 
-		.set instance default void NAnt.Core.Tasks.TryCatchTask/CatchElement::set_Property (string 'value') 
-	}
-  } // end of class CatchElement
-
-  } // end of class NAnt.Core.Tasks.TryCatchTask
-}
-
-.namespace NAnt.Core.Tasks
-{
-  .class public auto ansi beforefieldinit AvailableTask
-  	extends NAnt.Core.Task
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 09 61 76 61 69 6C 61 62 6C 65 00 00 ) // ...available..
-
-    .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 16 55 73 65 20 66 75 6E 63 74 69 6F 6E 73   // ...Use functions
-		20 69 6E 73 74 65 61 64 2E 00 00 00             ) //  instead....
-
-    .field  private  valuetype NAnt.Core.Tasks.AvailableTask/ResourceType _resourceType
-    .field  private  string _resource
-    .field  private  string _propertyName
-
-    // method line 1139
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x15f40
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0006:  ret 
-    } // end of method AvailableTask::.ctor
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.EchoTask::_file
+	IL_0008:  ret 
+    } // end of method EchoTask::set_File
 
-    // method line 1140
+    // method line 1126
     .method public hidebysig specialname 
-           instance default string get_Resource ()  cil managed 
+           instance default bool get_Append ()  cil managed 
     {
-        // Method begins at RVA 0x15f48
+        // Method begins at RVA 0x13f98
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.AvailableTask::_resource
+	IL_0002:  ldfld bool NAnt.Core.Tasks.EchoTask::_append
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AvailableTask::get_Resource
+    } // end of method EchoTask::get_Append
 
-    // method line 1141
+    // method line 1127
     .method public hidebysig specialname 
-           instance default void set_Resource (string 'value')  cil managed 
+           instance default void set_Append (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x15f63
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x13fb3
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.AvailableTask::_resource
-	IL_000d:  ret 
-    } // end of method AvailableTask::set_Resource
+	IL_0003:  stfld bool NAnt.Core.Tasks.EchoTask::_append
+	IL_0008:  ret 
+    } // end of method EchoTask::set_Append
 
-    // method line 1142
+    // method line 1128
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Tasks.AvailableTask/ResourceType get_Type ()  cil managed 
+           instance default valuetype NAnt.Core.Level get_MessageLevel ()  cil managed 
     {
-        // Method begins at RVA 0x15f74
+        // Method begins at RVA 0x13fc0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.Tasks.AvailableTask/ResourceType	V_0)
+		valuetype NAnt.Core.Level	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Tasks.AvailableTask/ResourceType NAnt.Core.Tasks.AvailableTask::_resourceType
+	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.Tasks.EchoTask::_messageLevel
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AvailableTask::get_Type
+    } // end of method EchoTask::get_MessageLevel
 
-    // method line 1143
+    // method line 1129
     .method public hidebysig specialname 
-           instance default void set_Type (valuetype NAnt.Core.Tasks.AvailableTask/ResourceType 'value')  cil managed 
+           instance default void set_MessageLevel (valuetype NAnt.Core.Level 'value')  cil managed 
     {
-        // Method begins at RVA 0x15f90
+        // Method begins at RVA 0x13fdc
 	// Code size 65 (0x41)
 	.maxstack 3
 	IL_0000:  nop 
-	IL_0001:  ldtoken NAnt.Core.Tasks.AvailableTask/ResourceType
+	IL_0001:  ldtoken NAnt.Core.Level
 	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
 	IL_000b:  ldarg.1 
-	IL_000c:  box NAnt.Core.Tasks.AvailableTask/ResourceType
+	IL_000c:  box NAnt.Core.Level
 	IL_0011:  call bool class [mscorlib]System.Enum::IsDefined(class [mscorlib]System.Type, object)
 	IL_0016:  brtrue IL_0037
 
 	IL_001b:  nop 
 	IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0021:  ldstr "An invalid type {0} was specified."
+	IL_0021:  ldstr "An invalid level {0} was specified."
 	IL_0026:  ldarg.1 
-	IL_0027:  box NAnt.Core.Tasks.AvailableTask/ResourceType
+	IL_0027:  box NAnt.Core.Level
 	IL_002c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
 	IL_0031:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
 	IL_0036:  throw 
 	IL_0037:  nop 
 	IL_0038:  ldarg.0 
 	IL_0039:  ldarg.1 
-	IL_003a:  stfld valuetype NAnt.Core.Tasks.AvailableTask/ResourceType NAnt.Core.Tasks.AvailableTask::_resourceType
+	IL_003a:  stfld valuetype NAnt.Core.Level NAnt.Core.Tasks.EchoTask::_messageLevel
 	IL_003f:  nop 
 	IL_0040:  ret 
-    } // end of method AvailableTask::set_Type
-
-    // method line 1144
-    .method public hidebysig specialname 
-           instance default string get_PropertyName ()  cil managed 
-    {
-        // Method begins at RVA 0x15fe0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.AvailableTask::_propertyName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AvailableTask::get_PropertyName
-
-    // method line 1145
-    .method public hidebysig specialname 
-           instance default void set_PropertyName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x15ffb
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.AvailableTask::_propertyName
-	IL_000d:  ret 
-    } // end of method AvailableTask::set_PropertyName
-
-    // method line 1146
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x1600c
-	// Code size 43 (0x2b)
-	.maxstack 4
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance string class NAnt.Core.Tasks.AvailableTask::get_PropertyName()
-	IL_0012:  ldarg.0 
-	IL_0013:  callvirt instance bool class NAnt.Core.Tasks.AvailableTask::Evaluate()
-	IL_0018:  stloc.0 
-	IL_0019:  ldloca.s 0
-	IL_001b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0020:  call instance string bool::ToString(class [mscorlib]System.IFormatProvider)
-	IL_0025:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_002a:  ret 
-    } // end of method AvailableTask::ExecuteTask
-
-    // method line 1147
-    .method family virtual hidebysig newslot 
-           instance default bool Evaluate ()  cil managed 
-    {
-        // Method begins at RVA 0x16044
-	// Code size 181 (0xb5)
-	.maxstack 7
-	.locals init (
-		bool	V_0,
-		valuetype NAnt.Core.Tasks.AvailableTask/ResourceType	V_1,
-		bool	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  call instance valuetype NAnt.Core.Tasks.AvailableTask/ResourceType class NAnt.Core.Tasks.AvailableTask::get_Type()
-	IL_0009:  stloc.1 
-	IL_000a:  ldloc.1 
-	IL_000b:  ldc.i4.1 
-	IL_000c:  sub 
-	IL_000d:  switch (
-	  IL_0027,
-	  IL_0033,
-	  IL_003f,
-	  IL_004b)
-	IL_0022:  br IL_0057
-
-	IL_0027:  ldarg.0 
-	IL_0028:  call instance bool class NAnt.Core.Tasks.AvailableTask::CheckFile()
-	IL_002d:  stloc.0 
-	IL_002e:  br IL_0077
-
-	IL_0033:  ldarg.0 
-	IL_0034:  call instance bool class NAnt.Core.Tasks.AvailableTask::CheckDirectory()
-	IL_0039:  stloc.0 
-	IL_003a:  br IL_0077
-
-	IL_003f:  ldarg.0 
-	IL_0040:  call instance bool class NAnt.Core.Tasks.AvailableTask::CheckFramework()
-	IL_0045:  stloc.0 
-	IL_0046:  br IL_0077
-
-	IL_004b:  ldarg.0 
-	IL_004c:  call instance bool class NAnt.Core.Tasks.AvailableTask::CheckFrameworkSDK()
-	IL_0051:  stloc.0 
-	IL_0052:  br IL_0077
-
-	IL_0057:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_005c:  ldstr "No resource check is implemented for {0}"
-	IL_0061:  ldarg.0 
-	IL_0062:  call instance valuetype NAnt.Core.Tasks.AvailableTask/ResourceType class NAnt.Core.Tasks.AvailableTask::get_Type()
-	IL_0067:  box NAnt.Core.Tasks.AvailableTask/ResourceType
-	IL_006c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0071:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_0076:  throw 
-	IL_0077:  ldloc.0 
-	IL_0078:  brtrue IL_00ac
-
-	IL_007d:  nop 
-	IL_007e:  ldarg.0 
-	IL_007f:  ldc.i4 2000
-	IL_0084:  ldstr "Unable to find {0} {1}."
-	IL_0089:  ldc.i4.2 
-	IL_008a:  newarr [mscorlib]System.Object
-	IL_008f:  dup 
-	IL_0090:  ldc.i4.0 
-	IL_0091:  ldarg.0 
-	IL_0092:  call instance valuetype NAnt.Core.Tasks.AvailableTask/ResourceType class NAnt.Core.Tasks.AvailableTask::get_Type()
-	IL_0097:  box NAnt.Core.Tasks.AvailableTask/ResourceType
-	IL_009c:  stelem.ref 
-	IL_009d:  dup 
-	IL_009e:  ldc.i4.1 
-	IL_009f:  ldarg.0 
-	IL_00a0:  call instance string class NAnt.Core.Tasks.AvailableTask::get_Resource()
-	IL_00a5:  stelem.ref 
-	IL_00a6:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_00ab:  nop 
-	IL_00ac:  ldloc.0 
-	IL_00ad:  stloc.2 
-	IL_00ae:  br IL_00b3
-
-	IL_00b3:  ldloc.2 
-	IL_00b4:  ret 
-    } // end of method AvailableTask::Evaluate
-
-    // method line 1148
-    .method private hidebysig 
-           instance default bool CheckFile ()  cil managed 
-    {
-        // Method begins at RVA 0x16108
-	// Code size 80 (0x50)
-	.maxstack 3
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0,
-		bool	V_1,
-		class [mscorlib]System.ArgumentException	V_2)
-	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.0 
-	  IL_0003:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_0008:  ldarg.0 
-	  IL_0009:  call instance string class NAnt.Core.Tasks.AvailableTask::get_Resource()
-	  IL_000e:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	  IL_0013:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_0018:  stloc.0 
-	  IL_0019:  ldloc.0 
-	  IL_001a:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_001f:  stloc.1 
-	  IL_0020:  leave IL_004e
-
-	} // end .try 0
-	catch class [mscorlib]System.ArgumentException { // 0
-	  IL_0025:  stloc.2 
-	  IL_0026:  nop 
-	  IL_0027:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_002c:  ldstr "NA1104"
-	  IL_0031:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0036:  ldarg.0 
-	  IL_0037:  call instance string class NAnt.Core.Tasks.AvailableTask::get_Resource()
-	  IL_003c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0041:  ldarg.0 
-	  IL_0042:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0047:  ldloc.2 
-	  IL_0048:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_004d:  throw 
-	} // end handler 0
-	IL_004e:  ldloc.1 
-	IL_004f:  ret 
-    } // end of method AvailableTask::CheckFile
-
-    // method line 1149
-    .method private hidebysig 
-           instance default bool CheckDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x16174
-	// Code size 80 (0x50)
-	.maxstack 3
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0,
-		bool	V_1,
-		class [mscorlib]System.ArgumentException	V_2)
-	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.0 
-	  IL_0003:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_0008:  ldarg.0 
-	  IL_0009:  call instance string class NAnt.Core.Tasks.AvailableTask::get_Resource()
-	  IL_000e:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	  IL_0013:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	  IL_0018:  stloc.0 
-	  IL_0019:  ldloc.0 
-	  IL_001a:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_001f:  stloc.1 
-	  IL_0020:  leave IL_004e
-
-	} // end .try 0
-	catch class [mscorlib]System.ArgumentException { // 0
-	  IL_0025:  stloc.2 
-	  IL_0026:  nop 
-	  IL_0027:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_002c:  ldstr "NA1103"
-	  IL_0031:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0036:  ldarg.0 
-	  IL_0037:  call instance string class NAnt.Core.Tasks.AvailableTask::get_Resource()
-	  IL_003c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0041:  ldarg.0 
-	  IL_0042:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0047:  ldloc.2 
-	  IL_0048:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_004d:  throw 
-	} // end handler 0
-	IL_004e:  ldloc.1 
-	IL_004f:  ret 
-    } // end of method AvailableTask::CheckDirectory
-
-    // method line 1150
-    .method private hidebysig 
-           instance default bool CheckFramework ()  cil managed 
-    {
-        // Method begins at RVA 0x161e0
-	// Code size 31 (0x1f)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance string class NAnt.Core.Tasks.AvailableTask::get_Resource()
-	IL_0012:  callvirt instance bool class NAnt.Core.FrameworkInfoDictionary::Contains(string)
-	IL_0017:  stloc.0 
-	IL_0018:  br IL_001d
-
-	IL_001d:  ldloc.0 
-	IL_001e:  ret 
-    } // end of method AvailableTask::CheckFramework
-
-    // method line 1151
-    .method private hidebysig 
-           instance default bool CheckFrameworkSDK ()  cil managed 
-    {
-        // Method begins at RVA 0x1620c
-	// Code size 59 (0x3b)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		bool	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance string class NAnt.Core.Tasks.AvailableTask::get_Resource()
-	IL_0012:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionary::get_Item(string)
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  brfalse IL_0031
-
-	IL_001e:  nop 
-	IL_001f:  ldloc.0 
-	IL_0020:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
-	IL_0025:  ldnull 
-	IL_0026:  ceq 
-	IL_0028:  ldc.i4.0 
-	IL_0029:  ceq 
-	IL_002b:  stloc.1 
-	IL_002c:  br IL_0039
-
-	IL_0031:  nop 
-	IL_0032:  ldc.i4.0 
-	IL_0033:  stloc.1 
-	IL_0034:  br IL_0039
-
-	IL_0039:  ldloc.1 
-	IL_003a:  ret 
-    } // end of method AvailableTask::CheckFrameworkSDK
-
-	.property instance string Resource ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 72 65 73 6F 75 72 63 65 01 00 54 02 08   // ...resource..T..
-		52 65 71 75 69 72 65 64 01                      ) // Required.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.Core.Tasks.AvailableTask::get_Resource () 
-		.set instance default void NAnt.Core.Tasks.AvailableTask::set_Resource (string 'value') 
-	}
-	.property instance valuetype NAnt.Core.Tasks.AvailableTask/ResourceType Type ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 74 79 70 65 01 00 54 02 08 52 65 71 75   // ...type..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.get instance default valuetype NAnt.Core.Tasks.AvailableTask/ResourceType NAnt.Core.Tasks.AvailableTask::get_Type () 
-		.set instance default void NAnt.Core.Tasks.AvailableTask::set_Type (valuetype NAnt.Core.Tasks.AvailableTask/ResourceType 'value') 
-	}
-	.property instance string PropertyName ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
-		52 65 71 75 69 72 65 64 01                      ) // Required.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.Core.Tasks.AvailableTask::get_PropertyName () 
-		.set instance default void NAnt.Core.Tasks.AvailableTask::set_PropertyName (string 'value') 
-	}
-  .class nested public auto ansi sealed ResourceType
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.Tasks.AvailableTask/ResourceType File = int32(0x00000001)
-    .field public static literal  valuetype NAnt.Core.Tasks.AvailableTask/ResourceType Directory = int32(0x00000002)
-    .field public static literal  valuetype NAnt.Core.Tasks.AvailableTask/ResourceType Framework = int32(0x00000003)
-    .field public static literal  valuetype NAnt.Core.Tasks.AvailableTask/ResourceType FrameworkSDK = int32(0x00000004)
-
-  } // end of class ResourceType
-
-  } // end of class NAnt.Core.Tasks.AvailableTask
-}
-
-.namespace NAnt.Core.Tasks
-{
-  .class public auto ansi beforefieldinit NAntTask
-  	extends NAnt.Core.Task
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 6E 61 6E 74 00 00 ) // ...nant..
-
-    .field  private  class [mscorlib]System.IO.FileInfo _buildFile
-    .field  private  class NAnt.Core.Types.FileSet _buildFiles
-    .field  private  string _target
-    .field  private  bool _inheritAll
-    .field  private  bool _inheritRefs
-    .field  private  class [mscorlib]System.Collections.ArrayList _overrideProperties
-
-    // method line 1152
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x16253
-	// Code size 36 (0x24)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.NAntTask::_buildFiles
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.1 
-	IL_000d:  stfld bool NAnt.Core.Tasks.NAntTask::_inheritAll
-	IL_0012:  ldarg.0 
-	IL_0013:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0018:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Tasks.NAntTask::_overrideProperties
-	IL_001d:  ldarg.0 
-	IL_001e:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0023:  ret 
-    } // end of method NAntTask::.ctor
-
-    // method line 1153
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_BuildFile ()  cil managed 
-    {
-        // Method begins at RVA 0x16278
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.NAntTask::_buildFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntTask::get_BuildFile
-
-    // method line 1154
-    .method public hidebysig specialname 
-           instance default void set_BuildFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x16293
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.NAntTask::_buildFile
-	IL_0008:  ret 
-    } // end of method NAntTask::set_BuildFile
-
-    // method line 1155
-    .method public hidebysig specialname 
-           instance default string get_DefaultTarget ()  cil managed 
-    {
-        // Method begins at RVA 0x162a0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.NAntTask::_target
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntTask::get_DefaultTarget
-
-    // method line 1156
-    .method public hidebysig specialname 
-           instance default void set_DefaultTarget (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x162bb
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Tasks.NAntTask::_target
-	IL_000d:  ret 
-    } // end of method NAntTask::set_DefaultTarget
-
-    // method line 1157
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.Core.Types.FileSet get_BuildFiles ()  cil managed 
-    {
-        // Method begins at RVA 0x162cc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.FileSet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.NAntTask::_buildFiles
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntTask::get_BuildFiles
-
-    // method line 1158
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_BuildFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0x162e7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.NAntTask::_buildFiles
-	IL_0008:  ret 
-    } // end of method NAntTask::set_BuildFiles
-
-    // method line 1159
-    .method public hidebysig specialname 
-           instance default bool get_InheritAll ()  cil managed 
-    {
-        // Method begins at RVA 0x162f4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.NAntTask::_inheritAll
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntTask::get_InheritAll
-
-    // method line 1160
-    .method public hidebysig specialname 
-           instance default void set_InheritAll (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1630f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.NAntTask::_inheritAll
-	IL_0008:  ret 
-    } // end of method NAntTask::set_InheritAll
-
-    // method line 1161
-    .method public hidebysig specialname 
-           instance default bool get_InheritRefs ()  cil managed 
-    {
-        // Method begins at RVA 0x1631c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.NAntTask::_inheritRefs
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntTask::get_InheritRefs
-
-    // method line 1162
-    .method public hidebysig specialname 
-           instance default void set_InheritRefs (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x16337
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.NAntTask::_inheritRefs
-	IL_0008:  ret 
-    } // end of method NAntTask::set_InheritRefs
-
-    // method line 1163
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_OverrideProperties ()  cil managed 
-    {
-        // Method begins at RVA 0x16344
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Tasks.NAntTask::_overrideProperties
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntTask::get_OverrideProperties
-
-    // method line 1164
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0x16360
-	// Code size 84 (0x54)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.NAntTask::get_BuildFile()
-	IL_0007:  brfalse IL_0053
-
-	IL_000c:  ldarg.0 
-	IL_000d:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.NAntTask::get_BuildFiles()
-	IL_0012:  brfalse IL_0053
-
-	IL_0017:  ldarg.0 
-	IL_0018:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.NAntTask::get_BuildFiles()
-	IL_001d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
-	IL_0022:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0027:  ldc.i4.0 
-	IL_0028:  ble IL_0053
-
-	IL_002d:  nop 
-	IL_002e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0033:  ldstr "NA1141"
-	IL_0038:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_003d:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_0042:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0047:  ldarg.0 
-	IL_0048:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_004d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0052:  throw 
-	IL_0053:  ret 
-    } // end of method NAntTask::Initialize
+    } // end of method EchoTask::set_MessageLevel
 
-    // method line 1165
+    // method line 1130
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x163c0
-	// Code size 157 (0x9d)
+        // Method begins at RVA 0x1402c
+	// Code size 335 (0x14f)
 	.maxstack 3
 	.locals init (
-		string	V_0,
-		class [System]System.Collections.Specialized.StringEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.NAntTask::get_BuildFile()
-	IL_0007:  brfalse IL_001f
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.NAntTask::get_BuildFile()
-	IL_0014:  call instance void class NAnt.Core.Tasks.NAntTask::RunBuild(class [mscorlib]System.IO.FileInfo)
-	IL_0019:  nop 
-	IL_001a:  br IL_009c
-
-	IL_001f:  nop 
-	IL_0020:  ldarg.0 
-	IL_0021:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.NAntTask::get_BuildFiles()
-	IL_0026:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_002b:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0030:  brtrue IL_004b
-
-	IL_0035:  nop 
-	IL_0036:  ldarg.0 
-	IL_0037:  ldc.i4 4000
-	IL_003c:  ldstr "No matching build files found to run."
-	IL_0041:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_0046:  br IL_009c
-
-	IL_004b:  nop 
-	IL_004c:  ldarg.0 
-	IL_004d:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.NAntTask::get_BuildFiles()
-	IL_0052:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0057:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_005c:  stloc.1 
-	.try { // 0
-	  IL_005d:  br IL_0077
-
-	  IL_0062:  ldloc.1 
-	  IL_0063:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0068:  stloc.0 
-	  IL_0069:  nop 
-	  IL_006a:  ldarg.0 
-	  IL_006b:  ldloc.0 
-	  IL_006c:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_0071:  call instance void class NAnt.Core.Tasks.NAntTask::RunBuild(class [mscorlib]System.IO.FileInfo)
-	  IL_0076:  nop 
-	  IL_0077:  ldloc.1 
-	  IL_0078:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_007d:  brtrue IL_0062
-
-	  IL_0082:  leave IL_009b
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0087:  ldloc.1 
-	  IL_0088:  isinst [mscorlib]System.IDisposable
-	  IL_008d:  dup 
-	  IL_008e:  stloc.2 
-	  IL_008f:  brfalse IL_009a
-
-	  IL_0094:  ldloc.2 
-	  IL_0095:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_009a:  endfinally 
-	} // end handler 0
-	IL_009b:  nop 
-	IL_009c:  ret 
-    } // end of method NAntTask::ExecuteTask
-
-    // method line 1166
-    .method private hidebysig 
-           instance default void RunBuild (class [mscorlib]System.IO.FileInfo buildFile)  cil managed 
-    {
-        // Method begins at RVA 0x1647c
-	// Code size 490 (0x1ea)
-	.maxstack 7
-	.locals init (
-		class NAnt.Core.Project	V_0,
-		class [System]System.Collections.Specialized.StringCollection	V_1,
-		class NAnt.Core.Tasks.PropertyTask	V_2,
-		class [mscorlib]System.Collections.IEnumerator	V_3,
-		class [mscorlib]System.IDisposable	V_4,
-		string	V_5,
-		string[]	V_6,
-		int32	V_7,
-		string	V_8)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 3000
-	IL_0007:  ldstr "{0} {1}"
-	IL_000c:  ldc.i4.2 
-	IL_000d:  newarr [mscorlib]System.Object
-	IL_0012:  dup 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001a:  stelem.ref 
-	IL_001b:  dup 
-	IL_001c:  ldc.i4.1 
-	IL_001d:  ldarg.0 
-	IL_001e:  call instance string class NAnt.Core.Tasks.NAntTask::get_DefaultTarget()
-	IL_0023:  stelem.ref 
-	IL_0024:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0029:  ldarg.1 
-	IL_002a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_002f:  ldarg.0 
-	IL_0030:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0035:  newobj instance void class NAnt.Core.Project::'.ctor'(string, class NAnt.Core.Project)
-	IL_003a:  stloc.0 
-	IL_003b:  ldarg.0 
-	IL_003c:  call instance bool class NAnt.Core.Tasks.NAntTask::get_InheritAll()
-	IL_0041:  brfalse IL_00cc
-
-	IL_0046:  nop 
-	IL_0047:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_004c:  stloc.1 
-	IL_004d:  ldloc.1 
-	IL_004e:  ldstr "nant.filename"
-	IL_0053:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0058:  pop 
-	IL_0059:  ldloc.1 
-	IL_005a:  ldstr "nant.location"
-	IL_005f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0064:  pop 
-	IL_0065:  ldloc.1 
-	IL_0066:  ldstr "nant.onsuccess"
-	IL_006b:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0070:  pop 
-	IL_0071:  ldloc.1 
-	IL_0072:  ldstr "nant.onfailure"
-	IL_0077:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_007c:  pop 
-	IL_007d:  ldloc.1 
-	IL_007e:  ldstr "nant.project.basedir"
-	IL_0083:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0088:  pop 
-	IL_0089:  ldloc.1 
-	IL_008a:  ldstr "nant.project.buildfile"
-	IL_008f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0094:  pop 
-	IL_0095:  ldloc.1 
-	IL_0096:  ldstr "nant.project.default"
-	IL_009b:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_00a0:  pop 
-	IL_00a1:  ldloc.1 
-	IL_00a2:  ldstr "nant.project.name"
-	IL_00a7:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_00ac:  pop 
-	IL_00ad:  ldloc.1 
-	IL_00ae:  ldstr "nant.version"
-	IL_00b3:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_00b8:  pop 
-	IL_00b9:  ldloc.0 
-	IL_00ba:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_00bf:  ldarg.0 
-	IL_00c0:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
-	IL_00c5:  ldloc.1 
-	IL_00c6:  callvirt instance void class NAnt.Core.PropertyDictionary::Inherit(class NAnt.Core.PropertyDictionary, class [System]System.Collections.Specialized.StringCollection)
-	IL_00cb:  nop 
-	IL_00cc:  nop 
-	IL_00cd:  ldarg.0 
-	IL_00ce:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Tasks.NAntTask::get_OverrideProperties()
-	IL_00d3:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_00d8:  stloc.3 
-	.try { // 0
-	  IL_00d9:  br IL_0123
-
-	  IL_00de:  ldloc.3 
-	  IL_00df:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_00e4:  castclass NAnt.Core.Tasks.PropertyTask
-	  IL_00e9:  stloc.2 
-	  IL_00ea:  nop 
-	  IL_00eb:  ldloc.2 
-	  IL_00ec:  callvirt instance bool class NAnt.Core.Tasks.PropertyTask::get_Dynamic()
-	  IL_00f1:  brtrue IL_0115
-
-	  IL_00f6:  nop 
-	  IL_00f7:  ldloc.2 
-	  IL_00f8:  ldarg.0 
-	  IL_00f9:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_00fe:  ldloc.2 
-	  IL_00ff:  callvirt instance string class NAnt.Core.Tasks.PropertyTask::get_Value()
-	  IL_0104:  ldarg.0 
-	  IL_0105:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_010a:  callvirt instance string class NAnt.Core.Project::ExpandProperties(string, class NAnt.Core.Location)
-	  IL_010f:  callvirt instance void class NAnt.Core.Tasks.PropertyTask::set_Value(string)
-	  IL_0114:  nop 
-	  IL_0115:  ldloc.2 
-	  IL_0116:  ldloc.0 
-	  IL_0117:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	  IL_011c:  ldloc.2 
-	  IL_011d:  callvirt instance void class NAnt.Core.Task::Execute()
-	  IL_0122:  nop 
-	  IL_0123:  ldloc.3 
-	  IL_0124:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0129:  brtrue IL_00de
-
-	  IL_012e:  leave IL_0149
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0133:  ldloc.3 
-	  IL_0134:  isinst [mscorlib]System.IDisposable
-	  IL_0139:  dup 
-	  IL_013a:  stloc.s 4
-	  IL_013c:  brfalse IL_0148
-
-	  IL_0141:  ldloc.s 4
-	  IL_0143:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0148:  endfinally 
-	} // end handler 0
-	IL_0149:  ldarg.0 
-	IL_014a:  call instance bool class NAnt.Core.Tasks.NAntTask::get_InheritRefs()
-	IL_014f:  brfalse IL_016c
-
-	IL_0154:  nop 
-	IL_0155:  ldloc.0 
-	IL_0156:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	IL_015b:  ldarg.0 
-	IL_015c:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0161:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	IL_0166:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::Inherit(class NAnt.Core.DataTypeBaseDictionary)
-	IL_016b:  nop 
-	IL_016c:  ldarg.0 
-	IL_016d:  call instance string class NAnt.Core.Tasks.NAntTask::get_DefaultTarget()
-	IL_0172:  brfalse IL_01d2
-
-	IL_0177:  nop 
-	IL_0178:  nop 
-	IL_0179:  ldarg.0 
-	IL_017a:  call instance string class NAnt.Core.Tasks.NAntTask::get_DefaultTarget()
-	IL_017f:  ldc.i4.s 0x20
-	IL_0181:  ldc.i4.0 
-	IL_0182:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	IL_0187:  stloc.s 6
-	IL_0189:  ldc.i4.0 
-	IL_018a:  stloc.s 7
-	IL_018c:  br IL_01c6
-
-	IL_0191:  ldloc.s 6
-	IL_0193:  ldloc.s 7
-	IL_0195:  ldelem.ref 
-	IL_0196:  stloc.s 5
-	IL_0198:  nop 
-	IL_0199:  ldloc.s 5
-	IL_019b:  callvirt instance string string::Trim()
-	IL_01a0:  stloc.s 8
-	IL_01a2:  ldloc.s 8
-	IL_01a4:  callvirt instance int32 string::get_Length()
-	IL_01a9:  ldc.i4.0 
-	IL_01aa:  ble IL_01bf
-
-	IL_01af:  nop 
-	IL_01b0:  ldloc.0 
-	IL_01b1:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
-	IL_01b6:  ldloc.s 8
-	IL_01b8:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_01bd:  pop 
-	IL_01be:  nop 
-	IL_01bf:  nop 
-	IL_01c0:  ldloc.s 7
-	IL_01c2:  ldc.i4.1 
-	IL_01c3:  add 
-	IL_01c4:  stloc.s 7
-	IL_01c6:  ldloc.s 7
-	IL_01c8:  ldloc.s 6
-	IL_01ca:  ldlen 
-	IL_01cb:  conv.i4 
-	IL_01cc:  blt IL_0191
-
-	IL_01d1:  nop 
-	IL_01d2:  ldloc.0 
-	IL_01d3:  callvirt instance bool class NAnt.Core.Project::Run()
-	IL_01d8:  brtrue IL_01e9
-
-	IL_01dd:  nop 
-	IL_01de:  ldstr "Nested build failed.  Refer to build log for exact reason."
-	IL_01e3:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_01e8:  throw 
-	IL_01e9:  ret 
-    } // end of method NAntTask::RunBuild
-
-	.property instance class [mscorlib]System.IO.FileInfo BuildFile ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 62 75 69 6C 64 66 69 6C 65 00 00 ) // ...buildfile..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.NAntTask::get_BuildFile () 
-		.set instance default void NAnt.Core.Tasks.NAntTask::set_BuildFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string DefaultTarget ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 74 61 72 67 65 74 00 00 ) // ...target..
-
-		.get instance default string NAnt.Core.Tasks.NAntTask::get_DefaultTarget () 
-		.set instance default void NAnt.Core.Tasks.NAntTask::set_DefaultTarget (string 'value') 
-	}
-	.property instance class NAnt.Core.Types.FileSet BuildFiles ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 0A 62 75 69 6C 64 66 69 6C 65 73 00 00 ) // ...buildfiles..
-
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.NAntTask::get_BuildFiles () 
-		.set instance default void NAnt.Core.Tasks.NAntTask::set_BuildFiles (class NAnt.Core.Types.FileSet 'value') 
-	}
-	.property instance bool InheritAll ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 69 6E 68 65 72 69 74 61 6C 6C 00 00 ) // ...inheritall..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Tasks.NAntTask::get_InheritAll () 
-		.set instance default void NAnt.Core.Tasks.NAntTask::set_InheritAll (bool 'value') 
-	}
-	.property instance bool InheritRefs ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 69 6E 68 65 72 69 74 72 65 66 73 00 00 ) // ...inheritrefs..
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Tasks.NAntTask::get_InheritRefs () 
-		.set instance default void NAnt.Core.Tasks.NAntTask::set_InheritRefs (bool 'value') 
-	}
-	.property instance class [mscorlib]System.Collections.ArrayList OverrideProperties ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
-		01 00 0A 70 72 6F 70 65 72 74 69 65 73 08 70 72   // ...properties.pr
-		6F 70 65 72 74 79 01 00 54 50 0B 45 6C 65 6D 65   // operty..TP.Eleme
-		6E 74 54 79 70 65 1C 4E 41 6E 74 2E 43 6F 72 65   // ntType.NAnt.Core
-		2E 54 61 73 6B 73 2E 50 72 6F 70 65 72 74 79 54   // .Tasks.PropertyT
-		61 73 6B                                        ) // ask
-
-		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.Core.Tasks.NAntTask::get_OverrideProperties () 
-	}
-  } // end of class NAnt.Core.Tasks.NAntTask
-}
-
-.namespace NAnt.Core.Tasks
-{
-  .class public auto ansi beforefieldinit ChooseTask
-  	extends NAnt.Core.Task
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 63 68 6F 6F 73 65 00 00 ) // ...choose..
-
-    .field  private  class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer> _elementContainers
-
-    // method line 1167
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x16684
-	// Code size 18 (0x12)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer>::'.ctor'()
-	IL_0006:  stfld class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer> NAnt.Core.Tasks.ChooseTask::_elementContainers
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0011:  ret 
-    } // end of method ChooseTask::.ctor
-
-    // method line 1168
-    .method private hidebysig specialname 
-           instance default bool get_IsFallbackDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x16698
-	// Code size 88 (0x58)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.ElementContainer	V_0,
-		valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>	V_1,
-		bool	V_2)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer> NAnt.Core.Tasks.ChooseTask::_elementContainers
-	IL_0008:  callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer>::GetEnumerator()
-	IL_000d:  stloc.1 
-	.try { // 0
-	  IL_000e:  br IL_0030
-
-	  IL_0013:  ldloca.s 1
-	  IL_0015:  call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>::get_Current()
-	  IL_001a:  stloc.0 
-	  IL_001b:  nop 
-	  IL_001c:  ldloc.0 
-	  IL_001d:  isinst NAnt.Core.Tasks.ChooseTask/When
-	  IL_0022:  brtrue IL_002f
-
-	  IL_0027:  nop 
-	  IL_0028:  ldc.i4.1 
-	  IL_0029:  stloc.2 
-	  IL_002a:  leave IL_0056
-
-	  IL_002f:  nop 
-	  IL_0030:  ldloca.s 1
-	  IL_0032:  call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>::MoveNext()
-	  IL_0037:  brtrue IL_0013
-
-	  IL_003c:  leave IL_004f
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0041:  ldloca.s 1
-	  IL_0043:  constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>
-	  IL_0049:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_004e:  endfinally 
-	} // end handler 0
-	IL_004f:  ldc.i4.0 
-	IL_0050:  stloc.2 
-	IL_0051:  br IL_0056
-
-	IL_0056:  ldloc.2 
-	IL_0057:  ret 
-    } // end of method ChooseTask::get_IsFallbackDefined
-
-    // method line 1169
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x1670c
-	// Code size 112 (0x70)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.ElementContainer	V_0,
-		valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>	V_1,
-		class NAnt.Core.Tasks.ChooseTask/When	V_2)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer> NAnt.Core.Tasks.ChooseTask::_elementContainers
-	IL_0008:  callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer>::GetEnumerator()
-	IL_000d:  stloc.1 
-	.try { // 0
-	  IL_000e:  br IL_0050
-
-	  IL_0013:  ldloca.s 1
-	  IL_0015:  call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>::get_Current()
-	  IL_001a:  stloc.0 
-	  IL_001b:  nop 
-	  IL_001c:  ldloc.0 
-	  IL_001d:  isinst NAnt.Core.Tasks.ChooseTask/When
-	  IL_0022:  stloc.2 
-	  IL_0023:  ldloc.2 
-	  IL_0024:  brfalse IL_0047
-
-	  IL_0029:  nop 
-	  IL_002a:  ldloc.2 
-	  IL_002b:  callvirt instance bool class NAnt.Core.Tasks.ChooseTask/When::get_Test()
-	  IL_0030:  brfalse IL_0041
-
-	  IL_0035:  nop 
-	  IL_0036:  ldloc.2 
-	  IL_0037:  callvirt instance void class NAnt.Core.ElementContainer::Execute()
-	  IL_003c:  leave IL_005c
-
-	  IL_0041:  nop 
-	  IL_0042:  br IL_004f
-
-	  IL_0047:  nop 
-	  IL_0048:  ldloc.0 
-	  IL_0049:  callvirt instance void class NAnt.Core.ElementContainer::Execute()
-	  IL_004e:  nop 
-	  IL_004f:  nop 
-	  IL_0050:  ldloca.s 1
-	  IL_0052:  call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>::MoveNext()
-	  IL_0057:  brtrue IL_0013
-
-	  IL_005c:  leave IL_006f
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0061:  ldloca.s 1
-	  IL_0063:  constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>
-	  IL_0069:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_006e:  endfinally 
-	} // end handler 0
-	IL_006f:  ret 
-    } // end of method ChooseTask::ExecuteTask
-
-    // method line 1170
-    .method public hidebysig 
-           instance default void AddCondition (class NAnt.Core.Tasks.ChooseTask/When when)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 04 77 68 65 6E 01 00 54 02 08 52 65 71 75   // ...when..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-        // Method begins at RVA 0x16798
-	// Code size 59 (0x3b)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Tasks.ChooseTask::get_IsFallbackDefined()
-	IL_0007:  brfalse IL_002e
-
-	IL_000c:  nop 
-	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0012:  ldstr "The <otherwise> element must be defined as the last nested element in the <{0} ... /> task."
-	IL_0017:  ldarg.0 
-	IL_0018:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_001d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0022:  ldarg.0 
-	IL_0023:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0028:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_002d:  throw 
-	IL_002e:  ldarg.0 
-	IL_002f:  ldfld class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer> NAnt.Core.Tasks.ChooseTask::_elementContainers
-	IL_0034:  ldarg.1 
-	IL_0035:  callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer>::Add(!0)
-	IL_003a:  ret 
-    } // end of method ChooseTask::AddCondition
-
-    // method line 1171
-    .method public hidebysig 
-           instance default void AddFallback (class NAnt.Core.ElementContainer fallback)  cil managed 
-    {
-        .custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 09 6F 74 68 65 72 77 69 73 65 00 00 ) // ...otherwise..
-
-        // Method begins at RVA 0x167d4
-	// Code size 43 (0x2b)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Tasks.ChooseTask::get_IsFallbackDefined()
-	IL_0007:  brfalse IL_001e
-
-	IL_000c:  nop 
-	IL_000d:  ldstr "The <otherwise> element may only be defined once."
-	IL_0012:  ldarg.0 
-	IL_0013:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_001d:  throw 
-	IL_001e:  ldarg.0 
-	IL_001f:  ldfld class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer> NAnt.Core.Tasks.ChooseTask::_elementContainers
-	IL_0024:  ldarg.1 
-	IL_0025:  callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer>::Add(!0)
-	IL_002a:  ret 
-    } // end of method ChooseTask::AddFallback
-
-	.property instance bool IsFallbackDefined ()
-	{
-		.get instance default bool NAnt.Core.Tasks.ChooseTask::get_IsFallbackDefined () 
-	}
-  .class nested public auto ansi beforefieldinit When
-  	extends NAnt.Core.ElementContainer
-  {
-    .field  private  bool _test
-
-    // method line 1172
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x16800
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Tasks.ChooseTask/When::_test
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.ElementContainer::'.ctor'()
-	IL_000d:  ret 
-    } // end of method When::.ctor
-
-    // method line 1173
-    .method public hidebysig specialname 
-           instance default bool get_Test ()  cil managed 
-    {
-        // Method begins at RVA 0x16810
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.ChooseTask/When::_test
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method When::get_Test
-
-    // method line 1174
-    .method public hidebysig specialname 
-           instance default void set_Test (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1682b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.ChooseTask/When::_test
-	IL_0008:  ret 
-    } // end of method When::set_Test
-
-    // method line 1175
-    .method public virtual hidebysig 
-           instance default void Execute ()  cil managed 
-    {
-        // Method begins at RVA 0x16835
-	// Code size 25 (0x19)
-	.maxstack 8
+		class [mscorlib]System.IO.StreamWriter	V_0,
+		class [mscorlib]System.Exception	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Tasks.ChooseTask/When::get_Test()
-	IL_0007:  brtrue IL_0012
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.EchoTask::get_File()
+	IL_0007:  brfalse IL_00f1
 
 	IL_000c:  nop 
-	IL_000d:  br IL_0018
-
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance void class NAnt.Core.ElementContainer::Execute()
-	IL_0018:  ret 
-    } // end of method When::Execute
-
-	.property instance bool Test ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 74 65 73 74 01 00 54 02 08 52 65 71 75   // ...test..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Tasks.ChooseTask/When::get_Test () 
-		.set instance default void NAnt.Core.Tasks.ChooseTask/When::set_Test (bool 'value') 
-	}
-  } // end of class When
-
-  } // end of class NAnt.Core.Tasks.ChooseTask
-}
-
-.namespace NAnt.Core.Tasks
-{
-  .class public auto ansi beforefieldinit SleepTask
-  	extends NAnt.Core.Task
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 73 6C 65 65 70 00 00 ) // ...sleep..
-
-    .field  private  int32 _hours
-    .field  private  int32 _minutes
-    .field  private  int32 _seconds
-    .field  private  int32 _milliseconds
-
-    // method line 1176
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1684f
-	// Code size 35 (0x23)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld int32 NAnt.Core.Tasks.SleepTask::_hours
-	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  stfld int32 NAnt.Core.Tasks.SleepTask::_minutes
-	IL_000e:  ldarg.0 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  stfld int32 NAnt.Core.Tasks.SleepTask::_seconds
-	IL_0015:  ldarg.0 
-	IL_0016:  ldc.i4.0 
-	IL_0017:  stfld int32 NAnt.Core.Tasks.SleepTask::_milliseconds
-	IL_001c:  ldarg.0 
-	IL_001d:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0022:  ret 
-    } // end of method SleepTask::.ctor
+	.try { // 1
+	  IL_000d:  nop 
+	  IL_000e:  ldarg.0 
+	  IL_000f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.EchoTask::get_File()
+	  IL_0014:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
+	  IL_0019:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_001e:  brtrue IL_0045
 
-    // method line 1177
-    .method public hidebysig specialname 
-           instance default int32 get_Hours ()  cil managed 
-    {
-        // Method begins at RVA 0x16874
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Tasks.SleepTask::_hours
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0023:  nop 
+	  IL_0024:  ldarg.0 
+	  IL_0025:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.EchoTask::get_File()
+	  IL_002a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
+	  IL_002f:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
+	  IL_0034:  ldarg.0 
+	  IL_0035:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.EchoTask::get_File()
+	  IL_003a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
+	  IL_003f:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Refresh()
+	  IL_0044:  nop 
+	  IL_0045:  ldarg.0 
+	  IL_0046:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.EchoTask::get_File()
+	  IL_004b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0050:  ldarg.0 
+	  IL_0051:  call instance bool class NAnt.Core.Tasks.EchoTask::get_Append()
+	  IL_0056:  ldarg.0 
+	  IL_0057:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.EchoTask::get_Encoding()
+	  IL_005c:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string, bool, class [mscorlib]System.Text.Encoding)
+	  IL_0061:  stloc.0 
+	  .try { // 0
+	    IL_0062:  nop 
+	    IL_0063:  ldarg.0 
+	    IL_0064:  call instance string class NAnt.Core.Tasks.EchoTask::get_Message()
+	    IL_0069:  call bool string::IsNullOrEmpty(string)
+	    IL_006e:  brtrue IL_0086
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method SleepTask::get_Hours
+	    IL_0073:  nop 
+	    IL_0074:  ldloc.0 
+	    IL_0075:  ldarg.0 
+	    IL_0076:  call instance string class NAnt.Core.Tasks.EchoTask::get_Message()
+	    IL_007b:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string)
+	    IL_0080:  nop 
+	    IL_0081:  br IL_00a4
 
-    // method line 1178
-    .method public hidebysig specialname 
-           instance default void set_Hours (int32 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1688f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.Tasks.SleepTask::_hours
-	IL_0008:  ret 
-    } // end of method SleepTask::set_Hours
+	    IL_0086:  ldarg.0 
+	    IL_0087:  call instance string class NAnt.Core.Tasks.EchoTask::get_Contents()
+	    IL_008c:  call bool string::IsNullOrEmpty(string)
+	    IL_0091:  brtrue IL_00a4
 
-    // method line 1179
-    .method public hidebysig specialname 
-           instance default int32 get_Minutes ()  cil managed 
-    {
-        // Method begins at RVA 0x1689c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Tasks.SleepTask::_minutes
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	    IL_0096:  nop 
+	    IL_0097:  ldloc.0 
+	    IL_0098:  ldarg.0 
+	    IL_0099:  call instance string class NAnt.Core.Tasks.EchoTask::get_Contents()
+	    IL_009e:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string)
+	    IL_00a3:  nop 
+	    IL_00a4:  nop 
+	    IL_00a5:  leave IL_00b7
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method SleepTask::get_Minutes
+	  } // end .try 0
+	  finally  { // 0
+	    IL_00aa:  ldloc.0 
+	    IL_00ab:  brfalse IL_00b6
 
-    // method line 1180
-    .method public hidebysig specialname 
-           instance default void set_Minutes (int32 'value')  cil managed 
-    {
-        // Method begins at RVA 0x168b7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.Tasks.SleepTask::_minutes
-	IL_0008:  ret 
-    } // end of method SleepTask::set_Minutes
+	    IL_00b0:  ldloc.0 
+	    IL_00b1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_00b6:  endfinally 
+	  } // end handler 0
+	  IL_00b7:  nop 
+	  IL_00b8:  leave IL_00eb
 
-    // method line 1181
-    .method public hidebysig specialname 
-           instance default int32 get_Seconds ()  cil managed 
-    {
-        // Method begins at RVA 0x168c4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Tasks.SleepTask::_seconds
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	} // end .try 1
+	catch class [mscorlib]System.Exception { // 1
+	  IL_00bd:  stloc.1 
+	  IL_00be:  nop 
+	  IL_00bf:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_00c4:  ldstr "NA1116"
+	  IL_00c9:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_00ce:  ldarg.0 
+	  IL_00cf:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.EchoTask::get_File()
+	  IL_00d4:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_00d9:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_00de:  ldarg.0 
+	  IL_00df:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_00e4:  ldloc.1 
+	  IL_00e5:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_00ea:  throw 
+	} // end handler 1
+	IL_00eb:  nop 
+	IL_00ec:  br IL_014e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method SleepTask::get_Seconds
+	IL_00f1:  nop 
+	IL_00f2:  ldarg.0 
+	IL_00f3:  call instance string class NAnt.Core.Tasks.EchoTask::get_Message()
+	IL_00f8:  brfalse IL_0116
 
-    // method line 1182
-    .method public hidebysig specialname 
-           instance default void set_Seconds (int32 'value')  cil managed 
-    {
-        // Method begins at RVA 0x168df
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.Tasks.SleepTask::_seconds
-	IL_0008:  ret 
-    } // end of method SleepTask::set_Seconds
+	IL_00fd:  nop 
+	IL_00fe:  ldarg.0 
+	IL_00ff:  ldarg.0 
+	IL_0100:  call instance valuetype NAnt.Core.Level class NAnt.Core.Tasks.EchoTask::get_MessageLevel()
+	IL_0105:  ldarg.0 
+	IL_0106:  call instance string class NAnt.Core.Tasks.EchoTask::get_Message()
+	IL_010b:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_0110:  nop 
+	IL_0111:  br IL_014d
 
-    // method line 1183
-    .method public hidebysig specialname 
-           instance default int32 get_Milliseconds ()  cil managed 
-    {
-        // Method begins at RVA 0x168ec
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Tasks.SleepTask::_milliseconds
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0116:  ldarg.0 
+	IL_0117:  call instance string class NAnt.Core.Tasks.EchoTask::get_Contents()
+	IL_011c:  brfalse IL_013a
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method SleepTask::get_Milliseconds
+	IL_0121:  nop 
+	IL_0122:  ldarg.0 
+	IL_0123:  ldarg.0 
+	IL_0124:  call instance valuetype NAnt.Core.Level class NAnt.Core.Tasks.EchoTask::get_MessageLevel()
+	IL_0129:  ldarg.0 
+	IL_012a:  call instance string class NAnt.Core.Tasks.EchoTask::get_Contents()
+	IL_012f:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_0134:  nop 
+	IL_0135:  br IL_014d
 
-    // method line 1184
-    .method public hidebysig specialname 
-           instance default void set_Milliseconds (int32 'value')  cil managed 
-    {
-        // Method begins at RVA 0x16907
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.Tasks.SleepTask::_milliseconds
-	IL_0008:  ret 
-    } // end of method SleepTask::set_Milliseconds
+	IL_013a:  nop 
+	IL_013b:  ldarg.0 
+	IL_013c:  ldarg.0 
+	IL_013d:  call instance valuetype NAnt.Core.Level class NAnt.Core.Tasks.EchoTask::get_MessageLevel()
+	IL_0142:  ldsfld string [mscorlib]System.String::Empty
+	IL_0147:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_014c:  nop 
+	IL_014d:  nop 
+	IL_014e:  ret 
+    } // end of method EchoTask::ExecuteTask
 
-    // method line 1185
+    // method line 1131
     .method family virtual hidebysig 
            instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x16911
-	// Code size 32 (0x20)
+        // Method begins at RVA 0x141a4
+	// Code size 62 (0x3e)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance int32 class NAnt.Core.Tasks.SleepTask::GetSleepTime()
-	IL_0007:  ldc.i4.0 
-	IL_0008:  bge IL_001f
-
-	IL_000d:  nop 
-	IL_000e:  ldstr "Negative sleep periods are not supported."
-	IL_0013:  ldarg.0 
-	IL_0014:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0019:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_001e:  throw 
-	IL_001f:  ret 
-    } // end of method SleepTask::Initialize
-
-    // method line 1186
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x16934
-	// Code size 47 (0x2f)
-	.maxstack 7
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance int32 class NAnt.Core.Tasks.SleepTask::GetSleepTime()
-	IL_0007:  stloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldc.i4 3000
-	IL_000e:  ldstr "Sleeping for {0} milliseconds."
-	IL_0013:  ldc.i4.1 
-	IL_0014:  newarr [mscorlib]System.Object
-	IL_0019:  dup 
-	IL_001a:  ldc.i4.0 
-	IL_001b:  ldloc.0 
-	IL_001c:  box [mscorlib]System.Int32
-	IL_0021:  stelem.ref 
-	IL_0022:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0027:  ldarg.0 
-	IL_0028:  ldloc.0 
-	IL_0029:  call instance void class NAnt.Core.Tasks.SleepTask::DoSleep(int32)
-	IL_002e:  ret 
-    } // end of method SleepTask::ExecuteTask
-
-    // method line 1187
-    .method private hidebysig 
-           instance default int32 GetSleepTime ()  cil managed 
-    {
-        // Method begins at RVA 0x16970
-	// Code size 48 (0x30)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance int32 class NAnt.Core.Tasks.SleepTask::get_Hours()
-	IL_0007:  ldc.i4.s 0x3c
-	IL_0009:  mul 
-	IL_000a:  ldarg.0 
-	IL_000b:  call instance int32 class NAnt.Core.Tasks.SleepTask::get_Minutes()
-	IL_0010:  add 
-	IL_0011:  ldc.i4.s 0x3c
-	IL_0013:  mul 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance int32 class NAnt.Core.Tasks.SleepTask::get_Seconds()
-	IL_001a:  add 
-	IL_001b:  ldc.i4 1000
-	IL_0020:  mul 
-	IL_0021:  ldarg.0 
-	IL_0022:  call instance int32 class NAnt.Core.Tasks.SleepTask::get_Milliseconds()
-	IL_0027:  add 
-	IL_0028:  stloc.0 
-	IL_0029:  br IL_002e
-
-	IL_002e:  ldloc.0 
-	IL_002f:  ret 
-    } // end of method SleepTask::GetSleepTime
-
-    // method line 1188
-    .method private hidebysig 
-           instance default void DoSleep (int32 millis)  cil managed 
-    {
-        // Method begins at RVA 0x169ac
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call void class [mscorlib]System.Threading.Thread::Sleep(int32)
-	IL_0007:  ret 
-    } // end of method SleepTask::DoSleep
-
-	.property instance int32 Hours ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 68 6F 75 72 73 00 00 ) // ...hours..
-
-		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 FF FF FF 7F 00 00 ) // ............
-
-		.get instance default int32 NAnt.Core.Tasks.SleepTask::get_Hours () 
-		.set instance default void NAnt.Core.Tasks.SleepTask::set_Hours (int32 'value') 
-	}
-	.property instance int32 Minutes ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6D 69 6E 75 74 65 73 00 00 ) // ...minutes..
-
-		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 FF FF FF 7F 00 00 ) // ............
+	IL_0002:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::get_XmlNode()
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::get_ChildNodes()
+	IL_000c:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_0011:  brtrue IL_001b
 
-		.get instance default int32 NAnt.Core.Tasks.SleepTask::get_Minutes () 
-		.set instance default void NAnt.Core.Tasks.SleepTask::set_Minutes (int32 'value') 
-	}
-	.property instance int32 Seconds ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 73 65 63 6F 6E 64 73 00 00 ) // ...seconds..
+	IL_0016:  br IL_003d
 
-		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 FF FF FF 7F 00 00 ) // ............
+	IL_001b:  ldarg.0 
+	IL_001c:  ldarg.0 
+	IL_001d:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0022:  ldarg.0 
+	IL_0023:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::get_XmlNode()
+	IL_0028:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerText()
+	IL_002d:  ldarg.0 
+	IL_002e:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0033:  callvirt instance string class NAnt.Core.Project::ExpandProperties(string, class NAnt.Core.Location)
+	IL_0038:  call instance void class NAnt.Core.Tasks.EchoTask::set_Contents(string)
+	IL_003d:  ret 
+    } // end of method EchoTask::Initialize
 
-		.get instance default int32 NAnt.Core.Tasks.SleepTask::get_Seconds () 
-		.set instance default void NAnt.Core.Tasks.SleepTask::set_Seconds (int32 'value') 
-	}
-	.property instance int32 Milliseconds ()
+	.property instance class [mscorlib]System.Text.Encoding Encoding ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 6D 69 6C 6C 69 73 65 63 6F 6E 64 73 00   // ...milliseconds.
-		00                                              ) // .
-
-		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 FF FF FF 7F 00 00 ) // ............
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 65 6E 63 6F 64 69 6E 67 00 00 ) // ...encoding..
 
-		.get instance default int32 NAnt.Core.Tasks.SleepTask::get_Milliseconds () 
-		.set instance default void NAnt.Core.Tasks.SleepTask::set_Milliseconds (int32 'value') 
+		.get instance default class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.EchoTask::get_Encoding () 
+		.set instance default void NAnt.Core.Tasks.EchoTask::set_Encoding (class [mscorlib]System.Text.Encoding 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.SleepTask
-}
-
-.namespace NAnt.Core.Tasks
-{
-  .class public auto ansi beforefieldinit FailTask
-  	extends NAnt.Core.Task
-  {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 66 61 69 6C 00 00 ) // ...fail..
-
-    .field  private  string _message
-    .field  private  string _contents
-
-    // method line 1189
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x169b5
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0006:  ret 
-    } // end of method FailTask::.ctor
-
-    // method line 1190
-    .method public hidebysig specialname 
-           instance default string get_Message ()  cil managed 
-    {
-        // Method begins at RVA 0x169c0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.FailTask::_message
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FailTask::get_Message
-
-    // method line 1191
-    .method public hidebysig specialname 
-           instance default void set_Message (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x169dc
-	// Code size 72 (0x48)
-	.maxstack 2
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call bool string::IsNullOrEmpty(string)
-	IL_0007:  brtrue IL_003e
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance string class NAnt.Core.Tasks.FailTask::get_Contents()
-	IL_0013:  call bool string::IsNullOrEmpty(string)
-	IL_0018:  brtrue IL_002f
-
-	IL_001d:  nop 
-	IL_001e:  ldstr "Inline content and the message attribute are mutually exclusive in the <fail> task."
-	IL_0023:  ldarg.0 
-	IL_0024:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0029:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class NAnt.Core.Location)
-	IL_002e:  throw 
-	IL_002f:  nop 
-	IL_0030:  ldarg.0 
-	IL_0031:  ldarg.1 
-	IL_0032:  stfld string NAnt.Core.Tasks.FailTask::_message
-	IL_0037:  nop 
-	IL_0038:  nop 
-	IL_0039:  br IL_0047
-
-	IL_003e:  nop 
-	IL_003f:  ldarg.0 
-	IL_0040:  ldnull 
-	IL_0041:  stfld string NAnt.Core.Tasks.FailTask::_message
-	IL_0046:  nop 
-	IL_0047:  ret 
-    } // end of method FailTask::set_Message
-
-    // method line 1192
-    .method public hidebysig specialname 
-           instance default string get_Contents ()  cil managed 
-    {
-        // Method begins at RVA 0x16a30
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.FailTask::_contents
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FailTask::get_Contents
-
-    // method line 1193
-    .method public hidebysig specialname 
-           instance default void set_Contents (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x16a4c
-	// Code size 72 (0x48)
-	.maxstack 2
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call bool string::IsNullOrEmpty(string)
-	IL_0007:  brtrue IL_003e
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance string class NAnt.Core.Tasks.FailTask::get_Message()
-	IL_0013:  call bool string::IsNullOrEmpty(string)
-	IL_0018:  brtrue IL_002f
-
-	IL_001d:  nop 
-	IL_001e:  ldstr "Inline content and the message attribute are mutually exclusive in the <fail> task."
-	IL_0023:  ldarg.0 
-	IL_0024:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0029:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class NAnt.Core.Location)
-	IL_002e:  throw 
-	IL_002f:  nop 
-	IL_0030:  ldarg.0 
-	IL_0031:  ldarg.1 
-	IL_0032:  stfld string NAnt.Core.Tasks.FailTask::_contents
-	IL_0037:  nop 
-	IL_0038:  nop 
-	IL_0039:  br IL_0047
-
-	IL_003e:  nop 
-	IL_003f:  ldarg.0 
-	IL_0040:  ldnull 
-	IL_0041:  stfld string NAnt.Core.Tasks.FailTask::_contents
-	IL_0046:  nop 
-	IL_0047:  ret 
-    } // end of method FailTask::set_Contents
-
-    // method line 1194
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x16aa0
-	// Code size 82 (0x52)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.Core.Tasks.FailTask::get_Message()
-	IL_0007:  call bool string::IsNullOrEmpty(string)
-	IL_000c:  brtrue IL_001f
-
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance string class NAnt.Core.Tasks.FailTask::get_Message()
-	IL_0018:  stloc.0 
-	IL_0019:  nop 
-	IL_001a:  br IL_0045
-
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance string class NAnt.Core.Tasks.FailTask::get_Contents()
-	IL_0025:  call bool string::IsNullOrEmpty(string)
-	IL_002a:  brtrue IL_003d
-
-	IL_002f:  nop 
-	IL_0030:  ldarg.0 
-	IL_0031:  call instance string class NAnt.Core.Tasks.FailTask::get_Contents()
-	IL_0036:  stloc.0 
-	IL_0037:  nop 
-	IL_0038:  br IL_0045
-
-	IL_003d:  nop 
-	IL_003e:  ldstr "No message."
-	IL_0043:  stloc.0 
-	IL_0044:  nop 
-	IL_0045:  ldloc.0 
-	IL_0046:  ldarg.0 
-	IL_0047:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_004c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0051:  throw 
-    } // end of method FailTask::ExecuteTask
-
-    // method line 1195
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0x16afe
-	// Code size 36 (0x24)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::get_XmlNode()
-	IL_000e:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerText()
-	IL_0013:  ldarg.0 
-	IL_0014:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0019:  callvirt instance string class NAnt.Core.Project::ExpandProperties(string, class NAnt.Core.Location)
-	IL_001e:  call instance void class NAnt.Core.Tasks.FailTask::set_Contents(string)
-	IL_0023:  ret 
-    } // end of method FailTask::Initialize
-
 	.property instance string Message ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6D 65 73 73 61 67 65 00 00 ) // ...message..
 
-		.get instance default string NAnt.Core.Tasks.FailTask::get_Message () 
-		.set instance default void NAnt.Core.Tasks.FailTask::set_Message (string 'value') 
+		.get instance default string NAnt.Core.Tasks.EchoTask::get_Message () 
+		.set instance default void NAnt.Core.Tasks.EchoTask::set_Message (string 'value') 
 	}
 	.property instance string Contents ()
 	{
-		.get instance default string NAnt.Core.Tasks.FailTask::get_Contents () 
-		.set instance default void NAnt.Core.Tasks.FailTask::set_Contents (string 'value') 
-	}
-  } // end of class NAnt.Core.Tasks.FailTask
-}
-
-.namespace NAnt.Core.Tasks
-{
-  .class public auto ansi abstract serializable beforefieldinit ExternalProgramBase
-  	extends NAnt.Core.Task
-  {
-    .field  private  class [mscorlib]System.IO.StreamReader _stdError
-    .field  private  class [mscorlib]System.IO.StreamReader _stdOut
-    .field  private  class NAnt.Core.Types.ArgumentCollection _arguments
-    .field  private  valuetype NAnt.Core.Types.ManagedExecution _managed
-    .field  private  string _exeName
-    .field  private  int32 _timeout
-    .field  private  class [mscorlib]System.IO.TextWriter _outputWriter
-    .field  private  class [mscorlib]System.IO.TextWriter _errorWriter
-    .field  private  int32 _exitCode
-    .field  private  bool _spawn
-    .field  private  int32 _processId
-    .field  private  bool _useRuntimeEngine
-    .field public static literal  int32 UnknownExitCode = int32(0xfffffc18)
-    .field  private static initonly  class [log4net]log4net.ILog logger
-    .field  private static  object _lockObject
-
-    // method line 1196
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xe5bc
-	// Code size 54 (0x36)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Types.ArgumentCollection::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.Types.ArgumentCollection NAnt.Core.Tasks.ExternalProgramBase::_arguments
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.0 
-	IL_000d:  stfld valuetype NAnt.Core.Types.ManagedExecution NAnt.Core.Tasks.ExternalProgramBase::_managed
-	IL_0012:  ldarg.0 
-	IL_0013:  ldc.i4 2147483647
-	IL_0018:  stfld int32 NAnt.Core.Tasks.ExternalProgramBase::_timeout
-	IL_001d:  ldarg.0 
-	IL_001e:  ldc.i4 -1000
-	IL_0023:  stfld int32 NAnt.Core.Tasks.ExternalProgramBase::_exitCode
-	IL_0028:  ldarg.0 
-	IL_0029:  ldc.i4.0 
-	IL_002a:  stfld int32 NAnt.Core.Tasks.ExternalProgramBase::_processId
-	IL_002f:  ldarg.0 
-	IL_0030:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0035:  ret 
-    } // end of method ExternalProgramBase::.ctor
-
-    // method line 1197
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_ExeName ()  cil managed 
-    {
-        // Method begins at RVA 0xe5f4
-	// Code size 37 (0x25)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.ExternalProgramBase::_exeName
-	IL_0007:  brfalse IL_0017
-
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld string NAnt.Core.Tasks.ExternalProgramBase::_exeName
-	IL_0012:  br IL_001d
-
-	IL_0017:  ldarg.0 
-	IL_0018:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_001d:  stloc.0 
-	IL_001e:  br IL_0023
-
-	IL_0023:  ldloc.0 
-	IL_0024:  ret 
-    } // end of method ExternalProgramBase::get_ExeName
-
-    // method line 1198
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_ExeName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xe625
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Tasks.ExternalProgramBase::_exeName
-	IL_0008:  ret 
-    } // end of method ExternalProgramBase::set_ExeName
-
-    // method line 1199
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_ProgramFileName ()  cil managed 
-    {
-        // Method begins at RVA 0xe630
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.Core.Tasks.ExternalProgramBase::DetermineFilePath()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExternalProgramBase::get_ProgramFileName
-
-    // method line 1200
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_ProgramArguments ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ExternalProgramBase::get_ProgramArguments
-
-    // method line 1201
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Output ()  cil managed 
-    {
-        // Method begins at RVA 0xe64c
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ExternalProgramBase::get_Output
-
-    // method line 1202
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Output (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0xe662
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method ExternalProgramBase::set_Output
-
-    // method line 1203
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_OutputAppend ()  cil managed 
-    {
-        // Method begins at RVA 0xe668
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ExternalProgramBase::get_OutputAppend
-
-    // method line 1204
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_OutputAppend (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xe67e
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method ExternalProgramBase::set_OutputAppend
-
-    // method line 1205
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0xe684
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_000c:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ExternalProgramBase::get_BaseDirectory
-
-    // method line 1206
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0xe6a9
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method ExternalProgramBase::set_BaseDirectory
-
-    // method line 1207
-    .method public hidebysig specialname 
-           instance default int32 get_TimeOut ()  cil managed 
-    {
-        // Method begins at RVA 0xe6ac
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Tasks.ExternalProgramBase::_timeout
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExternalProgramBase::get_TimeOut
-
-    // method line 1208
-    .method public hidebysig specialname 
-           instance default void set_TimeOut (int32 'value')  cil managed 
-    {
-        // Method begins at RVA 0xe6c7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.Tasks.ExternalProgramBase::_timeout
-	IL_0008:  ret 
-    } // end of method ExternalProgramBase::set_TimeOut
-
-    // method line 1209
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.Core.Types.ArgumentCollection get_Arguments ()  cil managed 
-    {
-        // Method begins at RVA 0xe6d4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Types.ArgumentCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.ArgumentCollection NAnt.Core.Tasks.ExternalProgramBase::_arguments
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExternalProgramBase::get_Arguments
-
-    // method line 1210
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_UseRuntimeEngine ()  cil managed 
-    {
-        // Method begins at RVA 0xe6f0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.ExternalProgramBase::_useRuntimeEngine
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExternalProgramBase::get_UseRuntimeEngine
-
-    // method line 1211
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_UseRuntimeEngine (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xe70b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.ExternalProgramBase::_useRuntimeEngine
-	IL_0008:  ret 
-    } // end of method ExternalProgramBase::set_UseRuntimeEngine
-
-    // method line 1212
-    .method public virtual hidebysig newslot specialname 
-           instance default valuetype NAnt.Core.Types.ManagedExecution get_Managed ()  cil managed 
-    {
-        // Method begins at RVA 0xe718
-	// Code size 45 (0x2d)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.Core.Types.ManagedExecution	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_UseRuntimeEngine()
-	IL_0007:  brfalse IL_001f
-
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld valuetype NAnt.Core.Types.ManagedExecution NAnt.Core.Tasks.ExternalProgramBase::_managed
-	IL_0012:  brtrue IL_001f
-
-	IL_0017:  nop 
-	IL_0018:  ldc.i4.1 
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_002b
-
-	IL_001f:  ldarg.0 
-	IL_0020:  ldfld valuetype NAnt.Core.Types.ManagedExecution NAnt.Core.Tasks.ExternalProgramBase::_managed
-	IL_0025:  stloc.0 
-	IL_0026:  br IL_002b
-
-	IL_002b:  ldloc.0 
-	IL_002c:  ret 
-    } // end of method ExternalProgramBase::get_Managed
-
-    // method line 1213
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Managed (valuetype NAnt.Core.Types.ManagedExecution 'value')  cil managed 
-    {
-        // Method begins at RVA 0xe751
-	// Code size 22 (0x16)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.Core.Types.ManagedExecution NAnt.Core.Tasks.ExternalProgramBase::_managed
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  ldc.i4.0 
-	IL_000b:  ceq 
-	IL_000d:  ldc.i4.0 
-	IL_000e:  ceq 
-	IL_0010:  callvirt instance void class NAnt.Core.Tasks.ExternalProgramBase::set_UseRuntimeEngine(bool)
-	IL_0015:  ret 
-    } // end of method ExternalProgramBase::set_Managed
-
-    // method line 1214
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.TextWriter get_OutputWriter ()  cil managed 
-    {
-        // Method begins at RVA 0xe768
-	// Code size 50 (0x32)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.IO.TextWriter	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_outputWriter
-	IL_0007:  brtrue IL_0024
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldc.i4 3000
-	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0019:  newobj instance void class NAnt.Core.LogWriter::'.ctor'(class NAnt.Core.Task, valuetype NAnt.Core.Level, class [mscorlib]System.IFormatProvider)
-	IL_001e:  stfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_outputWriter
-	IL_0023:  nop 
-	IL_0024:  ldarg.0 
-	IL_0025:  ldfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_outputWriter
-	IL_002a:  stloc.0 
-	IL_002b:  br IL_0030
-
-	IL_0030:  ldloc.0 
-	IL_0031:  ret 
-    } // end of method ExternalProgramBase::get_OutputWriter
-
-    // method line 1215
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
-    {
-        // Method begins at RVA 0xe7a6
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_outputWriter
-	IL_0008:  ret 
-    } // end of method ExternalProgramBase::set_OutputWriter
-
-    // method line 1216
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.TextWriter get_ErrorWriter ()  cil managed 
-    {
-        // Method begins at RVA 0xe7b0
-	// Code size 50 (0x32)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.IO.TextWriter	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_errorWriter
-	IL_0007:  brtrue IL_0024
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldc.i4 4000
-	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0019:  newobj instance void class NAnt.Core.LogWriter::'.ctor'(class NAnt.Core.Task, valuetype NAnt.Core.Level, class [mscorlib]System.IFormatProvider)
-	IL_001e:  stfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_errorWriter
-	IL_0023:  nop 
-	IL_0024:  ldarg.0 
-	IL_0025:  ldfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_errorWriter
-	IL_002a:  stloc.0 
-	IL_002b:  br IL_0030
-
-	IL_0030:  ldloc.0 
-	IL_0031:  ret 
-    } // end of method ExternalProgramBase::get_ErrorWriter
-
-    // method line 1217
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_ErrorWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
-    {
-        // Method begins at RVA 0xe7ee
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_errorWriter
-	IL_0008:  ret 
-    } // end of method ExternalProgramBase::set_ErrorWriter
-
-    // method line 1218
-    .method public hidebysig specialname 
-           instance default int32 get_ExitCode ()  cil managed 
-    {
-        // Method begins at RVA 0xe7f8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Tasks.ExternalProgramBase::_exitCode
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExternalProgramBase::get_ExitCode
-
-    // method line 1219
-    .method family hidebysig specialname 
-           instance default int32 get_ProcessId ()  cil managed 
-    {
-        // Method begins at RVA 0xe814
-	// Code size 61 (0x3d)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_Spawn()
-	IL_0007:  brtrue IL_0018
-
-	IL_000c:  nop 
-	IL_000d:  ldstr "The unique identifier only applies to spawned applications."
-	IL_0012:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
-	IL_0017:  throw 
-	IL_0018:  ldarg.0 
-	IL_0019:  ldfld int32 NAnt.Core.Tasks.ExternalProgramBase::_processId
-	IL_001e:  brtrue IL_002f
-
-	IL_0023:  nop 
-	IL_0024:  ldstr "The application was not started."
-	IL_0029:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
-	IL_002e:  throw 
-	IL_002f:  ldarg.0 
-	IL_0030:  ldfld int32 NAnt.Core.Tasks.ExternalProgramBase::_processId
-	IL_0035:  stloc.0 
-	IL_0036:  br IL_003b
-
-	IL_003b:  ldloc.0 
-	IL_003c:  ret 
-    } // end of method ExternalProgramBase::get_ProcessId
-
-    // method line 1220
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_Spawn ()  cil managed 
-    {
-        // Method begins at RVA 0xe860
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.ExternalProgramBase::_spawn
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExternalProgramBase::get_Spawn
-
-    // method line 1221
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Spawn (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xe87b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.ExternalProgramBase::_spawn
-	IL_0008:  ret 
-    } // end of method ExternalProgramBase::set_Spawn
-
-    // method line 1222
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0xe888
-	// Code size 489 (0x1e9)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.Threading.Thread	V_0,
-		class [mscorlib]System.Threading.Thread	V_1,
-		class [System]System.Diagnostics.Process	V_2,
-		class NAnt.Core.BuildException	V_3,
-		class [mscorlib]System.Exception	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldnull 
-	IL_0004:  stloc.1 
-	.try { // 3
-	  .try { // 1
-	    IL_0005:  nop 
-	    IL_0006:  ldarg.0 
-	    IL_0007:  callvirt instance class [System]System.Diagnostics.Process class NAnt.Core.Tasks.ExternalProgramBase::StartProcess()
-	    IL_000c:  stloc.2 
-	    IL_000d:  ldarg.0 
-	    IL_000e:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_Spawn()
-	    IL_0013:  brfalse IL_002a
-
-	    IL_0018:  nop 
-	    IL_0019:  ldarg.0 
-	    IL_001a:  ldloc.2 
-	    IL_001b:  callvirt instance int32 class [System]System.Diagnostics.Process::get_Id()
-	    IL_0020:  stfld int32 NAnt.Core.Tasks.ExternalProgramBase::_processId
-	    IL_0025:  leave IL_01e8
-
-	    IL_002a:  ldarg.0 
-	    IL_002b:  ldftn instance void class NAnt.Core.Tasks.ExternalProgramBase::StreamReaderThread_Output()
-	    IL_0031:  newobj instance void class [mscorlib]System.Threading.ThreadStart::'.ctor'(object, native int)
-	    IL_0036:  newobj instance void class [mscorlib]System.Threading.Thread::'.ctor'(class [mscorlib]System.Threading.ThreadStart)
-	    IL_003b:  stloc.0 
-	    IL_003c:  ldarg.0 
-	    IL_003d:  ldftn instance void class NAnt.Core.Tasks.ExternalProgramBase::StreamReaderThread_Error()
-	    IL_0043:  newobj instance void class [mscorlib]System.Threading.ThreadStart::'.ctor'(object, native int)
-	    IL_0048:  newobj instance void class [mscorlib]System.Threading.Thread::'.ctor'(class [mscorlib]System.Threading.ThreadStart)
-	    IL_004d:  stloc.1 
-	    IL_004e:  ldarg.0 
-	    IL_004f:  ldloc.2 
-	    IL_0050:  callvirt instance class [mscorlib]System.IO.StreamReader class [System]System.Diagnostics.Process::get_StandardOutput()
-	    IL_0055:  stfld class [mscorlib]System.IO.StreamReader NAnt.Core.Tasks.ExternalProgramBase::_stdOut
-	    IL_005a:  ldarg.0 
-	    IL_005b:  ldloc.2 
-	    IL_005c:  callvirt instance class [mscorlib]System.IO.StreamReader class [System]System.Diagnostics.Process::get_StandardError()
-	    IL_0061:  stfld class [mscorlib]System.IO.StreamReader NAnt.Core.Tasks.ExternalProgramBase::_stdError
-	    IL_0066:  ldloc.0 
-	    IL_0067:  callvirt instance void class [mscorlib]System.Threading.Thread::Start()
-	    IL_006c:  ldloc.1 
-	    IL_006d:  callvirt instance void class [mscorlib]System.Threading.Thread::Start()
-	    IL_0072:  ldloc.2 
-	    IL_0073:  ldarg.0 
-	    IL_0074:  call instance int32 class NAnt.Core.Tasks.ExternalProgramBase::get_TimeOut()
-	    IL_0079:  callvirt instance bool class [System]System.Diagnostics.Process::WaitForExit(int32)
-	    IL_007e:  pop 
-	    IL_007f:  ldloc.0 
-	    IL_0080:  ldc.i4 2000
-	    IL_0085:  callvirt instance bool class [mscorlib]System.Threading.Thread::Join(int32)
-	    IL_008a:  pop 
-	    IL_008b:  ldloc.1 
-	    IL_008c:  ldc.i4 2000
-	    IL_0091:  callvirt instance bool class [mscorlib]System.Threading.Thread::Join(int32)
-	    IL_0096:  pop 
-	    IL_0097:  ldloc.2 
-	    IL_0098:  callvirt instance bool class [System]System.Diagnostics.Process::get_HasExited()
-	    IL_009d:  brtrue IL_00e9
-
-	    IL_00a2:  nop 
-	    .try { // 0
-	      IL_00a3:  nop 
-	      IL_00a4:  ldloc.2 
-	      IL_00a5:  callvirt instance void class [System]System.Diagnostics.Process::Kill()
-	      IL_00aa:  nop 
-	      IL_00ab:  leave IL_00b8
-
-	    } // end .try 0
-	    catch class [mscorlib]System.Object { // 0
-	      IL_00b0:  pop 
-	      IL_00b1:  nop 
-	      IL_00b2:  nop 
-	      IL_00b3:  leave IL_00b8
-
-	    } // end handler 0
-	    IL_00b8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_00bd:  ldstr "NA1118"
-	    IL_00c2:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_00c7:  ldarg.0 
-	    IL_00c8:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
-	    IL_00cd:  ldarg.0 
-	    IL_00ce:  call instance int32 class NAnt.Core.Tasks.ExternalProgramBase::get_TimeOut()
-	    IL_00d3:  box [mscorlib]System.Int32
-	    IL_00d8:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	    IL_00dd:  ldarg.0 
-	    IL_00de:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	    IL_00e3:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	    IL_00e8:  throw 
-	    IL_00e9:  ldarg.0 
-	    IL_00ea:  ldloc.2 
-	    IL_00eb:  callvirt instance int32 class [System]System.Diagnostics.Process::get_ExitCode()
-	    IL_00f0:  stfld int32 NAnt.Core.Tasks.ExternalProgramBase::_exitCode
-	    IL_00f5:  ldloc.2 
-	    IL_00f6:  callvirt instance int32 class [System]System.Diagnostics.Process::get_ExitCode()
-	    IL_00fb:  brfalse IL_0132
-
-	    IL_0100:  nop 
-	    IL_0101:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0106:  ldstr "NA1119"
-	    IL_010b:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_0110:  ldarg.0 
-	    IL_0111:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
-	    IL_0116:  ldloc.2 
-	    IL_0117:  callvirt instance int32 class [System]System.Diagnostics.Process::get_ExitCode()
-	    IL_011c:  box [mscorlib]System.Int32
-	    IL_0121:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	    IL_0126:  ldarg.0 
-	    IL_0127:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	    IL_012c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	    IL_0131:  throw 
-	    IL_0132:  nop 
-	    IL_0133:  leave IL_01e8
-
-	  } // end .try 1
-	  catch class NAnt.Core.BuildException { // 1
-	    IL_0138:  stloc.3 
-	    IL_0139:  nop 
-	    IL_013a:  ldarg.0 
-	    IL_013b:  call instance bool class NAnt.Core.Task::get_FailOnError()
-	    IL_0140:  brfalse IL_0148
-
-	    IL_0145:  nop 
-	    IL_0146:  rethrow 
-	    IL_0148:  nop 
-	    IL_0149:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.ExternalProgramBase::logger
-	    IL_014e:  ldstr "Execution Error"
-	    IL_0153:  ldloc.3 
-	    IL_0154:  callvirt instance void class [log4net]log4net.ILog::Error(object, class [mscorlib]System.Exception)
-	    IL_0159:  ldarg.0 
-	    IL_015a:  ldc.i4 5000
-	    IL_015f:  ldloc.3 
-	    IL_0160:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	    IL_0165:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	    IL_016a:  nop 
-	    IL_016b:  nop 
-	    IL_016c:  leave IL_01e8
-
-	  } // end handler 1
-	  catch class [mscorlib]System.Exception { // 2
-	    IL_0171:  stloc.s 4
-	    IL_0173:  nop 
-	    IL_0174:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.ExternalProgramBase::logger
-	    IL_0179:  ldstr "Execution Error"
-	    IL_017e:  ldloc.s 4
-	    IL_0180:  callvirt instance void class [log4net]log4net.ILog::Error(object, class [mscorlib]System.Exception)
-	    IL_0185:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_018a:  ldstr "{0}: {1} had errors. Please see log4net log."
-	    IL_018f:  ldarg.0 
-	    IL_0190:  call instance class [mscorlib]System.Type object::GetType()
-	    IL_0195:  callvirt instance string object::ToString()
-	    IL_019a:  ldarg.0 
-	    IL_019b:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
-	    IL_01a0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	    IL_01a5:  ldarg.0 
-	    IL_01a6:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	    IL_01ab:  ldloc.s 4
-	    IL_01ad:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	    IL_01b2:  throw 
-	  } // end handler 2
-	} // end .try 3
-	finally  { // 3
-	  IL_01b3:  nop 
-	  IL_01b4:  ldloc.0 
-	  IL_01b5:  brfalse IL_01cd
-
-	  IL_01ba:  ldloc.0 
-	  IL_01bb:  callvirt instance bool class [mscorlib]System.Threading.Thread::get_IsAlive()
-	  IL_01c0:  brfalse IL_01cd
-
-	  IL_01c5:  nop 
-	  IL_01c6:  ldloc.0 
-	  IL_01c7:  callvirt instance void class [mscorlib]System.Threading.Thread::Abort()
-	  IL_01cc:  nop 
-	  IL_01cd:  ldloc.1 
-	  IL_01ce:  brfalse IL_01e6
-
-	  IL_01d3:  ldloc.1 
-	  IL_01d4:  callvirt instance bool class [mscorlib]System.Threading.Thread::get_IsAlive()
-	  IL_01d9:  brfalse IL_01e6
-
-	  IL_01de:  nop 
-	  IL_01df:  ldloc.1 
-	  IL_01e0:  callvirt instance void class [mscorlib]System.Threading.Thread::Abort()
-	  IL_01e5:  nop 
-	  IL_01e6:  nop 
-	  IL_01e7:  endfinally 
-	} // end handler 3
-	IL_01e8:  ret 
-    } // end of method ExternalProgramBase::ExecuteTask
-
-    // method line 1223
-    .method public hidebysig specialname 
-           instance default string get_CommandLine ()  cil managed 
-    {
-        // Method begins at RVA 0xeae4
-	// Code size 39 (0x27)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ProgramArguments()
-	IL_0007:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
-	IL_000c:  stloc.0 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance class NAnt.Core.Types.ArgumentCollection class NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_0013:  ldloc.0 
-	IL_0014:  callvirt instance void class NAnt.Core.Types.ArgumentCollection::ToString(class [mscorlib]System.Text.StringBuilder)
-	IL_0019:  ldloc.0 
-	IL_001a:  callvirt instance string object::ToString()
-	IL_001f:  stloc.1 
-	IL_0020:  br IL_0025
-
-	IL_0025:  ldloc.1 
-	IL_0026:  ret 
-    } // end of method ExternalProgramBase::get_CommandLine
-
-    // method line 1224
-    .method family virtual hidebysig newslot 
-           instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
-    {
-        // Method begins at RVA 0xeb18
-	// Code size 451 (0x1c3)
-	.maxstack 4
-	.locals init (
-		class NAnt.Core.Configuration.ManagedExecutionMode	V_0,
-		class [mscorlib]System.Text.StringBuilder	V_1,
-		class NAnt.Core.Types.EnvironmentVariable	V_2,
-		class NAnt.Core.Types.EnvironmentVariableEnumerator	V_3,
-		class [mscorlib]System.IDisposable	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Configuration.ManagedExecutionMode class NAnt.Core.Tasks.ExternalProgramBase::get_ManagedExecutionMode()
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  brfalse IL_0092
-
-	IL_000e:  ldloc.0 
-	IL_000f:  callvirt instance class NAnt.Core.Configuration.RuntimeEngine class NAnt.Core.Configuration.ManagedExecutionMode::get_Engine()
-	IL_0014:  brfalse IL_0092
-
-	IL_0019:  nop 
-	IL_001a:  ldarg.1 
-	IL_001b:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_0020:  ldloc.0 
-	IL_0021:  callvirt instance class NAnt.Core.Configuration.RuntimeEngine class NAnt.Core.Configuration.ManagedExecutionMode::get_Engine()
-	IL_0026:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Configuration.RuntimeEngine::get_Program()
-	IL_002b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0030:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_FileName(string)
-	IL_0035:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_003a:  stloc.1 
-	IL_003b:  ldloc.0 
-	IL_003c:  callvirt instance class NAnt.Core.Configuration.RuntimeEngine class NAnt.Core.Configuration.ManagedExecutionMode::get_Engine()
-	IL_0041:  callvirt instance class NAnt.Core.Types.ArgumentCollection class NAnt.Core.Configuration.RuntimeEngine::get_Arguments()
-	IL_0046:  ldloc.1 
-	IL_0047:  callvirt instance void class NAnt.Core.Types.ArgumentCollection::ToString(class [mscorlib]System.Text.StringBuilder)
-	IL_004c:  ldloc.1 
-	IL_004d:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_0052:  ldc.i4.0 
-	IL_0053:  blt IL_0063
-
-	IL_0058:  nop 
-	IL_0059:  ldloc.1 
-	IL_005a:  ldc.i4.s 0x20
-	IL_005c:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_0061:  pop 
-	IL_0062:  nop 
-	IL_0063:  ldloc.1 
-	IL_0064:  ldstr "\"{0}\" {1}"
-	IL_0069:  ldarg.0 
-	IL_006a:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
-	IL_006f:  ldarg.0 
-	IL_0070:  call instance string class NAnt.Core.Tasks.ExternalProgramBase::get_CommandLine()
-	IL_0075:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object, object)
-	IL_007a:  pop 
-	IL_007b:  ldarg.1 
-	IL_007c:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_0081:  ldloc.1 
-	IL_0082:  callvirt instance string object::ToString()
-	IL_0087:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_Arguments(string)
-	IL_008c:  nop 
-	IL_008d:  br IL_00b6
-
-	IL_0092:  nop 
-	IL_0093:  ldarg.1 
-	IL_0094:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_0099:  ldarg.0 
-	IL_009a:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
-	IL_009f:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_FileName(string)
-	IL_00a4:  ldarg.1 
-	IL_00a5:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_00aa:  ldarg.0 
-	IL_00ab:  call instance string class NAnt.Core.Tasks.ExternalProgramBase::get_CommandLine()
-	IL_00b0:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_Arguments(string)
-	IL_00b5:  nop 
-	IL_00b6:  ldarg.0 
-	IL_00b7:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_Spawn()
-	IL_00bc:  brtrue IL_00db
-
-	IL_00c1:  nop 
-	IL_00c2:  ldarg.1 
-	IL_00c3:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_00c8:  ldc.i4.1 
-	IL_00c9:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(bool)
-	IL_00ce:  ldarg.1 
-	IL_00cf:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_00d4:  ldc.i4.1 
-	IL_00d5:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(bool)
-	IL_00da:  nop 
-	IL_00db:  ldarg.1 
-	IL_00dc:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_00e1:  ldc.i4.0 
-	IL_00e2:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_UseShellExecute(bool)
-	IL_00e7:  ldarg.1 
-	IL_00e8:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_00ed:  ldarg.0 
-	IL_00ee:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_Spawn()
-	IL_00f3:  ldc.i4.0 
-	IL_00f4:  ceq 
-	IL_00f6:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(bool)
-	IL_00fb:  ldarg.1 
-	IL_00fc:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	IL_0101:  ldarg.0 
-	IL_0102:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
-	IL_0107:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_010c:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
-	IL_0111:  ldloc.0 
-	IL_0112:  brfalse IL_01c2
-
-	IL_0117:  nop 
-	IL_0118:  nop 
-	IL_0119:  ldloc.0 
-	IL_011a:  callvirt instance class NAnt.Core.Types.EnvironmentSet class NAnt.Core.Configuration.ManagedExecutionMode::get_Environment()
-	IL_011f:  callvirt instance class NAnt.Core.Types.EnvironmentVariableCollection class NAnt.Core.Types.EnvironmentSet::get_EnvironmentVariables()
-	IL_0124:  callvirt instance class NAnt.Core.Types.EnvironmentVariableEnumerator class NAnt.Core.Types.EnvironmentVariableCollection::GetEnumerator()
-	IL_0129:  stloc.3 
-	.try { // 0
-	  IL_012a:  br IL_019b
-
-	  IL_012f:  ldloc.3 
-	  IL_0130:  callvirt instance class NAnt.Core.Types.EnvironmentVariable class NAnt.Core.Types.EnvironmentVariableEnumerator::get_Current()
-	  IL_0135:  stloc.2 
-	  IL_0136:  nop 
-	  IL_0137:  ldloc.2 
-	  IL_0138:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_IfDefined()
-	  IL_013d:  brfalse IL_019a
-
-	  IL_0142:  ldloc.2 
-	  IL_0143:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_UnlessDefined()
-	  IL_0148:  brtrue IL_019a
-
-	  IL_014d:  nop 
-	  IL_014e:  ldloc.2 
-	  IL_014f:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_Value()
-	  IL_0154:  brtrue IL_017b
-
-	  IL_0159:  nop 
-	  IL_015a:  ldarg.1 
-	  IL_015b:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	  IL_0160:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
-	  IL_0165:  ldloc.2 
-	  IL_0166:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_VariableName()
-	  IL_016b:  ldstr ""
-	  IL_0170:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::set_Item(string, string)
-	  IL_0175:  nop 
-	  IL_0176:  br IL_0199
-
-	  IL_017b:  nop 
-	  IL_017c:  ldarg.1 
-	  IL_017d:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	  IL_0182:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
-	  IL_0187:  ldloc.2 
-	  IL_0188:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_VariableName()
-	  IL_018d:  ldloc.2 
-	  IL_018e:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_Value()
-	  IL_0193:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::set_Item(string, string)
-	  IL_0198:  nop 
-	  IL_0199:  nop 
-	  IL_019a:  nop 
-	  IL_019b:  ldloc.3 
-	  IL_019c:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariableEnumerator::MoveNext()
-	  IL_01a1:  brtrue IL_012f
-
-	  IL_01a6:  leave IL_01c1
-
-	} // end .try 0
-	finally  { // 0
-	  IL_01ab:  ldloc.3 
-	  IL_01ac:  isinst [mscorlib]System.IDisposable
-	  IL_01b1:  dup 
-	  IL_01b2:  stloc.s 4
-	  IL_01b4:  brfalse IL_01c0
-
-	  IL_01b9:  ldloc.s 4
-	  IL_01bb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01c0:  endfinally 
-	} // end handler 0
-	IL_01c1:  nop 
-	IL_01c2:  ret 
-    } // end of method ExternalProgramBase::PrepareProcess
-
-    // method line 1225
-    .method family virtual hidebysig newslot 
-           instance default class [System]System.Diagnostics.Process StartProcess ()  cil managed 
-    {
-        // Method begins at RVA 0xecf8
-	// Code size 154 (0x9a)
-	.maxstack 5
-	.locals init (
-		class [System]System.Diagnostics.Process	V_0,
-		string	V_1,
-		class [System]System.Diagnostics.Process	V_2,
-		class [mscorlib]System.Exception	V_3)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.Diagnostics.Process::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  callvirt instance void class NAnt.Core.Tasks.ExternalProgramBase::PrepareProcess(class [System]System.Diagnostics.Process)
-	.try { // 0
-	  IL_000e:  nop 
-	  IL_000f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0014:  ldstr "String_Starting_Program"
-	  IL_0019:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_001e:  ldloc.0 
-	  IL_001f:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	  IL_0024:  callvirt instance string class [System]System.Diagnostics.ProcessStartInfo::get_WorkingDirectory()
-	  IL_0029:  ldloc.0 
-	  IL_002a:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	  IL_002f:  callvirt instance string class [System]System.Diagnostics.ProcessStartInfo::get_FileName()
-	  IL_0034:  ldloc.0 
-	  IL_0035:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	  IL_003a:  callvirt instance string class [System]System.Diagnostics.ProcessStartInfo::get_Arguments()
-	  IL_003f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_0044:  stloc.1 
-	  IL_0045:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.ExternalProgramBase::logger
-	  IL_004a:  ldloc.1 
-	  IL_004b:  callvirt instance void class [log4net]log4net.ILog::Info(object)
-	  IL_0050:  ldarg.0 
-	  IL_0051:  ldc.i4 2000
-	  IL_0056:  ldloc.1 
-	  IL_0057:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	  IL_005c:  ldloc.0 
-	  IL_005d:  callvirt instance bool class [System]System.Diagnostics.Process::Start()
-	  IL_0062:  pop 
-	  IL_0063:  ldloc.0 
-	  IL_0064:  stloc.2 
-	  IL_0065:  leave IL_0098
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_006a:  stloc.3 
-	  IL_006b:  nop 
-	  IL_006c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0071:  ldstr "NA1121"
-	  IL_0076:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_007b:  ldloc.0 
-	  IL_007c:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
-	  IL_0081:  callvirt instance string class [System]System.Diagnostics.ProcessStartInfo::get_FileName()
-	  IL_0086:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_008b:  ldarg.0 
-	  IL_008c:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0091:  ldloc.3 
-	  IL_0092:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0097:  throw 
-	} // end handler 0
-	IL_0098:  ldloc.2 
-	IL_0099:  ret 
-    } // end of method ExternalProgramBase::StartProcess
-
-    // method line 1226
-    .method private hidebysig 
-           instance default void StreamReaderThread_Output ()  cil managed 
-    {
-        // Method begins at RVA 0xedb0
-	// Code size 195 (0xc3)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.IO.StreamReader	V_0,
-		bool	V_1,
-		string	V_2,
-		object	V_3,
-		bool	V_4,
-		class [mscorlib]System.IO.StreamWriter	V_5,
-		object	V_6,
-		bool	V_7)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.StreamReader NAnt.Core.Tasks.ExternalProgramBase::_stdOut
-	IL_0007:  stloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_OutputAppend()
-	IL_000e:  stloc.1 
-	IL_000f:  nop 
-	IL_0010:  nop 
-	IL_0011:  ldloc.0 
-	IL_0012:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	IL_0017:  stloc.2 
-	IL_0018:  ldloc.2 
-	IL_0019:  brtrue IL_0024
-
-	IL_001e:  nop 
-	IL_001f:  br IL_0091
-
-	IL_0024:  ldsfld object NAnt.Core.Tasks.ExternalProgramBase::_lockObject
-	IL_0029:  stloc.3 
-	IL_002a:  ldc.i4.0 
-	IL_002b:  stloc.s 4
-	.try { // 0
-	  IL_002d:  ldloc.3 
-	  IL_002e:  ldloca.s 4
-	  IL_0030:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
-	  IL_0035:  nop 
-	  IL_0036:  ldarg.0 
-	  IL_0037:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.ExternalProgramBase::get_Output()
-	  IL_003c:  brfalse IL_006c
-
-	  IL_0041:  nop 
-	  IL_0042:  ldarg.0 
-	  IL_0043:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.ExternalProgramBase::get_Output()
-	  IL_0048:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_004d:  ldloc.1 
-	  IL_004e:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string, bool)
-	  IL_0053:  stloc.s 5
-	  IL_0055:  ldloc.s 5
-	  IL_0057:  ldloc.2 
-	  IL_0058:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_005d:  ldc.i4.1 
-	  IL_005e:  stloc.1 
-	  IL_005f:  ldloc.s 5
-	  IL_0061:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
-	  IL_0066:  nop 
-	  IL_0067:  br IL_007a
-
-	  IL_006c:  nop 
-	  IL_006d:  ldarg.0 
-	  IL_006e:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.Tasks.ExternalProgramBase::get_OutputWriter()
-	  IL_0073:  ldloc.2 
-	  IL_0074:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_0079:  nop 
-	  IL_007a:  nop 
-	  IL_007b:  leave IL_008b
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0080:  ldloc.s 4
-	  IL_0082:  brfalse.s IL_008a
-
-	  IL_0084:  ldloc.3 
-	  IL_0085:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_008a:  endfinally 
-	} // end handler 0
-	IL_008b:  nop 
-	IL_008c:  br IL_000f
-
-	IL_0091:  ldsfld object NAnt.Core.Tasks.ExternalProgramBase::_lockObject
-	IL_0096:  stloc.s 6
-	IL_0098:  ldc.i4.0 
-	IL_0099:  stloc.s 7
-	.try { // 1
-	  IL_009b:  ldloc.s 6
-	  IL_009d:  ldloca.s 7
-	  IL_009f:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
-	  IL_00a4:  nop 
-	  IL_00a5:  ldarg.0 
-	  IL_00a6:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.Tasks.ExternalProgramBase::get_OutputWriter()
-	  IL_00ab:  callvirt instance void class [mscorlib]System.IO.TextWriter::Flush()
-	  IL_00b0:  nop 
-	  IL_00b1:  leave IL_00c2
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00b6:  ldloc.s 7
-	  IL_00b8:  brfalse.s IL_00c1
-
-	  IL_00ba:  ldloc.s 6
-	  IL_00bc:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_00c1:  endfinally 
-	} // end handler 1
-	IL_00c2:  ret 
-    } // end of method ExternalProgramBase::StreamReaderThread_Output
-
-    // method line 1227
-    .method private hidebysig 
-           instance default void StreamReaderThread_Error ()  cil managed 
-    {
-        // Method begins at RVA 0xee9c
-	// Code size 188 (0xbc)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.IO.StreamReader	V_0,
-		bool	V_1,
-		string	V_2,
-		object	V_3,
-		bool	V_4,
-		class [mscorlib]System.IO.StreamWriter	V_5,
-		object	V_6,
-		bool	V_7)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.StreamReader NAnt.Core.Tasks.ExternalProgramBase::_stdError
-	IL_0007:  stloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_OutputAppend()
-	IL_000e:  stloc.1 
-	IL_000f:  nop 
-	IL_0010:  nop 
-	IL_0011:  ldloc.0 
-	IL_0012:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	IL_0017:  stloc.2 
-	IL_0018:  ldloc.2 
-	IL_0019:  brtrue IL_0024
-
-	IL_001e:  nop 
-	IL_001f:  br IL_008a
-
-	IL_0024:  ldsfld object NAnt.Core.Tasks.ExternalProgramBase::_lockObject
-	IL_0029:  stloc.3 
-	IL_002a:  ldc.i4.0 
-	IL_002b:  stloc.s 4
-	.try { // 0
-	  IL_002d:  ldloc.3 
-	  IL_002e:  ldloca.s 4
-	  IL_0030:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
-	  IL_0035:  nop 
-	  IL_0036:  ldarg.0 
-	  IL_0037:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.Tasks.ExternalProgramBase::get_ErrorWriter()
-	  IL_003c:  ldloc.2 
-	  IL_003d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_0042:  ldarg.0 
-	  IL_0043:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.ExternalProgramBase::get_Output()
-	  IL_0048:  brfalse IL_0073
-
-	  IL_004d:  nop 
-	  IL_004e:  ldarg.0 
-	  IL_004f:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.ExternalProgramBase::get_Output()
-	  IL_0054:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0059:  ldloc.1 
-	  IL_005a:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string, bool)
-	  IL_005f:  stloc.s 5
-	  IL_0061:  ldloc.s 5
-	  IL_0063:  ldloc.2 
-	  IL_0064:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_0069:  ldc.i4.1 
-	  IL_006a:  stloc.1 
-	  IL_006b:  ldloc.s 5
-	  IL_006d:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
-	  IL_0072:  nop 
-	  IL_0073:  nop 
-	  IL_0074:  leave IL_0084
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0079:  ldloc.s 4
-	  IL_007b:  brfalse.s IL_0083
-
-	  IL_007d:  ldloc.3 
-	  IL_007e:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_0083:  endfinally 
-	} // end handler 0
-	IL_0084:  nop 
-	IL_0085:  br IL_000f
-
-	IL_008a:  ldsfld object NAnt.Core.Tasks.ExternalProgramBase::_lockObject
-	IL_008f:  stloc.s 6
-	IL_0091:  ldc.i4.0 
-	IL_0092:  stloc.s 7
-	.try { // 1
-	  IL_0094:  ldloc.s 6
-	  IL_0096:  ldloca.s 7
-	  IL_0098:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
-	  IL_009d:  nop 
-	  IL_009e:  ldarg.0 
-	  IL_009f:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.Tasks.ExternalProgramBase::get_ErrorWriter()
-	  IL_00a4:  callvirt instance void class [mscorlib]System.IO.TextWriter::Flush()
-	  IL_00a9:  nop 
-	  IL_00aa:  leave IL_00bb
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00af:  ldloc.s 7
-	  IL_00b1:  brfalse.s IL_00ba
-
-	  IL_00b3:  ldloc.s 6
-	  IL_00b5:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_00ba:  endfinally 
-	} // end handler 1
-	IL_00bb:  ret 
-    } // end of method ExternalProgramBase::StreamReaderThread_Error
-
-    // method line 1228
-    .method private hidebysig 
-           instance default string DetermineFilePath ()  cil managed 
-    {
-        // Method begins at RVA 0xef80
-	// Code size 517 (0x205)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		string	V_1,
-		class NAnt.Core.Attributes.ProgramLocationAttribute	V_2,
-		valuetype NAnt.Core.Attributes.LocationType	V_3,
-		string	V_4,
-		string	V_5,
-		string	V_6)
-	IL_0000:  nop 
-	IL_0001:  ldstr ""
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ExeName()
-	IL_000d:  brfalse IL_002f
-
-	IL_0012:  ldarg.0 
-	IL_0013:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ExeName()
-	IL_0018:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	IL_001d:  brfalse IL_002f
-
-	IL_0022:  nop 
-	IL_0023:  ldarg.0 
-	IL_0024:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ExeName()
-	IL_0029:  stloc.1 
-	IL_002a:  br IL_0203
-
-	IL_002f:  ldarg.0 
-	IL_0030:  call instance class [mscorlib]System.Type object::GetType()
-	IL_0035:  ldtoken NAnt.Core.Attributes.ProgramLocationAttribute
-	IL_003a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_003f:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	IL_0044:  castclass NAnt.Core.Attributes.ProgramLocationAttribute
-	IL_0049:  stloc.2 
-	IL_004a:  ldloc.2 
-	IL_004b:  brfalse IL_01f3
-
-	IL_0050:  nop 
-	IL_0051:  ldloc.2 
-	IL_0052:  callvirt instance valuetype NAnt.Core.Attributes.LocationType class NAnt.Core.Attributes.ProgramLocationAttribute::get_LocationType()
-	IL_0057:  brfalse IL_0068
-
-	IL_005c:  ldloc.2 
-	IL_005d:  callvirt instance valuetype NAnt.Core.Attributes.LocationType class NAnt.Core.Attributes.ProgramLocationAttribute::get_LocationType()
-	IL_0062:  ldc.i4.1 
-	IL_0063:  bne.un IL_00a3
-
-	IL_0068:  ldarg.0 
-	IL_0069:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_006e:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_0073:  brtrue IL_00a3
-
-	IL_0078:  nop 
-	IL_0079:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_007e:  ldstr "NA1120"
-	IL_0083:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0088:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_008d:  call string string::Concat(string, string)
-	IL_0092:  ldarg.0 
-	IL_0093:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_0098:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_009d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_00a2:  throw 
-	IL_00a3:  ldloc.2 
-	IL_00a4:  callvirt instance valuetype NAnt.Core.Attributes.LocationType class NAnt.Core.Attributes.ProgramLocationAttribute::get_LocationType()
-	IL_00a9:  stloc.3 
-	IL_00aa:  ldloc.3 
-	IL_00ab:  brfalse IL_00bc
-
-	IL_00b0:  ldloc.3 
-	IL_00b1:  ldc.i4.1 
-	IL_00b2:  beq IL_0137
-
-	IL_00b7:  br IL_01b2
-
-	IL_00bc:  ldarg.0 
-	IL_00bd:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_00c2:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_00c7:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
-	IL_00cc:  brfalse IL_0107
-
-	IL_00d1:  nop 
-	IL_00d2:  ldarg.0 
-	IL_00d3:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_00d8:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_00dd:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
-	IL_00e2:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00e7:  stloc.s 4
-	IL_00e9:  ldloc.s 4
-	IL_00eb:  ldarg.0 
-	IL_00ec:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ExeName()
-	IL_00f1:  ldstr ".exe"
-	IL_00f6:  call string string::Concat(string, string)
-	IL_00fb:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0100:  stloc.0 
-	IL_0101:  nop 
-	IL_0102:  br IL_0132
-
-	IL_0107:  nop 
-	IL_0108:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_010d:  ldstr "NA1124"
-	IL_0112:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0117:  ldarg.0 
-	IL_0118:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_011d:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_0122:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	IL_0127:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_012c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_0131:  throw 
-	IL_0132:  br IL_01b2
-
-	IL_0137:  ldarg.0 
-	IL_0138:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_013d:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_0142:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
-	IL_0147:  brfalse IL_0182
-
-	IL_014c:  nop 
-	IL_014d:  ldarg.0 
-	IL_014e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0153:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_0158:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
-	IL_015d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0162:  stloc.s 5
-	IL_0164:  ldloc.s 5
-	IL_0166:  ldarg.0 
-	IL_0167:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ExeName()
-	IL_016c:  ldstr ".exe"
-	IL_0171:  call string string::Concat(string, string)
-	IL_0176:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_017b:  stloc.0 
-	IL_017c:  nop 
-	IL_017d:  br IL_01ad
-
-	IL_0182:  nop 
-	IL_0183:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0188:  ldstr "NA1122"
-	IL_018d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0192:  ldarg.0 
-	IL_0193:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0198:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_019d:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	IL_01a2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_01a7:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_01ac:  throw 
-	IL_01ad:  br IL_01b2
-
-	IL_01b2:  ldloc.0 
-	IL_01b3:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_01b8:  brtrue IL_01ed
-
-	IL_01bd:  nop 
-	IL_01be:  ldarg.0 
-	IL_01bf:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_01c4:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_01c9:  ldarg.0 
-	IL_01ca:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ExeName()
-	IL_01cf:  ldstr ".exe"
-	IL_01d4:  call string string::Concat(string, string)
-	IL_01d9:  callvirt instance string class NAnt.Core.FrameworkInfo::GetToolPath(string)
-	IL_01de:  stloc.s 6
-	IL_01e0:  ldloc.s 6
-	IL_01e2:  brfalse IL_01ec
-
-	IL_01e7:  nop 
-	IL_01e8:  ldloc.s 6
-	IL_01ea:  stloc.0 
-	IL_01eb:  nop 
-	IL_01ec:  nop 
-	IL_01ed:  nop 
-	IL_01ee:  br IL_01fc
-
-	IL_01f3:  nop 
-	IL_01f4:  ldarg.0 
-	IL_01f5:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ExeName()
-	IL_01fa:  stloc.0 
-	IL_01fb:  nop 
-	IL_01fc:  ldloc.0 
-	IL_01fd:  stloc.1 
-	IL_01fe:  br IL_0203
-
-	IL_0203:  ldloc.1 
-	IL_0204:  ret 
-    } // end of method ExternalProgramBase::DetermineFilePath
-
-    // method line 1229
-    .method private hidebysig specialname 
-           instance default class NAnt.Core.Configuration.ManagedExecutionMode get_ManagedExecutionMode ()  cil managed 
-    {
-        // Method begins at RVA 0xf194
-	// Code size 92 (0x5c)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Configuration.ManagedExecutionMode	V_0,
-		class NAnt.Core.Configuration.Runtime	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_000c:  brfalse IL_001c
-
-	IL_0011:  ldarg.0 
-	IL_0012:  callvirt instance valuetype NAnt.Core.Types.ManagedExecution class NAnt.Core.Tasks.ExternalProgramBase::get_Managed()
-	IL_0017:  brtrue IL_0024
-
-	IL_001c:  nop 
-	IL_001d:  ldnull 
-	IL_001e:  stloc.0 
-	IL_001f:  br IL_005a
-
-	IL_0024:  ldarg.0 
-	IL_0025:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_002a:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_002f:  callvirt instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
-	IL_0034:  stloc.1 
-	IL_0035:  ldloc.1 
-	IL_0036:  brfalse IL_0053
-
-	IL_003b:  nop 
-	IL_003c:  ldloc.1 
-	IL_003d:  callvirt instance class NAnt.Core.Configuration.ManagedExecutionModes class NAnt.Core.Configuration.Runtime::get_Modes()
-	IL_0042:  ldarg.0 
-	IL_0043:  callvirt instance valuetype NAnt.Core.Types.ManagedExecution class NAnt.Core.Tasks.ExternalProgramBase::get_Managed()
-	IL_0048:  callvirt instance class NAnt.Core.Configuration.ManagedExecutionMode class NAnt.Core.Configuration.ManagedExecutionModes::GetExecutionMode(valuetype NAnt.Core.Types.ManagedExecution)
-	IL_004d:  stloc.0 
-	IL_004e:  br IL_005a
-
-	IL_0053:  ldnull 
-	IL_0054:  stloc.0 
-	IL_0055:  br IL_005a
-
-	IL_005a:  ldloc.0 
-	IL_005b:  ret 
-    } // end of method ExternalProgramBase::get_ManagedExecutionMode
-
-    // method line 1230
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xf1fc
-	// Code size 31 (0x1f)
-	.maxstack 8
-	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
-	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
-	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.Tasks.ExternalProgramBase::logger
-	IL_0014:  newobj instance void object::'.ctor'()
-	IL_0019:  stsfld object NAnt.Core.Tasks.ExternalProgramBase::_lockObject
-	IL_001e:  ret 
-    } // end of method ExternalProgramBase::.cctor
-
-	.property instance string ExeName ()
-	{
-		.custom instance void class NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (01 00 07 65 78 65 6E 61 6D 65 00 00 ) // ...exename..
-
-		.get instance default string NAnt.Core.Tasks.ExternalProgramBase::get_ExeName () 
-		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_ExeName (string 'value') 
-	}
-	.property instance string ProgramFileName ()
-	{
-		.get instance default string NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName () 
-	}
-	.property instance string ProgramArguments ()
-	{
-		.get instance default string NAnt.Core.Tasks.ExternalProgramBase::get_ProgramArguments () 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo Output ()
-	{
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.ExternalProgramBase::get_Output () 
-		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_Output (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance bool OutputAppend ()
-	{
-		.get instance default bool NAnt.Core.Tasks.ExternalProgramBase::get_OutputAppend () 
-		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_OutputAppend (bool 'value') 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory () 
-		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance int32 TimeOut ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 74 69 6D 65 6F 75 74 00 00 ) // ...timeout..
-
-		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default int32 NAnt.Core.Tasks.ExternalProgramBase::get_TimeOut () 
-		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_TimeOut (int32 'value') 
+		.get instance default string NAnt.Core.Tasks.EchoTask::get_Contents () 
+		.set instance default void NAnt.Core.Tasks.EchoTask::set_Contents (string 'value') 
 	}
-	.property instance class NAnt.Core.Types.ArgumentCollection Arguments ()
+	.property instance class [mscorlib]System.IO.FileInfo File ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 03 61 72 67 00 00 ) // ...arg..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
 
-		.get instance default class NAnt.Core.Types.ArgumentCollection NAnt.Core.Tasks.ExternalProgramBase::get_Arguments () 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.EchoTask::get_File () 
+		.set instance default void NAnt.Core.Tasks.EchoTask::set_File (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance bool UseRuntimeEngine ()
+	.property instance bool Append ()
 	{
-		.custom instance void class NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 10 75 73 65 72 75 6E 74 69 6D 65 65 6E 67   // ...useruntimeeng
-		69 6E 65 00 00                                  ) // ine..
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 37 55 73 65 20 74 68 65 20 6D 61 6E 61 67   // ..7Use the manag
-		65 64 20 61 74 74 72 69 62 75 74 65 20 61 6E 64   // ed attribute and
-		20 4D 61 6E 61 67 65 64 20 70 72 6F 70 65 72 74   //  Managed propert
-		79 20 69 6E 73 74 65 61 64 2E 00 00 00          ) // y instead....
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 61 70 70 65 6E 64 00 00 ) // ...append..
 
-		.get instance default bool NAnt.Core.Tasks.ExternalProgramBase::get_UseRuntimeEngine () 
-		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_UseRuntimeEngine (bool 'value') 
+		.get instance default bool NAnt.Core.Tasks.EchoTask::get_Append () 
+		.set instance default void NAnt.Core.Tasks.EchoTask::set_Append (bool 'value') 
 	}
-	.property instance valuetype NAnt.Core.Types.ManagedExecution Managed ()
+	.property instance valuetype NAnt.Core.Level MessageLevel ()
 	{
-		.custom instance void class NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (01 00 07 6D 61 6E 61 67 65 64 00 00 ) // ...managed..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 6C 65 76 65 6C 00 00 ) // ...level..
 
-		.get instance default valuetype NAnt.Core.Types.ManagedExecution NAnt.Core.Tasks.ExternalProgramBase::get_Managed () 
-		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_Managed (valuetype NAnt.Core.Types.ManagedExecution 'value') 
-	}
-	.property instance class [mscorlib]System.IO.TextWriter OutputWriter ()
-	{
-		.get instance default class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::get_OutputWriter () 
-		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value') 
-	}
-	.property instance class [mscorlib]System.IO.TextWriter ErrorWriter ()
-	{
-		.get instance default class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::get_ErrorWriter () 
-		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_ErrorWriter (class [mscorlib]System.IO.TextWriter 'value') 
-	}
-	.property instance int32 ExitCode ()
-	{
-		.get instance default int32 NAnt.Core.Tasks.ExternalProgramBase::get_ExitCode () 
-	}
-	.property instance int32 ProcessId ()
-	{
-		.get instance default int32 NAnt.Core.Tasks.ExternalProgramBase::get_ProcessId () 
-	}
-	.property instance bool Spawn ()
-	{
-		.get instance default bool NAnt.Core.Tasks.ExternalProgramBase::get_Spawn () 
-		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_Spawn (bool 'value') 
-	}
-	.property instance string CommandLine ()
-	{
-		.get instance default string NAnt.Core.Tasks.ExternalProgramBase::get_CommandLine () 
-	}
-	.property instance class NAnt.Core.Configuration.ManagedExecutionMode ManagedExecutionMode ()
-	{
-		.get instance default class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Tasks.ExternalProgramBase::get_ManagedExecutionMode () 
+		.get instance default valuetype NAnt.Core.Level NAnt.Core.Tasks.EchoTask::get_MessageLevel () 
+		.set instance default void NAnt.Core.Tasks.EchoTask::set_MessageLevel (valuetype NAnt.Core.Level 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.ExternalProgramBase
+  } // end of class NAnt.Core.Tasks.EchoTask
 }
 
 .namespace NAnt.Core.Tasks
@@ -42548,11 +36267,11 @@
     .field  private  class NAnt.Core.Types.FileSet _fileset
     .field  private  bool _includeEmptyDirs
 
-    // method line 1231
+    // method line 1132
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x16b23
+        // Method begins at RVA 0x141e3
 	// Code size 25 (0x19)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -42566,11 +36285,11 @@
 	IL_0018:  ret 
     } // end of method DeleteTask::.ctor
 
-    // method line 1232
+    // method line 1133
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0x16b40
+        // Method begins at RVA 0x14200
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -42585,11 +36304,11 @@
 	IL_000e:  ret 
     } // end of method DeleteTask::get_File
 
-    // method line 1233
+    // method line 1134
     .method public hidebysig specialname 
            instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x16b5b
+        // Method begins at RVA 0x1421b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -42599,11 +36318,11 @@
 	IL_0008:  ret 
     } // end of method DeleteTask::set_File
 
-    // method line 1234
+    // method line 1135
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_Directory ()  cil managed 
     {
-        // Method begins at RVA 0x16b68
+        // Method begins at RVA 0x14228
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -42618,11 +36337,11 @@
 	IL_000e:  ret 
     } // end of method DeleteTask::get_Directory
 
-    // method line 1235
+    // method line 1136
     .method public hidebysig specialname 
            instance default void set_Directory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x16b83
+        // Method begins at RVA 0x14243
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -42632,11 +36351,11 @@
 	IL_0008:  ret 
     } // end of method DeleteTask::set_Directory
 
-    // method line 1236
+    // method line 1137
     .method public hidebysig specialname 
            instance default bool get_IncludeEmptyDirs ()  cil managed 
     {
-        // Method begins at RVA 0x16b90
+        // Method begins at RVA 0x14250
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -42651,11 +36370,11 @@
 	IL_000e:  ret 
     } // end of method DeleteTask::get_IncludeEmptyDirs
 
-    // method line 1237
+    // method line 1138
     .method public hidebysig specialname 
            instance default void set_IncludeEmptyDirs (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x16bab
+        // Method begins at RVA 0x1426b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -42665,11 +36384,11 @@
 	IL_0008:  ret 
     } // end of method DeleteTask::set_IncludeEmptyDirs
 
-    // method line 1238
+    // method line 1139
     .method public hidebysig specialname 
            instance default class NAnt.Core.Types.FileSet get_DeleteFileSet ()  cil managed 
     {
-        // Method begins at RVA 0x16bb8
+        // Method begins at RVA 0x14278
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -42684,11 +36403,11 @@
 	IL_000e:  ret 
     } // end of method DeleteTask::get_DeleteFileSet
 
-    // method line 1239
+    // method line 1140
     .method public hidebysig specialname 
            instance default void set_DeleteFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x16bd3
+        // Method begins at RVA 0x14293
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -42698,11 +36417,11 @@
 	IL_0008:  ret 
     } // end of method DeleteTask::set_DeleteFileSet
 
-    // method line 1240
+    // method line 1141
     .method public virtual hidebysig specialname 
            instance default bool get_Verbose ()  cil managed 
     {
-        // Method begins at RVA 0x16be0
+        // Method begins at RVA 0x142a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -42717,11 +36436,11 @@
 	IL_000e:  ret 
     } // end of method DeleteTask::get_Verbose
 
-    // method line 1241
+    // method line 1142
     .method public virtual hidebysig specialname 
            instance default void set_Verbose (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x16bfb
+        // Method begins at RVA 0x142bb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -42731,11 +36450,11 @@
 	IL_0008:  ret 
     } // end of method DeleteTask::set_Verbose
 
-    // method line 1242
+    // method line 1143
     .method family virtual hidebysig 
            instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x16c08
+        // Method begins at RVA 0x142c8
 	// Code size 103 (0x67)
 	.maxstack 2
 	IL_0000:  nop 
@@ -42776,11 +36495,11 @@
 	IL_0066:  ret 
     } // end of method DeleteTask::Initialize
 
-    // method line 1243
+    // method line 1144
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x16c7c
+        // Method begins at RVA 0x1433c
 	// Code size 631 (0x277)
 	.maxstack 7
 	.locals init (
@@ -43049,11 +36768,11 @@
 	IL_0276:  ret 
     } // end of method DeleteTask::ExecuteTask
 
-    // method line 1244
+    // method line 1145
     .method private hidebysig 
            instance default void RecursiveDeleteDirectory (string path)  cil managed 
     {
-        // Method begins at RVA 0x16f28
+        // Method begins at RVA 0x145e8
 	// Code size 363 (0x16b)
 	.maxstack 7
 	.locals init (
@@ -43236,11 +36955,11 @@
 	IL_016a:  ret 
     } // end of method DeleteTask::RecursiveDeleteDirectory
 
-    // method line 1245
+    // method line 1146
     .method private hidebysig 
            instance default void DeleteFile (string path, bool verbose)  cil managed 
     {
-        // Method begins at RVA 0x170ec
+        // Method begins at RVA 0x147ac
 	// Code size 191 (0xbf)
 	.maxstack 7
 	.locals init (
@@ -43327,11 +37046,11 @@
 	IL_00be:  ret 
     } // end of method DeleteTask::DeleteFile
 
-    // method line 1246
+    // method line 1147
     .method private hidebysig 
            instance default void DeleteDirectory (string path)  cil managed 
     {
-        // Method begins at RVA 0x171c8
+        // Method begins at RVA 0x14888
 	// Code size 45 (0x2d)
 	.maxstack 8
 	IL_0000:  nop 
@@ -43399,27517 +37118,21583 @@
 
 .namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit EchoTask
+  .class public auto ansi beforefieldinit FailTask
   	extends NAnt.Core.Task
   {
-    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 65 63 68 6F 00 00 ) // ...echo..
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 66 61 69 6C 00 00 ) // ...fail..
 
     .field  private  string _message
     .field  private  string _contents
-    .field  private  class [mscorlib]System.IO.FileInfo _file
-    .field  private  bool _append
-    .field  private  valuetype NAnt.Core.Level _messageLevel
-    .field  private  class [mscorlib]System.Text.Encoding _encoding
 
-    // method line 1247
+    // method line 1148
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x171f6
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x148b6
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4 3000
-	IL_0006:  stfld valuetype NAnt.Core.Level NAnt.Core.Tasks.EchoTask::_messageLevel
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0011:  ret 
-    } // end of method EchoTask::.ctor
-
-    // method line 1248
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
-    {
-        // Method begins at RVA 0x1720c
-	// Code size 37 (0x25)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Text.Encoding	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.EchoTask::_encoding
-	IL_0007:  brtrue IL_0017
-
-	IL_000c:  newobj instance void class [mscorlib]System.Text.UTF8Encoding::'.ctor'()
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0023
-
-	IL_0017:  ldarg.0 
-	IL_0018:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.EchoTask::_encoding
-	IL_001d:  stloc.0 
-	IL_001e:  br IL_0023
-
-	IL_0023:  ldloc.0 
-	IL_0024:  ret 
-    } // end of method EchoTask::get_Encoding
-
-    // method line 1249
-    .method public hidebysig specialname 
-           instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1723d
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.EchoTask::_encoding
-	IL_0008:  ret 
-    } // end of method EchoTask::set_Encoding
+	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0006:  ret 
+    } // end of method FailTask::.ctor
 
-    // method line 1250
+    // method line 1149
     .method public hidebysig specialname 
            instance default string get_Message ()  cil managed 
     {
-        // Method begins at RVA 0x17248
+        // Method begins at RVA 0x148c0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.EchoTask::_message
+	IL_0002:  ldfld string NAnt.Core.Tasks.FailTask::_message
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method EchoTask::get_Message
+    } // end of method FailTask::get_Message
 
-    // method line 1251
+    // method line 1150
     .method public hidebysig specialname 
            instance default void set_Message (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x17264
-	// Code size 79 (0x4f)
+        // Method begins at RVA 0x148dc
+	// Code size 72 (0x48)
 	.maxstack 2
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0045
+	IL_0002:  call bool string::IsNullOrEmpty(string)
+	IL_0007:  brtrue IL_003e
 
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string string::Trim()
-	IL_000d:  callvirt instance int32 string::get_Length()
-	IL_0012:  ldc.i4.0 
-	IL_0013:  ble IL_0045
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance string class NAnt.Core.Tasks.FailTask::get_Contents()
+	IL_0013:  call bool string::IsNullOrEmpty(string)
+	IL_0018:  brtrue IL_002f
 
-	IL_0018:  nop 
-	IL_0019:  ldarg.0 
-	IL_001a:  call instance string class NAnt.Core.Tasks.EchoTask::get_Contents()
-	IL_001f:  brfalse IL_0036
+	IL_001d:  nop 
+	IL_001e:  ldstr "Inline content and the message attribute are mutually exclusive in the <fail> task."
+	IL_0023:  ldarg.0 
+	IL_0024:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0029:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class NAnt.Core.Location)
+	IL_002e:  throw 
+	IL_002f:  nop 
+	IL_0030:  ldarg.0 
+	IL_0031:  ldarg.1 
+	IL_0032:  stfld string NAnt.Core.Tasks.FailTask::_message
+	IL_0037:  nop 
+	IL_0038:  nop 
+	IL_0039:  br IL_0047
 
-	IL_0024:  nop 
-	IL_0025:  ldstr "Inline content and the message attribute are mutually exclusive in the <echo> task."
-	IL_002a:  ldarg.0 
-	IL_002b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0030:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0035:  throw 
-	IL_0036:  nop 
-	IL_0037:  ldarg.0 
-	IL_0038:  ldarg.1 
-	IL_0039:  stfld string NAnt.Core.Tasks.EchoTask::_message
 	IL_003e:  nop 
-	IL_003f:  nop 
-	IL_0040:  br IL_004e
-
-	IL_0045:  nop 
-	IL_0046:  ldarg.0 
-	IL_0047:  ldnull 
-	IL_0048:  stfld string NAnt.Core.Tasks.EchoTask::_message
-	IL_004d:  nop 
-	IL_004e:  ret 
-    } // end of method EchoTask::set_Message
+	IL_003f:  ldarg.0 
+	IL_0040:  ldnull 
+	IL_0041:  stfld string NAnt.Core.Tasks.FailTask::_message
+	IL_0046:  nop 
+	IL_0047:  ret 
+    } // end of method FailTask::set_Message
 
-    // method line 1252
+    // method line 1151
     .method public hidebysig specialname 
            instance default string get_Contents ()  cil managed 
     {
-        // Method begins at RVA 0x172c0
+        // Method begins at RVA 0x14930
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Tasks.EchoTask::_contents
+	IL_0002:  ldfld string NAnt.Core.Tasks.FailTask::_contents
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method EchoTask::get_Contents
+    } // end of method FailTask::get_Contents
 
-    // method line 1253
+    // method line 1152
     .method public hidebysig specialname 
            instance default void set_Contents (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x172dc
-	// Code size 79 (0x4f)
+        // Method begins at RVA 0x1494c
+	// Code size 72 (0x48)
 	.maxstack 2
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0045
+	IL_0002:  call bool string::IsNullOrEmpty(string)
+	IL_0007:  brtrue IL_003e
 
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string string::Trim()
-	IL_000d:  callvirt instance int32 string::get_Length()
-	IL_0012:  ldc.i4.0 
-	IL_0013:  ble IL_0045
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance string class NAnt.Core.Tasks.FailTask::get_Message()
+	IL_0013:  call bool string::IsNullOrEmpty(string)
+	IL_0018:  brtrue IL_002f
 
-	IL_0018:  nop 
-	IL_0019:  ldarg.0 
-	IL_001a:  call instance string class NAnt.Core.Tasks.EchoTask::get_Message()
-	IL_001f:  brfalse IL_0036
+	IL_001d:  nop 
+	IL_001e:  ldstr "Inline content and the message attribute are mutually exclusive in the <fail> task."
+	IL_0023:  ldarg.0 
+	IL_0024:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0029:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class NAnt.Core.Location)
+	IL_002e:  throw 
+	IL_002f:  nop 
+	IL_0030:  ldarg.0 
+	IL_0031:  ldarg.1 
+	IL_0032:  stfld string NAnt.Core.Tasks.FailTask::_contents
+	IL_0037:  nop 
+	IL_0038:  nop 
+	IL_0039:  br IL_0047
 
-	IL_0024:  nop 
-	IL_0025:  ldstr "Inline content and the message attribute are mutually exclusive in the <echo> task."
-	IL_002a:  ldarg.0 
-	IL_002b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0030:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0035:  throw 
-	IL_0036:  nop 
-	IL_0037:  ldarg.0 
-	IL_0038:  ldarg.1 
-	IL_0039:  stfld string NAnt.Core.Tasks.EchoTask::_contents
 	IL_003e:  nop 
-	IL_003f:  nop 
-	IL_0040:  br IL_004e
+	IL_003f:  ldarg.0 
+	IL_0040:  ldnull 
+	IL_0041:  stfld string NAnt.Core.Tasks.FailTask::_contents
+	IL_0046:  nop 
+	IL_0047:  ret 
+    } // end of method FailTask::set_Contents
 
-	IL_0045:  nop 
+    // method line 1153
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x149a0
+	// Code size 82 (0x52)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.Core.Tasks.FailTask::get_Message()
+	IL_0007:  call bool string::IsNullOrEmpty(string)
+	IL_000c:  brtrue IL_001f
+
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance string class NAnt.Core.Tasks.FailTask::get_Message()
+	IL_0018:  stloc.0 
+	IL_0019:  nop 
+	IL_001a:  br IL_0045
+
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance string class NAnt.Core.Tasks.FailTask::get_Contents()
+	IL_0025:  call bool string::IsNullOrEmpty(string)
+	IL_002a:  brtrue IL_003d
+
+	IL_002f:  nop 
+	IL_0030:  ldarg.0 
+	IL_0031:  call instance string class NAnt.Core.Tasks.FailTask::get_Contents()
+	IL_0036:  stloc.0 
+	IL_0037:  nop 
+	IL_0038:  br IL_0045
+
+	IL_003d:  nop 
+	IL_003e:  ldstr "No message."
+	IL_0043:  stloc.0 
+	IL_0044:  nop 
+	IL_0045:  ldloc.0 
 	IL_0046:  ldarg.0 
-	IL_0047:  ldnull 
-	IL_0048:  stfld string NAnt.Core.Tasks.EchoTask::_contents
-	IL_004d:  nop 
-	IL_004e:  ret 
-    } // end of method EchoTask::set_Contents
+	IL_0047:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_004c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0051:  throw 
+    } // end of method FailTask::ExecuteTask
 
-    // method line 1254
+    // method line 1154
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0x149fe
+	// Code size 36 (0x24)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::get_XmlNode()
+	IL_000e:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerText()
+	IL_0013:  ldarg.0 
+	IL_0014:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0019:  callvirt instance string class NAnt.Core.Project::ExpandProperties(string, class NAnt.Core.Location)
+	IL_001e:  call instance void class NAnt.Core.Tasks.FailTask::set_Contents(string)
+	IL_0023:  ret 
+    } // end of method FailTask::Initialize
+
+	.property instance string Message ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6D 65 73 73 61 67 65 00 00 ) // ...message..
+
+		.get instance default string NAnt.Core.Tasks.FailTask::get_Message () 
+		.set instance default void NAnt.Core.Tasks.FailTask::set_Message (string 'value') 
+	}
+	.property instance string Contents ()
+	{
+		.get instance default string NAnt.Core.Tasks.FailTask::get_Contents () 
+		.set instance default void NAnt.Core.Tasks.FailTask::set_Contents (string 'value') 
+	}
+  } // end of class NAnt.Core.Tasks.FailTask
+}
+
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit TryCatchTask
+  	extends NAnt.Core.Task
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 08 74 72 79 63 61 74 63 68 00 00 ) // ...trycatch..
+
+    .field  private  class NAnt.Core.ElementContainer _tryBlock
+    .field  private  class NAnt.Core.Tasks.TryCatchTask/CatchElement _catchBlock
+    .field  private  class NAnt.Core.ElementContainer _finallyBlock
+
+    // method line 1155
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x14a23
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0006:  ret 
+    } // end of method TryCatchTask::.ctor
+
+    // method line 1156
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
+           instance default class NAnt.Core.ElementContainer get_TryBlock ()  cil managed 
     {
-        // Method begins at RVA 0x17338
+        // Method begins at RVA 0x14a2c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		class NAnt.Core.ElementContainer	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.EchoTask::_file
+	IL_0002:  ldfld class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::_tryBlock
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method EchoTask::get_File
+    } // end of method TryCatchTask::get_TryBlock
 
-    // method line 1255
+    // method line 1157
     .method public hidebysig specialname 
-           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_TryBlock (class NAnt.Core.ElementContainer 'value')  cil managed 
     {
-        // Method begins at RVA 0x17353
+        // Method begins at RVA 0x14a47
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.EchoTask::_file
+	IL_0003:  stfld class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::_tryBlock
 	IL_0008:  ret 
-    } // end of method EchoTask::set_File
+    } // end of method TryCatchTask::set_TryBlock
 
-    // method line 1256
+    // method line 1158
     .method public hidebysig specialname 
-           instance default bool get_Append ()  cil managed 
+           instance default class NAnt.Core.Tasks.TryCatchTask/CatchElement get_CatchBlock ()  cil managed 
     {
-        // Method begins at RVA 0x17360
+        // Method begins at RVA 0x14a54
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Tasks.TryCatchTask/CatchElement	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Tasks.EchoTask::_append
+	IL_0002:  ldfld class NAnt.Core.Tasks.TryCatchTask/CatchElement NAnt.Core.Tasks.TryCatchTask::_catchBlock
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method EchoTask::get_Append
+    } // end of method TryCatchTask::get_CatchBlock
 
-    // method line 1257
+    // method line 1159
     .method public hidebysig specialname 
-           instance default void set_Append (bool 'value')  cil managed 
+           instance default void set_CatchBlock (class NAnt.Core.Tasks.TryCatchTask/CatchElement 'value')  cil managed 
     {
-        // Method begins at RVA 0x1737b
+        // Method begins at RVA 0x14a6f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Tasks.EchoTask::_append
+	IL_0003:  stfld class NAnt.Core.Tasks.TryCatchTask/CatchElement NAnt.Core.Tasks.TryCatchTask::_catchBlock
 	IL_0008:  ret 
-    } // end of method EchoTask::set_Append
+    } // end of method TryCatchTask::set_CatchBlock
 
-    // method line 1258
+    // method line 1160
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Level get_MessageLevel ()  cil managed 
+           instance default class NAnt.Core.ElementContainer get_FinallyBlock ()  cil managed 
     {
-        // Method begins at RVA 0x17388
+        // Method begins at RVA 0x14a7c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.Level	V_0)
+		class NAnt.Core.ElementContainer	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.Tasks.EchoTask::_messageLevel
+	IL_0002:  ldfld class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::_finallyBlock
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method EchoTask::get_MessageLevel
+    } // end of method TryCatchTask::get_FinallyBlock
 
-    // method line 1259
+    // method line 1161
     .method public hidebysig specialname 
-           instance default void set_MessageLevel (valuetype NAnt.Core.Level 'value')  cil managed 
+           instance default void set_FinallyBlock (class NAnt.Core.ElementContainer 'value')  cil managed 
     {
-        // Method begins at RVA 0x173a4
-	// Code size 65 (0x41)
-	.maxstack 3
+        // Method begins at RVA 0x14a97
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldtoken NAnt.Core.Level
-	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000b:  ldarg.1 
-	IL_000c:  box NAnt.Core.Level
-	IL_0011:  call bool class [mscorlib]System.Enum::IsDefined(class [mscorlib]System.Type, object)
-	IL_0016:  brtrue IL_0037
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::_finallyBlock
+	IL_0008:  ret 
+    } // end of method TryCatchTask::set_FinallyBlock
 
-	IL_001b:  nop 
-	IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0021:  ldstr "An invalid level {0} was specified."
-	IL_0026:  ldarg.1 
-	IL_0027:  box NAnt.Core.Level
-	IL_002c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0031:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0036:  throw 
-	IL_0037:  nop 
-	IL_0038:  ldarg.0 
-	IL_0039:  ldarg.1 
-	IL_003a:  stfld valuetype NAnt.Core.Level NAnt.Core.Tasks.EchoTask::_messageLevel
-	IL_003f:  nop 
-	IL_0040:  ret 
-    } // end of method EchoTask::set_MessageLevel
-
-    // method line 1260
+    // method line 1162
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x173f4
-	// Code size 335 (0x14f)
-	.maxstack 3
+        // Method begins at RVA 0x14aa4
+	// Code size 101 (0x65)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.StreamWriter	V_0,
-		class [mscorlib]System.Exception	V_1)
+		class NAnt.Core.BuildException	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.EchoTask::get_File()
-	IL_0007:  brfalse IL_00f1
-
-	IL_000c:  nop 
 	.try { // 1
-	  IL_000d:  nop 
-	  IL_000e:  ldarg.0 
-	  IL_000f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.EchoTask::get_File()
-	  IL_0014:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
-	  IL_0019:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_001e:  brtrue IL_0045
-
-	  IL_0023:  nop 
-	  IL_0024:  ldarg.0 
-	  IL_0025:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.EchoTask::get_File()
-	  IL_002a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
-	  IL_002f:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
-	  IL_0034:  ldarg.0 
-	  IL_0035:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.EchoTask::get_File()
-	  IL_003a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
-	  IL_003f:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Refresh()
-	  IL_0044:  nop 
-	  IL_0045:  ldarg.0 
-	  IL_0046:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.EchoTask::get_File()
-	  IL_004b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0050:  ldarg.0 
-	  IL_0051:  call instance bool class NAnt.Core.Tasks.EchoTask::get_Append()
-	  IL_0056:  ldarg.0 
-	  IL_0057:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.EchoTask::get_Encoding()
-	  IL_005c:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string, bool, class [mscorlib]System.Text.Encoding)
-	  IL_0061:  stloc.0 
 	  .try { // 0
-	    IL_0062:  nop 
-	    IL_0063:  ldarg.0 
-	    IL_0064:  call instance string class NAnt.Core.Tasks.EchoTask::get_Message()
-	    IL_0069:  call bool string::IsNullOrEmpty(string)
-	    IL_006e:  brtrue IL_0086
+	    IL_0001:  nop 
+	    IL_0002:  ldarg.0 
+	    IL_0003:  call instance class NAnt.Core.ElementContainer class NAnt.Core.Tasks.TryCatchTask::get_TryBlock()
+	    IL_0008:  brfalse IL_001a
 
-	    IL_0073:  nop 
-	    IL_0074:  ldloc.0 
-	    IL_0075:  ldarg.0 
-	    IL_0076:  call instance string class NAnt.Core.Tasks.EchoTask::get_Message()
-	    IL_007b:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string)
-	    IL_0080:  nop 
-	    IL_0081:  br IL_00a4
+	    IL_000d:  nop 
+	    IL_000e:  ldarg.0 
+	    IL_000f:  call instance class NAnt.Core.ElementContainer class NAnt.Core.Tasks.TryCatchTask::get_TryBlock()
+	    IL_0014:  callvirt instance void class NAnt.Core.ElementContainer::Execute()
+	    IL_0019:  nop 
+	    IL_001a:  nop 
+	    IL_001b:  leave IL_0064
 
-	    IL_0086:  ldarg.0 
-	    IL_0087:  call instance string class NAnt.Core.Tasks.EchoTask::get_Contents()
-	    IL_008c:  call bool string::IsNullOrEmpty(string)
-	    IL_0091:  brtrue IL_00a4
+	  } // end .try 0
+	  catch class NAnt.Core.BuildException { // 0
+	    IL_0020:  stloc.0 
+	    IL_0021:  nop 
+	    IL_0022:  ldarg.0 
+	    IL_0023:  call instance class NAnt.Core.Tasks.TryCatchTask/CatchElement class NAnt.Core.Tasks.TryCatchTask::get_CatchBlock()
+	    IL_0028:  brfalse IL_0040
 
-	    IL_0096:  nop 
-	    IL_0097:  ldloc.0 
-	    IL_0098:  ldarg.0 
-	    IL_0099:  call instance string class NAnt.Core.Tasks.EchoTask::get_Contents()
-	    IL_009e:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string)
-	    IL_00a3:  nop 
-	    IL_00a4:  nop 
-	    IL_00a5:  leave IL_00b7
+	    IL_002d:  nop 
+	    IL_002e:  ldarg.0 
+	    IL_002f:  call instance class NAnt.Core.Tasks.TryCatchTask/CatchElement class NAnt.Core.Tasks.TryCatchTask::get_CatchBlock()
+	    IL_0034:  ldloc.0 
+	    IL_0035:  callvirt instance void class NAnt.Core.Tasks.TryCatchTask/CatchElement::Catch(class NAnt.Core.BuildException)
+	    IL_003a:  nop 
+	    IL_003b:  br IL_0043
 
-	  } // end .try 0
-	  finally  { // 0
-	    IL_00aa:  ldloc.0 
-	    IL_00ab:  brfalse IL_00b6
+	    IL_0040:  nop 
+	    IL_0041:  rethrow 
+	    IL_0043:  nop 
+	    IL_0044:  leave IL_0064
 
-	    IL_00b0:  ldloc.0 
-	    IL_00b1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_00b6:  endfinally 
 	  } // end handler 0
-	  IL_00b7:  nop 
-	  IL_00b8:  leave IL_00eb
-
 	} // end .try 1
-	catch class [mscorlib]System.Exception { // 1
-	  IL_00bd:  stloc.1 
-	  IL_00be:  nop 
-	  IL_00bf:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_00c4:  ldstr "NA1116"
-	  IL_00c9:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_00ce:  ldarg.0 
-	  IL_00cf:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.EchoTask::get_File()
-	  IL_00d4:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_00d9:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_00de:  ldarg.0 
-	  IL_00df:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_00e4:  ldloc.1 
-	  IL_00e5:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_00ea:  throw 
+	finally  { // 1
+	  IL_0049:  nop 
+	  IL_004a:  ldarg.0 
+	  IL_004b:  call instance class NAnt.Core.ElementContainer class NAnt.Core.Tasks.TryCatchTask::get_FinallyBlock()
+	  IL_0050:  brfalse IL_0062
+
+	  IL_0055:  nop 
+	  IL_0056:  ldarg.0 
+	  IL_0057:  call instance class NAnt.Core.ElementContainer class NAnt.Core.Tasks.TryCatchTask::get_FinallyBlock()
+	  IL_005c:  callvirt instance void class NAnt.Core.ElementContainer::Execute()
+	  IL_0061:  nop 
+	  IL_0062:  nop 
+	  IL_0063:  endfinally 
 	} // end handler 1
-	IL_00eb:  nop 
-	IL_00ec:  br IL_014e
+	IL_0064:  ret 
+    } // end of method TryCatchTask::ExecuteTask
 
-	IL_00f1:  nop 
-	IL_00f2:  ldarg.0 
-	IL_00f3:  call instance string class NAnt.Core.Tasks.EchoTask::get_Message()
-	IL_00f8:  brfalse IL_0116
+	.property instance class NAnt.Core.ElementContainer TryBlock ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 03 74 72 79 01 00 54 02 08 52 65 71 75 69   // ...try..T..Requi
+		72 65 64 01                                     ) // red.
 
-	IL_00fd:  nop 
-	IL_00fe:  ldarg.0 
-	IL_00ff:  ldarg.0 
-	IL_0100:  call instance valuetype NAnt.Core.Level class NAnt.Core.Tasks.EchoTask::get_MessageLevel()
-	IL_0105:  ldarg.0 
-	IL_0106:  call instance string class NAnt.Core.Tasks.EchoTask::get_Message()
-	IL_010b:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_0110:  nop 
-	IL_0111:  br IL_014d
+		.get instance default class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::get_TryBlock () 
+		.set instance default void NAnt.Core.Tasks.TryCatchTask::set_TryBlock (class NAnt.Core.ElementContainer 'value') 
+	}
+	.property instance class NAnt.Core.Tasks.TryCatchTask/CatchElement CatchBlock ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 05 63 61 74 63 68 01 00 54 02 08 52 65 71   // ...catch..T..Req
+		75 69 72 65 64 00                               ) // uired.
 
-	IL_0116:  ldarg.0 
-	IL_0117:  call instance string class NAnt.Core.Tasks.EchoTask::get_Contents()
-	IL_011c:  brfalse IL_013a
+		.get instance default class NAnt.Core.Tasks.TryCatchTask/CatchElement NAnt.Core.Tasks.TryCatchTask::get_CatchBlock () 
+		.set instance default void NAnt.Core.Tasks.TryCatchTask::set_CatchBlock (class NAnt.Core.Tasks.TryCatchTask/CatchElement 'value') 
+	}
+	.property instance class NAnt.Core.ElementContainer FinallyBlock ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 07 66 69 6E 61 6C 6C 79 01 00 54 02 08 52   // ...finally..T..R
+		65 71 75 69 72 65 64 00                         ) // equired.
 
-	IL_0121:  nop 
-	IL_0122:  ldarg.0 
-	IL_0123:  ldarg.0 
-	IL_0124:  call instance valuetype NAnt.Core.Level class NAnt.Core.Tasks.EchoTask::get_MessageLevel()
-	IL_0129:  ldarg.0 
-	IL_012a:  call instance string class NAnt.Core.Tasks.EchoTask::get_Contents()
-	IL_012f:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_0134:  nop 
-	IL_0135:  br IL_014d
+		.get instance default class NAnt.Core.ElementContainer NAnt.Core.Tasks.TryCatchTask::get_FinallyBlock () 
+		.set instance default void NAnt.Core.Tasks.TryCatchTask::set_FinallyBlock (class NAnt.Core.ElementContainer 'value') 
+	}
+  .class nested public auto ansi beforefieldinit CatchElement
+  	extends NAnt.Core.ElementContainer
+  {
+    .field  private  string _property
 
-	IL_013a:  nop 
-	IL_013b:  ldarg.0 
-	IL_013c:  ldarg.0 
-	IL_013d:  call instance valuetype NAnt.Core.Level class NAnt.Core.Tasks.EchoTask::get_MessageLevel()
-	IL_0142:  ldsfld string [mscorlib]System.String::Empty
-	IL_0147:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_014c:  nop 
-	IL_014d:  nop 
-	IL_014e:  ret 
-    } // end of method EchoTask::ExecuteTask
+    // method line 1163
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x14dc7
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.ElementContainer::'.ctor'()
+	IL_0006:  ret 
+    } // end of method CatchElement::.ctor
 
-    // method line 1261
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 1164
+    .method public hidebysig specialname 
+           instance default string get_Property ()  cil managed 
     {
-        // Method begins at RVA 0x1756c
-	// Code size 62 (0x3e)
+        // Method begins at RVA 0x14dd0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Tasks.TryCatchTask/CatchElement::_property
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CatchElement::get_Property
+
+    // method line 1165
+    .method public hidebysig specialname 
+           instance default void set_Property (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x14deb
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::get_XmlNode()
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::get_ChildNodes()
-	IL_000c:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_0011:  brtrue IL_001b
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.TryCatchTask/CatchElement::_property
+	IL_000d:  ret 
+    } // end of method CatchElement::set_Property
 
-	IL_0016:  br IL_003d
+    // method line 1166
+    .method public hidebysig 
+           instance default void Catch (class NAnt.Core.BuildException be)  cil managed 
+    {
+        // Method begins at RVA 0x14dfc
+	// Code size 182 (0xb6)
+	.maxstack 3
+	.locals init (
+		bool	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  ldnull 
+	IL_0004:  stloc.1 
+	IL_0005:  ldarg.0 
+	IL_0006:  call instance string class NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property()
+	IL_000b:  brfalse IL_005c
 
-	IL_001b:  ldarg.0 
+	IL_0010:  nop 
+	IL_0011:  ldarg.0 
+	IL_0012:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0017:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
 	IL_001c:  ldarg.0 
-	IL_001d:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0022:  ldarg.0 
-	IL_0023:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::get_XmlNode()
-	IL_0028:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerText()
-	IL_002d:  ldarg.0 
-	IL_002e:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0033:  callvirt instance string class NAnt.Core.Project::ExpandProperties(string, class NAnt.Core.Location)
-	IL_0038:  call instance void class NAnt.Core.Tasks.EchoTask::set_Contents(string)
-	IL_003d:  ret 
-    } // end of method EchoTask::Initialize
+	IL_001d:  call instance string class NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property()
+	IL_0022:  callvirt instance bool class NAnt.Core.PropertyDictionary::Contains(string)
+	IL_0027:  stloc.0 
+	IL_0028:  ldarg.0 
+	IL_0029:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_002e:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0033:  ldarg.0 
+	IL_0034:  call instance string class NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property()
+	IL_0039:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
+	IL_003e:  stloc.1 
+	IL_003f:  ldarg.0 
+	IL_0040:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0045:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_004a:  ldarg.0 
+	IL_004b:  call instance string class NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property()
+	IL_0050:  ldarg.1 
+	IL_0051:  callvirt instance string class NAnt.Core.BuildException::get_RawMessage()
+	IL_0056:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_005b:  nop 
+	.try { // 0
+	  IL_005c:  nop 
+	  IL_005d:  ldarg.0 
+	  IL_005e:  callvirt instance void class NAnt.Core.ElementContainer::Execute()
+	  IL_0063:  nop 
+	  IL_0064:  leave IL_00b5
 
-	.property instance class [mscorlib]System.Text.Encoding Encoding ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 65 6E 63 6F 64 69 6E 67 00 00 ) // ...encoding..
+	} // end .try 0
+	finally  { // 0
+	  IL_0069:  nop 
+	  IL_006a:  ldarg.0 
+	  IL_006b:  call instance string class NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property()
+	  IL_0070:  brfalse IL_00b3
 
-		.get instance default class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.EchoTask::get_Encoding () 
-		.set instance default void NAnt.Core.Tasks.EchoTask::set_Encoding (class [mscorlib]System.Text.Encoding 'value') 
-	}
-	.property instance string Message ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6D 65 73 73 61 67 65 00 00 ) // ...message..
+	  IL_0075:  nop 
+	  IL_0076:  ldloc.0 
+	  IL_0077:  brtrue IL_0099
 
-		.get instance default string NAnt.Core.Tasks.EchoTask::get_Message () 
-		.set instance default void NAnt.Core.Tasks.EchoTask::set_Message (string 'value') 
-	}
-	.property instance string Contents ()
-	{
-		.get instance default string NAnt.Core.Tasks.EchoTask::get_Contents () 
-		.set instance default void NAnt.Core.Tasks.EchoTask::set_Contents (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo File ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
+	  IL_007c:  nop 
+	  IL_007d:  ldarg.0 
+	  IL_007e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_0083:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	  IL_0088:  ldarg.0 
+	  IL_0089:  call instance string class NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property()
+	  IL_008e:  callvirt instance void class NAnt.Core.PropertyDictionary::Remove(string)
+	  IL_0093:  nop 
+	  IL_0094:  br IL_00b2
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.EchoTask::get_File () 
-		.set instance default void NAnt.Core.Tasks.EchoTask::set_File (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance bool Append ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 61 70 70 65 6E 64 00 00 ) // ...append..
+	  IL_0099:  nop 
+	  IL_009a:  ldarg.0 
+	  IL_009b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_00a0:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	  IL_00a5:  ldarg.0 
+	  IL_00a6:  call instance string class NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property()
+	  IL_00ab:  ldloc.1 
+	  IL_00ac:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	  IL_00b1:  nop 
+	  IL_00b2:  nop 
+	  IL_00b3:  nop 
+	  IL_00b4:  endfinally 
+	} // end handler 0
+	IL_00b5:  ret 
+    } // end of method CatchElement::Catch
 
-		.get instance default bool NAnt.Core.Tasks.EchoTask::get_Append () 
-		.set instance default void NAnt.Core.Tasks.EchoTask::set_Append (bool 'value') 
-	}
-	.property instance valuetype NAnt.Core.Level MessageLevel ()
+	.property instance string Property ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 6C 65 76 65 6C 00 00 ) // ...level..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
+		52 65 71 75 69 72 65 64 00                      ) // Required.
 
-		.get instance default valuetype NAnt.Core.Level NAnt.Core.Tasks.EchoTask::get_MessageLevel () 
-		.set instance default void NAnt.Core.Tasks.EchoTask::set_MessageLevel (valuetype NAnt.Core.Level 'value') 
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.Core.Tasks.TryCatchTask/CatchElement::get_Property () 
+		.set instance default void NAnt.Core.Tasks.TryCatchTask/CatchElement::set_Property (string 'value') 
 	}
-  } // end of class NAnt.Core.Tasks.EchoTask
+  } // end of class CatchElement
+
+  } // end of class NAnt.Core.Tasks.TryCatchTask
 }
 
-.namespace NAnt.Core.Attributes
+.namespace NAnt.Core.Tasks
 {
-  .class public auto ansi sealed beforefieldinit Int32ValidatorAttribute
-  	extends NAnt.Core.Attributes.ValidatorAttribute
+  .class public auto ansi beforefieldinit RegexTask
+  	extends NAnt.Core.Task
   {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 01                                  ) // ited.
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 72 65 67 65 78 00 00 ) // ...regex..
 
-    .field  private  int32 _minValue
-    .field  private  int32 _maxValue
-    .field  private  int32 _base
+    .field  private  string _pattern
+    .field  private  string _input
+    .field  private  valuetype [System]System.Text.RegularExpressions.RegexOptions _options
 
-    // method line 1262
+    // method line 1167
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x175b3
-	// Code size 38 (0x26)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4 -2147483648
-	IL_0006:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_minValue
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4 2147483647
-	IL_0011:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_maxValue
-	IL_0016:  ldarg.0 
-	IL_0017:  ldc.i4.s 0x0a
-	IL_0019:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_base
-	IL_001e:  ldarg.0 
-	IL_001f:  call instance void class NAnt.Core.Attributes.ValidatorAttribute::'.ctor'()
-	IL_0024:  nop 
-	IL_0025:  ret 
-    } // end of method Int32ValidatorAttribute::.ctor
-
-    // method line 1263
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (int32 minValue, int32 maxValue)  cil managed 
-    {
-        // Method begins at RVA 0x175da
-	// Code size 52 (0x34)
+        // Method begins at RVA 0x14ed0
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4 -2147483648
-	IL_0006:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_minValue
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4 2147483647
-	IL_0011:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_maxValue
-	IL_0016:  ldarg.0 
-	IL_0017:  ldc.i4.s 0x0a
-	IL_0019:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_base
-	IL_001e:  ldarg.0 
-	IL_001f:  call instance void class NAnt.Core.Attributes.ValidatorAttribute::'.ctor'()
-	IL_0024:  nop 
-	IL_0025:  ldarg.0 
-	IL_0026:  ldarg.1 
-	IL_0027:  call instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::set_MinValue(int32)
-	IL_002c:  ldarg.0 
-	IL_002d:  ldarg.2 
-	IL_002e:  call instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::set_MaxValue(int32)
-	IL_0033:  ret 
-    } // end of method Int32ValidatorAttribute::.ctor
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld valuetype [System]System.Text.RegularExpressions.RegexOptions NAnt.Core.Tasks.RegexTask::_options
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_000d:  ret 
+    } // end of method RegexTask::.ctor
 
-    // method line 1264
+    // method line 1168
     .method public hidebysig specialname 
-           instance default int32 get_MinValue ()  cil managed 
+           instance default string get_Pattern ()  cil managed 
     {
-        // Method begins at RVA 0x17610
+        // Method begins at RVA 0x14ee0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_minValue
+	IL_0002:  ldfld string NAnt.Core.Tasks.RegexTask::_pattern
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Int32ValidatorAttribute::get_MinValue
+    } // end of method RegexTask::get_Pattern
 
-    // method line 1265
+    // method line 1169
     .method public hidebysig specialname 
-           instance default void set_MinValue (int32 'value')  cil managed 
+           instance default void set_Pattern (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1762b
+        // Method begins at RVA 0x14efb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_minValue
+	IL_0003:  stfld string NAnt.Core.Tasks.RegexTask::_pattern
 	IL_0008:  ret 
-    } // end of method Int32ValidatorAttribute::set_MinValue
+    } // end of method RegexTask::set_Pattern
 
-    // method line 1266
+    // method line 1170
     .method public hidebysig specialname 
-           instance default int32 get_MaxValue ()  cil managed 
+           instance default valuetype [System]System.Text.RegularExpressions.RegexOptions get_Options ()  cil managed 
     {
-        // Method begins at RVA 0x17638
+        // Method begins at RVA 0x14f08
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		valuetype [System]System.Text.RegularExpressions.RegexOptions	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_maxValue
+	IL_0002:  ldfld valuetype [System]System.Text.RegularExpressions.RegexOptions NAnt.Core.Tasks.RegexTask::_options
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Int32ValidatorAttribute::get_MaxValue
+    } // end of method RegexTask::get_Options
 
-    // method line 1267
+    // method line 1171
     .method public hidebysig specialname 
-           instance default void set_MaxValue (int32 'value')  cil managed 
+           instance default void set_Options (valuetype [System]System.Text.RegularExpressions.RegexOptions 'value')  cil managed 
     {
-        // Method begins at RVA 0x17653
+        // Method begins at RVA 0x14f23
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_maxValue
+	IL_0003:  stfld valuetype [System]System.Text.RegularExpressions.RegexOptions NAnt.Core.Tasks.RegexTask::_options
 	IL_0008:  ret 
-    } // end of method Int32ValidatorAttribute::set_MaxValue
+    } // end of method RegexTask::set_Options
 
-    // method line 1268
+    // method line 1172
     .method public hidebysig specialname 
-           instance default int32 get_Base ()  cil managed 
+           instance default string get_Input ()  cil managed 
     {
-        // Method begins at RVA 0x17660
+        // Method begins at RVA 0x14f30
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_base
+	IL_0002:  ldfld string NAnt.Core.Tasks.RegexTask::_input
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Int32ValidatorAttribute::get_Base
+    } // end of method RegexTask::get_Input
 
-    // method line 1269
+    // method line 1173
     .method public hidebysig specialname 
-           instance default void set_Base (int32 'value')  cil managed 
+           instance default void set_Input (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1767b
+        // Method begins at RVA 0x14f4b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.Attributes.Int32ValidatorAttribute::_base
+	IL_0003:  stfld string NAnt.Core.Tasks.RegexTask::_input
 	IL_0008:  ret 
-    } // end of method Int32ValidatorAttribute::set_Base
+    } // end of method RegexTask::set_Input
 
-    // method line 1270
-    .method public virtual hidebysig 
-           instance default void Validate (object 'value')  cil managed 
+    // method line 1174
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x17688
-	// Code size 173 (0xad)
-	.maxstack 5
+        // Method begins at RVA 0x14f58
+	// Code size 257 (0x101)
+	.maxstack 8
 	.locals init (
-		int32	V_0,
-		class [mscorlib]System.Exception	V_1)
+		class [System]System.Text.RegularExpressions.Regex	V_0,
+		class [mscorlib]System.ArgumentException	V_1,
+		class [System]System.Text.RegularExpressions.Match	V_2,
+		int32	V_3,
+		string	V_4)
 	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
 	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  isinst [mscorlib]System.String
-	  IL_0008:  brfalse IL_0026
-
-	  IL_000d:  nop 
-	  IL_000e:  ldarg.1 
-	  IL_000f:  castclass [mscorlib]System.String
-	  IL_0014:  ldarg.0 
-	  IL_0015:  call instance int32 class NAnt.Core.Attributes.Int32ValidatorAttribute::get_Base()
-	  IL_001a:  call int32 class [mscorlib]System.Convert::ToInt32(string, int32)
-	  IL_001f:  stloc.0 
-	  IL_0020:  nop 
-	  IL_0021:  br IL_0034
-
-	  IL_0026:  nop 
-	  IL_0027:  ldarg.1 
-	  IL_0028:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_002d:  call int32 class [mscorlib]System.Convert::ToInt32(object, class [mscorlib]System.IFormatProvider)
-	  IL_0032:  stloc.0 
-	  IL_0033:  nop 
-	  IL_0034:  nop 
-	  IL_0035:  leave IL_005d
+	  IL_0003:  nop 
+	  IL_0004:  ldarg.0 
+	  IL_0005:  call instance string class NAnt.Core.Tasks.RegexTask::get_Pattern()
+	  IL_000a:  ldarg.0 
+	  IL_000b:  call instance valuetype [System]System.Text.RegularExpressions.RegexOptions class NAnt.Core.Tasks.RegexTask::get_Options()
+	  IL_0010:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
+	  IL_0015:  stloc.0 
+	  IL_0016:  nop 
+	  IL_0017:  leave IL_0045
 
 	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_003a:  stloc.1 
-	  IL_003b:  nop 
-	  IL_003c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0041:  ldstr "NA1091"
-	  IL_0046:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_004b:  ldarg.1 
-	  IL_004c:  callvirt instance string object::ToString()
-	  IL_0051:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0056:  ldloc.1 
-	  IL_0057:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class [mscorlib]System.Exception)
-	  IL_005c:  throw 
+	catch class [mscorlib]System.ArgumentException { // 0
+	  IL_001c:  stloc.1 
+	  IL_001d:  nop 
+	  IL_001e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0023:  ldstr "NA1145"
+	  IL_0028:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_002d:  ldarg.0 
+	  IL_002e:  call instance string class NAnt.Core.Tasks.RegexTask::get_Pattern()
+	  IL_0033:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0038:  ldarg.0 
+	  IL_0039:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_003e:  ldloc.1 
+	  IL_003f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0044:  throw 
 	} // end handler 0
-	IL_005d:  ldloc.0 
-	IL_005e:  ldarg.0 
-	IL_005f:  call instance int32 class NAnt.Core.Attributes.Int32ValidatorAttribute::get_MinValue()
-	IL_0064:  blt IL_0075
+	IL_0045:  ldloc.0 
+	IL_0046:  ldarg.0 
+	IL_0047:  call instance string class NAnt.Core.Tasks.RegexTask::get_Input()
+	IL_004c:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
+	IL_0051:  stloc.2 
+	IL_0052:  ldloc.2 
+	IL_0053:  call class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Match::get_Empty()
+	IL_0058:  bne.un IL_008a
 
-	IL_0069:  ldloc.0 
-	IL_006a:  ldarg.0 
-	IL_006b:  call instance int32 class NAnt.Core.Attributes.Int32ValidatorAttribute::get_MaxValue()
-	IL_0070:  ble IL_00ac
+	IL_005d:  nop 
+	IL_005e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0063:  ldstr "NA1144"
+	IL_0068:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_006d:  ldarg.0 
+	IL_006e:  call instance string class NAnt.Core.Tasks.RegexTask::get_Pattern()
+	IL_0073:  ldarg.0 
+	IL_0074:  call instance string class NAnt.Core.Tasks.RegexTask::get_Input()
+	IL_0079:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_007e:  ldarg.0 
+	IL_007f:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0084:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0089:  throw 
+	IL_008a:  ldc.i4.1 
+	IL_008b:  stloc.3 
+	IL_008c:  br IL_00ef
 
-	IL_0075:  nop 
-	IL_0076:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_007b:  ldstr "NA1090"
-	IL_0080:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0085:  ldarg.1 
-	IL_0086:  callvirt instance string object::ToString()
-	IL_008b:  ldarg.0 
-	IL_008c:  call instance int32 class NAnt.Core.Attributes.Int32ValidatorAttribute::get_MinValue()
-	IL_0091:  box [mscorlib]System.Int32
-	IL_0096:  ldarg.0 
-	IL_0097:  call instance int32 class NAnt.Core.Attributes.Int32ValidatorAttribute::get_MaxValue()
-	IL_009c:  box [mscorlib]System.Int32
-	IL_00a1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_00a6:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string)
-	IL_00ab:  throw 
-	IL_00ac:  ret 
-    } // end of method Int32ValidatorAttribute::Validate
+	IL_0091:  nop 
+	IL_0092:  ldloc.0 
+	IL_0093:  ldloc.3 
+	IL_0094:  callvirt instance string class [System]System.Text.RegularExpressions.Regex::GroupNameFromNumber(int32)
+	IL_0099:  stloc.s 4
+	IL_009b:  ldarg.0 
+	IL_009c:  ldc.i4 2000
+	IL_00a1:  ldstr "Setting property '{0}' to '{1}'."
+	IL_00a6:  ldc.i4.2 
+	IL_00a7:  newarr [mscorlib]System.Object
+	IL_00ac:  dup 
+	IL_00ad:  ldc.i4.0 
+	IL_00ae:  ldloc.s 4
+	IL_00b0:  stelem.ref 
+	IL_00b1:  dup 
+	IL_00b2:  ldc.i4.1 
+	IL_00b3:  ldloc.2 
+	IL_00b4:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	IL_00b9:  ldloc.s 4
+	IL_00bb:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	IL_00c0:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	IL_00c5:  stelem.ref 
+	IL_00c6:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_00cb:  ldarg.0 
+	IL_00cc:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_00d1:  ldloc.s 4
+	IL_00d3:  ldloc.2 
+	IL_00d4:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	IL_00d9:  ldloc.s 4
+	IL_00db:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	IL_00e0:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	IL_00e5:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_00ea:  nop 
+	IL_00eb:  ldloc.3 
+	IL_00ec:  ldc.i4.1 
+	IL_00ed:  add 
+	IL_00ee:  stloc.3 
+	IL_00ef:  ldloc.3 
+	IL_00f0:  ldloc.2 
+	IL_00f1:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	IL_00f6:  callvirt instance int32 class [System]System.Text.RegularExpressions.GroupCollection::get_Count()
+	IL_00fb:  blt IL_0091
 
-	.property instance int32 MinValue ()
+	IL_0100:  ret 
+    } // end of method RegexTask::ExecuteTask
+
+	.property instance string Pattern ()
 	{
-		.get instance default int32 NAnt.Core.Attributes.Int32ValidatorAttribute::get_MinValue () 
-		.set instance default void NAnt.Core.Attributes.Int32ValidatorAttribute::set_MinValue (int32 'value') 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 70 61 74 74 65 72 6E 01 00 54 02 08 52   // ...pattern..T..R
+		65 71 75 69 72 65 64 01                         ) // equired.
+
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.Core.Tasks.RegexTask::get_Pattern () 
+		.set instance default void NAnt.Core.Tasks.RegexTask::set_Pattern (string 'value') 
 	}
-	.property instance int32 MaxValue ()
+	.property instance valuetype [System]System.Text.RegularExpressions.RegexOptions Options ()
 	{
-		.get instance default int32 NAnt.Core.Attributes.Int32ValidatorAttribute::get_MaxValue () 
-		.set instance default void NAnt.Core.Attributes.Int32ValidatorAttribute::set_MaxValue (int32 'value') 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 6F 70 74 69 6F 6E 73 01 00 54 02 08 52   // ...options..T..R
+		65 71 75 69 72 65 64 00                         ) // equired.
+
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 01                                           ) // y.
+
+		.get instance default valuetype [System]System.Text.RegularExpressions.RegexOptions NAnt.Core.Tasks.RegexTask::get_Options () 
+		.set instance default void NAnt.Core.Tasks.RegexTask::set_Options (valuetype [System]System.Text.RegularExpressions.RegexOptions 'value') 
 	}
-	.property instance int32 Base ()
+	.property instance string Input ()
 	{
-		.get instance default int32 NAnt.Core.Attributes.Int32ValidatorAttribute::get_Base () 
-		.set instance default void NAnt.Core.Attributes.Int32ValidatorAttribute::set_Base (int32 'value') 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 05 69 6E 70 75 74 01 00 54 02 08 52 65 71   // ...input..T..Req
+		75 69 72 65 64 01                               ) // uired.
+
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 01                                           ) // y.
+
+		.get instance default string NAnt.Core.Tasks.RegexTask::get_Input () 
+		.set instance default void NAnt.Core.Tasks.RegexTask::set_Input (string 'value') 
 	}
-  } // end of class NAnt.Core.Attributes.Int32ValidatorAttribute
+  } // end of class NAnt.Core.Tasks.RegexTask
 }
 
-.namespace NAnt.Core.Attributes
+.namespace NAnt.Core.Tasks
 {
-  .class public auto ansi sealed beforefieldinit FunctionAttribute
-  	extends [mscorlib]System.Attribute
+  .class public auto ansi beforefieldinit XmlPokeTask
+  	extends NAnt.Core.Task
   {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 40 00 00 00 02 00 54 02 09 49 6E 68 65 72   // ..@.....T..Inher
-		69 74 65 64 00 54 02 0D 41 6C 6C 6F 77 4D 75 6C   // ited.T..AllowMul
-		74 69 70 6C 65 00                               ) // tiple.
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 78 6D 6C 70 6F 6B 65 00 00 ) // ...xmlpoke..
 
-    .field  private  string _name
+    .field  private  class [mscorlib]System.IO.FileInfo _xmlFile
+    .field  private  string _value
+    .field  private  string _xPathExpression
+    .field  private  bool _preserveWhitespace
+    .field  private  class NAnt.Core.Types.XmlNamespaceCollection _namespaces
 
-    // method line 1271
+    // method line 1175
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x17754
-	// Code size 67 (0x43)
-	.maxstack 3
+        // Method begins at RVA 0x15078
+	// Code size 18 (0x12)
+	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  brtrue IL_0019
-
-	IL_000d:  nop 
-	IL_000e:  ldstr "name"
-	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0018:  throw 
-	IL_0019:  ldarg.1 
-	IL_001a:  callvirt instance string string::Trim()
-	IL_001f:  callvirt instance int32 string::get_Length()
-	IL_0024:  brtrue IL_003b
-
-	IL_0029:  nop 
-	IL_002a:  ldstr "name"
-	IL_002f:  ldarg.1 
-	IL_0030:  ldstr "A zero-length string is not an allowed value."
-	IL_0035:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
-	IL_003a:  throw 
-	IL_003b:  ldarg.0 
-	IL_003c:  ldarg.1 
-	IL_003d:  stfld string NAnt.Core.Attributes.FunctionAttribute::_name
-	IL_0042:  ret 
-    } // end of method FunctionAttribute::.ctor
+	IL_0001:  newobj instance void class NAnt.Core.Types.XmlNamespaceCollection::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPokeTask::_namespaces
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0011:  ret 
+    } // end of method XmlPokeTask::.ctor
 
-    // method line 1272
+    // method line 1176
     .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_XmlFile ()  cil managed 
     {
-        // Method begins at RVA 0x177a4
+        // Method begins at RVA 0x1508c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Attributes.FunctionAttribute::_name
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.XmlPokeTask::_xmlFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FunctionAttribute::get_Name
+    } // end of method XmlPokeTask::get_XmlFile
 
-    // method line 1273
+    // method line 1177
     .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
+           instance default void set_XmlFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x177bf
+        // Method begins at RVA 0x150a7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Attributes.FunctionAttribute::_name
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.XmlPokeTask::_xmlFile
 	IL_0008:  ret 
-    } // end of method FunctionAttribute::set_Name
-
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.Core.Attributes.FunctionAttribute::get_Name () 
-		.set instance default void NAnt.Core.Attributes.FunctionAttribute::set_Name (string 'value') 
-	}
-  } // end of class NAnt.Core.Attributes.FunctionAttribute
-}
-
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi sealed beforefieldinit StringValidatorAttribute
-  	extends NAnt.Core.Attributes.ValidatorAttribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 01                                  ) // ited.
-
-    .field  private  bool _allowEmpty
-    .field  private  string _expression
-    .field  private  string _expressionErrorMessage
-
-    // method line 1274
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x177c9
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Attributes.StringValidatorAttribute::_allowEmpty
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Attributes.ValidatorAttribute::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method StringValidatorAttribute::.ctor
+    } // end of method XmlPokeTask::set_XmlFile
 
-    // method line 1275
+    // method line 1178
     .method public hidebysig specialname 
-           instance default bool get_AllowEmpty ()  cil managed 
+           instance default string get_XPath ()  cil managed 
     {
-        // Method begins at RVA 0x177dc
+        // Method begins at RVA 0x150b4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Attributes.StringValidatorAttribute::_allowEmpty
+	IL_0002:  ldfld string NAnt.Core.Tasks.XmlPokeTask::_xPathExpression
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method StringValidatorAttribute::get_AllowEmpty
+    } // end of method XmlPokeTask::get_XPath
 
-    // method line 1276
+    // method line 1179
     .method public hidebysig specialname 
-           instance default void set_AllowEmpty (bool 'value')  cil managed 
+           instance default void set_XPath (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x177f7
+        // Method begins at RVA 0x150cf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Attributes.StringValidatorAttribute::_allowEmpty
+	IL_0003:  stfld string NAnt.Core.Tasks.XmlPokeTask::_xPathExpression
 	IL_0008:  ret 
-    } // end of method StringValidatorAttribute::set_AllowEmpty
+    } // end of method XmlPokeTask::set_XPath
 
-    // method line 1277
+    // method line 1180
     .method public hidebysig specialname 
-           instance default string get_Expression ()  cil managed 
+           instance default string get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x17804
+        // Method begins at RVA 0x150dc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Attributes.StringValidatorAttribute::_expression
+	IL_0002:  ldfld string NAnt.Core.Tasks.XmlPokeTask::_value
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method StringValidatorAttribute::get_Expression
+    } // end of method XmlPokeTask::get_Value
 
-    // method line 1278
+    // method line 1181
     .method public hidebysig specialname 
-           instance default void set_Expression (string 'value')  cil managed 
+           instance default void set_Value (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1781f
+        // Method begins at RVA 0x150f7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Attributes.StringValidatorAttribute::_expression
+	IL_0003:  stfld string NAnt.Core.Tasks.XmlPokeTask::_value
 	IL_0008:  ret 
-    } // end of method StringValidatorAttribute::set_Expression
+    } // end of method XmlPokeTask::set_Value
 
-    // method line 1279
+    // method line 1182
     .method public hidebysig specialname 
-           instance default string get_ExpressionErrorMessage ()  cil managed 
+           instance default class NAnt.Core.Types.XmlNamespaceCollection get_Namespaces ()  cil managed 
     {
-        // Method begins at RVA 0x1782c
+        // Method begins at RVA 0x15104
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.XmlNamespaceCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Attributes.StringValidatorAttribute::_expressionErrorMessage
+	IL_0002:  ldfld class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPokeTask::_namespaces
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method StringValidatorAttribute::get_ExpressionErrorMessage
+    } // end of method XmlPokeTask::get_Namespaces
 
-    // method line 1280
+    // method line 1183
     .method public hidebysig specialname 
-           instance default void set_ExpressionErrorMessage (string 'value')  cil managed 
+           instance default void set_Namespaces (class NAnt.Core.Types.XmlNamespaceCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x17847
+        // Method begins at RVA 0x1511f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Attributes.StringValidatorAttribute::_expressionErrorMessage
+	IL_0003:  stfld class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPokeTask::_namespaces
 	IL_0008:  ret 
-    } // end of method StringValidatorAttribute::set_ExpressionErrorMessage
-
-    // method line 1281
-    .method public virtual hidebysig 
-           instance default void Validate (object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x17854
-	// Code size 203 (0xcb)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.Exception	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0008:  call string class [mscorlib]System.Convert::ToString(object, class [mscorlib]System.IFormatProvider)
-	  IL_000d:  stloc.0 
-	  IL_000e:  nop 
-	  IL_000f:  leave IL_0037
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0014:  stloc.1 
-	  IL_0015:  nop 
-	  IL_0016:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_001b:  ldstr "NA1092"
-	  IL_0020:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0025:  ldarg.1 
-	  IL_0026:  callvirt instance string object::ToString()
-	  IL_002b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0030:  ldloc.1 
-	  IL_0031:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class [mscorlib]System.Exception)
-	  IL_0036:  throw 
-	} // end handler 0
-	IL_0037:  ldloc.0 
-	IL_0038:  call bool string::IsNullOrEmpty(string)
-	IL_003d:  brfalse IL_005f
-
-	IL_0042:  nop 
-	IL_0043:  ldarg.0 
-	IL_0044:  call instance bool class NAnt.Core.Attributes.StringValidatorAttribute::get_AllowEmpty()
-	IL_0049:  brtrue IL_005a
-
-	IL_004e:  nop 
-	IL_004f:  ldstr "An empty value is not allowed."
-	IL_0054:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string)
-	IL_0059:  throw 
-	IL_005a:  br IL_00ca
-
-	IL_005f:  ldarg.0 
-	IL_0060:  call instance string class NAnt.Core.Attributes.StringValidatorAttribute::get_Expression()
-	IL_0065:  call bool string::IsNullOrEmpty(string)
-	IL_006a:  brtrue IL_00ca
-
-	IL_006f:  nop 
-	IL_0070:  ldarg.1 
-	IL_0071:  call string class [mscorlib]System.Convert::ToString(object)
-	IL_0076:  ldarg.0 
-	IL_0077:  call instance string class NAnt.Core.Attributes.StringValidatorAttribute::get_Expression()
-	IL_007c:  call bool class [System]System.Text.RegularExpressions.Regex::IsMatch(string, string)
-	IL_0081:  brtrue IL_00c9
-
-	IL_0086:  nop 
-	IL_0087:  ldstr "String {0} does not match expression {1}."
-	IL_008c:  ldarg.1 
-	IL_008d:  ldarg.0 
-	IL_008e:  call instance string class NAnt.Core.Attributes.StringValidatorAttribute::get_Expression()
-	IL_0093:  call string string::Format(string, object, object)
-	IL_0098:  stloc.2 
-	IL_0099:  ldarg.0 
-	IL_009a:  call instance string class NAnt.Core.Attributes.StringValidatorAttribute::get_ExpressionErrorMessage()
-	IL_009f:  brfalse IL_00c2
-
-	IL_00a4:  ldsfld string [mscorlib]System.String::Empty
-	IL_00a9:  ldarg.0 
-	IL_00aa:  call instance string class NAnt.Core.Attributes.StringValidatorAttribute::get_ExpressionErrorMessage()
-	IL_00af:  call bool string::op_Inequality(string, string)
-	IL_00b4:  brfalse IL_00c2
-
-	IL_00b9:  nop 
-	IL_00ba:  ldarg.0 
-	IL_00bb:  call instance string class NAnt.Core.Attributes.StringValidatorAttribute::get_ExpressionErrorMessage()
-	IL_00c0:  stloc.2 
-	IL_00c1:  nop 
-	IL_00c2:  ldloc.2 
-	IL_00c3:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string)
-	IL_00c8:  throw 
-	IL_00c9:  nop 
-	IL_00ca:  ret 
-    } // end of method StringValidatorAttribute::Validate
-
-	.property instance bool AllowEmpty ()
-	{
-		.get instance default bool NAnt.Core.Attributes.StringValidatorAttribute::get_AllowEmpty () 
-		.set instance default void NAnt.Core.Attributes.StringValidatorAttribute::set_AllowEmpty (bool 'value') 
-	}
-	.property instance string Expression ()
-	{
-		.get instance default string NAnt.Core.Attributes.StringValidatorAttribute::get_Expression () 
-		.set instance default void NAnt.Core.Attributes.StringValidatorAttribute::set_Expression (string 'value') 
-	}
-	.property instance string ExpressionErrorMessage ()
-	{
-		.get instance default string NAnt.Core.Attributes.StringValidatorAttribute::get_ExpressionErrorMessage () 
-		.set instance default void NAnt.Core.Attributes.StringValidatorAttribute::set_ExpressionErrorMessage (string 'value') 
-	}
-  } // end of class NAnt.Core.Attributes.StringValidatorAttribute
-}
-
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi beforefieldinit ElementNameAttribute
-  	extends [mscorlib]System.Attribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 04 00 00 00 02 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 00 54 02 0D 41 6C 6C 6F 77 4D 75 6C   // ited.T..AllowMul
-		74 69 70 6C 65 00                               ) // tiple.
-
-    .field  private  string _name
-
-    // method line 1282
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
-    {
-        // Method begins at RVA 0x1793c
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Attributes.ElementNameAttribute::set_Name(string)
-	IL_000e:  ret 
-    } // end of method ElementNameAttribute::.ctor
+    } // end of method XmlPokeTask::set_Namespaces
 
-    // method line 1283
+    // method line 1184
     .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+           instance default bool get_PreserveWhitespace ()  cil managed 
     {
-        // Method begins at RVA 0x1794c
+        // Method begins at RVA 0x1512c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Attributes.ElementNameAttribute::_name
+	IL_0002:  ldfld bool NAnt.Core.Tasks.XmlPokeTask::_preserveWhitespace
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ElementNameAttribute::get_Name
+    } // end of method XmlPokeTask::get_PreserveWhitespace
 
-    // method line 1284
+    // method line 1185
     .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
+           instance default void set_PreserveWhitespace (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x17968
-	// Code size 66 (0x42)
-	.maxstack 3
+        // Method begins at RVA 0x15147
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.XmlPokeTask::_preserveWhitespace
+	IL_0008:  ret 
+    } // end of method XmlPokeTask::set_PreserveWhitespace
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "name"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  callvirt instance string string::Trim()
-	IL_001a:  stfld string NAnt.Core.Attributes.ElementNameAttribute::_name
-	IL_001f:  ldarg.0 
-	IL_0020:  ldfld string NAnt.Core.Attributes.ElementNameAttribute::_name
-	IL_0025:  callvirt instance int32 string::get_Length()
-	IL_002a:  brtrue IL_0041
+    // method line 1186
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x15154
+	// Code size 329 (0x149)
+	.maxstack 4
+	.locals init (
+		class [System.Xml]System.Xml.XmlDocument	V_0,
+		class [System.Xml]System.Xml.XmlNamespaceManager	V_1,
+		class NAnt.Core.Types.XmlNamespace	V_2,
+		class NAnt.Core.Types.XmlNamespaceEnumerator	V_3,
+		class [mscorlib]System.IDisposable	V_4,
+		class [System.Xml]System.Xml.XmlNodeList	V_5,
+		class NAnt.Core.BuildException	V_6,
+		class [mscorlib]System.Exception	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPokeTask::get_XmlFile()
+	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_000c:  brtrue IL_003d
 
-	IL_002f:  nop 
-	IL_0030:  ldstr "name"
-	IL_0035:  ldarg.1 
-	IL_0036:  ldstr "A zero-length string is not an allowed value."
-	IL_003b:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
-	IL_0040:  throw 
-	IL_0041:  ret 
-    } // end of method ElementNameAttribute::set_Name
+	IL_0011:  nop 
+	IL_0012:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0017:  ldstr "NA1154"
+	IL_001c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0021:  ldarg.0 
+	IL_0022:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPokeTask::get_XmlFile()
+	IL_0027:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_002c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0031:  ldarg.0 
+	IL_0032:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0037:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_003c:  throw 
+	.try { // 1
+	  IL_003d:  nop 
+	  IL_003e:  ldarg.0 
+	  IL_003f:  ldarg.0 
+	  IL_0040:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPokeTask::get_XmlFile()
+	  IL_0045:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_004a:  ldarg.0 
+	  IL_004b:  call instance bool class NAnt.Core.Tasks.XmlPokeTask::get_PreserveWhitespace()
+	  IL_0050:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Tasks.XmlPokeTask::LoadDocument(string, bool)
+	  IL_0055:  stloc.0 
+	  IL_0056:  ldloc.0 
+	  IL_0057:  callvirt instance class [System.Xml]System.Xml.XmlNameTable class [System.Xml]System.Xml.XmlDocument::get_NameTable()
+	  IL_005c:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
+	  IL_0061:  stloc.1 
+	  IL_0062:  nop 
+	  IL_0063:  ldarg.0 
+	  IL_0064:  call instance class NAnt.Core.Types.XmlNamespaceCollection class NAnt.Core.Tasks.XmlPokeTask::get_Namespaces()
+	  IL_0069:  callvirt instance class NAnt.Core.Types.XmlNamespaceEnumerator class NAnt.Core.Types.XmlNamespaceCollection::GetEnumerator()
+	  IL_006e:  stloc.3 
+	  .try { // 0
+	    IL_006f:  br IL_00a7
 
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.Core.Attributes.ElementNameAttribute::get_Name () 
-		.set instance default void NAnt.Core.Attributes.ElementNameAttribute::set_Name (string 'value') 
-	}
-  } // end of class NAnt.Core.Attributes.ElementNameAttribute
-}
+	    IL_0074:  ldloc.3 
+	    IL_0075:  callvirt instance class NAnt.Core.Types.XmlNamespace class NAnt.Core.Types.XmlNamespaceEnumerator::get_Current()
+	    IL_007a:  stloc.2 
+	    IL_007b:  nop 
+	    IL_007c:  ldloc.2 
+	    IL_007d:  callvirt instance bool class NAnt.Core.Types.XmlNamespace::get_IfDefined()
+	    IL_0082:  brfalse IL_00a6
 
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi abstract beforefieldinit ValidatorAttribute
-  	extends [mscorlib]System.Attribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 01                                  ) // ited.
+	    IL_0087:  ldloc.2 
+	    IL_0088:  callvirt instance bool class NAnt.Core.Types.XmlNamespace::get_UnlessDefined()
+	    IL_008d:  brtrue IL_00a6
 
+	    IL_0092:  nop 
+	    IL_0093:  ldloc.1 
+	    IL_0094:  ldloc.2 
+	    IL_0095:  callvirt instance string class NAnt.Core.Types.XmlNamespace::get_Prefix()
+	    IL_009a:  ldloc.2 
+	    IL_009b:  callvirt instance string class NAnt.Core.Types.XmlNamespace::get_Uri()
+	    IL_00a0:  callvirt instance void class [System.Xml]System.Xml.XmlNamespaceManager::AddNamespace(string, string)
+	    IL_00a5:  nop 
+	    IL_00a6:  nop 
+	    IL_00a7:  ldloc.3 
+	    IL_00a8:  callvirt instance bool class NAnt.Core.Types.XmlNamespaceEnumerator::MoveNext()
+	    IL_00ad:  brtrue IL_0074
 
-    // method line 1285
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x175ab
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
-	IL_0006:  ret 
-    } // end of method ValidatorAttribute::.ctor
+	    IL_00b2:  leave IL_00cd
 
-    // method line 1286
-    .method public virtual hidebysig newslot abstract 
-           instance default void Validate (object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ValidatorAttribute::Validate
+	  } // end .try 0
+	  finally  { // 0
+	    IL_00b7:  ldloc.3 
+	    IL_00b8:  isinst [mscorlib]System.IDisposable
+	    IL_00bd:  dup 
+	    IL_00be:  stloc.s 4
+	    IL_00c0:  brfalse IL_00cc
 
-  } // end of class NAnt.Core.Attributes.ValidatorAttribute
-}
+	    IL_00c5:  ldloc.s 4
+	    IL_00c7:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_00cc:  endfinally 
+	  } // end handler 0
+	  IL_00cd:  ldarg.0 
+	  IL_00ce:  ldarg.0 
+	  IL_00cf:  call instance string class NAnt.Core.Tasks.XmlPokeTask::get_XPath()
+	  IL_00d4:  ldloc.0 
+	  IL_00d5:  ldloc.1 
+	  IL_00d6:  call instance class [System.Xml]System.Xml.XmlNodeList class NAnt.Core.Tasks.XmlPokeTask::SelectNodes(string, class [System.Xml]System.Xml.XmlDocument, class [System.Xml]System.Xml.XmlNamespaceManager)
+	  IL_00db:  stloc.s 5
+	  IL_00dd:  ldloc.s 5
+	  IL_00df:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	  IL_00e4:  ldc.i4.0 
+	  IL_00e5:  ble IL_010c
 
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi sealed beforefieldinit BooleanValidatorAttribute
-  	extends NAnt.Core.Attributes.ValidatorAttribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 01                                  ) // ited.
+	  IL_00ea:  nop 
+	  IL_00eb:  ldarg.0 
+	  IL_00ec:  ldloc.s 5
+	  IL_00ee:  ldarg.0 
+	  IL_00ef:  call instance string class NAnt.Core.Tasks.XmlPokeTask::get_Value()
+	  IL_00f4:  call instance void class NAnt.Core.Tasks.XmlPokeTask::UpdateNodes(class [System.Xml]System.Xml.XmlNodeList, string)
+	  IL_00f9:  ldarg.0 
+	  IL_00fa:  ldloc.0 
+	  IL_00fb:  ldarg.0 
+	  IL_00fc:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPokeTask::get_XmlFile()
+	  IL_0101:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0106:  call instance void class NAnt.Core.Tasks.XmlPokeTask::SaveDocument(class [System.Xml]System.Xml.XmlDocument, string)
+	  IL_010b:  nop 
+	  IL_010c:  nop 
+	  IL_010d:  leave IL_0148
 
+	} // end .try 1
+	catch class NAnt.Core.BuildException { // 1
+	  IL_0112:  stloc.s 6
+	  IL_0114:  nop 
+	  IL_0115:  ldloc.s 6
+	  IL_0117:  throw 
+	} // end handler 1
+	catch class [mscorlib]System.Exception { // 2
+	  IL_0118:  stloc.s 7
+	  IL_011a:  nop 
+	  IL_011b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0120:  ldstr "NA1159"
+	  IL_0125:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_012a:  ldarg.0 
+	  IL_012b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPokeTask::get_XmlFile()
+	  IL_0130:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0135:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_013a:  ldarg.0 
+	  IL_013b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0140:  ldloc.s 7
+	  IL_0142:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0147:  throw 
+	} // end handler 2
+	IL_0148:  ret 
+    } // end of method XmlPokeTask::ExecuteTask
 
-    // method line 1287
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1187
+    .method private hidebysig 
+           instance default class [System.Xml]System.Xml.XmlDocument LoadDocument (string fileName, bool preserveWhitespace)  cil managed 
     {
-        // Method begins at RVA 0x179b6
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Attributes.ValidatorAttribute::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method BooleanValidatorAttribute::.ctor
+        // Method begins at RVA 0x152d4
+	// Code size 121 (0x79)
+	.maxstack 7
+	.locals init (
+		class [System.Xml]System.Xml.XmlDocument	V_0,
+		class [System.Xml]System.Xml.XmlDocument	V_1,
+		class [mscorlib]System.Exception	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	.try { // 0
+	  IL_0003:  nop 
+	  IL_0004:  ldarg.0 
+	  IL_0005:  ldc.i4 2000
+	  IL_000a:  ldstr "Attempting to load XML document in file '{0}'."
+	  IL_000f:  ldc.i4.1 
+	  IL_0010:  newarr [mscorlib]System.Object
+	  IL_0015:  dup 
+	  IL_0016:  ldc.i4.0 
+	  IL_0017:  ldarg.1 
+	  IL_0018:  stelem.ref 
+	  IL_0019:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_001e:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
+	  IL_0023:  stloc.0 
+	  IL_0024:  ldloc.0 
+	  IL_0025:  ldarg.2 
+	  IL_0026:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::set_PreserveWhitespace(bool)
+	  IL_002b:  ldloc.0 
+	  IL_002c:  ldarg.1 
+	  IL_002d:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(string)
+	  IL_0032:  ldarg.0 
+	  IL_0033:  ldc.i4 2000
+	  IL_0038:  ldstr "XML document in file '{0}' loaded successfully."
+	  IL_003d:  ldc.i4.1 
+	  IL_003e:  newarr [mscorlib]System.Object
+	  IL_0043:  dup 
+	  IL_0044:  ldc.i4.0 
+	  IL_0045:  ldarg.1 
+	  IL_0046:  stelem.ref 
+	  IL_0047:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_004c:  ldloc.0 
+	  IL_004d:  stloc.1 
+	  IL_004e:  leave IL_0077
 
-    // method line 1288
-    .method public virtual hidebysig 
-           instance default void Validate (object 'value')  cil managed 
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0053:  stloc.2 
+	  IL_0054:  nop 
+	  IL_0055:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_005a:  ldstr "NA1158"
+	  IL_005f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0064:  ldarg.1 
+	  IL_0065:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_006a:  ldarg.0 
+	  IL_006b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0070:  ldloc.2 
+	  IL_0071:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0076:  throw 
+	} // end handler 0
+	IL_0077:  ldloc.1 
+	IL_0078:  ret 
+    } // end of method XmlPokeTask::LoadDocument
+
+    // method line 1188
+    .method private hidebysig 
+           instance default class [System.Xml]System.Xml.XmlNodeList SelectNodes (string xpath, class [System.Xml]System.Xml.XmlDocument document, class [System.Xml]System.Xml.XmlNamespaceManager nsMgr)  cil managed 
     {
-        // Method begins at RVA 0x179c0
-	// Code size 56 (0x38)
-	.maxstack 3
+        // Method begins at RVA 0x1536c
+	// Code size 181 (0xb5)
+	.maxstack 7
 	.locals init (
-		class [mscorlib]System.Exception	V_0)
+		class [System.Xml]System.Xml.XmlNodeList	V_0,
+		class [mscorlib]System.Exception	V_1,
+		class [System.Xml]System.Xml.XmlNodeList	V_2)
 	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
 	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0008:  call bool class [mscorlib]System.Convert::ToBoolean(object, class [mscorlib]System.IFormatProvider)
-	  IL_000d:  pop 
-	  IL_000e:  nop 
-	  IL_000f:  leave IL_0037
+	  IL_0003:  nop 
+	  IL_0004:  ldarg.0 
+	  IL_0005:  ldc.i4 2000
+	  IL_000a:  ldstr "Selecting nodes with XPath expression '{0}'."
+	  IL_000f:  ldc.i4.1 
+	  IL_0010:  newarr [mscorlib]System.Object
+	  IL_0015:  dup 
+	  IL_0016:  ldc.i4.0 
+	  IL_0017:  ldarg.1 
+	  IL_0018:  stelem.ref 
+	  IL_0019:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_001e:  ldarg.2 
+	  IL_001f:  ldarg.1 
+	  IL_0020:  ldarg.3 
+	  IL_0021:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	  IL_0026:  stloc.0 
+	  IL_0027:  nop 
+	  IL_0028:  leave IL_0051
 
 	} // end .try 0
 	catch class [mscorlib]System.Exception { // 0
-	  IL_0014:  stloc.0 
-	  IL_0015:  nop 
-	  IL_0016:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_001b:  ldstr "NA1088"
-	  IL_0020:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0025:  ldarg.1 
-	  IL_0026:  callvirt instance string object::ToString()
-	  IL_002b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0030:  ldloc.0 
-	  IL_0031:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class [mscorlib]System.Exception)
-	  IL_0036:  throw 
+	  IL_002d:  stloc.1 
+	  IL_002e:  nop 
+	  IL_002f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0034:  ldstr "NA1161"
+	  IL_0039:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_003e:  ldarg.1 
+	  IL_003f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0044:  ldarg.0 
+	  IL_0045:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_004a:  ldloc.1 
+	  IL_004b:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0050:  throw 
 	} // end handler 0
-	IL_0037:  ret 
-    } // end of method BooleanValidatorAttribute::Validate
-
-  } // end of class NAnt.Core.Attributes.BooleanValidatorAttribute
-}
+	IL_0051:  ldloc.0 
+	IL_0052:  brfalse IL_0062
 
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi sealed beforefieldinit FileSetAttribute
-  	extends NAnt.Core.Attributes.BuildElementAttribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 01                                  ) // ited.
+	IL_0057:  ldloc.0 
+	IL_0058:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_005d:  brtrue IL_0084
 
-    .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 4D 50 6C 65 61 73 65 20 75 73 65 20 61 20   // ..MPlease use a 
-		42 75 69 6C 64 45 6C 65 6D 65 6E 74 20 61 74 74   // BuildElement att
-		72 69 62 75 74 65 20 69 6E 73 74 65 61 64 2E 20   // ribute instead. 
-		54 68 69 73 20 63 6C 61 73 73 20 77 69 6C 6C 20   // This class will 
-		62 65 20 72 65 6D 6F 76 65 64 20 73 6F 6F 6E 2E   // be removed soon.
-		01 00 00                                        ) // ...
+	IL_0062:  nop 
+	IL_0063:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0068:  ldstr "NA1156"
+	IL_006d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0072:  ldarg.1 
+	IL_0073:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0078:  ldarg.0 
+	IL_0079:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_007e:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0083:  throw 
+	IL_0084:  ldarg.0 
+	IL_0085:  ldc.i4 3000
+	IL_008a:  ldstr "Found '{0}' nodes matching XPath expression '{1}'."
+	IL_008f:  ldc.i4.2 
+	IL_0090:  newarr [mscorlib]System.Object
+	IL_0095:  dup 
+	IL_0096:  ldc.i4.0 
+	IL_0097:  ldloc.0 
+	IL_0098:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_009d:  box [mscorlib]System.Int32
+	IL_00a2:  stelem.ref 
+	IL_00a3:  dup 
+	IL_00a4:  ldc.i4.1 
+	IL_00a5:  ldarg.1 
+	IL_00a6:  stelem.ref 
+	IL_00a7:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_00ac:  ldloc.0 
+	IL_00ad:  stloc.2 
+	IL_00ae:  br IL_00b3
 
+	IL_00b3:  ldloc.2 
+	IL_00b4:  ret 
+    } // end of method XmlPokeTask::SelectNodes
 
-    // method line 1289
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
+    // method line 1189
+    .method private hidebysig 
+           instance default void UpdateNodes (class [System.Xml]System.Xml.XmlNodeList nodes, string 'value')  cil managed 
     {
-        // Method begins at RVA 0x17ae5
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string)
-	IL_0007:  nop 
-	IL_0008:  ret 
-    } // end of method FileSetAttribute::.ctor
+        // Method begins at RVA 0x15440
+	// Code size 161 (0xa1)
+	.maxstack 7
+	.locals init (
+		int32	V_0,
+		class [System.Xml]System.Xml.XmlNode	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4 2000
+	IL_0007:  ldstr "Updating nodes with value '{0}'."
+	IL_000c:  ldc.i4.1 
+	IL_000d:  newarr [mscorlib]System.Object
+	IL_0012:  dup 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  ldarg.2 
+	IL_0015:  stelem.ref 
+	IL_0016:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_001b:  ldc.i4.0 
+	IL_001c:  stloc.0 
+	IL_001d:  nop 
+	IL_001e:  ldarg.1 
+	IL_001f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_0024:  stloc.2 
+	.try { // 0
+	  IL_0025:  br IL_0062
 
-  } // end of class NAnt.Core.Attributes.FileSetAttribute
-}
+	  IL_002a:  ldloc.2 
+	  IL_002b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0030:  castclass [System.Xml]System.Xml.XmlNode
+	  IL_0035:  stloc.1 
+	  IL_0036:  nop 
+	  IL_0037:  ldarg.0 
+	  IL_0038:  ldc.i4 2000
+	  IL_003d:  ldstr "Updating node '{0}'."
+	  IL_0042:  ldc.i4.1 
+	  IL_0043:  newarr [mscorlib]System.Object
+	  IL_0048:  dup 
+	  IL_0049:  ldc.i4.0 
+	  IL_004a:  ldloc.0 
+	  IL_004b:  box [mscorlib]System.Int32
+	  IL_0050:  stelem.ref 
+	  IL_0051:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0056:  ldloc.1 
+	  IL_0057:  ldarg.2 
+	  IL_0058:  callvirt instance void class [System.Xml]System.Xml.XmlNode::set_InnerXml(string)
+	  IL_005d:  ldloc.0 
+	  IL_005e:  ldc.i4.1 
+	  IL_005f:  add 
+	  IL_0060:  stloc.0 
+	  IL_0061:  nop 
+	  IL_0062:  ldloc.2 
+	  IL_0063:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0068:  brtrue IL_002a
 
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi sealed beforefieldinit TaskAttributeAttribute
-  	extends NAnt.Core.Attributes.BuildAttributeAttribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 01                                  ) // ited.
+	  IL_006d:  leave IL_0086
 
+	} // end .try 0
+	finally  { // 0
+	  IL_0072:  ldloc.2 
+	  IL_0073:  isinst [mscorlib]System.IDisposable
+	  IL_0078:  dup 
+	  IL_0079:  stloc.3 
+	  IL_007a:  brfalse IL_0085
 
-    // method line 1290
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
+	  IL_007f:  ldloc.3 
+	  IL_0080:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0085:  endfinally 
+	} // end handler 0
+	IL_0086:  ldarg.0 
+	IL_0087:  ldc.i4 2000
+	IL_008c:  ldstr "Updated all nodes successfully."
+	IL_0091:  ldc.i4.1 
+	IL_0092:  newarr [mscorlib]System.Object
+	IL_0097:  dup 
+	IL_0098:  ldc.i4.0 
+	IL_0099:  ldarg.2 
+	IL_009a:  stelem.ref 
+	IL_009b:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_00a0:  ret 
+    } // end of method XmlPokeTask::UpdateNodes
+
+    // method line 1190
+    .method private hidebysig 
+           instance default void SaveDocument (class [System.Xml]System.Xml.XmlDocument document, string fileName)  cil managed 
     {
-        // Method begins at RVA 0x17bf1
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class NAnt.Core.Attributes.BuildAttributeAttribute::'.ctor'(string)
-	IL_0007:  nop 
-	IL_0008:  ret 
-    } // end of method TaskAttributeAttribute::.ctor
+        // Method begins at RVA 0x15500
+	// Code size 104 (0x68)
+	.maxstack 7
+	.locals init (
+		class [mscorlib]System.Exception	V_0)
+	IL_0000:  nop 
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.0 
+	  IL_0003:  ldc.i4 2000
+	  IL_0008:  ldstr "Attempting to save XML document to '{0}'."
+	  IL_000d:  ldc.i4.1 
+	  IL_000e:  newarr [mscorlib]System.Object
+	  IL_0013:  dup 
+	  IL_0014:  ldc.i4.0 
+	  IL_0015:  ldarg.2 
+	  IL_0016:  stelem.ref 
+	  IL_0017:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_001c:  ldarg.1 
+	  IL_001d:  ldarg.2 
+	  IL_001e:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Save(string)
+	  IL_0023:  ldarg.0 
+	  IL_0024:  ldc.i4 2000
+	  IL_0029:  ldstr "XML document successfully saved to '{0}'."
+	  IL_002e:  ldc.i4.1 
+	  IL_002f:  newarr [mscorlib]System.Object
+	  IL_0034:  dup 
+	  IL_0035:  ldc.i4.0 
+	  IL_0036:  ldarg.2 
+	  IL_0037:  stelem.ref 
+	  IL_0038:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_003d:  nop 
+	  IL_003e:  leave IL_0067
 
-  } // end of class NAnt.Core.Attributes.TaskAttributeAttribute
-}
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0043:  stloc.0 
+	  IL_0044:  nop 
+	  IL_0045:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_004a:  ldstr "NA1162"
+	  IL_004f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0054:  ldarg.2 
+	  IL_0055:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_005a:  ldarg.0 
+	  IL_005b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0060:  ldloc.0 
+	  IL_0061:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0066:  throw 
+	} // end handler 0
+	IL_0067:  ret 
+    } // end of method XmlPokeTask::SaveDocument
 
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi sealed LocationType
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.Attributes.LocationType FrameworkDir = int32(0x00000000)
-    .field public static literal  valuetype NAnt.Core.Attributes.LocationType FrameworkSdkDir = int32(0x00000001)
+	.property instance class [mscorlib]System.IO.FileInfo XmlFile ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 66 69 6C 65 01 00 54 02 08 52 65 71 75   // ...file..T..Requ
+		69 72 65 64 01                                  ) // ired.
 
-  } // end of class NAnt.Core.Attributes.LocationType
-}
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.XmlPokeTask::get_XmlFile () 
+		.set instance default void NAnt.Core.Tasks.XmlPokeTask::set_XmlFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string XPath ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 05 78 70 61 74 68 01 00 54 02 08 52 65 71   // ...xpath..T..Req
+		75 69 72 65 64 01                               ) // uired.
 
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi beforefieldinit ProgramLocationAttribute
-  	extends [mscorlib]System.Attribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 04 00 00 00 02 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 00 54 02 0D 41 6C 6C 6F 77 4D 75 6C   // ited.T..AllowMul
-		74 69 70 6C 65 00                               ) // tiple.
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-    .field  private  valuetype NAnt.Core.Attributes.LocationType _locationType
+		.get instance default string NAnt.Core.Tasks.XmlPokeTask::get_XPath () 
+		.set instance default void NAnt.Core.Tasks.XmlPokeTask::set_XPath (string 'value') 
+	}
+	.property instance string Value ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 05 76 61 6C 75 65 01 00 54 02 08 52 65 71   // ...value..T..Req
+		75 69 72 65 64 01                               ) // uired.
 
-    // method line 1291
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.Core.Attributes.LocationType 'type')  cil managed 
-    {
-        // Method begins at RVA 0x17bfb
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Attributes.ProgramLocationAttribute::set_LocationType(valuetype NAnt.Core.Attributes.LocationType)
-	IL_000e:  ret 
-    } // end of method ProgramLocationAttribute::.ctor
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 01                                           ) // y.
 
-    // method line 1292
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Attributes.LocationType get_LocationType ()  cil managed 
-    {
-        // Method begins at RVA 0x17c0c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.Core.Attributes.LocationType	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Attributes.LocationType NAnt.Core.Attributes.ProgramLocationAttribute::_locationType
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+		.get instance default string NAnt.Core.Tasks.XmlPokeTask::get_Value () 
+		.set instance default void NAnt.Core.Tasks.XmlPokeTask::set_Value (string 'value') 
+	}
+	.property instance class NAnt.Core.Types.XmlNamespaceCollection Namespaces ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
+		01 00 0A 6E 61 6D 65 73 70 61 63 65 73 09 6E 61   // ...namespaces.na
+		6D 65 73 70 61 63 65 00 00                      ) // mespace..
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProgramLocationAttribute::get_LocationType
+		.get instance default class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPokeTask::get_Namespaces () 
+		.set instance default void NAnt.Core.Tasks.XmlPokeTask::set_Namespaces (class NAnt.Core.Types.XmlNamespaceCollection 'value') 
+	}
+	.property instance bool PreserveWhitespace ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 12 70 72 65 73 65 72 76 65 57 68 69 74 65   // ...preserveWhite
+		73 70 61 63 65 01 00 54 02 08 52 65 71 75 69 72   // space..T..Requir
+		65 64 00                                        ) // ed.
 
-    // method line 1293
-    .method public hidebysig specialname 
-           instance default void set_LocationType (valuetype NAnt.Core.Attributes.LocationType 'value')  cil managed 
-    {
-        // Method begins at RVA 0x17c27
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.Core.Attributes.LocationType NAnt.Core.Attributes.ProgramLocationAttribute::_locationType
-	IL_0008:  ret 
-    } // end of method ProgramLocationAttribute::set_LocationType
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-	.property instance valuetype NAnt.Core.Attributes.LocationType LocationType ()
-	{
-		.get instance default valuetype NAnt.Core.Attributes.LocationType NAnt.Core.Attributes.ProgramLocationAttribute::get_LocationType () 
-		.set instance default void NAnt.Core.Attributes.ProgramLocationAttribute::set_LocationType (valuetype NAnt.Core.Attributes.LocationType 'value') 
+		.get instance default bool NAnt.Core.Tasks.XmlPokeTask::get_PreserveWhitespace () 
+		.set instance default void NAnt.Core.Tasks.XmlPokeTask::set_PreserveWhitespace (bool 'value') 
 	}
-  } // end of class NAnt.Core.Attributes.ProgramLocationAttribute
+  } // end of class NAnt.Core.Tasks.XmlPokeTask
 }
 
-.namespace NAnt.Core.Attributes
+.namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit BuildElementArrayAttribute
-  	extends NAnt.Core.Attributes.BuildElementAttribute
+  .class public auto ansi beforefieldinit LoopTask
+  	extends NAnt.Core.TaskContainer
   {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 01                                  ) // ited.
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 66 6F 72 65 61 63 68 00 00 ) // ...foreach..
 
-    .field  private  class [mscorlib]System.Type _elementType
+    .field  private  string _prop
+    .field  private  string[] _props
+    .field  private  valuetype NAnt.Core.Tasks.LoopTask/LoopItem _loopItem
+    .field  private  valuetype NAnt.Core.Tasks.LoopTask/LoopTrim _loopTrim
+    .field  private  string _inAttribute
+    .field  private  string _delim
+    .field  private  class NAnt.Core.Tasks.InElement _inElement
+    .field  private  class NAnt.Core.TaskContainer _doStuff
 
-    // method line 1294
+    // method line 1191
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x17c31
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x158b7
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string)
-	IL_0007:  nop 
-	IL_0008:  ret 
-    } // end of method BuildElementArrayAttribute::.ctor
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld valuetype NAnt.Core.Tasks.LoopTask/LoopTrim NAnt.Core.Tasks.LoopTask::_loopTrim
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.TaskContainer::'.ctor'()
+	IL_000d:  ret 
+    } // end of method LoopTask::.ctor
 
-    // method line 1295
+    // method line 1192
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Type get_ElementType ()  cil managed 
+           instance default string get_Property ()  cil managed 
     {
-        // Method begins at RVA 0x17c3c
+        // Method begins at RVA 0x158c8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Type	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Type NAnt.Core.Attributes.BuildElementArrayAttribute::_elementType
+	IL_0002:  ldfld string NAnt.Core.Tasks.LoopTask::_prop
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method BuildElementArrayAttribute::get_ElementType
+    } // end of method LoopTask::get_Property
 
-    // method line 1296
+    // method line 1193
     .method public hidebysig specialname 
-           instance default void set_ElementType (class [mscorlib]System.Type 'value')  cil managed 
+           instance default void set_Property (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x17c57
-	// Code size 33 (0x21)
-	.maxstack 8
+        // Method begins at RVA 0x158e4
+	// Code size 104 (0x68)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		string[]	V_1,
+		int32	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldnull 
-	IL_0003:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0008:  brfalse IL_0019
-
-	IL_000d:  nop 
-	IL_000e:  ldstr "ElementType"
-	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0018:  throw 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldarg.1 
-	IL_001b:  stfld class [mscorlib]System.Type NAnt.Core.Attributes.BuildElementArrayAttribute::_elementType
-	IL_0020:  ret 
-    } // end of method BuildElementArrayAttribute::set_ElementType
-
-	.property instance class [mscorlib]System.Type ElementType ()
-	{
-		.get instance default class [mscorlib]System.Type NAnt.Core.Attributes.BuildElementArrayAttribute::get_ElementType () 
-		.set instance default void NAnt.Core.Attributes.BuildElementArrayAttribute::set_ElementType (class [mscorlib]System.Type 'value') 
-	}
-  } // end of class NAnt.Core.Attributes.BuildElementArrayAttribute
-}
-
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi sealed beforefieldinit FunctionSetAttribute
-  	extends [mscorlib]System.Attribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 04 00 00 00 02 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 00 54 02 0D 41 6C 6C 6F 77 4D 75 6C   // ited.T..AllowMul
-		74 69 70 6C 65 00                               ) // tiple.
-
-    .field  private  string _prefix
-    .field  private  string _category
-
-    // method line 1297
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string prefix, string category)  cil managed 
-    {
-        // Method begins at RVA 0x17c7c
-	// Code size 126 (0x7e)
-	.maxstack 3
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  brtrue IL_0019
-
-	IL_000d:  nop 
-	IL_000e:  ldstr "prefix"
-	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0018:  throw 
-	IL_0019:  ldarg.2 
-	IL_001a:  brtrue IL_002b
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Tasks.LoopTask::_prop
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldfld string NAnt.Core.Tasks.LoopTask::_prop
+	IL_000f:  ldc.i4.s 0x2c
+	IL_0011:  ldc.i4.0 
+	IL_0012:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	IL_0017:  stfld string[] NAnt.Core.Tasks.LoopTask::_props
+	IL_001c:  nop 
+	IL_001d:  ldarg.0 
+	IL_001e:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
+	IL_0023:  stloc.1 
+	IL_0024:  ldc.i4.0 
+	IL_0025:  stloc.2 
+	IL_0026:  br IL_005e
 
-	IL_001f:  nop 
-	IL_0020:  ldstr "category"
-	IL_0025:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_002a:  throw 
-	IL_002b:  ldarg.1 
-	IL_002c:  callvirt instance string string::Trim()
-	IL_0031:  callvirt instance int32 string::get_Length()
-	IL_0036:  brtrue IL_004d
+	IL_002b:  ldloc.1 
+	IL_002c:  ldloc.2 
+	IL_002d:  ldelem.ref 
+	IL_002e:  stloc.0 
+	IL_002f:  nop 
+	IL_0030:  ldarg.0 
+	IL_0031:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0036:  ldloc.0 
+	IL_0037:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsReadOnlyProperty(string)
+	IL_003c:  brfalse IL_0059
 
-	IL_003b:  nop 
-	IL_003c:  ldstr "prefix"
-	IL_0041:  ldarg.1 
-	IL_0042:  ldstr "A zero-length string is not an allowed value."
-	IL_0047:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
-	IL_004c:  throw 
-	IL_004d:  ldarg.2 
-	IL_004e:  callvirt instance string string::Trim()
-	IL_0053:  callvirt instance int32 string::get_Length()
-	IL_0058:  brtrue IL_006f
+	IL_0041:  nop 
+	IL_0042:  ldstr "Property is readonly! :"
+	IL_0047:  ldloc.0 
+	IL_0048:  call string string::Concat(string, string)
+	IL_004d:  ldarg.0 
+	IL_004e:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0053:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0058:  throw 
+	IL_0059:  nop 
+	IL_005a:  ldloc.2 
+	IL_005b:  ldc.i4.1 
+	IL_005c:  add 
+	IL_005d:  stloc.2 
+	IL_005e:  ldloc.2 
+	IL_005f:  ldloc.1 
+	IL_0060:  ldlen 
+	IL_0061:  conv.i4 
+	IL_0062:  blt IL_002b
 
-	IL_005d:  nop 
-	IL_005e:  ldstr "category"
-	IL_0063:  ldarg.2 
-	IL_0064:  ldstr "A zero-length string is not an allowed value."
-	IL_0069:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
-	IL_006e:  throw 
-	IL_006f:  ldarg.0 
-	IL_0070:  ldarg.1 
-	IL_0071:  stfld string NAnt.Core.Attributes.FunctionSetAttribute::_prefix
-	IL_0076:  ldarg.0 
-	IL_0077:  ldarg.2 
-	IL_0078:  stfld string NAnt.Core.Attributes.FunctionSetAttribute::_category
-	IL_007d:  ret 
-    } // end of method FunctionSetAttribute::.ctor
+	IL_0067:  ret 
+    } // end of method LoopTask::set_Property
 
-    // method line 1298
+    // method line 1194
     .method public hidebysig specialname 
-           instance default string get_Category ()  cil managed 
+           instance default valuetype NAnt.Core.Tasks.LoopTask/LoopItem get_ItemType ()  cil managed 
     {
-        // Method begins at RVA 0x17d08
+        // Method begins at RVA 0x15958
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		valuetype NAnt.Core.Tasks.LoopTask/LoopItem	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Attributes.FunctionSetAttribute::_category
+	IL_0002:  ldfld valuetype NAnt.Core.Tasks.LoopTask/LoopItem NAnt.Core.Tasks.LoopTask::_loopItem
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FunctionSetAttribute::get_Category
+    } // end of method LoopTask::get_ItemType
 
-    // method line 1299
+    // method line 1195
     .method public hidebysig specialname 
-           instance default void set_Category (string 'value')  cil managed 
+           instance default void set_ItemType (valuetype NAnt.Core.Tasks.LoopTask/LoopItem 'value')  cil managed 
     {
-        // Method begins at RVA 0x17d23
+        // Method begins at RVA 0x15973
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Attributes.FunctionSetAttribute::_category
+	IL_0003:  stfld valuetype NAnt.Core.Tasks.LoopTask/LoopItem NAnt.Core.Tasks.LoopTask::_loopItem
 	IL_0008:  ret 
-    } // end of method FunctionSetAttribute::set_Category
+    } // end of method LoopTask::set_ItemType
 
-    // method line 1300
+    // method line 1196
     .method public hidebysig specialname 
-           instance default string get_Prefix ()  cil managed 
+           instance default valuetype NAnt.Core.Tasks.LoopTask/LoopTrim get_TrimType ()  cil managed 
     {
-        // Method begins at RVA 0x17d30
+        // Method begins at RVA 0x15980
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		valuetype NAnt.Core.Tasks.LoopTask/LoopTrim	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Attributes.FunctionSetAttribute::_prefix
+	IL_0002:  ldfld valuetype NAnt.Core.Tasks.LoopTask/LoopTrim NAnt.Core.Tasks.LoopTask::_loopTrim
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FunctionSetAttribute::get_Prefix
+    } // end of method LoopTask::get_TrimType
 
-    // method line 1301
+    // method line 1197
     .method public hidebysig specialname 
-           instance default void set_Prefix (string 'value')  cil managed 
+           instance default void set_TrimType (valuetype NAnt.Core.Tasks.LoopTask/LoopTrim 'value')  cil managed 
     {
-        // Method begins at RVA 0x17d4b
+        // Method begins at RVA 0x1599b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Attributes.FunctionSetAttribute::_prefix
+	IL_0003:  stfld valuetype NAnt.Core.Tasks.LoopTask/LoopTrim NAnt.Core.Tasks.LoopTask::_loopTrim
 	IL_0008:  ret 
-    } // end of method FunctionSetAttribute::set_Prefix
-
-	.property instance string Category ()
-	{
-		.get instance default string NAnt.Core.Attributes.FunctionSetAttribute::get_Category () 
-		.set instance default void NAnt.Core.Attributes.FunctionSetAttribute::set_Category (string 'value') 
-	}
-	.property instance string Prefix ()
-	{
-		.get instance default string NAnt.Core.Attributes.FunctionSetAttribute::get_Prefix () 
-		.set instance default void NAnt.Core.Attributes.FunctionSetAttribute::set_Prefix (string 'value') 
-	}
-  } // end of class NAnt.Core.Attributes.FunctionSetAttribute
-}
-
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi sealed beforefieldinit DateTimeValidatorAttribute
-  	extends NAnt.Core.Attributes.ValidatorAttribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 01                                  ) // ited.
-
-
-    // method line 1302
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x17d55
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Attributes.ValidatorAttribute::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method DateTimeValidatorAttribute::.ctor
-
-    // method line 1303
-    .method public virtual hidebysig 
-           instance default void Validate (object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x17d60
-	// Code size 56 (0x38)
-	.maxstack 3
-	.locals init (
-		class [mscorlib]System.Exception	V_0)
-	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0008:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.Convert::ToDateTime(object, class [mscorlib]System.IFormatProvider)
-	  IL_000d:  pop 
-	  IL_000e:  nop 
-	  IL_000f:  leave IL_0037
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0014:  stloc.0 
-	  IL_0015:  nop 
-	  IL_0016:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_001b:  ldstr "NA1089"
-	  IL_0020:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0025:  ldarg.1 
-	  IL_0026:  callvirt instance string object::ToString()
-	  IL_002b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0030:  ldloc.0 
-	  IL_0031:  newobj instance void class NAnt.Core.ValidationException::'.ctor'(string, class [mscorlib]System.Exception)
-	  IL_0036:  throw 
-	} // end handler 0
-	IL_0037:  ret 
-    } // end of method DateTimeValidatorAttribute::Validate
-
-  } // end of class NAnt.Core.Attributes.DateTimeValidatorAttribute
-}
-
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi sealed beforefieldinit BuildElementCollectionAttribute
-  	extends NAnt.Core.Attributes.BuildElementArrayAttribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 01                                  ) // ited.
-
-    .field  private  string _elementName
-
-    // method line 1304
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string collectionName, string childName)  cil managed 
-    {
-        // Method begins at RVA 0x17db4
-	// Code size 73 (0x49)
-	.maxstack 3
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string)
-	IL_0007:  nop 
-	IL_0008:  ldarg.2 
-	IL_0009:  brtrue IL_001a
-
-	IL_000e:  nop 
-	IL_000f:  ldstr "childName"
-	IL_0014:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0019:  throw 
-	IL_001a:  ldarg.0 
-	IL_001b:  ldarg.2 
-	IL_001c:  callvirt instance string string::Trim()
-	IL_0021:  stfld string NAnt.Core.Attributes.BuildElementCollectionAttribute::_elementName
-	IL_0026:  ldarg.0 
-	IL_0027:  ldfld string NAnt.Core.Attributes.BuildElementCollectionAttribute::_elementName
-	IL_002c:  callvirt instance int32 string::get_Length()
-	IL_0031:  brtrue IL_0048
-
-	IL_0036:  nop 
-	IL_0037:  ldstr "childName"
-	IL_003c:  ldarg.2 
-	IL_003d:  ldstr "A zero-length string is not an allowed value."
-	IL_0042:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
-	IL_0047:  throw 
-	IL_0048:  ret 
-    } // end of method BuildElementCollectionAttribute::.ctor
+    } // end of method LoopTask::set_TrimType
 
-    // method line 1305
+    // method line 1198
     .method public hidebysig specialname 
-           instance default string get_ChildElementName ()  cil managed 
+           instance default string get_Source ()  cil managed 
     {
-        // Method begins at RVA 0x17e0c
+        // Method begins at RVA 0x159a8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Attributes.BuildElementCollectionAttribute::_elementName
+	IL_0002:  ldfld string NAnt.Core.Tasks.LoopTask::_inAttribute
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method BuildElementCollectionAttribute::get_ChildElementName
-
-	.property instance string ChildElementName ()
-	{
-		.get instance default string NAnt.Core.Attributes.BuildElementCollectionAttribute::get_ChildElementName () 
-	}
-  } // end of class NAnt.Core.Attributes.BuildElementCollectionAttribute
-}
-
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi beforefieldinit BuildElementAttribute
-  	extends [mscorlib]System.Attribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 C0 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 01                                  ) // ited.
-
-    .field  private  string _name
-    .field  private  bool _required
-    .field  private  bool _processXml
+    } // end of method LoopTask::get_Source
 
-    // method line 1306
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
+    // method line 1199
+    .method public hidebysig specialname 
+           instance default void set_Source (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x17a14
-	// Code size 22 (0x16)
+        // Method begins at RVA 0x159c3
+	// Code size 14 (0xe)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Attributes.BuildElementAttribute::_processXml
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [mscorlib]System.Attribute::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  call instance void class NAnt.Core.Attributes.BuildElementAttribute::set_Name(string)
-	IL_0015:  ret 
-    } // end of method BuildElementAttribute::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.LoopTask::_inAttribute
+	IL_000d:  ret 
+    } // end of method LoopTask::set_Source
 
-    // method line 1307
+    // method line 1200
     .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+           instance default string get_Delimiter ()  cil managed 
     {
-        // Method begins at RVA 0x17a2c
+        // Method begins at RVA 0x159d4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Attributes.BuildElementAttribute::_name
+	IL_0002:  ldfld string NAnt.Core.Tasks.LoopTask::_delim
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method BuildElementAttribute::get_Name
+    } // end of method LoopTask::get_Delimiter
 
-    // method line 1308
+    // method line 1201
     .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
+           instance default void set_Delimiter (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x17a48
-	// Code size 66 (0x42)
-	.maxstack 3
+        // Method begins at RVA 0x159ef
+	// Code size 42 (0x2a)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	IL_0002:  brfalse IL_0012
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "name"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 string::get_Length()
+	IL_000d:  brtrue IL_0020
+
+	IL_0012:  nop 
 	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  callvirt instance string string::Trim()
-	IL_001a:  stfld string NAnt.Core.Attributes.BuildElementAttribute::_name
-	IL_001f:  ldarg.0 
-	IL_0020:  ldfld string NAnt.Core.Attributes.BuildElementAttribute::_name
-	IL_0025:  callvirt instance int32 string::get_Length()
-	IL_002a:  brtrue IL_0041
+	IL_0014:  ldnull 
+	IL_0015:  stfld string NAnt.Core.Tasks.LoopTask::_delim
+	IL_001a:  nop 
+	IL_001b:  br IL_0029
 
-	IL_002f:  nop 
-	IL_0030:  ldstr "name"
-	IL_0035:  ldarg.1 
-	IL_0036:  ldstr "A zero-length string is not an allowed value."
-	IL_003b:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
-	IL_0040:  throw 
-	IL_0041:  ret 
-    } // end of method BuildElementAttribute::set_Name
+	IL_0020:  nop 
+	IL_0021:  ldarg.0 
+	IL_0022:  ldarg.1 
+	IL_0023:  stfld string NAnt.Core.Tasks.LoopTask::_delim
+	IL_0028:  nop 
+	IL_0029:  ret 
+    } // end of method LoopTask::set_Delimiter
 
-    // method line 1309
+    // method line 1202
     .method public hidebysig specialname 
-           instance default bool get_Required ()  cil managed 
+           instance default class NAnt.Core.Tasks.InElement get_InElement ()  cil managed 
     {
-        // Method begins at RVA 0x17a98
+        // Method begins at RVA 0x15a1c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Tasks.InElement	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Attributes.BuildElementAttribute::_required
+	IL_0002:  ldfld class NAnt.Core.Tasks.InElement NAnt.Core.Tasks.LoopTask::_inElement
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method BuildElementAttribute::get_Required
+    } // end of method LoopTask::get_InElement
 
-    // method line 1310
+    // method line 1203
     .method public hidebysig specialname 
-           instance default void set_Required (bool 'value')  cil managed 
+           instance default void set_InElement (class NAnt.Core.Tasks.InElement 'value')  cil managed 
     {
-        // Method begins at RVA 0x17ab3
+        // Method begins at RVA 0x15a37
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Attributes.BuildElementAttribute::_required
+	IL_0003:  stfld class NAnt.Core.Tasks.InElement NAnt.Core.Tasks.LoopTask::_inElement
 	IL_0008:  ret 
-    } // end of method BuildElementAttribute::set_Required
+    } // end of method LoopTask::set_InElement
 
-    // method line 1311
+    // method line 1204
     .method public hidebysig specialname 
-           instance default bool get_ProcessXml ()  cil managed 
+           instance default class NAnt.Core.TaskContainer get_StuffToDo ()  cil managed 
     {
-        // Method begins at RVA 0x17ac0
+        // Method begins at RVA 0x15a44
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.TaskContainer	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Attributes.BuildElementAttribute::_processXml
+	IL_0002:  ldfld class NAnt.Core.TaskContainer NAnt.Core.Tasks.LoopTask::_doStuff
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method BuildElementAttribute::get_ProcessXml
+    } // end of method LoopTask::get_StuffToDo
 
-    // method line 1312
+    // method line 1205
     .method public hidebysig specialname 
-           instance default void set_ProcessXml (bool 'value')  cil managed 
+           instance default void set_StuffToDo (class NAnt.Core.TaskContainer 'value')  cil managed 
     {
-        // Method begins at RVA 0x17adb
+        // Method begins at RVA 0x15a5f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Attributes.BuildElementAttribute::_processXml
+	IL_0003:  stfld class NAnt.Core.TaskContainer NAnt.Core.Tasks.LoopTask::_doStuff
 	IL_0008:  ret 
-    } // end of method BuildElementAttribute::set_ProcessXml
+    } // end of method LoopTask::set_StuffToDo
 
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.Core.Attributes.BuildElementAttribute::get_Name () 
-		.set instance default void NAnt.Core.Attributes.BuildElementAttribute::set_Name (string 'value') 
-	}
-	.property instance bool Required ()
-	{
-		.get instance default bool NAnt.Core.Attributes.BuildElementAttribute::get_Required () 
-		.set instance default void NAnt.Core.Attributes.BuildElementAttribute::set_Required (bool 'value') 
-	}
-	.property instance bool ProcessXml ()
-	{
-		.get instance default bool NAnt.Core.Attributes.BuildElementAttribute::get_ProcessXml () 
-		.set instance default void NAnt.Core.Attributes.BuildElementAttribute::set_ProcessXml (bool 'value') 
-	}
-  } // end of class NAnt.Core.Attributes.BuildElementAttribute
-}
+    // method line 1206
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x15a6c
+	// Code size 1480 (0x5c8)
+	.maxstack 5
+	.locals init (
+		string[]	V_0,
+		int32	V_1,
+		valuetype NAnt.Core.Tasks.LoopTask/LoopItem	V_2,
+		class [mscorlib]System.IO.DirectoryInfo	V_3,
+		class [mscorlib]System.IO.FileInfo[]	V_4,
+		class [mscorlib]System.IO.FileInfo	V_5,
+		class [mscorlib]System.IO.FileInfo[]	V_6,
+		int32	V_7,
+		string	V_8,
+		class [System]System.Collections.Specialized.StringEnumerator	V_9,
+		class [mscorlib]System.IDisposable	V_10,
+		class [mscorlib]System.IO.DirectoryInfo	V_11,
+		class [mscorlib]System.IO.DirectoryInfo[]	V_12,
+		class [mscorlib]System.IO.DirectoryInfo	V_13,
+		class [mscorlib]System.IO.DirectoryInfo[]	V_14,
+		int32	V_15,
+		string	V_16,
+		class [System]System.Collections.Specialized.StringEnumerator	V_17,
+		class [mscorlib]System.IDisposable	V_18,
+		string	V_19,
+		class [System]System.Collections.Specialized.StringEnumerator	V_20,
+		class [mscorlib]System.IDisposable	V_21,
+		string[]	V_22,
+		string	V_23,
+		string[]	V_24,
+		int32	V_25,
+		int32	V_26)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
+	IL_0007:  ldlen 
+	IL_0008:  conv.i4 
+	IL_0009:  newarr [mscorlib]System.String
+	IL_000e:  stloc.0 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  stloc.1 
+	IL_0011:  br IL_0032
 
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi sealed beforefieldinit TaskNameAttribute
-  	extends NAnt.Core.Attributes.ElementNameAttribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 04 00 00 00 02 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 00 54 02 0D 41 6C 6C 6F 77 4D 75 6C   // ited.T..AllowMul
-		74 69 70 6C 65 00                               ) // tiple.
+	IL_0016:  nop 
+	IL_0017:  ldloc.0 
+	IL_0018:  ldloc.1 
+	IL_0019:  ldarg.0 
+	IL_001a:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_001f:  ldarg.0 
+	IL_0020:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
+	IL_0025:  ldloc.1 
+	IL_0026:  ldelem.ref 
+	IL_0027:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
+	IL_002c:  stelem.ref 
+	IL_002d:  nop 
+	IL_002e:  ldloc.1 
+	IL_002f:  ldc.i4.1 
+	IL_0030:  add 
+	IL_0031:  stloc.1 
+	IL_0032:  ldloc.1 
+	IL_0033:  ldloc.0 
+	IL_0034:  ldlen 
+	IL_0035:  conv.i4 
+	IL_0036:  blt IL_0016
 
+	.try { // 3
+	  IL_003b:  nop 
+	  IL_003c:  ldarg.0 
+	  IL_003d:  call instance valuetype NAnt.Core.Tasks.LoopTask/LoopItem class NAnt.Core.Tasks.LoopTask::get_ItemType()
+	  IL_0042:  stloc.2 
+	  IL_0043:  ldloc.2 
+	  IL_0044:  ldc.i4.1 
+	  IL_0045:  sub 
+	  IL_0046:  switch (
+	    IL_0060,
+	    IL_01f7,
+	    IL_04e4,
+	    IL_0390)
+	  IL_005b:  br IL_058c
 
-    // method line 1313
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
-    {
-        // Method begins at RVA 0x17e27
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string)
-	IL_0007:  nop 
-	IL_0008:  ret 
-    } // end of method TaskNameAttribute::.ctor
+	  IL_0060:  ldarg.0 
+	  IL_0061:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_0066:  call bool string::IsNullOrEmpty(string)
+	  IL_006b:  brfalse IL_009c
 
-  } // end of class NAnt.Core.Attributes.TaskNameAttribute
-}
+	  IL_0070:  ldarg.0 
+	  IL_0071:  call instance class NAnt.Core.Tasks.InElement class NAnt.Core.Tasks.LoopTask::get_InElement()
+	  IL_0076:  brtrue IL_009c
 
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi abstract beforefieldinit BuildAttributeAttribute
-  	extends [mscorlib]System.Attribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 01                                  ) // ited.
+	  IL_007b:  nop 
+	  IL_007c:  ldstr "Invalid foreach"
+	  IL_0081:  ldarg.0 
+	  IL_0082:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0087:  ldstr "Nothing to work with...!"
+	  IL_008c:  ldstr "in"
+	  IL_0091:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string, string)
+	  IL_0096:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_009b:  throw 
+	  IL_009c:  ldarg.0 
+	  IL_009d:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_00a2:  call bool string::IsNullOrEmpty(string)
+	  IL_00a7:  brtrue IL_0172
 
-    .field  private  string _name
-    .field  private  bool _required
-    .field  private  bool _expandProperties
-    .field  private  bool _processXml
+	  IL_00ac:  nop 
+	  IL_00ad:  ldarg.0 
+	  IL_00ae:  ldarg.0 
+	  IL_00af:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_00b4:  ldarg.0 
+	  IL_00b5:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_00ba:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	  IL_00bf:  call instance void class NAnt.Core.Tasks.LoopTask::set_Source(string)
+	  IL_00c4:  ldarg.0 
+	  IL_00c5:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_00ca:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_00cf:  brtrue IL_00fb
 
-    // method line 1314
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
-    {
-        // Method begins at RVA 0x17aef
-	// Code size 29 (0x1d)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_expandProperties
-	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4.1 
-	IL_0009:  stfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_processXml
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance void class [mscorlib]System.Attribute::'.ctor'()
-	IL_0014:  nop 
-	IL_0015:  ldarg.0 
-	IL_0016:  ldarg.1 
-	IL_0017:  call instance void class NAnt.Core.Attributes.BuildAttributeAttribute::set_Name(string)
-	IL_001c:  ret 
-    } // end of method BuildAttributeAttribute::.ctor
+	  IL_00d4:  nop 
+	  IL_00d5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_00da:  ldstr "NA1134"
+	  IL_00df:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_00e4:  ldarg.0 
+	  IL_00e5:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_00ea:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_00ef:  ldarg.0 
+	  IL_00f0:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_00f5:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_00fa:  throw 
+	  IL_00fb:  ldarg.0 
+	  IL_00fc:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
+	  IL_0101:  ldlen 
+	  IL_0102:  conv.i4 
+	  IL_0103:  ldc.i4.1 
+	  IL_0104:  beq IL_011b
 
-    // method line 1315
-    .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x17b10
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Attributes.BuildAttributeAttribute::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0109:  nop 
+	  IL_010a:  ldstr "Only one property is valid for item=\"File\""
+	  IL_010f:  ldarg.0 
+	  IL_0110:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0115:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_011a:  throw 
+	  IL_011b:  ldarg.0 
+	  IL_011c:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_0121:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	  IL_0126:  stloc.3 
+	  IL_0127:  ldloc.3 
+	  IL_0128:  callvirt instance class [mscorlib]System.IO.FileInfo[] class [mscorlib]System.IO.DirectoryInfo::GetFiles()
+	  IL_012d:  stloc.s 4
+	  IL_012f:  nop 
+	  IL_0130:  ldloc.s 4
+	  IL_0132:  stloc.s 6
+	  IL_0134:  ldc.i4.0 
+	  IL_0135:  stloc.s 7
+	  IL_0137:  br IL_0161
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildAttributeAttribute::get_Name
+	  IL_013c:  ldloc.s 6
+	  IL_013e:  ldloc.s 7
+	  IL_0140:  ldelem.ref 
+	  IL_0141:  stloc.s 5
+	  IL_0143:  nop 
+	  IL_0144:  ldarg.0 
+	  IL_0145:  ldc.i4.1 
+	  IL_0146:  newarr [mscorlib]System.String
+	  IL_014b:  dup 
+	  IL_014c:  ldc.i4.0 
+	  IL_014d:  ldloc.s 5
+	  IL_014f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0154:  stelem.ref 
+	  IL_0155:  callvirt instance void class NAnt.Core.Tasks.LoopTask::DoWork(string[])
+	  IL_015a:  nop 
+	  IL_015b:  ldloc.s 7
+	  IL_015d:  ldc.i4.1 
+	  IL_015e:  add 
+	  IL_015f:  stloc.s 7
+	  IL_0161:  ldloc.s 7
+	  IL_0163:  ldloc.s 6
+	  IL_0165:  ldlen 
+	  IL_0166:  conv.i4 
+	  IL_0167:  blt IL_013c
 
-    // method line 1316
-    .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x17b2c
-	// Code size 66 (0x42)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	  IL_016c:  nop 
+	  IL_016d:  br IL_01f2
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "name"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  callvirt instance string string::Trim()
-	IL_001a:  stfld string NAnt.Core.Attributes.BuildAttributeAttribute::_name
-	IL_001f:  ldarg.0 
-	IL_0020:  ldfld string NAnt.Core.Attributes.BuildAttributeAttribute::_name
-	IL_0025:  callvirt instance int32 string::get_Length()
-	IL_002a:  brtrue IL_0041
+	  IL_0172:  nop 
+	  IL_0173:  ldarg.0 
+	  IL_0174:  call instance class NAnt.Core.TaskContainer class NAnt.Core.Tasks.LoopTask::get_StuffToDo()
+	  IL_0179:  brtrue IL_0190
 
-	IL_002f:  nop 
-	IL_0030:  ldstr "name"
-	IL_0035:  ldarg.1 
-	IL_0036:  ldstr "A zero-length string is not an allowed value."
-	IL_003b:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
-	IL_0040:  throw 
-	IL_0041:  ret 
-    } // end of method BuildAttributeAttribute::set_Name
+	  IL_017e:  nop 
+	  IL_017f:  ldstr "Must use <do> with <in>."
+	  IL_0184:  ldarg.0 
+	  IL_0185:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_018a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_018f:  throw 
+	  IL_0190:  nop 
+	  IL_0191:  ldarg.0 
+	  IL_0192:  call instance class NAnt.Core.Tasks.InElement class NAnt.Core.Tasks.LoopTask::get_InElement()
+	  IL_0197:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.InElement::get_Items()
+	  IL_019c:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	  IL_01a1:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_01a6:  stloc.s 9
+	  .try { // 0
+	    IL_01a8:  br IL_01c9
 
-    // method line 1317
-    .method public hidebysig specialname 
-           instance default bool get_Required ()  cil managed 
-    {
-        // Method begins at RVA 0x17b7c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_required
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	    IL_01ad:  ldloc.s 9
+	    IL_01af:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_01b4:  stloc.s 8
+	    IL_01b6:  nop 
+	    IL_01b7:  ldarg.0 
+	    IL_01b8:  ldc.i4.1 
+	    IL_01b9:  newarr [mscorlib]System.String
+	    IL_01be:  dup 
+	    IL_01bf:  ldc.i4.0 
+	    IL_01c0:  ldloc.s 8
+	    IL_01c2:  stelem.ref 
+	    IL_01c3:  callvirt instance void class NAnt.Core.Tasks.LoopTask::DoWork(string[])
+	    IL_01c8:  nop 
+	    IL_01c9:  ldloc.s 9
+	    IL_01cb:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_01d0:  brtrue IL_01ad
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildAttributeAttribute::get_Required
+	    IL_01d5:  leave IL_01f1
 
-    // method line 1318
-    .method public hidebysig specialname 
-           instance default void set_Required (bool 'value')  cil managed 
+	  } // end .try 0
+	  finally  { // 0
+	    IL_01da:  ldloc.s 9
+	    IL_01dc:  isinst [mscorlib]System.IDisposable
+	    IL_01e1:  dup 
+	    IL_01e2:  stloc.s 10
+	    IL_01e4:  brfalse IL_01f0
+
+	    IL_01e9:  ldloc.s 10
+	    IL_01eb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_01f0:  endfinally 
+	  } // end handler 0
+	  IL_01f1:  nop 
+	  IL_01f2:  leave IL_058c
+
+	  IL_01f7:  ldarg.0 
+	  IL_01f8:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_01fd:  call bool string::IsNullOrEmpty(string)
+	  IL_0202:  brfalse IL_0233
+
+	  IL_0207:  ldarg.0 
+	  IL_0208:  call instance class NAnt.Core.Tasks.InElement class NAnt.Core.Tasks.LoopTask::get_InElement()
+	  IL_020d:  brtrue IL_0233
+
+	  IL_0212:  nop 
+	  IL_0213:  ldstr "Invalid foreach"
+	  IL_0218:  ldarg.0 
+	  IL_0219:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_021e:  ldstr "Nothing to work with...!"
+	  IL_0223:  ldstr "in"
+	  IL_0228:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string, string)
+	  IL_022d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0232:  throw 
+	  IL_0233:  ldarg.0 
+	  IL_0234:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
+	  IL_0239:  ldlen 
+	  IL_023a:  conv.i4 
+	  IL_023b:  ldc.i4.1 
+	  IL_023c:  beq IL_0253
+
+	  IL_0241:  nop 
+	  IL_0242:  ldstr "Only one property is valid for item=\"Folder\""
+	  IL_0247:  ldarg.0 
+	  IL_0248:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_024d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_0252:  throw 
+	  IL_0253:  ldarg.0 
+	  IL_0254:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_0259:  call bool string::IsNullOrEmpty(string)
+	  IL_025e:  brtrue IL_030b
+
+	  IL_0263:  nop 
+	  IL_0264:  ldarg.0 
+	  IL_0265:  ldarg.0 
+	  IL_0266:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_026b:  ldarg.0 
+	  IL_026c:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_0271:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	  IL_0276:  call instance void class NAnt.Core.Tasks.LoopTask::set_Source(string)
+	  IL_027b:  ldarg.0 
+	  IL_027c:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_0281:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_0286:  brtrue IL_02b2
+
+	  IL_028b:  nop 
+	  IL_028c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0291:  ldstr "NA1134"
+	  IL_0296:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_029b:  ldarg.0 
+	  IL_029c:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_02a1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_02a6:  ldarg.0 
+	  IL_02a7:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_02ac:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_02b1:  throw 
+	  IL_02b2:  ldarg.0 
+	  IL_02b3:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_02b8:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	  IL_02bd:  stloc.s 11
+	  IL_02bf:  ldloc.s 11
+	  IL_02c1:  callvirt instance class [mscorlib]System.IO.DirectoryInfo[] class [mscorlib]System.IO.DirectoryInfo::GetDirectories()
+	  IL_02c6:  stloc.s 12
+	  IL_02c8:  nop 
+	  IL_02c9:  ldloc.s 12
+	  IL_02cb:  stloc.s 14
+	  IL_02cd:  ldc.i4.0 
+	  IL_02ce:  stloc.s 15
+	  IL_02d0:  br IL_02fa
+
+	  IL_02d5:  ldloc.s 14
+	  IL_02d7:  ldloc.s 15
+	  IL_02d9:  ldelem.ref 
+	  IL_02da:  stloc.s 13
+	  IL_02dc:  nop 
+	  IL_02dd:  ldarg.0 
+	  IL_02de:  ldc.i4.1 
+	  IL_02df:  newarr [mscorlib]System.String
+	  IL_02e4:  dup 
+	  IL_02e5:  ldc.i4.0 
+	  IL_02e6:  ldloc.s 13
+	  IL_02e8:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_02ed:  stelem.ref 
+	  IL_02ee:  callvirt instance void class NAnt.Core.Tasks.LoopTask::DoWork(string[])
+	  IL_02f3:  nop 
+	  IL_02f4:  ldloc.s 15
+	  IL_02f6:  ldc.i4.1 
+	  IL_02f7:  add 
+	  IL_02f8:  stloc.s 15
+	  IL_02fa:  ldloc.s 15
+	  IL_02fc:  ldloc.s 14
+	  IL_02fe:  ldlen 
+	  IL_02ff:  conv.i4 
+	  IL_0300:  blt IL_02d5
+
+	  IL_0305:  nop 
+	  IL_0306:  br IL_038b
+
+	  IL_030b:  nop 
+	  IL_030c:  ldarg.0 
+	  IL_030d:  call instance class NAnt.Core.TaskContainer class NAnt.Core.Tasks.LoopTask::get_StuffToDo()
+	  IL_0312:  brtrue IL_0329
+
+	  IL_0317:  nop 
+	  IL_0318:  ldstr "Must use <do> with <in>."
+	  IL_031d:  ldarg.0 
+	  IL_031e:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0323:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_0328:  throw 
+	  IL_0329:  nop 
+	  IL_032a:  ldarg.0 
+	  IL_032b:  call instance class NAnt.Core.Tasks.InElement class NAnt.Core.Tasks.LoopTask::get_InElement()
+	  IL_0330:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.InElement::get_Items()
+	  IL_0335:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
+	  IL_033a:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_033f:  stloc.s 17
+	  .try { // 1
+	    IL_0341:  br IL_0362
+
+	    IL_0346:  ldloc.s 17
+	    IL_0348:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_034d:  stloc.s 16
+	    IL_034f:  nop 
+	    IL_0350:  ldarg.0 
+	    IL_0351:  ldc.i4.1 
+	    IL_0352:  newarr [mscorlib]System.String
+	    IL_0357:  dup 
+	    IL_0358:  ldc.i4.0 
+	    IL_0359:  ldloc.s 16
+	    IL_035b:  stelem.ref 
+	    IL_035c:  callvirt instance void class NAnt.Core.Tasks.LoopTask::DoWork(string[])
+	    IL_0361:  nop 
+	    IL_0362:  ldloc.s 17
+	    IL_0364:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_0369:  brtrue IL_0346
+
+	    IL_036e:  leave IL_038a
+
+	  } // end .try 1
+	  finally  { // 1
+	    IL_0373:  ldloc.s 17
+	    IL_0375:  isinst [mscorlib]System.IDisposable
+	    IL_037a:  dup 
+	    IL_037b:  stloc.s 18
+	    IL_037d:  brfalse IL_0389
+
+	    IL_0382:  ldloc.s 18
+	    IL_0384:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0389:  endfinally 
+	  } // end handler 1
+	  IL_038a:  nop 
+	  IL_038b:  leave IL_058c
+
+	  IL_0390:  ldarg.0 
+	  IL_0391:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_0396:  call bool string::IsNullOrEmpty(string)
+	  IL_039b:  brfalse IL_03cc
+
+	  IL_03a0:  ldarg.0 
+	  IL_03a1:  call instance class NAnt.Core.Tasks.InElement class NAnt.Core.Tasks.LoopTask::get_InElement()
+	  IL_03a6:  brtrue IL_03cc
+
+	  IL_03ab:  nop 
+	  IL_03ac:  ldstr "Invalid foreach"
+	  IL_03b1:  ldarg.0 
+	  IL_03b2:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_03b7:  ldstr "Nothing to work with...!"
+	  IL_03bc:  ldstr "in"
+	  IL_03c1:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string, string)
+	  IL_03c6:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_03cb:  throw 
+	  IL_03cc:  ldarg.0 
+	  IL_03cd:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
+	  IL_03d2:  ldlen 
+	  IL_03d3:  conv.i4 
+	  IL_03d4:  ldc.i4.1 
+	  IL_03d5:  ble IL_03f7
+
+	  IL_03da:  ldarg.0 
+	  IL_03db:  call instance string class NAnt.Core.Tasks.LoopTask::get_Delimiter()
+	  IL_03e0:  brtrue IL_03f7
+
+	  IL_03e5:  nop 
+	  IL_03e6:  ldstr "Delimiter(s) must be specified if multiple properties are specified"
+	  IL_03eb:  ldarg.0 
+	  IL_03ec:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_03f1:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_03f6:  throw 
+	  IL_03f7:  ldarg.0 
+	  IL_03f8:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_03fd:  call bool string::IsNullOrEmpty(string)
+	  IL_0402:  brtrue IL_0468
+
+	  IL_0407:  nop 
+	  IL_0408:  ldarg.0 
+	  IL_0409:  ldarg.0 
+	  IL_040a:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_040f:  ldarg.0 
+	  IL_0410:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_0415:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	  IL_041a:  call instance void class NAnt.Core.Tasks.LoopTask::set_Source(string)
+	  IL_041f:  ldarg.0 
+	  IL_0420:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_0425:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_042a:  brtrue IL_0456
+
+	  IL_042f:  nop 
+	  IL_0430:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0435:  ldstr "NA1133"
+	  IL_043a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_043f:  ldarg.0 
+	  IL_0440:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_0445:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_044a:  ldarg.0 
+	  IL_044b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0450:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_0455:  throw 
+	  IL_0456:  ldarg.0 
+	  IL_0457:  ldarg.0 
+	  IL_0458:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_045d:  call instance void class NAnt.Core.Tasks.LoopTask::DoWorkOnFileLines(string)
+	  IL_0462:  nop 
+	  IL_0463:  br IL_04df
+
+	  IL_0468:  nop 
+	  IL_0469:  ldarg.0 
+	  IL_046a:  call instance class NAnt.Core.TaskContainer class NAnt.Core.Tasks.LoopTask::get_StuffToDo()
+	  IL_046f:  brtrue IL_0486
+
+	  IL_0474:  nop 
+	  IL_0475:  ldstr "Must use <do> with <in>."
+	  IL_047a:  ldarg.0 
+	  IL_047b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0480:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_0485:  throw 
+	  IL_0486:  nop 
+	  IL_0487:  ldarg.0 
+	  IL_0488:  call instance class NAnt.Core.Tasks.InElement class NAnt.Core.Tasks.LoopTask::get_InElement()
+	  IL_048d:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.InElement::get_Items()
+	  IL_0492:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	  IL_0497:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_049c:  stloc.s 20
+	  .try { // 2
+	    IL_049e:  br IL_04b6
+
+	    IL_04a3:  ldloc.s 20
+	    IL_04a5:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_04aa:  stloc.s 19
+	    IL_04ac:  nop 
+	    IL_04ad:  ldarg.0 
+	    IL_04ae:  ldloc.s 19
+	    IL_04b0:  call instance void class NAnt.Core.Tasks.LoopTask::DoWorkOnFileLines(string)
+	    IL_04b5:  nop 
+	    IL_04b6:  ldloc.s 20
+	    IL_04b8:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_04bd:  brtrue IL_04a3
+
+	    IL_04c2:  leave IL_04de
+
+	  } // end .try 2
+	  finally  { // 2
+	    IL_04c7:  ldloc.s 20
+	    IL_04c9:  isinst [mscorlib]System.IDisposable
+	    IL_04ce:  dup 
+	    IL_04cf:  stloc.s 21
+	    IL_04d1:  brfalse IL_04dd
+
+	    IL_04d6:  ldloc.s 21
+	    IL_04d8:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_04dd:  endfinally 
+	  } // end handler 2
+	  IL_04de:  nop 
+	  IL_04df:  leave IL_058c
+
+	  IL_04e4:  ldarg.0 
+	  IL_04e5:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_04ea:  call bool string::IsNullOrEmpty(string)
+	  IL_04ef:  brfalse IL_04fa
+
+	  IL_04f4:  nop 
+	  IL_04f5:  leave IL_05c7
+
+	  IL_04fa:  ldarg.0 
+	  IL_04fb:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
+	  IL_0500:  ldlen 
+	  IL_0501:  conv.i4 
+	  IL_0502:  ldc.i4.1 
+	  IL_0503:  ble IL_051a
+
+	  IL_0508:  nop 
+	  IL_0509:  ldstr "Only one property may be specified for item=\"String\""
+	  IL_050e:  ldarg.0 
+	  IL_050f:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0514:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_0519:  throw 
+	  IL_051a:  ldarg.0 
+	  IL_051b:  call instance string class NAnt.Core.Tasks.LoopTask::get_Delimiter()
+	  IL_0520:  brtrue IL_0537
+
+	  IL_0525:  nop 
+	  IL_0526:  ldstr "Delimiter must be specified for item=\"String\""
+	  IL_052b:  ldarg.0 
+	  IL_052c:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0531:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_0536:  throw 
+	  IL_0537:  ldarg.0 
+	  IL_0538:  call instance string class NAnt.Core.Tasks.LoopTask::get_Source()
+	  IL_053d:  ldarg.0 
+	  IL_053e:  call instance string class NAnt.Core.Tasks.LoopTask::get_Delimiter()
+	  IL_0543:  callvirt instance char[] string::ToCharArray()
+	  IL_0548:  callvirt instance string[] string::Split(char[])
+	  IL_054d:  stloc.s 22
+	  IL_054f:  nop 
+	  IL_0550:  ldloc.s 22
+	  IL_0552:  stloc.s 24
+	  IL_0554:  ldc.i4.0 
+	  IL_0555:  stloc.s 25
+	  IL_0557:  br IL_057c
+
+	  IL_055c:  ldloc.s 24
+	  IL_055e:  ldloc.s 25
+	  IL_0560:  ldelem.ref 
+	  IL_0561:  stloc.s 23
+	  IL_0563:  nop 
+	  IL_0564:  ldarg.0 
+	  IL_0565:  ldc.i4.1 
+	  IL_0566:  newarr [mscorlib]System.String
+	  IL_056b:  dup 
+	  IL_056c:  ldc.i4.0 
+	  IL_056d:  ldloc.s 23
+	  IL_056f:  stelem.ref 
+	  IL_0570:  callvirt instance void class NAnt.Core.Tasks.LoopTask::DoWork(string[])
+	  IL_0575:  nop 
+	  IL_0576:  ldloc.s 25
+	  IL_0578:  ldc.i4.1 
+	  IL_0579:  add 
+	  IL_057a:  stloc.s 25
+	  IL_057c:  ldloc.s 25
+	  IL_057e:  ldloc.s 24
+	  IL_0580:  ldlen 
+	  IL_0581:  conv.i4 
+	  IL_0582:  blt IL_055c
+
+	  IL_0587:  leave IL_058c
+
+	  IL_058c:  nop 
+	  IL_058d:  leave IL_05c7
+
+	} // end .try 3
+	finally  { // 3
+	  IL_0592:  nop 
+	  IL_0593:  ldc.i4.0 
+	  IL_0594:  stloc.s 26
+	  IL_0596:  br IL_05bb
+
+	  IL_059b:  nop 
+	  IL_059c:  ldarg.0 
+	  IL_059d:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	  IL_05a2:  ldarg.0 
+	  IL_05a3:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
+	  IL_05a8:  ldloc.s 26
+	  IL_05aa:  ldelem.ref 
+	  IL_05ab:  ldloc.0 
+	  IL_05ac:  ldloc.s 26
+	  IL_05ae:  ldelem.ref 
+	  IL_05af:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	  IL_05b4:  nop 
+	  IL_05b5:  ldloc.s 26
+	  IL_05b7:  ldc.i4.1 
+	  IL_05b8:  add 
+	  IL_05b9:  stloc.s 26
+	  IL_05bb:  ldloc.s 26
+	  IL_05bd:  ldloc.0 
+	  IL_05be:  ldlen 
+	  IL_05bf:  conv.i4 
+	  IL_05c0:  blt IL_059b
+
+	  IL_05c5:  nop 
+	  IL_05c6:  endfinally 
+	} // end handler 3
+	IL_05c7:  ret 
+    } // end of method LoopTask::ExecuteTask
+
+    // method line 1207
+    .method family virtual hidebysig 
+           instance default void ExecuteChildTasks ()  cil managed 
     {
-        // Method begins at RVA 0x17b97
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x160a4
+	// Code size 39 (0x27)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_required
-	IL_0008:  ret 
-    } // end of method BuildAttributeAttribute::set_Required
+	IL_0002:  call instance class NAnt.Core.TaskContainer class NAnt.Core.Tasks.LoopTask::get_StuffToDo()
+	IL_0007:  brtrue IL_0019
 
-    // method line 1319
-    .method public hidebysig specialname 
-           instance default bool get_ExpandProperties ()  cil managed 
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance void class NAnt.Core.TaskContainer::ExecuteChildTasks()
+	IL_0013:  nop 
+	IL_0014:  br IL_0026
+
+	IL_0019:  nop 
+	IL_001a:  ldarg.0 
+	IL_001b:  call instance class NAnt.Core.TaskContainer class NAnt.Core.Tasks.LoopTask::get_StuffToDo()
+	IL_0020:  callvirt instance void class NAnt.Core.Task::Execute()
+	IL_0025:  nop 
+	IL_0026:  ret 
+    } // end of method LoopTask::ExecuteChildTasks
+
+    // method line 1208
+    .method family virtual hidebysig newslot 
+           instance default void DoWork (string[] propVals)  cil managed 
     {
-        // Method begins at RVA 0x17ba4
-	// Code size 15 (0xf)
-	.maxstack 1
+	.param [1]
+	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+        // Method begins at RVA 0x160cc
+	// Code size 155 (0x9b)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		int32	V_0,
+		string	V_1,
+		valuetype NAnt.Core.Tasks.LoopTask/LoopTrim	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_expandProperties
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_008b
 
+	IL_0008:  nop 
+	IL_0009:  ldarg.1 
+	IL_000a:  ldloc.0 
+	IL_000b:  ldelem.ref 
+	IL_000c:  stloc.1 
 	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildAttributeAttribute::get_ExpandProperties
+	IL_000e:  ldarg.0 
+	IL_000f:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
+	IL_0014:  ldlen 
+	IL_0015:  conv.i4 
+	IL_0016:  blt IL_002d
 
-    // method line 1320
-    .method public hidebysig specialname 
-           instance default void set_ExpandProperties (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x17bbf
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_expandProperties
-	IL_0008:  ret 
-    } // end of method BuildAttributeAttribute::set_ExpandProperties
+	IL_001b:  nop 
+	IL_001c:  ldstr "Too many items on line"
+	IL_0021:  ldarg.0 
+	IL_0022:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0027:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_002c:  throw 
+	IL_002d:  ldarg.0 
+	IL_002e:  call instance valuetype NAnt.Core.Tasks.LoopTask/LoopTrim class NAnt.Core.Tasks.LoopTask::get_TrimType()
+	IL_0033:  stloc.2 
+	IL_0034:  ldloc.2 
+	IL_0035:  ldc.i4.3 
+	IL_0036:  beq IL_004e
 
-    // method line 1321
-    .method public hidebysig specialname 
-           instance default bool get_ProcessXml ()  cil managed 
+	IL_003b:  ldloc.2 
+	IL_003c:  ldc.i4.2 
+	IL_003d:  beq IL_005a
+
+	IL_0042:  ldloc.2 
+	IL_0043:  ldc.i4.1 
+	IL_0044:  beq IL_0066
+
+	IL_0049:  br IL_0072
+
+	IL_004e:  ldloc.1 
+	IL_004f:  callvirt instance string string::Trim()
+	IL_0054:  stloc.1 
+	IL_0055:  br IL_0072
+
+	IL_005a:  ldloc.1 
+	IL_005b:  callvirt instance string string::TrimStart()
+	IL_0060:  stloc.1 
+	IL_0061:  br IL_0072
+
+	IL_0066:  ldloc.1 
+	IL_0067:  callvirt instance string string::TrimEnd()
+	IL_006c:  stloc.1 
+	IL_006d:  br IL_0072
+
+	IL_0072:  ldarg.0 
+	IL_0073:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0078:  ldarg.0 
+	IL_0079:  ldfld string[] NAnt.Core.Tasks.LoopTask::_props
+	IL_007e:  ldloc.0 
+	IL_007f:  ldelem.ref 
+	IL_0080:  ldloc.1 
+	IL_0081:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0086:  nop 
+	IL_0087:  ldloc.0 
+	IL_0088:  ldc.i4.1 
+	IL_0089:  add 
+	IL_008a:  stloc.0 
+	IL_008b:  ldloc.0 
+	IL_008c:  ldarg.1 
+	IL_008d:  ldlen 
+	IL_008e:  conv.i4 
+	IL_008f:  blt IL_0008
+
+	IL_0094:  ldarg.0 
+	IL_0095:  call instance void class NAnt.Core.TaskContainer::ExecuteTask()
+	IL_009a:  ret 
+    } // end of method LoopTask::DoWork
+
+    // method line 1209
+    .method private hidebysig 
+           instance default void DoWorkOnFileLines (string filename)  cil managed 
     {
-        // Method begins at RVA 0x17bcc
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x16174
+	// Code size 115 (0x73)
+	.maxstack 5
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.IO.StreamReader	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_processXml
+	IL_0001:  ldarg.1 
+	IL_0002:  call class [mscorlib]System.IO.StreamReader class [mscorlib]System.IO.File::OpenText(string)
 	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	.try { // 0
+	  IL_0008:  nop 
+	  IL_0009:  nop 
+	  IL_000a:  nop 
+	  IL_000b:  ldloc.0 
+	  IL_000c:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	  IL_0011:  stloc.1 
+	  IL_0012:  ldloc.1 
+	  IL_0013:  brtrue IL_001e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildAttributeAttribute::get_ProcessXml
+	  IL_0018:  nop 
+	  IL_0019:  leave IL_005f
 
-    // method line 1322
-    .method public hidebysig specialname 
-           instance default void set_ProcessXml (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x17be7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Attributes.BuildAttributeAttribute::_processXml
-	IL_0008:  ret 
-    } // end of method BuildAttributeAttribute::set_ProcessXml
+	  IL_001e:  ldarg.0 
+	  IL_001f:  call instance string class NAnt.Core.Tasks.LoopTask::get_Delimiter()
+	  IL_0024:  brtrue IL_0040
 
-	.property instance string Name ()
+	  IL_0029:  nop 
+	  IL_002a:  ldarg.0 
+	  IL_002b:  ldc.i4.1 
+	  IL_002c:  newarr [mscorlib]System.String
+	  IL_0031:  dup 
+	  IL_0032:  ldc.i4.0 
+	  IL_0033:  ldloc.1 
+	  IL_0034:  stelem.ref 
+	  IL_0035:  callvirt instance void class NAnt.Core.Tasks.LoopTask::DoWork(string[])
+	  IL_003a:  nop 
+	  IL_003b:  br IL_0059
+
+	  IL_0040:  nop 
+	  IL_0041:  ldarg.0 
+	  IL_0042:  ldloc.1 
+	  IL_0043:  ldarg.0 
+	  IL_0044:  call instance string class NAnt.Core.Tasks.LoopTask::get_Delimiter()
+	  IL_0049:  callvirt instance char[] string::ToCharArray()
+	  IL_004e:  callvirt instance string[] string::Split(char[])
+	  IL_0053:  callvirt instance void class NAnt.Core.Tasks.LoopTask::DoWork(string[])
+	  IL_0058:  nop 
+	  IL_0059:  nop 
+	  IL_005a:  br IL_0009
+
+	  IL_005f:  nop 
+	  IL_0060:  leave IL_0072
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0065:  ldloc.0 
+	  IL_0066:  brfalse IL_0071
+
+	  IL_006b:  ldloc.0 
+	  IL_006c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0071:  endfinally 
+	} // end handler 0
+	IL_0072:  ret 
+    } // end of method LoopTask::DoWorkOnFileLines
+
+	.property instance string Property ()
 	{
-		.get instance default string NAnt.Core.Attributes.BuildAttributeAttribute::get_Name () 
-		.set instance default void NAnt.Core.Attributes.BuildAttributeAttribute::set_Name (string 'value') 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
+		52 65 71 75 69 72 65 64 01                      ) // Required.
+
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.Core.Tasks.LoopTask::get_Property () 
+		.set instance default void NAnt.Core.Tasks.LoopTask::set_Property (string 'value') 
 	}
-	.property instance bool Required ()
+	.property instance valuetype NAnt.Core.Tasks.LoopTask/LoopItem ItemType ()
 	{
-		.get instance default bool NAnt.Core.Attributes.BuildAttributeAttribute::get_Required () 
-		.set instance default void NAnt.Core.Attributes.BuildAttributeAttribute::set_Required (bool 'value') 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 69 74 65 6D 01 00 54 02 08 52 65 71 75   // ...item..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.get instance default valuetype NAnt.Core.Tasks.LoopTask/LoopItem NAnt.Core.Tasks.LoopTask::get_ItemType () 
+		.set instance default void NAnt.Core.Tasks.LoopTask::set_ItemType (valuetype NAnt.Core.Tasks.LoopTask/LoopItem 'value') 
 	}
-	.property instance bool ExpandProperties ()
+	.property instance valuetype NAnt.Core.Tasks.LoopTask/LoopTrim TrimType ()
 	{
-		.get instance default bool NAnt.Core.Attributes.BuildAttributeAttribute::get_ExpandProperties () 
-		.set instance default void NAnt.Core.Attributes.BuildAttributeAttribute::set_ExpandProperties (bool 'value') 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 74 72 69 6D 00 00 ) // ...trim..
+
+		.get instance default valuetype NAnt.Core.Tasks.LoopTask/LoopTrim NAnt.Core.Tasks.LoopTask::get_TrimType () 
+		.set instance default void NAnt.Core.Tasks.LoopTask::set_TrimType (valuetype NAnt.Core.Tasks.LoopTask/LoopTrim 'value') 
 	}
-	.property instance bool ProcessXml ()
+	.property instance string Source ()
 	{
-		.get instance default bool NAnt.Core.Attributes.BuildAttributeAttribute::get_ProcessXml () 
-		.set instance default void NAnt.Core.Attributes.BuildAttributeAttribute::set_ProcessXml (bool 'value') 
-	}
-  } // end of class NAnt.Core.Attributes.BuildAttributeAttribute
-}
-
-.namespace NAnt.Core.Attributes
-{
-  .class public auto ansi sealed beforefieldinit FrameworkConfigurableAttribute
-  	extends [mscorlib]System.Attribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 80 00 00 00 01 00 54 02 09 49 6E 68 65 72   // ........T..Inher
-		69 74 65 64 01                                  ) // ited.
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 02 69 6E 01 00 54 02 08 52 65 71 75 69 72   // ...in..T..Requir
+		65 64 00                                        ) // ed.
 
-    .field  private  string _name
-    .field  private  bool _required
-    .field  private  bool _expandProperties
+		.get instance default string NAnt.Core.Tasks.LoopTask::get_Source () 
+		.set instance default void NAnt.Core.Tasks.LoopTask::set_Source (string 'value') 
+	}
+	.property instance string Delimiter ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 64 65 6C 69 6D 00 00 ) // ...delim..
 
-    // method line 1323
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
-    {
-        // Method begins at RVA 0x17e31
-	// Code size 22 (0x16)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::_expandProperties
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [mscorlib]System.Attribute::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  call instance void class NAnt.Core.Attributes.FrameworkConfigurableAttribute::set_Name(string)
-	IL_0015:  ret 
-    } // end of method FrameworkConfigurableAttribute::.ctor
+		.get instance default string NAnt.Core.Tasks.LoopTask::get_Delimiter () 
+		.set instance default void NAnt.Core.Tasks.LoopTask::set_Delimiter (string 'value') 
+	}
+	.property instance class NAnt.Core.Tasks.InElement InElement ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 02 69 6E 00 00 ) // ...in..
 
-    // method line 1324
-    .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x17e48
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Attributes.FrameworkConfigurableAttribute::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+		.get instance default class NAnt.Core.Tasks.InElement NAnt.Core.Tasks.LoopTask::get_InElement () 
+		.set instance default void NAnt.Core.Tasks.LoopTask::set_InElement (class NAnt.Core.Tasks.InElement 'value') 
+	}
+	.property instance class NAnt.Core.TaskContainer StuffToDo ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 02 64 6F 00 00 ) // ...do..
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FrameworkConfigurableAttribute::get_Name
+		.get instance default class NAnt.Core.TaskContainer NAnt.Core.Tasks.LoopTask::get_StuffToDo () 
+		.set instance default void NAnt.Core.Tasks.LoopTask::set_StuffToDo (class NAnt.Core.TaskContainer 'value') 
+	}
+  .class nested public auto ansi sealed LoopItem
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopItem File = int32(0x00000001)
+    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopItem Folder = int32(0x00000002)
+    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopItem String = int32(0x00000003)
+    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopItem Line = int32(0x00000004)
 
-    // method line 1325
-    .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x17e64
-	// Code size 66 (0x42)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+  } // end of class LoopItem
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "name"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  callvirt instance string string::Trim()
-	IL_001a:  stfld string NAnt.Core.Attributes.FrameworkConfigurableAttribute::_name
-	IL_001f:  ldarg.0 
-	IL_0020:  ldfld string NAnt.Core.Attributes.FrameworkConfigurableAttribute::_name
-	IL_0025:  callvirt instance int32 string::get_Length()
-	IL_002a:  brtrue IL_0041
+  .class nested public auto ansi sealed LoopTrim
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopTrim None = int32(0x00000000)
+    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopTrim End = int32(0x00000001)
+    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopTrim Start = int32(0x00000002)
+    .field public static literal  valuetype NAnt.Core.Tasks.LoopTask/LoopTrim Both = int32(0x00000003)
 
-	IL_002f:  nop 
-	IL_0030:  ldstr "name"
-	IL_0035:  ldarg.1 
-	IL_0036:  ldstr "A zero-length string is not an allowed value."
-	IL_003b:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
-	IL_0040:  throw 
-	IL_0041:  ret 
-    } // end of method FrameworkConfigurableAttribute::set_Name
+  } // end of class LoopTrim
 
-    // method line 1326
-    .method public hidebysig specialname 
-           instance default bool get_Required ()  cil managed 
-    {
-        // Method begins at RVA 0x17eb4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::_required
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+  } // end of class NAnt.Core.Tasks.LoopTask
+}
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FrameworkConfigurableAttribute::get_Required
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit InElement
+  	extends NAnt.Core.Element
+  {
+    .field  private  class NAnt.Core.Types.FileSet _items
 
-    // method line 1327
-    .method public hidebysig specialname 
-           instance default void set_Required (bool 'value')  cil managed 
+    // method line 1210
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x17ecf
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x16204
+	// Code size 7 (0x7)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::_required
-	IL_0008:  ret 
-    } // end of method FrameworkConfigurableAttribute::set_Required
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0006:  ret 
+    } // end of method InElement::.ctor
 
-    // method line 1328
+    // method line 1211
     .method public hidebysig specialname 
-           instance default bool get_ExpandProperties ()  cil managed 
+           instance default class NAnt.Core.Types.FileSet get_Items ()  cil managed 
     {
-        // Method begins at RVA 0x17edc
+        // Method begins at RVA 0x1620c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::_expandProperties
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.InElement::_items
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FrameworkConfigurableAttribute::get_ExpandProperties
+    } // end of method InElement::get_Items
 
-    // method line 1329
+    // method line 1212
     .method public hidebysig specialname 
-           instance default void set_ExpandProperties (bool 'value')  cil managed 
+           instance default void set_Items (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x17ef7
+        // Method begins at RVA 0x16227
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::_expandProperties
+	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.InElement::_items
 	IL_0008:  ret 
-    } // end of method FrameworkConfigurableAttribute::set_ExpandProperties
+    } // end of method InElement::set_Items
 
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_Name () 
-		.set instance default void NAnt.Core.Attributes.FrameworkConfigurableAttribute::set_Name (string 'value') 
-	}
-	.property instance bool Required ()
-	{
-		.get instance default bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_Required () 
-		.set instance default void NAnt.Core.Attributes.FrameworkConfigurableAttribute::set_Required (bool 'value') 
-	}
-	.property instance bool ExpandProperties ()
+	.property instance class NAnt.Core.Types.FileSet Items ()
 	{
-		.get instance default bool NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_ExpandProperties () 
-		.set instance default void NAnt.Core.Attributes.FrameworkConfigurableAttribute::set_ExpandProperties (bool 'value') 
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 05 69 74 65 6D 73 00 00 ) // ...items..
+
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.InElement::get_Items () 
+		.set instance default void NAnt.Core.Tasks.InElement::set_Items (class NAnt.Core.Types.FileSet 'value') 
 	}
-  } // end of class NAnt.Core.Attributes.FrameworkConfigurableAttribute
+  } // end of class NAnt.Core.Tasks.InElement
 }
 
-.namespace NAnt.Core.Filters
+.namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit FilterBuilder
-  	extends NAnt.Core.Extensibility.ExtensionBuilder
+  .class public auto ansi beforefieldinit SysInfoTask
+  	extends NAnt.Core.Task
   {
-    .field  private initonly  string _className
-    .field  private initonly  string _filterName
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 73 79 73 69 6E 66 6F 00 00 ) // ...sysinfo..
 
-    // method line 1330
+    .field  private  string _prefix
+
+    // method line 1213
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly', string className)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x17f01
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x16231
+	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call class NAnt.Core.Extensibility.ExtensionAssembly class NAnt.Core.Extensibility.ExtensionAssembly::Create(class [mscorlib]System.Reflection.Assembly)
-	IL_0007:  ldarg.2 
-	IL_0008:  call instance void class NAnt.Core.Filters.FilterBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, string)
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method FilterBuilder::.ctor
-
-    // method line 1331
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, string className)  cil managed 
-    {
-        // Method begins at RVA 0x17f14
-	// Code size 66 (0x42)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Attributes.ElementNameAttribute	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class NAnt.Core.Extensibility.ExtensionBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly)
-	IL_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.2 
-	IL_000a:  stfld string NAnt.Core.Filters.FilterBuilder::_className
-	IL_000f:  ldarg.0 
-	IL_0010:  call instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
-	IL_0015:  ldarg.0 
-	IL_0016:  call instance string class NAnt.Core.Filters.FilterBuilder::get_ClassName()
-	IL_001b:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string)
-	IL_0020:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
-	IL_0025:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_002a:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	IL_002f:  castclass NAnt.Core.Attributes.ElementNameAttribute
-	IL_0034:  stloc.0 
-	IL_0035:  ldarg.0 
-	IL_0036:  ldloc.0 
-	IL_0037:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
-	IL_003c:  stfld string NAnt.Core.Filters.FilterBuilder::_filterName
-	IL_0041:  ret 
-    } // end of method FilterBuilder::.ctor
+	IL_0001:  ldstr "sys."
+	IL_0006:  stfld string NAnt.Core.Tasks.SysInfoTask::_prefix
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0011:  ret 
+    } // end of method SysInfoTask::.ctor
 
-    // method line 1332
+    // method line 1214
     .method public hidebysig specialname 
-           instance default string get_ClassName ()  cil managed 
+           instance default string get_Prefix ()  cil managed 
     {
-        // Method begins at RVA 0x17f64
+        // Method begins at RVA 0x16244
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Filters.FilterBuilder::_className
+	IL_0002:  ldfld string NAnt.Core.Tasks.SysInfoTask::_prefix
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FilterBuilder::get_ClassName
+    } // end of method SysInfoTask::get_Prefix
 
-    // method line 1333
+    // method line 1215
     .method public hidebysig specialname 
-           instance default string get_FilterName ()  cil managed 
+           instance default void set_Prefix (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x17f80
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x1625f
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Filters.FilterBuilder::_filterName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FilterBuilder::get_FilterName
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Tasks.SysInfoTask::_prefix
+	IL_0008:  ret 
+    } // end of method SysInfoTask::set_Prefix
 
-    // method line 1334
-    .method public hidebysig 
-           instance default class NAnt.Core.Filters.Filter CreateFilter ()  cil managed 
+    // method line 1216
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x17f9c
-        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
-	// Code size 42 (0x2a)
-	.maxstack 8
+        // Method begins at RVA 0x1626c
+	// Code size 788 (0x314)
+	.maxstack 7
 	.locals init (
-		class NAnt.Core.Filters.Filter	V_0)
+		valuetype [mscorlib]System.PlatformID	V_0,
+		class [mscorlib]System.Collections.IDictionary	V_1,
+		string	V_2,
+		class [mscorlib]System.Collections.IEnumerator	V_3,
+		class [mscorlib]System.Exception	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_6,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_7,
+		string	V_8,
+		class [mscorlib]System.IDisposable	V_9)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance string class NAnt.Core.Filters.FilterBuilder::get_ClassName()
-	IL_000d:  ldc.i4.1 
-	IL_000e:  ldc.i4.s 0x14
-	IL_0010:  ldnull 
-	IL_0011:  ldnull 
-	IL_0012:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0017:  ldnull 
-	IL_0018:  callvirt instance object class [mscorlib]System.Reflection.Assembly::CreateInstance(string, bool, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo, object[])
-	IL_001d:  castclass NAnt.Core.Filters.Filter
-	IL_0022:  stloc.0 
-	IL_0023:  br IL_0028
+	IL_0002:  ldc.i4 3000
+	IL_0007:  ldstr "Setting system information properties under "
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
+	IL_0012:  ldstr "*"
+	IL_0017:  call string string::Concat(string, string, string)
+	IL_001c:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_0021:  ldarg.0 
+	IL_0022:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0027:  ldarg.0 
+	IL_0028:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
+	IL_002d:  ldstr "clr.version"
+	IL_0032:  call string string::Concat(string, string)
+	IL_0037:  call class [mscorlib]System.Version class [mscorlib]System.Environment::get_Version()
+	IL_003c:  callvirt instance string object::ToString()
+	IL_0041:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0046:  ldarg.0 
+	IL_0047:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_004c:  ldarg.0 
+	IL_004d:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
+	IL_0052:  ldstr "os.platform"
+	IL_0057:  call string string::Concat(string, string)
+	IL_005c:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
+	IL_0061:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
+	IL_0066:  stloc.0 
+	IL_0067:  ldloca.s 0
+	IL_0069:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_006e:  constrained. [mscorlib]System.PlatformID
+	IL_0074:  callvirt instance string class [mscorlib]System.Enum::ToString(class [mscorlib]System.IFormatProvider)
+	IL_0079:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_007e:  ldarg.0 
+	IL_007f:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0084:  ldarg.0 
+	IL_0085:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
+	IL_008a:  ldstr "os.version"
+	IL_008f:  call string string::Concat(string, string)
+	IL_0094:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
+	IL_0099:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.OperatingSystem::get_Version()
+	IL_009e:  callvirt instance string object::ToString()
+	IL_00a3:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_00a8:  ldarg.0 
+	IL_00a9:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_00ae:  ldarg.0 
+	IL_00af:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
+	IL_00b4:  ldstr "os.folder.applicationdata"
+	IL_00b9:  call string string::Concat(string, string)
+	IL_00be:  ldc.i4.s 0x1a
+	IL_00c0:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
+	IL_00c5:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_00ca:  ldarg.0 
+	IL_00cb:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_00d0:  ldarg.0 
+	IL_00d1:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
+	IL_00d6:  ldstr "os.folder.commonapplicationData"
+	IL_00db:  call string string::Concat(string, string)
+	IL_00e0:  ldc.i4.s 0x23
+	IL_00e2:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
+	IL_00e7:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_00ec:  ldarg.0 
+	IL_00ed:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_00f2:  ldarg.0 
+	IL_00f3:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
+	IL_00f8:  ldstr "os.folder.commonprogramFiles"
+	IL_00fd:  call string string::Concat(string, string)
+	IL_0102:  ldc.i4.s 0x2b
+	IL_0104:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
+	IL_0109:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_010e:  ldarg.0 
+	IL_010f:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0114:  ldarg.0 
+	IL_0115:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
+	IL_011a:  ldstr "os.folder.desktopdirectory"
+	IL_011f:  call string string::Concat(string, string)
+	IL_0124:  ldc.i4.s 0x10
+	IL_0126:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
+	IL_012b:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0130:  ldarg.0 
+	IL_0131:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0136:  ldarg.0 
+	IL_0137:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
+	IL_013c:  ldstr "os.folder.programfiles"
+	IL_0141:  call string string::Concat(string, string)
+	IL_0146:  ldc.i4.s 0x26
+	IL_0148:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
+	IL_014d:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0152:  ldarg.0 
+	IL_0153:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0158:  ldarg.0 
+	IL_0159:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
+	IL_015e:  ldstr "os.folder.system"
+	IL_0163:  call string string::Concat(string, string)
+	IL_0168:  ldc.i4.s 0x25
+	IL_016a:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
+	IL_016f:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0174:  ldarg.0 
+	IL_0175:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_017a:  ldarg.0 
+	IL_017b:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
+	IL_0180:  ldstr "os.folder.temp"
+	IL_0185:  call string string::Concat(string, string)
+	IL_018a:  call string class [mscorlib]System.IO.Path::GetTempPath()
+	IL_018f:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0194:  ldarg.0 
+	IL_0195:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_019a:  ldarg.0 
+	IL_019b:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
+	IL_01a0:  ldstr "os"
+	IL_01a5:  call string string::Concat(string, string)
+	IL_01aa:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
+	IL_01af:  callvirt instance string object::ToString()
+	IL_01b4:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_01b9:  call class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Environment::GetEnvironmentVariables()
+	IL_01be:  stloc.1 
+	IL_01bf:  nop 
+	IL_01c0:  ldloc.1 
+	IL_01c1:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.IDictionary::get_Keys()
+	IL_01c6:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_01cb:  stloc.3 
+	.try { // 1
+	  IL_01cc:  br IL_0250
 
-	IL_0028:  ldloc.0 
-	IL_0029:  ret 
-    } // end of method FilterBuilder::CreateFilter
+	  IL_01d1:  ldloc.3 
+	  IL_01d2:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_01d7:  castclass [mscorlib]System.String
+	  IL_01dc:  stloc.2 
+	  IL_01dd:  nop 
+	  .try { // 0
+	    IL_01de:  nop 
+	    IL_01df:  ldarg.0 
+	    IL_01e0:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	    IL_01e5:  ldarg.0 
+	    IL_01e6:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
+	    IL_01eb:  ldstr "env."
+	    IL_01f0:  ldloc.2 
+	    IL_01f1:  call string string::Concat(string, string, string)
+	    IL_01f6:  ldloc.1 
+	    IL_01f7:  ldloc.2 
+	    IL_01f8:  callvirt instance object class [mscorlib]System.Collections.IDictionary::get_Item(object)
+	    IL_01fd:  castclass [mscorlib]System.String
+	    IL_0202:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	    IL_0207:  nop 
+	    IL_0208:  leave IL_024f
 
-	.property instance string ClassName ()
-	{
-		.get instance default string NAnt.Core.Filters.FilterBuilder::get_ClassName () 
-	}
-	.property instance string FilterName ()
+	  } // end .try 0
+	  catch class [mscorlib]System.Exception { // 0
+	    IL_020d:  stloc.s 4
+	    IL_020f:  nop 
+	    IL_0210:  ldarg.0 
+	    IL_0211:  call instance bool class NAnt.Core.Task::get_FailOnError()
+	    IL_0216:  brtrue IL_0246
+
+	    IL_021b:  nop 
+	    IL_021c:  ldarg.0 
+	    IL_021d:  ldc.i4 4000
+	    IL_0222:  ldstr "Property could not be created for environment variable '{0}' : {1}"
+	    IL_0227:  ldc.i4.2 
+	    IL_0228:  newarr [mscorlib]System.Object
+	    IL_022d:  dup 
+	    IL_022e:  ldc.i4.0 
+	    IL_022f:  ldloc.2 
+	    IL_0230:  stelem.ref 
+	    IL_0231:  dup 
+	    IL_0232:  ldc.i4.1 
+	    IL_0233:  ldloc.s 4
+	    IL_0235:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	    IL_023a:  stelem.ref 
+	    IL_023b:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	    IL_0240:  nop 
+	    IL_0241:  br IL_0249
+
+	    IL_0246:  nop 
+	    IL_0247:  rethrow 
+	    IL_0249:  nop 
+	    IL_024a:  leave IL_024f
+
+	  } // end handler 0
+	  IL_024f:  nop 
+	  IL_0250:  ldloc.3 
+	  IL_0251:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0256:  brtrue IL_01d1
+
+	  IL_025b:  leave IL_0276
+
+	} // end .try 1
+	finally  { // 1
+	  IL_0260:  ldloc.3 
+	  IL_0261:  isinst [mscorlib]System.IDisposable
+	  IL_0266:  dup 
+	  IL_0267:  stloc.s 5
+	  IL_0269:  brfalse IL_0275
+
+	  IL_026e:  ldloc.s 5
+	  IL_0270:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0275:  endfinally 
+	} // end handler 1
+	IL_0276:  ldarg.0 
+	IL_0277:  callvirt instance bool class NAnt.Core.Task::get_Verbose()
+	IL_027c:  brfalse IL_0313
+
+	IL_0281:  nop 
+	IL_0282:  nop 
+	IL_0283:  ldarg.0 
+	IL_0284:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0289:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.DictionaryBase::GetEnumerator()
+	IL_028e:  stloc.s 7
+	.try { // 2
+	  IL_0290:  br IL_02ea
+
+	  IL_0295:  ldloc.s 7
+	  IL_0297:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_029c:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_02a1:  stloc.s 6
+	  IL_02a3:  nop 
+	  IL_02a4:  ldloca.s 6
+	  IL_02a6:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_02ab:  castclass [mscorlib]System.String
+	  IL_02b0:  stloc.s 8
+	  IL_02b2:  ldloc.s 8
+	  IL_02b4:  ldarg.0 
+	  IL_02b5:  call instance string class NAnt.Core.Tasks.SysInfoTask::get_Prefix()
+	  IL_02ba:  callvirt instance bool string::StartsWith(string)
+	  IL_02bf:  brfalse IL_02e9
+
+	  IL_02c4:  nop 
+	  IL_02c5:  ldarg.0 
+	  IL_02c6:  ldc.i4 3000
+	  IL_02cb:  ldloc.s 8
+	  IL_02cd:  ldstr " = "
+	  IL_02d2:  ldloca.s 6
+	  IL_02d4:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_02d9:  callvirt instance string object::ToString()
+	  IL_02de:  call string string::Concat(string, string, string)
+	  IL_02e3:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	  IL_02e8:  nop 
+	  IL_02e9:  nop 
+	  IL_02ea:  ldloc.s 7
+	  IL_02ec:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_02f1:  brtrue IL_0295
+
+	  IL_02f6:  leave IL_0312
+
+	} // end .try 2
+	finally  { // 2
+	  IL_02fb:  ldloc.s 7
+	  IL_02fd:  isinst [mscorlib]System.IDisposable
+	  IL_0302:  dup 
+	  IL_0303:  stloc.s 9
+	  IL_0305:  brfalse IL_0311
+
+	  IL_030a:  ldloc.s 9
+	  IL_030c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0311:  endfinally 
+	} // end handler 2
+	IL_0312:  nop 
+	IL_0313:  ret 
+    } // end of method SysInfoTask::ExecuteTask
+
+	.property instance string Prefix ()
 	{
-		.get instance default string NAnt.Core.Filters.FilterBuilder::get_FilterName () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 70 72 65 66 69 78 01 00 54 02 08 52 65   // ...prefix..T..Re
+		71 75 69 72 65 64 00                            ) // quired.
+
+		.get instance default string NAnt.Core.Tasks.SysInfoTask::get_Prefix () 
+		.set instance default void NAnt.Core.Tasks.SysInfoTask::set_Prefix (string 'value') 
 	}
-  } // end of class NAnt.Core.Filters.FilterBuilder
+  } // end of class NAnt.Core.Tasks.SysInfoTask
 }
 
-.namespace NAnt.Core.Filters
+.namespace NAnt.Core.Tasks
 {
-  .class public auto ansi abstract beforefieldinit Filter
-  	extends NAnt.Core.Filters.ChainableReader
+  .class public auto ansi beforefieldinit IncludeTask
+  	extends NAnt.Core.Task
   {
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 69 6E 63 6C 75 64 65 00 00 ) // ...include..
 
-    // method line 1335
-    .method family hidebysig specialname rtspecialname 
+    .field  private  string _buildFileName
+    .field  private static  class [mscorlib]System.Collections.Stack _includedFileNames
+    .field  private static  string _currentBasedir
+    .field  private static  int32 _nestinglevel
+
+    // method line 1217
+    .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x18125
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x165b4
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Filters.Filter::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Filters.ChainableReader::'.ctor'()
-	IL_000d:  ret 
-    } // end of method Filter::.ctor
+	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0006:  ret 
+    } // end of method IncludeTask::.ctor
 
-    // method line 1336
+    // method line 1218
     .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+           instance default string get_BuildFileName ()  cil managed 
     {
-        // Method begins at RVA 0x18134
+        // Method begins at RVA 0x165bc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Filters.Filter::_ifDefined
+	IL_0002:  ldfld string NAnt.Core.Tasks.IncludeTask::_buildFileName
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Filter::get_IfDefined
+    } // end of method IncludeTask::get_BuildFileName
 
-    // method line 1337
+    // method line 1219
     .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+           instance default void set_BuildFileName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1814f
+        // Method begins at RVA 0x165d7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Filters.Filter::_ifDefined
+	IL_0003:  stfld string NAnt.Core.Tasks.IncludeTask::_buildFileName
 	IL_0008:  ret 
-    } // end of method Filter::set_IfDefined
+    } // end of method IncludeTask::set_BuildFileName
 
-    // method line 1338
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+    // method line 1220
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x1815c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x165e4
+	// Code size 271 (0x10f)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Filters.Filter::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Filter::get_UnlessDefined
-
-    // method line 1339
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x18177
-	// Code size 9 (0x9)
-	.maxstack 8
+		string	V_0,
+		class [mscorlib]System.Exception	V_1,
+		string	V_2,
+		class [mscorlib]System.Collections.IEnumerator	V_3,
+		class [mscorlib]System.IDisposable	V_4)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Filters.Filter::_unlessDefined
-	IL_0008:  ret 
-    } // end of method Filter::set_UnlessDefined
-
-    // method line 1340
-    .method public virtual hidebysig newslot 
-           instance default void InitializeFilter ()  cil managed 
-    {
-        // Method begins at RVA 0x18181
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method Filter::InitializeFilter
+	IL_0002:  call instance object class NAnt.Core.Element::get_Parent()
+	IL_0007:  brfalse IL_0033
 
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance object class NAnt.Core.Element::get_Parent()
+	IL_0012:  isinst NAnt.Core.Project
+	IL_0017:  brtrue IL_0033
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_001c:  nop 
+	IL_001d:  ldstr "NA1180"
+	IL_0022:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0027:  ldarg.0 
+	IL_0028:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_002d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0032:  throw 
+	IL_0033:  ldsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
+	IL_0038:  call bool string::IsNullOrEmpty(string)
+	IL_003d:  brtrue IL_004c
 
-		.get instance default bool NAnt.Core.Filters.Filter::get_IfDefined () 
-		.set instance default void NAnt.Core.Filters.Filter::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+	IL_0042:  ldsfld int32 NAnt.Core.Tasks.IncludeTask::_nestinglevel
+	IL_0047:  brtrue IL_005e
 
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_004c:  nop 
+	IL_004d:  ldarg.0 
+	IL_004e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0053:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_0058:  stsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
+	IL_005d:  nop 
+	IL_005e:  ldnull 
+	IL_005f:  stloc.0 
+	.try { // 0
+	  IL_0060:  nop 
+	  IL_0061:  ldsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
+	  IL_0066:  ldarg.0 
+	  IL_0067:  call instance string class NAnt.Core.Tasks.IncludeTask::get_BuildFileName()
+	  IL_006c:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_0071:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
+	  IL_0076:  stloc.0 
+	  IL_0077:  nop 
+	  IL_0078:  leave IL_00a6
 
-		.get instance default bool NAnt.Core.Filters.Filter::get_UnlessDefined () 
-		.set instance default void NAnt.Core.Filters.Filter::set_UnlessDefined (bool 'value') 
-	}
-  } // end of class NAnt.Core.Filters.Filter
-}
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_007d:  stloc.1 
+	  IL_007e:  nop 
+	  IL_007f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0084:  ldstr "NA1128"
+	  IL_0089:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_008e:  ldarg.0 
+	  IL_008f:  call instance string class NAnt.Core.Tasks.IncludeTask::get_BuildFileName()
+	  IL_0094:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0099:  ldarg.0 
+	  IL_009a:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_009f:  ldloc.1 
+	  IL_00a0:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_00a5:  throw 
+	} // end handler 0
+	IL_00a6:  nop 
+	IL_00a7:  ldsfld class [mscorlib]System.Collections.Stack NAnt.Core.Tasks.IncludeTask::_includedFileNames
+	IL_00ac:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.Stack::GetEnumerator()
+	IL_00b1:  stloc.3 
+	.try { // 1
+	  IL_00b2:  br IL_00e8
 
-.namespace NAnt.Core.Filters
-{
-  .class public auto ansi serializable beforefieldinit FilterCollection
-  	extends [mscorlib]System.Collections.CollectionBase
-  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+	  IL_00b7:  ldloc.3 
+	  IL_00b8:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_00bd:  castclass [mscorlib]System.String
+	  IL_00c2:  stloc.2 
+	  IL_00c3:  nop 
+	  IL_00c4:  ldloc.2 
+	  IL_00c5:  ldloc.0 
+	  IL_00c6:  call bool string::op_Equality(string, string)
+	  IL_00cb:  brfalse IL_00e7
 
+	  IL_00d0:  nop 
+	  IL_00d1:  ldstr "NA1179"
+	  IL_00d6:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_00db:  ldarg.0 
+	  IL_00dc:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_00e1:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_00e6:  throw 
+	  IL_00e7:  nop 
+	  IL_00e8:  ldloc.3 
+	  IL_00e9:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00ee:  brtrue IL_00b7
 
-    // method line 1341
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x18184
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method FilterCollection::.ctor
+	  IL_00f3:  leave IL_010e
 
-    // method line 1342
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Filters.FilterCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1818d
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Filters.FilterCollection::AddRange(class NAnt.Core.Filters.FilterCollection)
-	IL_000e:  ret 
-    } // end of method FilterCollection::.ctor
+	} // end .try 1
+	finally  { // 1
+	  IL_00f8:  ldloc.3 
+	  IL_00f9:  isinst [mscorlib]System.IDisposable
+	  IL_00fe:  dup 
+	  IL_00ff:  stloc.s 4
+	  IL_0101:  brfalse IL_010d
 
-    // method line 1343
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Filters.Filter[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1819d
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Filters.FilterCollection::AddRange(class NAnt.Core.Filters.Filter[])
-	IL_000e:  ret 
-    } // end of method FilterCollection::.ctor
+	  IL_0106:  ldloc.s 4
+	  IL_0108:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_010d:  endfinally 
+	} // end handler 1
+	IL_010e:  ret 
+    } // end of method IncludeTask::Initialize
 
-    // method line 1344
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Filters.Filter get_Item (int32 index)  cil managed 
+    // method line 1221
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x181b0
-	// Code size 26 (0x1a)
-	.maxstack 2
+        // Method begins at RVA 0x1671c
+	// Code size 564 (0x234)
+	.maxstack 7
 	.locals init (
-		class NAnt.Core.Filters.Filter	V_0)
+		string	V_0,
+		class [System.Xml]System.Xml.XmlDocument	V_1,
+		string	V_2,
+		class [System.Xml]System.Xml.XmlDocument	V_3,
+		class [System.Xml]System.Xml.XmlDocument	V_4,
+		string	V_5,
+		string	V_6,
+		class [System.Xml]System.Xml.XmlTextReader	V_7,
+		class [System.Xml]System.Xml.XmlAttribute	V_8,
+		class [mscorlib]System.IO.StringWriter	V_9,
+		class [System.Xml]System.Xml.XmlTextWriter	V_10,
+		class [mscorlib]System.Exception	V_11)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.Core.Filters.Filter
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0001:  ldsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
+	IL_0006:  ldarg.0 
+	IL_0007:  call instance string class NAnt.Core.Tasks.IncludeTask::get_BuildFileName()
+	IL_000c:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0011:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
+	IL_0016:  stloc.0 
+	IL_0017:  ldloc.0 
+	IL_0018:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_001d:  brtrue IL_0044
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method FilterCollection::get_Item
+	IL_0022:  nop 
+	IL_0023:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0028:  ldstr "NA1127"
+	IL_002d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0032:  ldloc.0 
+	IL_0033:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0038:  ldarg.0 
+	IL_0039:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_003e:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0043:  throw 
+	IL_0044:  ldarg.0 
+	IL_0045:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_004a:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	IL_004f:  ldloc.0 
+	IL_0050:  callvirt instance bool class NAnt.Core.LocationMap::FileIsMapped(string)
+	IL_0055:  brfalse IL_007f
 
-    // method line 1345
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Filters.Filter 'value')  cil managed 
-    {
-        // Method begins at RVA 0x181d6
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method FilterCollection::set_Item
+	IL_005a:  nop 
+	IL_005b:  ldarg.0 
+	IL_005c:  ldc.i4 2000
+	IL_0061:  ldstr "String_DuplicateInclude"
+	IL_0066:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_006b:  ldc.i4.1 
+	IL_006c:  newarr [mscorlib]System.Object
+	IL_0071:  dup 
+	IL_0072:  ldc.i4.0 
+	IL_0073:  ldloc.0 
+	IL_0074:  stelem.ref 
+	IL_0075:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_007a:  br IL_0233
 
-    // method line 1346
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Filters.Filter item)  cil managed 
-    {
-        // Method begins at RVA 0x181e8
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_007f:  nop 
+	IL_0080:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
+	IL_0085:  stloc.1 
+	IL_0086:  ldloc.1 
+	IL_0087:  ldloc.0 
+	IL_0088:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(string)
+	IL_008d:  ldarg.0 
+	IL_008e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0093:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	IL_0098:  ldloc.1 
+	IL_0099:  callvirt instance void class NAnt.Core.LocationMap::Add(class [System.Xml]System.Xml.XmlDocument)
+	IL_009e:  ldnull 
+	IL_009f:  stloc.1 
+	IL_00a0:  nop 
+	IL_00a1:  ldsfld class [mscorlib]System.Collections.Stack NAnt.Core.Tasks.IncludeTask::_includedFileNames
+	IL_00a6:  ldloc.0 
+	IL_00a7:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
+	IL_00ac:  ldsfld int32 NAnt.Core.Tasks.IncludeTask::_nestinglevel
+	IL_00b1:  ldc.i4.1 
+	IL_00b2:  add 
+	IL_00b3:  stsfld int32 NAnt.Core.Tasks.IncludeTask::_nestinglevel
+	IL_00b8:  ldarg.0 
+	IL_00b9:  ldc.i4 2000
+	IL_00be:  ldstr "Including file {0}."
+	IL_00c3:  ldc.i4.1 
+	IL_00c4:  newarr [mscorlib]System.Object
+	IL_00c9:  dup 
+	IL_00ca:  ldc.i4.0 
+	IL_00cb:  ldloc.0 
+	IL_00cc:  stelem.ref 
+	IL_00cd:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_00d2:  ldsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
+	IL_00d7:  stloc.2 
+	IL_00d8:  ldloc.0 
+	IL_00d9:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_00de:  stsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
+	.try { // 3
+	  .try { // 1
+	    IL_00e3:  nop 
+	    IL_00e4:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
+	    IL_00e9:  stloc.3 
+	    IL_00ea:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
+	    IL_00ef:  stloc.s 4
+	    IL_00f1:  ldarg.0 
+	    IL_00f2:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	    IL_00f7:  callvirt instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::get_Document()
+	    IL_00fc:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	    IL_0101:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	    IL_0106:  stloc.s 5
+	    IL_0108:  ldstr ""
+	    IL_010d:  stloc.s 6
+	    IL_010f:  ldloc.0 
+	    IL_0110:  newobj instance void class [System.Xml]System.Xml.XmlTextReader::'.ctor'(string)
+	    IL_0115:  stloc.s 7
+	    IL_0117:  ldloc.s 7
+	    IL_0119:  ldc.i4.0 
+	    IL_011a:  callvirt instance void class [System.Xml]System.Xml.XmlTextReader::set_Namespaces(bool)
+	    IL_011f:  ldloc.3 
+	    IL_0120:  ldloc.s 7
+	    IL_0122:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(class [System.Xml]System.Xml.XmlReader)
+	    IL_0127:  ldloc.3 
+	    IL_0128:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	    IL_012d:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	    IL_0132:  ldstr "xmlns"
+	    IL_0137:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNamedNodeMap::RemoveNamedItem(string)
+	    IL_013c:  pop 
+	    IL_013d:  ldloc.s 7
+	    IL_013f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0144:  ldnull 
+	    IL_0145:  stloc.s 7
+	    IL_0147:  ldloc.s 5
+	    IL_0149:  call bool string::IsNullOrEmpty(string)
+	    IL_014e:  brtrue IL_0159
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method FilterCollection::Add
+	    IL_0153:  nop 
+	    IL_0154:  ldloc.s 5
+	    IL_0156:  stloc.s 6
+	    IL_0158:  nop 
+	    IL_0159:  ldloc.s 6
+	    IL_015b:  call bool string::IsNullOrEmpty(string)
+	    IL_0160:  brtrue IL_0190
 
-    // method line 1347
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Filters.Filter[] items)  cil managed 
-    {
-        // Method begins at RVA 0x1820c
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
+	    IL_0165:  nop 
+	    IL_0166:  ldloc.3 
+	    IL_0167:  ldstr "xmlns"
+	    IL_016c:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlDocument::CreateAttribute(string)
+	    IL_0171:  stloc.s 8
+	    IL_0173:  ldloc.s 8
+	    IL_0175:  ldloc.s 6
+	    IL_0177:  callvirt instance void class [System.Xml]System.Xml.XmlNode::set_Value(string)
+	    IL_017c:  ldloc.3 
+	    IL_017d:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	    IL_0182:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	    IL_0187:  ldloc.s 8
+	    IL_0189:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::Append(class [System.Xml]System.Xml.XmlAttribute)
+	    IL_018e:  pop 
+	    IL_018f:  nop 
+	    IL_0190:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'()
+	    IL_0195:  stloc.s 9
+	    .try { // 0
+	      IL_0197:  nop 
+	      IL_0198:  ldloc.s 9
+	      IL_019a:  newobj instance void class [System.Xml]System.Xml.XmlTextWriter::'.ctor'(class [mscorlib]System.IO.TextWriter)
+	      IL_019f:  stloc.s 10
+	      IL_01a1:  ldloc.3 
+	      IL_01a2:  ldloc.s 10
+	      IL_01a4:  callvirt instance void class [System.Xml]System.Xml.XmlNode::WriteTo(class [System.Xml]System.Xml.XmlWriter)
+	      IL_01a9:  ldloc.s 4
+	      IL_01ab:  ldloc.s 9
+	      IL_01ad:  callvirt instance string object::ToString()
+	      IL_01b2:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::LoadXml(string)
+	      IL_01b7:  ldloc.s 10
+	      IL_01b9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	      IL_01be:  ldnull 
+	      IL_01bf:  stloc.s 10
+	      IL_01c1:  nop 
+	      IL_01c2:  leave IL_01d6
 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Core.Filters.FilterCollection::Add(class NAnt.Core.Filters.Filter)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
+	    } // end .try 0
+	    finally  { // 0
+	      IL_01c7:  ldloc.s 9
+	      IL_01c9:  brfalse IL_01d5
 
-	IL_0021:  ret 
-    } // end of method FilterCollection::AddRange
+	      IL_01ce:  ldloc.s 9
+	      IL_01d0:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	      IL_01d5:  endfinally 
+	    } // end handler 0
+	    IL_01d6:  ldarg.0 
+	    IL_01d7:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	    IL_01dc:  ldloc.s 4
+	    IL_01de:  callvirt instance void class NAnt.Core.Project::InitializeProjectDocument(class [System.Xml]System.Xml.XmlDocument)
+	    IL_01e3:  nop 
+	    IL_01e4:  leave IL_0233
 
-    // method line 1348
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Filters.FilterCollection items)  cil managed 
+	  } // end .try 1
+	  catch class NAnt.Core.BuildException { // 1
+	    IL_01e9:  pop 
+	    IL_01ea:  nop 
+	    IL_01eb:  rethrow 
+	  } // end handler 1
+	  catch class [mscorlib]System.Exception { // 2
+	    IL_01ed:  stloc.s 11
+	    IL_01ef:  nop 
+	    IL_01f0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_01f5:  ldstr "NA1128"
+	    IL_01fa:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_01ff:  ldloc.0 
+	    IL_0200:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_0205:  ldarg.0 
+	    IL_0206:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	    IL_020b:  ldloc.s 11
+	    IL_020d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	    IL_0212:  throw 
+	  } // end handler 2
+	} // end .try 3
+	finally  { // 3
+	  IL_0213:  nop 
+	  IL_0214:  ldsfld class [mscorlib]System.Collections.Stack NAnt.Core.Tasks.IncludeTask::_includedFileNames
+	  IL_0219:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
+	  IL_021e:  pop 
+	  IL_021f:  ldsfld int32 NAnt.Core.Tasks.IncludeTask::_nestinglevel
+	  IL_0224:  ldc.i4.1 
+	  IL_0225:  sub 
+	  IL_0226:  stsfld int32 NAnt.Core.Tasks.IncludeTask::_nestinglevel
+	  IL_022b:  ldloc.2 
+	  IL_022c:  stsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
+	  IL_0231:  nop 
+	  IL_0232:  endfinally 
+	} // end handler 3
+	IL_0233:  ret 
+    } // end of method IncludeTask::ExecuteTask
+
+    // method line 1222
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1823c
-	// Code size 41 (0x29)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
+        // Method begins at RVA 0x169c0
+	// Code size 27 (0x1b)
+	.maxstack 8
+	IL_0000:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
+	IL_0005:  stsfld class [mscorlib]System.Collections.Stack NAnt.Core.Tasks.IncludeTask::_includedFileNames
+	IL_000a:  ldstr ""
+	IL_000f:  stsfld string NAnt.Core.Tasks.IncludeTask::_currentBasedir
+	IL_0014:  ldc.i4.0 
+	IL_0015:  stsfld int32 NAnt.Core.Tasks.IncludeTask::_nestinglevel
+	IL_001a:  ret 
+    } // end of method IncludeTask::.cctor
 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Core.Filters.Filter class NAnt.Core.Filters.FilterCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Core.Filters.FilterCollection::Add(class NAnt.Core.Filters.Filter)
-	IL_0016:  pop 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0023:  blt IL_0008
+	.property instance string BuildFileName ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 09 62 75 69 6C 64 66 69 6C 65 01 00 54 02   // ...buildfile..T.
+		08 52 65 71 75 69 72 65 64 01                   ) // .Required.
 
-	IL_0028:  ret 
-    } // end of method FilterCollection::AddRange
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-    // method line 1349
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Filters.Filter item)  cil managed 
-    {
-        // Method begins at RVA 0x18274
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+		.get instance default string NAnt.Core.Tasks.IncludeTask::get_BuildFileName () 
+		.set instance default void NAnt.Core.Tasks.IncludeTask::set_BuildFileName (string 'value') 
+	}
+  } // end of class NAnt.Core.Tasks.IncludeTask
+}
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method FilterCollection::Contains
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit CallTask
+  	extends NAnt.Core.Task
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 63 61 6C 6C 00 00 ) // ...call..
 
-    // method line 1350
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Filters.Filter[] 'array', int32 index)  cil managed 
+    .field  private  string _target
+    .field  private  bool _force
+    .field  private  bool _cascade
+
+    // method line 1223
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x18295
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x169dc
+	// Code size 14 (0xe)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method FilterCollection::CopyTo
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Tasks.CallTask::_cascade
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_000d:  ret 
+    } // end of method CallTask::.ctor
 
-    // method line 1351
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Filters.Filter item)  cil managed 
+    // method line 1224
+    .method public hidebysig specialname 
+           instance default string get_TargetName ()  cil managed 
     {
-        // Method begins at RVA 0x182a8
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x169ec
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  ldfld string NAnt.Core.Tasks.CallTask::_target
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method FilterCollection::IndexOf
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CallTask::get_TargetName
 
-    // method line 1352
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Filters.Filter item)  cil managed 
+    // method line 1225
+    .method public hidebysig specialname 
+           instance default void set_TargetName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x182c9
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x16a07
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method FilterCollection::Insert
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.CallTask::_target
+	IL_000d:  ret 
+    } // end of method CallTask::set_TargetName
 
-    // method line 1353
-    .method public hidebysig 
-           instance default class NAnt.Core.Filters.FilterEnumerator GetEnumerator ()  cil managed 
+    // method line 1226
+    .method public hidebysig specialname 
+           instance default bool get_ForceExecute ()  cil managed 
     {
-        // Method begins at RVA 0x182dc
+        // Method begins at RVA 0x16a18
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterEnumerator	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.Filters.FilterEnumerator::'.ctor'(class NAnt.Core.Filters.FilterCollection)
+	IL_0002:  ldfld bool NAnt.Core.Tasks.CallTask::_force
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FilterCollection::GetEnumerator
+    } // end of method CallTask::get_ForceExecute
 
-    // method line 1354
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Filters.Filter item)  cil managed 
+    // method line 1227
+    .method public hidebysig specialname 
+           instance default void set_ForceExecute (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x182f7
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x16a33
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method FilterCollection::Remove
-
-	.property instance class NAnt.Core.Filters.Filter Item (int32)
-	{
-		.get instance default class NAnt.Core.Filters.Filter NAnt.Core.Filters.FilterCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Core.Filters.FilterCollection::set_Item (int32 index, class NAnt.Core.Filters.Filter 'value') 
-	}
-  } // end of class NAnt.Core.Filters.FilterCollection
-}
-
-.namespace NAnt.Core.Filters
-{
-  .class public auto ansi beforefieldinit FilterEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
-
-    // method line 1355
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Filters.FilterCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0x18308
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method FilterEnumerator::.ctor
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.CallTask::_force
+	IL_0008:  ret 
+    } // end of method CallTask::set_ForceExecute
 
-    // method line 1356
+    // method line 1228
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Filters.Filter get_Current ()  cil managed 
+           instance default bool get_CascadeDependencies ()  cil managed 
     {
-        // Method begins at RVA 0x1832c
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x16a40
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.Filter	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.Filters.Filter
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0002:  ldfld bool NAnt.Core.Tasks.CallTask::_cascade
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method FilterEnumerator::get_Current
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CallTask::get_CascadeDependencies
 
-    // method line 1357
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    // method line 1229
+    .method public hidebysig specialname 
+           instance default void set_CascadeDependencies (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x18354
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		object	V_0)
+        // Method begins at RVA 0x16a5b
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FilterEnumerator::System.Collections.IEnumerator.get_Current
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.CallTask::_cascade
+	IL_0008:  ret 
+    } // end of method CallTask::set_CascadeDependencies
 
-    // method line 1358
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
+    // method line 1230
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x18374
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x16a68
+	// Code size 173 (0xad)
+	.maxstack 4
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Target	V_0,
+		class NAnt.Core.TargetCollection	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_0002:  call instance object class NAnt.Core.Element::get_Parent()
+	IL_0007:  isinst NAnt.Core.Target
 	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_000d:  ldloc.0 
+	IL_000e:  brfalse IL_0095
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FilterEnumerator::MoveNext
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_001a:  ldarg.0 
+	IL_001b:  call instance string class NAnt.Core.Tasks.CallTask::get_TargetName()
+	IL_0020:  ldarg.0 
+	IL_0021:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0026:  callvirt instance class NAnt.Core.TargetCollection class NAnt.Core.Project::get_Targets()
+	IL_002b:  callvirt instance class NAnt.Core.TargetCollection class NAnt.Core.Project::TopologicalTargetSort(string, class NAnt.Core.TargetCollection)
+	IL_0030:  stloc.1 
+	IL_0031:  ldloc.1 
+	IL_0032:  ldloc.0 
+	IL_0033:  callvirt instance string class NAnt.Core.Target::get_Name()
+	IL_0038:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
+	IL_003d:  brfalse IL_0094
 
-    // method line 1359
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+	IL_0042:  nop 
+	IL_0043:  ldloc.1 
+	IL_0044:  ldloc.1 
+	IL_0045:  ldloc.0 
+	IL_0046:  callvirt instance string class NAnt.Core.Target::get_Name()
+	IL_004b:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
+	IL_0050:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::IndexOf(object)
+	IL_0055:  ldloc.1 
+	IL_0056:  ldloc.1 
+	IL_0057:  ldarg.0 
+	IL_0058:  call instance string class NAnt.Core.Tasks.CallTask::get_TargetName()
+	IL_005d:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
+	IL_0062:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::IndexOf(object)
+	IL_0067:  bge IL_0093
+
+	IL_006c:  nop 
+	IL_006d:  ldstr "Circular dependency: "
+	IL_0072:  ldloc.1 
+	IL_0073:  ldstr " <- "
+	IL_0078:  callvirt instance string class NAnt.Core.TargetCollection::ToString(string)
+	IL_007d:  ldstr " <- "
+	IL_0082:  ldloc.0 
+	IL_0083:  callvirt instance string class NAnt.Core.Target::get_Name()
+	IL_0088:  call string string::Concat(string, string, string, string)
+	IL_008d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_0092:  throw 
+	IL_0093:  nop 
+	IL_0094:  nop 
+	IL_0095:  ldarg.0 
+	IL_0096:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_009b:  ldarg.0 
+	IL_009c:  call instance string class NAnt.Core.Tasks.CallTask::get_TargetName()
+	IL_00a1:  ldarg.0 
+	IL_00a2:  call instance bool class NAnt.Core.Tasks.CallTask::get_CascadeDependencies()
+	IL_00a7:  callvirt instance void class NAnt.Core.Project::Execute(string, bool)
+	IL_00ac:  ret 
+    } // end of method CallTask::ExecuteTask
+
+    // method line 1231
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x18394
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x16b24
+	// Code size 70 (0x46)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Target	V_0,
+		class NAnt.Core.Target	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.TargetCollection class NAnt.Core.Project::get_Targets()
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance string class NAnt.Core.Tasks.CallTask::get_TargetName()
+	IL_0012:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  brfalse IL_0045
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FilterEnumerator::System.Collections.IEnumerator.MoveNext
+	IL_001e:  nop 
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance object class NAnt.Core.Element::get_Parent()
+	IL_0025:  isinst NAnt.Core.Target
+	IL_002a:  stloc.1 
+	IL_002b:  ldloc.0 
+	IL_002c:  ldloc.1 
+	IL_002d:  bne.un IL_0044
 
-    // method line 1360
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x183b4
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method FilterEnumerator::Reset
+	IL_0032:  nop 
+	IL_0033:  ldstr "Call task cannot call its own parent."
+	IL_0038:  ldarg.0 
+	IL_0039:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_003e:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0043:  throw 
+	IL_0044:  nop 
+	IL_0045:  ret 
+    } // end of method CallTask::Initialize
 
-    // method line 1361
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x183c2
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method FilterEnumerator::System.Collections.IEnumerator.Reset
+	.property instance string TargetName ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 74 61 72 67 65 74 01 00 54 02 08 52 65   // ...target..T..Re
+		71 75 69 72 65 64 01                            ) // quired.
 
-	.property instance object System.Collections.IEnumerator.Current ()
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.Core.Tasks.CallTask::get_TargetName () 
+		.set instance default void NAnt.Core.Tasks.CallTask::set_TargetName (string 'value') 
+	}
+	.property instance bool ForceExecute ()
 	{
-		.get instance default object NAnt.Core.Filters.FilterEnumerator::System.Collections.IEnumerator.get_Current () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 66 6F 72 63 65 00 00 ) // ...force..
+
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 52 55 73 65 20 74 68 65 20 22 63 61 73 63   // ..RUse the "casc
+		61 73 65 22 20 61 74 74 72 69 62 75 74 65 20 74   // ase" attribute t
+		6F 20 63 6F 6E 74 72 6F 6C 20 77 68 65 74 68 65   // o control whethe
+		72 20 64 65 70 65 6E 64 65 6E 63 69 65 73 20 73   // r dependencies s
+		68 6F 75 6C 64 20 62 65 20 72 65 2D 65 78 65 63   // hould be re-exec
+		75 74 65 64 2E 00 00 00                         ) // uted....
+
+		.get instance default bool NAnt.Core.Tasks.CallTask::get_ForceExecute () 
+		.set instance default void NAnt.Core.Tasks.CallTask::set_ForceExecute (bool 'value') 
 	}
-	.property instance class NAnt.Core.Filters.Filter Current ()
+	.property instance bool CascadeDependencies ()
 	{
-		.get instance default class NAnt.Core.Filters.Filter NAnt.Core.Filters.FilterEnumerator::get_Current () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 63 61 73 63 61 64 65 00 00 ) // ...cascade..
+
+		.get instance default bool NAnt.Core.Tasks.CallTask::get_CascadeDependencies () 
+		.set instance default void NAnt.Core.Tasks.CallTask::set_CascadeDependencies (bool 'value') 
 	}
-  } // end of class NAnt.Core.Filters.FilterEnumerator
+  } // end of class NAnt.Core.Tasks.CallTask
 }
 
-.namespace NAnt.Core.Filters
+.namespace NAnt.Core.Tasks
 {
-  .class public auto ansi abstract beforefieldinit ChainableReader
-  	extends NAnt.Core.Element
-  	implements [mscorlib]System.IDisposable  {
-    .field  private  class NAnt.Core.Filters.ChainableReader/internalRead InternalRead
-    .field  private  class NAnt.Core.Filters.ChainableReader/internalPeek InternalPeek
-    .field  private  class NAnt.Core.Filters.ChainableReader/internalClose InternalClose
-    .field  private  bool _baseReader
+  .class public auto ansi beforefieldinit AttribTask
+  	extends NAnt.Core.Task
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 61 74 74 72 69 62 00 00 ) // ...attrib..
 
-    // method line 1362
-    .method family hidebysig specialname rtspecialname 
+    .field  private  class [mscorlib]System.IO.FileInfo _file
+    .field  private  class NAnt.Core.Types.FileSet _fileset
+    .field  private  bool _archiveAttrib
+    .field  private  bool _hiddenAttrib
+    .field  private  bool _normalAttrib
+    .field  private  bool _readOnlyAttrib
+    .field  private  bool _systemAttrib
+
+    // method line 1232
+    .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x17fd2
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x16b76
+	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_0006:  ret 
-    } // end of method ChainableReader::.ctor
+	IL_0001:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.AttribTask::_fileset
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0011:  ret 
+    } // end of method AttribTask::.ctor
 
-    // method line 1363
+    // method line 1233
     .method public hidebysig specialname 
-           instance default bool get_Base ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0x17fdc
+        // Method begins at RVA 0x16b8c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Filters.ChainableReader::_baseReader
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.AttribTask::_file
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ChainableReader::get_Base
+    } // end of method AttribTask::get_File
 
-    // method line 1364
-    .method public virtual hidebysig newslot 
-           instance default void Chain (class NAnt.Core.Filters.ChainableReader parentChainedReader)  cil managed 
+    // method line 1234
+    .method public hidebysig specialname 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x17ff8
-	// Code size 89 (0x59)
-	.maxstack 3
+        // Method begins at RVA 0x16ba7
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0018
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "parentChainedReader"
-	IL_000d:  ldstr "Argument can not be null"
-	IL_0012:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string, string)
-	IL_0017:  throw 
-	IL_0018:  ldarg.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  dup 
-	IL_001b:  ldvirtftn instance int32 class NAnt.Core.Filters.ChainableReader::Read()
-	IL_0021:  newobj instance void class NAnt.Core.Filters.ChainableReader/internalRead::'.ctor'(object, native int)
-	IL_0026:  stfld class NAnt.Core.Filters.ChainableReader/internalRead NAnt.Core.Filters.ChainableReader::InternalRead
-	IL_002b:  ldarg.0 
-	IL_002c:  ldarg.1 
-	IL_002d:  dup 
-	IL_002e:  ldvirtftn instance int32 class NAnt.Core.Filters.ChainableReader::Peek()
-	IL_0034:  newobj instance void class NAnt.Core.Filters.ChainableReader/internalPeek::'.ctor'(object, native int)
-	IL_0039:  stfld class NAnt.Core.Filters.ChainableReader/internalPeek NAnt.Core.Filters.ChainableReader::InternalPeek
-	IL_003e:  ldarg.0 
-	IL_003f:  ldarg.1 
-	IL_0040:  dup 
-	IL_0041:  ldvirtftn instance void class NAnt.Core.Filters.ChainableReader::Close()
-	IL_0047:  newobj instance void class NAnt.Core.Filters.ChainableReader/internalClose::'.ctor'(object, native int)
-	IL_004c:  stfld class NAnt.Core.Filters.ChainableReader/internalClose NAnt.Core.Filters.ChainableReader::InternalClose
-	IL_0051:  ldarg.0 
-	IL_0052:  ldc.i4.0 
-	IL_0053:  stfld bool NAnt.Core.Filters.ChainableReader::_baseReader
-	IL_0058:  ret 
-    } // end of method ChainableReader::Chain
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.AttribTask::_file
+	IL_0008:  ret 
+    } // end of method AttribTask::set_File
 
-    // method line 1365
-    .method public virtual hidebysig newslot 
-           instance default void Chain (class [mscorlib]System.IO.TextReader baseReader)  cil managed 
+    // method line 1235
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_AttribFileSet ()  cil managed 
     {
-        // Method begins at RVA 0x18060
-	// Code size 89 (0x59)
-	.maxstack 3
+        // Method begins at RVA 0x16bb4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0018
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.AttribTask::_fileset
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "baseReader"
-	IL_000d:  ldstr "Argument can not be null"
-	IL_0012:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string, string)
-	IL_0017:  throw 
-	IL_0018:  ldarg.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  dup 
-	IL_001b:  ldvirtftn instance int32 class [mscorlib]System.IO.TextReader::Read()
-	IL_0021:  newobj instance void class NAnt.Core.Filters.ChainableReader/internalRead::'.ctor'(object, native int)
-	IL_0026:  stfld class NAnt.Core.Filters.ChainableReader/internalRead NAnt.Core.Filters.ChainableReader::InternalRead
-	IL_002b:  ldarg.0 
-	IL_002c:  ldarg.1 
-	IL_002d:  dup 
-	IL_002e:  ldvirtftn instance int32 class [mscorlib]System.IO.TextReader::Peek()
-	IL_0034:  newobj instance void class NAnt.Core.Filters.ChainableReader/internalPeek::'.ctor'(object, native int)
-	IL_0039:  stfld class NAnt.Core.Filters.ChainableReader/internalPeek NAnt.Core.Filters.ChainableReader::InternalPeek
-	IL_003e:  ldarg.0 
-	IL_003f:  ldarg.1 
-	IL_0040:  dup 
-	IL_0041:  ldvirtftn instance void class [mscorlib]System.IO.TextReader::Close()
-	IL_0047:  newobj instance void class NAnt.Core.Filters.ChainableReader/internalClose::'.ctor'(object, native int)
-	IL_004c:  stfld class NAnt.Core.Filters.ChainableReader/internalClose NAnt.Core.Filters.ChainableReader::InternalClose
-	IL_0051:  ldarg.0 
-	IL_0052:  ldc.i4.1 
-	IL_0053:  stfld bool NAnt.Core.Filters.ChainableReader::_baseReader
-	IL_0058:  ret 
-    } // end of method ChainableReader::Chain
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttribTask::get_AttribFileSet
 
-    // method line 1366
-    .method public virtual hidebysig newslot 
-           instance default int32 Peek ()  cil managed 
+    // method line 1236
+    .method public hidebysig specialname 
+           instance default void set_AttribFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x180c8
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
+        // Method begins at RVA 0x16bcf
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Filters.ChainableReader/internalPeek NAnt.Core.Filters.ChainableReader::InternalPeek
-	IL_0007:  callvirt instance int32 class NAnt.Core.Filters.ChainableReader/internalPeek::Invoke()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ChainableReader::Peek
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.AttribTask::_fileset
+	IL_0008:  ret 
+    } // end of method AttribTask::set_AttribFileSet
 
-    // method line 1367
-    .method public virtual hidebysig newslot 
-           instance default int32 Read ()  cil managed 
+    // method line 1237
+    .method public hidebysig specialname 
+           instance default bool get_ArchiveAttrib ()  cil managed 
     {
-        // Method begins at RVA 0x180e8
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x16bdc
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Filters.ChainableReader/internalRead NAnt.Core.Filters.ChainableReader::InternalRead
-	IL_0007:  callvirt instance int32 class NAnt.Core.Filters.ChainableReader/internalRead::Invoke()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld bool NAnt.Core.Tasks.AttribTask::_archiveAttrib
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ChainableReader::Read
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttribTask::get_ArchiveAttrib
 
-    // method line 1368
-    .method public virtual hidebysig newslot 
-           instance default void Close ()  cil managed 
+    // method line 1238
+    .method public hidebysig specialname 
+           instance default void set_ArchiveAttrib (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x18108
-	// Code size 13 (0xd)
+        // Method begins at RVA 0x16bf7
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Filters.ChainableReader/internalClose NAnt.Core.Filters.ChainableReader::InternalClose
-	IL_0007:  callvirt instance void class NAnt.Core.Filters.ChainableReader/internalClose::Invoke()
-	IL_000c:  ret 
-    } // end of method ChainableReader::Close
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.AttribTask::_archiveAttrib
+	IL_0008:  ret 
+    } // end of method AttribTask::set_ArchiveAttrib
 
-    // method line 1369
-    .method public final virtual hidebysig newslot 
-           instance default void Dispose ()  cil managed 
+    // method line 1239
+    .method public hidebysig specialname 
+           instance default bool get_HiddenAttrib ()  cil managed 
     {
-        // Method begins at RVA 0x18116
-	// Code size 14 (0xe)
-	.maxstack 8
+        // Method begins at RVA 0x16c04
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance void class NAnt.Core.Filters.ChainableReader::Close()
-	IL_0007:  ldarg.0 
-	IL_0008:  call void class [mscorlib]System.GC::SuppressFinalize(object)
-	IL_000d:  ret 
-    } // end of method ChainableReader::Dispose
-
-	.property instance bool Base ()
-	{
-		.get instance default bool NAnt.Core.Filters.ChainableReader::get_Base () 
-	}
-  .class nested private auto ansi sealed internalRead
-  	extends [mscorlib]System.MulticastDelegate
-  {
-
-    // method line 1370
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method internalRead::.ctor
-
-    // method line 1371
-    .method public virtual hidebysig newslot 
-           instance default int32 Invoke ()  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method internalRead::Invoke
-
-    // method line 1372
-    .method public virtual hidebysig newslot 
-           instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method internalRead::BeginInvoke
-
-    // method line 1373
-    .method public virtual hidebysig newslot 
-           instance default int32 EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method internalRead::EndInvoke
-
-  } // end of class internalRead
-
-  .class nested private auto ansi sealed internalPeek
-  	extends [mscorlib]System.MulticastDelegate
-  {
-
-    // method line 1374
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method internalPeek::.ctor
-
-    // method line 1375
-    .method public virtual hidebysig newslot 
-           instance default int32 Invoke ()  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method internalPeek::Invoke
-
-    // method line 1376
-    .method public virtual hidebysig newslot 
-           instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method internalPeek::BeginInvoke
-
-    // method line 1377
-    .method public virtual hidebysig newslot 
-           instance default int32 EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method internalPeek::EndInvoke
-
-  } // end of class internalPeek
-
-  .class nested private auto ansi sealed internalClose
-  	extends [mscorlib]System.MulticastDelegate
-  {
-
-    // method line 1378
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method internalClose::.ctor
+	IL_0002:  ldfld bool NAnt.Core.Tasks.AttribTask::_hiddenAttrib
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 1379
-    .method public virtual hidebysig newslot 
-           instance default void Invoke ()  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method internalClose::Invoke
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttribTask::get_HiddenAttrib
 
-    // method line 1380
-    .method public virtual hidebysig newslot 
-           instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
+    // method line 1240
+    .method public hidebysig specialname 
+           instance default void set_HiddenAttrib (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method internalClose::BeginInvoke
+        // Method begins at RVA 0x16c1f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.AttribTask::_hiddenAttrib
+	IL_0008:  ret 
+    } // end of method AttribTask::set_HiddenAttrib
 
-    // method line 1381
-    .method public virtual hidebysig newslot 
-           instance default void EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
+    // method line 1241
+    .method public hidebysig specialname 
+           instance default bool get_NormalAttrib ()  cil managed 
     {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method internalClose::EndInvoke
-
-  } // end of class internalClose
-
-  } // end of class NAnt.Core.Filters.ChainableReader
-}
-
-.namespace NAnt.Core.Filters
-{
-  .class public auto ansi serializable beforefieldinit FilterChain
-  	extends NAnt.Core.DataTypeBase
-  {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
-		01 00 0B 66 69 6C 74 65 72 63 68 61 69 6E 00 00 ) // ...filterchain..
+        // Method begins at RVA 0x16c2c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Tasks.AttribTask::_normalAttrib
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    .field  private  class [mscorlib]System.Text.Encoding _inputEncoding
-    .field  private  class NAnt.Core.Filters.FilterCollection _filters
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttribTask::get_NormalAttrib
 
-    // method line 1382
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1242
+    .method public hidebysig specialname 
+           instance default void set_NormalAttrib (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x183d0
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x16c47
+	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Filters.FilterCollection::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.Filters.FilterCollection NAnt.Core.Filters.FilterChain::_filters
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.DataTypeBase::'.ctor'()
-	IL_0011:  ret 
-    } // end of method FilterChain::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.AttribTask::_normalAttrib
+	IL_0008:  ret 
+    } // end of method AttribTask::set_NormalAttrib
 
-    // method line 1383
+    // method line 1243
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Filters.FilterCollection get_Filters ()  cil managed 
+           instance default bool get_ReadOnlyAttrib ()  cil managed 
     {
-        // Method begins at RVA 0x183e4
+        // Method begins at RVA 0x16c54
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterCollection	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Filters.FilterCollection NAnt.Core.Filters.FilterChain::_filters
+	IL_0002:  ldfld bool NAnt.Core.Tasks.AttribTask::_readOnlyAttrib
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FilterChain::get_Filters
+    } // end of method AttribTask::get_ReadOnlyAttrib
 
-    // method line 1384
+    // method line 1244
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_InputEncoding ()  cil managed 
+           instance default void set_ReadOnlyAttrib (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x16c6f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.AttribTask::_readOnlyAttrib
+	IL_0008:  ret 
+    } // end of method AttribTask::set_ReadOnlyAttrib
+
+    // method line 1245
+    .method public hidebysig specialname 
+           instance default bool get_SystemAttrib ()  cil managed 
     {
-        // Method begins at RVA 0x18400
+        // Method begins at RVA 0x16c7c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Text.Encoding	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Filters.FilterChain::_inputEncoding
+	IL_0002:  ldfld bool NAnt.Core.Tasks.AttribTask::_systemAttrib
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FilterChain::get_InputEncoding
+    } // end of method AttribTask::get_SystemAttrib
 
-    // method line 1385
+    // method line 1246
     .method public hidebysig specialname 
-           instance default void set_InputEncoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+           instance default void set_SystemAttrib (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1841b
+        // Method begins at RVA 0x16c97
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Core.Filters.FilterChain::_inputEncoding
+	IL_0003:  stfld bool NAnt.Core.Tasks.AttribTask::_systemAttrib
 	IL_0008:  ret 
-    } // end of method FilterChain::set_InputEncoding
+    } // end of method AttribTask::set_SystemAttrib
 
-    // method line 1386
+    // method line 1247
     .method family virtual hidebysig 
-           instance default void InitializeXml (class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo framework)  cil managed 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x18428
-	// Code size 25 (0x19)
-	.maxstack 4
+        // Method begins at RVA 0x16ca4
+	// Code size 506 (0x1fa)
+	.maxstack 8
 	.locals init (
-		class NAnt.Core.Filters.FilterChain/FilterChainConfigurator	V_0)
+		valuetype [mscorlib]System.IO.FileAttributes	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		valuetype [mscorlib]System.IO.FileAttributes	V_4,
+		string	V_5,
+		class [System]System.Collections.Specialized.StringEnumerator	V_6,
+		class [mscorlib]System.IDisposable	V_7)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance void class NAnt.Core.Element::set_XmlNode(class [System.Xml]System.Xml.XmlNode)
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  ldarg.2 
-	IL_000b:  ldarg.3 
-	IL_000c:  newobj instance void class NAnt.Core.Filters.FilterChain/FilterChainConfigurator::'.ctor'(class NAnt.Core.Element, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
-	IL_0011:  stloc.0 
-	IL_0012:  ldloc.0 
-	IL_0013:  callvirt instance void class NAnt.Core.Element/AttributeConfigurator::Initialize()
-	IL_0018:  ret 
-    } // end of method FilterChain::InitializeXml
-
-    // method line 1387
-    .method assembly hidebysig 
-           instance default class NAnt.Core.Filters.Filter GetBaseFilter (class NAnt.Core.Filters.PhysicalTextReader physicalTextReader)  cil managed 
-    {
-        // Method begins at RVA 0x18450
-	// Code size 164 (0xa4)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Filters.Filter	V_0,
-		class NAnt.Core.Filters.Filter	V_1,
-		class NAnt.Core.Filters.Filter	V_2,
-		class NAnt.Core.Filters.FilterEnumerator	V_3,
-		class [mscorlib]System.IDisposable	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_000f
+	IL_0002:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_000c:  brtrue IL_002e
 
-	IL_0007:  nop 
-	IL_0008:  ldnull 
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_00a2
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	IL_0018:  ldarg.0 
+	IL_0019:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_001e:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_0023:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0028:  callvirt instance void class NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_002d:  nop 
+	IL_002e:  ldarg.0 
+	IL_002f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.AttribTask::get_File()
+	IL_0034:  brfalse IL_0057
 
-	IL_000f:  ldarg.1 
-	IL_0010:  callvirt instance bool class NAnt.Core.Filters.ChainableReader::get_Base()
-	IL_0015:  brtrue IL_0031
+	IL_0039:  nop 
+	IL_003a:  ldarg.0 
+	IL_003b:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	IL_0040:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
+	IL_0045:  ldarg.0 
+	IL_0046:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.AttribTask::get_File()
+	IL_004b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0050:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0055:  pop 
+	IL_0056:  nop 
+	IL_0057:  ldarg.0 
+	IL_0058:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	IL_005d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0062:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0067:  ldc.i4.0 
+	IL_0068:  ble IL_0105
 
-	IL_001a:  nop 
-	IL_001b:  ldstr "String_UseBaseFilter"
-	IL_0020:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0025:  ldarg.0 
-	IL_0026:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_002b:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0030:  throw 
-	IL_0031:  ldarg.1 
-	IL_0032:  stloc.1 
-	IL_0033:  nop 
-	IL_0034:  ldarg.0 
-	IL_0035:  call instance class NAnt.Core.Filters.FilterCollection class NAnt.Core.Filters.FilterChain::get_Filters()
-	IL_003a:  callvirt instance class NAnt.Core.Filters.FilterEnumerator class NAnt.Core.Filters.FilterCollection::GetEnumerator()
-	IL_003f:  stloc.3 
+	IL_006d:  nop 
+	IL_006e:  ldarg.0 
+	IL_006f:  call instance valuetype [mscorlib]System.IO.FileAttributes class NAnt.Core.Tasks.AttribTask::GetFileAttributes()
+	IL_0074:  stloc.0 
+	IL_0075:  ldarg.0 
+	IL_0076:  ldc.i4 3000
+	IL_007b:  ldstr "Setting file attributes for {0} files to {1}."
+	IL_0080:  ldc.i4.2 
+	IL_0081:  newarr [mscorlib]System.Object
+	IL_0086:  dup 
+	IL_0087:  ldc.i4.0 
+	IL_0088:  ldarg.0 
+	IL_0089:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	IL_008e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0093:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0098:  box [mscorlib]System.Int32
+	IL_009d:  stelem.ref 
+	IL_009e:  dup 
+	IL_009f:  ldc.i4.1 
+	IL_00a0:  ldloca.s 0
+	IL_00a2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00a7:  constrained. [mscorlib]System.IO.FileAttributes
+	IL_00ad:  callvirt instance string class [mscorlib]System.Enum::ToString(class [mscorlib]System.IFormatProvider)
+	IL_00b2:  stelem.ref 
+	IL_00b3:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_00b8:  nop 
+	IL_00b9:  ldarg.0 
+	IL_00ba:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	IL_00bf:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_00c4:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_00c9:  stloc.2 
 	.try { // 0
-	  IL_0040:  br IL_0075
-
-	  IL_0045:  ldloc.3 
-	  IL_0046:  callvirt instance class NAnt.Core.Filters.Filter class NAnt.Core.Filters.FilterEnumerator::get_Current()
-	  IL_004b:  stloc.2 
-	  IL_004c:  nop 
-	  IL_004d:  ldloc.2 
-	  IL_004e:  callvirt instance bool class NAnt.Core.Filters.Filter::get_IfDefined()
-	  IL_0053:  brfalse IL_0074
-
-	  IL_0058:  ldloc.2 
-	  IL_0059:  callvirt instance bool class NAnt.Core.Filters.Filter::get_UnlessDefined()
-	  IL_005e:  brtrue IL_0074
+	  IL_00ca:  br IL_00e0
 
-	  IL_0063:  nop 
-	  IL_0064:  ldloc.2 
-	  IL_0065:  ldloc.1 
-	  IL_0066:  callvirt instance void class NAnt.Core.Filters.ChainableReader::Chain(class NAnt.Core.Filters.ChainableReader)
-	  IL_006b:  ldloc.2 
-	  IL_006c:  callvirt instance void class NAnt.Core.Filters.Filter::InitializeFilter()
-	  IL_0071:  ldloc.2 
-	  IL_0072:  stloc.1 
-	  IL_0073:  nop 
-	  IL_0074:  nop 
-	  IL_0075:  ldloc.3 
-	  IL_0076:  callvirt instance bool class NAnt.Core.Filters.FilterEnumerator::MoveNext()
-	  IL_007b:  brtrue IL_0045
+	  IL_00cf:  ldloc.2 
+	  IL_00d0:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_00d5:  stloc.1 
+	  IL_00d6:  nop 
+	  IL_00d7:  ldarg.0 
+	  IL_00d8:  ldloc.1 
+	  IL_00d9:  ldloc.0 
+	  IL_00da:  call instance void class NAnt.Core.Tasks.AttribTask::SetFileAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
+	  IL_00df:  nop 
+	  IL_00e0:  ldloc.2 
+	  IL_00e1:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_00e6:  brtrue IL_00cf
 
-	  IL_0080:  leave IL_009b
+	  IL_00eb:  leave IL_0104
 
 	} // end .try 0
 	finally  { // 0
-	  IL_0085:  ldloc.3 
-	  IL_0086:  isinst [mscorlib]System.IDisposable
-	  IL_008b:  dup 
-	  IL_008c:  stloc.s 4
-	  IL_008e:  brfalse IL_009a
+	  IL_00f0:  ldloc.2 
+	  IL_00f1:  isinst [mscorlib]System.IDisposable
+	  IL_00f6:  dup 
+	  IL_00f7:  stloc.3 
+	  IL_00f8:  brfalse IL_0103
 
-	  IL_0093:  ldloc.s 4
-	  IL_0095:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_009a:  endfinally 
+	  IL_00fd:  ldloc.3 
+	  IL_00fe:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0103:  endfinally 
 	} // end handler 0
-	IL_009b:  ldloc.1 
-	IL_009c:  stloc.0 
-	IL_009d:  br IL_00a2
+	IL_0104:  nop 
+	IL_0105:  ldarg.0 
+	IL_0106:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	IL_010b:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
+	IL_0110:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0115:  ldc.i4.0 
+	IL_0116:  ble IL_01bd
 
-	IL_00a2:  ldloc.0 
-	IL_00a3:  ret 
-    } // end of method FilterChain::GetBaseFilter
+	IL_011b:  nop 
+	IL_011c:  ldarg.0 
+	IL_011d:  call instance valuetype [mscorlib]System.IO.FileAttributes class NAnt.Core.Tasks.AttribTask::GetDirectoryAttributes()
+	IL_0122:  stloc.s 4
+	IL_0124:  ldarg.0 
+	IL_0125:  ldc.i4 3000
+	IL_012a:  ldstr "Setting attributes for {0} directories to {1}."
+	IL_012f:  ldc.i4.2 
+	IL_0130:  newarr [mscorlib]System.Object
+	IL_0135:  dup 
+	IL_0136:  ldc.i4.0 
+	IL_0137:  ldarg.0 
+	IL_0138:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	IL_013d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
+	IL_0142:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0147:  box [mscorlib]System.Int32
+	IL_014c:  stelem.ref 
+	IL_014d:  dup 
+	IL_014e:  ldc.i4.1 
+	IL_014f:  ldloca.s 4
+	IL_0151:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0156:  constrained. [mscorlib]System.IO.FileAttributes
+	IL_015c:  callvirt instance string class [mscorlib]System.Enum::ToString(class [mscorlib]System.IFormatProvider)
+	IL_0161:  stelem.ref 
+	IL_0162:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0167:  nop 
+	IL_0168:  ldarg.0 
+	IL_0169:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	IL_016e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
+	IL_0173:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0178:  stloc.s 6
+	.try { // 1
+	  IL_017a:  br IL_0194
 
-    // method line 1388
-    .method assembly static hidebysig 
-           default bool IsNullOrEmpty (class NAnt.Core.Filters.FilterChain filterChain)  cil managed 
+	  IL_017f:  ldloc.s 6
+	  IL_0181:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0186:  stloc.s 5
+	  IL_0188:  nop 
+	  IL_0189:  ldarg.0 
+	  IL_018a:  ldloc.s 5
+	  IL_018c:  ldloc.s 4
+	  IL_018e:  call instance void class NAnt.Core.Tasks.AttribTask::SetDirectoryAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
+	  IL_0193:  nop 
+	  IL_0194:  ldloc.s 6
+	  IL_0196:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_019b:  brtrue IL_017f
+
+	  IL_01a0:  leave IL_01bc
+
+	} // end .try 1
+	finally  { // 1
+	  IL_01a5:  ldloc.s 6
+	  IL_01a7:  isinst [mscorlib]System.IDisposable
+	  IL_01ac:  dup 
+	  IL_01ad:  stloc.s 7
+	  IL_01af:  brfalse IL_01bb
+
+	  IL_01b4:  ldloc.s 7
+	  IL_01b6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01bb:  endfinally 
+	} // end handler 1
+	IL_01bc:  nop 
+	IL_01bd:  ldarg.0 
+	IL_01be:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	IL_01c3:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_01c8:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_01cd:  brtrue IL_01f9
+
+	IL_01d2:  ldarg.0 
+	IL_01d3:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	IL_01d8:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
+	IL_01dd:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_01e2:  brtrue IL_01f9
+
+	IL_01e7:  nop 
+	IL_01e8:  ldarg.0 
+	IL_01e9:  ldc.i4 2000
+	IL_01ee:  ldstr "No matching files or directories found."
+	IL_01f3:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_01f8:  nop 
+	IL_01f9:  ret 
+    } // end of method AttribTask::ExecuteTask
+
+    // method line 1248
+    .method private hidebysig 
+           instance default valuetype [mscorlib]System.IO.FileAttributes GetFileAttributes ()  cil managed 
     {
-        // Method begins at RVA 0x18510
-	// Code size 41 (0x29)
+        // Method begins at RVA 0x16ec8
+	// Code size 141 (0x8d)
 	.maxstack 2
 	.locals init (
-		bool	V_0)
+		valuetype [mscorlib]System.IO.FileAttributes	V_0,
+		valuetype [mscorlib]System.IO.FileAttributes	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_000f
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  call instance bool class NAnt.Core.Tasks.AttribTask::get_NormalAttrib()
+	IL_0009:  brfalse IL_001b
 
-	IL_0007:  nop 
-	IL_0008:  ldc.i4.1 
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_0027
+	IL_000e:  nop 
+	IL_000f:  ldc.i4 128
+	IL_0014:  stloc.0 
+	IL_0015:  nop 
+	IL_0016:  br IL_0062
 
-	IL_000f:  nop 
-	IL_0010:  ldarg.0 
-	IL_0011:  callvirt instance class NAnt.Core.Filters.FilterCollection class NAnt.Core.Filters.FilterChain::get_Filters()
-	IL_0016:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_001b:  ldc.i4.0 
-	IL_001c:  cgt 
-	IL_001e:  ldc.i4.0 
-	IL_001f:  ceq 
-	IL_0021:  stloc.0 
-	IL_0022:  br IL_0027
+	IL_001b:  nop 
+	IL_001c:  ldarg.0 
+	IL_001d:  call instance bool class NAnt.Core.Tasks.AttribTask::get_ArchiveAttrib()
+	IL_0022:  brfalse IL_002e
 
-	IL_0027:  ldloc.0 
-	IL_0028:  ret 
-    } // end of method FilterChain::IsNullOrEmpty
+	IL_0027:  nop 
+	IL_0028:  ldloc.0 
+	IL_0029:  ldc.i4.s 0x20
+	IL_002b:  or 
+	IL_002c:  stloc.0 
+	IL_002d:  nop 
+	IL_002e:  ldarg.0 
+	IL_002f:  call instance bool class NAnt.Core.Tasks.AttribTask::get_HiddenAttrib()
+	IL_0034:  brfalse IL_003f
 
-	.property instance class NAnt.Core.Filters.FilterCollection Filters ()
-	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (
-		01 00 06 66 69 6C 74 65 72 01 00 54 50 0B 45 6C   // ...filter..TP.El
-		65 6D 65 6E 74 54 79 70 65 18 4E 41 6E 74 2E 43   // ementType.NAnt.C
-		6F 72 65 2E 46 69 6C 74 65 72 73 2E 46 69 6C 74   // ore.Filters.Filt
-		65 72                                           ) // er
+	IL_0039:  nop 
+	IL_003a:  ldloc.0 
+	IL_003b:  ldc.i4.2 
+	IL_003c:  or 
+	IL_003d:  stloc.0 
+	IL_003e:  nop 
+	IL_003f:  ldarg.0 
+	IL_0040:  call instance bool class NAnt.Core.Tasks.AttribTask::get_ReadOnlyAttrib()
+	IL_0045:  brfalse IL_0050
 
-		.get instance default class NAnt.Core.Filters.FilterCollection NAnt.Core.Filters.FilterChain::get_Filters () 
-	}
-	.property instance class [mscorlib]System.Text.Encoding InputEncoding ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 65 6E 63 6F 64 69 6E 67 00 00 ) // ...encoding..
+	IL_004a:  nop 
+	IL_004b:  ldloc.0 
+	IL_004c:  ldc.i4.1 
+	IL_004d:  or 
+	IL_004e:  stloc.0 
+	IL_004f:  nop 
+	IL_0050:  ldarg.0 
+	IL_0051:  call instance bool class NAnt.Core.Tasks.AttribTask::get_SystemAttrib()
+	IL_0056:  brfalse IL_0061
 
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 37 54 68 65 20 69 6E 70 75 74 20 65 6E 63   // ..7The input enc
-		6F 64 69 6E 67 20 73 68 6F 75 6C 64 20 6E 6F 77   // oding should now
-		20 62 65 20 73 70 65 63 69 66 69 65 64 20 6F 6E   //  be specified on
-		20 74 68 65 20 74 61 73 6B 2E 01 00 00          ) //  the task....
+	IL_005b:  nop 
+	IL_005c:  ldloc.0 
+	IL_005d:  ldc.i4.4 
+	IL_005e:  or 
+	IL_005f:  stloc.0 
+	IL_0060:  nop 
+	IL_0061:  nop 
+	IL_0062:  ldtoken [mscorlib]System.IO.FileAttributes
+	IL_0067:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_006c:  ldloc.0 
+	IL_006d:  box [mscorlib]System.IO.FileAttributes
+	IL_0072:  call bool class [mscorlib]System.Enum::IsDefined(class [mscorlib]System.Type, object)
+	IL_0077:  brtrue IL_0084
 
-		.get instance default class [mscorlib]System.Text.Encoding NAnt.Core.Filters.FilterChain::get_InputEncoding () 
-		.set instance default void NAnt.Core.Filters.FilterChain::set_InputEncoding (class [mscorlib]System.Text.Encoding 'value') 
-	}
-  .class nested public auto ansi beforefieldinit FilterChainConfigurator
-  	extends NAnt.Core.Element/AttributeConfigurator
-  {
+	IL_007c:  nop 
+	IL_007d:  ldc.i4 128
+	IL_0082:  stloc.0 
+	IL_0083:  nop 
+	IL_0084:  ldloc.0 
+	IL_0085:  stloc.1 
+	IL_0086:  br IL_008b
 
-    // method line 1389
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Element element, class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo targetFramework)  cil managed 
-    {
-        // Method begins at RVA 0x18545
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  ldarg.s 4
-	IL_0006:  call instance void class NAnt.Core.Element/AttributeConfigurator::'.ctor'(class NAnt.Core.Element, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
-	IL_000b:  nop 
-	IL_000c:  ret 
-    } // end of method FilterChainConfigurator::.ctor
+	IL_008b:  ldloc.1 
+	IL_008c:  ret 
+    } // end of method AttribTask::GetFileAttributes
 
-    // method line 1390
-    .method family virtual hidebysig 
-           instance default bool InitializeBuildElementCollection (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
+    // method line 1249
+    .method private hidebysig 
+           instance default void SetFileAttributes (string path, valuetype [mscorlib]System.IO.FileAttributes fileAttributes)  cil managed 
     {
-        // Method begins at RVA 0x18554
-	// Code size 732 (0x2dc)
-	.maxstack 8
+        // Method begins at RVA 0x16f64
+	// Code size 114 (0x72)
+	.maxstack 5
 	.locals init (
-		class [mscorlib]System.Type	V_0,
-		class NAnt.Core.Attributes.BuildElementArrayAttribute	V_1,
-		bool	V_2,
-		class [System.Xml]System.Xml.XmlNodeList	V_3,
-		class [mscorlib]System.Collections.ArrayList	V_4,
-		class [System.Xml]System.Xml.XmlNode	V_5,
-		class [mscorlib]System.Collections.IEnumerator	V_6,
-		class NAnt.Core.Filters.Filter	V_7,
-		class [mscorlib]System.IDisposable	V_8,
-		class [mscorlib]System.Reflection.MethodInfo	V_9,
-		class [mscorlib]System.Reflection.MethodInfo[]	V_10,
-		class [mscorlib]System.Reflection.MethodInfo	V_11,
-		class [mscorlib]System.Reflection.MethodInfo[]	V_12,
-		int32	V_13,
-		class [mscorlib]System.Reflection.ParameterInfo	V_14,
-		object	V_15,
-		object	V_16,
-		object	V_17,
-		class [mscorlib]System.Collections.IEnumerator	V_18,
-		class [mscorlib]System.IDisposable	V_19)
+		class [mscorlib]System.Exception	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldtoken NAnt.Core.Filters.Filter
-	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000b:  stloc.0 
-	IL_000c:  ldarg.1 
-	IL_000d:  ldtoken NAnt.Core.Attributes.BuildElementArrayAttribute
-	IL_0012:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0017:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	IL_001c:  castclass NAnt.Core.Attributes.BuildElementArrayAttribute
-	IL_0021:  stloc.1 
-	IL_0022:  ldloc.1 
-	IL_0023:  brfalse IL_0042
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.0 
+	  IL_0003:  ldc.i4 2000
+	  IL_0008:  ldarg.1 
+	  IL_0009:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	  IL_000e:  ldarg.1 
+	  IL_000f:  ldarg.2 
+	  IL_0010:  call void class [mscorlib]System.IO.File::SetAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
+	  IL_0015:  nop 
+	  IL_0016:  leave IL_0071
 
-	IL_0028:  ldarg.1 
-	IL_0029:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_002e:  ldtoken NAnt.Core.Filters.FilterCollection
-	IL_0033:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0038:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_003d:  brfalse IL_0050
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_001b:  stloc.0 
+	  IL_001c:  nop 
+	  IL_001d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0022:  ldstr "NA1102"
+	  IL_0027:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_002c:  ldarg.1 
+	  IL_002d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0032:  stloc.1 
+	  IL_0033:  ldarg.0 
+	  IL_0034:  call instance bool class NAnt.Core.Task::get_FailOnError()
+	  IL_0039:  brfalse IL_004d
 
-	IL_0042:  nop 
-	IL_0043:  ldarg.0 
-	IL_0044:  ldarg.1 
-	IL_0045:  call instance bool class NAnt.Core.Element/AttributeConfigurator::InitializeBuildElementCollection(class [mscorlib]System.Reflection.PropertyInfo)
-	IL_004a:  stloc.2 
-	IL_004b:  br IL_02da
+	  IL_003e:  nop 
+	  IL_003f:  ldloc.1 
+	  IL_0040:  ldarg.0 
+	  IL_0041:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0046:  ldloc.0 
+	  IL_0047:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_004c:  throw 
+	  IL_004d:  nop 
+	  IL_004e:  ldarg.0 
+	  IL_004f:  ldc.i4 2000
+	  IL_0054:  ldloc.1 
+	  IL_0055:  ldstr " "
+	  IL_005a:  ldloc.0 
+	  IL_005b:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	  IL_0060:  call string string::Concat(string, string, string)
+	  IL_0065:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	  IL_006a:  nop 
+	  IL_006b:  nop 
+	  IL_006c:  leave IL_0071
 
-	IL_0050:  ldarg.0 
-	IL_0051:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_0056:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::get_ChildNodes()
-	IL_005b:  stloc.3 
-	IL_005c:  ldloc.3 
-	IL_005d:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_0062:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
-	IL_0067:  stloc.s 4
-	IL_0069:  nop 
-	IL_006a:  ldloc.3 
-	IL_006b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_0070:  stloc.s 6
-	.try { // 0
-	  IL_0072:  br IL_00e6
+	} // end handler 0
+	IL_0071:  ret 
+    } // end of method AttribTask::SetFileAttributes
 
-	  IL_0077:  ldloc.s 6
-	  IL_0079:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_007e:  castclass [System.Xml]System.Xml.XmlNode
-	  IL_0083:  stloc.s 5
-	  IL_0085:  nop 
-	  IL_0086:  ldloc.s 5
-	  IL_0088:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
-	  IL_008d:  ldc.i4.1 
-	  IL_008e:  bne.un IL_00b4
+    // method line 1250
+    .method private hidebysig 
+           instance default valuetype [mscorlib]System.IO.FileAttributes GetDirectoryAttributes ()  cil managed 
+    {
+        // Method begins at RVA 0x16ff4
+	// Code size 95 (0x5f)
+	.maxstack 2
+	.locals init (
+		valuetype [mscorlib]System.IO.FileAttributes	V_0,
+		valuetype [mscorlib]System.IO.FileAttributes	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.s 0x10
+	IL_0003:  stloc.0 
+	IL_0004:  ldarg.0 
+	IL_0005:  call instance bool class NAnt.Core.Tasks.AttribTask::get_NormalAttrib()
+	IL_000a:  brtrue IL_0056
 
-	  IL_0093:  ldloc.s 5
-	  IL_0095:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	  IL_009a:  ldarg.0 
-	  IL_009b:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
-	  IL_00a0:  ldstr "nant"
-	  IL_00a5:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
-	  IL_00aa:  callvirt instance bool string::Equals(string)
-	  IL_00af:  brtrue IL_00ba
+	IL_000f:  nop 
+	IL_0010:  ldarg.0 
+	IL_0011:  call instance bool class NAnt.Core.Tasks.AttribTask::get_ArchiveAttrib()
+	IL_0016:  brfalse IL_0022
 
-	  IL_00b4:  nop 
-	  IL_00b5:  leave IL_00e6
+	IL_001b:  nop 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldc.i4.s 0x20
+	IL_001f:  or 
+	IL_0020:  stloc.0 
+	IL_0021:  nop 
+	IL_0022:  ldarg.0 
+	IL_0023:  call instance bool class NAnt.Core.Tasks.AttribTask::get_HiddenAttrib()
+	IL_0028:  brfalse IL_0033
 
-	  IL_00ba:  ldarg.0 
-	  IL_00bb:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
-	  IL_00c0:  ldloc.s 5
-	  IL_00c2:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_00c7:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Remove(string)
-	  IL_00cc:  ldloc.s 5
-	  IL_00ce:  ldarg.0 
-	  IL_00cf:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	  IL_00d4:  call class NAnt.Core.Filters.Filter class NAnt.Core.TypeFactory::CreateFilter(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Element)
-	  IL_00d9:  stloc.s 7
-	  IL_00db:  ldloc.s 4
-	  IL_00dd:  ldloc.s 7
-	  IL_00df:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_00e4:  pop 
-	  IL_00e5:  nop 
-	  IL_00e6:  ldloc.s 6
-	  IL_00e8:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00ed:  brtrue IL_0077
+	IL_002d:  nop 
+	IL_002e:  ldloc.0 
+	IL_002f:  ldc.i4.2 
+	IL_0030:  or 
+	IL_0031:  stloc.0 
+	IL_0032:  nop 
+	IL_0033:  ldarg.0 
+	IL_0034:  call instance bool class NAnt.Core.Tasks.AttribTask::get_ReadOnlyAttrib()
+	IL_0039:  brfalse IL_0044
 
-	  IL_00f2:  leave IL_010e
+	IL_003e:  nop 
+	IL_003f:  ldloc.0 
+	IL_0040:  ldc.i4.1 
+	IL_0041:  or 
+	IL_0042:  stloc.0 
+	IL_0043:  nop 
+	IL_0044:  ldarg.0 
+	IL_0045:  call instance bool class NAnt.Core.Tasks.AttribTask::get_SystemAttrib()
+	IL_004a:  brfalse IL_0055
 
-	} // end .try 0
-	finally  { // 0
-	  IL_00f7:  ldloc.s 6
-	  IL_00f9:  isinst [mscorlib]System.IDisposable
-	  IL_00fe:  dup 
-	  IL_00ff:  stloc.s 8
-	  IL_0101:  brfalse IL_010d
+	IL_004f:  nop 
+	IL_0050:  ldloc.0 
+	IL_0051:  ldc.i4.4 
+	IL_0052:  or 
+	IL_0053:  stloc.0 
+	IL_0054:  nop 
+	IL_0055:  nop 
+	IL_0056:  ldloc.0 
+	IL_0057:  stloc.1 
+	IL_0058:  br IL_005d
 
-	  IL_0106:  ldloc.s 8
-	  IL_0108:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_010d:  endfinally 
-	} // end handler 0
-	IL_010e:  ldnull 
-	IL_010f:  stloc.s 9
-	IL_0111:  ldarg.1 
-	IL_0112:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_0117:  ldc.i4.s 0x14
-	IL_0119:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_011e:  stloc.s 10
-	IL_0120:  nop 
-	IL_0121:  ldloc.s 10
-	IL_0123:  stloc.s 12
-	IL_0125:  ldc.i4.0 
-	IL_0126:  stloc.s 13
-	IL_0128:  br IL_018a
+	IL_005d:  ldloc.1 
+	IL_005e:  ret 
+    } // end of method AttribTask::GetDirectoryAttributes
 
-	IL_012d:  ldloc.s 12
-	IL_012f:  ldloc.s 13
-	IL_0131:  ldelem.ref 
-	IL_0132:  stloc.s 11
-	IL_0134:  nop 
-	IL_0135:  ldloc.s 11
-	IL_0137:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_013c:  ldstr "Add"
-	IL_0141:  call bool string::op_Equality(string, string)
-	IL_0146:  brfalse IL_0183
+    // method line 1251
+    .method private hidebysig 
+           instance default void SetDirectoryAttributes (string path, valuetype [mscorlib]System.IO.FileAttributes fileAttributes)  cil managed 
+    {
+        // Method begins at RVA 0x17060
+	// Code size 139 (0x8b)
+	.maxstack 5
+	.locals init (
+		class [mscorlib]System.Exception	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_0008:  brfalse IL_0027
 
-	IL_014b:  ldloc.s 11
-	IL_014d:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_0152:  ldlen 
-	IL_0153:  conv.i4 
-	IL_0154:  ldc.i4.1 
-	IL_0155:  bne.un IL_0183
+	  IL_000d:  nop 
+	  IL_000e:  ldarg.0 
+	  IL_000f:  ldc.i4 2000
+	  IL_0014:  ldarg.1 
+	  IL_0015:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	  IL_001a:  ldarg.1 
+	  IL_001b:  ldarg.2 
+	  IL_001c:  call void class [mscorlib]System.IO.File::SetAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
+	  IL_0021:  nop 
+	  IL_0022:  br IL_002e
 
-	IL_015a:  nop 
-	IL_015b:  ldloc.s 11
-	IL_015d:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_0162:  ldc.i4.0 
-	IL_0163:  ldelem.ref 
-	IL_0164:  stloc.s 14
-	IL_0166:  ldloc.s 14
-	IL_0168:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	IL_016d:  ldloc.0 
-	IL_016e:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_0173:  brfalse IL_0182
+	  IL_0027:  nop 
+	  IL_0028:  newobj instance void class [mscorlib]System.IO.DirectoryNotFoundException::'.ctor'()
+	  IL_002d:  throw 
+	  IL_002e:  nop 
+	  IL_002f:  leave IL_008a
 
-	IL_0178:  nop 
-	IL_0179:  ldloc.s 11
-	IL_017b:  stloc.s 9
-	IL_017d:  br IL_0195
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0034:  stloc.0 
+	  IL_0035:  nop 
+	  IL_0036:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_003b:  ldstr "NA1101"
+	  IL_0040:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0045:  ldarg.1 
+	  IL_0046:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_004b:  stloc.1 
+	  IL_004c:  ldarg.0 
+	  IL_004d:  call instance bool class NAnt.Core.Task::get_FailOnError()
+	  IL_0052:  brfalse IL_0066
 
-	IL_0182:  nop 
-	IL_0183:  nop 
-	IL_0184:  ldloc.s 13
-	IL_0186:  ldc.i4.1 
-	IL_0187:  add 
-	IL_0188:  stloc.s 13
-	IL_018a:  ldloc.s 13
-	IL_018c:  ldloc.s 12
-	IL_018e:  ldlen 
-	IL_018f:  conv.i4 
-	IL_0190:  blt IL_012d
+	  IL_0057:  nop 
+	  IL_0058:  ldloc.1 
+	  IL_0059:  ldarg.0 
+	  IL_005a:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_005f:  ldloc.0 
+	  IL_0060:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0065:  throw 
+	  IL_0066:  nop 
+	  IL_0067:  ldarg.0 
+	  IL_0068:  ldc.i4 2000
+	  IL_006d:  ldloc.1 
+	  IL_006e:  ldstr " "
+	  IL_0073:  ldloc.0 
+	  IL_0074:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	  IL_0079:  call string string::Concat(string, string, string)
+	  IL_007e:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	  IL_0083:  nop 
+	  IL_0084:  nop 
+	  IL_0085:  leave IL_008a
 
-	IL_0195:  ldloc.s 9
-	IL_0197:  ldnull 
-	IL_0198:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_019d:  brfalse IL_01f2
+	} // end handler 0
+	IL_008a:  ret 
+    } // end of method AttribTask::SetDirectoryAttributes
 
-	IL_01a2:  nop 
-	IL_01a3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01a8:  ldstr "NA1020"
-	IL_01ad:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_01b2:  ldc.i4.4 
-	IL_01b3:  newarr [mscorlib]System.Object
-	IL_01b8:  dup 
-	IL_01b9:  ldc.i4.0 
-	IL_01ba:  ldloc.0 
-	IL_01bb:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_01c0:  stelem.ref 
-	IL_01c1:  dup 
-	IL_01c2:  ldc.i4.1 
-	IL_01c3:  ldarg.1 
-	IL_01c4:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_01c9:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_01ce:  stelem.ref 
-	IL_01cf:  dup 
-	IL_01d0:  ldc.i4.2 
-	IL_01d1:  ldarg.1 
-	IL_01d2:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_01d7:  stelem.ref 
-	IL_01d8:  dup 
-	IL_01d9:  ldc.i4.3 
-	IL_01da:  ldarg.0 
-	IL_01db:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
-	IL_01e0:  stelem.ref 
-	IL_01e1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_01e6:  ldarg.0 
-	IL_01e7:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_01ec:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_01f1:  throw 
-	IL_01f2:  ldarg.1 
-	IL_01f3:  ldarg.0 
-	IL_01f4:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_01f9:  ldc.i4.0 
-	IL_01fa:  ldnull 
-	IL_01fb:  ldnull 
-	IL_01fc:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0201:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_0206:  stloc.s 15
-	IL_0208:  ldloc.s 15
-	IL_020a:  brtrue IL_0275
+	.property instance class [mscorlib]System.IO.FileInfo File ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
 
-	IL_020f:  nop 
-	IL_0210:  ldarg.1 
-	IL_0211:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
-	IL_0216:  brtrue IL_0248
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.AttribTask::get_File () 
+		.set instance default void NAnt.Core.Tasks.AttribTask::set_File (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class NAnt.Core.Types.FileSet AttribFileSet ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
 
-	IL_021b:  nop 
-	IL_021c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0221:  ldstr "NA1093"
-	IL_0226:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_022b:  ldloc.1 
-	IL_022c:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_0231:  ldarg.0 
-	IL_0232:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
-	IL_0237:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_023c:  ldarg.0 
-	IL_023d:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_0242:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0247:  throw 
-	IL_0248:  ldarg.1 
-	IL_0249:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_024e:  ldc.i4.s 0x14
-	IL_0250:  ldnull 
-	IL_0251:  ldnull 
-	IL_0252:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0257:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_025c:  stloc.s 16
-	IL_025e:  ldarg.1 
-	IL_025f:  ldarg.0 
-	IL_0260:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_0265:  ldloc.s 16
-	IL_0267:  ldc.i4.0 
-	IL_0268:  ldnull 
-	IL_0269:  ldnull 
-	IL_026a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_026f:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_0274:  nop 
-	IL_0275:  nop 
-	IL_0276:  ldloc.s 4
-	IL_0278:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_027d:  stloc.s 18
-	.try { // 1
-	  IL_027f:  br IL_02ab
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.AttribTask::get_AttribFileSet () 
+		.set instance default void NAnt.Core.Tasks.AttribTask::set_AttribFileSet (class NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance bool ArchiveAttrib ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 61 72 63 68 69 76 65 00 00 ) // ...archive..
 
-	  IL_0284:  ldloc.s 18
-	  IL_0286:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_028b:  stloc.s 17
-	  IL_028d:  nop 
-	  IL_028e:  ldloc.s 9
-	  IL_0290:  ldloc.s 15
-	  IL_0292:  ldc.i4.0 
-	  IL_0293:  ldnull 
-	  IL_0294:  ldc.i4.1 
-	  IL_0295:  newarr [mscorlib]System.Object
-	  IL_029a:  dup 
-	  IL_029b:  ldc.i4.0 
-	  IL_029c:  ldloc.s 17
-	  IL_029e:  stelem.ref 
-	  IL_029f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_02a4:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	  IL_02a9:  pop 
-	  IL_02aa:  nop 
-	  IL_02ab:  ldloc.s 18
-	  IL_02ad:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_02b2:  brtrue IL_0284
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	  IL_02b7:  leave IL_02d3
+		.get instance default bool NAnt.Core.Tasks.AttribTask::get_ArchiveAttrib () 
+		.set instance default void NAnt.Core.Tasks.AttribTask::set_ArchiveAttrib (bool 'value') 
+	}
+	.property instance bool HiddenAttrib ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 68 69 64 64 65 6E 00 00 ) // ...hidden..
 
-	} // end .try 1
-	finally  { // 1
-	  IL_02bc:  ldloc.s 18
-	  IL_02be:  isinst [mscorlib]System.IDisposable
-	  IL_02c3:  dup 
-	  IL_02c4:  stloc.s 19
-	  IL_02c6:  brfalse IL_02d2
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	  IL_02cb:  ldloc.s 19
-	  IL_02cd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_02d2:  endfinally 
-	} // end handler 1
-	IL_02d3:  ldc.i4.1 
-	IL_02d4:  stloc.2 
-	IL_02d5:  br IL_02da
+		.get instance default bool NAnt.Core.Tasks.AttribTask::get_HiddenAttrib () 
+		.set instance default void NAnt.Core.Tasks.AttribTask::set_HiddenAttrib (bool 'value') 
+	}
+	.property instance bool NormalAttrib ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 6E 6F 72 6D 61 6C 00 00 ) // ...normal..
 
-	IL_02da:  ldloc.2 
-	IL_02db:  ret 
-    } // end of method FilterChainConfigurator::InitializeBuildElementCollection
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-  } // end of class FilterChainConfigurator
+		.get instance default bool NAnt.Core.Tasks.AttribTask::get_NormalAttrib () 
+		.set instance default void NAnt.Core.Tasks.AttribTask::set_NormalAttrib (bool 'value') 
+	}
+	.property instance bool ReadOnlyAttrib ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 72 65 61 64 6F 6E 6C 79 00 00 ) // ...readonly..
 
-  } // end of class NAnt.Core.Filters.FilterChain
-}
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-.namespace NAnt.Core.Filters
-{
-  .class private auto ansi beforefieldinit PhysicalTextReader
-  	extends NAnt.Core.Filters.Filter
-  {
+		.get instance default bool NAnt.Core.Tasks.AttribTask::get_ReadOnlyAttrib () 
+		.set instance default void NAnt.Core.Tasks.AttribTask::set_ReadOnlyAttrib (bool 'value') 
+	}
+	.property instance bool SystemAttrib ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 73 79 73 74 65 6D 00 00 ) // ...system..
 
-    // method line 1391
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.IO.TextReader textReader)  cil managed 
-    {
-        // Method begins at RVA 0x18858
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Filters.Filter::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Filters.ChainableReader::Chain(class [mscorlib]System.IO.TextReader)
-	IL_000e:  ret 
-    } // end of method PhysicalTextReader::.ctor
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-  } // end of class NAnt.Core.Filters.PhysicalTextReader
+		.get instance default bool NAnt.Core.Tasks.AttribTask::get_SystemAttrib () 
+		.set instance default void NAnt.Core.Tasks.AttribTask::set_SystemAttrib (bool 'value') 
+	}
+  } // end of class NAnt.Core.Tasks.AttribTask
 }
 
-.namespace NAnt.Core.Filters
+.namespace NAnt.Core.Tasks
 {
-  .class public auto ansi serializable beforefieldinit FilterBuilderCollection
-  	extends [mscorlib]System.Collections.CollectionBase
+  .class public auto ansi beforefieldinit TouchTask
+  	extends NAnt.Core.Task
   {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 74 6F 75 63 68 00 00 ) // ...touch..
 
+    .field  private  class [mscorlib]System.IO.FileInfo _file
+    .field  private  int64 _millis
+    .field  private  valuetype [mscorlib]System.DateTime _datetime
+    .field  private  class NAnt.Core.Types.FileSet _fileset
 
-    // method line 1392
+    // method line 1252
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x18868
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method FilterBuilderCollection::.ctor
-
-    // method line 1393
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Filters.FilterBuilderCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x18871
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Filters.FilterBuilderCollection::AddRange(class NAnt.Core.Filters.FilterBuilderCollection)
-	IL_000e:  ret 
-    } // end of method FilterBuilderCollection::.ctor
-
-    // method line 1394
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Filters.FilterBuilder[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x18881
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x17108
+	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Filters.FilterBuilderCollection::AddRange(class NAnt.Core.Filters.FilterBuilder[])
-	IL_000e:  ret 
-    } // end of method FilterBuilderCollection::.ctor
+	IL_0001:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.TouchTask::_fileset
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0011:  ret 
+    } // end of method TouchTask::.ctor
 
-    // method line 1395
+    // method line 1253
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Filters.FilterBuilder get_Item (int32 index)  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0x18894
-	// Code size 26 (0x1a)
-	.maxstack 2
+        // Method begins at RVA 0x1711c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterBuilder	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.Core.Filters.FilterBuilder
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.TouchTask::_file
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method FilterBuilderCollection::get_Item
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TouchTask::get_File
 
-    // method line 1396
+    // method line 1254
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Filters.FilterBuilder 'value')  cil managed 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x188ba
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x17137
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method FilterBuilderCollection::set_Item
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.TouchTask::_file
+	IL_0008:  ret 
+    } // end of method TouchTask::set_File
 
-    // method line 1397
+    // method line 1255
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Filters.FilterBuilder get_Item (string filterName)  cil managed 
-    {
-        // Method begins at RVA 0x188cc
-	// Code size 111 (0x6f)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Filters.FilterBuilder	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Filters.FilterBuilder	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0066
-
-	IL_0007:  nop 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0014:  stloc.1 
-	.try { // 0
-	  IL_0015:  br IL_0041
-
-	  IL_001a:  ldloc.1 
-	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.Core.Filters.FilterBuilder
-	  IL_0025:  stloc.0 
-	  IL_0026:  nop 
-	  IL_0027:  ldarg.1 
-	  IL_0028:  ldloc.0 
-	  IL_0029:  callvirt instance string class NAnt.Core.Filters.FilterBuilder::get_FilterName()
-	  IL_002e:  callvirt instance bool string::Equals(string)
-	  IL_0033:  brfalse IL_0040
-
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  stloc.2 
-	  IL_003b:  leave IL_006d
-
-	  IL_0040:  nop 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_001a
-
-	  IL_004c:  leave IL_0065
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0051:  ldloc.1 
-	  IL_0052:  isinst [mscorlib]System.IDisposable
-	  IL_0057:  dup 
-	  IL_0058:  stloc.3 
-	  IL_0059:  brfalse IL_0064
-
-	  IL_005e:  ldloc.3 
-	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0064:  endfinally 
-	} // end handler 0
-	IL_0065:  nop 
-	IL_0066:  ldnull 
-	IL_0067:  stloc.2 
-	IL_0068:  br IL_006d
-
-	IL_006d:  ldloc.2 
-	IL_006e:  ret 
-    } // end of method FilterBuilderCollection::get_Item
-
-    // method line 1398
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x18958
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method FilterBuilderCollection::Add
-
-    // method line 1399
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Filters.FilterBuilder[] items)  cil managed 
-    {
-        // Method begins at RVA 0x1897c
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Core.Filters.FilterBuilderCollection::Add(class NAnt.Core.Filters.FilterBuilder)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
-
-	IL_0021:  ret 
-    } // end of method FilterBuilderCollection::AddRange
-
-    // method line 1400
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Filters.FilterBuilderCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x189ac
-	// Code size 41 (0x29)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Core.Filters.FilterBuilder class NAnt.Core.Filters.FilterBuilderCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Core.Filters.FilterBuilderCollection::Add(class NAnt.Core.Filters.FilterBuilder)
-	IL_0016:  pop 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0023:  blt IL_0008
-
-	IL_0028:  ret 
-    } // end of method FilterBuilderCollection::AddRange
-
-    // method line 1401
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
+           instance default int64 get_Millis ()  cil managed 
     {
-        // Method begins at RVA 0x189e4
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x17144
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		int64	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  ldfld int64 NAnt.Core.Tasks.TouchTask::_millis
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method FilterBuilderCollection::Contains
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TouchTask::get_Millis
 
-    // method line 1402
-    .method public hidebysig 
-           instance default bool Contains (string taskName)  cil managed 
+    // method line 1256
+    .method public hidebysig specialname 
+           instance default void set_Millis (int64 'value')  cil managed 
     {
-        // Method begins at RVA 0x18a08
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x1715f
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.Filters.FilterBuilder class NAnt.Core.Filters.FilterBuilderCollection::get_Item(string)
-	IL_0008:  ldnull 
-	IL_0009:  ceq 
-	IL_000b:  ldc.i4.0 
-	IL_000c:  ceq 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0014
-
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method FilterBuilderCollection::Contains
+	IL_0003:  stfld int64 NAnt.Core.Tasks.TouchTask::_millis
+	IL_0008:  ret 
+    } // end of method TouchTask::set_Millis
 
-    // method line 1403
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Filters.FilterBuilder[] 'array', int32 index)  cil managed 
+    // method line 1257
+    .method public hidebysig specialname 
+           instance default valuetype [mscorlib]System.DateTime get_Datetime ()  cil managed 
     {
-        // Method begins at RVA 0x18a2a
+        // Method begins at RVA 0x1716c
 	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method FilterBuilderCollection::CopyTo
-
-    // method line 1404
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x18a3c
-	// Code size 21 (0x15)
-	.maxstack 2
+	.maxstack 1
 	.locals init (
-		int32	V_0)
+		valuetype [mscorlib]System.DateTime	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  ldfld valuetype [mscorlib]System.DateTime NAnt.Core.Tasks.TouchTask::_datetime
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method FilterBuilderCollection::IndexOf
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TouchTask::get_Datetime
 
-    // method line 1405
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Filters.FilterBuilder item)  cil managed 
+    // method line 1258
+    .method public hidebysig specialname 
+           instance default void set_Datetime (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x18a5d
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x17187
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method FilterBuilderCollection::Insert
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld valuetype [mscorlib]System.DateTime NAnt.Core.Tasks.TouchTask::_datetime
+	IL_0008:  ret 
+    } // end of method TouchTask::set_Datetime
 
-    // method line 1406
-    .method public hidebysig 
-           instance default class NAnt.Core.Filters.FilterBuilderEnumerator GetEnumerator ()  cil managed 
+    // method line 1259
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_TouchFileSet ()  cil managed 
     {
-        // Method begins at RVA 0x18a70
+        // Method begins at RVA 0x17194
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Filters.FilterBuilderEnumerator	V_0)
+		class NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.Filters.FilterBuilderEnumerator::'.ctor'(class NAnt.Core.Filters.FilterBuilderCollection)
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.TouchTask::_fileset
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FilterBuilderCollection::GetEnumerator
+    } // end of method TouchTask::get_TouchFileSet
 
-    // method line 1407
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Filters.FilterBuilder item)  cil managed 
+    // method line 1260
+    .method public hidebysig specialname 
+           instance default void set_TouchFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x18a8b
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x171af
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method FilterBuilderCollection::Remove
-
-	.property instance class NAnt.Core.Filters.FilterBuilder Item (int32)
-	{
-		.get instance default class NAnt.Core.Filters.FilterBuilder NAnt.Core.Filters.FilterBuilderCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Core.Filters.FilterBuilderCollection::set_Item (int32 index, class NAnt.Core.Filters.FilterBuilder 'value') 
-	}
-	.property instance class NAnt.Core.Filters.FilterBuilder Item (string)
-	{
-		.get instance default class NAnt.Core.Filters.FilterBuilder NAnt.Core.Filters.FilterBuilderCollection::get_Item (string filterName) 
-	}
-  } // end of class NAnt.Core.Filters.FilterBuilderCollection
-}
-
-.namespace NAnt.Core.Filters
-{
-  .class public auto ansi beforefieldinit FilterBuilderEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.TouchTask::_fileset
+	IL_0008:  ret 
+    } // end of method TouchTask::set_TouchFileSet
 
-    // method line 1408
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Filters.FilterBuilderCollection arguments)  cil managed 
+    // method line 1261
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x18a9c
-	// Code size 22 (0x16)
+        // Method begins at RVA 0x171bc
+	// Code size 104 (0x68)
 	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method FilterBuilderEnumerator::.ctor
-
-    // method line 1409
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Filters.FilterBuilder get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x18ac0
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Filters.FilterBuilder	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.Filters.FilterBuilder
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method FilterBuilderEnumerator::get_Current
+	IL_0002:  call instance int64 class NAnt.Core.Tasks.TouchTask::get_Millis()
+	IL_0007:  ldc.i4.0 
+	IL_0008:  conv.i8 
+	IL_0009:  beq IL_0035
 
-    // method line 1410
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x18ae8
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		object	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance valuetype [mscorlib]System.DateTime class NAnt.Core.Tasks.TouchTask::get_Datetime()
+	IL_0014:  ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MinValue
+	IL_0019:  call bool valuetype [mscorlib]System.DateTime::op_Inequality(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	IL_001e:  brfalse IL_0035
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FilterBuilderEnumerator::System.Collections.IEnumerator.get_Current
+	IL_0023:  nop 
+	IL_0024:  ldstr "Cannot specify 'millis' and 'datetime' in the same <touch> task."
+	IL_0029:  ldarg.0 
+	IL_002a:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_002f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0034:  throw 
+	IL_0035:  ldarg.0 
+	IL_0036:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.TouchTask::get_File()
+	IL_003b:  brfalse IL_0067
 
-    // method line 1411
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x18b08
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0040:  ldarg.0 
+	IL_0041:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.TouchTask::get_TouchFileSet()
+	IL_0046:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
+	IL_004b:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0050:  brfalse IL_0067
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FilterBuilderEnumerator::MoveNext
+	IL_0055:  nop 
+	IL_0056:  ldstr "Cannot specify both 'file' attribute and use <fileset> in the same <touch> task."
+	IL_005b:  ldarg.0 
+	IL_005c:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0061:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0066:  throw 
+	IL_0067:  ret 
+    } // end of method TouchTask::Initialize
 
-    // method line 1412
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    // method line 1262
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x18b28
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x17230
+	// Code size 230 (0xe6)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		valuetype [mscorlib]System.DateTime	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.TouchTask::get_TouchFileSet()
+	IL_000d:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_0012:  brtrue IL_0034
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FilterBuilderEnumerator::System.Collections.IEnumerator.MoveNext
+	IL_0017:  nop 
+	IL_0018:  ldarg.0 
+	IL_0019:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.TouchTask::get_TouchFileSet()
+	IL_001e:  ldarg.0 
+	IL_001f:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0024:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_0029:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_002e:  callvirt instance void class NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_0033:  nop 
+	IL_0034:  ldarg.0 
+	IL_0035:  call instance int64 class NAnt.Core.Tasks.TouchTask::get_Millis()
+	IL_003a:  ldc.i4.0 
+	IL_003b:  conv.i8 
+	IL_003c:  beq IL_0055
 
-    // method line 1413
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x18b48
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method FilterBuilderEnumerator::Reset
+	IL_0041:  nop 
+	IL_0042:  ldarg.0 
+	IL_0043:  ldarg.0 
+	IL_0044:  call instance int64 class NAnt.Core.Tasks.TouchTask::get_Millis()
+	IL_0049:  call instance valuetype [mscorlib]System.DateTime class NAnt.Core.Tasks.TouchTask::GetDateTime(int64)
+	IL_004e:  stloc.0 
+	IL_004f:  nop 
+	IL_0050:  br IL_0073
 
-    // method line 1414
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x18b56
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Filters.FilterBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method FilterBuilderEnumerator::System.Collections.IEnumerator.Reset
+	IL_0055:  ldarg.0 
+	IL_0056:  call instance valuetype [mscorlib]System.DateTime class NAnt.Core.Tasks.TouchTask::get_Datetime()
+	IL_005b:  ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MinValue
+	IL_0060:  call bool valuetype [mscorlib]System.DateTime::op_Inequality(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	IL_0065:  brfalse IL_0073
 
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.Core.Filters.FilterBuilderEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.Core.Filters.FilterBuilder Current ()
-	{
-		.get instance default class NAnt.Core.Filters.FilterBuilder NAnt.Core.Filters.FilterBuilderEnumerator::get_Current () 
-	}
-  } // end of class NAnt.Core.Filters.FilterBuilderEnumerator
-}
+	IL_006a:  nop 
+	IL_006b:  ldarg.0 
+	IL_006c:  call instance valuetype [mscorlib]System.DateTime class NAnt.Core.Tasks.TouchTask::get_Datetime()
+	IL_0071:  stloc.0 
+	IL_0072:  nop 
+	IL_0073:  ldarg.0 
+	IL_0074:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.TouchTask::get_File()
+	IL_0079:  brfalse IL_0097
 
-.namespace NAnt.Core.Filters
-{
-  .class public auto ansi beforefieldinit ExpandProperties
-  	extends NAnt.Core.Filters.Filter
-  {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
-		01 00 10 65 78 70 61 6E 64 70 72 6F 70 65 72 74   // ...expandpropert
-		69 65 73 00 00                                  ) // ies..
+	IL_007e:  nop 
+	IL_007f:  ldarg.0 
+	IL_0080:  ldarg.0 
+	IL_0081:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.TouchTask::get_File()
+	IL_0086:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_008b:  ldloc.0 
+	IL_008c:  call instance void class NAnt.Core.Tasks.TouchTask::TouchFile(string, valuetype [mscorlib]System.DateTime)
+	IL_0091:  nop 
+	IL_0092:  br IL_00e5
 
-    .field  private  class [mscorlib]System.Text.StringBuilder _buffer
-    .field private static literal  unsigned int16 MAX_RELIABLE_EXPRESSION_LENGTH = int16(0x00000800)
-    .field private static literal  int32 BUFFER_LENGTH = int32(0x00000fff)
+	IL_0097:  nop 
+	IL_0098:  nop 
+	IL_0099:  ldarg.0 
+	IL_009a:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.TouchTask::get_TouchFileSet()
+	IL_009f:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_00a4:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_00a9:  stloc.2 
+	.try { // 0
+	  IL_00aa:  br IL_00c0
 
-    // method line 1415
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x18b64
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Filters.Filter::'.ctor'()
-	IL_0006:  ret 
-    } // end of method ExpandProperties::.ctor
+	  IL_00af:  ldloc.2 
+	  IL_00b0:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_00b5:  stloc.1 
+	  IL_00b6:  nop 
+	  IL_00b7:  ldarg.0 
+	  IL_00b8:  ldloc.1 
+	  IL_00b9:  ldloc.0 
+	  IL_00ba:  call instance void class NAnt.Core.Tasks.TouchTask::TouchFile(string, valuetype [mscorlib]System.DateTime)
+	  IL_00bf:  nop 
+	  IL_00c0:  ldloc.2 
+	  IL_00c1:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_00c6:  brtrue IL_00af
 
-    // method line 1416
-    .method private hidebysig specialname 
-           instance default bool get_AtEnd ()  cil managed 
-    {
-        // Method begins at RVA 0x18b6c
-	// Code size 23 (0x17)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
-	IL_0007:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_000c:  ldc.i4.0 
-	IL_000d:  ceq 
-	IL_000f:  stloc.0 
-	IL_0010:  br IL_0015
+	  IL_00cb:  leave IL_00e4
 
-	IL_0015:  ldloc.0 
-	IL_0016:  ret 
-    } // end of method ExpandProperties::get_AtEnd
+	} // end .try 0
+	finally  { // 0
+	  IL_00d0:  ldloc.2 
+	  IL_00d1:  isinst [mscorlib]System.IDisposable
+	  IL_00d6:  dup 
+	  IL_00d7:  stloc.3 
+	  IL_00d8:  brfalse IL_00e3
 
-    // method line 1417
-    .method public virtual hidebysig 
-           instance default void InitializeFilter ()  cil managed 
-    {
-        // Method begins at RVA 0x18b8f
-	// Code size 24 (0x18)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 4095
-	IL_0007:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(int32)
-	IL_000c:  stfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
-	IL_0011:  ldarg.0 
-	IL_0012:  call instance void class NAnt.Core.Filters.ExpandProperties::ReplenishBuffer()
-	IL_0017:  ret 
-    } // end of method ExpandProperties::InitializeFilter
+	  IL_00dd:  ldloc.3 
+	  IL_00de:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00e3:  endfinally 
+	} // end handler 0
+	IL_00e4:  nop 
+	IL_00e5:  ret 
+    } // end of method TouchTask::ExecuteTask
 
-    // method line 1418
-    .method public virtual hidebysig 
-           instance default int32 Read ()  cil managed 
+    // method line 1263
+    .method private hidebysig 
+           instance default void TouchFile (string path, valuetype [mscorlib]System.DateTime touchDateTime)  cil managed 
     {
-        // Method begins at RVA 0x18ba8
-	// Code size 36 (0x24)
-	.maxstack 1
+        // Method begins at RVA 0x17334
+	// Code size 229 (0xe5)
+	.maxstack 8
 	.locals init (
-		int32	V_0,
-		int32	V_1)
+		class [mscorlib]System.IO.FileStream	V_0,
+		class [mscorlib]System.Exception	V_1,
+		string	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 class NAnt.Core.Filters.ChainableReader::Peek()
-	IL_0007:  stloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance bool class NAnt.Core.Filters.ExpandProperties::get_AtEnd()
-	IL_000e:  brtrue IL_001b
-
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance void class NAnt.Core.Filters.ExpandProperties::Advance()
-	IL_001a:  nop 
-	IL_001b:  ldloc.0 
-	IL_001c:  stloc.1 
-	IL_001d:  br IL_0022
-
-	IL_0022:  ldloc.1 
-	IL_0023:  ret 
-    } // end of method ExpandProperties::Read
+	.try { // 1
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_0008:  brfalse IL_003d
 
-    // method line 1419
-    .method public virtual hidebysig 
-           instance default int32 Peek ()  cil managed 
-    {
-        // Method begins at RVA 0x18bd8
-	// Code size 41 (0x29)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Filters.ExpandProperties::get_AtEnd()
-	IL_0007:  brfalse IL_0014
+	  IL_000d:  nop 
+	  IL_000e:  ldarg.0 
+	  IL_000f:  ldc.i4 2000
+	  IL_0014:  ldstr "Touching file '{0}' with '{1}'."
+	  IL_0019:  ldc.i4.2 
+	  IL_001a:  newarr [mscorlib]System.Object
+	  IL_001f:  dup 
+	  IL_0020:  ldc.i4.0 
+	  IL_0021:  ldarg.1 
+	  IL_0022:  stelem.ref 
+	  IL_0023:  dup 
+	  IL_0024:  ldc.i4.1 
+	  IL_0025:  ldarga.s 2
+	  IL_0027:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_002c:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
+	  IL_0031:  stelem.ref 
+	  IL_0032:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0037:  nop 
+	  IL_0038:  br IL_0083
 
-	IL_000c:  nop 
-	IL_000d:  ldc.i4.m1 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0027
+	  IL_003d:  nop 
+	  IL_003e:  ldarg.0 
+	  IL_003f:  ldc.i4 2000
+	  IL_0044:  ldstr "Creating file '{0}' with '{1}'."
+	  IL_0049:  ldc.i4.2 
+	  IL_004a:  newarr [mscorlib]System.Object
+	  IL_004f:  dup 
+	  IL_0050:  ldc.i4.0 
+	  IL_0051:  ldarg.1 
+	  IL_0052:  stelem.ref 
+	  IL_0053:  dup 
+	  IL_0054:  ldc.i4.1 
+	  IL_0055:  ldarga.s 2
+	  IL_0057:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_005c:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
+	  IL_0061:  stelem.ref 
+	  IL_0062:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0067:  ldarg.1 
+	  IL_0068:  call class [mscorlib]System.IO.FileStream class [mscorlib]System.IO.File::Create(string)
+	  IL_006d:  stloc.0 
+	  .try { // 0
+	    IL_006e:  nop 
+	    IL_006f:  nop 
+	    IL_0070:  leave IL_0082
 
-	IL_0014:  nop 
-	IL_0015:  ldarg.0 
-	IL_0016:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
-	IL_001b:  ldc.i4.0 
-	IL_001c:  callvirt instance char class [mscorlib]System.Text.StringBuilder::get_Chars(int32)
-	IL_0021:  stloc.0 
-	IL_0022:  br IL_0027
+	  } // end .try 0
+	  finally  { // 0
+	    IL_0075:  ldloc.0 
+	    IL_0076:  brfalse IL_0081
 
-	IL_0027:  ldloc.0 
-	IL_0028:  ret 
-    } // end of method ExpandProperties::Peek
+	    IL_007b:  ldloc.0 
+	    IL_007c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0081:  endfinally 
+	  } // end handler 0
+	  IL_0082:  nop 
+	  IL_0083:  ldarg.1 
+	  IL_0084:  ldarg.2 
+	  IL_0085:  call void class [mscorlib]System.IO.File::SetLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	  IL_008a:  nop 
+	  IL_008b:  leave IL_00e4
 
-    // method line 1420
-    .method private hidebysig 
-           instance default void Advance ()  cil managed 
-    {
-        // Method begins at RVA 0x18c10
-	// Code size 73 (0x49)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Filters.ExpandProperties::get_AtEnd()
-	IL_0007:  brfalse IL_001d
+	} // end .try 1
+	catch class [mscorlib]System.Exception { // 1
+	  IL_0090:  stloc.1 
+	  IL_0091:  nop 
+	  IL_0092:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0097:  ldstr "NA1152"
+	  IL_009c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_00a1:  ldarg.1 
+	  IL_00a2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_00a7:  stloc.2 
+	  IL_00a8:  ldarg.0 
+	  IL_00a9:  call instance bool class NAnt.Core.Task::get_FailOnError()
+	  IL_00ae:  brfalse IL_00c2
 
-	IL_000c:  nop 
-	IL_000d:  ldstr "String_EndOfOutput"
-	IL_0012:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0017:  newobj instance void class [mscorlib]System.IndexOutOfRangeException::'.ctor'(string)
-	IL_001c:  throw 
-	IL_001d:  ldarg.0 
-	IL_001e:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
-	IL_0023:  ldc.i4.0 
-	IL_0024:  ldc.i4.1 
-	IL_0025:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Remove(int32, int32)
-	IL_002a:  pop 
-	IL_002b:  ldarg.0 
-	IL_002c:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
-	IL_0031:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_0036:  ldc.i4 2047
-	IL_003b:  bne.un IL_0048
+	  IL_00b3:  nop 
+	  IL_00b4:  ldloc.2 
+	  IL_00b5:  ldarg.0 
+	  IL_00b6:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_00bb:  ldloc.1 
+	  IL_00bc:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_00c1:  throw 
+	  IL_00c2:  ldarg.0 
+	  IL_00c3:  ldc.i4 2000
+	  IL_00c8:  ldloc.2 
+	  IL_00c9:  ldstr " "
+	  IL_00ce:  ldloc.1 
+	  IL_00cf:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	  IL_00d4:  call string string::Concat(string, string, string)
+	  IL_00d9:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	  IL_00de:  nop 
+	  IL_00df:  leave IL_00e4
 
-	IL_0040:  nop 
-	IL_0041:  ldarg.0 
-	IL_0042:  call instance void class NAnt.Core.Filters.ExpandProperties::ReplenishBuffer()
-	IL_0047:  nop 
-	IL_0048:  ret 
-    } // end of method ExpandProperties::Advance
+	} // end handler 1
+	IL_00e4:  ret 
+    } // end of method TouchTask::TouchFile
 
-    // method line 1421
+    // method line 1264
     .method private hidebysig 
-           instance default void ReplenishBuffer ()  cil managed 
+           instance default valuetype [mscorlib]System.DateTime GetDateTime (int64 milliSeconds)  cil managed 
     {
-        // Method begins at RVA 0x18c68
-	// Code size 273 (0x111)
-	.maxstack 5
+        // Method begins at RVA 0x17444
+	// Code size 39 (0x27)
+	.maxstack 2
 	.locals init (
-		bool	V_0,
-		int32	V_1,
-		string	V_2,
-		int32	V_3,
-		int32	V_4,
-		string	V_5)
+		valuetype [mscorlib]System.DateTime	V_0,
+		valuetype [mscorlib]System.DateTime	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0031
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  call instance int32 class NAnt.Core.Filters.ChainableReader::Read()
-	IL_000f:  stloc.1 
-	IL_0010:  ldloc.1 
-	IL_0011:  ldc.i4.m1 
-	IL_0012:  beq IL_002c
-
-	IL_0017:  nop 
-	IL_0018:  ldarg.0 
-	IL_0019:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
-	IL_001e:  ldloc.1 
-	IL_001f:  conv.u2 
-	IL_0020:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_0025:  pop 
-	IL_0026:  nop 
-	IL_0027:  br IL_0030
+	IL_0001:  ldstr "01/01/1970 00:00:00"
+	IL_0006:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_000b:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::Parse(string, class [mscorlib]System.IFormatProvider)
+	IL_0010:  stloc.0 
+	IL_0011:  ldloca.s 0
+	IL_0013:  ldarg.1 
+	IL_0014:  conv.r8 
+	IL_0015:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::FromMilliseconds(float64)
+	IL_001a:  call instance valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::Add(valuetype [mscorlib]System.TimeSpan)
+	IL_001f:  stloc.1 
+	IL_0020:  br IL_0025
 
-	IL_002c:  nop 
-	IL_002d:  ldc.i4.0 
-	IL_002e:  stloc.0 
-	IL_002f:  nop 
-	IL_0030:  nop 
-	IL_0031:  ldarg.0 
-	IL_0032:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
-	IL_0037:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_003c:  ldc.i4 4095
-	IL_0041:  bge IL_004c
+	IL_0025:  ldloc.1 
+	IL_0026:  ret 
+    } // end of method TouchTask::GetDateTime
 
-	IL_0046:  ldloc.0 
-	IL_0047:  brtrue IL_0008
+	.property instance class [mscorlib]System.IO.FileInfo File ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
 
-	IL_004c:  ldarg.0 
-	IL_004d:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
-	IL_0052:  callvirt instance string object::ToString()
-	IL_0057:  stloc.2 
-	IL_0058:  ldloc.2 
-	IL_0059:  ldstr "${"
-	IL_005e:  callvirt instance int32 string::LastIndexOf(string)
-	IL_0063:  stloc.3 
-	IL_0064:  ldloc.2 
-	IL_0065:  ldc.i4.s 0x7d
-	IL_0067:  callvirt instance int32 string::LastIndexOf(char)
-	IL_006c:  stloc.s 4
-	IL_006e:  ldloc.s 4
-	IL_0070:  ldloc.3 
-	IL_0071:  bge IL_00d7
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.TouchTask::get_File () 
+		.set instance default void NAnt.Core.Tasks.TouchTask::set_File (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance int64 Millis ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 6D 69 6C 6C 69 73 00 00 ) // ...millis..
 
-	IL_0076:  nop 
-	IL_0077:  ldarg.0 
-	IL_0078:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_007d:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0082:  ldloc.2 
-	IL_0083:  ldc.i4.0 
-	IL_0084:  ldloc.3 
-	IL_0085:  callvirt instance string string::Substring(int32, int32)
-	IL_008a:  ldarg.0 
-	IL_008b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0090:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
-	IL_0095:  stloc.s 5
-	IL_0097:  ldloc.2 
-	IL_0098:  ldloc.3 
-	IL_0099:  callvirt instance string string::Substring(int32)
-	IL_009e:  stloc.2 
-	IL_009f:  ldarg.0 
-	IL_00a0:  ldloc.s 5
-	IL_00a2:  ldc.i4 4095
-	IL_00a7:  ldloc.s 5
-	IL_00a9:  callvirt instance int32 string::get_Length()
-	IL_00ae:  ldloc.2 
-	IL_00af:  callvirt instance int32 string::get_Length()
-	IL_00b4:  add 
-	IL_00b5:  call int32 class [mscorlib]System.Math::Max(int32, int32)
-	IL_00ba:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string, int32)
-	IL_00bf:  stfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
-	IL_00c4:  ldarg.0 
-	IL_00c5:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
-	IL_00ca:  ldloc.2 
-	IL_00cb:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00d0:  pop 
-	IL_00d1:  nop 
-	IL_00d2:  br IL_0110
+		.get instance default int64 NAnt.Core.Tasks.TouchTask::get_Millis () 
+		.set instance default void NAnt.Core.Tasks.TouchTask::set_Millis (int64 'value') 
+	}
+	.property instance valuetype [mscorlib]System.DateTime Datetime ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 64 61 74 65 74 69 6D 65 00 00 ) // ...datetime..
 
-	IL_00d7:  nop 
-	IL_00d8:  ldarg.0 
-	IL_00d9:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_00de:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_00e3:  ldloc.2 
-	IL_00e4:  ldarg.0 
-	IL_00e5:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_00ea:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
-	IL_00ef:  stloc.s 5
-	IL_00f1:  ldarg.0 
-	IL_00f2:  ldloc.s 5
-	IL_00f4:  ldc.i4 4095
-	IL_00f9:  ldloc.s 5
-	IL_00fb:  callvirt instance int32 string::get_Length()
-	IL_0100:  call int32 class [mscorlib]System.Math::Max(int32, int32)
-	IL_0105:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string, int32)
-	IL_010a:  stfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ExpandProperties::_buffer
-	IL_010f:  nop 
-	IL_0110:  ret 
-    } // end of method ExpandProperties::ReplenishBuffer
+		.custom instance void class NAnt.Core.Attributes.DateTimeValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	.property instance bool AtEnd ()
+		.get instance default valuetype [mscorlib]System.DateTime NAnt.Core.Tasks.TouchTask::get_Datetime () 
+		.set instance default void NAnt.Core.Tasks.TouchTask::set_Datetime (valuetype [mscorlib]System.DateTime 'value') 
+	}
+	.property instance class NAnt.Core.Types.FileSet TouchFileSet ()
 	{
-		.get instance default bool NAnt.Core.Filters.ExpandProperties::get_AtEnd () 
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
+
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.TouchTask::get_TouchFileSet () 
+		.set instance default void NAnt.Core.Tasks.TouchTask::set_TouchFileSet (class NAnt.Core.Types.FileSet 'value') 
 	}
-  } // end of class NAnt.Core.Filters.ExpandProperties
+  } // end of class NAnt.Core.Tasks.TouchTask
 }
 
-.namespace NAnt.Core.Filters
+.namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit TabsToSpaces
-  	extends NAnt.Core.Filters.Filter
+  .class public auto ansi beforefieldinit GetTask
+  	extends NAnt.Core.Task
   {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
-		01 00 0C 74 61 62 73 74 6F 73 70 61 63 65 73 00   // ...tabstospaces.
-		00                                              ) // .
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 67 65 74 00 00 ) // ...get..
 
-    .field  private  int32 _tabLength
-    .field  private  int32 _spacesRemaining
-    .field  private  class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate ReadChar
+    .field  private  string _src
+    .field  private  class [mscorlib]System.IO.FileInfo _destFile
+    .field  private  string _httpProxy
+    .field  private  class NAnt.Core.Types.Proxy _proxy
+    .field  private  int32 _timeout
+    .field  private  bool _useTimeStamp
+    .field  private  class NAnt.Core.Types.Credential _credentials
+    .field  private  class NAnt.Core.Types.FileSet _certificates
 
-    // method line 1422
+    // method line 1265
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x18d85
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x17477
+	// Code size 29 (0x1d)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.8 
-	IL_0002:  stfld int32 NAnt.Core.Filters.TabsToSpaces::_tabLength
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.Filters.Filter::'.ctor'()
-	IL_000d:  ret 
-    } // end of method TabsToSpaces::.ctor
+	IL_0001:  ldc.i4 100000
+	IL_0006:  stfld int32 NAnt.Core.Tasks.GetTask::_timeout
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0011:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.GetTask::_certificates
+	IL_0016:  ldarg.0 
+	IL_0017:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_001c:  ret 
+    } // end of method GetTask::.ctor
 
-    // method line 1423
+    // method line 1266
     .method public hidebysig specialname 
-           instance default int32 get_TabLength ()  cil managed 
+           instance default string get_Source ()  cil managed 
     {
-        // Method begins at RVA 0x18d94
+        // Method begins at RVA 0x17498
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Filters.TabsToSpaces::_tabLength
+	IL_0002:  ldfld string NAnt.Core.Tasks.GetTask::_src
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TabsToSpaces::get_TabLength
+    } // end of method GetTask::get_Source
 
-    // method line 1424
+    // method line 1267
     .method public hidebysig specialname 
-           instance default void set_TabLength (int32 'value')  cil managed 
-    {
-        // Method begins at RVA 0x18daf
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.Filters.TabsToSpaces::_tabLength
-	IL_0008:  ret 
-    } // end of method TabsToSpaces::set_TabLength
-
-    // method line 1425
-    .method public virtual hidebysig 
-           instance default void Chain (class NAnt.Core.Filters.ChainableReader chainedReader)  cil managed 
+           instance default void set_Source (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x18db9
-	// Code size 27 (0x1b)
+        // Method begins at RVA 0x174b3
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Filters.ChainableReader::Chain(class NAnt.Core.Filters.ChainableReader)
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldftn instance int32 class NAnt.Core.Filters.ChainableReader::Read()
-	IL_0010:  newobj instance void class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate::'.ctor'(object, native int)
-	IL_0015:  stfld class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate NAnt.Core.Filters.TabsToSpaces::ReadChar
-	IL_001a:  ret 
-    } // end of method TabsToSpaces::Chain
-
-    // method line 1426
-    .method public virtual hidebysig 
-           instance default int32 Peek ()  cil managed 
-    {
-        // Method begins at RVA 0x18dd5
-	// Code size 17 (0x11)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldstr "String_PeekNotSupported"
-	IL_0006:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_000b:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
-	IL_0010:  throw 
-    } // end of method TabsToSpaces::Peek
-
-    // method line 1427
-    .method public virtual hidebysig 
-           instance default int32 Read ()  cil managed 
-    {
-        // Method begins at RVA 0x18de8
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate NAnt.Core.Filters.TabsToSpaces::ReadChar
-	IL_0008:  call instance int32 class NAnt.Core.Filters.TabsToSpaces::GetNextCharacter(class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method TabsToSpaces::Read
-
-    // method line 1428
-    .method private hidebysig 
-           instance default int32 GetNextCharacter (class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate AcquireChar)  cil managed 
-    {
-        // Method begins at RVA 0x18e0c
-	// Code size 84 (0x54)
-	.maxstack 3
-	.locals init (
-		int32	V_0,
-		int32	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Filters.TabsToSpaces::_spacesRemaining
-	IL_0007:  brtrue IL_003b
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.1 
-	IL_000e:  callvirt instance int32 class NAnt.Core.Filters.TabsToSpaces/AcquireCharDelegate::Invoke()
-	IL_0013:  stloc.0 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.s 0x09
-	IL_0017:  bne.un IL_0033
-
-	IL_001c:  nop 
-	IL_001d:  ldarg.0 
-	IL_001e:  ldarg.0 
-	IL_001f:  call instance int32 class NAnt.Core.Filters.TabsToSpaces::get_TabLength()
-	IL_0024:  ldc.i4.1 
-	IL_0025:  sub 
-	IL_0026:  stfld int32 NAnt.Core.Filters.TabsToSpaces::_spacesRemaining
-	IL_002b:  ldc.i4.s 0x20
-	IL_002d:  stloc.1 
-	IL_002e:  br IL_0052
-
-	IL_0033:  nop 
-	IL_0034:  ldloc.0 
-	IL_0035:  stloc.1 
-	IL_0036:  br IL_0052
-
-	IL_003b:  nop 
-	IL_003c:  ldarg.0 
-	IL_003d:  dup 
-	IL_003e:  ldfld int32 NAnt.Core.Filters.TabsToSpaces::_spacesRemaining
-	IL_0043:  ldc.i4.1 
-	IL_0044:  sub 
-	IL_0045:  stfld int32 NAnt.Core.Filters.TabsToSpaces::_spacesRemaining
-	IL_004a:  ldc.i4.s 0x20
-	IL_004c:  stloc.1 
-	IL_004d:  br IL_0052
-
-	IL_0052:  ldloc.1 
-	IL_0053:  ret 
-    } // end of method TabsToSpaces::GetNextCharacter
-
-	.property instance int32 TabLength ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 74 61 62 6C 65 6E 67 74 68 00 00 ) // ...tablength..
-
-		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (
-		01 00 02 00 54 08 08 4D 69 6E 56 61 6C 75 65 01   // ....T..MinValue.
-		00 00 00 54 08 08 4D 61 78 56 61 6C 75 65 64 00   // ...T..MaxValued.
-		00 00                                           ) // ..
-
-		.get instance default int32 NAnt.Core.Filters.TabsToSpaces::get_TabLength () 
-		.set instance default void NAnt.Core.Filters.TabsToSpaces::set_TabLength (int32 'value') 
-	}
-  .class nested private auto ansi sealed AcquireCharDelegate
-  	extends [mscorlib]System.MulticastDelegate
-  {
-
-    // method line 1429
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::.ctor
-
-    // method line 1430
-    .method public virtual hidebysig newslot 
-           instance default int32 Invoke ()  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::Invoke
-
-    // method line 1431
-    .method public virtual hidebysig newslot 
-           instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::BeginInvoke
-
-    // method line 1432
-    .method public virtual hidebysig newslot 
-           instance default int32 EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::EndInvoke
-
-  } // end of class AcquireCharDelegate
-
-  } // end of class NAnt.Core.Filters.TabsToSpaces
-}
-
-.namespace NAnt.Core.Filters
-{
-  .class public auto ansi beforefieldinit ReplaceString
-  	extends NAnt.Core.Filters.Filter
-  {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
-		01 00 0D 72 65 70 6C 61 63 65 73 74 72 69 6E 67   // ...replacestring
-		00 00                                           ) // ..
-
-    .field  private  string _from
-    .field  private  string _to
-    .field  private  string _outputBuffer
-    .field  private  bool _endStreamAfterBuffer
-    .field  private  int32 _bufferPosition
-    .field  private  bool _stringNotFound
-    .field  private  bool _ignoreCase
-    .field  private  class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate ReadChar
-
-    // method line 1433
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x18e6c
-	// Code size 32 (0x20)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld string [mscorlib]System.String::Empty
-	IL_0006:  stfld string NAnt.Core.Filters.ReplaceString::_to
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.0 
-	IL_000d:  stfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
-	IL_0012:  ldarg.0 
-	IL_0013:  ldc.i4.1 
-	IL_0014:  stfld bool NAnt.Core.Filters.ReplaceString::_stringNotFound
-	IL_0019:  ldarg.0 
-	IL_001a:  call instance void class NAnt.Core.Filters.Filter::'.ctor'()
-	IL_001f:  ret 
-    } // end of method ReplaceString::.ctor
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.GetTask::_src
+	IL_000d:  ret 
+    } // end of method GetTask::set_Source
 
-    // method line 1434
+    // method line 1268
     .method public hidebysig specialname 
-           instance default string get_From ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_DestinationFile ()  cil managed 
     {
-        // Method begins at RVA 0x18e90
+        // Method begins at RVA 0x174c4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Filters.ReplaceString::_from
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.GetTask::_destFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ReplaceString::get_From
+    } // end of method GetTask::get_DestinationFile
 
-    // method line 1435
+    // method line 1269
     .method public hidebysig specialname 
-           instance default void set_From (string 'value')  cil managed 
+           instance default void set_DestinationFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x18eab
+        // Method begins at RVA 0x174df
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Filters.ReplaceString::_from
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.GetTask::_destFile
 	IL_0008:  ret 
-    } // end of method ReplaceString::set_From
+    } // end of method GetTask::set_DestinationFile
 
-    // method line 1436
+    // method line 1270
     .method public hidebysig specialname 
-           instance default string get_To ()  cil managed 
+           instance default string get_HttpProxy ()  cil managed 
     {
-        // Method begins at RVA 0x18eb8
+        // Method begins at RVA 0x174ec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Filters.ReplaceString::_to
+	IL_0002:  ldfld string NAnt.Core.Tasks.GetTask::_httpProxy
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ReplaceString::get_To
+    } // end of method GetTask::get_HttpProxy
 
-    // method line 1437
+    // method line 1271
     .method public hidebysig specialname 
-           instance default void set_To (string 'value')  cil managed 
+           instance default void set_HttpProxy (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x18ed3
+        // Method begins at RVA 0x17507
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Filters.ReplaceString::_to
+	IL_0003:  stfld string NAnt.Core.Tasks.GetTask::_httpProxy
 	IL_0008:  ret 
-    } // end of method ReplaceString::set_To
+    } // end of method GetTask::set_HttpProxy
 
-    // method line 1438
+    // method line 1272
     .method public hidebysig specialname 
-           instance default bool get_IgnoreCase ()  cil managed 
+           instance default class NAnt.Core.Types.Proxy get_Proxy ()  cil managed 
     {
-        // Method begins at RVA 0x18ee0
+        // Method begins at RVA 0x17514
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Types.Proxy	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Filters.ReplaceString::_ignoreCase
+	IL_0002:  ldfld class NAnt.Core.Types.Proxy NAnt.Core.Tasks.GetTask::_proxy
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ReplaceString::get_IgnoreCase
+    } // end of method GetTask::get_Proxy
 
-    // method line 1439
+    // method line 1273
     .method public hidebysig specialname 
-           instance default void set_IgnoreCase (bool 'value')  cil managed 
+           instance default void set_Proxy (class NAnt.Core.Types.Proxy 'value')  cil managed 
     {
-        // Method begins at RVA 0x18efb
+        // Method begins at RVA 0x1752f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Filters.ReplaceString::_ignoreCase
+	IL_0003:  stfld class NAnt.Core.Types.Proxy NAnt.Core.Tasks.GetTask::_proxy
 	IL_0008:  ret 
-    } // end of method ReplaceString::set_IgnoreCase
-
-    // method line 1440
-    .method public virtual hidebysig 
-           instance default void Chain (class NAnt.Core.Filters.ChainableReader chainedReader)  cil managed 
-    {
-        // Method begins at RVA 0x18f05
-	// Code size 27 (0x1b)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Filters.ChainableReader::Chain(class NAnt.Core.Filters.ChainableReader)
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldftn instance int32 class NAnt.Core.Filters.ChainableReader::Read()
-	IL_0010:  newobj instance void class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate::'.ctor'(object, native int)
-	IL_0015:  stfld class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate NAnt.Core.Filters.ReplaceString::ReadChar
-	IL_001a:  ret 
-    } // end of method ReplaceString::Chain
+    } // end of method GetTask::set_Proxy
 
-    // method line 1441
-    .method public virtual hidebysig 
-           instance default int32 Read ()  cil managed 
+    // method line 1274
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Credential get_Credentials ()  cil managed 
     {
-        // Method begins at RVA 0x18f24
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x1753c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		int32	V_0)
+		class NAnt.Core.Types.Credential	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate NAnt.Core.Filters.ReplaceString::ReadChar
-	IL_0008:  call instance int32 class NAnt.Core.Filters.ReplaceString::GetNextCharacter(class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  ldfld class NAnt.Core.Types.Credential NAnt.Core.Tasks.GetTask::_credentials
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ReplaceString::Read
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method GetTask::get_Credentials
 
-    // method line 1442
-    .method public virtual hidebysig 
-           instance default int32 Peek ()  cil managed 
+    // method line 1275
+    .method public hidebysig specialname 
+           instance default void set_Credentials (class NAnt.Core.Types.Credential 'value')  cil managed 
     {
-        // Method begins at RVA 0x18f45
-	// Code size 17 (0x11)
+        // Method begins at RVA 0x17557
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldstr "String_PeekNotSupported"
-	IL_0006:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_000b:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
-	IL_0010:  throw 
-    } // end of method ReplaceString::Peek
-
-    // method line 1443
-    .method private hidebysig 
-           instance default bool FindString (int32 startChar, [out] bool& streamEnded, [out] string& nonMatchingChars)  cil managed 
-    {
-        // Method begins at RVA 0x18f58
-	// Code size 164 (0xa4)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		int32	V_1,
-		int32	V_2,
-		bool	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  stind.i1 
-	IL_0004:  ldarg.3 
-	IL_0005:  ldstr ""
-	IL_000a:  stind.ref 
-	IL_000b:  ldarg.0 
-	IL_000c:  ldfld string NAnt.Core.Filters.ReplaceString::_from
-	IL_0011:  callvirt instance int32 string::get_Length()
-	IL_0016:  ldarg.0 
-	IL_0017:  ldfld string NAnt.Core.Filters.ReplaceString::_from
-	IL_001c:  callvirt instance int32 string::get_Length()
-	IL_0021:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(int32, int32)
-	IL_0026:  stloc.0 
-	IL_0027:  ldloc.0 
-	IL_0028:  ldarg.1 
-	IL_0029:  conv.u2 
-	IL_002a:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_002f:  pop 
-	IL_0030:  ldc.i4.1 
-	IL_0031:  stloc.2 
-	IL_0032:  br IL_008a
-
-	IL_0037:  nop 
-	IL_0038:  ldarg.0 
-	IL_0039:  call instance int32 class NAnt.Core.Filters.ChainableReader::Read()
-	IL_003e:  stloc.1 
-	IL_003f:  ldloc.1 
-	IL_0040:  ldc.i4.m1 
-	IL_0041:  beq IL_0051
-
-	IL_0046:  nop 
-	IL_0047:  ldloc.0 
-	IL_0048:  ldloc.1 
-	IL_0049:  conv.u2 
-	IL_004a:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_004f:  pop 
-	IL_0050:  nop 
-	IL_0051:  ldarg.0 
-	IL_0052:  ldloc.1 
-	IL_0053:  ldarg.0 
-	IL_0054:  ldfld string NAnt.Core.Filters.ReplaceString::_from
-	IL_0059:  ldloc.2 
-	IL_005a:  callvirt instance char string::get_Chars(int32)
-	IL_005f:  call instance bool class NAnt.Core.Filters.ReplaceString::CompareCharacters(int32, int32)
-	IL_0064:  brtrue IL_0085
-
-	IL_0069:  nop 
-	IL_006a:  ldloc.1 
-	IL_006b:  ldc.i4.m1 
-	IL_006c:  bne.un IL_0076
-
-	IL_0071:  nop 
-	IL_0072:  ldarg.2 
-	IL_0073:  ldc.i4.1 
-	IL_0074:  stind.i1 
-	IL_0075:  nop 
-	IL_0076:  ldarg.3 
-	IL_0077:  ldloc.0 
-	IL_0078:  callvirt instance string object::ToString()
-	IL_007d:  stind.ref 
-	IL_007e:  ldc.i4.0 
-	IL_007f:  stloc.3 
-	IL_0080:  br IL_00a2
-
-	IL_0085:  nop 
-	IL_0086:  ldloc.2 
-	IL_0087:  ldc.i4.1 
-	IL_0088:  add 
-	IL_0089:  stloc.2 
-	IL_008a:  ldloc.2 
-	IL_008b:  ldarg.0 
-	IL_008c:  ldfld string NAnt.Core.Filters.ReplaceString::_from
-	IL_0091:  callvirt instance int32 string::get_Length()
-	IL_0096:  blt IL_0037
-
-	IL_009b:  ldc.i4.1 
-	IL_009c:  stloc.3 
-	IL_009d:  br IL_00a2
-
-	IL_00a2:  ldloc.3 
-	IL_00a3:  ret 
-    } // end of method ReplaceString::FindString
-
-    // method line 1444
-    .method private hidebysig 
-           instance default int32 GetNextCharacter (class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate AcquireChar)  cil managed 
-    {
-        // Method begins at RVA 0x19008
-	// Code size 397 (0x18d)
-	.maxstack 4
-	.locals init (
-		int32	V_0,
-		int32	V_1,
-		int32	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
-	IL_0007:  brtrue IL_001a
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance int32 class NAnt.Core.Filters.ChainableReader::Read()
-	IL_0013:  stloc.0 
-	IL_0014:  nop 
-	IL_0015:  br IL_00e3
-
-	IL_001a:  nop 
-	IL_001b:  ldarg.0 
-	IL_001c:  ldfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
-	IL_0021:  ldarg.0 
-	IL_0022:  ldfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
-	IL_0027:  callvirt instance int32 string::get_Length()
-	IL_002c:  bge IL_00ac
-
-	IL_0031:  nop 
-	IL_0032:  ldarg.0 
-	IL_0033:  ldfld bool NAnt.Core.Filters.ReplaceString::_stringNotFound
-	IL_0038:  brfalse IL_0083
-
-	IL_003d:  ldarg.0 
-	IL_003e:  ldfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
-	IL_0043:  ldarg.0 
-	IL_0044:  ldfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
-	IL_0049:  callvirt instance int32 string::get_Length()
-	IL_004e:  ldc.i4.1 
-	IL_004f:  sub 
-	IL_0050:  bne.un IL_0083
-
-	IL_0055:  nop 
-	IL_0056:  ldarg.0 
-	IL_0057:  ldfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
-	IL_005c:  ldarg.0 
-	IL_005d:  ldfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
-	IL_0062:  callvirt instance int32 string::get_Length()
-	IL_0067:  ldc.i4.1 
-	IL_0068:  sub 
-	IL_0069:  callvirt instance char string::get_Chars(int32)
-	IL_006e:  stloc.0 
-	IL_006f:  ldarg.0 
-	IL_0070:  dup 
-	IL_0071:  ldfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
-	IL_0076:  ldc.i4.1 
-	IL_0077:  add 
-	IL_0078:  stfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
-	IL_007d:  nop 
-	IL_007e:  br IL_00a6
-
-	IL_0083:  nop 
-	IL_0084:  ldarg.0 
-	IL_0085:  ldfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
-	IL_008a:  ldarg.0 
-	IL_008b:  dup 
-	IL_008c:  ldfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
-	IL_0091:  dup 
-	IL_0092:  stloc.1 
-	IL_0093:  ldc.i4.1 
-	IL_0094:  add 
-	IL_0095:  stfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
-	IL_009a:  ldloc.1 
-	IL_009b:  callvirt instance char string::get_Chars(int32)
-	IL_00a0:  stloc.2 
-	IL_00a1:  br IL_018b
-
-	IL_00a6:  nop 
-	IL_00a7:  br IL_00e2
-
-	IL_00ac:  nop 
-	IL_00ad:  ldarg.0 
-	IL_00ae:  ldnull 
-	IL_00af:  stfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
-	IL_00b4:  ldarg.0 
-	IL_00b5:  ldc.i4.0 
-	IL_00b6:  stfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
-	IL_00bb:  ldarg.0 
-	IL_00bc:  ldfld bool NAnt.Core.Filters.ReplaceString::_endStreamAfterBuffer
-	IL_00c1:  brtrue IL_00d9
-
-	IL_00c6:  nop 
-	IL_00c7:  ldarg.0 
-	IL_00c8:  ldfld class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate NAnt.Core.Filters.ReplaceString::ReadChar
-	IL_00cd:  callvirt instance int32 class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate::Invoke()
-	IL_00d2:  stloc.0 
-	IL_00d3:  nop 
-	IL_00d4:  br IL_00e1
-
-	IL_00d9:  nop 
-	IL_00da:  ldc.i4.m1 
-	IL_00db:  stloc.2 
-	IL_00dc:  br IL_018b
-
-	IL_00e1:  nop 
-	IL_00e2:  nop 
-	IL_00e3:  ldarg.0 
-	IL_00e4:  ldloc.0 
-	IL_00e5:  ldarg.0 
-	IL_00e6:  ldfld string NAnt.Core.Filters.ReplaceString::_from
-	IL_00eb:  ldc.i4.0 
-	IL_00ec:  callvirt instance char string::get_Chars(int32)
-	IL_00f1:  call instance bool class NAnt.Core.Filters.ReplaceString::CompareCharacters(int32, int32)
-	IL_00f6:  brfalse IL_0183
-
-	IL_00fb:  nop 
-	IL_00fc:  ldarg.0 
-	IL_00fd:  ldloc.0 
-	IL_00fe:  ldarg.0 
-	IL_00ff:  ldflda bool NAnt.Core.Filters.ReplaceString::_endStreamAfterBuffer
-	IL_0104:  ldarg.0 
-	IL_0105:  ldflda string NAnt.Core.Filters.ReplaceString::_outputBuffer
-	IL_010a:  call instance bool class NAnt.Core.Filters.ReplaceString::FindString(int32, [out] bool&, [out] string&)
-	IL_010f:  brfalse IL_016d
-
-	IL_0114:  nop 
-	IL_0115:  ldarg.0 
-	IL_0116:  ldc.i4.0 
-	IL_0117:  stfld bool NAnt.Core.Filters.ReplaceString::_stringNotFound
-	IL_011c:  ldarg.0 
-	IL_011d:  ldfld string NAnt.Core.Filters.ReplaceString::_to
-	IL_0122:  ldsfld string [mscorlib]System.String::Empty
-	IL_0127:  call bool string::op_Equality(string, string)
-	IL_012c:  brfalse IL_0146
-
-	IL_0131:  nop 
-	IL_0132:  ldarg.0 
-	IL_0133:  ldnull 
-	IL_0134:  stfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
-	IL_0139:  ldarg.0 
-	IL_013a:  ldarg.1 
-	IL_013b:  call instance int32 class NAnt.Core.Filters.ReplaceString::GetNextCharacter(class NAnt.Core.Filters.ReplaceString/AcquireCharDelegate)
-	IL_0140:  stloc.2 
-	IL_0141:  br IL_018b
-
-	IL_0146:  nop 
-	IL_0147:  ldarg.0 
-	IL_0148:  ldarg.0 
-	IL_0149:  ldfld string NAnt.Core.Filters.ReplaceString::_to
-	IL_014e:  stfld string NAnt.Core.Filters.ReplaceString::_outputBuffer
-	IL_0153:  ldarg.0 
-	IL_0154:  ldc.i4.1 
-	IL_0155:  stfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
-	IL_015a:  nop 
-	IL_015b:  ldarg.0 
-	IL_015c:  ldfld string NAnt.Core.Filters.ReplaceString::_to
-	IL_0161:  ldc.i4.0 
-	IL_0162:  callvirt instance char string::get_Chars(int32)
-	IL_0167:  stloc.2 
-	IL_0168:  br IL_018b
-
-	IL_016d:  nop 
-	IL_016e:  ldarg.0 
-	IL_016f:  ldc.i4.1 
-	IL_0170:  stfld bool NAnt.Core.Filters.ReplaceString::_stringNotFound
-	IL_0175:  ldarg.0 
-	IL_0176:  ldc.i4.1 
-	IL_0177:  stfld int32 NAnt.Core.Filters.ReplaceString::_bufferPosition
-	IL_017c:  ldloc.0 
-	IL_017d:  stloc.2 
-	IL_017e:  br IL_018b
-
-	IL_0183:  nop 
-	IL_0184:  ldloc.0 
-	IL_0185:  stloc.2 
-	IL_0186:  br IL_018b
-
-	IL_018b:  ldloc.2 
-	IL_018c:  ret 
-    } // end of method ReplaceString::GetNextCharacter
-
-    // method line 1445
-    .method private hidebysig 
-           instance default bool CompareCharacters (int32 char1, int32 char2)  cil managed 
-    {
-        // Method begins at RVA 0x191a4
-	// Code size 48 (0x30)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Filters.ReplaceString::_ignoreCase
-	IL_0007:  brfalse IL_0023
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.1 
-	IL_000e:  conv.u2 
-	IL_000f:  call char char::ToUpper(char)
-	IL_0014:  ldarg.2 
-	IL_0015:  conv.u2 
-	IL_0016:  call char char::ToUpper(char)
-	IL_001b:  ceq 
-	IL_001d:  stloc.0 
-	IL_001e:  br IL_002e
-
-	IL_0023:  nop 
-	IL_0024:  ldarg.1 
-	IL_0025:  ldarg.2 
-	IL_0026:  ceq 
-	IL_0028:  stloc.0 
-	IL_0029:  br IL_002e
-
-	IL_002e:  ldloc.0 
-	IL_002f:  ret 
-    } // end of method ReplaceString::CompareCharacters
-
-	.property instance string From ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 66 72 6F 6D 01 00 54 02 08 52 65 71 75   // ...from..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.Core.Filters.ReplaceString::get_From () 
-		.set instance default void NAnt.Core.Filters.ReplaceString::set_From (string 'value') 
-	}
-	.property instance string To ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 02 74 6F 01 00 54 02 08 52 65 71 75 69 72   // ...to..T..Requir
-		65 64 00                                        ) // ed.
-
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 01                                           ) // y.
-
-		.get instance default string NAnt.Core.Filters.ReplaceString::get_To () 
-		.set instance default void NAnt.Core.Filters.ReplaceString::set_To (string 'value') 
-	}
-	.property instance bool IgnoreCase ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0A 69 67 6E 6F 72 65 63 61 73 65 01 00 54   // ...ignorecase..T
-		02 08 52 65 71 75 69 72 65 64 00                ) // ..Required.
-
-		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Core.Filters.ReplaceString::get_IgnoreCase () 
-		.set instance default void NAnt.Core.Filters.ReplaceString::set_IgnoreCase (bool 'value') 
-	}
-  .class nested private auto ansi sealed AcquireCharDelegate
-  	extends [mscorlib]System.MulticastDelegate
-  {
-
-    // method line 1446
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::.ctor
-
-    // method line 1447
-    .method public virtual hidebysig newslot 
-           instance default int32 Invoke ()  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::Invoke
-
-    // method line 1448
-    .method public virtual hidebysig newslot 
-           instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::BeginInvoke
-
-    // method line 1449
-    .method public virtual hidebysig newslot 
-           instance default int32 EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::EndInvoke
-
-  } // end of class AcquireCharDelegate
-
-  } // end of class NAnt.Core.Filters.ReplaceString
-}
-
-.namespace NAnt.Core.Filters
-{
-  .class public auto ansi beforefieldinit ReplaceTokens
-  	extends NAnt.Core.Filters.Filter
-  {
-    .custom instance void class NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
-		01 00 0D 72 65 70 6C 61 63 65 74 6F 6B 65 6E 73   // ...replacetokens
-		00 00                                           ) // ..
-
-    .field  private  char _beginToken
-    .field  private  char _endToken
-    .field  private  class NAnt.Core.Types.Token[] _tokens
-    .field  private  class [System]System.Collections.Specialized.StringDictionary _tokenValues
-    .field  private  class [mscorlib]System.Text.StringBuilder _tokenString
-    .field  private  int32 _maxTokenLength
-    .field  private  string _outputBuffer
-    .field  private  bool _endStreamAfterBuffer
-    .field  private  int32 _bufferPosition
-    .field  private  bool _unknownToken
-    .field  private  bool _tokenNotFound
-    .field  private  bool _ignoreCase
-    .field  private  class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate ReadChar
-
-    // method line 1450
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x191e0
-	// Code size 48 (0x30)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.s 0x40
-	IL_0003:  stfld char NAnt.Core.Filters.ReplaceTokens::_beginToken
-	IL_0008:  ldarg.0 
-	IL_0009:  ldc.i4.s 0x40
-	IL_000b:  stfld char NAnt.Core.Filters.ReplaceTokens::_endToken
-	IL_0010:  ldarg.0 
-	IL_0011:  newobj instance void class [System]System.Collections.Specialized.StringDictionary::'.ctor'()
-	IL_0016:  stfld class [System]System.Collections.Specialized.StringDictionary NAnt.Core.Filters.ReplaceTokens::_tokenValues
-	IL_001b:  ldarg.0 
-	IL_001c:  ldc.i4.1 
-	IL_001d:  stfld bool NAnt.Core.Filters.ReplaceTokens::_unknownToken
-	IL_0022:  ldarg.0 
-	IL_0023:  ldc.i4.1 
-	IL_0024:  stfld bool NAnt.Core.Filters.ReplaceTokens::_tokenNotFound
-	IL_0029:  ldarg.0 
-	IL_002a:  call instance void class NAnt.Core.Filters.Filter::'.ctor'()
-	IL_002f:  ret 
-    } // end of method ReplaceTokens::.ctor
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Types.Credential NAnt.Core.Tasks.GetTask::_credentials
+	IL_0008:  ret 
+    } // end of method GetTask::set_Credentials
 
-    // method line 1451
+    // method line 1276
     .method public hidebysig specialname 
-           instance default char get_BeginToken ()  cil managed 
+           instance default bool get_IgnoreErrors ()  cil managed 
     {
-        // Method begins at RVA 0x19214
+        // Method begins at RVA 0x17564
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		char	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld char NAnt.Core.Filters.ReplaceTokens::_beginToken
+	IL_0002:  call instance bool class NAnt.Core.Task::get_FailOnError()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ReplaceTokens::get_BeginToken
+    } // end of method GetTask::get_IgnoreErrors
 
-    // method line 1452
+    // method line 1277
     .method public hidebysig specialname 
-           instance default void set_BeginToken (char 'value')  cil managed 
+           instance default void set_IgnoreErrors (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1922f
+        // Method begins at RVA 0x1757f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld char NAnt.Core.Filters.ReplaceTokens::_beginToken
+	IL_0003:  call instance void class NAnt.Core.Task::set_FailOnError(bool)
 	IL_0008:  ret 
-    } // end of method ReplaceTokens::set_BeginToken
+    } // end of method GetTask::set_IgnoreErrors
 
-    // method line 1453
+    // method line 1278
     .method public hidebysig specialname 
-           instance default char get_EndToken ()  cil managed 
+           instance default bool get_UseTimeStamp ()  cil managed 
     {
-        // Method begins at RVA 0x1923c
+        // Method begins at RVA 0x1758c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		char	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld char NAnt.Core.Filters.ReplaceTokens::_endToken
+	IL_0002:  ldfld bool NAnt.Core.Tasks.GetTask::_useTimeStamp
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ReplaceTokens::get_EndToken
+    } // end of method GetTask::get_UseTimeStamp
 
-    // method line 1454
+    // method line 1279
     .method public hidebysig specialname 
-           instance default void set_EndToken (char 'value')  cil managed 
+           instance default void set_UseTimeStamp (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x19257
+        // Method begins at RVA 0x175a7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld char NAnt.Core.Filters.ReplaceTokens::_endToken
+	IL_0003:  stfld bool NAnt.Core.Tasks.GetTask::_useTimeStamp
 	IL_0008:  ret 
-    } // end of method ReplaceTokens::set_EndToken
+    } // end of method GetTask::set_UseTimeStamp
 
-    // method line 1455
+    // method line 1280
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.Token[] get_Tokens ()  cil managed 
+           instance default int32 get_Timeout ()  cil managed 
     {
-        // Method begins at RVA 0x19264
+        // Method begins at RVA 0x175b4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Types.Token[]	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Types.Token[] NAnt.Core.Filters.ReplaceTokens::_tokens
+	IL_0002:  ldfld int32 NAnt.Core.Tasks.GetTask::_timeout
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ReplaceTokens::get_Tokens
+    } // end of method GetTask::get_Timeout
 
-    // method line 1456
+    // method line 1281
     .method public hidebysig specialname 
-           instance default void set_Tokens (class NAnt.Core.Types.Token[] 'value')  cil managed 
+           instance default void set_Timeout (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x1927f
+        // Method begins at RVA 0x175cf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Types.Token[] NAnt.Core.Filters.ReplaceTokens::_tokens
+	IL_0003:  stfld int32 NAnt.Core.Tasks.GetTask::_timeout
 	IL_0008:  ret 
-    } // end of method ReplaceTokens::set_Tokens
+    } // end of method GetTask::set_Timeout
 
-    // method line 1457
+    // method line 1282
     .method public hidebysig specialname 
-           instance default bool get_IgnoreCase ()  cil managed 
+           instance default class NAnt.Core.Types.FileSet get_Certificates ()  cil managed 
     {
-        // Method begins at RVA 0x1928c
+        // Method begins at RVA 0x175dc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Filters.ReplaceTokens::_ignoreCase
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.GetTask::_certificates
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ReplaceTokens::get_IgnoreCase
+    } // end of method GetTask::get_Certificates
 
-    // method line 1458
+    // method line 1283
     .method public hidebysig specialname 
-           instance default void set_IgnoreCase (bool 'value')  cil managed 
+           instance default void set_Certificates (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x192a7
+        // Method begins at RVA 0x175f7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Filters.ReplaceTokens::_ignoreCase
+	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.GetTask::_certificates
 	IL_0008:  ret 
-    } // end of method ReplaceTokens::set_IgnoreCase
-
-    // method line 1459
-    .method public virtual hidebysig 
-           instance default void Chain (class NAnt.Core.Filters.ChainableReader chainedReader)  cil managed 
-    {
-        // Method begins at RVA 0x192b1
-	// Code size 27 (0x1b)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Filters.ChainableReader::Chain(class NAnt.Core.Filters.ChainableReader)
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldftn instance int32 class NAnt.Core.Filters.ChainableReader::Read()
-	IL_0010:  newobj instance void class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate::'.ctor'(object, native int)
-	IL_0015:  stfld class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate NAnt.Core.Filters.ReplaceTokens::ReadChar
-	IL_001a:  ret 
-    } // end of method ReplaceTokens::Chain
+    } // end of method GetTask::set_Certificates
 
-    // method line 1460
-    .method public virtual hidebysig 
-           instance default int32 Read ()  cil managed 
+    // method line 1284
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x192d0
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x17604
+	// Code size 116 (0x74)
 	.maxstack 2
-	.locals init (
-		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate NAnt.Core.Filters.ReplaceTokens::ReadChar
-	IL_0008:  call instance int32 class NAnt.Core.Filters.ReplaceTokens::GetNextCharacter(class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_000c:  brfalse IL_004b
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ReplaceTokens::Read
+	IL_0011:  ldarg.0 
+	IL_0012:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	IL_0017:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001c:  call valuetype [mscorlib]System.IO.FileAttributes class [mscorlib]System.IO.File::GetAttributes(string)
+	IL_0021:  ldc.i4.1 
+	IL_0022:  and 
+	IL_0023:  ldc.i4.1 
+	IL_0024:  bne.un IL_004b
 
-    // method line 1461
-    .method public virtual hidebysig 
-           instance default int32 Peek ()  cil managed 
-    {
-        // Method begins at RVA 0x192f1
-	// Code size 17 (0x11)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldstr "String_PeekNotSupported"
-	IL_0006:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_000b:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
-	IL_0010:  throw 
-    } // end of method ReplaceTokens::Peek
+	IL_0029:  nop 
+	IL_002a:  ldstr "Destination file '{0}' is read-only."
+	IL_002f:  ldarg.0 
+	IL_0030:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	IL_0035:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_003a:  call string string::Format(string, object)
+	IL_003f:  ldarg.0 
+	IL_0040:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0045:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_004a:  throw 
+	IL_004b:  ldarg.0 
+	IL_004c:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.GetTask::get_Proxy()
+	IL_0051:  brfalse IL_0073
 
-    // method line 1462
+	IL_0056:  ldarg.0 
+	IL_0057:  call instance string class NAnt.Core.Tasks.GetTask::get_HttpProxy()
+	IL_005c:  brfalse IL_0073
+
+	IL_0061:  nop 
+	IL_0062:  ldstr "The <proxy> child element and the 'httpproxy' attribute are mutually exclusive."
+	IL_0067:  ldarg.0 
+	IL_0068:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_006d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0072:  throw 
+	IL_0073:  ret 
+    } // end of method GetTask::Initialize
+
+    // method line 1285
     .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x19304
-	// Code size 190 (0xbe)
-	.maxstack 4
+        // Method begins at RVA 0x17684
+	// Code size 989 (0x3dd)
+	.maxstack 8
 	.locals init (
-		class NAnt.Core.Types.Token	V_0,
-		class NAnt.Core.Types.Token[]	V_1,
-		int32	V_2)
+		valuetype [mscorlib]System.DateTime	V_0,
+		class [System]System.Net.WebRequest	V_1,
+		class [System]System.Net.WebResponse	V_2,
+		class [mscorlib]System.IO.Stream	V_3,
+		int32	V_4,
+		class [mscorlib]System.IO.IOException	V_5,
+		class [mscorlib]System.IO.BinaryWriter	V_6,
+		int32	V_7,
+		unsigned int8[]	V_8,
+		int32	V_9,
+		int32	V_10,
+		int32	V_11,
+		class [System]System.Net.HttpWebResponse	V_12,
+		valuetype [mscorlib]System.DateTime	V_13,
+		class [System]System.Net.WebException	V_14,
+		class [System]System.Net.HttpWebResponse	V_15,
+		valuetype [mscorlib]System.DateTime	V_16,
+		class [mscorlib]System.Exception	V_17)
 	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance class NAnt.Core.Types.Token[] class NAnt.Core.Filters.ReplaceTokens::get_Tokens()
-	IL_0008:  stloc.1 
-	IL_0009:  ldc.i4.0 
-	IL_000a:  stloc.2 
-	IL_000b:  br IL_0072
+	.try { // 1
+	  IL_0001:  nop 
+	  IL_0002:  ldloca.s 0
+	  IL_0004:  initobj [mscorlib]System.DateTime
+	  IL_000a:  ldarg.0 
+	  IL_000b:  call instance bool class NAnt.Core.Tasks.GetTask::get_UseTimeStamp()
+	  IL_0010:  brfalse IL_0058
 
-	IL_0010:  ldloc.1 
-	IL_0011:  ldloc.2 
-	IL_0012:  ldelem.ref 
-	IL_0013:  stloc.0 
-	IL_0014:  nop 
-	IL_0015:  ldloc.0 
-	IL_0016:  callvirt instance bool class NAnt.Core.Types.Token::get_IfDefined()
-	IL_001b:  brfalse IL_006d
+	  IL_0015:  ldarg.0 
+	  IL_0016:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	  IL_001b:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_0020:  brfalse IL_0058
 
-	IL_0020:  ldloc.0 
-	IL_0021:  callvirt instance bool class NAnt.Core.Types.Token::get_UnlessDefined()
-	IL_0026:  brtrue IL_006d
+	  IL_0025:  nop 
+	  IL_0026:  ldarg.0 
+	  IL_0027:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	  IL_002c:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	  IL_0031:  stloc.0 
+	  IL_0032:  ldarg.0 
+	  IL_0033:  ldc.i4 2000
+	  IL_0038:  ldstr "Local file time stamp is {0}."
+	  IL_003d:  ldc.i4.1 
+	  IL_003e:  newarr [mscorlib]System.Object
+	  IL_0043:  dup 
+	  IL_0044:  ldc.i4.0 
+	  IL_0045:  ldloca.s 0
+	  IL_0047:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_004c:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
+	  IL_0051:  stelem.ref 
+	  IL_0052:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0057:  nop 
+	  IL_0058:  ldarg.0 
+	  IL_0059:  ldarg.0 
+	  IL_005a:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
+	  IL_005f:  ldloc.0 
+	  IL_0060:  call instance class [System]System.Net.WebRequest class NAnt.Core.Tasks.GetTask::GetWebRequest(string, valuetype [mscorlib]System.DateTime)
+	  IL_0065:  stloc.1 
+	  IL_0066:  ldloc.1 
+	  IL_0067:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
+	  IL_006c:  stloc.2 
+	  IL_006d:  ldnull 
+	  IL_006e:  stloc.3 
+	  IL_006f:  ldc.i4.1 
+	  IL_0070:  stloc.s 4
+	  IL_0072:  nop 
+	  IL_0073:  nop 
+	  .try { // 0
+	    IL_0074:  nop 
+	    IL_0075:  ldloc.2 
+	    IL_0076:  callvirt instance class [mscorlib]System.IO.Stream class [System]System.Net.WebResponse::GetResponseStream()
+	    IL_007b:  stloc.3 
+	    IL_007c:  leave IL_0107
 
-	IL_002b:  nop 
-	IL_002c:  ldarg.0 
-	IL_002d:  ldfld class [System]System.Collections.Specialized.StringDictionary NAnt.Core.Filters.ReplaceTokens::_tokenValues
-	IL_0032:  ldloc.0 
-	IL_0033:  callvirt instance string class NAnt.Core.Types.Token::get_Key()
-	IL_0038:  ldloc.0 
-	IL_0039:  callvirt instance string class NAnt.Core.Types.Token::get_Value()
-	IL_003e:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::Add(string, string)
-	IL_0043:  ldloc.0 
-	IL_0044:  callvirt instance string class NAnt.Core.Types.Token::get_Key()
-	IL_0049:  callvirt instance int32 string::get_Length()
-	IL_004e:  ldarg.0 
-	IL_004f:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_maxTokenLength
-	IL_0054:  ble IL_006c
+	  } // end .try 0
+	  catch class [mscorlib]System.IO.IOException { // 0
+	    IL_0081:  stloc.s 5
+	    IL_0083:  nop 
+	    IL_0084:  ldloc.s 4
+	    IL_0086:  ldc.i4.3 
+	    IL_0087:  ble IL_00be
 
-	IL_0059:  nop 
-	IL_005a:  ldarg.0 
-	IL_005b:  ldloc.0 
-	IL_005c:  callvirt instance string class NAnt.Core.Types.Token::get_Key()
-	IL_0061:  callvirt instance int32 string::get_Length()
-	IL_0066:  stfld int32 NAnt.Core.Filters.ReplaceTokens::_maxTokenLength
-	IL_006b:  nop 
-	IL_006c:  nop 
-	IL_006d:  nop 
-	IL_006e:  ldloc.2 
-	IL_006f:  ldc.i4.1 
-	IL_0070:  add 
-	IL_0071:  stloc.2 
-	IL_0072:  ldloc.2 
-	IL_0073:  ldloc.1 
-	IL_0074:  ldlen 
-	IL_0075:  conv.i4 
-	IL_0076:  blt IL_0010
+	    IL_008c:  nop 
+	    IL_008d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0092:  ldstr "NA1125"
+	    IL_0097:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_009c:  ldarg.0 
+	    IL_009d:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
+	    IL_00a2:  ldarg.0 
+	    IL_00a3:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	    IL_00a8:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	    IL_00ad:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	    IL_00b2:  ldarg.0 
+	    IL_00b3:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	    IL_00b8:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	    IL_00bd:  throw 
+	    IL_00be:  nop 
+	    IL_00bf:  ldarg.0 
+	    IL_00c0:  ldc.i4 4000
+	    IL_00c5:  ldstr "Unable to open connection to '{0}' (try {1} of 3): "
+	    IL_00ca:  ldloc.s 5
+	    IL_00cc:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	    IL_00d1:  call string string::Concat(string, string)
+	    IL_00d6:  ldc.i4.2 
+	    IL_00d7:  newarr [mscorlib]System.Object
+	    IL_00dc:  dup 
+	    IL_00dd:  ldc.i4.0 
+	    IL_00de:  ldarg.0 
+	    IL_00df:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
+	    IL_00e4:  stelem.ref 
+	    IL_00e5:  dup 
+	    IL_00e6:  ldc.i4.1 
+	    IL_00e7:  ldloc.s 4
+	    IL_00e9:  box [mscorlib]System.Int32
+	    IL_00ee:  stelem.ref 
+	    IL_00ef:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	    IL_00f4:  nop 
+	    IL_00f5:  nop 
+	    IL_00f6:  leave IL_00fb
 
-	IL_007b:  ldarg.0 
-	IL_007c:  ldfld class [System]System.Collections.Specialized.StringDictionary NAnt.Core.Filters.ReplaceTokens::_tokenValues
-	IL_0081:  callvirt instance int32 class [System]System.Collections.Specialized.StringDictionary::get_Count()
-	IL_0086:  brtrue IL_00a2
+	  } // end handler 0
+	  IL_00fb:  ldloc.s 4
+	  IL_00fd:  ldc.i4.1 
+	  IL_00fe:  add 
+	  IL_00ff:  stloc.s 4
+	  IL_0101:  nop 
+	  IL_0102:  br IL_0072
 
-	IL_008b:  nop 
-	IL_008c:  ldstr "String_OneOrMoreTokens"
-	IL_0091:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0096:  ldarg.0 
-	IL_0097:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_009c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_00a1:  throw 
-	IL_00a2:  ldarg.0 
-	IL_00a3:  ldarg.0 
-	IL_00a4:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_maxTokenLength
-	IL_00a9:  ldc.i4.1 
-	IL_00aa:  add 
-	IL_00ab:  ldarg.0 
-	IL_00ac:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_maxTokenLength
-	IL_00b1:  ldc.i4.1 
-	IL_00b2:  add 
-	IL_00b3:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(int32, int32)
-	IL_00b8:  stfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
-	IL_00bd:  ret 
-    } // end of method ReplaceTokens::Initialize
+	  IL_0107:  ldarg.0 
+	  IL_0108:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	  IL_010d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0112:  ldc.i4.2 
+	  IL_0113:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode)
+	  IL_0118:  newobj instance void class [mscorlib]System.IO.BinaryWriter::'.ctor'(class [mscorlib]System.IO.Stream)
+	  IL_011d:  stloc.s 6
+	  IL_011f:  ldarg.0 
+	  IL_0120:  ldc.i4 3000
+	  IL_0125:  ldstr "Retrieving '{0}' to '{1}'."
+	  IL_012a:  ldc.i4.2 
+	  IL_012b:  newarr [mscorlib]System.Object
+	  IL_0130:  dup 
+	  IL_0131:  ldc.i4.0 
+	  IL_0132:  ldarg.0 
+	  IL_0133:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
+	  IL_0138:  stelem.ref 
+	  IL_0139:  dup 
+	  IL_013a:  ldc.i4.1 
+	  IL_013b:  ldarg.0 
+	  IL_013c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	  IL_0141:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0146:  stelem.ref 
+	  IL_0147:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_014c:  ldc.i4 102400
+	  IL_0151:  stloc.s 7
+	  IL_0153:  ldloc.s 7
+	  IL_0155:  newarr [mscorlib]System.Byte
+	  IL_015a:  stloc.s 8
+	  IL_015c:  ldc.i4.0 
+	  IL_015d:  stloc.s 9
+	  IL_015f:  ldc.i4.0 
+	  IL_0160:  stloc.s 10
+	  IL_0162:  ldc.i4.0 
+	  IL_0163:  stloc.s 11
+	  IL_0165:  nop 
+	  IL_0166:  ldloc.3 
+	  IL_0167:  ldloc.s 8
+	  IL_0169:  ldc.i4.0 
+	  IL_016a:  ldloc.s 7
+	  IL_016c:  callvirt instance int32 class [mscorlib]System.IO.Stream::Read(unsigned int8[], int32, int32)
+	  IL_0171:  stloc.s 9
+	  IL_0173:  ldloc.s 9
+	  IL_0175:  brfalse IL_01ba
 
-    // method line 1463
-    .method private hidebysig 
-           instance default string FindTokenContents ([out] bool& tokenNotFound, [out] bool& unknownToken, [out] bool& streamEnded)  cil managed 
-    {
-        // Method begins at RVA 0x193d0
-	// Code size 385 (0x181)
-	.maxstack 3
-	.locals init (
-		int32	V_0,
-		char	V_1,
-		bool	V_2,
-		int32	V_3,
-		string	V_4,
-		string	V_5,
-		string	V_6)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  call instance char class NAnt.Core.Filters.ReplaceTokens::get_BeginToken()
-	IL_0009:  stloc.1 
-	IL_000a:  ldc.i4.0 
-	IL_000b:  stloc.2 
-	IL_000c:  ldarg.1 
-	IL_000d:  ldc.i4.0 
-	IL_000e:  stind.i1 
-	IL_000f:  ldarg.3 
-	IL_0010:  ldc.i4.0 
-	IL_0011:  stind.i1 
-	IL_0012:  ldarg.2 
-	IL_0013:  ldc.i4.1 
-	IL_0014:  stind.i1 
-	IL_0015:  ldarg.0 
-	IL_0016:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
-	IL_001b:  ldc.i4.0 
-	IL_001c:  callvirt instance void class [mscorlib]System.Text.StringBuilder::set_Length(int32)
-	IL_0021:  br IL_00d1
+	  IL_017a:  nop 
+	  IL_017b:  ldloc.s 6
+	  IL_017d:  ldloc.s 8
+	  IL_017f:  ldc.i4.0 
+	  IL_0180:  ldloc.s 9
+	  IL_0182:  callvirt instance void class [mscorlib]System.IO.BinaryWriter::Write(unsigned int8[], int32, int32)
+	  IL_0187:  ldloc.s 10
+	  IL_0189:  ldloc.s 9
+	  IL_018b:  add 
+	  IL_018c:  stloc.s 10
+	  IL_018e:  ldloc.s 11
+	  IL_0190:  ldloc.s 9
+	  IL_0192:  add 
+	  IL_0193:  stloc.s 11
+	  IL_0195:  ldarg.0 
+	  IL_0196:  callvirt instance bool class NAnt.Core.Task::get_Verbose()
+	  IL_019b:  brfalse IL_01b9
 
-	IL_0026:  nop 
-	IL_0027:  ldloc.0 
-	IL_0028:  ldc.i4.1 
-	IL_0029:  add 
-	IL_002a:  stloc.0 
-	IL_002b:  ldarg.0 
-	IL_002c:  call instance int32 class NAnt.Core.Filters.ChainableReader::Read()
-	IL_0031:  stloc.3 
-	IL_0032:  ldloc.3 
-	IL_0033:  conv.u2 
-	IL_0034:  stloc.1 
-	IL_0035:  ldloc.3 
-	IL_0036:  ldc.i4.m1 
-	IL_0037:  bne.un IL_0058
+	  IL_01a0:  ldloc.s 11
+	  IL_01a2:  ldloc.s 7
+	  IL_01a4:  ble IL_01b9
 
-	IL_003c:  nop 
-	IL_003d:  ldarg.1 
-	IL_003e:  ldc.i4.1 
-	IL_003f:  stind.i1 
-	IL_0040:  ldarg.2 
-	IL_0041:  ldc.i4.1 
-	IL_0042:  stind.i1 
-	IL_0043:  ldarg.3 
-	IL_0044:  ldc.i4.1 
-	IL_0045:  stind.i1 
-	IL_0046:  ldarg.0 
-	IL_0047:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
-	IL_004c:  callvirt instance string object::ToString()
-	IL_0051:  stloc.s 4
-	IL_0053:  br IL_017e
+	  IL_01a9:  nop 
+	  IL_01aa:  ldloc.s 11
+	  IL_01ac:  ldloc.s 10
+	  IL_01ae:  bne.un IL_01b5
 
-	IL_0058:  ldarg.0 
-	IL_0059:  ldloc.1 
-	IL_005a:  ldarg.0 
-	IL_005b:  call instance char class NAnt.Core.Filters.ReplaceTokens::get_EndToken()
-	IL_0060:  call instance bool class NAnt.Core.Filters.ReplaceTokens::CompareCharacters(int32, int32)
-	IL_0065:  brfalse IL_0072
+	  IL_01b3:  nop 
+	  IL_01b4:  nop 
+	  IL_01b5:  ldc.i4.0 
+	  IL_01b6:  stloc.s 11
+	  IL_01b8:  nop 
+	  IL_01b9:  nop 
+	  IL_01ba:  nop 
+	  IL_01bb:  ldloc.s 9
+	  IL_01bd:  brtrue IL_0165
 
-	IL_006a:  nop 
-	IL_006b:  ldc.i4.1 
-	IL_006c:  stloc.2 
-	IL_006d:  br IL_00dd
+	  IL_01c2:  ldloc.s 10
+	  IL_01c4:  ldloc.s 7
+	  IL_01c6:  ble IL_01dd
 
-	IL_0072:  ldarg.0 
-	IL_0073:  ldloc.1 
-	IL_0074:  ldarg.0 
-	IL_0075:  call instance char class NAnt.Core.Filters.ReplaceTokens::get_BeginToken()
-	IL_007a:  call instance bool class NAnt.Core.Filters.ReplaceTokens::CompareCharacters(int32, int32)
-	IL_007f:  brfalse IL_00c1
+	  IL_01cb:  nop 
+	  IL_01cc:  ldarg.0 
+	  IL_01cd:  ldc.i4 2000
+	  IL_01d2:  ldstr ""
+	  IL_01d7:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	  IL_01dc:  nop 
+	  IL_01dd:  ldarg.0 
+	  IL_01de:  ldc.i4 2000
+	  IL_01e3:  ldstr "Number of bytes read: {0}."
+	  IL_01e8:  ldc.i4.1 
+	  IL_01e9:  newarr [mscorlib]System.Object
+	  IL_01ee:  dup 
+	  IL_01ef:  ldc.i4.0 
+	  IL_01f0:  ldloca.s 10
+	  IL_01f2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_01f7:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
+	  IL_01fc:  stelem.ref 
+	  IL_01fd:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0202:  ldloc.s 6
+	  IL_0204:  callvirt instance void class [mscorlib]System.IO.BinaryWriter::Close()
+	  IL_0209:  ldloc.3 
+	  IL_020a:  callvirt instance void class [mscorlib]System.IO.Stream::Close()
+	  IL_020f:  ldarg.0 
+	  IL_0210:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	  IL_0215:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Refresh()
+	  IL_021a:  ldarg.0 
+	  IL_021b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	  IL_0220:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_0225:  brtrue IL_025c
 
-	IL_0084:  ldarg.0 
-	IL_0085:  ldarg.0 
-	IL_0086:  call instance char class NAnt.Core.Filters.ReplaceTokens::get_EndToken()
-	IL_008b:  ldarg.0 
-	IL_008c:  call instance char class NAnt.Core.Filters.ReplaceTokens::get_BeginToken()
-	IL_0091:  call instance bool class NAnt.Core.Filters.ReplaceTokens::CompareCharacters(int32, int32)
-	IL_0096:  brtrue IL_00c1
+	  IL_022a:  nop 
+	  IL_022b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0230:  ldstr "NA1125"
+	  IL_0235:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_023a:  ldarg.0 
+	  IL_023b:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
+	  IL_0240:  ldarg.0 
+	  IL_0241:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	  IL_0246:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_024b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0250:  ldarg.0 
+	  IL_0251:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0256:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_025b:  throw 
+	  IL_025c:  ldarg.0 
+	  IL_025d:  call instance bool class NAnt.Core.Tasks.GetTask::get_UseTimeStamp()
+	  IL_0262:  brfalse IL_02c3
 
-	IL_009b:  nop 
-	IL_009c:  ldarg.1 
-	IL_009d:  ldc.i4.1 
-	IL_009e:  stind.i1 
-	IL_009f:  ldarg.2 
-	IL_00a0:  ldc.i4.1 
-	IL_00a1:  stind.i1 
-	IL_00a2:  ldarg.0 
-	IL_00a3:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
-	IL_00a8:  ldloc.1 
-	IL_00a9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_00ae:  pop 
-	IL_00af:  ldarg.0 
-	IL_00b0:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
-	IL_00b5:  callvirt instance string object::ToString()
-	IL_00ba:  stloc.s 4
-	IL_00bc:  br IL_017e
+	  IL_0267:  nop 
+	  IL_0268:  ldloc.1 
+	  IL_0269:  isinst [System]System.Net.HttpWebRequest
+	  IL_026e:  brfalse IL_02c2
 
-	IL_00c1:  nop 
-	IL_00c2:  ldarg.0 
-	IL_00c3:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
-	IL_00c8:  ldloc.1 
-	IL_00c9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_00ce:  pop 
-	IL_00cf:  nop 
-	IL_00d0:  nop 
-	IL_00d1:  ldloc.0 
-	IL_00d2:  ldarg.0 
-	IL_00d3:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_maxTokenLength
-	IL_00d8:  ble IL_0026
+	  IL_0273:  nop 
+	  IL_0274:  ldloc.2 
+	  IL_0275:  castclass [System]System.Net.HttpWebResponse
+	  IL_027a:  stloc.s 12
+	  IL_027c:  ldloc.s 12
+	  IL_027e:  callvirt instance valuetype [mscorlib]System.DateTime class [System]System.Net.HttpWebResponse::get_LastModified()
+	  IL_0283:  stloc.s 13
+	  IL_0285:  ldarg.0 
+	  IL_0286:  ldc.i4 2000
+	  IL_028b:  ldstr "'{0}' last modified on {1}."
+	  IL_0290:  ldc.i4.2 
+	  IL_0291:  newarr [mscorlib]System.Object
+	  IL_0296:  dup 
+	  IL_0297:  ldc.i4.0 
+	  IL_0298:  ldarg.0 
+	  IL_0299:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
+	  IL_029e:  stelem.ref 
+	  IL_029f:  dup 
+	  IL_02a0:  ldc.i4.1 
+	  IL_02a1:  ldloca.s 13
+	  IL_02a3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_02a8:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
+	  IL_02ad:  stelem.ref 
+	  IL_02ae:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_02b3:  ldarg.0 
+	  IL_02b4:  ldarg.0 
+	  IL_02b5:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	  IL_02ba:  ldloc.s 13
+	  IL_02bc:  call instance void class NAnt.Core.Tasks.GetTask::TouchFile(class [mscorlib]System.IO.FileInfo, valuetype [mscorlib]System.DateTime)
+	  IL_02c1:  nop 
+	  IL_02c2:  nop 
+	  IL_02c3:  nop 
+	  IL_02c4:  leave IL_03dc
 
-	IL_00dd:  ldloc.2 
-	IL_00de:  brfalse IL_0165
+	} // end .try 1
+	catch class NAnt.Core.BuildException { // 1
+	  IL_02c9:  pop 
+	  IL_02ca:  nop 
+	  IL_02cb:  rethrow 
+	} // end handler 1
+	catch class [System]System.Net.WebException { // 2
+	  IL_02cd:  stloc.s 14
+	  IL_02cf:  nop 
+	  IL_02d0:  ldloc.s 14
+	  IL_02d2:  callvirt instance valuetype [System]System.Net.WebExceptionStatus class [System]System.Net.WebException::get_Status()
+	  IL_02d7:  ldc.i4.7 
+	  IL_02d8:  bne.un IL_0372
 
-	IL_00e3:  nop 
-	IL_00e4:  ldnull 
-	IL_00e5:  stloc.s 5
-	IL_00e7:  ldarg.0 
-	IL_00e8:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
-	IL_00ed:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_00f2:  brfalse IL_011a
+	  IL_02dd:  nop 
+	  IL_02de:  ldloc.s 14
+	  IL_02e0:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebException::get_Response()
+	  IL_02e5:  castclass [System]System.Net.HttpWebResponse
+	  IL_02ea:  stloc.s 15
+	  IL_02ec:  ldloc.s 15
+	  IL_02ee:  callvirt instance valuetype [System]System.Net.HttpStatusCode class [System]System.Net.HttpWebResponse::get_StatusCode()
+	  IL_02f3:  ldc.i4 304
+	  IL_02f8:  bne.un IL_033e
 
-	IL_00f7:  nop 
-	IL_00f8:  ldarg.0 
-	IL_00f9:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
-	IL_00fe:  callvirt instance string object::ToString()
-	IL_0103:  stloc.s 6
-	IL_0105:  ldarg.0 
-	IL_0106:  ldfld class [System]System.Collections.Specialized.StringDictionary NAnt.Core.Filters.ReplaceTokens::_tokenValues
-	IL_010b:  ldloc.s 6
-	IL_010d:  callvirt instance string class [System]System.Collections.Specialized.StringDictionary::get_Item(string)
-	IL_0112:  stloc.s 5
-	IL_0114:  nop 
-	IL_0115:  br IL_012f
+	  IL_02fd:  nop 
+	  IL_02fe:  ldarg.0 
+	  IL_02ff:  ldc.i4 2000
+	  IL_0304:  ldstr "'{0}' not downloaded.  Not modified since {1}."
+	  IL_0309:  ldc.i4.2 
+	  IL_030a:  newarr [mscorlib]System.Object
+	  IL_030f:  dup 
+	  IL_0310:  ldc.i4.0 
+	  IL_0311:  ldarg.0 
+	  IL_0312:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
+	  IL_0317:  stelem.ref 
+	  IL_0318:  dup 
+	  IL_0319:  ldc.i4.1 
+	  IL_031a:  ldarg.0 
+	  IL_031b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	  IL_0320:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	  IL_0325:  stloc.s 16
+	  IL_0327:  ldloca.s 16
+	  IL_0329:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_032e:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
+	  IL_0333:  stelem.ref 
+	  IL_0334:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0339:  leave IL_03dc
 
-	IL_011a:  nop 
-	IL_011b:  ldarg.1 
-	IL_011c:  ldc.i4.1 
-	IL_011d:  stind.i1 
-	IL_011e:  ldarg.2 
-	IL_011f:  ldc.i4.1 
-	IL_0120:  stind.i1 
-	IL_0121:  ldloc.1 
-	IL_0122:  ldc.i4.1 
-	IL_0123:  newobj instance void string::'.ctor'(char, int32)
-	IL_0128:  stloc.s 4
-	IL_012a:  br IL_017e
+	  IL_033e:  nop 
+	  IL_033f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0344:  ldstr "NA1125"
+	  IL_0349:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_034e:  ldarg.0 
+	  IL_034f:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
+	  IL_0354:  ldarg.0 
+	  IL_0355:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	  IL_035a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_035f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0364:  ldarg.0 
+	  IL_0365:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_036a:  ldloc.s 14
+	  IL_036c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0371:  throw 
+	  IL_0372:  nop 
+	  IL_0373:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0378:  ldstr "NA1125"
+	  IL_037d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0382:  ldarg.0 
+	  IL_0383:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
+	  IL_0388:  ldarg.0 
+	  IL_0389:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	  IL_038e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0393:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0398:  ldarg.0 
+	  IL_0399:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_039e:  ldloc.s 14
+	  IL_03a0:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_03a5:  throw 
+	} // end handler 2
+	catch class [mscorlib]System.Exception { // 3
+	  IL_03a6:  stloc.s 17
+	  IL_03a8:  nop 
+	  IL_03a9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_03ae:  ldstr "NA1125"
+	  IL_03b3:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_03b8:  ldarg.0 
+	  IL_03b9:  call instance string class NAnt.Core.Tasks.GetTask::get_Source()
+	  IL_03be:  ldarg.0 
+	  IL_03bf:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.GetTask::get_DestinationFile()
+	  IL_03c4:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_03c9:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_03ce:  ldarg.0 
+	  IL_03cf:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_03d4:  ldloc.s 17
+	  IL_03d6:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_03db:  throw 
+	} // end handler 3
+	IL_03dc:  ret 
+    } // end of method GetTask::ExecuteTask
 
-	IL_012f:  ldloc.s 5
-	IL_0131:  brfalse IL_0146
+    // method line 1286
+    .method family hidebysig 
+           instance default void TouchFile (class [mscorlib]System.IO.FileInfo file, valuetype [mscorlib]System.DateTime touchDateTime)  cil managed 
+    {
+        // Method begins at RVA 0x17ad4
+	// Code size 126 (0x7e)
+	.maxstack 8
+	.locals init (
+		class [mscorlib]System.Exception	V_0)
+	IL_0000:  nop 
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_0008:  brfalse IL_0049
 
-	IL_0136:  nop 
-	IL_0137:  ldarg.1 
-	IL_0138:  ldc.i4.0 
-	IL_0139:  stind.i1 
-	IL_013a:  ldarg.2 
-	IL_013b:  ldc.i4.0 
-	IL_013c:  stind.i1 
-	IL_013d:  ldloc.s 5
-	IL_013f:  stloc.s 4
-	IL_0141:  br IL_017e
+	  IL_000d:  nop 
+	  IL_000e:  ldarg.0 
+	  IL_000f:  ldc.i4 2000
+	  IL_0014:  ldstr "Touching file {0} with {1}."
+	  IL_0019:  ldc.i4.2 
+	  IL_001a:  newarr [mscorlib]System.Object
+	  IL_001f:  dup 
+	  IL_0020:  ldc.i4.0 
+	  IL_0021:  ldarg.1 
+	  IL_0022:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0027:  stelem.ref 
+	  IL_0028:  dup 
+	  IL_0029:  ldc.i4.1 
+	  IL_002a:  ldarga.s 2
+	  IL_002c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0031:  call instance string valuetype [mscorlib]System.DateTime::ToString(class [mscorlib]System.IFormatProvider)
+	  IL_0036:  stelem.ref 
+	  IL_0037:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_003c:  ldarg.1 
+	  IL_003d:  ldarg.2 
+	  IL_003e:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::set_LastWriteTime(valuetype [mscorlib]System.DateTime)
+	  IL_0043:  nop 
+	  IL_0044:  br IL_0050
 
-	IL_0146:  nop 
-	IL_0147:  ldarg.1 
-	IL_0148:  ldc.i4.1 
-	IL_0149:  stind.i1 
-	IL_014a:  ldarg.2 
-	IL_014b:  ldc.i4.1 
-	IL_014c:  stind.i1 
-	IL_014d:  ldarg.0 
-	IL_014e:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
-	IL_0153:  ldloc.1 
-	IL_0154:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_0159:  callvirt instance string object::ToString()
-	IL_015e:  stloc.s 4
-	IL_0160:  br IL_017e
+	  IL_0049:  nop 
+	  IL_004a:  newobj instance void class [mscorlib]System.IO.FileNotFoundException::'.ctor'()
+	  IL_004f:  throw 
+	  IL_0050:  nop 
+	  IL_0051:  leave IL_007d
 
-	IL_0165:  nop 
-	IL_0166:  ldarg.1 
-	IL_0167:  ldc.i4.1 
-	IL_0168:  stind.i1 
-	IL_0169:  ldarg.2 
-	IL_016a:  ldc.i4.0 
-	IL_016b:  stind.i1 
-	IL_016c:  ldarg.0 
-	IL_016d:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.Filters.ReplaceTokens::_tokenString
-	IL_0172:  callvirt instance string object::ToString()
-	IL_0177:  stloc.s 4
-	IL_0179:  br IL_017e
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0056:  stloc.0 
+	  IL_0057:  nop 
+	  IL_0058:  ldarg.0 
+	  IL_0059:  ldc.i4 2000
+	  IL_005e:  ldstr "Error: {0}."
+	  IL_0063:  ldc.i4.1 
+	  IL_0064:  newarr [mscorlib]System.Object
+	  IL_0069:  dup 
+	  IL_006a:  ldc.i4.0 
+	  IL_006b:  ldloc.0 
+	  IL_006c:  callvirt instance string object::ToString()
+	  IL_0071:  stelem.ref 
+	  IL_0072:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0077:  nop 
+	  IL_0078:  leave IL_007d
 
-	IL_017e:  ldloc.s 4
-	IL_0180:  ret 
-    } // end of method ReplaceTokens::FindTokenContents
+	} // end handler 0
+	IL_007d:  ret 
+    } // end of method GetTask::TouchFile
 
-    // method line 1464
+    // method line 1287
     .method private hidebysig 
-           instance default int32 GetNextCharacter (class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate AcquireChar)  cil managed 
+           instance default class [System]System.Net.WebRequest GetWebRequest (string url, valuetype [mscorlib]System.DateTime fileLastModified)  cil managed 
     {
-        // Method begins at RVA 0x19560
-	// Code size 386 (0x182)
-	.maxstack 5
+        // Method begins at RVA 0x17b70
+	// Code size 364 (0x16c)
+	.maxstack 2
 	.locals init (
-		int32	V_0,
-		int32	V_1,
-		int32	V_2)
+		class [System]System.Net.WebRequest	V_0,
+		class [System]System.Uri	V_1,
+		class [System]System.Net.HttpWebRequest	V_2,
+		valuetype [mscorlib]System.DateTime	V_3,
+		valuetype [mscorlib]System.DateTime	V_4,
+		valuetype [mscorlib]System.DateTime	V_5,
+		string	V_6,
+		class [System]System.Collections.Specialized.StringEnumerator	V_7,
+		class [mscorlib]System.IDisposable	V_8,
+		class [System]System.Net.WebRequest	V_9)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
-	IL_0007:  brtrue IL_001a
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance int32 class NAnt.Core.Filters.ChainableReader::Read()
-	IL_0013:  stloc.0 
-	IL_0014:  nop 
-	IL_0015:  br IL_00ee
-
-	IL_001a:  nop 
-	IL_001b:  ldarg.0 
-	IL_001c:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
-	IL_0021:  ldarg.0 
-	IL_0022:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
-	IL_0027:  callvirt instance int32 string::get_Length()
-	IL_002c:  bge IL_00b7
-
-	IL_0031:  nop 
-	IL_0032:  ldarg.0 
-	IL_0033:  ldfld bool NAnt.Core.Filters.ReplaceTokens::_tokenNotFound
-	IL_0038:  brfalse IL_008e
-
-	IL_003d:  ldarg.0 
-	IL_003e:  ldfld bool NAnt.Core.Filters.ReplaceTokens::_unknownToken
-	IL_0043:  brfalse IL_008e
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	IL_0009:  stloc.1 
+	IL_000a:  ldloc.1 
+	IL_000b:  callvirt instance string class [System]System.Uri::get_Scheme()
+	IL_0010:  ldsfld string [System]System.Uri::UriSchemeHttp
+	IL_0015:  call bool string::op_Equality(string, string)
+	IL_001a:  brtrue IL_0034
 
-	IL_0048:  ldarg.0 
-	IL_0049:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
-	IL_004e:  ldarg.0 
-	IL_004f:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
-	IL_0054:  callvirt instance int32 string::get_Length()
-	IL_0059:  ldc.i4.1 
-	IL_005a:  sub 
-	IL_005b:  bne.un IL_008e
+	IL_001f:  ldloc.1 
+	IL_0020:  callvirt instance string class [System]System.Uri::get_Scheme()
+	IL_0025:  ldsfld string [System]System.Uri::UriSchemeHttps
+	IL_002a:  call bool string::op_Equality(string, string)
+	IL_002f:  brfalse IL_00ed
 
-	IL_0060:  nop 
-	IL_0061:  ldarg.0 
-	IL_0062:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
-	IL_0067:  ldarg.0 
-	IL_0068:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
-	IL_006d:  callvirt instance int32 string::get_Length()
-	IL_0072:  ldc.i4.1 
-	IL_0073:  sub 
-	IL_0074:  callvirt instance char string::get_Chars(int32)
-	IL_0079:  stloc.0 
-	IL_007a:  ldarg.0 
-	IL_007b:  dup 
-	IL_007c:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
-	IL_0081:  ldc.i4.1 
-	IL_0082:  add 
-	IL_0083:  stfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
-	IL_0088:  nop 
-	IL_0089:  br IL_00b1
+	IL_0034:  nop 
+	IL_0035:  ldloc.1 
+	IL_0036:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(class [System]System.Uri)
+	IL_003b:  castclass [System]System.Net.HttpWebRequest
+	IL_0040:  stloc.2 
+	IL_0041:  ldarga.s 2
+	IL_0043:  ldloca.s 3
+	IL_0045:  initobj [mscorlib]System.DateTime
+	IL_004b:  ldloc.3 
+	IL_004c:  call instance bool valuetype [mscorlib]System.DateTime::Equals(valuetype [mscorlib]System.DateTime)
+	IL_0051:  brtrue IL_007b
 
-	IL_008e:  nop 
-	IL_008f:  ldarg.0 
-	IL_0090:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
-	IL_0095:  ldarg.0 
-	IL_0096:  dup 
-	IL_0097:  ldfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
-	IL_009c:  dup 
-	IL_009d:  stloc.1 
-	IL_009e:  ldc.i4.1 
-	IL_009f:  add 
-	IL_00a0:  stfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
-	IL_00a5:  ldloc.1 
-	IL_00a6:  callvirt instance char string::get_Chars(int32)
-	IL_00ab:  stloc.2 
-	IL_00ac:  br IL_0180
+	IL_0056:  nop 
+	IL_0057:  ldarga.s 2
+	IL_0059:  call instance valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::ToUniversalTime()
+	IL_005e:  stloc.s 5
+	IL_0060:  ldloca.s 5
+	IL_0062:  ldc.r8 1.
+	IL_006b:  call instance valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::AddSeconds(float64)
+	IL_0070:  stloc.s 4
+	IL_0072:  ldloc.2 
+	IL_0073:  ldloc.s 4
+	IL_0075:  callvirt instance void class [System]System.Net.HttpWebRequest::set_IfModifiedSince(valuetype [mscorlib]System.DateTime)
+	IL_007a:  nop 
+	IL_007b:  nop 
+	IL_007c:  ldarg.0 
+	IL_007d:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.GetTask::get_Certificates()
+	IL_0082:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0087:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_008c:  stloc.s 7
+	.try { // 0
+	  IL_008e:  br IL_00b1
 
-	IL_00b1:  nop 
-	IL_00b2:  br IL_00ed
+	  IL_0093:  ldloc.s 7
+	  IL_0095:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_009a:  stloc.s 6
+	  IL_009c:  nop 
+	  IL_009d:  ldloc.2 
+	  IL_009e:  callvirt instance class [System]System.Security.Cryptography.X509Certificates.X509CertificateCollection class [System]System.Net.HttpWebRequest::get_ClientCertificates()
+	  IL_00a3:  ldloc.s 6
+	  IL_00a5:  call class [mscorlib]System.Security.Cryptography.X509Certificates.X509Certificate class [mscorlib]System.Security.Cryptography.X509Certificates.X509Certificate::CreateFromCertFile(string)
+	  IL_00aa:  callvirt instance int32 class [System]System.Security.Cryptography.X509Certificates.X509CertificateCollection::Add(class [mscorlib]System.Security.Cryptography.X509Certificates.X509Certificate)
+	  IL_00af:  pop 
+	  IL_00b0:  nop 
+	  IL_00b1:  ldloc.s 7
+	  IL_00b3:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_00b8:  brtrue IL_0093
 
-	IL_00b7:  nop 
-	IL_00b8:  ldarg.0 
-	IL_00b9:  ldnull 
-	IL_00ba:  stfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
-	IL_00bf:  ldarg.0 
-	IL_00c0:  ldc.i4.0 
-	IL_00c1:  stfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
-	IL_00c6:  ldarg.0 
-	IL_00c7:  ldfld bool NAnt.Core.Filters.ReplaceTokens::_endStreamAfterBuffer
-	IL_00cc:  brtrue IL_00e4
+	  IL_00bd:  leave IL_00d9
 
-	IL_00d1:  nop 
-	IL_00d2:  ldarg.0 
-	IL_00d3:  ldfld class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate NAnt.Core.Filters.ReplaceTokens::ReadChar
-	IL_00d8:  callvirt instance int32 class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate::Invoke()
-	IL_00dd:  stloc.0 
-	IL_00de:  nop 
-	IL_00df:  br IL_00ec
+	} // end .try 0
+	finally  { // 0
+	  IL_00c2:  ldloc.s 7
+	  IL_00c4:  isinst [mscorlib]System.IDisposable
+	  IL_00c9:  dup 
+	  IL_00ca:  stloc.s 8
+	  IL_00cc:  brfalse IL_00d8
 
-	IL_00e4:  nop 
-	IL_00e5:  ldc.i4.m1 
-	IL_00e6:  stloc.2 
-	IL_00e7:  br IL_0180
+	  IL_00d1:  ldloc.s 8
+	  IL_00d3:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00d8:  endfinally 
+	} // end handler 0
+	IL_00d9:  ldloc.2 
+	IL_00da:  ldarg.0 
+	IL_00db:  call instance int32 class NAnt.Core.Tasks.GetTask::get_Timeout()
+	IL_00e0:  callvirt instance void class [System]System.Net.HttpWebRequest::set_ReadWriteTimeout(int32)
+	IL_00e5:  ldloc.2 
+	IL_00e6:  stloc.0 
+	IL_00e7:  nop 
+	IL_00e8:  br IL_00f6
 
-	IL_00ec:  nop 
 	IL_00ed:  nop 
-	IL_00ee:  ldarg.0 
-	IL_00ef:  ldloc.0 
-	IL_00f0:  ldarg.0 
-	IL_00f1:  call instance char class NAnt.Core.Filters.ReplaceTokens::get_BeginToken()
-	IL_00f6:  call instance bool class NAnt.Core.Filters.ReplaceTokens::CompareCharacters(int32, int32)
-	IL_00fb:  brfalse IL_0178
-
-	IL_0100:  nop 
-	IL_0101:  ldarg.0 
+	IL_00ee:  ldloc.1 
+	IL_00ef:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(class [System]System.Uri)
+	IL_00f4:  stloc.0 
+	IL_00f5:  nop 
+	IL_00f6:  ldloc.0 
+	IL_00f7:  ldarg.0 
+	IL_00f8:  call instance int32 class NAnt.Core.Tasks.GetTask::get_Timeout()
+	IL_00fd:  callvirt instance void class [System]System.Net.WebRequest::set_Timeout(int32)
 	IL_0102:  ldarg.0 
-	IL_0103:  ldarg.0 
-	IL_0104:  ldflda bool NAnt.Core.Filters.ReplaceTokens::_tokenNotFound
-	IL_0109:  ldarg.0 
-	IL_010a:  ldflda bool NAnt.Core.Filters.ReplaceTokens::_unknownToken
-	IL_010f:  ldarg.0 
-	IL_0110:  ldflda bool NAnt.Core.Filters.ReplaceTokens::_endStreamAfterBuffer
-	IL_0115:  call instance string class NAnt.Core.Filters.ReplaceTokens::FindTokenContents([out] bool&, [out] bool&, [out] bool&)
-	IL_011a:  stfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
-	IL_011f:  ldarg.0 
-	IL_0120:  ldfld bool NAnt.Core.Filters.ReplaceTokens::_tokenNotFound
-	IL_0125:  brfalse IL_013e
-
-	IL_012a:  nop 
-	IL_012b:  ldarg.0 
-	IL_012c:  ldc.i4.0 
-	IL_012d:  stfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
-	IL_0132:  ldarg.0 
-	IL_0133:  call instance char class NAnt.Core.Filters.ReplaceTokens::get_BeginToken()
-	IL_0138:  stloc.2 
-	IL_0139:  br IL_0180
-
-	IL_013e:  nop 
-	IL_013f:  ldarg.0 
-	IL_0140:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
-	IL_0145:  callvirt instance int32 string::get_Length()
-	IL_014a:  ldc.i4.0 
-	IL_014b:  ble IL_016a
-
-	IL_0150:  nop 
-	IL_0151:  ldarg.0 
-	IL_0152:  ldc.i4.1 
-	IL_0153:  stfld int32 NAnt.Core.Filters.ReplaceTokens::_bufferPosition
-	IL_0158:  ldarg.0 
-	IL_0159:  ldfld string NAnt.Core.Filters.ReplaceTokens::_outputBuffer
-	IL_015e:  ldc.i4.0 
-	IL_015f:  callvirt instance char string::get_Chars(int32)
-	IL_0164:  stloc.2 
-	IL_0165:  br IL_0180
-
-	IL_016a:  nop 
-	IL_016b:  ldarg.0 
-	IL_016c:  ldarg.1 
-	IL_016d:  call instance int32 class NAnt.Core.Filters.ReplaceTokens::GetNextCharacter(class NAnt.Core.Filters.ReplaceTokens/AcquireCharDelegate)
-	IL_0172:  stloc.2 
-	IL_0173:  br IL_0180
-
-	IL_0178:  nop 
-	IL_0179:  ldloc.0 
-	IL_017a:  stloc.2 
-	IL_017b:  br IL_0180
+	IL_0103:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.GetTask::get_Proxy()
+	IL_0108:  brfalse IL_0125
 
-	IL_0180:  ldloc.2 
-	IL_0181:  ret 
-    } // end of method ReplaceTokens::GetNextCharacter
+	IL_010d:  nop 
+	IL_010e:  ldloc.0 
+	IL_010f:  ldarg.0 
+	IL_0110:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.GetTask::get_Proxy()
+	IL_0115:  callvirt instance class [System]System.Net.IWebProxy class NAnt.Core.Types.Proxy::GetWebProxy()
+	IL_011a:  callvirt instance void class [System]System.Net.WebRequest::set_Proxy(class [System]System.Net.IWebProxy)
+	IL_011f:  nop 
+	IL_0120:  br IL_0143
 
-    // method line 1465
-    .method private hidebysig 
-           instance default bool CompareCharacters (int32 char1, int32 char2)  cil managed 
-    {
-        // Method begins at RVA 0x196f0
-	// Code size 48 (0x30)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Filters.ReplaceTokens::get_IgnoreCase()
-	IL_0007:  brfalse IL_0023
+	IL_0125:  ldarg.0 
+	IL_0126:  call instance string class NAnt.Core.Tasks.GetTask::get_HttpProxy()
+	IL_012b:  brfalse IL_0143
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.1 
-	IL_000e:  conv.u2 
-	IL_000f:  call char char::ToUpper(char)
-	IL_0014:  ldarg.2 
-	IL_0015:  conv.u2 
-	IL_0016:  call char char::ToUpper(char)
-	IL_001b:  ceq 
-	IL_001d:  stloc.0 
-	IL_001e:  br IL_002e
+	IL_0130:  nop 
+	IL_0131:  ldloc.0 
+	IL_0132:  ldarg.0 
+	IL_0133:  call instance string class NAnt.Core.Tasks.GetTask::get_HttpProxy()
+	IL_0138:  newobj instance void class [System]System.Net.WebProxy::'.ctor'(string)
+	IL_013d:  callvirt instance void class [System]System.Net.WebRequest::set_Proxy(class [System]System.Net.IWebProxy)
+	IL_0142:  nop 
+	IL_0143:  ldarg.0 
+	IL_0144:  call instance class NAnt.Core.Types.Credential class NAnt.Core.Tasks.GetTask::get_Credentials()
+	IL_0149:  brfalse IL_0161
 
-	IL_0023:  nop 
-	IL_0024:  ldarg.1 
-	IL_0025:  ldarg.2 
-	IL_0026:  ceq 
-	IL_0028:  stloc.0 
-	IL_0029:  br IL_002e
+	IL_014e:  nop 
+	IL_014f:  ldloc.0 
+	IL_0150:  ldarg.0 
+	IL_0151:  call instance class NAnt.Core.Types.Credential class NAnt.Core.Tasks.GetTask::get_Credentials()
+	IL_0156:  callvirt instance class [System]System.Net.ICredentials class NAnt.Core.Types.Credential::GetCredential()
+	IL_015b:  callvirt instance void class [System]System.Net.WebRequest::set_Credentials(class [System]System.Net.ICredentials)
+	IL_0160:  nop 
+	IL_0161:  ldloc.0 
+	IL_0162:  stloc.s 9
+	IL_0164:  br IL_0169
 
-	IL_002e:  ldloc.0 
-	IL_002f:  ret 
-    } // end of method ReplaceTokens::CompareCharacters
+	IL_0169:  ldloc.s 9
+	IL_016b:  ret 
+    } // end of method GetTask::GetWebRequest
 
-	.property instance char BeginToken ()
+	.property instance string Source ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 62 65 67 69 6E 74 6F 6B 65 6E 00 00 ) // ...begintoken..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 03 73 72 63 01 00 54 02 08 52 65 71 75 69   // ...src..T..Requi
+		72 65 64 01                                     ) // red.
 
 		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
 		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
 		79 00                                           ) // y.
 
-		.get instance default char NAnt.Core.Filters.ReplaceTokens::get_BeginToken () 
-		.set instance default void NAnt.Core.Filters.ReplaceTokens::set_BeginToken (char 'value') 
+		.get instance default string NAnt.Core.Tasks.GetTask::get_Source () 
+		.set instance default void NAnt.Core.Tasks.GetTask::set_Source (string 'value') 
 	}
-	.property instance char EndToken ()
+	.property instance class [mscorlib]System.IO.FileInfo DestinationFile ()
 	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 65 6E 64 74 6F 6B 65 6E 00 00 ) // ...endtoken..
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 64 65 73 74 01 00 54 02 08 52 65 71 75   // ...dest..T..Requ
+		69 72 65 64 01                                  ) // ired.
 
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.GetTask::get_DestinationFile () 
+		.set instance default void NAnt.Core.Tasks.GetTask::set_DestinationFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string HttpProxy ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 68 74 74 70 70 72 6F 78 79 00 00 ) // ...httpproxy..
 
-		.get instance default char NAnt.Core.Filters.ReplaceTokens::get_EndToken () 
-		.set instance default void NAnt.Core.Filters.ReplaceTokens::set_EndToken (char 'value') 
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 26 55 73 65 20 74 68 65 20 3C 70 72 6F 78   // ..&Use the <prox
+		79 3E 20 63 68 69 6C 64 20 65 6C 65 6D 65 6E 74   // y> child element
+		20 69 6E 73 74 65 61 64 2E 00 00 00             ) //  instead....
+
+		.get instance default string NAnt.Core.Tasks.GetTask::get_HttpProxy () 
+		.set instance default void NAnt.Core.Tasks.GetTask::set_HttpProxy (string 'value') 
 	}
-	.property instance class NAnt.Core.Types.Token[] Tokens ()
+	.property instance class NAnt.Core.Types.Proxy Proxy ()
 	{
-		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 05 74 6F 6B 65 6E 00 00 ) // ...token..
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 05 70 72 6F 78 79 00 00 ) // ...proxy..
 
-		.get instance default class NAnt.Core.Types.Token[] NAnt.Core.Filters.ReplaceTokens::get_Tokens () 
-		.set instance default void NAnt.Core.Filters.ReplaceTokens::set_Tokens (class NAnt.Core.Types.Token[] 'value') 
+		.get instance default class NAnt.Core.Types.Proxy NAnt.Core.Tasks.GetTask::get_Proxy () 
+		.set instance default void NAnt.Core.Tasks.GetTask::set_Proxy (class NAnt.Core.Types.Proxy 'value') 
 	}
-	.property instance bool IgnoreCase ()
+	.property instance class NAnt.Core.Types.Credential Credentials ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0B 63 72 65 64 65 6E 74 69 61 6C 73 00 00 ) // ...credentials..
+
+		.get instance default class NAnt.Core.Types.Credential NAnt.Core.Tasks.GetTask::get_Credentials () 
+		.set instance default void NAnt.Core.Tasks.GetTask::set_Credentials (class NAnt.Core.Types.Credential 'value') 
+	}
+	.property instance bool IgnoreErrors ()
 	{
 		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0A 69 67 6E 6F 72 65 63 61 73 65 01 00 54   // ...ignorecase..T
-		02 08 52 65 71 75 69 72 65 64 00                ) // ..Required.
+		01 00 0C 69 67 6E 6F 72 65 65 72 72 6F 72 73 00   // ...ignoreerrors.
+		00                                              ) // .
+
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
+		01 00 28 55 73 65 20 74 68 65 20 27 66 61 69 6C   // ..(Use the 'fail
+		6F 6E 65 72 72 6F 72 27 20 61 74 74 72 69 62 75   // onerror' attribu
+		74 65 20 69 6E 73 74 65 61 64 2E 00 00          ) // te instead...
 
 		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Core.Filters.ReplaceTokens::get_IgnoreCase () 
-		.set instance default void NAnt.Core.Filters.ReplaceTokens::set_IgnoreCase (bool 'value') 
+		.get instance default bool NAnt.Core.Tasks.GetTask::get_IgnoreErrors () 
+		.set instance default void NAnt.Core.Tasks.GetTask::set_IgnoreErrors (bool 'value') 
 	}
-  .class nested private auto ansi sealed AcquireCharDelegate
-  	extends [mscorlib]System.MulticastDelegate
-  {
-
-    // method line 1466
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::.ctor
+	.property instance bool UseTimeStamp ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0C 75 73 65 74 69 6D 65 73 74 61 6D 70 00   // ...usetimestamp.
+		00                                              ) // .
 
-    // method line 1467
-    .method public virtual hidebysig newslot 
-           instance default int32 Invoke ()  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::Invoke
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-    // method line 1468
-    .method public virtual hidebysig newslot 
-           instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::BeginInvoke
+		.get instance default bool NAnt.Core.Tasks.GetTask::get_UseTimeStamp () 
+		.set instance default void NAnt.Core.Tasks.GetTask::set_UseTimeStamp (bool 'value') 
+	}
+	.property instance int32 Timeout ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 74 69 6D 65 6F 75 74 00 00 ) // ...timeout..
 
-    // method line 1469
-    .method public virtual hidebysig newslot 
-           instance default int32 EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method AcquireCharDelegate::EndInvoke
+		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-  } // end of class AcquireCharDelegate
+		.get instance default int32 NAnt.Core.Tasks.GetTask::get_Timeout () 
+		.set instance default void NAnt.Core.Tasks.GetTask::set_Timeout (int32 'value') 
+	}
+	.property instance class NAnt.Core.Types.FileSet Certificates ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0C 63 65 72 74 69 66 69 63 61 74 65 73 00   // ...certificates.
+		00                                              ) // .
 
-  } // end of class NAnt.Core.Filters.ReplaceTokens
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.GetTask::get_Certificates () 
+		.set instance default void NAnt.Core.Tasks.GetTask::set_Certificates (class NAnt.Core.Types.FileSet 'value') 
+	}
+  } // end of class NAnt.Core.Tasks.GetTask
 }
 
-.namespace NAnt.Core.Util
+.namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit CommandLineParser
-  	extends [mscorlib]System.Object
+  .class public auto ansi beforefieldinit DescriptionTask
+  	extends NAnt.Core.Task
   {
-    .field  private  class NAnt.Core.Util.CommandLineArgumentCollection _argumentCollection
-    .field  private  class NAnt.Core.Util.CommandLineArgument _defaultArgument
-    .field  private  class [mscorlib]System.Type _argumentSpecification
-    .field  private  bool _supportsResponseFile
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (
+		01 00 0B 64 65 73 63 72 69 70 74 69 6F 6E 00 00 ) // ...description..
 
-    // method line 1470
+
+    // method line 1288
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Type argumentSpecification, bool supportsResponseFile)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1972c
-	// Code size 211 (0xd3)
-	.maxstack 3
-	.locals init (
-		class [mscorlib]System.Reflection.PropertyInfo	V_0,
-		class [mscorlib]System.Reflection.PropertyInfo[]	V_1,
-		int32	V_2,
-		class NAnt.Core.Util.CommandLineArgumentAttribute	V_3)
+        // Method begins at RVA 0x17cf8
+	// Code size 7 (0x7)
+	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  ldnull 
-	IL_0009:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_000e:  brfalse IL_001f
-
-	IL_0013:  nop 
-	IL_0014:  ldstr "argumentSpecification"
-	IL_0019:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_001e:  throw 
-	IL_001f:  ldarg.0 
-	IL_0020:  newobj instance void class NAnt.Core.Util.CommandLineArgumentCollection::'.ctor'()
-	IL_0025:  stfld class NAnt.Core.Util.CommandLineArgumentCollection NAnt.Core.Util.CommandLineParser::_argumentCollection
-	IL_002a:  nop 
-	IL_002b:  ldarg.1 
-	IL_002c:  ldc.i4.s 0x14
-	IL_002e:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo[] class [mscorlib]System.Type::GetProperties(valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_0033:  stloc.1 
-	IL_0034:  ldc.i4.0 
-	IL_0035:  stloc.2 
-	IL_0036:  br IL_00bb
-
-	IL_003b:  ldloc.1 
-	IL_003c:  ldloc.2 
-	IL_003d:  ldelem.ref 
-	IL_003e:  stloc.0 
-	IL_003f:  nop 
-	IL_0040:  ldloc.0 
-	IL_0041:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
-	IL_0046:  brtrue IL_0065
-
-	IL_004b:  ldtoken [mscorlib]System.Collections.ICollection
-	IL_0050:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0055:  ldloc.0 
-	IL_0056:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_005b:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_0060:  brfalse IL_00b6
-
-	IL_0065:  nop 
-	IL_0066:  ldloc.0 
-	IL_0067:  call class NAnt.Core.Util.CommandLineArgumentAttribute class NAnt.Core.Util.CommandLineParser::GetCommandLineAttribute(class [mscorlib]System.Reflection.PropertyInfo)
-	IL_006c:  stloc.3 
-	IL_006d:  ldloc.3 
-	IL_006e:  isinst NAnt.Core.Util.DefaultCommandLineArgumentAttribute
-	IL_0073:  brfalse IL_009a
-
-	IL_0078:  nop 
-	IL_0079:  ldarg.0 
-	IL_007a:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
-	IL_007f:  ldnull 
-	IL_0080:  ceq 
-	IL_0082:  call void class [System]System.Diagnostics.Debug::Assert(bool)
-	IL_0087:  ldarg.0 
-	IL_0088:  ldloc.3 
-	IL_0089:  ldloc.0 
-	IL_008a:  newobj instance void class NAnt.Core.Util.CommandLineArgument::'.ctor'(class NAnt.Core.Util.CommandLineArgumentAttribute, class [mscorlib]System.Reflection.PropertyInfo)
-	IL_008f:  stfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
-	IL_0094:  nop 
-	IL_0095:  br IL_00b5
-
-	IL_009a:  ldloc.3 
-	IL_009b:  brfalse IL_00b5
-
-	IL_00a0:  nop 
-	IL_00a1:  ldarg.0 
-	IL_00a2:  ldfld class NAnt.Core.Util.CommandLineArgumentCollection NAnt.Core.Util.CommandLineParser::_argumentCollection
-	IL_00a7:  ldloc.3 
-	IL_00a8:  ldloc.0 
-	IL_00a9:  newobj instance void class NAnt.Core.Util.CommandLineArgument::'.ctor'(class NAnt.Core.Util.CommandLineArgumentAttribute, class [mscorlib]System.Reflection.PropertyInfo)
-	IL_00ae:  callvirt instance int32 class NAnt.Core.Util.CommandLineArgumentCollection::Add(class NAnt.Core.Util.CommandLineArgument)
-	IL_00b3:  pop 
-	IL_00b4:  nop 
-	IL_00b5:  nop 
-	IL_00b6:  nop 
-	IL_00b7:  ldloc.2 
-	IL_00b8:  ldc.i4.1 
-	IL_00b9:  add 
-	IL_00ba:  stloc.2 
-	IL_00bb:  ldloc.2 
-	IL_00bc:  ldloc.1 
-	IL_00bd:  ldlen 
-	IL_00be:  conv.i4 
-	IL_00bf:  blt IL_003b
-
-	IL_00c4:  ldarg.0 
-	IL_00c5:  ldarg.1 
-	IL_00c6:  stfld class [mscorlib]System.Type NAnt.Core.Util.CommandLineParser::_argumentSpecification
-	IL_00cb:  ldarg.0 
-	IL_00cc:  ldarg.2 
-	IL_00cd:  stfld bool NAnt.Core.Util.CommandLineParser::_supportsResponseFile
-	IL_00d2:  ret 
-    } // end of method CommandLineParser::.ctor
+	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0006:  ret 
+    } // end of method DescriptionTask::.ctor
 
-    // method line 1471
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_LogoBanner ()  cil managed 
+    // method line 1289
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x1980c
-	// Code size 634 (0x27a)
+        // Method begins at RVA 0x17d00
+	// Code size 2 (0x2)
 	.maxstack 8
-	.locals init (
-		string	V_0,
-		string	V_1,
-		class [mscorlib]System.Version	V_2,
-		string	V_3,
-		string	V_4,
-		string	V_5,
-		valuetype [mscorlib]System.DateTime	V_6,
-		class [mscorlib]System.Reflection.Assembly	V_7,
-		object[]	V_8,
-		class [mscorlib]System.Reflection.AssemblyProductAttribute	V_9,
-		object[]	V_10,
-		class [mscorlib]System.Reflection.AssemblyInformationalVersionAttribute	V_11,
-		class [System]System.Diagnostics.FileVersionInfo	V_12,
-		valuetype [mscorlib]System.DateTime	V_13,
-		object[]	V_14,
-		class [mscorlib]System.Reflection.AssemblyConfigurationAttribute	V_15,
-		object[]	V_16,
-		class [mscorlib]System.Reflection.AssemblyCopyrightAttribute	V_17,
-		object[]	V_18,
-		class [mscorlib]System.Reflection.AssemblyCompanyAttribute	V_19,
-		class [mscorlib]System.Text.StringBuilder	V_20,
-		string	V_21)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.3 
-	IL_0003:  ldnull 
-	IL_0004:  stloc.s 4
-	IL_0006:  ldnull 
-	IL_0007:  stloc.s 5
-	IL_0009:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetEntryAssembly()
-	IL_000e:  stloc.s 7
-	IL_0010:  ldloc.s 7
-	IL_0012:  ldnull 
-	IL_0013:  call bool class [mscorlib]System.Reflection.Assembly::op_Equality(class [mscorlib]System.Reflection.Assembly, class [mscorlib]System.Reflection.Assembly)
-	IL_0018:  brfalse IL_0026
-
-	IL_001d:  nop 
-	IL_001e:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetCallingAssembly()
-	IL_0023:  stloc.s 7
-	IL_0025:  nop 
-	IL_0026:  ldloc.s 7
-	IL_0028:  ldtoken [mscorlib]System.Reflection.AssemblyProductAttribute
-	IL_002d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0032:  ldc.i4.0 
-	IL_0033:  callvirt instance object[] class [mscorlib]System.Reflection.Assembly::GetCustomAttributes(class [mscorlib]System.Type, bool)
-	IL_0038:  stloc.s 8
-	IL_003a:  ldloc.s 8
-	IL_003c:  ldlen 
-	IL_003d:  conv.i4 
-	IL_003e:  ldc.i4.0 
-	IL_003f:  ble IL_005e
-
-	IL_0044:  nop 
-	IL_0045:  ldloc.s 8
-	IL_0047:  ldc.i4.0 
-	IL_0048:  ldelem.ref 
-	IL_0049:  castclass [mscorlib]System.Reflection.AssemblyProductAttribute
-	IL_004e:  stloc.s 9
-	IL_0050:  ldloc.s 9
-	IL_0052:  callvirt instance string class [mscorlib]System.Reflection.AssemblyProductAttribute::get_Product()
-	IL_0057:  stloc.0 
-	IL_0058:  nop 
-	IL_0059:  br IL_006d
-
-	IL_005e:  nop 
-	IL_005f:  ldloc.s 7
-	IL_0061:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
-	IL_0066:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	IL_006b:  stloc.0 
-	IL_006c:  nop 
-	IL_006d:  ldloc.s 7
-	IL_006f:  ldtoken [mscorlib]System.Reflection.AssemblyInformationalVersionAttribute
-	IL_0074:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0079:  ldc.i4.0 
-	IL_007a:  callvirt instance object[] class [mscorlib]System.Reflection.Assembly::GetCustomAttributes(class [mscorlib]System.Type, bool)
-	IL_007f:  stloc.s 10
-	IL_0081:  ldloc.s 10
-	IL_0083:  ldlen 
-	IL_0084:  conv.i4 
-	IL_0085:  ldc.i4.0 
-	IL_0086:  ble IL_00a5
-
-	IL_008b:  nop 
-	IL_008c:  ldloc.s 10
-	IL_008e:  ldc.i4.0 
-	IL_008f:  ldelem.ref 
-	IL_0090:  castclass [mscorlib]System.Reflection.AssemblyInformationalVersionAttribute
-	IL_0095:  stloc.s 11
-	IL_0097:  ldloc.s 11
-	IL_0099:  callvirt instance string class [mscorlib]System.Reflection.AssemblyInformationalVersionAttribute::get_InformationalVersion()
-	IL_009e:  stloc.1 
-	IL_009f:  nop 
-	IL_00a0:  br IL_0115
-
-	IL_00a5:  nop 
-	IL_00a6:  ldloc.s 7
-	IL_00a8:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
-	IL_00ad:  call class [System]System.Diagnostics.FileVersionInfo class [System]System.Diagnostics.FileVersionInfo::GetVersionInfo(string)
-	IL_00b2:  stloc.s 12
-	IL_00b4:  ldc.i4.7 
-	IL_00b5:  newarr [mscorlib]System.Object
-	IL_00ba:  dup 
-	IL_00bb:  ldc.i4.0 
-	IL_00bc:  ldloc.s 12
-	IL_00be:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FileMajorPart()
-	IL_00c3:  box [mscorlib]System.Int32
-	IL_00c8:  stelem.ref 
-	IL_00c9:  dup 
-	IL_00ca:  ldc.i4.1 
-	IL_00cb:  ldstr "."
-	IL_00d0:  stelem.ref 
-	IL_00d1:  dup 
-	IL_00d2:  ldc.i4.2 
-	IL_00d3:  ldloc.s 12
-	IL_00d5:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FileMinorPart()
-	IL_00da:  box [mscorlib]System.Int32
-	IL_00df:  stelem.ref 
-	IL_00e0:  dup 
-	IL_00e1:  ldc.i4.3 
-	IL_00e2:  ldstr "."
-	IL_00e7:  stelem.ref 
-	IL_00e8:  dup 
-	IL_00e9:  ldc.i4.4 
-	IL_00ea:  ldloc.s 12
-	IL_00ec:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FileBuildPart()
-	IL_00f1:  box [mscorlib]System.Int32
-	IL_00f6:  stelem.ref 
-	IL_00f7:  dup 
-	IL_00f8:  ldc.i4.5 
-	IL_00f9:  ldstr "."
-	IL_00fe:  stelem.ref 
-	IL_00ff:  dup 
-	IL_0100:  ldc.i4.6 
-	IL_0101:  ldloc.s 12
-	IL_0103:  callvirt instance int32 class [System]System.Diagnostics.FileVersionInfo::get_FilePrivatePart()
-	IL_0108:  box [mscorlib]System.Int32
-	IL_010d:  stelem.ref 
-	IL_010e:  call string string::Concat(object[])
-	IL_0113:  stloc.1 
-	IL_0114:  nop 
-	IL_0115:  ldloc.s 7
-	IL_0117:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
-	IL_011c:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
-	IL_0121:  stloc.2 
-	IL_0122:  ldloca.s 13
-	IL_0124:  ldc.i4 2000
-	IL_0129:  ldc.i4.1 
-	IL_012a:  ldc.i4.1 
-	IL_012b:  call instance void valuetype [mscorlib]System.DateTime::'.ctor'(int32, int32, int32)
-	IL_0130:  ldloca.s 13
-	IL_0132:  ldloc.2 
-	IL_0133:  callvirt instance int32 class [mscorlib]System.Version::get_Build()
-	IL_0138:  conv.r8 
-	IL_0139:  call instance valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::AddDays(float64)
-	IL_013e:  stloc.s 6
-	IL_0140:  ldloc.s 7
-	IL_0142:  ldtoken [mscorlib]System.Reflection.AssemblyConfigurationAttribute
-	IL_0147:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_014c:  ldc.i4.0 
-	IL_014d:  callvirt instance object[] class [mscorlib]System.Reflection.Assembly::GetCustomAttributes(class [mscorlib]System.Type, bool)
-	IL_0152:  stloc.s 14
-	IL_0154:  ldloc.s 14
-	IL_0156:  ldlen 
-	IL_0157:  conv.i4 
-	IL_0158:  ldc.i4.0 
-	IL_0159:  ble IL_0173
-
-	IL_015e:  nop 
-	IL_015f:  ldloc.s 14
-	IL_0161:  ldc.i4.0 
-	IL_0162:  ldelem.ref 
-	IL_0163:  castclass [mscorlib]System.Reflection.AssemblyConfigurationAttribute
-	IL_0168:  stloc.s 15
-	IL_016a:  ldloc.s 15
-	IL_016c:  callvirt instance string class [mscorlib]System.Reflection.AssemblyConfigurationAttribute::get_Configuration()
-	IL_0171:  stloc.3 
-	IL_0172:  nop 
-	IL_0173:  ldloc.s 7
-	IL_0175:  ldtoken [mscorlib]System.Reflection.AssemblyCopyrightAttribute
-	IL_017a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_017f:  ldc.i4.0 
-	IL_0180:  callvirt instance object[] class [mscorlib]System.Reflection.Assembly::GetCustomAttributes(class [mscorlib]System.Type, bool)
-	IL_0185:  stloc.s 16
-	IL_0187:  ldloc.s 16
-	IL_0189:  ldlen 
-	IL_018a:  conv.i4 
-	IL_018b:  ldc.i4.0 
-	IL_018c:  ble IL_01a7
-
-	IL_0191:  nop 
-	IL_0192:  ldloc.s 16
-	IL_0194:  ldc.i4.0 
-	IL_0195:  ldelem.ref 
-	IL_0196:  castclass [mscorlib]System.Reflection.AssemblyCopyrightAttribute
-	IL_019b:  stloc.s 17
-	IL_019d:  ldloc.s 17
-	IL_019f:  callvirt instance string class [mscorlib]System.Reflection.AssemblyCopyrightAttribute::get_Copyright()
-	IL_01a4:  stloc.s 4
-	IL_01a6:  nop 
-	IL_01a7:  ldloc.s 7
-	IL_01a9:  ldtoken [mscorlib]System.Reflection.AssemblyCompanyAttribute
-	IL_01ae:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_01b3:  ldc.i4.0 
-	IL_01b4:  callvirt instance object[] class [mscorlib]System.Reflection.Assembly::GetCustomAttributes(class [mscorlib]System.Type, bool)
-	IL_01b9:  stloc.s 18
-	IL_01bb:  ldloc.s 18
-	IL_01bd:  ldlen 
-	IL_01be:  conv.i4 
-	IL_01bf:  ldc.i4.0 
-	IL_01c0:  ble IL_01db
+	IL_0001:  ret 
+    } // end of method DescriptionTask::ExecuteTask
 
-	IL_01c5:  nop 
-	IL_01c6:  ldloc.s 18
-	IL_01c8:  ldc.i4.0 
-	IL_01c9:  ldelem.ref 
-	IL_01ca:  castclass [mscorlib]System.Reflection.AssemblyCompanyAttribute
-	IL_01cf:  stloc.s 19
-	IL_01d1:  ldloc.s 19
-	IL_01d3:  callvirt instance string class [mscorlib]System.Reflection.AssemblyCompanyAttribute::get_Company()
-	IL_01d8:  stloc.s 5
-	IL_01da:  nop 
-	IL_01db:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_01e0:  stloc.s 20
-	IL_01e2:  ldloc.s 20
-	IL_01e4:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01e9:  ldstr "String_BuildBanner"
-	IL_01ee:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_01f3:  ldc.i4.5 
-	IL_01f4:  newarr [mscorlib]System.Object
-	IL_01f9:  dup 
-	IL_01fa:  ldc.i4.0 
-	IL_01fb:  ldloc.0 
-	IL_01fc:  stelem.ref 
-	IL_01fd:  dup 
-	IL_01fe:  ldc.i4.1 
-	IL_01ff:  ldloc.1 
-	IL_0200:  stelem.ref 
-	IL_0201:  dup 
-	IL_0202:  ldc.i4.2 
-	IL_0203:  ldloc.2 
-	IL_0204:  ldc.i4.4 
-	IL_0205:  callvirt instance string class [mscorlib]System.Version::ToString(int32)
-	IL_020a:  stelem.ref 
-	IL_020b:  dup 
-	IL_020c:  ldc.i4.3 
-	IL_020d:  ldloc.3 
-	IL_020e:  stelem.ref 
-	IL_020f:  dup 
-	IL_0210:  ldc.i4.4 
-	IL_0211:  ldloca.s 6
-	IL_0213:  call instance string valuetype [mscorlib]System.DateTime::ToShortDateString()
-	IL_0218:  stelem.ref 
-	IL_0219:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_021e:  pop 
-	IL_021f:  ldloc.s 4
-	IL_0221:  call bool string::IsNullOrEmpty(string)
-	IL_0226:  brtrue IL_0244
+  } // end of class NAnt.Core.Tasks.DescriptionTask
+}
 
-	IL_022b:  nop 
-	IL_022c:  ldloc.s 20
-	IL_022e:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_0233:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0238:  pop 
-	IL_0239:  ldloc.s 20
-	IL_023b:  ldloc.s 4
-	IL_023d:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0242:  pop 
-	IL_0243:  nop 
-	IL_0244:  ldloc.s 5
-	IL_0246:  call bool string::IsNullOrEmpty(string)
-	IL_024b:  brtrue IL_0269
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit LoadFileTask
+  	extends NAnt.Core.Task
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 08 6C 6F 61 64 66 69 6C 65 00 00 ) // ...loadfile..
 
-	IL_0250:  nop 
-	IL_0251:  ldloc.s 20
-	IL_0253:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_0258:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_025d:  pop 
-	IL_025e:  ldloc.s 20
-	IL_0260:  ldloc.s 5
-	IL_0262:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0267:  pop 
-	IL_0268:  nop 
-	IL_0269:  ldloc.s 20
-	IL_026b:  callvirt instance string object::ToString()
-	IL_0270:  stloc.s 21
-	IL_0272:  br IL_0277
+    .field  private  class [mscorlib]System.IO.FileInfo _file
+    .field  private  class [mscorlib]System.Text.Encoding _encoding
+    .field  private  string _property
+    .field  private  class NAnt.Core.Filters.FilterChain _filterChain
 
-	IL_0277:  ldloc.s 21
-	IL_0279:  ret 
-    } // end of method CommandLineParser::get_LogoBanner
+    // method line 1290
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x17d03
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0006:  ret 
+    } // end of method LoadFileTask::.ctor
 
-    // method line 1472
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_Usage ()  cil managed 
+    // method line 1291
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0x19a94
-	// Code size 805 (0x325)
-	.maxstack 5
+        // Method begins at RVA 0x17d0c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		class [mscorlib]System.Reflection.Assembly	V_1,
-		class NAnt.Core.Util.CommandLineArgument	V_2,
-		class NAnt.Core.Util.CommandLineArgumentEnumerator	V_3,
-		string	V_4,
-		string	V_5,
-		class [mscorlib]System.IDisposable	V_6,
-		string	V_7)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetEntryAssembly()
-	IL_000c:  stloc.1 
-	IL_000d:  ldloc.1 
-	IL_000e:  ldnull 
-	IL_000f:  call bool class [mscorlib]System.Reflection.Assembly::op_Equality(class [mscorlib]System.Reflection.Assembly, class [mscorlib]System.Reflection.Assembly)
-	IL_0014:  brfalse IL_0021
-
-	IL_0019:  nop 
-	IL_001a:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetCallingAssembly()
-	IL_001f:  stloc.1 
-	IL_0020:  nop 
-	IL_0021:  ldloc.0 
-	IL_0022:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_0027:  ldc.i4.0 
-	IL_0028:  ble IL_003b
-
-	IL_002d:  nop 
-	IL_002e:  ldloc.0 
-	IL_002f:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_0034:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0039:  pop 
-	IL_003a:  nop 
-	IL_003b:  ldloc.0 
-	IL_003c:  ldstr "Usage : "
-	IL_0041:  ldloc.1 
-	IL_0042:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
-	IL_0047:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	IL_004c:  ldstr " [options]"
-	IL_0051:  call string string::Concat(string, string, string)
-	IL_0056:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_005b:  pop 
-	IL_005c:  ldarg.0 
-	IL_005d:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
-	IL_0062:  brfalse IL_00c9
-
-	IL_0067:  nop 
-	IL_0068:  ldloc.0 
-	IL_0069:  ldstr " <"
-	IL_006e:  ldarg.0 
-	IL_006f:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
-	IL_0074:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	IL_0079:  ldstr ">"
-	IL_007e:  call string string::Concat(string, string, string)
-	IL_0083:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0088:  pop 
-	IL_0089:  ldarg.0 
-	IL_008a:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
-	IL_008f:  callvirt instance bool class NAnt.Core.Util.CommandLineArgument::get_AllowMultiple()
-	IL_0094:  brfalse IL_00c8
-
-	IL_0099:  nop 
-	IL_009a:  ldloc.0 
-	IL_009b:  ldstr " <"
-	IL_00a0:  ldarg.0 
-	IL_00a1:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
-	IL_00a6:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	IL_00ab:  ldstr ">"
-	IL_00b0:  call string string::Concat(string, string, string)
-	IL_00b5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00ba:  pop 
-	IL_00bb:  ldloc.0 
-	IL_00bc:  ldstr " ..."
-	IL_00c1:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00c6:  pop 
-	IL_00c7:  nop 
-	IL_00c8:  nop 
-	IL_00c9:  ldloc.0 
-	IL_00ca:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_00cf:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00d4:  pop 
-	IL_00d5:  ldloc.0 
-	IL_00d6:  ldstr "Options : "
-	IL_00db:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00e0:  pop 
-	IL_00e1:  ldloc.0 
-	IL_00e2:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_00e7:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00ec:  pop 
-	IL_00ed:  ldloc.0 
-	IL_00ee:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_00f3:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00f8:  pop 
-	IL_00f9:  nop 
-	IL_00fa:  ldarg.0 
-	IL_00fb:  ldfld class NAnt.Core.Util.CommandLineArgumentCollection NAnt.Core.Util.CommandLineParser::_argumentCollection
-	IL_0100:  callvirt instance class NAnt.Core.Util.CommandLineArgumentEnumerator class NAnt.Core.Util.CommandLineArgumentCollection::GetEnumerator()
-	IL_0105:  stloc.3 
-	.try { // 0
-	  IL_0106:  br IL_02bb
-
-	  IL_010b:  ldloc.3 
-	  IL_010c:  callvirt instance class NAnt.Core.Util.CommandLineArgument class NAnt.Core.Util.CommandLineArgumentEnumerator::get_Current()
-	  IL_0111:  stloc.2 
-	  IL_0112:  nop 
-	  IL_0113:  ldstr ""
-	  IL_0118:  stloc.s 4
-	  IL_011a:  ldloc.2 
-	  IL_011b:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_ValueType()
-	  IL_0120:  ldtoken [mscorlib]System.String
-	  IL_0125:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_012a:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_012f:  brfalse IL_0142
-
-	  IL_0134:  nop 
-	  IL_0135:  ldstr ":<text>"
-	  IL_013a:  stloc.s 4
-	  IL_013c:  nop 
-	  IL_013d:  br IL_01ec
-
-	  IL_0142:  ldloc.2 
-	  IL_0143:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_ValueType()
-	  IL_0148:  ldtoken [mscorlib]System.Boolean
-	  IL_014d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0152:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_0157:  brfalse IL_016a
-
-	  IL_015c:  nop 
-	  IL_015d:  ldstr "[+|-]"
-	  IL_0162:  stloc.s 4
-	  IL_0164:  nop 
-	  IL_0165:  br IL_01ec
-
-	  IL_016a:  ldloc.2 
-	  IL_016b:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_ValueType()
-	  IL_0170:  ldtoken [mscorlib]System.IO.FileInfo
-	  IL_0175:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_017a:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_017f:  brfalse IL_0192
-
-	  IL_0184:  nop 
-	  IL_0185:  ldstr ":<filename>"
-	  IL_018a:  stloc.s 4
-	  IL_018c:  nop 
-	  IL_018d:  br IL_01ec
-
-	  IL_0192:  ldloc.2 
-	  IL_0193:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_ValueType()
-	  IL_0198:  ldtoken [mscorlib]System.Int32
-	  IL_019d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_01a2:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_01a7:  brfalse IL_01ba
-
-	  IL_01ac:  nop 
-	  IL_01ad:  ldstr ":<number>"
-	  IL_01b2:  stloc.s 4
-	  IL_01b4:  nop 
-	  IL_01b5:  br IL_01ec
-
-	  IL_01ba:  ldloc.2 
-	  IL_01bb:  callvirt instance bool class NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection()
-	  IL_01c0:  brfalse IL_01d3
-
-	  IL_01c5:  nop 
-	  IL_01c6:  ldstr ":<name>=<value>"
-	  IL_01cb:  stloc.s 4
-	  IL_01cd:  nop 
-	  IL_01ce:  br IL_01ec
-
-	  IL_01d3:  nop 
-	  IL_01d4:  ldstr ":"
-	  IL_01d9:  ldloc.2 
-	  IL_01da:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_ValueType()
-	  IL_01df:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	  IL_01e4:  call string string::Concat(string, string)
-	  IL_01e9:  stloc.s 4
-	  IL_01eb:  nop 
-	  IL_01ec:  ldloc.2 
-	  IL_01ed:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	  IL_01f2:  stloc.s 5
-	  IL_01f4:  ldloc.2 
-	  IL_01f5:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_ShortName()
-	  IL_01fa:  brfalse IL_028c
-
-	  IL_01ff:  nop 
-	  IL_0200:  ldloc.2 
-	  IL_0201:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	  IL_0206:  ldloc.2 
-	  IL_0207:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_ShortName()
-	  IL_020c:  callvirt instance bool string::StartsWith(string)
-	  IL_0211:  brfalse IL_023b
-
-	  IL_0216:  nop 
-	  IL_0217:  ldloc.s 5
-	  IL_0219:  ldloc.2 
-	  IL_021a:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_ShortName()
-	  IL_021f:  callvirt instance int32 string::get_Length()
-	  IL_0224:  ldstr "["
-	  IL_0229:  callvirt instance string string::Insert(int32, string)
-	  IL_022e:  ldstr "]"
-	  IL_0233:  call string string::Concat(string, string)
-	  IL_0238:  stloc.s 5
-	  IL_023a:  nop 
-	  IL_023b:  ldloc.0 
-	  IL_023c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0241:  ldstr "  -{0,-30}{1}"
-	  IL_0246:  ldloc.s 5
-	  IL_0248:  ldloc.s 4
-	  IL_024a:  call string string::Concat(string, string)
-	  IL_024f:  ldloc.2 
-	  IL_0250:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_Description()
-	  IL_0255:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_025a:  pop 
-	  IL_025b:  ldloc.s 5
-	  IL_025d:  ldloc.2 
-	  IL_025e:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_ShortName()
-	  IL_0263:  callvirt instance bool string::StartsWith(string)
-	  IL_0268:  brtrue IL_0286
-
-	  IL_026d:  nop 
-	  IL_026e:  ldloc.0 
-	  IL_026f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0274:  ldstr " (Short format: /{0})"
-	  IL_0279:  ldloc.2 
-	  IL_027a:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_ShortName()
-	  IL_027f:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0284:  pop 
-	  IL_0285:  nop 
-	  IL_0286:  nop 
-	  IL_0287:  br IL_02ae
-
-	  IL_028c:  nop 
-	  IL_028d:  ldloc.0 
-	  IL_028e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0293:  ldstr "  -{0,-30}{1}"
-	  IL_0298:  ldloc.s 5
-	  IL_029a:  ldloc.s 4
-	  IL_029c:  call string string::Concat(string, string)
-	  IL_02a1:  ldloc.2 
-	  IL_02a2:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_Description()
-	  IL_02a7:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_02ac:  pop 
-	  IL_02ad:  nop 
-	  IL_02ae:  ldloc.0 
-	  IL_02af:  call string class [mscorlib]System.Environment::get_NewLine()
-	  IL_02b4:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_02b9:  pop 
-	  IL_02ba:  nop 
-	  IL_02bb:  ldloc.3 
-	  IL_02bc:  callvirt instance bool class NAnt.Core.Util.CommandLineArgumentEnumerator::MoveNext()
-	  IL_02c1:  brtrue IL_010b
-
-	  IL_02c6:  leave IL_02e1
-
-	} // end .try 0
-	finally  { // 0
-	  IL_02cb:  ldloc.3 
-	  IL_02cc:  isinst [mscorlib]System.IDisposable
-	  IL_02d1:  dup 
-	  IL_02d2:  stloc.s 6
-	  IL_02d4:  brfalse IL_02e0
-
-	  IL_02d9:  ldloc.s 6
-	  IL_02db:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_02e0:  endfinally 
-	} // end handler 0
-	IL_02e1:  ldarg.0 
-	IL_02e2:  ldfld bool NAnt.Core.Util.CommandLineParser::_supportsResponseFile
-	IL_02e7:  brfalse IL_0315
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.LoadFileTask::_file
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_02ec:  nop 
-	IL_02ed:  ldloc.0 
-	IL_02ee:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_02f3:  ldstr "  {0,-31}{1}"
-	IL_02f8:  ldstr "@<file>"
-	IL_02fd:  ldstr "Insert command-line settings from a text file."
-	IL_0302:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0307:  pop 
-	IL_0308:  ldloc.0 
-	IL_0309:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_030e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0313:  pop 
-	IL_0314:  nop 
-	IL_0315:  ldloc.0 
-	IL_0316:  callvirt instance string object::ToString()
-	IL_031b:  stloc.s 7
-	IL_031d:  br IL_0322
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method LoadFileTask::get_File
 
-	IL_0322:  ldloc.s 7
-	IL_0324:  ret 
-    } // end of method CommandLineParser::get_Usage
+    // method line 1292
+    .method public hidebysig specialname 
+           instance default void set_File (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x17d27
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.LoadFileTask::_file
+	IL_0008:  ret 
+    } // end of method LoadFileTask::set_File
 
-    // method line 1473
+    // method line 1293
     .method public hidebysig specialname 
-           instance default bool get_NoArgs ()  cil managed 
+           instance default string get_Property ()  cil managed 
     {
-        // Method begins at RVA 0x19de4
-	// Code size 121 (0x79)
-	.maxstack 2
+        // Method begins at RVA 0x17d34
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Util.CommandLineArgument	V_0,
-		class NAnt.Core.Util.CommandLineArgumentEnumerator	V_1,
-		bool	V_2,
-		class [mscorlib]System.IDisposable	V_3)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld class NAnt.Core.Util.CommandLineArgumentCollection NAnt.Core.Util.CommandLineParser::_argumentCollection
-	IL_0008:  callvirt instance class NAnt.Core.Util.CommandLineArgumentEnumerator class NAnt.Core.Util.CommandLineArgumentCollection::GetEnumerator()
-	IL_000d:  stloc.1 
-	.try { // 0
-	  IL_000e:  br IL_002f
-
-	  IL_0013:  ldloc.1 
-	  IL_0014:  callvirt instance class NAnt.Core.Util.CommandLineArgument class NAnt.Core.Util.CommandLineArgumentEnumerator::get_Current()
-	  IL_0019:  stloc.0 
-	  IL_001a:  nop 
-	  IL_001b:  ldloc.0 
-	  IL_001c:  callvirt instance bool class NAnt.Core.Util.CommandLineArgument::get_SeenValue()
-	  IL_0021:  brfalse IL_002e
-
-	  IL_0026:  nop 
-	  IL_0027:  ldc.i4.1 
-	  IL_0028:  stloc.2 
-	  IL_0029:  leave IL_0077
-
-	  IL_002e:  nop 
-	  IL_002f:  ldloc.1 
-	  IL_0030:  callvirt instance bool class NAnt.Core.Util.CommandLineArgumentEnumerator::MoveNext()
-	  IL_0035:  brtrue IL_0013
-
-	  IL_003a:  leave IL_0053
-
-	} // end .try 0
-	finally  { // 0
-	  IL_003f:  ldloc.1 
-	  IL_0040:  isinst [mscorlib]System.IDisposable
-	  IL_0045:  dup 
-	  IL_0046:  stloc.3 
-	  IL_0047:  brfalse IL_0052
-
-	  IL_004c:  ldloc.3 
-	  IL_004d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0052:  endfinally 
-	} // end handler 0
-	IL_0053:  ldarg.0 
-	IL_0054:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
-	IL_0059:  brfalse IL_0070
-
-	IL_005e:  nop 
-	IL_005f:  ldarg.0 
-	IL_0060:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
-	IL_0065:  callvirt instance bool class NAnt.Core.Util.CommandLineArgument::get_SeenValue()
-	IL_006a:  stloc.2 
-	IL_006b:  br IL_0077
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Tasks.LoadFileTask::_property
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0070:  ldc.i4.0 
-	IL_0071:  stloc.2 
-	IL_0072:  br IL_0077
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method LoadFileTask::get_Property
 
-	IL_0077:  ldloc.2 
-	IL_0078:  ret 
-    } // end of method CommandLineParser::get_NoArgs
+    // method line 1294
+    .method public hidebysig specialname 
+           instance default void set_Property (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x17d4f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Tasks.LoadFileTask::_property
+	IL_0008:  ret 
+    } // end of method LoadFileTask::set_Property
 
-    // method line 1474
-    .method public hidebysig 
-           instance default void Parse (string[] args, object destination)  cil managed 
+    // method line 1295
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
     {
-        // Method begins at RVA 0x19e7c
-	// Code size 156 (0x9c)
-	.maxstack 2
+        // Method begins at RVA 0x17d5c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Util.CommandLineArgument	V_0,
-		class NAnt.Core.Util.CommandLineArgumentEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2)
+		class [mscorlib]System.Text.Encoding	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "destination"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldfld class [mscorlib]System.Type NAnt.Core.Util.CommandLineParser::_argumentSpecification
-	IL_0019:  ldarg.2 
-	IL_001a:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_001f:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_0024:  brtrue IL_0035
-
-	IL_0029:  nop 
-	IL_002a:  ldstr "Type of destination does not match type of argument specification."
-	IL_002f:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0034:  throw 
-	IL_0035:  ldarg.0 
-	IL_0036:  ldarg.1 
-	IL_0037:  call instance void class NAnt.Core.Util.CommandLineParser::ParseArgumentList(string[])
-	IL_003c:  nop 
-	IL_003d:  ldarg.0 
-	IL_003e:  ldfld class NAnt.Core.Util.CommandLineArgumentCollection NAnt.Core.Util.CommandLineParser::_argumentCollection
-	IL_0043:  callvirt instance class NAnt.Core.Util.CommandLineArgumentEnumerator class NAnt.Core.Util.CommandLineArgumentCollection::GetEnumerator()
-	IL_0048:  stloc.1 
-	.try { // 0
-	  IL_0049:  br IL_005e
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.LoadFileTask::_encoding
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_004e:  ldloc.1 
-	  IL_004f:  callvirt instance class NAnt.Core.Util.CommandLineArgument class NAnt.Core.Util.CommandLineArgumentEnumerator::get_Current()
-	  IL_0054:  stloc.0 
-	  IL_0055:  nop 
-	  IL_0056:  ldloc.0 
-	  IL_0057:  ldarg.2 
-	  IL_0058:  callvirt instance void class NAnt.Core.Util.CommandLineArgument::Finish(object)
-	  IL_005d:  nop 
-	  IL_005e:  ldloc.1 
-	  IL_005f:  callvirt instance bool class NAnt.Core.Util.CommandLineArgumentEnumerator::MoveNext()
-	  IL_0064:  brtrue IL_004e
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method LoadFileTask::get_Encoding
 
-	  IL_0069:  leave IL_0082
+    // method line 1296
+    .method public hidebysig specialname 
+           instance default void set_Encoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+    {
+        // Method begins at RVA 0x17d77
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.LoadFileTask::_encoding
+	IL_0008:  ret 
+    } // end of method LoadFileTask::set_Encoding
 
-	} // end .try 0
-	finally  { // 0
-	  IL_006e:  ldloc.1 
-	  IL_006f:  isinst [mscorlib]System.IDisposable
-	  IL_0074:  dup 
-	  IL_0075:  stloc.2 
-	  IL_0076:  brfalse IL_0081
+    // method line 1297
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Filters.FilterChain get_FilterChain ()  cil managed 
+    {
+        // Method begins at RVA 0x17d84
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Filters.FilterChain	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.LoadFileTask::_filterChain
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_007b:  ldloc.2 
-	  IL_007c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0081:  endfinally 
-	} // end handler 0
-	IL_0082:  ldarg.0 
-	IL_0083:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
-	IL_0088:  brfalse IL_009b
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method LoadFileTask::get_FilterChain
 
-	IL_008d:  nop 
-	IL_008e:  ldarg.0 
-	IL_008f:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
-	IL_0094:  ldarg.2 
-	IL_0095:  callvirt instance void class NAnt.Core.Util.CommandLineArgument::Finish(object)
-	IL_009a:  nop 
-	IL_009b:  ret 
-    } // end of method CommandLineParser::Parse
+    // method line 1298
+    .method public hidebysig specialname 
+           instance default void set_FilterChain (class NAnt.Core.Filters.FilterChain 'value')  cil managed 
+    {
+        // Method begins at RVA 0x17d9f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.LoadFileTask::_filterChain
+	IL_0008:  ret 
+    } // end of method LoadFileTask::set_FilterChain
 
-    // method line 1475
-    .method private hidebysig 
-           instance default string[] ParseArguments (string sourceString, char[] delimiters)  cil managed 
+    // method line 1299
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x19f34
-	// Code size 208 (0xd0)
+        // Method begins at RVA 0x17dac
+	// Code size 159 (0x9f)
 	.maxstack 3
 	.locals init (
-		bool	V_0,
-		class [mscorlib]System.Text.StringBuilder	V_1,
-		class [System]System.Collections.Specialized.StringCollection	V_2,
-		char	V_3,
-		string	V_4,
-		int32	V_5,
-		string[]	V_6,
-		string[]	V_7)
+		string	V_0,
+		class [mscorlib]System.IO.IOException	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0008:  stloc.1 
-	IL_0009:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_000e:  stloc.2 
-	IL_000f:  nop 
-	IL_0010:  ldarg.1 
-	IL_0011:  stloc.s 4
-	IL_0013:  ldc.i4.0 
-	IL_0014:  stloc.s 5
-	IL_0016:  br IL_0085
-
-	IL_001b:  ldloc.s 4
-	IL_001d:  ldloc.s 5
-	IL_001f:  callvirt instance char string::get_Chars(int32)
-	IL_0024:  stloc.3 
-	IL_0025:  nop 
-	IL_0026:  ldloc.3 
-	IL_0027:  ldc.i4.s 0x22
-	IL_0029:  bne.un IL_0039
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.LoadFileTask::get_File()
+	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_000c:  brtrue IL_0038
 
-	IL_002e:  nop 
-	IL_002f:  ldloc.0 
-	IL_0030:  ldc.i4.0 
-	IL_0031:  ceq 
-	IL_0033:  stloc.0 
-	IL_0034:  br IL_007f
+	IL_0011:  nop 
+	IL_0012:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InstalledUICulture()
+	IL_0017:  ldstr "File '{0}' does not exist."
+	IL_001c:  ldarg.0 
+	IL_001d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.LoadFileTask::get_File()
+	IL_0022:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0027:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002c:  ldarg.0 
+	IL_002d:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0032:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0037:  throw 
+	IL_0038:  ldnull 
+	IL_0039:  stloc.0 
+	.try { // 0
+	  IL_003a:  nop 
+	  IL_003b:  ldarg.0 
+	  IL_003c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.LoadFileTask::get_File()
+	  IL_0041:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0046:  ldarg.0 
+	  IL_0047:  call instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.LoadFileTask::get_FilterChain()
+	  IL_004c:  ldarg.0 
+	  IL_004d:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.LoadFileTask::get_Encoding()
+	  IL_0052:  call string class NAnt.Core.Util.FileUtils::ReadFile(string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding)
+	  IL_0057:  stloc.0 
+	  IL_0058:  nop 
+	  IL_0059:  leave IL_008c
 
-	IL_0039:  ldloc.0 
-	IL_003a:  brtrue IL_0074
+	} // end .try 0
+	catch class [mscorlib]System.IO.IOException { // 0
+	  IL_005e:  stloc.1 
+	  IL_005f:  nop 
+	  IL_0060:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0065:  ldstr "NA1129"
+	  IL_006a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_006f:  ldarg.0 
+	  IL_0070:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.LoadFileTask::get_File()
+	  IL_0075:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_007a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_007f:  ldarg.0 
+	  IL_0080:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0085:  ldloc.1 
+	  IL_0086:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_008b:  throw 
+	} // end handler 0
+	IL_008c:  ldarg.0 
+	IL_008d:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0092:  ldarg.0 
+	IL_0093:  call instance string class NAnt.Core.Tasks.LoadFileTask::get_Property()
+	IL_0098:  ldloc.0 
+	IL_0099:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_009e:  ret 
+    } // end of method LoadFileTask::ExecuteTask
 
-	IL_003f:  ldloc.3 
-	IL_0040:  ldarg.2 
-	IL_0041:  call bool class NAnt.Core.Util.CommandLineParser::IsDelimiter(char, char[])
-	IL_0046:  brfalse IL_0074
+	.property instance class [mscorlib]System.IO.FileInfo File ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 66 69 6C 65 01 00 54 02 08 52 65 71 75   // ...file..T..Requ
+		69 72 65 64 01                                  ) // ired.
 
-	IL_004b:  nop 
-	IL_004c:  ldloc.1 
-	IL_004d:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_0052:  ldc.i4.0 
-	IL_0053:  ble IL_006e
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.LoadFileTask::get_File () 
+		.set instance default void NAnt.Core.Tasks.LoadFileTask::set_File (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string Property ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
+		52 65 71 75 69 72 65 64 01                      ) // Required.
 
-	IL_0058:  nop 
-	IL_0059:  ldloc.2 
-	IL_005a:  ldloc.1 
-	IL_005b:  callvirt instance string object::ToString()
-	IL_0060:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0065:  pop 
-	IL_0066:  ldloc.1 
-	IL_0067:  ldc.i4.0 
-	IL_0068:  callvirt instance void class [mscorlib]System.Text.StringBuilder::set_Length(int32)
-	IL_006d:  nop 
-	IL_006e:  nop 
-	IL_006f:  br IL_007e
+		.get instance default string NAnt.Core.Tasks.LoadFileTask::get_Property () 
+		.set instance default void NAnt.Core.Tasks.LoadFileTask::set_Property (string 'value') 
+	}
+	.property instance class [mscorlib]System.Text.Encoding Encoding ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 65 6E 63 6F 64 69 6E 67 00 00 ) // ...encoding..
 
-	IL_0074:  nop 
-	IL_0075:  ldloc.1 
-	IL_0076:  ldloc.3 
-	IL_0077:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_007c:  pop 
-	IL_007d:  nop 
-	IL_007e:  nop 
-	IL_007f:  ldloc.s 5
-	IL_0081:  ldc.i4.1 
-	IL_0082:  add 
-	IL_0083:  stloc.s 5
-	IL_0085:  ldloc.s 5
-	IL_0087:  ldloc.s 4
-	IL_0089:  callvirt instance int32 string::get_Length()
-	IL_008e:  blt IL_001b
+		.get instance default class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.LoadFileTask::get_Encoding () 
+		.set instance default void NAnt.Core.Tasks.LoadFileTask::set_Encoding (class [mscorlib]System.Text.Encoding 'value') 
+	}
+	.property instance class NAnt.Core.Filters.FilterChain FilterChain ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0B 66 69 6C 74 65 72 63 68 61 69 6E 00 00 ) // ...filterchain..
 
-	IL_0093:  ldloc.1 
-	IL_0094:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_0099:  ldc.i4.0 
-	IL_009a:  ble IL_00ae
+		.get instance default class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.LoadFileTask::get_FilterChain () 
+		.set instance default void NAnt.Core.Tasks.LoadFileTask::set_FilterChain (class NAnt.Core.Filters.FilterChain 'value') 
+	}
+  } // end of class NAnt.Core.Tasks.LoadFileTask
+}
 
-	IL_009f:  nop 
-	IL_00a0:  ldloc.2 
-	IL_00a1:  ldloc.1 
-	IL_00a2:  callvirt instance string object::ToString()
-	IL_00a7:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_00ac:  pop 
-	IL_00ad:  nop 
-	IL_00ae:  ldloc.2 
-	IL_00af:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_00b4:  newarr [mscorlib]System.String
-	IL_00b9:  stloc.s 6
-	IL_00bb:  ldloc.2 
-	IL_00bc:  ldloc.s 6
-	IL_00be:  ldc.i4.0 
-	IL_00bf:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::CopyTo(string[], int32)
-	IL_00c4:  ldloc.s 6
-	IL_00c6:  stloc.s 7
-	IL_00c8:  br IL_00cd
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit ChooseTask
+  	extends NAnt.Core.Task
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 63 68 6F 6F 73 65 00 00 ) // ...choose..
 
-	IL_00cd:  ldloc.s 7
-	IL_00cf:  ret 
-    } // end of method CommandLineParser::ParseArguments
+    .field  private  class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer> _elementContainers
 
-    // method line 1476
-    .method private static hidebysig 
-           default bool IsDelimiter (char c, char[] delimiters)  cil managed 
+    // method line 1300
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1a010
-	// Code size 54 (0x36)
-	.maxstack 2
-	.locals init (
-		char	V_0,
-		char[]	V_1,
-		int32	V_2,
-		bool	V_3)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.1 
-	IL_0003:  stloc.1 
-	IL_0004:  ldc.i4.0 
-	IL_0005:  stloc.2 
-	IL_0006:  br IL_0024
-
-	IL_000b:  ldloc.1 
-	IL_000c:  ldloc.2 
-	IL_000d:  ldelem.u2 
-	IL_000e:  stloc.0 
-	IL_000f:  nop 
-	IL_0010:  ldarg.0 
-	IL_0011:  ldloc.0 
-	IL_0012:  bne.un IL_001f
-
-	IL_0017:  nop 
-	IL_0018:  ldc.i4.1 
-	IL_0019:  stloc.3 
-	IL_001a:  br IL_0034
-
-	IL_001f:  nop 
-	IL_0020:  ldloc.2 
-	IL_0021:  ldc.i4.1 
-	IL_0022:  add 
-	IL_0023:  stloc.2 
-	IL_0024:  ldloc.2 
-	IL_0025:  ldloc.1 
-	IL_0026:  ldlen 
-	IL_0027:  conv.i4 
-	IL_0028:  blt IL_000b
-
-	IL_002d:  ldc.i4.0 
-	IL_002e:  stloc.3 
-	IL_002f:  br IL_0034
-
-	IL_0034:  ldloc.3 
-	IL_0035:  ret 
-    } // end of method CommandLineParser::IsDelimiter
+        // Method begins at RVA 0x17e68
+	// Code size 18 (0x12)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer>::'.ctor'()
+	IL_0006:  stfld class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer> NAnt.Core.Tasks.ChooseTask::_elementContainers
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0011:  ret 
+    } // end of method ChooseTask::.ctor
 
-    // method line 1477
-    .method private hidebysig 
-           instance default void ProcessResponseFile (string file)  cil managed 
+    // method line 1301
+    .method private hidebysig specialname 
+           instance default bool get_IsFallbackDefined ()  cil managed 
     {
-        // Method begins at RVA 0x1a054
-	// Code size 148 (0x94)
-	.maxstack 4
+        // Method begins at RVA 0x17e7c
+	// Code size 88 (0x58)
+	.maxstack 1
 	.locals init (
-		char[]	V_0,
-		class [System]System.Collections.Specialized.StringCollection	V_1,
-		class [mscorlib]System.IO.StreamReader	V_2,
-		string	V_3,
-		string[]	V_4)
+		class NAnt.Core.ElementContainer	V_0,
+		valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>	V_1,
+		bool	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.2 
-	IL_0002:  newarr [mscorlib]System.Char
-	IL_0007:  dup 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  ldc.i4.s 0x20
-	IL_000b:  stelem.i2 
-	IL_000c:  dup 
-	IL_000d:  ldc.i4.1 
-	IL_000e:  ldc.i4.s 0x09
-	IL_0010:  stelem.i2 
-	IL_0011:  stloc.0 
-	IL_0012:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0017:  stloc.1 
-	IL_0018:  ldarg.1 
-	IL_0019:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
-	IL_001e:  ldc.i4.1 
-	IL_001f:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
-	IL_0024:  stloc.2 
+	IL_0001:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer> NAnt.Core.Tasks.ChooseTask::_elementContainers
+	IL_0008:  callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer>::GetEnumerator()
+	IL_000d:  stloc.1 
 	.try { // 0
-	  IL_0025:  nop 
-	  IL_0026:  br IL_0055
+	  IL_000e:  br IL_0030
 
-	  IL_002b:  nop 
-	  IL_002c:  ldloc.3 
-	  IL_002d:  ldloc.0 
-	  IL_002e:  callvirt instance string string::Trim(char[])
-	  IL_0033:  stloc.3 
-	  IL_0034:  ldloc.3 
-	  IL_0035:  ldstr "#"
-	  IL_003a:  callvirt instance bool string::StartsWith(string)
-	  IL_003f:  brtrue IL_0054
+	  IL_0013:  ldloca.s 1
+	  IL_0015:  call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>::get_Current()
+	  IL_001a:  stloc.0 
+	  IL_001b:  nop 
+	  IL_001c:  ldloc.0 
+	  IL_001d:  isinst NAnt.Core.Tasks.ChooseTask/When
+	  IL_0022:  brtrue IL_002f
 
-	  IL_0044:  nop 
-	  IL_0045:  ldloc.1 
-	  IL_0046:  ldarg.0 
-	  IL_0047:  ldloc.3 
-	  IL_0048:  ldloc.0 
-	  IL_0049:  call instance string[] class NAnt.Core.Util.CommandLineParser::ParseArguments(string, char[])
-	  IL_004e:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
-	  IL_0053:  nop 
-	  IL_0054:  nop 
-	  IL_0055:  ldloc.2 
-	  IL_0056:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	  IL_005b:  dup 
-	  IL_005c:  stloc.3 
-	  IL_005d:  brtrue IL_002b
+	  IL_0027:  nop 
+	  IL_0028:  ldc.i4.1 
+	  IL_0029:  stloc.2 
+	  IL_002a:  leave IL_0056
 
-	  IL_0062:  ldloc.1 
-	  IL_0063:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	  IL_0068:  newarr [mscorlib]System.String
-	  IL_006d:  stloc.s 4
-	  IL_006f:  ldloc.1 
-	  IL_0070:  ldloc.s 4
-	  IL_0072:  ldc.i4.0 
-	  IL_0073:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::CopyTo(string[], int32)
-	  IL_0078:  ldarg.0 
-	  IL_0079:  ldloc.s 4
-	  IL_007b:  call instance void class NAnt.Core.Util.CommandLineParser::ParseArgumentList(string[])
-	  IL_0080:  nop 
-	  IL_0081:  leave IL_0093
+	  IL_002f:  nop 
+	  IL_0030:  ldloca.s 1
+	  IL_0032:  call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>::MoveNext()
+	  IL_0037:  brtrue IL_0013
+
+	  IL_003c:  leave IL_004f
 
 	} // end .try 0
 	finally  { // 0
-	  IL_0086:  ldloc.2 
-	  IL_0087:  brfalse IL_0092
-
-	  IL_008c:  ldloc.2 
-	  IL_008d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0092:  endfinally 
+	  IL_0041:  ldloca.s 1
+	  IL_0043:  constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>
+	  IL_0049:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_004e:  endfinally 
 	} // end handler 0
-	IL_0093:  ret 
-    } // end of method CommandLineParser::ProcessResponseFile
+	IL_004f:  ldc.i4.0 
+	IL_0050:  stloc.2 
+	IL_0051:  br IL_0056
 
-    // method line 1478
-    .method private hidebysig 
-           instance default void ParseArgumentList (string[] args)  cil managed 
+	IL_0056:  ldloc.2 
+	IL_0057:  ret 
+    } // end of method ChooseTask::get_IsFallbackDefined
+
+    // method line 1302
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x1a104
-	// Code size 675 (0x2a3)
-	.maxstack 4
+        // Method begins at RVA 0x17ef0
+	// Code size 112 (0x70)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		string[]	V_1,
-		int32	V_2,
-		char	V_3,
-		int32	V_4,
-		string	V_5,
-		string	V_6,
-		class NAnt.Core.Util.CommandLineArgument	V_7,
-		class [mscorlib]System.Attribute[]	V_8,
-		class [mscorlib]System.ObsoleteAttribute	V_9,
-		string	V_10,
-		string	V_11)
+		class NAnt.Core.ElementContainer	V_0,
+		valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>	V_1,
+		class NAnt.Core.Tasks.ChooseTask/When	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_000d
-
-	IL_0007:  nop 
-	IL_0008:  br IL_02a2
-
-	IL_000d:  nop 
-	IL_000e:  ldarg.1 
-	IL_000f:  stloc.1 
-	IL_0010:  ldc.i4.0 
-	IL_0011:  stloc.2 
-	IL_0012:  br IL_0299
-
-	IL_0017:  ldloc.1 
-	IL_0018:  ldloc.2 
-	IL_0019:  ldelem.ref 
-	IL_001a:  stloc.0 
-	IL_001b:  nop 
-	IL_001c:  ldloc.0 
-	IL_001d:  callvirt instance int32 string::get_Length()
-	IL_0022:  brtrue IL_002d
-
-	IL_0027:  nop 
-	IL_0028:  br IL_0295
-
-	IL_002d:  ldloc.0 
-	IL_002e:  ldc.i4.0 
-	IL_002f:  callvirt instance char string::get_Chars(int32)
-	IL_0034:  stloc.3 
-	IL_0035:  ldloc.3 
-	IL_0036:  ldc.i4.s 0x2d
-	IL_0038:  sub 
-	IL_0039:  switch (
-	  IL_0057,
-	  IL_004a,
-	  IL_0057)
-	IL_004a:  ldloc.3 
-	IL_004b:  ldc.i4.s 0x40
-	IL_004d:  beq IL_0207
-
-	IL_0052:  br IL_025a
-
-	IL_0057:  ldloc.0 
-	IL_0058:  ldc.i4.3 
-	IL_0059:  newarr [mscorlib]System.Char
-	IL_005e:  dup 
-	IL_005f:  ldtoken field valuetype '<PrivateImplementationDetails>'/'$ArrayType=8' '<PrivateImplementationDetails>'::'$field-70EF559FCFA85790B0637E1592D4E2FF36031FDF'
-	IL_0064:  call void class [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, valuetype [mscorlib]System.RuntimeFieldHandle)
-	IL_0069:  ldc.i4.1 
-	IL_006a:  callvirt instance int32 string::IndexOfAny(char[], int32)
-	IL_006f:  stloc.s 4
-	IL_0071:  ldloc.0 
-	IL_0072:  ldc.i4.1 
-	IL_0073:  ldloc.s 4
-	IL_0075:  ldc.i4.m1 
-	IL_0076:  bne.un IL_0088
-
-	IL_007b:  ldloc.0 
-	IL_007c:  callvirt instance int32 string::get_Length()
-	IL_0081:  ldc.i4.1 
-	IL_0082:  sub 
-	IL_0083:  br IL_008c
-
-	IL_0088:  ldloc.s 4
-	IL_008a:  ldc.i4.1 
-	IL_008b:  sub 
-	IL_008c:  callvirt instance string string::Substring(int32, int32)
-	IL_0091:  stloc.s 5
-	IL_0093:  ldloc.s 5
-	IL_0095:  callvirt instance int32 string::get_Length()
-	IL_009a:  ldc.i4.1 
-	IL_009b:  add 
-	IL_009c:  ldloc.0 
-	IL_009d:  callvirt instance int32 string::get_Length()
-	IL_00a2:  bne.un IL_00b1
-
-	IL_00a7:  nop 
-	IL_00a8:  ldnull 
-	IL_00a9:  stloc.s 6
-	IL_00ab:  nop 
-	IL_00ac:  br IL_0106
-
-	IL_00b1:  ldloc.0 
-	IL_00b2:  callvirt instance int32 string::get_Length()
-	IL_00b7:  ldc.i4.1 
-	IL_00b8:  ldloc.s 5
-	IL_00ba:  callvirt instance int32 string::get_Length()
-	IL_00bf:  add 
-	IL_00c0:  ble IL_00f3
-
-	IL_00c5:  ldloc.0 
-	IL_00c6:  ldc.i4.1 
-	IL_00c7:  ldloc.s 5
-	IL_00c9:  callvirt instance int32 string::get_Length()
-	IL_00ce:  add 
-	IL_00cf:  callvirt instance char string::get_Chars(int32)
-	IL_00d4:  ldc.i4.s 0x3a
-	IL_00d6:  bne.un IL_00f3
-
-	IL_00db:  nop 
-	IL_00dc:  ldloc.0 
-	IL_00dd:  ldloc.s 5
-	IL_00df:  callvirt instance int32 string::get_Length()
-	IL_00e4:  ldc.i4.2 
-	IL_00e5:  add 
-	IL_00e6:  callvirt instance string string::Substring(int32)
-	IL_00eb:  stloc.s 6
-	IL_00ed:  nop 
-	IL_00ee:  br IL_0106
-
-	IL_00f3:  nop 
-	IL_00f4:  ldloc.0 
-	IL_00f5:  ldloc.s 5
-	IL_00f7:  callvirt instance int32 string::get_Length()
-	IL_00fc:  ldc.i4.1 
-	IL_00fd:  add 
-	IL_00fe:  callvirt instance string string::Substring(int32)
-	IL_0103:  stloc.s 6
-	IL_0105:  nop 
-	IL_0106:  ldarg.0 
-	IL_0107:  ldfld class NAnt.Core.Util.CommandLineArgumentCollection NAnt.Core.Util.CommandLineParser::_argumentCollection
-	IL_010c:  ldloc.s 5
-	IL_010e:  callvirt instance class NAnt.Core.Util.CommandLineArgument class NAnt.Core.Util.CommandLineArgumentCollection::get_Item(string)
-	IL_0113:  stloc.s 7
-	IL_0115:  ldloc.s 7
-	IL_0117:  brtrue IL_0133
-
-	IL_011c:  nop 
-	IL_011d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0122:  ldstr "Unknown argument '{0}'"
-	IL_0127:  ldloc.0 
-	IL_0128:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_012d:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
-	IL_0132:  throw 
-	IL_0133:  nop 
-	IL_0134:  ldloc.s 7
-	IL_0136:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo class NAnt.Core.Util.CommandLineArgument::get_Property()
-	IL_013b:  ldtoken [mscorlib]System.ObsoleteAttribute
-	IL_0140:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0145:  ldc.i4.0 
-	IL_0146:  callvirt instance object[] class [mscorlib]System.Reflection.MemberInfo::GetCustomAttributes(class [mscorlib]System.Type, bool)
-	IL_014b:  castclass class [mscorlib]System.Attribute[]
-	IL_0150:  stloc.s 8
-	IL_0152:  ldloc.s 8
-	IL_0154:  ldlen 
-	IL_0155:  conv.i4 
-	IL_0156:  ldc.i4.0 
-	IL_0157:  ble IL_01c4
-
-	IL_015c:  nop 
-	IL_015d:  ldloc.s 8
-	IL_015f:  ldc.i4.0 
-	IL_0160:  ldelem.ref 
-	IL_0161:  castclass [mscorlib]System.ObsoleteAttribute
-	IL_0166:  stloc.s 9
-	IL_0168:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_016d:  ldstr "NA1177"
-	IL_0172:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0177:  ldloc.s 5
-	IL_0179:  ldloc.s 9
-	IL_017b:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
-	IL_0180:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0185:  stloc.s 10
-	IL_0187:  ldloc.s 9
-	IL_0189:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
-	IL_018e:  brfalse IL_019c
-
-	IL_0193:  nop 
-	IL_0194:  ldloc.s 10
-	IL_0196:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
-	IL_019b:  throw 
-	IL_019c:  nop 
-	IL_019d:  ldsfld string [mscorlib]System.String::Empty
-	IL_01a2:  call void class [mscorlib]System.Console::WriteLine(string)
-	IL_01a7:  ldstr "Warning: "
-	IL_01ac:  ldloc.s 10
-	IL_01ae:  call string string::Concat(string, string)
-	IL_01b3:  call void class [mscorlib]System.Console::WriteLine(string)
-	IL_01b8:  ldsfld string [mscorlib]System.String::Empty
-	IL_01bd:  call void class [mscorlib]System.Console::WriteLine(string)
-	IL_01c2:  nop 
-	IL_01c3:  nop 
-	IL_01c4:  ldloc.s 7
-	IL_01c6:  callvirt instance bool class NAnt.Core.Util.CommandLineArgument::get_IsExclusive()
-	IL_01cb:  brfalse IL_01f6
-
-	IL_01d0:  ldarg.1 
-	IL_01d1:  ldlen 
-	IL_01d2:  conv.i4 
-	IL_01d3:  ldc.i4.1 
-	IL_01d4:  ble IL_01f6
+	IL_0001:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer> NAnt.Core.Tasks.ChooseTask::_elementContainers
+	IL_0008:  callvirt instance valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<!0> class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer>::GetEnumerator()
+	IL_000d:  stloc.1 
+	.try { // 0
+	  IL_000e:  br IL_0050
 
-	IL_01d9:  nop 
-	IL_01da:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01df:  ldstr "Commandline argument '-{0}' cannot be combined with other arguments."
-	IL_01e4:  ldloc.s 7
-	IL_01e6:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	IL_01eb:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_01f0:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
-	IL_01f5:  throw 
-	IL_01f6:  nop 
-	IL_01f7:  ldloc.s 7
-	IL_01f9:  ldloc.s 6
-	IL_01fb:  callvirt instance void class NAnt.Core.Util.CommandLineArgument::SetValue(string)
-	IL_0200:  nop 
-	IL_0201:  nop 
-	IL_0202:  br IL_0294
+	  IL_0013:  ldloca.s 1
+	  IL_0015:  call instance !0 valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>::get_Current()
+	  IL_001a:  stloc.0 
+	  IL_001b:  nop 
+	  IL_001c:  ldloc.0 
+	  IL_001d:  isinst NAnt.Core.Tasks.ChooseTask/When
+	  IL_0022:  stloc.2 
+	  IL_0023:  ldloc.2 
+	  IL_0024:  brfalse IL_0047
 
-	IL_0207:  ldarg.0 
-	IL_0208:  ldfld bool NAnt.Core.Util.CommandLineParser::_supportsResponseFile
-	IL_020d:  brfalse IL_0255
+	  IL_0029:  nop 
+	  IL_002a:  ldloc.2 
+	  IL_002b:  callvirt instance bool class NAnt.Core.Tasks.ChooseTask/When::get_Test()
+	  IL_0030:  brfalse IL_0041
 
-	IL_0212:  nop 
-	IL_0213:  ldloc.0 
-	IL_0214:  ldc.i4.1 
-	IL_0215:  ldloc.0 
-	IL_0216:  callvirt instance int32 string::get_Length()
-	IL_021b:  ldc.i4.1 
-	IL_021c:  sub 
-	IL_021d:  callvirt instance string string::Substring(int32, int32)
-	IL_0222:  stloc.s 11
-	IL_0224:  ldloc.s 11
-	IL_0226:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_022b:  brtrue IL_0248
+	  IL_0035:  nop 
+	  IL_0036:  ldloc.2 
+	  IL_0037:  callvirt instance void class NAnt.Core.ElementContainer::Execute()
+	  IL_003c:  leave IL_005c
 
-	IL_0230:  nop 
-	IL_0231:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0236:  ldstr "Unable to open response file '{0}'."
-	IL_023b:  ldloc.s 11
-	IL_023d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0242:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
-	IL_0247:  throw 
-	IL_0248:  ldarg.0 
-	IL_0249:  ldloc.s 11
-	IL_024b:  call instance void class NAnt.Core.Util.CommandLineParser::ProcessResponseFile(string)
-	IL_0250:  br IL_0294
+	  IL_0041:  nop 
+	  IL_0042:  br IL_004f
 
-	IL_0255:  br IL_0295
+	  IL_0047:  nop 
+	  IL_0048:  ldloc.0 
+	  IL_0049:  callvirt instance void class NAnt.Core.ElementContainer::Execute()
+	  IL_004e:  nop 
+	  IL_004f:  nop 
+	  IL_0050:  ldloca.s 1
+	  IL_0052:  call instance bool valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>::MoveNext()
+	  IL_0057:  brtrue IL_0013
 
-	IL_025a:  ldarg.0 
-	IL_025b:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
-	IL_0260:  brfalse IL_0278
+	  IL_005c:  leave IL_006f
 
-	IL_0265:  nop 
-	IL_0266:  ldarg.0 
-	IL_0267:  ldfld class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineParser::_defaultArgument
-	IL_026c:  ldloc.0 
-	IL_026d:  callvirt instance void class NAnt.Core.Util.CommandLineArgument::SetValue(string)
-	IL_0272:  nop 
-	IL_0273:  br IL_028f
+	} // end .try 0
+	finally  { // 0
+	  IL_0061:  ldloca.s 1
+	  IL_0063:  constrained. valuetype [mscorlib]System.Collections.Generic.List`1/Enumerator<class NAnt.Core.ElementContainer>
+	  IL_0069:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_006e:  endfinally 
+	} // end handler 0
+	IL_006f:  ret 
+    } // end of method ChooseTask::ExecuteTask
 
-	IL_0278:  nop 
-	IL_0279:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_027e:  ldstr "Unknown argument '{0}'"
-	IL_0283:  ldloc.0 
-	IL_0284:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0289:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
-	IL_028e:  throw 
-	IL_028f:  br IL_0294
+    // method line 1303
+    .method public hidebysig 
+           instance default void AddCondition (class NAnt.Core.Tasks.ChooseTask/When when)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 04 77 68 65 6E 01 00 54 02 08 52 65 71 75   // ...when..T..Requ
+		69 72 65 64 01                                  ) // ired.
 
-	IL_0294:  nop 
-	IL_0295:  ldloc.2 
-	IL_0296:  ldc.i4.1 
-	IL_0297:  add 
-	IL_0298:  stloc.2 
-	IL_0299:  ldloc.2 
-	IL_029a:  ldloc.1 
-	IL_029b:  ldlen 
-	IL_029c:  conv.i4 
-	IL_029d:  blt IL_0017
+        // Method begins at RVA 0x17f7c
+	// Code size 59 (0x3b)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.Core.Tasks.ChooseTask::get_IsFallbackDefined()
+	IL_0007:  brfalse IL_002e
 
-	IL_02a2:  ret 
-    } // end of method CommandLineParser::ParseArgumentList
+	IL_000c:  nop 
+	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0012:  ldstr "The <otherwise> element must be defined as the last nested element in the <{0} ... /> task."
+	IL_0017:  ldarg.0 
+	IL_0018:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_001d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0022:  ldarg.0 
+	IL_0023:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0028:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_002d:  throw 
+	IL_002e:  ldarg.0 
+	IL_002f:  ldfld class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer> NAnt.Core.Tasks.ChooseTask::_elementContainers
+	IL_0034:  ldarg.1 
+	IL_0035:  callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer>::Add(!0)
+	IL_003a:  ret 
+    } // end of method ChooseTask::AddCondition
 
-    // method line 1479
-    .method private static hidebysig 
-           default class NAnt.Core.Util.CommandLineArgumentAttribute GetCommandLineAttribute (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
+    // method line 1304
+    .method public hidebysig 
+           instance default void AddFallback (class NAnt.Core.ElementContainer fallback)  cil managed 
     {
-        // Method begins at RVA 0x1a3b4
-	// Code size 62 (0x3e)
-	.maxstack 3
-	.locals init (
-		object[]	V_0,
-		class NAnt.Core.Util.CommandLineArgumentAttribute	V_1)
+        .custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 09 6F 74 68 65 72 77 69 73 65 00 00 ) // ...otherwise..
+
+        // Method begins at RVA 0x17fb8
+	// Code size 43 (0x2b)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldtoken NAnt.Core.Util.CommandLineArgumentAttribute
-	IL_0007:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000c:  ldc.i4.0 
-	IL_000d:  callvirt instance object[] class [mscorlib]System.Reflection.MemberInfo::GetCustomAttributes(class [mscorlib]System.Type, bool)
-	IL_0012:  stloc.0 
-	IL_0013:  ldloc.0 
-	IL_0014:  ldlen 
-	IL_0015:  conv.i4 
-	IL_0016:  ldc.i4.1 
-	IL_0017:  bne.un IL_002a
-
-	IL_001c:  ldloc.0 
-	IL_001d:  ldc.i4.0 
-	IL_001e:  ldelem.ref 
-	IL_001f:  castclass NAnt.Core.Util.CommandLineArgumentAttribute
-	IL_0024:  stloc.1 
-	IL_0025:  br IL_003c
-
-	IL_002a:  ldloc.0 
-	IL_002b:  ldlen 
-	IL_002c:  conv.i4 
-	IL_002d:  ldc.i4.0 
-	IL_002e:  ceq 
-	IL_0030:  call void class [System]System.Diagnostics.Debug::Assert(bool)
-	IL_0035:  ldnull 
-	IL_0036:  stloc.1 
-	IL_0037:  br IL_003c
+	IL_0002:  call instance bool class NAnt.Core.Tasks.ChooseTask::get_IsFallbackDefined()
+	IL_0007:  brfalse IL_001e
 
-	IL_003c:  ldloc.1 
-	IL_003d:  ret 
-    } // end of method CommandLineParser::GetCommandLineAttribute
+	IL_000c:  nop 
+	IL_000d:  ldstr "The <otherwise> element may only be defined once."
+	IL_0012:  ldarg.0 
+	IL_0013:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_001d:  throw 
+	IL_001e:  ldarg.0 
+	IL_001f:  ldfld class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer> NAnt.Core.Tasks.ChooseTask::_elementContainers
+	IL_0024:  ldarg.1 
+	IL_0025:  callvirt instance void class [mscorlib]System.Collections.Generic.List`1<class NAnt.Core.ElementContainer>::Add(!0)
+	IL_002a:  ret 
+    } // end of method ChooseTask::AddFallback
 
-	.property instance string LogoBanner ()
-	{
-		.get instance default string NAnt.Core.Util.CommandLineParser::get_LogoBanner () 
-	}
-	.property instance string Usage ()
-	{
-		.get instance default string NAnt.Core.Util.CommandLineParser::get_Usage () 
-	}
-	.property instance bool NoArgs ()
+	.property instance bool IsFallbackDefined ()
 	{
-		.get instance default bool NAnt.Core.Util.CommandLineParser::get_NoArgs () 
+		.get instance default bool NAnt.Core.Tasks.ChooseTask::get_IsFallbackDefined () 
 	}
-  } // end of class NAnt.Core.Util.CommandLineParser
-}
-
-.namespace NAnt.Core.Util
-{
-  .class public auto ansi sealed CommandLineArgumentTypes
-  	extends [mscorlib]System.Enum
+  .class nested public auto ansi beforefieldinit When
+  	extends NAnt.Core.ElementContainer
   {
-    .custom instance void class [mscorlib]System.FlagsAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.Util.CommandLineArgumentTypes Required = int32(0x00000001)
-    .field public static literal  valuetype NAnt.Core.Util.CommandLineArgumentTypes Unique = int32(0x00000002)
-    .field public static literal  valuetype NAnt.Core.Util.CommandLineArgumentTypes Multiple = int32(0x00000004)
-    .field public static literal  valuetype NAnt.Core.Util.CommandLineArgumentTypes Exclusive = int32(0x00000008)
-    .field public static literal  valuetype NAnt.Core.Util.CommandLineArgumentTypes AtMostOnce = int32(0x00000000)
-    .field public static literal  valuetype NAnt.Core.Util.CommandLineArgumentTypes MultipleUnique = int32(0x00000006)
-
-  } // end of class NAnt.Core.Util.CommandLineArgumentTypes
-}
-
-.namespace NAnt.Core.Util
-{
-  .class public auto ansi sealed beforefieldinit GacCache
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.IDisposable  {
-    .field  private  class [mscorlib]System.AppDomain _domain
-    .field  private  class NAnt.Core.Project _project
-    .field  private  class [mscorlib]System.Collections.Hashtable _gacQueryCache
-    .field  private  bool _hasLoadedAssembly
-    .field  private  class NAnt.Core.Util.GacCache/GacResolver _resolver
-    .field  private  bool _disposed
+    .field  private  bool _test
 
-    // method line 1480
+    // method line 1305
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1a3fe
-	// Code size 32 (0x20)
+        // Method begins at RVA 0x17fe4
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Tasks.ChooseTask/When::_test
 	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld class NAnt.Core.Project NAnt.Core.Util.GacCache::_project
-	IL_000e:  ldarg.0 
-	IL_000f:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_0014:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.GacCache::_gacQueryCache
-	IL_0019:  ldarg.0 
-	IL_001a:  call instance void class NAnt.Core.Util.GacCache::RecreateDomain()
-	IL_001f:  ret 
-    } // end of method GacCache::.ctor
-
-    // method line 1481
-    .method family virtual hidebysig 
-           instance default void Finalize ()  cil managed 
-    {
-        // Method begins at RVA 0x1a420
-	// Code size 21 (0x15)
-	.maxstack 2
-	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  ldarg.0 
-	  IL_0002:  ldc.i4.0 
-	  IL_0003:  call instance void class NAnt.Core.Util.GacCache::Dispose(bool)
-	  IL_0008:  leave IL_0014
-
-	} // end .try 0
-	finally  { // 0
-	  IL_000d:  ldarg.0 
-	  IL_000e:  call instance void object::Finalize()
-	  IL_0013:  endfinally 
-	} // end handler 0
-	IL_0014:  ret 
-    } // end of method GacCache::Finalize
+	IL_0008:  call instance void class NAnt.Core.ElementContainer::'.ctor'()
+	IL_000d:  ret 
+    } // end of method When::.ctor
 
-    // method line 1482
+    // method line 1306
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
-    {
-        // Method begins at RVA 0x1a454
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Project	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.Util.GacCache::_project
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method GacCache::get_Project
-
-    // method line 1483
-    .method private hidebysig specialname 
-           instance default class [mscorlib]System.AppDomain get_Domain ()  cil managed 
+           instance default bool get_Test ()  cil managed 
     {
-        // Method begins at RVA 0x1a470
+        // Method begins at RVA 0x17ff4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.AppDomain	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
+	IL_0002:  ldfld bool NAnt.Core.Tasks.ChooseTask/When::_test
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method GacCache::get_Domain
-
-    // method line 1484
-    .method private hidebysig specialname 
-           instance default class NAnt.Core.Util.GacCache/GacResolver get_Resolver ()  cil managed 
-    {
-        // Method begins at RVA 0x1a48c
-	// Code size 80 (0x50)
-	.maxstack 4
-	.locals init (
-		class NAnt.Core.Util.GacCache/GacResolver	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Util.GacCache/GacResolver NAnt.Core.Util.GacCache::_resolver
-	IL_0007:  brtrue IL_0042
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance class [mscorlib]System.AppDomain class NAnt.Core.Util.GacCache::get_Domain()
-	IL_0014:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetExecutingAssembly()
-	IL_0019:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
-	IL_001e:  ldtoken NAnt.Core.Util.GacCache/GacResolver
-	IL_0023:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0028:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_002d:  callvirt instance class [mscorlib]System.Runtime.Remoting.ObjectHandle class [mscorlib]System.AppDomain::CreateInstanceFrom(string, string)
-	IL_0032:  callvirt instance object class [mscorlib]System.Runtime.Remoting.ObjectHandle::Unwrap()
-	IL_0037:  castclass NAnt.Core.Util.GacCache/GacResolver
-	IL_003c:  stfld class NAnt.Core.Util.GacCache/GacResolver NAnt.Core.Util.GacCache::_resolver
-	IL_0041:  nop 
-	IL_0042:  ldarg.0 
-	IL_0043:  ldfld class NAnt.Core.Util.GacCache/GacResolver NAnt.Core.Util.GacCache::_resolver
-	IL_0048:  stloc.0 
-	IL_0049:  br IL_004e
-
-	IL_004e:  ldloc.0 
-	IL_004f:  ret 
-    } // end of method GacCache::get_Resolver
+    } // end of method When::get_Test
 
-    // method line 1485
-    .method public final virtual hidebysig newslot 
-           instance default void Dispose ()  cil managed 
+    // method line 1307
+    .method public hidebysig specialname 
+           instance default void set_Test (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1a4e8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1800f
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.1 
-	IL_0003:  call instance void class NAnt.Core.Util.GacCache::Dispose(bool)
-	IL_0008:  ldarg.0 
-	IL_0009:  call void class [mscorlib]System.GC::SuppressFinalize(object)
-	IL_000e:  ret 
-    } // end of method GacCache::Dispose
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.ChooseTask/When::_test
+	IL_0008:  ret 
+    } // end of method When::set_Test
 
-    // method line 1486
-    .method private hidebysig 
-           instance default void Dispose (bool disposing)  cil managed 
+    // method line 1308
+    .method public virtual hidebysig 
+           instance default void Execute ()  cil managed 
     {
-        // Method begins at RVA 0x1a4f8
-	// Code size 33 (0x21)
+        // Method begins at RVA 0x18019
+	// Code size 25 (0x19)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Util.GacCache::_disposed
-	IL_0007:  brtrue IL_0020
+	IL_0002:  call instance bool class NAnt.Core.Tasks.ChooseTask/When::get_Test()
+	IL_0007:  brtrue IL_0012
 
 	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
-	IL_0013:  call void class [mscorlib]System.AppDomain::Unload(class [mscorlib]System.AppDomain)
-	IL_0018:  ldarg.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  stfld bool NAnt.Core.Util.GacCache::_disposed
-	IL_001f:  nop 
-	IL_0020:  ret 
-    } // end of method GacCache::Dispose
-
-    // method line 1487
-    .method public hidebysig 
-           instance default void RecreateDomain ()  cil managed 
-    {
-        // Method begins at RVA 0x1a51c
-	// Code size 114 (0x72)
-	.maxstack 6
-	.locals init (
-		class [mscorlib]System.Security.PermissionSet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Util.GacCache::_hasLoadedAssembly
-	IL_0007:  brtrue IL_001c
-
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
-	IL_0012:  brfalse IL_001c
-
-	IL_0017:  br IL_0071
-
-	IL_001c:  ldarg.0 
-	IL_001d:  ldfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
-	IL_0022:  brfalse IL_0032
-
-	IL_0027:  ldarg.0 
-	IL_0028:  ldfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
-	IL_002d:  call void class [mscorlib]System.AppDomain::Unload(class [mscorlib]System.AppDomain)
-	IL_0032:  ldarg.0 
-	IL_0033:  ldnull 
-	IL_0034:  stfld class NAnt.Core.Util.GacCache/GacResolver NAnt.Core.Util.GacCache::_resolver
-	IL_0039:  ldc.i4.1 
-	IL_003a:  newobj instance void class [mscorlib]System.Security.PermissionSet::'.ctor'(valuetype [mscorlib]System.Security.Permissions.PermissionState)
-	IL_003f:  stloc.0 
-	IL_0040:  ldarg.0 
-	IL_0041:  ldstr "GacCacheDomain"
-	IL_0046:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_004b:  callvirt instance class [mscorlib]System.Security.Policy.Evidence class [mscorlib]System.AppDomain::get_Evidence()
-	IL_0050:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_0055:  callvirt instance class [mscorlib]System.AppDomainSetup class [mscorlib]System.AppDomain::get_SetupInformation()
-	IL_005a:  ldloc.0 
-	IL_005b:  call !!0[] class [mscorlib]System.Array::Empty<class [mscorlib]System.Security.Policy.StrongName> ()
-	IL_0060:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::CreateDomain(string, class [mscorlib]System.Security.Policy.Evidence, class [mscorlib]System.AppDomainSetup, class [mscorlib]System.Security.PermissionSet, class [mscorlib]System.Security.Policy.StrongName[])
-	IL_0065:  stfld class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::_domain
-	IL_006a:  ldarg.0 
-	IL_006b:  ldc.i4.0 
-	IL_006c:  stfld bool NAnt.Core.Util.GacCache::_hasLoadedAssembly
-	IL_0071:  ret 
-    } // end of method GacCache::RecreateDomain
-
-    // method line 1488
-    .method public hidebysig 
-           instance default bool IsAssemblyInGac (string assemblyFile)  cil managed 
-    {
-        // Method begins at RVA 0x1a59c
-	// Code size 160 (0xa0)
-	.maxstack 4
-	.locals init (
-		bool	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Project class NAnt.Core.Util.GacCache::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
-	IL_000c:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Family()
-	IL_0011:  ldarg.0 
-	IL_0012:  call instance class NAnt.Core.Project class NAnt.Core.Util.GacCache::get_Project()
-	IL_0017:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_001c:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Family()
-	IL_0021:  call bool string::op_Inequality(string, string)
-	IL_0026:  brfalse IL_0033
+	IL_000d:  br IL_0018
 
-	IL_002b:  nop 
-	IL_002c:  ldc.i4.0 
-	IL_002d:  stloc.0 
-	IL_002e:  br IL_009e
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance void class NAnt.Core.ElementContainer::Execute()
+	IL_0018:  ret 
+    } // end of method When::Execute
 
-	IL_0033:  ldarg.1 
-	IL_0034:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
-	IL_0039:  stloc.1 
-	IL_003a:  ldarg.0 
-	IL_003b:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.GacCache::_gacQueryCache
-	IL_0040:  ldloc.1 
-	IL_0041:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	IL_0046:  brfalse IL_0063
+	.property instance bool Test ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 74 65 73 74 01 00 54 02 08 52 65 71 75   // ...test..T..Requ
+		69 72 65 64 01                                  ) // ired.
 
-	IL_004b:  nop 
-	IL_004c:  ldarg.0 
-	IL_004d:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.GacCache::_gacQueryCache
-	IL_0052:  ldloc.1 
-	IL_0053:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0058:  unbox.any [mscorlib]System.Boolean
-	IL_005d:  stloc.0 
-	IL_005e:  br IL_009e
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	IL_0063:  ldarg.0 
-	IL_0064:  ldc.i4.1 
-	IL_0065:  stfld bool NAnt.Core.Util.GacCache::_hasLoadedAssembly
-	IL_006a:  ldarg.0 
-	IL_006b:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.GacCache::_gacQueryCache
-	IL_0070:  ldloc.1 
-	IL_0071:  ldarg.0 
-	IL_0072:  call instance class NAnt.Core.Util.GacCache/GacResolver class NAnt.Core.Util.GacCache::get_Resolver()
-	IL_0077:  ldloc.1 
-	IL_0078:  callvirt instance bool class NAnt.Core.Util.GacCache/GacResolver::IsAssemblyInGac(string)
-	IL_007d:  box [mscorlib]System.Boolean
-	IL_0082:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0087:  ldarg.0 
-	IL_0088:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.GacCache::_gacQueryCache
-	IL_008d:  ldloc.1 
-	IL_008e:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0093:  unbox.any [mscorlib]System.Boolean
-	IL_0098:  stloc.0 
-	IL_0099:  br IL_009e
+		.get instance default bool NAnt.Core.Tasks.ChooseTask/When::get_Test () 
+		.set instance default void NAnt.Core.Tasks.ChooseTask/When::set_Test (bool 'value') 
+	}
+  } // end of class When
 
-	IL_009e:  ldloc.0 
-	IL_009f:  ret 
-    } // end of method GacCache::IsAssemblyInGac
+  } // end of class NAnt.Core.Tasks.ChooseTask
+}
 
-	.property instance class NAnt.Core.Project Project ()
-	{
-		.get instance default class NAnt.Core.Project NAnt.Core.Util.GacCache::get_Project () 
-	}
-	.property instance class [mscorlib]System.AppDomain Domain ()
-	{
-		.get instance default class [mscorlib]System.AppDomain NAnt.Core.Util.GacCache::get_Domain () 
-	}
-	.property instance class NAnt.Core.Util.GacCache/GacResolver Resolver ()
-	{
-		.get instance default class NAnt.Core.Util.GacCache/GacResolver NAnt.Core.Util.GacCache::get_Resolver () 
-	}
-  .class nested private auto ansi beforefieldinit GacResolver
-  	extends [mscorlib]System.MarshalByRefObject
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit MkDirTask
+  	extends NAnt.Core.Task
   {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 6D 6B 64 69 72 00 00 ) // ...mkdir..
 
-    // method line 1489
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _dir
+
+    // method line 1309
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1a648
+        // Method begins at RVA 0x18033
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.MarshalByRefObject::'.ctor'()
+	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
 	IL_0006:  ret 
-    } // end of method GacResolver::.ctor
+    } // end of method MkDirTask::.ctor
 
-    // method line 1490
-    .method public virtual hidebysig 
-           instance default object InitializeLifetimeService ()  cil managed 
+    // method line 1310
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Dir ()  cil managed 
     {
-        // Method begins at RVA 0x1a650
-	// Code size 47 (0x2f)
-	.maxstack 2
+        // Method begins at RVA 0x1803c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Runtime.Remoting.Lifetime.ILease	V_0,
-		object	V_1)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance object class [mscorlib]System.MarshalByRefObject::InitializeLifetimeService()
-	IL_0007:  castclass [mscorlib]System.Runtime.Remoting.Lifetime.ILease
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  callvirt instance valuetype [mscorlib]System.Runtime.Remoting.Lifetime.LeaseState class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::get_CurrentState()
-	IL_0013:  ldc.i4.1 
-	IL_0014:  bne.un IL_0026
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.MkDirTask::_dir
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0019:  nop 
-	IL_001a:  ldloc.0 
-	IL_001b:  ldsfld valuetype [mscorlib]System.TimeSpan [mscorlib]System.TimeSpan::Zero
-	IL_0020:  callvirt instance void class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::set_InitialLeaseTime(valuetype [mscorlib]System.TimeSpan)
-	IL_0025:  nop 
-	IL_0026:  ldloc.0 
-	IL_0027:  stloc.1 
-	IL_0028:  br IL_002d
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MkDirTask::get_Dir
 
-	IL_002d:  ldloc.1 
-	IL_002e:  ret 
-    } // end of method GacResolver::InitializeLifetimeService
+    // method line 1311
+    .method public hidebysig specialname 
+           instance default void set_Dir (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x18057
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.MkDirTask::_dir
+	IL_0008:  ret 
+    } // end of method MkDirTask::set_Dir
 
-    // method line 1491
-    .method public hidebysig 
-           instance default bool IsAssemblyInGac (string assemblyFile)  cil managed 
+    // method line 1312
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x1a68c
-	// Code size 82 (0x52)
-	.maxstack 1
+        // Method begins at RVA 0x18064
+	// Code size 120 (0x78)
+	.maxstack 7
 	.locals init (
-		class [mscorlib]System.Reflection.AssemblyName	V_0,
-		bool	V_1,
-		class [mscorlib]System.Reflection.Assembly	V_2)
+		class [mscorlib]System.Exception	V_0)
 	IL_0000:  nop 
 	.try { // 0
 	  IL_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  call class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.AssemblyName::GetAssemblyName(string)
-	  IL_0008:  stloc.0 
-	  IL_0009:  ldloc.0 
-	  IL_000a:  callvirt instance unsigned int8[] class [mscorlib]System.Reflection.AssemblyName::GetPublicKeyToken()
-	  IL_000f:  brtrue IL_001c
-
-	  IL_0014:  nop 
-	  IL_0015:  ldc.i4.0 
-	  IL_0016:  stloc.1 
-	  IL_0017:  leave IL_0050
-
-	  IL_001c:  ldloc.0 
-	  IL_001d:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::Load(class [mscorlib]System.Reflection.AssemblyName)
-	  IL_0022:  stloc.2 
-	  IL_0023:  ldsfld bool NAnt.Core.PlatformHelper::IsMono
-	  IL_0028:  brfalse IL_003a
-
-	  IL_002d:  nop 
-	  IL_002e:  ldloc.2 
-	  IL_002f:  callvirt instance bool class [mscorlib]System.Reflection.Assembly::get_GlobalAssemblyCache()
-	  IL_0034:  stloc.1 
-	  IL_0035:  leave IL_0050
+	  IL_0002:  ldarg.0 
+	  IL_0003:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.MkDirTask::get_Dir()
+	  IL_0008:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_000d:  brtrue IL_0043
 
-	  IL_003a:  nop 
-	  IL_003b:  ldloc.2 
-	  IL_003c:  call bool class [mscorlib]System.Runtime.InteropServices.RuntimeEnvironment::FromGlobalAccessCache(class [mscorlib]System.Reflection.Assembly)
-	  IL_0041:  stloc.1 
-	  IL_0042:  leave IL_0050
+	  IL_0012:  nop 
+	  IL_0013:  ldarg.0 
+	  IL_0014:  ldc.i4 3000
+	  IL_0019:  ldstr "Creating directory '{0}'."
+	  IL_001e:  ldc.i4.1 
+	  IL_001f:  newarr [mscorlib]System.Object
+	  IL_0024:  dup 
+	  IL_0025:  ldc.i4.0 
+	  IL_0026:  ldarg.0 
+	  IL_0027:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.MkDirTask::get_Dir()
+	  IL_002c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0031:  stelem.ref 
+	  IL_0032:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0037:  ldarg.0 
+	  IL_0038:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.MkDirTask::get_Dir()
+	  IL_003d:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
+	  IL_0042:  nop 
+	  IL_0043:  nop 
+	  IL_0044:  leave IL_0077
 
 	} // end .try 0
-	catch class [mscorlib]System.Object { // 0
-	  IL_0047:  pop 
-	  IL_0048:  nop 
-	  IL_0049:  ldc.i4.0 
-	  IL_004a:  stloc.1 
-	  IL_004b:  leave IL_0050
-
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0049:  stloc.0 
+	  IL_004a:  nop 
+	  IL_004b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0050:  ldstr "NA1137"
+	  IL_0055:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_005a:  ldarg.0 
+	  IL_005b:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.MkDirTask::get_Dir()
+	  IL_0060:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0065:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_006a:  ldarg.0 
+	  IL_006b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0070:  ldloc.0 
+	  IL_0071:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0076:  throw 
 	} // end handler 0
-	IL_0050:  ldloc.1 
-	IL_0051:  ret 
-    } // end of method GacResolver::IsAssemblyInGac
+	IL_0077:  ret 
+    } // end of method MkDirTask::ExecuteTask
 
-  } // end of class GacResolver
+	.property instance class [mscorlib]System.IO.DirectoryInfo Dir ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 03 64 69 72 01 00 54 02 08 52 65 71 75 69   // ...dir..T..Requi
+		72 65 64 01                                     ) // red.
 
-  } // end of class NAnt.Core.Util.GacCache
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.MkDirTask::get_Dir () 
+		.set instance default void NAnt.Core.Tasks.MkDirTask::set_Dir (class [mscorlib]System.IO.DirectoryInfo 'value') 
+	}
+  } // end of class NAnt.Core.Tasks.MkDirTask
 }
 
-.namespace NAnt.Core.Util
+.namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit CommandLineArgumentAttribute
-  	extends [mscorlib]System.Attribute
+  .class public auto ansi beforefieldinit IfTask
+  	extends NAnt.Core.TaskContainer
   {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 80 00 00 00 02 00 54 02 0D 41 6C 6C 6F 77   // ........T..Allow
-		4D 75 6C 74 69 70 6C 65 00 54 02 09 49 6E 68 65   // Multiple.T..Inhe
-		72 69 74 65 64 01                               ) // rited.
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
 
-    .field  private  valuetype NAnt.Core.Util.CommandLineArgumentTypes _argumentType
-    .field  private  string _name
-    .field  private  string _shortName
-    .field  private  string _description
+    .field  private  string _propNameTrue
+    .field  private  string _propNameExists
+    .field  private  string _targetName
+    .field  private  string _test
+    .field  private  class NAnt.Core.Types.FileSet _compareFiles
+    .field  private  class NAnt.Core.Types.FileSet _uptodateFiles
 
-    // method line 1492
+    // method line 1313
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.Core.Util.CommandLineArgumentTypes argumentType)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1a6fc
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x180f8
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Attribute::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgumentAttribute::_argumentType
-	IL_000e:  ret 
-    } // end of method CommandLineArgumentAttribute::.ctor
+	IL_0001:  call instance void class NAnt.Core.TaskContainer::'.ctor'()
+	IL_0006:  ret 
+    } // end of method IfTask::.ctor
 
-    // method line 1493
+    // method line 1314
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Util.CommandLineArgumentTypes get_Type ()  cil managed 
+           instance default void set_UpToDateFile (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1a70c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.Core.Util.CommandLineArgumentTypes	V_0)
+        // Method begins at RVA 0x18100
+	// Code size 90 (0x5a)
+	.maxstack 2
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgumentAttribute::_argumentType
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
+	IL_0007:  brtrue IL_0047
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineArgumentAttribute::get_Type
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0013:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
+	IL_0018:  ldarg.0 
+	IL_0019:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
+	IL_001e:  ldarg.0 
+	IL_001f:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_0024:  ldarg.0 
+	IL_0025:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
+	IL_002a:  ldarg.0 
+	IL_002b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0030:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_0035:  ldarg.0 
+	IL_0036:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
+	IL_003b:  ldarg.0 
+	IL_003c:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
+	IL_0041:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0046:  nop 
+	IL_0047:  ldarg.0 
+	IL_0048:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
+	IL_004d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
+	IL_0052:  ldarg.1 
+	IL_0053:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0058:  pop 
+	IL_0059:  ret 
+    } // end of method IfTask::set_UpToDateFile
 
-    // method line 1494
+    // method line 1315
     .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+           instance default void set_CompareFile (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x18168
+	// Code size 90 (0x5a)
+	.maxstack 2
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
+	IL_0007:  brtrue IL_0047
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0013:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
+	IL_0018:  ldarg.0 
+	IL_0019:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
+	IL_001e:  ldarg.0 
+	IL_001f:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_0024:  ldarg.0 
+	IL_0025:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
+	IL_002a:  ldarg.0 
+	IL_002b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0030:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_0035:  ldarg.0 
+	IL_0036:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
+	IL_003b:  ldarg.0 
+	IL_003c:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
+	IL_0041:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0046:  nop 
+	IL_0047:  ldarg.0 
+	IL_0048:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
+	IL_004d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
+	IL_0052:  ldarg.1 
+	IL_0053:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0058:  pop 
+	IL_0059:  ret 
+    } // end of method IfTask::set_CompareFile
+
+    // method line 1316
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_CompareFiles ()  cil managed 
     {
-        // Method begins at RVA 0x1a728
+        // Method begins at RVA 0x181d0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Util.CommandLineArgumentAttribute::_name
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineArgumentAttribute::get_Name
+    } // end of method IfTask::get_CompareFiles
 
-    // method line 1495
+    // method line 1317
     .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
+           instance default void set_CompareFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x1a743
+        // Method begins at RVA 0x181eb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Util.CommandLineArgumentAttribute::_name
+	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
 	IL_0008:  ret 
-    } // end of method CommandLineArgumentAttribute::set_Name
+    } // end of method IfTask::set_CompareFiles
 
-    // method line 1496
+    // method line 1318
     .method public hidebysig specialname 
-           instance default string get_ShortName ()  cil managed 
+           instance default class NAnt.Core.Types.FileSet get_UpToDateFiles ()  cil managed 
     {
-        // Method begins at RVA 0x1a750
+        // Method begins at RVA 0x181f8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Util.CommandLineArgumentAttribute::_shortName
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineArgumentAttribute::get_ShortName
+    } // end of method IfTask::get_UpToDateFiles
 
-    // method line 1497
+    // method line 1319
     .method public hidebysig specialname 
-           instance default void set_ShortName (string 'value')  cil managed 
+           instance default void set_UpToDateFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x1a76b
+        // Method begins at RVA 0x18213
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Util.CommandLineArgumentAttribute::_shortName
+	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_uptodateFiles
 	IL_0008:  ret 
-    } // end of method CommandLineArgumentAttribute::set_ShortName
+    } // end of method IfTask::set_UpToDateFiles
 
-    // method line 1498
+    // method line 1320
     .method public hidebysig specialname 
-           instance default string get_Description ()  cil managed 
+           instance default string get_PropertyNameTrue ()  cil managed 
     {
-        // Method begins at RVA 0x1a778
+        // Method begins at RVA 0x18220
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Util.CommandLineArgumentAttribute::_description
+	IL_0002:  ldfld string NAnt.Core.Tasks.IfTask::_propNameTrue
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineArgumentAttribute::get_Description
+    } // end of method IfTask::get_PropertyNameTrue
 
-    // method line 1499
+    // method line 1321
     .method public hidebysig specialname 
-           instance default void set_Description (string 'value')  cil managed 
+           instance default void set_PropertyNameTrue (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1a793
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1823b
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Util.CommandLineArgumentAttribute::_description
-	IL_0008:  ret 
-    } // end of method CommandLineArgumentAttribute::set_Description
-
-	.property instance valuetype NAnt.Core.Util.CommandLineArgumentTypes Type ()
-	{
-		.get instance default valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgumentAttribute::get_Type () 
-	}
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.Core.Util.CommandLineArgumentAttribute::get_Name () 
-		.set instance default void NAnt.Core.Util.CommandLineArgumentAttribute::set_Name (string 'value') 
-	}
-	.property instance string ShortName ()
-	{
-		.get instance default string NAnt.Core.Util.CommandLineArgumentAttribute::get_ShortName () 
-		.set instance default void NAnt.Core.Util.CommandLineArgumentAttribute::set_ShortName (string 'value') 
-	}
-	.property instance string Description ()
-	{
-		.get instance default string NAnt.Core.Util.CommandLineArgumentAttribute::get_Description () 
-		.set instance default void NAnt.Core.Util.CommandLineArgumentAttribute::set_Description (string 'value') 
-	}
-  } // end of class NAnt.Core.Util.CommandLineArgumentAttribute
-}
-
-.namespace NAnt.Core.Util
-{
-  .class public auto ansi sealed beforefieldinit DefaultCommandLineArgumentAttribute
-  	extends NAnt.Core.Util.CommandLineArgumentAttribute
-  {
-    .custom instance void class [mscorlib]System.AttributeUsageAttribute::'.ctor'(valuetype [mscorlib]System.AttributeTargets) =  (
-		01 00 80 00 00 00 02 00 54 02 0D 41 6C 6C 6F 77   // ........T..Allow
-		4D 75 6C 74 69 70 6C 65 00 54 02 09 49 6E 68 65   // Multiple.T..Inhe
-		72 69 74 65 64 01                               ) // rited.
-
-
-    // method line 1500
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.Core.Util.CommandLineArgumentTypes argumentType)  cil managed 
-    {
-        // Method begins at RVA 0x1a79d
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes)
-	IL_0007:  nop 
-	IL_0008:  ret 
-    } // end of method DefaultCommandLineArgumentAttribute::.ctor
-
-  } // end of class NAnt.Core.Util.DefaultCommandLineArgumentAttribute
-}
-
-.namespace NAnt.Core.Util
-{
-  .class public auto ansi beforefieldinit CommandLineArgument
-  	extends [mscorlib]System.Object
-  {
-    .field  private  class [mscorlib]System.Type _elementType
-    .field  private  bool _seenValue
-    .field  private  valuetype NAnt.Core.Util.CommandLineArgumentTypes _argumentType
-    .field  private  class [mscorlib]System.Reflection.PropertyInfo _propertyInfo
-    .field  private  class NAnt.Core.Util.CommandLineArgumentAttribute _attribute
-    .field  private  object _argumentValue
-    .field  private  class [mscorlib]System.Collections.ArrayList _collectionValues
-    .field  private  class [System]System.Collections.Specialized.NameValueCollection _valuePairs
-
-    // method line 1501
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Util.CommandLineArgumentAttribute attribute, class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
-    {
-        // Method begins at RVA 0x1a7a8
-	// Code size 258 (0x102)
-	.maxstack 3
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.2 
-	IL_0010:  stfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_0015:  ldarg.0 
-	IL_0016:  ldc.i4.0 
-	IL_0017:  stfld bool NAnt.Core.Util.CommandLineArgument::_seenValue
-	IL_001c:  ldarg.0 
-	IL_001d:  ldarg.2 
-	IL_001e:  call class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::GetElementType(class [mscorlib]System.Reflection.PropertyInfo)
-	IL_0023:  stfld class [mscorlib]System.Type NAnt.Core.Util.CommandLineArgument::_elementType
-	IL_0028:  ldarg.0 
-	IL_0029:  ldarg.1 
-	IL_002a:  ldarg.2 
-	IL_002b:  call valuetype NAnt.Core.Util.CommandLineArgumentTypes class NAnt.Core.Util.CommandLineArgument::GetArgumentType(class NAnt.Core.Util.CommandLineArgumentAttribute, class [mscorlib]System.Reflection.PropertyInfo)
-	IL_0030:  stfld valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgument::_argumentType
-	IL_0035:  ldarg.0 
-	IL_0036:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsCollection()
-	IL_003b:  brtrue IL_004b
-
-	IL_0040:  ldarg.0 
-	IL_0041:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsArray()
-	IL_0046:  brfalse IL_005d
-
-	IL_004b:  nop 
-	IL_004c:  ldarg.0 
-	IL_004d:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0052:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Util.CommandLineArgument::_collectionValues
-	IL_0057:  nop 
-	IL_0058:  br IL_0075
-
-	IL_005d:  ldarg.0 
-	IL_005e:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection()
-	IL_0063:  brfalse IL_0075
-
-	IL_0068:  nop 
-	IL_0069:  ldarg.0 
-	IL_006a:  newobj instance void class [System]System.Collections.Specialized.NameValueCollection::'.ctor'()
-	IL_006f:  stfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.Util.CommandLineArgument::_valuePairs
-	IL_0074:  nop 
-	IL_0075:  ldarg.0 
-	IL_0076:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	IL_007b:  brfalse IL_0090
-
-	IL_0080:  ldarg.0 
-	IL_0081:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	IL_0086:  callvirt instance int32 string::get_Length()
-	IL_008b:  ldc.i4.0 
-	IL_008c:  cgt 
-	IL_008e:  br.s IL_0091
-
-	IL_0090:  ldc.i4.0 
-	IL_0091:  call void class [System]System.Diagnostics.Debug::Assert(bool)
-	IL_0096:  ldarg.0 
-	IL_0097:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsCollection()
-	IL_009c:  brtrue IL_00b7
-
-	IL_00a1:  ldarg.0 
-	IL_00a2:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsArray()
-	IL_00a7:  brtrue IL_00b7
-
-	IL_00ac:  ldarg.0 
-	IL_00ad:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection()
-	IL_00b2:  brfalse IL_00bf
-
-	IL_00b7:  ldarg.0 
-	IL_00b8:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_AllowMultiple()
-	IL_00bd:  br.s IL_00c0
-
-	IL_00bf:  ldc.i4.1 
-	IL_00c0:  ldstr "Collection and array arguments must have allow multiple"
-	IL_00c5:  call void class [System]System.Diagnostics.Debug::Assert(bool, string)
-	IL_00ca:  ldarg.0 
-	IL_00cb:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_Unique()
-	IL_00d0:  brfalse IL_00f6
-
-	IL_00d5:  ldarg.0 
-	IL_00d6:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsCollection()
-	IL_00db:  brtrue IL_00f3
-
-	IL_00e0:  ldarg.0 
-	IL_00e1:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsArray()
-	IL_00e6:  brtrue IL_00f3
-
-	IL_00eb:  ldarg.0 
-	IL_00ec:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection()
-	IL_00f1:  br.s IL_00f4
-
-	IL_00f3:  ldc.i4.1 
-	IL_00f4:  br.s IL_00f7
-
-	IL_00f6:  ldc.i4.1 
-	IL_00f7:  ldstr "Unique only applicable to collection arguments"
-	IL_00fc:  call void class [System]System.Diagnostics.Debug::Assert(bool, string)
-	IL_0101:  ret 
-    } // end of method CommandLineArgument::.ctor
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.IfTask::_propNameTrue
+	IL_000d:  ret 
+    } // end of method IfTask::set_PropertyNameTrue
 
-    // method line 1502
+    // method line 1322
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Reflection.PropertyInfo get_Property ()  cil managed 
+           instance default string get_PropertyNameExists ()  cil managed 
     {
-        // Method begins at RVA 0x1a8b8
+        // Method begins at RVA 0x1824c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Reflection.PropertyInfo	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
+	IL_0002:  ldfld string NAnt.Core.Tasks.IfTask::_propNameExists
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineArgument::get_Property
-
-    // method line 1503
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Type get_ValueType ()  cil managed 
-    {
-        // Method begins at RVA 0x1a8d4
-	// Code size 48 (0x30)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Type	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsCollection()
-	IL_0007:  brtrue IL_0017
-
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsArray()
-	IL_0012:  brfalse IL_0022
-
-	IL_0017:  ldarg.0 
-	IL_0018:  ldfld class [mscorlib]System.Type NAnt.Core.Util.CommandLineArgument::_elementType
-	IL_001d:  br IL_0028
-
-	IL_0022:  ldarg.0 
-	IL_0023:  call instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_Type()
-	IL_0028:  stloc.0 
-	IL_0029:  br IL_002e
-
-	IL_002e:  ldloc.0 
-	IL_002f:  ret 
-    } // end of method CommandLineArgument::get_ValueType
+    } // end of method IfTask::get_PropertyNameExists
 
-    // method line 1504
+    // method line 1323
     .method public hidebysig specialname 
-           instance default string get_LongName ()  cil managed 
+           instance default void set_PropertyNameExists (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1a910
-	// Code size 66 (0x42)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x18267
+	// Code size 14 (0xe)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
-	IL_0007:  brfalse IL_002e
-
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
-	IL_0012:  callvirt instance string class NAnt.Core.Util.CommandLineArgumentAttribute::get_Name()
-	IL_0017:  brfalse IL_002e
-
-	IL_001c:  nop 
-	IL_001d:  ldarg.0 
-	IL_001e:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
-	IL_0023:  callvirt instance string class NAnt.Core.Util.CommandLineArgumentAttribute::get_Name()
-	IL_0028:  stloc.0 
-	IL_0029:  br IL_0040
-
-	IL_002e:  nop 
-	IL_002f:  ldarg.0 
-	IL_0030:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_0035:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_003a:  stloc.0 
-	IL_003b:  br IL_0040
-
-	IL_0040:  ldloc.0 
-	IL_0041:  ret 
-    } // end of method CommandLineArgument::get_LongName
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.IfTask::_propNameExists
+	IL_000d:  ret 
+    } // end of method IfTask::set_PropertyNameExists
 
-    // method line 1505
+    // method line 1324
     .method public hidebysig specialname 
-           instance default string get_ShortName ()  cil managed 
+           instance default string get_TargetNameExists ()  cil managed 
     {
-        // Method begins at RVA 0x1a960
-	// Code size 40 (0x28)
+        // Method begins at RVA 0x18278
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
-	IL_0007:  brfalse IL_001e
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
-	IL_0013:  callvirt instance string class NAnt.Core.Util.CommandLineArgumentAttribute::get_ShortName()
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_0026
-
-	IL_001e:  nop 
-	IL_001f:  ldnull 
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
+	IL_0002:  ldfld string NAnt.Core.Tasks.IfTask::_targetName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method CommandLineArgument::get_ShortName
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IfTask::get_TargetNameExists
 
-    // method line 1506
+    // method line 1325
     .method public hidebysig specialname 
-           instance default string get_Description ()  cil managed 
+           instance default void set_TargetNameExists (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1a994
-	// Code size 40 (0x28)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x18293
+	// Code size 14 (0xe)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
-	IL_0007:  brfalse IL_001e
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
-	IL_0013:  callvirt instance string class NAnt.Core.Util.CommandLineArgumentAttribute::get_Description()
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_0026
-
-	IL_001e:  nop 
-	IL_001f:  ldnull 
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
-
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method CommandLineArgument::get_Description
-
-    // method line 1507
-    .method public hidebysig specialname 
-           instance default bool get_IsRequired ()  cil managed 
-    {
-        // Method begins at RVA 0x1a9c8
-	// Code size 23 (0x17)
-	.maxstack 3
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgument::_argumentType
-	IL_0008:  ldc.i4.1 
-	IL_0009:  and 
-	IL_000a:  ceq 
-	IL_000c:  ldc.i4.0 
-	IL_000d:  ceq 
-	IL_000f:  stloc.0 
-	IL_0010:  br IL_0015
-
-	IL_0015:  ldloc.0 
-	IL_0016:  ret 
-    } // end of method CommandLineArgument::get_IsRequired
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.IfTask::_targetName
+	IL_000d:  ret 
+    } // end of method IfTask::set_TargetNameExists
 
-    // method line 1508
+    // method line 1326
     .method public hidebysig specialname 
-           instance default bool get_SeenValue ()  cil managed 
+           instance default string get_Test ()  cil managed 
     {
-        // Method begins at RVA 0x1a9ec
+        // Method begins at RVA 0x182a4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Util.CommandLineArgument::_seenValue
+	IL_0002:  ldfld string NAnt.Core.Tasks.IfTask::_test
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineArgument::get_SeenValue
+    } // end of method IfTask::get_Test
 
-    // method line 1509
+    // method line 1327
     .method public hidebysig specialname 
-           instance default bool get_AllowMultiple ()  cil managed 
+           instance default void set_Test (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1aa08
-	// Code size 59 (0x3b)
-	.maxstack 3
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x182bf
+	// Code size 14 (0xe)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsCollection()
-	IL_0007:  brtrue IL_0022
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.IfTask::_test
+	IL_000d:  ret 
+    } // end of method IfTask::set_Test
 
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsArray()
-	IL_0012:  brtrue IL_0022
+    // method line 1328
+    .method family virtual hidebysig newslot specialname 
+           instance default bool get_ConditionsTrue ()  cil managed 
+    {
+        // Method begins at RVA 0x182d0
+	// Code size 457 (0x1c9)
+	.maxstack 7
+	.locals init (
+		bool	V_0,
+		bool	V_1,
+		class [mscorlib]System.Exception	V_2,
+		class [mscorlib]System.IO.FileInfo	V_3,
+		string	V_4,
+		bool	V_5)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  call instance string class NAnt.Core.Tasks.IfTask::get_Test()
+	IL_0009:  brfalse IL_002d
 
-	IL_0017:  ldarg.0 
-	IL_0018:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection()
-	IL_001d:  brfalse IL_0032
+	IL_000e:  nop 
+	IL_000f:  ldarg.0 
+	IL_0010:  call instance string class NAnt.Core.Tasks.IfTask::get_Test()
+	IL_0015:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001a:  call bool class [mscorlib]System.Convert::ToBoolean(string, class [mscorlib]System.IFormatProvider)
+	IL_001f:  brtrue IL_002c
 
-	IL_0022:  ldc.i4.0 
-	IL_0023:  ldarg.0 
-	IL_0024:  ldfld valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgument::_argumentType
-	IL_0029:  ldc.i4.4 
-	IL_002a:  and 
-	IL_002b:  ceq 
-	IL_002d:  ldc.i4.0 
-	IL_002e:  ceq 
-	IL_0030:  br.s IL_0033
+	IL_0024:  nop 
+	IL_0025:  ldc.i4.0 
+	IL_0026:  stloc.1 
+	IL_0027:  br IL_01c7
 
-	IL_0032:  ldc.i4.0 
-	IL_0033:  stloc.0 
-	IL_0034:  br IL_0039
+	IL_002c:  nop 
+	IL_002d:  ldarg.0 
+	IL_002e:  call instance string class NAnt.Core.Tasks.IfTask::get_TargetNameExists()
+	IL_0033:  brfalse IL_006e
 
+	IL_0038:  nop 
 	IL_0039:  ldloc.0 
-	IL_003a:  ret 
-    } // end of method CommandLineArgument::get_AllowMultiple
-
-    // method line 1510
-    .method public hidebysig specialname 
-           instance default bool get_Unique ()  cil managed 
-    {
-        // Method begins at RVA 0x1aa50
-	// Code size 23 (0x17)
-	.maxstack 3
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgument::_argumentType
-	IL_0008:  ldc.i4.2 
-	IL_0009:  and 
-	IL_000a:  ceq 
-	IL_000c:  ldc.i4.0 
-	IL_000d:  ceq 
-	IL_000f:  stloc.0 
-	IL_0010:  br IL_0015
-
-	IL_0015:  ldloc.0 
-	IL_0016:  ret 
-    } // end of method CommandLineArgument::get_Unique
+	IL_003a:  brfalse IL_005d
 
-    // method line 1511
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Type get_Type ()  cil managed 
-    {
-        // Method begins at RVA 0x1aa74
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Type	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_0007:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method CommandLineArgument::get_Type
-
-    // method line 1512
-    .method public hidebysig specialname 
-           instance default bool get_IsCollection ()  cil managed 
-    {
-        // Method begins at RVA 0x1aa94
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_Type()
-	IL_0007:  call bool class NAnt.Core.Util.CommandLineArgument::IsCollectionType(class [mscorlib]System.Type)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method CommandLineArgument::get_IsCollection
-
-    // method line 1513
-    .method public hidebysig specialname 
-           instance default bool get_IsNameValueCollection ()  cil managed 
-    {
-        // Method begins at RVA 0x1aab4
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_Type()
-	IL_0007:  call bool class NAnt.Core.Util.CommandLineArgument::IsNameValueCollectionType(class [mscorlib]System.Type)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method CommandLineArgument::get_IsNameValueCollection
-
-    // method line 1514
-    .method public hidebysig specialname 
-           instance default bool get_IsArray ()  cil managed 
-    {
-        // Method begins at RVA 0x1aad4
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_Type()
-	IL_0007:  call bool class NAnt.Core.Util.CommandLineArgument::IsArrayType(class [mscorlib]System.Type)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method CommandLineArgument::get_IsArray
-
-    // method line 1515
-    .method public hidebysig specialname 
-           instance default bool get_IsDefault ()  cil managed 
-    {
-        // Method begins at RVA 0x1aaf4
-	// Code size 37 (0x25)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
-	IL_0007:  brfalse IL_001c
-
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld class NAnt.Core.Util.CommandLineArgumentAttribute NAnt.Core.Util.CommandLineArgument::_attribute
-	IL_0012:  isinst NAnt.Core.Util.DefaultCommandLineArgumentAttribute
-	IL_0017:  ldnull 
-	IL_0018:  cgt.un 
-	IL_001a:  br.s IL_001d
-
-	IL_001c:  ldc.i4.0 
-	IL_001d:  stloc.0 
-	IL_001e:  br IL_0023
-
-	IL_0023:  ldloc.0 
-	IL_0024:  ret 
-    } // end of method CommandLineArgument::get_IsDefault
-
-    // method line 1516
-    .method public hidebysig specialname 
-           instance default bool get_IsExclusive ()  cil managed 
-    {
-        // Method begins at RVA 0x1ab28
-	// Code size 23 (0x17)
-	.maxstack 3
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld valuetype NAnt.Core.Util.CommandLineArgumentTypes NAnt.Core.Util.CommandLineArgument::_argumentType
-	IL_0008:  ldc.i4.8 
-	IL_0009:  and 
-	IL_000a:  ceq 
-	IL_000c:  ldc.i4.0 
-	IL_000d:  ceq 
-	IL_000f:  stloc.0 
-	IL_0010:  br IL_0015
-
-	IL_0015:  ldloc.0 
-	IL_0016:  ret 
-    } // end of method CommandLineArgument::get_IsExclusive
-
-    // method line 1517
-    .method public hidebysig 
-           instance default void Finish (object destination)  cil managed 
-    {
-        // Method begins at RVA 0x1ab4c
-        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
-	// Code size 1197 (0x4ad)
-	.maxstack 9
-	.locals init (
-		object	V_0,
-		object	V_1,
-		class [mscorlib]System.Reflection.MethodInfo	V_2,
-		class [mscorlib]System.Reflection.MethodInfo	V_3,
-		class [mscorlib]System.Reflection.MethodInfo[]	V_4,
-		int32	V_5,
-		class [mscorlib]System.Reflection.ParameterInfo	V_6,
-		object	V_7,
-		class [mscorlib]System.Collections.IEnumerator	V_8,
-		class [mscorlib]System.IDisposable	V_9,
-		class [mscorlib]System.Exception	V_10,
-		object	V_11,
-		object	V_12,
-		class [mscorlib]System.Reflection.MethodInfo	V_13,
-		class [mscorlib]System.Reflection.MethodInfo	V_14,
-		class [mscorlib]System.Reflection.MethodInfo[]	V_15,
-		int32	V_16,
-		string	V_17,
-		class [mscorlib]System.Collections.IEnumerator	V_18,
-		class [mscorlib]System.IDisposable	V_19,
-		class [mscorlib]System.Exception	V_20)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsRequired()
-	IL_0007:  brfalse IL_0033
-
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_SeenValue()
-	IL_0012:  brtrue IL_0033
-
-	IL_0017:  nop 
-	IL_0018:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001d:  ldstr "Missing required argument '-{0}'."
-	IL_0022:  ldarg.0 
-	IL_0023:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	IL_0028:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002d:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
-	IL_0032:  throw 
-	IL_0033:  ldarg.0 
-	IL_0034:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsArray()
-	IL_0039:  brfalse IL_006a
-
-	IL_003e:  nop 
 	IL_003f:  ldarg.0 
-	IL_0040:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_0045:  ldarg.1 
-	IL_0046:  ldarg.0 
-	IL_0047:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Util.CommandLineArgument::_collectionValues
-	IL_004c:  ldarg.0 
-	IL_004d:  ldfld class [mscorlib]System.Type NAnt.Core.Util.CommandLineArgument::_elementType
-	IL_0052:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
-	IL_0057:  ldc.i4.0 
-	IL_0058:  ldnull 
-	IL_0059:  ldnull 
-	IL_005a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_005f:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_0064:  nop 
-	IL_0065:  br IL_04ac
-
-	IL_006a:  ldarg.0 
-	IL_006b:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsCollection()
-	IL_0070:  brfalse IL_0256
-
-	IL_0075:  nop 
-	IL_0076:  ldarg.0 
-	IL_0077:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_007c:  ldarg.1 
-	IL_007d:  ldc.i4.0 
-	IL_007e:  ldnull 
-	IL_007f:  ldnull 
-	IL_0080:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0085:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_008a:  brtrue IL_00fb
-
-	IL_008f:  nop 
-	IL_0090:  ldarg.0 
-	IL_0091:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_0096:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
-	IL_009b:  brtrue IL_00cb
-
-	IL_00a0:  nop 
-	IL_00a1:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00a6:  ldstr "NA1171"
-	IL_00ab:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00b0:  ldstr " but is not initialized and does not allow thecollection to be initialized."
-	IL_00b5:  call string string::Concat(string, string)
-	IL_00ba:  ldarg.0 
-	IL_00bb:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	IL_00c0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00c5:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
-	IL_00ca:  throw 
-	IL_00cb:  ldarg.0 
-	IL_00cc:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_00d1:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_00d6:  ldc.i4.s 0x14
-	IL_00d8:  ldnull 
-	IL_00d9:  ldnull 
-	IL_00da:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00df:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_00e4:  stloc.0 
-	IL_00e5:  ldarg.0 
-	IL_00e6:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_00eb:  ldarg.1 
-	IL_00ec:  ldloc.0 
-	IL_00ed:  ldc.i4.0 
-	IL_00ee:  ldnull 
-	IL_00ef:  ldnull 
-	IL_00f0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00f5:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_00fa:  nop 
-	IL_00fb:  ldarg.0 
-	IL_00fc:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_0101:  ldarg.1 
-	IL_0102:  ldc.i4.0 
-	IL_0103:  ldnull 
-	IL_0104:  ldnull 
-	IL_0105:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_010a:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_010f:  stloc.1 
-	IL_0110:  ldnull 
-	IL_0111:  stloc.2 
-	IL_0112:  nop 
-	IL_0113:  ldloc.1 
-	IL_0114:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0119:  ldc.i4.s 0x14
-	IL_011b:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_0120:  stloc.s 4
-	IL_0122:  ldc.i4.0 
-	IL_0123:  stloc.s 5
-	IL_0125:  br IL_018a
-
-	IL_012a:  ldloc.s 4
-	IL_012c:  ldloc.s 5
-	IL_012e:  ldelem.ref 
-	IL_012f:  stloc.3 
-	IL_0130:  nop 
-	IL_0131:  ldloc.3 
-	IL_0132:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_0137:  ldstr "Add"
-	IL_013c:  call bool string::op_Equality(string, string)
-	IL_0141:  brfalse IL_0183
-
-	IL_0146:  ldloc.3 
-	IL_0147:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_014c:  ldlen 
-	IL_014d:  conv.i4 
-	IL_014e:  ldc.i4.1 
-	IL_014f:  bne.un IL_0183
-
-	IL_0154:  nop 
-	IL_0155:  ldloc.3 
-	IL_0156:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_015b:  ldc.i4.0 
-	IL_015c:  ldelem.ref 
-	IL_015d:  stloc.s 6
-	IL_015f:  ldloc.s 6
-	IL_0161:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	IL_0166:  ldtoken [mscorlib]System.Object
-	IL_016b:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0170:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0175:  brfalse IL_0182
-
-	IL_017a:  nop 
-	IL_017b:  ldloc.3 
-	IL_017c:  stloc.2 
-	IL_017d:  br IL_0195
-
-	IL_0182:  nop 
-	IL_0183:  nop 
-	IL_0184:  ldloc.s 5
-	IL_0186:  ldc.i4.1 
-	IL_0187:  add 
-	IL_0188:  stloc.s 5
-	IL_018a:  ldloc.s 5
-	IL_018c:  ldloc.s 4
-	IL_018e:  ldlen 
-	IL_018f:  conv.i4 
-	IL_0190:  blt IL_012a
-
-	IL_0195:  ldloc.2 
-	IL_0196:  ldnull 
-	IL_0197:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_019c:  brfalse IL_01c2
-
-	IL_01a1:  nop 
-	IL_01a2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01a7:  ldstr "NA1169"
-	IL_01ac:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_01b1:  ldarg.0 
-	IL_01b2:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	IL_01b7:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_01bc:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
-	IL_01c1:  throw 
-	IL_01c2:  nop 
-	.try { // 1
-	  IL_01c3:  nop 
-	  IL_01c4:  nop 
-	  IL_01c5:  ldarg.0 
-	  IL_01c6:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Util.CommandLineArgument::_collectionValues
-	  IL_01cb:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	  IL_01d0:  stloc.s 8
-	  .try { // 0
-	    IL_01d2:  br IL_01fc
+	IL_0040:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0045:  callvirt instance class NAnt.Core.TargetCollection class NAnt.Core.Project::get_Targets()
+	IL_004a:  ldarg.0 
+	IL_004b:  call instance string class NAnt.Core.Tasks.IfTask::get_TargetNameExists()
+	IL_0050:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
+	IL_0055:  ldnull 
+	IL_0056:  ceq 
+	IL_0058:  ldc.i4.0 
+	IL_0059:  ceq 
+	IL_005b:  br.s IL_005e
 
-	    IL_01d7:  ldloc.s 8
-	    IL_01d9:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_01de:  stloc.s 7
-	    IL_01e0:  nop 
-	    IL_01e1:  ldloc.2 
-	    IL_01e2:  ldloc.1 
-	    IL_01e3:  ldc.i4.0 
-	    IL_01e4:  ldnull 
-	    IL_01e5:  ldc.i4.1 
-	    IL_01e6:  newarr [mscorlib]System.Object
-	    IL_01eb:  dup 
-	    IL_01ec:  ldc.i4.0 
-	    IL_01ed:  ldloc.s 7
-	    IL_01ef:  stelem.ref 
-	    IL_01f0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_01f5:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	    IL_01fa:  pop 
-	    IL_01fb:  nop 
-	    IL_01fc:  ldloc.s 8
-	    IL_01fe:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_0203:  brtrue IL_01d7
+	IL_005d:  ldc.i4.0 
+	IL_005e:  stloc.0 
+	IL_005f:  ldloc.0 
+	IL_0060:  brtrue IL_006d
 
-	    IL_0208:  leave IL_0224
+	IL_0065:  nop 
+	IL_0066:  ldc.i4.0 
+	IL_0067:  stloc.1 
+	IL_0068:  br IL_01c7
 
-	  } // end .try 0
-	  finally  { // 0
-	    IL_020d:  ldloc.s 8
-	    IL_020f:  isinst [mscorlib]System.IDisposable
-	    IL_0214:  dup 
-	    IL_0215:  stloc.s 9
-	    IL_0217:  brfalse IL_0223
+	IL_006d:  nop 
+	IL_006e:  ldarg.0 
+	IL_006f:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameExists()
+	IL_0074:  brfalse IL_00a4
 
-	    IL_021c:  ldloc.s 9
-	    IL_021e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0223:  endfinally 
-	  } // end handler 0
-	  IL_0224:  nop 
-	  IL_0225:  leave IL_024f
+	IL_0079:  nop 
+	IL_007a:  ldloc.0 
+	IL_007b:  brfalse IL_0093
 
-	} // end .try 1
-	catch class [mscorlib]System.Exception { // 1
-	  IL_022a:  stloc.s 10
-	  IL_022c:  nop 
-	  IL_022d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0232:  ldstr "NA1173"
-	  IL_0237:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_023c:  ldarg.0 
-	  IL_023d:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	  IL_0242:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0247:  ldloc.s 10
-	  IL_0249:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string, class [mscorlib]System.Exception)
-	  IL_024e:  throw 
-	} // end handler 1
-	IL_024f:  nop 
-	IL_0250:  nop 
-	IL_0251:  br IL_04ac
+	IL_0080:  ldarg.0 
+	IL_0081:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0086:  ldarg.0 
+	IL_0087:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameExists()
+	IL_008c:  callvirt instance bool class NAnt.Core.PropertyDictionary::Contains(string)
+	IL_0091:  br.s IL_0094
 
-	IL_0256:  ldarg.0 
-	IL_0257:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection()
-	IL_025c:  brfalse IL_0483
+	IL_0093:  ldc.i4.0 
+	IL_0094:  stloc.0 
+	IL_0095:  ldloc.0 
+	IL_0096:  brtrue IL_00a3
 
-	IL_0261:  nop 
-	IL_0262:  ldarg.0 
-	IL_0263:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_0268:  ldarg.1 
-	IL_0269:  ldc.i4.0 
-	IL_026a:  ldnull 
-	IL_026b:  ldnull 
-	IL_026c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0271:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_0276:  brtrue IL_02e9
+	IL_009b:  nop 
+	IL_009c:  ldc.i4.0 
+	IL_009d:  stloc.1 
+	IL_009e:  br IL_01c7
 
-	IL_027b:  nop 
-	IL_027c:  ldarg.0 
-	IL_027d:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_0282:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
-	IL_0287:  brtrue IL_02b7
+	IL_00a3:  nop 
+	IL_00a4:  ldarg.0 
+	IL_00a5:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameTrue()
+	IL_00aa:  brfalse IL_010f
 
-	IL_028c:  nop 
-	IL_028d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0292:  ldstr "NA1171"
-	IL_0297:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_029c:  ldstr " but is not initialized and does not allow thecollection to be initialized."
-	IL_02a1:  call string string::Concat(string, string)
-	IL_02a6:  ldarg.0 
-	IL_02a7:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	IL_02ac:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_02b1:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
-	IL_02b6:  throw 
-	IL_02b7:  ldarg.0 
-	IL_02b8:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_02bd:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_02c2:  ldc.i4.s 0x14
-	IL_02c4:  ldnull 
-	IL_02c5:  ldnull 
-	IL_02c6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_02cb:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_02d0:  stloc.s 11
-	IL_02d2:  ldarg.0 
-	IL_02d3:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_02d8:  ldarg.1 
-	IL_02d9:  ldloc.s 11
-	IL_02db:  ldc.i4.0 
-	IL_02dc:  ldnull 
-	IL_02dd:  ldnull 
-	IL_02de:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_02e3:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_02e8:  nop 
-	IL_02e9:  ldarg.0 
-	IL_02ea:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_02ef:  ldarg.1 
-	IL_02f0:  ldc.i4.0 
-	IL_02f1:  ldnull 
-	IL_02f2:  ldnull 
-	IL_02f3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_02f8:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_02fd:  stloc.s 12
-	IL_02ff:  ldnull 
-	IL_0300:  stloc.s 13
-	IL_0302:  nop 
-	IL_0303:  ldloc.s 12
-	IL_0305:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_030a:  ldc.i4.s 0x14
-	IL_030c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_0311:  stloc.s 15
-	IL_0313:  ldc.i4.0 
-	IL_0314:  stloc.s 16
-	IL_0316:  br IL_039f
+	IL_00af:  nop 
+	.try { // 0
+	  IL_00b0:  nop 
+	  IL_00b1:  ldloc.0 
+	  IL_00b2:  brfalse IL_00cf
 
-	IL_031b:  ldloc.s 15
-	IL_031d:  ldloc.s 16
-	IL_031f:  ldelem.ref 
-	IL_0320:  stloc.s 14
-	IL_0322:  nop 
-	IL_0323:  ldloc.s 14
-	IL_0325:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_032a:  ldstr "Add"
-	IL_032f:  call bool string::op_Equality(string, string)
-	IL_0334:  brfalse IL_0398
+	  IL_00b7:  ldarg.0 
+	  IL_00b8:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	  IL_00bd:  ldarg.0 
+	  IL_00be:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameTrue()
+	  IL_00c3:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
+	  IL_00c8:  call bool bool::Parse(string)
+	  IL_00cd:  br.s IL_00d0
 
-	IL_0339:  ldloc.s 14
-	IL_033b:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_0340:  ldlen 
-	IL_0341:  conv.i4 
-	IL_0342:  ldc.i4.2 
-	IL_0343:  bne.un IL_0398
+	  IL_00cf:  ldc.i4.0 
+	  IL_00d0:  stloc.0 
+	  IL_00d1:  ldloc.0 
+	  IL_00d2:  brtrue IL_00df
 
-	IL_0348:  nop 
-	IL_0349:  ldloc.s 14
-	IL_034b:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_0350:  ldc.i4.0 
-	IL_0351:  ldelem.ref 
-	IL_0352:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	IL_0357:  ldtoken [mscorlib]System.String
-	IL_035c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0361:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0366:  brfalse IL_0397
+	  IL_00d7:  nop 
+	  IL_00d8:  ldc.i4.0 
+	  IL_00d9:  stloc.1 
+	  IL_00da:  leave IL_01c7
 
-	IL_036b:  ldloc.s 14
-	IL_036d:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_0372:  ldc.i4.1 
-	IL_0373:  ldelem.ref 
-	IL_0374:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	IL_0379:  ldtoken [mscorlib]System.String
-	IL_037e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0383:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0388:  brfalse IL_0397
+	  IL_00df:  nop 
+	  IL_00e0:  leave IL_010e
 
-	IL_038d:  nop 
-	IL_038e:  ldloc.s 14
-	IL_0390:  stloc.s 13
-	IL_0392:  br IL_03aa
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_00e5:  stloc.2 
+	  IL_00e6:  nop 
+	  IL_00e7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_00ec:  ldstr "NA1126"
+	  IL_00f1:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_00f6:  ldarg.0 
+	  IL_00f7:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameTrue()
+	  IL_00fc:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0101:  ldarg.0 
+	  IL_0102:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0107:  ldloc.2 
+	  IL_0108:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_010d:  throw 
+	} // end handler 0
+	IL_010e:  nop 
+	IL_010f:  ldarg.0 
+	IL_0110:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.IfTask::get_UpToDateFiles()
+	IL_0115:  brfalse IL_01c0
 
-	IL_0397:  nop 
-	IL_0398:  nop 
-	IL_0399:  ldloc.s 16
-	IL_039b:  ldc.i4.1 
-	IL_039c:  add 
-	IL_039d:  stloc.s 16
-	IL_039f:  ldloc.s 16
-	IL_03a1:  ldloc.s 15
-	IL_03a3:  ldlen 
-	IL_03a4:  conv.i4 
-	IL_03a5:  blt IL_031b
+	IL_011a:  nop 
+	IL_011b:  ldarg.0 
+	IL_011c:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.IfTask::get_UpToDateFiles()
+	IL_0121:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Types.FileSet::get_MostRecentLastWriteTimeFile()
+	IL_0126:  stloc.3 
+	IL_0127:  ldloc.3 
+	IL_0128:  brfalse IL_0138
 
-	IL_03aa:  ldloc.s 13
-	IL_03ac:  ldnull 
-	IL_03ad:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_03b2:  brfalse IL_03d8
+	IL_012d:  ldloc.3 
+	IL_012e:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0133:  brtrue IL_0151
 
-	IL_03b7:  nop 
-	IL_03b8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_03bd:  ldstr "NA1169"
-	IL_03c2:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_03c7:  ldarg.0 
-	IL_03c8:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	IL_03cd:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_03d2:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
-	IL_03d7:  throw 
-	IL_03d8:  nop 
-	.try { // 3
-	  IL_03d9:  nop 
-	  IL_03da:  nop 
-	  IL_03db:  ldarg.0 
-	  IL_03dc:  ldfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.Util.CommandLineArgument::_valuePairs
-	  IL_03e1:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System]System.Collections.Specialized.NameObjectCollectionBase::GetEnumerator()
-	  IL_03e6:  stloc.s 18
-	  .try { // 2
-	    IL_03e8:  br IL_0429
+	IL_0138:  nop 
+	IL_0139:  ldc.i4.0 
+	IL_013a:  stloc.0 
+	IL_013b:  ldarg.0 
+	IL_013c:  ldc.i4 2000
+	IL_0141:  ldstr "Uptodatefile(s) do(es) not exist."
+	IL_0146:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_014b:  nop 
+	IL_014c:  br IL_01b1
 
-	    IL_03ed:  ldloc.s 18
-	    IL_03ef:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_03f4:  castclass [mscorlib]System.String
-	    IL_03f9:  stloc.s 17
-	    IL_03fb:  nop 
-	    IL_03fc:  ldloc.s 13
-	    IL_03fe:  ldloc.s 12
-	    IL_0400:  ldc.i4.0 
-	    IL_0401:  ldnull 
-	    IL_0402:  ldc.i4.2 
-	    IL_0403:  newarr [mscorlib]System.Object
-	    IL_0408:  dup 
-	    IL_0409:  ldc.i4.0 
-	    IL_040a:  ldloc.s 17
-	    IL_040c:  stelem.ref 
-	    IL_040d:  dup 
-	    IL_040e:  ldc.i4.1 
-	    IL_040f:  ldarg.0 
-	    IL_0410:  ldfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.Util.CommandLineArgument::_valuePairs
-	    IL_0415:  ldloc.s 17
-	    IL_0417:  callvirt instance string class [System]System.Collections.Specialized.NameValueCollection::Get(string)
-	    IL_041c:  stelem.ref 
-	    IL_041d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0422:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	    IL_0427:  pop 
-	    IL_0428:  nop 
-	    IL_0429:  ldloc.s 18
-	    IL_042b:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_0430:  brtrue IL_03ed
+	IL_0151:  nop 
+	IL_0152:  ldarg.0 
+	IL_0153:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::_compareFiles
+	IL_0158:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_015d:  ldloc.3 
+	IL_015e:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0163:  call string class NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
+	IL_0168:  stloc.s 4
+	IL_016a:  ldloc.s 4
+	IL_016c:  ldnull 
+	IL_016d:  ceq 
+	IL_016f:  ldc.i4.0 
+	IL_0170:  ceq 
+	IL_0172:  stloc.s 5
+	IL_0174:  ldloc.s 5
+	IL_0176:  brfalse IL_01a1
 
-	    IL_0435:  leave IL_0451
+	IL_017b:  nop 
+	IL_017c:  ldarg.0 
+	IL_017d:  ldc.i4 2000
+	IL_0182:  ldstr "{0} is newer than {1}."
+	IL_0187:  ldc.i4.2 
+	IL_0188:  newarr [mscorlib]System.Object
+	IL_018d:  dup 
+	IL_018e:  ldc.i4.0 
+	IL_018f:  ldloc.s 4
+	IL_0191:  stelem.ref 
+	IL_0192:  dup 
+	IL_0193:  ldc.i4.1 
+	IL_0194:  ldloc.3 
+	IL_0195:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
+	IL_019a:  stelem.ref 
+	IL_019b:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_01a0:  nop 
+	IL_01a1:  ldloc.0 
+	IL_01a2:  brfalse IL_01ae
 
-	  } // end .try 2
-	  finally  { // 2
-	    IL_043a:  ldloc.s 18
-	    IL_043c:  isinst [mscorlib]System.IDisposable
-	    IL_0441:  dup 
-	    IL_0442:  stloc.s 19
-	    IL_0444:  brfalse IL_0450
+	IL_01a7:  ldloc.s 5
+	IL_01a9:  ldc.i4.0 
+	IL_01aa:  ceq 
+	IL_01ac:  br.s IL_01af
 
-	    IL_0449:  ldloc.s 19
-	    IL_044b:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0450:  endfinally 
-	  } // end handler 2
-	  IL_0451:  nop 
-	  IL_0452:  leave IL_047c
+	IL_01ae:  ldc.i4.0 
+	IL_01af:  stloc.0 
+	IL_01b0:  nop 
+	IL_01b1:  ldloc.0 
+	IL_01b2:  brtrue IL_01bf
 
-	} // end .try 3
-	catch class [mscorlib]System.Exception { // 3
-	  IL_0457:  stloc.s 20
-	  IL_0459:  nop 
-	  IL_045a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_045f:  ldstr "NA1173"
-	  IL_0464:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0469:  ldarg.0 
-	  IL_046a:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	  IL_046f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0474:  ldloc.s 20
-	  IL_0476:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string, class [mscorlib]System.Exception)
-	  IL_047b:  throw 
-	} // end handler 3
-	IL_047c:  nop 
-	IL_047d:  nop 
-	IL_047e:  br IL_04ac
+	IL_01b7:  nop 
+	IL_01b8:  ldc.i4.0 
+	IL_01b9:  stloc.1 
+	IL_01ba:  br IL_01c7
 
-	IL_0483:  nop 
-	IL_0484:  ldarg.0 
-	IL_0485:  ldfld object NAnt.Core.Util.CommandLineArgument::_argumentValue
-	IL_048a:  brfalse IL_04ab
+	IL_01bf:  nop 
+	IL_01c0:  ldloc.0 
+	IL_01c1:  stloc.1 
+	IL_01c2:  br IL_01c7
 
-	IL_048f:  nop 
-	IL_0490:  ldarg.0 
-	IL_0491:  ldfld class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::_propertyInfo
-	IL_0496:  ldarg.1 
-	IL_0497:  ldarg.0 
-	IL_0498:  ldfld object NAnt.Core.Util.CommandLineArgument::_argumentValue
-	IL_049d:  ldc.i4.0 
-	IL_049e:  ldnull 
-	IL_049f:  ldnull 
-	IL_04a0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_04a5:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_04aa:  nop 
-	IL_04ab:  nop 
-	IL_04ac:  ret 
-    } // end of method CommandLineArgument::Finish
+	IL_01c7:  ldloc.1 
+	IL_01c8:  ret 
+    } // end of method IfTask::get_ConditionsTrue
 
-    // method line 1518
-    .method public hidebysig 
-           instance default void SetValue (string 'value')  cil managed 
+    // method line 1329
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x1b03c
-	// Code size 211 (0xd3)
-	.maxstack 4
-	.locals init (
-		object	V_0)
+        // Method begins at RVA 0x184b8
+	// Code size 21 (0x15)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_SeenValue()
-	IL_0007:  brfalse IL_0038
-
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_AllowMultiple()
-	IL_0012:  brtrue IL_0038
-
-	IL_0017:  nop 
-	IL_0018:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001d:  ldstr "NA1175"
-	IL_0022:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0027:  ldarg.0 
-	IL_0028:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	IL_002d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0032:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
-	IL_0037:  throw 
-	IL_0038:  ldarg.0 
-	IL_0039:  ldc.i4.1 
-	IL_003a:  stfld bool NAnt.Core.Util.CommandLineArgument::_seenValue
-	IL_003f:  ldarg.0 
-	IL_0040:  ldarg.0 
-	IL_0041:  call instance class [mscorlib]System.Type class NAnt.Core.Util.CommandLineArgument::get_ValueType()
-	IL_0046:  ldarg.1 
-	IL_0047:  call instance object class NAnt.Core.Util.CommandLineArgument::ParseValue(class [mscorlib]System.Type, string)
-	IL_004c:  stloc.0 
-	IL_004d:  ldarg.0 
-	IL_004e:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsCollection()
-	IL_0053:  brtrue IL_0063
-
-	IL_0058:  ldarg.0 
-	IL_0059:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsArray()
-	IL_005e:  brfalse IL_00b7
-
-	IL_0063:  nop 
-	IL_0064:  ldarg.0 
-	IL_0065:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_Unique()
-	IL_006a:  brfalse IL_00a2
-
-	IL_006f:  ldarg.0 
-	IL_0070:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Util.CommandLineArgument::_collectionValues
-	IL_0075:  ldloc.0 
-	IL_0076:  callvirt instance bool class [mscorlib]System.Collections.ArrayList::Contains(object)
-	IL_007b:  brfalse IL_00a2
-
-	IL_0080:  nop 
-	IL_0081:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0086:  ldstr "NA1172"
-	IL_008b:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0090:  ldarg.1 
-	IL_0091:  ldarg.0 
-	IL_0092:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	IL_0097:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_009c:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
-	IL_00a1:  throw 
-	IL_00a2:  nop 
-	IL_00a3:  ldarg.0 
-	IL_00a4:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Util.CommandLineArgument::_collectionValues
-	IL_00a9:  ldloc.0 
-	IL_00aa:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_00af:  pop 
-	IL_00b0:  nop 
-	IL_00b1:  nop 
-	IL_00b2:  br IL_00d2
-
-	IL_00b7:  ldarg.0 
-	IL_00b8:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection()
-	IL_00bd:  brfalse IL_00c9
-
-	IL_00c2:  nop 
-	IL_00c3:  nop 
-	IL_00c4:  br IL_00d2
+	IL_0002:  callvirt instance bool class NAnt.Core.Tasks.IfTask::get_ConditionsTrue()
+	IL_0007:  brfalse IL_0014
 
-	IL_00c9:  nop 
-	IL_00ca:  ldarg.0 
-	IL_00cb:  ldloc.0 
-	IL_00cc:  stfld object NAnt.Core.Util.CommandLineArgument::_argumentValue
-	IL_00d1:  nop 
-	IL_00d2:  ret 
-    } // end of method CommandLineArgument::SetValue
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance void class NAnt.Core.TaskContainer::ExecuteTask()
+	IL_0013:  nop 
+	IL_0014:  ret 
+    } // end of method IfTask::ExecuteTask
 
-    // method line 1519
-    .method private hidebysig 
-           instance default object ParseValue (class [mscorlib]System.Type 'type', string stringData)  cil managed 
+    // method line 1330
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x1b11c
-	// Code size 810 (0x32a)
-	.maxstack 9
-	.locals init (
-		object	V_0,
-		class [System]System.Text.RegularExpressions.Match	V_1,
-		string	V_2,
-		string	V_3,
-		class [mscorlib]System.ArgumentException	V_4,
-		string	V_5,
-		object	V_6,
-		class [mscorlib]System.Collections.IEnumerator	V_7,
-		class [mscorlib]System.IDisposable	V_8,
-		class [mscorlib]System.Reflection.MethodInfo	V_9,
-		class [mscorlib]System.Reflection.ConstructorInfo	V_10,
-		class [mscorlib]System.Exception	V_11)
+        // Method begins at RVA 0x184d0
+	// Code size 92 (0x5c)
+	.maxstack 2
 	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  brtrue IL_001c
-
-	IL_0007:  ldarg.1 
-	IL_0008:  ldtoken [mscorlib]System.Boolean
-	IL_000d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0012:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0017:  brfalse IL_0307
-
-	IL_001c:  ldarg.2 
-	IL_001d:  brfalse IL_002e
-
-	IL_0022:  ldarg.2 
-	IL_0023:  callvirt instance int32 string::get_Length()
-	IL_0028:  ldc.i4.0 
-	IL_0029:  ble IL_0307
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance void class NAnt.Core.TaskContainer::Initialize()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.IfTask::get_UpToDateFiles()
+	IL_000d:  brfalse IL_001d
 
-	IL_002e:  nop 
-	.try { // 2
-	  IL_002f:  nop 
-	  IL_0030:  ldarg.1 
-	  IL_0031:  ldtoken [mscorlib]System.String
-	  IL_0036:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_003b:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_0040:  brfalse IL_004d
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.IfTask::get_CompareFiles()
+	IL_0018:  brtrue IL_005b
 
-	  IL_0045:  nop 
-	  IL_0046:  ldarg.2 
-	  IL_0047:  stloc.0 
-	  IL_0048:  leave IL_0328
+	IL_001d:  ldarg.0 
+	IL_001e:  call instance string class NAnt.Core.Tasks.IfTask::get_Test()
+	IL_0023:  brtrue IL_005b
 
-	  IL_004d:  ldarg.1 
-	  IL_004e:  ldtoken [mscorlib]System.Boolean
-	  IL_0053:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0058:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_005d:  brfalse IL_00a9
+	IL_0028:  ldarg.0 
+	IL_0029:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameExists()
+	IL_002e:  brtrue IL_005b
 
-	  IL_0062:  nop 
-	  IL_0063:  ldarg.2 
-	  IL_0064:  brfalse IL_0079
+	IL_0033:  ldarg.0 
+	IL_0034:  call instance string class NAnt.Core.Tasks.IfTask::get_PropertyNameTrue()
+	IL_0039:  brtrue IL_005b
 
-	  IL_0069:  ldarg.2 
-	  IL_006a:  ldstr "+"
-	  IL_006f:  call bool string::op_Equality(string, string)
-	  IL_0074:  brfalse IL_0086
+	IL_003e:  ldarg.0 
+	IL_003f:  call instance string class NAnt.Core.Tasks.IfTask::get_TargetNameExists()
+	IL_0044:  brtrue IL_005b
 
-	  IL_0079:  nop 
-	  IL_007a:  ldc.i4.1 
-	  IL_007b:  box [mscorlib]System.Boolean
-	  IL_0080:  stloc.0 
-	  IL_0081:  leave IL_0328
+	IL_0049:  nop 
+	IL_004a:  ldstr "At least one if condition must be set (test, propertytrue, targetexists, etc...):"
+	IL_004f:  ldarg.0 
+	IL_0050:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0055:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_005a:  throw 
+	IL_005b:  ret 
+    } // end of method IfTask::Initialize
 
-	  IL_0086:  ldarg.2 
-	  IL_0087:  ldstr "-"
-	  IL_008c:  call bool string::op_Equality(string, string)
-	  IL_0091:  brfalse IL_00a3
+	.property instance string UpToDateFile ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0C 75 70 74 6F 64 61 74 65 66 69 6C 65 00   // ...uptodatefile.
+		00                                              ) // .
 
-	  IL_0096:  nop 
-	  IL_0097:  ldc.i4.0 
-	  IL_0098:  box [mscorlib]System.Boolean
-	  IL_009d:  stloc.0 
-	  IL_009e:  leave IL_0328
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 47 55 73 65 20 3C 69 66 20 74 65 73 74 3D   // ..GUse <if test=
+		22 24 7B 66 69 6C 65 3A 3A 75 70 2D 74 6F 2D 64   // "${file::up-to-d
+		61 74 65 28 63 6F 6D 70 61 72 65 66 69 6C 65 2C   // ate(comparefile,
+		20 75 70 74 6F 64 61 74 65 66 69 6C 65 29 7D 22   //  uptodatefile)}"
+		3E 20 69 6E 73 74 65 61 64 2E 00 00 00          ) // > instead....
 
-	  IL_00a3:  nop 
-	  IL_00a4:  br IL_02d6
+		.set instance default void NAnt.Core.Tasks.IfTask::set_UpToDateFile (string 'value') 
+	}
+	.property instance string CompareFile ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 63 6F 6D 70 61 72 65 66 69 6C 65 00 00 ) // ...comparefile..
 
-	  IL_00a9:  ldarg.1 
-	  IL_00aa:  call bool class NAnt.Core.Util.CommandLineArgument::IsNameValueCollectionType(class [mscorlib]System.Type)
-	  IL_00af:  brfalse IL_0174
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 47 55 73 65 20 3C 69 66 20 74 65 73 74 3D   // ..GUse <if test=
+		22 24 7B 66 69 6C 65 3A 3A 75 70 2D 74 6F 2D 64   // "${file::up-to-d
+		61 74 65 28 63 6F 6D 70 61 72 65 66 69 6C 65 2C   // ate(comparefile,
+		20 75 70 74 6F 64 61 74 65 66 69 6C 65 29 7D 22   //  uptodatefile)}"
+		3E 20 69 6E 73 74 65 61 64 2E 00 00 00          ) // > instead....
 
-	  IL_00b4:  nop 
-	  IL_00b5:  ldarg.2 
-	  IL_00b6:  ldstr "(\\w+[^=]*)=(\\w*.*)"
-	  IL_00bb:  call class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string, string)
-	  IL_00c0:  stloc.1 
-	  IL_00c1:  ldloc.1 
-	  IL_00c2:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
-	  IL_00c7:  brfalse IL_0148
+		.set instance default void NAnt.Core.Tasks.IfTask::set_CompareFile (string 'value') 
+	}
+	.property instance class NAnt.Core.Types.FileSet CompareFiles ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0C 63 6F 6D 70 61 72 65 66 69 6C 65 73 00   // ...comparefiles.
+		00                                              ) // .
 
-	  IL_00cc:  nop 
-	  IL_00cd:  ldloc.1 
-	  IL_00ce:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_00d3:  ldc.i4.1 
-	  IL_00d4:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(int32)
-	  IL_00d9:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_00de:  stloc.2 
-	  IL_00df:  ldloc.1 
-	  IL_00e0:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_00e5:  ldc.i4.2 
-	  IL_00e6:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(int32)
-	  IL_00eb:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_00f0:  stloc.3 
-	  IL_00f1:  ldarg.0 
-	  IL_00f2:  call instance bool class NAnt.Core.Util.CommandLineArgument::get_Unique()
-	  IL_00f7:  brfalse IL_012f
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 1E 55 73 65 20 3C 75 70 74 6F 64 61 74 65   // ...Use <uptodate
+		20 2F 3E 20 74 61 73 6B 20 69 6E 73 74 65 61 64   //  /> task instead
+		2E 00 00 00                                     ) // ....
 
-	  IL_00fc:  ldarg.0 
-	  IL_00fd:  ldfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.Util.CommandLineArgument::_valuePairs
-	  IL_0102:  ldloc.2 
-	  IL_0103:  callvirt instance string class [System]System.Collections.Specialized.NameValueCollection::Get(string)
-	  IL_0108:  brfalse IL_012f
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::get_CompareFiles () 
+		.set instance default void NAnt.Core.Tasks.IfTask::set_CompareFiles (class NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance class NAnt.Core.Types.FileSet UpToDateFiles ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0D 75 70 74 6F 64 61 74 65 66 69 6C 65 73   // ...uptodatefiles
+		00 00                                           ) // ..
 
-	  IL_010d:  nop 
-	  IL_010e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0113:  ldstr "NA1174"
-	  IL_0118:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_011d:  ldloc.2 
-	  IL_011e:  ldarg.0 
-	  IL_011f:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	  IL_0124:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0129:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
-	  IL_012e:  throw 
-	  IL_012f:  ldarg.0 
-	  IL_0130:  ldfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.Util.CommandLineArgument::_valuePairs
-	  IL_0135:  ldloc.2 
-	  IL_0136:  ldloc.3 
-	  IL_0137:  callvirt instance void class [System]System.Collections.Specialized.NameValueCollection::Add(string, string)
-	  IL_013c:  ldarg.0 
-	  IL_013d:  ldfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.Util.CommandLineArgument::_valuePairs
-	  IL_0142:  stloc.0 
-	  IL_0143:  leave IL_0328
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 1E 55 73 65 20 3C 75 70 74 6F 64 61 74 65   // ...Use <uptodate
+		20 2F 3E 20 74 61 73 6B 20 69 6E 73 74 65 61 64   //  /> task instead
+		2E 00 00 00                                     ) // ....
 
-	  IL_0148:  nop 
-	  IL_0149:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_014e:  ldstr "NA1170"
-	  IL_0153:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0158:  ldarg.2 
-	  IL_0159:  ldarg.0 
-	  IL_015a:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	  IL_015f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0164:  ldstr "Expected name/value pair (<name>=<value>)."
-	  IL_0169:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	  IL_016e:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string, class [mscorlib]System.Exception)
-	  IL_0173:  throw 
-	  IL_0174:  nop 
-	  IL_0175:  ldarg.1 
-	  IL_0176:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
-	  IL_017b:  brfalse IL_022d
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.IfTask::get_UpToDateFiles () 
+		.set instance default void NAnt.Core.Tasks.IfTask::set_UpToDateFiles (class NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance string PropertyNameTrue ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0C 70 72 6F 70 65 72 74 79 74 72 75 65 00   // ...propertytrue.
+		00                                              ) // .
 
-	  IL_0180:  nop 
-	  .try { // 1
-	    IL_0181:  nop 
-	    IL_0182:  ldarg.1 
-	    IL_0183:  ldarg.2 
-	    IL_0184:  ldc.i4.1 
-	    IL_0185:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	    IL_018a:  stloc.0 
-	    IL_018b:  leave IL_0328
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 28 55 73 65 20 3C 69 66 20 74 65 73 74 3D   // ..(Use <if test=
+		22 24 7B 70 72 6F 70 65 72 74 79 6E 61 6D 65 7D   // "${propertyname}
+		22 3E 20 69 6E 73 74 65 61 64 2E 00 00 00       ) // "> instead....
 
-	  } // end .try 1
-	  catch class [mscorlib]System.ArgumentException { // 1
-	    IL_0190:  stloc.s 4
-	    IL_0192:  nop 
-	    IL_0193:  ldstr "Invalid value {0} for command-line argument '-{1}'. Valid values are: "
-	    IL_0198:  stloc.s 5
-	    IL_019a:  nop 
-	    IL_019b:  ldarg.1 
-	    IL_019c:  call class [mscorlib]System.Array class [mscorlib]System.Enum::GetValues(class [mscorlib]System.Type)
-	    IL_01a1:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Array::GetEnumerator()
-	    IL_01a6:  stloc.s 7
-	    .try { // 0
-	      IL_01a8:  br IL_01cd
+		.get instance default string NAnt.Core.Tasks.IfTask::get_PropertyNameTrue () 
+		.set instance default void NAnt.Core.Tasks.IfTask::set_PropertyNameTrue (string 'value') 
+	}
+	.property instance string PropertyNameExists ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0E 70 72 6F 70 65 72 74 79 65 78 69 73 74   // ...propertyexist
+		73 00 00                                        ) // s..
 
-	      IL_01ad:  ldloc.s 7
-	      IL_01af:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	      IL_01b4:  stloc.s 6
-	      IL_01b6:  nop 
-	      IL_01b7:  ldloc.s 5
-	      IL_01b9:  ldloc.s 6
-	      IL_01bb:  callvirt instance string object::ToString()
-	      IL_01c0:  ldstr ", "
-	      IL_01c5:  call string string::Concat(string, string, string)
-	      IL_01ca:  stloc.s 5
-	      IL_01cc:  nop 
-	      IL_01cd:  ldloc.s 7
-	      IL_01cf:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	      IL_01d4:  brtrue IL_01ad
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 3C 55 73 65 20 3C 69 66 20 74 65 73 74 3D   // ..<Use <if test=
+		22 24 7B 70 72 6F 70 65 72 74 79 3A 3A 65 78 69   // "${property::exi
+		73 74 73 28 27 70 72 6F 70 65 72 74 79 6E 61 6D   // sts('propertynam
+		65 27 29 7D 22 3E 20 69 6E 73 74 65 61 64 2E 00   // e')}"> instead..
+		00 00                                           ) // ..
 
-	      IL_01d9:  leave IL_01f5
+		.get instance default string NAnt.Core.Tasks.IfTask::get_PropertyNameExists () 
+		.set instance default void NAnt.Core.Tasks.IfTask::set_PropertyNameExists (string 'value') 
+	}
+	.property instance string TargetNameExists ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0C 74 61 72 67 65 74 65 78 69 73 74 73 00   // ...targetexists.
+		00                                              ) // .
 
-	    } // end .try 0
-	    finally  { // 0
-	      IL_01de:  ldloc.s 7
-	      IL_01e0:  isinst [mscorlib]System.IDisposable
-	      IL_01e5:  dup 
-	      IL_01e6:  stloc.s 8
-	      IL_01e8:  brfalse IL_01f4
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 38 55 73 65 20 3C 69 66 20 74 65 73 74 3D   // ..8Use <if test=
+		22 24 7B 74 61 72 67 65 74 3A 3A 65 78 69 73 74   // "${target::exist
+		73 28 27 74 61 72 67 65 74 6E 61 6D 65 27 29 7D   // s('targetname')}
+		22 3E 20 69 6E 73 74 65 61 64 2E 00 00 00       ) // "> instead....
 
-	      IL_01ed:  ldloc.s 8
-	      IL_01ef:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	      IL_01f4:  endfinally 
-	    } // end handler 0
-	    IL_01f5:  ldloc.s 5
-	    IL_01f7:  ldc.i4.0 
-	    IL_01f8:  ldloc.s 5
-	    IL_01fa:  callvirt instance int32 string::get_Length()
-	    IL_01ff:  ldc.i4.2 
-	    IL_0200:  sub 
-	    IL_0201:  callvirt instance string string::Substring(int32, int32)
-	    IL_0206:  ldstr "."
-	    IL_020b:  call string string::Concat(string, string)
-	    IL_0210:  stloc.s 5
-	    IL_0212:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0217:  ldloc.s 5
-	    IL_0219:  ldarg.2 
-	    IL_021a:  ldarg.0 
-	    IL_021b:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	    IL_0220:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	    IL_0225:  ldloc.s 4
-	    IL_0227:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string, class [mscorlib]System.Exception)
-	    IL_022c:  throw 
-	  } // end handler 1
-	  IL_022d:  nop 
-	  IL_022e:  ldarg.1 
-	  IL_022f:  ldstr "Parse"
-	  IL_0234:  ldc.i4.s 0x18
-	  IL_0236:  ldnull 
-	  IL_0237:  ldc.i4.1 
-	  IL_0238:  ldc.i4.1 
-	  IL_0239:  newarr [mscorlib]System.Type
-	  IL_023e:  dup 
-	  IL_023f:  ldc.i4.0 
-	  IL_0240:  ldtoken [mscorlib]System.String
-	  IL_0245:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_024a:  stelem.ref 
-	  IL_024b:  ldnull 
-	  IL_024c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, valuetype [mscorlib]System.Reflection.CallingConventions, class [mscorlib]System.Type[], valuetype [mscorlib]System.Reflection.ParameterModifier[])
-	  IL_0251:  stloc.s 9
-	  IL_0253:  ldloc.s 9
-	  IL_0255:  ldnull 
-	  IL_0256:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Inequality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	  IL_025b:  brfalse IL_0280
+		.get instance default string NAnt.Core.Tasks.IfTask::get_TargetNameExists () 
+		.set instance default void NAnt.Core.Tasks.IfTask::set_TargetNameExists (string 'value') 
+	}
+	.property instance string Test ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 74 65 73 74 00 00 ) // ...test..
 
-	  IL_0260:  nop 
-	  IL_0261:  ldloc.s 9
-	  IL_0263:  ldnull 
-	  IL_0264:  ldc.i4.0 
-	  IL_0265:  ldnull 
-	  IL_0266:  ldc.i4.1 
-	  IL_0267:  newarr [mscorlib]System.Object
-	  IL_026c:  dup 
-	  IL_026d:  ldc.i4.0 
-	  IL_026e:  ldarg.2 
-	  IL_026f:  stelem.ref 
-	  IL_0270:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0275:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	  IL_027a:  stloc.0 
-	  IL_027b:  leave IL_0328
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	  IL_0280:  ldarg.1 
-	  IL_0281:  callvirt instance bool class [mscorlib]System.Type::get_IsClass()
-	  IL_0286:  brfalse IL_02d4
+		.get instance default string NAnt.Core.Tasks.IfTask::get_Test () 
+		.set instance default void NAnt.Core.Tasks.IfTask::set_Test (string 'value') 
+	}
+	.property instance bool ConditionsTrue ()
+	{
+		.get instance default bool NAnt.Core.Tasks.IfTask::get_ConditionsTrue () 
+	}
+  } // end of class NAnt.Core.Tasks.IfTask
+}
 
-	  IL_028b:  nop 
-	  IL_028c:  ldarg.1 
-	  IL_028d:  ldc.i4.1 
-	  IL_028e:  newarr [mscorlib]System.Type
-	  IL_0293:  dup 
-	  IL_0294:  ldc.i4.0 
-	  IL_0295:  ldtoken [mscorlib]System.String
-	  IL_029a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_029f:  stelem.ref 
-	  IL_02a0:  callvirt instance class [mscorlib]System.Reflection.ConstructorInfo class [mscorlib]System.Type::GetConstructor(class [mscorlib]System.Type[])
-	  IL_02a5:  stloc.s 10
-	  IL_02a7:  ldloc.s 10
-	  IL_02a9:  ldnull 
-	  IL_02aa:  call bool class [mscorlib]System.Reflection.ConstructorInfo::op_Inequality(class [mscorlib]System.Reflection.ConstructorInfo, class [mscorlib]System.Reflection.ConstructorInfo)
-	  IL_02af:  brfalse IL_02d3
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit IfNotTask
+  	extends NAnt.Core.Tasks.IfTask
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 69 66 6E 6F 74 00 00 ) // ...ifnot..
 
-	  IL_02b4:  nop 
-	  IL_02b5:  ldloc.s 10
-	  IL_02b7:  ldc.i4.0 
-	  IL_02b8:  ldnull 
-	  IL_02b9:  ldc.i4.1 
-	  IL_02ba:  newarr [mscorlib]System.Object
-	  IL_02bf:  dup 
-	  IL_02c0:  ldc.i4.0 
-	  IL_02c1:  ldarg.2 
-	  IL_02c2:  stelem.ref 
-	  IL_02c3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_02c8:  callvirt instance object class [mscorlib]System.Reflection.ConstructorInfo::Invoke(valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	  IL_02cd:  stloc.0 
-	  IL_02ce:  leave IL_0328
+    .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 1A 55 73 65 20 74 68 65 20 3C 69 66 3E 20   // ...Use the <if> 
+		74 61 73 6B 20 69 6E 73 74 65 61 64 2E 00 00 00 ) // task instead....
 
-	  IL_02d3:  nop 
-	  IL_02d4:  nop 
-	  IL_02d5:  nop 
-	  IL_02d6:  nop 
-	  IL_02d7:  leave IL_0306
 
-	} // end .try 2
-	catch class NAnt.Core.Util.CommandLineArgumentException { // 2
-	  IL_02dc:  pop 
-	  IL_02dd:  nop 
-	  IL_02de:  rethrow 
-	} // end handler 2
-	catch class [mscorlib]System.Exception { // 3
-	  IL_02e0:  stloc.s 11
-	  IL_02e2:  nop 
-	  IL_02e3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_02e8:  ldstr "NA1170"
-	  IL_02ed:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_02f2:  ldarg.2 
-	  IL_02f3:  ldarg.0 
-	  IL_02f4:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	  IL_02f9:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_02fe:  ldloc.s 11
-	  IL_0300:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string, class [mscorlib]System.Exception)
-	  IL_0305:  throw 
-	} // end handler 3
-	IL_0306:  nop 
-	IL_0307:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_030c:  ldstr "NA1170"
-	IL_0311:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0316:  ldarg.2 
-	IL_0317:  ldarg.0 
-	IL_0318:  call instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	IL_031d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0322:  newobj instance void class NAnt.Core.Util.CommandLineArgumentException::'.ctor'(string)
-	IL_0327:  throw 
-	IL_0328:  ldloc.0 
-	IL_0329:  ret 
-    } // end of method CommandLineArgument::ParseValue
+    // method line 1331
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x18538
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Tasks.IfTask::'.ctor'()
+	IL_0006:  ret 
+    } // end of method IfNotTask::.ctor
 
-    // method line 1520
-    .method private static hidebysig 
-           default valuetype NAnt.Core.Util.CommandLineArgumentTypes GetArgumentType (class NAnt.Core.Util.CommandLineArgumentAttribute attribute, class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
+    // method line 1332
+    .method family virtual hidebysig specialname 
+           instance default bool get_ConditionsTrue ()  cil managed 
     {
-        // Method begins at RVA 0x1b4b8
-	// Code size 54 (0x36)
-	.maxstack 1
+        // Method begins at RVA 0x18540
+	// Code size 18 (0x12)
+	.maxstack 2
 	.locals init (
-		valuetype NAnt.Core.Util.CommandLineArgumentTypes	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  brfalse IL_0014
+	IL_0002:  call instance bool class NAnt.Core.Tasks.IfTask::get_ConditionsTrue()
+	IL_0007:  ldc.i4.0 
+	IL_0008:  ceq 
+	IL_000a:  stloc.0 
+	IL_000b:  br IL_0010
 
-	IL_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance valuetype NAnt.Core.Util.CommandLineArgumentTypes class NAnt.Core.Util.CommandLineArgumentAttribute::get_Type()
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0034
+	IL_0010:  ldloc.0 
+	IL_0011:  ret 
+    } // end of method IfNotTask::get_ConditionsTrue
 
-	IL_0014:  ldarg.1 
-	IL_0015:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_001a:  call bool class NAnt.Core.Util.CommandLineArgument::IsCollectionType(class [mscorlib]System.Type)
-	IL_001f:  brfalse IL_002c
+	.property instance bool ConditionsTrue ()
+	{
+		.get instance default bool NAnt.Core.Tasks.IfNotTask::get_ConditionsTrue () 
+	}
+  } // end of class NAnt.Core.Tasks.IfNotTask
+}
 
-	IL_0024:  nop 
-	IL_0025:  ldc.i4.6 
-	IL_0026:  stloc.0 
-	IL_0027:  br IL_0034
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit StyleTask
+  	extends NAnt.Core.Task
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 73 74 79 6C 65 00 00 ) // ...style..
 
-	IL_002c:  nop 
-	IL_002d:  ldc.i4.0 
-	IL_002e:  stloc.0 
-	IL_002f:  br IL_0034
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _destDir
+    .field  private  string _extension
+    .field  private  class [System]System.Uri _xsltFile
+    .field  private  class [mscorlib]System.IO.FileInfo _srcFile
+    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
+    .field  private  class NAnt.Core.Types.FileSet _inFiles
+    .field  private  class NAnt.Core.Types.XsltParameterCollection _xsltParameters
+    .field  private  class NAnt.Core.Types.XsltExtensionObjectCollection _xsltExtensions
+    .field  private  class NAnt.Core.Types.Proxy _proxy
 
-	IL_0034:  ldloc.0 
-	IL_0035:  ret 
-    } // end of method CommandLineArgument::GetArgumentType
+    // method line 1333
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x1855e
+	// Code size 51 (0x33)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldstr "html"
+	IL_0006:  stfld string NAnt.Core.Tasks.StyleTask::_extension
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0011:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.StyleTask::_inFiles
+	IL_0016:  ldarg.0 
+	IL_0017:  newobj instance void class NAnt.Core.Types.XsltParameterCollection::'.ctor'()
+	IL_001c:  stfld class NAnt.Core.Types.XsltParameterCollection NAnt.Core.Tasks.StyleTask::_xsltParameters
+	IL_0021:  ldarg.0 
+	IL_0022:  newobj instance void class NAnt.Core.Types.XsltExtensionObjectCollection::'.ctor'()
+	IL_0027:  stfld class NAnt.Core.Types.XsltExtensionObjectCollection NAnt.Core.Tasks.StyleTask::_xsltExtensions
+	IL_002c:  ldarg.0 
+	IL_002d:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0032:  ret 
+    } // end of method StyleTask::.ctor
 
-    // method line 1521
-    .method private static hidebysig 
-           default class [mscorlib]System.Type GetElementType (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
+    // method line 1334
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_DestDir ()  cil managed 
     {
-        // Method begins at RVA 0x1b4fc
-	// Code size 322 (0x142)
-	.maxstack 3
+        // Method begins at RVA 0x18594
+	// Code size 49 (0x31)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Type	V_0,
-		class [mscorlib]System.Reflection.MethodInfo	V_1,
-		class [mscorlib]System.Reflection.MethodInfo[]	V_2,
-		int32	V_3,
-		class [mscorlib]System.Reflection.ParameterInfo	V_4,
-		class [mscorlib]System.Type	V_5)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_0009:  callvirt instance bool class [mscorlib]System.Type::get_IsArray()
-	IL_000e:  brfalse IL_0057
-
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_001a:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Type::GetElementType()
-	IL_001f:  stloc.0 
-	IL_0020:  ldloc.0 
-	IL_0021:  ldtoken [mscorlib]System.Object
-	IL_0026:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_002b:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0030:  brfalse IL_0051
-
-	IL_0035:  nop 
-	IL_0036:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_003b:  ldstr "Property {0} is not a strong-typed array."
-	IL_0040:  ldarg.0 
-	IL_0041:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_0046:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_004b:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
-	IL_0050:  throw 
-	IL_0051:  nop 
-	IL_0052:  br IL_0137
-
-	IL_0057:  ldtoken [mscorlib]System.Collections.ICollection
-	IL_005c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0061:  ldarg.0 
-	IL_0062:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_0067:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_006c:  brfalse IL_0137
-
-	IL_0071:  nop 
-	IL_0072:  nop 
-	IL_0073:  ldarg.0 
-	IL_0074:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_0079:  ldc.i4.s 0x14
-	IL_007b:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_0080:  stloc.2 
-	IL_0081:  ldc.i4.0 
-	IL_0082:  stloc.3 
-	IL_0083:  br IL_0105
-
-	IL_0088:  ldloc.2 
-	IL_0089:  ldloc.3 
-	IL_008a:  ldelem.ref 
-	IL_008b:  stloc.1 
-	IL_008c:  nop 
-	IL_008d:  ldloc.1 
-	IL_008e:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_0093:  ldstr "Add"
-	IL_0098:  call bool string::op_Equality(string, string)
-	IL_009d:  brfalse IL_0100
-
-	IL_00a2:  ldloc.1 
-	IL_00a3:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_00a8:  ldlen 
-	IL_00a9:  conv.i4 
-	IL_00aa:  ldc.i4.1 
-	IL_00ab:  bne.un IL_0100
-
-	IL_00b0:  nop 
-	IL_00b1:  ldloc.1 
-	IL_00b2:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_00b7:  ldc.i4.0 
-	IL_00b8:  ldelem.ref 
-	IL_00b9:  stloc.s 4
-	IL_00bb:  ldloc.s 4
-	IL_00bd:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	IL_00c2:  ldtoken [mscorlib]System.Object
-	IL_00c7:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_00cc:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_00d1:  brfalse IL_00f2
-
-	IL_00d6:  nop 
-	IL_00d7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00dc:  ldstr "Property {0} is not a strong-typed collection."
-	IL_00e1:  ldarg.0 
-	IL_00e2:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_00e7:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00ec:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
-	IL_00f1:  throw 
-	IL_00f2:  nop 
-	IL_00f3:  ldloc.s 4
-	IL_00f5:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	IL_00fa:  stloc.0 
-	IL_00fb:  br IL_010e
-
-	IL_0100:  nop 
-	IL_0101:  ldloc.3 
-	IL_0102:  ldc.i4.1 
-	IL_0103:  add 
-	IL_0104:  stloc.3 
-	IL_0105:  ldloc.3 
-	IL_0106:  ldloc.2 
-	IL_0107:  ldlen 
-	IL_0108:  conv.i4 
-	IL_0109:  blt IL_0088
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.StyleTask::_destDir
+	IL_0007:  brtrue IL_0023
 
-	IL_010e:  ldloc.0 
-	IL_010f:  ldnull 
-	IL_0110:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0115:  brfalse IL_0136
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0013:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_0018:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_001d:  stloc.0 
+	IL_001e:  br IL_002f
 
-	IL_011a:  nop 
-	IL_011b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0120:  ldstr "Invalid commandline argument type for property {0}."
-	IL_0125:  ldarg.0 
-	IL_0126:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_012b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0130:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
-	IL_0135:  throw 
-	IL_0136:  nop 
-	IL_0137:  ldloc.0 
-	IL_0138:  stloc.s 5
-	IL_013a:  br IL_013f
+	IL_0023:  ldarg.0 
+	IL_0024:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.StyleTask::_destDir
+	IL_0029:  stloc.0 
+	IL_002a:  br IL_002f
 
-	IL_013f:  ldloc.s 5
-	IL_0141:  ret 
-    } // end of method CommandLineArgument::GetElementType
+	IL_002f:  ldloc.0 
+	IL_0030:  ret 
+    } // end of method StyleTask::get_DestDir
 
-    // method line 1522
-    .method private static hidebysig 
-           default bool IsNameValueCollectionType (class [mscorlib]System.Type 'type')  cil managed 
+    // method line 1335
+    .method public hidebysig specialname 
+           instance default void set_DestDir (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x1b64c
-	// Code size 25 (0x19)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x185d1
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldtoken [System]System.Collections.Specialized.NameValueCollection
-	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000b:  ldarg.0 
-	IL_000c:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method CommandLineArgument::IsNameValueCollectionType
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.StyleTask::_destDir
+	IL_0008:  ret 
+    } // end of method StyleTask::set_DestDir
 
-    // method line 1523
-    .method private static hidebysig 
-           default bool IsCollectionType (class [mscorlib]System.Type 'type')  cil managed 
+    // method line 1336
+    .method public hidebysig specialname 
+           instance default string get_Extension ()  cil managed 
     {
-        // Method begins at RVA 0x1b674
-	// Code size 42 (0x2a)
-	.maxstack 2
+        // Method begins at RVA 0x185dc
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldtoken [mscorlib]System.Collections.ICollection
-	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000b:  ldarg.0 
-	IL_000c:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_0011:  brfalse IL_0021
-
-	IL_0016:  ldarg.0 
-	IL_0017:  call bool class NAnt.Core.Util.CommandLineArgument::IsNameValueCollectionType(class [mscorlib]System.Type)
-	IL_001c:  ldc.i4.0 
-	IL_001d:  ceq 
-	IL_001f:  br.s IL_0022
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Tasks.StyleTask::_extension
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0021:  ldc.i4.0 
-	IL_0022:  stloc.0 
-	IL_0023:  br IL_0028
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method StyleTask::get_Extension
 
-	IL_0028:  ldloc.0 
-	IL_0029:  ret 
-    } // end of method CommandLineArgument::IsCollectionType
+    // method line 1337
+    .method public hidebysig specialname 
+           instance default void set_Extension (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x185f7
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Tasks.StyleTask::_extension
+	IL_0008:  ret 
+    } // end of method StyleTask::set_Extension
 
-    // method line 1524
-    .method private static hidebysig 
-           default bool IsArrayType (class [mscorlib]System.Type 'type')  cil managed 
+    // method line 1338
+    .method public hidebysig specialname 
+           instance default class [System]System.Uri get_XsltFile ()  cil managed 
     {
-        // Method begins at RVA 0x1b6ac
+        // Method begins at RVA 0x18604
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [System]System.Uri	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance bool class [mscorlib]System.Type::get_IsArray()
+	IL_0002:  ldfld class [System]System.Uri NAnt.Core.Tasks.StyleTask::_xsltFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineArgument::IsArrayType
-
-	.property instance class [mscorlib]System.Reflection.PropertyInfo Property ()
-	{
-		.get instance default class [mscorlib]System.Reflection.PropertyInfo NAnt.Core.Util.CommandLineArgument::get_Property () 
-	}
-	.property instance class [mscorlib]System.Type ValueType ()
-	{
-		.get instance default class [mscorlib]System.Type NAnt.Core.Util.CommandLineArgument::get_ValueType () 
-	}
-	.property instance string LongName ()
-	{
-		.get instance default string NAnt.Core.Util.CommandLineArgument::get_LongName () 
-	}
-	.property instance string ShortName ()
-	{
-		.get instance default string NAnt.Core.Util.CommandLineArgument::get_ShortName () 
-	}
-	.property instance string Description ()
-	{
-		.get instance default string NAnt.Core.Util.CommandLineArgument::get_Description () 
-	}
-	.property instance bool IsRequired ()
-	{
-		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_IsRequired () 
-	}
-	.property instance bool SeenValue ()
-	{
-		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_SeenValue () 
-	}
-	.property instance bool AllowMultiple ()
-	{
-		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_AllowMultiple () 
-	}
-	.property instance bool Unique ()
-	{
-		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_Unique () 
-	}
-	.property instance class [mscorlib]System.Type Type ()
-	{
-		.get instance default class [mscorlib]System.Type NAnt.Core.Util.CommandLineArgument::get_Type () 
-	}
-	.property instance bool IsCollection ()
-	{
-		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_IsCollection () 
-	}
-	.property instance bool IsNameValueCollection ()
-	{
-		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_IsNameValueCollection () 
-	}
-	.property instance bool IsArray ()
-	{
-		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_IsArray () 
-	}
-	.property instance bool IsDefault ()
-	{
-		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_IsDefault () 
-	}
-	.property instance bool IsExclusive ()
-	{
-		.get instance default bool NAnt.Core.Util.CommandLineArgument::get_IsExclusive () 
-	}
-  } // end of class NAnt.Core.Util.CommandLineArgument
-}
+    } // end of method StyleTask::get_XsltFile
 
-.namespace NAnt.Core.Util
-{
-  .class public auto ansi abstract sealed beforefieldinit FileUtils
-  	extends [mscorlib]System.Object
-  {
-    .field private static literal  int32 _bufferSize = int32(0x00002000)
+    // method line 1339
+    .method public hidebysig specialname 
+           instance default void set_XsltFile (class [System]System.Uri 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1861f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [System]System.Uri NAnt.Core.Tasks.StyleTask::_xsltFile
+	IL_0008:  ret 
+    } // end of method StyleTask::set_XsltFile
 
-    // method line 1525
-    .method public static hidebysig 
-           default void CopyFile (string sourceFileName, string destFileName, class NAnt.Core.Filters.FilterChain filterChain, class [mscorlib]System.Text.Encoding inputEncoding, class [mscorlib]System.Text.Encoding outputEncoding)  cil managed 
+    // method line 1340
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_SrcFile ()  cil managed 
     {
-        // Method begins at RVA 0x1b6c8
-	// Code size 329 (0x149)
-	.maxstack 4
+        // Method begins at RVA 0x1862c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		bool	V_0,
-		class [mscorlib]System.Text.Encoding	V_1,
-		class [mscorlib]System.IO.StreamReader	V_2,
-		class [mscorlib]System.Text.Encoding	V_3,
-		class [mscorlib]System.IO.StreamWriter	V_4,
-		class NAnt.Core.Filters.Filter	V_5,
-		bool	V_6,
-		int32	V_7,
-		char[]	V_8,
-		int32	V_9)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0007:  brtrue IL_001e
-
-	IL_000c:  nop 
-	IL_000d:  ldstr "Cannot copy file: Source File {0} does not exist"
-	IL_0012:  ldarg.0 
-	IL_0013:  call string string::Format(string, object)
-	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_001d:  throw 
-	IL_001e:  ldarg.2 
-	IL_001f:  call bool class NAnt.Core.Filters.FilterChain::IsNullOrEmpty(class NAnt.Core.Filters.FilterChain)
-	IL_0024:  ldc.i4.0 
-	IL_0025:  ceq 
-	IL_0027:  stloc.0 
-	IL_0028:  ldloc.0 
-	IL_0029:  brtrue IL_004a
-
-	IL_002e:  ldarg.3 
-	IL_002f:  brtrue IL_004a
-
-	IL_0034:  ldarg.s 4
-	IL_0036:  brtrue IL_004a
-
-	IL_003b:  nop 
-	IL_003c:  ldarg.0 
-	IL_003d:  ldarg.1 
-	IL_003e:  ldc.i4.1 
-	IL_003f:  call void class [mscorlib]System.IO.File::Copy(string, string, bool)
-	IL_0044:  nop 
-	IL_0045:  br IL_0148
-
-	IL_004a:  nop 
-	IL_004b:  ldarg.3 
-	IL_004c:  brfalse IL_0057
-
-	IL_0051:  ldarg.3 
-	IL_0052:  br IL_005c
-
-	IL_0057:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
-	IL_005c:  stloc.1 
-	IL_005d:  ldarg.0 
-	IL_005e:  ldloc.1 
-	IL_005f:  ldc.i4.1 
-	IL_0060:  ldc.i4 8192
-	IL_0065:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool, int32)
-	IL_006a:  stloc.2 
-	.try { // 1
-	  IL_006b:  nop 
-	  IL_006c:  ldarg.s 4
-	  IL_006e:  stloc.3 
-	  IL_006f:  ldloc.3 
-	  IL_0070:  brtrue IL_007e
-
-	  IL_0075:  nop 
-	  IL_0076:  ldloc.2 
-	  IL_0077:  callvirt instance class [mscorlib]System.Text.Encoding class [mscorlib]System.IO.StreamReader::get_CurrentEncoding()
-	  IL_007c:  stloc.3 
-	  IL_007d:  nop 
-	  IL_007e:  ldarg.1 
-	  IL_007f:  ldc.i4.0 
-	  IL_0080:  ldloc.3 
-	  IL_0081:  ldc.i4 8192
-	  IL_0086:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string, bool, class [mscorlib]System.Text.Encoding, int32)
-	  IL_008b:  stloc.s 4
-	  .try { // 0
-	    IL_008d:  nop 
-	    IL_008e:  ldloc.0 
-	    IL_008f:  brfalse IL_00e1
-
-	    IL_0094:  nop 
-	    IL_0095:  ldarg.2 
-	    IL_0096:  ldloc.2 
-	    IL_0097:  newobj instance void class NAnt.Core.Filters.PhysicalTextReader::'.ctor'(class [mscorlib]System.IO.TextReader)
-	    IL_009c:  callvirt instance class NAnt.Core.Filters.Filter class NAnt.Core.Filters.FilterChain::GetBaseFilter(class NAnt.Core.Filters.PhysicalTextReader)
-	    IL_00a1:  stloc.s 5
-	    IL_00a3:  ldc.i4.0 
-	    IL_00a4:  stloc.s 6
-	    IL_00a6:  br IL_00d4
-
-	    IL_00ab:  nop 
-	    IL_00ac:  ldloc.s 5
-	    IL_00ae:  callvirt instance int32 class NAnt.Core.Filters.ChainableReader::Read()
-	    IL_00b3:  stloc.s 7
-	    IL_00b5:  ldloc.s 7
-	    IL_00b7:  ldc.i4.m1 
-	    IL_00b8:  ble IL_00ce
-
-	    IL_00bd:  nop 
-	    IL_00be:  ldloc.s 4
-	    IL_00c0:  ldloc.s 7
-	    IL_00c2:  conv.u2 
-	    IL_00c3:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(char)
-	    IL_00c8:  nop 
-	    IL_00c9:  br IL_00d3
-
-	    IL_00ce:  nop 
-	    IL_00cf:  ldc.i4.1 
-	    IL_00d0:  stloc.s 6
-	    IL_00d2:  nop 
-	    IL_00d3:  nop 
-	    IL_00d4:  ldloc.s 6
-	    IL_00d6:  brfalse IL_00ab
-
-	    IL_00db:  nop 
-	    IL_00dc:  br IL_011f
-
-	    IL_00e1:  nop 
-	    IL_00e2:  ldc.i4 8192
-	    IL_00e7:  newarr [mscorlib]System.Char
-	    IL_00ec:  stloc.s 8
-	    IL_00ee:  nop 
-	    IL_00ef:  nop 
-	    IL_00f0:  ldloc.2 
-	    IL_00f1:  ldloc.s 8
-	    IL_00f3:  ldc.i4.0 
-	    IL_00f4:  ldloc.s 8
-	    IL_00f6:  ldlen 
-	    IL_00f7:  conv.i4 
-	    IL_00f8:  callvirt instance int32 class [mscorlib]System.IO.TextReader::Read(char[], int32, int32)
-	    IL_00fd:  stloc.s 9
-	    IL_00ff:  ldloc.s 9
-	    IL_0101:  brtrue IL_010c
-
-	    IL_0106:  nop 
-	    IL_0107:  leave IL_011e
-
-	    IL_010c:  ldloc.s 4
-	    IL_010e:  ldloc.s 8
-	    IL_0110:  ldc.i4.0 
-	    IL_0111:  ldloc.s 9
-	    IL_0113:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(char[], int32, int32)
-	    IL_0118:  nop 
-	    IL_0119:  br IL_00ee
-
-	    IL_011e:  nop 
-	    IL_011f:  nop 
-	    IL_0120:  leave IL_0134
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_0125:  ldloc.s 4
-	    IL_0127:  brfalse IL_0133
-
-	    IL_012c:  ldloc.s 4
-	    IL_012e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0133:  endfinally 
-	  } // end handler 0
-	  IL_0134:  nop 
-	  IL_0135:  leave IL_0147
-
-	} // end .try 1
-	finally  { // 1
-	  IL_013a:  ldloc.2 
-	  IL_013b:  brfalse IL_0146
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.StyleTask::_srcFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_0140:  ldloc.2 
-	  IL_0141:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0146:  endfinally 
-	} // end handler 1
-	IL_0147:  nop 
-	IL_0148:  ret 
-    } // end of method FileUtils::CopyFile
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method StyleTask::get_SrcFile
 
-    // method line 1526
-    .method public static hidebysig 
-           default void MoveFile (string sourceFileName, string destFileName, class NAnt.Core.Filters.FilterChain filterChain, class [mscorlib]System.Text.Encoding inputEncoding, class [mscorlib]System.Text.Encoding outputEncoding)  cil managed 
+    // method line 1341
+    .method public hidebysig specialname 
+           instance default void set_SrcFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x1b83c
-	// Code size 88 (0x58)
-	.maxstack 5
+        // Method begins at RVA 0x18647
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0007:  brtrue IL_001e
-
-	IL_000c:  nop 
-	IL_000d:  ldstr "Cannot move file: Source File {0} does not exist"
-	IL_0012:  ldarg.0 
-	IL_0013:  call string string::Format(string, object)
-	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_001d:  throw 
-	IL_001e:  ldarg.2 
-	IL_001f:  call bool class NAnt.Core.Filters.FilterChain::IsNullOrEmpty(class NAnt.Core.Filters.FilterChain)
-	IL_0024:  brfalse IL_0044
-
-	IL_0029:  ldarg.3 
-	IL_002a:  brtrue IL_0044
-
-	IL_002f:  ldarg.s 4
-	IL_0031:  brtrue IL_0044
-
-	IL_0036:  nop 
-	IL_0037:  ldarg.0 
-	IL_0038:  ldarg.1 
-	IL_0039:  call void class [mscorlib]System.IO.File::Move(string, string)
-	IL_003e:  nop 
-	IL_003f:  br IL_0057
-
-	IL_0044:  nop 
-	IL_0045:  ldarg.0 
-	IL_0046:  ldarg.1 
-	IL_0047:  ldarg.2 
-	IL_0048:  ldarg.3 
-	IL_0049:  ldarg.s 4
-	IL_004b:  call void class NAnt.Core.Util.FileUtils::CopyFile(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
-	IL_0050:  ldarg.0 
-	IL_0051:  call void class [mscorlib]System.IO.File::Delete(string)
-	IL_0056:  nop 
-	IL_0057:  ret 
-    } // end of method FileUtils::MoveFile
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.StyleTask::_srcFile
+	IL_0008:  ret 
+    } // end of method StyleTask::set_SrcFile
 
-    // method line 1527
-    .method assembly static hidebysig 
-           default void CopyDirectory (string sourceDirectory, string destDirectory, class NAnt.Core.Filters.FilterChain filterChain, class [mscorlib]System.Text.Encoding inputEncoding, class [mscorlib]System.Text.Encoding outputEncoding)  cil managed 
+    // method line 1342
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x1b8a0
-	// Code size 180 (0xb4)
-	.maxstack 5
+        // Method begins at RVA 0x18654
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		string[]	V_1,
-		int32	V_2,
-		string	V_3,
-		string	V_4,
-		string[]	V_5,
-		int32	V_6,
-		string	V_7)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0007:  brtrue IL_001e
-
-	IL_000c:  nop 
-	IL_000d:  ldstr "Cannot copy directory: Source Directory {0} does not exist"
-	IL_0012:  ldarg.0 
-	IL_0013:  call string string::Format(string, object)
-	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_001d:  throw 
-	IL_001e:  ldarg.1 
-	IL_001f:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0024:  brtrue IL_0032
-
-	IL_0029:  nop 
-	IL_002a:  ldarg.1 
-	IL_002b:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	IL_0030:  pop 
-	IL_0031:  nop 
-	IL_0032:  nop 
-	IL_0033:  ldarg.0 
-	IL_0034:  call string[] class [mscorlib]System.IO.Directory::GetFiles(string)
-	IL_0039:  stloc.1 
-	IL_003a:  ldc.i4.0 
-	IL_003b:  stloc.2 
-	IL_003c:  br IL_0063
-
-	IL_0041:  ldloc.1 
-	IL_0042:  ldloc.2 
-	IL_0043:  ldelem.ref 
-	IL_0044:  stloc.0 
-	IL_0045:  nop 
-	IL_0046:  ldarg.1 
-	IL_0047:  ldloc.0 
-	IL_0048:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_004d:  call string class NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0052:  stloc.3 
-	IL_0053:  ldloc.0 
-	IL_0054:  ldloc.3 
-	IL_0055:  ldarg.2 
-	IL_0056:  ldarg.3 
-	IL_0057:  ldarg.s 4
-	IL_0059:  call void class NAnt.Core.Util.FileUtils::CopyFile(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
-	IL_005e:  nop 
-	IL_005f:  ldloc.2 
-	IL_0060:  ldc.i4.1 
-	IL_0061:  add 
-	IL_0062:  stloc.2 
-	IL_0063:  ldloc.2 
-	IL_0064:  ldloc.1 
-	IL_0065:  ldlen 
-	IL_0066:  conv.i4 
-	IL_0067:  blt IL_0041
-
-	IL_006c:  nop 
-	IL_006d:  ldarg.0 
-	IL_006e:  call string[] class [mscorlib]System.IO.Directory::GetDirectories(string)
-	IL_0073:  stloc.s 5
-	IL_0075:  ldc.i4.0 
-	IL_0076:  stloc.s 6
-	IL_0078:  br IL_00a8
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.StyleTask::_outputFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_007d:  ldloc.s 5
-	IL_007f:  ldloc.s 6
-	IL_0081:  ldelem.ref 
-	IL_0082:  stloc.s 4
-	IL_0084:  nop 
-	IL_0085:  ldarg.1 
-	IL_0086:  ldloc.s 4
-	IL_0088:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_008d:  call string class NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0092:  stloc.s 7
-	IL_0094:  ldloc.s 4
-	IL_0096:  ldloc.s 7
-	IL_0098:  ldarg.2 
-	IL_0099:  ldarg.3 
-	IL_009a:  ldarg.s 4
-	IL_009c:  call void class NAnt.Core.Util.FileUtils::CopyDirectory(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
-	IL_00a1:  nop 
-	IL_00a2:  ldloc.s 6
-	IL_00a4:  ldc.i4.1 
-	IL_00a5:  add 
-	IL_00a6:  stloc.s 6
-	IL_00a8:  ldloc.s 6
-	IL_00aa:  ldloc.s 5
-	IL_00ac:  ldlen 
-	IL_00ad:  conv.i4 
-	IL_00ae:  blt IL_007d
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method StyleTask::get_OutputFile
 
-	IL_00b3:  ret 
-    } // end of method FileUtils::CopyDirectory
+    // method line 1343
+    .method public hidebysig specialname 
+           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1866f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.StyleTask::_outputFile
+	IL_0008:  ret 
+    } // end of method StyleTask::set_OutputFile
 
-    // method line 1528
-    .method assembly static hidebysig 
-           default void MoveDirectory (string sourceDirectory, string destDirectory, class NAnt.Core.Filters.FilterChain filterChain, class [mscorlib]System.Text.Encoding inputEncoding, class [mscorlib]System.Text.Encoding outputEncoding)  cil managed 
+    // method line 1344
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_InFiles ()  cil managed 
     {
-        // Method begins at RVA 0x1b960
-	// Code size 308 (0x134)
-	.maxstack 5
+        // Method begins at RVA 0x1867c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		string	V_1,
-		class [mscorlib]System.IO.IOException	V_2)
+		class NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0007:  brtrue IL_001e
-
-	IL_000c:  nop 
-	IL_000d:  ldstr "Cannot move directory: Source Directory {0} does not exist"
-	IL_0012:  ldarg.0 
-	IL_0013:  call string string::Format(string, object)
-	IL_0018:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_001d:  throw 
-	IL_001e:  ldarg.2 
-	IL_001f:  call bool class NAnt.Core.Filters.FilterChain::IsNullOrEmpty(class NAnt.Core.Filters.FilterChain)
-	IL_0024:  brfalse IL_011f
-
-	IL_0029:  ldarg.3 
-	IL_002a:  brtrue IL_011f
-
-	IL_002f:  ldarg.s 4
-	IL_0031:  brtrue IL_011f
-
-	IL_0036:  nop 
-	IL_0037:  ldarg.0 
-	IL_0038:  ldarg.1 
-	IL_0039:  ldc.i4.2 
-	IL_003a:  callvirt instance bool string::Equals(string, valuetype [mscorlib]System.StringComparison)
-	IL_003f:  brfalse IL_0050
-
-	IL_0044:  nop 
-	IL_0045:  ldstr "Source and Target paths are identical"
-	IL_004a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_004f:  throw 
-	.try { // 1
-	  IL_0050:  nop 
-	  IL_0051:  call bool class NAnt.Core.PlatformHelper::get_IsWindows()
-	  IL_0056:  brfalse IL_00d1
-
-	  IL_005b:  nop 
-	  IL_005c:  ldarg.0 
-	  IL_005d:  ldarg.1 
-	  IL_005e:  ldc.i4.3 
-	  IL_005f:  callvirt instance bool string::Equals(string, valuetype [mscorlib]System.StringComparison)
-	  IL_0064:  brfalse IL_00c2
-
-	  IL_0069:  nop 
-	  IL_006a:  ldarg.1 
-	  IL_006b:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::GetParent(string)
-	  IL_0070:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0075:  stloc.0 
-	  IL_0076:  ldloc.0 
-	  IL_0077:  call string class [mscorlib]System.IO.Path::GetRandomFileName()
-	  IL_007c:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_0081:  stloc.1 
-	  .try { // 0
-	    IL_0082:  nop 
-	    IL_0083:  ldarg.0 
-	    IL_0084:  ldloc.1 
-	    IL_0085:  call void class [mscorlib]System.IO.Directory::Move(string, string)
-	    IL_008a:  ldloc.1 
-	    IL_008b:  ldarg.1 
-	    IL_008c:  call void class [mscorlib]System.IO.Directory::Move(string, string)
-	    IL_0091:  nop 
-	    IL_0092:  leave IL_00bc
-
-	  } // end .try 0
-	  catch class [mscorlib]System.Object { // 0
-	    IL_0097:  pop 
-	    IL_0098:  nop 
-	    IL_0099:  ldloc.1 
-	    IL_009a:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	    IL_009f:  brfalse IL_00ba
-
-	    IL_00a4:  nop 
-	    IL_00a5:  ldarg.0 
-	    IL_00a6:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	    IL_00ab:  brtrue IL_00b9
-
-	    IL_00b0:  nop 
-	    IL_00b1:  ldloc.1 
-	    IL_00b2:  ldarg.0 
-	    IL_00b3:  call void class [mscorlib]System.IO.Directory::Move(string, string)
-	    IL_00b8:  nop 
-	    IL_00b9:  nop 
-	    IL_00ba:  rethrow 
-	  } // end handler 0
-	  IL_00bc:  nop 
-	  IL_00bd:  br IL_00cb
-
-	  IL_00c2:  nop 
-	  IL_00c3:  ldarg.0 
-	  IL_00c4:  ldarg.1 
-	  IL_00c5:  call void class [mscorlib]System.IO.Directory::Move(string, string)
-	  IL_00ca:  nop 
-	  IL_00cb:  nop 
-	  IL_00cc:  br IL_00da
-
-	  IL_00d1:  nop 
-	  IL_00d2:  ldarg.0 
-	  IL_00d3:  ldarg.1 
-	  IL_00d4:  call void class [mscorlib]System.IO.Directory::Move(string, string)
-	  IL_00d9:  nop 
-	  IL_00da:  nop 
-	  IL_00db:  leave IL_0119
-
-	} // end .try 1
-	catch class [mscorlib]System.IO.IOException { // 1
-	  IL_00e0:  stloc.2 
-	  IL_00e1:  nop 
-	  IL_00e2:  ldarg.1 
-	  IL_00e3:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_00e8:  brfalse IL_0105
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.StyleTask::_inFiles
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_00ed:  nop 
-	  IL_00ee:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_00f3:  ldstr "Failed to move directory {0}.Directory '{1}' already exists."
-	  IL_00f8:  ldarg.0 
-	  IL_00f9:  ldarg.1 
-	  IL_00fa:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_00ff:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	  IL_0104:  throw 
-	  IL_0105:  nop 
-	  IL_0106:  ldstr "Unhandled IOException when trying to move directory '{0}' to '{1}'"
-	  IL_010b:  ldarg.0 
-	  IL_010c:  ldarg.1 
-	  IL_010d:  call string string::Format(string, object, object)
-	  IL_0112:  ldloc.2 
-	  IL_0113:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class [mscorlib]System.Exception)
-	  IL_0118:  throw 
-	} // end handler 1
-	IL_0119:  nop 
-	IL_011a:  br IL_0133
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method StyleTask::get_InFiles
 
-	IL_011f:  nop 
-	IL_0120:  ldarg.0 
-	IL_0121:  ldarg.1 
-	IL_0122:  ldarg.2 
-	IL_0123:  ldarg.3 
-	IL_0124:  ldarg.s 4
-	IL_0126:  call void class NAnt.Core.Util.FileUtils::CopyDirectory(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
-	IL_012b:  ldarg.0 
-	IL_012c:  ldc.i4.1 
-	IL_012d:  call void class [mscorlib]System.IO.Directory::Delete(string, bool)
-	IL_0132:  nop 
-	IL_0133:  ret 
-    } // end of method FileUtils::MoveDirectory
+    // method line 1345
+    .method public hidebysig specialname 
+           instance default void set_InFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x18697
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.StyleTask::_inFiles
+	IL_0008:  ret 
+    } // end of method StyleTask::set_InFiles
 
-    // method line 1529
-    .method assembly static hidebysig 
-           default string GetTempDirectoryName ()  cil managed 
+    // method line 1346
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.XsltParameterCollection get_Parameters ()  cil managed 
     {
-        // Method begins at RVA 0x1babc
-	// Code size 24 (0x18)
-	.maxstack 2
+        // Method begins at RVA 0x186a4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Types.XsltParameterCollection	V_0)
 	IL_0000:  nop 
-	IL_0001:  call string class [mscorlib]System.IO.Path::GetTempPath()
-	IL_0006:  call string class [mscorlib]System.IO.Path::GetRandomFileName()
-	IL_000b:  call string class NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0010:  stloc.0 
-	IL_0011:  br IL_0016
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Types.XsltParameterCollection NAnt.Core.Tasks.StyleTask::_xsltParameters
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0016:  ldloc.0 
-	IL_0017:  ret 
-    } // end of method FileUtils::GetTempDirectoryName
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method StyleTask::get_Parameters
 
-    // method line 1530
-    .method public static hidebysig 
-           default string ReadFile (string fileName, class NAnt.Core.Filters.FilterChain filterChain, class [mscorlib]System.Text.Encoding inputEncoding)  cil managed 
+    // method line 1347
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.XsltExtensionObjectCollection get_ExtensionObjects ()  cil managed 
     {
-        // Method begins at RVA 0x1bae0
-	// Code size 166 (0xa6)
-	.maxstack 3
+        // Method begins at RVA 0x186c0
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		class [mscorlib]System.Text.Encoding	V_1,
-		class [mscorlib]System.IO.StreamReader	V_2,
-		class NAnt.Core.Filters.Filter	V_3,
-		class [mscorlib]System.IO.StringWriter	V_4,
-		int32	V_5,
-		string	V_6)
+		class NAnt.Core.Types.XsltExtensionObjectCollection	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.2 
-	IL_0004:  brfalse IL_000f
-
-	IL_0009:  ldarg.2 
-	IL_000a:  br IL_0014
-
-	IL_000f:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
-	IL_0014:  stloc.1 
-	IL_0015:  ldarg.0 
-	IL_0016:  ldloc.1 
-	IL_0017:  ldc.i4.1 
-	IL_0018:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
-	IL_001d:  stloc.2 
-	.try { // 0
-	  IL_001e:  nop 
-	  IL_001f:  ldarg.1 
-	  IL_0020:  brfalse IL_0035
-
-	  IL_0025:  ldarg.1 
-	  IL_0026:  callvirt instance class NAnt.Core.Filters.FilterCollection class NAnt.Core.Filters.FilterChain::get_Filters()
-	  IL_002b:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	  IL_0030:  brtrue IL_0043
-
-	  IL_0035:  nop 
-	  IL_0036:  ldloc.2 
-	  IL_0037:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
-	  IL_003c:  stloc.0 
-	  IL_003d:  nop 
-	  IL_003e:  br IL_0088
-
-	  IL_0043:  nop 
-	  IL_0044:  ldarg.1 
-	  IL_0045:  ldloc.2 
-	  IL_0046:  newobj instance void class NAnt.Core.Filters.PhysicalTextReader::'.ctor'(class [mscorlib]System.IO.TextReader)
-	  IL_004b:  callvirt instance class NAnt.Core.Filters.Filter class NAnt.Core.Filters.FilterChain::GetBaseFilter(class NAnt.Core.Filters.PhysicalTextReader)
-	  IL_0050:  stloc.3 
-	  IL_0051:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'()
-	  IL_0056:  stloc.s 4
-	  IL_0058:  nop 
-	  IL_0059:  nop 
-	  IL_005a:  ldloc.3 
-	  IL_005b:  callvirt instance int32 class NAnt.Core.Filters.ChainableReader::Read()
-	  IL_0060:  stloc.s 5
-	  IL_0062:  ldloc.s 5
-	  IL_0064:  ldc.i4.m1 
-	  IL_0065:  bne.un IL_006f
-
-	  IL_006a:  leave IL_007f
-
-	  IL_006f:  ldloc.s 4
-	  IL_0071:  ldloc.s 5
-	  IL_0073:  conv.u2 
-	  IL_0074:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(char)
-	  IL_0079:  nop 
-	  IL_007a:  br IL_0058
-
-	  IL_007f:  ldloc.s 4
-	  IL_0081:  callvirt instance string object::ToString()
-	  IL_0086:  stloc.0 
-	  IL_0087:  nop 
-	  IL_0088:  nop 
-	  IL_0089:  leave IL_009b
-
-	} // end .try 0
-	finally  { // 0
-	  IL_008e:  ldloc.2 
-	  IL_008f:  brfalse IL_009a
-
-	  IL_0094:  ldloc.2 
-	  IL_0095:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_009a:  endfinally 
-	} // end handler 0
-	IL_009b:  ldloc.0 
-	IL_009c:  stloc.s 6
-	IL_009e:  br IL_00a3
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Types.XsltExtensionObjectCollection NAnt.Core.Tasks.StyleTask::_xsltExtensions
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_00a3:  ldloc.s 6
-	IL_00a5:  ret 
-    } // end of method FileUtils::ReadFile
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method StyleTask::get_ExtensionObjects
 
-    // method line 1531
-    .method public static hidebysig 
-           default class [mscorlib]System.IO.DirectoryInfo GetTempDirectory ()  cil managed 
+    // method line 1348
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.Proxy get_Proxy ()  cil managed 
     {
-        // Method begins at RVA 0x1bba4
-	// Code size 34 (0x22)
+        // Method begins at RVA 0x186dc
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0,
-		class [mscorlib]System.IO.DirectoryInfo	V_1)
+		class NAnt.Core.Types.Proxy	V_0)
 	IL_0000:  nop 
-	IL_0001:  call string class [mscorlib]System.IO.Path::GetTempFileName()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  call void class [mscorlib]System.IO.File::Delete(string)
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Types.Proxy NAnt.Core.Tasks.StyleTask::_proxy
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
 	IL_000d:  ldloc.0 
-	IL_000e:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	IL_0013:  pop 
-	IL_0014:  ldloc.0 
-	IL_0015:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_001a:  stloc.1 
-	IL_001b:  br IL_0020
+	IL_000e:  ret 
+    } // end of method StyleTask::get_Proxy
 
-	IL_0020:  ldloc.1 
-	IL_0021:  ret 
-    } // end of method FileUtils::GetTempDirectory
+    // method line 1349
+    .method public hidebysig specialname 
+           instance default void set_Proxy (class NAnt.Core.Types.Proxy 'value')  cil managed 
+    {
+        // Method begins at RVA 0x186f7
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Types.Proxy NAnt.Core.Tasks.StyleTask::_proxy
+	IL_0008:  ret 
+    } // end of method StyleTask::set_Proxy
 
-    // method line 1532
-    .method public static hidebysig 
-           default string CombinePaths (string path1, string path2)  cil managed 
+    // method line 1350
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x1bbd4
-	// Code size 664 (0x298)
-	.maxstack 4
+        // Method begins at RVA 0x18704
+	// Code size 1638 (0x666)
+	.maxstack 7
 	.locals init (
-		string	V_0,
-		char	V_1,
-		char[]	V_2,
-		string[]	V_3,
-		class [mscorlib]System.Collections.ArrayList	V_4,
-		int32	V_5,
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		class [mscorlib]System.IO.FileInfo	V_1,
+		class [System]System.Net.HttpWebRequest	V_2,
+		class [System]System.Net.HttpWebResponse	V_3,
+		string	V_4,
+		class [System]System.Collections.Specialized.StringEnumerator	V_5,
 		string	V_6,
-		bool	V_7,
-		string[]	V_8,
-		int32	V_9,
-		class [mscorlib]System.Collections.ArrayList	V_10,
-		int32	V_11,
-		string	V_12,
-		string[]	V_13,
-		string	V_14)
+		string	V_7,
+		int32	V_8,
+		class [mscorlib]System.IO.FileInfo	V_9,
+		class [mscorlib]System.IO.FileInfo	V_10,
+		bool	V_11,
+		class [mscorlib]System.IO.FileInfo	V_12,
+		class [System.Xml]System.Xml.XmlReader	V_13,
+		class [System.Xml]System.Xml.XmlReader	V_14,
+		class [mscorlib]System.IO.TextWriter	V_15,
+		string	V_16,
+		class [System.Xml]System.Xml.XPath.XPathDocument	V_17,
+		class [System.Xml]System.Xml.Xsl.XsltArgumentList	V_18,
+		class NAnt.Core.Types.XsltParameter	V_19,
+		class NAnt.Core.Types.XsltParameterEnumerator	V_20,
+		class [mscorlib]System.IDisposable	V_21,
+		class NAnt.Core.Types.XsltExtensionObject	V_22,
+		class NAnt.Core.Types.XsltExtensionObjectEnumerator	V_23,
+		object	V_24,
+		class [mscorlib]System.IDisposable	V_25,
+		class [mscorlib]System.IO.FileInfo	V_26,
+		class [System.Xml]System.Xml.Xsl.XslCompiledTransform	V_27,
+		string	V_28,
+		class [mscorlib]System.Exception	V_29,
+		class [mscorlib]System.IDisposable	V_30)
 	IL_0000:  nop 
-	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_0006:  brfalse IL_0019
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.StyleTask::get_InFiles()
+	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_000c:  brtrue IL_002e
 
-	IL_000b:  nop 
-	IL_000c:  ldarg.0 
-	IL_000d:  ldarg.1 
-	IL_000e:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0296
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.StyleTask::get_InFiles()
+	IL_0018:  ldarg.0 
+	IL_0019:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_001e:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_0023:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0028:  callvirt instance void class NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_002d:  nop 
+	IL_002e:  ldnull 
+	IL_002f:  stloc.0 
+	IL_0030:  ldarg.0 
+	IL_0031:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.StyleTask::get_SrcFile()
+	IL_0036:  brfalse IL_005a
 
-	IL_0019:  ldarg.0 
-	IL_001a:  brtrue IL_002b
+	IL_003b:  nop 
+	IL_003c:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0041:  stloc.0 
+	IL_0042:  ldloc.0 
+	IL_0043:  ldarg.0 
+	IL_0044:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.StyleTask::get_SrcFile()
+	IL_0049:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_004e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0053:  pop 
+	IL_0054:  nop 
+	IL_0055:  br IL_00af
 
-	IL_001f:  nop 
-	IL_0020:  ldstr "path1"
-	IL_0025:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_002a:  throw 
-	IL_002b:  ldarg.1 
-	IL_002c:  brtrue IL_003d
+	IL_005a:  ldarg.0 
+	IL_005b:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.StyleTask::get_InFiles()
+	IL_0060:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0065:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_006a:  ldc.i4.0 
+	IL_006b:  ble IL_00af
 
-	IL_0031:  nop 
-	IL_0032:  ldstr "path2"
-	IL_0037:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_003c:  throw 
-	IL_003d:  ldarg.1 
-	IL_003e:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	IL_0043:  brfalse IL_0050
+	IL_0070:  nop 
+	IL_0071:  ldarg.0 
+	IL_0072:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.StyleTask::get_OutputFile()
+	IL_0077:  brfalse IL_00a2
 
-	IL_0048:  nop 
-	IL_0049:  ldarg.1 
-	IL_004a:  stloc.0 
-	IL_004b:  br IL_0296
+	IL_007c:  nop 
+	IL_007d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0082:  ldstr "NA1148"
+	IL_0087:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_008c:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_0091:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0096:  ldarg.0 
+	IL_0097:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_009c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_00a1:  throw 
+	IL_00a2:  ldarg.0 
+	IL_00a3:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.StyleTask::get_InFiles()
+	IL_00a8:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_00ad:  stloc.0 
+	IL_00ae:  nop 
+	IL_00af:  ldloc.0 
+	IL_00b0:  brfalse IL_00c0
 
-	IL_0050:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_0055:  stloc.1 
-	IL_0056:  ldc.i4.2 
-	IL_0057:  newarr [mscorlib]System.Char
-	IL_005c:  dup 
-	IL_005d:  ldc.i4.0 
-	IL_005e:  ldc.i4.s 0x2f
-	IL_0060:  stelem.i2 
-	IL_0061:  dup 
-	IL_0062:  ldc.i4.1 
-	IL_0063:  ldloc.1 
-	IL_0064:  stelem.i2 
-	IL_0065:  stloc.2 
-	IL_0066:  ldarg.1 
-	IL_0067:  ldloc.2 
-	IL_0068:  callvirt instance string[] string::Split(char[])
-	IL_006d:  stloc.3 
-	IL_006e:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0073:  stloc.s 4
-	IL_0075:  ldc.i4.0 
-	IL_0076:  stloc.s 5
-	IL_0078:  br IL_0126
+	IL_00b5:  ldloc.0 
+	IL_00b6:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_00bb:  brtrue IL_00e6
 
-	IL_007d:  nop 
-	IL_007e:  ldloc.3 
-	IL_007f:  ldloc.s 5
-	IL_0081:  ldelem.ref 
-	IL_0082:  stloc.s 6
-	IL_0084:  ldloc.s 6
-	IL_0086:  callvirt instance int32 string::get_Length()
-	IL_008b:  brfalse IL_00a1
+	IL_00c0:  nop 
+	IL_00c1:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00c6:  ldstr "NA1147"
+	IL_00cb:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00d0:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_00d5:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_00da:  ldarg.0 
+	IL_00db:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_00e0:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_00e5:  throw 
+	IL_00e6:  ldarg.0 
+	IL_00e7:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
+	IL_00ec:  callvirt instance bool class [System]System.Uri::get_IsFile()
+	IL_00f1:  brfalse IL_0140
 
-	IL_0090:  ldloc.s 6
-	IL_0092:  ldstr "."
-	IL_0097:  call bool string::op_Equality(string, string)
-	IL_009c:  brfalse IL_00a7
+	IL_00f6:  nop 
+	IL_00f7:  ldarg.0 
+	IL_00f8:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
+	IL_00fd:  callvirt instance string class [System]System.Uri::get_LocalPath()
+	IL_0102:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0107:  stloc.1 
+	IL_0108:  ldloc.1 
+	IL_0109:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_010e:  brtrue IL_013a
 
-	IL_00a1:  nop 
-	IL_00a2:  br IL_0120
+	IL_0113:  nop 
+	IL_0114:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0119:  ldstr "NA1149"
+	IL_011e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0123:  ldloc.1 
+	IL_0124:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0129:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_012e:  ldarg.0 
+	IL_012f:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0134:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0139:  throw 
+	IL_013a:  nop 
+	IL_013b:  br IL_01b4
 
-	IL_00a7:  ldloc.s 6
-	IL_00a9:  ldstr ".."
-	IL_00ae:  call bool string::op_Equality(string, string)
-	IL_00b3:  brfalse IL_0113
+	IL_0140:  nop 
+	IL_0141:  ldarg.0 
+	IL_0142:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
+	IL_0147:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(class [System]System.Uri)
+	IL_014c:  castclass [System]System.Net.HttpWebRequest
+	IL_0151:  stloc.2 
+	IL_0152:  ldarg.0 
+	IL_0153:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.StyleTask::get_Proxy()
+	IL_0158:  brfalse IL_0170
 
-	IL_00b8:  nop 
-	IL_00b9:  ldloc.s 4
-	IL_00bb:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_00c0:  ldc.i4.0 
-	IL_00c1:  ble IL_0101
+	IL_015d:  nop 
+	IL_015e:  ldloc.2 
+	IL_015f:  ldarg.0 
+	IL_0160:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.StyleTask::get_Proxy()
+	IL_0165:  callvirt instance class [System]System.Net.IWebProxy class NAnt.Core.Types.Proxy::GetWebProxy()
+	IL_016a:  callvirt instance void class [System]System.Net.WebRequest::set_Proxy(class [System]System.Net.IWebProxy)
+	IL_016f:  nop 
+	IL_0170:  ldloc.2 
+	IL_0171:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
+	IL_0176:  castclass [System]System.Net.HttpWebResponse
+	IL_017b:  stloc.3 
+	IL_017c:  ldloc.3 
+	IL_017d:  callvirt instance valuetype [System]System.Net.HttpStatusCode class [System]System.Net.HttpWebResponse::get_StatusCode()
+	IL_0182:  ldc.i4 200
+	IL_0187:  beq IL_01b3
 
-	IL_00c6:  ldloc.s 4
-	IL_00c8:  ldloc.s 4
-	IL_00ca:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_00cf:  ldc.i4.1 
-	IL_00d0:  sub 
-	IL_00d1:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	IL_00d6:  castclass [mscorlib]System.String
-	IL_00db:  ldstr ".."
-	IL_00e0:  call bool string::op_Inequality(string, string)
-	IL_00e5:  brfalse IL_0101
+	IL_018c:  nop 
+	IL_018d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0192:  ldstr "NA1149"
+	IL_0197:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_019c:  ldarg.0 
+	IL_019d:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
+	IL_01a2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_01a7:  ldarg.0 
+	IL_01a8:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_01ad:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_01b2:  throw 
+	IL_01b3:  nop 
+	IL_01b4:  nop 
+	IL_01b5:  ldloc.0 
+	IL_01b6:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_01bb:  stloc.s 5
+	.try { // 6
+	  IL_01bd:  br IL_063d
 
-	IL_00ea:  nop 
-	IL_00eb:  ldloc.s 4
-	IL_00ed:  ldloc.s 4
-	IL_00ef:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_00f4:  ldc.i4.1 
-	IL_00f5:  sub 
-	IL_00f6:  callvirt instance void class [mscorlib]System.Collections.ArrayList::RemoveAt(int32)
-	IL_00fb:  nop 
-	IL_00fc:  br IL_010d
+	  IL_01c2:  ldloc.s 5
+	  IL_01c4:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_01c9:  stloc.s 4
+	  IL_01cb:  nop 
+	  IL_01cc:  ldnull 
+	  IL_01cd:  stloc.s 6
+	  IL_01cf:  ldarg.0 
+	  IL_01d0:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.StyleTask::get_OutputFile()
+	  IL_01d5:  brfalse IL_01e9
 
-	IL_0101:  nop 
-	IL_0102:  ldloc.s 4
-	IL_0104:  ldloc.s 6
-	IL_0106:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_010b:  pop 
-	IL_010c:  nop 
-	IL_010d:  nop 
-	IL_010e:  br IL_011f
+	  IL_01da:  nop 
+	  IL_01db:  ldarg.0 
+	  IL_01dc:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.StyleTask::get_OutputFile()
+	  IL_01e1:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_01e6:  stloc.s 6
+	  IL_01e8:  nop 
+	  IL_01e9:  ldloc.s 6
+	  IL_01eb:  call bool string::IsNullOrEmpty(string)
+	  IL_01f0:  brfalse IL_026d
 
-	IL_0113:  nop 
-	IL_0114:  ldloc.s 4
-	IL_0116:  ldloc.s 6
-	IL_0118:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_011d:  pop 
-	IL_011e:  nop 
-	IL_011f:  nop 
-	IL_0120:  ldloc.s 5
-	IL_0122:  ldc.i4.1 
-	IL_0123:  add 
-	IL_0124:  stloc.s 5
-	IL_0126:  ldloc.s 5
-	IL_0128:  ldloc.3 
-	IL_0129:  ldlen 
-	IL_012a:  conv.i4 
-	IL_012b:  blt IL_007d
+	  IL_01f5:  nop 
+	  IL_01f6:  ldarg.0 
+	  IL_01f7:  call instance string class NAnt.Core.Tasks.StyleTask::get_Extension()
+	  IL_01fc:  ldstr "."
+	  IL_0201:  callvirt instance int32 string::IndexOf(string)
+	  IL_0206:  ldc.i4.m1 
+	  IL_0207:  ble IL_0217
 
-	IL_0130:  ldarg.0 
-	IL_0131:  callvirt instance int32 string::get_Length()
-	IL_0136:  ldc.i4.0 
-	IL_0137:  ble IL_0153
+	  IL_020c:  ldarg.0 
+	  IL_020d:  call instance string class NAnt.Core.Tasks.StyleTask::get_Extension()
+	  IL_0212:  br IL_0227
 
-	IL_013c:  ldarg.0 
-	IL_013d:  ldloc.2 
-	IL_013e:  ldarg.0 
-	IL_013f:  callvirt instance int32 string::get_Length()
-	IL_0144:  ldc.i4.1 
-	IL_0145:  sub 
-	IL_0146:  callvirt instance int32 string::IndexOfAny(char[], int32)
-	IL_014b:  ldc.i4.m1 
-	IL_014c:  ceq 
-	IL_014e:  ldc.i4.0 
-	IL_014f:  ceq 
-	IL_0151:  br.s IL_0154
+	  IL_0217:  ldstr "."
+	  IL_021c:  ldarg.0 
+	  IL_021d:  call instance string class NAnt.Core.Tasks.StyleTask::get_Extension()
+	  IL_0222:  call string string::Concat(string, string)
+	  IL_0227:  stloc.s 7
+	  IL_0229:  ldloc.s 4
+	  IL_022b:  ldc.i4.s 0x2e
+	  IL_022d:  callvirt instance int32 string::LastIndexOf(char)
+	  IL_0232:  stloc.s 8
+	  IL_0234:  ldloc.s 8
+	  IL_0236:  ldc.i4.m1 
+	  IL_0237:  bne.un IL_024e
 
-	IL_0153:  ldc.i4.0 
-	IL_0154:  stloc.s 7
-	IL_0156:  ldloc.s 7
-	IL_0158:  brfalse IL_017b
+	  IL_023c:  nop 
+	  IL_023d:  ldloc.s 4
+	  IL_023f:  ldloc.s 7
+	  IL_0241:  call string string::Concat(string, string)
+	  IL_0246:  stloc.s 6
+	  IL_0248:  nop 
+	  IL_0249:  br IL_0263
 
-	IL_015d:  nop 
-	IL_015e:  ldarg.0 
-	IL_015f:  ldc.i4.0 
-	IL_0160:  ldarg.0 
-	IL_0161:  callvirt instance int32 string::get_Length()
-	IL_0166:  ldc.i4.1 
-	IL_0167:  sub 
-	IL_0168:  callvirt instance string string::Substring(int32, int32)
-	IL_016d:  ldloc.2 
-	IL_016e:  callvirt instance string[] string::Split(char[])
-	IL_0173:  stloc.s 8
-	IL_0175:  nop 
-	IL_0176:  br IL_0186
+	  IL_024e:  nop 
+	  IL_024f:  ldloc.s 4
+	  IL_0251:  ldc.i4.0 
+	  IL_0252:  ldloc.s 8
+	  IL_0254:  callvirt instance string string::Substring(int32, int32)
+	  IL_0259:  ldloc.s 7
+	  IL_025b:  call string string::Concat(string, string)
+	  IL_0260:  stloc.s 6
+	  IL_0262:  nop 
+	  IL_0263:  ldloc.s 6
+	  IL_0265:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	  IL_026a:  stloc.s 6
+	  IL_026c:  nop 
+	  IL_026d:  ldloc.s 4
+	  IL_026f:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_0274:  stloc.s 9
+	  IL_0276:  ldarg.0 
+	  IL_0277:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.StyleTask::get_DestDir()
+	  IL_027c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0281:  ldloc.s 6
+	  IL_0283:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_0288:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
+	  IL_028d:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_0292:  stloc.s 10
+	  IL_0294:  ldloc.s 9
+	  IL_0296:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_029b:  brtrue IL_02c8
 
-	IL_017b:  nop 
-	IL_017c:  ldarg.0 
-	IL_017d:  ldloc.2 
-	IL_017e:  callvirt instance string[] string::Split(char[])
-	IL_0183:  stloc.s 8
-	IL_0185:  nop 
-	IL_0186:  ldloc.s 8
-	IL_0188:  ldlen 
-	IL_0189:  conv.i4 
-	IL_018a:  stloc.s 9
-	IL_018c:  ldloc.s 4
-	IL_018e:  callvirt instance object class [mscorlib]System.Collections.ArrayList::Clone()
-	IL_0193:  castclass [mscorlib]System.Collections.ArrayList
-	IL_0198:  stloc.s 10
-	IL_019a:  ldc.i4.0 
-	IL_019b:  stloc.s 11
-	IL_019d:  br IL_01e3
+	  IL_02a0:  nop 
+	  IL_02a1:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_02a6:  ldstr "NA1150"
+	  IL_02ab:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_02b0:  ldloc.s 9
+	  IL_02b2:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_02b7:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_02bc:  ldarg.0 
+	  IL_02bd:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_02c2:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_02c7:  throw 
+	  IL_02c8:  ldloc.s 10
+	  IL_02ca:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_02cf:  brfalse IL_02e9
 
-	IL_01a2:  nop 
-	IL_01a3:  ldloc.s 10
-	IL_01a5:  ldloc.s 11
-	IL_01a7:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	IL_01ac:  castclass [mscorlib]System.String
-	IL_01b1:  ldstr ".."
-	IL_01b6:  call bool string::op_Inequality(string, string)
-	IL_01bb:  brtrue IL_01c8
+	  IL_02d4:  ldloc.s 9
+	  IL_02d6:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	  IL_02db:  ldloc.s 10
+	  IL_02dd:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	  IL_02e2:  call bool valuetype [mscorlib]System.DateTime::op_GreaterThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	  IL_02e7:  br.s IL_02ea
 
-	IL_01c0:  ldloc.s 9
-	IL_01c2:  ldc.i4.2 
-	IL_01c3:  bge IL_01ce
+	  IL_02e9:  ldc.i4.1 
+	  IL_02ea:  stloc.s 11
+	  IL_02ec:  ldloc.s 11
+	  IL_02ee:  brtrue IL_032f
 
-	IL_01c8:  nop 
-	IL_01c9:  br IL_01f1
+	  IL_02f3:  ldarg.0 
+	  IL_02f4:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
+	  IL_02f9:  callvirt instance bool class [System]System.Uri::get_IsFile()
+	  IL_02fe:  brfalse IL_032f
 
-	IL_01ce:  ldloc.s 9
-	IL_01d0:  ldc.i4.1 
-	IL_01d1:  sub 
-	IL_01d2:  stloc.s 9
-	IL_01d4:  ldloc.s 4
-	IL_01d6:  ldc.i4.0 
-	IL_01d7:  callvirt instance void class [mscorlib]System.Collections.ArrayList::RemoveAt(int32)
-	IL_01dc:  nop 
-	IL_01dd:  ldloc.s 11
-	IL_01df:  ldc.i4.1 
-	IL_01e0:  add 
-	IL_01e1:  stloc.s 11
-	IL_01e3:  ldloc.s 11
-	IL_01e5:  ldloc.s 10
-	IL_01e7:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_01ec:  blt IL_01a2
+	  IL_0303:  nop 
+	  IL_0304:  ldarg.0 
+	  IL_0305:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
+	  IL_030a:  callvirt instance string class [System]System.Uri::get_LocalPath()
+	  IL_030f:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_0314:  stloc.s 12
+	  IL_0316:  ldloc.s 11
+	  IL_0318:  ldloc.s 12
+	  IL_031a:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	  IL_031f:  ldloc.s 10
+	  IL_0321:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	  IL_0326:  call bool valuetype [mscorlib]System.DateTime::op_GreaterThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	  IL_032b:  or 
+	  IL_032c:  stloc.s 11
+	  IL_032e:  nop 
+	  IL_032f:  ldloc.s 11
+	  IL_0331:  brfalse IL_063c
 
-	IL_01f1:  ldloca.s 1
-	IL_01f3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01f8:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
-	IL_01fd:  stloc.s 12
-	IL_01ff:  ldloc.s 9
-	IL_0201:  ldc.i4.1 
-	IL_0202:  bne.un IL_022c
+	  IL_0336:  nop 
+	  IL_0337:  ldnull 
+	  IL_0338:  stloc.s 13
+	  IL_033a:  ldnull 
+	  IL_033b:  stloc.s 14
+	  IL_033d:  ldnull 
+	  IL_033e:  stloc.s 15
+	  .try { // 5
+	    .try { // 4
+	      IL_0340:  nop 
+	      IL_0341:  call string class [mscorlib]System.IO.Directory::GetCurrentDirectory()
+	      IL_0346:  stloc.s 16
+	      IL_0348:  ldnull 
+	      IL_0349:  stloc.s 17
+	      .try { // 0
+	        IL_034b:  nop 
+	        IL_034c:  ldloc.s 9
+	        IL_034e:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
+	        IL_0353:  call void class [mscorlib]System.IO.Directory::SetCurrentDirectory(string)
+	        IL_0358:  ldarg.0 
+	        IL_0359:  ldc.i4 2000
+	        IL_035e:  ldstr "Loading XML file '{0}'."
+	        IL_0363:  ldc.i4.1 
+	        IL_0364:  newarr [mscorlib]System.Object
+	        IL_0369:  dup 
+	        IL_036a:  ldc.i4.0 
+	        IL_036b:  ldloc.s 9
+	        IL_036d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	        IL_0372:  stelem.ref 
+	        IL_0373:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	        IL_0378:  ldarg.0 
+	        IL_0379:  ldloc.s 9
+	        IL_037b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	        IL_0380:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	        IL_0385:  callvirt instance class [System.Xml]System.Xml.XmlReader class NAnt.Core.Tasks.StyleTask::CreateXmlReader(class [System]System.Uri)
+	        IL_038a:  stloc.s 13
+	        IL_038c:  ldloc.s 13
+	        IL_038e:  newobj instance void class [System.Xml]System.Xml.XPath.XPathDocument::'.ctor'(class [System.Xml]System.Xml.XmlReader)
+	        IL_0393:  stloc.s 17
+	        IL_0395:  nop 
+	        IL_0396:  leave IL_03a5
 
-	IL_0207:  ldloc.s 7
-	IL_0209:  brtrue IL_0218
+	      } // end .try 0
+	      finally  { // 0
+	        IL_039b:  nop 
+	        IL_039c:  ldloc.s 16
+	        IL_039e:  call void class [mscorlib]System.IO.Directory::SetCurrentDirectory(string)
+	        IL_03a3:  nop 
+	        IL_03a4:  endfinally 
+	      } // end handler 0
+	      IL_03a5:  newobj instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::'.ctor'()
+	      IL_03aa:  stloc.s 18
+	      IL_03ac:  nop 
+	      IL_03ad:  ldarg.0 
+	      IL_03ae:  call instance class NAnt.Core.Types.XsltParameterCollection class NAnt.Core.Tasks.StyleTask::get_Parameters()
+	      IL_03b3:  callvirt instance class NAnt.Core.Types.XsltParameterEnumerator class NAnt.Core.Types.XsltParameterCollection::GetEnumerator()
+	      IL_03b8:  stloc.s 20
+	      .try { // 1
+	        IL_03ba:  br IL_03fe
 
-	IL_020e:  ldloc.s 8
-	IL_0210:  ldlen 
-	IL_0211:  conv.i4 
-	IL_0212:  ldc.i4.1 
-	IL_0213:  ble IL_022c
+	        IL_03bf:  ldloc.s 20
+	        IL_03c1:  callvirt instance class NAnt.Core.Types.XsltParameter class NAnt.Core.Types.XsltParameterEnumerator::get_Current()
+	        IL_03c6:  stloc.s 19
+	        IL_03c8:  nop 
+	        IL_03c9:  ldarg.0 
+	        IL_03ca:  call instance bool class NAnt.Core.Task::get_IfDefined()
+	        IL_03cf:  brfalse IL_03fd
 
-	IL_0218:  nop 
-	IL_0219:  ldloc.s 8
-	IL_021b:  dup 
-	IL_021c:  stloc.s 13
-	IL_021e:  ldc.i4.0 
-	IL_021f:  ldloc.s 13
-	IL_0221:  ldc.i4.0 
-	IL_0222:  ldelem.ref 
-	IL_0223:  ldloc.s 12
-	IL_0225:  call string string::Concat(string, string)
-	IL_022a:  stelem.ref 
-	IL_022b:  nop 
-	IL_022c:  ldloc.s 12
-	IL_022e:  ldloc.s 8
-	IL_0230:  ldc.i4.0 
-	IL_0231:  ldloc.s 9
-	IL_0233:  call string string::Join(string, string[], int32, int32)
-	IL_0238:  ldloc.s 12
-	IL_023a:  ldloc.s 4
-	IL_023c:  ldtoken [mscorlib]System.String
-	IL_0241:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0246:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
-	IL_024b:  castclass string[]
-	IL_0250:  call string string::Join(string, string[])
-	IL_0255:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_025a:  stloc.s 14
-	IL_025c:  ldarg.1 
-	IL_025d:  ldstr "/"
-	IL_0262:  callvirt instance bool string::EndsWith(string)
-	IL_0267:  brtrue IL_0279
+	        IL_03d4:  ldarg.0 
+	        IL_03d5:  call instance bool class NAnt.Core.Task::get_UnlessDefined()
+	        IL_03da:  brtrue IL_03fd
 
-	IL_026c:  ldarg.1 
-	IL_026d:  ldloc.s 12
-	IL_026f:  callvirt instance bool string::EndsWith(string)
-	IL_0274:  brfalse IL_028e
+	        IL_03df:  nop 
+	        IL_03e0:  ldloc.s 18
+	        IL_03e2:  ldloc.s 19
+	        IL_03e4:  callvirt instance string class NAnt.Core.Types.XsltParameter::get_ParameterName()
+	        IL_03e9:  ldloc.s 19
+	        IL_03eb:  callvirt instance string class NAnt.Core.Types.XsltParameter::get_NamespaceUri()
+	        IL_03f0:  ldloc.s 19
+	        IL_03f2:  callvirt instance string class NAnt.Core.Types.XsltParameter::get_Value()
+	        IL_03f7:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
+	        IL_03fc:  nop 
+	        IL_03fd:  nop 
+	        IL_03fe:  ldloc.s 20
+	        IL_0400:  callvirt instance bool class NAnt.Core.Types.XsltParameterEnumerator::MoveNext()
+	        IL_0405:  brtrue IL_03bf
 
-	IL_0279:  nop 
-	IL_027a:  ldloc.s 14
-	IL_027c:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_0281:  box [mscorlib]System.Char
-	IL_0286:  call string string::Concat(object, object)
-	IL_028b:  stloc.s 14
-	IL_028d:  nop 
-	IL_028e:  ldloc.s 14
-	IL_0290:  stloc.0 
-	IL_0291:  br IL_0296
+	        IL_040a:  leave IL_0426
 
-	IL_0296:  ldloc.0 
-	IL_0297:  ret 
-    } // end of method FileUtils::CombinePaths
+	      } // end .try 1
+	      finally  { // 1
+	        IL_040f:  ldloc.s 20
+	        IL_0411:  isinst [mscorlib]System.IDisposable
+	        IL_0416:  dup 
+	        IL_0417:  stloc.s 21
+	        IL_0419:  brfalse IL_0425
 
-    // method line 1533
-    .method public static hidebysig 
-           default string GetFullPath (string path)  cil managed 
-    {
-        // Method begins at RVA 0x1be78
-	// Code size 135 (0x87)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0013
+	        IL_041e:  ldloc.s 21
+	        IL_0420:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	        IL_0425:  endfinally 
+	      } // end handler 1
+	      IL_0426:  nop 
+	      IL_0427:  ldarg.0 
+	      IL_0428:  call instance class NAnt.Core.Types.XsltExtensionObjectCollection class NAnt.Core.Tasks.StyleTask::get_ExtensionObjects()
+	      IL_042d:  callvirt instance class NAnt.Core.Types.XsltExtensionObjectEnumerator class NAnt.Core.Types.XsltExtensionObjectCollection::GetEnumerator()
+	      IL_0432:  stloc.s 23
+	      .try { // 2
+	        IL_0434:  br IL_0477
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "path"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_0018:  brtrue IL_0028
+	        IL_0439:  ldloc.s 23
+	        IL_043b:  callvirt instance class NAnt.Core.Types.XsltExtensionObject class NAnt.Core.Types.XsltExtensionObjectEnumerator::get_Current()
+	        IL_0440:  stloc.s 22
+	        IL_0442:  nop 
+	        IL_0443:  ldloc.s 22
+	        IL_0445:  callvirt instance bool class NAnt.Core.Types.XsltExtensionObject::get_IfDefined()
+	        IL_044a:  brfalse IL_0476
 
-	IL_001d:  ldarg.0 
-	IL_001e:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	IL_0023:  brfalse IL_0035
+	        IL_044f:  ldloc.s 22
+	        IL_0451:  callvirt instance bool class NAnt.Core.Types.XsltExtensionObject::get_UnlessDefined()
+	        IL_0456:  brtrue IL_0476
 
-	IL_0028:  nop 
-	IL_0029:  ldarg.0 
-	IL_002a:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
-	IL_002f:  stloc.0 
-	IL_0030:  br IL_0085
+	        IL_045b:  nop 
+	        IL_045c:  ldloc.s 22
+	        IL_045e:  callvirt instance object class NAnt.Core.Types.XsltExtensionObject::CreateInstance()
+	        IL_0463:  stloc.s 24
+	        IL_0465:  ldloc.s 18
+	        IL_0467:  ldloc.s 22
+	        IL_0469:  callvirt instance string class NAnt.Core.Types.XsltExtensionObject::get_NamespaceUri()
+	        IL_046e:  ldloc.s 24
+	        IL_0470:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddExtensionObject(string, object)
+	        IL_0475:  nop 
+	        IL_0476:  nop 
+	        IL_0477:  ldloc.s 23
+	        IL_0479:  callvirt instance bool class NAnt.Core.Types.XsltExtensionObjectEnumerator::MoveNext()
+	        IL_047e:  brtrue IL_0439
 
-	IL_0035:  ldarg.0 
-	IL_0036:  callvirt instance int32 string::get_Length()
-	IL_003b:  brfalse IL_0061
+	        IL_0483:  leave IL_049f
 
-	IL_0040:  ldarg.0 
-	IL_0041:  callvirt instance string string::Trim()
-	IL_0046:  callvirt instance int32 string::get_Length()
-	IL_004b:  brfalse IL_0061
+	      } // end .try 2
+	      finally  { // 2
+	        IL_0488:  ldloc.s 23
+	        IL_048a:  isinst [mscorlib]System.IDisposable
+	        IL_048f:  dup 
+	        IL_0490:  stloc.s 25
+	        IL_0492:  brfalse IL_049e
 
-	IL_0050:  ldarg.0 
-	IL_0051:  ldsfld char[] [mscorlib]System.IO.Path::InvalidPathChars
-	IL_0056:  callvirt instance int32 string::IndexOfAny(char[])
-	IL_005b:  ldc.i4.m1 
-	IL_005c:  beq IL_006d
+	        IL_0497:  ldloc.s 25
+	        IL_0499:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	        IL_049e:  endfinally 
+	      } // end handler 2
+	      .try { // 3
+	        IL_049f:  nop 
+	        IL_04a0:  ldarg.0 
+	        IL_04a1:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
+	        IL_04a6:  callvirt instance bool class [System]System.Uri::get_IsFile()
+	        IL_04ab:  brfalse IL_04d0
 
-	IL_0061:  nop 
-	IL_0062:  ldstr "The path is not of a legal form."
-	IL_0067:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_006c:  throw 
-	IL_006d:  call string class [mscorlib]System.IO.Directory::GetCurrentDirectory()
-	IL_0072:  ldarg.0 
-	IL_0073:  call string class NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0078:  stloc.1 
-	IL_0079:  ldloc.1 
-	IL_007a:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
-	IL_007f:  stloc.0 
-	IL_0080:  br IL_0085
+	        IL_04b0:  nop 
+	        IL_04b1:  ldarg.0 
+	        IL_04b2:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
+	        IL_04b7:  callvirt instance string class [System]System.Uri::get_LocalPath()
+	        IL_04bc:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	        IL_04c1:  stloc.s 26
+	        IL_04c3:  ldloc.s 26
+	        IL_04c5:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
+	        IL_04ca:  call void class [mscorlib]System.IO.Directory::SetCurrentDirectory(string)
+	        IL_04cf:  nop 
+	        IL_04d0:  ldarg.0 
+	        IL_04d1:  ldc.i4 2000
+	        IL_04d6:  ldstr "Loading stylesheet '{0}'."
+	        IL_04db:  ldc.i4.1 
+	        IL_04dc:  newarr [mscorlib]System.Object
+	        IL_04e1:  dup 
+	        IL_04e2:  ldc.i4.0 
+	        IL_04e3:  ldarg.0 
+	        IL_04e4:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
+	        IL_04e9:  stelem.ref 
+	        IL_04ea:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	        IL_04ef:  ldarg.0 
+	        IL_04f0:  ldarg.0 
+	        IL_04f1:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
+	        IL_04f6:  callvirt instance class [System.Xml]System.Xml.XmlReader class NAnt.Core.Tasks.StyleTask::CreateXmlReader(class [System]System.Uri)
+	        IL_04fb:  stloc.s 14
+	        IL_04fd:  ldarg.0 
+	        IL_04fe:  ldloc.s 10
+	        IL_0500:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	        IL_0505:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.Tasks.StyleTask::CreateWriter(string)
+	        IL_050a:  stloc.s 15
+	        IL_050c:  ldarg.0 
+	        IL_050d:  ldc.i4 3000
+	        IL_0512:  ldstr "Processing '{0}' to '{1}'."
+	        IL_0517:  ldc.i4.2 
+	        IL_0518:  newarr [mscorlib]System.Object
+	        IL_051d:  dup 
+	        IL_051e:  ldc.i4.0 
+	        IL_051f:  ldloc.s 9
+	        IL_0521:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	        IL_0526:  stelem.ref 
+	        IL_0527:  dup 
+	        IL_0528:  ldc.i4.1 
+	        IL_0529:  ldloc.s 10
+	        IL_052b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	        IL_0530:  stelem.ref 
+	        IL_0531:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	        IL_0536:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
+	        IL_053b:  stloc.s 27
+	        IL_053d:  ldloc.s 27
+	        IL_053f:  callvirt instance class [mscorlib]System.Type object::GetType()
+	        IL_0544:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	        IL_0549:  stloc.s 28
+	        IL_054b:  ldarg.0 
+	        IL_054c:  ldc.i4 2000
+	        IL_0551:  ldstr "Using {0} to load '{1}'."
+	        IL_0556:  ldc.i4.2 
+	        IL_0557:  newarr [mscorlib]System.Object
+	        IL_055c:  dup 
+	        IL_055d:  ldc.i4.0 
+	        IL_055e:  ldloc.s 28
+	        IL_0560:  stelem.ref 
+	        IL_0561:  dup 
+	        IL_0562:  ldc.i4.1 
+	        IL_0563:  ldarg.0 
+	        IL_0564:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
+	        IL_0569:  stelem.ref 
+	        IL_056a:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	        IL_056f:  ldloc.s 27
+	        IL_0571:  ldloc.s 14
+	        IL_0573:  ldc.i4.1 
+	        IL_0574:  ldc.i4.1 
+	        IL_0575:  newobj instance void class [System.Xml]System.Xml.Xsl.XsltSettings::'.ctor'(bool, bool)
+	        IL_057a:  newobj instance void class [System.Xml]System.Xml.XmlUrlResolver::'.ctor'()
+	        IL_057f:  callvirt instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::Load(class [System.Xml]System.Xml.XmlReader, class [System.Xml]System.Xml.Xsl.XsltSettings, class [System.Xml]System.Xml.XmlResolver)
+	        IL_0584:  ldarg.0 
+	        IL_0585:  ldc.i4 2000
+	        IL_058a:  ldstr "Using {0} to process '{1}' to '{2}'."
+	        IL_058f:  ldc.i4.3 
+	        IL_0590:  newarr [mscorlib]System.Object
+	        IL_0595:  dup 
+	        IL_0596:  ldc.i4.0 
+	        IL_0597:  ldloc.s 28
+	        IL_0599:  stelem.ref 
+	        IL_059a:  dup 
+	        IL_059b:  ldc.i4.1 
+	        IL_059c:  ldloc.s 9
+	        IL_059e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	        IL_05a3:  stelem.ref 
+	        IL_05a4:  dup 
+	        IL_05a5:  ldc.i4.2 
+	        IL_05a6:  ldloc.s 10
+	        IL_05a8:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	        IL_05ad:  stelem.ref 
+	        IL_05ae:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	        IL_05b3:  ldloc.s 27
+	        IL_05b5:  ldloc.s 17
+	        IL_05b7:  ldloc.s 18
+	        IL_05b9:  ldloc.s 15
+	        IL_05bb:  callvirt instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::Transform(class [System.Xml]System.Xml.XPath.IXPathNavigable, class [System.Xml]System.Xml.Xsl.XsltArgumentList, class [mscorlib]System.IO.TextWriter)
+	        IL_05c0:  nop 
+	        IL_05c1:  leave IL_05d0
 
-	IL_0085:  ldloc.0 
-	IL_0086:  ret 
-    } // end of method FileUtils::GetFullPath
+	      } // end .try 3
+	      finally  { // 3
+	        IL_05c6:  nop 
+	        IL_05c7:  ldloc.s 16
+	        IL_05c9:  call void class [mscorlib]System.IO.Directory::SetCurrentDirectory(string)
+	        IL_05ce:  nop 
+	        IL_05cf:  endfinally 
+	      } // end handler 3
+	      IL_05d0:  nop 
+	      IL_05d1:  leave IL_063b
 
-    // method line 1534
-    .method public static hidebysig 
-           default string GetHomeDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x1bf0c
-	// Code size 47 (0x2f)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_0006:  brfalse IL_001c
+	    } // end .try 4
+	    catch class [mscorlib]System.Exception { // 4
+	      IL_05d6:  stloc.s 29
+	      IL_05d8:  nop 
+	      IL_05d9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	      IL_05de:  ldstr "NA1151"
+	      IL_05e3:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	      IL_05e8:  ldloc.s 9
+	      IL_05ea:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	      IL_05ef:  ldarg.0 
+	      IL_05f0:  call instance class [System]System.Uri class NAnt.Core.Tasks.StyleTask::get_XsltFile()
+	      IL_05f5:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	      IL_05fa:  ldarg.0 
+	      IL_05fb:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	      IL_0600:  ldloc.s 29
+	      IL_0602:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	      IL_0607:  throw 
+	    } // end handler 4
+	  } // end .try 5
+	  finally  { // 5
+	    IL_0608:  nop 
+	    IL_0609:  ldloc.s 13
+	    IL_060b:  brfalse IL_0619
 
-	IL_000b:  nop 
-	IL_000c:  ldstr "HOME"
-	IL_0011:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
-	IL_0016:  stloc.0 
-	IL_0017:  br IL_002d
+	    IL_0610:  nop 
+	    IL_0611:  ldloc.s 13
+	    IL_0613:  callvirt instance void class [System.Xml]System.Xml.XmlReader::Close()
+	    IL_0618:  nop 
+	    IL_0619:  ldloc.s 14
+	    IL_061b:  brfalse IL_0629
 
-	IL_001c:  nop 
-	IL_001d:  ldstr "USERPROFILE"
-	IL_0022:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
-	IL_0027:  stloc.0 
-	IL_0028:  br IL_002d
+	    IL_0620:  nop 
+	    IL_0621:  ldloc.s 14
+	    IL_0623:  callvirt instance void class [System.Xml]System.Xml.XmlReader::Close()
+	    IL_0628:  nop 
+	    IL_0629:  ldloc.s 15
+	    IL_062b:  brfalse IL_0639
 
-	IL_002d:  ldloc.0 
-	IL_002e:  ret 
-    } // end of method FileUtils::GetHomeDirectory
+	    IL_0630:  nop 
+	    IL_0631:  ldloc.s 15
+	    IL_0633:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
+	    IL_0638:  nop 
+	    IL_0639:  nop 
+	    IL_063a:  endfinally 
+	  } // end handler 5
+	  IL_063b:  nop 
+	  IL_063c:  nop 
+	  IL_063d:  ldloc.s 5
+	  IL_063f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0644:  brtrue IL_01c2
 
-    // method line 1535
-    .method public static hidebysig 
-           default string ResolveFile (string[] directories, string fileName, bool recursive)  cil managed 
+	  IL_0649:  leave IL_0665
+
+	} // end .try 6
+	finally  { // 6
+	  IL_064e:  ldloc.s 5
+	  IL_0650:  isinst [mscorlib]System.IDisposable
+	  IL_0655:  dup 
+	  IL_0656:  stloc.s 30
+	  IL_0658:  brfalse IL_0664
+
+	  IL_065d:  ldloc.s 30
+	  IL_065f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0664:  endfinally 
+	} // end handler 6
+	IL_0665:  ret 
+    } // end of method StyleTask::ExecuteTask
+
+    // method line 1351
+    .method family virtual hidebysig newslot 
+           instance default class [System.Xml]System.Xml.XmlReader CreateXmlReader (class [System]System.Uri uri)  cil managed 
     {
-        // Method begins at RVA 0x1bf48
-	// Code size 113 (0x71)
+        // Method begins at RVA 0x18e24
+	// Code size 175 (0xaf)
 	.maxstack 3
 	.locals init (
-		string	V_0,
-		string	V_1,
-		string[]	V_2,
-		int32	V_3,
-		string	V_4)
+		class [mscorlib]System.IO.Stream	V_0,
+		class [System.Xml]System.Xml.XmlUrlResolver	V_1,
+		class [System]System.Net.HttpWebRequest	V_2,
+		class [System.Xml]System.Xml.XmlTextReader	V_3,
+		class [System.Xml]System.Xml.XmlReader	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0012
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldnull 
+	IL_0004:  stloc.1 
+	IL_0005:  ldarg.1 
+	IL_0006:  callvirt instance bool class [System]System.Uri::get_IsFile()
+	IL_000b:  brfalse IL_0025
 
-	IL_0007:  ldstr "directories"
-	IL_000c:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0011:  throw 
-	IL_0012:  ldarg.1 
-	IL_0013:  brtrue IL_0023
+	IL_0010:  nop 
+	IL_0011:  ldarg.1 
+	IL_0012:  callvirt instance string class [System]System.Uri::get_LocalPath()
+	IL_0017:  ldc.i4.3 
+	IL_0018:  ldc.i4.1 
+	IL_0019:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode, valuetype [mscorlib]System.IO.FileAccess)
+	IL_001e:  stloc.0 
+	IL_001f:  nop 
+	IL_0020:  br IL_008b
 
-	IL_0018:  ldstr "fileName"
-	IL_001d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0022:  throw 
-	IL_0023:  ldnull 
-	IL_0024:  stloc.0 
 	IL_0025:  nop 
-	IL_0026:  ldarg.0 
-	IL_0027:  stloc.2 
-	IL_0028:  ldc.i4.0 
-	IL_0029:  stloc.3 
-	IL_002a:  br IL_005d
-
-	IL_002f:  ldloc.2 
-	IL_0030:  ldloc.3 
-	IL_0031:  ldelem.ref 
-	IL_0032:  stloc.1 
-	IL_0033:  nop 
-	IL_0034:  ldloc.1 
-	IL_0035:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_003a:  brtrue IL_0044
-
-	IL_003f:  br IL_0059
-
-	IL_0044:  ldloc.1 
-	IL_0045:  ldarg.1 
-	IL_0046:  ldarg.2 
-	IL_0047:  call string class NAnt.Core.Util.FileUtils::ScanDirectory(string, string, bool)
-	IL_004c:  stloc.0 
-	IL_004d:  ldloc.0 
-	IL_004e:  brfalse IL_0058
-
-	IL_0053:  br IL_0066
+	IL_0026:  newobj instance void class [System.Xml]System.Xml.XmlUrlResolver::'.ctor'()
+	IL_002b:  stloc.1 
+	IL_002c:  ldarg.1 
+	IL_002d:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(class [System]System.Uri)
+	IL_0032:  castclass [System]System.Net.HttpWebRequest
+	IL_0037:  stloc.2 
+	IL_0038:  ldarg.0 
+	IL_0039:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.StyleTask::get_Proxy()
+	IL_003e:  brfalse IL_0071
 
-	IL_0058:  nop 
-	IL_0059:  ldloc.3 
-	IL_005a:  ldc.i4.1 
-	IL_005b:  add 
-	IL_005c:  stloc.3 
-	IL_005d:  ldloc.3 
-	IL_005e:  ldloc.2 
-	IL_005f:  ldlen 
-	IL_0060:  conv.i4 
-	IL_0061:  blt IL_002f
+	IL_0043:  nop 
+	IL_0044:  ldloc.2 
+	IL_0045:  ldarg.0 
+	IL_0046:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.StyleTask::get_Proxy()
+	IL_004b:  callvirt instance class [System]System.Net.IWebProxy class NAnt.Core.Types.Proxy::GetWebProxy()
+	IL_0050:  callvirt instance void class [System]System.Net.WebRequest::set_Proxy(class [System]System.Net.IWebProxy)
+	IL_0055:  ldloc.1 
+	IL_0056:  ldarg.0 
+	IL_0057:  call instance class NAnt.Core.Types.Proxy class NAnt.Core.Tasks.StyleTask::get_Proxy()
+	IL_005c:  callvirt instance class NAnt.Core.Types.Credential class NAnt.Core.Types.Proxy::get_Credentials()
+	IL_0061:  callvirt instance class [System]System.Net.ICredentials class NAnt.Core.Types.Credential::GetCredential()
+	IL_0066:  callvirt instance void class [System.Xml]System.Xml.XmlResolver::set_Credentials(class [System]System.Net.ICredentials)
+	IL_006b:  nop 
+	IL_006c:  br IL_007e
 
-	IL_0066:  ldloc.0 
-	IL_0067:  stloc.s 4
-	IL_0069:  br IL_006e
+	IL_0071:  nop 
+	IL_0072:  ldloc.1 
+	IL_0073:  call class [System]System.Net.ICredentials class [System]System.Net.CredentialCache::get_DefaultCredentials()
+	IL_0078:  callvirt instance void class [System.Xml]System.Xml.XmlResolver::set_Credentials(class [System]System.Net.ICredentials)
+	IL_007d:  nop 
+	IL_007e:  ldloc.2 
+	IL_007f:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
+	IL_0084:  callvirt instance class [mscorlib]System.IO.Stream class [System]System.Net.WebResponse::GetResponseStream()
+	IL_0089:  stloc.0 
+	IL_008a:  nop 
+	IL_008b:  ldarg.1 
+	IL_008c:  callvirt instance string object::ToString()
+	IL_0091:  ldloc.0 
+	IL_0092:  newobj instance void class [System.Xml]System.Xml.XmlTextReader::'.ctor'(string, class [mscorlib]System.IO.Stream)
+	IL_0097:  stloc.3 
+	IL_0098:  ldloc.3 
+	IL_0099:  ldloc.1 
+	IL_009a:  callvirt instance void class [System.Xml]System.Xml.XmlTextReader::set_XmlResolver(class [System.Xml]System.Xml.XmlResolver)
+	IL_009f:  ldloc.3 
+	IL_00a0:  newobj instance void class [System.Xml]System.Xml.XmlValidatingReader::'.ctor'(class [System.Xml]System.Xml.XmlReader)
+	IL_00a5:  stloc.s 4
+	IL_00a7:  br IL_00ac
 
-	IL_006e:  ldloc.s 4
-	IL_0070:  ret 
-    } // end of method FileUtils::ResolveFile
+	IL_00ac:  ldloc.s 4
+	IL_00ae:  ret 
+    } // end of method StyleTask::CreateXmlReader
 
-    // method line 1536
-    .method private static hidebysig 
-           default string ScanDirectory (string directory, string fileName, bool recursive)  cil managed 
+    // method line 1352
+    .method family virtual hidebysig newslot 
+           instance default class [mscorlib]System.IO.TextWriter CreateWriter (string filepath)  cil managed 
     {
-        // Method begins at RVA 0x1bfc8
-	// Code size 121 (0x79)
-	.maxstack 3
+        // Method begins at RVA 0x18ee0
+	// Code size 58 (0x3a)
+	.maxstack 1
 	.locals init (
 		string	V_0,
-		string	V_1,
-		string[]	V_2,
-		string	V_3,
-		string[]	V_4,
-		int32	V_5)
+		class [mscorlib]System.IO.TextWriter	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_000f:  brfalse IL_001b
+	IL_0001:  ldarg.1 
+	IL_0002:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
+	IL_0007:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  call bool string::IsNullOrEmpty(string)
+	IL_0013:  brtrue IL_002c
 
-	IL_0014:  ldloc.0 
-	IL_0015:  stloc.1 
-	IL_0016:  br IL_0077
+	IL_0018:  ldloc.0 
+	IL_0019:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_001e:  brtrue IL_002c
 
-	IL_001b:  ldarg.2 
-	IL_001c:  brtrue IL_0028
+	IL_0023:  nop 
+	IL_0024:  ldloc.0 
+	IL_0025:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	IL_002a:  pop 
+	IL_002b:  nop 
+	IL_002c:  ldarg.1 
+	IL_002d:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string)
+	IL_0032:  stloc.1 
+	IL_0033:  br IL_0038
 
-	IL_0021:  ldnull 
-	IL_0022:  stloc.1 
-	IL_0023:  br IL_0077
+	IL_0038:  ldloc.1 
+	IL_0039:  ret 
+    } // end of method StyleTask::CreateWriter
 
-	IL_0028:  ldarg.0 
-	IL_0029:  call string[] class [mscorlib]System.IO.Directory::GetDirectories(string)
-	IL_002e:  stloc.2 
-	IL_002f:  nop 
-	IL_0030:  ldloc.2 
-	IL_0031:  stloc.s 4
-	IL_0033:  ldc.i4.0 
-	IL_0034:  stloc.s 5
-	IL_0036:  br IL_0065
+	.property instance class [mscorlib]System.IO.DirectoryInfo DestDir ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 64 65 73 74 64 69 72 01 00 54 02 08 52   // ...destdir..T..R
+		65 71 75 69 72 65 64 00                         ) // equired.
 
-	IL_003b:  ldloc.s 4
-	IL_003d:  ldloc.s 5
-	IL_003f:  ldelem.ref 
-	IL_0040:  stloc.3 
-	IL_0041:  nop 
-	IL_0042:  ldarg.0 
-	IL_0043:  ldloc.3 
-	IL_0044:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0049:  ldarg.1 
-	IL_004a:  ldarg.2 
-	IL_004b:  call string class NAnt.Core.Util.FileUtils::ScanDirectory(string, string, bool)
-	IL_0050:  stloc.0 
-	IL_0051:  ldloc.0 
-	IL_0052:  brfalse IL_005e
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.StyleTask::get_DestDir () 
+		.set instance default void NAnt.Core.Tasks.StyleTask::set_DestDir (class [mscorlib]System.IO.DirectoryInfo 'value') 
+	}
+	.property instance string Extension ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 09 65 78 74 65 6E 73 69 6F 6E 01 00 54 02   // ...extension..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
 
-	IL_0057:  ldloc.0 
-	IL_0058:  stloc.1 
-	IL_0059:  br IL_0077
+		.get instance default string NAnt.Core.Tasks.StyleTask::get_Extension () 
+		.set instance default void NAnt.Core.Tasks.StyleTask::set_Extension (string 'value') 
+	}
+	.property instance class [System]System.Uri XsltFile ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 05 73 74 79 6C 65 01 00 54 02 08 52 65 71   // ...style..T..Req
+		75 69 72 65 64 01                               ) // uired.
 
-	IL_005e:  nop 
-	IL_005f:  ldloc.s 5
-	IL_0061:  ldc.i4.1 
-	IL_0062:  add 
-	IL_0063:  stloc.s 5
-	IL_0065:  ldloc.s 5
-	IL_0067:  ldloc.s 4
-	IL_0069:  ldlen 
-	IL_006a:  conv.i4 
-	IL_006b:  blt IL_003b
+		.get instance default class [System]System.Uri NAnt.Core.Tasks.StyleTask::get_XsltFile () 
+		.set instance default void NAnt.Core.Tasks.StyleTask::set_XsltFile (class [System]System.Uri 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo SrcFile ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 02 69 6E 01 00 54 02 08 52 65 71 75 69 72   // ...in..T..Requir
+		65 64 00                                        ) // ed.
 
-	IL_0070:  ldnull 
-	IL_0071:  stloc.1 
-	IL_0072:  br IL_0077
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.StyleTask::get_SrcFile () 
+		.set instance default void NAnt.Core.Tasks.StyleTask::set_SrcFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 03 6F 75 74 01 00 54 02 08 52 65 71 75 69   // ...out..T..Requi
+		72 65 64 00                                     ) // red.
 
-	IL_0077:  ldloc.1 
-	IL_0078:  ret 
-    } // end of method FileUtils::ScanDirectory
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.StyleTask::get_OutputFile () 
+		.set instance default void NAnt.Core.Tasks.StyleTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class NAnt.Core.Types.FileSet InFiles ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 69 6E 66 69 6C 65 73 00 00 ) // ...infiles..
 
-  } // end of class NAnt.Core.Util.FileUtils
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.StyleTask::get_InFiles () 
+		.set instance default void NAnt.Core.Tasks.StyleTask::set_InFiles (class NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance class NAnt.Core.Types.XsltParameterCollection Parameters ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
+		01 00 0A 70 61 72 61 6D 65 74 65 72 73 09 70 61   // ...parameters.pa
+		72 61 6D 65 74 65 72 00 00                      ) // rameter..
+
+		.get instance default class NAnt.Core.Types.XsltParameterCollection NAnt.Core.Tasks.StyleTask::get_Parameters () 
+	}
+	.property instance class NAnt.Core.Types.XsltExtensionObjectCollection ExtensionObjects ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
+		01 00 10 65 78 74 65 6E 73 69 6F 6E 6F 62 6A 65   // ...extensionobje
+		63 74 73 0F 65 78 74 65 6E 73 69 6F 6E 6F 62 6A   // cts.extensionobj
+		65 63 74 00 00                                  ) // ect..
+
+		.get instance default class NAnt.Core.Types.XsltExtensionObjectCollection NAnt.Core.Tasks.StyleTask::get_ExtensionObjects () 
+	}
+	.property instance class NAnt.Core.Types.Proxy Proxy ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 05 70 72 6F 78 79 00 00 ) // ...proxy..
+
+		.get instance default class NAnt.Core.Types.Proxy NAnt.Core.Tasks.StyleTask::get_Proxy () 
+		.set instance default void NAnt.Core.Tasks.StyleTask::set_Proxy (class NAnt.Core.Types.Proxy 'value') 
+	}
+  } // end of class NAnt.Core.Tasks.StyleTask
 }
 
-.namespace NAnt.Core.Util
+.namespace NAnt.Core.Tasks
 {
-  .class public auto ansi sealed serializable beforefieldinit CommandLineArgumentException
-  	extends [mscorlib]System.ArgumentException
+  .class public auto ansi beforefieldinit CopyTask
+  	extends NAnt.Core.Task
   {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 63 6F 70 79 00 00 ) // ...copy..
 
-    // method line 1537
+    .field  private  class [mscorlib]System.IO.FileInfo _sourceFile
+    .field  private  class [mscorlib]System.IO.FileInfo _toFile
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _toDirectory
+    .field  private  bool _overwrite
+    .field  private  bool _flatten
+    .field  private  class NAnt.Core.Types.FileSet _fileset
+    .field  private  class NAnt.Core.Tasks.CopyTask/FileOperationMap _operationMap
+    .field  private  bool _includeEmptyDirs
+    .field  private  class NAnt.Core.Filters.FilterChain _filters
+    .field  private  class [mscorlib]System.Text.Encoding _inputEncoding
+    .field  private  class [mscorlib]System.Text.Encoding _outputEncoding
+
+    // method line 1353
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1c04d
-	// Code size 8 (0x8)
-	.maxstack 8
+        // Method begins at RVA 0x11c30
+	// Code size 72 (0x48)
+	.maxstack 2
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.ArgumentException::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method CommandLineArgumentException::.ctor
+	IL_0001:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.CopyTask::_fileset
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4.1 
+	IL_000d:  stfld bool NAnt.Core.Tasks.CopyTask::_includeEmptyDirs
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0018:  nop 
+	IL_0019:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
+	IL_001e:  brfalse IL_0035
 
-    // method line 1538
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message)  cil managed 
+	IL_0023:  nop 
+	IL_0024:  ldarg.0 
+	IL_0025:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileOperationMap::'.ctor'()
+	IL_002a:  stfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
+	IL_002f:  nop 
+	IL_0030:  br IL_0047
+
+	IL_0035:  nop 
+	IL_0036:  ldarg.0 
+	IL_0037:  call class [mscorlib]System.StringComparer class [mscorlib]System.StringComparer::get_InvariantCultureIgnoreCase()
+	IL_003c:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileOperationMap::'.ctor'(class [mscorlib]System.StringComparer)
+	IL_0041:  stfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
+	IL_0046:  nop 
+	IL_0047:  ret 
+    } // end of method CopyTask::.ctor
+
+    // method line 1354
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_SourceFile ()  cil managed 
+    {
+        // Method begins at RVA 0x11c84
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.CopyTask::_sourceFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_SourceFile
+
+    // method line 1355
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_SourceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x1c056
+        // Method begins at RVA 0x11c9f
 	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0007:  nop 
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.CopyTask::_sourceFile
 	IL_0008:  ret 
-    } // end of method CommandLineArgumentException::.ctor
+    } // end of method CopyTask::set_SourceFile
 
-    // method line 1539
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, class [mscorlib]System.Exception innerException)  cil managed 
+    // method line 1356
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_ToFile ()  cil managed 
     {
-        // Method begins at RVA 0x1c060
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class [mscorlib]System.ArgumentException::'.ctor'(string, class [mscorlib]System.Exception)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method CommandLineArgumentException::.ctor
+        // Method begins at RVA 0x11cac
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.CopyTask::_toFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 1540
-    .method private hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_ToFile
+
+    // method line 1357
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_ToFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x1c06b
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x11cc7
+	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class [mscorlib]System.ArgumentException::'.ctor'(class [mscorlib]System.Runtime.Serialization.SerializationInfo, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method CommandLineArgumentException::.ctor
-
-  } // end of class NAnt.Core.Util.CommandLineArgumentException
-}
-
-.namespace NAnt.Core.Util
-{
-  .class public auto ansi beforefieldinit StopWatchStack
-  	extends [mscorlib]System.Object
-  {
-    .field  private initonly  class NAnt.Core.Util.DateTimeProvider _dtProvider
-    .field  private initonly  class [mscorlib]System.Collections.Stack _stack
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.CopyTask::_toFile
+	IL_0008:  ret 
+    } // end of method CopyTask::set_ToFile
 
-    // method line 1541
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Util.DateTimeProvider dtProvider)  cil managed 
+    // method line 1358
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x1c076
-	// Code size 26 (0x1a)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
-	IL_0006:  stfld class [mscorlib]System.Collections.Stack NAnt.Core.Util.StopWatchStack::_stack
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void object::'.ctor'()
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldarg.1 
-	IL_0014:  stfld class NAnt.Core.Util.DateTimeProvider NAnt.Core.Util.StopWatchStack::_dtProvider
-	IL_0019:  ret 
-    } // end of method StopWatchStack::.ctor
+        // Method begins at RVA 0x11cd4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.CopyTask::_toDirectory
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 1542
-    .method public hidebysig 
-           instance default void PushStart ()  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_ToDirectory
+
+    // method line 1359
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x1c091
-	// Code size 24 (0x18)
+        // Method begins at RVA 0x11cef
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.Util.StopWatchStack::_stack
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld class NAnt.Core.Util.DateTimeProvider NAnt.Core.Util.StopWatchStack::_dtProvider
-	IL_000d:  newobj instance void class NAnt.Core.Util.StopWatchStack/StopWatch::'.ctor'(class NAnt.Core.Util.DateTimeProvider)
-	IL_0012:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
-	IL_0017:  ret 
-    } // end of method StopWatchStack::PushStart
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.CopyTask::_toDirectory
+	IL_0008:  ret 
+    } // end of method CopyTask::set_ToDirectory
 
-    // method line 1543
-    .method public hidebysig 
-           instance default valuetype [mscorlib]System.TimeSpan PopStop ()  cil managed 
+    // method line 1360
+    .method public hidebysig specialname 
+           instance default bool get_Overwrite ()  cil managed 
     {
-        // Method begins at RVA 0x1c0ac
-	// Code size 30 (0x1e)
+        // Method begins at RVA 0x11cfc
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.TimeSpan	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.Util.StopWatchStack::_stack
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
-	IL_000c:  castclass NAnt.Core.Util.StopWatchStack/StopWatch
-	IL_0011:  callvirt instance valuetype [mscorlib]System.TimeSpan class NAnt.Core.Util.StopWatchStack/StopWatch::Elapsed()
-	IL_0016:  stloc.0 
-	IL_0017:  br IL_001c
-
-	IL_001c:  ldloc.0 
-	IL_001d:  ret 
-    } // end of method StopWatchStack::PopStop
+	IL_0002:  ldfld bool NAnt.Core.Tasks.CopyTask::_overwrite
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-  .class nested private auto ansi beforefieldinit StopWatch
-  	extends [mscorlib]System.Object
-  {
-    .field  private initonly  class NAnt.Core.Util.DateTimeProvider _dtProvider
-    .field  private initonly  valuetype [mscorlib]System.DateTime _start
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_Overwrite
 
-    // method line 1544
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Util.DateTimeProvider dtProvider)  cil managed 
+    // method line 1361
+    .method public hidebysig specialname 
+           instance default void set_Overwrite (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1c0d6
-	// Code size 27 (0x1b)
+        // Method begins at RVA 0x11d17
+	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld class NAnt.Core.Util.DateTimeProvider NAnt.Core.Util.StopWatchStack/StopWatch::_dtProvider
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  callvirt instance valuetype [mscorlib]System.DateTime class NAnt.Core.Util.DateTimeProvider::get_Now()
-	IL_0015:  stfld valuetype [mscorlib]System.DateTime NAnt.Core.Util.StopWatchStack/StopWatch::_start
-	IL_001a:  ret 
-    } // end of method StopWatch::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.CopyTask::_overwrite
+	IL_0008:  ret 
+    } // end of method CopyTask::set_Overwrite
 
-    // method line 1545
-    .method public hidebysig 
-           instance default valuetype [mscorlib]System.TimeSpan Elapsed ()  cil managed 
+    // method line 1362
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_Flatten ()  cil managed 
     {
-        // Method begins at RVA 0x1c0f4
-	// Code size 31 (0x1f)
-	.maxstack 2
+        // Method begins at RVA 0x11d24
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.TimeSpan	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Util.DateTimeProvider NAnt.Core.Util.StopWatchStack/StopWatch::_dtProvider
-	IL_0007:  callvirt instance valuetype [mscorlib]System.DateTime class NAnt.Core.Util.DateTimeProvider::get_Now()
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld valuetype [mscorlib]System.DateTime NAnt.Core.Util.StopWatchStack/StopWatch::_start
-	IL_0012:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.DateTime::op_Subtraction(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	IL_0017:  stloc.0 
-	IL_0018:  br IL_001d
+	IL_0002:  ldfld bool NAnt.Core.Tasks.CopyTask::_flatten
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_001d:  ldloc.0 
-	IL_001e:  ret 
-    } // end of method StopWatch::Elapsed
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_Flatten
 
-  } // end of class StopWatch
+    // method line 1363
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Flatten (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x11d3f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.CopyTask::_flatten
+	IL_0008:  ret 
+    } // end of method CopyTask::set_Flatten
 
-  } // end of class NAnt.Core.Util.StopWatchStack
-}
+    // method line 1364
+    .method public hidebysig specialname 
+           instance default bool get_IncludeEmptyDirs ()  cil managed 
+    {
+        // Method begins at RVA 0x11d4c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Tasks.CopyTask::_includeEmptyDirs
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-.namespace NAnt.Core.Util
-{
-  .class public auto ansi sealed serializable beforefieldinit AssemblyResolver
-  	extends [mscorlib]System.Object
-  {
-    .field  private  class [mscorlib]System.Collections.Hashtable _assemblyCache
-    .field  private  class NAnt.Core.Task _task
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_IncludeEmptyDirs
 
-    // method line 1546
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1365
+    .method public hidebysig specialname 
+           instance default void set_IncludeEmptyDirs (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1c11f
-	// Code size 19 (0x13)
+        // Method begins at RVA 0x11d67
+	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.AssemblyResolver::_assemblyCache
-	IL_0012:  ret 
-    } // end of method AssemblyResolver::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.CopyTask::_includeEmptyDirs
+	IL_0008:  ret 
+    } // end of method CopyTask::set_IncludeEmptyDirs
 
-    // method line 1547
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Task task)  cil managed 
+    // method line 1366
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.Core.Types.FileSet get_CopyFileSet ()  cil managed 
     {
-        // Method begins at RVA 0x1c133
+        // Method begins at RVA 0x11d74
 	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Util.AssemblyResolver::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld class NAnt.Core.Task NAnt.Core.Util.AssemblyResolver::_task
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.FileSet	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.CopyTask::_fileset
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AssemblyResolver::.ctor
+    } // end of method CopyTask::get_CopyFileSet
 
-    // method line 1548
-    .method public hidebysig 
-           instance default void Attach ()  cil managed 
+    // method line 1367
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_CopyFileSet (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x1c143
-	// Code size 46 (0x2e)
+        // Method begins at RVA 0x11d8f
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_0006:  ldarg.0 
-	IL_0007:  ldftn instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Util.AssemblyResolver::AssemblyResolve(object, class [mscorlib]System.ResolveEventArgs)
-	IL_000d:  newobj instance void class [mscorlib]System.ResolveEventHandler::'.ctor'(object, native int)
-	IL_0012:  callvirt instance void class [mscorlib]System.AppDomain::add_AssemblyResolve(class [mscorlib]System.ResolveEventHandler)
-	IL_0017:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_001c:  ldarg.0 
-	IL_001d:  ldftn instance void class NAnt.Core.Util.AssemblyResolver::AssemblyLoad(object, class [mscorlib]System.AssemblyLoadEventArgs)
-	IL_0023:  newobj instance void class [mscorlib]System.AssemblyLoadEventHandler::'.ctor'(object, native int)
-	IL_0028:  callvirt instance void class [mscorlib]System.AppDomain::add_AssemblyLoad(class [mscorlib]System.AssemblyLoadEventHandler)
-	IL_002d:  ret 
-    } // end of method AssemblyResolver::Attach
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.CopyTask::_fileset
+	IL_0008:  ret 
+    } // end of method CopyTask::set_CopyFileSet
 
-    // method line 1549
-    .method public hidebysig 
-           instance default void Detach ()  cil managed 
+    // method line 1368
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.Core.Filters.FilterChain get_Filters ()  cil managed 
     {
-        // Method begins at RVA 0x1c172
-	// Code size 57 (0x39)
+        // Method begins at RVA 0x11d9c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Filters.FilterChain	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.CopyTask::_filters
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_Filters
+
+    // method line 1369
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Filters (class NAnt.Core.Filters.FilterChain 'value')  cil managed 
+    {
+        // Method begins at RVA 0x11db7
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_0006:  ldarg.0 
-	IL_0007:  ldftn instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Util.AssemblyResolver::AssemblyResolve(object, class [mscorlib]System.ResolveEventArgs)
-	IL_000d:  newobj instance void class [mscorlib]System.ResolveEventHandler::'.ctor'(object, native int)
-	IL_0012:  callvirt instance void class [mscorlib]System.AppDomain::remove_AssemblyResolve(class [mscorlib]System.ResolveEventHandler)
-	IL_0017:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_001c:  ldarg.0 
-	IL_001d:  ldftn instance void class NAnt.Core.Util.AssemblyResolver::AssemblyLoad(object, class [mscorlib]System.AssemblyLoadEventArgs)
-	IL_0023:  newobj instance void class [mscorlib]System.AssemblyLoadEventHandler::'.ctor'(object, native int)
-	IL_0028:  callvirt instance void class [mscorlib]System.AppDomain::remove_AssemblyLoad(class [mscorlib]System.AssemblyLoadEventHandler)
-	IL_002d:  ldarg.0 
-	IL_002e:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.AssemblyResolver::_assemblyCache
-	IL_0033:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Clear()
-	IL_0038:  ret 
-    } // end of method AssemblyResolver::Detach
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.CopyTask::_filters
+	IL_0008:  ret 
+    } // end of method CopyTask::set_Filters
 
-    // method line 1550
-    .method private hidebysig 
-           instance default class [mscorlib]System.Reflection.Assembly AssemblyResolve (object sender, class [mscorlib]System.ResolveEventArgs args)  cil managed 
+    // method line 1370
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Text.Encoding get_InputEncoding ()  cil managed 
     {
-        // Method begins at RVA 0x1c1ac
-	// Code size 502 (0x1f6)
-	.maxstack 7
+        // Method begins at RVA 0x11dc4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		bool	V_0,
-		class [mscorlib]System.Reflection.Assembly[]	V_1,
-		class [mscorlib]System.Reflection.Assembly	V_2,
-		class [mscorlib]System.Reflection.Assembly[]	V_3,
-		int32	V_4,
-		class [mscorlib]System.Reflection.Assembly	V_5,
-		class [mscorlib]System.Reflection.Assembly	V_6,
-		class [mscorlib]System.Collections.IEnumerator	V_7,
-		class [mscorlib]System.IDisposable	V_8)
+		class [mscorlib]System.Text.Encoding	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
-	IL_0007:  ldstr "Version="
-	IL_000c:  callvirt instance int32 string::IndexOf(string)
-	IL_0011:  ldc.i4.m1 
-	IL_0012:  ceq 
-	IL_0014:  ldc.i4.0 
-	IL_0015:  ceq 
-	IL_0017:  stloc.0 
-	IL_0018:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_001d:  callvirt instance class [mscorlib]System.Reflection.Assembly[] class [mscorlib]System.AppDomain::GetAssemblies()
-	IL_0022:  stloc.1 
-	IL_0023:  nop 
-	IL_0024:  ldloc.1 
-	IL_0025:  stloc.3 
-	IL_0026:  ldc.i4.0 
-	IL_0027:  stloc.s 4
-	IL_0029:  br IL_00ca
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.CopyTask::_inputEncoding
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_002e:  ldloc.3 
-	IL_002f:  ldloc.s 4
-	IL_0031:  ldelem.ref 
-	IL_0032:  stloc.2 
-	IL_0033:  nop 
-	IL_0034:  ldloc.0 
-	IL_0035:  brfalse IL_007f
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_InputEncoding
 
-	IL_003a:  nop 
-	IL_003b:  ldloc.2 
-	IL_003c:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
-	IL_0041:  ldarg.2 
-	IL_0042:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
-	IL_0047:  call bool string::op_Equality(string, string)
-	IL_004c:  brfalse IL_0079
+    // method line 1371
+    .method public hidebysig specialname 
+           instance default void set_InputEncoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+    {
+        // Method begins at RVA 0x11ddf
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.CopyTask::_inputEncoding
+	IL_0008:  ret 
+    } // end of method CopyTask::set_InputEncoding
 
-	IL_0051:  nop 
-	IL_0052:  ldarg.0 
-	IL_0053:  ldc.i4 1000
-	IL_0058:  ldstr "Resolved assembly '{0}' from loaded assemblies using full name."
-	IL_005d:  ldc.i4.1 
-	IL_005e:  newarr [mscorlib]System.Object
-	IL_0063:  dup 
-	IL_0064:  ldc.i4.0 
-	IL_0065:  ldarg.2 
-	IL_0066:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
-	IL_006b:  stelem.ref 
-	IL_006c:  call instance void class NAnt.Core.Util.AssemblyResolver::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0071:  ldloc.2 
-	IL_0072:  stloc.s 5
-	IL_0074:  br IL_01f3
+    // method line 1372
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Text.Encoding get_OutputEncoding ()  cil managed 
+    {
+        // Method begins at RVA 0x11dec
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Text.Encoding	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.CopyTask::_outputEncoding
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0079:  nop 
-	IL_007a:  br IL_00c3
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_OutputEncoding
 
-	IL_007f:  ldloc.2 
-	IL_0080:  ldc.i4.0 
-	IL_0081:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName(bool)
-	IL_0086:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	IL_008b:  ldarg.2 
-	IL_008c:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
-	IL_0091:  call bool string::op_Equality(string, string)
-	IL_0096:  brfalse IL_00c3
+    // method line 1373
+    .method public hidebysig specialname 
+           instance default void set_OutputEncoding (class [mscorlib]System.Text.Encoding 'value')  cil managed 
+    {
+        // Method begins at RVA 0x11e07
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.CopyTask::_outputEncoding
+	IL_0008:  ret 
+    } // end of method CopyTask::set_OutputEncoding
 
-	IL_009b:  nop 
-	IL_009c:  ldarg.0 
-	IL_009d:  ldc.i4 1000
-	IL_00a2:  ldstr "Resolved assembly '{0}' from loaded assemblies using name."
-	IL_00a7:  ldc.i4.1 
-	IL_00a8:  newarr [mscorlib]System.Object
-	IL_00ad:  dup 
-	IL_00ae:  ldc.i4.0 
-	IL_00af:  ldarg.2 
-	IL_00b0:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
-	IL_00b5:  stelem.ref 
-	IL_00b6:  call instance void class NAnt.Core.Util.AssemblyResolver::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_00bb:  ldloc.2 
-	IL_00bc:  stloc.s 5
-	IL_00be:  br IL_01f3
+    // method line 1374
+    .method family hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_FileCopyMap ()  cil managed 
+    {
+        // Method begins at RVA 0x11e14
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.Hashtable	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
+	IL_0007:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.Core.Tasks.CopyTask/FileOperationMap::ConvertToHashtable()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_00c3:  nop 
-	IL_00c4:  ldloc.s 4
-	IL_00c6:  ldc.i4.1 
-	IL_00c7:  add 
-	IL_00c8:  stloc.s 4
-	IL_00ca:  ldloc.s 4
-	IL_00cc:  ldloc.3 
-	IL_00cd:  ldlen 
-	IL_00ce:  conv.i4 
-	IL_00cf:  blt IL_002e
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method CopyTask::get_FileCopyMap
 
-	IL_00d4:  ldloc.0 
-	IL_00d5:  brfalse IL_0134
+    // method line 1375
+    .method family hidebysig specialname 
+           instance default class NAnt.Core.Tasks.CopyTask/FileOperationMap get_OperationMap ()  cil managed 
+    {
+        // Method begins at RVA 0x11e34
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Tasks.CopyTask/FileOperationMap	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_00da:  nop 
-	IL_00db:  ldarg.0 
-	IL_00dc:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.AssemblyResolver::_assemblyCache
-	IL_00e1:  ldarg.2 
-	IL_00e2:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
-	IL_00e7:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	IL_00ec:  brfalse IL_012e
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CopyTask::get_OperationMap
 
-	IL_00f1:  nop 
-	IL_00f2:  ldarg.0 
-	IL_00f3:  ldc.i4 1000
-	IL_00f8:  ldstr "Resolved assembly '{0}' from cache using full name."
-	IL_00fd:  ldc.i4.1 
-	IL_00fe:  newarr [mscorlib]System.Object
-	IL_0103:  dup 
-	IL_0104:  ldc.i4.0 
-	IL_0105:  ldarg.2 
-	IL_0106:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
-	IL_010b:  stelem.ref 
-	IL_010c:  call instance void class NAnt.Core.Util.AssemblyResolver::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0111:  ldarg.0 
-	IL_0112:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.AssemblyResolver::_assemblyCache
-	IL_0117:  ldarg.2 
-	IL_0118:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
-	IL_011d:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0122:  castclass [mscorlib]System.Reflection.Assembly
-	IL_0127:  stloc.s 5
-	IL_0129:  br IL_01f3
+    // method line 1376
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0x11e50
+	// Code size 321 (0x141)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
+	IL_0007:  brfalse IL_0038
 
-	IL_012e:  nop 
-	IL_012f:  br IL_01cc
+	IL_000c:  ldarg.0 
+	IL_000d:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
+	IL_0012:  brtrue IL_0038
 
-	IL_0134:  nop 
-	IL_0135:  nop 
-	IL_0136:  ldarg.0 
-	IL_0137:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.AssemblyResolver::_assemblyCache
-	IL_013c:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Values()
-	IL_0141:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0146:  stloc.s 7
-	.try { // 0
-	  IL_0148:  br IL_01a3
+	IL_0017:  nop 
+	IL_0018:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001d:  ldstr "'flatten' attribute requires that 'todir' has been set."
+	IL_0022:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_0027:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_002c:  ldarg.0 
+	IL_002d:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0032:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0037:  throw 
+	IL_0038:  ldarg.0 
+	IL_0039:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
+	IL_003e:  brtrue IL_0085
 
-	  IL_014d:  ldloc.s 7
-	  IL_014f:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0154:  castclass [mscorlib]System.Reflection.Assembly
-	  IL_0159:  stloc.s 6
-	  IL_015b:  nop 
-	  IL_015c:  ldloc.s 6
-	  IL_015e:  ldc.i4.0 
-	  IL_015f:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName(bool)
-	  IL_0164:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	  IL_0169:  ldarg.2 
-	  IL_016a:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
-	  IL_016f:  call bool string::op_Equality(string, string)
-	  IL_0174:  brfalse IL_01a2
+	IL_0043:  ldarg.0 
+	IL_0044:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0049:  brfalse IL_0085
 
-	  IL_0179:  nop 
-	  IL_017a:  ldarg.0 
-	  IL_017b:  ldc.i4 1000
-	  IL_0180:  ldstr "Resolved assembly '{0}' from cache using name."
-	  IL_0185:  ldc.i4.1 
-	  IL_0186:  newarr [mscorlib]System.Object
-	  IL_018b:  dup 
-	  IL_018c:  ldc.i4.0 
-	  IL_018d:  ldarg.2 
-	  IL_018e:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
-	  IL_0193:  stelem.ref 
-	  IL_0194:  call instance void class NAnt.Core.Util.AssemblyResolver::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0199:  ldloc.s 6
-	  IL_019b:  stloc.s 5
-	  IL_019d:  leave IL_01f3
+	IL_004e:  ldarg.0 
+	IL_004f:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0054:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
+	IL_0059:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_005e:  ldc.i4.0 
+	IL_005f:  ble IL_0085
 
-	  IL_01a2:  nop 
-	  IL_01a3:  ldloc.s 7
-	  IL_01a5:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_01aa:  brtrue IL_014d
+	IL_0064:  nop 
+	IL_0065:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_006a:  ldstr "The 'todir' should be set when using the <fileset> element to specify the list of files to be copied."
+	IL_006f:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_0074:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0079:  ldarg.0 
+	IL_007a:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_007f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0084:  throw 
+	IL_0085:  ldarg.0 
+	IL_0086:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
+	IL_008b:  brfalse IL_00d2
 
-	  IL_01af:  leave IL_01cb
+	IL_0090:  ldarg.0 
+	IL_0091:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0096:  brfalse IL_00d2
 
-	} // end .try 0
-	finally  { // 0
-	  IL_01b4:  ldloc.s 7
-	  IL_01b6:  isinst [mscorlib]System.IDisposable
-	  IL_01bb:  dup 
-	  IL_01bc:  stloc.s 8
-	  IL_01be:  brfalse IL_01ca
+	IL_009b:  ldarg.0 
+	IL_009c:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_00a1:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
+	IL_00a6:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_00ab:  ldc.i4.0 
+	IL_00ac:  ble IL_00d2
 
-	  IL_01c3:  ldloc.s 8
-	  IL_01c5:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01ca:  endfinally 
-	} // end handler 0
-	IL_01cb:  nop 
-	IL_01cc:  ldarg.0 
-	IL_01cd:  ldc.i4 1000
-	IL_01d2:  ldstr "Assembly '{0}' could not be located."
-	IL_01d7:  ldc.i4.1 
-	IL_01d8:  newarr [mscorlib]System.Object
-	IL_01dd:  dup 
-	IL_01de:  ldc.i4.0 
-	IL_01df:  ldarg.2 
-	IL_01e0:  callvirt instance string class [mscorlib]System.ResolveEventArgs::get_Name()
-	IL_01e5:  stelem.ref 
-	IL_01e6:  call instance void class NAnt.Core.Util.AssemblyResolver::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_01eb:  ldnull 
-	IL_01ec:  stloc.s 5
-	IL_01ee:  br IL_01f3
+	IL_00b1:  nop 
+	IL_00b2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00b7:  ldstr "The 'file' attribute and the <fileset> element cannot be combined."
+	IL_00bc:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_00c1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_00c6:  ldarg.0 
+	IL_00c7:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_00cc:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_00d1:  throw 
+	IL_00d2:  ldarg.0 
+	IL_00d3:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
+	IL_00d8:  brtrue IL_0109
 
-	IL_01f3:  ldloc.s 5
-	IL_01f5:  ret 
-    } // end of method AssemblyResolver::AssemblyResolve
+	IL_00dd:  ldarg.0 
+	IL_00de:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
+	IL_00e3:  brtrue IL_0109
 
-    // method line 1551
-    .method private hidebysig 
-           instance default void AssemblyLoad (object sender, class [mscorlib]System.AssemblyLoadEventArgs args)  cil managed 
+	IL_00e8:  nop 
+	IL_00e9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00ee:  ldstr "Either the 'tofile' or 'todir' attribute should be set."
+	IL_00f3:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_00f8:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_00fd:  ldarg.0 
+	IL_00fe:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0103:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0108:  throw 
+	IL_0109:  ldarg.0 
+	IL_010a:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
+	IL_010f:  brfalse IL_0140
+
+	IL_0114:  ldarg.0 
+	IL_0115:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
+	IL_011a:  brfalse IL_0140
+
+	IL_011f:  nop 
+	IL_0120:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0125:  ldstr "The 'tofile' and 'todir' attribute cannot both be set."
+	IL_012a:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_012f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0134:  ldarg.0 
+	IL_0135:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_013a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_013f:  throw 
+	IL_0140:  ret 
+    } // end of method CopyTask::Initialize
+
+    // method line 1377
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x1c3c0
-	// Code size 66 (0x42)
+        // Method begins at RVA 0x11fa0
+	// Code size 1161 (0x489)
 	.maxstack 7
+	.locals init (
+		class NAnt.Core.Tasks.CopyTask/FileOperation	V_0,
+		class [mscorlib]System.IO.FileSystemInfo	V_1,
+		class [mscorlib]System.IO.FileSystemInfo	V_2,
+		class [mscorlib]System.IO.DirectoryInfo	V_3,
+		string	V_4,
+		class [System]System.Collections.Specialized.StringEnumerator	V_5,
+		class [mscorlib]System.IO.FileInfo	V_6,
+		string	V_7,
+		string	V_8,
+		class [mscorlib]System.IO.FileInfo	V_9,
+		class NAnt.Core.Tasks.CopyTask/FileOperation	V_10,
+		class [mscorlib]System.IDisposable	V_11,
+		string	V_12,
+		class [System]System.Collections.Specialized.StringEnumerator	V_13,
+		class [mscorlib]System.IO.DirectoryInfo	V_14,
+		string	V_15,
+		string	V_16,
+		class [mscorlib]System.Exception	V_17,
+		class [mscorlib]System.IDisposable	V_18)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.AssemblyResolver::_assemblyCache
-	IL_0007:  ldarg.2 
-	IL_0008:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.AssemblyLoadEventArgs::get_LoadedAssembly()
-	IL_000d:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
-	IL_0012:  ldarg.2 
-	IL_0013:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.AssemblyLoadEventArgs::get_LoadedAssembly()
-	IL_0018:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_001d:  ldarg.0 
-	IL_001e:  ldc.i4 1000
-	IL_0023:  ldstr "Added assembly '{0}' to assembly cache."
-	IL_0028:  ldc.i4.1 
-	IL_0029:  newarr [mscorlib]System.Object
-	IL_002e:  dup 
-	IL_002f:  ldc.i4.0 
-	IL_0030:  ldarg.2 
-	IL_0031:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.AssemblyLoadEventArgs::get_LoadedAssembly()
-	IL_0036:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
-	IL_003b:  stelem.ref 
-	IL_003c:  call instance void class NAnt.Core.Util.AssemblyResolver::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0041:  ret 
-    } // end of method AssemblyResolver::AssemblyLoad
+	IL_0002:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_000c:  brtrue IL_002e
 
-    // method line 1552
-    .method private hidebysig 
-           instance default void Log (valuetype NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
-    {
-	.param [3]
-	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0018:  ldarg.0 
+	IL_0019:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_001e:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_0023:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0028:  callvirt instance void class NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_002d:  nop 
+	IL_002e:  ldarg.0 
+	IL_002f:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
+	IL_0034:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::Clear()
+	IL_0039:  ldarg.0 
+	IL_003a:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
+	IL_003f:  brfalse IL_00fd
 
-        // Method begins at RVA 0x1c40e
-	// Code size 29 (0x1d)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Task NAnt.Core.Util.AssemblyResolver::_task
-	IL_0007:  brfalse IL_001c
+	IL_0044:  nop 
+	IL_0045:  ldarg.0 
+	IL_0046:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
+	IL_004b:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0050:  brfalse IL_0063
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class NAnt.Core.Task NAnt.Core.Util.AssemblyResolver::_task
-	IL_0013:  ldarg.1 
-	IL_0014:  ldarg.2 
-	IL_0015:  ldarg.3 
-	IL_0016:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_001b:  nop 
-	IL_001c:  ret 
-    } // end of method AssemblyResolver::Log
+	IL_0055:  nop 
+	IL_0056:  ldarg.0 
+	IL_0057:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
+	IL_005c:  stloc.1 
+	IL_005d:  nop 
+	IL_005e:  br IL_00a3
 
-  } // end of class NAnt.Core.Util.AssemblyResolver
-}
+	IL_0063:  ldarg.0 
+	IL_0064:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
+	IL_0069:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_006e:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0073:  brfalse IL_0090
 
-.namespace NAnt.Core.Util
-{
-  .class public auto ansi sealed beforefieldinit ReflectionUtils
-  	extends [mscorlib]System.Object
-  {
+	IL_0078:  nop 
+	IL_0079:  ldarg.0 
+	IL_007a:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
+	IL_007f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0084:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0089:  stloc.1 
+	IL_008a:  nop 
+	IL_008b:  br IL_00a3
 
-    // method line 1553
-    .method private hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1c42c
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method ReflectionUtils::.ctor
+	IL_0090:  nop 
+	IL_0091:  ldarg.0 
+	IL_0092:  ldarg.0 
+	IL_0093:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_SourceFile()
+	IL_0098:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_009d:  callvirt instance class NAnt.Core.BuildException class NAnt.Core.Tasks.CopyTask::CreateSourceFileNotFoundException(string)
+	IL_00a2:  throw 
+	IL_00a3:  ldarg.0 
+	IL_00a4:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
+	IL_00a9:  brfalse IL_00bc
 
-    // method line 1554
-    .method public static hidebysig 
-           default class [mscorlib]System.Type GetTypeFromString (string typeName, bool throwOnError)  cil managed 
-    {
-        // Method begins at RVA 0x1c438
-	// Code size 242 (0xf2)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.Type	V_0,
-		int32	V_1,
-		int32	V_2,
-		string	V_3,
-		string	V_4,
-		class [mscorlib]System.Reflection.Assembly[]	V_5,
-		class [mscorlib]System.Reflection.Assembly	V_6,
-		class [mscorlib]System.Reflection.Assembly[]	V_7,
-		int32	V_8,
-		class [mscorlib]System.Type	V_9)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  ldnull 
-	IL_000b:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0010:  brfalse IL_00e7
+	IL_00ae:  nop 
+	IL_00af:  ldarg.0 
+	IL_00b0:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
+	IL_00b5:  stloc.2 
+	IL_00b6:  nop 
+	IL_00b7:  br IL_00c5
 
-	IL_0015:  nop 
-	IL_0016:  ldarg.0 
-	IL_0017:  ldc.i4.s 0x2c
-	IL_0019:  callvirt instance int32 string::IndexOf(char)
-	IL_001e:  ldc.i4.m1 
-	IL_001f:  beq IL_0095
+	IL_00bc:  nop 
+	IL_00bd:  ldarg.0 
+	IL_00be:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
+	IL_00c3:  stloc.2 
+	IL_00c4:  nop 
+	IL_00c5:  ldloc.1 
+	IL_00c6:  ldloc.2 
+	IL_00c7:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileOperation::'.ctor'(class [mscorlib]System.IO.FileSystemInfo, class [mscorlib]System.IO.FileSystemInfo)
+	IL_00cc:  stloc.0 
+	IL_00cd:  ldarg.0 
+	IL_00ce:  call instance bool class NAnt.Core.Tasks.CopyTask::get_Overwrite()
+	IL_00d3:  brtrue IL_00e3
 
-	IL_0024:  nop 
-	IL_0025:  ldarg.0 
-	IL_0026:  ldc.i4.s 0x2c
-	IL_0028:  callvirt instance int32 string::IndexOf(char)
-	IL_002d:  stloc.1 
-	IL_002e:  ldarg.0 
-	IL_002f:  ldc.i4.s 0x2c
-	IL_0031:  ldloc.1 
-	IL_0032:  ldc.i4.1 
-	IL_0033:  add 
-	IL_0034:  callvirt instance int32 string::IndexOf(char, int32)
-	IL_0039:  stloc.2 
-	IL_003a:  ldarg.0 
-	IL_003b:  ldc.i4.0 
-	IL_003c:  ldloc.1 
-	IL_003d:  callvirt instance string string::Substring(int32, int32)
-	IL_0042:  stloc.3 
-	IL_0043:  ldnull 
-	IL_0044:  stloc.s 4
-	IL_0046:  ldloc.2 
-	IL_0047:  ldc.i4.m1 
-	IL_0048:  beq IL_0069
+	IL_00d8:  ldloc.0 
+	IL_00d9:  callvirt instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::get_Outdated()
+	IL_00de:  brfalse IL_00f7
 
-	IL_004d:  nop 
-	IL_004e:  ldarg.0 
-	IL_004f:  ldloc.1 
-	IL_0050:  ldc.i4.1 
-	IL_0051:  add 
-	IL_0052:  ldloc.2 
-	IL_0053:  ldloc.1 
-	IL_0054:  sub 
-	IL_0055:  ldc.i4.1 
-	IL_0056:  sub 
-	IL_0057:  callvirt instance string string::Substring(int32, int32)
-	IL_005c:  callvirt instance string string::Trim()
-	IL_0061:  stloc.s 4
-	IL_0063:  nop 
-	IL_0064:  br IL_007b
+	IL_00e3:  nop 
+	IL_00e4:  ldloc.0 
+	IL_00e5:  callvirt instance void class NAnt.Core.Tasks.CopyTask/FileOperation::NormalizeTargetAttributes()
+	IL_00ea:  ldarg.0 
+	IL_00eb:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
+	IL_00f0:  ldloc.0 
+	IL_00f1:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::Add(!0)
+	IL_00f6:  nop 
+	IL_00f7:  nop 
+	IL_00f8:  br IL_0482
 
-	IL_0069:  nop 
-	IL_006a:  ldarg.0 
-	IL_006b:  ldloc.1 
-	IL_006c:  ldc.i4.1 
-	IL_006d:  add 
-	IL_006e:  callvirt instance string string::Substring(int32)
-	IL_0073:  callvirt instance string string::Trim()
-	IL_0078:  stloc.s 4
-	IL_007a:  nop 
-	IL_007b:  ldloc.3 
-	IL_007c:  ldstr ", "
-	IL_0081:  ldloc.s 4
-	IL_0083:  call string string::Concat(string, string, string)
-	IL_0088:  ldc.i4.0 
-	IL_0089:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool)
-	IL_008e:  stloc.0 
-	IL_008f:  nop 
-	IL_0090:  br IL_00e6
+	IL_00fd:  ldarg.0 
+	IL_00fe:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0103:  callvirt instance bool class NAnt.Core.Types.FileSet::get_IsEverythingIncluded()
+	IL_0108:  brfalse IL_0166
 
-	IL_0095:  nop 
-	IL_0096:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_009b:  callvirt instance class [mscorlib]System.Reflection.Assembly[] class [mscorlib]System.AppDomain::GetAssemblies()
-	IL_00a0:  stloc.s 5
-	IL_00a2:  nop 
-	IL_00a3:  ldloc.s 5
-	IL_00a5:  stloc.s 7
-	IL_00a7:  ldc.i4.0 
-	IL_00a8:  stloc.s 8
-	IL_00aa:  br IL_00da
+	IL_010d:  ldarg.0 
+	IL_010e:  callvirt instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
+	IL_0113:  brtrue IL_0166
 
-	IL_00af:  ldloc.s 7
-	IL_00b1:  ldloc.s 8
-	IL_00b3:  ldelem.ref 
-	IL_00b4:  stloc.s 6
-	IL_00b6:  nop 
-	IL_00b7:  ldloc.s 6
-	IL_00b9:  ldarg.0 
-	IL_00ba:  ldc.i4.0 
-	IL_00bb:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool)
-	IL_00c0:  stloc.0 
-	IL_00c1:  ldloc.0 
-	IL_00c2:  ldnull 
-	IL_00c3:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_00c8:  brfalse IL_00d3
+	IL_0118:  ldarg.0 
+	IL_0119:  call instance bool class NAnt.Core.Tasks.CopyTask::get_IncludeEmptyDirs()
+	IL_011e:  brfalse IL_0166
 
-	IL_00cd:  nop 
-	IL_00ce:  br IL_00e5
+	IL_0123:  ldarg.0 
+	IL_0124:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0129:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_012e:  ldarg.0 
+	IL_012f:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
+	IL_0134:  call bool class NAnt.Core.Tasks.CopyTask/FileOperation::TargetDirectoryDoesNotExist(class [mscorlib]System.IO.DirectoryInfo, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0139:  brfalse IL_0166
 
-	IL_00d3:  nop 
-	IL_00d4:  ldloc.s 8
-	IL_00d6:  ldc.i4.1 
-	IL_00d7:  add 
-	IL_00d8:  stloc.s 8
-	IL_00da:  ldloc.s 8
-	IL_00dc:  ldloc.s 7
-	IL_00de:  ldlen 
-	IL_00df:  conv.i4 
-	IL_00e0:  blt IL_00af
+	IL_013e:  nop 
+	IL_013f:  ldarg.0 
+	IL_0140:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
+	IL_0145:  ldarg.0 
+	IL_0146:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_014b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_0150:  ldarg.0 
+	IL_0151:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
+	IL_0156:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileOperation::'.ctor'(class [mscorlib]System.IO.FileSystemInfo, class [mscorlib]System.IO.FileSystemInfo)
+	IL_015b:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::Add(!0)
+	IL_0160:  nop 
+	IL_0161:  br IL_0482
 
-	IL_00e5:  nop 
-	IL_00e6:  nop 
-	IL_00e7:  ldloc.0 
-	IL_00e8:  stloc.s 9
-	IL_00ea:  br IL_00ef
+	IL_0166:  nop 
+	IL_0167:  ldarg.0 
+	IL_0168:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_016d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
+	IL_0172:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0177:  brtrue IL_019f
 
-	IL_00ef:  ldloc.s 9
-	IL_00f1:  ret 
-    } // end of method ReflectionUtils::GetTypeFromString
+	IL_017c:  nop 
+	IL_017d:  ldarg.0 
+	IL_017e:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0183:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
+	IL_0188:  ldstr "**/*"
+	IL_018d:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0192:  pop 
+	IL_0193:  ldarg.0 
+	IL_0194:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0199:  callvirt instance void class NAnt.Core.Types.FileSet::Scan()
+	IL_019e:  nop 
+	IL_019f:  ldarg.0 
+	IL_01a0:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_01a5:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_01aa:  stloc.3 
+	IL_01ab:  nop 
+	IL_01ac:  ldarg.0 
+	IL_01ad:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_01b2:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_01b7:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_01bc:  stloc.s 5
+	.try { // 0
+	  IL_01be:  br IL_031d
 
-  } // end of class NAnt.Core.Util.ReflectionUtils
-}
+	  IL_01c3:  ldloc.s 5
+	  IL_01c5:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_01ca:  stloc.s 4
+	  IL_01cc:  nop 
+	  IL_01cd:  ldloc.s 4
+	  IL_01cf:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_01d4:  stloc.s 6
+	  IL_01d6:  ldloc.s 6
+	  IL_01d8:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_01dd:  brfalse IL_030d
 
-.namespace NAnt.Core.Util
-{
-  .class public auto ansi beforefieldinit DateTimeProvider
-  	extends [mscorlib]System.Object
-  {
+	  IL_01e2:  nop 
+	  IL_01e3:  ldarg.0 
+	  IL_01e4:  callvirt instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
+	  IL_01e9:  brfalse IL_020e
 
-    // method line 1555
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1c536
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method DateTimeProvider::.ctor
+	  IL_01ee:  nop 
+	  IL_01ef:  ldarg.0 
+	  IL_01f0:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
+	  IL_01f5:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_01fa:  ldloc.s 6
+	  IL_01fc:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
+	  IL_0201:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_0206:  stloc.s 7
+	  IL_0208:  nop 
+	  IL_0209:  br IL_028d
 
-    // method line 1556
-    .method public virtual hidebysig newslot specialname 
-           instance default valuetype [mscorlib]System.DateTime get_Now ()  cil managed 
-    {
-        // Method begins at RVA 0x1c540
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
-	IL_0000:  nop 
-	IL_0001:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	  IL_020e:  nop 
+	  IL_020f:  ldstr ""
+	  IL_0214:  stloc.s 8
+	  IL_0216:  ldloc.s 6
+	  IL_0218:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_021d:  ldloc.3 
+	  IL_021e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0223:  ldc.i4.0 
+	  IL_0224:  callvirt instance int32 string::IndexOf(string, int32)
+	  IL_0229:  ldc.i4.m1 
+	  IL_022a:  beq IL_024f
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method DateTimeProvider::get_Now
+	  IL_022f:  nop 
+	  IL_0230:  ldloc.s 6
+	  IL_0232:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0237:  ldloc.3 
+	  IL_0238:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_023d:  callvirt instance int32 string::get_Length()
+	  IL_0242:  callvirt instance string string::Substring(int32)
+	  IL_0247:  stloc.s 8
+	  IL_0249:  nop 
+	  IL_024a:  br IL_025a
 
-	.property instance valuetype [mscorlib]System.DateTime Now ()
-	{
-		.get instance default valuetype [mscorlib]System.DateTime NAnt.Core.Util.DateTimeProvider::get_Now () 
-	}
-  } // end of class NAnt.Core.Util.DateTimeProvider
-}
+	  IL_024f:  nop 
+	  IL_0250:  ldloc.s 6
+	  IL_0252:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
+	  IL_0257:  stloc.s 8
+	  IL_0259:  nop 
+	  IL_025a:  ldloc.s 8
+	  IL_025c:  ldc.i4.0 
+	  IL_025d:  callvirt instance char string::get_Chars(int32)
+	  IL_0262:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	  IL_0267:  bne.un IL_0278
 
-.namespace NAnt.Core.Util
-{
-  .class public auto ansi sealed beforefieldinit StringUtils
-  	extends [mscorlib]System.Object
-  {
+	  IL_026c:  nop 
+	  IL_026d:  ldloc.s 8
+	  IL_026f:  ldc.i4.1 
+	  IL_0270:  callvirt instance string string::Substring(int32)
+	  IL_0275:  stloc.s 8
+	  IL_0277:  nop 
+	  IL_0278:  ldarg.0 
+	  IL_0279:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
+	  IL_027e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0283:  ldloc.s 8
+	  IL_0285:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_028a:  stloc.s 7
+	  IL_028c:  nop 
+	  IL_028d:  ldloc.s 7
+	  IL_028f:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_0294:  stloc.s 9
+	  IL_0296:  ldloc.s 6
+	  IL_0298:  ldloc.s 9
+	  IL_029a:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileOperation::'.ctor'(class [mscorlib]System.IO.FileSystemInfo, class [mscorlib]System.IO.FileSystemInfo)
+	  IL_029f:  stloc.s 10
+	  IL_02a1:  ldarg.0 
+	  IL_02a2:  call instance bool class NAnt.Core.Tasks.CopyTask::get_Overwrite()
+	  IL_02a7:  brtrue IL_02b8
 
-    // method line 1557
-    .method private hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1c55a
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method StringUtils::.ctor
+	  IL_02ac:  ldloc.s 10
+	  IL_02ae:  callvirt instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::get_Outdated()
+	  IL_02b3:  brfalse IL_0307
 
-    // method line 1558
-    .method public static hidebysig 
-           default bool EndsWith (string 'value', char c)  cil managed 
-    {
-        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
-		01 00 50 53 74 72 69 6E 67 55 74 69 6C 73 2E 45   // ..PStringUtils.E
-		6E 64 73 57 69 74 68 20 6D 65 74 68 6F 64 20 69   // ndsWith method i
-		73 20 64 65 70 72 65 63 69 61 74 65 64 2E 20 55   // s depreciated. U
-		73 65 20 73 74 72 69 6E 67 2E 45 6E 64 73 57 69   // se string.EndsWi
-		74 68 28 73 74 72 69 6E 67 29 20 69 6E 73 74 65   // th(string) inste
-		61 64 2E 00 00                                  ) // ad...
+	  IL_02b8:  nop 
+	  IL_02b9:  ldarg.0 
+	  IL_02ba:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
+	  IL_02bf:  ldloc.s 9
+	  IL_02c1:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_02c6:  callvirt instance bool class NAnt.Core.Tasks.CopyTask/FileOperationMap::ContainsKey(string)
+	  IL_02cb:  brfalse IL_02f0
 
-        // Method begins at RVA 0x1c564
-	// Code size 63 (0x3f)
-	.maxstack 3
-	.locals init (
-		int32	V_0,
-		bool	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0012
+	  IL_02d0:  nop 
+	  IL_02d1:  ldarg.0 
+	  IL_02d2:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
+	  IL_02d7:  ldloc.s 9
+	  IL_02d9:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_02de:  callvirt instance !1 class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Item(!0)
+	  IL_02e3:  ldloc.s 6
+	  IL_02e5:  callvirt instance void class NAnt.Core.Tasks.CopyTask/FileOperation::UpdateSource(class [mscorlib]System.IO.FileSystemInfo)
+	  IL_02ea:  nop 
+	  IL_02eb:  br IL_0306
 
-	IL_0007:  ldstr "value"
-	IL_000c:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0011:  throw 
-	IL_0012:  ldarg.0 
-	IL_0013:  callvirt instance int32 string::get_Length()
-	IL_0018:  stloc.0 
-	IL_0019:  ldloc.0 
-	IL_001a:  brfalse IL_0036
+	  IL_02f0:  nop 
+	  IL_02f1:  ldloc.s 10
+	  IL_02f3:  callvirt instance void class NAnt.Core.Tasks.CopyTask/FileOperation::NormalizeTargetAttributes()
+	  IL_02f8:  ldarg.0 
+	  IL_02f9:  ldfld class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::_operationMap
+	  IL_02fe:  ldloc.s 10
+	  IL_0300:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::Add(!0)
+	  IL_0305:  nop 
+	  IL_0306:  nop 
+	  IL_0307:  nop 
+	  IL_0308:  br IL_031c
 
-	IL_001f:  ldarg.0 
-	IL_0020:  ldloc.0 
-	IL_0021:  ldc.i4.1 
-	IL_0022:  sub 
-	IL_0023:  callvirt instance char string::get_Chars(int32)
-	IL_0028:  ldarg.1 
-	IL_0029:  bne.un IL_0036
+	  IL_030d:  nop 
+	  IL_030e:  ldarg.0 
+	  IL_030f:  ldloc.s 6
+	  IL_0311:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0316:  callvirt instance class NAnt.Core.BuildException class NAnt.Core.Tasks.CopyTask::CreateSourceFileNotFoundException(string)
+	  IL_031b:  throw 
+	  IL_031c:  nop 
+	  IL_031d:  ldloc.s 5
+	  IL_031f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0324:  brtrue IL_01c3
 
-	IL_002e:  nop 
-	IL_002f:  ldc.i4.1 
-	IL_0030:  stloc.1 
-	IL_0031:  br IL_003d
+	  IL_0329:  leave IL_0345
 
-	IL_0036:  ldc.i4.0 
-	IL_0037:  stloc.1 
-	IL_0038:  br IL_003d
+	} // end .try 0
+	finally  { // 0
+	  IL_032e:  ldloc.s 5
+	  IL_0330:  isinst [mscorlib]System.IDisposable
+	  IL_0335:  dup 
+	  IL_0336:  stloc.s 11
+	  IL_0338:  brfalse IL_0344
 
-	IL_003d:  ldloc.1 
-	IL_003e:  ret 
-    } // end of method StringUtils::EndsWith
+	  IL_033d:  ldloc.s 11
+	  IL_033f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0344:  endfinally 
+	} // end handler 0
+	IL_0345:  ldarg.0 
+	IL_0346:  call instance bool class NAnt.Core.Tasks.CopyTask::get_IncludeEmptyDirs()
+	IL_034b:  brfalse IL_0481
 
-    // method line 1559
-    .method public static hidebysig 
-           default bool IsNullOrEmpty (string 'value')  cil managed 
-    {
-        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
-		01 00 61 53 74 72 69 6E 67 55 74 69 6C 73 2E 49   // ..aStringUtils.I
-		73 4E 75 6C 6C 4F 72 45 6D 70 74 79 20 6D 65 74   // sNullOrEmpty met
-		68 6F 64 20 69 73 20 64 65 70 72 65 63 69 61 74   // hod is depreciat
-		65 64 2E 20 55 73 65 20 53 79 73 74 65 6D 2E 53   // ed. Use System.S
-		74 72 69 6E 67 2E 49 73 4E 75 6C 6C 4F 72 45 6D   // tring.IsNullOrEm
-		70 74 79 28 73 74 72 69 6E 67 29 20 69 6E 73 74   // pty(string) inst
-		65 61 64 2E 00 00                               ) // ead...
+	IL_0350:  ldarg.0 
+	IL_0351:  callvirt instance bool class NAnt.Core.Tasks.CopyTask::get_Flatten()
+	IL_0356:  brtrue IL_0481
 
-        // Method begins at RVA 0x1c5b0
-	// Code size 27 (0x1b)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brfalse IL_0012
+	IL_035b:  nop 
+	IL_035c:  nop 
+	IL_035d:  ldarg.0 
+	IL_035e:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0363:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_DirectoryNames()
+	IL_0368:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_036d:  stloc.s 13
+	.try { // 2
+	  IL_036f:  br IL_0458
 
-	IL_0007:  ldarg.0 
-	IL_0008:  callvirt instance int32 string::get_Length()
-	IL_000d:  ldc.i4.0 
-	IL_000e:  ceq 
-	IL_0010:  br.s IL_0013
+	  IL_0374:  ldloc.s 13
+	  IL_0376:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_037b:  stloc.s 12
+	  IL_037d:  nop 
+	  IL_037e:  ldloc.s 12
+	  IL_0380:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	  IL_0385:  stloc.s 14
+	  IL_0387:  ldloc.s 14
+	  IL_0389:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_038e:  ldloc.3 
+	  IL_038f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0394:  callvirt instance int32 string::IndexOf(string)
+	  IL_0399:  ldc.i4.m1 
+	  IL_039a:  bne.un IL_03a5
 
-	IL_0012:  ldc.i4.1 
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0019
+	  IL_039f:  nop 
+	  IL_03a0:  leave IL_0458
 
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method StringUtils::IsNullOrEmpty
+	  IL_03a5:  ldloc.s 14
+	  IL_03a7:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_03ac:  ldloc.3 
+	  IL_03ad:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_03b2:  callvirt instance int32 string::get_Length()
+	  IL_03b7:  callvirt instance string string::Substring(int32)
+	  IL_03bc:  stloc.s 15
+	  IL_03be:  ldloc.s 15
+	  IL_03c0:  callvirt instance int32 string::get_Length()
+	  IL_03c5:  ldc.i4.0 
+	  IL_03c6:  ble IL_03e9
 
-    // method line 1560
-    .method public static hidebysig 
-           default string ConvertEmptyToNull (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1c5d8
-	// Code size 28 (0x1c)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call bool string::IsNullOrEmpty(string)
-	IL_0007:  brtrue IL_0013
+	  IL_03cb:  ldloc.s 15
+	  IL_03cd:  ldc.i4.0 
+	  IL_03ce:  callvirt instance char string::get_Chars(int32)
+	  IL_03d3:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	  IL_03d8:  bne.un IL_03e9
 
-	IL_000c:  ldarg.0 
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_001a
+	  IL_03dd:  nop 
+	  IL_03de:  ldloc.s 15
+	  IL_03e0:  ldc.i4.1 
+	  IL_03e1:  callvirt instance string string::Substring(int32)
+	  IL_03e6:  stloc.s 15
+	  IL_03e8:  nop 
+	  IL_03e9:  ldarg.0 
+	  IL_03ea:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
+	  IL_03ef:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_03f4:  ldloc.s 15
+	  IL_03f6:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_03fb:  stloc.s 16
+	  IL_03fd:  ldloc.s 16
+	  IL_03ff:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_0404:  brtrue IL_0457
 
-	IL_0013:  ldnull 
-	IL_0014:  stloc.0 
-	IL_0015:  br IL_001a
+	  IL_0409:  nop 
+	  .try { // 1
+	    IL_040a:  nop 
+	    IL_040b:  ldloc.s 16
+	    IL_040d:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	    IL_0412:  pop 
+	    IL_0413:  nop 
+	    IL_0414:  leave IL_043b
 
-	IL_001a:  ldloc.0 
-	IL_001b:  ret 
-    } // end of method StringUtils::ConvertEmptyToNull
+	  } // end .try 1
+	  catch class [mscorlib]System.Exception { // 1
+	    IL_0419:  stloc.s 17
+	    IL_041b:  nop 
+	    IL_041c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0421:  ldstr "Failed to create directory '{0}'."
+	    IL_0426:  ldloc.s 16
+	    IL_0428:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_042d:  ldarg.0 
+	    IL_042e:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	    IL_0433:  ldloc.s 17
+	    IL_0435:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	    IL_043a:  throw 
+	  } // end handler 1
+	  IL_043b:  ldarg.0 
+	  IL_043c:  ldc.i4 2000
+	  IL_0441:  ldstr "Created directory '{0}'."
+	  IL_0446:  ldc.i4.1 
+	  IL_0447:  newarr [mscorlib]System.Object
+	  IL_044c:  dup 
+	  IL_044d:  ldc.i4.0 
+	  IL_044e:  ldloc.s 16
+	  IL_0450:  stelem.ref 
+	  IL_0451:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0456:  nop 
+	  IL_0457:  nop 
+	  IL_0458:  ldloc.s 13
+	  IL_045a:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_045f:  brtrue IL_0374
 
-    // method line 1561
-    .method public static hidebysig 
-           default string ConvertNullToEmpty (string 'value')  cil managed 
+	  IL_0464:  leave IL_0480
+
+	} // end .try 2
+	finally  { // 2
+	  IL_0469:  ldloc.s 13
+	  IL_046b:  isinst [mscorlib]System.IDisposable
+	  IL_0470:  dup 
+	  IL_0471:  stloc.s 18
+	  IL_0473:  brfalse IL_047f
+
+	  IL_0478:  ldloc.s 18
+	  IL_047a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_047f:  endfinally 
+	} // end handler 2
+	IL_0480:  nop 
+	IL_0481:  nop 
+	IL_0482:  ldarg.0 
+	IL_0483:  callvirt instance void class NAnt.Core.Tasks.CopyTask::DoFileOperations()
+	IL_0488:  ret 
+    } // end of method CopyTask::ExecuteTask
+
+    // method line 1378
+    .method family virtual hidebysig newslot 
+           instance default void DoFileOperations ()  cil managed 
     {
-        // Method begins at RVA 0x1c600
-	// Code size 27 (0x1b)
-	.maxstack 1
+        // Method begins at RVA 0x12484
+	// Code size 940 (0x3ac)
+	.maxstack 8
 	.locals init (
-		string	V_0)
+		int32	V_0,
+		int32	V_1,
+		int32	V_2,
+		class NAnt.Core.Tasks.CopyTask/FileOperation	V_3,
+		valuetype NAnt.Core.Tasks.CopyTask/OperationType	V_4,
+		string	V_5,
+		string	V_6,
+		class [mscorlib]System.Exception	V_7)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0012
+	IL_0002:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
+	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Count()
+	IL_000c:  ldc.i4.0 
+	IL_000d:  bgt IL_0018
 
-	IL_0007:  ldsfld string [mscorlib]System.String::Empty
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0019
+	IL_0012:  nop 
+	IL_0013:  br IL_03ab
 
-	IL_0012:  ldarg.0 
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0019
+	IL_0018:  ldarg.0 
+	IL_0019:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
+	IL_001e:  callvirt instance int32 class NAnt.Core.Tasks.CopyTask/FileOperationMap::CountFileOperations()
+	IL_0023:  stloc.0 
+	IL_0024:  ldarg.0 
+	IL_0025:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
+	IL_002a:  callvirt instance int32 class NAnt.Core.Tasks.CopyTask/FileOperationMap::CountDirectoryOperations()
+	IL_002f:  stloc.1 
+	IL_0030:  ldloc.0 
+	IL_0031:  ldc.i4.0 
+	IL_0032:  ble IL_00cf
 
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method StringUtils::ConvertNullToEmpty
+	IL_0037:  nop 
+	IL_0038:  ldarg.0 
+	IL_0039:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
+	IL_003e:  brfalse IL_008b
 
-    // method line 1562
-    .method public static hidebysig 
-           default string Join (string separator, class [System]System.Collections.Specialized.StringCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1c628
-	// Code size 66 (0x42)
-	.maxstack 3
-	.locals init (
-		string[]	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0012
+	IL_0043:  nop 
+	IL_0044:  ldarg.0 
+	IL_0045:  ldc.i4 3000
+	IL_004a:  ldstr "Copying {0} file{1} to '{2}'."
+	IL_004f:  ldc.i4.3 
+	IL_0050:  newarr [mscorlib]System.Object
+	IL_0055:  dup 
+	IL_0056:  ldc.i4.0 
+	IL_0057:  ldloc.0 
+	IL_0058:  box [mscorlib]System.Int32
+	IL_005d:  stelem.ref 
+	IL_005e:  dup 
+	IL_005f:  ldc.i4.1 
+	IL_0060:  ldloc.0 
+	IL_0061:  ldc.i4.1 
+	IL_0062:  beq IL_0071
 
-	IL_0007:  ldstr "value"
-	IL_000c:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0011:  throw 
-	IL_0012:  ldarg.0 
-	IL_0013:  brtrue IL_001f
+	IL_0067:  ldstr "s"
+	IL_006c:  br IL_0076
 
-	IL_0018:  ldsfld string [mscorlib]System.String::Empty
-	IL_001d:  starg.s 0
-	IL_001f:  ldarg.1 
-	IL_0020:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0025:  newarr [mscorlib]System.String
-	IL_002a:  stloc.0 
-	IL_002b:  ldarg.1 
-	IL_002c:  ldloc.0 
-	IL_002d:  ldc.i4.0 
-	IL_002e:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::CopyTo(string[], int32)
-	IL_0033:  ldarg.0 
-	IL_0034:  ldloc.0 
-	IL_0035:  call string string::Join(string, string[])
-	IL_003a:  stloc.1 
-	IL_003b:  br IL_0040
+	IL_0071:  ldstr ""
+	IL_0076:  stelem.ref 
+	IL_0077:  dup 
+	IL_0078:  ldc.i4.2 
+	IL_0079:  ldarg.0 
+	IL_007a:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
+	IL_007f:  stelem.ref 
+	IL_0080:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0085:  nop 
+	IL_0086:  br IL_00ce
 
-	IL_0040:  ldloc.1 
-	IL_0041:  ret 
-    } // end of method StringUtils::Join
+	IL_008b:  nop 
+	IL_008c:  ldarg.0 
+	IL_008d:  ldc.i4 3000
+	IL_0092:  ldstr "Copying {0} file{1} to '{2}'."
+	IL_0097:  ldc.i4.3 
+	IL_0098:  newarr [mscorlib]System.Object
+	IL_009d:  dup 
+	IL_009e:  ldc.i4.0 
+	IL_009f:  ldloc.0 
+	IL_00a0:  box [mscorlib]System.Int32
+	IL_00a5:  stelem.ref 
+	IL_00a6:  dup 
+	IL_00a7:  ldc.i4.1 
+	IL_00a8:  ldloc.0 
+	IL_00a9:  ldc.i4.1 
+	IL_00aa:  beq IL_00b9
 
-    // method line 1563
-    .method public static hidebysig 
-           default class [System]System.Collections.Specialized.StringCollection Clone (class [System]System.Collections.Specialized.StringCollection stringCollection)  cil managed 
-    {
-        // Method begins at RVA 0x1c678
-	// Code size 43 (0x2b)
-	.maxstack 3
-	.locals init (
-		string[]	V_0,
-		class [System]System.Collections.Specialized.StringCollection	V_1,
-		class [System]System.Collections.Specialized.StringCollection	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0007:  newarr [mscorlib]System.String
-	IL_000c:  stloc.0 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::CopyTo(string[], int32)
-	IL_0015:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_001a:  stloc.1 
-	IL_001b:  ldloc.1 
-	IL_001c:  ldloc.0 
-	IL_001d:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
-	IL_0022:  ldloc.1 
-	IL_0023:  stloc.2 
-	IL_0024:  br IL_0029
+	IL_00af:  ldstr "s"
+	IL_00b4:  br IL_00be
 
-	IL_0029:  ldloc.2 
-	IL_002a:  ret 
-    } // end of method StringUtils::Clone
+	IL_00b9:  ldstr ""
+	IL_00be:  stelem.ref 
+	IL_00bf:  dup 
+	IL_00c0:  ldc.i4.2 
+	IL_00c1:  ldarg.0 
+	IL_00c2:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
+	IL_00c7:  stelem.ref 
+	IL_00c8:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_00cd:  nop 
+	IL_00ce:  nop 
+	IL_00cf:  ldloc.1 
+	IL_00d0:  ldc.i4.0 
+	IL_00d1:  ble IL_016e
 
-  } // end of class NAnt.Core.Util.StringUtils
-}
+	IL_00d6:  nop 
+	IL_00d7:  ldarg.0 
+	IL_00d8:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
+	IL_00dd:  brfalse IL_012a
 
-.namespace NAnt.Core.Util
-{
-  .class public auto ansi sealed beforefieldinit ResourceUtils
-  	extends [mscorlib]System.Object
-  {
-    .field  private static  class [mscorlib]System.Resources.ResourceManager _sharedResourceManager
-    .field  private static initonly  class [mscorlib]System.Collections.Hashtable _resourceManagerDictionary
+	IL_00e2:  nop 
+	IL_00e3:  ldarg.0 
+	IL_00e4:  ldc.i4 3000
+	IL_00e9:  ldstr "Copying {0} {1} to '{2}'."
+	IL_00ee:  ldc.i4.3 
+	IL_00ef:  newarr [mscorlib]System.Object
+	IL_00f4:  dup 
+	IL_00f5:  ldc.i4.0 
+	IL_00f6:  ldloc.1 
+	IL_00f7:  box [mscorlib]System.Int32
+	IL_00fc:  stelem.ref 
+	IL_00fd:  dup 
+	IL_00fe:  ldc.i4.1 
+	IL_00ff:  ldloc.1 
+	IL_0100:  ldc.i4.1 
+	IL_0101:  beq IL_0110
 
-    // method line 1564
-    .method private hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1c6af
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method ResourceUtils::.ctor
+	IL_0106:  ldstr "directories"
+	IL_010b:  br IL_0115
 
-    // method line 1565
-    .method public static hidebysig 
-           default void RegisterSharedAssembly (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
-    {
-        // Method begins at RVA 0x1c6b8
-	// Code size 24 (0x18)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
-	IL_0007:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	IL_000c:  ldarg.0 
-	IL_000d:  newobj instance void class [mscorlib]System.Resources.ResourceManager::'.ctor'(string, class [mscorlib]System.Reflection.Assembly)
-	IL_0012:  stsfld class [mscorlib]System.Resources.ResourceManager NAnt.Core.Util.ResourceUtils::_sharedResourceManager
-	IL_0017:  ret 
-    } // end of method ResourceUtils::RegisterSharedAssembly
+	IL_0110:  ldstr "directory"
+	IL_0115:  stelem.ref 
+	IL_0116:  dup 
+	IL_0117:  ldc.i4.2 
+	IL_0118:  ldarg.0 
+	IL_0119:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.CopyTask::get_ToFile()
+	IL_011e:  stelem.ref 
+	IL_011f:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0124:  nop 
+	IL_0125:  br IL_016d
 
-    // method line 1566
-    .method public static hidebysig 
-           default string GetString (string name)  cil managed noinlining 
-    {
-        // Method begins at RVA 0x1c6d4
-	// Code size 23 (0x17)
-	.maxstack 3
-	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetCallingAssembly()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldnull 
-	IL_0009:  ldloc.0 
-	IL_000a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string, class [mscorlib]System.Globalization.CultureInfo, class [mscorlib]System.Reflection.Assembly)
-	IL_000f:  stloc.1 
-	IL_0010:  br IL_0015
+	IL_012a:  nop 
+	IL_012b:  ldarg.0 
+	IL_012c:  ldc.i4 3000
+	IL_0131:  ldstr "Copying {0} {1} to '{2}'."
+	IL_0136:  ldc.i4.3 
+	IL_0137:  newarr [mscorlib]System.Object
+	IL_013c:  dup 
+	IL_013d:  ldc.i4.0 
+	IL_013e:  ldloc.1 
+	IL_013f:  box [mscorlib]System.Int32
+	IL_0144:  stelem.ref 
+	IL_0145:  dup 
+	IL_0146:  ldc.i4.1 
+	IL_0147:  ldloc.1 
+	IL_0148:  ldc.i4.1 
+	IL_0149:  beq IL_0158
 
-	IL_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method ResourceUtils::GetString
+	IL_014e:  ldstr "directories"
+	IL_0153:  br IL_015d
 
-    // method line 1567
-    .method public static hidebysig 
-           default string GetString (string name, class [mscorlib]System.Globalization.CultureInfo culture)  cil managed noinlining 
-    {
-        // Method begins at RVA 0x1c6f8
-	// Code size 23 (0x17)
-	.maxstack 3
-	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetCallingAssembly()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldloc.0 
-	IL_000a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string, class [mscorlib]System.Globalization.CultureInfo, class [mscorlib]System.Reflection.Assembly)
-	IL_000f:  stloc.1 
-	IL_0010:  br IL_0015
+	IL_0158:  ldstr "directory"
+	IL_015d:  stelem.ref 
+	IL_015e:  dup 
+	IL_015f:  ldc.i4.2 
+	IL_0160:  ldarg.0 
+	IL_0161:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.CopyTask::get_ToDirectory()
+	IL_0166:  stelem.ref 
+	IL_0167:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_016c:  nop 
+	IL_016d:  nop 
+	IL_016e:  ldc.i4.0 
+	IL_016f:  stloc.2 
+	IL_0170:  br IL_039a
 
-	IL_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method ResourceUtils::GetString
+	IL_0175:  nop 
+	IL_0176:  ldarg.0 
+	IL_0177:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
+	IL_017c:  ldloc.2 
+	IL_017d:  callvirt instance !0 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Item(int32)
+	IL_0182:  stloc.3 
+	IL_0183:  ldloc.3 
+	IL_0184:  callvirt instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::SourceEqualsTarget()
+	IL_0189:  brfalse IL_01b3
 
-    // method line 1568
-    .method public static hidebysig 
-           default string GetString (string name, class [mscorlib]System.Globalization.CultureInfo culture, class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
-    {
-        // Method begins at RVA 0x1c71c
-	// Code size 107 (0x6b)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.Resources.ResourceManager	V_1,
-		string	V_2,
-		string	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
-	IL_0007:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	IL_000c:  stloc.0 
-	IL_000d:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.ResourceUtils::_resourceManagerDictionary
-	IL_0012:  ldloc.0 
-	IL_0013:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	IL_0018:  brtrue IL_0025
+	IL_018e:  nop 
+	IL_018f:  ldarg.0 
+	IL_0190:  ldc.i4 2000
+	IL_0195:  ldstr "Skipping self-copy of '{0}'."
+	IL_019a:  ldc.i4.1 
+	IL_019b:  newarr [mscorlib]System.Object
+	IL_01a0:  dup 
+	IL_01a1:  ldc.i4.0 
+	IL_01a2:  ldloc.3 
+	IL_01a3:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
+	IL_01a8:  stelem.ref 
+	IL_01a9:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_01ae:  br IL_0396
 
-	IL_001d:  nop 
-	IL_001e:  ldarg.2 
-	IL_001f:  call void class NAnt.Core.Util.ResourceUtils::RegisterAssembly(class [mscorlib]System.Reflection.Assembly)
-	IL_0024:  nop 
-	IL_0025:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.ResourceUtils::_resourceManagerDictionary
-	IL_002a:  ldloc.0 
-	IL_002b:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0030:  castclass [mscorlib]System.Resources.ResourceManager
-	IL_0035:  stloc.1 
-	IL_0036:  ldloc.1 
-	IL_0037:  ldarg.0 
-	IL_0038:  ldarg.1 
-	IL_0039:  callvirt instance string class [mscorlib]System.Resources.ResourceManager::GetString(string, class [mscorlib]System.Globalization.CultureInfo)
-	IL_003e:  stloc.2 
-	IL_003f:  ldloc.2 
-	IL_0040:  brtrue IL_0062
+	.try { // 0
+	  IL_01b3:  nop 
+	  IL_01b4:  ldarg.0 
+	  IL_01b5:  ldc.i4 2000
+	  IL_01ba:  ldstr "Copying {0}."
+	  IL_01bf:  ldc.i4.1 
+	  IL_01c0:  newarr [mscorlib]System.Object
+	  IL_01c5:  dup 
+	  IL_01c6:  ldc.i4.0 
+	  IL_01c7:  ldloc.3 
+	  IL_01c8:  callvirt instance string object::ToString()
+	  IL_01cd:  stelem.ref 
+	  IL_01ce:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_01d3:  ldloc.3 
+	  IL_01d4:  callvirt instance valuetype NAnt.Core.Tasks.CopyTask/OperationType class NAnt.Core.Tasks.CopyTask/FileOperation::get_OperationType()
+	  IL_01d9:  stloc.s 4
+	  IL_01db:  ldloc.s 4
+	  IL_01dd:  switch (
+	    IL_01f3,
+	    IL_0276,
+	    IL_0304)
+	  IL_01ee:  br IL_035e
 
-	IL_0045:  ldsfld class [mscorlib]System.Resources.ResourceManager NAnt.Core.Util.ResourceUtils::_sharedResourceManager
-	IL_004a:  brfalse IL_0062
+	  IL_01f3:  ldloc.3 
+	  IL_01f4:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_01f9:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	  IL_01fe:  stloc.s 5
+	  IL_0200:  ldloc.s 5
+	  IL_0202:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_0207:  brtrue IL_0231
 
-	IL_004f:  nop 
-	IL_0050:  ldsfld class [mscorlib]System.Resources.ResourceManager NAnt.Core.Util.ResourceUtils::_sharedResourceManager
-	IL_0055:  ldarg.0 
-	IL_0056:  ldarg.1 
-	IL_0057:  callvirt instance string class [mscorlib]System.Resources.ResourceManager::GetString(string, class [mscorlib]System.Globalization.CultureInfo)
-	IL_005c:  stloc.3 
-	IL_005d:  br IL_0069
+	  IL_020c:  nop 
+	  IL_020d:  ldloc.s 5
+	  IL_020f:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	  IL_0214:  pop 
+	  IL_0215:  ldarg.0 
+	  IL_0216:  ldc.i4 2000
+	  IL_021b:  ldstr "Created directory '{0}'."
+	  IL_0220:  ldc.i4.1 
+	  IL_0221:  newarr [mscorlib]System.Object
+	  IL_0226:  dup 
+	  IL_0227:  ldc.i4.0 
+	  IL_0228:  ldloc.s 5
+	  IL_022a:  stelem.ref 
+	  IL_022b:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0230:  nop 
+	  IL_0231:  ldloc.3 
+	  IL_0232:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_0237:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_023c:  brfalse IL_024e
 
-	IL_0062:  ldloc.2 
-	IL_0063:  stloc.3 
-	IL_0064:  br IL_0069
+	  IL_0241:  nop 
+	  IL_0242:  ldloc.3 
+	  IL_0243:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_0248:  call void class [mscorlib]System.IO.File::Delete(string)
+	  IL_024d:  nop 
+	  IL_024e:  ldloc.3 
+	  IL_024f:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
+	  IL_0254:  ldloc.3 
+	  IL_0255:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_025a:  ldarg.0 
+	  IL_025b:  callvirt instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.CopyTask::get_Filters()
+	  IL_0260:  ldarg.0 
+	  IL_0261:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_InputEncoding()
+	  IL_0266:  ldarg.0 
+	  IL_0267:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_OutputEncoding()
+	  IL_026c:  call void class NAnt.Core.Util.FileUtils::CopyFile(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
+	  IL_0271:  leave IL_0369
 
-	IL_0069:  ldloc.3 
-	IL_006a:  ret 
-    } // end of method ResourceUtils::GetString
+	  IL_0276:  ldloc.3 
+	  IL_0277:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_027c:  ldloc.3 
+	  IL_027d:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
+	  IL_0282:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	  IL_0287:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_028c:  stloc.s 6
+	  IL_028e:  ldloc.3 
+	  IL_028f:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_0294:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_0299:  brtrue IL_02cb
 
-    // method line 1569
-    .method private static hidebysig 
-           default void RegisterAssembly (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
-    {
-        // Method begins at RVA 0x1c794
-	// Code size 70 (0x46)
-	.maxstack 4
-	.locals init (
-		object	V_0,
-		bool	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.ResourceUtils::_resourceManagerDictionary
-	IL_0006:  stloc.0 
-	IL_0007:  ldc.i4.0 
-	IL_0008:  stloc.1 
-	.try { // 0
-	  IL_0009:  ldloc.0 
-	  IL_000a:  ldloca.s 1
-	  IL_000c:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
-	  IL_0011:  nop 
-	  IL_0012:  ldarg.0 
-	  IL_0013:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
-	  IL_0018:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	  IL_001d:  stloc.2 
-	  IL_001e:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.ResourceUtils::_resourceManagerDictionary
-	  IL_0023:  ldloc.2 
-	  IL_0024:  ldloc.2 
-	  IL_0025:  call string class NAnt.Core.Util.ResourceUtils::GetResourceName(string)
-	  IL_002a:  ldarg.0 
-	  IL_002b:  newobj instance void class [mscorlib]System.Resources.ResourceManager::'.ctor'(string, class [mscorlib]System.Reflection.Assembly)
-	  IL_0030:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	  IL_0035:  nop 
-	  IL_0036:  leave IL_0045
+	  IL_029e:  nop 
+	  IL_029f:  ldloc.3 
+	  IL_02a0:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_02a5:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	  IL_02aa:  pop 
+	  IL_02ab:  ldarg.0 
+	  IL_02ac:  ldc.i4 2000
+	  IL_02b1:  ldstr "Created directory '{0}'."
+	  IL_02b6:  ldc.i4.1 
+	  IL_02b7:  newarr [mscorlib]System.Object
+	  IL_02bc:  dup 
+	  IL_02bd:  ldc.i4.0 
+	  IL_02be:  ldloc.3 
+	  IL_02bf:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_02c4:  stelem.ref 
+	  IL_02c5:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_02ca:  nop 
+	  IL_02cb:  ldloc.s 6
+	  IL_02cd:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_02d2:  brfalse IL_02e0
 
-	} // end .try 0
-	finally  { // 0
-	  IL_003b:  ldloc.1 
-	  IL_003c:  brfalse.s IL_0044
+	  IL_02d7:  nop 
+	  IL_02d8:  ldloc.s 6
+	  IL_02da:  call void class [mscorlib]System.IO.File::Delete(string)
+	  IL_02df:  nop 
+	  IL_02e0:  ldloc.3 
+	  IL_02e1:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
+	  IL_02e6:  ldloc.s 6
+	  IL_02e8:  ldarg.0 
+	  IL_02e9:  callvirt instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.CopyTask::get_Filters()
+	  IL_02ee:  ldarg.0 
+	  IL_02ef:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_InputEncoding()
+	  IL_02f4:  ldarg.0 
+	  IL_02f5:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_OutputEncoding()
+	  IL_02fa:  call void class NAnt.Core.Util.FileUtils::CopyFile(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
+	  IL_02ff:  leave IL_0369
 
-	  IL_003e:  ldloc.0 
-	  IL_003f:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_0044:  endfinally 
+	  IL_0304:  ldloc.3 
+	  IL_0305:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_030a:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_030f:  brfalse IL_0336
+
+	  IL_0314:  nop 
+	  IL_0315:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_031a:  ldstr "Failed to copy {0}.  Directory '{1}' already exists."
+	  IL_031f:  ldloc.3 
+	  IL_0320:  callvirt instance string object::ToString()
+	  IL_0325:  ldloc.3 
+	  IL_0326:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_032b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0330:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	  IL_0335:  throw 
+	  IL_0336:  ldloc.3 
+	  IL_0337:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
+	  IL_033c:  ldloc.3 
+	  IL_033d:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	  IL_0342:  ldarg.0 
+	  IL_0343:  callvirt instance class NAnt.Core.Filters.FilterChain class NAnt.Core.Tasks.CopyTask::get_Filters()
+	  IL_0348:  ldarg.0 
+	  IL_0349:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_InputEncoding()
+	  IL_034e:  ldarg.0 
+	  IL_034f:  call instance class [mscorlib]System.Text.Encoding class NAnt.Core.Tasks.CopyTask::get_OutputEncoding()
+	  IL_0354:  call void class NAnt.Core.Util.FileUtils::CopyDirectory(string, string, class NAnt.Core.Filters.FilterChain, class [mscorlib]System.Text.Encoding, class [mscorlib]System.Text.Encoding)
+	  IL_0359:  leave IL_0369
+
+	  IL_035e:  ldstr "Unrecognized copy operation. The copy task can only copy a file to file, file to directory, or directory to directory."
+	  IL_0363:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	  IL_0368:  throw 
+	  IL_0369:  nop 
+	  IL_036a:  leave IL_0395
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_036f:  stloc.s 7
+	  IL_0371:  nop 
+	  IL_0372:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0377:  ldstr "Cannot copy {0}."
+	  IL_037c:  ldloc.3 
+	  IL_037d:  callvirt instance string object::ToString()
+	  IL_0382:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0387:  ldarg.0 
+	  IL_0388:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_038d:  ldloc.s 7
+	  IL_038f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0394:  throw 
 	} // end handler 0
-	IL_0045:  ret 
-    } // end of method ResourceUtils::RegisterAssembly
+	IL_0395:  nop 
+	IL_0396:  ldloc.2 
+	IL_0397:  ldc.i4.1 
+	IL_0398:  add 
+	IL_0399:  stloc.2 
+	IL_039a:  ldloc.2 
+	IL_039b:  ldarg.0 
+	IL_039c:  call instance class NAnt.Core.Tasks.CopyTask/FileOperationMap class NAnt.Core.Tasks.CopyTask::get_OperationMap()
+	IL_03a1:  callvirt instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Count()
+	IL_03a6:  blt IL_0175
 
-    // method line 1570
-    .method private static hidebysig 
-           default string GetResourceName (string assemblyName)  cil managed 
+	IL_03ab:  ret 
+    } // end of method CopyTask::DoFileOperations
+
+    // method line 1379
+    .method family virtual hidebysig newslot 
+           instance default class NAnt.Core.BuildException CreateSourceFileNotFoundException (string sourceFile)  cil managed 
     {
-        // Method begins at RVA 0x1c7f8
-	// Code size 65 (0x41)
-	.maxstack 4
+        // Method begins at RVA 0x12858
+	// Code size 36 (0x24)
+	.maxstack 3
 	.locals init (
-		string	V_0,
-		string	V_1)
+		class NAnt.Core.BuildException	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  ldstr "Tasks"
-	IL_0009:  callvirt instance bool string::EndsWith(string)
-	IL_000e:  brfalse IL_002a
+	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0006:  ldstr "Could not find file '{0}' to copy."
+	IL_000b:  ldarg.1 
+	IL_000c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0011:  ldarg.0 
+	IL_0012:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0017:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_001c:  stloc.0 
+	IL_001d:  br IL_0022
 
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldc.i4.0 
-	IL_0016:  ldarg.0 
-	IL_0017:  callvirt instance int32 string::get_Length()
-	IL_001c:  ldc.i4.5 
-	IL_001d:  sub 
-	IL_001e:  callvirt instance string string::Substring(int32, int32)
-	IL_0023:  stloc.0 
-	IL_0024:  nop 
-	IL_0025:  br IL_002e
+	IL_0022:  ldloc.0 
+	IL_0023:  ret 
+    } // end of method CopyTask::CreateSourceFileNotFoundException
 
-	IL_002a:  nop 
-	IL_002b:  ldarg.0 
-	IL_002c:  stloc.0 
-	IL_002d:  nop 
-	IL_002e:  ldloc.0 
-	IL_002f:  ldstr ".Resources.Strings"
-	IL_0034:  call string string::Concat(string, string)
-	IL_0039:  stloc.1 
-	IL_003a:  br IL_003f
+	.property instance class [mscorlib]System.IO.FileInfo SourceFile ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 66 69 6C 65 00 00 ) // ...file..
 
-	IL_003f:  ldloc.1 
-	IL_0040:  ret 
-    } // end of method ResourceUtils::GetResourceName
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.CopyTask::get_SourceFile () 
+		.set instance default void NAnt.Core.Tasks.CopyTask::set_SourceFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo ToFile ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 74 6F 66 69 6C 65 00 00 ) // ...tofile..
 
-    // method line 1571
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1c845
-	// Code size 11 (0xb)
-	.maxstack 8
-	IL_0000:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0005:  stsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Util.ResourceUtils::_resourceManagerDictionary
-	IL_000a:  ret 
-    } // end of method ResourceUtils::.cctor
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.CopyTask::get_ToFile () 
+		.set instance default void NAnt.Core.Tasks.CopyTask::set_ToFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo ToDirectory ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 74 6F 64 69 72 00 00 ) // ...todir..
 
-  } // end of class NAnt.Core.Util.ResourceUtils
-}
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.CopyTask::get_ToDirectory () 
+		.set instance default void NAnt.Core.Tasks.CopyTask::set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
+	}
+	.property instance bool Overwrite ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 6F 76 65 72 77 72 69 74 65 00 00 ) // ...overwrite..
 
-.namespace NAnt.Core.Util
-{
-  .class public auto ansi serializable beforefieldinit CommandLineArgumentCollection
-  	extends [mscorlib]System.Collections.CollectionBase
-  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
+		.get instance default bool NAnt.Core.Tasks.CopyTask::get_Overwrite () 
+		.set instance default void NAnt.Core.Tasks.CopyTask::set_Overwrite (bool 'value') 
+	}
+	.property instance bool Flatten ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 66 6C 61 74 74 65 6E 00 00 ) // ...flatten..
 
-    // method line 1572
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1c851
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method CommandLineArgumentCollection::.ctor
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-    // method line 1573
+		.get instance default bool NAnt.Core.Tasks.CopyTask::get_Flatten () 
+		.set instance default void NAnt.Core.Tasks.CopyTask::set_Flatten (bool 'value') 
+	}
+	.property instance bool IncludeEmptyDirs ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 10 69 6E 63 6C 75 64 65 65 6D 70 74 79 64   // ...includeemptyd
+		69 72 73 00 00                                  ) // irs..
+
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Core.Tasks.CopyTask::get_IncludeEmptyDirs () 
+		.set instance default void NAnt.Core.Tasks.CopyTask::set_IncludeEmptyDirs (bool 'value') 
+	}
+	.property instance class NAnt.Core.Types.FileSet CopyFileSet ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 66 69 6C 65 73 65 74 00 00 ) // ...fileset..
+
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.CopyTask::get_CopyFileSet () 
+		.set instance default void NAnt.Core.Tasks.CopyTask::set_CopyFileSet (class NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance class NAnt.Core.Filters.FilterChain Filters ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0B 66 69 6C 74 65 72 63 68 61 69 6E 00 00 ) // ...filterchain..
+
+		.get instance default class NAnt.Core.Filters.FilterChain NAnt.Core.Tasks.CopyTask::get_Filters () 
+		.set instance default void NAnt.Core.Tasks.CopyTask::set_Filters (class NAnt.Core.Filters.FilterChain 'value') 
+	}
+	.property instance class [mscorlib]System.Text.Encoding InputEncoding ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 69 6E 70 75 74 65 6E 63 6F 64 69 6E 67   // ...inputencoding
+		00 00                                           ) // ..
+
+		.get instance default class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.CopyTask::get_InputEncoding () 
+		.set instance default void NAnt.Core.Tasks.CopyTask::set_InputEncoding (class [mscorlib]System.Text.Encoding 'value') 
+	}
+	.property instance class [mscorlib]System.Text.Encoding OutputEncoding ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0E 6F 75 74 70 75 74 65 6E 63 6F 64 69 6E   // ...outputencodin
+		67 00 00                                        ) // g..
+
+		.get instance default class [mscorlib]System.Text.Encoding NAnt.Core.Tasks.CopyTask::get_OutputEncoding () 
+		.set instance default void NAnt.Core.Tasks.CopyTask::set_OutputEncoding (class [mscorlib]System.Text.Encoding 'value') 
+	}
+	.property instance class [mscorlib]System.Collections.Hashtable FileCopyMap ()
+	{
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
+		01 00 72 46 69 6C 65 43 6F 70 79 4D 61 70 20 69   // ..rFileCopyMap i
+		73 20 6E 6F 77 20 63 6F 6E 73 69 64 65 72 65 64   // s now considered
+		20 61 20 72 65 61 64 6F 6E 6C 79 20 68 61 73 68   //  a readonly hash
+		74 61 62 6C 65 2E 20 54 6F 20 69 6E 74 65 72 61   // table. To intera
+		63 74 20 77 69 74 68 20 66 69 6C 65 20 6F 70 65   // ct with file ope
+		72 61 74 69 6F 6E 2C 20 75 73 65 20 74 68 65 20   // ration, use the 
+		4F 70 65 72 61 74 69 6F 6E 4D 61 70 20 70 72 6F   // OperationMap pro
+		70 65 72 74 79 00 00                            ) // perty..
+
+		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.Core.Tasks.CopyTask::get_FileCopyMap () 
+	}
+	.property instance class NAnt.Core.Tasks.CopyTask/FileOperationMap OperationMap ()
+	{
+		.get instance default class NAnt.Core.Tasks.CopyTask/FileOperationMap NAnt.Core.Tasks.CopyTask::get_OperationMap () 
+	}
+  .class nested family auto ansi beforefieldinit FileDateInfo
+  	extends [mscorlib]System.Object
+  {
+    .field  private  valuetype [mscorlib]System.DateTime _lastWriteTime
+    .field  private  string _path
+
+    // method line 1380
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Util.CommandLineArgumentCollection 'value')  cil managed 
+           instance default void '.ctor' (class [mscorlib]System.IO.FileSystemInfo file)  cil managed 
     {
-        // Method begins at RVA 0x1c85a
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x12888
+	// Code size 20 (0x14)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Util.CommandLineArgumentCollection::AddRange(class NAnt.Core.Util.CommandLineArgumentCollection)
-	IL_000e:  ret 
-    } // end of method CommandLineArgumentCollection::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_000d:  call instance void class NAnt.Core.Tasks.CopyTask/FileDateInfo::'.ctor'(string, valuetype [mscorlib]System.DateTime)
+	IL_0012:  nop 
+	IL_0013:  ret 
+    } // end of method FileDateInfo::.ctor
 
-    // method line 1574
+    // method line 1381
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Util.CommandLineArgument[] 'value')  cil managed 
+           instance default void '.ctor' (string path, valuetype [mscorlib]System.DateTime lastWriteTime)  cil managed 
     {
-        // Method begins at RVA 0x1c86a
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1289d
+	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0001:  call instance void object::'.ctor'()
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.Util.CommandLineArgumentCollection::AddRange(class NAnt.Core.Util.CommandLineArgument[])
-	IL_000e:  ret 
-    } // end of method CommandLineArgumentCollection::.ctor
+	IL_0009:  stfld string NAnt.Core.Tasks.CopyTask/FileDateInfo::_path
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.2 
+	IL_0010:  stfld valuetype [mscorlib]System.DateTime NAnt.Core.Tasks.CopyTask/FileDateInfo::_lastWriteTime
+	IL_0015:  ret 
+    } // end of method FileDateInfo::.ctor
 
-    // method line 1575
+    // method line 1382
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Util.CommandLineArgument get_Item (int32 index)  cil managed 
+           instance default string get_Path ()  cil managed 
     {
-        // Method begins at RVA 0x1c87c
-	// Code size 26 (0x1a)
-	.maxstack 2
+        // Method begins at RVA 0x128b4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Util.CommandLineArgument	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.Core.Util.CommandLineArgument
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
-
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method CommandLineArgumentCollection::get_Item
+	IL_0002:  ldfld string NAnt.Core.Tasks.CopyTask/FileDateInfo::_path
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 1576
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.Util.CommandLineArgument 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1c8a2
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineArgumentCollection::set_Item
+    } // end of method FileDateInfo::get_Path
 
-    // method line 1577
+    // method line 1383
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Util.CommandLineArgument get_Item (string name)  cil managed 
+           instance default valuetype [mscorlib]System.DateTime get_LastWriteTime ()  cil managed 
     {
-        // Method begins at RVA 0x1c8b4
-	// Code size 213 (0xd5)
-	.maxstack 2
+        // Method begins at RVA 0x128d0
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Util.CommandLineArgument	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Util.CommandLineArgument	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		class NAnt.Core.Util.CommandLineArgument	V_4,
-		class [mscorlib]System.Collections.IEnumerator	V_5,
-		class [mscorlib]System.IDisposable	V_6)
+		valuetype [mscorlib]System.DateTime	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_00cc
-
-	IL_0007:  nop 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0014:  stloc.1 
-	.try { // 0
-	  IL_0015:  br IL_0041
-
-	  IL_001a:  ldloc.1 
-	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.Core.Util.CommandLineArgument
-	  IL_0025:  stloc.0 
-	  IL_0026:  nop 
-	  IL_0027:  ldarg.1 
-	  IL_0028:  ldloc.0 
-	  IL_0029:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_LongName()
-	  IL_002e:  callvirt instance bool string::Equals(string)
-	  IL_0033:  brfalse IL_0040
-
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  stloc.2 
-	  IL_003b:  leave IL_00d3
-
-	  IL_0040:  nop 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_001a
-
-	  IL_004c:  leave IL_0065
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0051:  ldloc.1 
-	  IL_0052:  isinst [mscorlib]System.IDisposable
-	  IL_0057:  dup 
-	  IL_0058:  stloc.3 
-	  IL_0059:  brfalse IL_0064
-
-	  IL_005e:  ldloc.3 
-	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0064:  endfinally 
-	} // end handler 0
-	IL_0065:  nop 
-	IL_0066:  ldarg.0 
-	IL_0067:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_006c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0071:  stloc.s 5
-	.try { // 1
-	  IL_0073:  br IL_00a3
-
-	  IL_0078:  ldloc.s 5
-	  IL_007a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_007f:  castclass NAnt.Core.Util.CommandLineArgument
-	  IL_0084:  stloc.s 4
-	  IL_0086:  nop 
-	  IL_0087:  ldarg.1 
-	  IL_0088:  ldloc.s 4
-	  IL_008a:  callvirt instance string class NAnt.Core.Util.CommandLineArgument::get_ShortName()
-	  IL_008f:  callvirt instance bool string::Equals(string)
-	  IL_0094:  brfalse IL_00a2
-
-	  IL_0099:  nop 
-	  IL_009a:  ldloc.s 4
-	  IL_009c:  stloc.2 
-	  IL_009d:  leave IL_00d3
-
-	  IL_00a2:  nop 
-	  IL_00a3:  ldloc.s 5
-	  IL_00a5:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00aa:  brtrue IL_0078
-
-	  IL_00af:  leave IL_00cb
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype [mscorlib]System.DateTime NAnt.Core.Tasks.CopyTask/FileDateInfo::_lastWriteTime
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	} // end .try 1
-	finally  { // 1
-	  IL_00b4:  ldloc.s 5
-	  IL_00b6:  isinst [mscorlib]System.IDisposable
-	  IL_00bb:  dup 
-	  IL_00bc:  stloc.s 6
-	  IL_00be:  brfalse IL_00ca
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FileDateInfo::get_LastWriteTime
 
-	  IL_00c3:  ldloc.s 6
-	  IL_00c5:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00ca:  endfinally 
-	} // end handler 1
-	IL_00cb:  nop 
-	IL_00cc:  ldnull 
-	IL_00cd:  stloc.2 
-	IL_00ce:  br IL_00d3
+	.property instance string Path ()
+	{
+		.get instance default string NAnt.Core.Tasks.CopyTask/FileDateInfo::get_Path () 
+	}
+	.property instance valuetype [mscorlib]System.DateTime LastWriteTime ()
+	{
+		.get instance default valuetype [mscorlib]System.DateTime NAnt.Core.Tasks.CopyTask/FileDateInfo::get_LastWriteTime () 
+	}
+  } // end of class FileDateInfo
 
-	IL_00d3:  ldloc.2 
-	IL_00d4:  ret 
-    } // end of method CommandLineArgumentCollection::get_Item
+  .class nested family auto ansi beforefieldinit FileOperation
+  	extends [mscorlib]System.Object
+  {
+    .field  private  class [mscorlib]System.IO.FileSystemInfo _source
+    .field  private  class [mscorlib]System.IO.FileSystemInfo _target
+    .field  private  class [mscorlib]System.StringComparer _comparer
 
-    // method line 1578
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
+    // method line 1384
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.IO.FileSystemInfo source, class [mscorlib]System.IO.FileSystemInfo target)  cil managed 
     {
-        // Method begins at RVA 0x1c9b4
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x128ec
+	// Code size 94 (0x5e)
 	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
 	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method CommandLineArgumentCollection::Add
-
-    // method line 1579
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Util.CommandLineArgument[] items)  cil managed 
-    {
-        // Method begins at RVA 0x1c9d8
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Core.Util.CommandLineArgumentCollection::Add(class NAnt.Core.Util.CommandLineArgument)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
+	IL_0008:  brtrue IL_0019
 
-	IL_0021:  ret 
-    } // end of method CommandLineArgumentCollection::AddRange
+	IL_000d:  nop 
+	IL_000e:  ldstr "source"
+	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0018:  throw 
+	IL_0019:  ldarg.2 
+	IL_001a:  brtrue IL_002b
 
-    // method line 1580
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.Util.CommandLineArgumentCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x1ca08
-	// Code size 41 (0x29)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
+	IL_001f:  nop 
+	IL_0020:  ldstr "target"
+	IL_0025:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_002a:  throw 
+	IL_002b:  ldarg.0 
+	IL_002c:  ldarg.1 
+	IL_002d:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.DirectoryInfo> (class [mscorlib]System.IO.FileSystemInfo)
+	IL_0032:  brfalse IL_004f
 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Core.Util.CommandLineArgument class NAnt.Core.Util.CommandLineArgumentCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Core.Util.CommandLineArgumentCollection::Add(class NAnt.Core.Util.CommandLineArgument)
-	IL_0016:  pop 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0023:  blt IL_0008
+	IL_0037:  ldarg.0 
+	IL_0038:  ldarg.2 
+	IL_0039:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.FileInfo> (class [mscorlib]System.IO.FileSystemInfo)
+	IL_003e:  brfalse IL_004f
 
-	IL_0028:  ret 
-    } // end of method CommandLineArgumentCollection::AddRange
+	IL_0043:  nop 
+	IL_0044:  ldstr "Cannot transfer directory to file"
+	IL_0049:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_004e:  throw 
+	IL_004f:  ldarg.0 
+	IL_0050:  ldarg.1 
+	IL_0051:  stfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
+	IL_0056:  ldarg.0 
+	IL_0057:  ldarg.2 
+	IL_0058:  stfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
+	IL_005d:  ret 
+    } // end of method FileOperation::.ctor
 
-    // method line 1581
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
+    // method line 1385
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.StringComparer get_Comparer ()  cil managed 
     {
-        // Method begins at RVA 0x1ca40
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x12958
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.StringComparer	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  ldfld class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperation::_comparer
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method CommandLineArgumentCollection::Contains
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FileOperation::get_Comparer
 
-    // method line 1582
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.Util.CommandLineArgument[] 'array', int32 index)  cil managed 
+    // method line 1386
+    .method public hidebysig specialname 
+           instance default void set_Comparer (class [mscorlib]System.StringComparer 'value')  cil managed 
     {
-        // Method begins at RVA 0x1ca61
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x12973
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method CommandLineArgumentCollection::CopyTo
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperation::_comparer
+	IL_0008:  ret 
+    } // end of method FileOperation::set_Comparer
 
-    // method line 1583
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
+    // method line 1387
+    .method public hidebysig specialname 
+           instance default string get_Source ()  cil managed 
     {
-        // Method begins at RVA 0x1ca74
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x12980
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method CommandLineArgumentCollection::IndexOf
+	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
+	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 1584
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.Util.CommandLineArgument item)  cil managed 
-    {
-        // Method begins at RVA 0x1ca95
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method CommandLineArgumentCollection::Insert
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FileOperation::get_Source
 
-    // method line 1585
-    .method public hidebysig 
-           instance default class NAnt.Core.Util.CommandLineArgumentEnumerator GetEnumerator ()  cil managed 
+    // method line 1388
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileSystemInfo get_SourceInfo ()  cil managed 
     {
-        // Method begins at RVA 0x1caa8
+        // Method begins at RVA 0x129a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Util.CommandLineArgumentEnumerator	V_0)
+		class [mscorlib]System.IO.FileSystemInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.Util.CommandLineArgumentEnumerator::'.ctor'(class NAnt.Core.Util.CommandLineArgumentCollection)
+	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineArgumentCollection::GetEnumerator
+    } // end of method FileOperation::get_SourceInfo
 
-    // method line 1586
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.Util.CommandLineArgument item)  cil managed 
+    // method line 1389
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Type get_SourceType ()  cil managed 
     {
-        // Method begins at RVA 0x1cac3
-	// Code size 14 (0xe)
-	.maxstack 8
+        // Method begins at RVA 0x129bc
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Type	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method CommandLineArgumentCollection::Remove
-
-	.property instance class NAnt.Core.Util.CommandLineArgument Item (int32)
-	{
-		.get instance default class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineArgumentCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Core.Util.CommandLineArgumentCollection::set_Item (int32 index, class NAnt.Core.Util.CommandLineArgument 'value') 
-	}
-	.property instance class NAnt.Core.Util.CommandLineArgument Item (string)
-	{
-		.get instance default class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineArgumentCollection::get_Item (string name) 
-	}
-  } // end of class NAnt.Core.Util.CommandLineArgumentCollection
-}
+	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
+	IL_0007:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-.namespace NAnt.Core.Util
-{
-  .class public auto ansi beforefieldinit CommandLineArgumentEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FileOperation::get_SourceType
 
-    // method line 1587
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Util.CommandLineArgumentCollection arguments)  cil managed 
+    // method line 1390
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.Tasks.CopyTask/OperationType get_OperationType ()  cil managed 
     {
-        // Method begins at RVA 0x1cad4
-	// Code size 22 (0x16)
+        // Method begins at RVA 0x129dc
+	// Code size 94 (0x5e)
 	.maxstack 2
 	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method CommandLineArgumentEnumerator::.ctor
+		valuetype NAnt.Core.Tasks.CopyTask/OperationType	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  call instance class [mscorlib]System.IO.FileSystemInfo class NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceInfo()
+	IL_0008:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.FileInfo> (class [mscorlib]System.IO.FileSystemInfo)
+	IL_000d:  brfalse IL_002b
 
-    // method line 1588
+	IL_0012:  ldarg.0 
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance class [mscorlib]System.IO.FileSystemInfo class NAnt.Core.Tasks.CopyTask/FileOperation::get_TargetInfo()
+	IL_0019:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.FileInfo> (class [mscorlib]System.IO.FileSystemInfo)
+	IL_001e:  brfalse IL_002b
+
+	IL_0023:  nop 
+	IL_0024:  ldc.i4.0 
+	IL_0025:  stloc.0 
+	IL_0026:  br IL_005c
+
+	IL_002b:  ldarg.0 
+	IL_002c:  ldarg.0 
+	IL_002d:  call instance class [mscorlib]System.IO.FileSystemInfo class NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceInfo()
+	IL_0032:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.FileInfo> (class [mscorlib]System.IO.FileSystemInfo)
+	IL_0037:  brfalse IL_0055
+
+	IL_003c:  ldarg.0 
+	IL_003d:  ldarg.0 
+	IL_003e:  call instance class [mscorlib]System.IO.FileSystemInfo class NAnt.Core.Tasks.CopyTask/FileOperation::get_TargetInfo()
+	IL_0043:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.DirectoryInfo> (class [mscorlib]System.IO.FileSystemInfo)
+	IL_0048:  brfalse IL_0055
+
+	IL_004d:  nop 
+	IL_004e:  ldc.i4.1 
+	IL_004f:  stloc.0 
+	IL_0050:  br IL_005c
+
+	IL_0055:  ldc.i4.2 
+	IL_0056:  stloc.0 
+	IL_0057:  br IL_005c
+
+	IL_005c:  ldloc.0 
+	IL_005d:  ret 
+    } // end of method FileOperation::get_OperationType
+
+    // method line 1391
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Util.CommandLineArgument get_Current ()  cil managed 
+           instance default bool get_Outdated ()  cil managed 
     {
-        // Method begins at RVA 0x1caf8
-	// Code size 25 (0x19)
-	.maxstack 1
+        // Method begins at RVA 0x12a48
+	// Code size 66 (0x42)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Util.CommandLineArgument	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.Util.CommandLineArgument
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
+	IL_0008:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.DirectoryInfo> (class [mscorlib]System.IO.FileSystemInfo)
+	IL_000d:  brtrue IL_0039
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method CommandLineArgumentEnumerator::get_Current
+	IL_0012:  ldarg.0 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
+	IL_0019:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.FileInfo> (class [mscorlib]System.IO.FileSystemInfo)
+	IL_001e:  brfalse IL_0036
 
-    // method line 1589
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+	IL_0023:  ldarg.0 
+	IL_0024:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
+	IL_0029:  ldarg.0 
+	IL_002a:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
+	IL_002f:  call bool class NAnt.Core.Tasks.CopyTask/FileOperation::TargetIsOutdated(class [mscorlib]System.IO.FileSystemInfo, class [mscorlib]System.IO.FileSystemInfo)
+	IL_0034:  br.s IL_0037
+
+	IL_0036:  ldc.i4.0 
+	IL_0037:  br.s IL_003a
+
+	IL_0039:  ldc.i4.1 
+	IL_003a:  stloc.0 
+	IL_003b:  br IL_0040
+
+	IL_0040:  ldloc.0 
+	IL_0041:  ret 
+    } // end of method FileOperation::get_Outdated
+
+    // method line 1392
+    .method public hidebysig specialname 
+           instance default string get_Target ()  cil managed 
     {
-        // Method begins at RVA 0x1cb20
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+        // Method begins at RVA 0x12a98
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
+	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method CommandLineArgumentEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method FileOperation::get_Target
 
-    // method line 1590
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
+    // method line 1393
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileSystemInfo get_TargetInfo ()  cil managed 
     {
-        // Method begins at RVA 0x1cb40
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x12ab8
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.IO.FileSystemInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method CommandLineArgumentEnumerator::MoveNext
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FileOperation::get_TargetInfo
 
-    // method line 1591
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    // method line 1394
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Type get_TargetType ()  cil managed 
     {
-        // Method begins at RVA 0x1cb60
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+        // Method begins at RVA 0x12ad4
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.Type	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
+	IL_0007:  callvirt instance class [mscorlib]System.Type object::GetType()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method CommandLineArgumentEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method FileOperation::get_TargetType
 
-    // method line 1592
+    // method line 1395
     .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x1cb80
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method CommandLineArgumentEnumerator::Reset
-
-    // method line 1593
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+           instance default void NormalizeTargetAttributes ()  cil managed 
     {
-        // Method begins at RVA 0x1cb8e
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
+        // Method begins at RVA 0x12af4
+	// Code size 79 (0x4f)
+	.maxstack 2
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.Util.CommandLineArgumentEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method CommandLineArgumentEnumerator::System.Collections.IEnumerator.Reset
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
+	IL_0008:  call instance bool class NAnt.Core.Tasks.CopyTask/FileOperation::IsFileSystemType<class [mscorlib]System.IO.FileInfo> (class [mscorlib]System.IO.FileSystemInfo)
+	IL_000d:  brfalse IL_004e
 
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.Core.Util.CommandLineArgumentEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.Core.Util.CommandLineArgument Current ()
-	{
-		.get instance default class NAnt.Core.Util.CommandLineArgument NAnt.Core.Util.CommandLineArgumentEnumerator::get_Current () 
-	}
-  } // end of class NAnt.Core.Util.CommandLineArgumentEnumerator
-}
+	IL_0012:  ldarg.0 
+	IL_0013:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
+	IL_0018:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_001d:  brfalse IL_004e
 
-.namespace NAnt.Core
-{
-  .class public auto ansi sealed serializable beforefieldinit PathScanner
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.ICloneable  {
-    .field  private static initonly  class [log4net]log4net.ILog logger
-    .field  private  class [System]System.Collections.Specialized.StringCollection _unscannedNames
+	IL_0022:  ldarg.0 
+	IL_0023:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
+	IL_0028:  callvirt instance valuetype [mscorlib]System.IO.FileAttributes class [mscorlib]System.IO.FileSystemInfo::get_Attributes()
+	IL_002d:  ldc.i4 128
+	IL_0032:  beq IL_004e
 
-    // method line 1594
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1cb9c
-	// Code size 18 (0x12)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0006:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PathScanner::_unscannedNames
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void object::'.ctor'()
-	IL_0011:  ret 
-    } // end of method PathScanner::.ctor
+	IL_0037:  nop 
+	IL_0038:  ldarg.0 
+	IL_0039:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
+	IL_003e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0043:  ldc.i4 128
+	IL_0048:  call void class [mscorlib]System.IO.File::SetAttributes(string, valuetype [mscorlib]System.IO.FileAttributes)
+	IL_004d:  nop 
+	IL_004e:  ret 
+    } // end of method FileOperation::NormalizeTargetAttributes
 
-    // method line 1595
-    .method private final virtual hidebysig newslot 
-           instance default object System.ICloneable.Clone ()  cil managed 
+    // method line 1396
+    .method public hidebysig 
+           instance default bool SourceEqualsTarget ()  cil managed 
     {
-        // Method begins at RVA 0x1cbb0
-	.override class [mscorlib]System.ICloneable::Clone
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x12b50
+	// Code size 45 (0x2d)
+	.maxstack 3
 	.locals init (
-		object	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.PathScanner class NAnt.Core.PathScanner::Clone()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperation::_comparer
+	IL_0007:  ldarg.0 
+	IL_0008:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
+	IL_000d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0012:  ldarg.0 
+	IL_0013:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
+	IL_0018:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001d:  callvirt instance int32 class [mscorlib]System.StringComparer::Compare(string, string)
+	IL_0022:  ldc.i4.0 
+	IL_0023:  ceq 
+	IL_0025:  stloc.0 
+	IL_0026:  br IL_002b
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method PathScanner::System.ICloneable.Clone
+	IL_002b:  ldloc.0 
+	IL_002c:  ret 
+    } // end of method FileOperation::SourceEqualsTarget
 
-    // method line 1596
+    // method line 1397
     .method public hidebysig 
-           instance default class NAnt.Core.PathScanner Clone ()  cil managed 
+           instance default bool SourceIsIdenticalToTarget ()  cil managed 
     {
-        // Method begins at RVA 0x1cbcc
-	// Code size 33 (0x21)
-	.maxstack 2
+        // Method begins at RVA 0x12b8c
+	// Code size 37 (0x25)
+	.maxstack 3
 	.locals init (
-		class NAnt.Core.PathScanner	V_0,
-		class NAnt.Core.PathScanner	V_1)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.PathScanner::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PathScanner::_unscannedNames
-	IL_000e:  call class [System]System.Collections.Specialized.StringCollection class NAnt.Core.PathScanner::Clone(class [System]System.Collections.Specialized.StringCollection)
-	IL_0013:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PathScanner::_unscannedNames
-	IL_0018:  ldloc.0 
-	IL_0019:  stloc.1 
-	IL_001a:  br IL_001f
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
+	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_target
+	IL_0012:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0017:  ldc.i4.2 
+	IL_0018:  callvirt instance bool string::Equals(string, valuetype [mscorlib]System.StringComparison)
+	IL_001d:  stloc.0 
+	IL_001e:  br IL_0023
 
-	IL_001f:  ldloc.1 
-	IL_0020:  ret 
-    } // end of method PathScanner::Clone
+	IL_0023:  ldloc.0 
+	IL_0024:  ret 
+    } // end of method FileOperation::SourceIsIdenticalToTarget
 
-    // method line 1597
+    // method line 1398
     .method public hidebysig 
-           instance default void Add (string fileName)  cil managed 
+           instance default void UpdateSource (class [mscorlib]System.IO.FileSystemInfo newSource)  cil managed 
     {
-        // Method begins at RVA 0x1cbf9
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x12bbd
+	// Code size 38 (0x26)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PathScanner::_unscannedNames
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_000d:  pop 
-	IL_000e:  ret 
-    } // end of method PathScanner::Add
+	IL_0002:  ldfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
+	IL_0007:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0012:  call bool valuetype [mscorlib]System.DateTime::op_LessThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	IL_0017:  brfalse IL_0025
 
-    // method line 1598
-    .method public hidebysig 
-           instance default void Clear ()  cil managed 
+	IL_001c:  nop 
+	IL_001d:  ldarg.0 
+	IL_001e:  ldarg.1 
+	IL_001f:  stfld class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::_source
+	IL_0024:  nop 
+	IL_0025:  ret 
+    } // end of method FileOperation::UpdateSource
+
+    // method line 1399
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0x1cc09
-	// Code size 13 (0xd)
-	.maxstack 8
+        // Method begins at RVA 0x12be4
+	// Code size 31 (0x1f)
+	.maxstack 3
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PathScanner::_unscannedNames
-	IL_0007:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
-	IL_000c:  ret 
-    } // end of method PathScanner::Clear
+	IL_0001:  ldstr "'{0}' to '{1}'"
+	IL_0006:  ldarg.0 
+	IL_0007:  call instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	IL_0012:  call string string::Format(string, object, object)
+	IL_0017:  stloc.0 
+	IL_0018:  br IL_001d
 
-    // method line 1599
-    .method public hidebysig 
-           instance default class [System]System.Collections.Specialized.StringCollection Scan ()  cil managed 
+	IL_001d:  ldloc.0 
+	IL_001e:  ret 
+    } // end of method FileOperation::ToString
+
+    // method line 1400
+    .method public static hidebysig 
+           default bool TargetIsOutdated (class [mscorlib]System.IO.FileSystemInfo source, class [mscorlib]System.IO.FileSystemInfo target)  cil managed 
     {
-        // Method begins at RVA 0x1cc18
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x12c10
+	// Code size 40 (0x28)
 	.maxstack 2
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "PATH"
-	IL_0007:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.PathScanner::Scan(string)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0007:  brfalse IL_001f
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method PathScanner::Scan
+	IL_000c:  ldarg.0 
+	IL_000d:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0012:  ldarg.1 
+	IL_0013:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0018:  call bool valuetype [mscorlib]System.DateTime::op_GreaterThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	IL_001d:  br.s IL_0020
 
-    // method line 1600
-    .method public hidebysig 
-           instance default class [System]System.Collections.Specialized.StringCollection Scan (string name)  cil managed 
+	IL_001f:  ldc.i4.1 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
+
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method FileOperation::TargetIsOutdated
+
+    // method line 1401
+    .method public static hidebysig 
+           default bool TargetDirectoryDoesNotExist (class [mscorlib]System.IO.DirectoryInfo source, class [mscorlib]System.IO.DirectoryInfo target)  cil managed 
     {
-        // Method begins at RVA 0x1cc38
-	// Code size 371 (0x173)
-	.maxstack 4
+        // Method begins at RVA 0x12c44
+	// Code size 46 (0x2e)
+	.maxstack 3
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringCollection	V_2,
-		string[]	V_3,
-		string	V_4,
-		class [System]System.Collections.Specialized.StringEnumerator	V_5,
-		string	V_6,
-		string	V_7,
-		string	V_8,
-		string[]	V_9,
-		int32	V_10,
-		string	V_11,
-		string[]	V_12,
-		class [mscorlib]System.UnauthorizedAccessException	V_13,
-		class [mscorlib]System.IDisposable	V_14)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.1 
-	IL_0008:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
-	IL_000d:  stloc.1 
-	IL_000e:  ldloc.1 
-	IL_000f:  brtrue IL_001c
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0007:  brtrue IL_0014
 
-	IL_0014:  nop 
-	IL_0015:  ldloc.0 
-	IL_0016:  stloc.2 
-	IL_0017:  br IL_0171
+	IL_000c:  nop 
+	IL_000d:  ldc.i4.1 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_002c
 
-	IL_001c:  ldloc.1 
-	IL_001d:  ldsfld char [mscorlib]System.IO.Path::PathSeparator
-	IL_0022:  ldc.i4.0 
-	IL_0023:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	IL_0028:  stloc.3 
-	IL_0029:  nop 
-	IL_002a:  ldarg.0 
-	IL_002b:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PathScanner::_unscannedNames
-	IL_0030:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0035:  stloc.s 5
-	.try { // 1
-	  IL_0037:  br IL_0142
+	IL_0014:  ldarg.0 
+	IL_0015:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001a:  ldarg.1 
+	IL_001b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0020:  ldc.i4.3 
+	IL_0021:  callvirt instance bool string::Equals(string, valuetype [mscorlib]System.StringComparison)
+	IL_0026:  stloc.0 
+	IL_0027:  br IL_002c
 
-	  IL_003c:  ldloc.s 5
-	  IL_003e:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0043:  stloc.s 4
-	  IL_0045:  nop 
-	  IL_0046:  ldloc.s 4
-	  IL_0048:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	  IL_004d:  brfalse IL_0076
+	IL_002c:  ldloc.0 
+	IL_002d:  ret 
+    } // end of method FileOperation::TargetDirectoryDoesNotExist
 
-	  IL_0052:  nop 
-	  IL_0053:  ldloc.s 4
-	  IL_0055:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_005a:  brfalse IL_006f
+    // method line 1402
+    .method private hidebysig 
+           instance default bool IsFileSystemType<(class [mscorlib]System.IO.FileSystemInfo) TFileSystemInfo> (class [mscorlib]System.IO.FileSystemInfo item)  cil managed 
+    {
+        // Method begins at RVA 0x12c80
+	// Code size 30 (0x1e)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0007:  ldtoken !!TFileSystemInfo
+	IL_000c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0011:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0016:  stloc.0 
+	IL_0017:  br IL_001c
 
-	  IL_005f:  nop 
-	  IL_0060:  ldloc.0 
-	  IL_0061:  ldloc.s 4
-	  IL_0063:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_0068:  pop 
-	  IL_0069:  nop 
-	  IL_006a:  br IL_0075
+	IL_001c:  ldloc.0 
+	IL_001d:  ret 
+    } // end of method FileOperation::IsFileSystemType
 
-	  IL_006f:  nop 
-	  IL_0070:  leave IL_0142
+	.property instance class [mscorlib]System.StringComparer Comparer ()
+	{
+		.get instance default class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperation::get_Comparer () 
+		.set instance default void NAnt.Core.Tasks.CopyTask/FileOperation::set_Comparer (class [mscorlib]System.StringComparer 'value') 
+	}
+	.property instance string Source ()
+	{
+		.get instance default string NAnt.Core.Tasks.CopyTask/FileOperation::get_Source () 
+	}
+	.property instance class [mscorlib]System.IO.FileSystemInfo SourceInfo ()
+	{
+		.get instance default class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceInfo () 
+	}
+	.property instance class [mscorlib]System.Type SourceType ()
+	{
+		.get instance default class [mscorlib]System.Type NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceType () 
+	}
+	.property instance valuetype NAnt.Core.Tasks.CopyTask/OperationType OperationType ()
+	{
+		.get instance default valuetype NAnt.Core.Tasks.CopyTask/OperationType NAnt.Core.Tasks.CopyTask/FileOperation::get_OperationType () 
+	}
+	.property instance bool Outdated ()
+	{
+		.get instance default bool NAnt.Core.Tasks.CopyTask/FileOperation::get_Outdated () 
+	}
+	.property instance string Target ()
+	{
+		.get instance default string NAnt.Core.Tasks.CopyTask/FileOperation::get_Target () 
+	}
+	.property instance class [mscorlib]System.IO.FileSystemInfo TargetInfo ()
+	{
+		.get instance default class [mscorlib]System.IO.FileSystemInfo NAnt.Core.Tasks.CopyTask/FileOperation::get_TargetInfo () 
+	}
+	.property instance class [mscorlib]System.Type TargetType ()
+	{
+		.get instance default class [mscorlib]System.Type NAnt.Core.Tasks.CopyTask/FileOperation::get_TargetType () 
+	}
+  } // end of class FileOperation
 
-	  IL_0075:  nop 
-	  IL_0076:  ldloc.s 4
-	  IL_0078:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	  IL_007d:  stloc.s 6
-	  IL_007f:  ldloc.s 4
-	  IL_0081:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	  IL_0086:  stloc.s 7
-	  IL_0088:  nop 
-	  IL_0089:  ldloc.3 
-	  IL_008a:  stloc.s 9
-	  IL_008c:  ldc.i4.0 
-	  IL_008d:  stloc.s 10
-	  IL_008f:  br IL_0136
+  .class nested family auto ansi beforefieldinit FileOperationMap
+  	extends class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string,class NAnt.Core.Tasks.CopyTask/FileOperation>
+  {
+    .field  private  class [mscorlib]System.StringComparer _stringComparer
 
-	  IL_0094:  ldloc.s 9
-	  IL_0096:  ldloc.s 10
-	  IL_0098:  ldelem.ref 
-	  IL_0099:  stloc.s 8
-	  IL_009b:  nop 
-	  IL_009c:  ldloc.s 8
-	  IL_009e:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_00a3:  brtrue IL_00ae
+    // method line 1403
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x12caa
+	// Code size 24 (0x18)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call class [mscorlib]System.StringComparer class [mscorlib]System.StringComparer::get_InvariantCulture()
+	IL_0006:  call instance void class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::'.ctor'(class [mscorlib]System.Collections.Generic.IEqualityComparer`1<!0>)
+	IL_000b:  nop 
+	IL_000c:  ldarg.0 
+	IL_000d:  call class [mscorlib]System.StringComparer class [mscorlib]System.StringComparer::get_InvariantCulture()
+	IL_0012:  stfld class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperationMap::_stringComparer
+	IL_0017:  ret 
+    } // end of method FileOperationMap::.ctor
 
-	  IL_00a8:  nop 
-	  IL_00a9:  leave IL_0130
+    // method line 1404
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.StringComparer comparer)  cil managed 
+    {
+        // Method begins at RVA 0x12cc3
+	// Code size 16 (0x10)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::'.ctor'(class [mscorlib]System.Collections.Generic.IEqualityComparer`1<!0>)
+	IL_0007:  nop 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  stfld class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperationMap::_stringComparer
+	IL_000f:  ret 
+    } // end of method FileOperationMap::.ctor
 
-	  IL_00ae:  ldloc.s 8
-	  IL_00b0:  stloc.s 11
-	  IL_00b2:  ldloc.s 7
-	  IL_00b4:  call bool string::IsNullOrEmpty(string)
-	  IL_00b9:  brtrue IL_00dd
+    // method line 1405
+    .method public hidebysig 
+           instance default bool ContainsKey (string key)  cil managed 
+    {
+        // Method begins at RVA 0x12cd4
+	// Code size 40 (0x28)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Generic.IDictionary`2<!0,!1> class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Dictionary()
+	IL_0007:  brfalse IL_001f
 
-	  IL_00be:  nop 
-	  IL_00bf:  ldloc.s 8
-	  IL_00c1:  ldloc.s 7
-	  IL_00c3:  call string class NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	  IL_00c8:  stloc.s 11
-	  IL_00ca:  ldloc.s 11
-	  IL_00cc:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_00d1:  brtrue IL_00dc
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class [mscorlib]System.Collections.Generic.IDictionary`2<!0,!1> class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Dictionary()
+	IL_0013:  ldarg.1 
+	IL_0014:  callvirt instance bool class [mscorlib]System.Collections.Generic.IDictionary`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::ContainsKey(!0)
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_0026
 
-	  IL_00d6:  nop 
-	  IL_00d7:  leave IL_0130
+	IL_001f:  ldc.i4.0 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
 
-	  IL_00dc:  nop 
-	  .try { // 0
-	    IL_00dd:  nop 
-	    IL_00de:  ldloc.s 11
-	    IL_00e0:  ldloc.s 6
-	    IL_00e2:  call string[] class [mscorlib]System.IO.Directory::GetFiles(string, string)
-	    IL_00e7:  stloc.s 12
-	    IL_00e9:  ldloc.s 12
-	    IL_00eb:  ldlen 
-	    IL_00ec:  conv.i4 
-	    IL_00ed:  ldc.i4.0 
-	    IL_00ee:  ble IL_0104
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method FileOperationMap::ContainsKey
 
-	    IL_00f3:  nop 
-	    IL_00f4:  ldloc.0 
-	    IL_00f5:  ldloc.s 12
-	    IL_00f7:  ldc.i4.0 
-	    IL_00f8:  ldelem.ref 
-	    IL_00f9:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_00fe:  pop 
-	    IL_00ff:  leave IL_0141
+    // method line 1406
+    .method public hidebysig 
+           instance default int32 CountDirectoryOperations ()  cil managed 
+    {
+        // Method begins at RVA 0x12d08
+	// Code size 75 (0x4b)
+	.maxstack 2
+	.locals init (
+		int32	V_0,
+		int32	V_1,
+		int32	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  ldc.i4.0 
+	IL_0004:  stloc.1 
+	IL_0005:  br IL_0036
 
-	    IL_0104:  nop 
-	    IL_0105:  leave IL_012f
+	IL_000a:  nop 
+	IL_000b:  ldarg.0 
+	IL_000c:  ldloc.1 
+	IL_000d:  call instance !0 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Item(int32)
+	IL_0012:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceType()
+	IL_0017:  ldtoken [mscorlib]System.IO.DirectoryInfo
+	IL_001c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0021:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0026:  brfalse IL_0031
 
-	  } // end .try 0
-	  catch class [mscorlib]System.UnauthorizedAccessException { // 0
-	    IL_010a:  stloc.s 13
-	    IL_010c:  nop 
-	    IL_010d:  ldsfld class [log4net]log4net.ILog NAnt.Core.PathScanner::logger
-	    IL_0112:  ldstr "Access to the path \""
-	    IL_0117:  ldloc.s 11
-	    IL_0119:  ldstr "\" is denied."
-	    IL_011e:  call string string::Concat(string, string, string)
-	    IL_0123:  ldloc.s 13
-	    IL_0125:  callvirt instance void class [log4net]log4net.ILog::Warn(object, class [mscorlib]System.Exception)
-	    IL_012a:  leave IL_0130
+	IL_002b:  nop 
+	IL_002c:  ldloc.0 
+	IL_002d:  ldc.i4.1 
+	IL_002e:  add 
+	IL_002f:  stloc.0 
+	IL_0030:  nop 
+	IL_0031:  nop 
+	IL_0032:  ldloc.1 
+	IL_0033:  ldc.i4.1 
+	IL_0034:  add 
+	IL_0035:  stloc.1 
+	IL_0036:  ldloc.1 
+	IL_0037:  ldarg.0 
+	IL_0038:  call instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Count()
+	IL_003d:  blt IL_000a
 
-	  } // end handler 0
-	  IL_012f:  nop 
-	  IL_0130:  ldloc.s 10
-	  IL_0132:  ldc.i4.1 
-	  IL_0133:  add 
-	  IL_0134:  stloc.s 10
-	  IL_0136:  ldloc.s 10
-	  IL_0138:  ldloc.s 9
-	  IL_013a:  ldlen 
-	  IL_013b:  conv.i4 
-	  IL_013c:  blt IL_0094
+	IL_0042:  ldloc.0 
+	IL_0043:  stloc.2 
+	IL_0044:  br IL_0049
 
-	  IL_0141:  nop 
-	  IL_0142:  ldloc.s 5
-	  IL_0144:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0149:  brtrue IL_003c
+	IL_0049:  ldloc.2 
+	IL_004a:  ret 
+    } // end of method FileOperationMap::CountDirectoryOperations
 
-	  IL_014e:  leave IL_016a
+    // method line 1407
+    .method public hidebysig 
+           instance default int32 CountFileOperations ()  cil managed 
+    {
+        // Method begins at RVA 0x12d60
+	// Code size 75 (0x4b)
+	.maxstack 2
+	.locals init (
+		int32	V_0,
+		int32	V_1,
+		int32	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  ldc.i4.0 
+	IL_0004:  stloc.1 
+	IL_0005:  br IL_0036
 
-	} // end .try 1
-	finally  { // 1
-	  IL_0153:  ldloc.s 5
-	  IL_0155:  isinst [mscorlib]System.IDisposable
-	  IL_015a:  dup 
-	  IL_015b:  stloc.s 14
-	  IL_015d:  brfalse IL_0169
+	IL_000a:  nop 
+	IL_000b:  ldarg.0 
+	IL_000c:  ldloc.1 
+	IL_000d:  call instance !0 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Item(int32)
+	IL_0012:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceType()
+	IL_0017:  ldtoken [mscorlib]System.IO.FileInfo
+	IL_001c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0021:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0026:  brfalse IL_0031
 
-	  IL_0162:  ldloc.s 14
-	  IL_0164:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0169:  endfinally 
-	} // end handler 1
-	IL_016a:  ldloc.0 
-	IL_016b:  stloc.2 
-	IL_016c:  br IL_0171
+	IL_002b:  nop 
+	IL_002c:  ldloc.0 
+	IL_002d:  ldc.i4.1 
+	IL_002e:  add 
+	IL_002f:  stloc.0 
+	IL_0030:  nop 
+	IL_0031:  nop 
+	IL_0032:  ldloc.1 
+	IL_0033:  ldc.i4.1 
+	IL_0034:  add 
+	IL_0035:  stloc.1 
+	IL_0036:  ldloc.1 
+	IL_0037:  ldarg.0 
+	IL_0038:  call instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Count()
+	IL_003d:  blt IL_000a
 
-	IL_0171:  ldloc.2 
-	IL_0172:  ret 
-    } // end of method PathScanner::Scan
+	IL_0042:  ldloc.0 
+	IL_0043:  stloc.2 
+	IL_0044:  br IL_0049
 
-    // method line 1601
-    .method private static hidebysig 
-           default class [System]System.Collections.Specialized.StringCollection Clone (class [System]System.Collections.Specialized.StringCollection stringCollection)  cil managed 
+	IL_0049:  ldloc.2 
+	IL_004a:  ret 
+    } // end of method FileOperationMap::CountFileOperations
+
+    // method line 1408
+    .method public hidebysig 
+           instance default class [mscorlib]System.Collections.Hashtable ConvertToHashtable ()  cil managed 
     {
-        // Method begins at RVA 0x1cdec
-	// Code size 43 (0x2b)
-	.maxstack 3
+        // Method begins at RVA 0x12db8
+	// Code size 325 (0x145)
+	.maxstack 4
 	.locals init (
-		string[]	V_0,
-		class [System]System.Collections.Specialized.StringCollection	V_1,
-		class [System]System.Collections.Specialized.StringCollection	V_2)
+		class [mscorlib]System.Collections.Hashtable	V_0,
+		int32	V_1,
+		class NAnt.Core.Tasks.CopyTask/FileOperation	V_2,
+		string	V_3,
+		string	V_4,
+		class NAnt.Core.DirectoryScanner	V_5,
+		class [System]System.Collections.Specialized.StringCollection	V_6,
+		int32	V_7,
+		string	V_8,
+		class [mscorlib]System.Collections.Hashtable	V_9)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0007:  newarr [mscorlib]System.String
-	IL_000c:  stloc.0 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::CopyTo(string[], int32)
-	IL_0015:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_001a:  stloc.1 
-	IL_001b:  ldloc.1 
-	IL_001c:  ldloc.0 
-	IL_001d:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
-	IL_0022:  ldloc.1 
-	IL_0023:  stloc.2 
-	IL_0024:  br IL_0029
+	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
+	IL_0006:  brfalse IL_0018
 
-	IL_0029:  ldloc.2 
-	IL_002a:  ret 
-    } // end of method PathScanner::Clone
+	IL_000b:  nop 
+	IL_000c:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0011:  stloc.0 
+	IL_0012:  nop 
+	IL_0013:  br IL_0020
 
-    // method line 1602
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1ce23
-	// Code size 21 (0x15)
-	.maxstack 8
-	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
-	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
-	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.PathScanner::logger
-	IL_0014:  ret 
-    } // end of method PathScanner::.cctor
+	IL_0018:  nop 
+	IL_0019:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_001e:  stloc.0 
+	IL_001f:  nop 
+	IL_0020:  ldc.i4.0 
+	IL_0021:  stloc.1 
+	IL_0022:  br IL_012e
 
-  } // end of class NAnt.Core.PathScanner
-}
+	IL_0027:  nop 
+	IL_0028:  ldarg.0 
+	IL_0029:  ldloc.1 
+	IL_002a:  call instance !0 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Item(int32)
+	IL_002f:  stloc.2 
+	IL_0030:  ldloc.2 
+	IL_0031:  callvirt instance valuetype NAnt.Core.Tasks.CopyTask/OperationType class NAnt.Core.Tasks.CopyTask/FileOperation::get_OperationType()
+	IL_0036:  brtrue IL_0059
 
-.namespace NAnt.Core
-{
-  .class public auto ansi abstract beforefieldinit FunctionSetBase
-  	extends [mscorlib]System.Object
-  {
-    .field  private  class NAnt.Core.Project _project
+	IL_003b:  nop 
+	IL_003c:  ldloc.0 
+	IL_003d:  ldloc.2 
+	IL_003e:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	IL_0043:  ldloc.2 
+	IL_0044:  callvirt instance class [mscorlib]System.IO.FileSystemInfo class NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceInfo()
+	IL_0049:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileDateInfo::'.ctor'(class [mscorlib]System.IO.FileSystemInfo)
+	IL_004e:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_0053:  nop 
+	IL_0054:  br IL_0129
 
-    // method line 1603
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x24d4
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld class NAnt.Core.Project NAnt.Core.FunctionSetBase::_project
-	IL_000e:  ret 
-    } // end of method FunctionSetBase::.ctor
+	IL_0059:  ldloc.2 
+	IL_005a:  callvirt instance valuetype NAnt.Core.Tasks.CopyTask/OperationType class NAnt.Core.Tasks.CopyTask/FileOperation::get_OperationType()
+	IL_005f:  ldc.i4.1 
+	IL_0060:  bne.un IL_0099
 
-    // method line 1604
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
+	IL_0065:  nop 
+	IL_0066:  ldloc.2 
+	IL_0067:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Source()
+	IL_006c:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_0071:  stloc.3 
+	IL_0072:  ldloc.2 
+	IL_0073:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	IL_0078:  ldloc.3 
+	IL_0079:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_007e:  stloc.s 4
+	IL_0080:  ldloc.0 
+	IL_0081:  ldloc.s 4
+	IL_0083:  ldloc.2 
+	IL_0084:  callvirt instance class [mscorlib]System.IO.FileSystemInfo class NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceInfo()
+	IL_0089:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileDateInfo::'.ctor'(class [mscorlib]System.IO.FileSystemInfo)
+	IL_008e:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_0093:  nop 
+	IL_0094:  br IL_0129
+
+	IL_0099:  nop 
+	IL_009a:  newobj instance void class NAnt.Core.DirectoryScanner::'.ctor'()
+	IL_009f:  stloc.s 5
+	IL_00a1:  ldloc.s 5
+	IL_00a3:  ldloc.2 
+	IL_00a4:  callvirt instance class [mscorlib]System.IO.FileSystemInfo class NAnt.Core.Tasks.CopyTask/FileOperation::get_SourceInfo()
+	IL_00a9:  isinst [mscorlib]System.IO.DirectoryInfo
+	IL_00ae:  callvirt instance void class NAnt.Core.DirectoryScanner::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_00b3:  ldloc.s 5
+	IL_00b5:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_Includes()
+	IL_00ba:  ldstr "**/*"
+	IL_00bf:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_00c4:  pop 
+	IL_00c5:  ldloc.s 5
+	IL_00c7:  callvirt instance void class NAnt.Core.DirectoryScanner::Scan()
+	IL_00cc:  ldloc.s 5
+	IL_00ce:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_FileNames()
+	IL_00d3:  stloc.s 6
+	IL_00d5:  ldc.i4.0 
+	IL_00d6:  stloc.s 7
+	IL_00d8:  br IL_011a
+
+	IL_00dd:  nop 
+	IL_00de:  ldloc.s 6
+	IL_00e0:  ldloc.s 7
+	IL_00e2:  callvirt instance string class [System]System.Collections.Specialized.StringCollection::get_Item(int32)
+	IL_00e7:  stloc.s 8
+	IL_00e9:  ldloc.s 8
+	IL_00eb:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_00f0:  stloc.3 
+	IL_00f1:  ldloc.2 
+	IL_00f2:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
+	IL_00f7:  ldloc.3 
+	IL_00f8:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_00fd:  stloc.s 4
+	IL_00ff:  ldloc.0 
+	IL_0100:  ldloc.s 4
+	IL_0102:  ldloc.3 
+	IL_0103:  ldloc.3 
+	IL_0104:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.File::GetLastWriteTime(string)
+	IL_0109:  newobj instance void class NAnt.Core.Tasks.CopyTask/FileDateInfo::'.ctor'(string, valuetype [mscorlib]System.DateTime)
+	IL_010e:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_0113:  nop 
+	IL_0114:  ldloc.s 7
+	IL_0116:  ldc.i4.1 
+	IL_0117:  add 
+	IL_0118:  stloc.s 7
+	IL_011a:  ldloc.s 7
+	IL_011c:  ldloc.s 6
+	IL_011e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0123:  blt IL_00dd
+
+	IL_0128:  nop 
+	IL_0129:  nop 
+	IL_012a:  ldloc.1 
+	IL_012b:  ldc.i4.1 
+	IL_012c:  add 
+	IL_012d:  stloc.1 
+	IL_012e:  ldloc.1 
+	IL_012f:  ldarg.0 
+	IL_0130:  call instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.Core.Tasks.CopyTask/FileOperation>::get_Count()
+	IL_0135:  blt IL_0027
+
+	IL_013a:  ldloc.0 
+	IL_013b:  stloc.s 9
+	IL_013d:  br IL_0142
+
+	IL_0142:  ldloc.s 9
+	IL_0144:  ret 
+    } // end of method FileOperationMap::ConvertToHashtable
+
+    // method line 1409
+    .method family virtual hidebysig 
+           instance default string GetKeyForItem (class NAnt.Core.Tasks.CopyTask/FileOperation item)  cil managed 
     {
-        // Method begins at RVA 0x24e4
+        // Method begins at RVA 0x12f0c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Project	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.FunctionSetBase::_project
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance string class NAnt.Core.Tasks.CopyTask/FileOperation::get_Target()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FunctionSetBase::get_Project
+    } // end of method FileOperationMap::GetKeyForItem
 
-    // method line 1605
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Project (class NAnt.Core.Project 'value')  cil managed 
+    // method line 1410
+    .method family virtual hidebysig 
+           instance default void InsertItem (int32 index, class NAnt.Core.Tasks.CopyTask/FileOperation item)  cil managed 
     {
-        // Method begins at RVA 0x24ff
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x12f27
+	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Project NAnt.Core.FunctionSetBase::_project
-	IL_0008:  ret 
-    } // end of method FunctionSetBase::set_Project
+	IL_0001:  ldarg.2 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperationMap::_stringComparer
+	IL_0008:  callvirt instance void class NAnt.Core.Tasks.CopyTask/FileOperation::set_Comparer(class [mscorlib]System.StringComparer)
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.1 
+	IL_000f:  ldarg.2 
+	IL_0010:  call instance void class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::InsertItem(int32, !1)
+	IL_0015:  ret 
+    } // end of method FileOperationMap::InsertItem
 
-	.property instance class NAnt.Core.Project Project ()
-	{
-		.get instance default class NAnt.Core.Project NAnt.Core.FunctionSetBase::get_Project () 
-		.set instance default void NAnt.Core.FunctionSetBase::set_Project (class NAnt.Core.Project 'value') 
-	}
-  } // end of class NAnt.Core.FunctionSetBase
-}
+    // method line 1411
+    .method family virtual hidebysig 
+           instance default void SetItem (int32 index, class NAnt.Core.Tasks.CopyTask/FileOperation item)  cil managed 
+    {
+        // Method begins at RVA 0x12f3e
+	// Code size 22 (0x16)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.2 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class [mscorlib]System.StringComparer NAnt.Core.Tasks.CopyTask/FileOperationMap::_stringComparer
+	IL_0008:  callvirt instance void class NAnt.Core.Tasks.CopyTask/FileOperation::set_Comparer(class [mscorlib]System.StringComparer)
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.1 
+	IL_000f:  ldarg.2 
+	IL_0010:  call instance void class [mscorlib]System.Collections.ObjectModel.KeyedCollection`2<string, class NAnt.Core.Tasks.CopyTask/FileOperation>::SetItem(int32, !1)
+	IL_0015:  ret 
+    } // end of method FileOperationMap::SetItem
 
-.namespace NAnt.Core
-{
-  .class public auto ansi sealed FrameworkTypes
+  } // end of class FileOperationMap
+
+  .class nested family auto ansi sealed OperationType
   	extends [mscorlib]System.Enum
   {
-    .custom instance void class [mscorlib]System.FlagsAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
     .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.FrameworkTypes NotInstalled = int32(0x00000001)
-    .field public static literal  valuetype NAnt.Core.FrameworkTypes Installed = int32(0x00000002)
-    .field public static literal  valuetype NAnt.Core.FrameworkTypes InstallStateMask = int32(0x00000003)
-    .custom instance void class [System]System.ComponentModel.EditorBrowsableAttribute::'.ctor'(valuetype [System]System.ComponentModel.EditorBrowsableState) =  (01 00 02 00 00 00 00 00 ) // ........
-
-    .field public static literal  valuetype NAnt.Core.FrameworkTypes Desktop = int32(0x00000004)
-    .field public static literal  valuetype NAnt.Core.FrameworkTypes Compact = int32(0x00000008)
-    .field public static literal  valuetype NAnt.Core.FrameworkTypes Browser = int32(0x00000010)
-    .field public static literal  valuetype NAnt.Core.FrameworkTypes DeviceMask = int32(0x0000001c)
-    .custom instance void class [System]System.ComponentModel.EditorBrowsableAttribute::'.ctor'(valuetype [System]System.ComponentModel.EditorBrowsableState) =  (01 00 02 00 00 00 00 00 ) // ........
-
-    .field public static literal  valuetype NAnt.Core.FrameworkTypes Mono = int32(0x00000020)
-    .field public static literal  valuetype NAnt.Core.FrameworkTypes MS = int32(0x00000040)
-    .field public static literal  valuetype NAnt.Core.FrameworkTypes VendorMask = int32(0x00000060)
-    .custom instance void class [System]System.ComponentModel.EditorBrowsableAttribute::'.ctor'(valuetype [System]System.ComponentModel.EditorBrowsableState) =  (01 00 02 00 00 00 00 00 ) // ........
+    .field public static literal  valuetype NAnt.Core.Tasks.CopyTask/OperationType FileToFile = int32(0x00000000)
+    .field public static literal  valuetype NAnt.Core.Tasks.CopyTask/OperationType FileToDirectory = int32(0x00000001)
+    .field public static literal  valuetype NAnt.Core.Tasks.CopyTask/OperationType DirectoryToDirectory = int32(0x00000002)
 
-    .field public static literal  valuetype NAnt.Core.FrameworkTypes All = int32(0x00000003)
+  } // end of class OperationType
 
-  } // end of class NAnt.Core.FrameworkTypes
+  } // end of class NAnt.Core.Tasks.CopyTask
 }
 
-.namespace NAnt.Core
+.namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit DataTypeBaseDictionary
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IDictionary, [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable, [mscorlib]System.ICloneable  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+  .class public auto ansi beforefieldinit ExecTask
+  	extends NAnt.Core.Tasks.ExternalProgramBase
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 65 78 65 63 00 00 ) // ...exec..
 
-    .field  private  class [mscorlib]System.Collections.Hashtable _innerHash
+    .field  private  string _program
+    .field  private  string _commandline
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _baseDirectory
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _workingDirectory
+    .field  private  class [mscorlib]System.IO.FileInfo _output
+    .field  private  bool _outputAppend
+    .field  private  class NAnt.Core.Types.EnvironmentSet _environmentSet
+    .field  private  string _resultProperty
+    .field  private  string _processIdProperty
 
-    // method line 1606
+    // method line 1412
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1ce39
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0012:  ret 
-    } // end of method DataTypeBaseDictionary::.ctor
-
-    // method line 1607
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.DataTypeBaseDictionary original)  cil managed 
-    {
-        // Method begins at RVA 0x1ce4d
-	// Code size 25 (0x19)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.Core.DataTypeBaseDictionary::get_InnerHash()
-	IL_000e:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary)
-	IL_0013:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0018:  ret 
-    } // end of method DataTypeBaseDictionary::.ctor
-
-    // method line 1608
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary)  cil managed 
-    {
-        // Method begins at RVA 0x1ce67
-	// Code size 20 (0x14)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary)
-	IL_000e:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::.ctor
-
-    // method line 1609
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (int32 capacity)  cil managed 
-    {
-        // Method begins at RVA 0x1ce7c
-	// Code size 20 (0x14)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(int32)
-	IL_000e:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::.ctor
-
-    // method line 1610
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary, float32 loadFactor)  cil managed 
-    {
-        // Method begins at RVA 0x1ce91
-	// Code size 21 (0x15)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.2 
-	IL_000a:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary, float32)
-	IL_000f:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0014:  ret 
-    } // end of method DataTypeBaseDictionary::.ctor
-
-    // method line 1611
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
-    {
-        // Method begins at RVA 0x1cea7
-	// Code size 21 (0x15)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.2 
-	IL_000a:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
-	IL_000f:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0014:  ret 
-    } // end of method DataTypeBaseDictionary::.ctor
-
-    // method line 1612
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (int32 capacity, int32 loadFactor)  cil managed 
-    {
-        // Method begins at RVA 0x1cebd
-	// Code size 22 (0x16)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.2 
-	IL_000a:  conv.r4 
-	IL_000b:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(int32, float32)
-	IL_0010:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0015:  ret 
-    } // end of method DataTypeBaseDictionary::.ctor
-
-    // method line 1613
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary, class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
-    {
-        // Method begins at RVA 0x1ced4
-	// Code size 22 (0x16)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.2 
-	IL_000a:  ldarg.3 
-	IL_000b:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary, class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
-	IL_0010:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0015:  ret 
-    } // end of method DataTypeBaseDictionary::.ctor
-
-    // method line 1614
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (int32 capacity, class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
-    {
-        // Method begins at RVA 0x1ceeb
-	// Code size 22 (0x16)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.2 
-	IL_000a:  ldarg.3 
-	IL_000b:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(int32, class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
-	IL_0010:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0015:  ret 
-    } // end of method DataTypeBaseDictionary::.ctor
-
-    // method line 1615
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary, float32 loadFactor, class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
-    {
-        // Method begins at RVA 0x1cf02
-	// Code size 24 (0x18)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.2 
-	IL_000a:  ldarg.3 
-	IL_000b:  ldarg.s 4
-	IL_000d:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary, float32, class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
-	IL_0012:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0017:  ret 
-    } // end of method DataTypeBaseDictionary::.ctor
-
-    // method line 1616
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (int32 capacity, float32 loadFactor, class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
-    {
-        // Method begins at RVA 0x1cf1b
-	// Code size 24 (0x18)
+        // Method begins at RVA 0x19b88
+	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.2 
-	IL_000a:  ldarg.3 
-	IL_000b:  ldarg.s 4
-	IL_000d:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(int32, float32, class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
-	IL_0012:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0017:  ret 
-    } // end of method DataTypeBaseDictionary::.ctor
+	IL_0001:  newobj instance void class NAnt.Core.Types.EnvironmentSet::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.Types.EnvironmentSet NAnt.Core.Tasks.ExecTask::_environmentSet
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_0011:  ret 
+    } // end of method ExecTask::.ctor
 
-    // method line 1617
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_InnerHash ()  cil managed 
+    // method line 1413
+    .method public hidebysig specialname 
+           instance default string get_FileName ()  cil managed 
     {
-        // Method begins at RVA 0x1cf34
+        // Method begins at RVA 0x19b9c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
+	IL_0002:  ldfld string NAnt.Core.Tasks.ExecTask::_program
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DataTypeBaseDictionary::get_InnerHash
+    } // end of method ExecTask::get_FileName
 
-    // method line 1618
-    .method assembly hidebysig specialname 
-           instance default void set_InnerHash (class [mscorlib]System.Collections.Hashtable 'value')  cil managed 
+    // method line 1414
+    .method public hidebysig specialname 
+           instance default void set_FileName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1cf4f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x19bb7
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0008:  ret 
-    } // end of method DataTypeBaseDictionary::set_InnerHash
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.ExecTask::_program
+	IL_000d:  ret 
+    } // end of method ExecTask::set_FileName
 
-    // method line 1619
-    .method public hidebysig 
-           instance default class NAnt.Core.DataTypeBaseDictionaryEnumerator GetEnumerator ()  cil managed 
+    // method line 1415
+    .method public hidebysig specialname 
+           instance default string get_CommandLineArguments ()  cil managed 
     {
-        // Method begins at RVA 0x1cf5c
+        // Method begins at RVA 0x19bc8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.DataTypeBaseDictionaryEnumerator	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.DataTypeBaseDictionaryEnumerator::'.ctor'(class NAnt.Core.DataTypeBaseDictionary)
+	IL_0002:  ldfld string NAnt.Core.Tasks.ExecTask::_commandline
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DataTypeBaseDictionary::GetEnumerator
+    } // end of method ExecTask::get_CommandLineArguments
 
-    // method line 1620
-    .method private final virtual hidebysig newslot 
-           instance default class [mscorlib]System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator ()  cil managed 
+    // method line 1416
+    .method public hidebysig specialname 
+           instance default void set_CommandLineArguments (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1cf78
-	.override class [mscorlib]System.Collections.IDictionary::GetEnumerator
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_0)
+        // Method begins at RVA 0x19be3
+	// Code size 14 (0xe)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.DataTypeBaseDictionaryEnumerator::'.ctor'(class NAnt.Core.DataTypeBaseDictionary)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DataTypeBaseDictionary::System.Collections.IDictionary.GetEnumerator
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.ExecTask::_commandline
+	IL_000d:  ret 
+    } // end of method ExecTask::set_CommandLineArguments
 
-    // method line 1621
-    .method private final virtual hidebysig newslot 
-           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
+    // method line 1417
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.EnvironmentSet get_EnvironmentSet ()  cil managed 
     {
-        // Method begins at RVA 0x1cf94
-	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
+        // Method begins at RVA 0x19bf4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.IEnumerator	V_0)
+		class NAnt.Core.Types.EnvironmentSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.DataTypeBaseDictionaryEnumerator class NAnt.Core.DataTypeBaseDictionary::GetEnumerator()
+	IL_0002:  ldfld class NAnt.Core.Types.EnvironmentSet NAnt.Core.Tasks.ExecTask::_environmentSet
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DataTypeBaseDictionary::System.Collections.IEnumerable.GetEnumerator
-
-    // method line 1622
-    .method public hidebysig 
-           instance default void Remove (string key)  cil managed 
-    {
-        // Method begins at RVA 0x1cfaf
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
-	IL_000d:  ret 
-    } // end of method DataTypeBaseDictionary::Remove
-
-    // method line 1623
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IDictionary.Remove (object key)  cil managed 
-    {
-        // Method begins at RVA 0x1cfbe
-	.override class [mscorlib]System.Collections.IDictionary::Remove
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  castclass [mscorlib]System.String
-	IL_0008:  call instance void class NAnt.Core.DataTypeBaseDictionary::Remove(string)
-	IL_000d:  ret 
-    } // end of method DataTypeBaseDictionary::System.Collections.IDictionary.Remove
+    } // end of method ExecTask::get_EnvironmentSet
 
-    // method line 1624
-    .method public hidebysig 
-           instance default bool Contains (string key)  cil managed 
+    // method line 1418
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_WorkingDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x1cfd0
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x19c10
+	// Code size 39 (0x27)
+	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_workingDirectory
+	IL_0007:  brtrue IL_0019
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DataTypeBaseDictionary::Contains
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0025
 
-    // method line 1625
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IDictionary.Contains (object key)  cil managed 
-    {
-        // Method begins at RVA 0x1cff4
-	.override class [mscorlib]System.Collections.IDictionary::Contains
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  castclass [mscorlib]System.String
-	IL_0008:  call instance bool class NAnt.Core.DataTypeBaseDictionary::Contains(string)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_workingDirectory
+	IL_001f:  stloc.0 
+	IL_0020:  br IL_0025
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DataTypeBaseDictionary::System.Collections.IDictionary.Contains
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method ExecTask::get_WorkingDirectory
 
-    // method line 1626
-    .method public final virtual hidebysig newslot 
-           instance default void Clear ()  cil managed 
+    // method line 1419
+    .method public hidebysig specialname 
+           instance default void set_WorkingDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x1d015
-	// Code size 13 (0xd)
+        // Method begins at RVA 0x19c43
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Clear()
-	IL_000c:  ret 
-    } // end of method DataTypeBaseDictionary::Clear
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_workingDirectory
+	IL_0008:  ret 
+    } // end of method ExecTask::set_WorkingDirectory
 
-    // method line 1627
-    .method public hidebysig 
-           instance default void Add (string key, class NAnt.Core.DataTypeBase 'value')  cil managed 
+    // method line 1420
+    .method public hidebysig specialname 
+           instance default string get_ResultProperty ()  cil managed 
     {
-        // Method begins at RVA 0x1d023
+        // Method begins at RVA 0x19c50
 	// Code size 15 (0xf)
-	.maxstack 8
+	.maxstack 1
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_0002:  ldfld string NAnt.Core.Tasks.ExecTask::_resultProperty
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DataTypeBaseDictionary::Add
+    } // end of method ExecTask::get_ResultProperty
 
-    // method line 1628
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IDictionary.Add (object key, object 'value')  cil managed 
+    // method line 1421
+    .method public hidebysig specialname 
+           instance default void set_ResultProperty (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1d033
-	.override class [mscorlib]System.Collections.IDictionary::Add
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x19c6b
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  castclass [mscorlib]System.String
-	IL_0008:  ldarg.2 
-	IL_0009:  castclass NAnt.Core.DataTypeBase
-	IL_000e:  call instance void class NAnt.Core.DataTypeBaseDictionary::Add(string, class NAnt.Core.DataTypeBase)
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::System.Collections.IDictionary.Add
+	IL_0003:  stfld string NAnt.Core.Tasks.ExecTask::_resultProperty
+	IL_0008:  ret 
+    } // end of method ExecTask::set_ResultProperty
 
-    // method line 1629
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsReadOnly ()  cil managed 
+    // method line 1422
+    .method public virtual hidebysig specialname 
+           instance default bool get_UseRuntimeEngine ()  cil managed 
     {
-        // Method begins at RVA 0x1d048
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x19c78
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsReadOnly()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::get_IsReadOnly
-
-    // method line 1630
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.DataTypeBase get_Item (string key)  cil managed 
-    {
-        // Method begins at RVA 0x1d068
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.DataTypeBase	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_000d:  castclass NAnt.Core.DataTypeBase
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0002:  call instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_UseRuntimeEngine()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method DataTypeBaseDictionary::get_Item
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExecTask::get_UseRuntimeEngine
 
-    // method line 1631
-    .method public hidebysig specialname 
-           instance default void set_Item (string key, class NAnt.Core.DataTypeBase 'value')  cil managed 
+    // method line 1423
+    .method public virtual hidebysig specialname 
+           instance default void set_UseRuntimeEngine (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1d08e
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x19c93
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_000e:  ret 
-    } // end of method DataTypeBaseDictionary::set_Item
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::set_UseRuntimeEngine(bool)
+	IL_0008:  ret 
+    } // end of method ExecTask::set_UseRuntimeEngine
 
-    // method line 1632
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionary.get_Item (object key)  cil managed 
+    // method line 1424
+    .method public virtual hidebysig specialname 
+           instance default valuetype NAnt.Core.Types.ManagedExecution get_Managed ()  cil managed 
     {
-        // Method begins at RVA 0x1d0a0
-	.override class [mscorlib]System.Collections.IDictionary::get_Item
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x19ca0
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		object	V_0)
+		valuetype NAnt.Core.Types.ManagedExecution	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  castclass [mscorlib]System.String
-	IL_0008:  call instance class NAnt.Core.DataTypeBase class NAnt.Core.DataTypeBaseDictionary::get_Item(string)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  call instance valuetype NAnt.Core.Types.ManagedExecution class NAnt.Core.Tasks.ExternalProgramBase::get_Managed()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DataTypeBaseDictionary::System.Collections.IDictionary.get_Item
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExecTask::get_Managed
 
-    // method line 1633
-    .method private final virtual hidebysig newslot specialname 
-           instance default void System.Collections.IDictionary.set_Item (object key, object 'value')  cil managed 
+    // method line 1425
+    .method public virtual hidebysig specialname 
+           instance default void set_Managed (valuetype NAnt.Core.Types.ManagedExecution 'value')  cil managed 
     {
-        // Method begins at RVA 0x1d0c1
-	.override class [mscorlib]System.Collections.IDictionary::set_Item
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x19cbb
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  castclass [mscorlib]System.String
-	IL_0008:  ldarg.2 
-	IL_0009:  castclass NAnt.Core.DataTypeBase
-	IL_000e:  call instance void class NAnt.Core.DataTypeBaseDictionary::set_Item(string, class NAnt.Core.DataTypeBase)
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::System.Collections.IDictionary.set_Item
+	IL_0003:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::set_Managed(valuetype NAnt.Core.Types.ManagedExecution)
+	IL_0008:  ret 
+    } // end of method ExecTask::set_Managed
 
-    // method line 1634
-    .method public final virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.Collections.ICollection get_Values ()  cil managed 
+    // method line 1426
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x1d0d8
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x19cc8
+	// Code size 127 (0x7f)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.Collections.ICollection	V_0)
+		string	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Values()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  call instance string class NAnt.Core.Tasks.ExecTask::get_FileName()
+	IL_0007:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_000c:  brfalse IL_001e
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::get_Values
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance string class NAnt.Core.Tasks.ExecTask::get_FileName()
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_007d
 
-    // method line 1635
-    .method public final virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.Collections.ICollection get_Keys ()  cil managed 
+	IL_001e:  ldarg.0 
+	IL_001f:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_baseDirectory
+	IL_0024:  brtrue IL_005b
+
+	IL_0029:  nop 
+	IL_002a:  ldarg.0 
+	IL_002b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0030:  ldarg.0 
+	IL_0031:  call instance string class NAnt.Core.Tasks.ExecTask::get_FileName()
+	IL_0036:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	IL_003b:  stloc.1 
+	IL_003c:  ldloc.1 
+	IL_003d:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0042:  brfalse IL_004f
+
+	IL_0047:  nop 
+	IL_0048:  ldloc.1 
+	IL_0049:  stloc.0 
+	IL_004a:  br IL_007d
+
+	IL_004f:  ldarg.0 
+	IL_0050:  call instance string class NAnt.Core.Tasks.ExecTask::get_FileName()
+	IL_0055:  stloc.0 
+	IL_0056:  br IL_007d
+
+	IL_005b:  nop 
+	IL_005c:  ldarg.0 
+	IL_005d:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
+	IL_0062:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0067:  ldarg.0 
+	IL_0068:  call instance string class NAnt.Core.Tasks.ExecTask::get_FileName()
+	IL_006d:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0072:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
+	IL_0077:  stloc.0 
+	IL_0078:  br IL_007d
+
+	IL_007d:  ldloc.0 
+	IL_007e:  ret 
+    } // end of method ExecTask::get_ProgramFileName
+
+    // method line 1427
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x1d0f8
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x19d54
+	// Code size 80 (0x50)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Exception	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance void class NAnt.Core.Task::Initialize()
+	.try { // 0
+	  IL_0007:  nop 
+	  IL_0008:  ldarg.0 
+	  IL_0009:  call instance string class NAnt.Core.Tasks.ExecTask::get_FileName()
+	  IL_000e:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	  IL_0013:  brfalse IL_001a
+
+	  IL_0018:  nop 
+	  IL_0019:  nop 
+	  IL_001a:  nop 
+	  IL_001b:  leave IL_004f
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0020:  stloc.0 
+	  IL_0021:  nop 
+	  IL_0022:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0027:  ldstr "NA1117"
+	  IL_002c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0031:  ldarg.0 
+	  IL_0032:  call instance string class NAnt.Core.Tasks.ExecTask::get_FileName()
+	  IL_0037:  ldarg.0 
+	  IL_0038:  callvirt instance string class NAnt.Core.Element::get_Name()
+	  IL_003d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0042:  ldarg.0 
+	  IL_0043:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0048:  ldloc.0 
+	  IL_0049:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_004e:  throw 
+	} // end handler 0
+	IL_004f:  ret 
+    } // end of method ExecTask::Initialize
+
+    // method line 1428
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
+    {
+        // Method begins at RVA 0x19dc0
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.ICollection	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld string NAnt.Core.Tasks.ExecTask::_commandline
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::get_Keys
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExecTask::get_ProgramArguments
 
-    // method line 1636
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsFixedSize ()  cil managed 
+    // method line 1429
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x1d118
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x19ddc
+	// Code size 39 (0x27)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsFixedSize()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_baseDirectory
+	IL_0007:  brtrue IL_0019
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::get_IsFixedSize
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0025
 
-    // method line 1637
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.ICollection.CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_baseDirectory
+	IL_001f:  stloc.0 
+	IL_0020:  br IL_0025
+
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method ExecTask::get_BaseDirectory
+
+    // method line 1430
+    .method public virtual hidebysig specialname 
+           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x1d138
-	.override class [mscorlib]System.Collections.ICollection::CopyTo
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x19e0f
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method DataTypeBaseDictionary::System.Collections.ICollection.CopyTo
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::_baseDirectory
+	IL_0008:  ret 
+    } // end of method ExecTask::set_BaseDirectory
 
-    // method line 1638
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsSynchronized ()  cil managed 
+    // method line 1431
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Output ()  cil managed 
     {
-        // Method begins at RVA 0x1d148
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x19e1c
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsSynchronized()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.ExecTask::_output
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::get_IsSynchronized
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExecTask::get_Output
 
-    // method line 1639
-    .method public final virtual hidebysig newslot specialname 
-           instance default int32 get_Count ()  cil managed 
+    // method line 1432
+    .method public virtual hidebysig specialname 
+           instance default void set_Output (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x1d168
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
+        // Method begins at RVA 0x19e37
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::get_Count
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.ExecTask::_output
+	IL_0008:  ret 
+    } // end of method ExecTask::set_Output
 
-    // method line 1640
-    .method public final virtual hidebysig newslot specialname 
-           instance default object get_SyncRoot ()  cil managed 
+    // method line 1433
+    .method public virtual hidebysig specialname 
+           instance default bool get_OutputAppend ()  cil managed 
     {
-        // Method begins at RVA 0x1d188
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x19e44
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_SyncRoot()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld bool NAnt.Core.Tasks.ExecTask::_outputAppend
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionary::get_SyncRoot
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExecTask::get_OutputAppend
 
-    // method line 1641
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.DataTypeBase[] 'array', int32 index)  cil managed 
+    // method line 1434
+    .method public virtual hidebysig specialname 
+           instance default void set_OutputAppend (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1d1a8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x19e5f
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method DataTypeBaseDictionary::CopyTo
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.ExecTask::_outputAppend
+	IL_0008:  ret 
+    } // end of method ExecTask::set_OutputAppend
 
-    // method line 1642
-    .method public hidebysig 
-           instance default class NAnt.Core.DataTypeBaseDictionary Clone ()  cil managed 
+    // method line 1435
+    .method public virtual hidebysig specialname 
+           instance default bool get_Spawn ()  cil managed 
     {
-        // Method begins at RVA 0x1d1b8
-	// Code size 38 (0x26)
-	.maxstack 2
+        // Method begins at RVA 0x19e6c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.DataTypeBaseDictionary	V_0,
-		class NAnt.Core.DataTypeBaseDictionary	V_1)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_000e:  callvirt instance object class [mscorlib]System.Collections.Hashtable::Clone()
-	IL_0013:  castclass [mscorlib]System.Collections.Hashtable
-	IL_0018:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::set_InnerHash(class [mscorlib]System.Collections.Hashtable)
-	IL_001d:  ldloc.0 
-	IL_001e:  stloc.1 
-	IL_001f:  br IL_0024
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_Spawn()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0024:  ldloc.1 
-	IL_0025:  ret 
-    } // end of method DataTypeBaseDictionary::Clone
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExecTask::get_Spawn
 
-    // method line 1643
-    .method private final virtual hidebysig newslot 
-           instance default object System.ICloneable.Clone ()  cil managed 
+    // method line 1436
+    .method public virtual hidebysig specialname 
+           instance default void set_Spawn (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1d1ec
-	.override class [mscorlib]System.ICloneable::Clone
+        // Method begins at RVA 0x19e87
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::set_Spawn(bool)
+	IL_0008:  ret 
+    } // end of method ExecTask::set_Spawn
+
+    // method line 1437
+    .method public hidebysig specialname 
+           instance default string get_ProcessIdProperty ()  cil managed 
+    {
+        // Method begins at RVA 0x19e94
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.DataTypeBaseDictionary::Clone()
+	IL_0002:  ldfld string NAnt.Core.Tasks.ExecTask::_processIdProperty
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DataTypeBaseDictionary::System.ICloneable.Clone
+    } // end of method ExecTask::get_ProcessIdProperty
 
-    // method line 1644
-    .method public hidebysig 
-           instance default bool ContainsKey (string key)  cil managed 
+    // method line 1438
+    .method public hidebysig specialname 
+           instance default void set_ProcessIdProperty (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1d208
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x19eaf
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DataTypeBaseDictionary::ContainsKey
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Tasks.ExecTask::_processIdProperty
+	IL_0008:  ret 
+    } // end of method ExecTask::set_ProcessIdProperty
 
-    // method line 1645
-    .method public hidebysig 
-           instance default bool ContainsValue (class NAnt.Core.DataTypeBase 'value')  cil managed 
+    // method line 1439
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x1d22c
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x19ebc
+	// Code size 117 (0x75)
+	.maxstack 4
 	.locals init (
-		bool	V_0)
+		int32	V_0,
+		int32	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsValue(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance string class NAnt.Core.Tasks.ExecTask::get_ResultProperty()
+	IL_000d:  brfalse IL_0038
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DataTypeBaseDictionary::ContainsValue
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0019:  ldarg.0 
+	IL_001a:  call instance string class NAnt.Core.Tasks.ExecTask::get_ResultProperty()
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance int32 class NAnt.Core.Tasks.ExternalProgramBase::get_ExitCode()
+	IL_0025:  stloc.0 
+	IL_0026:  ldloca.s 0
+	IL_0028:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_002d:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
+	IL_0032:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0037:  nop 
+	IL_0038:  ldarg.0 
+	IL_0039:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_Spawn()
+	IL_003e:  brfalse IL_0074
 
-    // method line 1646
-    .method public static hidebysig 
-           default class NAnt.Core.DataTypeBaseDictionary Synchronized (class NAnt.Core.DataTypeBaseDictionary nonSync)  cil managed 
-    {
-        // Method begins at RVA 0x1d250
-	// Code size 33 (0x21)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.DataTypeBaseDictionary	V_0,
-		class NAnt.Core.DataTypeBaseDictionary	V_1)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.Core.DataTypeBaseDictionary::get_InnerHash()
-	IL_000e:  call class [mscorlib]System.Collections.Hashtable class [mscorlib]System.Collections.Hashtable::Synchronized(class [mscorlib]System.Collections.Hashtable)
-	IL_0013:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::set_InnerHash(class [mscorlib]System.Collections.Hashtable)
-	IL_0018:  ldloc.0 
-	IL_0019:  stloc.1 
-	IL_001a:  br IL_001f
+	IL_0043:  ldarg.0 
+	IL_0044:  call instance string class NAnt.Core.Tasks.ExecTask::get_ProcessIdProperty()
+	IL_0049:  brfalse IL_0074
 
-	IL_001f:  ldloc.1 
-	IL_0020:  ret 
-    } // end of method DataTypeBaseDictionary::Synchronized
+	IL_004e:  nop 
+	IL_004f:  ldarg.0 
+	IL_0050:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_0055:  ldarg.0 
+	IL_0056:  call instance string class NAnt.Core.Tasks.ExecTask::get_ProcessIdProperty()
+	IL_005b:  ldarg.0 
+	IL_005c:  call instance int32 class NAnt.Core.Tasks.ExternalProgramBase::get_ProcessId()
+	IL_0061:  stloc.1 
+	IL_0062:  ldloca.s 1
+	IL_0064:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0069:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
+	IL_006e:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0073:  nop 
+	IL_0074:  ret 
+    } // end of method ExecTask::ExecuteTask
 
-    // method line 1647
-    .method public virtual hidebysig newslot 
-           instance default void Inherit (class NAnt.Core.DataTypeBaseDictionary source)  cil managed 
+    // method line 1440
+    .method family virtual hidebysig 
+           instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
     {
-        // Method begins at RVA 0x1d280
-	// Code size 84 (0x54)
-	.maxstack 4
+        // Method begins at RVA 0x19f40
+	// Code size 371 (0x173)
+	.maxstack 3
 	.locals init (
-		string	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2)
+		class NAnt.Core.Types.Option	V_0,
+		class NAnt.Core.Types.OptionEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2,
+		class NAnt.Core.Types.EnvironmentVariable	V_3,
+		class NAnt.Core.Types.EnvironmentVariableEnumerator	V_4,
+		class [mscorlib]System.IDisposable	V_5)
 	IL_0000:  nop 
-	IL_0001:  nop 
+	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance class [mscorlib]System.Collections.ICollection class NAnt.Core.DataTypeBaseDictionary::get_Keys()
-	IL_0008:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_000d:  stloc.1 
+	IL_0003:  call instance void class NAnt.Core.Tasks.ExternalProgramBase::PrepareProcess(class [System]System.Diagnostics.Process)
+	IL_0008:  ldarg.1 
+	IL_0009:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.ExecTask::get_WorkingDirectory()
+	IL_0014:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0019:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
+	IL_001e:  nop 
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance class NAnt.Core.Types.EnvironmentSet class NAnt.Core.Tasks.ExecTask::get_EnvironmentSet()
+	IL_0025:  callvirt instance class NAnt.Core.Types.OptionCollection class NAnt.Core.Types.EnvironmentSet::get_Options()
+	IL_002a:  callvirt instance class NAnt.Core.Types.OptionEnumerator class NAnt.Core.Types.OptionCollection::GetEnumerator()
+	IL_002f:  stloc.1 
 	.try { // 0
-	  IL_000e:  br IL_002f
+	  IL_0030:  br IL_00a1
 
-	  IL_0013:  ldloc.1 
-	  IL_0014:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0019:  castclass [mscorlib]System.String
-	  IL_001e:  stloc.0 
-	  IL_001f:  nop 
-	  IL_0020:  ldarg.0 
-	  IL_0021:  ldloc.0 
-	  IL_0022:  ldarg.1 
-	  IL_0023:  ldloc.0 
-	  IL_0024:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.DataTypeBaseDictionary::get_Item(string)
-	  IL_0029:  call instance void class NAnt.Core.DataTypeBaseDictionary::Add(string, class NAnt.Core.DataTypeBase)
-	  IL_002e:  nop 
-	  IL_002f:  ldloc.1 
-	  IL_0030:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0035:  brtrue IL_0013
+	  IL_0035:  ldloc.1 
+	  IL_0036:  callvirt instance class NAnt.Core.Types.Option class NAnt.Core.Types.OptionEnumerator::get_Current()
+	  IL_003b:  stloc.0 
+	  IL_003c:  nop 
+	  IL_003d:  ldloc.0 
+	  IL_003e:  callvirt instance bool class NAnt.Core.Types.Option::get_IfDefined()
+	  IL_0043:  brfalse IL_00a0
 
-	  IL_003a:  leave IL_0053
+	  IL_0048:  ldloc.0 
+	  IL_0049:  callvirt instance bool class NAnt.Core.Types.Option::get_UnlessDefined()
+	  IL_004e:  brtrue IL_00a0
+
+	  IL_0053:  nop 
+	  IL_0054:  ldloc.0 
+	  IL_0055:  callvirt instance string class NAnt.Core.Types.Option::get_Value()
+	  IL_005a:  brtrue IL_0081
+
+	  IL_005f:  nop 
+	  IL_0060:  ldarg.1 
+	  IL_0061:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	  IL_0066:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
+	  IL_006b:  ldloc.0 
+	  IL_006c:  callvirt instance string class NAnt.Core.Types.Option::get_OptionName()
+	  IL_0071:  ldstr ""
+	  IL_0076:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::set_Item(string, string)
+	  IL_007b:  nop 
+	  IL_007c:  br IL_009f
+
+	  IL_0081:  nop 
+	  IL_0082:  ldarg.1 
+	  IL_0083:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	  IL_0088:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
+	  IL_008d:  ldloc.0 
+	  IL_008e:  callvirt instance string class NAnt.Core.Types.Option::get_OptionName()
+	  IL_0093:  ldloc.0 
+	  IL_0094:  callvirt instance string class NAnt.Core.Types.Option::get_Value()
+	  IL_0099:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::set_Item(string, string)
+	  IL_009e:  nop 
+	  IL_009f:  nop 
+	  IL_00a0:  nop 
+	  IL_00a1:  ldloc.1 
+	  IL_00a2:  callvirt instance bool class NAnt.Core.Types.OptionEnumerator::MoveNext()
+	  IL_00a7:  brtrue IL_0035
+
+	  IL_00ac:  leave IL_00c5
 
 	} // end .try 0
 	finally  { // 0
-	  IL_003f:  ldloc.1 
-	  IL_0040:  isinst [mscorlib]System.IDisposable
-	  IL_0045:  dup 
-	  IL_0046:  stloc.2 
-	  IL_0047:  brfalse IL_0052
+	  IL_00b1:  ldloc.1 
+	  IL_00b2:  isinst [mscorlib]System.IDisposable
+	  IL_00b7:  dup 
+	  IL_00b8:  stloc.2 
+	  IL_00b9:  brfalse IL_00c4
 
-	  IL_004c:  ldloc.2 
-	  IL_004d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0052:  endfinally 
+	  IL_00be:  ldloc.2 
+	  IL_00bf:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00c4:  endfinally 
 	} // end handler 0
-	IL_0053:  ret 
-    } // end of method DataTypeBaseDictionary::Inherit
+	IL_00c5:  nop 
+	IL_00c6:  ldarg.0 
+	IL_00c7:  call instance class NAnt.Core.Types.EnvironmentSet class NAnt.Core.Tasks.ExecTask::get_EnvironmentSet()
+	IL_00cc:  callvirt instance class NAnt.Core.Types.EnvironmentVariableCollection class NAnt.Core.Types.EnvironmentSet::get_EnvironmentVariables()
+	IL_00d1:  callvirt instance class NAnt.Core.Types.EnvironmentVariableEnumerator class NAnt.Core.Types.EnvironmentVariableCollection::GetEnumerator()
+	IL_00d6:  stloc.s 4
+	.try { // 1
+	  IL_00d8:  br IL_014a
 
-	.property instance object System.Collections.IDictionary.Item (object)
+	  IL_00dd:  ldloc.s 4
+	  IL_00df:  callvirt instance class NAnt.Core.Types.EnvironmentVariable class NAnt.Core.Types.EnvironmentVariableEnumerator::get_Current()
+	  IL_00e4:  stloc.3 
+	  IL_00e5:  nop 
+	  IL_00e6:  ldloc.3 
+	  IL_00e7:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_IfDefined()
+	  IL_00ec:  brfalse IL_0149
+
+	  IL_00f1:  ldloc.3 
+	  IL_00f2:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_UnlessDefined()
+	  IL_00f7:  brtrue IL_0149
+
+	  IL_00fc:  nop 
+	  IL_00fd:  ldloc.3 
+	  IL_00fe:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_Value()
+	  IL_0103:  brtrue IL_012a
+
+	  IL_0108:  nop 
+	  IL_0109:  ldarg.1 
+	  IL_010a:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	  IL_010f:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
+	  IL_0114:  ldloc.3 
+	  IL_0115:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_VariableName()
+	  IL_011a:  ldstr ""
+	  IL_011f:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::set_Item(string, string)
+	  IL_0124:  nop 
+	  IL_0125:  br IL_0148
+
+	  IL_012a:  nop 
+	  IL_012b:  ldarg.1 
+	  IL_012c:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	  IL_0131:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
+	  IL_0136:  ldloc.3 
+	  IL_0137:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_VariableName()
+	  IL_013c:  ldloc.3 
+	  IL_013d:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_Value()
+	  IL_0142:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::set_Item(string, string)
+	  IL_0147:  nop 
+	  IL_0148:  nop 
+	  IL_0149:  nop 
+	  IL_014a:  ldloc.s 4
+	  IL_014c:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariableEnumerator::MoveNext()
+	  IL_0151:  brtrue IL_00dd
+
+	  IL_0156:  leave IL_0172
+
+	} // end .try 1
+	finally  { // 1
+	  IL_015b:  ldloc.s 4
+	  IL_015d:  isinst [mscorlib]System.IDisposable
+	  IL_0162:  dup 
+	  IL_0163:  stloc.s 5
+	  IL_0165:  brfalse IL_0171
+
+	  IL_016a:  ldloc.s 5
+	  IL_016c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0171:  endfinally 
+	} // end handler 1
+	IL_0172:  ret 
+    } // end of method ExecTask::PrepareProcess
+
+	.property instance string FileName ()
 	{
-		.get instance default object NAnt.Core.DataTypeBaseDictionary::System.Collections.IDictionary.get_Item (object key) 
-		.set instance default void NAnt.Core.DataTypeBaseDictionary::System.Collections.IDictionary.set_Item (object key, object 'value') 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 70 72 6F 67 72 61 6D 01 00 54 02 08 52   // ...program..T..R
+		65 71 75 69 72 65 64 01                         ) // equired.
+
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.Core.Tasks.ExecTask::get_FileName () 
+		.set instance default void NAnt.Core.Tasks.ExecTask::set_FileName (string 'value') 
 	}
-	.property instance class [mscorlib]System.Collections.Hashtable InnerHash ()
+	.property instance string CommandLineArguments ()
 	{
-		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::get_InnerHash () 
-		.set instance default void NAnt.Core.DataTypeBaseDictionary::set_InnerHash (class [mscorlib]System.Collections.Hashtable 'value') 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 63 6F 6D 6D 61 6E 64 6C 69 6E 65 00 00 ) // ...commandline..
+
+		.get instance default string NAnt.Core.Tasks.ExecTask::get_CommandLineArguments () 
+		.set instance default void NAnt.Core.Tasks.ExecTask::set_CommandLineArguments (string 'value') 
 	}
-	.property instance bool IsReadOnly ()
+	.property instance class NAnt.Core.Types.EnvironmentSet EnvironmentSet ()
 	{
-		.get instance default bool NAnt.Core.DataTypeBaseDictionary::get_IsReadOnly () 
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0B 65 6E 76 69 72 6F 6E 6D 65 6E 74 00 00 ) // ...environment..
+
+		.get instance default class NAnt.Core.Types.EnvironmentSet NAnt.Core.Tasks.ExecTask::get_EnvironmentSet () 
 	}
-	.property instance class NAnt.Core.DataTypeBase Item (string)
+	.property instance class [mscorlib]System.IO.DirectoryInfo WorkingDirectory ()
 	{
-		.get instance default class NAnt.Core.DataTypeBase NAnt.Core.DataTypeBaseDictionary::get_Item (string key) 
-		.set instance default void NAnt.Core.DataTypeBaseDictionary::set_Item (string key, class NAnt.Core.DataTypeBase 'value') 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 77 6F 72 6B 69 6E 67 64 69 72 00 00 ) // ...workingdir..
+
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::get_WorkingDirectory () 
+		.set instance default void NAnt.Core.Tasks.ExecTask::set_WorkingDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
 	}
-	.property instance class [mscorlib]System.Collections.ICollection Values ()
+	.property instance string ResultProperty ()
 	{
-		.get instance default class [mscorlib]System.Collections.ICollection NAnt.Core.DataTypeBaseDictionary::get_Values () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0E 72 65 73 75 6C 74 70 72 6F 70 65 72 74   // ...resultpropert
+		79 00 00                                        ) // y..
+
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.Core.Tasks.ExecTask::get_ResultProperty () 
+		.set instance default void NAnt.Core.Tasks.ExecTask::set_ResultProperty (string 'value') 
 	}
-	.property instance class [mscorlib]System.Collections.ICollection Keys ()
+	.property instance bool UseRuntimeEngine ()
 	{
-		.get instance default class [mscorlib]System.Collections.ICollection NAnt.Core.DataTypeBaseDictionary::get_Keys () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 10 75 73 65 72 75 6E 74 69 6D 65 65 6E 67   // ...useruntimeeng
+		69 6E 65 00 00                                  ) // ine..
+
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 37 55 73 65 20 74 68 65 20 6D 61 6E 61 67   // ..7Use the manag
+		65 64 20 61 74 74 72 69 62 75 74 65 20 61 6E 64   // ed attribute and
+		20 4D 61 6E 61 67 65 64 20 70 72 6F 70 65 72 74   //  Managed propert
+		79 20 69 6E 73 74 65 61 64 2E 00 00 00          ) // y instead....
+
+		.get instance default bool NAnt.Core.Tasks.ExecTask::get_UseRuntimeEngine () 
+		.set instance default void NAnt.Core.Tasks.ExecTask::set_UseRuntimeEngine (bool 'value') 
 	}
-	.property instance bool IsFixedSize ()
+	.property instance valuetype NAnt.Core.Types.ManagedExecution Managed ()
 	{
-		.get instance default bool NAnt.Core.DataTypeBaseDictionary::get_IsFixedSize () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6D 61 6E 61 67 65 64 00 00 ) // ...managed..
+
+		.get instance default valuetype NAnt.Core.Types.ManagedExecution NAnt.Core.Tasks.ExecTask::get_Managed () 
+		.set instance default void NAnt.Core.Tasks.ExecTask::set_Managed (valuetype NAnt.Core.Types.ManagedExecution 'value') 
 	}
-	.property instance bool IsSynchronized ()
+	.property instance string ProgramFileName ()
 	{
-		.get instance default bool NAnt.Core.DataTypeBaseDictionary::get_IsSynchronized () 
+		.get instance default string NAnt.Core.Tasks.ExecTask::get_ProgramFileName () 
 	}
-	.property instance int32 Count ()
+	.property instance string ProgramArguments ()
 	{
-		.get instance default int32 NAnt.Core.DataTypeBaseDictionary::get_Count () 
+		.get instance default string NAnt.Core.Tasks.ExecTask::get_ProgramArguments () 
 	}
-	.property instance object SyncRoot ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
 	{
-		.get instance default object NAnt.Core.DataTypeBaseDictionary::get_SyncRoot () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 62 61 73 65 64 69 72 00 00 ) // ...basedir..
+
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExecTask::get_BaseDirectory () 
+		.set instance default void NAnt.Core.Tasks.ExecTask::set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
 	}
-  } // end of class NAnt.Core.DataTypeBaseDictionary
+	.property instance class [mscorlib]System.IO.FileInfo Output ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 6F 75 74 70 75 74 00 00 ) // ...output..
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.ExecTask::get_Output () 
+		.set instance default void NAnt.Core.Tasks.ExecTask::set_Output (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance bool OutputAppend ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 61 70 70 65 6E 64 00 00 ) // ...append..
+
+		.get instance default bool NAnt.Core.Tasks.ExecTask::get_OutputAppend () 
+		.set instance default void NAnt.Core.Tasks.ExecTask::set_OutputAppend (bool 'value') 
+	}
+	.property instance bool Spawn ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 73 70 61 77 6E 00 00 ) // ...spawn..
+
+		.get instance default bool NAnt.Core.Tasks.ExecTask::get_Spawn () 
+		.set instance default void NAnt.Core.Tasks.ExecTask::set_Spawn (bool 'value') 
+	}
+	.property instance string ProcessIdProperty ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 70 69 64 70 72 6F 70 65 72 74 79 00 00 ) // ...pidproperty..
+
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.Core.Tasks.ExecTask::get_ProcessIdProperty () 
+		.set instance default void NAnt.Core.Tasks.ExecTask::set_ProcessIdProperty (string 'value') 
+	}
+  } // end of class NAnt.Core.Tasks.ExecTask
 }
 
-.namespace NAnt.Core
+.namespace NAnt.Core.Tasks
 {
-  .class public auto ansi beforefieldinit DataTypeBaseDictionaryEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IDictionaryEnumerator, [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IDictionaryEnumerator _innerEnumerator
+  .class public auto ansi beforefieldinit AvailableTask
+  	extends NAnt.Core.Task
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 09 61 76 61 69 6C 61 62 6C 65 00 00 ) // ...available..
 
-    // method line 1648
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.DataTypeBaseDictionary enumerable)  cil managed 
+    .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 16 55 73 65 20 66 75 6E 63 74 69 6F 6E 73   // ...Use functions
+		20 69 6E 73 74 65 61 64 2E 00 00 00             ) //  instead....
+
+    .field  private  valuetype NAnt.Core.Tasks.AvailableTask/ResourceType _resourceType
+    .field  private  string _resource
+    .field  private  string _propertyName
+
+    // method line 1441
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1d2f0
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x1a0dc
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.Core.DataTypeBaseDictionary::get_InnerHash()
-	IL_000e:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_0013:  stfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
-	IL_0018:  ret 
-    } // end of method DataTypeBaseDictionaryEnumerator::.ctor
+	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0006:  ret 
+    } // end of method AvailableTask::.ctor
 
-    // method line 1649
+    // method line 1442
     .method public hidebysig specialname 
-           instance default string get_Key ()  cil managed 
-    {
-        // Method begins at RVA 0x1d30c
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key()
-	IL_000c:  castclass [mscorlib]System.String
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method DataTypeBaseDictionaryEnumerator::get_Key
-
-    // method line 1650
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionaryEnumerator.get_Key ()  cil managed 
+           instance default string get_Resource ()  cil managed 
     {
-        // Method begins at RVA 0x1d334
-	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key
+        // Method begins at RVA 0x1a0e4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.Core.DataTypeBaseDictionaryEnumerator::get_Key()
+	IL_0002:  ldfld string NAnt.Core.Tasks.AvailableTask::_resource
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DataTypeBaseDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Key
+    } // end of method AvailableTask::get_Resource
 
-    // method line 1651
+    // method line 1443
     .method public hidebysig specialname 
-           instance default class NAnt.Core.DataTypeBase get_Value ()  cil managed 
+           instance default void set_Resource (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1d350
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.DataTypeBase	V_0)
+        // Method begins at RVA 0x1a0ff
+	// Code size 14 (0xe)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value()
-	IL_000c:  castclass NAnt.Core.DataTypeBase
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method DataTypeBaseDictionaryEnumerator::get_Value
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.AvailableTask::_resource
+	IL_000d:  ret 
+    } // end of method AvailableTask::set_Resource
 
-    // method line 1652
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionaryEnumerator.get_Value ()  cil managed 
+    // method line 1444
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.Tasks.AvailableTask/ResourceType get_Type ()  cil managed 
     {
-        // Method begins at RVA 0x1d378
-	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value
+        // Method begins at RVA 0x1a110
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		valuetype NAnt.Core.Tasks.AvailableTask/ResourceType	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.DataTypeBase class NAnt.Core.DataTypeBaseDictionaryEnumerator::get_Value()
+	IL_0002:  ldfld valuetype NAnt.Core.Tasks.AvailableTask/ResourceType NAnt.Core.Tasks.AvailableTask::_resourceType
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DataTypeBaseDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value
-
-    // method line 1653
-    .method public final virtual hidebysig newslot specialname 
-           instance default valuetype [mscorlib]System.Collections.DictionaryEntry get_Entry ()  cil managed 
-    {
-        // Method begins at RVA 0x1d394
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance valuetype [mscorlib]System.Collections.DictionaryEntry class [mscorlib]System.Collections.IDictionaryEnumerator::get_Entry()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionaryEnumerator::get_Entry
-
-    // method line 1654
-    .method public final virtual hidebysig newslot 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x1d3b4
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method DataTypeBaseDictionaryEnumerator::Reset
-
-    // method line 1655
-    .method public final virtual hidebysig newslot 
-           instance default bool MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x1d3c4
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionaryEnumerator::MoveNext
-
-    // method line 1656
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x1d3e4
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		object	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseDictionaryEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method AvailableTask::get_Type
 
-    // method line 1657
+    // method line 1445
     .method public hidebysig specialname 
-           instance default class NAnt.Core.DataTypeBase get_Current ()  cil managed 
+           instance default void set_Type (valuetype NAnt.Core.Tasks.AvailableTask/ResourceType 'value')  cil managed 
     {
-        // Method begins at RVA 0x1d404
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.DataTypeBase	V_0)
+        // Method begins at RVA 0x1a12c
+	// Code size 65 (0x41)
+	.maxstack 3
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.DataTypeBase
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method DataTypeBaseDictionaryEnumerator::get_Current
-
-	.property instance object System.Collections.IDictionaryEnumerator.Key ()
-	{
-		.get instance default object NAnt.Core.DataTypeBaseDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Key () 
-	}
-	.property instance object System.Collections.IDictionaryEnumerator.Value ()
-	{
-		.get instance default object NAnt.Core.DataTypeBaseDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value () 
-	}
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.Core.DataTypeBaseDictionaryEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance string Key ()
-	{
-		.get instance default string NAnt.Core.DataTypeBaseDictionaryEnumerator::get_Key () 
-	}
-	.property instance class NAnt.Core.DataTypeBase Value ()
-	{
-		.get instance default class NAnt.Core.DataTypeBase NAnt.Core.DataTypeBaseDictionaryEnumerator::get_Value () 
-	}
-	.property instance valuetype [mscorlib]System.Collections.DictionaryEntry Entry ()
-	{
-		.get instance default valuetype [mscorlib]System.Collections.DictionaryEntry NAnt.Core.DataTypeBaseDictionaryEnumerator::get_Entry () 
-	}
-	.property instance class NAnt.Core.DataTypeBase Current ()
-	{
-		.get instance default class NAnt.Core.DataTypeBase NAnt.Core.DataTypeBaseDictionaryEnumerator::get_Current () 
-	}
-  } // end of class NAnt.Core.DataTypeBaseDictionaryEnumerator
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi beforefieldinit TaskBuilder
-  	extends NAnt.Core.Extensibility.ExtensionBuilder
-  {
-    .field  private initonly  string _className
-    .field  private  string _taskName
-
-    // method line 1658
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly', string className)  cil managed 
-    {
-        // Method begins at RVA 0x1d429
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call class NAnt.Core.Extensibility.ExtensionAssembly class NAnt.Core.Extensibility.ExtensionAssembly::Create(class [mscorlib]System.Reflection.Assembly)
-	IL_0007:  ldarg.2 
-	IL_0008:  call instance void class NAnt.Core.TaskBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, string)
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method TaskBuilder::.ctor
+	IL_0001:  ldtoken NAnt.Core.Tasks.AvailableTask/ResourceType
+	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000b:  ldarg.1 
+	IL_000c:  box NAnt.Core.Tasks.AvailableTask/ResourceType
+	IL_0011:  call bool class [mscorlib]System.Enum::IsDefined(class [mscorlib]System.Type, object)
+	IL_0016:  brtrue IL_0037
 
-    // method line 1659
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, string className)  cil managed 
-    {
-        // Method begins at RVA 0x1d439
-	// Code size 16 (0x10)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class NAnt.Core.Extensibility.ExtensionBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly)
-	IL_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.2 
-	IL_000a:  stfld string NAnt.Core.TaskBuilder::_className
-	IL_000f:  ret 
-    } // end of method TaskBuilder::.ctor
+	IL_001b:  nop 
+	IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0021:  ldstr "An invalid type {0} was specified."
+	IL_0026:  ldarg.1 
+	IL_0027:  box NAnt.Core.Tasks.AvailableTask/ResourceType
+	IL_002c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0031:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0036:  throw 
+	IL_0037:  nop 
+	IL_0038:  ldarg.0 
+	IL_0039:  ldarg.1 
+	IL_003a:  stfld valuetype NAnt.Core.Tasks.AvailableTask/ResourceType NAnt.Core.Tasks.AvailableTask::_resourceType
+	IL_003f:  nop 
+	IL_0040:  ret 
+    } // end of method AvailableTask::set_Type
 
-    // method line 1660
+    // method line 1446
     .method public hidebysig specialname 
-           instance default string get_ClassName ()  cil managed 
+           instance default string get_PropertyName ()  cil managed 
     {
-        // Method begins at RVA 0x1d44c
+        // Method begins at RVA 0x1a17c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.TaskBuilder::_className
+	IL_0002:  ldfld string NAnt.Core.Tasks.AvailableTask::_propertyName
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TaskBuilder::get_ClassName
+    } // end of method AvailableTask::get_PropertyName
 
-    // method line 1661
+    // method line 1447
     .method public hidebysig specialname 
-           instance default string get_TaskName ()  cil managed 
-    {
-        // Method begins at RVA 0x1d468
-	// Code size 78 (0x4e)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Attributes.TaskNameAttribute	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.TaskBuilder::_taskName
-	IL_0007:  brtrue IL_0040
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance string class NAnt.Core.TaskBuilder::get_ClassName()
-	IL_0019:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string)
-	IL_001e:  ldtoken NAnt.Core.Attributes.TaskNameAttribute
-	IL_0023:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0028:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	IL_002d:  castclass NAnt.Core.Attributes.TaskNameAttribute
-	IL_0032:  stloc.0 
-	IL_0033:  ldarg.0 
-	IL_0034:  ldloc.0 
-	IL_0035:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
-	IL_003a:  stfld string NAnt.Core.TaskBuilder::_taskName
-	IL_003f:  nop 
-	IL_0040:  ldarg.0 
-	IL_0041:  ldfld string NAnt.Core.TaskBuilder::_taskName
-	IL_0046:  stloc.1 
-	IL_0047:  br IL_004c
-
-	IL_004c:  ldloc.1 
-	IL_004d:  ret 
-    } // end of method TaskBuilder::get_TaskName
-
-    // method line 1662
-    .method public hidebysig 
-           instance default class NAnt.Core.Task CreateTask ()  cil managed 
+           instance default void set_PropertyName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1d4c4
-        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
-	// Code size 70 (0x46)
+        // Method begins at RVA 0x1a197
+	// Code size 14 (0xe)
 	.maxstack 8
-	.locals init (
-		class NAnt.Core.Task	V_0,
-		class NAnt.Core.Extensibility.IPluginConsumer	V_1,
-		class NAnt.Core.Task	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance string class NAnt.Core.TaskBuilder::get_ClassName()
-	IL_000d:  ldc.i4.1 
-	IL_000e:  ldc.i4.s 0x14
-	IL_0010:  ldnull 
-	IL_0011:  ldnull 
-	IL_0012:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0017:  ldnull 
-	IL_0018:  callvirt instance object class [mscorlib]System.Reflection.Assembly::CreateInstance(string, bool, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo, object[])
-	IL_001d:  castclass NAnt.Core.Task
-	IL_0022:  stloc.0 
-	IL_0023:  ldloc.0 
-	IL_0024:  isinst NAnt.Core.Extensibility.IPluginConsumer
-	IL_0029:  stloc.1 
-	IL_002a:  ldloc.1 
-	IL_002b:  brfalse IL_003d
-
-	IL_0030:  nop 
-	IL_0031:  call class NAnt.Core.Extensibility.PluginScanner class NAnt.Core.TypeFactory::get_PluginScanner()
-	IL_0036:  ldloc.1 
-	IL_0037:  callvirt instance void class NAnt.Core.Extensibility.PluginScanner::RegisterPlugins(class NAnt.Core.Extensibility.IPluginConsumer)
-	IL_003c:  nop 
-	IL_003d:  ldloc.0 
-	IL_003e:  stloc.2 
-	IL_003f:  br IL_0044
-
-	IL_0044:  ldloc.2 
-	IL_0045:  ret 
-    } // end of method TaskBuilder::CreateTask
-
-	.property instance string ClassName ()
-	{
-		.get instance default string NAnt.Core.TaskBuilder::get_ClassName () 
-	}
-	.property instance string TaskName ()
-	{
-		.get instance default string NAnt.Core.TaskBuilder::get_TaskName () 
-	}
-  } // end of class NAnt.Core.TaskBuilder
-}
-
-.namespace NAnt.Core
-{
-  .class private auto ansi serializable beforefieldinit LocationMap
-  	extends [mscorlib]System.Object
-  {
-    .field  private  class [mscorlib]System.Collections.Hashtable _fileMap
-
-    // method line 1663
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1d516
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0006:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.LocationMap::_fileMap
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void object::'.ctor'()
-	IL_0011:  nop 
-	IL_0012:  ret 
-    } // end of method LocationMap::.ctor
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.AvailableTask::_propertyName
+	IL_000d:  ret 
+    } // end of method AvailableTask::set_PropertyName
 
-    // method line 1664
-    .method public hidebysig 
-           instance default bool FileIsMapped (string fileOrUri)  cil managed 
+    // method line 1448
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x1d52c
-	// Code size 33 (0x21)
-	.maxstack 2
+        // Method begins at RVA 0x1a1a8
+	// Code size 43 (0x2b)
+	.maxstack 4
 	.locals init (
-		class [System]System.Uri	V_0,
-		bool	V_1)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	IL_0007:  stloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.LocationMap::_fileMap
-	IL_000e:  ldloc.0 
-	IL_000f:  callvirt instance string class [System]System.Uri::get_AbsoluteUri()
-	IL_0014:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	IL_0019:  stloc.1 
-	IL_001a:  br IL_001f
-
-	IL_001f:  ldloc.1 
-	IL_0020:  ret 
-    } // end of method LocationMap::FileIsMapped
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance string class NAnt.Core.Tasks.AvailableTask::get_PropertyName()
+	IL_0012:  ldarg.0 
+	IL_0013:  callvirt instance bool class NAnt.Core.Tasks.AvailableTask::Evaluate()
+	IL_0018:  stloc.0 
+	IL_0019:  ldloca.s 0
+	IL_001b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0020:  call instance string bool::ToString(class [mscorlib]System.IFormatProvider)
+	IL_0025:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_002a:  ret 
+    } // end of method AvailableTask::ExecuteTask
 
-    // method line 1665
-    .method public hidebysig 
-           instance default void Add (class [System.Xml]System.Xml.XmlDocument doc)  cil managed 
+    // method line 1449
+    .method family virtual hidebysig newslot 
+           instance default bool Evaluate ()  cil managed 
     {
-        // Method begins at RVA 0x1d55c
-	// Code size 660 (0x294)
-	.maxstack 5
+        // Method begins at RVA 0x1a1e0
+	// Code size 181 (0xb5)
+	.maxstack 7
 	.locals init (
-		class [System]System.Uri	V_0,
-		string	V_1,
-		class [mscorlib]System.Collections.Hashtable	V_2,
-		string	V_3,
-		string	V_4,
-		int32	V_5,
-		class [System.Xml]System.Xml.XmlTextReader	V_6,
-		class [mscorlib]System.Collections.ArrayList	V_7,
-		int32	V_8,
-		string	V_9,
-		string[]	V_10,
-		string	V_11,
-		int32	V_12,
-		int32	V_13,
-		string	V_14)
+		bool	V_0,
+		valuetype NAnt.Core.Tasks.AvailableTask/ResourceType	V_1,
+		bool	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_BaseURI()
-	IL_0007:  call bool string::IsNullOrEmpty(string)
-	IL_000c:  brfalse IL_0017
-
-	IL_0011:  nop 
-	IL_0012:  br IL_0293
-
-	IL_0017:  ldarg.1 
-	IL_0018:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_BaseURI()
-	IL_001d:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	IL_0022:  stloc.0 
-	IL_0023:  ldloc.0 
-	IL_0024:  callvirt instance string class [System]System.Uri::get_AbsoluteUri()
-	IL_0029:  stloc.1 
-	IL_002a:  ldarg.0 
-	IL_002b:  ldloc.1 
-	IL_002c:  call instance bool class NAnt.Core.LocationMap::FileIsMapped(string)
-	IL_0031:  brfalse IL_004d
-
-	IL_0036:  nop 
-	IL_0037:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_003c:  ldstr "XML document '{0}' has already been mapped."
-	IL_0041:  ldloc.1 
-	IL_0042:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0047:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_004c:  throw 
-	IL_004d:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0052:  stloc.2 
-	IL_0053:  ldstr "/"
-	IL_0058:  stloc.3 
-	IL_0059:  ldstr ""
-	IL_005e:  stloc.s 4
-	IL_0060:  ldc.i4.0 
-	IL_0061:  stloc.s 5
-	IL_0063:  ldloc.1 
-	IL_0064:  newobj instance void class [System.Xml]System.Xml.XmlTextReader::'.ctor'(string)
-	IL_0069:  stloc.s 6
-	.try { // 0
-	  IL_006b:  nop 
-	  IL_006c:  ldloc.2 
-	  IL_006d:  ldstr "/"
-	  IL_0072:  ldc.i4.1 
-	  IL_0073:  ldc.i4.1 
-	  IL_0074:  newobj instance void valuetype NAnt.Core.LocationMap/TextPosition::'.ctor'(int32, int32)
-	  IL_0079:  box NAnt.Core.LocationMap/TextPosition
-	  IL_007e:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	  IL_0083:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	  IL_0088:  stloc.s 7
-	  IL_008a:  br IL_026a
-
-	  IL_008f:  nop 
-	  IL_0090:  ldloc.s 6
-	  IL_0092:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
-	  IL_0097:  ldc.i4.s 0x0d
-	  IL_0099:  beq IL_0269
-
-	  IL_009e:  ldloc.s 6
-	  IL_00a0:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
-	  IL_00a5:  ldc.i4.s 0x0f
-	  IL_00a7:  beq IL_0269
-
-	  IL_00ac:  ldloc.s 6
-	  IL_00ae:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
-	  IL_00b3:  ldc.i4.7 
-	  IL_00b4:  beq IL_0269
-
-	  IL_00b9:  ldloc.s 6
-	  IL_00bb:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
-	  IL_00c0:  ldc.i4.s 0x11
-	  IL_00c2:  beq IL_0269
-
-	  IL_00c7:  ldloc.s 6
-	  IL_00c9:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
-	  IL_00ce:  ldc.i4.s 0x0a
-	  IL_00d0:  beq IL_0269
-
-	  IL_00d5:  nop 
-	  IL_00d6:  ldloc.s 6
-	  IL_00d8:  callvirt instance int32 class [System.Xml]System.Xml.XmlReader::get_Depth()
-	  IL_00dd:  stloc.s 8
-	  IL_00df:  ldstr ""
-	  IL_00e4:  stloc.s 9
-	  IL_00e6:  ldloc.s 6
-	  IL_00e8:  callvirt instance int32 class [System.Xml]System.Xml.XmlReader::get_Depth()
-	  IL_00ed:  ldloc.s 5
-	  IL_00ef:  bge IL_0155
-
-	  IL_00f4:  nop 
-	  IL_00f5:  ldloc.3 
-	  IL_00f6:  ldc.i4.s 0x2f
-	  IL_00f8:  ldc.i4.0 
-	  IL_00f9:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	  IL_00fe:  stloc.s 10
-	  IL_0100:  ldstr ""
-	  IL_0105:  stloc.s 11
-	  IL_0107:  ldc.i4.1 
-	  IL_0108:  stloc.s 12
-	  IL_010a:  br IL_012a
-
-	  IL_010f:  nop 
-	  IL_0110:  ldloc.s 11
-	  IL_0112:  ldstr "/"
-	  IL_0117:  ldloc.s 10
-	  IL_0119:  ldloc.s 12
-	  IL_011b:  ldelem.ref 
-	  IL_011c:  call string string::Concat(string, string, string)
-	  IL_0121:  stloc.s 11
-	  IL_0123:  nop 
-	  IL_0124:  ldloc.s 12
-	  IL_0126:  ldc.i4.1 
-	  IL_0127:  add 
-	  IL_0128:  stloc.s 12
-	  IL_012a:  ldloc.s 12
-	  IL_012c:  ldloc.s 8
-	  IL_012e:  ldc.i4.1 
-	  IL_012f:  add 
-	  IL_0130:  blt IL_010f
-
-	  IL_0135:  ldloc.s 11
-	  IL_0137:  stloc.3 
-	  IL_0138:  ldloc.s 7
-	  IL_013a:  ldloc.s 8
-	  IL_013c:  ldc.i4.1 
-	  IL_013d:  add 
-	  IL_013e:  ldloc.s 7
-	  IL_0140:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	  IL_0145:  ldloc.s 8
-	  IL_0147:  ldc.i4.1 
-	  IL_0148:  add 
-	  IL_0149:  sub 
-	  IL_014a:  callvirt instance void class [mscorlib]System.Collections.ArrayList::RemoveRange(int32, int32)
-	  IL_014f:  nop 
-	  IL_0150:  br IL_0168
-
-	  IL_0155:  ldloc.s 6
-	  IL_0157:  callvirt instance int32 class [System.Xml]System.Xml.XmlReader::get_Depth()
-	  IL_015c:  ldloc.s 5
-	  IL_015e:  ble IL_0168
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  call instance valuetype NAnt.Core.Tasks.AvailableTask/ResourceType class NAnt.Core.Tasks.AvailableTask::get_Type()
+	IL_0009:  stloc.1 
+	IL_000a:  ldloc.1 
+	IL_000b:  ldc.i4.1 
+	IL_000c:  sub 
+	IL_000d:  switch (
+	  IL_0027,
+	  IL_0033,
+	  IL_003f,
+	  IL_004b)
+	IL_0022:  br IL_0057
 
-	  IL_0163:  nop 
-	  IL_0164:  ldloc.s 4
-	  IL_0166:  stloc.3 
-	  IL_0167:  nop 
-	  IL_0168:  ldloc.s 7
-	  IL_016a:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	  IL_016f:  stloc.s 13
-	  IL_0171:  br IL_018c
+	IL_0027:  ldarg.0 
+	IL_0028:  call instance bool class NAnt.Core.Tasks.AvailableTask::CheckFile()
+	IL_002d:  stloc.0 
+	IL_002e:  br IL_0077
 
-	  IL_0176:  nop 
-	  IL_0177:  ldloc.s 7
-	  IL_0179:  ldc.i4.0 
-	  IL_017a:  box [mscorlib]System.Int32
-	  IL_017f:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0184:  pop 
-	  IL_0185:  nop 
-	  IL_0186:  ldloc.s 13
-	  IL_0188:  ldc.i4.1 
-	  IL_0189:  add 
-	  IL_018a:  stloc.s 13
-	  IL_018c:  ldloc.s 13
-	  IL_018e:  ldloc.s 8
-	  IL_0190:  ldc.i4.1 
-	  IL_0191:  add 
-	  IL_0192:  blt IL_0176
+	IL_0033:  ldarg.0 
+	IL_0034:  call instance bool class NAnt.Core.Tasks.AvailableTask::CheckDirectory()
+	IL_0039:  stloc.0 
+	IL_003a:  br IL_0077
 
-	  IL_0197:  ldloc.s 7
-	  IL_0199:  ldloc.s 8
-	  IL_019b:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	  IL_01a0:  unbox.any [mscorlib]System.Int32
-	  IL_01a5:  brtrue IL_01c0
+	IL_003f:  ldarg.0 
+	IL_0040:  call instance bool class NAnt.Core.Tasks.AvailableTask::CheckFramework()
+	IL_0045:  stloc.0 
+	IL_0046:  br IL_0077
 
-	  IL_01aa:  nop 
-	  IL_01ab:  ldloc.s 7
-	  IL_01ad:  ldloc.s 8
-	  IL_01af:  ldc.i4.1 
-	  IL_01b0:  box [mscorlib]System.Int32
-	  IL_01b5:  callvirt instance void class [mscorlib]System.Collections.ArrayList::set_Item(int32, object)
-	  IL_01ba:  nop 
-	  IL_01bb:  br IL_01e0
+	IL_004b:  ldarg.0 
+	IL_004c:  call instance bool class NAnt.Core.Tasks.AvailableTask::CheckFrameworkSDK()
+	IL_0051:  stloc.0 
+	IL_0052:  br IL_0077
 
-	  IL_01c0:  nop 
-	  IL_01c1:  ldloc.s 7
-	  IL_01c3:  ldloc.s 8
-	  IL_01c5:  ldloc.s 7
-	  IL_01c7:  ldloc.s 8
-	  IL_01c9:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	  IL_01ce:  unbox.any [mscorlib]System.Int32
-	  IL_01d3:  ldc.i4.1 
-	  IL_01d4:  add 
-	  IL_01d5:  box [mscorlib]System.Int32
-	  IL_01da:  callvirt instance void class [mscorlib]System.Collections.ArrayList::set_Item(int32, object)
-	  IL_01df:  nop 
-	  IL_01e0:  ldloc.3 
-	  IL_01e1:  ldstr "/"
-	  IL_01e6:  callvirt instance bool string::EndsWith(string)
-	  IL_01eb:  brfalse IL_01fa
+	IL_0057:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_005c:  ldstr "No resource check is implemented for {0}"
+	IL_0061:  ldarg.0 
+	IL_0062:  call instance valuetype NAnt.Core.Tasks.AvailableTask/ResourceType class NAnt.Core.Tasks.AvailableTask::get_Type()
+	IL_0067:  box NAnt.Core.Tasks.AvailableTask/ResourceType
+	IL_006c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0071:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_0076:  throw 
+	IL_0077:  ldloc.0 
+	IL_0078:  brtrue IL_00ac
 
-	  IL_01f0:  nop 
-	  IL_01f1:  ldloc.3 
-	  IL_01f2:  stloc.s 9
-	  IL_01f4:  nop 
-	  IL_01f5:  br IL_0209
+	IL_007d:  nop 
+	IL_007e:  ldarg.0 
+	IL_007f:  ldc.i4 2000
+	IL_0084:  ldstr "Unable to find {0} {1}."
+	IL_0089:  ldc.i4.2 
+	IL_008a:  newarr [mscorlib]System.Object
+	IL_008f:  dup 
+	IL_0090:  ldc.i4.0 
+	IL_0091:  ldarg.0 
+	IL_0092:  call instance valuetype NAnt.Core.Tasks.AvailableTask/ResourceType class NAnt.Core.Tasks.AvailableTask::get_Type()
+	IL_0097:  box NAnt.Core.Tasks.AvailableTask/ResourceType
+	IL_009c:  stelem.ref 
+	IL_009d:  dup 
+	IL_009e:  ldc.i4.1 
+	IL_009f:  ldarg.0 
+	IL_00a0:  call instance string class NAnt.Core.Tasks.AvailableTask::get_Resource()
+	IL_00a5:  stelem.ref 
+	IL_00a6:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_00ab:  nop 
+	IL_00ac:  ldloc.0 
+	IL_00ad:  stloc.2 
+	IL_00ae:  br IL_00b3
 
-	  IL_01fa:  nop 
-	  IL_01fb:  ldloc.3 
-	  IL_01fc:  ldstr "/"
-	  IL_0201:  call string string::Concat(string, string)
-	  IL_0206:  stloc.s 9
-	  IL_0208:  nop 
-	  IL_0209:  ldloc.s 9
-	  IL_020b:  stloc.s 14
-	  IL_020d:  ldc.i4.4 
-	  IL_020e:  newarr [mscorlib]System.Object
-	  IL_0213:  dup 
-	  IL_0214:  ldc.i4.0 
-	  IL_0215:  ldloc.s 14
-	  IL_0217:  stelem.ref 
-	  IL_0218:  dup 
-	  IL_0219:  ldc.i4.1 
-	  IL_021a:  ldstr "child::node()["
-	  IL_021f:  stelem.ref 
-	  IL_0220:  dup 
-	  IL_0221:  ldc.i4.2 
-	  IL_0222:  ldloc.s 7
-	  IL_0224:  ldloc.s 8
-	  IL_0226:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	  IL_022b:  stelem.ref 
-	  IL_022c:  dup 
-	  IL_022d:  ldc.i4.3 
-	  IL_022e:  ldstr "]"
-	  IL_0233:  stelem.ref 
-	  IL_0234:  call string string::Concat(object[])
-	  IL_0239:  stloc.s 9
-	  IL_023b:  ldloc.2 
-	  IL_023c:  ldloc.s 9
-	  IL_023e:  ldloc.s 6
-	  IL_0240:  callvirt instance int32 class [System.Xml]System.Xml.XmlTextReader::get_LineNumber()
-	  IL_0245:  ldloc.s 6
-	  IL_0247:  callvirt instance int32 class [System.Xml]System.Xml.XmlTextReader::get_LinePosition()
-	  IL_024c:  newobj instance void valuetype NAnt.Core.LocationMap/TextPosition::'.ctor'(int32, int32)
-	  IL_0251:  box NAnt.Core.LocationMap/TextPosition
-	  IL_0256:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	  IL_025b:  ldloc.s 9
-	  IL_025d:  stloc.s 4
-	  IL_025f:  ldloc.s 6
-	  IL_0261:  callvirt instance int32 class [System.Xml]System.Xml.XmlReader::get_Depth()
-	  IL_0266:  stloc.s 5
-	  IL_0268:  nop 
-	  IL_0269:  nop 
-	  IL_026a:  ldloc.s 6
-	  IL_026c:  callvirt instance bool class [System.Xml]System.Xml.XmlReader::Read()
-	  IL_0271:  brtrue IL_008f
+	IL_00b3:  ldloc.2 
+	IL_00b4:  ret 
+    } // end of method AvailableTask::Evaluate
 
-	  IL_0276:  nop 
-	  IL_0277:  leave IL_0286
+    // method line 1450
+    .method private hidebysig 
+           instance default bool CheckFile ()  cil managed 
+    {
+        // Method begins at RVA 0x1a2a4
+	// Code size 80 (0x50)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0,
+		bool	V_1,
+		class [mscorlib]System.ArgumentException	V_2)
+	IL_0000:  nop 
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.0 
+	  IL_0003:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_0008:  ldarg.0 
+	  IL_0009:  call instance string class NAnt.Core.Tasks.AvailableTask::get_Resource()
+	  IL_000e:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	  IL_0013:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_0018:  stloc.0 
+	  IL_0019:  ldloc.0 
+	  IL_001a:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_001f:  stloc.1 
+	  IL_0020:  leave IL_004e
 
 	} // end .try 0
-	finally  { // 0
-	  IL_027c:  nop 
-	  IL_027d:  ldloc.s 6
-	  IL_027f:  callvirt instance void class [System.Xml]System.Xml.XmlReader::Close()
-	  IL_0284:  nop 
-	  IL_0285:  endfinally 
+	catch class [mscorlib]System.ArgumentException { // 0
+	  IL_0025:  stloc.2 
+	  IL_0026:  nop 
+	  IL_0027:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_002c:  ldstr "NA1104"
+	  IL_0031:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0036:  ldarg.0 
+	  IL_0037:  call instance string class NAnt.Core.Tasks.AvailableTask::get_Resource()
+	  IL_003c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0041:  ldarg.0 
+	  IL_0042:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0047:  ldloc.2 
+	  IL_0048:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_004d:  throw 
 	} // end handler 0
-	IL_0286:  ldarg.0 
-	IL_0287:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.LocationMap::_fileMap
-	IL_028c:  ldloc.1 
-	IL_028d:  ldloc.2 
-	IL_028e:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_0293:  ret 
-    } // end of method LocationMap::Add
+	IL_004e:  ldloc.1 
+	IL_004f:  ret 
+    } // end of method AvailableTask::CheckFile
 
-    // method line 1666
-    .method public hidebysig 
-           instance default class NAnt.Core.Location GetLocation (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    // method line 1451
+    .method private hidebysig 
+           instance default bool CheckDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x1d818
-	// Code size 170 (0xaa)
+        // Method begins at RVA 0x1a310
+	// Code size 80 (0x50)
 	.maxstack 3
 	.locals init (
-		class NAnt.Core.Location	V_0,
-		class [System]System.Uri	V_1,
-		string	V_2,
-		class [mscorlib]System.Collections.Hashtable	V_3,
-		string	V_4,
-		valuetype NAnt.Core.LocationMap/TextPosition	V_5,
-		class NAnt.Core.Location	V_6)
+		class [mscorlib]System.IO.DirectoryInfo	V_0,
+		bool	V_1,
+		class [mscorlib]System.ArgumentException	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_BaseURI()
-	IL_0007:  call bool string::IsNullOrEmpty(string)
-	IL_000c:  brfalse IL_001c
-
-	IL_0011:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_0016:  stloc.0 
-	IL_0017:  br IL_00a8
-
-	IL_001c:  ldarg.1 
-	IL_001d:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_BaseURI()
-	IL_0022:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	IL_0027:  stloc.1 
-	IL_0028:  ldloc.1 
-	IL_0029:  callvirt instance string class [System]System.Uri::get_AbsoluteUri()
-	IL_002e:  stloc.2 
-	IL_002f:  ldarg.0 
-	IL_0030:  ldloc.2 
-	IL_0031:  call instance bool class NAnt.Core.LocationMap::FileIsMapped(string)
-	IL_0036:  brtrue IL_0047
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.0 
+	  IL_0003:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_0008:  ldarg.0 
+	  IL_0009:  call instance string class NAnt.Core.Tasks.AvailableTask::get_Resource()
+	  IL_000e:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	  IL_0013:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	  IL_0018:  stloc.0 
+	  IL_0019:  ldloc.0 
+	  IL_001a:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_001f:  stloc.1 
+	  IL_0020:  leave IL_004e
 
-	IL_003b:  nop 
-	IL_003c:  ldstr "Xml node has not been mapped."
-	IL_0041:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0046:  throw 
-	IL_0047:  ldarg.0 
-	IL_0048:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.LocationMap::_fileMap
-	IL_004d:  ldloc.2 
-	IL_004e:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0053:  castclass [mscorlib]System.Collections.Hashtable
-	IL_0058:  stloc.3 
-	IL_0059:  ldarg.0 
-	IL_005a:  ldarg.1 
-	IL_005b:  call instance string class NAnt.Core.LocationMap::GetXPathFromNode(class [System.Xml]System.Xml.XmlNode)
-	IL_0060:  stloc.s 4
-	IL_0062:  ldloc.3 
-	IL_0063:  ldloc.s 4
-	IL_0065:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	IL_006a:  brtrue IL_007b
+	} // end .try 0
+	catch class [mscorlib]System.ArgumentException { // 0
+	  IL_0025:  stloc.2 
+	  IL_0026:  nop 
+	  IL_0027:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_002c:  ldstr "NA1103"
+	  IL_0031:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0036:  ldarg.0 
+	  IL_0037:  call instance string class NAnt.Core.Tasks.AvailableTask::get_Resource()
+	  IL_003c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0041:  ldarg.0 
+	  IL_0042:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0047:  ldloc.2 
+	  IL_0048:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_004d:  throw 
+	} // end handler 0
+	IL_004e:  ldloc.1 
+	IL_004f:  ret 
+    } // end of method AvailableTask::CheckDirectory
 
-	IL_006f:  nop 
-	IL_0070:  ldstr "Xml node has not been mapped."
-	IL_0075:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_007a:  throw 
-	IL_007b:  ldloc.3 
-	IL_007c:  ldloc.s 4
-	IL_007e:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0083:  unbox.any NAnt.Core.LocationMap/TextPosition
-	IL_0088:  stloc.s 5
-	IL_008a:  ldloc.2 
-	IL_008b:  ldloca.s 5
-	IL_008d:  ldfld int32 NAnt.Core.LocationMap/TextPosition::Line
-	IL_0092:  ldloca.s 5
-	IL_0094:  ldfld int32 NAnt.Core.LocationMap/TextPosition::Column
-	IL_0099:  newobj instance void class NAnt.Core.Location::'.ctor'(string, int32, int32)
-	IL_009e:  stloc.s 6
-	IL_00a0:  ldloc.s 6
-	IL_00a2:  stloc.0 
-	IL_00a3:  br IL_00a8
+    // method line 1452
+    .method private hidebysig 
+           instance default bool CheckFramework ()  cil managed 
+    {
+        // Method begins at RVA 0x1a37c
+	// Code size 31 (0x1f)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance string class NAnt.Core.Tasks.AvailableTask::get_Resource()
+	IL_0012:  callvirt instance bool class NAnt.Core.FrameworkInfoDictionary::Contains(string)
+	IL_0017:  stloc.0 
+	IL_0018:  br IL_001d
 
-	IL_00a8:  ldloc.0 
-	IL_00a9:  ret 
-    } // end of method LocationMap::GetLocation
+	IL_001d:  ldloc.0 
+	IL_001e:  ret 
+    } // end of method AvailableTask::CheckFramework
 
-    // method line 1667
+    // method line 1453
     .method private hidebysig 
-           instance default string GetXPathFromNode (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+           instance default bool CheckFrameworkSDK ()  cil managed 
     {
-        // Method begins at RVA 0x1d8d0
-	// Code size 246 (0xf6)
-	.maxstack 3
+        // Method begins at RVA 0x1a3a8
+	// Code size 59 (0x3b)
+	.maxstack 2
 	.locals init (
-		class [System.Xml]System.Xml.XPath.XPathNavigator	V_0,
-		string	V_1,
-		int32	V_2,
-		class [System.Xml]System.Xml.XPath.XPathNavigator	V_3,
-		int32	V_4,
-		string	V_5,
-		valuetype [System.Xml]System.Xml.XPath.XPathNodeType	V_6,
-		string	V_7)
+		class NAnt.Core.FrameworkInfo	V_0,
+		bool	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XmlNode::CreateNavigator()
-	IL_0007:  stloc.0 
-	IL_0008:  ldstr ""
-	IL_000d:  stloc.1 
-	IL_000e:  ldc.i4.0 
-	IL_000f:  stloc.2 
-	IL_0010:  br IL_00b6
-
-	IL_0015:  nop 
-	IL_0016:  ldloc.0 
-	IL_0017:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XPath.XPathNavigator::Clone()
-	IL_001c:  stloc.3 
-	IL_001d:  ldloc.3 
-	IL_001e:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNavigator::MoveToParent()
-	IL_0023:  pop 
-	IL_0024:  ldc.i4.0 
-	IL_0025:  stloc.s 4
-	IL_0027:  ldloc.3 
-	IL_0028:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNavigator::MoveToFirstChild()
-	IL_002d:  pop 
-	IL_002e:  ldloc.3 
-	IL_002f:  ldloc.0 
-	IL_0030:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNavigator::IsSamePosition(class [System.Xml]System.Xml.XPath.XPathNavigator)
-	IL_0035:  brfalse IL_003f
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance string class NAnt.Core.Tasks.AvailableTask::get_Resource()
+	IL_0012:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionary::get_Item(string)
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  brfalse IL_0031
 
-	IL_003a:  nop 
-	IL_003b:  ldloc.s 4
-	IL_003d:  stloc.2 
-	IL_003e:  nop 
-	IL_003f:  br IL_005d
+	IL_001e:  nop 
+	IL_001f:  ldloc.0 
+	IL_0020:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
+	IL_0025:  ldnull 
+	IL_0026:  ceq 
+	IL_0028:  ldc.i4.0 
+	IL_0029:  ceq 
+	IL_002b:  stloc.1 
+	IL_002c:  br IL_0039
 
-	IL_0044:  nop 
-	IL_0045:  ldloc.s 4
-	IL_0047:  ldc.i4.1 
-	IL_0048:  add 
-	IL_0049:  stloc.s 4
-	IL_004b:  ldloc.3 
-	IL_004c:  ldloc.0 
-	IL_004d:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNavigator::IsSamePosition(class [System.Xml]System.Xml.XPath.XPathNavigator)
-	IL_0052:  brfalse IL_005c
+	IL_0031:  nop 
+	IL_0032:  ldc.i4.0 
+	IL_0033:  stloc.1 
+	IL_0034:  br IL_0039
 
-	IL_0057:  nop 
-	IL_0058:  ldloc.s 4
-	IL_005a:  stloc.2 
-	IL_005b:  nop 
-	IL_005c:  nop 
-	IL_005d:  ldloc.3 
-	IL_005e:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNavigator::MoveToNext()
-	IL_0063:  brtrue IL_0044
+	IL_0039:  ldloc.1 
+	IL_003a:  ret 
+    } // end of method AvailableTask::CheckFrameworkSDK
 
-	IL_0068:  ldloc.0 
-	IL_0069:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNavigator::MoveToParent()
-	IL_006e:  pop 
-	IL_006f:  ldloc.2 
-	IL_0070:  ldc.i4.1 
-	IL_0071:  add 
-	IL_0072:  stloc.2 
-	IL_0073:  ldstr "child::node()["
-	IL_0078:  ldloca.s 2
-	IL_007a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_007f:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
-	IL_0084:  ldstr "]"
-	IL_0089:  call string string::Concat(string, string, string)
-	IL_008e:  stloc.s 5
-	IL_0090:  ldloc.1 
-	IL_0091:  callvirt instance int32 string::get_Length()
-	IL_0096:  brtrue IL_00a5
+	.property instance string Resource ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 72 65 73 6F 75 72 63 65 01 00 54 02 08   // ...resource..T..
+		52 65 71 75 69 72 65 64 01                      ) // Required.
 
-	IL_009b:  nop 
-	IL_009c:  ldloc.s 5
-	IL_009e:  stloc.1 
-	IL_009f:  nop 
-	IL_00a0:  br IL_00b5
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-	IL_00a5:  nop 
-	IL_00a6:  ldloc.s 5
-	IL_00a8:  ldstr "/"
-	IL_00ad:  ldloc.1 
-	IL_00ae:  call string string::Concat(string, string, string)
-	IL_00b3:  stloc.1 
-	IL_00b4:  nop 
-	IL_00b5:  nop 
-	IL_00b6:  ldloc.0 
-	IL_00b7:  callvirt instance valuetype [System.Xml]System.Xml.XPath.XPathNodeType class [System.Xml]System.Xml.XPath.XPathNavigator::get_NodeType()
-	IL_00bc:  stloc.s 6
-	IL_00be:  ldloca.s 6
-	IL_00c0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00c5:  constrained. [System.Xml]System.Xml.XPath.XPathNodeType
-	IL_00cb:  callvirt instance string class [mscorlib]System.Enum::ToString(class [mscorlib]System.IFormatProvider)
-	IL_00d0:  ldstr "Root"
-	IL_00d5:  call bool string::op_Inequality(string, string)
-	IL_00da:  brtrue IL_0015
+		.get instance default string NAnt.Core.Tasks.AvailableTask::get_Resource () 
+		.set instance default void NAnt.Core.Tasks.AvailableTask::set_Resource (string 'value') 
+	}
+	.property instance valuetype NAnt.Core.Tasks.AvailableTask/ResourceType Type ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 74 79 70 65 01 00 54 02 08 52 65 71 75   // ...type..T..Requ
+		69 72 65 64 01                                  ) // ired.
 
-	IL_00df:  ldstr "/"
-	IL_00e4:  ldloc.1 
-	IL_00e5:  call string string::Concat(string, string)
-	IL_00ea:  stloc.1 
-	IL_00eb:  ldloc.1 
-	IL_00ec:  stloc.s 7
-	IL_00ee:  br IL_00f3
+		.get instance default valuetype NAnt.Core.Tasks.AvailableTask/ResourceType NAnt.Core.Tasks.AvailableTask::get_Type () 
+		.set instance default void NAnt.Core.Tasks.AvailableTask::set_Type (valuetype NAnt.Core.Tasks.AvailableTask/ResourceType 'value') 
+	}
+	.property instance string PropertyName ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
+		52 65 71 75 69 72 65 64 01                      ) // Required.
 
-	IL_00f3:  ldloc.s 7
-	IL_00f5:  ret 
-    } // end of method LocationMap::GetXPathFromNode
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-  .class nested private sequential ansi sealed serializable beforefieldinit TextPosition
-  	extends [mscorlib]System.ValueType
+		.get instance default string NAnt.Core.Tasks.AvailableTask::get_PropertyName () 
+		.set instance default void NAnt.Core.Tasks.AvailableTask::set_PropertyName (string 'value') 
+	}
+  .class nested public auto ansi sealed ResourceType
+  	extends [mscorlib]System.Enum
   {
-    .field  public  int32 Line
-    .field  public  int32 Column
-
-    // method line 1668
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (int32 line, int32 column)  cil managed 
-    {
-        // Method begins at RVA 0x1d9d2
-	// Code size 16 (0x10)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.LocationMap/TextPosition::Line
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.2 
-	IL_000a:  stfld int32 NAnt.Core.LocationMap/TextPosition::Column
-	IL_000f:  ret 
-    } // end of method TextPosition::.ctor
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Core.Tasks.AvailableTask/ResourceType File = int32(0x00000001)
+    .field public static literal  valuetype NAnt.Core.Tasks.AvailableTask/ResourceType Directory = int32(0x00000002)
+    .field public static literal  valuetype NAnt.Core.Tasks.AvailableTask/ResourceType Framework = int32(0x00000003)
+    .field public static literal  valuetype NAnt.Core.Tasks.AvailableTask/ResourceType FrameworkSDK = int32(0x00000004)
 
-  } // end of class TextPosition
+  } // end of class ResourceType
 
-  } // end of class NAnt.Core.LocationMap
+  } // end of class NAnt.Core.Tasks.AvailableTask
 }
 
-.namespace NAnt.Core
+.namespace NAnt.Core.Tasks
 {
-  .class public auto ansi serializable beforefieldinit Project
-  	extends [mscorlib]System.Object
+  .class public auto ansi beforefieldinit NAntTask
+  	extends NAnt.Core.Task
   {
-    .field  private static initonly  class [log4net]log4net.ILog logger
-    .field private static literal  string RootXml = "project"
-    .field private static literal  string ProjectNameAttribute = "name"
-    .field private static literal  string ProjectDefaultAttribte = "default"
-    .field private static literal  string ProjectBaseDirAttribute = "basedir"
-    .field private static literal  string TargetXml = "target"
-    .field private static literal  string WildTarget = "*"
-    .field private static literal  string Visiting = "VISITING"
-    .field private static literal  string Visited = "VISITED"
-    .field assembly static literal  string NAntPlatform = "nant.platform"
-    .field assembly static literal  string NAntPlatformName = "nant.platform.name"
-    .field assembly static literal  string NAntPropertyFileName = "nant.filename"
-    .field assembly static literal  string NAntPropertyVersion = "nant.version"
-    .field assembly static literal  string NAntPropertyLocation = "nant.location"
-    .field assembly static literal  string NAntPropertyProjectName = "nant.project.name"
-    .field assembly static literal  string NAntPropertyProjectBuildFile = "nant.project.buildfile"
-    .field assembly static literal  string NAntPropertyProjectBaseDir = "nant.project.basedir"
-    .field assembly static literal  string NAntPropertyProjectDefault = "nant.project.default"
-    .field assembly static literal  string NAntPropertyOnSuccess = "nant.onsuccess"
-    .field assembly static literal  string NAntPropertyOnFailure = "nant.onfailure"
-    .field  private  class NAnt.Core.BuildEventHandler BuildStarted
-    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-    .custom instance void class [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::'.ctor'(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) =  (01 00 00 00 00 00 00 00 ) // ........
-
-    .field  private  class NAnt.Core.BuildEventHandler BuildFinished
-    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-    .custom instance void class [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::'.ctor'(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) =  (01 00 00 00 00 00 00 00 ) // ........
-
-    .field  private  class NAnt.Core.BuildEventHandler TargetStarted
-    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-    .custom instance void class [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::'.ctor'(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) =  (01 00 00 00 00 00 00 00 ) // ........
-
-    .field  private  class NAnt.Core.BuildEventHandler TargetFinished
-    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-    .custom instance void class [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::'.ctor'(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) =  (01 00 00 00 00 00 00 00 ) // ........
-
-    .field  private  class NAnt.Core.BuildEventHandler TaskStarted
-    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-    .custom instance void class [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::'.ctor'(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) =  (01 00 00 00 00 00 00 00 ) // ........
-
-    .field  private  class NAnt.Core.BuildEventHandler TaskFinished
-    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-    .custom instance void class [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::'.ctor'(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) =  (01 00 00 00 00 00 00 00 ) // ........
-
-    .field  private  class NAnt.Core.BuildEventHandler MessageLogged
-    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-    .custom instance void class [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::'.ctor'(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) =  (01 00 00 00 00 00 00 00 ) // ........
-
-    .field  private  string _baseDirectory
-    .field  private  string _projectName
-    .field  private  string _defaultTargetName
-    .field  private  int32 _indentationSize
-    .field  private  int32 _indentationLevel
-    .field  private  class NAnt.Core.BuildListenerCollection _buildListeners
-    .field  private  class [System]System.Collections.Specialized.StringCollection _buildTargets
-    .field  private  class NAnt.Core.TargetCollection _targets
-    .field  private  class NAnt.Core.LocationMap _locationMap
-    .field  private  class NAnt.Core.PropertyDictionary _properties
-    .field  private  class NAnt.Core.PropertyDictionary _frameworkNeutralProperties
-    .field  private  class NAnt.Core.Target _currentTarget
-    .field  private  class NAnt.Core.FrameworkInfoDictionary _frameworks
-    .field  private  class NAnt.Core.FrameworkInfo _runtimeFramework
-    .field  private  class NAnt.Core.FrameworkInfo _targetFramework
-    .field  private notserialized  class [System.Xml]System.Xml.XmlNode _configurationNode
-    .field  private notserialized  class [System.Xml]System.Xml.XmlDocument _doc
-    .field  private notserialized  class [System.Xml]System.Xml.XmlNamespaceManager _nsMgr
-    .field  private notserialized  class NAnt.Core.DataTypeBaseDictionary _dataTypeReferences
-    .field  private  valuetype NAnt.Core.Level _threshold
-
-    // method line 1669
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlDocument doc, valuetype NAnt.Core.Level threshold, int32 indentLevel)  cil managed 
-    {
-        // Method begins at RVA 0x1d9e4
-	// Code size 148 (0x94)
-	.maxstack 5
-	IL_0000:  ldarg.0 
-	IL_0001:  ldstr ""
-	IL_0006:  stfld string NAnt.Core.Project::_projectName
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.4 
-	IL_000d:  stfld int32 NAnt.Core.Project::_indentationSize
-	IL_0012:  ldarg.0 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  stfld int32 NAnt.Core.Project::_indentationLevel
-	IL_0019:  ldarg.0 
-	IL_001a:  newobj instance void class NAnt.Core.BuildListenerCollection::'.ctor'()
-	IL_001f:  stfld class NAnt.Core.BuildListenerCollection NAnt.Core.Project::_buildListeners
-	IL_0024:  ldarg.0 
-	IL_0025:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_002a:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::_buildTargets
-	IL_002f:  ldarg.0 
-	IL_0030:  newobj instance void class NAnt.Core.TargetCollection::'.ctor'()
-	IL_0035:  stfld class NAnt.Core.TargetCollection NAnt.Core.Project::_targets
-	IL_003a:  ldarg.0 
-	IL_003b:  newobj instance void class NAnt.Core.LocationMap::'.ctor'()
-	IL_0040:  stfld class NAnt.Core.LocationMap NAnt.Core.Project::_locationMap
-	IL_0045:  ldarg.0 
-	IL_0046:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
-	IL_004b:  stfld class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::_frameworks
-	IL_0050:  ldarg.0 
-	IL_0051:  newobj instance void class [System.Xml]System.Xml.NameTable::'.ctor'()
-	IL_0056:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
-	IL_005b:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::_nsMgr
-	IL_0060:  ldarg.0 
-	IL_0061:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
-	IL_0066:  stfld class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::_dataTypeReferences
-	IL_006b:  ldarg.0 
-	IL_006c:  ldc.i4 3000
-	IL_0071:  stfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
-	IL_0076:  ldarg.0 
-	IL_0077:  call instance void object::'.ctor'()
-	IL_007c:  nop 
-	IL_007d:  ldarg.0 
-	IL_007e:  ldarg.0 
-	IL_007f:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Project::GetConfigurationNode()
-	IL_0084:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::_configurationNode
-	IL_0089:  ldarg.0 
-	IL_008a:  ldarg.1 
-	IL_008b:  ldarg.2 
-	IL_008c:  ldarg.3 
-	IL_008d:  ldc.i4.0 
-	IL_008e:  call instance void class NAnt.Core.Project::CtorHelper(class [System.Xml]System.Xml.XmlDocument, valuetype NAnt.Core.Level, int32, valuetype NAnt.Core.Optimizations)
-	IL_0093:  ret 
-    } // end of method Project::.ctor
-
-    // method line 1670
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlDocument doc, valuetype NAnt.Core.Level threshold, int32 indentLevel, class [System.Xml]System.Xml.XmlNode configurationNode)  cil managed 
-    {
-        // Method begins at RVA 0x1da84
-	// Code size 144 (0x90)
-	.maxstack 5
-	IL_0000:  ldarg.0 
-	IL_0001:  ldstr ""
-	IL_0006:  stfld string NAnt.Core.Project::_projectName
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.4 
-	IL_000d:  stfld int32 NAnt.Core.Project::_indentationSize
-	IL_0012:  ldarg.0 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  stfld int32 NAnt.Core.Project::_indentationLevel
-	IL_0019:  ldarg.0 
-	IL_001a:  newobj instance void class NAnt.Core.BuildListenerCollection::'.ctor'()
-	IL_001f:  stfld class NAnt.Core.BuildListenerCollection NAnt.Core.Project::_buildListeners
-	IL_0024:  ldarg.0 
-	IL_0025:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_002a:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::_buildTargets
-	IL_002f:  ldarg.0 
-	IL_0030:  newobj instance void class NAnt.Core.TargetCollection::'.ctor'()
-	IL_0035:  stfld class NAnt.Core.TargetCollection NAnt.Core.Project::_targets
-	IL_003a:  ldarg.0 
-	IL_003b:  newobj instance void class NAnt.Core.LocationMap::'.ctor'()
-	IL_0040:  stfld class NAnt.Core.LocationMap NAnt.Core.Project::_locationMap
-	IL_0045:  ldarg.0 
-	IL_0046:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
-	IL_004b:  stfld class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::_frameworks
-	IL_0050:  ldarg.0 
-	IL_0051:  newobj instance void class [System.Xml]System.Xml.NameTable::'.ctor'()
-	IL_0056:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
-	IL_005b:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::_nsMgr
-	IL_0060:  ldarg.0 
-	IL_0061:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
-	IL_0066:  stfld class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::_dataTypeReferences
-	IL_006b:  ldarg.0 
-	IL_006c:  ldc.i4 3000
-	IL_0071:  stfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
-	IL_0076:  ldarg.0 
-	IL_0077:  call instance void object::'.ctor'()
-	IL_007c:  nop 
-	IL_007d:  ldarg.0 
-	IL_007e:  ldarg.s 4
-	IL_0080:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::_configurationNode
-	IL_0085:  ldarg.0 
-	IL_0086:  ldarg.1 
-	IL_0087:  ldarg.2 
-	IL_0088:  ldarg.3 
-	IL_0089:  ldc.i4.0 
-	IL_008a:  call instance void class NAnt.Core.Project::CtorHelper(class [System.Xml]System.Xml.XmlDocument, valuetype NAnt.Core.Level, int32, valuetype NAnt.Core.Optimizations)
-	IL_008f:  ret 
-    } // end of method Project::.ctor
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 6E 61 6E 74 00 00 ) // ...nant..
 
-    // method line 1671
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string uriOrFilePath, valuetype NAnt.Core.Level threshold, int32 indentLevel)  cil managed 
-    {
-        // Method begins at RVA 0x1db20
-	// Code size 154 (0x9a)
-	.maxstack 5
-	IL_0000:  ldarg.0 
-	IL_0001:  ldstr ""
-	IL_0006:  stfld string NAnt.Core.Project::_projectName
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.4 
-	IL_000d:  stfld int32 NAnt.Core.Project::_indentationSize
-	IL_0012:  ldarg.0 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  stfld int32 NAnt.Core.Project::_indentationLevel
-	IL_0019:  ldarg.0 
-	IL_001a:  newobj instance void class NAnt.Core.BuildListenerCollection::'.ctor'()
-	IL_001f:  stfld class NAnt.Core.BuildListenerCollection NAnt.Core.Project::_buildListeners
-	IL_0024:  ldarg.0 
-	IL_0025:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_002a:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::_buildTargets
-	IL_002f:  ldarg.0 
-	IL_0030:  newobj instance void class NAnt.Core.TargetCollection::'.ctor'()
-	IL_0035:  stfld class NAnt.Core.TargetCollection NAnt.Core.Project::_targets
-	IL_003a:  ldarg.0 
-	IL_003b:  newobj instance void class NAnt.Core.LocationMap::'.ctor'()
-	IL_0040:  stfld class NAnt.Core.LocationMap NAnt.Core.Project::_locationMap
-	IL_0045:  ldarg.0 
-	IL_0046:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
-	IL_004b:  stfld class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::_frameworks
-	IL_0050:  ldarg.0 
-	IL_0051:  newobj instance void class [System.Xml]System.Xml.NameTable::'.ctor'()
-	IL_0056:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
-	IL_005b:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::_nsMgr
-	IL_0060:  ldarg.0 
-	IL_0061:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
-	IL_0066:  stfld class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::_dataTypeReferences
-	IL_006b:  ldarg.0 
-	IL_006c:  ldc.i4 3000
-	IL_0071:  stfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
-	IL_0076:  ldarg.0 
-	IL_0077:  call instance void object::'.ctor'()
-	IL_007c:  nop 
-	IL_007d:  ldarg.0 
-	IL_007e:  ldarg.0 
-	IL_007f:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Project::GetConfigurationNode()
-	IL_0084:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::_configurationNode
-	IL_0089:  ldarg.0 
-	IL_008a:  ldarg.0 
-	IL_008b:  ldarg.1 
-	IL_008c:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::LoadBuildFile(string)
-	IL_0091:  ldarg.2 
-	IL_0092:  ldarg.3 
-	IL_0093:  ldc.i4.0 
-	IL_0094:  call instance void class NAnt.Core.Project::CtorHelper(class [System.Xml]System.Xml.XmlDocument, valuetype NAnt.Core.Level, int32, valuetype NAnt.Core.Optimizations)
-	IL_0099:  ret 
-    } // end of method Project::.ctor
+    .field  private  class [mscorlib]System.IO.FileInfo _buildFile
+    .field  private  class NAnt.Core.Types.FileSet _buildFiles
+    .field  private  string _target
+    .field  private  bool _inheritAll
+    .field  private  bool _inheritRefs
+    .field  private  class [mscorlib]System.Collections.ArrayList _overrideProperties
 
-    // method line 1672
+    // method line 1454
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string uriOrFilePath, valuetype NAnt.Core.Level threshold, int32 indentLevel, class [System.Xml]System.Xml.XmlNode configurationNode)  cil managed 
-    {
-        // Method begins at RVA 0x1dbc8
-	// Code size 150 (0x96)
-	.maxstack 5
-	IL_0000:  ldarg.0 
-	IL_0001:  ldstr ""
-	IL_0006:  stfld string NAnt.Core.Project::_projectName
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.4 
-	IL_000d:  stfld int32 NAnt.Core.Project::_indentationSize
-	IL_0012:  ldarg.0 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  stfld int32 NAnt.Core.Project::_indentationLevel
-	IL_0019:  ldarg.0 
-	IL_001a:  newobj instance void class NAnt.Core.BuildListenerCollection::'.ctor'()
-	IL_001f:  stfld class NAnt.Core.BuildListenerCollection NAnt.Core.Project::_buildListeners
-	IL_0024:  ldarg.0 
-	IL_0025:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_002a:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::_buildTargets
-	IL_002f:  ldarg.0 
-	IL_0030:  newobj instance void class NAnt.Core.TargetCollection::'.ctor'()
-	IL_0035:  stfld class NAnt.Core.TargetCollection NAnt.Core.Project::_targets
-	IL_003a:  ldarg.0 
-	IL_003b:  newobj instance void class NAnt.Core.LocationMap::'.ctor'()
-	IL_0040:  stfld class NAnt.Core.LocationMap NAnt.Core.Project::_locationMap
-	IL_0045:  ldarg.0 
-	IL_0046:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
-	IL_004b:  stfld class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::_frameworks
-	IL_0050:  ldarg.0 
-	IL_0051:  newobj instance void class [System.Xml]System.Xml.NameTable::'.ctor'()
-	IL_0056:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
-	IL_005b:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::_nsMgr
-	IL_0060:  ldarg.0 
-	IL_0061:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
-	IL_0066:  stfld class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::_dataTypeReferences
-	IL_006b:  ldarg.0 
-	IL_006c:  ldc.i4 3000
-	IL_0071:  stfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
-	IL_0076:  ldarg.0 
-	IL_0077:  call instance void object::'.ctor'()
-	IL_007c:  nop 
-	IL_007d:  ldarg.0 
-	IL_007e:  ldarg.s 4
-	IL_0080:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::_configurationNode
-	IL_0085:  ldarg.0 
-	IL_0086:  ldarg.0 
-	IL_0087:  ldarg.1 
-	IL_0088:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::LoadBuildFile(string)
-	IL_008d:  ldarg.2 
-	IL_008e:  ldarg.3 
-	IL_008f:  ldc.i4.0 
-	IL_0090:  call instance void class NAnt.Core.Project::CtorHelper(class [System.Xml]System.Xml.XmlDocument, valuetype NAnt.Core.Level, int32, valuetype NAnt.Core.Optimizations)
-	IL_0095:  ret 
-    } // end of method Project::.ctor
-
-    // method line 1673
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string uriOrFilePath, class NAnt.Core.Project parent)  cil managed 
-    {
-        // Method begins at RVA 0x1dc6c
-	// Code size 283 (0x11b)
-	.maxstack 5
-	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		class NAnt.Core.FrameworkInfoDictionaryEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldstr ""
-	IL_0006:  stfld string NAnt.Core.Project::_projectName
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.4 
-	IL_000d:  stfld int32 NAnt.Core.Project::_indentationSize
-	IL_0012:  ldarg.0 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  stfld int32 NAnt.Core.Project::_indentationLevel
-	IL_0019:  ldarg.0 
-	IL_001a:  newobj instance void class NAnt.Core.BuildListenerCollection::'.ctor'()
-	IL_001f:  stfld class NAnt.Core.BuildListenerCollection NAnt.Core.Project::_buildListeners
-	IL_0024:  ldarg.0 
-	IL_0025:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_002a:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::_buildTargets
-	IL_002f:  ldarg.0 
-	IL_0030:  newobj instance void class NAnt.Core.TargetCollection::'.ctor'()
-	IL_0035:  stfld class NAnt.Core.TargetCollection NAnt.Core.Project::_targets
-	IL_003a:  ldarg.0 
-	IL_003b:  newobj instance void class NAnt.Core.LocationMap::'.ctor'()
-	IL_0040:  stfld class NAnt.Core.LocationMap NAnt.Core.Project::_locationMap
-	IL_0045:  ldarg.0 
-	IL_0046:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
-	IL_004b:  stfld class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::_frameworks
-	IL_0050:  ldarg.0 
-	IL_0051:  newobj instance void class [System.Xml]System.Xml.NameTable::'.ctor'()
-	IL_0056:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
-	IL_005b:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::_nsMgr
-	IL_0060:  ldarg.0 
-	IL_0061:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
-	IL_0066:  stfld class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::_dataTypeReferences
-	IL_006b:  ldarg.0 
-	IL_006c:  ldc.i4 3000
-	IL_0071:  stfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
-	IL_0076:  ldarg.0 
-	IL_0077:  call instance void object::'.ctor'()
-	IL_007c:  nop 
-	IL_007d:  ldarg.0 
-	IL_007e:  ldarg.2 
-	IL_007f:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Project::get_ConfigurationNode()
-	IL_0084:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::_configurationNode
-	IL_0089:  ldarg.0 
-	IL_008a:  ldarg.0 
-	IL_008b:  ldarg.1 
-	IL_008c:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::LoadBuildFile(string)
-	IL_0091:  ldarg.2 
-	IL_0092:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
-	IL_0097:  ldarg.2 
-	IL_0098:  callvirt instance int32 class NAnt.Core.Project::get_IndentationLevel()
-	IL_009d:  ldc.i4.1 
-	IL_009e:  add 
-	IL_009f:  ldc.i4.2 
-	IL_00a0:  call instance void class NAnt.Core.Project::CtorHelper(class [System.Xml]System.Xml.XmlDocument, valuetype NAnt.Core.Level, int32, valuetype NAnt.Core.Optimizations)
-	IL_00a5:  ldarg.0 
-	IL_00a6:  ldarg.2 
-	IL_00a7:  callvirt instance class NAnt.Core.BuildListenerCollection class NAnt.Core.Project::get_BuildListeners()
-	IL_00ac:  call instance void class NAnt.Core.Project::AttachBuildListeners(class NAnt.Core.BuildListenerCollection)
-	IL_00b1:  nop 
-	IL_00b2:  ldarg.2 
-	IL_00b3:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
-	IL_00b8:  callvirt instance class NAnt.Core.FrameworkInfoDictionaryEnumerator class NAnt.Core.FrameworkInfoDictionary::GetEnumerator()
-	IL_00bd:  stloc.1 
-	.try { // 0
-	  IL_00be:  br IL_00de
-
-	  IL_00c3:  ldloc.1 
-	  IL_00c4:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Current()
-	  IL_00c9:  stloc.0 
-	  IL_00ca:  nop 
-	  IL_00cb:  ldarg.0 
-	  IL_00cc:  call instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
-	  IL_00d1:  ldloc.0 
-	  IL_00d2:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	  IL_00d7:  ldloc.0 
-	  IL_00d8:  callvirt instance void class NAnt.Core.FrameworkInfoDictionary::Add(string, class NAnt.Core.FrameworkInfo)
-	  IL_00dd:  nop 
-	  IL_00de:  ldloc.1 
-	  IL_00df:  callvirt instance bool class NAnt.Core.FrameworkInfoDictionaryEnumerator::MoveNext()
-	  IL_00e4:  brtrue IL_00c3
-
-	  IL_00e9:  leave IL_0102
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00ee:  ldloc.1 
-	  IL_00ef:  isinst [mscorlib]System.IDisposable
-	  IL_00f4:  dup 
-	  IL_00f5:  stloc.2 
-	  IL_00f6:  brfalse IL_0101
-
-	  IL_00fb:  ldloc.2 
-	  IL_00fc:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0101:  endfinally 
-	} // end handler 0
-	IL_0102:  ldarg.0 
-	IL_0103:  ldarg.2 
-	IL_0104:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
-	IL_0109:  call instance void class NAnt.Core.Project::set_RuntimeFramework(class NAnt.Core.FrameworkInfo)
-	IL_010e:  ldarg.0 
-	IL_010f:  ldarg.2 
-	IL_0110:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_0115:  call instance void class NAnt.Core.Project::set_TargetFramework(class NAnt.Core.FrameworkInfo)
-	IL_011a:  ret 
-    } // end of method Project::.ctor
-
-    // method line 1674
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlDocument doc)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1dda4
-	// Code size 140 (0x8c)
-	.maxstack 5
+        // Method begins at RVA 0x1a3ef
+	// Code size 36 (0x24)
+	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldstr ""
-	IL_0006:  stfld string NAnt.Core.Project::_projectName
+	IL_0001:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.NAntTask::_buildFiles
 	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.4 
-	IL_000d:  stfld int32 NAnt.Core.Project::_indentationSize
+	IL_000c:  ldc.i4.1 
+	IL_000d:  stfld bool NAnt.Core.Tasks.NAntTask::_inheritAll
 	IL_0012:  ldarg.0 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  stfld int32 NAnt.Core.Project::_indentationLevel
-	IL_0019:  ldarg.0 
-	IL_001a:  newobj instance void class NAnt.Core.BuildListenerCollection::'.ctor'()
-	IL_001f:  stfld class NAnt.Core.BuildListenerCollection NAnt.Core.Project::_buildListeners
-	IL_0024:  ldarg.0 
-	IL_0025:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_002a:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::_buildTargets
-	IL_002f:  ldarg.0 
-	IL_0030:  newobj instance void class NAnt.Core.TargetCollection::'.ctor'()
-	IL_0035:  stfld class NAnt.Core.TargetCollection NAnt.Core.Project::_targets
-	IL_003a:  ldarg.0 
-	IL_003b:  newobj instance void class NAnt.Core.LocationMap::'.ctor'()
-	IL_0040:  stfld class NAnt.Core.LocationMap NAnt.Core.Project::_locationMap
-	IL_0045:  ldarg.0 
-	IL_0046:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
-	IL_004b:  stfld class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::_frameworks
-	IL_0050:  ldarg.0 
-	IL_0051:  newobj instance void class [System.Xml]System.Xml.NameTable::'.ctor'()
-	IL_0056:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
-	IL_005b:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::_nsMgr
-	IL_0060:  ldarg.0 
-	IL_0061:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
-	IL_0066:  stfld class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::_dataTypeReferences
-	IL_006b:  ldarg.0 
-	IL_006c:  ldc.i4 3000
-	IL_0071:  stfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
-	IL_0076:  ldarg.0 
-	IL_0077:  call instance void object::'.ctor'()
-	IL_007c:  nop 
-	IL_007d:  ldarg.0 
-	IL_007e:  ldarg.1 
-	IL_007f:  ldc.i4 9999
-	IL_0084:  ldc.i4.0 
-	IL_0085:  ldc.i4.3 
-	IL_0086:  call instance void class NAnt.Core.Project::CtorHelper(class [System.Xml]System.Xml.XmlDocument, valuetype NAnt.Core.Level, int32, valuetype NAnt.Core.Optimizations)
-	IL_008b:  ret 
-    } // end of method Project::.ctor
-
-    // method line 1675
-    .method public hidebysig specialname 
-           instance default void add_BuildStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1de3c
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildEventHandler	V_0,
-		class NAnt.Core.BuildEventHandler	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildStarted
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  stloc.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildStarted
-	IL_000f:  ldloc.1 
-	IL_0010:  ldarg.1 
-	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
-	IL_0016:  castclass NAnt.Core.BuildEventHandler
-	IL_001b:  ldloc.0 
-	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldloc.1 
-	IL_0024:  bne.un IL_0007
-
-	IL_0029:  ret 
-    } // end of method Project::add_BuildStarted
-
-    // method line 1676
-    .method public hidebysig specialname 
-           instance default void remove_BuildStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1de74
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildEventHandler	V_0,
-		class NAnt.Core.BuildEventHandler	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildStarted
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  stloc.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildStarted
-	IL_000f:  ldloc.1 
-	IL_0010:  ldarg.1 
-	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
-	IL_0016:  castclass NAnt.Core.BuildEventHandler
-	IL_001b:  ldloc.0 
-	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldloc.1 
-	IL_0024:  bne.un IL_0007
-
-	IL_0029:  ret 
-    } // end of method Project::remove_BuildStarted
-
-    // method line 1677
-    .method public hidebysig specialname 
-           instance default void add_BuildFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1deac
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildEventHandler	V_0,
-		class NAnt.Core.BuildEventHandler	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildFinished
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  stloc.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildFinished
-	IL_000f:  ldloc.1 
-	IL_0010:  ldarg.1 
-	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
-	IL_0016:  castclass NAnt.Core.BuildEventHandler
-	IL_001b:  ldloc.0 
-	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldloc.1 
-	IL_0024:  bne.un IL_0007
-
-	IL_0029:  ret 
-    } // end of method Project::add_BuildFinished
-
-    // method line 1678
-    .method public hidebysig specialname 
-           instance default void remove_BuildFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1dee4
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildEventHandler	V_0,
-		class NAnt.Core.BuildEventHandler	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildFinished
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  stloc.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildFinished
-	IL_000f:  ldloc.1 
-	IL_0010:  ldarg.1 
-	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
-	IL_0016:  castclass NAnt.Core.BuildEventHandler
-	IL_001b:  ldloc.0 
-	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldloc.1 
-	IL_0024:  bne.un IL_0007
-
-	IL_0029:  ret 
-    } // end of method Project::remove_BuildFinished
-
-    // method line 1679
-    .method public hidebysig specialname 
-           instance default void add_TargetStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1df1c
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildEventHandler	V_0,
-		class NAnt.Core.BuildEventHandler	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetStarted
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  stloc.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetStarted
-	IL_000f:  ldloc.1 
-	IL_0010:  ldarg.1 
-	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
-	IL_0016:  castclass NAnt.Core.BuildEventHandler
-	IL_001b:  ldloc.0 
-	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldloc.1 
-	IL_0024:  bne.un IL_0007
-
-	IL_0029:  ret 
-    } // end of method Project::add_TargetStarted
-
-    // method line 1680
-    .method public hidebysig specialname 
-           instance default void remove_TargetStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1df54
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildEventHandler	V_0,
-		class NAnt.Core.BuildEventHandler	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetStarted
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  stloc.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetStarted
-	IL_000f:  ldloc.1 
-	IL_0010:  ldarg.1 
-	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
-	IL_0016:  castclass NAnt.Core.BuildEventHandler
-	IL_001b:  ldloc.0 
-	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldloc.1 
-	IL_0024:  bne.un IL_0007
-
-	IL_0029:  ret 
-    } // end of method Project::remove_TargetStarted
-
-    // method line 1681
-    .method public hidebysig specialname 
-           instance default void add_TargetFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1df8c
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildEventHandler	V_0,
-		class NAnt.Core.BuildEventHandler	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetFinished
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  stloc.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetFinished
-	IL_000f:  ldloc.1 
-	IL_0010:  ldarg.1 
-	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
-	IL_0016:  castclass NAnt.Core.BuildEventHandler
-	IL_001b:  ldloc.0 
-	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldloc.1 
-	IL_0024:  bne.un IL_0007
-
-	IL_0029:  ret 
-    } // end of method Project::add_TargetFinished
-
-    // method line 1682
-    .method public hidebysig specialname 
-           instance default void remove_TargetFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1dfc4
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildEventHandler	V_0,
-		class NAnt.Core.BuildEventHandler	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetFinished
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  stloc.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetFinished
-	IL_000f:  ldloc.1 
-	IL_0010:  ldarg.1 
-	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
-	IL_0016:  castclass NAnt.Core.BuildEventHandler
-	IL_001b:  ldloc.0 
-	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldloc.1 
-	IL_0024:  bne.un IL_0007
-
-	IL_0029:  ret 
-    } // end of method Project::remove_TargetFinished
-
-    // method line 1683
-    .method public hidebysig specialname 
-           instance default void add_TaskStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1dffc
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildEventHandler	V_0,
-		class NAnt.Core.BuildEventHandler	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskStarted
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  stloc.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskStarted
-	IL_000f:  ldloc.1 
-	IL_0010:  ldarg.1 
-	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
-	IL_0016:  castclass NAnt.Core.BuildEventHandler
-	IL_001b:  ldloc.0 
-	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldloc.1 
-	IL_0024:  bne.un IL_0007
-
-	IL_0029:  ret 
-    } // end of method Project::add_TaskStarted
-
-    // method line 1684
-    .method public hidebysig specialname 
-           instance default void remove_TaskStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1e034
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildEventHandler	V_0,
-		class NAnt.Core.BuildEventHandler	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskStarted
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  stloc.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskStarted
-	IL_000f:  ldloc.1 
-	IL_0010:  ldarg.1 
-	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
-	IL_0016:  castclass NAnt.Core.BuildEventHandler
-	IL_001b:  ldloc.0 
-	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldloc.1 
-	IL_0024:  bne.un IL_0007
-
-	IL_0029:  ret 
-    } // end of method Project::remove_TaskStarted
-
-    // method line 1685
-    .method public hidebysig specialname 
-           instance default void add_TaskFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1e06c
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildEventHandler	V_0,
-		class NAnt.Core.BuildEventHandler	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskFinished
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  stloc.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskFinished
-	IL_000f:  ldloc.1 
-	IL_0010:  ldarg.1 
-	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
-	IL_0016:  castclass NAnt.Core.BuildEventHandler
-	IL_001b:  ldloc.0 
-	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldloc.1 
-	IL_0024:  bne.un IL_0007
-
-	IL_0029:  ret 
-    } // end of method Project::add_TaskFinished
-
-    // method line 1686
-    .method public hidebysig specialname 
-           instance default void remove_TaskFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1e0a4
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildEventHandler	V_0,
-		class NAnt.Core.BuildEventHandler	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskFinished
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  stloc.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskFinished
-	IL_000f:  ldloc.1 
-	IL_0010:  ldarg.1 
-	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
-	IL_0016:  castclass NAnt.Core.BuildEventHandler
-	IL_001b:  ldloc.0 
-	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldloc.1 
-	IL_0024:  bne.un IL_0007
-
-	IL_0029:  ret 
-    } // end of method Project::remove_TaskFinished
-
-    // method line 1687
-    .method public hidebysig specialname 
-           instance default void add_MessageLogged (class NAnt.Core.BuildEventHandler 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1e0dc
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildEventHandler	V_0,
-		class NAnt.Core.BuildEventHandler	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::MessageLogged
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  stloc.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::MessageLogged
-	IL_000f:  ldloc.1 
-	IL_0010:  ldarg.1 
-	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
-	IL_0016:  castclass NAnt.Core.BuildEventHandler
-	IL_001b:  ldloc.0 
-	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldloc.1 
-	IL_0024:  bne.un IL_0007
-
-	IL_0029:  ret 
-    } // end of method Project::add_MessageLogged
-
-    // method line 1688
-    .method public hidebysig specialname 
-           instance default void remove_MessageLogged (class NAnt.Core.BuildEventHandler 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1e114
-	// Code size 42 (0x2a)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.BuildEventHandler	V_0,
-		class NAnt.Core.BuildEventHandler	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::MessageLogged
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  stloc.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::MessageLogged
-	IL_000f:  ldloc.1 
-	IL_0010:  ldarg.1 
-	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
-	IL_0016:  castclass NAnt.Core.BuildEventHandler
-	IL_001b:  ldloc.0 
-	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldloc.1 
-	IL_0024:  bne.un IL_0007
-
-	IL_0029:  ret 
-    } // end of method Project::remove_MessageLogged
+	IL_0013:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0018:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Tasks.NAntTask::_overrideProperties
+	IL_001d:  ldarg.0 
+	IL_001e:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0023:  ret 
+    } // end of method NAntTask::.ctor
 
-    // method line 1689
+    // method line 1455
     .method public hidebysig specialname 
-           instance default int32 get_IndentationLevel ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_BuildFile ()  cil managed 
     {
-        // Method begins at RVA 0x1e14c
+        // Method begins at RVA 0x1a414
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Project::_indentationLevel
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.NAntTask::_buildFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Project::get_IndentationLevel
+    } // end of method NAntTask::get_BuildFile
 
-    // method line 1690
+    // method line 1456
     .method public hidebysig specialname 
-           instance default int32 get_IndentationSize ()  cil managed 
+           instance default void set_BuildFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1a42f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.NAntTask::_buildFile
+	IL_0008:  ret 
+    } // end of method NAntTask::set_BuildFile
+
+    // method line 1457
+    .method public hidebysig specialname 
+           instance default string get_DefaultTarget ()  cil managed 
     {
-        // Method begins at RVA 0x1e168
+        // Method begins at RVA 0x1a43c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Project::_indentationSize
+	IL_0002:  ldfld string NAnt.Core.Tasks.NAntTask::_target
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Project::get_IndentationSize
+    } // end of method NAntTask::get_DefaultTarget
 
-    // method line 1691
+    // method line 1458
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
+           instance default void set_DefaultTarget (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1a457
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.NAntTask::_target
+	IL_000d:  ret 
+    } // end of method NAntTask::set_DefaultTarget
+
+    // method line 1459
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.Core.Types.FileSet get_BuildFiles ()  cil managed 
     {
-        // Method begins at RVA 0x1e184
+        // Method begins at RVA 0x1a468
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.Level	V_0)
+		class NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.NAntTask::_buildFiles
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Project::get_Threshold
+    } // end of method NAntTask::get_BuildFiles
 
-    // method line 1692
-    .method public hidebysig specialname 
-           instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
+    // method line 1460
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_BuildFiles (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x1e19f
+        // Method begins at RVA 0x1a483
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
+	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.NAntTask::_buildFiles
 	IL_0008:  ret 
-    } // end of method Project::set_Threshold
+    } // end of method NAntTask::set_BuildFiles
 
-    // method line 1693
+    // method line 1461
     .method public hidebysig specialname 
-           instance default string get_ProjectName ()  cil managed 
+           instance default bool get_InheritAll ()  cil managed 
     {
-        // Method begins at RVA 0x1e1ac
+        // Method begins at RVA 0x1a490
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Project::_projectName
+	IL_0002:  ldfld bool NAnt.Core.Tasks.NAntTask::_inheritAll
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Project::get_ProjectName
+    } // end of method NAntTask::get_InheritAll
 
-    // method line 1694
+    // method line 1462
     .method public hidebysig specialname 
-           instance default string get_BaseDirectory ()  cil managed 
+           instance default void set_InheritAll (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1e1c8
-	// Code size 83 (0x53)
-	.maxstack 3
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x1a4ab
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Project::_baseDirectory
-	IL_0007:  brtrue IL_0014
-
-	IL_000c:  nop 
-	IL_000d:  ldnull 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0051
-
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld string NAnt.Core.Project::_baseDirectory
-	IL_001a:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	IL_001f:  brtrue IL_0045
-
-	IL_0024:  nop 
-	IL_0025:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InstalledUICulture()
-	IL_002a:  ldstr "Invalid base directory '{0}'. The project base directorymust be rooted."
-	IL_002f:  ldarg.0 
-	IL_0030:  ldfld string NAnt.Core.Project::_baseDirectory
-	IL_0035:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_003a:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_003f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0044:  throw 
-	IL_0045:  ldarg.0 
-	IL_0046:  ldfld string NAnt.Core.Project::_baseDirectory
-	IL_004b:  stloc.0 
-	IL_004c:  br IL_0051
-
-	IL_0051:  ldloc.0 
-	IL_0052:  ret 
-    } // end of method Project::get_BaseDirectory
-
-    // method line 1695
-    .method public hidebysig specialname 
-           instance default void set_BaseDirectory (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x1e228
-	// Code size 67 (0x43)
-	.maxstack 5
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	IL_0007:  brtrue IL_0028
-
-	IL_000c:  nop 
-	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InstalledUICulture()
-	IL_0012:  ldstr "Invalid base directory '{0}'. The project base directorymust be rooted."
-	IL_0017:  ldarg.1 
-	IL_0018:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_001d:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_0022:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0027:  throw 
-	IL_0028:  ldarg.0 
-	IL_0029:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_002e:  ldstr "nant.project.basedir"
-	IL_0033:  ldarg.0 
-	IL_0034:  ldarg.1 
-	IL_0035:  dup 
-	IL_0036:  stloc.0 
-	IL_0037:  stfld string NAnt.Core.Project::_baseDirectory
-	IL_003c:  ldloc.0 
-	IL_003d:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0042:  ret 
-    } // end of method Project::set_BaseDirectory
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.NAntTask::_inheritAll
+	IL_0008:  ret 
+    } // end of method NAntTask::set_InheritAll
 
-    // method line 1696
+    // method line 1463
     .method public hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
+           instance default bool get_InheritRefs ()  cil managed 
     {
-        // Method begins at RVA 0x1e278
+        // Method begins at RVA 0x1a4b8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System.Xml]System.Xml.XmlNamespaceManager	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::_nsMgr
+	IL_0002:  ldfld bool NAnt.Core.Tasks.NAntTask::_inheritRefs
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Project::get_NamespaceManager
+    } // end of method NAntTask::get_InheritRefs
 
-    // method line 1697
+    // method line 1464
     .method public hidebysig specialname 
-           instance default class [System]System.Uri get_BuildFileUri ()  cil managed 
+           instance default void set_InheritRefs (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1e294
-	// Code size 85 (0x55)
-	.maxstack 3
-	.locals init (
-		class [System]System.Uri	V_0,
-		string	V_1)
+        // Method begins at RVA 0x1a4d3
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::get_Document()
-	IL_0007:  brfalse IL_0021
-
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::get_Document()
-	IL_0012:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_BaseURI()
-	IL_0017:  call bool string::IsNullOrEmpty(string)
-	IL_001c:  brfalse IL_0029
-
-	IL_0021:  nop 
-	IL_0022:  ldnull 
-	IL_0023:  stloc.0 
-	IL_0024:  br IL_0053
-
-	IL_0029:  nop 
-	IL_002a:  ldarg.0 
-	IL_002b:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::get_Document()
-	IL_0030:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_BaseURI()
-	IL_0035:  ldstr "#"
-	IL_003a:  ldc.i4.s 0x23
-	IL_003c:  call string class [System]System.Uri::HexEscape(char)
-	IL_0041:  callvirt instance string string::Replace(string, string)
-	IL_0046:  stloc.1 
-	IL_0047:  ldloc.1 
-	IL_0048:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	IL_004d:  stloc.0 
-	IL_004e:  br IL_0053
-
-	IL_0053:  ldloc.0 
-	IL_0054:  ret 
-    } // end of method Project::get_BuildFileUri
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.NAntTask::_inheritRefs
+	IL_0008:  ret 
+    } // end of method NAntTask::set_InheritRefs
 
-    // method line 1698
+    // method line 1465
     .method public hidebysig specialname 
-           instance default class NAnt.Core.FrameworkInfoDictionary get_Frameworks ()  cil managed 
+           instance default class [mscorlib]System.Collections.ArrayList get_OverrideProperties ()  cil managed 
     {
-        // Method begins at RVA 0x1e2f8
+        // Method begins at RVA 0x1a4e0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.FrameworkInfoDictionary	V_0)
+		class [mscorlib]System.Collections.ArrayList	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::_frameworks
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.Tasks.NAntTask::_overrideProperties
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Project::get_Frameworks
+    } // end of method NAntTask::get_OverrideProperties
 
-    // method line 1699
-    .method assembly hidebysig 
-           instance default class NAnt.Core.FrameworkInfo[] GetFrameworks (valuetype NAnt.Core.FrameworkTypes types)  cil managed 
+    // method line 1466
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x1e314
-	// Code size 411 (0x19b)
+        // Method begins at RVA 0x1a4fc
+	// Code size 84 (0x54)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.NAntTask::get_BuildFile()
+	IL_0007:  brfalse IL_0053
+
+	IL_000c:  ldarg.0 
+	IL_000d:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.NAntTask::get_BuildFiles()
+	IL_0012:  brfalse IL_0053
+
+	IL_0017:  ldarg.0 
+	IL_0018:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.NAntTask::get_BuildFiles()
+	IL_001d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
+	IL_0022:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0027:  ldc.i4.0 
+	IL_0028:  ble IL_0053
+
+	IL_002d:  nop 
+	IL_002e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0033:  ldstr "NA1141"
+	IL_0038:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_003d:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_0042:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0047:  ldarg.0 
+	IL_0048:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_004d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0052:  throw 
+	IL_0053:  ret 
+    } // end of method NAntTask::Initialize
+
+    // method line 1467
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x1a55c
+	// Code size 157 (0x9d)
 	.maxstack 3
 	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0,
-		class NAnt.Core.FrameworkInfo	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		valuetype NAnt.Core.ClrType	V_3,
-		valuetype NAnt.Core.VendorType	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		class NAnt.Core.FrameworkInfo[]	V_6,
-		class NAnt.Core.FrameworkInfo[]	V_7)
+		string	V_0,
+		class [System]System.Collections.Specialized.StringEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
-	IL_0007:  callvirt instance int32 class NAnt.Core.FrameworkInfoDictionary::get_Count()
-	IL_000c:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
-	IL_0011:  stloc.0 
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
-	IL_0019:  callvirt instance class [mscorlib]System.Collections.ICollection class NAnt.Core.FrameworkInfoDictionary::get_Values()
-	IL_001e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0023:  stloc.2 
-	.try { // 0
-	  IL_0024:  br IL_0149
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.NAntTask::get_BuildFile()
+	IL_0007:  brfalse IL_001f
 
-	  IL_0029:  ldloc.2 
-	  IL_002a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_002f:  castclass NAnt.Core.FrameworkInfo
-	  IL_0034:  stloc.1 
-	  IL_0035:  nop 
-	  IL_0036:  ldarg.1 
-	  IL_0037:  ldc.i4.3 
-	  IL_0038:  and 
-	  IL_0039:  brfalse IL_0070
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.NAntTask::get_BuildFile()
+	IL_0014:  call instance void class NAnt.Core.Tasks.NAntTask::RunBuild(class [mscorlib]System.IO.FileInfo)
+	IL_0019:  nop 
+	IL_001a:  br IL_009c
 
-	  IL_003e:  nop 
-	  IL_003f:  ldarg.1 
-	  IL_0040:  ldc.i4.2 
-	  IL_0041:  and 
-	  IL_0042:  brtrue IL_0057
+	IL_001f:  nop 
+	IL_0020:  ldarg.0 
+	IL_0021:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.NAntTask::get_BuildFiles()
+	IL_0026:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_002b:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0030:  brtrue IL_004b
 
-	  IL_0047:  ldloc.1 
-	  IL_0048:  callvirt instance bool class NAnt.Core.FrameworkInfo::get_IsValid()
-	  IL_004d:  brfalse IL_0057
+	IL_0035:  nop 
+	IL_0036:  ldarg.0 
+	IL_0037:  ldc.i4 4000
+	IL_003c:  ldstr "No matching build files found to run."
+	IL_0041:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_0046:  br IL_009c
 
-	  IL_0052:  leave IL_0149
+	IL_004b:  nop 
+	IL_004c:  ldarg.0 
+	IL_004d:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.NAntTask::get_BuildFiles()
+	IL_0052:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0057:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_005c:  stloc.1 
+	.try { // 0
+	  IL_005d:  br IL_0077
 
-	  IL_0057:  ldarg.1 
-	  IL_0058:  ldc.i4.1 
-	  IL_0059:  and 
-	  IL_005a:  brtrue IL_006f
+	  IL_0062:  ldloc.1 
+	  IL_0063:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0068:  stloc.0 
+	  IL_0069:  nop 
+	  IL_006a:  ldarg.0 
+	  IL_006b:  ldloc.0 
+	  IL_006c:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_0071:  call instance void class NAnt.Core.Tasks.NAntTask::RunBuild(class [mscorlib]System.IO.FileInfo)
+	  IL_0076:  nop 
+	  IL_0077:  ldloc.1 
+	  IL_0078:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_007d:  brtrue IL_0062
 
-	  IL_005f:  ldloc.1 
-	  IL_0060:  callvirt instance bool class NAnt.Core.FrameworkInfo::get_IsValid()
-	  IL_0065:  brtrue IL_006f
+	  IL_0082:  leave IL_009b
 
-	  IL_006a:  leave IL_0149
+	} // end .try 0
+	finally  { // 0
+	  IL_0087:  ldloc.1 
+	  IL_0088:  isinst [mscorlib]System.IDisposable
+	  IL_008d:  dup 
+	  IL_008e:  stloc.2 
+	  IL_008f:  brfalse IL_009a
 
-	  IL_006f:  nop 
-	  IL_0070:  ldarg.1 
-	  IL_0071:  ldc.i4.s 0x1c
-	  IL_0073:  and 
-	  IL_0074:  brfalse IL_00f2
+	  IL_0094:  ldloc.2 
+	  IL_0095:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_009a:  endfinally 
+	} // end handler 0
+	IL_009b:  nop 
+	IL_009c:  ret 
+    } // end of method NAntTask::ExecuteTask
 
-	  IL_0079:  nop 
-	  IL_007a:  ldloc.1 
-	  IL_007b:  callvirt instance valuetype NAnt.Core.ClrType class NAnt.Core.FrameworkInfo::get_ClrType()
-	  IL_0080:  stloc.3 
-	  IL_0081:  ldloc.3 
-	  IL_0082:  ldc.i4.1 
-	  IL_0083:  sub 
-	  IL_0084:  switch (
-	    IL_00ac,
-	    IL_009a,
-	    IL_00be)
-	  IL_0095:  br IL_00d1
+    // method line 1468
+    .method private hidebysig 
+           instance default void RunBuild (class [mscorlib]System.IO.FileInfo buildFile)  cil managed 
+    {
+        // Method begins at RVA 0x1a618
+	// Code size 490 (0x1ea)
+	.maxstack 7
+	.locals init (
+		class NAnt.Core.Project	V_0,
+		class [System]System.Collections.Specialized.StringCollection	V_1,
+		class NAnt.Core.Tasks.PropertyTask	V_2,
+		class [mscorlib]System.Collections.IEnumerator	V_3,
+		class [mscorlib]System.IDisposable	V_4,
+		string	V_5,
+		string[]	V_6,
+		int32	V_7,
+		string	V_8)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4 3000
+	IL_0007:  ldstr "{0} {1}"
+	IL_000c:  ldc.i4.2 
+	IL_000d:  newarr [mscorlib]System.Object
+	IL_0012:  dup 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  ldarg.1 
+	IL_0015:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001a:  stelem.ref 
+	IL_001b:  dup 
+	IL_001c:  ldc.i4.1 
+	IL_001d:  ldarg.0 
+	IL_001e:  call instance string class NAnt.Core.Tasks.NAntTask::get_DefaultTarget()
+	IL_0023:  stelem.ref 
+	IL_0024:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0029:  ldarg.1 
+	IL_002a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_002f:  ldarg.0 
+	IL_0030:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0035:  newobj instance void class NAnt.Core.Project::'.ctor'(string, class NAnt.Core.Project)
+	IL_003a:  stloc.0 
+	IL_003b:  ldarg.0 
+	IL_003c:  call instance bool class NAnt.Core.Tasks.NAntTask::get_InheritAll()
+	IL_0041:  brfalse IL_00cc
 
-	  IL_009a:  ldarg.1 
-	  IL_009b:  ldc.i4.8 
-	  IL_009c:  and 
-	  IL_009d:  brtrue IL_00a7
+	IL_0046:  nop 
+	IL_0047:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_004c:  stloc.1 
+	IL_004d:  ldloc.1 
+	IL_004e:  ldstr "nant.filename"
+	IL_0053:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0058:  pop 
+	IL_0059:  ldloc.1 
+	IL_005a:  ldstr "nant.location"
+	IL_005f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0064:  pop 
+	IL_0065:  ldloc.1 
+	IL_0066:  ldstr "nant.onsuccess"
+	IL_006b:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0070:  pop 
+	IL_0071:  ldloc.1 
+	IL_0072:  ldstr "nant.onfailure"
+	IL_0077:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_007c:  pop 
+	IL_007d:  ldloc.1 
+	IL_007e:  ldstr "nant.project.basedir"
+	IL_0083:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0088:  pop 
+	IL_0089:  ldloc.1 
+	IL_008a:  ldstr "nant.project.buildfile"
+	IL_008f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0094:  pop 
+	IL_0095:  ldloc.1 
+	IL_0096:  ldstr "nant.project.default"
+	IL_009b:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_00a0:  pop 
+	IL_00a1:  ldloc.1 
+	IL_00a2:  ldstr "nant.project.name"
+	IL_00a7:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_00ac:  pop 
+	IL_00ad:  ldloc.1 
+	IL_00ae:  ldstr "nant.version"
+	IL_00b3:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_00b8:  pop 
+	IL_00b9:  ldloc.0 
+	IL_00ba:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_00bf:  ldarg.0 
+	IL_00c0:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	IL_00c5:  ldloc.1 
+	IL_00c6:  callvirt instance void class NAnt.Core.PropertyDictionary::Inherit(class NAnt.Core.PropertyDictionary, class [System]System.Collections.Specialized.StringCollection)
+	IL_00cb:  nop 
+	IL_00cc:  nop 
+	IL_00cd:  ldarg.0 
+	IL_00ce:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.Core.Tasks.NAntTask::get_OverrideProperties()
+	IL_00d3:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_00d8:  stloc.3 
+	.try { // 0
+	  IL_00d9:  br IL_0123
 
-	  IL_00a2:  leave IL_0149
+	  IL_00de:  ldloc.3 
+	  IL_00df:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_00e4:  castclass NAnt.Core.Tasks.PropertyTask
+	  IL_00e9:  stloc.2 
+	  IL_00ea:  nop 
+	  IL_00eb:  ldloc.2 
+	  IL_00ec:  callvirt instance bool class NAnt.Core.Tasks.PropertyTask::get_Dynamic()
+	  IL_00f1:  brtrue IL_0115
 
-	  IL_00a7:  leave IL_00f1
+	  IL_00f6:  nop 
+	  IL_00f7:  ldloc.2 
+	  IL_00f8:  ldarg.0 
+	  IL_00f9:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_00fe:  ldloc.2 
+	  IL_00ff:  callvirt instance string class NAnt.Core.Tasks.PropertyTask::get_Value()
+	  IL_0104:  ldarg.0 
+	  IL_0105:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_010a:  callvirt instance string class NAnt.Core.Project::ExpandProperties(string, class NAnt.Core.Location)
+	  IL_010f:  callvirt instance void class NAnt.Core.Tasks.PropertyTask::set_Value(string)
+	  IL_0114:  nop 
+	  IL_0115:  ldloc.2 
+	  IL_0116:  ldloc.0 
+	  IL_0117:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	  IL_011c:  ldloc.2 
+	  IL_011d:  callvirt instance void class NAnt.Core.Task::Execute()
+	  IL_0122:  nop 
+	  IL_0123:  ldloc.3 
+	  IL_0124:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0129:  brtrue IL_00de
 
-	  IL_00ac:  ldarg.1 
-	  IL_00ad:  ldc.i4.4 
-	  IL_00ae:  and 
-	  IL_00af:  brtrue IL_00b9
+	  IL_012e:  leave IL_0149
 
-	  IL_00b4:  leave IL_0149
+	} // end .try 0
+	finally  { // 0
+	  IL_0133:  ldloc.3 
+	  IL_0134:  isinst [mscorlib]System.IDisposable
+	  IL_0139:  dup 
+	  IL_013a:  stloc.s 4
+	  IL_013c:  brfalse IL_0148
 
-	  IL_00b9:  leave IL_00f1
+	  IL_0141:  ldloc.s 4
+	  IL_0143:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0148:  endfinally 
+	} // end handler 0
+	IL_0149:  ldarg.0 
+	IL_014a:  call instance bool class NAnt.Core.Tasks.NAntTask::get_InheritRefs()
+	IL_014f:  brfalse IL_016c
 
-	  IL_00be:  ldarg.1 
-	  IL_00bf:  ldc.i4.s 0x10
-	  IL_00c1:  and 
-	  IL_00c2:  brtrue IL_00cc
+	IL_0154:  nop 
+	IL_0155:  ldloc.0 
+	IL_0156:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	IL_015b:  ldarg.0 
+	IL_015c:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0161:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	IL_0166:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::Inherit(class NAnt.Core.DataTypeBaseDictionary)
+	IL_016b:  nop 
+	IL_016c:  ldarg.0 
+	IL_016d:  call instance string class NAnt.Core.Tasks.NAntTask::get_DefaultTarget()
+	IL_0172:  brfalse IL_01d2
 
-	  IL_00c7:  leave IL_0149
+	IL_0177:  nop 
+	IL_0178:  nop 
+	IL_0179:  ldarg.0 
+	IL_017a:  call instance string class NAnt.Core.Tasks.NAntTask::get_DefaultTarget()
+	IL_017f:  ldc.i4.s 0x20
+	IL_0181:  ldc.i4.0 
+	IL_0182:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	IL_0187:  stloc.s 6
+	IL_0189:  ldc.i4.0 
+	IL_018a:  stloc.s 7
+	IL_018c:  br IL_01c6
 
-	  IL_00cc:  leave IL_00f1
+	IL_0191:  ldloc.s 6
+	IL_0193:  ldloc.s 7
+	IL_0195:  ldelem.ref 
+	IL_0196:  stloc.s 5
+	IL_0198:  nop 
+	IL_0199:  ldloc.s 5
+	IL_019b:  callvirt instance string string::Trim()
+	IL_01a0:  stloc.s 8
+	IL_01a2:  ldloc.s 8
+	IL_01a4:  callvirt instance int32 string::get_Length()
+	IL_01a9:  ldc.i4.0 
+	IL_01aa:  ble IL_01bf
 
-	  IL_00d1:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_00d6:  ldstr "CLR type '{0}' is not supported."
-	  IL_00db:  ldloc.1 
-	  IL_00dc:  callvirt instance valuetype NAnt.Core.ClrType class NAnt.Core.FrameworkInfo::get_ClrType()
-	  IL_00e1:  box NAnt.Core.ClrType
-	  IL_00e6:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_00eb:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
-	  IL_00f0:  throw 
-	  IL_00f1:  nop 
-	  IL_00f2:  ldarg.1 
-	  IL_00f3:  ldc.i4.s 0x60
-	  IL_00f5:  and 
-	  IL_00f6:  brfalse IL_0140
+	IL_01af:  nop 
+	IL_01b0:  ldloc.0 
+	IL_01b1:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
+	IL_01b6:  ldloc.s 8
+	IL_01b8:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_01bd:  pop 
+	IL_01be:  nop 
+	IL_01bf:  nop 
+	IL_01c0:  ldloc.s 7
+	IL_01c2:  ldc.i4.1 
+	IL_01c3:  add 
+	IL_01c4:  stloc.s 7
+	IL_01c6:  ldloc.s 7
+	IL_01c8:  ldloc.s 6
+	IL_01ca:  ldlen 
+	IL_01cb:  conv.i4 
+	IL_01cc:  blt IL_0191
 
-	  IL_00fb:  nop 
-	  IL_00fc:  ldloc.1 
-	  IL_00fd:  callvirt instance valuetype NAnt.Core.VendorType class NAnt.Core.FrameworkInfo::get_Vendor()
-	  IL_0102:  stloc.s 4
-	  IL_0104:  ldloc.s 4
-	  IL_0106:  ldc.i4.2 
-	  IL_0107:  beq IL_0119
+	IL_01d1:  nop 
+	IL_01d2:  ldloc.0 
+	IL_01d3:  callvirt instance bool class NAnt.Core.Project::Run()
+	IL_01d8:  brtrue IL_01e9
 
-	  IL_010c:  ldloc.s 4
-	  IL_010e:  ldc.i4.1 
-	  IL_010f:  beq IL_012c
+	IL_01dd:  nop 
+	IL_01de:  ldstr "Nested build failed.  Refer to build log for exact reason."
+	IL_01e3:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_01e8:  throw 
+	IL_01e9:  ret 
+    } // end of method NAntTask::RunBuild
 
-	  IL_0114:  br IL_013f
+	.property instance class [mscorlib]System.IO.FileInfo BuildFile ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 62 75 69 6C 64 66 69 6C 65 00 00 ) // ...buildfile..
 
-	  IL_0119:  ldarg.1 
-	  IL_011a:  ldc.i4.s 0x20
-	  IL_011c:  and 
-	  IL_011d:  brtrue IL_0127
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.NAntTask::get_BuildFile () 
+		.set instance default void NAnt.Core.Tasks.NAntTask::set_BuildFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string DefaultTarget ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 74 61 72 67 65 74 00 00 ) // ...target..
 
-	  IL_0122:  leave IL_0149
+		.get instance default string NAnt.Core.Tasks.NAntTask::get_DefaultTarget () 
+		.set instance default void NAnt.Core.Tasks.NAntTask::set_DefaultTarget (string 'value') 
+	}
+	.property instance class NAnt.Core.Types.FileSet BuildFiles ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 0A 62 75 69 6C 64 66 69 6C 65 73 00 00 ) // ...buildfiles..
 
-	  IL_0127:  leave IL_013f
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.NAntTask::get_BuildFiles () 
+		.set instance default void NAnt.Core.Tasks.NAntTask::set_BuildFiles (class NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance bool InheritAll ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 69 6E 68 65 72 69 74 61 6C 6C 00 00 ) // ...inheritall..
 
-	  IL_012c:  ldarg.1 
-	  IL_012d:  ldc.i4.s 0x40
-	  IL_012f:  and 
-	  IL_0130:  brtrue IL_013a
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	  IL_0135:  leave IL_0149
+		.get instance default bool NAnt.Core.Tasks.NAntTask::get_InheritAll () 
+		.set instance default void NAnt.Core.Tasks.NAntTask::set_InheritAll (bool 'value') 
+	}
+	.property instance bool InheritRefs ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 69 6E 68 65 72 69 74 72 65 66 73 00 00 ) // ...inheritrefs..
 
-	  IL_013a:  leave IL_013f
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	  IL_013f:  nop 
-	  IL_0140:  ldloc.0 
-	  IL_0141:  ldloc.1 
-	  IL_0142:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0147:  pop 
-	  IL_0148:  nop 
-	  IL_0149:  ldloc.2 
-	  IL_014a:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_014f:  brtrue IL_0029
+		.get instance default bool NAnt.Core.Tasks.NAntTask::get_InheritRefs () 
+		.set instance default void NAnt.Core.Tasks.NAntTask::set_InheritRefs (bool 'value') 
+	}
+	.property instance class [mscorlib]System.Collections.ArrayList OverrideProperties ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
+		01 00 0A 70 72 6F 70 65 72 74 69 65 73 08 70 72   // ...properties.pr
+		6F 70 65 72 74 79 01 00 54 50 0B 45 6C 65 6D 65   // operty..TP.Eleme
+		6E 74 54 79 70 65 1C 4E 41 6E 74 2E 43 6F 72 65   // ntType.NAnt.Core
+		2E 54 61 73 6B 73 2E 50 72 6F 70 65 72 74 79 54   // .Tasks.PropertyT
+		61 73 6B                                        ) // ask
 
-	  IL_0154:  leave IL_016f
+		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.Core.Tasks.NAntTask::get_OverrideProperties () 
+	}
+  } // end of class NAnt.Core.Tasks.NAntTask
+}
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0159:  ldloc.2 
-	  IL_015a:  isinst [mscorlib]System.IDisposable
-	  IL_015f:  dup 
-	  IL_0160:  stloc.s 5
-	  IL_0162:  brfalse IL_016e
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit NAntSchemaTask
+  	extends NAnt.Core.Task
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 0A 6E 61 6E 74 73 63 68 65 6D 61 00 00 ) // ...nantschema..
 
-	  IL_0167:  ldloc.s 5
-	  IL_0169:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_016e:  endfinally 
-	} // end handler 0
-	IL_016f:  ldloc.0 
-	IL_0170:  call class [mscorlib]System.Collections.IComparer class NAnt.Core.FrameworkInfo::get_NameComparer()
-	IL_0175:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Sort(class [mscorlib]System.Collections.IComparer)
-	IL_017a:  ldloc.0 
-	IL_017b:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_0180:  newarr NAnt.Core.FrameworkInfo
-	IL_0185:  stloc.s 6
-	IL_0187:  ldloc.0 
-	IL_0188:  ldloc.s 6
-	IL_018a:  callvirt instance void class [mscorlib]System.Collections.ArrayList::CopyTo(class [mscorlib]System.Array)
-	IL_018f:  ldloc.s 6
-	IL_0191:  stloc.s 7
-	IL_0193:  br IL_0198
+    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
+    .field  private  string _forType
+    .field  private  string _targetNamespace
+    .field  private static initonly  class [log4net]log4net.ILog logger
+    .field  private static initonly  string[] mixedTaskNames
 
-	IL_0198:  ldloc.s 7
-	IL_019a:  ret 
-    } // end of method Project::GetFrameworks
+    // method line 1469
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x1a820
+	// Code size 18 (0x12)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldstr "http://tempuri.org/nant-donotuse.xsd"
+	IL_0006:  stfld string NAnt.Core.Tasks.NAntSchemaTask::_targetNamespace
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0011:  ret 
+    } // end of method NAntSchemaTask::.ctor
 
-    // method line 1700
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.FrameworkInfo get_RuntimeFramework ()  cil managed 
+    // method line 1470
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x1e4d8
+        // Method begins at RVA 0x1a834
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.FrameworkInfo NAnt.Core.Project::_runtimeFramework
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.NAntSchemaTask::_outputFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Project::get_RuntimeFramework
+    } // end of method NAntSchemaTask::get_OutputFile
 
-    // method line 1701
-    .method public hidebysig specialname 
-           instance default void set_RuntimeFramework (class NAnt.Core.FrameworkInfo 'value')  cil managed 
+    // method line 1471
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x1e4f3
+        // Method begins at RVA 0x1a84f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.FrameworkInfo NAnt.Core.Project::_runtimeFramework
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.NAntSchemaTask::_outputFile
 	IL_0008:  ret 
-    } // end of method Project::set_RuntimeFramework
+    } // end of method NAntSchemaTask::set_OutputFile
 
-    // method line 1702
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.FrameworkInfo get_TargetFramework ()  cil managed 
+    // method line 1472
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_TargetNamespace ()  cil managed 
     {
-        // Method begins at RVA 0x1e500
+        // Method begins at RVA 0x1a85c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.FrameworkInfo NAnt.Core.Project::_targetFramework
+	IL_0002:  ldfld string NAnt.Core.Tasks.NAntSchemaTask::_targetNamespace
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Project::get_TargetFramework
+    } // end of method NAntSchemaTask::get_TargetNamespace
 
-    // method line 1703
-    .method public hidebysig specialname 
-           instance default void set_TargetFramework (class NAnt.Core.FrameworkInfo 'value')  cil managed 
+    // method line 1473
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_TargetNamespace (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1e51b
-	// Code size 39 (0x27)
+        // Method begins at RVA 0x1a877
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "value"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.1 
-	IL_0014:  callvirt instance void class NAnt.Core.FrameworkInfo::Validate()
-	IL_0019:  ldarg.0 
-	IL_001a:  ldarg.1 
-	IL_001b:  stfld class NAnt.Core.FrameworkInfo NAnt.Core.Project::_targetFramework
-	IL_0020:  ldarg.0 
-	IL_0021:  call instance void class NAnt.Core.Project::UpdateTargetFrameworkProperties()
-	IL_0026:  ret 
-    } // end of method Project::set_TargetFramework
-
-    // method line 1704
-    .method public hidebysig specialname 
-           instance default string get_PlatformName ()  cil managed 
-    {
-        // Method begins at RVA 0x1e544
-	// Code size 118 (0x76)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		valuetype [mscorlib]System.PlatformID	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsWin32
-	IL_0006:  brfalse IL_0017
-
-	IL_000b:  nop 
-	IL_000c:  ldstr "win32"
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0074
-
-	IL_0017:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_001c:  brfalse IL_002d
-
-	IL_0021:  nop 
-	IL_0022:  ldstr "unix"
-	IL_0027:  stloc.0 
-	IL_0028:  br IL_0074
-
-	IL_002d:  nop 
-	IL_002e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0033:  ldstr "NA1060"
-	IL_0038:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_003d:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
-	IL_0042:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
-	IL_0047:  stloc.1 
-	IL_0048:  ldloca.s 1
-	IL_004a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_004f:  constrained. [mscorlib]System.PlatformID
-	IL_0055:  callvirt instance string class [mscorlib]System.Enum::ToString(class [mscorlib]System.IFormatProvider)
-	IL_005a:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
-	IL_005f:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
-	IL_0064:  box [mscorlib]System.Int32
-	IL_0069:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_006e:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_0073:  throw 
-	IL_0074:  ldloc.0 
-	IL_0075:  ret 
-    } // end of method Project::get_PlatformName
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.NAntSchemaTask::_targetNamespace
+	IL_000d:  ret 
+    } // end of method NAntSchemaTask::set_TargetNamespace
 
-    // method line 1705
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Target get_CurrentTarget ()  cil managed 
+    // method line 1474
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_ForType ()  cil managed 
     {
-        // Method begins at RVA 0x1e5c8
+        // Method begins at RVA 0x1a888
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Target	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Target NAnt.Core.Project::_currentTarget
+	IL_0002:  ldfld string NAnt.Core.Tasks.NAntSchemaTask::_forType
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Project::get_CurrentTarget
+    } // end of method NAntSchemaTask::get_ForType
 
-    // method line 1706
-    .method public hidebysig specialname 
-           instance default string get_BuildFileLocalName ()  cil managed 
+    // method line 1475
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_ForType (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1e5e4
-	// Code size 62 (0x3e)
-	.maxstack 2
+        // Method begins at RVA 0x1a8a3
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.NAntSchemaTask::_forType
+	IL_000d:  ret 
+    } // end of method NAntSchemaTask::set_ForType
+
+    // method line 1476
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x1a8b4
+        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
+	// Code size 592 (0x250)
+	.maxstack 7
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Collections.ArrayList	V_0,
+		class [mscorlib]System.Collections.ArrayList	V_1,
+		class NAnt.Core.TaskBuilder	V_2,
+		class NAnt.Core.TaskBuilderEnumerator	V_3,
+		class [mscorlib]System.IDisposable	V_4,
+		class NAnt.Core.DataTypeBaseBuilder	V_5,
+		class NAnt.Core.DataTypeBaseBuilderEnumerator	V_6,
+		class [mscorlib]System.IDisposable	V_7,
+		class [mscorlib]System.IO.MemoryStream	V_8,
+		class [System.Xml]System.Xml.Schema.XmlSchema	V_9,
+		class [System.Xml]System.Xml.Schema.XmlSchemaException	V_10,
+		class [mscorlib]System.Security.Permissions.FileIOPermission	V_11,
+		class [mscorlib]System.IO.FileStream	V_12,
+		unsigned int8[]	V_13,
+		int32	V_14)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
-	IL_0007:  ldnull 
-	IL_0008:  call bool class [System]System.Uri::op_Inequality(class [System]System.Uri, class [System]System.Uri)
-	IL_000d:  brfalse IL_0034
+	IL_0002:  callvirt instance string class NAnt.Core.Tasks.NAntSchemaTask::get_ForType()
+	IL_0007:  brtrue IL_00ee
 
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
-	IL_0018:  callvirt instance bool class [System]System.Uri::get_IsFile()
-	IL_001d:  brfalse IL_0034
+	IL_000c:  nop 
+	IL_000d:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
+	IL_0012:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0017:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
+	IL_001c:  stloc.0 
+	IL_001d:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
+	IL_0022:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0027:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
+	IL_002c:  stloc.1 
+	IL_002d:  nop 
+	IL_002e:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
+	IL_0033:  callvirt instance class NAnt.Core.TaskBuilderEnumerator class NAnt.Core.TaskBuilderCollection::GetEnumerator()
+	IL_0038:  stloc.3 
+	.try { // 0
+	  IL_0039:  br IL_0061
 
-	IL_0022:  nop 
-	IL_0023:  ldarg.0 
-	IL_0024:  call instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
-	IL_0029:  callvirt instance string class [System]System.Uri::get_LocalPath()
-	IL_002e:  stloc.0 
-	IL_002f:  br IL_003c
+	  IL_003e:  ldloc.3 
+	  IL_003f:  callvirt instance class NAnt.Core.TaskBuilder class NAnt.Core.TaskBuilderEnumerator::get_Current()
+	  IL_0044:  stloc.2 
+	  IL_0045:  nop 
+	  IL_0046:  ldloc.0 
+	  IL_0047:  ldloc.2 
+	  IL_0048:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
+	  IL_004d:  ldloc.2 
+	  IL_004e:  callvirt instance string class NAnt.Core.TaskBuilder::get_ClassName()
+	  IL_0053:  ldc.i4.1 
+	  IL_0054:  ldc.i4.1 
+	  IL_0055:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool, bool)
+	  IL_005a:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_005f:  pop 
+	  IL_0060:  nop 
+	  IL_0061:  ldloc.3 
+	  IL_0062:  callvirt instance bool class NAnt.Core.TaskBuilderEnumerator::MoveNext()
+	  IL_0067:  brtrue IL_003e
 
-	IL_0034:  nop 
-	IL_0035:  ldnull 
-	IL_0036:  stloc.0 
-	IL_0037:  br IL_003c
+	  IL_006c:  leave IL_0087
 
-	IL_003c:  ldloc.0 
-	IL_003d:  ret 
-    } // end of method Project::get_BuildFileLocalName
+	} // end .try 0
+	finally  { // 0
+	  IL_0071:  ldloc.3 
+	  IL_0072:  isinst [mscorlib]System.IDisposable
+	  IL_0077:  dup 
+	  IL_0078:  stloc.s 4
+	  IL_007a:  brfalse IL_0086
 
-    // method line 1707
-    .method public hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlDocument get_Document ()  cil managed 
-    {
-        // Method begins at RVA 0x1e630
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [System.Xml]System.Xml.XmlDocument	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlDocument NAnt.Core.Project::_doc
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_007f:  ldloc.s 4
+	  IL_0081:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0086:  endfinally 
+	} // end handler 0
+	IL_0087:  nop 
+	IL_0088:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
+	IL_008d:  callvirt instance class NAnt.Core.DataTypeBaseBuilderEnumerator class NAnt.Core.DataTypeBaseBuilderCollection::GetEnumerator()
+	IL_0092:  stloc.s 6
+	.try { // 1
+	  IL_0094:  br IL_00c0
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Project::get_Document
+	  IL_0099:  ldloc.s 6
+	  IL_009b:  callvirt instance class NAnt.Core.DataTypeBaseBuilder class NAnt.Core.DataTypeBaseBuilderEnumerator::get_Current()
+	  IL_00a0:  stloc.s 5
+	  IL_00a2:  nop 
+	  IL_00a3:  ldloc.1 
+	  IL_00a4:  ldloc.s 5
+	  IL_00a6:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
+	  IL_00ab:  ldloc.s 5
+	  IL_00ad:  callvirt instance string class NAnt.Core.DataTypeBaseBuilder::get_ClassName()
+	  IL_00b2:  ldc.i4.1 
+	  IL_00b3:  ldc.i4.1 
+	  IL_00b4:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool, bool)
+	  IL_00b9:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_00be:  pop 
+	  IL_00bf:  nop 
+	  IL_00c0:  ldloc.s 6
+	  IL_00c2:  callvirt instance bool class NAnt.Core.DataTypeBaseBuilderEnumerator::MoveNext()
+	  IL_00c7:  brtrue IL_0099
 
-    // method line 1708
-    .method public hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlNode get_ConfigurationNode ()  cil managed 
+	  IL_00cc:  leave IL_00e8
+
+	} // end .try 1
+	finally  { // 1
+	  IL_00d1:  ldloc.s 6
+	  IL_00d3:  isinst [mscorlib]System.IDisposable
+	  IL_00d8:  dup 
+	  IL_00d9:  stloc.s 7
+	  IL_00db:  brfalse IL_00e7
+
+	  IL_00e0:  ldloc.s 7
+	  IL_00e2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00e7:  endfinally 
+	} // end handler 1
+	IL_00e8:  nop 
+	IL_00e9:  br IL_0111
+
+	IL_00ee:  nop 
+	IL_00ef:  ldc.i4.1 
+	IL_00f0:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
+	IL_00f5:  stloc.0 
+	IL_00f6:  ldloc.0 
+	IL_00f7:  ldarg.0 
+	IL_00f8:  callvirt instance string class NAnt.Core.Tasks.NAntSchemaTask::get_ForType()
+	IL_00fd:  ldc.i4.1 
+	IL_00fe:  ldc.i4.1 
+	IL_00ff:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool, bool)
+	IL_0104:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_0109:  pop 
+	IL_010a:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_010f:  stloc.1 
+	IL_0110:  nop 
+	IL_0111:  newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
+	IL_0116:  stloc.s 8
+	IL_0118:  ldloc.s 8
+	IL_011a:  ldloc.0 
+	IL_011b:  ldtoken [mscorlib]System.Type
+	IL_0120:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0125:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
+	IL_012a:  castclass class [mscorlib]System.Type[]
+	IL_012f:  ldloc.1 
+	IL_0130:  ldtoken [mscorlib]System.Type
+	IL_0135:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_013a:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
+	IL_013f:  castclass class [mscorlib]System.Type[]
+	IL_0144:  ldarg.0 
+	IL_0145:  callvirt instance string class NAnt.Core.Tasks.NAntSchemaTask::get_TargetNamespace()
+	IL_014a:  call class [System.Xml]System.Xml.Schema.XmlSchema class NAnt.Core.Tasks.NAntSchemaTask::WriteSchema(class [mscorlib]System.IO.Stream, class [mscorlib]System.Type[], class [mscorlib]System.Type[], string)
+	IL_014f:  pop 
+	IL_0150:  ldloc.s 8
+	IL_0152:  ldc.i4.0 
+	IL_0153:  conv.i8 
+	IL_0154:  callvirt instance void class [mscorlib]System.IO.Stream::set_Position(int64)
+	.try { // 2
+	  IL_0159:  nop 
+	  IL_015a:  ldloc.s 8
+	  IL_015c:  ldnull 
+	  IL_015d:  call class [System.Xml]System.Xml.Schema.XmlSchema class [System.Xml]System.Xml.Schema.XmlSchema::Read(class [mscorlib]System.IO.Stream, class [System.Xml]System.Xml.Schema.ValidationEventHandler)
+	  IL_0162:  stloc.s 9
+	  IL_0164:  ldloc.s 9
+	  IL_0166:  ldnull 
+	  IL_0167:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchema::Compile(class [System.Xml]System.Xml.Schema.ValidationEventHandler)
+	  IL_016c:  nop 
+	  IL_016d:  leave IL_0188
+
+	} // end .try 2
+	catch class [System.Xml]System.Xml.Schema.XmlSchemaException { // 2
+	  IL_0172:  stloc.s 10
+	  IL_0174:  nop 
+	  IL_0175:  ldstr "The generated XML schema is not valid."
+	  IL_017a:  ldarg.0 
+	  IL_017b:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0180:  ldloc.s 10
+	  IL_0182:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0187:  throw 
+	} // end handler 2
+	IL_0188:  ldloc.s 8
+	IL_018a:  ldc.i4.0 
+	IL_018b:  conv.i8 
+	IL_018c:  callvirt instance void class [mscorlib]System.IO.Stream::set_Position(int64)
+	IL_0191:  ldc.i4.s 0x0f
+	IL_0193:  ldarg.0 
+	IL_0194:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.NAntSchemaTask::get_OutputFile()
+	IL_0199:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_019e:  newobj instance void class [mscorlib]System.Security.Permissions.FileIOPermission::'.ctor'(valuetype [mscorlib]System.Security.Permissions.FileIOPermissionAccess, string)
+	IL_01a3:  stloc.s 11
+	IL_01a5:  ldloc.s 11
+	IL_01a7:  callvirt instance void class [mscorlib]System.Security.CodeAccessPermission::Assert()
+	IL_01ac:  ldarg.0 
+	IL_01ad:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.NAntSchemaTask::get_OutputFile()
+	IL_01b2:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_01b7:  ldc.i4.2 
+	IL_01b8:  ldc.i4.2 
+	IL_01b9:  ldc.i4.1 
+	IL_01ba:  call class [mscorlib]System.IO.FileStream class [mscorlib]System.IO.File::Open(string, valuetype [mscorlib]System.IO.FileMode, valuetype [mscorlib]System.IO.FileAccess, valuetype [mscorlib]System.IO.FileShare)
+	IL_01bf:  stloc.s 12
+	.try { // 3
+	  IL_01c1:  nop 
+	  IL_01c2:  ldc.i4 4096
+	  IL_01c7:  newarr [mscorlib]System.Byte
+	  IL_01cc:  stloc.s 13
+	  IL_01ce:  ldloc.s 8
+	  IL_01d0:  ldloc.s 13
+	  IL_01d2:  ldc.i4.0 
+	  IL_01d3:  ldloc.s 13
+	  IL_01d5:  ldlen 
+	  IL_01d6:  conv.i4 
+	  IL_01d7:  callvirt instance int32 class [mscorlib]System.IO.Stream::Read(unsigned int8[], int32, int32)
+	  IL_01dc:  stloc.s 14
+	  IL_01de:  br IL_0201
+
+	  IL_01e3:  nop 
+	  IL_01e4:  ldloc.s 12
+	  IL_01e6:  ldloc.s 13
+	  IL_01e8:  ldc.i4.0 
+	  IL_01e9:  ldloc.s 14
+	  IL_01eb:  callvirt instance void class [mscorlib]System.IO.Stream::Write(unsigned int8[], int32, int32)
+	  IL_01f0:  ldloc.s 8
+	  IL_01f2:  ldloc.s 13
+	  IL_01f4:  ldc.i4.0 
+	  IL_01f5:  ldloc.s 13
+	  IL_01f7:  ldlen 
+	  IL_01f8:  conv.i4 
+	  IL_01f9:  callvirt instance int32 class [mscorlib]System.IO.Stream::Read(unsigned int8[], int32, int32)
+	  IL_01fe:  stloc.s 14
+	  IL_0200:  nop 
+	  IL_0201:  ldloc.s 14
+	  IL_0203:  brtrue IL_01e3
+
+	  IL_0208:  ldloc.s 12
+	  IL_020a:  callvirt instance void class [mscorlib]System.IO.Stream::Flush()
+	  IL_020f:  ldloc.s 12
+	  IL_0211:  callvirt instance void class [mscorlib]System.IO.Stream::Close()
+	  IL_0216:  nop 
+	  IL_0217:  leave IL_022b
+
+	} // end .try 3
+	finally  { // 3
+	  IL_021c:  ldloc.s 12
+	  IL_021e:  brfalse IL_022a
+
+	  IL_0223:  ldloc.s 12
+	  IL_0225:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_022a:  endfinally 
+	} // end handler 3
+	IL_022b:  ldarg.0 
+	IL_022c:  ldc.i4 3000
+	IL_0231:  ldstr "Wrote schema to '{0}'."
+	IL_0236:  ldc.i4.1 
+	IL_0237:  newarr [mscorlib]System.Object
+	IL_023c:  dup 
+	IL_023d:  ldc.i4.0 
+	IL_023e:  ldarg.0 
+	IL_023f:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.NAntSchemaTask::get_OutputFile()
+	IL_0244:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0249:  stelem.ref 
+	IL_024a:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_024f:  ret 
+    } // end of method NAntSchemaTask::ExecuteTask
+
+    // method line 1477
+    .method public static hidebysig 
+           default class [System.Xml]System.Xml.Schema.XmlSchema WriteSchema (class [mscorlib]System.IO.Stream 'stream', class [mscorlib]System.Type[] tasks, class [mscorlib]System.Type[] dataTypes, string targetNS)  cil managed 
     {
-        // Method begins at RVA 0x1e64c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1ab44
+	// Code size 68 (0x44)
+	.maxstack 3
 	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0)
+		class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator	V_0,
+		class [System.Xml]System.Xml.Schema.XmlSchema	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::_configurationNode
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  newobj instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::'.ctor'(class [mscorlib]System.Type[], class [mscorlib]System.Type[], string)
+	IL_0009:  stloc.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchema class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::get_Schema()
+	IL_0010:  callvirt instance bool class [System.Xml]System.Xml.Schema.XmlSchema::get_IsCompiled()
+	IL_0015:  brtrue IL_0022
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Project::get_ConfigurationNode
+	IL_001a:  nop 
+	IL_001b:  ldloc.0 
+	IL_001c:  callvirt instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::Compile()
+	IL_0021:  nop 
+	IL_0022:  ldarg.0 
+	IL_0023:  brfalse IL_0036
 
-    // method line 1709
-    .method public hidebysig specialname 
-           instance default string get_DefaultTargetName ()  cil managed 
+	IL_0028:  nop 
+	IL_0029:  ldloc.0 
+	IL_002a:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchema class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::get_Schema()
+	IL_002f:  ldarg.0 
+	IL_0030:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchema::Write(class [mscorlib]System.IO.Stream)
+	IL_0035:  nop 
+	IL_0036:  ldloc.0 
+	IL_0037:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchema class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::get_Schema()
+	IL_003c:  stloc.1 
+	IL_003d:  br IL_0042
+
+	IL_0042:  ldloc.1 
+	IL_0043:  ret 
+    } // end of method NAntSchemaTask::WriteSchema
+
+    // method line 1478
+    .method family static hidebysig 
+           default string GenerateIDFromType (class [mscorlib]System.Type 'type')  cil managed 
     {
-        // Method begins at RVA 0x1e668
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1ab94
+	// Code size 60 (0x3c)
+	.maxstack 3
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Project::_defaultTargetName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  callvirt instance string object::ToString()
+	IL_0007:  ldstr "+"
+	IL_000c:  ldstr "-"
+	IL_0011:  callvirt instance string string::Replace(string, string)
+	IL_0016:  ldstr "["
+	IL_001b:  ldstr "_"
+	IL_0020:  callvirt instance string string::Replace(string, string)
+	IL_0025:  ldstr "]"
+	IL_002a:  ldstr "_"
+	IL_002f:  callvirt instance string string::Replace(string, string)
+	IL_0034:  stloc.0 
+	IL_0035:  br IL_003a
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Project::get_DefaultTargetName
+	IL_003a:  ldloc.0 
+	IL_003b:  ret 
+    } // end of method NAntSchemaTask::GenerateIDFromType
 
-    // method line 1710
-    .method public hidebysig specialname 
-           instance default bool get_Verbose ()  cil managed 
+    // method line 1479
+    .method family static hidebysig 
+           default class [System.Xml]System.Xml.Schema.XmlSchemaAttribute CreateXsdAttribute (string name, bool required)  cil managed 
     {
-        // Method begins at RVA 0x1e684
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x1abdc
+	// Code size 52 (0x34)
 	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class [System.Xml]System.Xml.Schema.XmlSchemaAttribute	V_0,
+		class [System.Xml]System.Xml.Schema.XmlSchemaAttribute	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4 2000
-	IL_0006:  ldarg.0 
-	IL_0007:  call instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
-	IL_000c:  clt 
+	IL_0001:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaAttribute::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaAttribute::set_Name(string)
+	IL_000e:  ldarg.1 
+	IL_000f:  brfalse IL_0022
+
+	IL_0014:  nop 
+	IL_0015:  ldloc.0 
+	IL_0016:  ldc.i4.3 
+	IL_0017:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaAttribute::set_Use(valuetype [System.Xml]System.Xml.Schema.XmlSchemaUse)
+	IL_001c:  nop 
+	IL_001d:  br IL_002b
+
+	IL_0022:  nop 
+	IL_0023:  ldloc.0 
+	IL_0024:  ldc.i4.1 
+	IL_0025:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaAttribute::set_Use(valuetype [System.Xml]System.Xml.Schema.XmlSchemaUse)
+	IL_002a:  nop 
+	IL_002b:  ldloc.0 
+	IL_002c:  stloc.1 
+	IL_002d:  br IL_0032
+
+	IL_0032:  ldloc.1 
+	IL_0033:  ret 
+    } // end of method NAntSchemaTask::CreateXsdAttribute
+
+    // method line 1480
+    .method family static hidebysig 
+           default class [System.Xml]System.Xml.Schema.XmlSchemaSequence CreateXsdSequence (valuetype [mscorlib]System.Decimal min, valuetype [mscorlib]System.Decimal max)  cil managed 
+    {
+        // Method begins at RVA 0x1ac1c
+	// Code size 71 (0x47)
+	.maxstack 6
+	.locals init (
+		class [System.Xml]System.Xml.Schema.XmlSchemaSequence	V_0,
+		class [System.Xml]System.Xml.Schema.XmlSchemaSequence	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaSequence::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MinOccurs(valuetype [mscorlib]System.Decimal)
+	IL_000e:  ldarg.1 
+	IL_000f:  ldc.i4.m1 
+	IL_0010:  ldc.i4.m1 
+	IL_0011:  ldc.i4.m1 
+	IL_0012:  ldc.i4.0 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32, int32, int32, bool, unsigned int8)
+	IL_0019:  call bool valuetype [mscorlib]System.Decimal::op_Inequality(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal)
+	IL_001e:  brfalse IL_0031
+
+	IL_0023:  nop 
+	IL_0024:  ldloc.0 
+	IL_0025:  ldarg.1 
+	IL_0026:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MaxOccurs(valuetype [mscorlib]System.Decimal)
+	IL_002b:  nop 
+	IL_002c:  br IL_003e
+
+	IL_0031:  nop 
+	IL_0032:  ldloc.0 
+	IL_0033:  ldstr "unbounded"
+	IL_0038:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MaxOccursString(string)
+	IL_003d:  nop 
+	IL_003e:  ldloc.0 
+	IL_003f:  stloc.1 
+	IL_0040:  br IL_0045
+
+	IL_0045:  ldloc.1 
+	IL_0046:  ret 
+    } // end of method NAntSchemaTask::CreateXsdSequence
+
+    // method line 1481
+    .method family static hidebysig 
+           default class [System.Xml]System.Xml.XmlNode[] TextToNodeArray (string text)  cil managed 
+    {
+        // Method begins at RVA 0x1ac70
+	// Code size 31 (0x1f)
+	.maxstack 5
+	.locals init (
+		class [System.Xml]System.Xml.XmlDocument	V_0,
+		class [System.Xml]System.Xml.XmlNode[]	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldc.i4.1 
+	IL_0008:  newarr [System.Xml]System.Xml.XmlNode
+	IL_000d:  dup 
 	IL_000e:  ldc.i4.0 
-	IL_000f:  ceq 
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_000f:  ldloc.0 
+	IL_0010:  ldarg.0 
+	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlText class [System.Xml]System.Xml.XmlDocument::CreateTextNode(string)
+	IL_0016:  stelem.ref 
+	IL_0017:  stloc.1 
+	IL_0018:  br IL_001d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method Project::get_Verbose
+	IL_001d:  ldloc.1 
+	IL_001e:  ret 
+    } // end of method NAntSchemaTask::TextToNodeArray
 
-    // method line 1711
+    // method line 1482
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x1ac9b
+	// Code size 40 (0x28)
+	.maxstack 8
+	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
+	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
+	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.Tasks.NAntSchemaTask::logger
+	IL_0014:  ldc.i4.1 
+	IL_0015:  newarr [mscorlib]System.String
+	IL_001a:  dup 
+	IL_001b:  ldc.i4.0 
+	IL_001c:  ldstr "NAnt.Core.Tasks.DescriptionTask"
+	IL_0021:  stelem.ref 
+	IL_0022:  stsfld string[] NAnt.Core.Tasks.NAntSchemaTask::mixedTaskNames
+	IL_0027:  ret 
+    } // end of method NAntSchemaTask::.cctor
+
+	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 6F 75 74 70 75 74 01 00 54 02 08 52 65   // ...output..T..Re
+		71 75 69 72 65 64 01                            ) // quired.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.NAntSchemaTask::get_OutputFile () 
+		.set instance default void NAnt.Core.Tasks.NAntSchemaTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string TargetNamespace ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 09 74 61 72 67 65 74 2D 6E 73 01 00 54 02   // ...target-ns..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+
+		.get instance default string NAnt.Core.Tasks.NAntSchemaTask::get_TargetNamespace () 
+		.set instance default void NAnt.Core.Tasks.NAntSchemaTask::set_TargetNamespace (string 'value') 
+	}
+	.property instance string ForType ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 05 63 6C 61 73 73 01 00 54 02 08 52 65 71   // ...class..T..Req
+		75 69 72 65 64 00                               ) // uired.
+
+		.get instance default string NAnt.Core.Tasks.NAntSchemaTask::get_ForType () 
+		.set instance default void NAnt.Core.Tasks.NAntSchemaTask::set_ForType (string 'value') 
+	}
+  .class nested private auto ansi beforefieldinit NAntSchemaGenerator
+  	extends [mscorlib]System.Object
+  {
+    .field  private  class [mscorlib]System.Collections.IDictionary _nantComplexTypes
+    .field  private  class [System.Xml]System.Xml.Schema.XmlSchemaComplexType _targetCT
+    .field  private  class [System.Xml]System.Xml.Schema.XmlSchema _nantSchema
+
+    // method line 1483
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Type[] tasks, class [mscorlib]System.Type[] dataTypes, string targetNS)  cil managed 
+    {
+        // Method begins at RVA 0x1acc4
+	// Code size 934 (0x3a6)
+	.maxstack 7
+	.locals init (
+		class [System.Xml]System.Xml.Schema.XmlSchemaAnnotation	V_0,
+		class [System.Xml]System.Xml.Schema.XmlSchemaDocumentation	V_1,
+		string	V_2,
+		class [mscorlib]System.Collections.ArrayList	V_3,
+		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_4,
+		class [mscorlib]System.Collections.ArrayList	V_5,
+		class [mscorlib]System.Type	V_6,
+		class [mscorlib]System.Type[]	V_7,
+		int32	V_8,
+		class [mscorlib]System.Type	V_9,
+		class [mscorlib]System.Type[]	V_10,
+		int32	V_11,
+		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_12,
+		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_13,
+		class [mscorlib]System.Collections.IEnumerator	V_14,
+		class [System.Xml]System.Xml.Schema.XmlSchemaSequence	V_15,
+		class [mscorlib]System.IDisposable	V_16,
+		class [System.Xml]System.Xml.Schema.XmlSchemaElement	V_17,
+		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_18)
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchema::'.ctor'()
+	IL_0006:  stfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void object::'.ctor'()
+	IL_0011:  nop 
+	IL_0012:  ldarg.3 
+	IL_0013:  brfalse IL_0046
+
+	IL_0018:  nop 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
+	IL_001f:  ldarg.3 
+	IL_0020:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchema::set_TargetNamespace(string)
+	IL_0025:  ldarg.0 
+	IL_0026:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
+	IL_002b:  callvirt instance class [System.Xml]System.Xml.Serialization.XmlSerializerNamespaces class [System.Xml]System.Xml.Schema.XmlSchemaObject::get_Namespaces()
+	IL_0030:  ldstr "nant"
+	IL_0035:  ldarg.0 
+	IL_0036:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
+	IL_003b:  callvirt instance string class [System.Xml]System.Xml.Schema.XmlSchema::get_TargetNamespace()
+	IL_0040:  callvirt instance void class [System.Xml]System.Xml.Serialization.XmlSerializerNamespaces::Add(string, string)
+	IL_0045:  nop 
+	IL_0046:  ldarg.0 
+	IL_0047:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
+	IL_004c:  callvirt instance class [System.Xml]System.Xml.Serialization.XmlSerializerNamespaces class [System.Xml]System.Xml.Schema.XmlSchemaObject::get_Namespaces()
+	IL_0051:  ldstr "xs"
+	IL_0056:  ldstr "http://www.w3.org/2001/XMLSchema"
+	IL_005b:  callvirt instance void class [System.Xml]System.Xml.Serialization.XmlSerializerNamespaces::Add(string, string)
+	IL_0060:  ldarg.0 
+	IL_0061:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
+	IL_0066:  ldc.i4.1 
+	IL_0067:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchema::set_ElementFormDefault(valuetype [System.Xml]System.Xml.Schema.XmlSchemaForm)
+	IL_006c:  ldarg.0 
+	IL_006d:  ldarg.1 
+	IL_006e:  ldlen 
+	IL_006f:  conv.i4 
+	IL_0070:  ldarg.2 
+	IL_0071:  ldlen 
+	IL_0072:  conv.i4 
+	IL_0073:  add 
+	IL_0074:  newobj instance void class [System]System.Collections.Specialized.HybridDictionary::'.ctor'(int32)
+	IL_0079:  stfld class [mscorlib]System.Collections.IDictionary NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantComplexTypes
+	IL_007e:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaAnnotation::'.ctor'()
+	IL_0083:  stloc.0 
+	IL_0084:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaDocumentation::'.ctor'()
+	IL_0089:  stloc.1 
+	IL_008a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_008f:  ldstr "String_SchemaGenerated"
+	IL_0094:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0099:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
+	IL_009e:  box [mscorlib]System.DateTime
+	IL_00a3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00a8:  stloc.2 
+	IL_00a9:  ldloc.1 
+	IL_00aa:  ldloc.2 
+	IL_00ab:  call class [System.Xml]System.Xml.XmlNode[] class NAnt.Core.Tasks.NAntSchemaTask::TextToNodeArray(string)
+	IL_00b0:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaDocumentation::set_Markup(class [System.Xml]System.Xml.XmlNode[])
+	IL_00b5:  ldloc.0 
+	IL_00b6:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaAnnotation::get_Items()
+	IL_00bb:  ldloc.1 
+	IL_00bc:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_00c1:  pop 
+	IL_00c2:  ldarg.0 
+	IL_00c3:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
+	IL_00c8:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchema::get_Items()
+	IL_00cd:  ldloc.0 
+	IL_00ce:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_00d3:  pop 
+	IL_00d4:  ldc.i4.4 
+	IL_00d5:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
+	IL_00da:  stloc.3 
+	IL_00db:  ldarg.0 
+	IL_00dc:  ldtoken NAnt.Core.TaskContainer
+	IL_00e1:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_00e6:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindOrCreateComplexType(class [mscorlib]System.Type)
+	IL_00eb:  stloc.s 4
+	IL_00ed:  ldloc.s 4
+	IL_00ef:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaParticle class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Particle()
+	IL_00f4:  brtrue IL_0117
+
+	IL_00f9:  nop 
+	IL_00fa:  ldloc.s 4
+	IL_00fc:  ldc.i4.0 
+	IL_00fd:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
+	IL_0102:  ldc.i4.m1 
+	IL_0103:  ldc.i4.m1 
+	IL_0104:  ldc.i4.m1 
+	IL_0105:  ldc.i4.0 
+	IL_0106:  ldc.i4.0 
+	IL_0107:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32, int32, int32, bool, unsigned int8)
+	IL_010c:  call class [System.Xml]System.Xml.Schema.XmlSchemaSequence class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdSequence(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal)
+	IL_0111:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::set_Particle(class [System.Xml]System.Xml.Schema.XmlSchemaParticle)
+	IL_0116:  nop 
+	IL_0117:  ldloc.3 
+	IL_0118:  ldloc.s 4
+	IL_011a:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_011f:  pop 
+	IL_0120:  ldarg.2 
+	IL_0121:  ldlen 
+	IL_0122:  conv.i4 
+	IL_0123:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
+	IL_0128:  stloc.s 5
+	IL_012a:  nop 
+	IL_012b:  ldarg.2 
+	IL_012c:  stloc.s 7
+	IL_012e:  ldc.i4.0 
+	IL_012f:  stloc.s 8
+	IL_0131:  br IL_0155
+
+	IL_0136:  ldloc.s 7
+	IL_0138:  ldloc.s 8
+	IL_013a:  ldelem.ref 
+	IL_013b:  stloc.s 6
+	IL_013d:  nop 
+	IL_013e:  ldloc.s 5
+	IL_0140:  ldarg.0 
+	IL_0141:  ldloc.s 6
+	IL_0143:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindOrCreateComplexType(class [mscorlib]System.Type)
+	IL_0148:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_014d:  pop 
+	IL_014e:  nop 
+	IL_014f:  ldloc.s 8
+	IL_0151:  ldc.i4.1 
+	IL_0152:  add 
+	IL_0153:  stloc.s 8
+	IL_0155:  ldloc.s 8
+	IL_0157:  ldloc.s 7
+	IL_0159:  ldlen 
+	IL_015a:  conv.i4 
+	IL_015b:  blt IL_0136
+
+	IL_0160:  nop 
+	IL_0161:  ldarg.1 
+	IL_0162:  stloc.s 10
+	IL_0164:  ldc.i4.0 
+	IL_0165:  stloc.s 11
+	IL_0167:  br IL_01a6
+
+	IL_016c:  ldloc.s 10
+	IL_016e:  ldloc.s 11
+	IL_0170:  ldelem.ref 
+	IL_0171:  stloc.s 9
+	IL_0173:  nop 
+	IL_0174:  ldarg.0 
+	IL_0175:  ldloc.s 9
+	IL_0177:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindOrCreateComplexType(class [mscorlib]System.Type)
+	IL_017c:  stloc.s 12
+	IL_017e:  ldloc.s 9
+	IL_0180:  ldtoken NAnt.Core.TaskContainer
+	IL_0185:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_018a:  callvirt instance bool class [mscorlib]System.Type::IsSubclassOf(class [mscorlib]System.Type)
+	IL_018f:  brfalse IL_019f
+
+	IL_0194:  nop 
+	IL_0195:  ldloc.3 
+	IL_0196:  ldloc.s 12
+	IL_0198:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_019d:  pop 
+	IL_019e:  nop 
+	IL_019f:  nop 
+	IL_01a0:  ldloc.s 11
+	IL_01a2:  ldc.i4.1 
+	IL_01a3:  add 
+	IL_01a4:  stloc.s 11
+	IL_01a6:  ldloc.s 11
+	IL_01a8:  ldloc.s 10
+	IL_01aa:  ldlen 
+	IL_01ab:  conv.i4 
+	IL_01ac:  blt IL_016c
+
+	IL_01b1:  ldarg.0 
+	IL_01b2:  call instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::Compile()
+	IL_01b7:  nop 
+	IL_01b8:  ldloc.3 
+	IL_01b9:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_01be:  stloc.s 14
+	.try { // 0
+	  IL_01c0:  br IL_021b
+
+	  IL_01c5:  ldloc.s 14
+	  IL_01c7:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_01cc:  castclass [System.Xml]System.Xml.Schema.XmlSchemaComplexType
+	  IL_01d1:  stloc.s 13
+	  IL_01d3:  nop 
+	  IL_01d4:  ldloc.s 13
+	  IL_01d6:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaParticle class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Particle()
+	  IL_01db:  isinst [System.Xml]System.Xml.Schema.XmlSchemaSequence
+	  IL_01e0:  stloc.s 15
+	  IL_01e2:  ldloc.s 15
+	  IL_01e4:  brfalse IL_0209
+
+	  IL_01e9:  nop 
+	  IL_01ea:  ldloc.s 15
+	  IL_01ec:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaGroupBase::get_Items()
+	  IL_01f1:  ldarg.0 
+	  IL_01f2:  ldarg.1 
+	  IL_01f3:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::CreateTaskListComplexType(class [mscorlib]System.Type[])
+	  IL_01f8:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaParticle class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Particle()
+	  IL_01fd:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	  IL_0202:  pop 
+	  IL_0203:  nop 
+	  IL_0204:  br IL_021a
+
+	  IL_0209:  nop 
+	  IL_020a:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.NAntSchemaTask::logger
+	  IL_020f:  ldstr "Unable to fixup complextype with children. Particle is not XmlSchemaSequence"
+	  IL_0214:  callvirt instance void class [log4net]log4net.ILog::Error(object)
+	  IL_0219:  nop 
+	  IL_021a:  nop 
+	  IL_021b:  ldloc.s 14
+	  IL_021d:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0222:  brtrue IL_01c5
+
+	  IL_0227:  leave IL_0243
+
+	} // end .try 0
+	finally  { // 0
+	  IL_022c:  ldloc.s 14
+	  IL_022e:  isinst [mscorlib]System.IDisposable
+	  IL_0233:  dup 
+	  IL_0234:  stloc.s 16
+	  IL_0236:  brfalse IL_0242
+
+	  IL_023b:  ldloc.s 16
+	  IL_023d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0242:  endfinally 
+	} // end handler 0
+	IL_0243:  ldarg.0 
+	IL_0244:  call instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::Compile()
+	IL_0249:  ldarg.0 
+	IL_024a:  ldarg.0 
+	IL_024b:  ldarg.1 
+	IL_024c:  ldarg.2 
+	IL_024d:  ldc.i4.0 
+	IL_024e:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::CreateTaskListComplexType(class [mscorlib]System.Type[], class [mscorlib]System.Type[], bool)
+	IL_0253:  stfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
+	IL_0258:  ldarg.0 
+	IL_0259:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
+	IL_025e:  ldstr "Target"
+	IL_0263:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaType::set_Name(string)
+	IL_0268:  ldarg.0 
+	IL_0269:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
+	IL_026e:  ldc.i4.1 
+	IL_026f:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaType::set_IsMixed(bool)
+	IL_0274:  ldarg.0 
+	IL_0275:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
+	IL_027a:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
+	IL_027f:  ldstr "name"
+	IL_0284:  ldc.i4.1 
+	IL_0285:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
+	IL_028a:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_028f:  pop 
+	IL_0290:  ldarg.0 
+	IL_0291:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
+	IL_0296:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
+	IL_029b:  ldstr "depends"
+	IL_02a0:  ldc.i4.0 
+	IL_02a1:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
+	IL_02a6:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_02ab:  pop 
+	IL_02ac:  ldarg.0 
+	IL_02ad:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
+	IL_02b2:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
+	IL_02b7:  ldstr "description"
+	IL_02bc:  ldc.i4.0 
+	IL_02bd:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
+	IL_02c2:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_02c7:  pop 
+	IL_02c8:  ldarg.0 
+	IL_02c9:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
+	IL_02ce:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
+	IL_02d3:  ldstr "if"
+	IL_02d8:  ldc.i4.0 
+	IL_02d9:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
+	IL_02de:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_02e3:  pop 
+	IL_02e4:  ldarg.0 
+	IL_02e5:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
+	IL_02ea:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
+	IL_02ef:  ldstr "unless"
+	IL_02f4:  ldc.i4.0 
+	IL_02f5:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
+	IL_02fa:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_02ff:  pop 
+	IL_0300:  ldarg.0 
+	IL_0301:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
+	IL_0306:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchema::get_Items()
+	IL_030b:  ldarg.0 
+	IL_030c:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
+	IL_0311:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_0316:  pop 
+	IL_0317:  ldarg.0 
+	IL_0318:  call instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::Compile()
+	IL_031d:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::'.ctor'()
+	IL_0322:  stloc.s 17
+	IL_0324:  ldloc.s 17
+	IL_0326:  ldstr "project"
+	IL_032b:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_Name(string)
+	IL_0330:  ldarg.0 
+	IL_0331:  ldarg.1 
+	IL_0332:  ldarg.2 
+	IL_0333:  ldc.i4.1 
+	IL_0334:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::CreateTaskListComplexType(class [mscorlib]System.Type[], class [mscorlib]System.Type[], bool)
+	IL_0339:  stloc.s 18
+	IL_033b:  ldloc.s 17
+	IL_033d:  ldloc.s 18
+	IL_033f:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_SchemaType(class [System.Xml]System.Xml.Schema.XmlSchemaType)
+	IL_0344:  ldloc.s 18
+	IL_0346:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
+	IL_034b:  ldstr "name"
+	IL_0350:  ldc.i4.1 
+	IL_0351:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
+	IL_0356:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_035b:  pop 
+	IL_035c:  ldloc.s 18
+	IL_035e:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
+	IL_0363:  ldstr "default"
+	IL_0368:  ldc.i4.0 
+	IL_0369:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
+	IL_036e:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_0373:  pop 
+	IL_0374:  ldloc.s 18
+	IL_0376:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
+	IL_037b:  ldstr "basedir"
+	IL_0380:  ldc.i4.0 
+	IL_0381:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
+	IL_0386:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_038b:  pop 
+	IL_038c:  ldarg.0 
+	IL_038d:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
+	IL_0392:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchema::get_Items()
+	IL_0397:  ldloc.s 17
+	IL_0399:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_039e:  pop 
+	IL_039f:  ldarg.0 
+	IL_03a0:  call instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::Compile()
+	IL_03a5:  ret 
+    } // end of method NAntSchemaGenerator::.ctor
+
+    // method line 1484
     .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_BuildTargets ()  cil managed 
+           instance default class [System.Xml]System.Xml.Schema.XmlSchema get_Schema ()  cil managed 
     {
-        // Method begins at RVA 0x1e6ac
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1b088
+	// Code size 39 (0x27)
 	.maxstack 1
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
+		class [System.Xml]System.Xml.Schema.XmlSchema	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::_buildTargets
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
+	IL_0007:  callvirt instance bool class [System.Xml]System.Xml.Schema.XmlSchema::get_IsCompiled()
+	IL_000c:  brtrue IL_0019
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Project::get_BuildTargets
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::Compile()
+	IL_0018:  nop 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
+	IL_001f:  stloc.0 
+	IL_0020:  br IL_0025
 
-    // method line 1712
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.PropertyDictionary get_Properties ()  cil managed 
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method NAntSchemaGenerator::get_Schema
+
+    // method line 1485
+    .method public hidebysig 
+           instance default void Compile ()  cil managed 
     {
-        // Method begins at RVA 0x1e6c8
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1b0bb
+	// Code size 25 (0x19)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantSchema
+	IL_0007:  ldarg.0 
+	IL_0008:  ldftn instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::ValidationEH(object, class [System.Xml]System.Xml.Schema.ValidationEventArgs)
+	IL_000e:  newobj instance void class [System.Xml]System.Xml.Schema.ValidationEventHandler::'.ctor'(object, native int)
+	IL_0013:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchema::Compile(class [System.Xml]System.Xml.Schema.ValidationEventHandler)
+	IL_0018:  ret 
+    } // end of method NAntSchemaGenerator::Compile
+
+    // method line 1486
+    .method family hidebysig 
+           instance default class [System.Xml]System.Xml.Schema.XmlSchemaComplexType CreateTaskListComplexType (class [mscorlib]System.Type[] tasks)  cil managed 
+    {
+        // Method begins at RVA 0x1b0d8
+	// Code size 23 (0x17)
+	.maxstack 4
 	.locals init (
-		class NAnt.Core.PropertyDictionary	V_0)
+		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.Project::_properties
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldarg.1 
+	IL_0003:  ldc.i4.0 
+	IL_0004:  newarr [mscorlib]System.Type
+	IL_0009:  ldc.i4.0 
+	IL_000a:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::CreateTaskListComplexType(class [mscorlib]System.Type[], class [mscorlib]System.Type[], bool)
+	IL_000f:  stloc.0 
+	IL_0010:  br IL_0015
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Project::get_Properties
+	IL_0015:  ldloc.0 
+	IL_0016:  ret 
+    } // end of method NAntSchemaGenerator::CreateTaskListComplexType
 
-    // method line 1713
+    // method line 1487
+    .method family hidebysig 
+           instance default class [System.Xml]System.Xml.Schema.XmlSchemaComplexType CreateTaskListComplexType (class [mscorlib]System.Type[] tasks, class [mscorlib]System.Type[] dataTypes, bool includeProjectLevelItems)  cil managed 
+    {
+        // Method begins at RVA 0x1b0fc
+	// Code size 392 (0x188)
+	.maxstack 6
+	.locals init (
+		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_0,
+		class [System.Xml]System.Xml.Schema.XmlSchemaChoice	V_1,
+		class [mscorlib]System.Type	V_2,
+		class [mscorlib]System.Type[]	V_3,
+		int32	V_4,
+		class [System.Xml]System.Xml.Schema.XmlSchemaElement	V_5,
+		string	V_6,
+		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_7,
+		class [mscorlib]System.Type	V_8,
+		class [mscorlib]System.Type[]	V_9,
+		int32	V_10,
+		class [System.Xml]System.Xml.Schema.XmlSchemaElement	V_11,
+		string	V_12,
+		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_13,
+		class [System.Xml]System.Xml.Schema.XmlSchemaElement	V_14,
+		class [System.Xml]System.Xml.Schema.XmlSchemaAny	V_15,
+		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_16)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaChoice::'.ctor'()
+	IL_000c:  stloc.1 
+	IL_000d:  ldloc.1 
+	IL_000e:  ldc.i4.0 
+	IL_000f:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
+	IL_0014:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MinOccurs(valuetype [mscorlib]System.Decimal)
+	IL_0019:  ldloc.1 
+	IL_001a:  ldstr "unbounded"
+	IL_001f:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MaxOccursString(string)
+	IL_0024:  ldloc.0 
+	IL_0025:  ldloc.1 
+	IL_0026:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::set_Particle(class [System.Xml]System.Xml.Schema.XmlSchemaParticle)
+	IL_002b:  nop 
+	IL_002c:  ldarg.1 
+	IL_002d:  stloc.3 
+	IL_002e:  ldc.i4.0 
+	IL_002f:  stloc.s 4
+	IL_0031:  br IL_0086
+
+	IL_0036:  ldloc.3 
+	IL_0037:  ldloc.s 4
+	IL_0039:  ldelem.ref 
+	IL_003a:  stloc.2 
+	IL_003b:  nop 
+	IL_003c:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::'.ctor'()
+	IL_0041:  stloc.s 5
+	IL_0043:  ldloc.2 
+	IL_0044:  call string class NAnt.Core.Tasks.NAntSchemaTask::GenerateIDFromType(class [mscorlib]System.Type)
+	IL_0049:  stloc.s 6
+	IL_004b:  ldarg.0 
+	IL_004c:  ldloc.s 6
+	IL_004e:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindComplexTypeByID(string)
+	IL_0053:  stloc.s 7
+	IL_0055:  ldloc.s 5
+	IL_0057:  ldarg.0 
+	IL_0058:  ldloc.2 
+	IL_0059:  call instance string class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::GetTaskName(class [mscorlib]System.Type)
+	IL_005e:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_Name(string)
+	IL_0063:  ldloc.s 5
+	IL_0065:  ldloc.s 7
+	IL_0067:  callvirt instance class [System.Xml]System.Xml.XmlQualifiedName class [System.Xml]System.Xml.Schema.XmlSchemaType::get_QualifiedName()
+	IL_006c:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_SchemaTypeName(class [System.Xml]System.Xml.XmlQualifiedName)
+	IL_0071:  ldloc.1 
+	IL_0072:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaGroupBase::get_Items()
+	IL_0077:  ldloc.s 5
+	IL_0079:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_007e:  pop 
+	IL_007f:  nop 
+	IL_0080:  ldloc.s 4
+	IL_0082:  ldc.i4.1 
+	IL_0083:  add 
+	IL_0084:  stloc.s 4
+	IL_0086:  ldloc.s 4
+	IL_0088:  ldloc.3 
+	IL_0089:  ldlen 
+	IL_008a:  conv.i4 
+	IL_008b:  blt IL_0036
+
+	IL_0090:  nop 
+	IL_0091:  ldarg.2 
+	IL_0092:  stloc.s 9
+	IL_0094:  ldc.i4.0 
+	IL_0095:  stloc.s 10
+	IL_0097:  br IL_00f0
+
+	IL_009c:  ldloc.s 9
+	IL_009e:  ldloc.s 10
+	IL_00a0:  ldelem.ref 
+	IL_00a1:  stloc.s 8
+	IL_00a3:  nop 
+	IL_00a4:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::'.ctor'()
+	IL_00a9:  stloc.s 11
+	IL_00ab:  ldloc.s 8
+	IL_00ad:  call string class NAnt.Core.Tasks.NAntSchemaTask::GenerateIDFromType(class [mscorlib]System.Type)
+	IL_00b2:  stloc.s 12
+	IL_00b4:  ldarg.0 
+	IL_00b5:  ldloc.s 12
+	IL_00b7:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindComplexTypeByID(string)
+	IL_00bc:  stloc.s 13
+	IL_00be:  ldloc.s 11
+	IL_00c0:  ldarg.0 
+	IL_00c1:  ldloc.s 8
+	IL_00c3:  call instance string class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::GetDataTypeName(class [mscorlib]System.Type)
+	IL_00c8:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_Name(string)
+	IL_00cd:  ldloc.s 11
+	IL_00cf:  ldloc.s 13
+	IL_00d1:  callvirt instance class [System.Xml]System.Xml.XmlQualifiedName class [System.Xml]System.Xml.Schema.XmlSchemaType::get_QualifiedName()
+	IL_00d6:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_SchemaTypeName(class [System.Xml]System.Xml.XmlQualifiedName)
+	IL_00db:  ldloc.1 
+	IL_00dc:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaGroupBase::get_Items()
+	IL_00e1:  ldloc.s 11
+	IL_00e3:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_00e8:  pop 
+	IL_00e9:  nop 
+	IL_00ea:  ldloc.s 10
+	IL_00ec:  ldc.i4.1 
+	IL_00ed:  add 
+	IL_00ee:  stloc.s 10
+	IL_00f0:  ldloc.s 10
+	IL_00f2:  ldloc.s 9
+	IL_00f4:  ldlen 
+	IL_00f5:  conv.i4 
+	IL_00f6:  blt IL_009c
+
+	IL_00fb:  ldarg.3 
+	IL_00fc:  brfalse IL_0136
+
+	IL_0101:  nop 
+	IL_0102:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::'.ctor'()
+	IL_0107:  stloc.s 14
+	IL_0109:  ldloc.s 14
+	IL_010b:  ldstr "target"
+	IL_0110:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_Name(string)
+	IL_0115:  ldloc.s 14
+	IL_0117:  ldarg.0 
+	IL_0118:  ldfld class [System.Xml]System.Xml.Schema.XmlSchemaComplexType NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_targetCT
+	IL_011d:  callvirt instance class [System.Xml]System.Xml.XmlQualifiedName class [System.Xml]System.Xml.Schema.XmlSchemaType::get_QualifiedName()
+	IL_0122:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_SchemaTypeName(class [System.Xml]System.Xml.XmlQualifiedName)
+	IL_0127:  ldloc.1 
+	IL_0128:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaGroupBase::get_Items()
+	IL_012d:  ldloc.s 14
+	IL_012f:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_0134:  pop 
+	IL_0135:  nop 
+	IL_0136:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaAny::'.ctor'()
+	IL_013b:  stloc.s 15
+	IL_013d:  ldloc.s 15
+	IL_013f:  ldc.i4.0 
+	IL_0140:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
+	IL_0145:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MinOccurs(valuetype [mscorlib]System.Decimal)
+	IL_014a:  ldloc.s 15
+	IL_014c:  ldc.i4.m1 
+	IL_014d:  ldc.i4.m1 
+	IL_014e:  ldc.i4.m1 
+	IL_014f:  ldc.i4.0 
+	IL_0150:  ldc.i4.0 
+	IL_0151:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32, int32, int32, bool, unsigned int8)
+	IL_0156:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MaxOccurs(valuetype [mscorlib]System.Decimal)
+	IL_015b:  ldloc.s 15
+	IL_015d:  ldstr "##other"
+	IL_0162:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaAny::set_Namespace(string)
+	IL_0167:  ldloc.s 15
+	IL_0169:  ldc.i4.3 
+	IL_016a:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaAny::set_ProcessContents(valuetype [System.Xml]System.Xml.Schema.XmlSchemaContentProcessing)
+	IL_016f:  ldloc.1 
+	IL_0170:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaGroupBase::get_Items()
+	IL_0175:  ldloc.s 15
+	IL_0177:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_017c:  pop 
+	IL_017d:  ldloc.0 
+	IL_017e:  stloc.s 16
+	IL_0180:  br IL_0185
+
+	IL_0185:  ldloc.s 16
+	IL_0187:  ret 
+    } // end of method NAntSchemaGenerator::CreateTaskListComplexType
+
+    // method line 1488
+    .method family hidebysig 
+           instance default void ValidationEH (object sender, class [System.Xml]System.Xml.Schema.ValidationEventArgs args)  cil managed 
+    {
+        // Method begins at RVA 0x1b290
+	// Code size 136 (0x88)
+	.maxstack 4
+	.locals init (
+		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.2 
+	IL_0002:  callvirt instance valuetype [System.Xml]System.Xml.Schema.XmlSeverityType class [System.Xml]System.Xml.Schema.ValidationEventArgs::get_Severity()
+	IL_0007:  ldc.i4.1 
+	IL_0008:  bne.un IL_0023
+
+	IL_000d:  nop 
+	IL_000e:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.NAntSchemaTask::logger
+	IL_0013:  ldstr "WARNING: "
+	IL_0018:  callvirt instance void class [log4net]log4net.ILog::Info(object)
+	IL_001d:  nop 
+	IL_001e:  br IL_003f
+
+	IL_0023:  ldarg.2 
+	IL_0024:  callvirt instance valuetype [System.Xml]System.Xml.Schema.XmlSeverityType class [System.Xml]System.Xml.Schema.ValidationEventArgs::get_Severity()
+	IL_0029:  brtrue IL_003f
+
+	IL_002e:  nop 
+	IL_002f:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.NAntSchemaTask::logger
+	IL_0034:  ldstr "ERROR: "
+	IL_0039:  callvirt instance void class [log4net]log4net.ILog::Error(object)
+	IL_003e:  nop 
+	IL_003f:  ldarg.2 
+	IL_0040:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaException class [System.Xml]System.Xml.Schema.ValidationEventArgs::get_Exception()
+	IL_0045:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObject class [System.Xml]System.Xml.Schema.XmlSchemaException::get_SourceSchemaObject()
+	IL_004a:  isinst [System.Xml]System.Xml.Schema.XmlSchemaComplexType
+	IL_004f:  stloc.0 
+	IL_0050:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.NAntSchemaTask::logger
+	IL_0055:  ldarg.2 
+	IL_0056:  callvirt instance string object::ToString()
+	IL_005b:  callvirt instance void class [log4net]log4net.ILog::Info(object)
+	IL_0060:  ldloc.0 
+	IL_0061:  brfalse IL_0087
+
+	IL_0066:  nop 
+	IL_0067:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.NAntSchemaTask::logger
+	IL_006c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0071:  ldstr "{0}"
+	IL_0076:  ldloc.0 
+	IL_0077:  callvirt instance string class [System.Xml]System.Xml.Schema.XmlSchemaType::get_Name()
+	IL_007c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0081:  callvirt instance void class [log4net]log4net.ILog::Info(object)
+	IL_0086:  nop 
+	IL_0087:  ret 
+    } // end of method NAntSchemaGenerator::ValidationEH
+
+    // method line 1489
+    .method family hidebysig 
+           instance default class [System.Xml]System.Xml.Schema.XmlSchemaComplexType FindComplexTypeByID (string id)  cil managed 
+    {
+        // Method begins at RVA 0x1b324
+	// Code size 51 (0x33)
+	.maxstack 2
+	.locals init (
+		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionary NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantComplexTypes
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IDictionary::Contains(object)
+	IL_000d:  brfalse IL_002a
+
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldfld class [mscorlib]System.Collections.IDictionary NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantComplexTypes
+	IL_0019:  ldarg.1 
+	IL_001a:  callvirt instance object class [mscorlib]System.Collections.IDictionary::get_Item(object)
+	IL_001f:  castclass [System.Xml]System.Xml.Schema.XmlSchemaComplexType
+	IL_0024:  stloc.0 
+	IL_0025:  br IL_0031
+
+	IL_002a:  ldnull 
+	IL_002b:  stloc.0 
+	IL_002c:  br IL_0031
+
+	IL_0031:  ldloc.0 
+	IL_0032:  ret 
+    } // end of method NAntSchemaGenerator::FindComplexTypeByID
+
+    // method line 1490
+    .method family hidebysig 
+           instance default class [System.Xml]System.Xml.Schema.XmlSchemaComplexType FindOrCreateComplexType (class [mscorlib]System.Type t)  cil managed 
+    {
+        // Method begins at RVA 0x1b364
+	// Code size 1102 (0x44e)
+	.maxstack 6
+	.locals init (
+		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_0,
+		string	V_1,
+		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_2,
+		class [System.Xml]System.Xml.Schema.XmlSchemaSequence	V_3,
+		class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection	V_4,
+		class [mscorlib]System.Reflection.MemberInfo	V_5,
+		class [mscorlib]System.Reflection.MemberInfo[]	V_6,
+		int32	V_7,
+		class NAnt.Core.Attributes.TaskAttributeAttribute	V_8,
+		class NAnt.Core.Attributes.BuildElementAttribute	V_9,
+		class [System.Xml]System.Xml.Schema.XmlSchemaAttribute	V_10,
+		valuetype [mscorlib]System.Decimal	V_11,
+		class [System.Xml]System.Xml.Schema.XmlSchemaElement	V_12,
+		class [mscorlib]System.Type	V_13,
+		class [mscorlib]System.Reflection.MethodInfo	V_14,
+		class NAnt.Core.Attributes.BuildElementArrayAttribute	V_15,
+		class [mscorlib]System.Type	V_16,
+		class [mscorlib]System.Reflection.MethodInfo	V_17,
+		class [mscorlib]System.Reflection.MethodInfo[]	V_18,
+		int32	V_19,
+		class [mscorlib]System.Reflection.ParameterInfo	V_20,
+		class NAnt.Core.Attributes.BuildElementCollectionAttribute	V_21,
+		class [System.Xml]System.Xml.Schema.XmlSchemaComplexType	V_22,
+		class [System.Xml]System.Xml.Schema.XmlSchemaSequence	V_23,
+		class [System.Xml]System.Xml.Schema.XmlSchemaElement	V_24)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call string class NAnt.Core.Tasks.NAntSchemaTask::GenerateIDFromType(class [mscorlib]System.Type)
+	IL_0007:  stloc.1 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldloc.1 
+	IL_000a:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindComplexTypeByID(string)
+	IL_000f:  stloc.0 
+	IL_0010:  ldloc.0 
+	IL_0011:  brfalse IL_001e
+
+	IL_0016:  nop 
+	IL_0017:  ldloc.0 
+	IL_0018:  stloc.2 
+	IL_0019:  br IL_044c
+
+	IL_001e:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::'.ctor'()
+	IL_0023:  stloc.0 
+	IL_0024:  ldloc.0 
+	IL_0025:  ldloc.1 
+	IL_0026:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaType::set_Name(string)
+	IL_002b:  ldsfld string[] NAnt.Core.Tasks.NAntSchemaTask::mixedTaskNames
+	IL_0030:  ldloc.0 
+	IL_0031:  callvirt instance string class [System.Xml]System.Xml.Schema.XmlSchemaType::get_Name()
+	IL_0036:  call int32 class [mscorlib]System.Array::IndexOf<string> (!!0[], !!0)
+	IL_003b:  ldc.i4.m1 
+	IL_003c:  beq IL_004a
+
+	IL_0041:  nop 
+	IL_0042:  ldloc.0 
+	IL_0043:  ldc.i4.1 
+	IL_0044:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaType::set_IsMixed(bool)
+	IL_0049:  nop 
+	IL_004a:  ldarg.0 
+	IL_004b:  ldfld class [mscorlib]System.Collections.IDictionary NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::_nantComplexTypes
+	IL_0050:  ldloc.1 
+	IL_0051:  ldloc.0 
+	IL_0052:  callvirt instance void class [mscorlib]System.Collections.IDictionary::Add(object, object)
+	IL_0057:  ldnull 
+	IL_0058:  stloc.3 
+	IL_0059:  ldloc.0 
+	IL_005a:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_Attributes()
+	IL_005f:  stloc.s 4
+	IL_0061:  nop 
+	IL_0062:  ldarg.1 
+	IL_0063:  ldc.i4.s 0x14
+	IL_0065:  callvirt instance class [mscorlib]System.Reflection.MemberInfo[] class [mscorlib]System.Type::GetMembers(valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_006a:  stloc.s 6
+	IL_006c:  ldc.i4.0 
+	IL_006d:  stloc.s 7
+	IL_006f:  br IL_03fb
+
+	IL_0074:  ldloc.s 6
+	IL_0076:  ldloc.s 7
+	IL_0078:  ldelem.ref 
+	IL_0079:  stloc.s 5
+	IL_007b:  nop 
+	IL_007c:  ldloc.s 5
+	IL_007e:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_0083:  ldtoken [mscorlib]System.Object
+	IL_0088:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_008d:  callvirt instance bool class [mscorlib]System.Type::Equals(class [mscorlib]System.Type)
+	IL_0092:  brfalse IL_009d
+
+	IL_0097:  nop 
+	IL_0098:  br IL_03f5
+
+	IL_009d:  ldloc.s 5
+	IL_009f:  ldtoken NAnt.Core.Attributes.TaskAttributeAttribute
+	IL_00a4:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_00a9:  ldc.i4.0 
+	IL_00aa:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_00af:  castclass NAnt.Core.Attributes.TaskAttributeAttribute
+	IL_00b4:  stloc.s 8
+	IL_00b6:  ldloc.s 5
+	IL_00b8:  ldtoken NAnt.Core.Attributes.BuildElementAttribute
+	IL_00bd:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_00c2:  ldc.i4.0 
+	IL_00c3:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_00c8:  castclass NAnt.Core.Attributes.BuildElementAttribute
+	IL_00cd:  stloc.s 9
+	IL_00cf:  ldloc.s 8
+	IL_00d1:  brfalse IL_00fc
+
+	IL_00d6:  nop 
+	IL_00d7:  ldloc.s 8
+	IL_00d9:  callvirt instance string class NAnt.Core.Attributes.BuildAttributeAttribute::get_Name()
+	IL_00de:  ldloc.s 8
+	IL_00e0:  callvirt instance bool class NAnt.Core.Attributes.BuildAttributeAttribute::get_Required()
+	IL_00e5:  call class [System.Xml]System.Xml.Schema.XmlSchemaAttribute class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdAttribute(string, bool)
+	IL_00ea:  stloc.s 10
+	IL_00ec:  ldloc.s 4
+	IL_00ee:  ldloc.s 10
+	IL_00f0:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_00f5:  pop 
+	IL_00f6:  nop 
+	IL_00f7:  br IL_03f4
+
+	IL_00fc:  ldloc.s 9
+	IL_00fe:  brfalse IL_03f4
+
+	IL_0103:  nop 
+	IL_0104:  ldc.i4.0 
+	IL_0105:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
+	IL_010a:  stloc.s 11
+	IL_010c:  ldloc.s 9
+	IL_010e:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_Required()
+	IL_0113:  brfalse IL_0122
+
+	IL_0118:  nop 
+	IL_0119:  ldc.i4.1 
+	IL_011a:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
+	IL_011f:  stloc.s 11
+	IL_0121:  nop 
+	IL_0122:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::'.ctor'()
+	IL_0127:  stloc.s 12
+	IL_0129:  ldloc.s 12
+	IL_012b:  ldloc.s 11
+	IL_012d:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MinOccurs(valuetype [mscorlib]System.Decimal)
+	IL_0132:  ldloc.s 12
+	IL_0134:  ldc.i4.1 
+	IL_0135:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
+	IL_013a:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MaxOccurs(valuetype [mscorlib]System.Decimal)
+	IL_013f:  ldloc.s 12
+	IL_0141:  ldloc.s 9
+	IL_0143:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_0148:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_Name(string)
+	IL_014d:  ldloc.s 5
+	IL_014f:  isinst [mscorlib]System.Reflection.PropertyInfo
+	IL_0154:  brfalse IL_016e
+
+	IL_0159:  nop 
+	IL_015a:  ldloc.s 5
+	IL_015c:  castclass [mscorlib]System.Reflection.PropertyInfo
+	IL_0161:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_0166:  stloc.s 13
+	IL_0168:  nop 
+	IL_0169:  br IL_01e9
+
+	IL_016e:  ldloc.s 5
+	IL_0170:  isinst [mscorlib]System.Reflection.FieldInfo
+	IL_0175:  brfalse IL_018f
+
+	IL_017a:  nop 
+	IL_017b:  ldloc.s 5
+	IL_017d:  castclass [mscorlib]System.Reflection.FieldInfo
+	IL_0182:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.FieldInfo::get_FieldType()
+	IL_0187:  stloc.s 13
+	IL_0189:  nop 
+	IL_018a:  br IL_01e9
+
+	IL_018f:  ldloc.s 5
+	IL_0191:  isinst [mscorlib]System.Reflection.MethodInfo
+	IL_0196:  brfalse IL_01dd
+
+	IL_019b:  nop 
+	IL_019c:  ldloc.s 5
+	IL_019e:  castclass [mscorlib]System.Reflection.MethodInfo
+	IL_01a3:  stloc.s 14
+	IL_01a5:  ldloc.s 14
+	IL_01a7:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_01ac:  ldlen 
+	IL_01ad:  conv.i4 
+	IL_01ae:  ldc.i4.1 
+	IL_01af:  bne.un IL_01cb
+
+	IL_01b4:  nop 
+	IL_01b5:  ldloc.s 14
+	IL_01b7:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_01bc:  ldc.i4.0 
+	IL_01bd:  ldelem.ref 
+	IL_01be:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	IL_01c3:  stloc.s 13
+	IL_01c5:  nop 
+	IL_01c6:  br IL_01d7
+
+	IL_01cb:  nop 
+	IL_01cc:  ldstr "Method should have one parameter."
+	IL_01d1:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
+	IL_01d6:  throw 
+	IL_01d7:  nop 
+	IL_01d8:  br IL_01e9
+
+	IL_01dd:  nop 
+	IL_01de:  ldstr "Member Type != Field/Property/Method"
+	IL_01e3:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
+	IL_01e8:  throw 
+	IL_01e9:  ldloc.s 5
+	IL_01eb:  ldtoken NAnt.Core.Attributes.BuildElementArrayAttribute
+	IL_01f0:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_01f5:  ldc.i4.0 
+	IL_01f6:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_01fb:  castclass NAnt.Core.Attributes.BuildElementArrayAttribute
+	IL_0200:  stloc.s 15
+	IL_0202:  ldloc.s 15
+	IL_0204:  brfalse IL_0312
+
+	IL_0209:  nop 
+	IL_020a:  ldloc.s 15
+	IL_020c:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Attributes.BuildElementArrayAttribute::get_ElementType()
+	IL_0211:  ldnull 
+	IL_0212:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0217:  brfalse IL_02b5
+
+	IL_021c:  nop 
+	IL_021d:  ldloc.s 13
+	IL_021f:  callvirt instance bool class [mscorlib]System.Type::get_IsArray()
+	IL_0224:  brfalse IL_0239
+
+	IL_0229:  nop 
+	IL_022a:  ldloc.s 13
+	IL_022c:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Type::GetElementType()
+	IL_0231:  stloc.s 13
+	IL_0233:  nop 
+	IL_0234:  br IL_02af
+
+	IL_0239:  nop 
+	IL_023a:  ldnull 
+	IL_023b:  stloc.s 16
+	IL_023d:  nop 
+	IL_023e:  ldloc.s 13
+	IL_0240:  ldc.i4.s 0x14
+	IL_0242:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_0247:  stloc.s 18
+	IL_0249:  ldc.i4.0 
+	IL_024a:  stloc.s 19
+	IL_024c:  br IL_029f
+
+	IL_0251:  ldloc.s 18
+	IL_0253:  ldloc.s 19
+	IL_0255:  ldelem.ref 
+	IL_0256:  stloc.s 17
+	IL_0258:  nop 
+	IL_0259:  ldloc.s 17
+	IL_025b:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_0260:  ldstr "Add"
+	IL_0265:  call bool string::op_Equality(string, string)
+	IL_026a:  brfalse IL_0298
+
+	IL_026f:  ldloc.s 17
+	IL_0271:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_0276:  ldlen 
+	IL_0277:  conv.i4 
+	IL_0278:  ldc.i4.1 
+	IL_0279:  bne.un IL_0298
+
+	IL_027e:  nop 
+	IL_027f:  ldloc.s 17
+	IL_0281:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_0286:  ldc.i4.0 
+	IL_0287:  ldelem.ref 
+	IL_0288:  stloc.s 20
+	IL_028a:  ldloc.s 20
+	IL_028c:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	IL_0291:  stloc.s 16
+	IL_0293:  br IL_02aa
+
+	IL_0298:  nop 
+	IL_0299:  ldloc.s 19
+	IL_029b:  ldc.i4.1 
+	IL_029c:  add 
+	IL_029d:  stloc.s 19
+	IL_029f:  ldloc.s 19
+	IL_02a1:  ldloc.s 18
+	IL_02a3:  ldlen 
+	IL_02a4:  conv.i4 
+	IL_02a5:  blt IL_0251
+
+	IL_02aa:  ldloc.s 16
+	IL_02ac:  stloc.s 13
+	IL_02ae:  nop 
+	IL_02af:  nop 
+	IL_02b0:  br IL_02c0
+
+	IL_02b5:  nop 
+	IL_02b6:  ldloc.s 15
+	IL_02b8:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Attributes.BuildElementArrayAttribute::get_ElementType()
+	IL_02bd:  stloc.s 13
+	IL_02bf:  nop 
+	IL_02c0:  ldloc.s 13
+	IL_02c2:  ldnull 
+	IL_02c3:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_02c8:  brtrue IL_02e3
+
+	IL_02cd:  ldtoken NAnt.Core.Element
+	IL_02d2:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_02d7:  ldloc.s 13
+	IL_02d9:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_02de:  brtrue IL_0311
+
+	IL_02e3:  nop 
+	IL_02e4:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_02e9:  ldstr "NA1140"
+	IL_02ee:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_02f3:  ldloc.s 5
+	IL_02f5:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_02fa:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_02ff:  ldloc.s 5
+	IL_0301:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_0306:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_030b:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_0310:  throw 
+	IL_0311:  nop 
+	IL_0312:  ldloc.s 5
+	IL_0314:  ldtoken NAnt.Core.Attributes.BuildElementCollectionAttribute
+	IL_0319:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_031e:  ldc.i4.0 
+	IL_031f:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_0324:  castclass NAnt.Core.Attributes.BuildElementCollectionAttribute
+	IL_0329:  stloc.s 21
+	IL_032b:  ldloc.s 21
+	IL_032d:  brfalse IL_03aa
+
+	IL_0332:  nop 
+	IL_0333:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::'.ctor'()
+	IL_0338:  stloc.s 22
+	IL_033a:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaSequence::'.ctor'()
+	IL_033f:  stloc.s 23
+	IL_0341:  ldloc.s 22
+	IL_0343:  ldloc.s 23
+	IL_0345:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::set_Particle(class [System.Xml]System.Xml.Schema.XmlSchemaParticle)
+	IL_034a:  ldloc.s 23
+	IL_034c:  ldc.i4.0 
+	IL_034d:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
+	IL_0352:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MinOccurs(valuetype [mscorlib]System.Decimal)
+	IL_0357:  ldloc.s 23
+	IL_0359:  ldstr "unbounded"
+	IL_035e:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaParticle::set_MaxOccursString(string)
+	IL_0363:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::'.ctor'()
+	IL_0368:  stloc.s 24
+	IL_036a:  ldloc.s 24
+	IL_036c:  ldloc.s 21
+	IL_036e:  callvirt instance string class NAnt.Core.Attributes.BuildElementCollectionAttribute::get_ChildElementName()
+	IL_0373:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_Name(string)
+	IL_0378:  ldloc.s 24
+	IL_037a:  ldarg.0 
+	IL_037b:  ldloc.s 13
+	IL_037d:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindOrCreateComplexType(class [mscorlib]System.Type)
+	IL_0382:  callvirt instance class [System.Xml]System.Xml.XmlQualifiedName class [System.Xml]System.Xml.Schema.XmlSchemaType::get_QualifiedName()
+	IL_0387:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_SchemaTypeName(class [System.Xml]System.Xml.XmlQualifiedName)
+	IL_038c:  ldloc.s 23
+	IL_038e:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaGroupBase::get_Items()
+	IL_0393:  ldloc.s 24
+	IL_0395:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_039a:  pop 
+	IL_039b:  ldloc.s 12
+	IL_039d:  ldloc.s 22
+	IL_039f:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_SchemaType(class [System.Xml]System.Xml.Schema.XmlSchemaType)
+	IL_03a4:  nop 
+	IL_03a5:  br IL_03c0
+
+	IL_03aa:  nop 
+	IL_03ab:  ldloc.s 12
+	IL_03ad:  ldarg.0 
+	IL_03ae:  ldloc.s 13
+	IL_03b0:  call instance class [System.Xml]System.Xml.Schema.XmlSchemaComplexType class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::FindOrCreateComplexType(class [mscorlib]System.Type)
+	IL_03b5:  callvirt instance class [System.Xml]System.Xml.XmlQualifiedName class [System.Xml]System.Xml.Schema.XmlSchemaType::get_QualifiedName()
+	IL_03ba:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaElement::set_SchemaTypeName(class [System.Xml]System.Xml.XmlQualifiedName)
+	IL_03bf:  nop 
+	IL_03c0:  ldloc.3 
+	IL_03c1:  brtrue IL_03e5
+
+	IL_03c6:  nop 
+	IL_03c7:  ldc.i4.0 
+	IL_03c8:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32)
+	IL_03cd:  ldc.i4.m1 
+	IL_03ce:  ldc.i4.m1 
+	IL_03cf:  ldc.i4.m1 
+	IL_03d0:  ldc.i4.0 
+	IL_03d1:  ldc.i4.0 
+	IL_03d2:  newobj instance void valuetype [mscorlib]System.Decimal::'.ctor'(int32, int32, int32, bool, unsigned int8)
+	IL_03d7:  call class [System.Xml]System.Xml.Schema.XmlSchemaSequence class NAnt.Core.Tasks.NAntSchemaTask::CreateXsdSequence(valuetype [mscorlib]System.Decimal, valuetype [mscorlib]System.Decimal)
+	IL_03dc:  stloc.3 
+	IL_03dd:  ldloc.0 
+	IL_03de:  ldloc.3 
+	IL_03df:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::set_Particle(class [System.Xml]System.Xml.Schema.XmlSchemaParticle)
+	IL_03e4:  nop 
+	IL_03e5:  ldloc.3 
+	IL_03e6:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchemaGroupBase::get_Items()
+	IL_03eb:  ldloc.s 12
+	IL_03ed:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_03f2:  pop 
+	IL_03f3:  nop 
+	IL_03f4:  nop 
+	IL_03f5:  ldloc.s 7
+	IL_03f7:  ldc.i4.1 
+	IL_03f8:  add 
+	IL_03f9:  stloc.s 7
+	IL_03fb:  ldloc.s 7
+	IL_03fd:  ldloc.s 6
+	IL_03ff:  ldlen 
+	IL_0400:  conv.i4 
+	IL_0401:  blt IL_0074
+
+	IL_0406:  ldloc.0 
+	IL_0407:  newobj instance void class [System.Xml]System.Xml.Schema.XmlSchemaAnyAttribute::'.ctor'()
+	IL_040c:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::set_AnyAttribute(class [System.Xml]System.Xml.Schema.XmlSchemaAnyAttribute)
+	IL_0411:  ldloc.0 
+	IL_0412:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaAnyAttribute class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_AnyAttribute()
+	IL_0417:  ldstr "##other"
+	IL_041c:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaAnyAttribute::set_Namespace(string)
+	IL_0421:  ldloc.0 
+	IL_0422:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaAnyAttribute class [System.Xml]System.Xml.Schema.XmlSchemaComplexType::get_AnyAttribute()
+	IL_0427:  ldc.i4.1 
+	IL_0428:  callvirt instance void class [System.Xml]System.Xml.Schema.XmlSchemaAnyAttribute::set_ProcessContents(valuetype [System.Xml]System.Xml.Schema.XmlSchemaContentProcessing)
+	IL_042d:  ldarg.0 
+	IL_042e:  call instance class [System.Xml]System.Xml.Schema.XmlSchema class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::get_Schema()
+	IL_0433:  callvirt instance class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection class [System.Xml]System.Xml.Schema.XmlSchema::get_Items()
+	IL_0438:  ldloc.0 
+	IL_0439:  callvirt instance int32 class [System.Xml]System.Xml.Schema.XmlSchemaObjectCollection::Add(class [System.Xml]System.Xml.Schema.XmlSchemaObject)
+	IL_043e:  pop 
+	IL_043f:  ldarg.0 
+	IL_0440:  call instance void class NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::Compile()
+	IL_0445:  ldloc.0 
+	IL_0446:  stloc.2 
+	IL_0447:  br IL_044c
+
+	IL_044c:  ldloc.2 
+	IL_044d:  ret 
+    } // end of method NAntSchemaGenerator::FindOrCreateComplexType
+
+    // method line 1491
+    .method private hidebysig 
+           instance default string GetTaskName (class [mscorlib]System.Type t)  cil managed 
+    {
+        // Method begins at RVA 0x1b7c0
+	// Code size 58 (0x3a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.Attributes.TaskNameAttribute[]	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldtoken NAnt.Core.Attributes.TaskNameAttribute
+	IL_0007:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000c:  ldc.i4.0 
+	IL_000d:  callvirt instance object[] class [mscorlib]System.Reflection.MemberInfo::GetCustomAttributes(class [mscorlib]System.Type, bool)
+	IL_0012:  castclass class NAnt.Core.Attributes.TaskNameAttribute[]
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldlen 
+	IL_001a:  conv.i4 
+	IL_001b:  ldc.i4.1 
+	IL_001c:  bne.un IL_0030
+
+	IL_0021:  nop 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldc.i4.0 
+	IL_0024:  ldelem.ref 
+	IL_0025:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
+	IL_002a:  stloc.1 
+	IL_002b:  br IL_0038
+
+	IL_0030:  nop 
+	IL_0031:  ldnull 
+	IL_0032:  stloc.1 
+	IL_0033:  br IL_0038
+
+	IL_0038:  ldloc.1 
+	IL_0039:  ret 
+    } // end of method NAntSchemaGenerator::GetTaskName
+
+    // method line 1492
+    .method private hidebysig 
+           instance default string GetDataTypeName (class [mscorlib]System.Type t)  cil managed 
+    {
+        // Method begins at RVA 0x1b808
+	// Code size 58 (0x3a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.Attributes.ElementNameAttribute[]	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
+	IL_0007:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000c:  ldc.i4.0 
+	IL_000d:  callvirt instance object[] class [mscorlib]System.Reflection.MemberInfo::GetCustomAttributes(class [mscorlib]System.Type, bool)
+	IL_0012:  castclass class NAnt.Core.Attributes.ElementNameAttribute[]
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldlen 
+	IL_001a:  conv.i4 
+	IL_001b:  ldc.i4.1 
+	IL_001c:  bne.un IL_0030
+
+	IL_0021:  nop 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldc.i4.0 
+	IL_0024:  ldelem.ref 
+	IL_0025:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
+	IL_002a:  stloc.1 
+	IL_002b:  br IL_0038
+
+	IL_0030:  nop 
+	IL_0031:  ldnull 
+	IL_0032:  stloc.1 
+	IL_0033:  br IL_0038
+
+	IL_0038:  ldloc.1 
+	IL_0039:  ret 
+    } // end of method NAntSchemaGenerator::GetDataTypeName
+
+	.property instance class [System.Xml]System.Xml.Schema.XmlSchema Schema ()
+	{
+		.get instance default class [System.Xml]System.Xml.Schema.XmlSchema NAnt.Core.Tasks.NAntSchemaTask/NAntSchemaGenerator::get_Schema () 
+	}
+  } // end of class NAntSchemaGenerator
+
+  } // end of class NAnt.Core.Tasks.NAntSchemaTask
+}
+
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit SleepTask
+  	extends NAnt.Core.Task
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 73 6C 65 65 70 00 00 ) // ...sleep..
+
+    .field  private  int32 _hours
+    .field  private  int32 _minutes
+    .field  private  int32 _seconds
+    .field  private  int32 _milliseconds
+
+    // method line 1493
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x1b84e
+	// Code size 35 (0x23)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld int32 NAnt.Core.Tasks.SleepTask::_hours
+	IL_0007:  ldarg.0 
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stfld int32 NAnt.Core.Tasks.SleepTask::_minutes
+	IL_000e:  ldarg.0 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  stfld int32 NAnt.Core.Tasks.SleepTask::_seconds
+	IL_0015:  ldarg.0 
+	IL_0016:  ldc.i4.0 
+	IL_0017:  stfld int32 NAnt.Core.Tasks.SleepTask::_milliseconds
+	IL_001c:  ldarg.0 
+	IL_001d:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0022:  ret 
+    } // end of method SleepTask::.ctor
+
+    // method line 1494
     .method public hidebysig specialname 
-           instance default class NAnt.Core.PropertyDictionary get_FrameworkNeutralProperties ()  cil managed 
+           instance default int32 get_Hours ()  cil managed 
     {
-        // Method begins at RVA 0x1e6e4
+        // Method begins at RVA 0x1b874
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.PropertyDictionary	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.Project::_frameworkNeutralProperties
+	IL_0002:  ldfld int32 NAnt.Core.Tasks.SleepTask::_hours
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Project::get_FrameworkNeutralProperties
+    } // end of method SleepTask::get_Hours
 
-    // method line 1714
+    // method line 1495
     .method public hidebysig specialname 
-           instance default class NAnt.Core.DataTypeBaseDictionary get_DataTypeReferences ()  cil managed 
+           instance default void set_Hours (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1b88f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Core.Tasks.SleepTask::_hours
+	IL_0008:  ret 
+    } // end of method SleepTask::set_Hours
+
+    // method line 1496
+    .method public hidebysig specialname 
+           instance default int32 get_Minutes ()  cil managed 
     {
-        // Method begins at RVA 0x1e700
+        // Method begins at RVA 0x1b89c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.DataTypeBaseDictionary	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::_dataTypeReferences
+	IL_0002:  ldfld int32 NAnt.Core.Tasks.SleepTask::_minutes
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Project::get_DataTypeReferences
+    } // end of method SleepTask::get_Minutes
 
-    // method line 1715
+    // method line 1497
     .method public hidebysig specialname 
-           instance default class NAnt.Core.TargetCollection get_Targets ()  cil managed 
+           instance default void set_Minutes (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1b8b7
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Core.Tasks.SleepTask::_minutes
+	IL_0008:  ret 
+    } // end of method SleepTask::set_Minutes
+
+    // method line 1498
+    .method public hidebysig specialname 
+           instance default int32 get_Seconds ()  cil managed 
     {
-        // Method begins at RVA 0x1e71c
+        // Method begins at RVA 0x1b8c4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.TargetCollection	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.TargetCollection NAnt.Core.Project::_targets
+	IL_0002:  ldfld int32 NAnt.Core.Tasks.SleepTask::_seconds
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Project::get_Targets
+    } // end of method SleepTask::get_Seconds
 
-    // method line 1716
+    // method line 1499
     .method public hidebysig specialname 
-           instance default class NAnt.Core.BuildListenerCollection get_BuildListeners ()  cil managed 
+           instance default void set_Seconds (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1b8df
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Core.Tasks.SleepTask::_seconds
+	IL_0008:  ret 
+    } // end of method SleepTask::set_Seconds
+
+    // method line 1500
+    .method public hidebysig specialname 
+           instance default int32 get_Milliseconds ()  cil managed 
     {
-        // Method begins at RVA 0x1e738
+        // Method begins at RVA 0x1b8ec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.BuildListenerCollection	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.BuildListenerCollection NAnt.Core.Project::_buildListeners
+	IL_0002:  ldfld int32 NAnt.Core.Tasks.SleepTask::_milliseconds
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Project::get_BuildListeners
+    } // end of method SleepTask::get_Milliseconds
 
-    // method line 1717
-    .method assembly hidebysig specialname 
-           instance default class NAnt.Core.LocationMap get_LocationMap ()  cil managed 
+    // method line 1501
+    .method public hidebysig specialname 
+           instance default void set_Milliseconds (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x1e754
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1b907
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Core.Tasks.SleepTask::_milliseconds
+	IL_0008:  ret 
+    } // end of method SleepTask::set_Milliseconds
+
+    // method line 1502
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0x1b911
+	// Code size 32 (0x20)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance int32 class NAnt.Core.Tasks.SleepTask::GetSleepTime()
+	IL_0007:  ldc.i4.0 
+	IL_0008:  bge IL_001f
+
+	IL_000d:  nop 
+	IL_000e:  ldstr "Negative sleep periods are not supported."
+	IL_0013:  ldarg.0 
+	IL_0014:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0019:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_001e:  throw 
+	IL_001f:  ret 
+    } // end of method SleepTask::Initialize
+
+    // method line 1503
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x1b934
+	// Code size 47 (0x2f)
+	.maxstack 7
 	.locals init (
-		class NAnt.Core.LocationMap	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.LocationMap NAnt.Core.Project::_locationMap
+	IL_0002:  call instance int32 class NAnt.Core.Tasks.SleepTask::GetSleepTime()
 	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Project::get_LocationMap
+	IL_0008:  ldarg.0 
+	IL_0009:  ldc.i4 3000
+	IL_000e:  ldstr "Sleeping for {0} milliseconds."
+	IL_0013:  ldc.i4.1 
+	IL_0014:  newarr [mscorlib]System.Object
+	IL_0019:  dup 
+	IL_001a:  ldc.i4.0 
+	IL_001b:  ldloc.0 
+	IL_001c:  box [mscorlib]System.Int32
+	IL_0021:  stelem.ref 
+	IL_0022:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0027:  ldarg.0 
+	IL_0028:  ldloc.0 
+	IL_0029:  call instance void class NAnt.Core.Tasks.SleepTask::DoSleep(int32)
+	IL_002e:  ret 
+    } // end of method SleepTask::ExecuteTask
 
-    // method line 1718
-    .method public hidebysig 
-           instance default class NAnt.Core.Location GetLocation (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    // method line 1504
+    .method private hidebysig 
+           instance default int32 GetSleepTime ()  cil managed 
     {
-        // Method begins at RVA 0x1e770
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x1b970
+	// Code size 48 (0x30)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Location	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  call instance int32 class NAnt.Core.Tasks.SleepTask::get_Hours()
+	IL_0007:  ldc.i4.s 0x3c
+	IL_0009:  mul 
+	IL_000a:  ldarg.0 
+	IL_000b:  call instance int32 class NAnt.Core.Tasks.SleepTask::get_Minutes()
+	IL_0010:  add 
+	IL_0011:  ldc.i4.s 0x3c
+	IL_0013:  mul 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance int32 class NAnt.Core.Tasks.SleepTask::get_Seconds()
+	IL_001a:  add 
+	IL_001b:  ldc.i4 1000
+	IL_0020:  mul 
+	IL_0021:  ldarg.0 
+	IL_0022:  call instance int32 class NAnt.Core.Tasks.SleepTask::get_Milliseconds()
+	IL_0027:  add 
+	IL_0028:  stloc.0 
+	IL_0029:  br IL_002e
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method Project::GetLocation
+	IL_002e:  ldloc.0 
+	IL_002f:  ret 
+    } // end of method SleepTask::GetSleepTime
 
-    // method line 1719
-    .method public hidebysig 
-           instance default void OnBuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    // method line 1505
+    .method private hidebysig 
+           instance default void DoSleep (int32 millis)  cil managed 
     {
-        // Method begins at RVA 0x1e791
-	// Code size 28 (0x1c)
+        // Method begins at RVA 0x1b9ac
+	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildStarted
-	IL_0007:  brfalse IL_001b
+	IL_0001:  ldarg.1 
+	IL_0002:  call void class [mscorlib]System.Threading.Thread::Sleep(int32)
+	IL_0007:  ret 
+    } // end of method SleepTask::DoSleep
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildStarted
-	IL_0013:  ldarg.1 
-	IL_0014:  ldarg.2 
-	IL_0015:  callvirt instance void class NAnt.Core.BuildEventHandler::Invoke(object, class NAnt.Core.BuildEventArgs)
-	IL_001a:  nop 
-	IL_001b:  ret 
-    } // end of method Project::OnBuildStarted
+	.property instance int32 Hours ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 68 6F 75 72 73 00 00 ) // ...hours..
 
-    // method line 1720
-    .method public hidebysig 
-           instance default void OnBuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 FF FF FF 7F 00 00 ) // ............
+
+		.get instance default int32 NAnt.Core.Tasks.SleepTask::get_Hours () 
+		.set instance default void NAnt.Core.Tasks.SleepTask::set_Hours (int32 'value') 
+	}
+	.property instance int32 Minutes ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6D 69 6E 75 74 65 73 00 00 ) // ...minutes..
+
+		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 FF FF FF 7F 00 00 ) // ............
+
+		.get instance default int32 NAnt.Core.Tasks.SleepTask::get_Minutes () 
+		.set instance default void NAnt.Core.Tasks.SleepTask::set_Minutes (int32 'value') 
+	}
+	.property instance int32 Seconds ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 73 65 63 6F 6E 64 73 00 00 ) // ...seconds..
+
+		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 FF FF FF 7F 00 00 ) // ............
+
+		.get instance default int32 NAnt.Core.Tasks.SleepTask::get_Seconds () 
+		.set instance default void NAnt.Core.Tasks.SleepTask::set_Seconds (int32 'value') 
+	}
+	.property instance int32 Milliseconds ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0C 6D 69 6C 6C 69 73 65 63 6F 6E 64 73 00   // ...milliseconds.
+		00                                              ) // .
+
+		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 FF FF FF 7F 00 00 ) // ............
+
+		.get instance default int32 NAnt.Core.Tasks.SleepTask::get_Milliseconds () 
+		.set instance default void NAnt.Core.Tasks.SleepTask::set_Milliseconds (int32 'value') 
+	}
+  } // end of class NAnt.Core.Tasks.SleepTask
+}
+
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi abstract serializable beforefieldinit ExternalProgramBase
+  	extends NAnt.Core.Task
+  {
+    .field  private  class [mscorlib]System.IO.StreamReader _stdError
+    .field  private  class [mscorlib]System.IO.StreamReader _stdOut
+    .field  private  class NAnt.Core.Types.ArgumentCollection _arguments
+    .field  private  valuetype NAnt.Core.Types.ManagedExecution _managed
+    .field  private  string _exeName
+    .field  private  int32 _timeout
+    .field  private  class [mscorlib]System.IO.TextWriter _outputWriter
+    .field  private  class [mscorlib]System.IO.TextWriter _errorWriter
+    .field  private  int32 _exitCode
+    .field  private  bool _spawn
+    .field  private  int32 _processId
+    .field  private  bool _useRuntimeEngine
+    .field public static literal  int32 UnknownExitCode = int32(0xfffffc18)
+    .field  private static initonly  class [log4net]log4net.ILog logger
+    .field  private static  object _lockObject
+
+    // method line 1506
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1e7ae
-	// Code size 28 (0x1c)
+        // Method begins at RVA 0x18f26
+	// Code size 54 (0x36)
 	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class NAnt.Core.Types.ArgumentCollection::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.Types.ArgumentCollection NAnt.Core.Tasks.ExternalProgramBase::_arguments
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4.0 
+	IL_000d:  stfld valuetype NAnt.Core.Types.ManagedExecution NAnt.Core.Tasks.ExternalProgramBase::_managed
+	IL_0012:  ldarg.0 
+	IL_0013:  ldc.i4 2147483647
+	IL_0018:  stfld int32 NAnt.Core.Tasks.ExternalProgramBase::_timeout
+	IL_001d:  ldarg.0 
+	IL_001e:  ldc.i4 -1000
+	IL_0023:  stfld int32 NAnt.Core.Tasks.ExternalProgramBase::_exitCode
+	IL_0028:  ldarg.0 
+	IL_0029:  ldc.i4.0 
+	IL_002a:  stfld int32 NAnt.Core.Tasks.ExternalProgramBase::_processId
+	IL_002f:  ldarg.0 
+	IL_0030:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0035:  ret 
+    } // end of method ExternalProgramBase::.ctor
+
+    // method line 1507
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_ExeName ()  cil managed 
+    {
+        // Method begins at RVA 0x18f60
+	// Code size 37 (0x25)
+	.maxstack 1
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildFinished
-	IL_0007:  brfalse IL_001b
+	IL_0002:  ldfld string NAnt.Core.Tasks.ExternalProgramBase::_exeName
+	IL_0007:  brfalse IL_0017
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildFinished
-	IL_0013:  ldarg.1 
-	IL_0014:  ldarg.2 
-	IL_0015:  callvirt instance void class NAnt.Core.BuildEventHandler::Invoke(object, class NAnt.Core.BuildEventArgs)
-	IL_001a:  nop 
-	IL_001b:  ret 
-    } // end of method Project::OnBuildFinished
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld string NAnt.Core.Tasks.ExternalProgramBase::_exeName
+	IL_0012:  br IL_001d
 
-    // method line 1721
-    .method public hidebysig 
-           instance default void OnTargetStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+	IL_0017:  ldarg.0 
+	IL_0018:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_001d:  stloc.0 
+	IL_001e:  br IL_0023
+
+	IL_0023:  ldloc.0 
+	IL_0024:  ret 
+    } // end of method ExternalProgramBase::get_ExeName
+
+    // method line 1508
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_ExeName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1e7cb
-	// Code size 28 (0x1c)
+        // Method begins at RVA 0x18f91
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetStarted
-	IL_0007:  brfalse IL_001b
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetStarted
-	IL_0013:  ldarg.1 
-	IL_0014:  ldarg.2 
-	IL_0015:  callvirt instance void class NAnt.Core.BuildEventHandler::Invoke(object, class NAnt.Core.BuildEventArgs)
-	IL_001a:  nop 
-	IL_001b:  ret 
-    } // end of method Project::OnTargetStarted
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Tasks.ExternalProgramBase::_exeName
+	IL_0008:  ret 
+    } // end of method ExternalProgramBase::set_ExeName
 
-    // method line 1722
-    .method public hidebysig 
-           instance default void OnTargetFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    // method line 1509
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x1e7e8
-	// Code size 28 (0x1c)
-	.maxstack 8
+        // Method begins at RVA 0x18f9c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetFinished
-	IL_0007:  brfalse IL_001b
+	IL_0002:  call instance string class NAnt.Core.Tasks.ExternalProgramBase::DetermineFilePath()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetFinished
-	IL_0013:  ldarg.1 
-	IL_0014:  ldarg.2 
-	IL_0015:  callvirt instance void class NAnt.Core.BuildEventHandler::Invoke(object, class NAnt.Core.BuildEventArgs)
-	IL_001a:  nop 
-	IL_001b:  ret 
-    } // end of method Project::OnTargetFinished
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExternalProgramBase::get_ProgramFileName
 
-    // method line 1723
-    .method public hidebysig 
-           instance default void OnTaskStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    // method line 1510
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x1e805
-	// Code size 28 (0x1c)
-	.maxstack 8
+        // Method begins at RVA 0x0
+    } // end of method ExternalProgramBase::get_ProgramArguments
+
+    // method line 1511
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Output ()  cil managed 
+    {
+        // Method begins at RVA 0x18fb8
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskStarted
-	IL_0007:  brfalse IL_001b
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskStarted
-	IL_0013:  ldarg.1 
-	IL_0014:  ldarg.2 
-	IL_0015:  callvirt instance void class NAnt.Core.BuildEventHandler::Invoke(object, class NAnt.Core.BuildEventArgs)
-	IL_001a:  nop 
-	IL_001b:  ret 
-    } // end of method Project::OnTaskStarted
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ExternalProgramBase::get_Output
 
-    // method line 1724
-    .method public hidebysig 
-           instance default void OnTaskFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    // method line 1512
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Output (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x1e822
-	// Code size 28 (0x1c)
+        // Method begins at RVA 0x18fce
+	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskFinished
-	IL_0007:  brfalse IL_001b
+	IL_0001:  ret 
+    } // end of method ExternalProgramBase::set_Output
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskFinished
-	IL_0013:  ldarg.1 
-	IL_0014:  ldarg.2 
-	IL_0015:  callvirt instance void class NAnt.Core.BuildEventHandler::Invoke(object, class NAnt.Core.BuildEventArgs)
-	IL_001a:  nop 
-	IL_001b:  ret 
-    } // end of method Project::OnTaskFinished
+    // method line 1513
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_OutputAppend ()  cil managed 
+    {
+        // Method begins at RVA 0x18fd4
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-    // method line 1725
-    .method public hidebysig 
-           instance default void OnMessageLogged (class NAnt.Core.BuildEventArgs e)  cil managed 
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ExternalProgramBase::get_OutputAppend
+
+    // method line 1514
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_OutputAppend (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x1e83f
-	// Code size 28 (0x1c)
+        // Method begins at RVA 0x18fea
+	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::MessageLogged
-	IL_0007:  brfalse IL_001b
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::MessageLogged
-	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  callvirt instance void class NAnt.Core.BuildEventHandler::Invoke(object, class NAnt.Core.BuildEventArgs)
-	IL_001a:  nop 
-	IL_001b:  ret 
-    } // end of method Project::OnMessageLogged
+	IL_0001:  ret 
+    } // end of method ExternalProgramBase::set_OutputAppend
 
-    // method line 1726
-    .method public hidebysig 
-           instance default void Log (valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
+    // method line 1515
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x1e85c
-	// Code size 30 (0x1e)
-	.maxstack 2
+        // Method begins at RVA 0x18ff0
+	// Code size 25 (0x19)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.BuildEventArgs	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Project)
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  ldarg.2 
-	IL_000a:  callvirt instance void class NAnt.Core.BuildEventArgs::set_Message(string)
-	IL_000f:  ldloc.0 
-	IL_0010:  ldarg.1 
-	IL_0011:  callvirt instance void class NAnt.Core.BuildEventArgs::set_MessageLevel(valuetype NAnt.Core.Level)
-	IL_0016:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_000c:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
 	IL_0017:  ldloc.0 
-	IL_0018:  call instance void class NAnt.Core.Project::OnMessageLogged(class NAnt.Core.BuildEventArgs)
-	IL_001d:  ret 
-    } // end of method Project::Log
+	IL_0018:  ret 
+    } // end of method ExternalProgramBase::get_BaseDirectory
 
-    // method line 1727
-    .method public hidebysig 
-           instance default void Log (valuetype NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
+    // method line 1516
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-	.param [3]
-	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+        // Method begins at RVA 0x19015
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method ExternalProgramBase::set_BaseDirectory
 
-        // Method begins at RVA 0x1e888
-	// Code size 41 (0x29)
-	.maxstack 4
+    // method line 1517
+    .method public hidebysig specialname 
+           instance default int32 get_TimeOut ()  cil managed 
+    {
+        // Method begins at RVA 0x19018
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.BuildEventArgs	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Project)
+	IL_0002:  ldfld int32 NAnt.Core.Tasks.ExternalProgramBase::_timeout
 	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_000e:  ldarg.2 
-	IL_000f:  ldarg.3 
-	IL_0010:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0015:  callvirt instance void class NAnt.Core.BuildEventArgs::set_Message(string)
-	IL_001a:  ldloc.0 
-	IL_001b:  ldarg.1 
-	IL_001c:  callvirt instance void class NAnt.Core.BuildEventArgs::set_MessageLevel(valuetype NAnt.Core.Level)
-	IL_0021:  ldarg.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  call instance void class NAnt.Core.Project::OnMessageLogged(class NAnt.Core.BuildEventArgs)
-	IL_0028:  ret 
-    } // end of method Project::Log
+	IL_0008:  br IL_000d
 
-    // method line 1728
-    .method public hidebysig 
-           instance default void Log (class NAnt.Core.Task task, valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExternalProgramBase::get_TimeOut
+
+    // method line 1518
+    .method public hidebysig specialname 
+           instance default void set_TimeOut (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x1e8c0
-	// Code size 30 (0x1e)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.BuildEventArgs	V_0)
+        // Method begins at RVA 0x19033
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Task)
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  ldarg.3 
-	IL_000a:  callvirt instance void class NAnt.Core.BuildEventArgs::set_Message(string)
-	IL_000f:  ldloc.0 
-	IL_0010:  ldarg.2 
-	IL_0011:  callvirt instance void class NAnt.Core.BuildEventArgs::set_MessageLevel(valuetype NAnt.Core.Level)
-	IL_0016:  ldarg.0 
-	IL_0017:  ldloc.0 
-	IL_0018:  call instance void class NAnt.Core.Project::OnMessageLogged(class NAnt.Core.BuildEventArgs)
-	IL_001d:  ret 
-    } // end of method Project::Log
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Core.Tasks.ExternalProgramBase::_timeout
+	IL_0008:  ret 
+    } // end of method ExternalProgramBase::set_TimeOut
 
-    // method line 1729
-    .method public hidebysig 
-           instance default void Log (class NAnt.Core.Target target, valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
+    // method line 1519
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.Core.Types.ArgumentCollection get_Arguments ()  cil managed 
     {
-        // Method begins at RVA 0x1e8ec
-	// Code size 30 (0x1e)
-	.maxstack 2
+        // Method begins at RVA 0x19040
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.BuildEventArgs	V_0)
+		class NAnt.Core.Types.ArgumentCollection	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Target)
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Types.ArgumentCollection NAnt.Core.Tasks.ExternalProgramBase::_arguments
 	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  ldarg.3 
-	IL_000a:  callvirt instance void class NAnt.Core.BuildEventArgs::set_Message(string)
-	IL_000f:  ldloc.0 
-	IL_0010:  ldarg.2 
-	IL_0011:  callvirt instance void class NAnt.Core.BuildEventArgs::set_MessageLevel(valuetype NAnt.Core.Level)
-	IL_0016:  ldarg.0 
-	IL_0017:  ldloc.0 
-	IL_0018:  call instance void class NAnt.Core.Project::OnMessageLogged(class NAnt.Core.BuildEventArgs)
-	IL_001d:  ret 
-    } // end of method Project::Log
+	IL_0008:  br IL_000d
 
-    // method line 1730
-    .method public virtual hidebysig newslot 
-           instance default void Execute ()  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExternalProgramBase::get_Arguments
+
+    // method line 1520
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_UseRuntimeEngine ()  cil managed 
     {
-        // Method begins at RVA 0x1e918
-	// Code size 352 (0x160)
-	.maxstack 4
+        // Method begins at RVA 0x1905c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		string	V_4,
-		class [System]System.Collections.Specialized.StringEnumerator	V_5,
-		class [mscorlib]System.IDisposable	V_6)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
-	IL_0007:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_000c:  brtrue IL_0035
+	IL_0002:  ldfld bool NAnt.Core.Tasks.ExternalProgramBase::_useRuntimeEngine
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0011:  ldarg.0 
-	IL_0012:  call instance string class NAnt.Core.Project::get_DefaultTargetName()
-	IL_0017:  call bool string::IsNullOrEmpty(string)
-	IL_001c:  brtrue IL_0035
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExternalProgramBase::get_UseRuntimeEngine
 
-	IL_0021:  nop 
-	IL_0022:  ldarg.0 
-	IL_0023:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
-	IL_0028:  ldarg.0 
-	IL_0029:  call instance string class NAnt.Core.Project::get_DefaultTargetName()
-	IL_002e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0033:  pop 
-	IL_0034:  nop 
-	IL_0035:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_003a:  stloc.0 
-	IL_003b:  ldarg.0 
-	IL_003c:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
-	IL_0041:  brfalse IL_009b
+    // method line 1521
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_UseRuntimeEngine (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x19077
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.ExternalProgramBase::_useRuntimeEngine
+	IL_0008:  ret 
+    } // end of method ExternalProgramBase::set_UseRuntimeEngine
 
-	IL_0046:  nop 
-	IL_0047:  nop 
-	IL_0048:  ldarg.0 
-	IL_0049:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
-	IL_004e:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0053:  stloc.2 
-	.try { // 0
-	  IL_0054:  br IL_0076
+    // method line 1522
+    .method public virtual hidebysig newslot specialname 
+           instance default valuetype NAnt.Core.Types.ManagedExecution get_Managed ()  cil managed 
+    {
+        // Method begins at RVA 0x19084
+	// Code size 45 (0x2d)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.Core.Types.ManagedExecution	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_UseRuntimeEngine()
+	IL_0007:  brfalse IL_001f
 
-	  IL_0059:  ldloc.2 
-	  IL_005a:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_005f:  stloc.1 
-	  IL_0060:  nop 
-	  IL_0061:  ldloc.0 
-	  IL_0062:  ldloc.1 
-	  IL_0063:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_0068:  pop 
-	  IL_0069:  ldloc.0 
-	  IL_006a:  ldstr " "
-	  IL_006f:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_0074:  pop 
-	  IL_0075:  nop 
-	  IL_0076:  ldloc.2 
-	  IL_0077:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_007c:  brtrue IL_0059
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld valuetype NAnt.Core.Types.ManagedExecution NAnt.Core.Tasks.ExternalProgramBase::_managed
+	IL_0012:  brtrue IL_001f
 
-	  IL_0081:  leave IL_009a
+	IL_0017:  nop 
+	IL_0018:  ldc.i4.1 
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_002b
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0086:  ldloc.2 
-	  IL_0087:  isinst [mscorlib]System.IDisposable
-	  IL_008c:  dup 
-	  IL_008d:  stloc.3 
-	  IL_008e:  brfalse IL_0099
+	IL_001f:  ldarg.0 
+	IL_0020:  ldfld valuetype NAnt.Core.Types.ManagedExecution NAnt.Core.Tasks.ExternalProgramBase::_managed
+	IL_0025:  stloc.0 
+	IL_0026:  br IL_002b
 
-	  IL_0093:  ldloc.3 
-	  IL_0094:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0099:  endfinally 
-	} // end handler 0
-	IL_009a:  nop 
-	IL_009b:  ldloc.0 
-	IL_009c:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_00a1:  ldc.i4.0 
-	IL_00a2:  ble IL_00d9
+	IL_002b:  ldloc.0 
+	IL_002c:  ret 
+    } // end of method ExternalProgramBase::get_Managed
 
-	IL_00a7:  nop 
-	IL_00a8:  ldarg.0 
-	IL_00a9:  ldc.i4 3000
-	IL_00ae:  ldstr "Target(s) specified: "
-	IL_00b3:  ldloc.0 
-	IL_00b4:  callvirt instance string object::ToString()
-	IL_00b9:  call string string::Concat(string, string)
-	IL_00be:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string)
-	IL_00c3:  ldarg.0 
-	IL_00c4:  ldc.i4 3000
-	IL_00c9:  ldsfld string [mscorlib]System.String::Empty
-	IL_00ce:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string)
-	IL_00d3:  nop 
-	IL_00d4:  br IL_00eb
+    // method line 1523
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Managed (valuetype NAnt.Core.Types.ManagedExecution 'value')  cil managed 
+    {
+        // Method begins at RVA 0x190bd
+	// Code size 22 (0x16)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld valuetype NAnt.Core.Types.ManagedExecution NAnt.Core.Tasks.ExternalProgramBase::_managed
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  ldc.i4.0 
+	IL_000b:  ceq 
+	IL_000d:  ldc.i4.0 
+	IL_000e:  ceq 
+	IL_0010:  callvirt instance void class NAnt.Core.Tasks.ExternalProgramBase::set_UseRuntimeEngine(bool)
+	IL_0015:  ret 
+    } // end of method ExternalProgramBase::set_Managed
 
-	IL_00d9:  nop 
-	IL_00da:  ldarg.0 
-	IL_00db:  ldc.i4 3000
-	IL_00e0:  ldsfld string [mscorlib]System.String::Empty
-	IL_00e5:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string)
-	IL_00ea:  nop 
-	IL_00eb:  ldarg.0 
-	IL_00ec:  ldarg.0 
-	IL_00ed:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::get_Document()
-	IL_00f2:  call instance void class NAnt.Core.Project::InitializeProjectDocument(class [System.Xml]System.Xml.XmlDocument)
-	IL_00f7:  ldarg.0 
-	IL_00f8:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
-	IL_00fd:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0102:  brtrue IL_010e
+    // method line 1524
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.TextWriter get_OutputWriter ()  cil managed 
+    {
+        // Method begins at RVA 0x190d4
+	// Code size 50 (0x32)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.IO.TextWriter	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_outputWriter
+	IL_0007:  brtrue IL_0024
 
-	IL_0107:  nop 
-	IL_0108:  nop 
-	IL_0109:  br IL_015f
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldc.i4 3000
+	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0019:  newobj instance void class NAnt.Core.LogWriter::'.ctor'(class NAnt.Core.Task, valuetype NAnt.Core.Level, class [mscorlib]System.IFormatProvider)
+	IL_001e:  stfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_outputWriter
+	IL_0023:  nop 
+	IL_0024:  ldarg.0 
+	IL_0025:  ldfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_outputWriter
+	IL_002a:  stloc.0 
+	IL_002b:  br IL_0030
 
-	IL_010e:  nop 
-	IL_010f:  nop 
-	IL_0110:  ldarg.0 
-	IL_0111:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
-	IL_0116:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_011b:  stloc.s 5
-	.try { // 1
-	  IL_011d:  br IL_0136
+	IL_0030:  ldloc.0 
+	IL_0031:  ret 
+    } // end of method ExternalProgramBase::get_OutputWriter
 
-	  IL_0122:  ldloc.s 5
-	  IL_0124:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0129:  stloc.s 4
-	  IL_012b:  nop 
-	  IL_012c:  ldarg.0 
-	  IL_012d:  ldloc.s 4
-	  IL_012f:  ldc.i4.0 
-	  IL_0130:  call instance void class NAnt.Core.Project::Execute(string, bool)
-	  IL_0135:  nop 
-	  IL_0136:  ldloc.s 5
-	  IL_0138:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_013d:  brtrue IL_0122
+    // method line 1525
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
+    {
+        // Method begins at RVA 0x19112
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_outputWriter
+	IL_0008:  ret 
+    } // end of method ExternalProgramBase::set_OutputWriter
 
-	  IL_0142:  leave IL_015e
+    // method line 1526
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.TextWriter get_ErrorWriter ()  cil managed 
+    {
+        // Method begins at RVA 0x1911c
+	// Code size 50 (0x32)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.IO.TextWriter	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_errorWriter
+	IL_0007:  brtrue IL_0024
 
-	} // end .try 1
-	finally  { // 1
-	  IL_0147:  ldloc.s 5
-	  IL_0149:  isinst [mscorlib]System.IDisposable
-	  IL_014e:  dup 
-	  IL_014f:  stloc.s 6
-	  IL_0151:  brfalse IL_015d
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldc.i4 4000
+	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0019:  newobj instance void class NAnt.Core.LogWriter::'.ctor'(class NAnt.Core.Task, valuetype NAnt.Core.Level, class [mscorlib]System.IFormatProvider)
+	IL_001e:  stfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_errorWriter
+	IL_0023:  nop 
+	IL_0024:  ldarg.0 
+	IL_0025:  ldfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_errorWriter
+	IL_002a:  stloc.0 
+	IL_002b:  br IL_0030
 
-	  IL_0156:  ldloc.s 6
-	  IL_0158:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_015d:  endfinally 
-	} // end handler 1
-	IL_015e:  nop 
-	IL_015f:  ret 
-    } // end of method Project::Execute
+	IL_0030:  ldloc.0 
+	IL_0031:  ret 
+    } // end of method ExternalProgramBase::get_ErrorWriter
 
-    // method line 1731
-    .method public hidebysig 
-           instance default void Execute (string targetName)  cil managed 
+    // method line 1527
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_ErrorWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
     {
-        // Method begins at RVA 0x1eaa0
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x1915a
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  ldc.i4.1 
-	IL_0004:  call instance void class NAnt.Core.Project::Execute(string, bool)
-	IL_0009:  ret 
-    } // end of method Project::Execute
+	IL_0003:  stfld class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::_errorWriter
+	IL_0008:  ret 
+    } // end of method ExternalProgramBase::set_ErrorWriter
 
-    // method line 1732
-    .method public hidebysig 
-           instance default void Execute (string targetName, bool forceDependencies)  cil managed 
+    // method line 1528
+    .method public hidebysig specialname 
+           instance default int32 get_ExitCode ()  cil managed 
     {
-        // Method begins at RVA 0x1eaac
-	// Code size 117 (0x75)
-	.maxstack 4
+        // Method begins at RVA 0x19164
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.TargetCollection	V_0,
-		int32	V_1,
-		class NAnt.Core.Target	V_2,
-		class NAnt.Core.Target	V_3)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.0 
-	IL_0004:  call instance class NAnt.Core.TargetCollection class NAnt.Core.Project::get_Targets()
-	IL_0009:  call instance class NAnt.Core.TargetCollection class NAnt.Core.Project::TopologicalTargetSort(string, class NAnt.Core.TargetCollection)
-	IL_000e:  stloc.0 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  stloc.1 
-	IL_0011:  ldarg.0 
-	IL_0012:  ldfld class NAnt.Core.Target NAnt.Core.Project::_currentTarget
-	IL_0017:  stloc.3 
-	IL_0018:  nop 
-	IL_0019:  ldloc.0 
-	IL_001a:  ldloc.1 
-	IL_001b:  dup 
-	IL_001c:  ldc.i4.1 
-	IL_001d:  add 
-	IL_001e:  stloc.1 
-	IL_001f:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	IL_0024:  castclass NAnt.Core.Target
-	IL_0029:  stloc.2 
-	IL_002a:  ldarg.0 
-	IL_002b:  ldloc.2 
-	IL_002c:  stfld class NAnt.Core.Target NAnt.Core.Project::_currentTarget
-	IL_0031:  ldarg.2 
-	IL_0032:  brtrue IL_0053
+	IL_0002:  ldfld int32 NAnt.Core.Tasks.ExternalProgramBase::_exitCode
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0037:  ldloc.2 
-	IL_0038:  callvirt instance bool class NAnt.Core.Target::get_Executed()
-	IL_003d:  brfalse IL_0053
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExternalProgramBase::get_ExitCode
 
-	IL_0042:  ldloc.2 
-	IL_0043:  callvirt instance string class NAnt.Core.Target::get_Name()
-	IL_0048:  ldarg.1 
-	IL_0049:  call bool string::op_Equality(string, string)
-	IL_004e:  brfalse IL_005b
+    // method line 1529
+    .method family hidebysig specialname 
+           instance default int32 get_ProcessId ()  cil managed 
+    {
+        // Method begins at RVA 0x19180
+	// Code size 61 (0x3d)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_Spawn()
+	IL_0007:  brtrue IL_0018
 
-	IL_0053:  nop 
-	IL_0054:  ldloc.2 
-	IL_0055:  callvirt instance void class NAnt.Core.Target::Execute()
-	IL_005a:  nop 
-	IL_005b:  nop 
-	IL_005c:  ldloc.2 
-	IL_005d:  callvirt instance string class NAnt.Core.Target::get_Name()
-	IL_0062:  ldarg.1 
-	IL_0063:  call bool string::op_Inequality(string, string)
-	IL_0068:  brtrue IL_0018
+	IL_000c:  nop 
+	IL_000d:  ldstr "The unique identifier only applies to spawned applications."
+	IL_0012:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
+	IL_0017:  throw 
+	IL_0018:  ldarg.0 
+	IL_0019:  ldfld int32 NAnt.Core.Tasks.ExternalProgramBase::_processId
+	IL_001e:  brtrue IL_002f
 
-	IL_006d:  ldarg.0 
-	IL_006e:  ldloc.3 
-	IL_006f:  stfld class NAnt.Core.Target NAnt.Core.Project::_currentTarget
-	IL_0074:  ret 
-    } // end of method Project::Execute
+	IL_0023:  nop 
+	IL_0024:  ldstr "The application was not started."
+	IL_0029:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
+	IL_002e:  throw 
+	IL_002f:  ldarg.0 
+	IL_0030:  ldfld int32 NAnt.Core.Tasks.ExternalProgramBase::_processId
+	IL_0035:  stloc.0 
+	IL_0036:  br IL_003b
 
-    // method line 1733
-    .method public hidebysig 
-           instance default bool Run ()  cil managed 
+	IL_003b:  ldloc.0 
+	IL_003c:  ret 
+    } // end of method ExternalProgramBase::get_ProcessId
+
+    // method line 1530
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_Spawn ()  cil managed 
     {
-        // Method begins at RVA 0x1eb30
-	// Code size 371 (0x173)
-	.maxstack 7
+        // Method begins at RVA 0x191cc
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Exception	V_0,
-		bool	V_1,
-		class NAnt.Core.BuildException	V_2,
-		class [mscorlib]System.Exception	V_3,
-		string	V_4,
-		class NAnt.Core.Tasks.CallTask	V_5,
-		class NAnt.Core.BuildEventArgs	V_6)
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Tasks.ExternalProgramBase::_spawn
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExternalProgramBase::get_Spawn
+
+    // method line 1531
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Spawn (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x191e7
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.ExternalProgramBase::_spawn
+	IL_0008:  ret 
+    } // end of method ExternalProgramBase::set_Spawn
+
+    // method line 1532
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x191f4
+	// Code size 489 (0x1e9)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Threading.Thread	V_0,
+		class [mscorlib]System.Threading.Thread	V_1,
+		class [System]System.Diagnostics.Process	V_2,
+		class NAnt.Core.BuildException	V_3,
+		class [mscorlib]System.Exception	V_4)
 	IL_0000:  nop 
 	IL_0001:  ldnull 
 	IL_0002:  stloc.0 
-	.try { // 2
-	  .try { // 0
-	    IL_0003:  nop 
-	    IL_0004:  ldarg.0 
-	    IL_0005:  ldarg.0 
+	IL_0003:  ldnull 
+	IL_0004:  stloc.1 
+	.try { // 3
+	  .try { // 1
+	    IL_0005:  nop 
 	    IL_0006:  ldarg.0 
-	    IL_0007:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Project)
-	    IL_000c:  call instance void class NAnt.Core.Project::OnBuildStarted(object, class NAnt.Core.BuildEventArgs)
-	    IL_0011:  ldarg.0 
-	    IL_0012:  ldc.i4 3000
-	    IL_0017:  ldstr "Buildfile: {0}"
-	    IL_001c:  ldc.i4.1 
-	    IL_001d:  newarr [mscorlib]System.Object
-	    IL_0022:  dup 
-	    IL_0023:  ldc.i4.0 
-	    IL_0024:  ldarg.0 
-	    IL_0025:  call instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
-	    IL_002a:  stelem.ref 
-	    IL_002b:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	    IL_0030:  ldarg.0 
-	    IL_0031:  ldc.i4 3000
-	    IL_0036:  ldstr "Target framework: {0}"
-	    IL_003b:  ldc.i4.1 
-	    IL_003c:  newarr [mscorlib]System.Object
-	    IL_0041:  dup 
-	    IL_0042:  ldc.i4.0 
-	    IL_0043:  ldarg.0 
-	    IL_0044:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	    IL_0049:  brfalse IL_005e
+	    IL_0007:  callvirt instance class [System]System.Diagnostics.Process class NAnt.Core.Tasks.ExternalProgramBase::StartProcess()
+	    IL_000c:  stloc.2 
+	    IL_000d:  ldarg.0 
+	    IL_000e:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_Spawn()
+	    IL_0013:  brfalse IL_002a
+
+	    IL_0018:  nop 
+	    IL_0019:  ldarg.0 
+	    IL_001a:  ldloc.2 
+	    IL_001b:  callvirt instance int32 class [System]System.Diagnostics.Process::get_Id()
+	    IL_0020:  stfld int32 NAnt.Core.Tasks.ExternalProgramBase::_processId
+	    IL_0025:  leave IL_01e8
 
+	    IL_002a:  ldarg.0 
+	    IL_002b:  ldftn instance void class NAnt.Core.Tasks.ExternalProgramBase::StreamReaderThread_Output()
+	    IL_0031:  newobj instance void class [mscorlib]System.Threading.ThreadStart::'.ctor'(object, native int)
+	    IL_0036:  newobj instance void class [mscorlib]System.Threading.Thread::'.ctor'(class [mscorlib]System.Threading.ThreadStart)
+	    IL_003b:  stloc.0 
+	    IL_003c:  ldarg.0 
+	    IL_003d:  ldftn instance void class NAnt.Core.Tasks.ExternalProgramBase::StreamReaderThread_Error()
+	    IL_0043:  newobj instance void class [mscorlib]System.Threading.ThreadStart::'.ctor'(object, native int)
+	    IL_0048:  newobj instance void class [mscorlib]System.Threading.Thread::'.ctor'(class [mscorlib]System.Threading.ThreadStart)
+	    IL_004d:  stloc.1 
 	    IL_004e:  ldarg.0 
-	    IL_004f:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	    IL_0054:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Description()
-	    IL_0059:  br IL_0063
+	    IL_004f:  ldloc.2 
+	    IL_0050:  callvirt instance class [mscorlib]System.IO.StreamReader class [System]System.Diagnostics.Process::get_StandardOutput()
+	    IL_0055:  stfld class [mscorlib]System.IO.StreamReader NAnt.Core.Tasks.ExternalProgramBase::_stdOut
+	    IL_005a:  ldarg.0 
+	    IL_005b:  ldloc.2 
+	    IL_005c:  callvirt instance class [mscorlib]System.IO.StreamReader class [System]System.Diagnostics.Process::get_StandardError()
+	    IL_0061:  stfld class [mscorlib]System.IO.StreamReader NAnt.Core.Tasks.ExternalProgramBase::_stdError
+	    IL_0066:  ldloc.0 
+	    IL_0067:  callvirt instance void class [mscorlib]System.Threading.Thread::Start()
+	    IL_006c:  ldloc.1 
+	    IL_006d:  callvirt instance void class [mscorlib]System.Threading.Thread::Start()
+	    IL_0072:  ldloc.2 
+	    IL_0073:  ldarg.0 
+	    IL_0074:  call instance int32 class NAnt.Core.Tasks.ExternalProgramBase::get_TimeOut()
+	    IL_0079:  callvirt instance bool class [System]System.Diagnostics.Process::WaitForExit(int32)
+	    IL_007e:  pop 
+	    IL_007f:  ldloc.0 
+	    IL_0080:  ldc.i4 2000
+	    IL_0085:  callvirt instance bool class [mscorlib]System.Threading.Thread::Join(int32)
+	    IL_008a:  pop 
+	    IL_008b:  ldloc.1 
+	    IL_008c:  ldc.i4 2000
+	    IL_0091:  callvirt instance bool class [mscorlib]System.Threading.Thread::Join(int32)
+	    IL_0096:  pop 
+	    IL_0097:  ldloc.2 
+	    IL_0098:  callvirt instance bool class [System]System.Diagnostics.Process::get_HasExited()
+	    IL_009d:  brtrue IL_00e9
 
-	    IL_005e:  ldstr "None"
-	    IL_0063:  stelem.ref 
-	    IL_0064:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	    IL_0069:  ldarg.0 
-	    IL_006a:  ldc.i4 2000
-	    IL_006f:  ldstr "Base Directory: {0}."
-	    IL_0074:  ldc.i4.1 
-	    IL_0075:  newarr [mscorlib]System.Object
-	    IL_007a:  dup 
-	    IL_007b:  ldc.i4.0 
-	    IL_007c:  ldarg.0 
-	    IL_007d:  call instance string class NAnt.Core.Project::get_BaseDirectory()
-	    IL_0082:  stelem.ref 
-	    IL_0083:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	    IL_0088:  ldarg.0 
-	    IL_0089:  callvirt instance void class NAnt.Core.Project::Execute()
-	    IL_008e:  ldc.i4.1 
-	    IL_008f:  stloc.1 
-	    IL_0090:  leave IL_0171
+	    IL_00a2:  nop 
+	    .try { // 0
+	      IL_00a3:  nop 
+	      IL_00a4:  ldloc.2 
+	      IL_00a5:  callvirt instance void class [System]System.Diagnostics.Process::Kill()
+	      IL_00aa:  nop 
+	      IL_00ab:  leave IL_00b8
 
-	  } // end .try 0
-	  catch class NAnt.Core.BuildException { // 0
-	    IL_0095:  stloc.2 
-	    IL_0096:  nop 
-	    IL_0097:  ldloc.2 
-	    IL_0098:  stloc.0 
-	    IL_0099:  ldsfld class [log4net]log4net.ILog NAnt.Core.Project::logger
-	    IL_009e:  ldstr "Build failed."
-	    IL_00a3:  ldloc.2 
-	    IL_00a4:  callvirt instance void class [log4net]log4net.ILog::Error(object, class [mscorlib]System.Exception)
-	    IL_00a9:  ldc.i4.0 
-	    IL_00aa:  stloc.1 
-	    IL_00ab:  leave IL_0171
+	    } // end .try 0
+	    catch class [mscorlib]System.Object { // 0
+	      IL_00b0:  pop 
+	      IL_00b1:  nop 
+	      IL_00b2:  nop 
+	      IL_00b3:  leave IL_00b8
 
-	  } // end handler 0
-	  catch class [mscorlib]System.Exception { // 1
-	    IL_00b0:  stloc.3 
-	    IL_00b1:  nop 
-	    IL_00b2:  ldloc.3 
-	    IL_00b3:  stloc.0 
-	    IL_00b4:  ldsfld class [log4net]log4net.ILog NAnt.Core.Project::logger
-	    IL_00b9:  ldstr "Build failed."
-	    IL_00be:  ldloc.3 
-	    IL_00bf:  callvirt instance void class [log4net]log4net.ILog::Fatal(object, class [mscorlib]System.Exception)
-	    IL_00c4:  ldc.i4.0 
-	    IL_00c5:  stloc.1 
-	    IL_00c6:  leave IL_0171
+	    } // end handler 0
+	    IL_00b8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_00bd:  ldstr "NA1118"
+	    IL_00c2:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_00c7:  ldarg.0 
+	    IL_00c8:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
+	    IL_00cd:  ldarg.0 
+	    IL_00ce:  call instance int32 class NAnt.Core.Tasks.ExternalProgramBase::get_TimeOut()
+	    IL_00d3:  box [mscorlib]System.Int32
+	    IL_00d8:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	    IL_00dd:  ldarg.0 
+	    IL_00de:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	    IL_00e3:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	    IL_00e8:  throw 
+	    IL_00e9:  ldarg.0 
+	    IL_00ea:  ldloc.2 
+	    IL_00eb:  callvirt instance int32 class [System]System.Diagnostics.Process::get_ExitCode()
+	    IL_00f0:  stfld int32 NAnt.Core.Tasks.ExternalProgramBase::_exitCode
+	    IL_00f5:  ldloc.2 
+	    IL_00f6:  callvirt instance int32 class [System]System.Diagnostics.Process::get_ExitCode()
+	    IL_00fb:  brfalse IL_0132
 
-	  } // end handler 1
-	} // end .try 2
-	finally  { // 2
-	  IL_00cb:  nop 
-	  IL_00cc:  ldloc.0 
-	  IL_00cd:  brtrue IL_00eb
+	    IL_0100:  nop 
+	    IL_0101:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0106:  ldstr "NA1119"
+	    IL_010b:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_0110:  ldarg.0 
+	    IL_0111:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
+	    IL_0116:  ldloc.2 
+	    IL_0117:  callvirt instance int32 class [System]System.Diagnostics.Process::get_ExitCode()
+	    IL_011c:  box [mscorlib]System.Int32
+	    IL_0121:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	    IL_0126:  ldarg.0 
+	    IL_0127:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	    IL_012c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	    IL_0131:  throw 
+	    IL_0132:  nop 
+	    IL_0133:  leave IL_01e8
 
-	  IL_00d2:  nop 
-	  IL_00d3:  ldarg.0 
-	  IL_00d4:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	  IL_00d9:  ldstr "nant.onsuccess"
-	  IL_00de:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
-	  IL_00e3:  stloc.s 4
-	  IL_00e5:  nop 
-	  IL_00e6:  br IL_00ff
+	  } // end .try 1
+	  catch class NAnt.Core.BuildException { // 1
+	    IL_0138:  stloc.3 
+	    IL_0139:  nop 
+	    IL_013a:  ldarg.0 
+	    IL_013b:  call instance bool class NAnt.Core.Task::get_FailOnError()
+	    IL_0140:  brfalse IL_0148
 
-	  IL_00eb:  nop 
-	  IL_00ec:  ldarg.0 
-	  IL_00ed:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	  IL_00f2:  ldstr "nant.onfailure"
-	  IL_00f7:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
-	  IL_00fc:  stloc.s 4
-	  IL_00fe:  nop 
-	  IL_00ff:  ldloc.s 4
-	  IL_0101:  call bool string::IsNullOrEmpty(string)
-	  IL_0106:  brtrue IL_0156
+	    IL_0145:  nop 
+	    IL_0146:  rethrow 
+	    IL_0148:  nop 
+	    IL_0149:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.ExternalProgramBase::logger
+	    IL_014e:  ldstr "Execution Error"
+	    IL_0153:  ldloc.3 
+	    IL_0154:  callvirt instance void class [log4net]log4net.ILog::Error(object, class [mscorlib]System.Exception)
+	    IL_0159:  ldarg.0 
+	    IL_015a:  ldc.i4 5000
+	    IL_015f:  ldloc.3 
+	    IL_0160:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	    IL_0165:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	    IL_016a:  nop 
+	    IL_016b:  nop 
+	    IL_016c:  leave IL_01e8
 
-	  IL_010b:  nop 
-	  IL_010c:  newobj instance void class NAnt.Core.Tasks.CallTask::'.ctor'()
-	  IL_0111:  stloc.s 5
-	  IL_0113:  ldloc.s 5
-	  IL_0115:  ldarg.0 
-	  IL_0116:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	  IL_011b:  ldloc.s 5
-	  IL_011d:  ldarg.0 
-	  IL_011e:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	  IL_0123:  ldloc.s 5
-	  IL_0125:  ldarg.0 
-	  IL_0126:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
-	  IL_012b:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	  IL_0130:  ldloc.s 5
-	  IL_0132:  ldarg.0 
-	  IL_0133:  call instance bool class NAnt.Core.Project::get_Verbose()
-	  IL_0138:  callvirt instance void class NAnt.Core.Task::set_Verbose(bool)
-	  IL_013d:  ldloc.s 5
-	  IL_013f:  ldc.i4.0 
-	  IL_0140:  callvirt instance void class NAnt.Core.Task::set_FailOnError(bool)
-	  IL_0145:  ldloc.s 5
-	  IL_0147:  ldloc.s 4
-	  IL_0149:  callvirt instance void class NAnt.Core.Tasks.CallTask::set_TargetName(string)
-	  IL_014e:  ldloc.s 5
-	  IL_0150:  callvirt instance void class NAnt.Core.Task::Execute()
-	  IL_0155:  nop 
-	  IL_0156:  ldarg.0 
-	  IL_0157:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Project)
-	  IL_015c:  stloc.s 6
-	  IL_015e:  ldloc.s 6
-	  IL_0160:  ldloc.0 
-	  IL_0161:  callvirt instance void class NAnt.Core.BuildEventArgs::set_Exception(class [mscorlib]System.Exception)
-	  IL_0166:  ldarg.0 
-	  IL_0167:  ldarg.0 
-	  IL_0168:  ldloc.s 6
-	  IL_016a:  call instance void class NAnt.Core.Project::OnBuildFinished(object, class NAnt.Core.BuildEventArgs)
-	  IL_016f:  nop 
-	  IL_0170:  endfinally 
-	} // end handler 2
-	IL_0171:  ldloc.1 
-	IL_0172:  ret 
-    } // end of method Project::Run
+	  } // end handler 1
+	  catch class [mscorlib]System.Exception { // 2
+	    IL_0171:  stloc.s 4
+	    IL_0173:  nop 
+	    IL_0174:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.ExternalProgramBase::logger
+	    IL_0179:  ldstr "Execution Error"
+	    IL_017e:  ldloc.s 4
+	    IL_0180:  callvirt instance void class [log4net]log4net.ILog::Error(object, class [mscorlib]System.Exception)
+	    IL_0185:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_018a:  ldstr "{0}: {1} had errors. Please see log4net log."
+	    IL_018f:  ldarg.0 
+	    IL_0190:  call instance class [mscorlib]System.Type object::GetType()
+	    IL_0195:  callvirt instance string object::ToString()
+	    IL_019a:  ldarg.0 
+	    IL_019b:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
+	    IL_01a0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	    IL_01a5:  ldarg.0 
+	    IL_01a6:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	    IL_01ab:  ldloc.s 4
+	    IL_01ad:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	    IL_01b2:  throw 
+	  } // end handler 2
+	} // end .try 3
+	finally  { // 3
+	  IL_01b3:  nop 
+	  IL_01b4:  ldloc.0 
+	  IL_01b5:  brfalse IL_01cd
 
-    // method line 1734
-    .method public hidebysig 
-           instance default class NAnt.Core.DataTypeBase CreateDataTypeBase (class [System.Xml]System.Xml.XmlNode elementNode)  cil managed 
-    {
-        // Method begins at RVA 0x1ecd8
-	// Code size 51 (0x33)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.DataTypeBase	V_0,
-		class NAnt.Core.DataTypeBase	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.0 
-	IL_0003:  call class NAnt.Core.DataTypeBase class NAnt.Core.TypeFactory::CreateDataType(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Project)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  ldarg.0 
-	IL_000b:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_0010:  ldloc.0 
-	IL_0011:  ldarg.0 
-	IL_0012:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_0017:  ldloc.0 
-	IL_0018:  ldarg.0 
-	IL_0019:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
-	IL_001e:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0023:  ldloc.0 
-	IL_0024:  ldarg.1 
-	IL_0025:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode)
-	IL_002a:  ldloc.0 
-	IL_002b:  stloc.1 
-	IL_002c:  br IL_0031
+	  IL_01ba:  ldloc.0 
+	  IL_01bb:  callvirt instance bool class [mscorlib]System.Threading.Thread::get_IsAlive()
+	  IL_01c0:  brfalse IL_01cd
 
-	IL_0031:  ldloc.1 
-	IL_0032:  ret 
-    } // end of method Project::CreateDataTypeBase
+	  IL_01c5:  nop 
+	  IL_01c6:  ldloc.0 
+	  IL_01c7:  callvirt instance void class [mscorlib]System.Threading.Thread::Abort()
+	  IL_01cc:  nop 
+	  IL_01cd:  ldloc.1 
+	  IL_01ce:  brfalse IL_01e6
 
-    // method line 1735
-    .method public hidebysig 
-           instance default class NAnt.Core.Task CreateTask (class [System.Xml]System.Xml.XmlNode taskNode)  cil managed 
-    {
-        // Method begins at RVA 0x1ed18
-	// Code size 17 (0x11)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.Task	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldnull 
-	IL_0004:  call instance class NAnt.Core.Task class NAnt.Core.Project::CreateTask(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Target)
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_000f
+	  IL_01d3:  ldloc.1 
+	  IL_01d4:  callvirt instance bool class [mscorlib]System.Threading.Thread::get_IsAlive()
+	  IL_01d9:  brfalse IL_01e6
 
-	IL_000f:  ldloc.0 
-	IL_0010:  ret 
-    } // end of method Project::CreateTask
+	  IL_01de:  nop 
+	  IL_01df:  ldloc.1 
+	  IL_01e0:  callvirt instance void class [mscorlib]System.Threading.Thread::Abort()
+	  IL_01e5:  nop 
+	  IL_01e6:  nop 
+	  IL_01e7:  endfinally 
+	} // end handler 3
+	IL_01e8:  ret 
+    } // end of method ExternalProgramBase::ExecuteTask
 
-    // method line 1736
-    .method public hidebysig 
-           instance default class NAnt.Core.Task CreateTask (class [System.Xml]System.Xml.XmlNode taskNode, class NAnt.Core.Target target)  cil managed 
+    // method line 1533
+    .method public hidebysig specialname 
+           instance default string get_CommandLine ()  cil managed 
     {
-        // Method begins at RVA 0x1ed38
-	// Code size 51 (0x33)
+        // Method begins at RVA 0x19450
+	// Code size 39 (0x27)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Task	V_0,
-		class NAnt.Core.Task	V_1)
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.0 
-	IL_0003:  call class NAnt.Core.Task class NAnt.Core.TypeFactory::CreateTask(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Project)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  ldarg.0 
-	IL_000b:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_0010:  ldloc.0 
-	IL_0011:  ldarg.2 
-	IL_0012:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_0017:  ldloc.0 
-	IL_0018:  ldarg.0 
-	IL_0019:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
-	IL_001e:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0023:  ldloc.0 
-	IL_0024:  ldarg.1 
-	IL_0025:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode)
-	IL_002a:  ldloc.0 
-	IL_002b:  stloc.1 
-	IL_002c:  br IL_0031
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ProgramArguments()
+	IL_0007:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
+	IL_000c:  stloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance class NAnt.Core.Types.ArgumentCollection class NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_0013:  ldloc.0 
+	IL_0014:  callvirt instance void class NAnt.Core.Types.ArgumentCollection::ToString(class [mscorlib]System.Text.StringBuilder)
+	IL_0019:  ldloc.0 
+	IL_001a:  callvirt instance string object::ToString()
+	IL_001f:  stloc.1 
+	IL_0020:  br IL_0025
 
-	IL_0031:  ldloc.1 
-	IL_0032:  ret 
-    } // end of method Project::CreateTask
+	IL_0025:  ldloc.1 
+	IL_0026:  ret 
+    } // end of method ExternalProgramBase::get_CommandLine
 
-    // method line 1737
-    .method public hidebysig 
-           instance default string ExpandProperties (string input, class NAnt.Core.Location location)  cil managed 
+    // method line 1534
+    .method family virtual hidebysig newslot 
+           instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
     {
-        // Method begins at RVA 0x1ed78
-	// Code size 22 (0x16)
-	.maxstack 3
+        // Method begins at RVA 0x19484
+	// Code size 451 (0x1c3)
+	.maxstack 4
 	.locals init (
-		string	V_0)
+		class NAnt.Core.Configuration.ManagedExecutionMode	V_0,
+		class [mscorlib]System.Text.StringBuilder	V_1,
+		class NAnt.Core.Types.EnvironmentVariable	V_2,
+		class NAnt.Core.Types.EnvironmentVariableEnumerator	V_3,
+		class [mscorlib]System.IDisposable	V_4)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0014
+	IL_0002:  call instance class NAnt.Core.Configuration.ManagedExecutionMode class NAnt.Core.Tasks.ExternalProgramBase::get_ManagedExecutionMode()
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  brfalse IL_0092
 
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method Project::ExpandProperties
+	IL_000e:  ldloc.0 
+	IL_000f:  callvirt instance class NAnt.Core.Configuration.RuntimeEngine class NAnt.Core.Configuration.ManagedExecutionMode::get_Engine()
+	IL_0014:  brfalse IL_0092
 
-    // method line 1738
-    .method public hidebysig 
-           instance default string GetFullPath (string path)  cil managed 
-    {
-        // Method begins at RVA 0x1ed9c
-	// Code size 153 (0x99)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		class [System]System.Uri	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call bool string::IsNullOrEmpty(string)
-	IL_0007:  brfalse IL_0019
+	IL_0019:  nop 
+	IL_001a:  ldarg.1 
+	IL_001b:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_0020:  ldloc.0 
+	IL_0021:  callvirt instance class NAnt.Core.Configuration.RuntimeEngine class NAnt.Core.Configuration.ManagedExecutionMode::get_Engine()
+	IL_0026:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Configuration.RuntimeEngine::get_Program()
+	IL_002b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0030:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_FileName(string)
+	IL_0035:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_003a:  stloc.1 
+	IL_003b:  ldloc.0 
+	IL_003c:  callvirt instance class NAnt.Core.Configuration.RuntimeEngine class NAnt.Core.Configuration.ManagedExecutionMode::get_Engine()
+	IL_0041:  callvirt instance class NAnt.Core.Types.ArgumentCollection class NAnt.Core.Configuration.RuntimeEngine::get_Arguments()
+	IL_0046:  ldloc.1 
+	IL_0047:  callvirt instance void class NAnt.Core.Types.ArgumentCollection::ToString(class [mscorlib]System.Text.StringBuilder)
+	IL_004c:  ldloc.1 
+	IL_004d:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_0052:  ldc.i4.0 
+	IL_0053:  blt IL_0063
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0097
+	IL_0058:  nop 
+	IL_0059:  ldloc.1 
+	IL_005a:  ldc.i4.s 0x20
+	IL_005c:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_0061:  pop 
+	IL_0062:  nop 
+	IL_0063:  ldloc.1 
+	IL_0064:  ldstr "\"{0}\" {1}"
+	IL_0069:  ldarg.0 
+	IL_006a:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
+	IL_006f:  ldarg.0 
+	IL_0070:  call instance string class NAnt.Core.Tasks.ExternalProgramBase::get_CommandLine()
+	IL_0075:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object, object)
+	IL_007a:  pop 
+	IL_007b:  ldarg.1 
+	IL_007c:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_0081:  ldloc.1 
+	IL_0082:  callvirt instance string object::ToString()
+	IL_0087:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_Arguments(string)
+	IL_008c:  nop 
+	IL_008d:  br IL_00b6
+
+	IL_0092:  nop 
+	IL_0093:  ldarg.1 
+	IL_0094:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_0099:  ldarg.0 
+	IL_009a:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName()
+	IL_009f:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_FileName(string)
+	IL_00a4:  ldarg.1 
+	IL_00a5:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_00aa:  ldarg.0 
+	IL_00ab:  call instance string class NAnt.Core.Tasks.ExternalProgramBase::get_CommandLine()
+	IL_00b0:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_Arguments(string)
+	IL_00b5:  nop 
+	IL_00b6:  ldarg.0 
+	IL_00b7:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_Spawn()
+	IL_00bc:  brtrue IL_00db
+
+	IL_00c1:  nop 
+	IL_00c2:  ldarg.1 
+	IL_00c3:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_00c8:  ldc.i4.1 
+	IL_00c9:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(bool)
+	IL_00ce:  ldarg.1 
+	IL_00cf:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_00d4:  ldc.i4.1 
+	IL_00d5:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_RedirectStandardError(bool)
+	IL_00da:  nop 
+	IL_00db:  ldarg.1 
+	IL_00dc:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_00e1:  ldc.i4.0 
+	IL_00e2:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_UseShellExecute(bool)
+	IL_00e7:  ldarg.1 
+	IL_00e8:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_00ed:  ldarg.0 
+	IL_00ee:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_Spawn()
+	IL_00f3:  ldc.i4.0 
+	IL_00f4:  ceq 
+	IL_00f6:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_CreateNoWindow(bool)
+	IL_00fb:  ldarg.1 
+	IL_00fc:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	IL_0101:  ldarg.0 
+	IL_0102:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory()
+	IL_0107:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_010c:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
+	IL_0111:  ldloc.0 
+	IL_0112:  brfalse IL_01c2
 
+	IL_0117:  nop 
+	IL_0118:  nop 
+	IL_0119:  ldloc.0 
+	IL_011a:  callvirt instance class NAnt.Core.Types.EnvironmentSet class NAnt.Core.Configuration.ManagedExecutionMode::get_Environment()
+	IL_011f:  callvirt instance class NAnt.Core.Types.EnvironmentVariableCollection class NAnt.Core.Types.EnvironmentSet::get_EnvironmentVariables()
+	IL_0124:  callvirt instance class NAnt.Core.Types.EnvironmentVariableEnumerator class NAnt.Core.Types.EnvironmentVariableCollection::GetEnumerator()
+	IL_0129:  stloc.3 
 	.try { // 0
-	  IL_0019:  nop 
-	  IL_001a:  ldarg.1 
-	  IL_001b:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	  IL_0020:  stloc.1 
-	  IL_0021:  ldloc.1 
-	  IL_0022:  callvirt instance bool class [System]System.Uri::get_IsFile()
-	  IL_0027:  brfalse IL_003b
+	  IL_012a:  br IL_019b
 
-	  IL_002c:  nop 
-	  IL_002d:  ldloc.1 
-	  IL_002e:  callvirt instance string class [System]System.Uri::get_LocalPath()
-	  IL_0033:  starg.s 1
-	  IL_0035:  nop 
-	  IL_0036:  br IL_0062
+	  IL_012f:  ldloc.3 
+	  IL_0130:  callvirt instance class NAnt.Core.Types.EnvironmentVariable class NAnt.Core.Types.EnvironmentVariableEnumerator::get_Current()
+	  IL_0135:  stloc.2 
+	  IL_0136:  nop 
+	  IL_0137:  ldloc.2 
+	  IL_0138:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_IfDefined()
+	  IL_013d:  brfalse IL_019a
 
-	  IL_003b:  nop 
-	  IL_003c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0041:  ldstr "NA1061"
-	  IL_0046:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_004b:  ldarg.1 
-	  IL_004c:  ldloc.1 
-	  IL_004d:  callvirt instance string class [System]System.Uri::get_Scheme()
-	  IL_0052:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0057:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	  IL_005c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_0061:  throw 
-	  IL_0062:  nop 
-	  IL_0063:  leave IL_0070
+	  IL_0142:  ldloc.2 
+	  IL_0143:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariable::get_UnlessDefined()
+	  IL_0148:  brtrue IL_019a
 
-	} // end .try 0
-	catch class [mscorlib]System.Object { // 0
-	  IL_0068:  pop 
-	  IL_0069:  nop 
-	  IL_006a:  nop 
-	  IL_006b:  leave IL_0070
+	  IL_014d:  nop 
+	  IL_014e:  ldloc.2 
+	  IL_014f:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_Value()
+	  IL_0154:  brtrue IL_017b
 
-	} // end handler 0
-	IL_0070:  ldarg.1 
-	IL_0071:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	IL_0076:  brtrue IL_0090
+	  IL_0159:  nop 
+	  IL_015a:  ldarg.1 
+	  IL_015b:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	  IL_0160:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
+	  IL_0165:  ldloc.2 
+	  IL_0166:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_VariableName()
+	  IL_016b:  ldstr ""
+	  IL_0170:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::set_Item(string, string)
+	  IL_0175:  nop 
+	  IL_0176:  br IL_0199
 
-	IL_007b:  nop 
-	IL_007c:  ldarg.0 
-	IL_007d:  call instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_0082:  ldarg.1 
-	IL_0083:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0088:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
-	IL_008d:  starg.s 1
-	IL_008f:  nop 
-	IL_0090:  ldarg.1 
-	IL_0091:  stloc.0 
-	IL_0092:  br IL_0097
+	  IL_017b:  nop 
+	  IL_017c:  ldarg.1 
+	  IL_017d:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	  IL_0182:  callvirt instance class [System]System.Collections.Specialized.StringDictionary class [System]System.Diagnostics.ProcessStartInfo::get_EnvironmentVariables()
+	  IL_0187:  ldloc.2 
+	  IL_0188:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_VariableName()
+	  IL_018d:  ldloc.2 
+	  IL_018e:  callvirt instance string class NAnt.Core.Types.EnvironmentVariable::get_Value()
+	  IL_0193:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::set_Item(string, string)
+	  IL_0198:  nop 
+	  IL_0199:  nop 
+	  IL_019a:  nop 
+	  IL_019b:  ldloc.3 
+	  IL_019c:  callvirt instance bool class NAnt.Core.Types.EnvironmentVariableEnumerator::MoveNext()
+	  IL_01a1:  brtrue IL_012f
 
-	IL_0097:  ldloc.0 
-	IL_0098:  ret 
-    } // end of method Project::GetFullPath
+	  IL_01a6:  leave IL_01c1
 
-    // method line 1739
-    .method public hidebysig 
-           instance default void CreateDefaultLogger ()  cil managed 
+	} // end .try 0
+	finally  { // 0
+	  IL_01ab:  ldloc.3 
+	  IL_01ac:  isinst [mscorlib]System.IDisposable
+	  IL_01b1:  dup 
+	  IL_01b2:  stloc.s 4
+	  IL_01b4:  brfalse IL_01c0
+
+	  IL_01b9:  ldloc.s 4
+	  IL_01bb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01c0:  endfinally 
+	} // end handler 0
+	IL_01c1:  nop 
+	IL_01c2:  ret 
+    } // end of method ExternalProgramBase::PrepareProcess
+
+    // method line 1535
+    .method family virtual hidebysig newslot 
+           instance default class [System]System.Diagnostics.Process StartProcess ()  cil managed 
     {
-        // Method begins at RVA 0x1ee54
-	// Code size 166 (0xa6)
-	.maxstack 3
+        // Method begins at RVA 0x19664
+	// Code size 154 (0x9a)
+	.maxstack 5
 	.locals init (
-		class NAnt.Core.IBuildLogger	V_0)
+		class [System]System.Diagnostics.Process	V_0,
+		string	V_1,
+		class [System]System.Diagnostics.Process	V_2,
+		class [mscorlib]System.Exception	V_3)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.DefaultLogger::'.ctor'()
+	IL_0001:  newobj instance void class [System]System.Diagnostics.Process::'.ctor'()
 	IL_0006:  stloc.0 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldloc.0 
-	IL_0009:  dup 
-	IL_000a:  ldvirtftn instance void class NAnt.Core.IBuildListener::BuildStarted(object, class NAnt.Core.BuildEventArgs)
-	IL_0010:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	IL_0015:  call instance void class NAnt.Core.Project::add_BuildStarted(class NAnt.Core.BuildEventHandler)
-	IL_001a:  ldarg.0 
-	IL_001b:  ldloc.0 
-	IL_001c:  dup 
-	IL_001d:  ldvirtftn instance void class NAnt.Core.IBuildListener::BuildFinished(object, class NAnt.Core.BuildEventArgs)
-	IL_0023:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	IL_0028:  call instance void class NAnt.Core.Project::add_BuildFinished(class NAnt.Core.BuildEventHandler)
-	IL_002d:  ldarg.0 
-	IL_002e:  ldloc.0 
-	IL_002f:  dup 
-	IL_0030:  ldvirtftn instance void class NAnt.Core.IBuildListener::TargetStarted(object, class NAnt.Core.BuildEventArgs)
-	IL_0036:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	IL_003b:  call instance void class NAnt.Core.Project::add_TargetStarted(class NAnt.Core.BuildEventHandler)
-	IL_0040:  ldarg.0 
-	IL_0041:  ldloc.0 
-	IL_0042:  dup 
-	IL_0043:  ldvirtftn instance void class NAnt.Core.IBuildListener::TargetFinished(object, class NAnt.Core.BuildEventArgs)
-	IL_0049:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	IL_004e:  call instance void class NAnt.Core.Project::add_TargetFinished(class NAnt.Core.BuildEventHandler)
-	IL_0053:  ldarg.0 
-	IL_0054:  ldloc.0 
-	IL_0055:  dup 
-	IL_0056:  ldvirtftn instance void class NAnt.Core.IBuildListener::TaskStarted(object, class NAnt.Core.BuildEventArgs)
-	IL_005c:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	IL_0061:  call instance void class NAnt.Core.Project::add_TaskStarted(class NAnt.Core.BuildEventHandler)
-	IL_0066:  ldarg.0 
-	IL_0067:  ldloc.0 
-	IL_0068:  dup 
-	IL_0069:  ldvirtftn instance void class NAnt.Core.IBuildListener::TaskFinished(object, class NAnt.Core.BuildEventArgs)
-	IL_006f:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	IL_0074:  call instance void class NAnt.Core.Project::add_TaskFinished(class NAnt.Core.BuildEventHandler)
-	IL_0079:  ldarg.0 
-	IL_007a:  ldloc.0 
-	IL_007b:  dup 
-	IL_007c:  ldvirtftn instance void class NAnt.Core.IBuildListener::MessageLogged(object, class NAnt.Core.BuildEventArgs)
-	IL_0082:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	IL_0087:  call instance void class NAnt.Core.Project::add_MessageLogged(class NAnt.Core.BuildEventHandler)
-	IL_008c:  ldloc.0 
-	IL_008d:  ldarg.0 
-	IL_008e:  call instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
-	IL_0093:  callvirt instance void class NAnt.Core.IBuildLogger::set_Threshold(valuetype NAnt.Core.Level)
-	IL_0098:  ldarg.0 
-	IL_0099:  call instance class NAnt.Core.BuildListenerCollection class NAnt.Core.Project::get_BuildListeners()
-	IL_009e:  ldloc.0 
-	IL_009f:  callvirt instance int32 class NAnt.Core.BuildListenerCollection::Add(class NAnt.Core.IBuildListener)
-	IL_00a4:  pop 
-	IL_00a5:  ret 
-    } // end of method Project::CreateDefaultLogger
+	IL_0009:  callvirt instance void class NAnt.Core.Tasks.ExternalProgramBase::PrepareProcess(class [System]System.Diagnostics.Process)
+	.try { // 0
+	  IL_000e:  nop 
+	  IL_000f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0014:  ldstr "String_Starting_Program"
+	  IL_0019:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_001e:  ldloc.0 
+	  IL_001f:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	  IL_0024:  callvirt instance string class [System]System.Diagnostics.ProcessStartInfo::get_WorkingDirectory()
+	  IL_0029:  ldloc.0 
+	  IL_002a:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	  IL_002f:  callvirt instance string class [System]System.Diagnostics.ProcessStartInfo::get_FileName()
+	  IL_0034:  ldloc.0 
+	  IL_0035:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	  IL_003a:  callvirt instance string class [System]System.Diagnostics.ProcessStartInfo::get_Arguments()
+	  IL_003f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_0044:  stloc.1 
+	  IL_0045:  ldsfld class [log4net]log4net.ILog NAnt.Core.Tasks.ExternalProgramBase::logger
+	  IL_004a:  ldloc.1 
+	  IL_004b:  callvirt instance void class [log4net]log4net.ILog::Info(object)
+	  IL_0050:  ldarg.0 
+	  IL_0051:  ldc.i4 2000
+	  IL_0056:  ldloc.1 
+	  IL_0057:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	  IL_005c:  ldloc.0 
+	  IL_005d:  callvirt instance bool class [System]System.Diagnostics.Process::Start()
+	  IL_0062:  pop 
+	  IL_0063:  ldloc.0 
+	  IL_0064:  stloc.2 
+	  IL_0065:  leave IL_0098
 
-    // method line 1740
-    .method public hidebysig 
-           instance default void Indent ()  cil managed 
-    {
-        // Method begins at RVA 0x1ef06
-	// Code size 16 (0x10)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  dup 
-	IL_0003:  ldfld int32 NAnt.Core.Project::_indentationLevel
-	IL_0008:  ldc.i4.1 
-	IL_0009:  add 
-	IL_000a:  stfld int32 NAnt.Core.Project::_indentationLevel
-	IL_000f:  ret 
-    } // end of method Project::Indent
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_006a:  stloc.3 
+	  IL_006b:  nop 
+	  IL_006c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0071:  ldstr "NA1121"
+	  IL_0076:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_007b:  ldloc.0 
+	  IL_007c:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class [System]System.Diagnostics.Process::get_StartInfo()
+	  IL_0081:  callvirt instance string class [System]System.Diagnostics.ProcessStartInfo::get_FileName()
+	  IL_0086:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_008b:  ldarg.0 
+	  IL_008c:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0091:  ldloc.3 
+	  IL_0092:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0097:  throw 
+	} // end handler 0
+	IL_0098:  ldloc.2 
+	IL_0099:  ret 
+    } // end of method ExternalProgramBase::StartProcess
 
-    // method line 1741
-    .method public hidebysig 
-           instance default void Unindent ()  cil managed 
+    // method line 1536
+    .method private hidebysig 
+           instance default void StreamReaderThread_Output ()  cil managed 
     {
-        // Method begins at RVA 0x1ef17
-	// Code size 16 (0x10)
-	.maxstack 8
+        // Method begins at RVA 0x1971c
+	// Code size 195 (0xc3)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.IO.StreamReader	V_0,
+		bool	V_1,
+		string	V_2,
+		object	V_3,
+		bool	V_4,
+		class [mscorlib]System.IO.StreamWriter	V_5,
+		object	V_6,
+		bool	V_7)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  dup 
-	IL_0003:  ldfld int32 NAnt.Core.Project::_indentationLevel
-	IL_0008:  ldc.i4.1 
-	IL_0009:  sub 
-	IL_000a:  stfld int32 NAnt.Core.Project::_indentationLevel
-	IL_000f:  ret 
-    } // end of method Project::Unindent
+	IL_0002:  ldfld class [mscorlib]System.IO.StreamReader NAnt.Core.Tasks.ExternalProgramBase::_stdOut
+	IL_0007:  stloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_OutputAppend()
+	IL_000e:  stloc.1 
+	IL_000f:  nop 
+	IL_0010:  nop 
+	IL_0011:  ldloc.0 
+	IL_0012:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	IL_0017:  stloc.2 
+	IL_0018:  ldloc.2 
+	IL_0019:  brtrue IL_0024
 
-    // method line 1742
-    .method public hidebysig 
-           instance default void DetachBuildListeners ()  cil managed 
-    {
-        // Method begins at RVA 0x1ef28
-	// Code size 248 (0xf8)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.IBuildListener	V_0,
-		class NAnt.Core.BuildListenerEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance class NAnt.Core.BuildListenerCollection class NAnt.Core.Project::get_BuildListeners()
-	IL_0008:  callvirt instance class NAnt.Core.BuildListenerEnumerator class NAnt.Core.BuildListenerCollection::GetEnumerator()
-	IL_000d:  stloc.1 
-	.try { // 0
-	  IL_000e:  br IL_00c8
+	IL_001e:  nop 
+	IL_001f:  br IL_0091
 
-	  IL_0013:  ldloc.1 
-	  IL_0014:  callvirt instance class NAnt.Core.IBuildListener class NAnt.Core.BuildListenerEnumerator::get_Current()
-	  IL_0019:  stloc.0 
-	  IL_001a:  nop 
-	  IL_001b:  ldarg.0 
-	  IL_001c:  ldloc.0 
-	  IL_001d:  dup 
-	  IL_001e:  ldvirtftn instance void class NAnt.Core.IBuildListener::BuildStarted(object, class NAnt.Core.BuildEventArgs)
-	  IL_0024:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	  IL_0029:  call instance void class NAnt.Core.Project::remove_BuildStarted(class NAnt.Core.BuildEventHandler)
-	  IL_002e:  ldarg.0 
-	  IL_002f:  ldloc.0 
-	  IL_0030:  dup 
-	  IL_0031:  ldvirtftn instance void class NAnt.Core.IBuildListener::BuildFinished(object, class NAnt.Core.BuildEventArgs)
-	  IL_0037:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	  IL_003c:  call instance void class NAnt.Core.Project::remove_BuildFinished(class NAnt.Core.BuildEventHandler)
-	  IL_0041:  ldarg.0 
-	  IL_0042:  ldloc.0 
-	  IL_0043:  dup 
-	  IL_0044:  ldvirtftn instance void class NAnt.Core.IBuildListener::TargetStarted(object, class NAnt.Core.BuildEventArgs)
-	  IL_004a:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	  IL_004f:  call instance void class NAnt.Core.Project::remove_TargetStarted(class NAnt.Core.BuildEventHandler)
-	  IL_0054:  ldarg.0 
-	  IL_0055:  ldloc.0 
-	  IL_0056:  dup 
-	  IL_0057:  ldvirtftn instance void class NAnt.Core.IBuildListener::TargetFinished(object, class NAnt.Core.BuildEventArgs)
-	  IL_005d:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	  IL_0062:  call instance void class NAnt.Core.Project::remove_TargetFinished(class NAnt.Core.BuildEventHandler)
-	  IL_0067:  ldarg.0 
-	  IL_0068:  ldloc.0 
-	  IL_0069:  dup 
-	  IL_006a:  ldvirtftn instance void class NAnt.Core.IBuildListener::TaskStarted(object, class NAnt.Core.BuildEventArgs)
-	  IL_0070:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	  IL_0075:  call instance void class NAnt.Core.Project::remove_TaskStarted(class NAnt.Core.BuildEventHandler)
-	  IL_007a:  ldarg.0 
-	  IL_007b:  ldloc.0 
-	  IL_007c:  dup 
-	  IL_007d:  ldvirtftn instance void class NAnt.Core.IBuildListener::TaskFinished(object, class NAnt.Core.BuildEventArgs)
-	  IL_0083:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	  IL_0088:  call instance void class NAnt.Core.Project::remove_TaskFinished(class NAnt.Core.BuildEventHandler)
-	  IL_008d:  ldarg.0 
-	  IL_008e:  ldloc.0 
-	  IL_008f:  dup 
-	  IL_0090:  ldvirtftn instance void class NAnt.Core.IBuildListener::MessageLogged(object, class NAnt.Core.BuildEventArgs)
-	  IL_0096:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	  IL_009b:  call instance void class NAnt.Core.Project::remove_MessageLogged(class NAnt.Core.BuildEventHandler)
-	  IL_00a0:  ldtoken NAnt.Core.IBuildLogger
-	  IL_00a5:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_00aa:  ldloc.0 
-	  IL_00ab:  callvirt instance class [mscorlib]System.Type object::GetType()
-	  IL_00b0:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	  IL_00b5:  brfalse IL_00c7
+	IL_0024:  ldsfld object NAnt.Core.Tasks.ExternalProgramBase::_lockObject
+	IL_0029:  stloc.3 
+	IL_002a:  ldc.i4.0 
+	IL_002b:  stloc.s 4
+	.try { // 0
+	  IL_002d:  ldloc.3 
+	  IL_002e:  ldloca.s 4
+	  IL_0030:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
+	  IL_0035:  nop 
+	  IL_0036:  ldarg.0 
+	  IL_0037:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.ExternalProgramBase::get_Output()
+	  IL_003c:  brfalse IL_006c
 
-	  IL_00ba:  nop 
-	  IL_00bb:  ldloc.0 
-	  IL_00bc:  castclass NAnt.Core.IBuildLogger
-	  IL_00c1:  callvirt instance void class NAnt.Core.IBuildLogger::Flush()
-	  IL_00c6:  nop 
-	  IL_00c7:  nop 
-	  IL_00c8:  ldloc.1 
-	  IL_00c9:  callvirt instance bool class NAnt.Core.BuildListenerEnumerator::MoveNext()
-	  IL_00ce:  brtrue IL_0013
+	  IL_0041:  nop 
+	  IL_0042:  ldarg.0 
+	  IL_0043:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.ExternalProgramBase::get_Output()
+	  IL_0048:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_004d:  ldloc.1 
+	  IL_004e:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string, bool)
+	  IL_0053:  stloc.s 5
+	  IL_0055:  ldloc.s 5
+	  IL_0057:  ldloc.2 
+	  IL_0058:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_005d:  ldc.i4.1 
+	  IL_005e:  stloc.1 
+	  IL_005f:  ldloc.s 5
+	  IL_0061:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
+	  IL_0066:  nop 
+	  IL_0067:  br IL_007a
 
-	  IL_00d3:  leave IL_00ec
+	  IL_006c:  nop 
+	  IL_006d:  ldarg.0 
+	  IL_006e:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.Tasks.ExternalProgramBase::get_OutputWriter()
+	  IL_0073:  ldloc.2 
+	  IL_0074:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_0079:  nop 
+	  IL_007a:  nop 
+	  IL_007b:  leave IL_008b
 
 	} // end .try 0
 	finally  { // 0
-	  IL_00d8:  ldloc.1 
-	  IL_00d9:  isinst [mscorlib]System.IDisposable
-	  IL_00de:  dup 
-	  IL_00df:  stloc.2 
-	  IL_00e0:  brfalse IL_00eb
+	  IL_0080:  ldloc.s 4
+	  IL_0082:  brfalse.s IL_008a
 
-	  IL_00e5:  ldloc.2 
-	  IL_00e6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00eb:  endfinally 
+	  IL_0084:  ldloc.3 
+	  IL_0085:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
+	  IL_008a:  endfinally 
 	} // end handler 0
-	IL_00ec:  ldarg.0 
-	IL_00ed:  call instance class NAnt.Core.BuildListenerCollection class NAnt.Core.Project::get_BuildListeners()
-	IL_00f2:  callvirt instance void class [mscorlib]System.Collections.CollectionBase::Clear()
-	IL_00f7:  ret 
-    } // end of method Project::DetachBuildListeners
+	IL_008b:  nop 
+	IL_008c:  br IL_000f
 
-    // method line 1743
-    .method public hidebysig 
-           instance default void AttachBuildListeners (class NAnt.Core.BuildListenerCollection listeners)  cil managed 
+	IL_0091:  ldsfld object NAnt.Core.Tasks.ExternalProgramBase::_lockObject
+	IL_0096:  stloc.s 6
+	IL_0098:  ldc.i4.0 
+	IL_0099:  stloc.s 7
+	.try { // 1
+	  IL_009b:  ldloc.s 6
+	  IL_009d:  ldloca.s 7
+	  IL_009f:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
+	  IL_00a4:  nop 
+	  IL_00a5:  ldarg.0 
+	  IL_00a6:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.Tasks.ExternalProgramBase::get_OutputWriter()
+	  IL_00ab:  callvirt instance void class [mscorlib]System.IO.TextWriter::Flush()
+	  IL_00b0:  nop 
+	  IL_00b1:  leave IL_00c2
+
+	} // end .try 1
+	finally  { // 1
+	  IL_00b6:  ldloc.s 7
+	  IL_00b8:  brfalse.s IL_00c1
+
+	  IL_00ba:  ldloc.s 6
+	  IL_00bc:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
+	  IL_00c1:  endfinally 
+	} // end handler 1
+	IL_00c2:  ret 
+    } // end of method ExternalProgramBase::StreamReaderThread_Output
+
+    // method line 1537
+    .method private hidebysig 
+           instance default void StreamReaderThread_Error ()  cil managed 
     {
-        // Method begins at RVA 0x1f03c
-	// Code size 212 (0xd4)
-	.maxstack 3
+        // Method begins at RVA 0x19808
+	// Code size 188 (0xbc)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.IBuildListener	V_0,
-		class NAnt.Core.BuildListenerEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2)
+		class [mscorlib]System.IO.StreamReader	V_0,
+		bool	V_1,
+		string	V_2,
+		object	V_3,
+		bool	V_4,
+		class [mscorlib]System.IO.StreamWriter	V_5,
+		object	V_6,
+		bool	V_7)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.Project::DetachBuildListeners()
-	IL_0007:  nop 
-	IL_0008:  ldarg.1 
-	IL_0009:  callvirt instance class NAnt.Core.BuildListenerEnumerator class NAnt.Core.BuildListenerCollection::GetEnumerator()
+	IL_0002:  ldfld class [mscorlib]System.IO.StreamReader NAnt.Core.Tasks.ExternalProgramBase::_stdError
+	IL_0007:  stloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance bool class NAnt.Core.Tasks.ExternalProgramBase::get_OutputAppend()
 	IL_000e:  stloc.1 
-	.try { // 0
-	  IL_000f:  br IL_00af
+	IL_000f:  nop 
+	IL_0010:  nop 
+	IL_0011:  ldloc.0 
+	IL_0012:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	IL_0017:  stloc.2 
+	IL_0018:  ldloc.2 
+	IL_0019:  brtrue IL_0024
 
-	  IL_0014:  ldloc.1 
-	  IL_0015:  callvirt instance class NAnt.Core.IBuildListener class NAnt.Core.BuildListenerEnumerator::get_Current()
-	  IL_001a:  stloc.0 
-	  IL_001b:  nop 
-	  IL_001c:  ldarg.0 
-	  IL_001d:  ldloc.0 
-	  IL_001e:  dup 
-	  IL_001f:  ldvirtftn instance void class NAnt.Core.IBuildListener::BuildStarted(object, class NAnt.Core.BuildEventArgs)
-	  IL_0025:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	  IL_002a:  call instance void class NAnt.Core.Project::add_BuildStarted(class NAnt.Core.BuildEventHandler)
-	  IL_002f:  ldarg.0 
-	  IL_0030:  ldloc.0 
-	  IL_0031:  dup 
-	  IL_0032:  ldvirtftn instance void class NAnt.Core.IBuildListener::BuildFinished(object, class NAnt.Core.BuildEventArgs)
-	  IL_0038:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	  IL_003d:  call instance void class NAnt.Core.Project::add_BuildFinished(class NAnt.Core.BuildEventHandler)
+	IL_001e:  nop 
+	IL_001f:  br IL_008a
+
+	IL_0024:  ldsfld object NAnt.Core.Tasks.ExternalProgramBase::_lockObject
+	IL_0029:  stloc.3 
+	IL_002a:  ldc.i4.0 
+	IL_002b:  stloc.s 4
+	.try { // 0
+	  IL_002d:  ldloc.3 
+	  IL_002e:  ldloca.s 4
+	  IL_0030:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
+	  IL_0035:  nop 
+	  IL_0036:  ldarg.0 
+	  IL_0037:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.Tasks.ExternalProgramBase::get_ErrorWriter()
+	  IL_003c:  ldloc.2 
+	  IL_003d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
 	  IL_0042:  ldarg.0 
-	  IL_0043:  ldloc.0 
-	  IL_0044:  dup 
-	  IL_0045:  ldvirtftn instance void class NAnt.Core.IBuildListener::TargetStarted(object, class NAnt.Core.BuildEventArgs)
-	  IL_004b:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	  IL_0050:  call instance void class NAnt.Core.Project::add_TargetStarted(class NAnt.Core.BuildEventHandler)
-	  IL_0055:  ldarg.0 
-	  IL_0056:  ldloc.0 
-	  IL_0057:  dup 
-	  IL_0058:  ldvirtftn instance void class NAnt.Core.IBuildListener::TargetFinished(object, class NAnt.Core.BuildEventArgs)
-	  IL_005e:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	  IL_0063:  call instance void class NAnt.Core.Project::add_TargetFinished(class NAnt.Core.BuildEventHandler)
-	  IL_0068:  ldarg.0 
-	  IL_0069:  ldloc.0 
-	  IL_006a:  dup 
-	  IL_006b:  ldvirtftn instance void class NAnt.Core.IBuildListener::TaskStarted(object, class NAnt.Core.BuildEventArgs)
-	  IL_0071:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	  IL_0076:  call instance void class NAnt.Core.Project::add_TaskStarted(class NAnt.Core.BuildEventHandler)
-	  IL_007b:  ldarg.0 
-	  IL_007c:  ldloc.0 
-	  IL_007d:  dup 
-	  IL_007e:  ldvirtftn instance void class NAnt.Core.IBuildListener::TaskFinished(object, class NAnt.Core.BuildEventArgs)
-	  IL_0084:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	  IL_0089:  call instance void class NAnt.Core.Project::add_TaskFinished(class NAnt.Core.BuildEventHandler)
-	  IL_008e:  ldarg.0 
-	  IL_008f:  ldloc.0 
-	  IL_0090:  dup 
-	  IL_0091:  ldvirtftn instance void class NAnt.Core.IBuildListener::MessageLogged(object, class NAnt.Core.BuildEventArgs)
-	  IL_0097:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
-	  IL_009c:  call instance void class NAnt.Core.Project::add_MessageLogged(class NAnt.Core.BuildEventHandler)
-	  IL_00a1:  ldarg.0 
-	  IL_00a2:  call instance class NAnt.Core.BuildListenerCollection class NAnt.Core.Project::get_BuildListeners()
-	  IL_00a7:  ldloc.0 
-	  IL_00a8:  callvirt instance int32 class NAnt.Core.BuildListenerCollection::Add(class NAnt.Core.IBuildListener)
-	  IL_00ad:  pop 
-	  IL_00ae:  nop 
-	  IL_00af:  ldloc.1 
-	  IL_00b0:  callvirt instance bool class NAnt.Core.BuildListenerEnumerator::MoveNext()
-	  IL_00b5:  brtrue IL_0014
+	  IL_0043:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.ExternalProgramBase::get_Output()
+	  IL_0048:  brfalse IL_0073
 
-	  IL_00ba:  leave IL_00d3
+	  IL_004d:  nop 
+	  IL_004e:  ldarg.0 
+	  IL_004f:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.ExternalProgramBase::get_Output()
+	  IL_0054:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0059:  ldloc.1 
+	  IL_005a:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string, bool)
+	  IL_005f:  stloc.s 5
+	  IL_0061:  ldloc.s 5
+	  IL_0063:  ldloc.2 
+	  IL_0064:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_0069:  ldc.i4.1 
+	  IL_006a:  stloc.1 
+	  IL_006b:  ldloc.s 5
+	  IL_006d:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
+	  IL_0072:  nop 
+	  IL_0073:  nop 
+	  IL_0074:  leave IL_0084
 
 	} // end .try 0
 	finally  { // 0
-	  IL_00bf:  ldloc.1 
-	  IL_00c0:  isinst [mscorlib]System.IDisposable
-	  IL_00c5:  dup 
-	  IL_00c6:  stloc.2 
-	  IL_00c7:  brfalse IL_00d2
+	  IL_0079:  ldloc.s 4
+	  IL_007b:  brfalse.s IL_0083
 
-	  IL_00cc:  ldloc.2 
-	  IL_00cd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00d2:  endfinally 
+	  IL_007d:  ldloc.3 
+	  IL_007e:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
+	  IL_0083:  endfinally 
 	} // end handler 0
-	IL_00d3:  ret 
-    } // end of method Project::AttachBuildListeners
+	IL_0084:  nop 
+	IL_0085:  br IL_000f
 
-    // method line 1744
+	IL_008a:  ldsfld object NAnt.Core.Tasks.ExternalProgramBase::_lockObject
+	IL_008f:  stloc.s 6
+	IL_0091:  ldc.i4.0 
+	IL_0092:  stloc.s 7
+	.try { // 1
+	  IL_0094:  ldloc.s 6
+	  IL_0096:  ldloca.s 7
+	  IL_0098:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
+	  IL_009d:  nop 
+	  IL_009e:  ldarg.0 
+	  IL_009f:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.Tasks.ExternalProgramBase::get_ErrorWriter()
+	  IL_00a4:  callvirt instance void class [mscorlib]System.IO.TextWriter::Flush()
+	  IL_00a9:  nop 
+	  IL_00aa:  leave IL_00bb
+
+	} // end .try 1
+	finally  { // 1
+	  IL_00af:  ldloc.s 7
+	  IL_00b1:  brfalse.s IL_00ba
+
+	  IL_00b3:  ldloc.s 6
+	  IL_00b5:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
+	  IL_00ba:  endfinally 
+	} // end handler 1
+	IL_00bb:  ret 
+    } // end of method ExternalProgramBase::StreamReaderThread_Error
+
+    // method line 1538
     .method private hidebysig 
-           instance default void CtorHelper (class [System.Xml]System.Xml.XmlDocument doc, valuetype NAnt.Core.Level threshold, int32 indentLevel, valuetype NAnt.Core.Optimizations optimization)  cil managed 
+           instance default string DetermineFilePath ()  cil managed 
     {
-        // Method begins at RVA 0x1f12c
-	// Code size 779 (0x30b)
-	.maxstack 4
+        // Method begins at RVA 0x198ec
+	// Code size 517 (0x205)
+	.maxstack 3
 	.locals init (
 		string	V_0,
 		string	V_1,
-		class [System.Xml]System.Xml.XmlAttribute	V_2,
-		class [System.Xml]System.Xml.XmlAttribute	V_3,
-		bool	V_4,
-		class NAnt.Core.ProjectSettingsLoader	V_5,
-		class [mscorlib]System.Reflection.Assembly	V_6)
+		class NAnt.Core.Attributes.ProgramLocationAttribute	V_2,
+		valuetype NAnt.Core.Attributes.LocationType	V_3,
+		string	V_4,
+		string	V_5,
+		string	V_6)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	IL_0001:  ldstr ""
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ExeName()
+	IL_000d:  brfalse IL_002f
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "doc"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldnull 
-	IL_0014:  stloc.0 
-	IL_0015:  ldarg.0 
-	IL_0016:  ldarg.0 
-	IL_0017:  newobj instance void class NAnt.Core.PropertyDictionary::'.ctor'(class NAnt.Core.Project)
-	IL_001c:  stfld class NAnt.Core.PropertyDictionary NAnt.Core.Project::_properties
-	IL_0021:  ldarg.0 
-	IL_0022:  ldarg.0 
-	IL_0023:  newobj instance void class NAnt.Core.PropertyDictionary::'.ctor'(class NAnt.Core.Project)
-	IL_0028:  stfld class NAnt.Core.PropertyDictionary NAnt.Core.Project::_frameworkNeutralProperties
-	IL_002d:  ldarg.0 
-	IL_002e:  ldarg.1 
-	IL_002f:  stfld class [System.Xml]System.Xml.XmlDocument NAnt.Core.Project::_doc
-	IL_0034:  ldarg.0 
-	IL_0035:  ldc.i4.s 0x0c
-	IL_0037:  stfld int32 NAnt.Core.Project::_indentationSize
-	IL_003c:  ldarg.0 
-	IL_003d:  ldarg.3 
-	IL_003e:  stfld int32 NAnt.Core.Project::_indentationLevel
-	IL_0043:  ldarg.0 
-	IL_0044:  ldarg.2 
-	IL_0045:  call instance void class NAnt.Core.Project::set_Threshold(valuetype NAnt.Core.Level)
-	IL_004a:  ldarg.0 
-	IL_004b:  call instance void class NAnt.Core.Project::CreateDefaultLogger()
-	IL_0050:  ldarg.0 
-	IL_0051:  call instance void class NAnt.Core.Project::ConfigurePlatformProperties()
-	IL_0056:  ldarg.1 
-	IL_0057:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_005c:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	IL_0061:  call bool string::IsNullOrEmpty(string)
-	IL_0066:  brfalse IL_00c9
+	IL_0012:  ldarg.0 
+	IL_0013:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ExeName()
+	IL_0018:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_001d:  brfalse IL_002f
 
-	IL_006b:  nop 
-	IL_006c:  ldarg.1 
-	IL_006d:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_0072:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0077:  ldstr "xmlns"
-	IL_007c:  ldstr "nant"
-	IL_0081:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string, string)
-	IL_0086:  stloc.2 
-	IL_0087:  ldloc.2 
-	IL_0088:  brtrue IL_009a
+	IL_0022:  nop 
+	IL_0023:  ldarg.0 
+	IL_0024:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ExeName()
+	IL_0029:  stloc.1 
+	IL_002a:  br IL_0203
 
-	IL_008d:  nop 
-	IL_008e:  ldstr "http://none"
-	IL_0093:  stloc.1 
-	IL_0094:  nop 
-	IL_0095:  br IL_00a3
+	IL_002f:  ldarg.0 
+	IL_0030:  call instance class [mscorlib]System.Type object::GetType()
+	IL_0035:  ldtoken NAnt.Core.Attributes.ProgramLocationAttribute
+	IL_003a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_003f:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	IL_0044:  castclass NAnt.Core.Attributes.ProgramLocationAttribute
+	IL_0049:  stloc.2 
+	IL_004a:  ldloc.2 
+	IL_004b:  brfalse IL_01f3
 
-	IL_009a:  nop 
-	IL_009b:  ldloc.2 
-	IL_009c:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_00a1:  stloc.1 
-	IL_00a2:  nop 
-	IL_00a3:  ldarg.1 
-	IL_00a4:  ldstr "xmlns"
-	IL_00a9:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlDocument::CreateAttribute(string)
-	IL_00ae:  stloc.3 
-	IL_00af:  ldloc.3 
-	IL_00b0:  ldloc.1 
-	IL_00b1:  callvirt instance void class [System.Xml]System.Xml.XmlNode::set_Value(string)
-	IL_00b6:  ldarg.1 
-	IL_00b7:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_00bc:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_00c1:  ldloc.3 
-	IL_00c2:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::Append(class [System.Xml]System.Xml.XmlAttribute)
-	IL_00c7:  pop 
-	IL_00c8:  nop 
-	IL_00c9:  ldarg.0 
-	IL_00ca:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
-	IL_00cf:  ldstr "nant"
-	IL_00d4:  ldarg.1 
-	IL_00d5:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_00da:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	IL_00df:  callvirt instance void class [System.Xml]System.Xml.XmlNamespaceManager::AddNamespace(string, string)
-	IL_00e4:  ldarg.1 
-	IL_00e5:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_00ea:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_LocalName()
-	IL_00ef:  ldstr "project"
-	IL_00f4:  callvirt instance bool string::Equals(string)
-	IL_00f9:  brtrue IL_0124
+	IL_0050:  nop 
+	IL_0051:  ldloc.2 
+	IL_0052:  callvirt instance valuetype NAnt.Core.Attributes.LocationType class NAnt.Core.Attributes.ProgramLocationAttribute::get_LocationType()
+	IL_0057:  brfalse IL_0068
 
-	IL_00fe:  nop 
-	IL_00ff:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0104:  ldstr "NA1059"
-	IL_0109:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_010e:  ldarg.1 
-	IL_010f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_BaseURI()
-	IL_0114:  ldstr "project"
-	IL_0119:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_011e:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0123:  throw 
-	IL_0124:  ldarg.1 
-	IL_0125:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_012a:  ldstr "name"
-	IL_012f:  callvirt instance bool class [System.Xml]System.Xml.XmlElement::HasAttribute(string)
-	IL_0134:  brfalse IL_0151
+	IL_005c:  ldloc.2 
+	IL_005d:  callvirt instance valuetype NAnt.Core.Attributes.LocationType class NAnt.Core.Attributes.ProgramLocationAttribute::get_LocationType()
+	IL_0062:  ldc.i4.1 
+	IL_0063:  bne.un IL_00a3
 
-	IL_0139:  nop 
-	IL_013a:  ldarg.0 
-	IL_013b:  ldarg.1 
-	IL_013c:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_0141:  ldstr "name"
-	IL_0146:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_014b:  stfld string NAnt.Core.Project::_projectName
-	IL_0150:  nop 
-	IL_0151:  ldarg.1 
-	IL_0152:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_0157:  ldstr "basedir"
-	IL_015c:  callvirt instance bool class [System.Xml]System.Xml.XmlElement::HasAttribute(string)
-	IL_0161:  brfalse IL_0179
+	IL_0068:  ldarg.0 
+	IL_0069:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_006e:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_0073:  brtrue IL_00a3
 
-	IL_0166:  nop 
-	IL_0167:  ldarg.1 
-	IL_0168:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_016d:  ldstr "basedir"
-	IL_0172:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_0177:  stloc.0 
-	IL_0178:  nop 
-	IL_0179:  ldarg.1 
-	IL_017a:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_017f:  ldstr "default"
-	IL_0184:  callvirt instance bool class [System.Xml]System.Xml.XmlElement::HasAttribute(string)
-	IL_0189:  brfalse IL_01a6
+	IL_0078:  nop 
+	IL_0079:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_007e:  ldstr "NA1120"
+	IL_0083:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0088:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_008d:  call string string::Concat(string, string)
+	IL_0092:  ldarg.0 
+	IL_0093:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_0098:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_009d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_00a2:  throw 
+	IL_00a3:  ldloc.2 
+	IL_00a4:  callvirt instance valuetype NAnt.Core.Attributes.LocationType class NAnt.Core.Attributes.ProgramLocationAttribute::get_LocationType()
+	IL_00a9:  stloc.3 
+	IL_00aa:  ldloc.3 
+	IL_00ab:  brfalse IL_00bc
 
-	IL_018e:  nop 
-	IL_018f:  ldarg.0 
-	IL_0190:  ldarg.1 
-	IL_0191:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_0196:  ldstr "default"
-	IL_019b:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_01a0:  stfld string NAnt.Core.Project::_defaultTargetName
-	IL_01a5:  nop 
-	IL_01a6:  ldloc.0 
-	IL_01a7:  call bool string::IsNullOrEmpty(string)
-	IL_01ac:  brfalse IL_01e3
+	IL_00b0:  ldloc.3 
+	IL_00b1:  ldc.i4.1 
+	IL_00b2:  beq IL_0137
 
-	IL_01b1:  nop 
-	IL_01b2:  ldarg.0 
-	IL_01b3:  call instance string class NAnt.Core.Project::get_BuildFileLocalName()
-	IL_01b8:  call bool string::IsNullOrEmpty(string)
-	IL_01bd:  brtrue IL_01d5
+	IL_00b7:  br IL_01b2
 
-	IL_01c2:  nop 
-	IL_01c3:  ldarg.0 
-	IL_01c4:  call instance string class NAnt.Core.Project::get_BuildFileLocalName()
-	IL_01c9:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_01ce:  stloc.0 
-	IL_01cf:  nop 
-	IL_01d0:  br IL_01dd
+	IL_00bc:  ldarg.0 
+	IL_00bd:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_00c2:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_00c7:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
+	IL_00cc:  brfalse IL_0107
 
-	IL_01d5:  nop 
-	IL_01d6:  call string class [mscorlib]System.Environment::get_CurrentDirectory()
-	IL_01db:  stloc.0 
-	IL_01dc:  nop 
-	IL_01dd:  nop 
-	IL_01de:  br IL_0219
+	IL_00d1:  nop 
+	IL_00d2:  ldarg.0 
+	IL_00d3:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_00d8:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_00dd:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
+	IL_00e2:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00e7:  stloc.s 4
+	IL_00e9:  ldloc.s 4
+	IL_00eb:  ldarg.0 
+	IL_00ec:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ExeName()
+	IL_00f1:  ldstr ".exe"
+	IL_00f6:  call string string::Concat(string, string)
+	IL_00fb:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0100:  stloc.0 
+	IL_0101:  nop 
+	IL_0102:  br IL_0132
 
-	IL_01e3:  nop 
-	IL_01e4:  ldarg.0 
-	IL_01e5:  call instance string class NAnt.Core.Project::get_BuildFileLocalName()
-	IL_01ea:  call bool string::IsNullOrEmpty(string)
-	IL_01ef:  brtrue IL_0218
+	IL_0107:  nop 
+	IL_0108:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_010d:  ldstr "NA1124"
+	IL_0112:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0117:  ldarg.0 
+	IL_0118:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_011d:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_0122:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	IL_0127:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_012c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_0131:  throw 
+	IL_0132:  br IL_01b2
 
-	IL_01f4:  ldloc.0 
-	IL_01f5:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	IL_01fa:  brtrue IL_0218
+	IL_0137:  ldarg.0 
+	IL_0138:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_013d:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_0142:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
+	IL_0147:  brfalse IL_0182
 
-	IL_01ff:  nop 
-	IL_0200:  ldarg.0 
-	IL_0201:  call instance string class NAnt.Core.Project::get_BuildFileLocalName()
-	IL_0206:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_020b:  ldloc.0 
-	IL_020c:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0211:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
-	IL_0216:  stloc.0 
-	IL_0217:  nop 
-	IL_0218:  nop 
-	IL_0219:  ldloc.0 
-	IL_021a:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
-	IL_021f:  stloc.0 
-	IL_0220:  ldarg.0 
-	IL_0221:  ldloc.0 
-	IL_0222:  call instance void class NAnt.Core.Project::set_BaseDirectory(string)
-	IL_0227:  ldarg.s 4
-	IL_0229:  ldc.i4.1 
-	IL_022a:  and 
-	IL_022b:  ldc.i4.0 
-	IL_022c:  ceq 
-	IL_022e:  stloc.s 4
-	IL_0230:  ldarg.0 
-	IL_0231:  ldloc.s 4
-	IL_0233:  call void class NAnt.Core.TypeFactory::AddProject(class NAnt.Core.Project, bool)
-	IL_0238:  ldarg.s 4
-	IL_023a:  ldc.i4.2 
-	IL_023b:  and 
-	IL_023c:  brtrue IL_0252
+	IL_014c:  nop 
+	IL_014d:  ldarg.0 
+	IL_014e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0153:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_0158:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
+	IL_015d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0162:  stloc.s 5
+	IL_0164:  ldloc.s 5
+	IL_0166:  ldarg.0 
+	IL_0167:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ExeName()
+	IL_016c:  ldstr ".exe"
+	IL_0171:  call string string::Concat(string, string)
+	IL_0176:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_017b:  stloc.0 
+	IL_017c:  nop 
+	IL_017d:  br IL_01ad
 
-	IL_0241:  nop 
-	IL_0242:  ldarg.0 
-	IL_0243:  newobj instance void class NAnt.Core.ProjectSettingsLoader::'.ctor'(class NAnt.Core.Project)
-	IL_0248:  stloc.s 5
-	IL_024a:  ldloc.s 5
-	IL_024c:  callvirt instance void class NAnt.Core.ProjectSettingsLoader::ProcessSettings()
-	IL_0251:  nop 
-	IL_0252:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetExecutingAssembly()
-	IL_0257:  stloc.s 6
-	IL_0259:  ldarg.0 
-	IL_025a:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_025f:  ldstr "nant.filename"
-	IL_0264:  ldloc.s 6
-	IL_0266:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_CodeBase()
-	IL_026b:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	IL_0270:  ldarg.0 
-	IL_0271:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0276:  ldstr "nant.version"
-	IL_027b:  ldloc.s 6
-	IL_027d:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
-	IL_0282:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
-	IL_0287:  callvirt instance string object::ToString()
-	IL_028c:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	IL_0291:  ldarg.0 
-	IL_0292:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0297:  ldstr "nant.location"
-	IL_029c:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_02a1:  callvirt instance string class [mscorlib]System.AppDomain::get_BaseDirectory()
-	IL_02a6:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	IL_02ab:  ldarg.0 
-	IL_02ac:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_02b1:  ldstr "nant.project.name"
-	IL_02b6:  ldarg.0 
-	IL_02b7:  call instance string class NAnt.Core.Project::get_ProjectName()
-	IL_02bc:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	IL_02c1:  ldarg.0 
-	IL_02c2:  call instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
-	IL_02c7:  ldnull 
-	IL_02c8:  call bool class [System]System.Uri::op_Inequality(class [System]System.Uri, class [System]System.Uri)
-	IL_02cd:  brfalse IL_02ef
+	IL_0182:  nop 
+	IL_0183:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0188:  ldstr "NA1122"
+	IL_018d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0192:  ldarg.0 
+	IL_0193:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0198:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_019d:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	IL_01a2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_01a7:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_01ac:  throw 
+	IL_01ad:  br IL_01b2
 
-	IL_02d2:  nop 
-	IL_02d3:  ldarg.0 
-	IL_02d4:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_02d9:  ldstr "nant.project.buildfile"
-	IL_02de:  ldarg.0 
-	IL_02df:  call instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
-	IL_02e4:  callvirt instance string object::ToString()
-	IL_02e9:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	IL_02ee:  nop 
-	IL_02ef:  ldarg.0 
-	IL_02f0:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_02f5:  ldstr "nant.project.default"
-	IL_02fa:  ldarg.0 
-	IL_02fb:  call instance string class NAnt.Core.Project::get_DefaultTargetName()
-	IL_0300:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
-	IL_0305:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	IL_030a:  ret 
-    } // end of method Project::CtorHelper
+	IL_01b2:  ldloc.0 
+	IL_01b3:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_01b8:  brtrue IL_01ed
 
-    // method line 1745
-    .method assembly hidebysig 
-           instance default void InitializeProjectDocument (class [System.Xml]System.Xml.XmlDocument doc)  cil managed 
-    {
-        // Method begins at RVA 0x1f444
-	// Code size 602 (0x25a)
-	.maxstack 7
-	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Target	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		class [System.Xml]System.Xml.XmlNode	V_4,
-		class [mscorlib]System.Collections.IEnumerator	V_5,
-		class NAnt.Core.Task	V_6,
-		class NAnt.Core.DataTypeBase	V_7,
-		class [mscorlib]System.IDisposable	V_8)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class NAnt.Core.LocationMap::Add(class [System.Xml]System.Xml.XmlDocument)
-	IL_000d:  nop 
-	IL_000e:  ldarg.1 
-	IL_000f:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_0014:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::get_ChildNodes()
-	IL_0019:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_001e:  stloc.1 
-	.try { // 0
-	  IL_001f:  br IL_009d
-
-	  IL_0024:  ldloc.1 
-	  IL_0025:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_002a:  castclass [System.Xml]System.Xml.XmlNode
-	  IL_002f:  stloc.0 
-	  IL_0030:  nop 
-	  IL_0031:  ldloc.0 
-	  IL_0032:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_LocalName()
-	  IL_0037:  ldstr "target"
-	  IL_003c:  callvirt instance bool string::Equals(string)
-	  IL_0041:  brfalse IL_009c
-
-	  IL_0046:  ldloc.0 
-	  IL_0047:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	  IL_004c:  ldarg.0 
-	  IL_004d:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
-	  IL_0052:  ldstr "nant"
-	  IL_0057:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
-	  IL_005c:  callvirt instance bool string::Equals(string)
-	  IL_0061:  brfalse IL_009c
-
-	  IL_0066:  nop 
-	  IL_0067:  newobj instance void class NAnt.Core.Target::'.ctor'()
-	  IL_006c:  stloc.2 
-	  IL_006d:  ldloc.2 
-	  IL_006e:  ldarg.0 
-	  IL_006f:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	  IL_0074:  ldloc.2 
-	  IL_0075:  ldarg.0 
-	  IL_0076:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	  IL_007b:  ldloc.2 
-	  IL_007c:  ldarg.0 
-	  IL_007d:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
-	  IL_0082:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	  IL_0087:  ldloc.2 
-	  IL_0088:  ldloc.0 
-	  IL_0089:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode)
-	  IL_008e:  ldarg.0 
-	  IL_008f:  call instance class NAnt.Core.TargetCollection class NAnt.Core.Project::get_Targets()
-	  IL_0094:  ldloc.2 
-	  IL_0095:  callvirt instance int32 class NAnt.Core.TargetCollection::Add(class NAnt.Core.Target)
-	  IL_009a:  pop 
-	  IL_009b:  nop 
-	  IL_009c:  nop 
-	  IL_009d:  ldloc.1 
-	  IL_009e:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00a3:  brtrue IL_0024
-
-	  IL_00a8:  leave IL_00c1
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00ad:  ldloc.1 
-	  IL_00ae:  isinst [mscorlib]System.IDisposable
-	  IL_00b3:  dup 
-	  IL_00b4:  stloc.3 
-	  IL_00b5:  brfalse IL_00c0
-
-	  IL_00ba:  ldloc.3 
-	  IL_00bb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00c0:  endfinally 
-	} // end handler 0
-	IL_00c1:  nop 
-	IL_00c2:  ldarg.1 
-	IL_00c3:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_00c8:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::get_ChildNodes()
-	IL_00cd:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_00d2:  stloc.s 5
-	.try { // 1
-	  IL_00d4:  br IL_0231
-
-	  IL_00d9:  ldloc.s 5
-	  IL_00db:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_00e0:  castclass [System.Xml]System.Xml.XmlNode
-	  IL_00e5:  stloc.s 4
-	  IL_00e7:  nop 
-	  IL_00e8:  ldloc.s 4
-	  IL_00ea:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
-	  IL_00ef:  ldc.i4.1 
-	  IL_00f0:  bne.un IL_012c
-
-	  IL_00f5:  ldloc.s 4
-	  IL_00f7:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	  IL_00fc:  ldarg.0 
-	  IL_00fd:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
-	  IL_0102:  ldstr "nant"
-	  IL_0107:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
-	  IL_010c:  callvirt instance bool string::Equals(string)
-	  IL_0111:  brfalse IL_012c
-
-	  IL_0116:  ldloc.s 4
-	  IL_0118:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_LocalName()
-	  IL_011d:  ldstr "target"
-	  IL_0122:  callvirt instance bool string::Equals(string)
-	  IL_0127:  brfalse IL_0132
-
-	  IL_012c:  nop 
-	  IL_012d:  leave IL_0231
-
-	  IL_0132:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
-	  IL_0137:  ldloc.s 4
-	  IL_0139:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_013e:  callvirt instance bool class NAnt.Core.TaskBuilderCollection::Contains(string)
-	  IL_0143:  brfalse IL_0168
-
-	  IL_0148:  nop 
-	  IL_0149:  ldarg.0 
-	  IL_014a:  ldloc.s 4
-	  IL_014c:  call instance class NAnt.Core.Task class NAnt.Core.Project::CreateTask(class [System.Xml]System.Xml.XmlNode)
-	  IL_0151:  stloc.s 6
-	  IL_0153:  ldloc.s 6
-	  IL_0155:  ldarg.0 
-	  IL_0156:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	  IL_015b:  ldloc.s 6
-	  IL_015d:  callvirt instance void class NAnt.Core.Task::Execute()
-	  IL_0162:  nop 
-	  IL_0163:  br IL_0230
-
-	  IL_0168:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
-	  IL_016d:  ldloc.s 4
-	  IL_016f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_0174:  callvirt instance bool class NAnt.Core.DataTypeBaseBuilderCollection::Contains(string)
-	  IL_0179:  brfalse IL_0201
-
-	  IL_017e:  nop 
-	  IL_017f:  ldarg.0 
-	  IL_0180:  ldloc.s 4
-	  IL_0182:  call instance class NAnt.Core.DataTypeBase class NAnt.Core.Project::CreateDataTypeBase(class [System.Xml]System.Xml.XmlNode)
-	  IL_0187:  stloc.s 7
-	  IL_0189:  ldarg.0 
-	  IL_018a:  ldc.i4 1000
-	  IL_018f:  ldstr "Adding a {0} reference with id '{1}'."
-	  IL_0194:  ldc.i4.2 
-	  IL_0195:  newarr [mscorlib]System.Object
-	  IL_019a:  dup 
-	  IL_019b:  ldc.i4.0 
-	  IL_019c:  ldloc.s 4
-	  IL_019e:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_01a3:  stelem.ref 
-	  IL_01a4:  dup 
-	  IL_01a5:  ldc.i4.1 
-	  IL_01a6:  ldloc.s 7
-	  IL_01a8:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	  IL_01ad:  stelem.ref 
-	  IL_01ae:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_01b3:  ldarg.0 
-	  IL_01b4:  call instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	  IL_01b9:  ldloc.s 7
-	  IL_01bb:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	  IL_01c0:  callvirt instance bool class NAnt.Core.DataTypeBaseDictionary::Contains(string)
-	  IL_01c5:  brtrue IL_01e5
-
-	  IL_01ca:  nop 
-	  IL_01cb:  ldarg.0 
-	  IL_01cc:  call instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	  IL_01d1:  ldloc.s 7
-	  IL_01d3:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	  IL_01d8:  ldloc.s 7
-	  IL_01da:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::Add(string, class NAnt.Core.DataTypeBase)
-	  IL_01df:  nop 
-	  IL_01e0:  br IL_01fb
-
-	  IL_01e5:  nop 
-	  IL_01e6:  ldarg.0 
-	  IL_01e7:  call instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	  IL_01ec:  ldloc.s 7
-	  IL_01ee:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	  IL_01f3:  ldloc.s 7
-	  IL_01f5:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::set_Item(string, class NAnt.Core.DataTypeBase)
-	  IL_01fa:  nop 
-	  IL_01fb:  nop 
-	  IL_01fc:  br IL_0230
-
-	  IL_0201:  nop 
-	  IL_0202:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0207:  ldstr "NA1071"
-	  IL_020c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0211:  ldloc.s 4
-	  IL_0213:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_0218:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_021d:  ldarg.0 
-	  IL_021e:  call instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	  IL_0223:  ldloc.s 4
-	  IL_0225:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	  IL_022a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_022f:  throw 
-	  IL_0230:  nop 
-	  IL_0231:  ldloc.s 5
-	  IL_0233:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0238:  brtrue IL_00d9
-
-	  IL_023d:  leave IL_0259
-
-	} // end .try 1
-	finally  { // 1
-	  IL_0242:  ldloc.s 5
-	  IL_0244:  isinst [mscorlib]System.IDisposable
-	  IL_0249:  dup 
-	  IL_024a:  stloc.s 8
-	  IL_024c:  brfalse IL_0258
-
-	  IL_0251:  ldloc.s 8
-	  IL_0253:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0258:  endfinally 
-	} // end handler 1
-	IL_0259:  ret 
-    } // end of method Project::InitializeProjectDocument
-
-    // method line 1746
-    .method private hidebysig 
-           instance default class [System.Xml]System.Xml.XmlDocument LoadBuildFile (string uriOrFilePath)  cil managed 
-    {
-        // Method begins at RVA 0x1f6e0
-	// Code size 171 (0xab)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		class [System]System.Uri	V_1,
-		class [mscorlib]System.Exception	V_2,
-		class [System.Xml]System.Xml.XmlDocument	V_3,
-		class [System.Xml]System.Xml.XmlException	V_4,
-		class NAnt.Core.Location	V_5,
-		class [mscorlib]System.Exception	V_6,
-		class NAnt.Core.Location	V_7,
-		class [System.Xml]System.Xml.XmlDocument	V_8)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  stloc.0 
-	.try { // 1
-	  .try { // 0
-	    IL_0003:  nop 
-	    IL_0004:  ldarg.1 
-	    IL_0005:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	    IL_000a:  stloc.1 
-	    IL_000b:  ldloc.1 
-	    IL_000c:  callvirt instance bool class [System]System.Uri::get_IsFile()
-	    IL_0011:  brfalse IL_001f
-
-	    IL_0016:  nop 
-	    IL_0017:  ldloc.1 
-	    IL_0018:  callvirt instance string class [System]System.Uri::get_LocalPath()
-	    IL_001d:  stloc.0 
-	    IL_001e:  nop 
-	    IL_001f:  nop 
-	    IL_0020:  leave IL_004a
-
-	  } // end .try 0
-	  catch class [mscorlib]System.Exception { // 0
-	    IL_0025:  stloc.2 
-	    IL_0026:  nop 
-	    IL_0027:  ldsfld class [log4net]log4net.ILog NAnt.Core.Project::logger
-	    IL_002c:  ldstr "Error creating URI in project constructor. Moving on... "
-	    IL_0031:  ldloc.2 
-	    IL_0032:  callvirt instance void class [log4net]log4net.ILog::Debug(object, class [mscorlib]System.Exception)
-	    IL_0037:  nop 
-	    IL_0038:  leave IL_004a
-
-	  } // end handler 0
-	} // end .try 1
-	finally  { // 1
-	  IL_003d:  nop 
-	  IL_003e:  ldloc.0 
-	  IL_003f:  brtrue IL_0048
+	IL_01bd:  nop 
+	IL_01be:  ldarg.0 
+	IL_01bf:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_01c4:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_01c9:  ldarg.0 
+	IL_01ca:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ExeName()
+	IL_01cf:  ldstr ".exe"
+	IL_01d4:  call string string::Concat(string, string)
+	IL_01d9:  callvirt instance string class NAnt.Core.FrameworkInfo::GetToolPath(string)
+	IL_01de:  stloc.s 6
+	IL_01e0:  ldloc.s 6
+	IL_01e2:  brfalse IL_01ec
 
-	  IL_0044:  nop 
-	  IL_0045:  ldarg.1 
-	  IL_0046:  stloc.0 
-	  IL_0047:  nop 
-	  IL_0048:  nop 
-	  IL_0049:  endfinally 
-	} // end handler 1
-	IL_004a:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	IL_004f:  stloc.3 
-	.try { // 2
-	  IL_0050:  nop 
-	  IL_0051:  ldloc.3 
-	  IL_0052:  ldloc.0 
-	  IL_0053:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(string)
-	  IL_0058:  nop 
-	  IL_0059:  leave IL_00a0
+	IL_01e7:  nop 
+	IL_01e8:  ldloc.s 6
+	IL_01ea:  stloc.0 
+	IL_01eb:  nop 
+	IL_01ec:  nop 
+	IL_01ed:  nop 
+	IL_01ee:  br IL_01fc
 
-	} // end .try 2
-	catch class [System.Xml]System.Xml.XmlException { // 2
-	  IL_005e:  stloc.s 4
-	  IL_0060:  nop 
-	  IL_0061:  ldloc.0 
-	  IL_0062:  ldloc.s 4
-	  IL_0064:  callvirt instance int32 class [System.Xml]System.Xml.XmlException::get_LineNumber()
-	  IL_0069:  ldloc.s 4
-	  IL_006b:  callvirt instance int32 class [System.Xml]System.Xml.XmlException::get_LinePosition()
-	  IL_0070:  newobj instance void class NAnt.Core.Location::'.ctor'(string, int32, int32)
-	  IL_0075:  stloc.s 5
-	  IL_0077:  ldstr "Error loading buildfile."
-	  IL_007c:  ldloc.s 5
-	  IL_007e:  ldloc.s 4
-	  IL_0080:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0085:  throw 
-	} // end handler 2
-	catch class [mscorlib]System.Exception { // 3
-	  IL_0086:  stloc.s 6
-	  IL_0088:  nop 
-	  IL_0089:  ldloc.0 
-	  IL_008a:  newobj instance void class NAnt.Core.Location::'.ctor'(string)
-	  IL_008f:  stloc.s 7
-	  IL_0091:  ldstr "Error loading buildfile."
-	  IL_0096:  ldloc.s 7
-	  IL_0098:  ldloc.s 6
-	  IL_009a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_009f:  throw 
-	} // end handler 3
-	IL_00a0:  ldloc.3 
-	IL_00a1:  stloc.s 8
-	IL_00a3:  br IL_00a8
+	IL_01f3:  nop 
+	IL_01f4:  ldarg.0 
+	IL_01f5:  callvirt instance string class NAnt.Core.Tasks.ExternalProgramBase::get_ExeName()
+	IL_01fa:  stloc.0 
+	IL_01fb:  nop 
+	IL_01fc:  ldloc.0 
+	IL_01fd:  stloc.1 
+	IL_01fe:  br IL_0203
 
-	IL_00a8:  ldloc.s 8
-	IL_00aa:  ret 
-    } // end of method Project::LoadBuildFile
+	IL_0203:  ldloc.1 
+	IL_0204:  ret 
+    } // end of method ExternalProgramBase::DetermineFilePath
 
-    // method line 1747
-    .method private hidebysig 
-           instance default void ConfigurePlatformProperties ()  cil managed 
+    // method line 1539
+    .method private hidebysig specialname 
+           instance default class NAnt.Core.Configuration.ManagedExecutionMode get_ManagedExecutionMode ()  cil managed 
     {
-        // Method begins at RVA 0x1f7cc
-	// Code size 260 (0x104)
-	.maxstack 4
+        // Method begins at RVA 0x19b00
+	// Code size 92 (0x5c)
+	.maxstack 2
 	.locals init (
-		string	V_0,
-		valuetype [mscorlib]System.PlatformID	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0007:  ldstr "nant.platform.name"
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance string class NAnt.Core.Project::get_PlatformName()
-	IL_0012:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	IL_0017:  ldarg.0 
-	IL_0018:  call instance string class NAnt.Core.Project::get_PlatformName()
-	IL_001d:  stloc.0 
-	IL_001e:  ldloc.0 
-	IL_001f:  brfalse IL_00bd
-
-	IL_0024:  ldloc.0 
-	IL_0025:  ldstr "win32"
-	IL_002a:  call bool string::op_Equality(string, string)
-	IL_002f:  brtrue IL_0049
-
-	IL_0034:  ldloc.0 
-	IL_0035:  ldstr "unix"
-	IL_003a:  call bool string::op_Equality(string, string)
-	IL_003f:  brtrue IL_0083
-
-	IL_0044:  br IL_00bd
-
-	IL_0049:  ldarg.0 
-	IL_004a:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_004f:  ldstr "nant.platform.unix"
-	IL_0054:  ldstr "false"
-	IL_0059:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	IL_005e:  ldarg.0 
-	IL_005f:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0064:  ldstr "nant.platform."
-	IL_0069:  ldarg.0 
-	IL_006a:  call instance string class NAnt.Core.Project::get_PlatformName()
-	IL_006f:  call string string::Concat(string, string)
-	IL_0074:  ldstr "true"
-	IL_0079:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	IL_007e:  br IL_0103
-
-	IL_0083:  ldarg.0 
-	IL_0084:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0089:  ldstr "nant.platform."
-	IL_008e:  ldarg.0 
-	IL_008f:  call instance string class NAnt.Core.Project::get_PlatformName()
-	IL_0094:  call string string::Concat(string, string)
-	IL_0099:  ldstr "true"
-	IL_009e:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	IL_00a3:  ldarg.0 
-	IL_00a4:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_00a9:  ldstr "nant.platform.win32"
-	IL_00ae:  ldstr "false"
-	IL_00b3:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	IL_00b8:  br IL_0103
-
-	IL_00bd:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00c2:  ldstr "NA1060"
-	IL_00c7:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00cc:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
-	IL_00d1:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
-	IL_00d6:  stloc.1 
-	IL_00d7:  ldloca.s 1
-	IL_00d9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00de:  constrained. [mscorlib]System.PlatformID
-	IL_00e4:  callvirt instance string class [mscorlib]System.Enum::ToString(class [mscorlib]System.IFormatProvider)
-	IL_00e9:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
-	IL_00ee:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
-	IL_00f3:  box [mscorlib]System.Int32
-	IL_00f8:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_00fd:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_0102:  throw 
-	IL_0103:  ret 
-    } // end of method Project::ConfigurePlatformProperties
-
-    // method line 1748
-    .method private hidebysig 
-           instance default void UpdateTargetFrameworkProperties ()  cil managed 
-    {
-        // Method begins at RVA 0x1f8dc
-	// Code size 257 (0x101)
-	.maxstack 3
+		class NAnt.Core.Configuration.ManagedExecutionMode	V_0,
+		class NAnt.Core.Configuration.Runtime	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0007:  ldstr "nant.settings.currentframework"
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_0012:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	IL_0017:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_001c:  ldarg.0 
-	IL_001d:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0022:  ldstr "nant.settings.currentframework.version"
-	IL_0027:  ldarg.0 
-	IL_0028:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_002d:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_Version()
-	IL_0032:  callvirt instance string object::ToString()
-	IL_0037:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_003c:  ldarg.0 
-	IL_003d:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0042:  ldstr "nant.settings.currentframework.description"
-	IL_0047:  ldarg.0 
-	IL_0048:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_004d:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Description()
-	IL_0052:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0057:  ldarg.0 
-	IL_0058:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_005d:  ldstr "nant.settings.currentframework.frameworkdirectory"
-	IL_0062:  ldarg.0 
-	IL_0063:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_0068:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
-	IL_006d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0072:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0077:  ldarg.0 
-	IL_0078:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_007d:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
-	IL_0082:  brfalse IL_00ae
-
-	IL_0087:  nop 
-	IL_0088:  ldarg.0 
-	IL_0089:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_008e:  ldstr "nant.settings.currentframework.sdkdirectory"
-	IL_0093:  ldarg.0 
-	IL_0094:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_0099:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
-	IL_009e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00a3:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_00a8:  nop 
-	IL_00a9:  br IL_00c5
-
-	IL_00ae:  nop 
-	IL_00af:  ldarg.0 
-	IL_00b0:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_00b5:  ldstr "nant.settings.currentframework.sdkdirectory"
-	IL_00ba:  ldstr ""
-	IL_00bf:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_00c4:  nop 
-	IL_00c5:  ldarg.0 
-	IL_00c6:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_00cb:  ldstr "nant.settings.currentframework.frameworkassemblydirectory"
-	IL_00d0:  ldarg.0 
-	IL_00d1:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_00d6:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory()
-	IL_00db:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00e0:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_00e5:  ldarg.0 
-	IL_00e6:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_00eb:  ldstr "nant.settings.currentframework.runtimeengine"
-	IL_00f0:  ldarg.0 
-	IL_00f1:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_00f6:  callvirt instance string class NAnt.Core.FrameworkInfo::get_RuntimeEngine()
-	IL_00fb:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0100:  ret 
-    } // end of method Project::UpdateTargetFrameworkProperties
-
-    // method line 1749
-    .method private hidebysig 
-           instance default class [System.Xml]System.Xml.XmlNode GetConfigurationNode ()  cil managed 
-    {
-        // Method begins at RVA 0x1f9ec
-	// Code size 69 (0x45)
-	.maxstack 3
-	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0,
-		class [System.Xml]System.Xml.XmlNode	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldstr "nant"
-	IL_0006:  call object class [System]System.Configuration.ConfigurationSettings::GetConfig(string)
-	IL_000b:  isinst [System.Xml]System.Xml.XmlNode
-	IL_0010:  stloc.0 
-	IL_0011:  ldloc.0 
-	IL_0012:  brtrue IL_003c
-
-	IL_0017:  nop 
-	IL_0018:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001d:  ldstr "The NAnt configuration settings in file '{0}' could not be loaded.  Please ensure this file is available and contains a 'nant' settings node."
-	IL_0022:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_0027:  callvirt instance class [mscorlib]System.AppDomainSetup class [mscorlib]System.AppDomain::get_SetupInformation()
-	IL_002c:  callvirt instance string class [mscorlib]System.AppDomainSetup::get_ConfigurationFile()
-	IL_0031:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0036:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_003b:  throw 
-	IL_003c:  ldloc.0 
-	IL_003d:  stloc.1 
-	IL_003e:  br IL_0043
-
-	IL_0043:  ldloc.1 
-	IL_0044:  ret 
-    } // end of method Project::GetConfigurationNode
-
-    // method line 1750
-    .method public hidebysig 
-           instance default class NAnt.Core.TargetCollection TopologicalTargetSort (string root, class NAnt.Core.TargetCollection targets)  cil managed 
-    {
-        // Method begins at RVA 0x1fa40
-	// Code size 267 (0x10b)
-	.maxstack 6
-	.locals init (
-		class NAnt.Core.TargetCollection	V_0,
-		class [mscorlib]System.Collections.Hashtable	V_1,
-		class [mscorlib]System.Collections.Stack	V_2,
-		class NAnt.Core.Target	V_3,
-		class [mscorlib]System.Collections.IEnumerator	V_4,
-		string	V_5,
-		class [mscorlib]System.IDisposable	V_6,
-		class NAnt.Core.TargetCollection	V_7)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.TargetCollection::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_000c:  stloc.1 
-	IL_000d:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
-	IL_0012:  stloc.2 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  ldarg.2 
-	IL_0016:  ldloc.1 
-	IL_0017:  ldloc.2 
-	IL_0018:  ldloc.0 
-	IL_0019:  call instance void class NAnt.Core.Project::TopologicalTargetSort(string, class NAnt.Core.TargetCollection, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Stack, class NAnt.Core.TargetCollection)
-	IL_001e:  ldarg.0 
-	IL_001f:  ldc.i4 1000
-	IL_0024:  ldc.i4.4 
-	IL_0025:  newarr [mscorlib]System.Object
-	IL_002a:  dup 
-	IL_002b:  ldc.i4.0 
-	IL_002c:  ldstr "Build sequence for target `"
-	IL_0031:  stelem.ref 
-	IL_0032:  dup 
-	IL_0033:  ldc.i4.1 
-	IL_0034:  ldarg.1 
-	IL_0035:  stelem.ref 
-	IL_0036:  dup 
-	IL_0037:  ldc.i4.2 
-	IL_0038:  ldstr "' is "
-	IL_003d:  stelem.ref 
-	IL_003e:  dup 
-	IL_003f:  ldc.i4.3 
-	IL_0040:  ldloc.0 
-	IL_0041:  stelem.ref 
-	IL_0042:  call string string::Concat(object[])
-	IL_0047:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string)
-	IL_004c:  nop 
-	IL_004d:  ldarg.2 
-	IL_004e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0053:  stloc.s 4
-	.try { // 0
-	  IL_0055:  br IL_00c2
-
-	  IL_005a:  ldloc.s 4
-	  IL_005c:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0061:  castclass NAnt.Core.Target
-	  IL_0066:  stloc.3 
-	  IL_0067:  nop 
-	  IL_0068:  ldloc.1 
-	  IL_0069:  ldloc.3 
-	  IL_006a:  callvirt instance string class NAnt.Core.Target::get_Name()
-	  IL_006f:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_0074:  castclass [mscorlib]System.String
-	  IL_0079:  stloc.s 5
-	  IL_007b:  ldloc.s 5
-	  IL_007d:  brtrue IL_0099
-
-	  IL_0082:  nop 
-	  IL_0083:  ldarg.0 
-	  IL_0084:  ldloc.3 
-	  IL_0085:  callvirt instance string class NAnt.Core.Target::get_Name()
-	  IL_008a:  ldarg.2 
-	  IL_008b:  ldloc.1 
-	  IL_008c:  ldloc.2 
-	  IL_008d:  ldloc.0 
-	  IL_008e:  call instance void class NAnt.Core.Project::TopologicalTargetSort(string, class NAnt.Core.TargetCollection, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Stack, class NAnt.Core.TargetCollection)
-	  IL_0093:  nop 
-	  IL_0094:  br IL_00c1
-
-	  IL_0099:  ldloc.s 5
-	  IL_009b:  ldstr "VISITING"
-	  IL_00a0:  call bool string::op_Equality(string, string)
-	  IL_00a5:  brfalse IL_00c1
-
-	  IL_00aa:  nop 
-	  IL_00ab:  ldstr "Unexpected node in visiting state: "
-	  IL_00b0:  ldloc.3 
-	  IL_00b1:  callvirt instance string class NAnt.Core.Target::get_Name()
-	  IL_00b6:  call string string::Concat(string, string)
-	  IL_00bb:  newobj instance void class [mscorlib]System.Exception::'.ctor'(string)
-	  IL_00c0:  throw 
-	  IL_00c1:  nop 
-	  IL_00c2:  ldloc.s 4
-	  IL_00c4:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00c9:  brtrue IL_005a
-
-	  IL_00ce:  leave IL_00ea
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00d3:  ldloc.s 4
-	  IL_00d5:  isinst [mscorlib]System.IDisposable
-	  IL_00da:  dup 
-	  IL_00db:  stloc.s 6
-	  IL_00dd:  brfalse IL_00e9
-
-	  IL_00e2:  ldloc.s 6
-	  IL_00e4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00e9:  endfinally 
-	} // end handler 0
-	IL_00ea:  ldarg.0 
-	IL_00eb:  ldc.i4 1000
-	IL_00f0:  ldstr "Complete build sequence is "
-	IL_00f5:  ldloc.0 
-	IL_00f6:  call string string::Concat(object, object)
-	IL_00fb:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string)
-	IL_0100:  ldloc.0 
-	IL_0101:  stloc.s 7
-	IL_0103:  br IL_0108
-
-	IL_0108:  ldloc.s 7
-	IL_010a:  ret 
-    } // end of method Project::TopologicalTargetSort
-
-    // method line 1751
-    .method private hidebysig 
-           instance default void TopologicalTargetSort (string root, class NAnt.Core.TargetCollection targets, class [mscorlib]System.Collections.Hashtable state, class [mscorlib]System.Collections.Stack visiting, class NAnt.Core.TargetCollection executeTargets)  cil managed 
-    {
-        // Method begins at RVA 0x1fb68
-	// Code size 411 (0x19b)
-	.maxstack 6
-	.locals init (
-		class NAnt.Core.Target	V_0,
-		class [mscorlib]System.Text.StringBuilder	V_1,
-		string	V_2,
-		string	V_3,
-		class [System]System.Collections.Specialized.StringEnumerator	V_4,
-		string	V_5,
-		class [mscorlib]System.IDisposable	V_6,
-		string	V_7)
-	IL_0000:  nop 
-	IL_0001:  ldarg.3 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldstr "VISITING"
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_000d:  ldarg.s 4
-	IL_000f:  ldarg.1 
-	IL_0010:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
-	IL_0015:  ldarg.2 
-	IL_0016:  ldarg.1 
-	IL_0017:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
-	IL_001c:  stloc.0 
-	IL_001d:  ldloc.0 
-	IL_001e:  brtrue IL_00c8
-
-	IL_0023:  nop 
-	IL_0024:  ldarg.2 
-	IL_0025:  ldstr "*"
-	IL_002a:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
-	IL_002f:  stloc.0 
-	IL_0030:  ldloc.0 
-	IL_0031:  brfalse IL_004b
-
-	IL_0036:  nop 
-	IL_0037:  ldloc.0 
-	IL_0038:  callvirt instance class NAnt.Core.Target class NAnt.Core.Target::Clone()
-	IL_003d:  stloc.0 
-	IL_003e:  ldloc.0 
-	IL_003f:  ldarg.1 
-	IL_0040:  callvirt instance void class NAnt.Core.Target::set_Name(string)
-	IL_0045:  nop 
-	IL_0046:  br IL_00c7
-
-	IL_004b:  nop 
-	IL_004c:  ldstr "Target '"
-	IL_0051:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
-	IL_0056:  stloc.1 
-	IL_0057:  ldloc.1 
-	IL_0058:  ldarg.1 
-	IL_0059:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_005e:  pop 
-	IL_005f:  ldloc.1 
-	IL_0060:  ldstr "' does not exist in this project."
-	IL_0065:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_006a:  pop 
-	IL_006b:  ldarg.s 4
-	IL_006d:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
-	IL_0072:  pop 
-	IL_0073:  ldarg.s 4
-	IL_0075:  callvirt instance int32 class [mscorlib]System.Collections.Stack::get_Count()
-	IL_007a:  ldc.i4.0 
-	IL_007b:  ble IL_00bb
-
-	IL_0080:  nop 
-	IL_0081:  ldarg.s 4
-	IL_0083:  callvirt instance object class [mscorlib]System.Collections.Stack::Peek()
-	IL_0088:  castclass [mscorlib]System.String
-	IL_008d:  stloc.2 
-	IL_008e:  ldloc.1 
-	IL_008f:  ldstr " "
-	IL_0094:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0099:  pop 
-	IL_009a:  ldloc.1 
-	IL_009b:  ldstr "It is used from target '"
-	IL_00a0:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00a5:  pop 
-	IL_00a6:  ldloc.1 
-	IL_00a7:  ldloc.2 
-	IL_00a8:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00ad:  pop 
-	IL_00ae:  ldloc.1 
-	IL_00af:  ldstr "'."
-	IL_00b4:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00b9:  pop 
-	IL_00ba:  nop 
-	IL_00bb:  ldloc.1 
-	IL_00bc:  callvirt instance string object::ToString()
-	IL_00c1:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_00c6:  throw 
-	IL_00c7:  nop 
-	IL_00c8:  nop 
-	IL_00c9:  ldloc.0 
-	IL_00ca:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Target::get_Dependencies()
-	IL_00cf:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_00d4:  stloc.s 4
-	.try { // 0
-	  IL_00d6:  br IL_0129
-
-	  IL_00db:  ldloc.s 4
-	  IL_00dd:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_00e2:  stloc.3 
-	  IL_00e3:  nop 
-	  IL_00e4:  ldarg.3 
-	  IL_00e5:  ldloc.3 
-	  IL_00e6:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_00eb:  castclass [mscorlib]System.String
-	  IL_00f0:  stloc.s 5
-	  IL_00f2:  ldloc.s 5
-	  IL_00f4:  brtrue IL_010d
-
-	  IL_00f9:  nop 
-	  IL_00fa:  ldarg.0 
-	  IL_00fb:  ldloc.3 
-	  IL_00fc:  ldarg.2 
-	  IL_00fd:  ldarg.3 
-	  IL_00fe:  ldarg.s 4
-	  IL_0100:  ldarg.s 5
-	  IL_0102:  call instance void class NAnt.Core.Project::TopologicalTargetSort(string, class NAnt.Core.TargetCollection, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Stack, class NAnt.Core.TargetCollection)
-	  IL_0107:  nop 
-	  IL_0108:  br IL_0128
-
-	  IL_010d:  ldloc.s 5
-	  IL_010f:  ldstr "VISITING"
-	  IL_0114:  call bool string::op_Equality(string, string)
-	  IL_0119:  brfalse IL_0128
-
-	  IL_011e:  nop 
-	  IL_011f:  ldloc.3 
-	  IL_0120:  ldarg.s 4
-	  IL_0122:  call class NAnt.Core.BuildException class NAnt.Core.Project::CreateCircularException(string, class [mscorlib]System.Collections.Stack)
-	  IL_0127:  throw 
-	  IL_0128:  nop 
-	  IL_0129:  ldloc.s 4
-	  IL_012b:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0130:  brtrue IL_00db
-
-	  IL_0135:  leave IL_0151
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_000c:  brfalse IL_001c
 
-	} // end .try 0
-	finally  { // 0
-	  IL_013a:  ldloc.s 4
-	  IL_013c:  isinst [mscorlib]System.IDisposable
-	  IL_0141:  dup 
-	  IL_0142:  stloc.s 6
-	  IL_0144:  brfalse IL_0150
+	IL_0011:  ldarg.0 
+	IL_0012:  callvirt instance valuetype NAnt.Core.Types.ManagedExecution class NAnt.Core.Tasks.ExternalProgramBase::get_Managed()
+	IL_0017:  brtrue IL_0024
 
-	  IL_0149:  ldloc.s 6
-	  IL_014b:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0150:  endfinally 
-	} // end handler 0
-	IL_0151:  ldarg.s 4
-	IL_0153:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
-	IL_0158:  castclass [mscorlib]System.String
-	IL_015d:  stloc.s 7
-	IL_015f:  ldarg.1 
-	IL_0160:  ldloc.s 7
-	IL_0162:  call bool string::op_Inequality(string, string)
-	IL_0167:  brfalse IL_0185
+	IL_001c:  nop 
+	IL_001d:  ldnull 
+	IL_001e:  stloc.0 
+	IL_001f:  br IL_005a
 
-	IL_016c:  nop 
-	IL_016d:  ldstr "Unexpected internal error: expected to pop "
-	IL_0172:  ldarg.1 
-	IL_0173:  ldstr " but got "
-	IL_0178:  ldloc.s 7
-	IL_017a:  call string string::Concat(string, string, string, string)
-	IL_017f:  newobj instance void class [mscorlib]System.Exception::'.ctor'(string)
-	IL_0184:  throw 
-	IL_0185:  ldarg.3 
-	IL_0186:  ldarg.1 
-	IL_0187:  ldstr "VISITED"
-	IL_018c:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0191:  ldarg.s 5
-	IL_0193:  ldloc.0 
-	IL_0194:  callvirt instance int32 class NAnt.Core.TargetCollection::Add(class NAnt.Core.Target)
-	IL_0199:  pop 
-	IL_019a:  ret 
-    } // end of method Project::TopologicalTargetSort
+	IL_0024:  ldarg.0 
+	IL_0025:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_002a:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_002f:  callvirt instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
+	IL_0034:  stloc.1 
+	IL_0035:  ldloc.1 
+	IL_0036:  brfalse IL_0053
 
-    // method line 1752
-    .method private static hidebysig 
-           default class NAnt.Core.BuildException CreateCircularException (string end, class [mscorlib]System.Collections.Stack stack)  cil managed 
-    {
-        // Method begins at RVA 0x1fd20
-	// Code size 85 (0x55)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		string	V_1,
-		class NAnt.Core.BuildException	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldstr "Circular dependency: "
-	IL_0006:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
-	IL_000b:  stloc.0 
-	IL_000c:  ldloc.0 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0013:  pop 
-	IL_0014:  nop 
-	IL_0015:  ldarg.1 
-	IL_0016:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
-	IL_001b:  castclass [mscorlib]System.String
-	IL_0020:  stloc.1 
-	IL_0021:  ldloc.0 
-	IL_0022:  ldstr " <- "
-	IL_0027:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_002c:  pop 
-	IL_002d:  ldloc.0 
-	IL_002e:  ldloc.1 
-	IL_002f:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0034:  pop 
-	IL_0035:  nop 
-	IL_0036:  ldloc.1 
-	IL_0037:  ldarg.0 
-	IL_0038:  callvirt instance bool string::Equals(string)
-	IL_003d:  brfalse IL_0014
+	IL_003b:  nop 
+	IL_003c:  ldloc.1 
+	IL_003d:  callvirt instance class NAnt.Core.Configuration.ManagedExecutionModes class NAnt.Core.Configuration.Runtime::get_Modes()
+	IL_0042:  ldarg.0 
+	IL_0043:  callvirt instance valuetype NAnt.Core.Types.ManagedExecution class NAnt.Core.Tasks.ExternalProgramBase::get_Managed()
+	IL_0048:  callvirt instance class NAnt.Core.Configuration.ManagedExecutionMode class NAnt.Core.Configuration.ManagedExecutionModes::GetExecutionMode(valuetype NAnt.Core.Types.ManagedExecution)
+	IL_004d:  stloc.0 
+	IL_004e:  br IL_005a
 
-	IL_0042:  ldloc.0 
-	IL_0043:  callvirt instance string object::ToString()
-	IL_0048:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_004d:  stloc.2 
-	IL_004e:  br IL_0053
+	IL_0053:  ldnull 
+	IL_0054:  stloc.0 
+	IL_0055:  br IL_005a
 
-	IL_0053:  ldloc.2 
-	IL_0054:  ret 
-    } // end of method Project::CreateCircularException
+	IL_005a:  ldloc.0 
+	IL_005b:  ret 
+    } // end of method ExternalProgramBase::get_ManagedExecutionMode
 
-    // method line 1753
+    // method line 1540
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1fd81
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x19b68
+	// Code size 31 (0x1f)
 	.maxstack 8
 	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
 	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
 	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
-	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.Project::logger
-	IL_0014:  ret 
-    } // end of method Project::.cctor
+	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.Tasks.ExternalProgramBase::logger
+	IL_0014:  newobj instance void object::'.ctor'()
+	IL_0019:  stsfld object NAnt.Core.Tasks.ExternalProgramBase::_lockObject
+	IL_001e:  ret 
+    } // end of method ExternalProgramBase::.cctor
 
-	.property instance int32 IndentationLevel ()
-	{
-		.get instance default int32 NAnt.Core.Project::get_IndentationLevel () 
-	}
-	.property instance int32 IndentationSize ()
-	{
-		.get instance default int32 NAnt.Core.Project::get_IndentationSize () 
-	}
-	.property instance valuetype NAnt.Core.Level Threshold ()
-	{
-		.get instance default valuetype NAnt.Core.Level NAnt.Core.Project::get_Threshold () 
-		.set instance default void NAnt.Core.Project::set_Threshold (valuetype NAnt.Core.Level 'value') 
-	}
-	.property instance string ProjectName ()
-	{
-		.get instance default string NAnt.Core.Project::get_ProjectName () 
-	}
-	.property instance string BaseDirectory ()
-	{
-		.get instance default string NAnt.Core.Project::get_BaseDirectory () 
-		.set instance default void NAnt.Core.Project::set_BaseDirectory (string 'value') 
-	}
-	.property instance class [System.Xml]System.Xml.XmlNamespaceManager NamespaceManager ()
-	{
-		.get instance default class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::get_NamespaceManager () 
-	}
-	.property instance class [System]System.Uri BuildFileUri ()
-	{
-		.get instance default class [System]System.Uri NAnt.Core.Project::get_BuildFileUri () 
-	}
-	.property instance class NAnt.Core.FrameworkInfoDictionary Frameworks ()
-	{
-		.get instance default class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::get_Frameworks () 
-	}
-	.property instance class NAnt.Core.FrameworkInfo RuntimeFramework ()
-	{
-		.get instance default class NAnt.Core.FrameworkInfo NAnt.Core.Project::get_RuntimeFramework () 
-		.set instance default void NAnt.Core.Project::set_RuntimeFramework (class NAnt.Core.FrameworkInfo 'value') 
-	}
-	.property instance class NAnt.Core.FrameworkInfo TargetFramework ()
-	{
-		.get instance default class NAnt.Core.FrameworkInfo NAnt.Core.Project::get_TargetFramework () 
-		.set instance default void NAnt.Core.Project::set_TargetFramework (class NAnt.Core.FrameworkInfo 'value') 
-	}
-	.property instance string PlatformName ()
-	{
-		.get instance default string NAnt.Core.Project::get_PlatformName () 
-	}
-	.property instance class NAnt.Core.Target CurrentTarget ()
-	{
-		.get instance default class NAnt.Core.Target NAnt.Core.Project::get_CurrentTarget () 
-	}
-	.property instance string BuildFileLocalName ()
-	{
-		.get instance default string NAnt.Core.Project::get_BuildFileLocalName () 
-	}
-	.property instance class [System.Xml]System.Xml.XmlDocument Document ()
-	{
-		.get instance default class [System.Xml]System.Xml.XmlDocument NAnt.Core.Project::get_Document () 
-	}
-	.property instance class [System.Xml]System.Xml.XmlNode ConfigurationNode ()
+	.property instance string ExeName ()
 	{
-		.get instance default class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::get_ConfigurationNode () 
+		.custom instance void class NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (01 00 07 65 78 65 6E 61 6D 65 00 00 ) // ...exename..
+
+		.get instance default string NAnt.Core.Tasks.ExternalProgramBase::get_ExeName () 
+		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_ExeName (string 'value') 
 	}
-	.property instance string DefaultTargetName ()
+	.property instance string ProgramFileName ()
 	{
-		.get instance default string NAnt.Core.Project::get_DefaultTargetName () 
+		.get instance default string NAnt.Core.Tasks.ExternalProgramBase::get_ProgramFileName () 
 	}
-	.property instance bool Verbose ()
+	.property instance string ProgramArguments ()
 	{
-		.get instance default bool NAnt.Core.Project::get_Verbose () 
+		.get instance default string NAnt.Core.Tasks.ExternalProgramBase::get_ProgramArguments () 
 	}
-	.property instance class [System]System.Collections.Specialized.StringCollection BuildTargets ()
+	.property instance class [mscorlib]System.IO.FileInfo Output ()
 	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::get_BuildTargets () 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.ExternalProgramBase::get_Output () 
+		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_Output (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance class NAnt.Core.PropertyDictionary Properties ()
+	.property instance bool OutputAppend ()
 	{
-		.get instance default class NAnt.Core.PropertyDictionary NAnt.Core.Project::get_Properties () 
+		.get instance default bool NAnt.Core.Tasks.ExternalProgramBase::get_OutputAppend () 
+		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_OutputAppend (bool 'value') 
 	}
-	.property instance class NAnt.Core.PropertyDictionary FrameworkNeutralProperties ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
 	{
-		.get instance default class NAnt.Core.PropertyDictionary NAnt.Core.Project::get_FrameworkNeutralProperties () 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.Tasks.ExternalProgramBase::get_BaseDirectory () 
+		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
 	}
-	.property instance class NAnt.Core.DataTypeBaseDictionary DataTypeReferences ()
+	.property instance int32 TimeOut ()
 	{
-		.get instance default class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::get_DataTypeReferences () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 74 69 6D 65 6F 75 74 00 00 ) // ...timeout..
+
+		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default int32 NAnt.Core.Tasks.ExternalProgramBase::get_TimeOut () 
+		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_TimeOut (int32 'value') 
 	}
-	.property instance class NAnt.Core.TargetCollection Targets ()
+	.property instance class NAnt.Core.Types.ArgumentCollection Arguments ()
 	{
-		.get instance default class NAnt.Core.TargetCollection NAnt.Core.Project::get_Targets () 
+		.custom instance void class NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 03 61 72 67 00 00 ) // ...arg..
+
+		.get instance default class NAnt.Core.Types.ArgumentCollection NAnt.Core.Tasks.ExternalProgramBase::get_Arguments () 
 	}
-	.property instance class NAnt.Core.BuildListenerCollection BuildListeners ()
+	.property instance bool UseRuntimeEngine ()
 	{
-		.get instance default class NAnt.Core.BuildListenerCollection NAnt.Core.Project::get_BuildListeners () 
+		.custom instance void class NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 10 75 73 65 72 75 6E 74 69 6D 65 65 6E 67   // ...useruntimeeng
+		69 6E 65 00 00                                  ) // ine..
+
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 37 55 73 65 20 74 68 65 20 6D 61 6E 61 67   // ..7Use the manag
+		65 64 20 61 74 74 72 69 62 75 74 65 20 61 6E 64   // ed attribute and
+		20 4D 61 6E 61 67 65 64 20 70 72 6F 70 65 72 74   //  Managed propert
+		79 20 69 6E 73 74 65 61 64 2E 00 00 00          ) // y instead....
+
+		.get instance default bool NAnt.Core.Tasks.ExternalProgramBase::get_UseRuntimeEngine () 
+		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_UseRuntimeEngine (bool 'value') 
 	}
-	.property instance class NAnt.Core.LocationMap LocationMap ()
+	.property instance valuetype NAnt.Core.Types.ManagedExecution Managed ()
 	{
-		.get instance default class NAnt.Core.LocationMap NAnt.Core.Project::get_LocationMap () 
+		.custom instance void class NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (01 00 07 6D 61 6E 61 67 65 64 00 00 ) // ...managed..
+
+		.get instance default valuetype NAnt.Core.Types.ManagedExecution NAnt.Core.Tasks.ExternalProgramBase::get_Managed () 
+		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_Managed (valuetype NAnt.Core.Types.ManagedExecution 'value') 
 	}
-	.event NAnt.Core.BuildEventHandler BuildStarted
+	.property instance class [mscorlib]System.IO.TextWriter OutputWriter ()
 	{
-		.addon instance default void NAnt.Core.Project::add_BuildStarted (class NAnt.Core.BuildEventHandler 'value') 
-		.removeon instance default void NAnt.Core.Project::remove_BuildStarted (class NAnt.Core.BuildEventHandler 'value') 
+		.get instance default class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::get_OutputWriter () 
+		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value') 
 	}
-	.event NAnt.Core.BuildEventHandler BuildFinished
+	.property instance class [mscorlib]System.IO.TextWriter ErrorWriter ()
 	{
-		.addon instance default void NAnt.Core.Project::add_BuildFinished (class NAnt.Core.BuildEventHandler 'value') 
-		.removeon instance default void NAnt.Core.Project::remove_BuildFinished (class NAnt.Core.BuildEventHandler 'value') 
+		.get instance default class [mscorlib]System.IO.TextWriter NAnt.Core.Tasks.ExternalProgramBase::get_ErrorWriter () 
+		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_ErrorWriter (class [mscorlib]System.IO.TextWriter 'value') 
 	}
-	.event NAnt.Core.BuildEventHandler TargetStarted
+	.property instance int32 ExitCode ()
 	{
-		.addon instance default void NAnt.Core.Project::add_TargetStarted (class NAnt.Core.BuildEventHandler 'value') 
-		.removeon instance default void NAnt.Core.Project::remove_TargetStarted (class NAnt.Core.BuildEventHandler 'value') 
+		.get instance default int32 NAnt.Core.Tasks.ExternalProgramBase::get_ExitCode () 
 	}
-	.event NAnt.Core.BuildEventHandler TargetFinished
+	.property instance int32 ProcessId ()
 	{
-		.addon instance default void NAnt.Core.Project::add_TargetFinished (class NAnt.Core.BuildEventHandler 'value') 
-		.removeon instance default void NAnt.Core.Project::remove_TargetFinished (class NAnt.Core.BuildEventHandler 'value') 
+		.get instance default int32 NAnt.Core.Tasks.ExternalProgramBase::get_ProcessId () 
 	}
-	.event NAnt.Core.BuildEventHandler TaskStarted
+	.property instance bool Spawn ()
 	{
-		.addon instance default void NAnt.Core.Project::add_TaskStarted (class NAnt.Core.BuildEventHandler 'value') 
-		.removeon instance default void NAnt.Core.Project::remove_TaskStarted (class NAnt.Core.BuildEventHandler 'value') 
+		.get instance default bool NAnt.Core.Tasks.ExternalProgramBase::get_Spawn () 
+		.set instance default void NAnt.Core.Tasks.ExternalProgramBase::set_Spawn (bool 'value') 
 	}
-	.event NAnt.Core.BuildEventHandler TaskFinished
+	.property instance string CommandLine ()
 	{
-		.addon instance default void NAnt.Core.Project::add_TaskFinished (class NAnt.Core.BuildEventHandler 'value') 
-		.removeon instance default void NAnt.Core.Project::remove_TaskFinished (class NAnt.Core.BuildEventHandler 'value') 
+		.get instance default string NAnt.Core.Tasks.ExternalProgramBase::get_CommandLine () 
 	}
-	.event NAnt.Core.BuildEventHandler MessageLogged
+	.property instance class NAnt.Core.Configuration.ManagedExecutionMode ManagedExecutionMode ()
 	{
-		.addon instance default void NAnt.Core.Project::add_MessageLogged (class NAnt.Core.BuildEventHandler 'value') 
-		.removeon instance default void NAnt.Core.Project::remove_MessageLogged (class NAnt.Core.BuildEventHandler 'value') 
+		.get instance default class NAnt.Core.Configuration.ManagedExecutionMode NAnt.Core.Tasks.ExternalProgramBase::get_ManagedExecutionMode () 
 	}
-  } // end of class NAnt.Core.Project
+  } // end of class NAnt.Core.Tasks.ExternalProgramBase
 }
 
-.namespace NAnt.Core
+.namespace NAnt.Core.Tasks
 {
-  .class private auto ansi sealed Optimizations
-  	extends [mscorlib]System.Enum
+  .class public auto ansi beforefieldinit MailTask
+  	extends NAnt.Core.Task
   {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.Optimizations None = int32(0x00000000)
-    .field public static literal  valuetype NAnt.Core.Optimizations SkipAutomaticDiscovery = int32(0x00000001)
-    .field public static literal  valuetype NAnt.Core.Optimizations SkipFrameworkConfiguration = int32(0x00000002)
-
-  } // end of class NAnt.Core.Optimizations
-}
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 6D 61 69 6C 00 00 ) // ...mail..
 
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable beforefieldinit TargetCollection
-  	extends [mscorlib]System.Collections.ArrayList
-  {
-    .field  private static initonly  class [log4net]log4net.ILog logger
+    .field  private  string _from
+    .field  private  string _replyTo
+    .field  private  string _toList
+    .field  private  string _ccList
+    .field  private  string _bccList
+    .field  private  string _mailHost
+    .field  private  string _subject
+    .field  private  string _message
+    .field  private  string _userName
+    .field  private  string _passWord
+    .field  private  bool _isBodyHtml
+    .field  private  bool _enableSsl
+    .field  private  int32 _portNumber
+    .field  private  class NAnt.Core.Types.FileSet _files
+    .field  private  class NAnt.Core.Types.FileSet _attachments
 
-    // method line 1754
+    // method line 1541
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x1fd97
-	// Code size 7 (0x7)
-	.maxstack 8
+        // Method begins at RVA 0x1b9b8
+	// Code size 106 (0x6a)
+	.maxstack 2
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0006:  ret 
-    } // end of method TargetCollection::.ctor
+	IL_0001:  ldstr "localhost"
+	IL_0006:  stfld string NAnt.Core.Tasks.MailTask::_mailHost
+	IL_000b:  ldarg.0 
+	IL_000c:  ldstr ""
+	IL_0011:  stfld string NAnt.Core.Tasks.MailTask::_subject
+	IL_0016:  ldarg.0 
+	IL_0017:  ldstr ""
+	IL_001c:  stfld string NAnt.Core.Tasks.MailTask::_message
+	IL_0021:  ldarg.0 
+	IL_0022:  ldstr ""
+	IL_0027:  stfld string NAnt.Core.Tasks.MailTask::_userName
+	IL_002c:  ldarg.0 
+	IL_002d:  ldstr ""
+	IL_0032:  stfld string NAnt.Core.Tasks.MailTask::_passWord
+	IL_0037:  ldarg.0 
+	IL_0038:  ldc.i4.0 
+	IL_0039:  stfld bool NAnt.Core.Tasks.MailTask::_isBodyHtml
+	IL_003e:  ldarg.0 
+	IL_003f:  ldc.i4.0 
+	IL_0040:  stfld bool NAnt.Core.Tasks.MailTask::_enableSsl
+	IL_0045:  ldarg.0 
+	IL_0046:  ldc.i4.s 0x19
+	IL_0048:  stfld int32 NAnt.Core.Tasks.MailTask::_portNumber
+	IL_004d:  ldarg.0 
+	IL_004e:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0053:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_files
+	IL_0058:  ldarg.0 
+	IL_0059:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_005e:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_attachments
+	IL_0063:  ldarg.0 
+	IL_0064:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0069:  ret 
+    } // end of method MailTask::.ctor
 
-    // method line 1755
-    .method public virtual hidebysig newslot 
-           instance default int32 Add (class NAnt.Core.Target t)  cil managed 
+    // method line 1542
+    .method public hidebysig specialname 
+           instance default string get_From ()  cil managed 
     {
-        // Method begins at RVA 0x1fda0
-	// Code size 121 (0x79)
-	.maxstack 4
+        // Method begins at RVA 0x1ba30
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "Null Target!"
-	IL_000d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldsfld class [log4net]log4net.ILog NAnt.Core.TargetCollection::logger
-	IL_0018:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001d:  ldstr "String_AddingTarget"
-	IL_0022:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0027:  ldarg.1 
-	IL_0028:  callvirt instance string class NAnt.Core.Target::get_Name()
-	IL_002d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0032:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
-	IL_0037:  ldarg.0 
-	IL_0038:  ldarg.1 
-	IL_0039:  callvirt instance string class NAnt.Core.Target::get_Name()
-	IL_003e:  call instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
-	IL_0043:  brtrue IL_0056
-
-	IL_0048:  nop 
-	IL_0049:  ldarg.0 
-	IL_004a:  ldarg.1 
-	IL_004b:  call instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_0050:  stloc.0 
-	IL_0051:  br IL_0077
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_from
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0056:  nop 
-	IL_0057:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_005c:  ldstr "NA1073"
-	IL_0061:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0066:  ldarg.1 
-	IL_0067:  callvirt instance string class NAnt.Core.Target::get_Name()
-	IL_006c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0071:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_0076:  throw 
-	IL_0077:  ldloc.0 
-	IL_0078:  ret 
-    } // end of method TargetCollection::Add
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MailTask::get_From
 
-    // method line 1756
-    .method public hidebysig 
-           instance default class NAnt.Core.Target Find (string targetName)  cil managed 
+    // method line 1543
+    .method public hidebysig specialname 
+           instance default void set_From (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1fe28
-	// Code size 97 (0x61)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Target	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Target	V_2,
-		class [mscorlib]System.IDisposable	V_3)
+        // Method begins at RVA 0x1ba4b
+	// Code size 14 (0xe)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0008:  stloc.1 
-	.try { // 0
-	  IL_0009:  br IL_0034
-
-	  IL_000e:  ldloc.1 
-	  IL_000f:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0014:  castclass NAnt.Core.Target
-	  IL_0019:  stloc.0 
-	  IL_001a:  nop 
-	  IL_001b:  ldloc.0 
-	  IL_001c:  callvirt instance string class NAnt.Core.Target::get_Name()
-	  IL_0021:  ldarg.1 
-	  IL_0022:  call bool string::op_Equality(string, string)
-	  IL_0027:  brfalse IL_0033
-
-	  IL_002c:  ldloc.0 
-	  IL_002d:  stloc.2 
-	  IL_002e:  leave IL_005f
-
-	  IL_0033:  nop 
-	  IL_0034:  ldloc.1 
-	  IL_0035:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_003a:  brtrue IL_000e
-
-	  IL_003f:  leave IL_0058
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0044:  ldloc.1 
-	  IL_0045:  isinst [mscorlib]System.IDisposable
-	  IL_004a:  dup 
-	  IL_004b:  stloc.3 
-	  IL_004c:  brfalse IL_0057
-
-	  IL_0051:  ldloc.3 
-	  IL_0052:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0057:  endfinally 
-	} // end handler 0
-	IL_0058:  ldnull 
-	IL_0059:  stloc.2 
-	IL_005a:  br IL_005f
-
-	IL_005f:  ldloc.2 
-	IL_0060:  ret 
-    } // end of method TargetCollection::Find
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.MailTask::_from
+	IL_000d:  ret 
+    } // end of method MailTask::set_From
 
-    // method line 1757
-    .method public hidebysig 
-           instance default string ToString (string separator)  cil managed 
+    // method line 1544
+    .method public hidebysig specialname 
+           instance default string get_ToList ()  cil managed 
     {
-        // Method begins at RVA 0x1fea8
-	// Code size 73 (0x49)
-	.maxstack 4
+        // Method begins at RVA 0x1ba5c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string[]	V_0,
-		int32	V_1,
-		string	V_2)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_0007:  newarr [mscorlib]System.String
-	IL_000c:  stloc.0 
-	IL_000d:  ldc.i4.0 
-	IL_000e:  stloc.1 
-	IL_000f:  br IL_002e
-
-	IL_0014:  nop 
-	IL_0015:  ldloc.0 
-	IL_0016:  ldloc.1 
-	IL_0017:  ldarg.0 
-	IL_0018:  ldloc.1 
-	IL_0019:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	IL_001e:  castclass NAnt.Core.Target
-	IL_0023:  callvirt instance string class NAnt.Core.Target::get_Name()
-	IL_0028:  stelem.ref 
-	IL_0029:  nop 
-	IL_002a:  ldloc.1 
-	IL_002b:  ldc.i4.1 
-	IL_002c:  add 
-	IL_002d:  stloc.1 
-	IL_002e:  ldloc.1 
-	IL_002f:  ldarg.0 
-	IL_0030:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_0035:  blt IL_0014
-
-	IL_003a:  ldarg.1 
-	IL_003b:  ldloc.0 
-	IL_003c:  call string string::Join(string, string[])
-	IL_0041:  stloc.2 
-	IL_0042:  br IL_0047
+	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_toList
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0047:  ldloc.2 
-	IL_0048:  ret 
-    } // end of method TargetCollection::ToString
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MailTask::get_ToList
 
-    // method line 1758
-    .method public virtual hidebysig 
-           instance default int32 Add (object 'value')  cil managed 
+    // method line 1545
+    .method public hidebysig specialname 
+           instance default void set_ToList (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1ff00
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
+        // Method begins at RVA 0x1ba77
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  isinst NAnt.Core.Target
-	IL_0008:  callvirt instance int32 class NAnt.Core.TargetCollection::Add(class NAnt.Core.Target)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method TargetCollection::Add
+	IL_0003:  stfld string NAnt.Core.Tasks.MailTask::_toList
+	IL_0008:  ret 
+    } // end of method MailTask::set_ToList
 
-    // method line 1759
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
+    // method line 1546
+    .method public hidebysig specialname 
+           instance default string get_ReplyTo ()  cil managed 
     {
-        // Method begins at RVA 0x1ff24
-	// Code size 20 (0x14)
-	.maxstack 2
+        // Method begins at RVA 0x1ba84
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldstr ", "
-	IL_0007:  call instance string class NAnt.Core.TargetCollection::ToString(string)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_replyTo
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method TargetCollection::ToString
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MailTask::get_ReplyTo
 
-    // method line 1760
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+    // method line 1547
+    .method public hidebysig specialname 
+           instance default void set_ReplyTo (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x1ff44
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x1ba9f
+	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
-	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
-	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.TargetCollection::logger
-	IL_0014:  ret 
-    } // end of method TargetCollection::.cctor
-
-  } // end of class NAnt.Core.TargetCollection
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi abstract serializable beforefieldinit Element
-  	extends [mscorlib]System.Object
-  {
-    .field  private  class NAnt.Core.Location _location
-    .field  private  class NAnt.Core.Project _project
-    .field  private notserialized  class [System.Xml]System.Xml.XmlNode _xmlNode
-    .field  private  object _parent
-    .field  private notserialized  class [System.Xml]System.Xml.XmlNamespaceManager _nsMgr
-    .field  private static initonly  class [log4net]log4net.ILog logger
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Tasks.MailTask::_replyTo
+	IL_0008:  ret 
+    } // end of method MailTask::set_ReplyTo
 
-    // method line 1761
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1548
+    .method public hidebysig specialname 
+           instance default string get_CcList ()  cil managed 
     {
-        // Method begins at RVA 0x4417
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_0006:  stfld class NAnt.Core.Location NAnt.Core.Element::_location
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void object::'.ctor'()
-	IL_0011:  nop 
-	IL_0012:  ret 
-    } // end of method Element::.ctor
+        // Method begins at RVA 0x1baac
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_ccList
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 1762
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Element e)  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MailTask::get_CcList
+
+    // method line 1549
+    .method public hidebysig specialname 
+           instance default void set_CcList (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x442b
-	// Code size 56 (0x38)
+        // Method begins at RVA 0x1bac7
+	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldfld class NAnt.Core.Location NAnt.Core.Element::_location
-	IL_000e:  stfld class NAnt.Core.Location NAnt.Core.Element::_location
-	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  ldfld class NAnt.Core.Project NAnt.Core.Element::_project
-	IL_001a:  stfld class NAnt.Core.Project NAnt.Core.Element::_project
-	IL_001f:  ldarg.0 
-	IL_0020:  ldarg.1 
-	IL_0021:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
-	IL_0026:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
-	IL_002b:  ldarg.0 
-	IL_002c:  ldarg.1 
-	IL_002d:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element::_nsMgr
-	IL_0032:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element::_nsMgr
-	IL_0037:  ret 
-    } // end of method Element::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Tasks.MailTask::_ccList
+	IL_0008:  ret 
+    } // end of method MailTask::set_CcList
 
-    // method line 1763
+    // method line 1550
     .method public hidebysig specialname 
-           instance default object get_Parent ()  cil managed 
+           instance default string get_BccList ()  cil managed 
     {
-        // Method begins at RVA 0x4464
+        // Method begins at RVA 0x1bad4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld object NAnt.Core.Element::_parent
+	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_bccList
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Element::get_Parent
+    } // end of method MailTask::get_BccList
 
-    // method line 1764
+    // method line 1551
     .method public hidebysig specialname 
-           instance default void set_Parent (object 'value')  cil managed 
+           instance default void set_BccList (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x447f
+        // Method begins at RVA 0x1baef
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld object NAnt.Core.Element::_parent
+	IL_0003:  stfld string NAnt.Core.Tasks.MailTask::_bccList
 	IL_0008:  ret 
-    } // end of method Element::set_Parent
+    } // end of method MailTask::set_BccList
 
-    // method line 1765
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_Name ()  cil managed 
+    // method line 1552
+    .method public hidebysig specialname 
+           instance default string get_Mailhost ()  cil managed 
     {
-        // Method begins at RVA 0x448c
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x1bafc
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Type object::GetType()
-	IL_0007:  call string class NAnt.Core.Element::GetElementNameFromType(class [mscorlib]System.Type)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_mailHost
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method Element::get_Name
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MailTask::get_Mailhost
 
-    // method line 1766
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
+    // method line 1553
+    .method public hidebysig specialname 
+           instance default void set_Mailhost (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1bb17
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.MailTask::_mailHost
+	IL_000d:  ret 
+    } // end of method MailTask::set_Mailhost
+
+    // method line 1554
+    .method public hidebysig specialname 
+           instance default int32 get_Port ()  cil managed 
     {
-        // Method begins at RVA 0x44ac
+        // Method begins at RVA 0x1bb28
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Project	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.Element::_project
+	IL_0002:  ldfld int32 NAnt.Core.Tasks.MailTask::_portNumber
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Element::get_Project
+    } // end of method MailTask::get_Port
 
-    // method line 1767
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Project (class NAnt.Core.Project 'value')  cil managed 
+    // method line 1555
+    .method public hidebysig specialname 
+           instance default void set_Port (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x44c7
+        // Method begins at RVA 0x1bb43
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Project NAnt.Core.Element::_project
+	IL_0003:  stfld int32 NAnt.Core.Tasks.MailTask::_portNumber
 	IL_0008:  ret 
-    } // end of method Element::set_Project
+    } // end of method MailTask::set_Port
 
-    // method line 1768
-    .method public virtual hidebysig newslot specialname 
-           instance default class NAnt.Core.PropertyDictionary get_Properties ()  cil managed 
+    // method line 1556
+    .method public hidebysig specialname 
+           instance default bool get_EnableSsl ()  cil managed 
     {
-        // Method begins at RVA 0x44d4
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x1bb50
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.PropertyDictionary	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld bool NAnt.Core.Tasks.MailTask::_enableSsl
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method Element::get_Properties
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MailTask::get_EnableSsl
 
-    // method line 1769
+    // method line 1557
     .method public hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
+           instance default void set_EnableSsl (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1bb6b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Tasks.MailTask::_enableSsl
+	IL_0008:  ret 
+    } // end of method MailTask::set_EnableSsl
+
+    // method line 1558
+    .method public hidebysig specialname 
+           instance default string get_Message ()  cil managed 
     {
-        // Method begins at RVA 0x44f4
+        // Method begins at RVA 0x1bb78
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System.Xml]System.Xml.XmlNamespaceManager	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element::_nsMgr
+	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_message
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Element::get_NamespaceManager
+    } // end of method MailTask::get_Message
 
-    // method line 1770
+    // method line 1559
     .method public hidebysig specialname 
-           instance default void set_NamespaceManager (class [System.Xml]System.Xml.XmlNamespaceManager 'value')  cil managed 
+           instance default void set_Message (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x450f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1bb93
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element::_nsMgr
-	IL_0008:  ret 
-    } // end of method Element::set_NamespaceManager
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.MailTask::_message
+	IL_000d:  ret 
+    } // end of method MailTask::set_Message
 
-    // method line 1771
-    .method family virtual hidebysig newslot specialname 
-           instance default class [System.Xml]System.Xml.XmlNode get_XmlNode ()  cil managed 
+    // method line 1560
+    .method public hidebysig specialname 
+           instance default string get_Subject ()  cil managed 
     {
-        // Method begins at RVA 0x451c
+        // Method begins at RVA 0x1bba4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
+	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_subject
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Element::get_XmlNode
+    } // end of method MailTask::get_Subject
 
-    // method line 1772
-    .method family virtual hidebysig newslot specialname 
-           instance default void set_XmlNode (class [System.Xml]System.Xml.XmlNode 'value')  cil managed 
+    // method line 1561
+    .method public hidebysig specialname 
+           instance default void set_Subject (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4537
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1bbbf
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
-	IL_0008:  ret 
-    } // end of method Element::set_XmlNode
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Tasks.MailTask::_subject
+	IL_000d:  ret 
+    } // end of method MailTask::set_Subject
 
-    // method line 1773
-    .method family virtual hidebysig newslot specialname 
-           instance default class NAnt.Core.Location get_Location ()  cil managed 
+    // method line 1562
+    .method public hidebysig specialname 
+           instance default bool get_IsBodyHtml ()  cil managed 
     {
-        // Method begins at RVA 0x4544
+        // Method begins at RVA 0x1bbd0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Location	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Location NAnt.Core.Element::_location
+	IL_0002:  ldfld bool NAnt.Core.Tasks.MailTask::_isBodyHtml
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Element::get_Location
+    } // end of method MailTask::get_IsBodyHtml
 
-    // method line 1774
-    .method family virtual hidebysig newslot specialname 
-           instance default void set_Location (class NAnt.Core.Location 'value')  cil managed 
+    // method line 1563
+    .method public hidebysig specialname 
+           instance default void set_IsBodyHtml (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x455f
+        // Method begins at RVA 0x1bbeb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.Core.Location NAnt.Core.Element::_location
+	IL_0003:  stfld bool NAnt.Core.Tasks.MailTask::_isBodyHtml
 	IL_0008:  ret 
-    } // end of method Element::set_Location
+    } // end of method MailTask::set_IsBodyHtml
 
-    // method line 1775
-    .method family virtual hidebysig newslot specialname 
-           instance default bool get_CustomXmlProcessing ()  cil managed 
+    // method line 1564
+    .method public hidebysig specialname 
+           instance default string get_UserName ()  cil managed 
     {
-        // Method begins at RVA 0x456c
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x1bbf8
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_userName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method Element::get_CustomXmlProcessing
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MailTask::get_UserName
 
-    // method line 1776
-    .method public hidebysig 
-           instance default void Initialize (class [System.Xml]System.Xml.XmlNode elementNode)  cil managed 
+    // method line 1565
+    .method public hidebysig specialname 
+           instance default void set_UserName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4582
-	// Code size 31 (0x1f)
+        // Method begins at RVA 0x1bc13
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.0 
-	IL_0004:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0009:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_000e:  ldarg.0 
-	IL_000f:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0014:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
-	IL_0019:  call instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
-	IL_001e:  ret 
-    } // end of method Element::Initialize
+	IL_0003:  stfld string NAnt.Core.Tasks.MailTask::_userName
+	IL_0008:  ret 
+    } // end of method MailTask::set_UserName
 
-    // method line 1777
-    .method public hidebysig 
-           instance default class NAnt.Core.Location GetLocation ()  cil managed 
+    // method line 1566
+    .method public hidebysig specialname 
+           instance default string get_Password ()  cil managed 
     {
-        // Method begins at RVA 0x45a4
+        // Method begins at RVA 0x1bc20
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Location	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0002:  ldfld string NAnt.Core.Tasks.MailTask::_passWord
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Element::GetLocation
+    } // end of method MailTask::get_Password
 
-    // method line 1778
-    .method public virtual hidebysig newslot 
-           instance default void Log (valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
+    // method line 1567
+    .method public hidebysig specialname 
+           instance default void set_Password (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x45bf
-	// Code size 28 (0x1c)
+        // Method begins at RVA 0x1bc3b
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  brfalse IL_001b
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0013:  ldarg.1 
-	IL_0014:  ldarg.2 
-	IL_0015:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string)
-	IL_001a:  nop 
-	IL_001b:  ret 
-    } // end of method Element::Log
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Tasks.MailTask::_passWord
+	IL_0008:  ret 
+    } // end of method MailTask::set_Password
 
-    // method line 1779
-    .method public virtual hidebysig newslot 
-           instance default void Log (valuetype NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
+    // method line 1568
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.Tasks.MailTask/MailFormat get_Format ()  cil managed 
     {
-	.param [3]
-	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-        // Method begins at RVA 0x45dc
+        // Method begins at RVA 0x1bc48
 	// Code size 29 (0x1d)
-	.maxstack 8
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.Core.Tasks.MailTask/MailFormat	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  brfalse IL_001c
+	IL_0002:  call instance bool class NAnt.Core.Tasks.MailTask::get_IsBodyHtml()
+	IL_0007:  brfalse IL_0014
 
 	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0013:  ldarg.1 
-	IL_0014:  ldarg.2 
-	IL_0015:  ldarg.3 
-	IL_0016:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_001b:  nop 
+	IL_000d:  ldc.i4.1 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_001b
+
+	IL_0014:  ldc.i4.0 
+	IL_0015:  stloc.0 
+	IL_0016:  br IL_001b
+
+	IL_001b:  ldloc.0 
 	IL_001c:  ret 
-    } // end of method Element::Log
+    } // end of method MailTask::get_Format
 
-    // method line 1780
-    .method family virtual hidebysig newslot 
-           instance default void InitializeElement (class [System.Xml]System.Xml.XmlNode elementNode)  cil managed 
+    // method line 1569
+    .method public hidebysig specialname 
+           instance default void set_Format (valuetype NAnt.Core.Tasks.MailTask/MailFormat 'value')  cil managed 
     {
-        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
-		01 00 24 44 65 70 72 65 63 61 74 65 64 2E 20 55   // ..$Deprecated. U
-		73 65 20 49 6E 69 74 69 61 6C 69 7A 65 28 29 20   // se Initialize() 
-		69 6E 73 74 65 61 64 00 00                      ) // instead..
-
-        // Method begins at RVA 0x45fa
-	// Code size 2 (0x2)
-	.maxstack 8
+        // Method begins at RVA 0x1bc74
+	// Code size 105 (0x69)
+	.maxstack 3
 	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method Element::InitializeElement
+	IL_0001:  ldtoken NAnt.Core.Tasks.MailTask/MailFormat
+	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000b:  ldarg.1 
+	IL_000c:  box NAnt.Core.Tasks.MailTask/MailFormat
+	IL_0011:  call bool class [mscorlib]System.Enum::IsDefined(class [mscorlib]System.Type, object)
+	IL_0016:  brtrue IL_0037
 
-    // method line 1781
-    .method family virtual hidebysig newslot 
-           instance default void Initialize ()  cil managed 
+	IL_001b:  nop 
+	IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0021:  ldstr "An invalid format {0} was specified."
+	IL_0026:  ldarg.1 
+	IL_0027:  box NAnt.Core.Tasks.MailTask/MailFormat
+	IL_002c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0031:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0036:  throw 
+	IL_0037:  nop 
+	IL_0038:  ldarga.s 1
+	IL_003a:  ldc.i4.1 
+	IL_003b:  box NAnt.Core.Tasks.MailTask/MailFormat
+	IL_0040:  constrained. NAnt.Core.Tasks.MailTask/MailFormat
+	IL_0046:  callvirt instance bool object::Equals(object)
+	IL_004b:  brfalse IL_005e
+
+	IL_0050:  nop 
+	IL_0051:  ldarg.0 
+	IL_0052:  ldc.i4.1 
+	IL_0053:  call instance void class NAnt.Core.Tasks.MailTask::set_IsBodyHtml(bool)
+	IL_0058:  nop 
+	IL_0059:  br IL_0067
+
+	IL_005e:  nop 
+	IL_005f:  ldarg.0 
+	IL_0060:  ldc.i4.0 
+	IL_0061:  call instance void class NAnt.Core.Tasks.MailTask::set_IsBodyHtml(bool)
+	IL_0066:  nop 
+	IL_0067:  nop 
+	IL_0068:  ret 
+    } // end of method MailTask::set_Format
+
+    // method line 1570
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_Files ()  cil managed 
     {
-        // Method begins at RVA 0x45fd
-	// Code size 2 (0x2)
-	.maxstack 8
+        // Method begins at RVA 0x1bcec
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method Element::Initialize
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_files
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 1782
-    .method family hidebysig 
-           instance default void CopyTo (class NAnt.Core.Element clone)  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MailTask::get_Files
+
+    // method line 1571
+    .method public hidebysig specialname 
+           instance default void set_Files (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x4600
-	// Code size 80 (0x50)
-	.maxstack 2
+        // Method begins at RVA 0x1bd07
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld class NAnt.Core.Location NAnt.Core.Element::_location
-	IL_0008:  stfld class NAnt.Core.Location NAnt.Core.Element::_location
-	IL_000d:  ldarg.1 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element::_nsMgr
-	IL_0014:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element::_nsMgr
-	IL_0019:  ldarg.1 
-	IL_001a:  ldarg.0 
-	IL_001b:  ldfld object NAnt.Core.Element::_parent
-	IL_0020:  stfld object NAnt.Core.Element::_parent
-	IL_0025:  ldarg.1 
-	IL_0026:  ldarg.0 
-	IL_0027:  ldfld class NAnt.Core.Project NAnt.Core.Element::_project
-	IL_002c:  stfld class NAnt.Core.Project NAnt.Core.Element::_project
-	IL_0031:  ldarg.0 
-	IL_0032:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
-	IL_0037:  brfalse IL_004f
-
-	IL_003c:  nop 
-	IL_003d:  ldarg.1 
-	IL_003e:  ldarg.0 
-	IL_003f:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
-	IL_0044:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::Clone()
-	IL_0049:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
-	IL_004e:  nop 
-	IL_004f:  ret 
-    } // end of method Element::CopyTo
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_files
+	IL_0008:  ret 
+    } // end of method MailTask::set_Files
 
-    // method line 1783
-    .method assembly hidebysig 
-           instance default void Initialize (class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo framework)  cil managed 
+    // method line 1572
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_Attachments ()  cil managed 
     {
-        // Method begins at RVA 0x465c
-	// Code size 101 (0x65)
-	.maxstack 4
+        // Method begins at RVA 0x1bd14
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.ArgumentException	V_0)
+		class NAnt.Core.Types.FileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  brtrue IL_0018
-
-	IL_000c:  nop 
-	IL_000d:  ldstr "Element has invalid Project property."
-	IL_0012:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
-	IL_0017:  throw 
-	.try { // 0
-	  IL_0018:  nop 
-	  IL_0019:  ldarg.0 
-	  IL_001a:  ldarg.0 
-	  IL_001b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_0020:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	  IL_0025:  ldarg.1 
-	  IL_0026:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	  IL_002b:  stfld class NAnt.Core.Location NAnt.Core.Element::_location
-	  IL_0030:  nop 
-	  IL_0031:  leave IL_004e
-
-	} // end .try 0
-	catch class [mscorlib]System.ArgumentException { // 0
-	  IL_0036:  stloc.0 
-	  IL_0037:  nop 
-	  IL_0038:  ldsfld class [log4net]log4net.ILog NAnt.Core.Element::logger
-	  IL_003d:  ldstr "Location of Element node could be located."
-	  IL_0042:  ldloc.0 
-	  IL_0043:  callvirt instance void class [log4net]log4net.ILog::Warn(object, class [mscorlib]System.Exception)
-	  IL_0048:  nop 
-	  IL_0049:  leave IL_004e
+	IL_0002:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_attachments
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	} // end handler 0
-	IL_004e:  ldarg.0 
-	IL_004f:  ldarg.1 
-	IL_0050:  ldarg.2 
-	IL_0051:  ldarg.3 
-	IL_0052:  callvirt instance void class NAnt.Core.Element::InitializeXml(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
-	IL_0057:  ldarg.0 
-	IL_0058:  ldarg.1 
-	IL_0059:  callvirt instance void class NAnt.Core.Element::InitializeElement(class [System.Xml]System.Xml.XmlNode)
-	IL_005e:  ldarg.0 
-	IL_005f:  callvirt instance void class NAnt.Core.Element::Initialize()
-	IL_0064:  ret 
-    } // end of method Element::Initialize
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MailTask::get_Attachments
 
-    // method line 1784
-    .method family virtual hidebysig newslot 
-           instance default void InitializeXml (class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo framework)  cil managed 
+    // method line 1573
+    .method public hidebysig specialname 
+           instance default void set_Attachments (class NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x46e0
-	// Code size 25 (0x19)
-	.maxstack 4
-	.locals init (
-		class NAnt.Core.Element/AttributeConfigurator	V_0)
+        // Method begins at RVA 0x1bd2f
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  ldarg.2 
-	IL_000b:  ldarg.3 
-	IL_000c:  newobj instance void class NAnt.Core.Element/AttributeConfigurator::'.ctor'(class NAnt.Core.Element, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
-	IL_0011:  stloc.0 
-	IL_0012:  ldloc.0 
-	IL_0013:  callvirt instance void class NAnt.Core.Element/AttributeConfigurator::Initialize()
-	IL_0018:  ret 
-    } // end of method Element::InitializeXml
+	IL_0003:  stfld class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::_attachments
+	IL_0008:  ret 
+    } // end of method MailTask::set_Attachments
 
-    // method line 1785
-    .method family virtual hidebysig newslot 
-           instance default class [System.Xml]System.Xml.XmlNode GetAttributeConfigurationNode (class NAnt.Core.FrameworkInfo framework, string attributeName)  cil managed 
+    // method line 1574
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x4708
-	// Code size 28 (0x1c)
-	.maxstack 4
-	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0)
+        // Method begins at RVA 0x1bd3c
+	// Code size 68 (0x44)
+	.maxstack 2
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0008:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Project::get_ConfigurationNode()
-	IL_000d:  ldarg.1 
-	IL_000e:  ldarg.2 
-	IL_000f:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::GetAttributeConfigurationNode(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.FrameworkInfo, string)
-	IL_0014:  stloc.0 
-	IL_0015:  br IL_001a
+	IL_0002:  call instance string class NAnt.Core.Tasks.MailTask::get_ToList()
+	IL_0007:  call bool string::IsNullOrEmpty(string)
+	IL_000c:  brfalse IL_0043
 
-	IL_001a:  ldloc.0 
-	IL_001b:  ret 
-    } // end of method Element::GetAttributeConfigurationNode
+	IL_0011:  ldarg.0 
+	IL_0012:  call instance string class NAnt.Core.Tasks.MailTask::get_CcList()
+	IL_0017:  call bool string::IsNullOrEmpty(string)
+	IL_001c:  brfalse IL_0043
 
-    // method line 1786
-    .method family hidebysig 
-           instance default class [System.Xml]System.Xml.XmlNode GetAttributeConfigurationNode (class [System.Xml]System.Xml.XmlNode configSection, class NAnt.Core.FrameworkInfo framework, string attributeName)  cil managed 
+	IL_0021:  ldarg.0 
+	IL_0022:  call instance string class NAnt.Core.Tasks.MailTask::get_BccList()
+	IL_0027:  call bool string::IsNullOrEmpty(string)
+	IL_002c:  brfalse IL_0043
+
+	IL_0031:  nop 
+	IL_0032:  ldstr "There must be at least one name in the \"tolist\", \"cclist\" or \"bcclist\" attributes of the <mail> task."
+	IL_0037:  ldarg.0 
+	IL_0038:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_003d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0042:  throw 
+	IL_0043:  ret 
+    } // end of method MailTask::Initialize
+
+    // method line 1575
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x4730
-	// Code size 314 (0x13a)
-	.maxstack 5
+        // Method begins at RVA 0x1bd8c
+	// Code size 1509 (0x5e5)
+	.maxstack 7
 	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0,
-		string	V_1,
-		int32	V_2,
-		class NAnt.Core.Element	V_3,
-		int32	V_4,
-		class [System.Xml]System.Xml.XmlNode	V_5,
-		class [System.Xml]System.Xml.XmlNode	V_6,
-		class [System.Xml]System.Xml.XmlNode	V_7)
+		class [System]System.Net.Mail.MailMessage	V_0,
+		class [System]System.Net.Mail.MailAddressCollection	V_1,
+		class [System]System.Net.Mail.MailAddressCollection	V_2,
+		class [System]System.Net.Mail.MailAddressCollection	V_3,
+		class [System]System.Net.Mail.MailAddress	V_4,
+		class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>	V_5,
+		class [System]System.Net.Mail.MailAddress	V_6,
+		class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>	V_7,
+		class [System]System.Net.Mail.MailAddress	V_8,
+		class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>	V_9,
+		class [System]System.Net.Mail.MailAddressCollection	V_10,
+		class [System]System.Net.Mail.MailAddress	V_11,
+		class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>	V_12,
+		class [mscorlib]System.IO.StringWriter	V_13,
+		string	V_14,
+		class [System]System.Collections.Specialized.StringEnumerator	V_15,
+		string	V_16,
+		class [mscorlib]System.Exception	V_17,
+		class [mscorlib]System.IDisposable	V_18,
+		string	V_19,
+		string	V_20,
+		class [System]System.Collections.Specialized.StringEnumerator	V_21,
+		class [System]System.Net.Mail.Attachment	V_22,
+		class [mscorlib]System.Exception	V_23,
+		class [mscorlib]System.IDisposable	V_24,
+		class [System]System.Net.Mail.SmtpClient	V_25,
+		class [mscorlib]System.Exception	V_26,
+		class [mscorlib]System.Text.StringBuilder	V_27,
+		int32	V_28,
+		bool	V_29)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldstr ""
-	IL_0008:  stloc.1 
-	IL_0009:  ldc.i4.0 
-	IL_000a:  stloc.2 
-	IL_000b:  ldarg.0 
-	IL_000c:  stloc.3 
-	IL_000d:  br IL_004c
+	IL_0001:  newobj instance void class [System]System.Net.Mail.MailMessage::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance string class NAnt.Core.Tasks.MailTask::get_ToList()
+	IL_000e:  call instance class [System]System.Net.Mail.MailAddressCollection class NAnt.Core.Tasks.MailTask::ParseAddresses(string)
+	IL_0013:  stloc.1 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldarg.0 
+	IL_0016:  call instance string class NAnt.Core.Tasks.MailTask::get_CcList()
+	IL_001b:  call instance class [System]System.Net.Mail.MailAddressCollection class NAnt.Core.Tasks.MailTask::ParseAddresses(string)
+	IL_0020:  stloc.2 
+	IL_0021:  ldarg.0 
+	IL_0022:  ldarg.0 
+	IL_0023:  call instance string class NAnt.Core.Tasks.MailTask::get_BccList()
+	IL_0028:  call instance class [System]System.Net.Mail.MailAddressCollection class NAnt.Core.Tasks.MailTask::ParseAddresses(string)
+	IL_002d:  stloc.3 
+	IL_002e:  nop 
+	IL_002f:  ldloc.1 
+	IL_0030:  callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::GetEnumerator()
+	IL_0035:  stloc.s 5
+	.try { // 0
+	  IL_0037:  br IL_0054
 
-	IL_0012:  nop 
-	IL_0013:  ldloc.3 
-	IL_0014:  isinst NAnt.Core.Task
-	IL_0019:  brfalse IL_003f
+	  IL_003c:  ldloc.s 5
+	  IL_003e:  callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>::get_Current()
+	  IL_0043:  stloc.s 4
+	  IL_0045:  nop 
+	  IL_0046:  ldloc.0 
+	  IL_0047:  callvirt instance class [System]System.Net.Mail.MailAddressCollection class [System]System.Net.Mail.MailMessage::get_To()
+	  IL_004c:  ldloc.s 4
+	  IL_004e:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::Add(!0)
+	  IL_0053:  nop 
+	  IL_0054:  ldloc.s 5
+	  IL_0056:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_005b:  brtrue IL_003c
 
-	IL_001e:  nop 
-	IL_001f:  ldloc.1 
-	IL_0020:  ldstr " and parent::task[@name=\""
-	IL_0025:  ldloc.3 
-	IL_0026:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_002b:  ldstr "\""
-	IL_0030:  call string string::Concat(string, string, string, string)
-	IL_0035:  stloc.1 
-	IL_0036:  ldloc.2 
-	IL_0037:  ldc.i4.1 
-	IL_0038:  add 
-	IL_0039:  stloc.2 
-	IL_003a:  br IL_0052
+	  IL_0060:  leave IL_0074
 
-	IL_003f:  ldloc.3 
-	IL_0040:  callvirt instance object class NAnt.Core.Element::get_Parent()
-	IL_0045:  isinst NAnt.Core.Element
-	IL_004a:  stloc.3 
-	IL_004b:  nop 
-	IL_004c:  ldloc.3 
-	IL_004d:  brtrue IL_0012
+	} // end .try 0
+	finally  { // 0
+	  IL_0065:  ldloc.s 5
+	  IL_0067:  brfalse IL_0073
 
-	IL_0052:  ldstr "descendant::attribute[@name=\""
-	IL_0057:  ldarg.3 
-	IL_0058:  ldstr "\""
-	IL_005d:  ldloc.1 
-	IL_005e:  call string string::Concat(string, string, string, string)
-	IL_0063:  stloc.1 
-	IL_0064:  ldc.i4.0 
-	IL_0065:  stloc.s 4
-	IL_0067:  br IL_0080
+	  IL_006c:  ldloc.s 5
+	  IL_006e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0073:  endfinally 
+	} // end handler 0
+	IL_0074:  nop 
+	IL_0075:  ldloc.2 
+	IL_0076:  callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::GetEnumerator()
+	IL_007b:  stloc.s 7
+	.try { // 1
+	  IL_007d:  br IL_009a
 
-	IL_006c:  nop 
-	IL_006d:  ldloc.1 
-	IL_006e:  ldstr "]"
-	IL_0073:  call string string::Concat(string, string)
-	IL_0078:  stloc.1 
-	IL_0079:  nop 
-	IL_007a:  ldloc.s 4
-	IL_007c:  ldc.i4.1 
-	IL_007d:  add 
-	IL_007e:  stloc.s 4
-	IL_0080:  ldloc.s 4
-	IL_0082:  ldloc.2 
-	IL_0083:  blt IL_006c
+	  IL_0082:  ldloc.s 7
+	  IL_0084:  callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>::get_Current()
+	  IL_0089:  stloc.s 6
+	  IL_008b:  nop 
+	  IL_008c:  ldloc.0 
+	  IL_008d:  callvirt instance class [System]System.Net.Mail.MailAddressCollection class [System]System.Net.Mail.MailMessage::get_CC()
+	  IL_0092:  ldloc.s 6
+	  IL_0094:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::Add(!0)
+	  IL_0099:  nop 
+	  IL_009a:  ldloc.s 7
+	  IL_009c:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00a1:  brtrue IL_0082
 
-	IL_0088:  ldloc.1 
-	IL_0089:  ldstr "]"
-	IL_008e:  call string string::Concat(string, string)
-	IL_0093:  stloc.1 
-	IL_0094:  ldarg.2 
-	IL_0095:  brfalse IL_00fc
+	  IL_00a6:  leave IL_00ba
 
-	IL_009a:  nop 
-	IL_009b:  ldarg.1 
-	IL_009c:  ldc.i4.5 
-	IL_009d:  newarr [mscorlib]System.String
-	IL_00a2:  dup 
-	IL_00a3:  ldc.i4.0 
-	IL_00a4:  ldstr "frameworks/platform[@name=\""
-	IL_00a9:  stelem.ref 
-	IL_00aa:  dup 
-	IL_00ab:  ldc.i4.1 
-	IL_00ac:  ldarg.0 
-	IL_00ad:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_00b2:  callvirt instance string class NAnt.Core.Project::get_PlatformName()
-	IL_00b7:  stelem.ref 
-	IL_00b8:  dup 
-	IL_00b9:  ldc.i4.2 
-	IL_00ba:  ldstr "\"]/framework[@name=\""
-	IL_00bf:  stelem.ref 
-	IL_00c0:  dup 
-	IL_00c1:  ldc.i4.3 
-	IL_00c2:  ldarg.2 
-	IL_00c3:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	IL_00c8:  stelem.ref 
-	IL_00c9:  dup 
-	IL_00ca:  ldc.i4.4 
-	IL_00cb:  ldstr "\"]"
-	IL_00d0:  stelem.ref 
-	IL_00d1:  call string string::Concat(string[])
-	IL_00d6:  ldarg.0 
-	IL_00d7:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
-	IL_00dc:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_00e1:  stloc.s 5
-	IL_00e3:  ldloc.s 5
-	IL_00e5:  brfalse IL_00fb
+	} // end .try 1
+	finally  { // 1
+	  IL_00ab:  ldloc.s 7
+	  IL_00ad:  brfalse IL_00b9
 
-	IL_00ea:  nop 
-	IL_00eb:  ldloc.s 5
-	IL_00ed:  ldloc.1 
-	IL_00ee:  ldarg.0 
-	IL_00ef:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
-	IL_00f4:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_00f9:  stloc.0 
-	IL_00fa:  nop 
-	IL_00fb:  nop 
-	IL_00fc:  ldloc.0 
-	IL_00fd:  brtrue IL_012f
+	  IL_00b2:  ldloc.s 7
+	  IL_00b4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00b9:  endfinally 
+	} // end handler 1
+	IL_00ba:  nop 
+	IL_00bb:  ldloc.3 
+	IL_00bc:  callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::GetEnumerator()
+	IL_00c1:  stloc.s 9
+	.try { // 2
+	  IL_00c3:  br IL_00e0
 
-	IL_0102:  nop 
-	IL_0103:  ldarg.1 
-	IL_0104:  ldstr "frameworks/tasks"
-	IL_0109:  ldarg.0 
-	IL_010a:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
-	IL_010f:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0114:  stloc.s 6
-	IL_0116:  ldloc.s 6
-	IL_0118:  brfalse IL_012e
+	  IL_00c8:  ldloc.s 9
+	  IL_00ca:  callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>::get_Current()
+	  IL_00cf:  stloc.s 8
+	  IL_00d1:  nop 
+	  IL_00d2:  ldloc.0 
+	  IL_00d3:  callvirt instance class [System]System.Net.Mail.MailAddressCollection class [System]System.Net.Mail.MailMessage::get_Bcc()
+	  IL_00d8:  ldloc.s 8
+	  IL_00da:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::Add(!0)
+	  IL_00df:  nop 
+	  IL_00e0:  ldloc.s 9
+	  IL_00e2:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00e7:  brtrue IL_00c8
 
-	IL_011d:  nop 
-	IL_011e:  ldloc.s 6
-	IL_0120:  ldloc.1 
-	IL_0121:  ldarg.0 
-	IL_0122:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
-	IL_0127:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_012c:  stloc.0 
+	  IL_00ec:  leave IL_0100
+
+	} // end .try 2
+	finally  { // 2
+	  IL_00f1:  ldloc.s 9
+	  IL_00f3:  brfalse IL_00ff
+
+	  IL_00f8:  ldloc.s 9
+	  IL_00fa:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00ff:  endfinally 
+	} // end handler 2
+	IL_0100:  ldarg.0 
+	IL_0101:  call instance string class NAnt.Core.Tasks.MailTask::get_ReplyTo()
+	IL_0106:  call bool string::IsNullOrEmpty(string)
+	IL_010b:  brtrue IL_0176
+
+	IL_0110:  nop 
+	IL_0111:  ldarg.0 
+	IL_0112:  ldarg.0 
+	IL_0113:  call instance string class NAnt.Core.Tasks.MailTask::get_ReplyTo()
+	IL_0118:  call instance class [System]System.Net.Mail.MailAddressCollection class NAnt.Core.Tasks.MailTask::ParseAddresses(string)
+	IL_011d:  stloc.s 10
+	IL_011f:  ldloc.s 10
+	IL_0121:  callvirt instance int32 class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::get_Count()
+	IL_0126:  ldc.i4.0 
+	IL_0127:  ble IL_0175
+
+	IL_012c:  nop 
 	IL_012d:  nop 
-	IL_012e:  nop 
-	IL_012f:  ldloc.0 
-	IL_0130:  stloc.s 7
-	IL_0132:  br IL_0137
+	IL_012e:  ldloc.s 10
+	IL_0130:  callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::GetEnumerator()
+	IL_0135:  stloc.s 12
+	.try { // 3
+	  IL_0137:  br IL_0154
 
-	IL_0137:  ldloc.s 7
-	IL_0139:  ret 
-    } // end of method Element::GetAttributeConfigurationNode
+	  IL_013c:  ldloc.s 12
+	  IL_013e:  callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class [System]System.Net.Mail.MailAddress>::get_Current()
+	  IL_0143:  stloc.s 11
+	  IL_0145:  nop 
+	  IL_0146:  ldloc.0 
+	  IL_0147:  callvirt instance class [System]System.Net.Mail.MailAddressCollection class [System]System.Net.Mail.MailMessage::get_ReplyToList()
+	  IL_014c:  ldloc.s 11
+	  IL_014e:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::Add(!0)
+	  IL_0153:  nop 
+	  IL_0154:  ldloc.s 12
+	  IL_0156:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_015b:  brtrue IL_013c
 
-    // method line 1787
-    .method public static hidebysig 
-           default class NAnt.Core.Element InitializeBuildElement (class NAnt.Core.Element parent, class [System.Xml]System.Xml.XmlNode childNode, class NAnt.Core.Element buildElement, class [mscorlib]System.Type elementType)  cil managed 
+	  IL_0160:  leave IL_0174
+
+	} // end .try 3
+	finally  { // 3
+	  IL_0165:  ldloc.s 12
+	  IL_0167:  brfalse IL_0173
+
+	  IL_016c:  ldloc.s 12
+	  IL_016e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0173:  endfinally 
+	} // end handler 3
+	IL_0174:  nop 
+	IL_0175:  nop 
+	IL_0176:  ldloc.0 
+	IL_0177:  ldarg.0 
+	IL_0178:  ldarg.0 
+	IL_0179:  call instance string class NAnt.Core.Tasks.MailTask::get_From()
+	IL_017e:  call instance class [System]System.Net.Mail.MailAddress class NAnt.Core.Tasks.MailTask::ConvertStringToMailAddress(string)
+	IL_0183:  callvirt instance void class [System]System.Net.Mail.MailMessage::set_From(class [System]System.Net.Mail.MailAddress)
+	IL_0188:  ldloc.0 
+	IL_0189:  ldarg.0 
+	IL_018a:  call instance string class NAnt.Core.Tasks.MailTask::get_Subject()
+	IL_018f:  callvirt instance void class [System]System.Net.Mail.MailMessage::set_Subject(string)
+	IL_0194:  ldloc.0 
+	IL_0195:  ldarg.0 
+	IL_0196:  call instance bool class NAnt.Core.Tasks.MailTask::get_IsBodyHtml()
+	IL_019b:  callvirt instance void class [System]System.Net.Mail.MailMessage::set_IsBodyHtml(bool)
+	IL_01a0:  ldarg.0 
+	IL_01a1:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.MailTask::get_Files()
+	IL_01a6:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_01ab:  brtrue IL_01cd
+
+	IL_01b0:  nop 
+	IL_01b1:  ldarg.0 
+	IL_01b2:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.MailTask::get_Files()
+	IL_01b7:  ldarg.0 
+	IL_01b8:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_01bd:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_01c2:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_01c7:  callvirt instance void class NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_01cc:  nop 
+	IL_01cd:  ldarg.0 
+	IL_01ce:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.MailTask::get_Attachments()
+	IL_01d3:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_01d8:  brtrue IL_01fa
+
+	IL_01dd:  nop 
+	IL_01de:  ldarg.0 
+	IL_01df:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.MailTask::get_Attachments()
+	IL_01e4:  ldarg.0 
+	IL_01e5:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_01ea:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_01ef:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_01f4:  callvirt instance void class NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_01f9:  nop 
+	IL_01fa:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01ff:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'(class [mscorlib]System.IFormatProvider)
+	IL_0204:  stloc.s 13
+	IL_0206:  ldarg.0 
+	IL_0207:  call instance string class NAnt.Core.Tasks.MailTask::get_Message()
+	IL_020c:  call bool string::IsNullOrEmpty(string)
+	IL_0211:  brtrue IL_022c
+
+	IL_0216:  nop 
+	IL_0217:  ldloc.s 13
+	IL_0219:  ldarg.0 
+	IL_021a:  call instance string class NAnt.Core.Tasks.MailTask::get_Message()
+	IL_021f:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	IL_0224:  ldloc.s 13
+	IL_0226:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	IL_022b:  nop 
+	IL_022c:  nop 
+	IL_022d:  ldarg.0 
+	IL_022e:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.MailTask::get_Files()
+	IL_0233:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0238:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_023d:  stloc.s 15
+	.try { // 5
+	  IL_023f:  br IL_02b4
+
+	  IL_0244:  ldloc.s 15
+	  IL_0246:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_024b:  stloc.s 14
+	  IL_024d:  nop 
+	  .try { // 4
+	    IL_024e:  nop 
+	    IL_024f:  ldarg.0 
+	    IL_0250:  ldloc.s 14
+	    IL_0252:  call instance string class NAnt.Core.Tasks.MailTask::ReadFile(string)
+	    IL_0257:  stloc.s 16
+	    IL_0259:  ldloc.s 16
+	    IL_025b:  call bool string::IsNullOrEmpty(string)
+	    IL_0260:  brtrue IL_027c
+
+	    IL_0265:  nop 
+	    IL_0266:  ldloc.s 13
+	    IL_0268:  ldloc.s 16
+	    IL_026a:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string)
+	    IL_026f:  ldloc.s 13
+	    IL_0271:  ldsfld string [mscorlib]System.String::Empty
+	    IL_0276:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	    IL_027b:  nop 
+	    IL_027c:  nop 
+	    IL_027d:  leave IL_02b3
+
+	  } // end .try 4
+	  catch class [mscorlib]System.Exception { // 4
+	    IL_0282:  stloc.s 17
+	    IL_0284:  nop 
+	    IL_0285:  ldarg.0 
+	    IL_0286:  ldc.i4 4000
+	    IL_028b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0290:  ldstr "NA1135"
+	    IL_0295:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_029a:  ldloc.s 14
+	    IL_029c:  ldloc.s 17
+	    IL_029e:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	    IL_02a3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	    IL_02a8:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	    IL_02ad:  nop 
+	    IL_02ae:  leave IL_02b3
+
+	  } // end handler 4
+	  IL_02b3:  nop 
+	  IL_02b4:  ldloc.s 15
+	  IL_02b6:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_02bb:  brtrue IL_0244
+
+	  IL_02c0:  leave IL_02dc
+
+	} // end .try 5
+	finally  { // 5
+	  IL_02c5:  ldloc.s 15
+	  IL_02c7:  isinst [mscorlib]System.IDisposable
+	  IL_02cc:  dup 
+	  IL_02cd:  stloc.s 18
+	  IL_02cf:  brfalse IL_02db
+
+	  IL_02d4:  ldloc.s 18
+	  IL_02d6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_02db:  endfinally 
+	} // end handler 5
+	IL_02dc:  ldloc.s 13
+	IL_02de:  callvirt instance string object::ToString()
+	IL_02e3:  stloc.s 19
+	IL_02e5:  ldloc.s 19
+	IL_02e7:  callvirt instance int32 string::get_Length()
+	IL_02ec:  brfalse IL_02fb
+
+	IL_02f1:  nop 
+	IL_02f2:  ldloc.0 
+	IL_02f3:  ldloc.s 19
+	IL_02f5:  callvirt instance void class [System]System.Net.Mail.MailMessage::set_Body(string)
+	IL_02fa:  nop 
+	IL_02fb:  nop 
+	IL_02fc:  ldarg.0 
+	IL_02fd:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.MailTask::get_Attachments()
+	IL_0302:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0307:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_030c:  stloc.s 21
+	.try { // 7
+	  IL_030e:  br IL_036c
+
+	  IL_0313:  ldloc.s 21
+	  IL_0315:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_031a:  stloc.s 20
+	  IL_031c:  nop 
+	  .try { // 6
+	    IL_031d:  nop 
+	    IL_031e:  ldloc.s 20
+	    IL_0320:  newobj instance void class [System]System.Net.Mail.Attachment::'.ctor'(string)
+	    IL_0325:  stloc.s 22
+	    IL_0327:  ldloc.0 
+	    IL_0328:  callvirt instance class [System]System.Net.Mail.AttachmentCollection class [System]System.Net.Mail.MailMessage::get_Attachments()
+	    IL_032d:  ldloc.s 22
+	    IL_032f:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.Attachment>::Add(!0)
+	    IL_0334:  nop 
+	    IL_0335:  leave IL_036b
+
+	  } // end .try 6
+	  catch class [mscorlib]System.Exception { // 6
+	    IL_033a:  stloc.s 23
+	    IL_033c:  nop 
+	    IL_033d:  ldarg.0 
+	    IL_033e:  ldc.i4 4000
+	    IL_0343:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0348:  ldstr "NA1136"
+	    IL_034d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_0352:  ldloc.s 20
+	    IL_0354:  ldloc.s 23
+	    IL_0356:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	    IL_035b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	    IL_0360:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	    IL_0365:  nop 
+	    IL_0366:  leave IL_036b
+
+	  } // end handler 6
+	  IL_036b:  nop 
+	  IL_036c:  ldloc.s 21
+	  IL_036e:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0373:  brtrue IL_0313
+
+	  IL_0378:  leave IL_0394
+
+	} // end .try 7
+	finally  { // 7
+	  IL_037d:  ldloc.s 21
+	  IL_037f:  isinst [mscorlib]System.IDisposable
+	  IL_0384:  dup 
+	  IL_0385:  stloc.s 24
+	  IL_0387:  brfalse IL_0393
+
+	  IL_038c:  ldloc.s 24
+	  IL_038e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0393:  endfinally 
+	} // end handler 7
+	IL_0394:  ldarg.0 
+	IL_0395:  ldc.i4 3000
+	IL_039a:  ldstr "Sending mail..."
+	IL_039f:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_03a4:  ldarg.0 
+	IL_03a5:  ldc.i4 2000
+	IL_03aa:  ldstr "To: {0}"
+	IL_03af:  ldc.i4.1 
+	IL_03b0:  newarr [mscorlib]System.Object
+	IL_03b5:  dup 
+	IL_03b6:  ldc.i4.0 
+	IL_03b7:  ldloc.0 
+	IL_03b8:  callvirt instance class [System]System.Net.Mail.MailAddressCollection class [System]System.Net.Mail.MailMessage::get_To()
+	IL_03bd:  stelem.ref 
+	IL_03be:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_03c3:  ldarg.0 
+	IL_03c4:  ldc.i4 2000
+	IL_03c9:  ldstr "Cc: {0}"
+	IL_03ce:  ldc.i4.1 
+	IL_03cf:  newarr [mscorlib]System.Object
+	IL_03d4:  dup 
+	IL_03d5:  ldc.i4.0 
+	IL_03d6:  ldloc.0 
+	IL_03d7:  callvirt instance class [System]System.Net.Mail.MailAddressCollection class [System]System.Net.Mail.MailMessage::get_CC()
+	IL_03dc:  stelem.ref 
+	IL_03dd:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_03e2:  ldarg.0 
+	IL_03e3:  ldc.i4 2000
+	IL_03e8:  ldstr "Bcc: {0}"
+	IL_03ed:  ldc.i4.1 
+	IL_03ee:  newarr [mscorlib]System.Object
+	IL_03f3:  dup 
+	IL_03f4:  ldc.i4.0 
+	IL_03f5:  ldloc.0 
+	IL_03f6:  callvirt instance class [System]System.Net.Mail.MailAddressCollection class [System]System.Net.Mail.MailMessage::get_Bcc()
+	IL_03fb:  stelem.ref 
+	IL_03fc:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0401:  ldarg.0 
+	IL_0402:  ldc.i4 2000
+	IL_0407:  ldstr "Subject: {0}"
+	IL_040c:  ldc.i4.1 
+	IL_040d:  newarr [mscorlib]System.Object
+	IL_0412:  dup 
+	IL_0413:  ldc.i4.0 
+	IL_0414:  ldloc.0 
+	IL_0415:  callvirt instance string class [System]System.Net.Mail.MailMessage::get_Subject()
+	IL_041a:  stelem.ref 
+	IL_041b:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0420:  ldarg.0 
+	IL_0421:  call instance string class NAnt.Core.Tasks.MailTask::get_Mailhost()
+	IL_0426:  newobj instance void class [System]System.Net.Mail.SmtpClient::'.ctor'(string)
+	IL_042b:  stloc.s 25
+	.try { // 9
+	  IL_042d:  nop 
+	  .try { // 8
+	    IL_042e:  nop 
+	    IL_042f:  ldarg.0 
+	    IL_0430:  call instance string class NAnt.Core.Tasks.MailTask::get_UserName()
+	    IL_0435:  call bool string::IsNullOrEmpty(string)
+	    IL_043a:  brtrue IL_046e
+
+	    IL_043f:  ldarg.0 
+	    IL_0440:  call instance string class NAnt.Core.Tasks.MailTask::get_Password()
+	    IL_0445:  call bool string::IsNullOrEmpty(string)
+	    IL_044a:  brtrue IL_046e
+
+	    IL_044f:  nop 
+	    IL_0450:  ldloc.s 25
+	    IL_0452:  ldarg.0 
+	    IL_0453:  call instance string class NAnt.Core.Tasks.MailTask::get_UserName()
+	    IL_0458:  ldarg.0 
+	    IL_0459:  call instance string class NAnt.Core.Tasks.MailTask::get_Password()
+	    IL_045e:  newobj instance void class [System]System.Net.NetworkCredential::'.ctor'(string, string)
+	    IL_0463:  callvirt instance void class [System]System.Net.Mail.SmtpClient::set_Credentials(class [System]System.Net.ICredentialsByHost)
+	    IL_0468:  nop 
+	    IL_0469:  br IL_0497
+
+	    IL_046e:  nop 
+	    IL_046f:  ldsfld bool NAnt.Core.PlatformHelper::IsMono
+	    IL_0474:  brfalse IL_048c
+
+	    IL_0479:  nop 
+	    IL_047a:  ldloc.s 25
+	    IL_047c:  newobj instance void class [System]System.Net.NetworkCredential::'.ctor'()
+	    IL_0481:  callvirt instance void class [System]System.Net.Mail.SmtpClient::set_Credentials(class [System]System.Net.ICredentialsByHost)
+	    IL_0486:  nop 
+	    IL_0487:  br IL_0496
+
+	    IL_048c:  nop 
+	    IL_048d:  ldloc.s 25
+	    IL_048f:  ldc.i4.1 
+	    IL_0490:  callvirt instance void class [System]System.Net.Mail.SmtpClient::set_UseDefaultCredentials(bool)
+	    IL_0495:  nop 
+	    IL_0496:  nop 
+	    IL_0497:  ldloc.s 25
+	    IL_0499:  ldarg.0 
+	    IL_049a:  call instance bool class NAnt.Core.Tasks.MailTask::get_EnableSsl()
+	    IL_049f:  callvirt instance void class [System]System.Net.Mail.SmtpClient::set_EnableSsl(bool)
+	    IL_04a4:  ldloc.s 25
+	    IL_04a6:  ldarg.0 
+	    IL_04a7:  call instance int32 class NAnt.Core.Tasks.MailTask::get_Port()
+	    IL_04ac:  callvirt instance void class [System]System.Net.Mail.SmtpClient::set_Port(int32)
+	    IL_04b1:  ldloc.s 25
+	    IL_04b3:  ldloc.0 
+	    IL_04b4:  callvirt instance void class [System]System.Net.Mail.SmtpClient::Send(class [System]System.Net.Mail.MailMessage)
+	    IL_04b9:  nop 
+	    IL_04ba:  leave IL_05cf
+
+	  } // end .try 8
+	  catch class [mscorlib]System.Exception { // 8
+	    IL_04bf:  stloc.s 26
+	    IL_04c1:  nop 
+	    IL_04c2:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	    IL_04c7:  stloc.s 27
+	    IL_04c9:  ldloc.s 27
+	    IL_04cb:  ldstr "Error enountered while sending mail message."
+	    IL_04d0:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
+	    IL_04d5:  pop 
+	    IL_04d6:  ldloc.s 27
+	    IL_04d8:  ldstr "Make sure that the following information is valid:"
+	    IL_04dd:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
+	    IL_04e2:  pop 
+	    IL_04e3:  ldloc.s 27
+	    IL_04e5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_04ea:  ldstr "Mailhost: {0}"
+	    IL_04ef:  ldarg.0 
+	    IL_04f0:  call instance string class NAnt.Core.Tasks.MailTask::get_Mailhost()
+	    IL_04f5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_04fa:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
+	    IL_04ff:  pop 
+	    IL_0500:  ldloc.s 27
+	    IL_0502:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0507:  ldstr "Mailport: {0}"
+	    IL_050c:  ldarg.0 
+	    IL_050d:  call instance int32 class NAnt.Core.Tasks.MailTask::get_Port()
+	    IL_0512:  stloc.s 28
+	    IL_0514:  ldloca.s 28
+	    IL_0516:  constrained. [mscorlib]System.Int32
+	    IL_051c:  callvirt instance string object::ToString()
+	    IL_0521:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_0526:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
+	    IL_052b:  pop 
+	    IL_052c:  ldloc.s 27
+	    IL_052e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0533:  ldstr "Use SSL: {0}"
+	    IL_0538:  ldarg.0 
+	    IL_0539:  call instance bool class NAnt.Core.Tasks.MailTask::get_EnableSsl()
+	    IL_053e:  stloc.s 29
+	    IL_0540:  ldloca.s 29
+	    IL_0542:  constrained. [mscorlib]System.Boolean
+	    IL_0548:  callvirt instance string object::ToString()
+	    IL_054d:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_0552:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
+	    IL_0557:  pop 
+	    IL_0558:  ldarg.0 
+	    IL_0559:  call instance string class NAnt.Core.Tasks.MailTask::get_UserName()
+	    IL_055e:  call bool string::IsNullOrEmpty(string)
+	    IL_0563:  brtrue IL_059c
+
+	    IL_0568:  ldarg.0 
+	    IL_0569:  call instance string class NAnt.Core.Tasks.MailTask::get_Password()
+	    IL_056e:  call bool string::IsNullOrEmpty(string)
+	    IL_0573:  brtrue IL_059c
+
+	    IL_0578:  nop 
+	    IL_0579:  ldloc.s 27
+	    IL_057b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0580:  ldstr "Username: {0}"
+	    IL_0585:  ldarg.0 
+	    IL_0586:  call instance string class NAnt.Core.Tasks.MailTask::get_UserName()
+	    IL_058b:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_0590:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine()
+	    IL_0595:  pop 
+	    IL_0596:  nop 
+	    IL_0597:  br IL_05ab
+
+	    IL_059c:  nop 
+	    IL_059d:  ldloc.s 27
+	    IL_059f:  ldstr "Using default credentials"
+	    IL_05a4:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendLine(string)
+	    IL_05a9:  pop 
+	    IL_05aa:  nop 
+	    IL_05ab:  ldstr "Error sending mail:"
+	    IL_05b0:  call string class [mscorlib]System.Environment::get_NewLine()
+	    IL_05b5:  ldloc.s 27
+	    IL_05b7:  callvirt instance string object::ToString()
+	    IL_05bc:  call string string::Concat(string, string, string)
+	    IL_05c1:  ldarg.0 
+	    IL_05c2:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	    IL_05c7:  ldloc.s 26
+	    IL_05c9:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	    IL_05ce:  throw 
+	  } // end handler 8
+	  IL_05cf:  nop 
+	  IL_05d0:  leave IL_05e4
+
+	} // end .try 9
+	finally  { // 9
+	  IL_05d5:  ldloc.s 25
+	  IL_05d7:  brfalse IL_05e3
+
+	  IL_05dc:  ldloc.s 25
+	  IL_05de:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_05e3:  endfinally 
+	} // end handler 9
+	IL_05e4:  ret 
+    } // end of method MailTask::ExecuteTask
+
+    // method line 1576
+    .method private hidebysig 
+           instance default string ReadFile (string filename)  cil managed 
     {
-        // Method begins at RVA 0x4878
-	// Code size 557 (0x22d)
-	.maxstack 5
+        // Method begins at RVA 0x1c474
+	// Code size 49 (0x31)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.DataTypeBase	V_0,
-		class [mscorlib]System.Reflection.ConstructorInfo	V_1,
-		class NAnt.Core.Attributes.ElementNameAttribute	V_2,
-		class NAnt.Core.Attributes.ElementNameAttribute	V_3,
-		class NAnt.Core.Element	V_4)
+		class [mscorlib]System.IO.StreamReader	V_0,
+		string	V_1,
+		string	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  isinst NAnt.Core.DataTypeBase
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  brfalse IL_01fb
-
-	IL_000e:  ldloc.0 
-	IL_000f:  callvirt instance bool class NAnt.Core.DataTypeBase::get_CanBeReferenced()
-	IL_0014:  brfalse IL_01fb
+	IL_0001:  ldarg.1 
+	IL_0002:  call class [mscorlib]System.IO.FileStream class [mscorlib]System.IO.File::OpenRead(string)
+	IL_0007:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(class [mscorlib]System.IO.Stream)
+	IL_000c:  stloc.0 
+	.try { // 0
+	  IL_000d:  nop 
+	  IL_000e:  ldloc.0 
+	  IL_000f:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
+	  IL_0014:  stloc.1 
+	  IL_0015:  ldloc.0 
+	  IL_0016:  callvirt instance void class [mscorlib]System.IO.TextReader::Close()
+	  IL_001b:  ldloc.1 
+	  IL_001c:  stloc.2 
+	  IL_001d:  leave IL_002f
 
-	IL_0019:  ldarg.1 
-	IL_001a:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_001f:  ldstr "refid"
-	IL_0024:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0029:  brfalse IL_01fb
+	} // end .try 0
+	finally  { // 0
+	  IL_0022:  ldloc.0 
+	  IL_0023:  brfalse IL_002e
 
-	IL_002e:  nop 
-	IL_002f:  ldloc.0 
-	IL_0030:  ldarg.1 
-	IL_0031:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0036:  ldstr "refid"
-	IL_003b:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0040:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_0045:  callvirt instance void class NAnt.Core.DataTypeBase::set_RefID(string)
-	IL_004a:  ldloc.0 
-	IL_004b:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	IL_0050:  call bool string::IsNullOrEmpty(string)
-	IL_0055:  brtrue IL_008b
+	  IL_0028:  ldloc.0 
+	  IL_0029:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_002e:  endfinally 
+	} // end handler 0
+	IL_002f:  ldloc.2 
+	IL_0030:  ret 
+    } // end of method MailTask::ReadFile
 
-	IL_005a:  nop 
-	IL_005b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0060:  ldstr "NA1183"
-	IL_0065:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_006a:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_006f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0074:  ldarg.0 
-	IL_0075:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_007a:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	IL_007f:  ldarg.1 
-	IL_0080:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	IL_0085:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_008a:  throw 
-	IL_008b:  ldarg.0 
-	IL_008c:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0091:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	IL_0096:  ldloc.0 
-	IL_0097:  callvirt instance string class NAnt.Core.DataTypeBase::get_RefID()
-	IL_009c:  callvirt instance bool class NAnt.Core.DataTypeBaseDictionary::Contains(string)
-	IL_00a1:  brfalse IL_00ca
+    // method line 1577
+    .method private hidebysig 
+           instance default class [System]System.Net.Mail.MailAddressCollection ParseAddresses (string addresses)  cil managed 
+    {
+        // Method begins at RVA 0x1c4c4
+	// Code size 147 (0x93)
+	.maxstack 5
+	.locals init (
+		class [System]System.Net.Mail.MailAddressCollection	V_0,
+		string[]	V_1,
+		string	V_2,
+		string[]	V_3,
+		int32	V_4,
+		class [System]System.Net.Mail.MailAddressCollection	V_5)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [System]System.Net.Mail.MailAddressCollection::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.1 
+	IL_0008:  call bool string::IsNullOrEmpty(string)
+	IL_000d:  brtrue IL_0088
 
-	IL_00a6:  nop 
-	IL_00a7:  ldarg.0 
-	IL_00a8:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_00ad:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	IL_00b2:  ldloc.0 
-	IL_00b3:  callvirt instance string class NAnt.Core.DataTypeBase::get_RefID()
-	IL_00b8:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.DataTypeBaseDictionary::get_Item(string)
-	IL_00bd:  stloc.0 
-	IL_00be:  ldloc.0 
-	IL_00bf:  callvirt instance void class NAnt.Core.DataTypeBase::Reset()
-	IL_00c4:  nop 
-	IL_00c5:  br IL_0102
+	IL_0012:  nop 
+	IL_0013:  ldarg.1 
+	IL_0014:  ldstr ";"
+	IL_0019:  callvirt instance bool string::Contains(string)
+	IL_001e:  brfalse IL_0078
 
-	IL_00ca:  nop 
-	IL_00cb:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00d0:  ldstr "NA1184"
-	IL_00d5:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00da:  ldloc.0 
-	IL_00db:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_00e0:  ldloc.0 
-	IL_00e1:  callvirt instance string class NAnt.Core.DataTypeBase::get_RefID()
-	IL_00e6:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_00eb:  ldarg.0 
-	IL_00ec:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_00f1:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	IL_00f6:  ldarg.1 
-	IL_00f7:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	IL_00fc:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0101:  throw 
-	IL_0102:  ldarg.3 
-	IL_0103:  ldloc.0 
-	IL_0104:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0109:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_010e:  brtrue IL_01bd
+	IL_0023:  nop 
+	IL_0024:  ldarg.1 
+	IL_0025:  ldc.i4.1 
+	IL_0026:  newarr [mscorlib]System.Char
+	IL_002b:  dup 
+	IL_002c:  ldc.i4.0 
+	IL_002d:  ldc.i4.s 0x3b
+	IL_002f:  stelem.i2 
+	IL_0030:  callvirt instance string[] string::Split(char[])
+	IL_0035:  stloc.1 
+	IL_0036:  nop 
+	IL_0037:  ldloc.1 
+	IL_0038:  stloc.3 
+	IL_0039:  ldc.i4.0 
+	IL_003a:  stloc.s 4
+	IL_003c:  br IL_0068
 
-	IL_0113:  nop 
-	IL_0114:  ldarg.3 
-	IL_0115:  ldc.i4.1 
-	IL_0116:  newarr [mscorlib]System.Type
-	IL_011b:  dup 
-	IL_011c:  ldc.i4.0 
-	IL_011d:  ldloc.0 
-	IL_011e:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0123:  stelem.ref 
-	IL_0124:  callvirt instance class [mscorlib]System.Reflection.ConstructorInfo class [mscorlib]System.Type::GetConstructor(class [mscorlib]System.Type[])
-	IL_0129:  stloc.1 
-	IL_012a:  ldloc.1 
-	IL_012b:  ldnull 
-	IL_012c:  call bool class [mscorlib]System.Reflection.ConstructorInfo::op_Inequality(class [mscorlib]System.Reflection.ConstructorInfo, class [mscorlib]System.Reflection.ConstructorInfo)
-	IL_0131:  brfalse IL_0153
+	IL_0041:  ldloc.3 
+	IL_0042:  ldloc.s 4
+	IL_0044:  ldelem.ref 
+	IL_0045:  stloc.2 
+	IL_0046:  nop 
+	IL_0047:  ldloc.2 
+	IL_0048:  call bool string::IsNullOrEmpty(string)
+	IL_004d:  brtrue IL_0061
 
-	IL_0136:  nop 
-	IL_0137:  ldloc.1 
-	IL_0138:  ldc.i4.1 
-	IL_0139:  newarr [mscorlib]System.Object
-	IL_013e:  dup 
-	IL_013f:  ldc.i4.0 
-	IL_0140:  ldloc.0 
-	IL_0141:  stelem.ref 
-	IL_0142:  callvirt instance object class [mscorlib]System.Reflection.ConstructorInfo::Invoke(object[])
-	IL_0147:  castclass NAnt.Core.DataTypeBase
-	IL_014c:  stloc.0 
-	IL_014d:  nop 
-	IL_014e:  br IL_01bc
+	IL_0052:  nop 
+	IL_0053:  ldloc.0 
+	IL_0054:  ldarg.0 
+	IL_0055:  ldloc.2 
+	IL_0056:  call instance class [System]System.Net.Mail.MailAddress class NAnt.Core.Tasks.MailTask::ConvertStringToMailAddress(string)
+	IL_005b:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::Add(!0)
+	IL_0060:  nop 
+	IL_0061:  nop 
+	IL_0062:  ldloc.s 4
+	IL_0064:  ldc.i4.1 
+	IL_0065:  add 
+	IL_0066:  stloc.s 4
+	IL_0068:  ldloc.s 4
+	IL_006a:  ldloc.3 
+	IL_006b:  ldlen 
+	IL_006c:  conv.i4 
+	IL_006d:  blt IL_0041
 
-	IL_0153:  nop 
-	IL_0154:  ldloc.0 
-	IL_0155:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_015a:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
-	IL_015f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0164:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	IL_0169:  castclass NAnt.Core.Attributes.ElementNameAttribute
-	IL_016e:  stloc.2 
-	IL_016f:  ldarg.3 
-	IL_0170:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
-	IL_0175:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_017a:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	IL_017f:  castclass NAnt.Core.Attributes.ElementNameAttribute
-	IL_0184:  stloc.3 
-	IL_0185:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_018a:  ldstr "NA1185"
-	IL_018f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0194:  ldloc.2 
-	IL_0195:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
-	IL_019a:  ldloc.3 
-	IL_019b:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
-	IL_01a0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_01a5:  ldarg.0 
-	IL_01a6:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_01ab:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	IL_01b0:  ldarg.1 
-	IL_01b1:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	IL_01b6:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_01bb:  throw 
-	IL_01bc:  nop 
-	IL_01bd:  ldloc.0 
-	IL_01be:  ldarg.0 
-	IL_01bf:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_01c4:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_01c9:  ldloc.0 
-	IL_01ca:  ldarg.0 
-	IL_01cb:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_01d0:  ldloc.0 
-	IL_01d1:  ldarg.0 
-	IL_01d2:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
-	IL_01d7:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_01dc:  ldloc.0 
-	IL_01dd:  ldarg.0 
-	IL_01de:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_01e3:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	IL_01e8:  ldarg.1 
-	IL_01e9:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	IL_01ee:  callvirt instance void class NAnt.Core.Element::set_Location(class NAnt.Core.Location)
-	IL_01f3:  ldloc.0 
-	IL_01f4:  stloc.s 4
-	IL_01f6:  br IL_022a
+	IL_0072:  nop 
+	IL_0073:  br IL_0087
 
-	IL_01fb:  nop 
-	IL_01fc:  ldarg.2 
-	IL_01fd:  ldarg.0 
-	IL_01fe:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0203:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_0208:  ldarg.2 
-	IL_0209:  ldarg.0 
-	IL_020a:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_020f:  ldarg.2 
-	IL_0210:  ldarg.0 
-	IL_0211:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
-	IL_0216:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_021b:  ldarg.2 
-	IL_021c:  ldarg.1 
-	IL_021d:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode)
-	IL_0222:  ldarg.2 
-	IL_0223:  stloc.s 4
-	IL_0225:  br IL_022a
+	IL_0078:  nop 
+	IL_0079:  ldloc.0 
+	IL_007a:  ldarg.0 
+	IL_007b:  ldarg.1 
+	IL_007c:  call instance class [System]System.Net.Mail.MailAddress class NAnt.Core.Tasks.MailTask::ConvertStringToMailAddress(string)
+	IL_0081:  callvirt instance void class [mscorlib]System.Collections.ObjectModel.Collection`1<class [System]System.Net.Mail.MailAddress>::Add(!0)
+	IL_0086:  nop 
+	IL_0087:  nop 
+	IL_0088:  ldloc.0 
+	IL_0089:  stloc.s 5
+	IL_008b:  br IL_0090
 
-	IL_022a:  ldloc.s 4
-	IL_022c:  ret 
-    } // end of method Element::InitializeBuildElement
+	IL_0090:  ldloc.s 5
+	IL_0092:  ret 
+    } // end of method MailTask::ParseAddresses
 
-    // method line 1788
-    .method private static hidebysig 
-           default string GetElementNameFromType (class [mscorlib]System.Type 'type')  cil managed 
+    // method line 1578
+    .method private hidebysig 
+           instance default class [System]System.Net.Mail.MailAddress ConvertStringToMailAddress (string address)  cil managed 
     {
-        // Method begins at RVA 0x4ab4
-	// Code size 76 (0x4c)
-	.maxstack 3
+        // Method begins at RVA 0x1c564
+	// Code size 298 (0x12a)
+	.maxstack 4
 	.locals init (
-		class NAnt.Core.Attributes.ElementNameAttribute	V_0,
-		string	V_1)
+		string	V_0,
+		string	V_1,
+		string	V_2,
+		string[]	V_3,
+		string	V_4,
+		string[]	V_5,
+		int32	V_6,
+		class [System]System.Text.RegularExpressions.Regex	V_7,
+		class [System]System.Text.RegularExpressions.Match	V_8,
+		class [System]System.Net.Mail.MailAddress	V_9,
+		class [System]System.Net.Mail.MailAddress	V_10)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldnull 
-	IL_0003:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0008:  brfalse IL_0019
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance string class NAnt.Core.Tasks.MailTask::UnescapeXmlCodes(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldnull 
+	IL_000a:  stloc.1 
+	IL_000b:  ldnull 
+	IL_000c:  stloc.2 
+	IL_000d:  ldc.i4.4 
+	IL_000e:  newarr [mscorlib]System.String
+	IL_0013:  dup 
+	IL_0014:  ldc.i4.0 
+	IL_0015:  ldstr "^(?<fullname>.+)\\s<(?<email>[^<>\\(\\)\\s]+@[^<>\\(\\)\\s]+\\.[^<>\\(\\)\\s]+)>$"
+	IL_001a:  stelem.ref 
+	IL_001b:  dup 
+	IL_001c:  ldc.i4.1 
+	IL_001d:  ldstr "^<(?<email>[^<>\\(\\)\\s]+@[^<>\\(\\)\\s]+\\.[^\\s]+)>\\s(?<fullname>.+)$"
+	IL_0022:  stelem.ref 
+	IL_0023:  dup 
+	IL_0024:  ldc.i4.2 
+	IL_0025:  ldstr "^\\((?<fullname>.+)\\)\\s(?<email>[^<>\\(\\)\\s]+@[^<>\\(\\)\\s]+\\.[^<>\\(\\)\\s]+)$"
+	IL_002a:  stelem.ref 
+	IL_002b:  dup 
+	IL_002c:  ldc.i4.3 
+	IL_002d:  ldstr "^(?<email>[^<>\\(\\)\\s]+@[^<>\\(\\)\\s]+\\.[^\\s]+)\\s\\((?<fullname>.+)\\)$"
+	IL_0032:  stelem.ref 
+	IL_0033:  stloc.3 
+	IL_0034:  nop 
+	IL_0035:  ldloc.3 
+	IL_0036:  stloc.s 5
+	IL_0038:  ldc.i4.0 
+	IL_0039:  stloc.s 6
+	IL_003b:  br IL_00ac
 
-	IL_000d:  nop 
-	IL_000e:  ldstr "type"
-	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0018:  throw 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
-	IL_001f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0024:  ldc.i4.0 
-	IL_0025:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_002a:  castclass NAnt.Core.Attributes.ElementNameAttribute
-	IL_002f:  stloc.0 
-	IL_0030:  ldloc.0 
-	IL_0031:  brfalse IL_0043
+	IL_0040:  ldloc.s 5
+	IL_0042:  ldloc.s 6
+	IL_0044:  ldelem.ref 
+	IL_0045:  stloc.s 4
+	IL_0047:  nop 
+	IL_0048:  ldloc.s 4
+	IL_004a:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
+	IL_004f:  stloc.s 7
+	IL_0051:  ldloc.s 7
+	IL_0053:  ldloc.0 
+	IL_0054:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
+	IL_0059:  stloc.s 8
+	IL_005b:  ldloc.s 8
+	IL_005d:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
+	IL_0062:  brfalse IL_00a5
 
-	IL_0036:  nop 
-	IL_0037:  ldloc.0 
-	IL_0038:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
-	IL_003d:  stloc.1 
-	IL_003e:  br IL_004a
+	IL_0067:  nop 
+	IL_0068:  ldloc.s 8
+	IL_006a:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	IL_006f:  ldstr "email"
+	IL_0074:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	IL_0079:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	IL_007e:  callvirt instance string string::Trim()
+	IL_0083:  stloc.2 
+	IL_0084:  ldloc.s 8
+	IL_0086:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	IL_008b:  ldstr "fullname"
+	IL_0090:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	IL_0095:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	IL_009a:  callvirt instance string string::Trim()
+	IL_009f:  stloc.1 
+	IL_00a0:  br IL_00b7
 
-	IL_0043:  ldnull 
-	IL_0044:  stloc.1 
-	IL_0045:  br IL_004a
+	IL_00a5:  nop 
+	IL_00a6:  ldloc.s 6
+	IL_00a8:  ldc.i4.1 
+	IL_00a9:  add 
+	IL_00aa:  stloc.s 6
+	IL_00ac:  ldloc.s 6
+	IL_00ae:  ldloc.s 5
+	IL_00b0:  ldlen 
+	IL_00b1:  conv.i4 
+	IL_00b2:  blt IL_0040
 
-	IL_004a:  ldloc.1 
-	IL_004b:  ret 
-    } // end of method Element::GetElementNameFromType
+	.try { // 0
+	  IL_00b7:  nop 
+	  IL_00b8:  ldloc.1 
+	  IL_00b9:  call bool string::IsNullOrEmpty(string)
+	  IL_00be:  brtrue IL_00de
 
-    // method line 1789
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+	  IL_00c3:  ldloc.2 
+	  IL_00c4:  call bool string::IsNullOrEmpty(string)
+	  IL_00c9:  brtrue IL_00de
+
+	  IL_00ce:  nop 
+	  IL_00cf:  ldloc.2 
+	  IL_00d0:  ldloc.1 
+	  IL_00d1:  newobj instance void class [System]System.Net.Mail.MailAddress::'.ctor'(string, string)
+	  IL_00d6:  stloc.s 9
+	  IL_00d8:  nop 
+	  IL_00d9:  br IL_0102
+
+	  IL_00de:  ldloc.2 
+	  IL_00df:  call bool string::IsNullOrEmpty(string)
+	  IL_00e4:  brtrue IL_00f8
+
+	  IL_00e9:  nop 
+	  IL_00ea:  ldloc.2 
+	  IL_00eb:  newobj instance void class [System]System.Net.Mail.MailAddress::'.ctor'(string)
+	  IL_00f0:  stloc.s 9
+	  IL_00f2:  nop 
+	  IL_00f3:  br IL_0102
+
+	  IL_00f8:  nop 
+	  IL_00f9:  ldloc.0 
+	  IL_00fa:  newobj instance void class [System]System.Net.Mail.MailAddress::'.ctor'(string)
+	  IL_00ff:  stloc.s 9
+	  IL_0101:  nop 
+	  IL_0102:  ldloc.s 9
+	  IL_0104:  stloc.s 10
+	  IL_0106:  leave IL_0127
+
+	} // end .try 0
+	catch class [mscorlib]System.FormatException { // 0
+	  IL_010b:  pop 
+	  IL_010c:  nop 
+	  IL_010d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0112:  ldstr "{0} is not a recognized email address"
+	  IL_0117:  ldloc.0 
+	  IL_0118:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_011d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	  IL_0122:  throw 
+	} // end handler 0
+	catch class [mscorlib]System.Exception { // 1
+	  IL_0123:  pop 
+	  IL_0124:  nop 
+	  IL_0125:  rethrow 
+	} // end handler 1
+	IL_0127:  ldloc.s 10
+	IL_0129:  ret 
+    } // end of method MailTask::ConvertStringToMailAddress
+
+    // method line 1579
+    .method private hidebysig 
+           instance default string UnescapeXmlCodes (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4b0c
-	// Code size 21 (0x15)
-	.maxstack 8
-	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
-	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
-	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.Element::logger
-	IL_0014:  ret 
-    } // end of method Element::.cctor
+        // Method begins at RVA 0x1c6b8
+	// Code size 85 (0x55)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr "&quot;"
+	IL_0007:  ldstr "\""
+	IL_000c:  callvirt instance string string::Replace(string, string)
+	IL_0011:  ldstr "&amp;"
+	IL_0016:  ldstr "&"
+	IL_001b:  callvirt instance string string::Replace(string, string)
+	IL_0020:  ldstr "&apos;"
+	IL_0025:  ldstr "'"
+	IL_002a:  callvirt instance string string::Replace(string, string)
+	IL_002f:  ldstr "&lt;"
+	IL_0034:  ldstr "<"
+	IL_0039:  callvirt instance string string::Replace(string, string)
+	IL_003e:  ldstr "&gt;"
+	IL_0043:  ldstr ">"
+	IL_0048:  callvirt instance string string::Replace(string, string)
+	IL_004d:  stloc.0 
+	IL_004e:  br IL_0053
 
-	.property instance object Parent ()
-	{
-		.get instance default object NAnt.Core.Element::get_Parent () 
-		.set instance default void NAnt.Core.Element::set_Parent (object 'value') 
-	}
-	.property instance string Name ()
+	IL_0053:  ldloc.0 
+	IL_0054:  ret 
+    } // end of method MailTask::UnescapeXmlCodes
+
+	.property instance string From ()
 	{
-		.get instance default string NAnt.Core.Element::get_Name () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 66 72 6F 6D 01 00 54 02 08 52 65 71 75   // ...from..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.Core.Tasks.MailTask::get_From () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_From (string 'value') 
 	}
-	.property instance class NAnt.Core.Project Project ()
+	.property instance string ToList ()
 	{
-		.get instance default class NAnt.Core.Project NAnt.Core.Element::get_Project () 
-		.set instance default void NAnt.Core.Element::set_Project (class NAnt.Core.Project 'value') 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 74 6F 6C 69 73 74 00 00 ) // ...tolist..
+
+		.get instance default string NAnt.Core.Tasks.MailTask::get_ToList () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_ToList (string 'value') 
 	}
-	.property instance class NAnt.Core.PropertyDictionary Properties ()
+	.property instance string ReplyTo ()
 	{
-		.get instance default class NAnt.Core.PropertyDictionary NAnt.Core.Element::get_Properties () 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 72 65 70 6C 79 74 6F 00 00 ) // ...replyto..
+
+		.get instance default string NAnt.Core.Tasks.MailTask::get_ReplyTo () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_ReplyTo (string 'value') 
 	}
-	.property instance class [System.Xml]System.Xml.XmlNamespaceManager NamespaceManager ()
+	.property instance string CcList ()
 	{
-		.get instance default class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element::get_NamespaceManager () 
-		.set instance default void NAnt.Core.Element::set_NamespaceManager (class [System.Xml]System.Xml.XmlNamespaceManager 'value') 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 63 63 6C 69 73 74 00 00 ) // ...cclist..
+
+		.get instance default string NAnt.Core.Tasks.MailTask::get_CcList () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_CcList (string 'value') 
 	}
-	.property instance class [System.Xml]System.Xml.XmlNode XmlNode ()
+	.property instance string BccList ()
 	{
-		.get instance default class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::get_XmlNode () 
-		.set instance default void NAnt.Core.Element::set_XmlNode (class [System.Xml]System.Xml.XmlNode 'value') 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 62 63 63 6C 69 73 74 00 00 ) // ...bcclist..
+
+		.get instance default string NAnt.Core.Tasks.MailTask::get_BccList () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_BccList (string 'value') 
 	}
-	.property instance class NAnt.Core.Location Location ()
+	.property instance string Mailhost ()
 	{
-		.get instance default class NAnt.Core.Location NAnt.Core.Element::get_Location () 
-		.set instance default void NAnt.Core.Element::set_Location (class NAnt.Core.Location 'value') 
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 6D 61 69 6C 68 6F 73 74 00 00 ) // ...mailhost..
+
+		.get instance default string NAnt.Core.Tasks.MailTask::get_Mailhost () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_Mailhost (string 'value') 
 	}
-	.property instance bool CustomXmlProcessing ()
+	.property instance int32 Port ()
 	{
-		.get instance default bool NAnt.Core.Element::get_CustomXmlProcessing () 
-	}
-  .class nested public auto ansi beforefieldinit AttributeConfigurator
-  	extends [mscorlib]System.Object
-  {
-    .field  private initonly  class NAnt.Core.Element _element
-    .field  private initonly  class [System.Xml]System.Xml.XmlNode _elementXml
-    .field  private initonly  class NAnt.Core.PropertyDictionary _properties
-    .field  private initonly  class NAnt.Core.FrameworkInfo _targetFramework
-    .field  private initonly  class [System]System.Collections.Specialized.StringCollection _unprocessedAttributes
-    .field  private initonly  class [System]System.Collections.Specialized.StringCollection _unprocessedChildNodes
-    .field  private static initonly  class [log4net]log4net.ILog logger
-    .field  private static  class [mscorlib]System.Collections.Hashtable AttributeSetters
-
-    // method line 1790
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Element element, class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo targetFramework)  cil managed 
-    {
-        // Method begins at RVA 0x4b24
-	// Code size 419 (0x1a3)
-	.maxstack 3
-	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2,
-		class [System.Xml]System.Xml.XmlNode	V_3,
-		class [mscorlib]System.Collections.IEnumerator	V_4,
-		class [mscorlib]System.IDisposable	V_5)
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  brtrue IL_0019
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 6D 61 69 6C 70 6F 72 74 00 00 ) // ...mailport..
 
-	IL_000d:  nop 
-	IL_000e:  ldstr "element"
-	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0018:  throw 
-	IL_0019:  ldarg.2 
-	IL_001a:  brtrue IL_002b
+		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	IL_001f:  nop 
-	IL_0020:  ldstr "elementNode"
-	IL_0025:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_002a:  throw 
-	IL_002b:  ldarg.3 
-	IL_002c:  brtrue IL_003d
+		.get instance default int32 NAnt.Core.Tasks.MailTask::get_Port () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_Port (int32 'value') 
+	}
+	.property instance bool EnableSsl ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 73 73 6C 00 00 ) // ...ssl..
 
-	IL_0031:  nop 
-	IL_0032:  ldstr "properties"
-	IL_0037:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_003c:  throw 
-	IL_003d:  ldarg.0 
-	IL_003e:  ldarg.1 
-	IL_003f:  stfld class NAnt.Core.Element NAnt.Core.Element/AttributeConfigurator::_element
-	IL_0044:  ldarg.0 
-	IL_0045:  ldarg.2 
-	IL_0046:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element/AttributeConfigurator::_elementXml
-	IL_004b:  ldarg.0 
-	IL_004c:  ldarg.3 
-	IL_004d:  stfld class NAnt.Core.PropertyDictionary NAnt.Core.Element/AttributeConfigurator::_properties
-	IL_0052:  ldarg.0 
-	IL_0053:  ldarg.s 4
-	IL_0055:  stfld class NAnt.Core.FrameworkInfo NAnt.Core.Element/AttributeConfigurator::_targetFramework
-	IL_005a:  ldarg.0 
-	IL_005b:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0060:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::_unprocessedAttributes
-	IL_0065:  nop 
-	IL_0066:  ldarg.2 
-	IL_0067:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_006c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNamedNodeMap::GetEnumerator()
-	IL_0071:  stloc.1 
-	.try { // 0
-	  IL_0072:  br IL_00ce
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	  IL_0077:  ldloc.1 
-	  IL_0078:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_007d:  castclass [System.Xml]System.Xml.XmlAttribute
-	  IL_0082:  stloc.0 
-	  IL_0083:  nop 
-	  IL_0084:  ldloc.0 
-	  IL_0085:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	  IL_008a:  callvirt instance int32 string::get_Length()
-	  IL_008f:  ldc.i4.0 
-	  IL_0090:  ble IL_00bb
+		.get instance default bool NAnt.Core.Tasks.MailTask::get_EnableSsl () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_EnableSsl (bool 'value') 
+	}
+	.property instance string Message ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6D 65 73 73 61 67 65 00 00 ) // ...message..
 
-	  IL_0095:  ldloc.0 
-	  IL_0096:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	  IL_009b:  ldarg.0 
-	  IL_009c:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
-	  IL_00a1:  ldstr "nant"
-	  IL_00a6:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
-	  IL_00ab:  callvirt instance bool string::Equals(string)
-	  IL_00b0:  brtrue IL_00bb
+		.get instance default string NAnt.Core.Tasks.MailTask::get_Message () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_Message (string 'value') 
+	}
+	.property instance string Subject ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 73 75 62 6A 65 63 74 00 00 ) // ...subject..
 
-	  IL_00b5:  nop 
-	  IL_00b6:  leave IL_00ce
+		.get instance default string NAnt.Core.Tasks.MailTask::get_Subject () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_Subject (string 'value') 
+	}
+	.property instance bool IsBodyHtml ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 69 73 62 6F 64 79 68 74 6D 6C 00 00 ) // ...isbodyhtml..
 
-	  IL_00bb:  ldarg.0 
-	  IL_00bc:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::_unprocessedAttributes
-	  IL_00c1:  ldloc.0 
-	  IL_00c2:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_00c7:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_00cc:  pop 
-	  IL_00cd:  nop 
-	  IL_00ce:  ldloc.1 
-	  IL_00cf:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00d4:  brtrue IL_0077
+		.custom instance void class NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	  IL_00d9:  leave IL_00f2
+		.get instance default bool NAnt.Core.Tasks.MailTask::get_IsBodyHtml () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_IsBodyHtml (bool 'value') 
+	}
+	.property instance string UserName ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 75 73 65 72 00 00 ) // ...user..
 
-	} // end .try 0
-	finally  { // 0
-	  IL_00de:  ldloc.1 
-	  IL_00df:  isinst [mscorlib]System.IDisposable
-	  IL_00e4:  dup 
-	  IL_00e5:  stloc.2 
-	  IL_00e6:  brfalse IL_00f1
+		.get instance default string NAnt.Core.Tasks.MailTask::get_UserName () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_UserName (string 'value') 
+	}
+	.property instance string Password ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 70 61 73 73 77 6F 72 64 00 00 ) // ...password..
 
-	  IL_00eb:  ldloc.2 
-	  IL_00ec:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00f1:  endfinally 
-	} // end handler 0
-	IL_00f2:  ldarg.0 
-	IL_00f3:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_00f8:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::_unprocessedChildNodes
-	IL_00fd:  nop 
-	IL_00fe:  ldarg.2 
-	IL_00ff:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNode::GetEnumerator()
-	IL_0104:  stloc.s 4
-	.try { // 1
-	  IL_0106:  br IL_017a
+		.get instance default string NAnt.Core.Tasks.MailTask::get_Password () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_Password (string 'value') 
+	}
+	.property instance valuetype NAnt.Core.Tasks.MailTask/MailFormat Format ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 66 6F 72 6D 61 74 00 00 ) // ...format..
 
-	  IL_010b:  ldloc.s 4
-	  IL_010d:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0112:  castclass [System.Xml]System.Xml.XmlNode
-	  IL_0117:  stloc.3 
-	  IL_0118:  nop 
-	  IL_0119:  ldloc.3 
-	  IL_011a:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
-	  IL_011f:  ldc.i4.1 
-	  IL_0120:  bne.un IL_0145
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 41 54 68 65 20 66 6F 72 6D 61 74 20 61 74   // ..AThe format at
+		74 72 69 62 75 74 65 20 69 73 20 64 65 70 72 65   // tribute is depre
+		63 61 74 65 64 2E 20 50 6C 65 61 73 65 20 75 73   // cated. Please us
+		65 20 69 73 62 6F 64 79 68 74 6D 6C 20 69 6E 73   // e isbodyhtml ins
+		74 65 61 64 00 00 00                            ) // tead...
 
-	  IL_0125:  ldloc.3 
-	  IL_0126:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	  IL_012b:  ldarg.0 
-	  IL_012c:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
-	  IL_0131:  ldstr "nant"
-	  IL_0136:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
-	  IL_013b:  callvirt instance bool string::Equals(string)
-	  IL_0140:  brtrue IL_014b
+		.get instance default valuetype NAnt.Core.Tasks.MailTask/MailFormat NAnt.Core.Tasks.MailTask::get_Format () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_Format (valuetype NAnt.Core.Tasks.MailTask/MailFormat 'value') 
+	}
+	.property instance class NAnt.Core.Types.FileSet Files ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 05 66 69 6C 65 73 00 00 ) // ...files..
 
-	  IL_0145:  nop 
-	  IL_0146:  leave IL_017a
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::get_Files () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_Files (class NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance class NAnt.Core.Types.FileSet Attachments ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0B 61 74 74 61 63 68 6D 65 6E 74 73 00 00 ) // ...attachments..
 
-	  IL_014b:  ldarg.0 
-	  IL_014c:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::_unprocessedChildNodes
-	  IL_0151:  ldloc.3 
-	  IL_0152:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_0157:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	  IL_015c:  brfalse IL_0167
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.Tasks.MailTask::get_Attachments () 
+		.set instance default void NAnt.Core.Tasks.MailTask::set_Attachments (class NAnt.Core.Types.FileSet 'value') 
+	}
+  .class nested public auto ansi sealed MailFormat
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Core.Tasks.MailTask/MailFormat Text = int32(0x00000000)
+    .field public static literal  valuetype NAnt.Core.Tasks.MailTask/MailFormat Html = int32(0x00000001)
 
-	  IL_0161:  nop 
-	  IL_0162:  leave IL_017a
+  } // end of class MailFormat
 
-	  IL_0167:  ldarg.0 
-	  IL_0168:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::_unprocessedChildNodes
-	  IL_016d:  ldloc.3 
-	  IL_016e:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_0173:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_0178:  pop 
-	  IL_0179:  nop 
-	  IL_017a:  ldloc.s 4
-	  IL_017c:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0181:  brtrue IL_010b
+  } // end of class NAnt.Core.Tasks.MailTask
+}
 
-	  IL_0186:  leave IL_01a2
+.namespace NAnt.Core.Tasks
+{
+  .class public auto ansi beforefieldinit XmlPeekTask
+  	extends NAnt.Core.Task
+  {
+    .custom instance void class NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 78 6D 6C 70 65 65 6B 00 00 ) // ...xmlpeek..
 
-	} // end .try 1
-	finally  { // 1
-	  IL_018b:  ldloc.s 4
-	  IL_018d:  isinst [mscorlib]System.IDisposable
-	  IL_0192:  dup 
-	  IL_0193:  stloc.s 5
-	  IL_0195:  brfalse IL_01a1
+    .field  private  class [mscorlib]System.IO.FileInfo _xmlFile
+    .field  private  int32 _nodeIndex
+    .field  private  string _property
+    .field  private  string _xPath
+    .field  private  class NAnt.Core.Types.XmlNamespaceCollection _namespaces
 
-	  IL_019a:  ldloc.s 5
-	  IL_019c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01a1:  endfinally 
-	} // end handler 1
-	IL_01a2:  ret 
-    } // end of method AttributeConfigurator::.ctor
+    // method line 1580
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x1c719
+	// Code size 25 (0x19)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld int32 NAnt.Core.Tasks.XmlPeekTask::_nodeIndex
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class NAnt.Core.Types.XmlNamespaceCollection::'.ctor'()
+	IL_000d:  stfld class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPeekTask::_namespaces
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0018:  ret 
+    } // end of method XmlPeekTask::.ctor
 
-    // method line 1791
+    // method line 1581
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Element get_Element ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_XmlFile ()  cil managed 
     {
-        // Method begins at RVA 0x4cf0
+        // Method begins at RVA 0x1c734
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Element	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Element NAnt.Core.Element/AttributeConfigurator::_element
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.XmlPeekTask::_xmlFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AttributeConfigurator::get_Element
+    } // end of method XmlPeekTask::get_XmlFile
 
-    // method line 1792
+    // method line 1582
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Location get_Location ()  cil managed 
+           instance default void set_XmlFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x4d0c
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Location	V_0)
+        // Method begins at RVA 0x1c74f
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_0007:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method AttributeConfigurator::get_Location
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.XmlPeekTask::_xmlFile
+	IL_0008:  ret 
+    } // end of method XmlPeekTask::set_XmlFile
 
-    // method line 1793
+    // method line 1583
     .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+           instance default int32 get_NodeIndex ()  cil managed 
     {
-        // Method begins at RVA 0x4d2c
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x1c75c
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_0007:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld int32 NAnt.Core.Tasks.XmlPeekTask::_nodeIndex
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method AttributeConfigurator::get_Name
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method XmlPeekTask::get_NodeIndex
 
-    // method line 1794
+    // method line 1584
     .method public hidebysig specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
+           instance default void set_NodeIndex (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x4d4c
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Project	V_0)
+        // Method begins at RVA 0x1c777
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_0007:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method AttributeConfigurator::get_Project
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Core.Tasks.XmlPeekTask::_nodeIndex
+	IL_0008:  ret 
+    } // end of method XmlPeekTask::set_NodeIndex
 
-    // method line 1795
+    // method line 1585
     .method public hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlNode get_ElementXml ()  cil managed 
+           instance default string get_Property ()  cil managed 
     {
-        // Method begins at RVA 0x4d6c
+        // Method begins at RVA 0x1c784
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element/AttributeConfigurator::_elementXml
+	IL_0002:  ldfld string NAnt.Core.Tasks.XmlPeekTask::_property
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AttributeConfigurator::get_ElementXml
+    } // end of method XmlPeekTask::get_Property
 
-    // method line 1796
+    // method line 1586
     .method public hidebysig specialname 
-           instance default class NAnt.Core.PropertyDictionary get_Properties ()  cil managed 
+           instance default void set_Property (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4d88
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.PropertyDictionary	V_0)
+        // Method begins at RVA 0x1c79f
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.Element/AttributeConfigurator::_properties
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AttributeConfigurator::get_Properties
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Tasks.XmlPeekTask::_property
+	IL_0008:  ret 
+    } // end of method XmlPeekTask::set_Property
 
-    // method line 1797
+    // method line 1587
     .method public hidebysig specialname 
-           instance default class NAnt.Core.FrameworkInfo get_TargetFramework ()  cil managed 
+           instance default string get_XPath ()  cil managed 
     {
-        // Method begins at RVA 0x4da4
+        // Method begins at RVA 0x1c7ac
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.FrameworkInfo NAnt.Core.Element/AttributeConfigurator::_targetFramework
+	IL_0002:  ldfld string NAnt.Core.Tasks.XmlPeekTask::_xPath
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AttributeConfigurator::get_TargetFramework
+    } // end of method XmlPeekTask::get_XPath
 
-    // method line 1798
+    // method line 1588
     .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_UnprocessedAttributes ()  cil managed 
+           instance default void set_XPath (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4dc0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
+        // Method begins at RVA 0x1c7c7
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::_unprocessedAttributes
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AttributeConfigurator::get_UnprocessedAttributes
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Tasks.XmlPeekTask::_xPath
+	IL_0008:  ret 
+    } // end of method XmlPeekTask::set_XPath
 
-    // method line 1799
+    // method line 1589
     .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_UnprocessedChildNodes ()  cil managed 
+           instance default class NAnt.Core.Types.XmlNamespaceCollection get_Namespaces ()  cil managed 
     {
-        // Method begins at RVA 0x4ddc
+        // Method begins at RVA 0x1c7d4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
+		class NAnt.Core.Types.XmlNamespaceCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::_unprocessedChildNodes
+	IL_0002:  ldfld class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPeekTask::_namespaces
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AttributeConfigurator::get_UnprocessedChildNodes
+    } // end of method XmlPeekTask::get_Namespaces
 
-    // method line 1800
+    // method line 1590
     .method public hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
+           instance default void set_Namespaces (class NAnt.Core.Types.XmlNamespaceCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x4df8
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		class [System.Xml]System.Xml.XmlNamespaceManager	V_0)
+        // Method begins at RVA 0x1c7ef
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method AttributeConfigurator::get_NamespaceManager
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPeekTask::_namespaces
+	IL_0008:  ret 
+    } // end of method XmlPeekTask::set_Namespaces
 
-    // method line 1801
-    .method public hidebysig 
-           instance default void Initialize ()  cil managed 
+    // method line 1591
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x4e18
-	// Code size 468 (0x1d4)
-	.maxstack 5
+        // Method begins at RVA 0x1c7fc
+	// Code size 218 (0xda)
+	.maxstack 7
 	.locals init (
-		class [mscorlib]System.Type	V_0,
-		class [mscorlib]System.Reflection.PropertyInfo[]	V_1,
-		class [mscorlib]System.Reflection.PropertyInfo	V_2,
-		class [mscorlib]System.Reflection.PropertyInfo[]	V_3,
-		int32	V_4,
-		class [mscorlib]System.Reflection.MethodInfo	V_5,
-		class [mscorlib]System.Reflection.MethodInfo	V_6)
+		class [System.Xml]System.Xml.XmlDocument	V_0,
+		class NAnt.Core.BuildException	V_1,
+		class [mscorlib]System.Exception	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_0007:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  ldc.i4.s 0x34
-	IL_0010:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo[] class [mscorlib]System.Type::GetProperties(valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_0015:  stloc.1 
-	IL_0016:  nop 
-	IL_0017:  ldloc.1 
-	IL_0018:  stloc.3 
-	IL_0019:  ldc.i4.0 
-	IL_001a:  stloc.s 4
-	IL_001c:  br IL_00f3
-
-	IL_0021:  ldloc.3 
-	IL_0022:  ldloc.s 4
-	IL_0024:  ldelem.ref 
-	IL_0025:  stloc.2 
-	IL_0026:  nop 
-	IL_0027:  ldnull 
-	IL_0028:  stloc.s 5
-	IL_002a:  ldnull 
-	IL_002b:  stloc.s 6
-	IL_002d:  ldloc.2 
-	IL_002e:  ldc.i4.1 
-	IL_002f:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Reflection.PropertyInfo::GetSetMethod(bool)
-	IL_0034:  stloc.s 6
-	IL_0036:  ldloc.s 6
-	IL_0038:  ldnull 
-	IL_0039:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Inequality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_003e:  brfalse IL_0060
-
-	IL_0043:  ldloc.s 6
-	IL_0045:  callvirt instance bool class [mscorlib]System.Reflection.MethodBase::get_IsPublic()
-	IL_004a:  brtrue IL_0060
+	IL_0002:  ldc.i4 2000
+	IL_0007:  ldstr "Peeking at '{0}' with XPath expression '{1}'."
+	IL_000c:  ldc.i4.2 
+	IL_000d:  newarr [mscorlib]System.Object
+	IL_0012:  dup 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPeekTask::get_XmlFile()
+	IL_001a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001f:  stelem.ref 
+	IL_0020:  dup 
+	IL_0021:  ldc.i4.1 
+	IL_0022:  ldarg.0 
+	IL_0023:  call instance string class NAnt.Core.Tasks.XmlPeekTask::get_XPath()
+	IL_0028:  stelem.ref 
+	IL_0029:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_002e:  ldarg.0 
+	IL_002f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPeekTask::get_XmlFile()
+	IL_0034:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0039:  brtrue IL_006a
 
-	IL_004f:  ldloc.s 6
-	IL_0051:  callvirt instance bool class [mscorlib]System.Reflection.MethodBase::get_IsFamily()
-	IL_0056:  brtrue IL_0060
+	IL_003e:  nop 
+	IL_003f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0044:  ldstr "NA1154"
+	IL_0049:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_004e:  ldarg.0 
+	IL_004f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPeekTask::get_XmlFile()
+	IL_0054:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0059:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_005e:  ldarg.0 
+	IL_005f:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0064:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0069:  throw 
+	.try { // 0
+	  IL_006a:  nop 
+	  IL_006b:  ldarg.0 
+	  IL_006c:  ldarg.0 
+	  IL_006d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPeekTask::get_XmlFile()
+	  IL_0072:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0077:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Tasks.XmlPeekTask::LoadDocument(string)
+	  IL_007c:  stloc.0 
+	  IL_007d:  ldarg.0 
+	  IL_007e:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element::get_Properties()
+	  IL_0083:  ldarg.0 
+	  IL_0084:  call instance string class NAnt.Core.Tasks.XmlPeekTask::get_Property()
+	  IL_0089:  ldarg.0 
+	  IL_008a:  ldarg.0 
+	  IL_008b:  call instance string class NAnt.Core.Tasks.XmlPeekTask::get_XPath()
+	  IL_0090:  ldloc.0 
+	  IL_0091:  ldarg.0 
+	  IL_0092:  call instance int32 class NAnt.Core.Tasks.XmlPeekTask::get_NodeIndex()
+	  IL_0097:  call instance string class NAnt.Core.Tasks.XmlPeekTask::GetNodeContents(string, class [System.Xml]System.Xml.XmlDocument, int32)
+	  IL_009c:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	  IL_00a1:  nop 
+	  IL_00a2:  leave IL_00d9
 
-	IL_005b:  nop 
-	IL_005c:  ldnull 
-	IL_005d:  stloc.s 6
-	IL_005f:  nop 
-	IL_0060:  ldloc.2 
-	IL_0061:  ldc.i4.1 
-	IL_0062:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Reflection.PropertyInfo::GetGetMethod(bool)
-	IL_0067:  stloc.s 5
-	IL_0069:  ldloc.s 5
-	IL_006b:  ldnull 
-	IL_006c:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Inequality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_0071:  brfalse IL_0093
+	} // end .try 0
+	catch class NAnt.Core.BuildException { // 0
+	  IL_00a7:  stloc.1 
+	  IL_00a8:  nop 
+	  IL_00a9:  ldloc.1 
+	  IL_00aa:  throw 
+	} // end handler 0
+	catch class [mscorlib]System.Exception { // 1
+	  IL_00ab:  stloc.2 
+	  IL_00ac:  nop 
+	  IL_00ad:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_00b2:  ldstr "NA1153"
+	  IL_00b7:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_00bc:  ldarg.0 
+	  IL_00bd:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Tasks.XmlPeekTask::get_XmlFile()
+	  IL_00c2:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_00c7:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_00cc:  ldarg.0 
+	  IL_00cd:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_00d2:  ldloc.2 
+	  IL_00d3:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_00d8:  throw 
+	} // end handler 1
+	IL_00d9:  ret 
+    } // end of method XmlPeekTask::ExecuteTask
 
-	IL_0076:  ldloc.s 5
-	IL_0078:  callvirt instance bool class [mscorlib]System.Reflection.MethodBase::get_IsPublic()
-	IL_007d:  brtrue IL_0093
+    // method line 1592
+    .method private hidebysig 
+           instance default class [System.Xml]System.Xml.XmlDocument LoadDocument (string fileName)  cil managed 
+    {
+        // Method begins at RVA 0x1c900
+	// Code size 62 (0x3e)
+	.maxstack 3
+	.locals init (
+		class [System.Xml]System.Xml.XmlDocument	V_0,
+		class [System.Xml]System.Xml.XmlDocument	V_1,
+		class [mscorlib]System.Exception	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	.try { // 0
+	  IL_0003:  nop 
+	  IL_0004:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
+	  IL_0009:  stloc.0 
+	  IL_000a:  ldloc.0 
+	  IL_000b:  ldarg.1 
+	  IL_000c:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(string)
+	  IL_0011:  ldloc.0 
+	  IL_0012:  stloc.1 
+	  IL_0013:  leave IL_003c
 
-	IL_0082:  ldloc.s 5
-	IL_0084:  callvirt instance bool class [mscorlib]System.Reflection.MethodBase::get_IsFamily()
-	IL_0089:  brtrue IL_0093
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0018:  stloc.2 
+	  IL_0019:  nop 
+	  IL_001a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_001f:  ldstr "NA1158"
+	  IL_0024:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0029:  ldarg.1 
+	  IL_002a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_002f:  ldarg.0 
+	  IL_0030:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0035:  ldloc.2 
+	  IL_0036:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_003b:  throw 
+	} // end handler 0
+	IL_003c:  ldloc.1 
+	IL_003d:  ret 
+    } // end of method XmlPeekTask::LoadDocument
 
-	IL_008e:  nop 
-	IL_008f:  ldnull 
-	IL_0090:  stloc.s 5
-	IL_0092:  nop 
-	IL_0093:  ldloc.s 5
-	IL_0095:  ldnull 
-	IL_0096:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_009b:  brfalse IL_00b2
+    // method line 1593
+    .method private hidebysig 
+           instance default string GetNodeContents (string xpath, class [System.Xml]System.Xml.XmlDocument document, int32 nodeIndex)  cil managed 
+    {
+        // Method begins at RVA 0x1c95c
+	// Code size 528 (0x210)
+	.maxstack 8
+	.locals init (
+		string	V_0,
+		object	V_1,
+		int32	V_2,
+		class [System.Xml]System.Xml.XmlNamespaceManager	V_3,
+		class NAnt.Core.Types.XmlNamespace	V_4,
+		class NAnt.Core.Types.XmlNamespaceEnumerator	V_5,
+		class [mscorlib]System.IDisposable	V_6,
+		class [System.Xml]System.Xml.XPath.XPathNavigator	V_7,
+		class [System.Xml]System.Xml.XPath.XPathExpression	V_8,
+		class [mscorlib]System.Exception	V_9,
+		class [System.Xml]System.Xml.XPath.XPathNodeIterator	V_10,
+		class [System.Xml]System.Xml.XmlNode	V_11,
+		class [mscorlib]System.IFormattable	V_12,
+		string	V_13)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldnull 
+	IL_0004:  stloc.1 
+	IL_0005:  ldc.i4.0 
+	IL_0006:  stloc.2 
+	.try { // 1
+	  IL_0007:  nop 
+	  IL_0008:  ldarg.2 
+	  IL_0009:  callvirt instance class [System.Xml]System.Xml.XmlNameTable class [System.Xml]System.Xml.XmlDocument::get_NameTable()
+	  IL_000e:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
+	  IL_0013:  stloc.3 
+	  IL_0014:  nop 
+	  IL_0015:  ldarg.0 
+	  IL_0016:  call instance class NAnt.Core.Types.XmlNamespaceCollection class NAnt.Core.Tasks.XmlPeekTask::get_Namespaces()
+	  IL_001b:  callvirt instance class NAnt.Core.Types.XmlNamespaceEnumerator class NAnt.Core.Types.XmlNamespaceCollection::GetEnumerator()
+	  IL_0020:  stloc.s 5
+	  .try { // 0
+	    IL_0022:  br IL_0060
 
-	IL_00a0:  ldloc.s 6
-	IL_00a2:  ldnull 
-	IL_00a3:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_00a8:  brfalse IL_00b2
+	    IL_0027:  ldloc.s 5
+	    IL_0029:  callvirt instance class NAnt.Core.Types.XmlNamespace class NAnt.Core.Types.XmlNamespaceEnumerator::get_Current()
+	    IL_002e:  stloc.s 4
+	    IL_0030:  nop 
+	    IL_0031:  ldloc.s 4
+	    IL_0033:  callvirt instance bool class NAnt.Core.Types.XmlNamespace::get_IfDefined()
+	    IL_0038:  brfalse IL_005f
 
-	IL_00ad:  br IL_00ed
+	    IL_003d:  ldloc.s 4
+	    IL_003f:  callvirt instance bool class NAnt.Core.Types.XmlNamespace::get_UnlessDefined()
+	    IL_0044:  brtrue IL_005f
 
-	IL_00b2:  ldarg.0 
-	IL_00b3:  ldloc.2 
-	IL_00b4:  callvirt instance bool class NAnt.Core.Element/AttributeConfigurator::InitializeAttribute(class [mscorlib]System.Reflection.PropertyInfo)
-	IL_00b9:  brfalse IL_00c4
-
-	IL_00be:  nop 
-	IL_00bf:  br IL_00ed
-
-	IL_00c4:  ldarg.0 
-	IL_00c5:  ldloc.2 
-	IL_00c6:  callvirt instance bool class NAnt.Core.Element/AttributeConfigurator::InitializeBuildElementCollection(class [mscorlib]System.Reflection.PropertyInfo)
-	IL_00cb:  brfalse IL_00d6
-
-	IL_00d0:  nop 
-	IL_00d1:  br IL_00ed
-
-	IL_00d6:  ldarg.0 
-	IL_00d7:  ldloc.2 
-	IL_00d8:  ldloc.s 5
-	IL_00da:  ldloc.s 6
-	IL_00dc:  callvirt instance bool class NAnt.Core.Element/AttributeConfigurator::InitializeChildElement(class [mscorlib]System.Reflection.PropertyInfo, class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_00e1:  brfalse IL_00ec
-
-	IL_00e6:  nop 
-	IL_00e7:  br IL_00ed
-
-	IL_00ec:  nop 
-	IL_00ed:  ldloc.s 4
-	IL_00ef:  ldc.i4.1 
-	IL_00f0:  add 
-	IL_00f1:  stloc.s 4
-	IL_00f3:  ldloc.s 4
-	IL_00f5:  ldloc.3 
-	IL_00f6:  ldlen 
-	IL_00f7:  conv.i4 
-	IL_00f8:  blt IL_0021
-
-	IL_00fd:  ldarg.0 
-	IL_00fe:  callvirt instance void class NAnt.Core.Element/AttributeConfigurator::InitializeOrderedChildElements()
-	IL_0103:  ldloc.0 
-	IL_0104:  ldtoken NAnt.Core.Target
-	IL_0109:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_010e:  callvirt instance bool class [mscorlib]System.Type::Equals(class [mscorlib]System.Type)
-	IL_0113:  brtrue IL_01d3
+	    IL_0049:  nop 
+	    IL_004a:  ldloc.3 
+	    IL_004b:  ldloc.s 4
+	    IL_004d:  callvirt instance string class NAnt.Core.Types.XmlNamespace::get_Prefix()
+	    IL_0052:  ldloc.s 4
+	    IL_0054:  callvirt instance string class NAnt.Core.Types.XmlNamespace::get_Uri()
+	    IL_0059:  callvirt instance void class [System.Xml]System.Xml.XmlNamespaceManager::AddNamespace(string, string)
+	    IL_005e:  nop 
+	    IL_005f:  nop 
+	    IL_0060:  ldloc.s 5
+	    IL_0062:  callvirt instance bool class NAnt.Core.Types.XmlNamespaceEnumerator::MoveNext()
+	    IL_0067:  brtrue IL_0027
 
-	IL_0118:  ldloc.0 
-	IL_0119:  ldtoken NAnt.Core.Target
-	IL_011e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0123:  callvirt instance bool class [mscorlib]System.Type::IsSubclassOf(class [mscorlib]System.Type)
-	IL_0128:  brtrue IL_01d3
+	    IL_006c:  leave IL_0088
 
-	IL_012d:  nop 
-	IL_012e:  ldarg.0 
-	IL_012f:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedAttributes()
-	IL_0134:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0139:  ldc.i4.0 
-	IL_013a:  ble IL_0177
+	  } // end .try 0
+	  finally  { // 0
+	    IL_0071:  ldloc.s 5
+	    IL_0073:  isinst [mscorlib]System.IDisposable
+	    IL_0078:  dup 
+	    IL_0079:  stloc.s 6
+	    IL_007b:  brfalse IL_0087
 
-	IL_013f:  nop 
-	IL_0140:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0145:  ldstr "NA1027"
-	IL_014a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_014f:  ldarg.0 
-	IL_0150:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedAttributes()
-	IL_0155:  ldc.i4.0 
-	IL_0156:  callvirt instance string class [System]System.Collections.Specialized.StringCollection::get_Item(int32)
-	IL_015b:  ldarg.0 
-	IL_015c:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_0161:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_0166:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_016b:  ldarg.0 
-	IL_016c:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_0171:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0176:  throw 
-	IL_0177:  ldarg.0 
-	IL_0178:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_017d:  callvirt instance bool class NAnt.Core.Element::get_CustomXmlProcessing()
-	IL_0182:  brtrue IL_01d2
+	    IL_0080:  ldloc.s 6
+	    IL_0082:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0087:  endfinally 
+	  } // end handler 0
+	  IL_0088:  ldarg.2 
+	  IL_0089:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XmlNode::CreateNavigator()
+	  IL_008e:  stloc.s 7
+	  IL_0090:  ldloc.s 7
+	  IL_0092:  ldarg.1 
+	  IL_0093:  callvirt instance class [System.Xml]System.Xml.XPath.XPathExpression class [System.Xml]System.Xml.XPath.XPathNavigator::Compile(string)
+	  IL_0098:  stloc.s 8
+	  IL_009a:  ldloc.s 8
+	  IL_009c:  ldloc.3 
+	  IL_009d:  callvirt instance void class [System.Xml]System.Xml.XPath.XPathExpression::SetContext(class [System.Xml]System.Xml.XmlNamespaceManager)
+	  IL_00a2:  ldloc.s 7
+	  IL_00a4:  ldloc.s 8
+	  IL_00a6:  callvirt instance object class [System.Xml]System.Xml.XPath.XPathNavigator::Evaluate(class [System.Xml]System.Xml.XPath.XPathExpression)
+	  IL_00ab:  stloc.1 
+	  IL_00ac:  nop 
+	  IL_00ad:  leave IL_00d8
 
-	IL_0187:  nop 
-	IL_0188:  ldarg.0 
-	IL_0189:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
-	IL_018e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0193:  ldc.i4.0 
-	IL_0194:  ble IL_01d1
+	} // end .try 1
+	catch class [mscorlib]System.Exception { // 1
+	  IL_00b2:  stloc.s 9
+	  IL_00b4:  nop 
+	  IL_00b5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_00ba:  ldstr "NA1155"
+	  IL_00bf:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_00c4:  ldarg.1 
+	  IL_00c5:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_00ca:  ldarg.0 
+	  IL_00cb:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_00d0:  ldloc.s 9
+	  IL_00d2:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_00d7:  throw 
+	} // end handler 1
+	IL_00d8:  ldloc.1 
+	IL_00d9:  brtrue IL_0100
 
-	IL_0199:  nop 
-	IL_019a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_019f:  ldstr "NA1032"
-	IL_01a4:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_01a9:  ldarg.0 
-	IL_01aa:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_01af:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_01b4:  ldarg.0 
-	IL_01b5:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
-	IL_01ba:  ldc.i4.0 
-	IL_01bb:  callvirt instance string class [System]System.Collections.Specialized.StringCollection::get_Item(int32)
-	IL_01c0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_01c5:  ldarg.0 
-	IL_01c6:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_01cb:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_01d0:  throw 
-	IL_01d1:  nop 
-	IL_01d2:  nop 
-	IL_01d3:  ret 
-    } // end of method AttributeConfigurator::Initialize
+	IL_00de:  nop 
+	IL_00df:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00e4:  ldstr "NA1156"
+	IL_00e9:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00ee:  ldarg.1 
+	IL_00ef:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00f4:  ldarg.0 
+	IL_00f5:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_00fa:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_00ff:  throw 
+	IL_0100:  ldc.i4.1 
+	IL_0101:  stloc.2 
+	IL_0102:  ldloc.1 
+	IL_0103:  isinst [System.Xml]System.Xml.XPath.XPathNodeIterator
+	IL_0108:  stloc.s 10
+	IL_010a:  ldloc.s 10
+	IL_010c:  brfalse IL_011b
 
-    // method line 1802
-    .method family virtual hidebysig newslot 
-           instance default bool InitializeAttribute (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
-    {
-        // Method begins at RVA 0x4ff8
-	// Code size 1082 (0x43a)
-	.maxstack 6
-	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0,
-		string	V_1,
-		class [System.Xml]System.Xml.XmlNode	V_2,
-		class NAnt.Core.Attributes.FrameworkConfigurableAttribute	V_3,
-		class NAnt.Core.BuildException	V_4,
-		class NAnt.Core.Attributes.BuildAttributeAttribute	V_5,
-		bool	V_6,
-		class [mscorlib]System.ObsoleteAttribute	V_7,
-		string	V_8,
-		class [mscorlib]System.Type	V_9,
-		object[]	V_10,
-		class NAnt.Core.Attributes.ValidatorAttribute	V_11,
-		object[]	V_12,
-		int32	V_13,
-		class NAnt.Core.ValidationException	V_14,
-		class NAnt.Core.Element/AttributeConfigurator/IAttributeSetter	V_15)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldnull 
-	IL_0004:  stloc.1 
-	IL_0005:  ldnull 
-	IL_0006:  stloc.2 
-	IL_0007:  ldarg.1 
-	IL_0008:  ldtoken NAnt.Core.Attributes.FrameworkConfigurableAttribute
-	IL_000d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0012:  ldc.i4.0 
-	IL_0013:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_0018:  castclass NAnt.Core.Attributes.FrameworkConfigurableAttribute
-	IL_001d:  stloc.3 
-	IL_001e:  ldloc.3 
-	IL_001f:  brfalse IL_0117
+	IL_0111:  nop 
+	IL_0112:  ldloc.s 10
+	IL_0114:  callvirt instance int32 class [System.Xml]System.Xml.XPath.XPathNodeIterator::get_Count()
+	IL_0119:  stloc.2 
+	IL_011a:  nop 
+	IL_011b:  ldarg.0 
+	IL_011c:  ldc.i4 2000
+	IL_0121:  ldstr "Found '{0}' node{1} with the XPath expression '{2}'."
+	IL_0126:  ldc.i4.3 
+	IL_0127:  newarr [mscorlib]System.Object
+	IL_012c:  dup 
+	IL_012d:  ldc.i4.0 
+	IL_012e:  ldloc.2 
+	IL_012f:  box [mscorlib]System.Int32
+	IL_0134:  stelem.ref 
+	IL_0135:  dup 
+	IL_0136:  ldc.i4.1 
+	IL_0137:  ldloc.2 
+	IL_0138:  ldc.i4.1 
+	IL_0139:  ble IL_0148
 
-	IL_0024:  nop 
-	IL_0025:  ldarg.0 
-	IL_0026:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_002b:  ldarg.0 
-	IL_002c:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Element/AttributeConfigurator::get_TargetFramework()
-	IL_0031:  ldloc.3 
-	IL_0032:  callvirt instance string class NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_Name()
-	IL_0037:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::GetAttributeConfigurationNode(class NAnt.Core.FrameworkInfo, string)
-	IL_003c:  stloc.2 
-	IL_003d:  ldloc.2 
-	IL_003e:  brfalse IL_00d7
+	IL_013e:  ldstr "s"
+	IL_0143:  br IL_014d
 
-	IL_0043:  nop 
-	IL_0044:  ldloc.2 
-	IL_0045:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerText()
-	IL_004a:  stloc.1 
-	IL_004b:  ldloc.3 
-	IL_004c:  callvirt instance bool class NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_ExpandProperties()
-	IL_0051:  brfalse IL_00d1
+	IL_0148:  ldstr ""
+	IL_014d:  stelem.ref 
+	IL_014e:  dup 
+	IL_014f:  ldc.i4.2 
+	IL_0150:  ldarg.1 
+	IL_0151:  stelem.ref 
+	IL_0152:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0157:  ldloc.s 10
+	IL_0159:  brfalse IL_01d2
 
-	IL_0056:  ldarg.0 
-	IL_0057:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Element/AttributeConfigurator::get_TargetFramework()
-	IL_005c:  brfalse IL_00d1
+	IL_015e:  nop 
+	IL_015f:  ldarg.3 
+	IL_0160:  ldloc.2 
+	IL_0161:  blt IL_018d
 
-	IL_0061:  nop 
-	.try { // 0
-	  IL_0062:  nop 
-	  IL_0063:  ldarg.0 
-	  IL_0064:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Element/AttributeConfigurator::get_TargetFramework()
-	  IL_0069:  callvirt instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
-	  IL_006e:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	  IL_0073:  ldloc.1 
-	  IL_0074:  ldarg.0 
-	  IL_0075:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	  IL_007a:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
-	  IL_007f:  stloc.1 
-	  IL_0080:  nop 
-	  IL_0081:  leave IL_00d0
+	IL_0166:  nop 
+	IL_0167:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_016c:  ldstr "NA1157"
+	IL_0171:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0176:  ldarg.3 
+	IL_0177:  box [mscorlib]System.Int32
+	IL_017c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0181:  ldarg.0 
+	IL_0182:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0187:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_018c:  throw 
+	IL_018d:  br IL_01c0
 
-	} // end .try 0
-	catch class NAnt.Core.BuildException { // 0
-	  IL_0086:  stloc.s 4
-	  IL_0088:  nop 
-	  IL_0089:  ldloc.3 
-	  IL_008a:  callvirt instance bool class NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_Required()
-	  IL_008f:  brfalse IL_00c8
+	IL_0192:  nop 
+	IL_0193:  ldloc.s 10
+	IL_0195:  callvirt instance int32 class [System.Xml]System.Xml.XPath.XPathNodeIterator::get_CurrentPosition()
+	IL_019a:  ldarg.3 
+	IL_019b:  ldc.i4.1 
+	IL_019c:  add 
+	IL_019d:  bne.un IL_01bf
 
-	  IL_0094:  nop 
-	  IL_0095:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_009a:  ldstr "NA1015"
-	  IL_009f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_00a4:  ldloc.3 
-	  IL_00a5:  callvirt instance string class NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_Name()
-	  IL_00aa:  ldarg.0 
-	  IL_00ab:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	  IL_00b0:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_00b5:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_00ba:  ldarg.0 
-	  IL_00bb:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	  IL_00c0:  ldloc.s 4
-	  IL_00c2:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_00c7:  throw 
-	  IL_00c8:  ldnull 
-	  IL_00c9:  stloc.1 
-	  IL_00ca:  nop 
-	  IL_00cb:  leave IL_00d0
+	IL_01a2:  nop 
+	IL_01a3:  ldloc.s 10
+	IL_01a5:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XPath.XPathNodeIterator::get_Current()
+	IL_01aa:  castclass [System.Xml]System.Xml.IHasXmlNode
+	IL_01af:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.IHasXmlNode::GetNode()
+	IL_01b4:  stloc.s 11
+	IL_01b6:  ldloc.s 11
+	IL_01b8:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerXml()
+	IL_01bd:  stloc.0 
+	IL_01be:  nop 
+	IL_01bf:  nop 
+	IL_01c0:  ldloc.s 10
+	IL_01c2:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNodeIterator::MoveNext()
+	IL_01c7:  brtrue IL_0192
 
-	} // end handler 0
-	IL_00d0:  nop 
-	IL_00d1:  nop 
-	IL_00d2:  br IL_0116
+	IL_01cc:  nop 
+	IL_01cd:  br IL_0205
 
-	IL_00d7:  nop 
-	IL_00d8:  ldloc.3 
-	IL_00d9:  callvirt instance bool class NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_Required()
-	IL_00de:  brfalse IL_0115
+	IL_01d2:  nop 
+	IL_01d3:  ldloc.1 
+	IL_01d4:  isinst [mscorlib]System.IFormattable
+	IL_01d9:  brfalse IL_01fb
 
-	IL_00e3:  nop 
-	IL_00e4:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00e9:  ldstr "NA1015"
-	IL_00ee:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00f3:  ldloc.3 
-	IL_00f4:  callvirt instance string class NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_Name()
-	IL_00f9:  ldarg.0 
-	IL_00fa:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_00ff:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_0104:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0109:  ldarg.0 
-	IL_010a:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_010f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0114:  throw 
-	IL_0115:  nop 
-	IL_0116:  nop 
-	IL_0117:  ldarg.1 
-	IL_0118:  ldtoken NAnt.Core.Attributes.BuildAttributeAttribute
-	IL_011d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0122:  ldc.i4.0 
-	IL_0123:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_0128:  castclass NAnt.Core.Attributes.BuildAttributeAttribute
-	IL_012d:  stloc.s 5
-	IL_012f:  ldloc.s 5
-	IL_0131:  brfalse IL_02ec
+	IL_01de:  nop 
+	IL_01df:  ldloc.1 
+	IL_01e0:  castclass [mscorlib]System.IFormattable
+	IL_01e5:  stloc.s 12
+	IL_01e7:  ldloc.s 12
+	IL_01e9:  ldnull 
+	IL_01ea:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01ef:  callvirt instance string class [mscorlib]System.IFormattable::ToString(string, class [mscorlib]System.IFormatProvider)
+	IL_01f4:  stloc.0 
+	IL_01f5:  nop 
+	IL_01f6:  br IL_0204
 
-	IL_0136:  nop 
-	IL_0137:  ldsfld class [log4net]log4net.ILog NAnt.Core.Element/AttributeConfigurator::logger
-	IL_013c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0141:  ldstr "String_FoundAttribute"
-	IL_0146:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_014b:  ldloc.s 5
-	IL_014d:  callvirt instance string class NAnt.Core.Attributes.BuildAttributeAttribute::get_Name()
-	IL_0152:  ldarg.1 
-	IL_0153:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_0158:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_015d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0162:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
-	IL_0167:  ldarg.0 
-	IL_0168:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_016d:  brfalse IL_018c
+	IL_01fb:  nop 
+	IL_01fc:  ldloc.1 
+	IL_01fd:  callvirt instance string object::ToString()
+	IL_0202:  stloc.0 
+	IL_0203:  nop 
+	IL_0204:  nop 
+	IL_0205:  ldloc.0 
+	IL_0206:  stloc.s 13
+	IL_0208:  br IL_020d
 
-	IL_0172:  nop 
-	IL_0173:  ldarg.0 
-	IL_0174:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_0179:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_017e:  ldloc.s 5
-	IL_0180:  callvirt instance string class NAnt.Core.Attributes.BuildAttributeAttribute::get_Name()
-	IL_0185:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_018a:  stloc.0 
-	IL_018b:  nop 
-	IL_018c:  ldloc.0 
-	IL_018d:  brfalse IL_02aa
+	IL_020d:  ldloc.s 13
+	IL_020f:  ret 
+    } // end of method XmlPeekTask::GetNodeContents
 
-	IL_0192:  nop 
-	IL_0193:  ldarg.0 
-	IL_0194:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedAttributes()
-	IL_0199:  ldloc.0 
-	IL_019a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_019f:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Remove(string)
-	IL_01a4:  ldloc.s 5
-	IL_01a6:  callvirt instance bool class NAnt.Core.Attributes.BuildAttributeAttribute::get_ProcessXml()
-	IL_01ab:  brtrue IL_01e9
+	.property instance class [mscorlib]System.IO.FileInfo XmlFile ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 66 69 6C 65 01 00 54 02 08 52 65 71 75   // ...file..T..Requ
+		69 72 65 64 01                                  ) // ired.
 
-	IL_01b0:  nop 
-	IL_01b1:  ldsfld class [log4net]log4net.ILog NAnt.Core.Element/AttributeConfigurator::logger
-	IL_01b6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01bb:  ldstr "String_SkippingAttribute"
-	IL_01c0:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_01c5:  ldloc.s 5
-	IL_01c7:  callvirt instance string class NAnt.Core.Attributes.BuildAttributeAttribute::get_Name()
-	IL_01cc:  ldarg.1 
-	IL_01cd:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_01d2:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_01d7:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_01dc:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
-	IL_01e1:  ldc.i4.1 
-	IL_01e2:  stloc.s 6
-	IL_01e4:  br IL_0437
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.Tasks.XmlPeekTask::get_XmlFile () 
+		.set instance default void NAnt.Core.Tasks.XmlPeekTask::set_XmlFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance int32 NodeIndex ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 09 6E 6F 64 65 69 6E 64 65 78 01 00 54 02   // ...nodeindex..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
 
-	IL_01e9:  ldloc.0 
-	IL_01ea:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_01ef:  stloc.1 
-	IL_01f0:  ldloc.s 5
-	IL_01f2:  callvirt instance bool class NAnt.Core.Attributes.BuildAttributeAttribute::get_ExpandProperties()
-	IL_01f7:  brfalse IL_0211
+		.custom instance void class NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 FF FF FF 7F 00 00 ) // ............
 
-	IL_01fc:  nop 
-	IL_01fd:  ldarg.0 
-	IL_01fe:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element/AttributeConfigurator::get_Properties()
-	IL_0203:  ldloc.1 
-	IL_0204:  ldarg.0 
-	IL_0205:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_020a:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
-	IL_020f:  stloc.1 
-	IL_0210:  nop 
-	IL_0211:  ldarg.1 
-	IL_0212:  ldtoken [mscorlib]System.ObsoleteAttribute
-	IL_0217:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_021c:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	IL_0221:  castclass [mscorlib]System.ObsoleteAttribute
-	IL_0226:  stloc.s 7
-	IL_0228:  ldloc.s 7
-	IL_022a:  brfalse IL_02a4
+		.get instance default int32 NAnt.Core.Tasks.XmlPeekTask::get_NodeIndex () 
+		.set instance default void NAnt.Core.Tasks.XmlPeekTask::set_NodeIndex (int32 'value') 
+	}
+	.property instance string Property ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
+		52 65 71 75 69 72 65 64 01                      ) // Required.
 
-	IL_022f:  nop 
-	IL_0230:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0235:  ldstr "NA1014"
-	IL_023a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_023f:  ldloc.s 5
-	IL_0241:  callvirt instance string class NAnt.Core.Attributes.BuildAttributeAttribute::get_Name()
-	IL_0246:  ldarg.0 
-	IL_0247:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_024c:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_0251:  ldloc.s 7
-	IL_0253:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
-	IL_0258:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_025d:  stloc.s 8
-	IL_025f:  ldloc.s 7
-	IL_0261:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
-	IL_0266:  brfalse IL_027a
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-	IL_026b:  nop 
-	IL_026c:  ldloc.s 8
-	IL_026e:  ldarg.0 
-	IL_026f:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_0274:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0279:  throw 
-	IL_027a:  nop 
-	IL_027b:  ldarg.0 
-	IL_027c:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_0281:  ldc.i4 4000
-	IL_0286:  ldarg.0 
-	IL_0287:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_028c:  callvirt instance string object::ToString()
-	IL_0291:  ldstr " "
-	IL_0296:  ldloc.s 8
-	IL_0298:  call string string::Concat(string, string, string)
-	IL_029d:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_02a2:  nop 
-	IL_02a3:  nop 
-	IL_02a4:  nop 
-	IL_02a5:  br IL_02eb
+		.get instance default string NAnt.Core.Tasks.XmlPeekTask::get_Property () 
+		.set instance default void NAnt.Core.Tasks.XmlPeekTask::set_Property (string 'value') 
+	}
+	.property instance string XPath ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 05 78 70 61 74 68 01 00 54 02 08 52 65 71   // ...xpath..T..Req
+		75 69 72 65 64 01                               ) // uired.
 
-	IL_02aa:  nop 
-	IL_02ab:  ldloc.s 5
-	IL_02ad:  callvirt instance bool class NAnt.Core.Attributes.BuildAttributeAttribute::get_Required()
-	IL_02b2:  brfalse IL_02ea
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-	IL_02b7:  nop 
-	IL_02b8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_02bd:  ldstr "NA1033"
-	IL_02c2:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_02c7:  ldloc.s 5
-	IL_02c9:  callvirt instance string class NAnt.Core.Attributes.BuildAttributeAttribute::get_Name()
-	IL_02ce:  ldarg.0 
-	IL_02cf:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_02d4:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_02d9:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_02de:  ldarg.0 
-	IL_02df:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_02e4:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_02e9:  throw 
-	IL_02ea:  nop 
-	IL_02eb:  nop 
-	IL_02ec:  ldloc.1 
-	IL_02ed:  brfalse IL_0428
+		.get instance default string NAnt.Core.Tasks.XmlPeekTask::get_XPath () 
+		.set instance default void NAnt.Core.Tasks.XmlPeekTask::set_XPath (string 'value') 
+	}
+	.property instance class NAnt.Core.Types.XmlNamespaceCollection Namespaces ()
+	{
+		.custom instance void class NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
+		01 00 0A 6E 61 6D 65 73 70 61 63 65 73 09 6E 61   // ...namespaces.na
+		6D 65 73 70 61 63 65 00 00                      ) // mespace..
 
-	IL_02f2:  nop 
-	IL_02f3:  ldloc.0 
-	IL_02f4:  brtrue IL_02fd
+		.get instance default class NAnt.Core.Types.XmlNamespaceCollection NAnt.Core.Tasks.XmlPeekTask::get_Namespaces () 
+		.set instance default void NAnt.Core.Tasks.XmlPeekTask::set_Namespaces (class NAnt.Core.Types.XmlNamespaceCollection 'value') 
+	}
+  } // end of class NAnt.Core.Tasks.XmlPeekTask
+}
 
-	IL_02f9:  nop 
-	IL_02fa:  ldloc.2 
-	IL_02fb:  stloc.0 
-	IL_02fc:  nop 
-	IL_02fd:  ldsfld class [log4net]log4net.ILog NAnt.Core.Element/AttributeConfigurator::logger
-	IL_0302:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0307:  ldstr "String_SettingValue"
-	IL_030c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0311:  ldarg.1 
-	IL_0312:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_0317:  ldloc.1 
-	IL_0318:  ldarg.1 
-	IL_0319:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_031e:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_0323:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_0328:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
-	IL_032d:  ldarg.1 
-	IL_032e:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
-	IL_0333:  brfalse IL_0427
+.namespace NAnt.Core
+{
+  .class public auto ansi sealed FrameworkTypes
+  	extends [mscorlib]System.Enum
+  {
+    .custom instance void class [mscorlib]System.FlagsAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	IL_0338:  nop 
-	IL_0339:  ldarg.1 
-	IL_033a:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_033f:  stloc.s 9
-	IL_0341:  ldarg.1 
-	IL_0342:  ldtoken NAnt.Core.Attributes.ValidatorAttribute
-	IL_0347:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_034c:  call class [mscorlib]System.Attribute[] class [mscorlib]System.Attribute::GetCustomAttributes(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	IL_0351:  castclass class NAnt.Core.Attributes.ValidatorAttribute[]
-	IL_0356:  stloc.s 10
-	.try { // 1
-	  IL_0358:  nop 
-	  IL_0359:  nop 
-	  IL_035a:  ldloc.s 10
-	  IL_035c:  stloc.s 12
-	  IL_035e:  ldc.i4.0 
-	  IL_035f:  stloc.s 13
-	  IL_0361:  br IL_03bd
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Core.FrameworkTypes NotInstalled = int32(0x00000001)
+    .field public static literal  valuetype NAnt.Core.FrameworkTypes Installed = int32(0x00000002)
+    .field public static literal  valuetype NAnt.Core.FrameworkTypes InstallStateMask = int32(0x00000003)
+    .custom instance void class [System]System.ComponentModel.EditorBrowsableAttribute::'.ctor'(valuetype [System]System.ComponentModel.EditorBrowsableState) =  (01 00 02 00 00 00 00 00 ) // ........
 
-	  IL_0366:  ldloc.s 12
-	  IL_0368:  ldloc.s 13
-	  IL_036a:  ldelem.ref 
-	  IL_036b:  castclass NAnt.Core.Attributes.ValidatorAttribute
-	  IL_0370:  stloc.s 11
-	  IL_0372:  nop 
-	  IL_0373:  ldsfld class [log4net]log4net.ILog NAnt.Core.Element/AttributeConfigurator::logger
-	  IL_0378:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_037d:  ldstr "String_ValidatingElement"
-	  IL_0382:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0387:  ldloc.s 11
-	  IL_0389:  callvirt instance class [mscorlib]System.Type object::GetType()
-	  IL_038e:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	  IL_0393:  ldarg.0 
-	  IL_0394:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	  IL_0399:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_039e:  ldloc.0 
-	  IL_039f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_03a4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_03a9:  callvirt instance void class [log4net]log4net.ILog::Info(object)
-	  IL_03ae:  ldloc.s 11
-	  IL_03b0:  ldloc.1 
-	  IL_03b1:  callvirt instance void class NAnt.Core.Attributes.ValidatorAttribute::Validate(object)
-	  IL_03b6:  nop 
-	  IL_03b7:  ldloc.s 13
-	  IL_03b9:  ldc.i4.1 
-	  IL_03ba:  add 
-	  IL_03bb:  stloc.s 13
-	  IL_03bd:  ldloc.s 13
-	  IL_03bf:  ldloc.s 12
-	  IL_03c1:  ldlen 
-	  IL_03c2:  conv.i4 
-	  IL_03c3:  blt IL_0366
+    .field public static literal  valuetype NAnt.Core.FrameworkTypes Desktop = int32(0x00000004)
+    .field public static literal  valuetype NAnt.Core.FrameworkTypes Compact = int32(0x00000008)
+    .field public static literal  valuetype NAnt.Core.FrameworkTypes Browser = int32(0x00000010)
+    .field public static literal  valuetype NAnt.Core.FrameworkTypes DeviceMask = int32(0x0000001c)
+    .custom instance void class [System]System.ComponentModel.EditorBrowsableAttribute::'.ctor'(valuetype [System]System.ComponentModel.EditorBrowsableState) =  (01 00 02 00 00 00 00 00 ) // ........
 
-	  IL_03c8:  nop 
-	  IL_03c9:  leave IL_0405
+    .field public static literal  valuetype NAnt.Core.FrameworkTypes Mono = int32(0x00000020)
+    .field public static literal  valuetype NAnt.Core.FrameworkTypes MS = int32(0x00000040)
+    .field public static literal  valuetype NAnt.Core.FrameworkTypes VendorMask = int32(0x00000060)
+    .custom instance void class [System]System.ComponentModel.EditorBrowsableAttribute::'.ctor'(valuetype [System]System.ComponentModel.EditorBrowsableState) =  (01 00 02 00 00 00 00 00 ) // ........
 
-	} // end .try 1
-	catch class NAnt.Core.ValidationException { // 1
-	  IL_03ce:  stloc.s 14
-	  IL_03d0:  nop 
-	  IL_03d1:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_03d6:  ldstr "NA1022"
-	  IL_03db:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_03e0:  ldloc.1 
-	  IL_03e1:  ldloc.0 
-	  IL_03e2:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_03e7:  ldarg.0 
-	  IL_03e8:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	  IL_03ed:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_03f2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_03f7:  ldarg.0 
-	  IL_03f8:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	  IL_03fd:  ldloc.s 14
-	  IL_03ff:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0404:  throw 
-	} // end handler 1
-	IL_0405:  ldarg.0 
-	IL_0406:  ldloc.s 9
-	IL_0408:  call instance class NAnt.Core.Element/AttributeConfigurator/IAttributeSetter class NAnt.Core.Element/AttributeConfigurator::CreateAttributeSetter(class [mscorlib]System.Type)
-	IL_040d:  stloc.s 15
-	IL_040f:  ldloc.s 15
-	IL_0411:  ldloc.0 
-	IL_0412:  ldarg.0 
-	IL_0413:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_0418:  ldarg.1 
-	IL_0419:  ldloc.1 
-	IL_041a:  callvirt instance void class NAnt.Core.Element/AttributeConfigurator/IAttributeSetter::Set(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Element, class [mscorlib]System.Reflection.PropertyInfo, string)
-	IL_041f:  ldc.i4.1 
-	IL_0420:  stloc.s 6
-	IL_0422:  br IL_0437
+    .field public static literal  valuetype NAnt.Core.FrameworkTypes All = int32(0x00000003)
 
-	IL_0427:  nop 
-	IL_0428:  ldloc.s 5
-	IL_042a:  ldnull 
-	IL_042b:  ceq 
-	IL_042d:  ldc.i4.0 
-	IL_042e:  ceq 
-	IL_0430:  stloc.s 6
-	IL_0432:  br IL_0437
+  } // end of class NAnt.Core.FrameworkTypes
+}
 
-	IL_0437:  ldloc.s 6
-	IL_0439:  ret 
-    } // end of method AttributeConfigurator::InitializeAttribute
+.namespace NAnt.Core
+{
+  .class public auto ansi sealed beforefieldinit TypeFactory
+  	extends [mscorlib]System.Object
+  {
+    .field  private static initonly  class [log4net]log4net.ILog logger
+    .field  private static  class NAnt.Core.TaskBuilderCollection _taskBuilders
+    .field  private static  class NAnt.Core.DataTypeBaseBuilderCollection _dataTypeBuilders
+    .field  private static  class NAnt.Core.Filters.FilterBuilderCollection _filterBuilders
+    .field  private static  class [mscorlib]System.Collections.Hashtable _methodInfoCollection
+    .field  private static  class NAnt.Core.Extensibility.PluginScanner _pluginScanner
 
-    // method line 1803
-    .method family virtual hidebysig newslot 
-           instance default bool InitializeBuildElementCollection (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
+    // method line 1594
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x545c
-	// Code size 2340 (0x924)
+        // Method begins at RVA 0x1cb94
+	// Code size 7 (0x7)
 	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method TypeFactory::.ctor
+
+    // method line 1595
+    .method public static hidebysig specialname 
+           default class NAnt.Core.TaskBuilderCollection get_TaskBuilders ()  cil managed 
+    {
+        // Method begins at RVA 0x1cb9c
+	// Code size 14 (0xe)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.Attributes.BuildElementArrayAttribute	V_0,
-		class NAnt.Core.Attributes.BuildElementCollectionAttribute	V_1,
-		bool	V_2,
-		class [mscorlib]System.Type	V_3,
-		class [mscorlib]System.Reflection.MethodInfo	V_4,
-		class [mscorlib]System.Reflection.MethodInfo[]	V_5,
-		int32	V_6,
-		class [mscorlib]System.Reflection.ParameterInfo	V_7,
-		class [System.Xml]System.Xml.XmlNodeList	V_8,
-		class [mscorlib]System.ObsoleteAttribute	V_9,
-		string	V_10,
-		string	V_11,
-		class [mscorlib]System.ObsoleteAttribute	V_12,
-		string	V_13,
-		class [mscorlib]System.Array	V_14,
-		int32	V_15,
-		class [System.Xml]System.Xml.XmlNode	V_16,
-		class [mscorlib]System.Collections.IEnumerator	V_17,
-		class NAnt.Core.Element	V_18,
-		class NAnt.Core.Configuration.ConditionalElement	V_19,
-		class [mscorlib]System.IDisposable	V_20,
-		class [mscorlib]System.Array	V_21,
-		class [mscorlib]System.Reflection.TargetInvocationException	V_22,
-		class [mscorlib]System.Reflection.MethodInfo	V_23,
-		class [mscorlib]System.Reflection.MethodInfo[]	V_24,
-		class [mscorlib]System.Reflection.MethodInfo	V_25,
-		class [mscorlib]System.Reflection.MethodInfo[]	V_26,
-		int32	V_27,
-		class [mscorlib]System.Reflection.ParameterInfo	V_28,
-		object	V_29,
-		object	V_30,
-		int32	V_31,
-		object	V_32)
+		class NAnt.Core.TaskBuilderCollection	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldnull 
-	IL_0004:  stloc.1 
-	IL_0005:  ldarg.1 
-	IL_0006:  ldtoken NAnt.Core.Attributes.BuildElementArrayAttribute
-	IL_000b:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0010:  ldc.i4.0 
-	IL_0011:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_0016:  castclass NAnt.Core.Attributes.BuildElementArrayAttribute
-	IL_001b:  stloc.0 
-	IL_001c:  ldarg.1 
-	IL_001d:  ldtoken NAnt.Core.Attributes.BuildElementCollectionAttribute
-	IL_0022:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0027:  ldc.i4.0 
-	IL_0028:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_002d:  castclass NAnt.Core.Attributes.BuildElementCollectionAttribute
-	IL_0032:  stloc.1 
-	IL_0033:  ldloc.0 
-	IL_0034:  brtrue IL_0047
-
-	IL_0039:  ldloc.1 
-	IL_003a:  brtrue IL_0047
-
-	IL_003f:  nop 
-	IL_0040:  ldc.i4.0 
-	IL_0041:  stloc.2 
-	IL_0042:  br IL_0922
-
-	IL_0047:  ldarg.1 
-	IL_0048:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_004d:  callvirt instance bool class [mscorlib]System.Type::get_IsArray()
-	IL_0052:  brtrue IL_009e
-
-	IL_0057:  ldtoken [mscorlib]System.Collections.ICollection
-	IL_005c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0061:  ldarg.1 
-	IL_0062:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_0067:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_006c:  brtrue IL_009e
-
-	IL_0071:  nop 
-	IL_0072:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0077:  ldstr "NA1031"
-	IL_007c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0081:  ldloc.0 
-	IL_0082:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_0087:  ldarg.0 
-	IL_0088:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
-	IL_008d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0092:  ldarg.0 
-	IL_0093:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_0098:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_009d:  throw 
-	IL_009e:  ldnull 
-	IL_009f:  stloc.3 
-	IL_00a0:  ldloc.0 
-	IL_00a1:  brfalse IL_00b4
-
-	IL_00a6:  nop 
-	IL_00a7:  ldloc.0 
-	IL_00a8:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Attributes.BuildElementArrayAttribute::get_ElementType()
-	IL_00ad:  stloc.3 
-	IL_00ae:  nop 
-	IL_00af:  br IL_00bd
-
-	IL_00b4:  nop 
-	IL_00b5:  ldloc.1 
-	IL_00b6:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Attributes.BuildElementArrayAttribute::get_ElementType()
-	IL_00bb:  stloc.3 
-	IL_00bc:  nop 
-	IL_00bd:  ldarg.1 
-	IL_00be:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_00c3:  callvirt instance bool class [mscorlib]System.Type::get_IsArray()
-	IL_00c8:  brfalse IL_0126
-
-	IL_00cd:  nop 
-	IL_00ce:  ldarg.1 
-	IL_00cf:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
-	IL_00d4:  brtrue IL_0106
-
-	IL_00d9:  nop 
-	IL_00da:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00df:  ldstr "NA1016"
-	IL_00e4:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00e9:  ldloc.0 
-	IL_00ea:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_00ef:  ldarg.0 
-	IL_00f0:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
-	IL_00f5:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_00fa:  ldarg.0 
-	IL_00fb:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_0100:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0105:  throw 
-	IL_0106:  ldloc.3 
-	IL_0107:  ldnull 
-	IL_0108:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_010d:  brfalse IL_0120
-
-	IL_0112:  nop 
-	IL_0113:  ldarg.1 
-	IL_0114:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_0119:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Type::GetElementType()
-	IL_011e:  stloc.3 
-	IL_011f:  nop 
-	IL_0120:  nop 
-	IL_0121:  br IL_01de
-
-	IL_0126:  nop 
-	IL_0127:  ldarg.1 
-	IL_0128:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanRead()
-	IL_012d:  brtrue IL_015f
+	IL_0001:  ldsfld class NAnt.Core.TaskBuilderCollection NAnt.Core.TypeFactory::_taskBuilders
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0132:  nop 
-	IL_0133:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0138:  ldstr "NA1019"
-	IL_013d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0142:  ldloc.0 
-	IL_0143:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_0148:  ldarg.0 
-	IL_0149:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
-	IL_014e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0153:  ldarg.0 
-	IL_0154:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_0159:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_015e:  throw 
-	IL_015f:  ldloc.3 
-	IL_0160:  ldnull 
-	IL_0161:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0166:  brfalse IL_01dd
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method TypeFactory::get_TaskBuilders
 
-	IL_016b:  nop 
-	IL_016c:  nop 
-	IL_016d:  ldarg.1 
-	IL_016e:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_0173:  ldc.i4.s 0x14
-	IL_0175:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_017a:  stloc.s 5
-	IL_017c:  ldc.i4.0 
-	IL_017d:  stloc.s 6
-	IL_017f:  br IL_01d1
+    // method line 1596
+    .method public static hidebysig specialname 
+           default class NAnt.Core.DataTypeBaseBuilderCollection get_DataTypeBuilders ()  cil managed 
+    {
+        // Method begins at RVA 0x1cbb8
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.DataTypeBaseBuilderCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldsfld class NAnt.Core.DataTypeBaseBuilderCollection NAnt.Core.TypeFactory::_dataTypeBuilders
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0184:  ldloc.s 5
-	IL_0186:  ldloc.s 6
-	IL_0188:  ldelem.ref 
-	IL_0189:  stloc.s 4
-	IL_018b:  nop 
-	IL_018c:  ldloc.s 4
-	IL_018e:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_0193:  ldstr "Add"
-	IL_0198:  call bool string::op_Equality(string, string)
-	IL_019d:  brfalse IL_01ca
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method TypeFactory::get_DataTypeBuilders
 
-	IL_01a2:  ldloc.s 4
-	IL_01a4:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_01a9:  ldlen 
-	IL_01aa:  conv.i4 
-	IL_01ab:  ldc.i4.1 
-	IL_01ac:  bne.un IL_01ca
+    // method line 1597
+    .method public static hidebysig specialname 
+           default class NAnt.Core.Filters.FilterBuilderCollection get_FilterBuilders ()  cil managed 
+    {
+        // Method begins at RVA 0x1cbd4
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Filters.FilterBuilderCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldsfld class NAnt.Core.Filters.FilterBuilderCollection NAnt.Core.TypeFactory::_filterBuilders
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_01b1:  nop 
-	IL_01b2:  ldloc.s 4
-	IL_01b4:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_01b9:  ldc.i4.0 
-	IL_01ba:  ldelem.ref 
-	IL_01bb:  stloc.s 7
-	IL_01bd:  ldloc.s 7
-	IL_01bf:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	IL_01c4:  stloc.3 
-	IL_01c5:  br IL_01dc
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method TypeFactory::get_FilterBuilders
 
-	IL_01ca:  nop 
-	IL_01cb:  ldloc.s 6
-	IL_01cd:  ldc.i4.1 
-	IL_01ce:  add 
-	IL_01cf:  stloc.s 6
-	IL_01d1:  ldloc.s 6
-	IL_01d3:  ldloc.s 5
-	IL_01d5:  ldlen 
-	IL_01d6:  conv.i4 
-	IL_01d7:  blt IL_0184
+    // method line 1598
+    .method assembly static hidebysig specialname 
+           default class NAnt.Core.Extensibility.PluginScanner get_PluginScanner ()  cil managed 
+    {
+        // Method begins at RVA 0x1cbf0
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Extensibility.PluginScanner	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldsfld class NAnt.Core.Extensibility.PluginScanner NAnt.Core.TypeFactory::_pluginScanner
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_01dc:  nop 
-	IL_01dd:  nop 
-	IL_01de:  ldloc.3 
-	IL_01df:  ldnull 
-	IL_01e0:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_01e5:  brtrue IL_01ff
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method TypeFactory::get_PluginScanner
 
-	IL_01ea:  ldtoken NAnt.Core.Element
-	IL_01ef:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_01f4:  ldloc.3 
-	IL_01f5:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_01fa:  brtrue IL_0231
+    // method line 1599
+    .method public static hidebysig 
+           default bool ScanAssembly (string assemblyFile, class NAnt.Core.Task task)  cil managed 
+    {
+        // Method begins at RVA 0x1cc0c
+        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
+	// Code size 23 (0x17)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Reflection.Assembly	V_0,
+		bool	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFrom(string)
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  call bool class NAnt.Core.TypeFactory::ScanAssembly(class [mscorlib]System.Reflection.Assembly, class NAnt.Core.Task)
+	IL_000f:  stloc.1 
+	IL_0010:  br IL_0015
 
-	IL_01ff:  nop 
-	IL_0200:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0205:  ldstr "NA1140"
-	IL_020a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_020f:  ldarg.1 
-	IL_0210:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_0215:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_021a:  ldarg.1 
-	IL_021b:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_0220:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0225:  ldarg.0 
-	IL_0226:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_022b:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0230:  throw 
-	IL_0231:  ldnull 
-	IL_0232:  stloc.s 8
-	IL_0234:  ldloc.1 
-	IL_0235:  brfalse IL_0448
+	IL_0015:  ldloc.1 
+	IL_0016:  ret 
+    } // end of method TypeFactory::ScanAssembly
 
-	IL_023a:  nop 
-	IL_023b:  ldarg.0 
-	IL_023c:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_0241:  ldstr "nant:"
-	IL_0246:  ldloc.1 
-	IL_0247:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_024c:  call string string::Concat(string, string)
-	IL_0251:  ldarg.0 
-	IL_0252:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
-	IL_0257:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_025c:  stloc.s 8
-	IL_025e:  ldloc.s 8
-	IL_0260:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_0265:  brtrue IL_02a7
+    // method line 1600
+    .method public static hidebysig 
+           default bool ScanAssembly (class [mscorlib]System.Reflection.Assembly 'assembly', class NAnt.Core.Task task)  cil managed 
+    {
+        // Method begins at RVA 0x1cc30
+        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
+	// Code size 563 (0x233)
+	.maxstack 7
+	.locals init (
+		class [mscorlib]System.Type	V_0,
+		class [mscorlib]System.Type[]	V_1,
+		int32	V_2,
+		class [mscorlib]System.Reflection.MethodInfo	V_3,
+		class [mscorlib]System.Reflection.MethodInfo[]	V_4,
+		int32	V_5,
+		bool	V_6,
+		class NAnt.Core.Extensibility.ExtensionAssembly	V_7,
+		class [mscorlib]System.Type[]	V_8,
+		class [mscorlib]System.Reflection.ReflectionTypeLoadException	V_9,
+		class [mscorlib]System.Type	V_10,
+		class [mscorlib]System.Type[]	V_11,
+		int32	V_12,
+		bool	V_13,
+		class [mscorlib]System.Reflection.AssemblyName	V_14,
+		class [mscorlib]System.Reflection.AssemblyName	V_15,
+		class [mscorlib]System.Reflection.AssemblyName[]	V_16,
+		int32	V_17,
+		bool	V_18)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldc.i4 2000
+	IL_0007:  ldstr "Scanning assembly \"{0}\" for extensions."
+	IL_000c:  ldc.i4.1 
+	IL_000d:  newarr [mscorlib]System.Object
+	IL_0012:  dup 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  ldarg.0 
+	IL_0015:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	IL_001a:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	IL_001f:  stelem.ref 
+	IL_0020:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0025:  nop 
+	IL_0026:  ldarg.0 
+	IL_0027:  callvirt instance class [mscorlib]System.Type[] class [mscorlib]System.Reflection.Assembly::GetExportedTypes()
+	IL_002c:  stloc.1 
+	IL_002d:  ldc.i4.0 
+	IL_002e:  stloc.2 
+	IL_002f:  br IL_0094
 
-	IL_026a:  ldloc.1 
-	IL_026b:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_Required()
-	IL_0270:  brfalse IL_02a7
+	IL_0034:  ldloc.1 
+	IL_0035:  ldloc.2 
+	IL_0036:  ldelem.ref 
+	IL_0037:  stloc.0 
+	IL_0038:  nop 
+	IL_0039:  nop 
+	IL_003a:  ldloc.0 
+	IL_003b:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods()
+	IL_0040:  stloc.s 4
+	IL_0042:  ldc.i4.0 
+	IL_0043:  stloc.s 5
+	IL_0045:  br IL_0084
 
-	IL_0275:  nop 
-	IL_0276:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_027b:  ldstr "NA1021"
-	IL_0280:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0285:  ldloc.1 
-	IL_0286:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_028b:  ldarg.0 
-	IL_028c:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_0291:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_0296:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_029b:  ldarg.0 
-	IL_029c:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_02a1:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_02a6:  throw 
-	IL_02a7:  ldloc.s 8
-	IL_02a9:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_02ae:  ldc.i4.1 
-	IL_02af:  bne.un IL_0408
+	IL_004a:  ldloc.s 4
+	IL_004c:  ldloc.s 5
+	IL_004e:  ldelem.ref 
+	IL_004f:  stloc.3 
+	IL_0050:  nop 
+	IL_0051:  ldloc.3 
+	IL_0052:  callvirt instance bool class [mscorlib]System.Reflection.MethodBase::get_IsStatic()
+	IL_0057:  brfalse IL_007d
 
-	IL_02b4:  nop 
-	IL_02b5:  ldarg.1 
-	IL_02b6:  ldtoken [mscorlib]System.ObsoleteAttribute
-	IL_02bb:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_02c0:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	IL_02c5:  castclass [mscorlib]System.ObsoleteAttribute
-	IL_02ca:  stloc.s 9
-	IL_02cc:  ldloc.s 9
-	IL_02ce:  brfalse IL_0347
+	IL_005c:  nop 
+	IL_005d:  ldarg.1 
+	IL_005e:  ldc.i4 2000
+	IL_0063:  ldstr "Found method {0}."
+	IL_0068:  ldc.i4.1 
+	IL_0069:  newarr [mscorlib]System.Object
+	IL_006e:  dup 
+	IL_006f:  ldc.i4.0 
+	IL_0070:  ldloc.3 
+	IL_0071:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_0076:  stelem.ref 
+	IL_0077:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_007c:  nop 
+	IL_007d:  nop 
+	IL_007e:  ldloc.s 5
+	IL_0080:  ldc.i4.1 
+	IL_0081:  add 
+	IL_0082:  stloc.s 5
+	IL_0084:  ldloc.s 5
+	IL_0086:  ldloc.s 4
+	IL_0088:  ldlen 
+	IL_0089:  conv.i4 
+	IL_008a:  blt IL_004a
 
-	IL_02d3:  nop 
-	IL_02d4:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_02d9:  ldstr "NA1034"
-	IL_02de:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_02e3:  ldloc.1 
-	IL_02e4:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_02e9:  ldarg.0 
-	IL_02ea:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_02ef:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_02f4:  ldloc.s 9
-	IL_02f6:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
-	IL_02fb:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_0300:  stloc.s 10
-	IL_0302:  ldloc.s 9
-	IL_0304:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
-	IL_0309:  brfalse IL_031d
+	IL_008f:  nop 
+	IL_0090:  ldloc.2 
+	IL_0091:  ldc.i4.1 
+	IL_0092:  add 
+	IL_0093:  stloc.2 
+	IL_0094:  ldloc.2 
+	IL_0095:  ldloc.1 
+	IL_0096:  ldlen 
+	IL_0097:  conv.i4 
+	IL_0098:  blt IL_0034
 
-	IL_030e:  nop 
-	IL_030f:  ldloc.s 10
-	IL_0311:  ldarg.0 
-	IL_0312:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_0317:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_031c:  throw 
-	IL_031d:  nop 
-	IL_031e:  ldarg.0 
-	IL_031f:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_0324:  ldc.i4 4000
-	IL_0329:  ldarg.0 
-	IL_032a:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_032f:  callvirt instance string object::ToString()
-	IL_0334:  ldstr " "
-	IL_0339:  ldloc.s 10
-	IL_033b:  call string string::Concat(string, string, string)
-	IL_0340:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_0345:  nop 
-	IL_0346:  nop 
-	IL_0347:  ldarg.0 
-	IL_0348:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
-	IL_034d:  ldloc.s 8
-	IL_034f:  ldc.i4.0 
-	IL_0350:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNodeList::get_ItemOf(int32)
-	IL_0355:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_035a:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Remove(string)
-	IL_035f:  ldloc.1 
-	IL_0360:  callvirt instance string class NAnt.Core.Attributes.BuildElementCollectionAttribute::get_ChildElementName()
-	IL_0365:  stloc.s 11
-	IL_0367:  ldloc.s 11
-	IL_0369:  brtrue IL_03a1
+	IL_009d:  ldc.i4.0 
+	IL_009e:  stloc.s 6
+	IL_00a0:  ldarg.0 
+	IL_00a1:  newobj instance void class NAnt.Core.Extensibility.ExtensionAssembly::'.ctor'(class [mscorlib]System.Reflection.Assembly)
+	IL_00a6:  stloc.s 7
+	.try { // 0
+	  IL_00a8:  nop 
+	  IL_00a9:  ldarg.0 
+	  IL_00aa:  callvirt instance class [mscorlib]System.Type[] class [mscorlib]System.Reflection.Assembly::GetTypes()
+	  IL_00af:  stloc.s 8
+	  IL_00b1:  nop 
+	  IL_00b2:  leave IL_00e2
 
-	IL_036e:  nop 
-	IL_036f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0374:  ldstr "NA1026"
-	IL_0379:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_037e:  ldloc.3 
-	IL_037f:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0384:  ldloc.1 
-	IL_0385:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_038a:  ldarg.0 
-	IL_038b:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
-	IL_0390:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_0395:  ldarg.0 
-	IL_0396:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_039b:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_03a0:  throw 
-	IL_03a1:  ldloc.s 8
-	IL_03a3:  ldc.i4.0 
-	IL_03a4:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNodeList::get_ItemOf(int32)
-	IL_03a9:  ldstr "nant:"
-	IL_03ae:  ldloc.s 11
-	IL_03b0:  call string string::Concat(string, string)
-	IL_03b5:  ldarg.0 
-	IL_03b6:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
-	IL_03bb:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_03c0:  stloc.s 8
-	IL_03c2:  ldloc.s 8
-	IL_03c4:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_03c9:  brtrue IL_0402
+	} // end .try 0
+	catch class [mscorlib]System.Reflection.ReflectionTypeLoadException { // 0
+	  IL_00b7:  stloc.s 9
+	  IL_00b9:  nop 
+	  IL_00ba:  ldloc.s 9
+	  IL_00bc:  callvirt instance class [mscorlib]System.Exception[] class [mscorlib]System.Reflection.ReflectionTypeLoadException::get_LoaderExceptions()
+	  IL_00c1:  brfalse IL_00e0
 
-	IL_03ce:  ldloc.1 
-	IL_03cf:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_Required()
-	IL_03d4:  brfalse IL_0402
+	  IL_00c6:  ldloc.s 9
+	  IL_00c8:  callvirt instance class [mscorlib]System.Exception[] class [mscorlib]System.Reflection.ReflectionTypeLoadException::get_LoaderExceptions()
+	  IL_00cd:  ldlen 
+	  IL_00ce:  conv.i4 
+	  IL_00cf:  ldc.i4.0 
+	  IL_00d0:  ble IL_00e0
 
-	IL_03d9:  nop 
-	IL_03da:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_03df:  ldstr "NA1021"
-	IL_03e4:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_03e9:  ldloc.s 11
-	IL_03eb:  ldloc.1 
-	IL_03ec:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_03f1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_03f6:  ldarg.0 
-	IL_03f7:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_03fc:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0401:  throw 
-	IL_0402:  nop 
-	IL_0403:  br IL_0442
+	  IL_00d5:  nop 
+	  IL_00d6:  ldloc.s 9
+	  IL_00d8:  callvirt instance class [mscorlib]System.Exception[] class [mscorlib]System.Reflection.ReflectionTypeLoadException::get_LoaderExceptions()
+	  IL_00dd:  ldc.i4.0 
+	  IL_00de:  ldelem.ref 
+	  IL_00df:  throw 
+	  IL_00e0:  rethrow 
+	} // end handler 0
+	IL_00e2:  nop 
+	IL_00e3:  ldloc.s 8
+	IL_00e5:  stloc.s 11
+	IL_00e7:  ldc.i4.0 
+	IL_00e8:  stloc.s 12
+	IL_00ea:  br IL_016f
 
-	IL_0408:  ldloc.s 8
-	IL_040a:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_040f:  ldc.i4.1 
-	IL_0410:  ble IL_0442
+	IL_00ef:  ldloc.s 11
+	IL_00f1:  ldloc.s 12
+	IL_00f3:  ldelem.ref 
+	IL_00f4:  stloc.s 10
+	IL_00f6:  nop 
+	IL_00f7:  ldloc.s 7
+	IL_00f9:  ldloc.s 10
+	IL_00fb:  ldarg.1 
+	IL_00fc:  call bool class NAnt.Core.TypeFactory::ScanTypeForTasks(class NAnt.Core.Extensibility.ExtensionAssembly, class [mscorlib]System.Type, class NAnt.Core.Task)
+	IL_0101:  stloc.s 13
+	IL_0103:  ldloc.s 13
+	IL_0105:  brtrue IL_0118
 
-	IL_0415:  nop 
-	IL_0416:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_041b:  ldstr "NA1030"
-	IL_0420:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0425:  ldloc.1 
-	IL_0426:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_042b:  ldarg.0 
-	IL_042c:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
-	IL_0431:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0436:  ldarg.0 
-	IL_0437:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_043c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0441:  throw 
-	IL_0442:  nop 
-	IL_0443:  br IL_0568
+	IL_010a:  nop 
+	IL_010b:  ldloc.s 7
+	IL_010d:  ldloc.s 10
+	IL_010f:  ldarg.1 
+	IL_0110:  call bool class NAnt.Core.TypeFactory::ScanTypeForDataTypes(class NAnt.Core.Extensibility.ExtensionAssembly, class [mscorlib]System.Type, class NAnt.Core.Task)
+	IL_0115:  stloc.s 13
+	IL_0117:  nop 
+	IL_0118:  ldloc.s 13
+	IL_011a:  brtrue IL_012b
 
-	IL_0448:  nop 
-	IL_0449:  ldarg.0 
-	IL_044a:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_044f:  ldstr "nant:"
-	IL_0454:  ldloc.0 
-	IL_0455:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_045a:  call string string::Concat(string, string)
-	IL_045f:  ldarg.0 
-	IL_0460:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
-	IL_0465:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_046a:  stloc.s 8
-	IL_046c:  ldloc.s 8
-	IL_046e:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_0473:  ldc.i4.0 
-	IL_0474:  ble IL_052a
+	IL_011f:  nop 
+	IL_0120:  ldloc.s 10
+	IL_0122:  ldarg.1 
+	IL_0123:  call bool class NAnt.Core.TypeFactory::ScanTypeForFunctions(class [mscorlib]System.Type, class NAnt.Core.Task)
+	IL_0128:  stloc.s 13
+	IL_012a:  nop 
+	IL_012b:  ldloc.s 13
+	IL_012d:  brtrue IL_0140
 
-	IL_0479:  nop 
-	IL_047a:  ldarg.1 
-	IL_047b:  ldtoken [mscorlib]System.ObsoleteAttribute
-	IL_0480:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0485:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	IL_048a:  castclass [mscorlib]System.ObsoleteAttribute
-	IL_048f:  stloc.s 12
-	IL_0491:  ldloc.s 12
-	IL_0493:  brfalse IL_050c
+	IL_0132:  nop 
+	IL_0133:  ldloc.s 7
+	IL_0135:  ldloc.s 10
+	IL_0137:  ldarg.1 
+	IL_0138:  call bool class NAnt.Core.TypeFactory::ScanTypeForFilters(class NAnt.Core.Extensibility.ExtensionAssembly, class [mscorlib]System.Type, class NAnt.Core.Task)
+	IL_013d:  stloc.s 13
+	IL_013f:  nop 
+	IL_0140:  ldloc.s 13
+	IL_0142:  brtrue IL_015a
 
-	IL_0498:  nop 
-	IL_0499:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_049e:  ldstr "NA1034"
-	IL_04a3:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_04a8:  ldloc.0 
-	IL_04a9:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_04ae:  ldarg.0 
-	IL_04af:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_04b4:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_04b9:  ldloc.s 12
-	IL_04bb:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
-	IL_04c0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_04c5:  stloc.s 13
-	IL_04c7:  ldloc.s 12
-	IL_04c9:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
-	IL_04ce:  brfalse IL_04e2
+	IL_0147:  nop 
+	IL_0148:  ldsfld class NAnt.Core.Extensibility.PluginScanner NAnt.Core.TypeFactory::_pluginScanner
+	IL_014d:  ldloc.s 7
+	IL_014f:  ldloc.s 10
+	IL_0151:  ldarg.1 
+	IL_0152:  callvirt instance bool class NAnt.Core.Extensibility.PluginScanner::ScanTypeForPlugins(class NAnt.Core.Extensibility.ExtensionAssembly, class [mscorlib]System.Type, class NAnt.Core.Task)
+	IL_0157:  stloc.s 13
+	IL_0159:  nop 
+	IL_015a:  ldloc.s 6
+	IL_015c:  brtrue IL_0165
 
-	IL_04d3:  nop 
-	IL_04d4:  ldloc.s 13
-	IL_04d6:  ldarg.0 
-	IL_04d7:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_04dc:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_04e1:  throw 
-	IL_04e2:  nop 
-	IL_04e3:  ldarg.0 
-	IL_04e4:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_04e9:  ldc.i4 4000
-	IL_04ee:  ldarg.0 
-	IL_04ef:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_04f4:  callvirt instance string object::ToString()
-	IL_04f9:  ldstr " "
-	IL_04fe:  ldloc.s 13
-	IL_0500:  call string string::Concat(string, string, string)
-	IL_0505:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_050a:  nop 
-	IL_050b:  nop 
-	IL_050c:  ldarg.0 
-	IL_050d:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
-	IL_0512:  ldloc.s 8
-	IL_0514:  ldc.i4.0 
-	IL_0515:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNodeList::get_ItemOf(int32)
-	IL_051a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_051f:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Remove(string)
-	IL_0524:  nop 
-	IL_0525:  br IL_0567
+	IL_0161:  ldloc.s 13
+	IL_0163:  br.s IL_0166
 
-	IL_052a:  ldloc.0 
-	IL_052b:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_Required()
-	IL_0530:  brfalse IL_0567
+	IL_0165:  ldc.i4.1 
+	IL_0166:  stloc.s 6
+	IL_0168:  nop 
+	IL_0169:  ldloc.s 12
+	IL_016b:  ldc.i4.1 
+	IL_016c:  add 
+	IL_016d:  stloc.s 12
+	IL_016f:  ldloc.s 12
+	IL_0171:  ldloc.s 11
+	IL_0173:  ldlen 
+	IL_0174:  conv.i4 
+	IL_0175:  blt IL_00ef
 
-	IL_0535:  nop 
-	IL_0536:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_053b:  ldstr "NA1035"
-	IL_0540:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0545:  ldloc.0 
-	IL_0546:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_054b:  ldarg.0 
-	IL_054c:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_0551:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_0556:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_055b:  ldarg.0 
-	IL_055c:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_0561:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0566:  throw 
-	IL_0567:  nop 
-	IL_0568:  ldloc.0 
-	IL_0569:  brfalse IL_0588
+	IL_017a:  ldloc.s 6
+	IL_017c:  brtrue IL_0227
 
-	IL_056e:  nop 
-	IL_056f:  ldloc.0 
-	IL_0570:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_ProcessXml()
-	IL_0575:  brtrue IL_0582
+	IL_0181:  nop 
+	IL_0182:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetExecutingAssembly()
+	IL_0187:  ldc.i4.0 
+	IL_0188:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName(bool)
+	IL_018d:  stloc.s 14
+	IL_018f:  nop 
+	IL_0190:  ldarg.0 
+	IL_0191:  callvirt instance class [mscorlib]System.Reflection.AssemblyName[] class [mscorlib]System.Reflection.Assembly::GetReferencedAssemblies()
+	IL_0196:  stloc.s 16
+	IL_0198:  ldc.i4.0 
+	IL_0199:  stloc.s 17
+	IL_019b:  br IL_021b
 
-	IL_057a:  nop 
-	IL_057b:  ldc.i4.1 
-	IL_057c:  stloc.2 
-	IL_057d:  br IL_0922
+	IL_01a0:  ldloc.s 16
+	IL_01a2:  ldloc.s 17
+	IL_01a4:  ldelem.ref 
+	IL_01a5:  stloc.s 15
+	IL_01a7:  nop 
+	IL_01a8:  ldloc.s 15
+	IL_01aa:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	IL_01af:  ldloc.s 14
+	IL_01b1:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	IL_01b6:  call bool string::op_Equality(string, string)
+	IL_01bb:  brfalse IL_0214
 
-	IL_0582:  nop 
-	IL_0583:  br IL_059b
+	IL_01c0:  nop 
+	IL_01c1:  ldloc.s 15
+	IL_01c3:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
+	IL_01c8:  ldloc.s 14
+	IL_01ca:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
+	IL_01cf:  call bool class [mscorlib]System.Version::op_Inequality(class [mscorlib]System.Version, class [mscorlib]System.Version)
+	IL_01d4:  brfalse IL_0213
 
-	IL_0588:  ldloc.1 
-	IL_0589:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_ProcessXml()
-	IL_058e:  brtrue IL_059b
+	IL_01d9:  nop 
+	IL_01da:  ldarg.1 
+	IL_01db:  ldc.i4 4000
+	IL_01e0:  ldstr "Assembly \"{0}\" is built using version {1} of NAnt. If any problems arise, then try using a version that is built for NAnt version {2}."
+	IL_01e5:  ldc.i4.3 
+	IL_01e6:  newarr [mscorlib]System.Object
+	IL_01eb:  dup 
+	IL_01ec:  ldc.i4.0 
+	IL_01ed:  ldarg.0 
+	IL_01ee:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	IL_01f3:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	IL_01f8:  stelem.ref 
+	IL_01f9:  dup 
+	IL_01fa:  ldc.i4.1 
+	IL_01fb:  ldloc.s 15
+	IL_01fd:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
+	IL_0202:  stelem.ref 
+	IL_0203:  dup 
+	IL_0204:  ldc.i4.2 
+	IL_0205:  ldloc.s 14
+	IL_0207:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
+	IL_020c:  stelem.ref 
+	IL_020d:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0212:  nop 
+	IL_0213:  nop 
+	IL_0214:  nop 
+	IL_0215:  ldloc.s 17
+	IL_0217:  ldc.i4.1 
+	IL_0218:  add 
+	IL_0219:  stloc.s 17
+	IL_021b:  ldloc.s 17
+	IL_021d:  ldloc.s 16
+	IL_021f:  ldlen 
+	IL_0220:  conv.i4 
+	IL_0221:  blt IL_01a0
 
-	IL_0593:  nop 
-	IL_0594:  ldc.i4.1 
-	IL_0595:  stloc.2 
-	IL_0596:  br IL_0922
+	IL_0226:  nop 
+	IL_0227:  ldloc.s 6
+	IL_0229:  stloc.s 18
+	IL_022b:  br IL_0230
 
-	IL_059b:  ldloc.3 
-	IL_059c:  ldloc.s 8
-	IL_059e:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_05a3:  call class [mscorlib]System.Array class [mscorlib]System.Array::CreateInstance(class [mscorlib]System.Type, int32)
-	IL_05a8:  stloc.s 14
-	IL_05aa:  ldc.i4.0 
-	IL_05ab:  stloc.s 15
-	IL_05ad:  nop 
-	IL_05ae:  ldloc.s 8
-	IL_05b0:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_05b5:  stloc.s 17
-	.try { // 0
-	  IL_05b7:  br IL_063e
+	IL_0230:  ldloc.s 18
+	IL_0232:  ret 
+    } // end of method TypeFactory::ScanAssembly
 
-	  IL_05bc:  ldloc.s 17
-	  IL_05be:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_05c3:  castclass [System.Xml]System.Xml.XmlNode
-	  IL_05c8:  stloc.s 16
-	  IL_05ca:  nop 
-	  IL_05cb:  ldloc.s 16
-	  IL_05cd:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
-	  IL_05d2:  ldc.i4.1 
-	  IL_05d3:  bne.un IL_05f9
+    // method line 1601
+    .method public static hidebysig 
+           default void ScanDir (string path, class NAnt.Core.Task task, bool failOnError)  cil managed 
+    {
+        // Method begins at RVA 0x1ce80
+        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
+	// Code size 256 (0x100)
+	.maxstack 7
+	.locals init (
+		class NAnt.Core.DirectoryScanner	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [mscorlib]System.Exception	V_3,
+		string	V_4,
+		class [mscorlib]System.IDisposable	V_5)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call bool string::IsNullOrEmpty(string)
+	IL_0007:  brfalse IL_0012
 
-	  IL_05d8:  ldloc.s 16
-	  IL_05da:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	  IL_05df:  ldarg.0 
-	  IL_05e0:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
-	  IL_05e5:  ldstr "nant"
-	  IL_05ea:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
-	  IL_05ef:  callvirt instance bool string::Equals(string)
-	  IL_05f4:  brtrue IL_05ff
+	IL_000c:  nop 
+	IL_000d:  br IL_00ff
 
-	  IL_05f9:  nop 
-	  IL_05fa:  leave IL_063e
+	IL_0012:  ldarg.1 
+	IL_0013:  ldc.i4 3000
+	IL_0018:  ldstr "Scanning directory \"{0}\" for extension assemblies."
+	IL_001d:  ldc.i4.1 
+	IL_001e:  newarr [mscorlib]System.Object
+	IL_0023:  dup 
+	IL_0024:  ldc.i4.0 
+	IL_0025:  ldarg.0 
+	IL_0026:  stelem.ref 
+	IL_0027:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_002c:  newobj instance void class NAnt.Core.DirectoryScanner::'.ctor'()
+	IL_0031:  stloc.0 
+	IL_0032:  ldloc.0 
+	IL_0033:  ldarg.0 
+	IL_0034:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0039:  callvirt instance void class NAnt.Core.DirectoryScanner::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_003e:  ldloc.0 
+	IL_003f:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_Includes()
+	IL_0044:  ldstr "*.dll"
+	IL_0049:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_004e:  pop 
+	IL_004f:  nop 
+	IL_0050:  ldloc.0 
+	IL_0051:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_FileNames()
+	IL_0056:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_005b:  stloc.2 
+	.try { // 1
+	  IL_005c:  br IL_00d9
 
-	  IL_05ff:  ldarg.0 
-	  IL_0600:  ldloc.s 16
-	  IL_0602:  ldloc.3 
-	  IL_0603:  callvirt instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::InitializeBuildElement(class [System.Xml]System.Xml.XmlNode, class [mscorlib]System.Type)
-	  IL_0608:  stloc.s 18
-	  IL_060a:  ldloc.s 18
-	  IL_060c:  isinst NAnt.Core.Configuration.ConditionalElement
-	  IL_0611:  stloc.s 19
-	  IL_0613:  ldloc.s 19
-	  IL_0615:  brfalse IL_062c
+	  IL_0061:  ldloc.2 
+	  IL_0062:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0067:  stloc.1 
+	  IL_0068:  nop 
+	  .try { // 0
+	    IL_0069:  nop 
+	    IL_006a:  ldloc.1 
+	    IL_006b:  ldarg.1 
+	    IL_006c:  call bool class NAnt.Core.TypeFactory::ScanAssembly(string, class NAnt.Core.Task)
+	    IL_0071:  pop 
+	    IL_0072:  nop 
+	    IL_0073:  leave IL_00d8
 
-	  IL_061a:  ldloc.s 19
-	  IL_061c:  callvirt instance bool class NAnt.Core.Configuration.ConditionalElement::get_Enabled()
-	  IL_0621:  brtrue IL_062c
+	  } // end .try 0
+	  catch class [mscorlib]System.Exception { // 0
+	    IL_0078:  stloc.3 
+	    IL_0079:  nop 
+	    IL_007a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_007f:  ldstr "Failure scanning \"{0}\" for extensions"
+	    IL_0084:  ldloc.1 
+	    IL_0085:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_008a:  stloc.s 4
+	    IL_008c:  ldarg.2 
+	    IL_008d:  brfalse IL_00ab
 
-	  IL_0626:  nop 
-	  IL_0627:  leave IL_063e
+	    IL_0092:  nop 
+	    IL_0093:  ldloc.s 4
+	    IL_0095:  ldstr "."
+	    IL_009a:  call string string::Concat(string, string)
+	    IL_009f:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	    IL_00a4:  ldloc.3 
+	    IL_00a5:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	    IL_00aa:  throw 
+	    IL_00ab:  ldarg.1 
+	    IL_00ac:  ldc.i4 5000
+	    IL_00b1:  ldloc.s 4
+	    IL_00b3:  ldstr ": "
+	    IL_00b8:  ldloc.1 
+	    IL_00b9:  call string string::Concat(string, string, string)
+	    IL_00be:  ldc.i4.1 
+	    IL_00bf:  newarr [mscorlib]System.Object
+	    IL_00c4:  dup 
+	    IL_00c5:  ldc.i4.0 
+	    IL_00c6:  ldloc.3 
+	    IL_00c7:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	    IL_00cc:  stelem.ref 
+	    IL_00cd:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	    IL_00d2:  nop 
+	    IL_00d3:  leave IL_00d8
 
-	  IL_062c:  ldloc.s 14
-	  IL_062e:  ldloc.s 18
-	  IL_0630:  ldloc.s 15
-	  IL_0632:  callvirt instance void class [mscorlib]System.Array::SetValue(object, int32)
-	  IL_0637:  ldloc.s 15
-	  IL_0639:  ldc.i4.1 
-	  IL_063a:  add 
-	  IL_063b:  stloc.s 15
-	  IL_063d:  nop 
-	  IL_063e:  ldloc.s 17
-	  IL_0640:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0645:  brtrue IL_05bc
+	  } // end handler 0
+	  IL_00d8:  nop 
+	  IL_00d9:  ldloc.2 
+	  IL_00da:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_00df:  brtrue IL_0061
 
-	  IL_064a:  leave IL_0666
+	  IL_00e4:  leave IL_00ff
 
-	} // end .try 0
-	finally  { // 0
-	  IL_064f:  ldloc.s 17
-	  IL_0651:  isinst [mscorlib]System.IDisposable
-	  IL_0656:  dup 
-	  IL_0657:  stloc.s 20
-	  IL_0659:  brfalse IL_0665
+	} // end .try 1
+	finally  { // 1
+	  IL_00e9:  ldloc.2 
+	  IL_00ea:  isinst [mscorlib]System.IDisposable
+	  IL_00ef:  dup 
+	  IL_00f0:  stloc.s 5
+	  IL_00f2:  brfalse IL_00fe
 
-	  IL_065e:  ldloc.s 20
-	  IL_0660:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0665:  endfinally 
-	} // end handler 0
-	IL_0666:  ldarg.1 
-	IL_0667:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_066c:  callvirt instance bool class [mscorlib]System.Type::get_IsArray()
-	IL_0671:  brfalse IL_073e
+	  IL_00f7:  ldloc.s 5
+	  IL_00f9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00fe:  endfinally 
+	} // end handler 1
+	IL_00ff:  ret 
+    } // end of method TypeFactory::ScanDir
 
-	IL_0676:  nop 
-	.try { // 1
-	  IL_0677:  nop 
-	  IL_0678:  ldloc.s 15
-	  IL_067a:  ldloc.s 14
-	  IL_067c:  callvirt instance int32 class [mscorlib]System.Array::get_Length()
-	  IL_0681:  beq IL_06b3
+    // method line 1602
+    .method assembly static hidebysig 
+           default void AddProject (class NAnt.Core.Project project)  cil managed 
+    {
+        // Method begins at RVA 0x1cfa8
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.1 
+	IL_0003:  call void class NAnt.Core.TypeFactory::AddProject(class NAnt.Core.Project, bool)
+	IL_0008:  ret 
+    } // end of method TypeFactory::AddProject
 
-	  IL_0686:  nop 
-	  IL_0687:  ldloc.3 
-	  IL_0688:  ldloc.s 15
-	  IL_068a:  call class [mscorlib]System.Array class [mscorlib]System.Array::CreateInstance(class [mscorlib]System.Type, int32)
-	  IL_068f:  stloc.s 21
-	  IL_0691:  ldloc.s 14
-	  IL_0693:  ldc.i4.0 
-	  IL_0694:  ldloc.s 21
-	  IL_0696:  ldc.i4.0 
-	  IL_0697:  ldloc.s 15
-	  IL_0699:  call void class [mscorlib]System.Array::Copy(class [mscorlib]System.Array, int32, class [mscorlib]System.Array, int32, int32)
-	  IL_069e:  ldarg.1 
-	  IL_069f:  ldarg.0 
-	  IL_06a0:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	  IL_06a5:  ldloc.s 21
-	  IL_06a7:  ldnull 
-	  IL_06a8:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, object[])
-	  IL_06ad:  nop 
-	  IL_06ae:  br IL_06c4
+    // method line 1603
+    .method assembly static hidebysig 
+           default void AddProject (class NAnt.Core.Project project, bool scan)  cil managed 
+    {
+        // Method begins at RVA 0x1cfb4
+	// Code size 264 (0x108)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.Tasks.LoadTasksTask	V_0,
+		string	V_1,
+		string	V_2,
+		string	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0017
 
-	  IL_06b3:  nop 
-	  IL_06b4:  ldarg.1 
-	  IL_06b5:  ldarg.0 
-	  IL_06b6:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	  IL_06bb:  ldloc.s 14
-	  IL_06bd:  ldnull 
-	  IL_06be:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, object[])
-	  IL_06c3:  nop 
-	  IL_06c4:  nop 
-	  IL_06c5:  leave IL_0738
+	IL_0007:  ldarg.0 
+	IL_0008:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_000d:  call bool string::IsNullOrEmpty(string)
+	IL_0012:  brfalse IL_001c
 
-	} // end .try 1
-	catch class [mscorlib]System.Reflection.TargetInvocationException { // 1
-	  IL_06ca:  stloc.s 22
-	  IL_06cc:  nop 
-	  IL_06cd:  ldloc.s 22
-	  IL_06cf:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
-	  IL_06d4:  isinst NAnt.Core.BuildException
-	  IL_06d9:  brfalse IL_06e7
+	IL_0017:  br IL_0107
 
-	  IL_06de:  nop 
-	  IL_06df:  ldloc.s 22
-	  IL_06e1:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
-	  IL_06e6:  throw 
-	  IL_06e7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_06ec:  ldstr "NA1012"
-	  IL_06f1:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_06f6:  ldc.i4.4 
-	  IL_06f7:  newarr [mscorlib]System.Object
-	  IL_06fc:  dup 
-	  IL_06fd:  ldc.i4.0 
-	  IL_06fe:  ldloc.3 
-	  IL_06ff:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	  IL_0704:  stelem.ref 
-	  IL_0705:  dup 
-	  IL_0706:  ldc.i4.1 
-	  IL_0707:  ldarg.1 
-	  IL_0708:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	  IL_070d:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	  IL_0712:  stelem.ref 
-	  IL_0713:  dup 
-	  IL_0714:  ldc.i4.2 
-	  IL_0715:  ldarg.1 
-	  IL_0716:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	  IL_071b:  stelem.ref 
-	  IL_071c:  dup 
-	  IL_071d:  ldc.i4.3 
-	  IL_071e:  ldarg.0 
-	  IL_071f:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
-	  IL_0724:  stelem.ref 
-	  IL_0725:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	  IL_072a:  ldarg.0 
-	  IL_072b:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	  IL_0730:  ldloc.s 22
-	  IL_0732:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0737:  throw 
-	} // end handler 1
-	IL_0738:  nop 
-	IL_0739:  br IL_091b
+	IL_001c:  newobj instance void class NAnt.Core.Tasks.LoadTasksTask::'.ctor'()
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldarg.0 
+	IL_0024:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_0029:  ldloc.0 
+	IL_002a:  ldarg.0 
+	IL_002b:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
+	IL_0030:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0035:  ldloc.0 
+	IL_0036:  ldarg.0 
+	IL_0037:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_003c:  ldloc.0 
+	IL_003d:  ldc.i4.0 
+	IL_003e:  callvirt instance void class NAnt.Core.Task::set_FailOnError(bool)
+	IL_0043:  ldloc.0 
+	IL_0044:  ldarg.0 
+	IL_0045:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
+	IL_004a:  ldc.i4 1000
+	IL_004f:  bne.un IL_005e
 
-	IL_073e:  nop 
-	IL_073f:  ldnull 
-	IL_0740:  stloc.s 23
-	IL_0742:  ldarg.1 
-	IL_0743:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_0748:  ldc.i4.s 0x14
-	IL_074a:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_074f:  stloc.s 24
-	IL_0751:  nop 
-	IL_0752:  ldloc.s 24
-	IL_0754:  stloc.s 26
-	IL_0756:  ldc.i4.0 
-	IL_0757:  stloc.s 27
-	IL_0759:  br IL_07bb
+	IL_0054:  ldc.i4 1000
+	IL_0059:  br IL_0063
 
-	IL_075e:  ldloc.s 26
-	IL_0760:  ldloc.s 27
-	IL_0762:  ldelem.ref 
-	IL_0763:  stloc.s 25
-	IL_0765:  nop 
-	IL_0766:  ldloc.s 25
-	IL_0768:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_076d:  ldstr "Add"
-	IL_0772:  call bool string::op_Equality(string, string)
-	IL_0777:  brfalse IL_07b4
+	IL_005e:  ldc.i4 4000
+	IL_0063:  callvirt instance void class NAnt.Core.Task::set_Threshold(valuetype NAnt.Core.Level)
+	IL_0068:  ldarg.0 
+	IL_0069:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_006e:  ldstr "extensions"
+	IL_0073:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0078:  stloc.1 
+	IL_0079:  ldloc.1 
+	IL_007a:  ldstr "common"
+	IL_007f:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0084:  stloc.2 
+	IL_0085:  ldloc.2 
+	IL_0086:  ldstr "neutral"
+	IL_008b:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0090:  ldloc.0 
+	IL_0091:  ldc.i4.0 
+	IL_0092:  call void class NAnt.Core.TypeFactory::ScanDir(string, class NAnt.Core.Task, bool)
+	IL_0097:  ldarg.0 
+	IL_0098:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
+	IL_009d:  brtrue IL_00a8
 
-	IL_077c:  ldloc.s 25
-	IL_077e:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_0783:  ldlen 
-	IL_0784:  conv.i4 
-	IL_0785:  ldc.i4.1 
-	IL_0786:  bne.un IL_07b4
+	IL_00a2:  nop 
+	IL_00a3:  br IL_0107
 
-	IL_078b:  nop 
-	IL_078c:  ldloc.s 25
-	IL_078e:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_0793:  ldc.i4.0 
-	IL_0794:  ldelem.ref 
-	IL_0795:  stloc.s 28
-	IL_0797:  ldloc.s 28
-	IL_0799:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	IL_079e:  ldloc.3 
-	IL_079f:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_07a4:  brfalse IL_07b3
+	IL_00a8:  ldloc.2 
+	IL_00a9:  ldarg.0 
+	IL_00aa:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
+	IL_00af:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
+	IL_00b4:  ldc.i4.2 
+	IL_00b5:  callvirt instance string class [mscorlib]System.Version::ToString(int32)
+	IL_00ba:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_00bf:  ldloc.0 
+	IL_00c0:  ldc.i4.0 
+	IL_00c1:  call void class NAnt.Core.TypeFactory::ScanDir(string, class NAnt.Core.Task, bool)
+	IL_00c6:  ldloc.1 
+	IL_00c7:  ldarg.0 
+	IL_00c8:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
+	IL_00cd:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Family()
+	IL_00d2:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_00d7:  stloc.3 
+	IL_00d8:  ldloc.3 
+	IL_00d9:  ldstr "neutral"
+	IL_00de:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_00e3:  ldloc.0 
+	IL_00e4:  ldc.i4.0 
+	IL_00e5:  call void class NAnt.Core.TypeFactory::ScanDir(string, class NAnt.Core.Task, bool)
+	IL_00ea:  ldloc.3 
+	IL_00eb:  ldarg.0 
+	IL_00ec:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
+	IL_00f1:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_Version()
+	IL_00f6:  callvirt instance string object::ToString()
+	IL_00fb:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0100:  ldloc.0 
+	IL_0101:  ldc.i4.0 
+	IL_0102:  call void class NAnt.Core.TypeFactory::ScanDir(string, class NAnt.Core.Task, bool)
+	IL_0107:  ret 
+    } // end of method TypeFactory::AddProject
 
-	IL_07a9:  nop 
-	IL_07aa:  ldloc.s 25
-	IL_07ac:  stloc.s 23
-	IL_07ae:  br IL_07c6
+    // method line 1604
+    .method assembly static hidebysig 
+           default class [mscorlib]System.Reflection.MethodInfo LookupFunction (string functionName, class NAnt.Core.Extensibility.FunctionArgument[] args, class NAnt.Core.Project project)  cil managed 
+    {
+        // Method begins at RVA 0x1d0c8
+	// Code size 225 (0xe1)
+	.maxstack 4
+	.locals init (
+		object	V_0,
+		class [mscorlib]System.Reflection.MethodInfo	V_1,
+		class [mscorlib]System.Reflection.MethodInfo	V_2,
+		class [mscorlib]System.Collections.ArrayList	V_3,
+		int32	V_4)
+	IL_0000:  nop 
+	IL_0001:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.TypeFactory::_methodInfoCollection
+	IL_0006:  ldarg.0 
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  brtrue IL_002e
 
-	IL_07b3:  nop 
-	IL_07b4:  nop 
-	IL_07b5:  ldloc.s 27
-	IL_07b7:  ldc.i4.1 
-	IL_07b8:  add 
-	IL_07b9:  stloc.s 27
-	IL_07bb:  ldloc.s 27
-	IL_07bd:  ldloc.s 26
-	IL_07bf:  ldlen 
-	IL_07c0:  conv.i4 
-	IL_07c1:  blt IL_075e
+	IL_0013:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0018:  ldstr "NA1052"
+	IL_001d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0022:  ldarg.0 
+	IL_0023:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0028:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_002d:  throw 
+	IL_002e:  ldloc.0 
+	IL_002f:  isinst [mscorlib]System.Reflection.MethodInfo
+	IL_0034:  stloc.1 
+	IL_0035:  ldloc.1 
+	IL_0036:  ldnull 
+	IL_0037:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Inequality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_003c:  brfalse IL_0068
 
-	IL_07c6:  ldloc.s 23
-	IL_07c8:  ldnull 
-	IL_07c9:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_07ce:  brfalse IL_0823
+	IL_0041:  nop 
+	IL_0042:  ldloc.1 
+	IL_0043:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_0048:  ldlen 
+	IL_0049:  conv.i4 
+	IL_004a:  ldarg.1 
+	IL_004b:  ldlen 
+	IL_004c:  conv.i4 
+	IL_004d:  bne.un IL_0062
 
-	IL_07d3:  nop 
-	IL_07d4:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_07d9:  ldstr "NA1020"
-	IL_07de:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_07e3:  ldc.i4.4 
-	IL_07e4:  newarr [mscorlib]System.Object
-	IL_07e9:  dup 
-	IL_07ea:  ldc.i4.0 
-	IL_07eb:  ldloc.3 
-	IL_07ec:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_07f1:  stelem.ref 
-	IL_07f2:  dup 
-	IL_07f3:  ldc.i4.1 
-	IL_07f4:  ldarg.1 
-	IL_07f5:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_07fa:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_07ff:  stelem.ref 
-	IL_0800:  dup 
-	IL_0801:  ldc.i4.2 
-	IL_0802:  ldarg.1 
-	IL_0803:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_0808:  stelem.ref 
-	IL_0809:  dup 
-	IL_080a:  ldc.i4.3 
-	IL_080b:  ldarg.0 
-	IL_080c:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
-	IL_0811:  stelem.ref 
-	IL_0812:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0817:  ldarg.0 
-	IL_0818:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_081d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0822:  throw 
-	IL_0823:  ldarg.1 
-	IL_0824:  ldarg.0 
-	IL_0825:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_082a:  ldc.i4.0 
-	IL_082b:  ldnull 
-	IL_082c:  ldnull 
-	IL_082d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0832:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_0837:  stloc.s 29
-	IL_0839:  ldloc.s 29
-	IL_083b:  brtrue IL_08da
+	IL_0052:  nop 
+	IL_0053:  ldarg.0 
+	IL_0054:  ldloc.1 
+	IL_0055:  ldarg.2 
+	IL_0056:  call void class NAnt.Core.TypeFactory::CheckDeprecation(string, class [mscorlib]System.Reflection.MethodInfo, class NAnt.Core.Project)
+	IL_005b:  ldloc.1 
+	IL_005c:  stloc.2 
+	IL_005d:  br IL_00df
 
-	IL_0840:  nop 
-	IL_0841:  ldarg.1 
-	IL_0842:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
-	IL_0847:  brtrue IL_08ad
+	IL_0062:  nop 
+	IL_0063:  br IL_00bc
 
-	IL_084c:  nop 
-	IL_084d:  ldloc.0 
-	IL_084e:  brfalse IL_0880
+	IL_0068:  nop 
+	IL_0069:  ldloc.0 
+	IL_006a:  castclass [mscorlib]System.Collections.ArrayList
+	IL_006f:  stloc.3 
+	IL_0070:  ldc.i4.0 
+	IL_0071:  stloc.s 4
+	IL_0073:  br IL_00ae
 
-	IL_0853:  nop 
-	IL_0854:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0859:  ldstr "NA1093"
-	IL_085e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0863:  ldloc.0 
-	IL_0864:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_0869:  ldarg.0 
-	IL_086a:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
-	IL_086f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0874:  ldarg.0 
-	IL_0875:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_087a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_087f:  throw 
-	IL_0880:  nop 
-	IL_0881:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0886:  ldstr "NA1029"
-	IL_088b:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0890:  ldloc.1 
-	IL_0891:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_0896:  ldarg.0 
-	IL_0897:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
-	IL_089c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_08a1:  ldarg.0 
-	IL_08a2:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_08a7:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_08ac:  throw 
-	IL_08ad:  ldarg.1 
-	IL_08ae:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_08b3:  ldc.i4.s 0x14
-	IL_08b5:  ldnull 
-	IL_08b6:  ldnull 
-	IL_08b7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_08bc:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_08c1:  stloc.s 30
-	IL_08c3:  ldarg.1 
-	IL_08c4:  ldarg.0 
-	IL_08c5:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_08ca:  ldloc.s 30
-	IL_08cc:  ldc.i4.0 
-	IL_08cd:  ldnull 
-	IL_08ce:  ldnull 
-	IL_08cf:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_08d4:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_08d9:  nop 
-	IL_08da:  ldc.i4.0 
-	IL_08db:  stloc.s 31
-	IL_08dd:  br IL_0911
+	IL_0078:  nop 
+	IL_0079:  ldloc.3 
+	IL_007a:  ldloc.s 4
+	IL_007c:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	IL_0081:  castclass [mscorlib]System.Reflection.MethodInfo
+	IL_0086:  stloc.1 
+	IL_0087:  ldloc.1 
+	IL_0088:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_008d:  ldlen 
+	IL_008e:  conv.i4 
+	IL_008f:  ldarg.1 
+	IL_0090:  ldlen 
+	IL_0091:  conv.i4 
+	IL_0092:  bne.un IL_00a7
 
-	IL_08e2:  nop 
-	IL_08e3:  ldloc.s 14
-	IL_08e5:  ldloc.s 31
-	IL_08e7:  callvirt instance object class [mscorlib]System.Array::GetValue(int32)
-	IL_08ec:  stloc.s 32
-	IL_08ee:  ldloc.s 23
-	IL_08f0:  ldloc.s 29
-	IL_08f2:  ldc.i4.0 
-	IL_08f3:  ldnull 
-	IL_08f4:  ldc.i4.1 
-	IL_08f5:  newarr [mscorlib]System.Object
-	IL_08fa:  dup 
-	IL_08fb:  ldc.i4.0 
-	IL_08fc:  ldloc.s 32
-	IL_08fe:  stelem.ref 
-	IL_08ff:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0904:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_0909:  pop 
-	IL_090a:  nop 
-	IL_090b:  ldloc.s 31
-	IL_090d:  ldc.i4.1 
-	IL_090e:  add 
-	IL_090f:  stloc.s 31
-	IL_0911:  ldloc.s 31
-	IL_0913:  ldloc.s 15
-	IL_0915:  blt IL_08e2
+	IL_0097:  nop 
+	IL_0098:  ldarg.0 
+	IL_0099:  ldloc.1 
+	IL_009a:  ldarg.2 
+	IL_009b:  call void class NAnt.Core.TypeFactory::CheckDeprecation(string, class [mscorlib]System.Reflection.MethodInfo, class NAnt.Core.Project)
+	IL_00a0:  ldloc.1 
+	IL_00a1:  stloc.2 
+	IL_00a2:  br IL_00df
 
-	IL_091a:  nop 
-	IL_091b:  ldc.i4.1 
-	IL_091c:  stloc.2 
-	IL_091d:  br IL_0922
+	IL_00a7:  nop 
+	IL_00a8:  ldloc.s 4
+	IL_00aa:  ldc.i4.1 
+	IL_00ab:  add 
+	IL_00ac:  stloc.s 4
+	IL_00ae:  ldloc.s 4
+	IL_00b0:  ldloc.3 
+	IL_00b1:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_00b6:  blt IL_0078
 
-	IL_0922:  ldloc.2 
-	IL_0923:  ret 
-    } // end of method AttributeConfigurator::InitializeBuildElementCollection
+	IL_00bb:  nop 
+	IL_00bc:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00c1:  ldstr "NA1044"
+	IL_00c6:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00cb:  ldarg.0 
+	IL_00cc:  ldarg.1 
+	IL_00cd:  ldlen 
+	IL_00ce:  conv.i4 
+	IL_00cf:  box [mscorlib]System.Int32
+	IL_00d4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_00d9:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_00de:  throw 
+	IL_00df:  ldloc.2 
+	IL_00e0:  ret 
+    } // end of method TypeFactory::LookupFunction
 
-    // method line 1804
-    .method family virtual hidebysig newslot 
-           instance default bool InitializeChildElement (class [mscorlib]System.Reflection.PropertyInfo propertyInfo, class [mscorlib]System.Reflection.MethodInfo getter, class [mscorlib]System.Reflection.MethodInfo setter)  cil managed 
+    // method line 1605
+    .method private static hidebysig 
+           default void CheckDeprecation (string functionName, class [mscorlib]System.Reflection.MethodInfo function, class NAnt.Core.Project project)  cil managed 
     {
-        // Method begins at RVA 0x5da8
-	// Code size 362 (0x16a)
+        // Method begins at RVA 0x1d1b8
+	// Code size 149 (0x95)
 	.maxstack 7
 	.locals init (
-		class NAnt.Core.Attributes.BuildElementAttribute	V_0,
-		bool	V_1,
-		class [System.Xml]System.Xml.XmlNode	V_2)
+		class [mscorlib]System.ObsoleteAttribute	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  ldtoken NAnt.Core.Attributes.BuildElementAttribute
+	IL_0002:  ldtoken [mscorlib]System.ObsoleteAttribute
 	IL_0007:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000c:  ldc.i4.0 
+	IL_000c:  ldc.i4.1 
 	IL_000d:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_0012:  castclass NAnt.Core.Attributes.BuildElementAttribute
+	IL_0012:  castclass [mscorlib]System.ObsoleteAttribute
 	IL_0017:  stloc.0 
 	IL_0018:  ldloc.0 
-	IL_0019:  brtrue IL_0026
+	IL_0019:  brtrue IL_003c
 
 	IL_001e:  nop 
-	IL_001f:  ldc.i4.0 
-	IL_0020:  stloc.1 
-	IL_0021:  br IL_0168
-
-	IL_0026:  ldarg.0 
-	IL_0027:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_002c:  callvirt instance class [System.Xml]System.Xml.XmlDocument class [System.Xml]System.Xml.XmlNode::get_OwnerDocument()
-	IL_0031:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_0036:  brtrue IL_0054
-
+	IL_001f:  ldarg.1 
+	IL_0020:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_0025:  ldtoken [mscorlib]System.ObsoleteAttribute
+	IL_002a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_002f:  ldc.i4.1 
+	IL_0030:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_0035:  castclass [mscorlib]System.ObsoleteAttribute
+	IL_003a:  stloc.0 
 	IL_003b:  nop 
-	IL_003c:  ldarg.0 
-	IL_003d:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_0042:  ldloc.0 
-	IL_0043:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_0048:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlNode::get_Item(string)
-	IL_004d:  stloc.2 
-	IL_004e:  nop 
-	IL_004f:  br IL_007d
+	IL_003c:  ldloc.0 
+	IL_003d:  brfalse IL_0094
 
-	IL_0054:  nop 
-	IL_0055:  ldarg.0 
-	IL_0056:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_005b:  ldloc.0 
-	IL_005c:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_0061:  ldarg.0 
-	IL_0062:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_0067:  callvirt instance class [System.Xml]System.Xml.XmlDocument class [System.Xml]System.Xml.XmlNode::get_OwnerDocument()
-	IL_006c:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_0071:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	IL_0076:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlNode::get_Item(string, string)
-	IL_007b:  stloc.2 
-	IL_007c:  nop 
-	IL_007d:  ldloc.2 
-	IL_007e:  brtrue IL_00c0
+	IL_0042:  nop 
+	IL_0043:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0048:  ldstr "NA1087"
+	IL_004d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0052:  ldarg.0 
+	IL_0053:  ldloc.0 
+	IL_0054:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
+	IL_0059:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_005e:  stloc.1 
+	IL_005f:  ldloc.0 
+	IL_0060:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
+	IL_0065:  brfalse IL_0077
 
-	IL_0083:  ldloc.0 
-	IL_0084:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_Required()
-	IL_0089:  brfalse IL_00c0
+	IL_006a:  nop 
+	IL_006b:  ldloc.1 
+	IL_006c:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_0071:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0076:  throw 
+	IL_0077:  nop 
+	IL_0078:  ldarg.2 
+	IL_0079:  ldc.i4 4000
+	IL_007e:  ldstr "{0}"
+	IL_0083:  ldc.i4.1 
+	IL_0084:  newarr [mscorlib]System.Object
+	IL_0089:  dup 
+	IL_008a:  ldc.i4.0 
+	IL_008b:  ldloc.1 
+	IL_008c:  stelem.ref 
+	IL_008d:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0092:  nop 
+	IL_0093:  nop 
+	IL_0094:  ret 
+    } // end of method TypeFactory::CheckDeprecation
 
-	IL_008e:  nop 
-	IL_008f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0094:  ldstr "NA1013"
-	IL_0099:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_009e:  ldloc.0 
-	IL_009f:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_00a4:  ldarg.0 
-	IL_00a5:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_00aa:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_00af:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_00b4:  ldarg.0 
-	IL_00b5:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_00ba:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_00bf:  throw 
-	IL_00c0:  ldloc.2 
-	IL_00c1:  brfalse IL_0161
+    // method line 1606
+    .method public static hidebysig 
+           default class NAnt.Core.Task CreateTask (class [System.Xml]System.Xml.XmlNode taskNode, class NAnt.Core.Project proj)  cil managed 
+    {
+        // Method begins at RVA 0x1d25c
+	// Code size 280 (0x118)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		class NAnt.Core.TaskBuilder	V_1,
+		class NAnt.Core.Location	V_2,
+		class NAnt.Core.Task	V_3,
+		class [mscorlib]System.ObsoleteAttribute	V_4,
+		class NAnt.Core.Location	V_5,
+		string	V_6,
+		class NAnt.Core.Task	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  brtrue IL_0013
 
-	IL_00c6:  nop 
-	IL_00c7:  ldarg.0 
-	IL_00c8:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
-	IL_00cd:  ldloc.2 
-	IL_00ce:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_00d3:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Remove(string)
-	IL_00d8:  ldloc.0 
-	IL_00d9:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_ProcessXml()
-	IL_00de:  brtrue IL_00eb
+	IL_0007:  nop 
+	IL_0008:  ldstr "taskNode"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.1 
+	IL_0014:  brtrue IL_0025
 
-	IL_00e3:  nop 
-	IL_00e4:  ldc.i4.1 
-	IL_00e5:  stloc.1 
-	IL_00e6:  br IL_0168
+	IL_0019:  nop 
+	IL_001a:  ldstr "proj"
+	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0024:  throw 
+	IL_0025:  ldarg.0 
+	IL_0026:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_002b:  stloc.0 
+	IL_002c:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
+	IL_0031:  ldloc.0 
+	IL_0032:  callvirt instance class NAnt.Core.TaskBuilder class NAnt.Core.TaskBuilderCollection::get_Item(string)
+	IL_0037:  stloc.1 
+	IL_0038:  ldloc.1 
+	IL_0039:  brtrue IL_0068
 
-	IL_00eb:  ldarg.0 
-	IL_00ec:  ldarg.1 
-	IL_00ed:  ldarg.2 
-	IL_00ee:  ldarg.3 
-	IL_00ef:  ldloc.2 
-	IL_00f0:  ldarg.0 
-	IL_00f1:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element/AttributeConfigurator::get_Properties()
-	IL_00f6:  ldarg.0 
-	IL_00f7:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Element/AttributeConfigurator::get_TargetFramework()
-	IL_00fc:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::CreateChildBuildElement(class [mscorlib]System.Reflection.PropertyInfo, class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
-	IL_0101:  pop 
-	IL_0102:  ldarg.0 
-	IL_0103:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_0108:  ldstr "nant:"
-	IL_010d:  ldloc.0 
-	IL_010e:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_0113:  call string string::Concat(string, string)
-	IL_0118:  ldarg.0 
-	IL_0119:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
-	IL_011e:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0123:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_0128:  ldc.i4.1 
-	IL_0129:  ble IL_0160
+	IL_003e:  nop 
+	IL_003f:  ldarg.1 
+	IL_0040:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	IL_0045:  ldarg.0 
+	IL_0046:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	IL_004b:  stloc.2 
+	IL_004c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0051:  ldstr "NA1083"
+	IL_0056:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_005b:  ldloc.0 
+	IL_005c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0061:  ldloc.2 
+	IL_0062:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0067:  throw 
+	IL_0068:  ldloc.1 
+	IL_0069:  callvirt instance class NAnt.Core.Task class NAnt.Core.TaskBuilder::CreateTask()
+	IL_006e:  stloc.3 
+	IL_006f:  ldloc.3 
+	IL_0070:  ldarg.1 
+	IL_0071:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_0076:  ldloc.3 
+	IL_0077:  ldarg.1 
+	IL_0078:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
+	IL_007d:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0082:  ldloc.3 
+	IL_0083:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0088:  ldtoken [mscorlib]System.ObsoleteAttribute
+	IL_008d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0092:  ldc.i4.1 
+	IL_0093:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_0098:  castclass [mscorlib]System.ObsoleteAttribute
+	IL_009d:  stloc.s 4
+	IL_009f:  ldloc.s 4
+	IL_00a1:  brfalse IL_010d
 
-	IL_012e:  nop 
-	IL_012f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0134:  ldstr "NA1186"
-	IL_0139:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_013e:  ldarg.0 
-	IL_013f:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_0144:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_0149:  ldloc.0 
-	IL_014a:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_014f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0154:  ldarg.0 
-	IL_0155:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_015a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_015f:  throw 
-	IL_0160:  nop 
-	IL_0161:  ldc.i4.1 
-	IL_0162:  stloc.1 
-	IL_0163:  br IL_0168
+	IL_00a6:  nop 
+	IL_00a7:  ldarg.1 
+	IL_00a8:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	IL_00ad:  ldarg.0 
+	IL_00ae:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	IL_00b3:  stloc.s 5
+	IL_00b5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00ba:  ldstr "NA1086"
+	IL_00bf:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00c4:  ldloc.0 
+	IL_00c5:  ldloc.s 4
+	IL_00c7:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
+	IL_00cc:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_00d1:  stloc.s 6
+	IL_00d3:  ldloc.s 4
+	IL_00d5:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
+	IL_00da:  brfalse IL_00ea
 
-	IL_0168:  ldloc.1 
-	IL_0169:  ret 
-    } // end of method AttributeConfigurator::InitializeChildElement
+	IL_00df:  nop 
+	IL_00e0:  ldloc.s 6
+	IL_00e2:  ldloc.s 5
+	IL_00e4:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_00e9:  throw 
+	IL_00ea:  nop 
+	IL_00eb:  ldarg.1 
+	IL_00ec:  ldc.i4 4000
+	IL_00f1:  ldstr "{0} {1}"
+	IL_00f6:  ldc.i4.2 
+	IL_00f7:  newarr [mscorlib]System.Object
+	IL_00fc:  dup 
+	IL_00fd:  ldc.i4.0 
+	IL_00fe:  ldloc.s 5
+	IL_0100:  stelem.ref 
+	IL_0101:  dup 
+	IL_0102:  ldc.i4.1 
+	IL_0103:  ldloc.s 6
+	IL_0105:  stelem.ref 
+	IL_0106:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_010b:  nop 
+	IL_010c:  nop 
+	IL_010d:  ldloc.3 
+	IL_010e:  stloc.s 7
+	IL_0110:  br IL_0115
 
-    // method line 1805
-    .method family virtual hidebysig newslot 
-           instance default void InitializeOrderedChildElements ()  cil managed 
+	IL_0115:  ldloc.s 7
+	IL_0117:  ret 
+    } // end of method TypeFactory::CreateTask
+
+    // method line 1607
+    .method public static hidebysig 
+           default class NAnt.Core.Filters.Filter CreateFilter (class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.Element parent)  cil managed 
     {
-        // Method begins at RVA 0x5f20
-	// Code size 741 (0x2e5)
-	.maxstack 8
+        // Method begins at RVA 0x1d380
+	// Code size 319 (0x13f)
+	.maxstack 7
 	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0,
-		class [mscorlib]System.Collections.Hashtable	V_1,
-		class [mscorlib]System.Reflection.MethodInfo[]	V_2,
-		class [mscorlib]System.Reflection.MethodInfo	V_3,
-		class [mscorlib]System.Reflection.MethodInfo[]	V_4,
-		int32	V_5,
-		class [mscorlib]System.Reflection.ParameterInfo[]	V_6,
-		object[]	V_7,
-		class NAnt.Core.Attributes.BuildElementAttribute	V_8,
-		class [System]System.Collections.Specialized.StringCollection	V_9,
-		class [System.Xml]System.Xml.XmlNode	V_10,
-		class [mscorlib]System.Collections.IEnumerator	V_11,
-		string	V_12,
-		class [mscorlib]System.Reflection.MethodInfo	V_13,
-		class NAnt.Core.Attributes.BuildElementAttribute	V_14,
-		class [mscorlib]System.Type	V_15,
-		class NAnt.Core.Element	V_16,
-		class [mscorlib]System.Reflection.TargetInvocationException	V_17,
-		class [mscorlib]System.IDisposable	V_18,
-		string	V_19,
-		class [System]System.Collections.Specialized.StringEnumerator	V_20,
-		class [mscorlib]System.IDisposable	V_21,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_22,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_23,
-		class [mscorlib]System.IDisposable	V_24)
+		string	V_0,
+		class NAnt.Core.Filters.FilterBuilder	V_1,
+		class NAnt.Core.Location	V_2,
+		class NAnt.Core.Filters.Filter	V_3,
+		class [mscorlib]System.ObsoleteAttribute	V_4,
+		class NAnt.Core.Location	V_5,
+		string	V_6,
+		class NAnt.Core.Filters.Filter	V_7)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_000c:  stloc.1 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_0013:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0018:  ldc.i4.s 0x14
-	IL_001a:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_001f:  stloc.2 
-	IL_0020:  nop 
-	IL_0021:  ldloc.2 
-	IL_0022:  stloc.s 4
-	IL_0024:  ldc.i4.0 
-	IL_0025:  stloc.s 5
-	IL_0027:  br IL_00a9
-
-	IL_002c:  ldloc.s 4
-	IL_002e:  ldloc.s 5
-	IL_0030:  ldelem.ref 
-	IL_0031:  stloc.3 
-	IL_0032:  nop 
-	IL_0033:  ldloc.3 
-	IL_0034:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_0039:  stloc.s 6
-	IL_003b:  ldloc.s 6
-	IL_003d:  ldlen 
-	IL_003e:  conv.i4 
-	IL_003f:  ldc.i4.1 
-	IL_0040:  beq IL_004b
-
-	IL_0045:  nop 
-	IL_0046:  br IL_00a3
-
-	IL_004b:  ldloc.3 
-	IL_004c:  ldtoken NAnt.Core.Attributes.BuildElementAttribute
-	IL_0051:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0056:  ldc.i4.1 
-	IL_0057:  callvirt instance object[] class [mscorlib]System.Reflection.MemberInfo::GetCustomAttributes(class [mscorlib]System.Type, bool)
-	IL_005c:  stloc.s 7
-	IL_005e:  ldloc.s 7
-	IL_0060:  ldlen 
-	IL_0061:  conv.i4 
-	IL_0062:  brtrue IL_006d
+	IL_0001:  ldarg.0 
+	IL_0002:  brtrue IL_0013
 
-	IL_0067:  nop 
-	IL_0068:  br IL_00a3
+	IL_0007:  nop 
+	IL_0008:  ldstr "elementNode"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.1 
+	IL_0014:  brtrue IL_0025
 
-	IL_006d:  ldloc.s 7
-	IL_006f:  ldc.i4.0 
-	IL_0070:  ldelem.ref 
-	IL_0071:  castclass NAnt.Core.Attributes.BuildElementAttribute
-	IL_0076:  stloc.s 8
-	IL_0078:  ldloc.0 
-	IL_0079:  ldloc.s 8
-	IL_007b:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_0080:  ldloc.3 
-	IL_0081:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_0086:  ldloc.s 8
-	IL_0088:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_Required()
-	IL_008d:  brfalse IL_00a2
+	IL_0019:  nop 
+	IL_001a:  ldstr "parent"
+	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0024:  throw 
+	IL_0025:  ldarg.0 
+	IL_0026:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_002b:  stloc.0 
+	IL_002c:  call class NAnt.Core.Filters.FilterBuilderCollection class NAnt.Core.TypeFactory::get_FilterBuilders()
+	IL_0031:  ldloc.0 
+	IL_0032:  callvirt instance class NAnt.Core.Filters.FilterBuilder class NAnt.Core.Filters.FilterBuilderCollection::get_Item(string)
+	IL_0037:  stloc.1 
+	IL_0038:  ldloc.1 
+	IL_0039:  brtrue IL_006d
 
-	IL_0092:  nop 
-	IL_0093:  ldloc.1 
-	IL_0094:  ldloc.s 8
-	IL_0096:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_009b:  ldloc.3 
-	IL_009c:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_00a1:  nop 
-	IL_00a2:  nop 
-	IL_00a3:  ldloc.s 5
-	IL_00a5:  ldc.i4.1 
-	IL_00a6:  add 
-	IL_00a7:  stloc.s 5
-	IL_00a9:  ldloc.s 5
-	IL_00ab:  ldloc.s 4
-	IL_00ad:  ldlen 
-	IL_00ae:  conv.i4 
-	IL_00af:  blt IL_002c
+	IL_003e:  nop 
+	IL_003f:  ldarg.1 
+	IL_0040:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0045:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	IL_004a:  ldarg.0 
+	IL_004b:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	IL_0050:  stloc.2 
+	IL_0051:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0056:  ldstr "NA1082"
+	IL_005b:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0060:  ldloc.0 
+	IL_0061:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0066:  ldloc.2 
+	IL_0067:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_006c:  throw 
+	IL_006d:  ldloc.1 
+	IL_006e:  callvirt instance class NAnt.Core.Filters.Filter class NAnt.Core.Filters.FilterBuilder::CreateFilter()
+	IL_0073:  stloc.3 
+	IL_0074:  ldloc.3 
+	IL_0075:  ldarg.1 
+	IL_0076:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_007b:  ldloc.3 
+	IL_007c:  ldarg.1 
+	IL_007d:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0082:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_0087:  ldloc.3 
+	IL_0088:  ldarg.1 
+	IL_0089:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_008e:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
+	IL_0093:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0098:  ldloc.3 
+	IL_0099:  ldarg.0 
+	IL_009a:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode)
+	IL_009f:  ldloc.3 
+	IL_00a0:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_00a5:  ldtoken [mscorlib]System.ObsoleteAttribute
+	IL_00aa:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_00af:  ldc.i4.1 
+	IL_00b0:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_00b5:  castclass [mscorlib]System.ObsoleteAttribute
+	IL_00ba:  stloc.s 4
+	IL_00bc:  ldloc.s 4
+	IL_00be:  brfalse IL_0134
 
-	IL_00b4:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_00b9:  stloc.s 9
-	IL_00bb:  nop 
-	IL_00bc:  ldarg.0 
-	IL_00bd:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	IL_00c2:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::get_ChildNodes()
-	IL_00c7:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_00cc:  stloc.s 11
-	.try { // 1
-	  IL_00ce:  br IL_01e3
+	IL_00c3:  nop 
+	IL_00c4:  ldarg.1 
+	IL_00c5:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_00ca:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	IL_00cf:  ldarg.0 
+	IL_00d0:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	IL_00d5:  stloc.s 5
+	IL_00d7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00dc:  ldstr "NA1079"
+	IL_00e1:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00e6:  ldloc.0 
+	IL_00e7:  ldloc.s 4
+	IL_00e9:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
+	IL_00ee:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_00f3:  stloc.s 6
+	IL_00f5:  ldloc.s 4
+	IL_00f7:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
+	IL_00fc:  brfalse IL_010c
 
-	  IL_00d3:  ldloc.s 11
-	  IL_00d5:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_00da:  castclass [System.Xml]System.Xml.XmlNode
-	  IL_00df:  stloc.s 10
-	  IL_00e1:  nop 
-	  IL_00e2:  ldloc.s 10
-	  IL_00e4:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_00e9:  stloc.s 12
-	  IL_00eb:  ldarg.0 
-	  IL_00ec:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
-	  IL_00f1:  ldloc.s 12
-	  IL_00f3:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	  IL_00f8:  brtrue IL_0103
+	IL_0101:  nop 
+	IL_0102:  ldloc.s 6
+	IL_0104:  ldloc.s 5
+	IL_0106:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_010b:  throw 
+	IL_010c:  nop 
+	IL_010d:  ldarg.1 
+	IL_010e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0113:  ldc.i4 4000
+	IL_0118:  ldstr "{0} {1}"
+	IL_011d:  ldc.i4.2 
+	IL_011e:  newarr [mscorlib]System.Object
+	IL_0123:  dup 
+	IL_0124:  ldc.i4.0 
+	IL_0125:  ldloc.s 5
+	IL_0127:  stelem.ref 
+	IL_0128:  dup 
+	IL_0129:  ldc.i4.1 
+	IL_012a:  ldloc.s 6
+	IL_012c:  stelem.ref 
+	IL_012d:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0132:  nop 
+	IL_0133:  nop 
+	IL_0134:  ldloc.3 
+	IL_0135:  stloc.s 7
+	IL_0137:  br IL_013c
 
-	  IL_00fd:  nop 
-	  IL_00fe:  leave IL_01e3
+	IL_013c:  ldloc.s 7
+	IL_013e:  ret 
+    } // end of method TypeFactory::CreateFilter
 
-	  IL_0103:  ldloc.0 
-	  IL_0104:  ldloc.s 12
-	  IL_0106:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_010b:  castclass [mscorlib]System.Reflection.MethodInfo
-	  IL_0110:  stloc.s 13
-	  IL_0112:  ldloc.s 13
-	  IL_0114:  ldnull 
-	  IL_0115:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	  IL_011a:  brfalse IL_0125
+    // method line 1608
+    .method public static hidebysig 
+           default class NAnt.Core.DataTypeBase CreateDataType (class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.Project proj)  cil managed 
+    {
+        // Method begins at RVA 0x1d4cc
+	// Code size 280 (0x118)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		class NAnt.Core.DataTypeBaseBuilder	V_1,
+		class NAnt.Core.Location	V_2,
+		class NAnt.Core.DataTypeBase	V_3,
+		class [mscorlib]System.ObsoleteAttribute	V_4,
+		class NAnt.Core.Location	V_5,
+		string	V_6,
+		class NAnt.Core.DataTypeBase	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  brtrue IL_0013
 
-	  IL_011f:  nop 
-	  IL_0120:  leave IL_01e3
+	IL_0007:  nop 
+	IL_0008:  ldstr "elementNode"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.1 
+	IL_0014:  brtrue IL_0025
 
-	  IL_0125:  ldloc.s 9
-	  IL_0127:  ldloc.s 12
-	  IL_0129:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	  IL_012e:  brtrue IL_013f
+	IL_0019:  nop 
+	IL_001a:  ldstr "proj"
+	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0024:  throw 
+	IL_0025:  ldarg.0 
+	IL_0026:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_002b:  stloc.0 
+	IL_002c:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
+	IL_0031:  ldloc.0 
+	IL_0032:  callvirt instance class NAnt.Core.DataTypeBaseBuilder class NAnt.Core.DataTypeBaseBuilderCollection::get_Item(string)
+	IL_0037:  stloc.1 
+	IL_0038:  ldloc.1 
+	IL_0039:  brtrue IL_0068
 
-	  IL_0133:  nop 
-	  IL_0134:  ldloc.s 9
-	  IL_0136:  ldloc.s 12
-	  IL_0138:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_013d:  pop 
-	  IL_013e:  nop 
-	  IL_013f:  ldloc.1 
-	  IL_0140:  ldloc.s 12
-	  IL_0142:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	  IL_0147:  brfalse IL_0156
+	IL_003e:  nop 
+	IL_003f:  ldarg.1 
+	IL_0040:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	IL_0045:  ldarg.0 
+	IL_0046:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	IL_004b:  stloc.2 
+	IL_004c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0051:  ldstr "NA1081"
+	IL_0056:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_005b:  ldloc.0 
+	IL_005c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0061:  ldloc.2 
+	IL_0062:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0067:  throw 
+	IL_0068:  ldloc.1 
+	IL_0069:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.DataTypeBaseBuilder::CreateDataTypeBase()
+	IL_006e:  stloc.3 
+	IL_006f:  ldloc.3 
+	IL_0070:  ldarg.1 
+	IL_0071:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_0076:  ldloc.3 
+	IL_0077:  ldarg.1 
+	IL_0078:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
+	IL_007d:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0082:  ldloc.3 
+	IL_0083:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0088:  ldtoken [mscorlib]System.ObsoleteAttribute
+	IL_008d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0092:  ldc.i4.1 
+	IL_0093:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_0098:  castclass [mscorlib]System.ObsoleteAttribute
+	IL_009d:  stloc.s 4
+	IL_009f:  ldloc.s 4
+	IL_00a1:  brfalse IL_010d
 
-	  IL_014c:  nop 
-	  IL_014d:  ldloc.1 
-	  IL_014e:  ldloc.s 12
-	  IL_0150:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
-	  IL_0155:  nop 
-	  IL_0156:  ldloc.s 13
-	  IL_0158:  ldtoken NAnt.Core.Attributes.BuildElementAttribute
-	  IL_015d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0162:  ldc.i4.0 
-	  IL_0163:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	  IL_0168:  castclass NAnt.Core.Attributes.BuildElementAttribute
-	  IL_016d:  stloc.s 14
-	  IL_016f:  ldloc.s 14
-	  IL_0171:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_ProcessXml()
-	  IL_0176:  brtrue IL_0181
+	IL_00a6:  nop 
+	IL_00a7:  ldarg.1 
+	IL_00a8:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	IL_00ad:  ldarg.0 
+	IL_00ae:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	IL_00b3:  stloc.s 5
+	IL_00b5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00ba:  ldstr "NA1085"
+	IL_00bf:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00c4:  ldloc.0 
+	IL_00c5:  ldloc.s 4
+	IL_00c7:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
+	IL_00cc:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_00d1:  stloc.s 6
+	IL_00d3:  ldloc.s 4
+	IL_00d5:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
+	IL_00da:  brfalse IL_00ea
 
-	  IL_017b:  nop 
-	  IL_017c:  leave IL_01e3
+	IL_00df:  nop 
+	IL_00e0:  ldloc.s 6
+	IL_00e2:  ldloc.s 5
+	IL_00e4:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_00e9:  throw 
+	IL_00ea:  nop 
+	IL_00eb:  ldarg.1 
+	IL_00ec:  ldc.i4 4000
+	IL_00f1:  ldstr "{0} {1}"
+	IL_00f6:  ldc.i4.2 
+	IL_00f7:  newarr [mscorlib]System.Object
+	IL_00fc:  dup 
+	IL_00fd:  ldc.i4.0 
+	IL_00fe:  ldloc.s 5
+	IL_0100:  stelem.ref 
+	IL_0101:  dup 
+	IL_0102:  ldc.i4.1 
+	IL_0103:  ldloc.s 6
+	IL_0105:  stelem.ref 
+	IL_0106:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_010b:  nop 
+	IL_010c:  nop 
+	IL_010d:  ldloc.3 
+	IL_010e:  stloc.s 7
+	IL_0110:  br IL_0115
 
-	  IL_0181:  ldloc.s 13
-	  IL_0183:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	  IL_0188:  ldc.i4.0 
-	  IL_0189:  ldelem.ref 
-	  IL_018a:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	  IL_018f:  stloc.s 15
-	  IL_0191:  ldarg.0 
-	  IL_0192:  ldloc.s 10
-	  IL_0194:  ldloc.s 15
-	  IL_0196:  callvirt instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::InitializeBuildElement(class [System.Xml]System.Xml.XmlNode, class [mscorlib]System.Type)
-	  IL_019b:  stloc.s 16
-	  .try { // 0
-	    IL_019d:  nop 
-	    IL_019e:  ldloc.s 13
-	    IL_01a0:  ldarg.0 
-	    IL_01a1:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	    IL_01a6:  ldc.i4 256
-	    IL_01ab:  ldnull 
-	    IL_01ac:  ldc.i4.1 
-	    IL_01ad:  newarr [mscorlib]System.Object
-	    IL_01b2:  dup 
-	    IL_01b3:  ldc.i4.0 
-	    IL_01b4:  ldloc.s 16
-	    IL_01b6:  stelem.ref 
-	    IL_01b7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_01bc:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	    IL_01c1:  pop 
-	    IL_01c2:  nop 
-	    IL_01c3:  leave IL_01e2
+	IL_0115:  ldloc.s 7
+	IL_0117:  ret 
+    } // end of method TypeFactory::CreateDataType
 
-	  } // end .try 0
-	  catch class [mscorlib]System.Reflection.TargetInvocationException { // 0
-	    IL_01c8:  stloc.s 17
-	    IL_01ca:  nop 
-	    IL_01cb:  ldloc.s 17
-	    IL_01cd:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
-	    IL_01d2:  brfalse IL_01e0
+    // method line 1609
+    .method private static hidebysig 
+           default bool ScanTypeForTasks (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, class [mscorlib]System.Type 'type', class NAnt.Core.Task task)  cil managed 
+    {
+        // Method begins at RVA 0x1d5f0
+	// Code size 254 (0xfe)
+	.maxstack 7
+	.locals init (
+		class NAnt.Core.Attributes.TaskNameAttribute	V_0,
+		class NAnt.Core.TaskBuilder	V_1,
+		bool	V_2)
+	IL_0000:  nop 
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  ldtoken NAnt.Core.Attributes.TaskNameAttribute
+	  IL_0008:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_000d:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	  IL_0012:  castclass NAnt.Core.Attributes.TaskNameAttribute
+	  IL_0017:  stloc.0 
+	  IL_0018:  ldarg.1 
+	  IL_0019:  ldtoken NAnt.Core.Task
+	  IL_001e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0023:  callvirt instance bool class [mscorlib]System.Type::IsSubclassOf(class [mscorlib]System.Type)
+	  IL_0028:  brfalse IL_00d1
 
-	    IL_01d7:  nop 
-	    IL_01d8:  ldloc.s 17
-	    IL_01da:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
-	    IL_01df:  throw 
-	    IL_01e0:  rethrow 
-	  } // end handler 0
-	  IL_01e2:  nop 
-	  IL_01e3:  ldloc.s 11
-	  IL_01e5:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_01ea:  brtrue IL_00d3
+	  IL_002d:  ldarg.1 
+	  IL_002e:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
+	  IL_0033:  brtrue IL_00d1
 
-	  IL_01ef:  leave IL_020b
+	  IL_0038:  ldloc.0 
+	  IL_0039:  brfalse IL_00d1
 
-	} // end .try 1
-	finally  { // 1
-	  IL_01f4:  ldloc.s 11
-	  IL_01f6:  isinst [mscorlib]System.IDisposable
-	  IL_01fb:  dup 
-	  IL_01fc:  stloc.s 18
-	  IL_01fe:  brfalse IL_020a
+	  IL_003e:  nop 
+	  IL_003f:  ldarg.2 
+	  IL_0040:  ldc.i4 1000
+	  IL_0045:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_004a:  ldstr "String_CreatingTaskBuilder"
+	  IL_004f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0054:  ldarg.1 
+	  IL_0055:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	  IL_005a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_005f:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	  IL_0064:  ldarg.0 
+	  IL_0065:  ldarg.1 
+	  IL_0066:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	  IL_006b:  newobj instance void class NAnt.Core.TaskBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, string)
+	  IL_0070:  stloc.1 
+	  IL_0071:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
+	  IL_0076:  ldloc.1 
+	  IL_0077:  callvirt instance string class NAnt.Core.TaskBuilder::get_TaskName()
+	  IL_007c:  callvirt instance class NAnt.Core.TaskBuilder class NAnt.Core.TaskBuilderCollection::get_Item(string)
+	  IL_0081:  brtrue IL_00ca
 
-	  IL_0203:  ldloc.s 18
-	  IL_0205:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_020a:  endfinally 
-	} // end handler 1
-	IL_020b:  nop 
-	IL_020c:  ldloc.s 9
-	IL_020e:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0213:  stloc.s 20
-	.try { // 2
-	  IL_0215:  br IL_0232
+	  IL_0086:  nop 
+	  IL_0087:  ldarg.2 
+	  IL_0088:  ldc.i4 1000
+	  IL_008d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0092:  ldstr "String_AddingTask"
+	  IL_0097:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_009c:  ldloc.1 
+	  IL_009d:  callvirt instance string class NAnt.Core.TaskBuilder::get_TaskName()
+	  IL_00a2:  ldloc.1 
+	  IL_00a3:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
+	  IL_00a8:  call string class NAnt.Core.TypeFactory::GetAssemblyLocation(class [mscorlib]System.Reflection.Assembly)
+	  IL_00ad:  ldloc.1 
+	  IL_00ae:  callvirt instance string class NAnt.Core.TaskBuilder::get_ClassName()
+	  IL_00b3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_00b8:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	  IL_00bd:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
+	  IL_00c2:  ldloc.1 
+	  IL_00c3:  callvirt instance int32 class NAnt.Core.TaskBuilderCollection::Add(class NAnt.Core.TaskBuilder)
+	  IL_00c8:  pop 
+	  IL_00c9:  nop 
+	  IL_00ca:  ldc.i4.1 
+	  IL_00cb:  stloc.2 
+	  IL_00cc:  leave IL_00fc
 
-	  IL_021a:  ldloc.s 20
-	  IL_021c:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0221:  stloc.s 19
-	  IL_0223:  nop 
-	  IL_0224:  ldarg.0 
-	  IL_0225:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
-	  IL_022a:  ldloc.s 19
-	  IL_022c:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Remove(string)
-	  IL_0231:  nop 
-	  IL_0232:  ldloc.s 20
-	  IL_0234:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0239:  brtrue IL_021a
+	  IL_00d1:  nop 
+	  IL_00d2:  ldc.i4.0 
+	  IL_00d3:  stloc.2 
+	  IL_00d4:  leave IL_00fc
 
-	  IL_023e:  leave IL_025a
+	} // end .try 0
+	catch class [mscorlib]System.Object { // 0
+	  IL_00d9:  pop 
+	  IL_00da:  nop 
+	  IL_00db:  ldarg.2 
+	  IL_00dc:  ldc.i4 5000
+	  IL_00e1:  ldstr "Failure scanning \"{0}\" for tasks."
+	  IL_00e6:  ldc.i4.1 
+	  IL_00e7:  newarr [mscorlib]System.Object
+	  IL_00ec:  dup 
+	  IL_00ed:  ldc.i4.0 
+	  IL_00ee:  ldarg.1 
+	  IL_00ef:  callvirt instance string class [mscorlib]System.Type::get_AssemblyQualifiedName()
+	  IL_00f4:  stelem.ref 
+	  IL_00f5:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_00fa:  rethrow 
+	} // end handler 0
+	IL_00fc:  ldloc.2 
+	IL_00fd:  ret 
+    } // end of method TypeFactory::ScanTypeForTasks
 
-	} // end .try 2
-	finally  { // 2
-	  IL_0243:  ldloc.s 20
-	  IL_0245:  isinst [mscorlib]System.IDisposable
-	  IL_024a:  dup 
-	  IL_024b:  stloc.s 21
-	  IL_024d:  brfalse IL_0259
+    // method line 1610
+    .method private static hidebysig 
+           default bool ScanTypeForDataTypes (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, class [mscorlib]System.Type 'type', class NAnt.Core.Task task)  cil managed 
+    {
+        // Method begins at RVA 0x1d70c
+	// Code size 252 (0xfc)
+	.maxstack 7
+	.locals init (
+		class NAnt.Core.Attributes.ElementNameAttribute	V_0,
+		class NAnt.Core.DataTypeBaseBuilder	V_1,
+		bool	V_2)
+	IL_0000:  nop 
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
+	  IL_0008:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_000d:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	  IL_0012:  castclass NAnt.Core.Attributes.ElementNameAttribute
+	  IL_0017:  stloc.0 
+	  IL_0018:  ldarg.1 
+	  IL_0019:  ldtoken NAnt.Core.DataTypeBase
+	  IL_001e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0023:  callvirt instance bool class [mscorlib]System.Type::IsSubclassOf(class [mscorlib]System.Type)
+	  IL_0028:  brfalse IL_00cf
 
-	  IL_0252:  ldloc.s 21
-	  IL_0254:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0259:  endfinally 
-	} // end handler 2
-	IL_025a:  ldloc.1 
-	IL_025b:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
-	IL_0260:  ldc.i4.0 
-	IL_0261:  ble IL_02e4
+	  IL_002d:  ldarg.1 
+	  IL_002e:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
+	  IL_0033:  brtrue IL_00cf
 
-	IL_0266:  nop 
-	IL_0267:  nop 
-	IL_0268:  ldloc.1 
-	IL_0269:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_026e:  stloc.s 23
-	.try { // 3
-	  IL_0270:  br IL_02bb
+	  IL_0038:  ldloc.0 
+	  IL_0039:  brfalse IL_00cf
 
-	  IL_0275:  ldloc.s 23
-	  IL_0277:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_027c:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_0281:  stloc.s 22
-	  IL_0283:  nop 
-	  IL_0284:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0289:  ldstr "NA1021"
-	  IL_028e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0293:  ldloca.s 22
-	  IL_0295:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_029a:  castclass [mscorlib]System.String
-	  IL_029f:  ldarg.0 
-	  IL_02a0:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
-	  IL_02a5:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_02aa:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_02af:  ldarg.0 
-	  IL_02b0:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	  IL_02b5:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_02ba:  throw 
-	  IL_02bb:  ldloc.s 23
-	  IL_02bd:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_02c2:  brtrue IL_0275
+	  IL_003e:  nop 
+	  IL_003f:  ldsfld class [log4net]log4net.ILog NAnt.Core.TypeFactory::logger
+	  IL_0044:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0049:  ldstr "String_CreatingDataTypeBaseBuilder"
+	  IL_004e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0053:  ldarg.1 
+	  IL_0054:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	  IL_0059:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_005e:  callvirt instance void class [log4net]log4net.ILog::Info(object)
+	  IL_0063:  ldarg.0 
+	  IL_0064:  ldarg.1 
+	  IL_0065:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	  IL_006a:  newobj instance void class NAnt.Core.DataTypeBaseBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, string)
+	  IL_006f:  stloc.1 
+	  IL_0070:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
+	  IL_0075:  ldloc.1 
+	  IL_0076:  callvirt instance string class NAnt.Core.DataTypeBaseBuilder::get_DataTypeName()
+	  IL_007b:  callvirt instance class NAnt.Core.DataTypeBaseBuilder class NAnt.Core.DataTypeBaseBuilderCollection::get_Item(string)
+	  IL_0080:  brtrue IL_00c8
 
-	  IL_02c7:  leave IL_02e3
+	  IL_0085:  nop 
+	  IL_0086:  ldsfld class [log4net]log4net.ILog NAnt.Core.TypeFactory::logger
+	  IL_008b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0090:  ldstr "String_AddingDataType"
+	  IL_0095:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_009a:  ldloc.1 
+	  IL_009b:  callvirt instance string class NAnt.Core.DataTypeBaseBuilder::get_DataTypeName()
+	  IL_00a0:  ldloc.1 
+	  IL_00a1:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
+	  IL_00a6:  call string class NAnt.Core.TypeFactory::GetAssemblyLocation(class [mscorlib]System.Reflection.Assembly)
+	  IL_00ab:  ldloc.1 
+	  IL_00ac:  callvirt instance string class NAnt.Core.DataTypeBaseBuilder::get_ClassName()
+	  IL_00b1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_00b6:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
+	  IL_00bb:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
+	  IL_00c0:  ldloc.1 
+	  IL_00c1:  callvirt instance int32 class NAnt.Core.DataTypeBaseBuilderCollection::Add(class NAnt.Core.DataTypeBaseBuilder)
+	  IL_00c6:  pop 
+	  IL_00c7:  nop 
+	  IL_00c8:  ldc.i4.1 
+	  IL_00c9:  stloc.2 
+	  IL_00ca:  leave IL_00fa
 
-	} // end .try 3
-	finally  { // 3
-	  IL_02cc:  ldloc.s 23
-	  IL_02ce:  isinst [mscorlib]System.IDisposable
-	  IL_02d3:  dup 
-	  IL_02d4:  stloc.s 24
-	  IL_02d6:  brfalse IL_02e2
+	  IL_00cf:  nop 
+	  IL_00d0:  ldc.i4.0 
+	  IL_00d1:  stloc.2 
+	  IL_00d2:  leave IL_00fa
 
-	  IL_02db:  ldloc.s 24
-	  IL_02dd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_02e2:  endfinally 
-	} // end handler 3
-	IL_02e3:  nop 
-	IL_02e4:  ret 
-    } // end of method AttributeConfigurator::InitializeOrderedChildElements
+	} // end .try 0
+	catch class [mscorlib]System.Object { // 0
+	  IL_00d7:  pop 
+	  IL_00d8:  nop 
+	  IL_00d9:  ldarg.2 
+	  IL_00da:  ldc.i4 5000
+	  IL_00df:  ldstr "Failure scanning \"{0}\" for data types."
+	  IL_00e4:  ldc.i4.1 
+	  IL_00e5:  newarr [mscorlib]System.Object
+	  IL_00ea:  dup 
+	  IL_00eb:  ldc.i4.0 
+	  IL_00ec:  ldarg.1 
+	  IL_00ed:  callvirt instance string class [mscorlib]System.Type::get_AssemblyQualifiedName()
+	  IL_00f2:  stelem.ref 
+	  IL_00f3:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_00f8:  rethrow 
+	} // end handler 0
+	IL_00fa:  ldloc.2 
+	IL_00fb:  ret 
+    } // end of method TypeFactory::ScanTypeForDataTypes
 
-    // method line 1806
-    .method family virtual hidebysig newslot 
-           instance default class NAnt.Core.Element InitializeBuildElement (class [System.Xml]System.Xml.XmlNode childNode, class [mscorlib]System.Type elementType)  cil managed 
+    // method line 1611
+    .method private static hidebysig 
+           default bool ScanTypeForFunctions (class [mscorlib]System.Type 'type', class NAnt.Core.Task task)  cil managed 
     {
-        // Method begins at RVA 0x6278
-	// Code size 110 (0x6e)
-	.maxstack 5
+        // Method begins at RVA 0x1d824
+	// Code size 333 (0x14d)
+	.maxstack 7
 	.locals init (
-		class NAnt.Core.Element	V_0,
-		class NAnt.Core.Element	V_1)
+		class NAnt.Core.Attributes.FunctionSetAttribute	V_0,
+		bool	V_1,
+		bool	V_2,
+		string	V_3,
+		class [mscorlib]System.Reflection.MethodInfo	V_4,
+		class [mscorlib]System.Reflection.MethodInfo[]	V_5,
+		int32	V_6,
+		class NAnt.Core.Attributes.FunctionAttribute	V_7)
 	IL_0000:  nop 
-	IL_0001:  ldtoken NAnt.Core.Element
-	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000b:  ldarg.2 
-	IL_000c:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_0011:  brtrue IL_0043
-
-	IL_0016:  nop 
-	IL_0017:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001c:  ldstr "NA1187"
-	IL_0021:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0026:  ldarg.1 
-	IL_0027:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_002c:  ldarg.2 
-	IL_002d:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0032:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0037:  ldarg.0 
-	IL_0038:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_003d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0042:  throw 
-	IL_0043:  ldarg.2 
-	IL_0044:  ldc.i4.s 0x34
-	IL_0046:  ldnull 
-	IL_0047:  ldnull 
-	IL_0048:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_004d:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_0052:  castclass NAnt.Core.Element
-	IL_0057:  stloc.0 
-	IL_0058:  ldarg.0 
-	IL_0059:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_005e:  ldarg.1 
-	IL_005f:  ldloc.0 
-	IL_0060:  ldarg.2 
-	IL_0061:  call class NAnt.Core.Element class NAnt.Core.Element::InitializeBuildElement(class NAnt.Core.Element, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Element, class [mscorlib]System.Type)
-	IL_0066:  stloc.1 
-	IL_0067:  br IL_006c
-
-	IL_006c:  ldloc.1 
-	IL_006d:  ret 
-    } // end of method AttributeConfigurator::InitializeBuildElement
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.0 
+	  IL_0003:  ldtoken NAnt.Core.Attributes.FunctionSetAttribute
+	  IL_0008:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_000d:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	  IL_0012:  castclass NAnt.Core.Attributes.FunctionSetAttribute
+	  IL_0017:  stloc.0 
+	  IL_0018:  ldloc.0 
+	  IL_0019:  brtrue IL_0026
 
-    // method line 1807
-    .method private hidebysig 
-           instance default class NAnt.Core.Element CreateChildBuildElement (class [mscorlib]System.Reflection.PropertyInfo propInf, class [mscorlib]System.Reflection.MethodInfo getter, class [mscorlib]System.Reflection.MethodInfo setter, class [System.Xml]System.Xml.XmlNode xml, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo framework)  cil managed 
-    {
-        // Method begins at RVA 0x62f4
-	// Code size 551 (0x227)
-	.maxstack 6
-	.locals init (
-		class NAnt.Core.Element	V_0,
-		class [mscorlib]System.Type	V_1,
-		class NAnt.Core.DataTypeBase	V_2,
-		class NAnt.Core.Element	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldnull 
-	IL_0004:  stloc.1 
-	IL_0005:  ldarg.2 
-	IL_0006:  ldnull 
-	IL_0007:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Inequality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_000c:  brfalse IL_010e
+	  IL_001e:  nop 
+	  IL_001f:  ldc.i4.0 
+	  IL_0020:  stloc.1 
+	  IL_0021:  leave IL_014b
 
-	IL_0011:  nop 
-	.try { // 0
-	  IL_0012:  nop 
-	  IL_0013:  ldarg.1 
-	  IL_0014:  ldarg.0 
-	  IL_0015:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	  IL_001a:  ldnull 
-	  IL_001b:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, object[])
-	  IL_0020:  castclass NAnt.Core.Element
-	  IL_0025:  stloc.0 
-	  IL_0026:  nop 
-	  IL_0027:  leave IL_0090
+	  IL_0026:  ldarg.0 
+	  IL_0027:  ldtoken NAnt.Core.ExpressionEvaluator
+	  IL_002c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0031:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_0036:  stloc.2 
+	  IL_0037:  ldarg.0 
+	  IL_0038:  ldtoken NAnt.Core.FunctionSetBase
+	  IL_003d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0042:  callvirt instance bool class [mscorlib]System.Type::IsSubclassOf(class [mscorlib]System.Type)
+	  IL_0047:  brfalse IL_005b
 
-	} // end .try 0
-	catch class [mscorlib]System.InvalidCastException { // 0
-	  IL_002c:  pop 
-	  IL_002d:  nop 
-	  IL_002e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0033:  ldstr "NA1188"
-	  IL_0038:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_003d:  ldc.i4.4 
-	  IL_003e:  newarr [mscorlib]System.Object
-	  IL_0043:  dup 
-	  IL_0044:  ldc.i4.0 
-	  IL_0045:  ldarg.1 
-	  IL_0046:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	  IL_004b:  stelem.ref 
-	  IL_004c:  dup 
-	  IL_004d:  ldc.i4.1 
-	  IL_004e:  ldarg.0 
-	  IL_004f:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	  IL_0054:  callvirt instance class [mscorlib]System.Type object::GetType()
-	  IL_0059:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	  IL_005e:  stelem.ref 
-	  IL_005f:  dup 
-	  IL_0060:  ldc.i4.2 
-	  IL_0061:  ldarg.1 
-	  IL_0062:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	  IL_0067:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	  IL_006c:  stelem.ref 
-	  IL_006d:  dup 
-	  IL_006e:  ldc.i4.3 
-	  IL_006f:  ldtoken NAnt.Core.Element
-	  IL_0074:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0079:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	  IL_007e:  stelem.ref 
-	  IL_007f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	  IL_0084:  ldarg.0 
-	  IL_0085:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	  IL_008a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_008f:  throw 
-	} // end handler 0
-	IL_0090:  ldloc.0 
-	IL_0091:  brtrue IL_0104
+	  IL_004c:  ldarg.0 
+	  IL_004d:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
+	  IL_0052:  brtrue IL_005b
 
-	IL_0096:  nop 
-	IL_0097:  ldarg.3 
-	IL_0098:  ldnull 
-	IL_0099:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_009e:  brfalse IL_00da
+	  IL_0057:  nop 
+	  IL_0058:  ldc.i4.1 
+	  IL_0059:  stloc.2 
+	  IL_005a:  nop 
+	  IL_005b:  ldloc.2 
+	  IL_005c:  brfalse IL_0120
 
-	IL_00a3:  nop 
-	IL_00a4:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00a9:  ldstr "NA1189"
-	IL_00ae:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00b3:  ldarg.1 
-	IL_00b4:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_00b9:  ldarg.0 
-	IL_00ba:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_00bf:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_00c4:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_00c9:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_00ce:  ldarg.0 
-	IL_00cf:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_00d4:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_00d9:  throw 
-	IL_00da:  nop 
-	IL_00db:  ldnull 
-	IL_00dc:  starg.s 2
-	IL_00de:  ldsfld class [log4net]log4net.ILog NAnt.Core.Element/AttributeConfigurator::logger
-	IL_00e3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00e8:  ldstr "{0}_get() returned null; will go the route of set method to populate."
-	IL_00ed:  ldarg.1 
-	IL_00ee:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_00f3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00f8:  callvirt instance void class [log4net]log4net.ILog::Info(object)
-	IL_00fd:  nop 
-	IL_00fe:  nop 
-	IL_00ff:  br IL_010d
+	  IL_0061:  nop 
+	  IL_0062:  ldloc.0 
+	  IL_0063:  callvirt instance string class NAnt.Core.Attributes.FunctionSetAttribute::get_Prefix()
+	  IL_0068:  stloc.3 
+	  IL_0069:  ldloc.3 
+	  IL_006a:  brfalse IL_0092
 
-	IL_0104:  nop 
-	IL_0105:  ldloc.0 
-	IL_0106:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_010b:  stloc.1 
-	IL_010c:  nop 
-	IL_010d:  nop 
-	IL_010e:  ldarg.2 
-	IL_010f:  ldnull 
-	IL_0110:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_0115:  brfalse IL_0177
+	  IL_006f:  ldloc.3 
+	  IL_0070:  ldsfld string [mscorlib]System.String::Empty
+	  IL_0075:  call bool string::op_Inequality(string, string)
+	  IL_007a:  brfalse IL_0092
 
-	IL_011a:  nop 
-	IL_011b:  ldarg.3 
-	IL_011c:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_0121:  ldc.i4.0 
-	IL_0122:  ldelem.ref 
-	IL_0123:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	IL_0128:  stloc.1 
-	IL_0129:  ldloc.1 
-	IL_012a:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
-	IL_012f:  brfalse IL_0161
+	  IL_007f:  nop 
+	  IL_0080:  ldloc.3 
+	  IL_0081:  ldstr "::"
+	  IL_0086:  call string string::Concat(string, string)
+	  IL_008b:  stloc.3 
+	  IL_008c:  nop 
+	  IL_008d:  br IL_00b9
 
-	IL_0134:  nop 
-	IL_0135:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_013a:  ldstr "String_AbstractType"
-	IL_013f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0144:  ldloc.1 
-	IL_0145:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_014a:  ldarg.1 
-	IL_014b:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_0150:  ldarg.0 
-	IL_0151:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
-	IL_0156:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_015b:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
-	IL_0160:  throw 
-	IL_0161:  ldloc.1 
-	IL_0162:  ldc.i4.s 0x34
-	IL_0164:  ldnull 
-	IL_0165:  ldnull 
-	IL_0166:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_016b:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	IL_0170:  castclass NAnt.Core.Element
-	IL_0175:  stloc.0 
-	IL_0176:  nop 
-	IL_0177:  ldarg.0 
-	IL_0178:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_017d:  ldarg.s 4
-	IL_017f:  ldloc.0 
-	IL_0180:  ldloc.1 
-	IL_0181:  call class NAnt.Core.Element class NAnt.Core.Element::InitializeBuildElement(class NAnt.Core.Element, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Element, class [mscorlib]System.Type)
-	IL_0186:  stloc.0 
-	IL_0187:  ldloc.0 
-	IL_0188:  isinst NAnt.Core.DataTypeBase
-	IL_018d:  stloc.2 
-	IL_018e:  ldloc.2 
-	IL_018f:  brfalse IL_01ed
+	  IL_0092:  nop 
+	  IL_0093:  ldarg.1 
+	  IL_0094:  ldc.i4 4000
+	  IL_0099:  ldstr "Ignoring functions in type \"{0}\": no prefix was set."
+	  IL_009e:  ldc.i4.1 
+	  IL_009f:  newarr [mscorlib]System.Object
+	  IL_00a4:  dup 
+	  IL_00a5:  ldc.i4.0 
+	  IL_00a6:  ldarg.0 
+	  IL_00a7:  callvirt instance string class [mscorlib]System.Type::get_AssemblyQualifiedName()
+	  IL_00ac:  stelem.ref 
+	  IL_00ad:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_00b2:  ldc.i4.0 
+	  IL_00b3:  stloc.1 
+	  IL_00b4:  leave IL_014b
 
-	IL_0194:  ldarg.s 4
-	IL_0196:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_019b:  ldstr "refid"
-	IL_01a0:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_01a5:  brfalse IL_01ed
+	  IL_00b9:  nop 
+	  IL_00ba:  ldarg.0 
+	  IL_00bb:  ldc.i4.s 0x1c
+	  IL_00bd:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
+	  IL_00c2:  stloc.s 5
+	  IL_00c4:  ldc.i4.0 
+	  IL_00c5:  stloc.s 6
+	  IL_00c7:  br IL_010e
 
-	IL_01aa:  nop 
-	IL_01ab:  ldarg.3 
-	IL_01ac:  ldnull 
-	IL_01ad:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_01b2:  brfalse IL_01e9
+	  IL_00cc:  ldloc.s 5
+	  IL_00ce:  ldloc.s 6
+	  IL_00d0:  ldelem.ref 
+	  IL_00d1:  stloc.s 4
+	  IL_00d3:  nop 
+	  IL_00d4:  ldloc.s 4
+	  IL_00d6:  ldtoken NAnt.Core.Attributes.FunctionAttribute
+	  IL_00db:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_00e0:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	  IL_00e5:  castclass NAnt.Core.Attributes.FunctionAttribute
+	  IL_00ea:  stloc.s 7
+	  IL_00ec:  ldloc.s 7
+	  IL_00ee:  brfalse IL_0107
 
-	IL_01b7:  nop 
-	IL_01b8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01bd:  ldstr "NA1190"
-	IL_01c2:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_01c7:  ldarg.1 
-	IL_01c8:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_01cd:  ldarg.0 
-	IL_01ce:  call instance class [mscorlib]System.Type object::GetType()
-	IL_01d3:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_01d8:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_01dd:  ldarg.0 
-	IL_01de:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
-	IL_01e3:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_01e8:  throw 
-	IL_01e9:  ldnull 
-	IL_01ea:  starg.s 2
-	IL_01ec:  nop 
-	IL_01ed:  ldarg.3 
-	IL_01ee:  ldnull 
-	IL_01ef:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Inequality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_01f4:  brfalse IL_021e
+	  IL_00f3:  ldloc.3 
+	  IL_00f4:  ldloc.s 7
+	  IL_00f6:  callvirt instance string class NAnt.Core.Attributes.FunctionAttribute::get_Name()
+	  IL_00fb:  call string string::Concat(string, string)
+	  IL_0100:  ldloc.s 4
+	  IL_0102:  call void class NAnt.Core.TypeFactory::RegisterFunction(string, class [mscorlib]System.Reflection.MethodInfo)
+	  IL_0107:  nop 
+	  IL_0108:  ldloc.s 6
+	  IL_010a:  ldc.i4.1 
+	  IL_010b:  add 
+	  IL_010c:  stloc.s 6
+	  IL_010e:  ldloc.s 6
+	  IL_0110:  ldloc.s 5
+	  IL_0112:  ldlen 
+	  IL_0113:  conv.i4 
+	  IL_0114:  blt IL_00cc
 
-	IL_01f9:  ldarg.2 
-	IL_01fa:  ldnull 
-	IL_01fb:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_0200:  brfalse IL_021e
+	  IL_0119:  ldc.i4.1 
+	  IL_011a:  stloc.1 
+	  IL_011b:  leave IL_014b
 
-	IL_0205:  nop 
-	IL_0206:  ldarg.3 
-	IL_0207:  ldarg.0 
-	IL_0208:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
-	IL_020d:  ldc.i4.1 
-	IL_020e:  newarr [mscorlib]System.Object
-	IL_0213:  dup 
-	IL_0214:  ldc.i4.0 
-	IL_0215:  ldloc.0 
-	IL_0216:  stelem.ref 
-	IL_0217:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
-	IL_021c:  pop 
-	IL_021d:  nop 
-	IL_021e:  ldloc.0 
-	IL_021f:  stloc.3 
-	IL_0220:  br IL_0225
+	  IL_0120:  nop 
+	  IL_0121:  ldc.i4.0 
+	  IL_0122:  stloc.1 
+	  IL_0123:  leave IL_014b
 
-	IL_0225:  ldloc.3 
-	IL_0226:  ret 
-    } // end of method AttributeConfigurator::CreateChildBuildElement
+	} // end .try 0
+	catch class [mscorlib]System.Object { // 0
+	  IL_0128:  pop 
+	  IL_0129:  nop 
+	  IL_012a:  ldarg.1 
+	  IL_012b:  ldc.i4 5000
+	  IL_0130:  ldstr "Failure scanning \"{0}\" for functions."
+	  IL_0135:  ldc.i4.1 
+	  IL_0136:  newarr [mscorlib]System.Object
+	  IL_013b:  dup 
+	  IL_013c:  ldc.i4.0 
+	  IL_013d:  ldarg.0 
+	  IL_013e:  callvirt instance string class [mscorlib]System.Type::get_AssemblyQualifiedName()
+	  IL_0143:  stelem.ref 
+	  IL_0144:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_0149:  rethrow 
+	} // end handler 0
+	IL_014b:  ldloc.1 
+	IL_014c:  ret 
+    } // end of method TypeFactory::ScanTypeForFunctions
 
-    // method line 1808
-    .method private hidebysig 
-           instance default class NAnt.Core.Element/AttributeConfigurator/IAttributeSetter CreateAttributeSetter (class [mscorlib]System.Type attributeType)  cil managed 
+    // method line 1612
+    .method private static hidebysig 
+           default void RegisterFunction (string key, class [mscorlib]System.Reflection.MethodInfo info)  cil managed 
     {
-        // Method begins at RVA 0x6538
-	// Code size 273 (0x111)
+        // Method begins at RVA 0x1d99c
+	// Code size 119 (0x77)
 	.maxstack 3
 	.locals init (
-		class NAnt.Core.Element/AttributeConfigurator/IAttributeSetter	V_0,
-		class NAnt.Core.Element/AttributeConfigurator/IAttributeSetter	V_1)
+		object	V_0,
+		class [mscorlib]System.Reflection.MethodInfo	V_1,
+		class [mscorlib]System.Collections.ArrayList	V_2,
+		class [mscorlib]System.Collections.ArrayList	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Element/AttributeConfigurator::AttributeSetters
-	IL_0006:  ldarg.1 
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	IL_000c:  brfalse IL_0028
-
-	IL_0011:  nop 
-	IL_0012:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Element/AttributeConfigurator::AttributeSetters
-	IL_0017:  ldarg.1 
-	IL_0018:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_001d:  castclass NAnt.Core.Element/AttributeConfigurator/IAttributeSetter
-	IL_0022:  stloc.0 
-	IL_0023:  br IL_010f
-
-	IL_0028:  ldnull 
-	IL_0029:  stloc.1 
-	IL_002a:  ldarg.1 
-	IL_002b:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
-	IL_0030:  brfalse IL_0042
+	IL_0001:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.TypeFactory::_methodInfoCollection
+	IL_0006:  ldarg.0 
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  brtrue IL_0026
 
-	IL_0035:  nop 
-	IL_0036:  newobj instance void class NAnt.Core.Element/AttributeConfigurator/EnumAttributeSetter::'.ctor'()
-	IL_003b:  stloc.1 
-	IL_003c:  nop 
-	IL_003d:  br IL_00f4
+	IL_0013:  nop 
+	IL_0014:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.TypeFactory::_methodInfoCollection
+	IL_0019:  ldarg.0 
+	IL_001a:  ldarg.1 
+	IL_001b:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_0020:  nop 
+	IL_0021:  br IL_0076
 
-	IL_0042:  ldarg.1 
-	IL_0043:  ldtoken [mscorlib]System.Text.Encoding
-	IL_0048:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_004d:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0052:  brfalse IL_0064
+	IL_0026:  nop 
+	IL_0027:  ldloc.0 
+	IL_0028:  isinst [mscorlib]System.Reflection.MethodInfo
+	IL_002d:  stloc.1 
+	IL_002e:  ldloc.1 
+	IL_002f:  ldnull 
+	IL_0030:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_0035:  brfalse IL_0050
 
-	IL_0057:  nop 
-	IL_0058:  newobj instance void class NAnt.Core.Element/AttributeConfigurator/EncodingAttributeSetter::'.ctor'()
-	IL_005d:  stloc.1 
-	IL_005e:  nop 
-	IL_005f:  br IL_00f4
+	IL_003a:  nop 
+	IL_003b:  ldloc.0 
+	IL_003c:  castclass [mscorlib]System.Collections.ArrayList
+	IL_0041:  stloc.2 
+	IL_0042:  ldloc.2 
+	IL_0043:  ldarg.1 
+	IL_0044:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_0049:  pop 
+	IL_004a:  nop 
+	IL_004b:  br IL_0075
 
-	IL_0064:  ldarg.1 
-	IL_0065:  ldtoken [mscorlib]System.IO.FileInfo
-	IL_006a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_006f:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0074:  brfalse IL_0086
+	IL_0050:  nop 
+	IL_0051:  ldc.i4.3 
+	IL_0052:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
+	IL_0057:  stloc.3 
+	IL_0058:  ldloc.3 
+	IL_0059:  ldloc.1 
+	IL_005a:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_005f:  pop 
+	IL_0060:  ldloc.3 
+	IL_0061:  ldarg.1 
+	IL_0062:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_0067:  pop 
+	IL_0068:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.TypeFactory::_methodInfoCollection
+	IL_006d:  ldarg.0 
+	IL_006e:  ldloc.3 
+	IL_006f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0074:  nop 
+	IL_0075:  nop 
+	IL_0076:  ret 
+    } // end of method TypeFactory::RegisterFunction
 
-	IL_0079:  nop 
-	IL_007a:  newobj instance void class NAnt.Core.Element/AttributeConfigurator/FileAttributeSetter::'.ctor'()
-	IL_007f:  stloc.1 
-	IL_0080:  nop 
-	IL_0081:  br IL_00f4
+    // method line 1613
+    .method private static hidebysig 
+           default bool ScanTypeForFilters (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, class [mscorlib]System.Type 'type', class NAnt.Core.Task task)  cil managed 
+    {
+        // Method begins at RVA 0x1da20
+	// Code size 247 (0xf7)
+	.maxstack 7
+	.locals init (
+		class NAnt.Core.Attributes.ElementNameAttribute	V_0,
+		class NAnt.Core.Filters.FilterBuilder	V_1,
+		bool	V_2)
+	IL_0000:  nop 
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
+	  IL_0008:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_000d:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	  IL_0012:  castclass NAnt.Core.Attributes.ElementNameAttribute
+	  IL_0017:  stloc.0 
+	  IL_0018:  ldarg.1 
+	  IL_0019:  ldtoken NAnt.Core.Filters.Filter
+	  IL_001e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0023:  callvirt instance bool class [mscorlib]System.Type::IsSubclassOf(class [mscorlib]System.Type)
+	  IL_0028:  brfalse IL_00cb
 
-	IL_0086:  ldarg.1 
-	IL_0087:  ldtoken [mscorlib]System.IO.DirectoryInfo
-	IL_008c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0091:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0096:  brfalse IL_00a8
+	  IL_002d:  ldarg.1 
+	  IL_002e:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
+	  IL_0033:  brtrue IL_00cb
 
-	IL_009b:  nop 
-	IL_009c:  newobj instance void class NAnt.Core.Element/AttributeConfigurator/DirectoryAttributeSetter::'.ctor'()
-	IL_00a1:  stloc.1 
-	IL_00a2:  nop 
-	IL_00a3:  br IL_00f4
+	  IL_0038:  ldloc.0 
+	  IL_0039:  brfalse IL_00cb
 
-	IL_00a8:  ldarg.1 
-	IL_00a9:  ldtoken NAnt.Core.Types.PathSet
-	IL_00ae:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_00b3:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_00b8:  brfalse IL_00ca
+	  IL_003e:  nop 
+	  IL_003f:  ldarg.2 
+	  IL_0040:  ldc.i4 1000
+	  IL_0045:  ldstr "Creating FilterBuilder for \"{0}\"."
+	  IL_004a:  ldc.i4.1 
+	  IL_004b:  newarr [mscorlib]System.Object
+	  IL_0050:  dup 
+	  IL_0051:  ldc.i4.0 
+	  IL_0052:  ldarg.1 
+	  IL_0053:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	  IL_0058:  stelem.ref 
+	  IL_0059:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_005e:  ldarg.0 
+	  IL_005f:  ldarg.1 
+	  IL_0060:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	  IL_0065:  newobj instance void class NAnt.Core.Filters.FilterBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, string)
+	  IL_006a:  stloc.1 
+	  IL_006b:  call class NAnt.Core.Filters.FilterBuilderCollection class NAnt.Core.TypeFactory::get_FilterBuilders()
+	  IL_0070:  ldloc.1 
+	  IL_0071:  callvirt instance string class NAnt.Core.Filters.FilterBuilder::get_FilterName()
+	  IL_0076:  callvirt instance class NAnt.Core.Filters.FilterBuilder class NAnt.Core.Filters.FilterBuilderCollection::get_Item(string)
+	  IL_007b:  brtrue IL_00c4
 
-	IL_00bd:  nop 
-	IL_00be:  newobj instance void class NAnt.Core.Element/AttributeConfigurator/PathSetAttributeSetter::'.ctor'()
-	IL_00c3:  stloc.1 
-	IL_00c4:  nop 
-	IL_00c5:  br IL_00f4
+	  IL_0080:  nop 
+	  IL_0081:  call class NAnt.Core.Filters.FilterBuilderCollection class NAnt.Core.TypeFactory::get_FilterBuilders()
+	  IL_0086:  ldloc.1 
+	  IL_0087:  callvirt instance int32 class NAnt.Core.Filters.FilterBuilderCollection::Add(class NAnt.Core.Filters.FilterBuilder)
+	  IL_008c:  pop 
+	  IL_008d:  ldarg.2 
+	  IL_008e:  ldc.i4 1000
+	  IL_0093:  ldstr "Adding filter \"{0}\" from {1}:{2}."
+	  IL_0098:  ldc.i4.3 
+	  IL_0099:  newarr [mscorlib]System.Object
+	  IL_009e:  dup 
+	  IL_009f:  ldc.i4.0 
+	  IL_00a0:  ldloc.1 
+	  IL_00a1:  callvirt instance string class NAnt.Core.Filters.FilterBuilder::get_FilterName()
+	  IL_00a6:  stelem.ref 
+	  IL_00a7:  dup 
+	  IL_00a8:  ldc.i4.1 
+	  IL_00a9:  ldloc.1 
+	  IL_00aa:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
+	  IL_00af:  call string class NAnt.Core.TypeFactory::GetAssemblyLocation(class [mscorlib]System.Reflection.Assembly)
+	  IL_00b4:  stelem.ref 
+	  IL_00b5:  dup 
+	  IL_00b6:  ldc.i4.2 
+	  IL_00b7:  ldloc.1 
+	  IL_00b8:  callvirt instance string class NAnt.Core.Filters.FilterBuilder::get_ClassName()
+	  IL_00bd:  stelem.ref 
+	  IL_00be:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_00c3:  nop 
+	  IL_00c4:  ldc.i4.1 
+	  IL_00c5:  stloc.2 
+	  IL_00c6:  leave IL_00f5
 
-	IL_00ca:  ldarg.1 
-	IL_00cb:  ldtoken [System]System.Uri
-	IL_00d0:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_00d5:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_00da:  brfalse IL_00ec
+	  IL_00cb:  ldc.i4.0 
+	  IL_00cc:  stloc.2 
+	  IL_00cd:  leave IL_00f5
 
-	IL_00df:  nop 
-	IL_00e0:  newobj instance void class NAnt.Core.Element/AttributeConfigurator/UriAttributeSetter::'.ctor'()
-	IL_00e5:  stloc.1 
-	IL_00e6:  nop 
-	IL_00e7:  br IL_00f4
+	} // end .try 0
+	catch class [mscorlib]System.Object { // 0
+	  IL_00d2:  pop 
+	  IL_00d3:  nop 
+	  IL_00d4:  ldarg.2 
+	  IL_00d5:  ldc.i4 5000
+	  IL_00da:  ldstr "Failure scanning \"{0}\" for filters."
+	  IL_00df:  ldc.i4.1 
+	  IL_00e0:  newarr [mscorlib]System.Object
+	  IL_00e5:  dup 
+	  IL_00e6:  ldc.i4.0 
+	  IL_00e7:  ldarg.1 
+	  IL_00e8:  callvirt instance string class [mscorlib]System.Type::get_AssemblyQualifiedName()
+	  IL_00ed:  stelem.ref 
+	  IL_00ee:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_00f3:  rethrow 
+	} // end handler 0
+	IL_00f5:  ldloc.2 
+	IL_00f6:  ret 
+    } // end of method TypeFactory::ScanTypeForFilters
 
-	IL_00ec:  nop 
-	IL_00ed:  newobj instance void class NAnt.Core.Element/AttributeConfigurator/ConvertableAttributeSetter::'.ctor'()
-	IL_00f2:  stloc.1 
-	IL_00f3:  nop 
-	IL_00f4:  ldloc.1 
-	IL_00f5:  brfalse IL_0108
+    // method line 1614
+    .method private static hidebysig 
+           default string GetAssemblyLocation (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
+    {
+        // Method begins at RVA 0x1db34
+	// Code size 35 (0x23)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.0 
+	  IL_0003:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
+	  IL_0008:  stloc.0 
+	  IL_0009:  leave IL_0021
 
-	IL_00fa:  nop 
-	IL_00fb:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Element/AttributeConfigurator::AttributeSetters
-	IL_0100:  ldarg.1 
-	IL_0101:  ldloc.1 
-	IL_0102:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_0107:  nop 
-	IL_0108:  ldloc.1 
-	IL_0109:  stloc.0 
-	IL_010a:  br IL_010f
+	} // end .try 0
+	catch class [mscorlib]System.NotSupportedException { // 0
+	  IL_000e:  pop 
+	  IL_000f:  nop 
+	  IL_0010:  ldarg.0 
+	  IL_0011:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	  IL_0016:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	  IL_001b:  stloc.0 
+	  IL_001c:  leave IL_0021
 
-	IL_010f:  ldloc.0 
-	IL_0110:  ret 
-    } // end of method AttributeConfigurator::CreateAttributeSetter
+	} // end handler 0
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method TypeFactory::GetAssemblyLocation
 
-    // method line 1809
+    // method line 1615
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x6655
-	// Code size 31 (0x1f)
-	.maxstack 8
+        // Method begins at RVA 0x1db74
+	// Code size 71 (0x47)
+	.maxstack 1
 	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
 	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
 	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
-	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.Element/AttributeConfigurator::logger
-	IL_0014:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0019:  stsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Element/AttributeConfigurator::AttributeSetters
-	IL_001e:  ret 
-    } // end of method AttributeConfigurator::.cctor
+	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.TypeFactory::logger
+	IL_0014:  newobj instance void class NAnt.Core.TaskBuilderCollection::'.ctor'()
+	IL_0019:  stsfld class NAnt.Core.TaskBuilderCollection NAnt.Core.TypeFactory::_taskBuilders
+	IL_001e:  newobj instance void class NAnt.Core.DataTypeBaseBuilderCollection::'.ctor'()
+	IL_0023:  stsfld class NAnt.Core.DataTypeBaseBuilderCollection NAnt.Core.TypeFactory::_dataTypeBuilders
+	IL_0028:  newobj instance void class NAnt.Core.Filters.FilterBuilderCollection::'.ctor'()
+	IL_002d:  stsfld class NAnt.Core.Filters.FilterBuilderCollection NAnt.Core.TypeFactory::_filterBuilders
+	IL_0032:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0037:  stsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.TypeFactory::_methodInfoCollection
+	IL_003c:  newobj instance void class NAnt.Core.Extensibility.PluginScanner::'.ctor'()
+	IL_0041:  stsfld class NAnt.Core.Extensibility.PluginScanner NAnt.Core.TypeFactory::_pluginScanner
+	IL_0046:  ret 
+    } // end of method TypeFactory::.cctor
 
-	.property instance class NAnt.Core.Element Element ()
-	{
-		.get instance default class NAnt.Core.Element NAnt.Core.Element/AttributeConfigurator::get_Element () 
-	}
-	.property instance class NAnt.Core.Location Location ()
-	{
-		.get instance default class NAnt.Core.Location NAnt.Core.Element/AttributeConfigurator::get_Location () 
-	}
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.Core.Element/AttributeConfigurator::get_Name () 
-	}
-	.property instance class NAnt.Core.Project Project ()
-	{
-		.get instance default class NAnt.Core.Project NAnt.Core.Element/AttributeConfigurator::get_Project () 
-	}
-	.property instance class [System.Xml]System.Xml.XmlNode ElementXml ()
-	{
-		.get instance default class [System.Xml]System.Xml.XmlNode NAnt.Core.Element/AttributeConfigurator::get_ElementXml () 
-	}
-	.property instance class NAnt.Core.PropertyDictionary Properties ()
-	{
-		.get instance default class NAnt.Core.PropertyDictionary NAnt.Core.Element/AttributeConfigurator::get_Properties () 
-	}
-	.property instance class NAnt.Core.FrameworkInfo TargetFramework ()
+	.property class NAnt.Core.TaskBuilderCollection TaskBuilders ()
 	{
-		.get instance default class NAnt.Core.FrameworkInfo NAnt.Core.Element/AttributeConfigurator::get_TargetFramework () 
+		.get default class NAnt.Core.TaskBuilderCollection NAnt.Core.TypeFactory::get_TaskBuilders () 
 	}
-	.property instance class [System]System.Collections.Specialized.StringCollection UnprocessedAttributes ()
+	.property class NAnt.Core.DataTypeBaseBuilderCollection DataTypeBuilders ()
 	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::get_UnprocessedAttributes () 
+		.get default class NAnt.Core.DataTypeBaseBuilderCollection NAnt.Core.TypeFactory::get_DataTypeBuilders () 
 	}
-	.property instance class [System]System.Collections.Specialized.StringCollection UnprocessedChildNodes ()
+	.property class NAnt.Core.Filters.FilterBuilderCollection FilterBuilders ()
 	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes () 
+		.get default class NAnt.Core.Filters.FilterBuilderCollection NAnt.Core.TypeFactory::get_FilterBuilders () 
 	}
-	.property instance class [System.Xml]System.Xml.XmlNamespaceManager NamespaceManager ()
+	.property class NAnt.Core.Extensibility.PluginScanner PluginScanner ()
 	{
-		.get instance default class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager () 
+		.get default class NAnt.Core.Extensibility.PluginScanner NAnt.Core.TypeFactory::get_PluginScanner () 
 	}
-  .class nested private auto ansi beforefieldinit EnumAttributeSetter
+  } // end of class NAnt.Core.TypeFactory
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi beforefieldinit DataTypeBaseDictionary
   	extends [mscorlib]System.Object
-  	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
+  	implements [mscorlib]System.Collections.IDictionary, [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable, [mscorlib]System.ICloneable  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-    // method line 1810
+    .field  private  class [mscorlib]System.Collections.Hashtable _innerHash
+
+    // method line 1616
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x6675
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x1dbc7
+	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method EnumAttributeSetter::.ctor
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
+	IL_0012:  ret 
+    } // end of method DataTypeBaseDictionary::.ctor
 
-    // method line 1811
-    .method public final virtual hidebysig newslot 
-           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
+    // method line 1617
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.DataTypeBaseDictionary original)  cil managed 
     {
-        // Method begins at RVA 0x6680
-	// Code size 124 (0x7c)
-	.maxstack 7
-	.locals init (
-		object	V_0,
-		class [System]System.ComponentModel.TypeConverter	V_1)
-	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.3 
-	  IL_0003:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	  IL_0008:  call class [System]System.ComponentModel.TypeConverter class [System]System.ComponentModel.TypeDescriptor::GetConverter(class [mscorlib]System.Type)
-	  IL_000d:  stloc.1 
-	  IL_000e:  ldloc.1 
-	  IL_000f:  callvirt instance class [mscorlib]System.Type object::GetType()
-	  IL_0014:  ldtoken [System]System.ComponentModel.EnumConverter
-	  IL_0019:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_001e:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_0023:  brtrue IL_0038
-
-	  IL_0028:  nop 
-	  IL_0029:  ldloc.1 
-	  IL_002a:  ldarg.s 4
-	  IL_002c:  callvirt instance object class [System]System.ComponentModel.TypeConverter::ConvertFrom(object)
-	  IL_0031:  stloc.0 
-	  IL_0032:  nop 
-	  IL_0033:  br IL_0048
-
-	  IL_0038:  nop 
-	  IL_0039:  ldarg.3 
-	  IL_003a:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	  IL_003f:  ldarg.s 4
-	  IL_0041:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string)
-	  IL_0046:  stloc.0 
-	  IL_0047:  nop 
-	  IL_0048:  ldarg.3 
-	  IL_0049:  ldarg.2 
-	  IL_004a:  ldloc.0 
-	  IL_004b:  ldc.i4.s 0x14
-	  IL_004d:  ldnull 
-	  IL_004e:  ldnull 
-	  IL_004f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0054:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	  IL_0059:  nop 
-	  IL_005a:  leave IL_007b
-
-	} // end .try 0
-	catch class [mscorlib]System.FormatException { // 0
-	  IL_005f:  pop 
-	  IL_0060:  nop 
-	  IL_0061:  ldarg.0 
-	  IL_0062:  ldarg.1 
-	  IL_0063:  ldarg.2 
-	  IL_0064:  ldarg.3 
-	  IL_0065:  ldarg.s 4
-	  IL_0067:  call instance class NAnt.Core.BuildException class NAnt.Core.Element/AttributeConfigurator/EnumAttributeSetter::CreateBuildException(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Element, class [mscorlib]System.Reflection.PropertyInfo, string)
-	  IL_006c:  throw 
-	} // end handler 0
-	catch class [mscorlib]System.ArgumentException { // 1
-	  IL_006d:  pop 
-	  IL_006e:  nop 
-	  IL_006f:  ldarg.0 
-	  IL_0070:  ldarg.1 
-	  IL_0071:  ldarg.2 
-	  IL_0072:  ldarg.3 
-	  IL_0073:  ldarg.s 4
-	  IL_0075:  call instance class NAnt.Core.BuildException class NAnt.Core.Element/AttributeConfigurator/EnumAttributeSetter::CreateBuildException(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Element, class [mscorlib]System.Reflection.PropertyInfo, string)
-	  IL_007a:  throw 
-	} // end handler 1
-	IL_007b:  ret 
-    } // end of method EnumAttributeSetter::Set
-
-    // method line 1812
-    .method private hidebysig 
-           instance default class NAnt.Core.BuildException CreateBuildException (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6724
-	// Code size 197 (0xc5)
-	.maxstack 6
-	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		object	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		string	V_4,
-		class NAnt.Core.BuildException	V_5)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  nop 
-	IL_0008:  ldarg.3 
-	IL_0009:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	IL_000e:  call class [mscorlib]System.Array class [mscorlib]System.Enum::GetValues(class [mscorlib]System.Type)
-	IL_0013:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Array::GetEnumerator()
-	IL_0018:  stloc.2 
-	.try { // 0
-	  IL_0019:  br IL_004e
-
-	  IL_001e:  ldloc.2 
-	  IL_001f:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0024:  stloc.1 
-	  IL_0025:  nop 
-	  IL_0026:  ldloc.0 
-	  IL_0027:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	  IL_002c:  ldc.i4.0 
-	  IL_002d:  ble IL_0040
-
-	  IL_0032:  nop 
-	  IL_0033:  ldloc.0 
-	  IL_0034:  ldstr ", "
-	  IL_0039:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_003e:  pop 
-	  IL_003f:  nop 
-	  IL_0040:  ldloc.0 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance string object::ToString()
-	  IL_0047:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_004c:  pop 
-	  IL_004d:  nop 
-	  IL_004e:  ldloc.2 
-	  IL_004f:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0054:  brtrue IL_001e
-
-	  IL_0059:  leave IL_0072
-
-	} // end .try 0
-	finally  { // 0
-	  IL_005e:  ldloc.2 
-	  IL_005f:  isinst [mscorlib]System.IDisposable
-	  IL_0064:  dup 
-	  IL_0065:  stloc.3 
-	  IL_0066:  brfalse IL_0071
-
-	  IL_006b:  ldloc.3 
-	  IL_006c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0071:  endfinally 
-	} // end handler 0
-	IL_0072:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0077:  ldstr "NA1023"
-	IL_007c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0081:  ldc.i4.4 
-	IL_0082:  newarr [mscorlib]System.Object
-	IL_0087:  dup 
-	IL_0088:  ldc.i4.0 
-	IL_0089:  ldarg.s 4
-	IL_008b:  stelem.ref 
-	IL_008c:  dup 
-	IL_008d:  ldc.i4.1 
-	IL_008e:  ldarg.1 
-	IL_008f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_0094:  stelem.ref 
-	IL_0095:  dup 
-	IL_0096:  ldc.i4.2 
-	IL_0097:  ldarg.2 
-	IL_0098:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_009d:  stelem.ref 
-	IL_009e:  dup 
-	IL_009f:  ldc.i4.3 
-	IL_00a0:  ldloc.0 
-	IL_00a1:  callvirt instance string object::ToString()
-	IL_00a6:  stelem.ref 
-	IL_00a7:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_00ac:  stloc.s 4
-	IL_00ae:  ldloc.s 4
-	IL_00b0:  ldarg.2 
-	IL_00b1:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_00b6:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_00bb:  stloc.s 5
-	IL_00bd:  br IL_00c2
-
-	IL_00c2:  ldloc.s 5
-	IL_00c4:  ret 
-    } // end of method EnumAttributeSetter::CreateBuildException
-
-  } // end of class EnumAttributeSetter
-
-  .class nested private auto ansi beforefieldinit EncodingAttributeSetter
-  	extends [mscorlib]System.Object
-  	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
-
-    // method line 1813
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x6808
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method EncodingAttributeSetter::.ctor
-
-    // method line 1814
-    .method public final virtual hidebysig newslot 
-           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6810
-	// Code size 181 (0xb5)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.Text.Encoding	V_1,
-		class [mscorlib]System.Exception	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.s 4
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  brtrue IL_0015
-
-	IL_000f:  nop 
-	IL_0010:  br IL_00b4
-
-	IL_0015:  ldnull 
-	IL_0016:  stloc.1 
-	.try { // 0
-	  IL_0017:  nop 
-	  IL_0018:  ldloc.0 
-	  IL_0019:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::GetEncoding(string)
-	  IL_001e:  stloc.1 
-	  IL_001f:  nop 
-	  IL_0020:  leave IL_006b
-
-	} // end .try 0
-	catch class [mscorlib]System.ArgumentException { // 0
-	  IL_0025:  pop 
-	  IL_0026:  nop 
-	  IL_0027:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_002c:  ldstr "NA1191"
-	  IL_0031:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0036:  ldloc.0 
-	  IL_0037:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_003c:  ldarg.2 
-	  IL_003d:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0042:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_0047:  throw 
-	} // end handler 0
-	catch class [mscorlib]System.NotSupportedException { // 1
-	  IL_0048:  pop 
-	  IL_0049:  nop 
-	  IL_004a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_004f:  ldstr "NA1192"
-	  IL_0054:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0059:  ldloc.0 
-	  IL_005a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_005f:  ldarg.2 
-	  IL_0060:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0065:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_006a:  throw 
-	} // end handler 1
-	.try { // 2
-	  IL_006b:  nop 
-	  IL_006c:  ldarg.3 
-	  IL_006d:  ldarg.2 
-	  IL_006e:  ldloc.1 
-	  IL_006f:  ldc.i4.s 0x14
-	  IL_0071:  ldnull 
-	  IL_0072:  ldnull 
-	  IL_0073:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0078:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	  IL_007d:  nop 
-	  IL_007e:  leave IL_00b4
-
-	} // end .try 2
-	catch class [mscorlib]System.Exception { // 2
-	  IL_0083:  stloc.2 
-	  IL_0084:  nop 
-	  IL_0085:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_008a:  ldstr "NA1022"
-	  IL_008f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0094:  ldarg.s 4
-	  IL_0096:  ldarg.1 
-	  IL_0097:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_009c:  ldarg.2 
-	  IL_009d:  callvirt instance string class NAnt.Core.Element::get_Name()
-	  IL_00a2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_00a7:  ldarg.2 
-	  IL_00a8:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_00ad:  ldloc.2 
-	  IL_00ae:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_00b3:  throw 
-	} // end handler 2
-	IL_00b4:  ret 
-    } // end of method EncodingAttributeSetter::Set
-
-  } // end of class EncodingAttributeSetter
-
-  .class nested private auto ansi beforefieldinit FileAttributeSetter
-  	extends [mscorlib]System.Object
-  	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
-
-    // method line 1815
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x68fc
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method FileAttributeSetter::.ctor
-
-    // method line 1816
-    .method public final virtual hidebysig newslot 
-           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6904
-	// Code size 216 (0xd8)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		object	V_1,
-		class [mscorlib]System.Exception	V_2,
-		class [mscorlib]System.Exception	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.s 4
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  brfalse IL_00aa
-
-	IL_000f:  nop 
-	.try { // 0
-	  IL_0010:  nop 
-	  IL_0011:  ldarg.2 
-	  IL_0012:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_0017:  ldarg.s 4
-	  IL_0019:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	  IL_001e:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_0023:  stloc.1 
-	  IL_0024:  nop 
-	  IL_0025:  leave IL_005b
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_002a:  stloc.2 
-	  IL_002b:  nop 
-	  IL_002c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0031:  ldstr "NA1022"
-	  IL_0036:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_003b:  ldarg.s 4
-	  IL_003d:  ldarg.1 
-	  IL_003e:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_0043:  ldarg.2 
-	  IL_0044:  callvirt instance string class NAnt.Core.Element::get_Name()
-	  IL_0049:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_004e:  ldarg.2 
-	  IL_004f:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0054:  ldloc.2 
-	  IL_0055:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_005a:  throw 
-	} // end handler 0
-	.try { // 1
-	  IL_005b:  nop 
-	  IL_005c:  ldarg.3 
-	  IL_005d:  ldarg.2 
-	  IL_005e:  ldloc.1 
-	  IL_005f:  ldc.i4.s 0x14
-	  IL_0061:  ldnull 
-	  IL_0062:  ldnull 
-	  IL_0063:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0068:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	  IL_006d:  nop 
-	  IL_006e:  leave IL_00a4
-
-	} // end .try 1
-	catch class [mscorlib]System.Exception { // 1
-	  IL_0073:  stloc.3 
-	  IL_0074:  nop 
-	  IL_0075:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_007a:  ldstr "NA1022"
-	  IL_007f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0084:  ldarg.s 4
-	  IL_0086:  ldarg.1 
-	  IL_0087:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_008c:  ldarg.2 
-	  IL_008d:  callvirt instance string class NAnt.Core.Element::get_Name()
-	  IL_0092:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_0097:  ldarg.2 
-	  IL_0098:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_009d:  ldloc.3 
-	  IL_009e:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_00a3:  throw 
-	} // end handler 1
-	IL_00a4:  nop 
-	IL_00a5:  br IL_00d7
-
-	IL_00aa:  nop 
-	IL_00ab:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00b0:  ldstr "NA1193"
-	IL_00b5:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00ba:  ldarg.1 
-	IL_00bb:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_00c0:  ldarg.2 
-	IL_00c1:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_00c6:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_00cb:  ldarg.2 
-	IL_00cc:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_00d1:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_00d6:  throw 
-	IL_00d7:  ret 
-    } // end of method FileAttributeSetter::Set
-
-  } // end of class FileAttributeSetter
-
-  .class nested private auto ansi beforefieldinit DirectoryAttributeSetter
-  	extends [mscorlib]System.Object
-  	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
-
-    // method line 1817
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x6a04
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method DirectoryAttributeSetter::.ctor
-
-    // method line 1818
-    .method public final virtual hidebysig newslot 
-           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6a0c
-	// Code size 160 (0xa0)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		object	V_1,
-		class [mscorlib]System.Exception	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.s 4
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  brfalse IL_0072
-
-	IL_000f:  nop 
-	.try { // 0
-	  IL_0010:  nop 
-	  IL_0011:  ldarg.2 
-	  IL_0012:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_0017:  ldarg.s 4
-	  IL_0019:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	  IL_001e:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	  IL_0023:  stloc.1 
-	  IL_0024:  ldarg.3 
-	  IL_0025:  ldarg.2 
-	  IL_0026:  ldloc.1 
-	  IL_0027:  ldc.i4.s 0x14
-	  IL_0029:  ldnull 
-	  IL_002a:  ldnull 
-	  IL_002b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0030:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	  IL_0035:  nop 
-	  IL_0036:  leave IL_006c
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_003b:  stloc.2 
-	  IL_003c:  nop 
-	  IL_003d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0042:  ldstr "NA1022"
-	  IL_0047:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_004c:  ldarg.s 4
-	  IL_004e:  ldarg.1 
-	  IL_004f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_0054:  ldarg.2 
-	  IL_0055:  callvirt instance string class NAnt.Core.Element::get_Name()
-	  IL_005a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_005f:  ldarg.2 
-	  IL_0060:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0065:  ldloc.2 
-	  IL_0066:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_006b:  throw 
-	} // end handler 0
-	IL_006c:  nop 
-	IL_006d:  br IL_009f
-
-	IL_0072:  nop 
-	IL_0073:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0078:  ldstr "NA1193"
-	IL_007d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0082:  ldarg.1 
-	IL_0083:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_0088:  ldarg.2 
-	IL_0089:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_008e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0093:  ldarg.2 
-	IL_0094:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0099:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_009e:  throw 
-	IL_009f:  ret 
-    } // end of method DirectoryAttributeSetter::Set
-
-  } // end of class DirectoryAttributeSetter
-
-  .class nested private auto ansi beforefieldinit PathSetAttributeSetter
-  	extends [mscorlib]System.Object
-  	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
-
-    // method line 1819
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x6ac8
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method PathSetAttributeSetter::.ctor
-
-    // method line 1820
-    .method public final virtual hidebysig newslot 
-           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6ad0
-	// Code size 89 (0x59)
-	.maxstack 7
-	.locals init (
-		class NAnt.Core.Types.PathSet	V_0,
-		class [mscorlib]System.Exception	V_1)
-	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.2 
-	  IL_0003:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_0008:  ldarg.s 4
-	  IL_000a:  newobj instance void class NAnt.Core.Types.PathSet::'.ctor'(class NAnt.Core.Project, string)
-	  IL_000f:  stloc.0 
-	  IL_0010:  ldarg.3 
-	  IL_0011:  ldarg.2 
-	  IL_0012:  ldloc.0 
-	  IL_0013:  ldc.i4.s 0x14
-	  IL_0015:  ldnull 
-	  IL_0016:  ldnull 
-	  IL_0017:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_001c:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	  IL_0021:  nop 
-	  IL_0022:  leave IL_0058
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0027:  stloc.1 
-	  IL_0028:  nop 
-	  IL_0029:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_002e:  ldstr "NA1022"
-	  IL_0033:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0038:  ldarg.s 4
-	  IL_003a:  ldarg.1 
-	  IL_003b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_0040:  ldarg.2 
-	  IL_0041:  callvirt instance string class NAnt.Core.Element::get_Name()
-	  IL_0046:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_004b:  ldarg.2 
-	  IL_004c:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0051:  ldloc.1 
-	  IL_0052:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0057:  throw 
-	} // end handler 0
-	IL_0058:  ret 
-    } // end of method PathSetAttributeSetter::Set
-
-  } // end of class PathSetAttributeSetter
-
-  .class nested private auto ansi beforefieldinit UriAttributeSetter
-  	extends [mscorlib]System.Object
-  	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
-
-    // method line 1821
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x6b48
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method UriAttributeSetter::.ctor
-
-    // method line 1822
-    .method public final virtual hidebysig newslot 
-           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6b50
-	// Code size 238 (0xee)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		class [System]System.Uri	V_1,
-		class [mscorlib]System.Exception	V_2,
-		class [mscorlib]System.Exception	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.s 4
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  brfalse IL_00c0
-
-	IL_000f:  nop 
-	IL_0010:  ldarg.s 4
-	IL_0012:  ldsfld string [System]System.Uri::SchemeDelimiter
-	IL_0017:  callvirt instance int32 string::IndexOf(string)
-	IL_001c:  ldc.i4.m1 
-	IL_001d:  bne.un IL_0032
-
-	IL_0022:  nop 
-	IL_0023:  ldarg.2 
-	IL_0024:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0029:  ldarg.s 4
-	IL_002b:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	IL_0030:  stloc.0 
-	IL_0031:  nop 
-	.try { // 0
-	  IL_0032:  nop 
-	  IL_0033:  ldloc.0 
-	  IL_0034:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	  IL_0039:  stloc.1 
-	  IL_003a:  nop 
-	  IL_003b:  leave IL_0071
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0040:  stloc.2 
-	  IL_0041:  nop 
-	  IL_0042:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0047:  ldstr "NA1022"
-	  IL_004c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0051:  ldarg.s 4
-	  IL_0053:  ldarg.1 
-	  IL_0054:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_0059:  ldarg.2 
-	  IL_005a:  callvirt instance string class NAnt.Core.Element::get_Name()
-	  IL_005f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_0064:  ldarg.2 
-	  IL_0065:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_006a:  ldloc.2 
-	  IL_006b:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0070:  throw 
-	} // end handler 0
-	.try { // 1
-	  IL_0071:  nop 
-	  IL_0072:  ldarg.3 
-	  IL_0073:  ldarg.2 
-	  IL_0074:  ldloc.1 
-	  IL_0075:  ldc.i4.s 0x14
-	  IL_0077:  ldnull 
-	  IL_0078:  ldnull 
-	  IL_0079:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_007e:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	  IL_0083:  nop 
-	  IL_0084:  leave IL_00ba
-
-	} // end .try 1
-	catch class [mscorlib]System.Exception { // 1
-	  IL_0089:  stloc.3 
-	  IL_008a:  nop 
-	  IL_008b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0090:  ldstr "NA1022"
-	  IL_0095:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_009a:  ldarg.s 4
-	  IL_009c:  ldarg.1 
-	  IL_009d:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_00a2:  ldarg.2 
-	  IL_00a3:  callvirt instance string class NAnt.Core.Element::get_Name()
-	  IL_00a8:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_00ad:  ldarg.2 
-	  IL_00ae:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_00b3:  ldloc.3 
-	  IL_00b4:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_00b9:  throw 
-	} // end handler 1
-	IL_00ba:  nop 
-	IL_00bb:  br IL_00ed
-
-	IL_00c0:  nop 
-	IL_00c1:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00c6:  ldstr "NA1193"
-	IL_00cb:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00d0:  ldarg.1 
-	IL_00d1:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_00d6:  ldarg.2 
-	IL_00d7:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_00dc:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_00e1:  ldarg.2 
-	IL_00e2:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_00e7:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_00ec:  throw 
-	IL_00ed:  ret 
-    } // end of method UriAttributeSetter::Set
-
-  } // end of class UriAttributeSetter
-
-  .class nested private auto ansi beforefieldinit ConvertableAttributeSetter
-  	extends [mscorlib]System.Object
-  	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
-
-    // method line 1823
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x6c68
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method ConvertableAttributeSetter::.ctor
-
-    // method line 1824
-    .method public final virtual hidebysig newslot 
-           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6c70
-	// Code size 94 (0x5e)
-	.maxstack 7
-	.locals init (
-		object	V_0,
-		class [mscorlib]System.Exception	V_1)
-	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.s 4
-	  IL_0004:  ldarg.3 
-	  IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
-	  IL_000a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_000f:  call object class [mscorlib]System.Convert::ChangeType(object, class [mscorlib]System.Type, class [mscorlib]System.IFormatProvider)
-	  IL_0014:  stloc.0 
-	  IL_0015:  ldarg.3 
-	  IL_0016:  ldarg.2 
-	  IL_0017:  ldloc.0 
-	  IL_0018:  ldc.i4.s 0x14
-	  IL_001a:  ldnull 
-	  IL_001b:  ldnull 
-	  IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0021:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
-	  IL_0026:  nop 
-	  IL_0027:  leave IL_005d
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_002c:  stloc.1 
-	  IL_002d:  nop 
-	  IL_002e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0033:  ldstr "NA1022"
-	  IL_0038:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_003d:  ldarg.s 4
-	  IL_003f:  ldarg.1 
-	  IL_0040:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_0045:  ldarg.2 
-	  IL_0046:  callvirt instance string class NAnt.Core.Element::get_Name()
-	  IL_004b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_0050:  ldarg.2 
-	  IL_0051:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0056:  ldloc.1 
-	  IL_0057:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_005c:  throw 
-	} // end handler 0
-	IL_005d:  ret 
-    } // end of method ConvertableAttributeSetter::Set
-
-  } // end of class ConvertableAttributeSetter
-
-  .class interface nested private auto ansi abstract IAttributeSetter
-  {
-
-    // method line 1825
-    .method public virtual hidebysig newslot abstract 
-           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IAttributeSetter::Set
-
-  } // end of class IAttributeSetter
-
-  } // end of class AttributeConfigurator
-
-  } // end of class NAnt.Core.Element
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable beforefieldinit ExpressionParseException
-  	extends [mscorlib]System.Exception
-  {
-    .field  private  int32 _startPos
-    .field  private  int32 _endPos
-
-    // method line 1826
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x1ff5a
-	// Code size 22 (0x16)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.m1 
-	IL_0002:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
-	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4.m1 
-	IL_0009:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance void class [mscorlib]System.Exception::'.ctor'()
-	IL_0014:  nop 
-	IL_0015:  ret 
-    } // end of method ExpressionParseException::.ctor
-
-    // method line 1827
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message)  cil managed 
-    {
-        // Method begins at RVA 0x1ff71
-	// Code size 24 (0x18)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.m1 
-	IL_0002:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
-	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4.m1 
-	IL_0009:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  ldnull 
-	IL_0011:  call instance void class [mscorlib]System.Exception::'.ctor'(string, class [mscorlib]System.Exception)
-	IL_0016:  nop 
-	IL_0017:  ret 
-    } // end of method ExpressionParseException::.ctor
-
-    // method line 1828
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, class [mscorlib]System.Exception inner)  cil managed 
-    {
-        // Method begins at RVA 0x1ff8a
-	// Code size 24 (0x18)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.m1 
-	IL_0002:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
-	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4.m1 
-	IL_0009:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  ldarg.2 
-	IL_0011:  call instance void class [mscorlib]System.Exception::'.ctor'(string, class [mscorlib]System.Exception)
-	IL_0016:  nop 
-	IL_0017:  ret 
-    } // end of method ExpressionParseException::.ctor
-
-    // method line 1829
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
-    {
-        // Method begins at RVA 0x1ffa4
-	// Code size 88 (0x58)
-	.maxstack 4
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.m1 
-	IL_0002:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
-	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4.m1 
-	IL_0009:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  ldarg.2 
-	IL_0011:  call instance void class [mscorlib]System.Exception::'.ctor'(class [mscorlib]System.Runtime.Serialization.SerializationInfo, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext)
-	IL_0016:  nop 
-	IL_0017:  ldarg.0 
-	IL_0018:  ldarg.1 
-	IL_0019:  ldstr "startPos"
-	IL_001e:  ldtoken [mscorlib]System.Int32
-	IL_0023:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0028:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_002d:  unbox.any [mscorlib]System.Int32
-	IL_0032:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
-	IL_0037:  ldarg.0 
-	IL_0038:  ldarg.1 
-	IL_0039:  ldstr "endPos"
-	IL_003e:  ldtoken [mscorlib]System.Int32
-	IL_0043:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0048:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_004d:  unbox.any [mscorlib]System.Int32
-	IL_0052:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
-	IL_0057:  ret 
-    } // end of method ExpressionParseException::.ctor
-
-    // method line 1830
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, int32 pos)  cil managed 
-    {
-        // Method begins at RVA 0x20008
-	// Code size 38 (0x26)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.m1 
-	IL_0002:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
-	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4.m1 
-	IL_0009:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  ldnull 
-	IL_0011:  call instance void class [mscorlib]System.Exception::'.ctor'(string, class [mscorlib]System.Exception)
-	IL_0016:  nop 
-	IL_0017:  ldarg.0 
-	IL_0018:  ldarg.2 
-	IL_0019:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
-	IL_001e:  ldarg.0 
-	IL_001f:  ldc.i4.m1 
-	IL_0020:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
-	IL_0025:  ret 
-    } // end of method ExpressionParseException::.ctor
-
-    // method line 1831
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, int32 startPos, int32 endPos)  cil managed 
-    {
-        // Method begins at RVA 0x2002f
-	// Code size 38 (0x26)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.m1 
-	IL_0002:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
-	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4.m1 
-	IL_0009:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  ldnull 
-	IL_0011:  call instance void class [mscorlib]System.Exception::'.ctor'(string, class [mscorlib]System.Exception)
-	IL_0016:  nop 
-	IL_0017:  ldarg.0 
-	IL_0018:  ldarg.2 
-	IL_0019:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
-	IL_001e:  ldarg.0 
-	IL_001f:  ldarg.3 
-	IL_0020:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
-	IL_0025:  ret 
-    } // end of method ExpressionParseException::.ctor
-
-    // method line 1832
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, int32 startPos, int32 endPos, class [mscorlib]System.Exception inner)  cil managed 
-    {
-        // Method begins at RVA 0x20056
-	// Code size 39 (0x27)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.m1 
-	IL_0002:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
-	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4.m1 
-	IL_0009:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  ldarg.s 4
-	IL_0012:  call instance void class [mscorlib]System.Exception::'.ctor'(string, class [mscorlib]System.Exception)
-	IL_0017:  nop 
-	IL_0018:  ldarg.0 
-	IL_0019:  ldarg.2 
-	IL_001a:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
-	IL_001f:  ldarg.0 
-	IL_0020:  ldarg.3 
-	IL_0021:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
-	IL_0026:  ret 
-    } // end of method ExpressionParseException::.ctor
-
-    // method line 1833
-    .method public hidebysig specialname 
-           instance default int32 get_StartPos ()  cil managed 
-    {
-        // Method begins at RVA 0x20080
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.ExpressionParseException::_startPos
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExpressionParseException::get_StartPos
-
-    // method line 1834
-    .method public hidebysig specialname 
-           instance default int32 get_EndPos ()  cil managed 
-    {
-        // Method begins at RVA 0x2009c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.ExpressionParseException::_endPos
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExpressionParseException::get_EndPos
-
-    // method line 1835
-    .method public virtual hidebysig 
-           instance default void GetObjectData (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
-    {
-        // Method begins at RVA 0x200b7
-	// Code size 44 (0x2c)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "startPos"
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld int32 NAnt.Core.ExpressionParseException::_startPos
-	IL_000d:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, int32)
-	IL_0012:  ldarg.1 
-	IL_0013:  ldstr "endPos"
-	IL_0018:  ldarg.0 
-	IL_0019:  ldfld int32 NAnt.Core.ExpressionParseException::_endPos
-	IL_001e:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, int32)
-	IL_0023:  ldarg.0 
-	IL_0024:  ldarg.1 
-	IL_0025:  ldarg.2 
-	IL_0026:  call instance void class [mscorlib]System.Exception::GetObjectData(class [mscorlib]System.Runtime.Serialization.SerializationInfo, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext)
-	IL_002b:  ret 
-    } // end of method ExpressionParseException::GetObjectData
-
-	.property instance int32 StartPos ()
-	{
-		.get instance default int32 NAnt.Core.ExpressionParseException::get_StartPos () 
-	}
-	.property instance int32 EndPos ()
-	{
-		.get instance default int32 NAnt.Core.ExpressionParseException::get_EndPos () 
-	}
-  } // end of class NAnt.Core.ExpressionParseException
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable beforefieldinit BuildException
-  	extends [mscorlib]System.ApplicationException
-  {
-    .field  private  class NAnt.Core.Location _location
-
-    // method line 1836
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x200e4
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_0006:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class [mscorlib]System.ApplicationException::'.ctor'()
-	IL_0011:  nop 
-	IL_0012:  ret 
-    } // end of method BuildException::.ctor
-
-    // method line 1837
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message)  cil managed 
-    {
-        // Method begins at RVA 0x200f8
-	// Code size 20 (0x14)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_0006:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.1 
-	IL_000d:  call instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
-	IL_0012:  nop 
-	IL_0013:  ret 
-    } // end of method BuildException::.ctor
-
-    // method line 1838
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, class [mscorlib]System.Exception innerException)  cil managed 
-    {
-        // Method begins at RVA 0x2010d
-	// Code size 21 (0x15)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_0006:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.1 
-	IL_000d:  ldarg.2 
-	IL_000e:  call instance void class [mscorlib]System.ApplicationException::'.ctor'(string, class [mscorlib]System.Exception)
-	IL_0013:  nop 
-	IL_0014:  ret 
-    } // end of method BuildException::.ctor
-
-    // method line 1839
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, class NAnt.Core.Location location)  cil managed 
-    {
-        // Method begins at RVA 0x20123
-	// Code size 27 (0x1b)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_0006:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.1 
-	IL_000d:  call instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.2 
-	IL_0015:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
-	IL_001a:  ret 
-    } // end of method BuildException::.ctor
-
-    // method line 1840
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, class NAnt.Core.Location location, class [mscorlib]System.Exception innerException)  cil managed 
-    {
-        // Method begins at RVA 0x2013f
-	// Code size 28 (0x1c)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_0006:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.1 
-	IL_000d:  ldarg.3 
-	IL_000e:  call instance void class [mscorlib]System.ApplicationException::'.ctor'(string, class [mscorlib]System.Exception)
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldarg.2 
-	IL_0016:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
-	IL_001b:  ret 
-    } // end of method BuildException::.ctor
-
-    // method line 1841
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
-    {
-        // Method begins at RVA 0x2015c
-	// Code size 54 (0x36)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_0006:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.1 
-	IL_000d:  ldarg.2 
-	IL_000e:  call instance void class [mscorlib]System.ApplicationException::'.ctor'(class [mscorlib]System.Runtime.Serialization.SerializationInfo, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext)
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldarg.1 
-	IL_0016:  ldstr "Location"
-	IL_001b:  ldarg.0 
-	IL_001c:  ldfld class NAnt.Core.Location NAnt.Core.BuildException::_location
-	IL_0021:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0026:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_002b:  isinst NAnt.Core.Location
-	IL_0030:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
-	IL_0035:  ret 
-    } // end of method BuildException::.ctor
-
-    // method line 1842
-    .method public hidebysig specialname 
-           instance default string get_RawMessage ()  cil managed 
-    {
-        // Method begins at RVA 0x20194
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class [mscorlib]System.Exception::get_Message()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildException::get_RawMessage
-
-    // method line 1843
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Location get_Location ()  cil managed 
-    {
-        // Method begins at RVA 0x201b0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Location	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Location NAnt.Core.BuildException::_location
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildException::get_Location
-
-    // method line 1844
-    .method public virtual hidebysig 
-           instance default void GetObjectData (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
-    {
-        // Method begins at RVA 0x201cb
-        .permissionset demand = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SerializationFormatter' = bool(true)}}
-	// Code size 27 (0x1b)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  call instance void class [mscorlib]System.Exception::GetObjectData(class [mscorlib]System.Runtime.Serialization.SerializationInfo, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext)
-	IL_0009:  ldarg.1 
-	IL_000a:  ldstr "Location"
-	IL_000f:  ldarg.0 
-	IL_0010:  ldfld class NAnt.Core.Location NAnt.Core.BuildException::_location
-	IL_0015:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_001a:  ret 
-    } // end of method BuildException::GetObjectData
-
-    // method line 1845
-    .method public virtual hidebysig specialname 
-           instance default string get_Message ()  cil managed 
-    {
-        // Method begins at RVA 0x201e8
-	// Code size 74 (0x4a)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		string	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class [mscorlib]System.Exception::get_Message()
-	IL_0007:  stloc.0 
-	IL_0008:  ldsfld string [mscorlib]System.String::Empty
-	IL_000d:  stloc.1 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldfld class NAnt.Core.Location NAnt.Core.BuildException::_location
-	IL_0014:  brfalse IL_0027
-
-	IL_0019:  nop 
-	IL_001a:  ldarg.0 
-	IL_001b:  ldfld class NAnt.Core.Location NAnt.Core.BuildException::_location
-	IL_0020:  callvirt instance string object::ToString()
-	IL_0025:  stloc.1 
-	IL_0026:  nop 
-	IL_0027:  ldloc.1 
-	IL_0028:  call bool string::IsNullOrEmpty(string)
-	IL_002d:  brtrue IL_0041
-
-	IL_0032:  nop 
-	IL_0033:  ldloc.1 
-	IL_0034:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_0039:  ldloc.0 
-	IL_003a:  call string string::Concat(string, string, string)
-	IL_003f:  stloc.0 
-	IL_0040:  nop 
-	IL_0041:  ldloc.0 
-	IL_0042:  stloc.2 
-	IL_0043:  br IL_0048
-
-	IL_0048:  ldloc.2 
-	IL_0049:  ret 
-    } // end of method BuildException::get_Message
-
-    // method line 1846
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
-    {
-        // Method begins at RVA 0x20240
-	// Code size 41 (0x29)
-	.maxstack 5
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0006:  ldstr "{0}:{1}{2}"
-	IL_000b:  ldarg.0 
-	IL_000c:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	IL_0011:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance string class [mscorlib]System.Exception::ToString()
-	IL_001c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_0021:  stloc.0 
-	IL_0022:  br IL_0027
-
-	IL_0027:  ldloc.0 
-	IL_0028:  ret 
-    } // end of method BuildException::ToString
-
-	.property instance string RawMessage ()
-	{
-		.get instance default string NAnt.Core.BuildException::get_RawMessage () 
-	}
-	.property instance class NAnt.Core.Location Location ()
-	{
-		.get instance default class NAnt.Core.Location NAnt.Core.BuildException::get_Location () 
-	}
-	.property instance string Message ()
-	{
-		.get instance default string NAnt.Core.BuildException::get_Message () 
-	}
-  } // end of class NAnt.Core.BuildException
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable beforefieldinit PropertyDictionary
-  	extends [mscorlib]System.Collections.DictionaryBase
-  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
-
-    .field  private  class [System]System.Collections.Specialized.StringCollection _readOnlyProperties
-    .field  private  class [System]System.Collections.Specialized.StringCollection _dynamicProperties
-    .field  private initonly  class NAnt.Core.Project _project
-    .field assembly static literal  string Visiting = "VISITING"
-    .field assembly static literal  string Visited = "VISITED"
-    .field  private static  class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> '<>f__switch$map0'
-    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-
-    // method line 1847
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
-    {
-        // Method begins at RVA 0x20275
-	// Code size 37 (0x25)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0006:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_readOnlyProperties
-	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0011:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_dynamicProperties
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance void class [mscorlib]System.Collections.DictionaryBase::'.ctor'()
-	IL_001c:  nop 
-	IL_001d:  ldarg.0 
-	IL_001e:  ldarg.1 
-	IL_001f:  stfld class NAnt.Core.Project NAnt.Core.PropertyDictionary::_project
-	IL_0024:  ret 
-    } // end of method PropertyDictionary::.ctor
-
-    // method line 1848
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_Item (string name)  cil managed 
-    {
-        // Method begins at RVA 0x2029c
-	// Code size 67 (0x43)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IDictionary::get_Item(object)
-	IL_000d:  castclass [mscorlib]System.String
-	IL_0012:  stloc.0 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  call instance void class NAnt.Core.PropertyDictionary::CheckDeprecation(string)
-	IL_001a:  ldarg.0 
-	IL_001b:  ldarg.1 
-	IL_001c:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsDynamicProperty(string)
-	IL_0021:  brfalse IL_0039
-
-	IL_0026:  nop 
-	IL_0027:  ldarg.0 
-	IL_0028:  ldloc.0 
-	IL_0029:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_002e:  call instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
-	IL_0033:  stloc.1 
-	IL_0034:  br IL_0041
-
-	IL_0039:  nop 
-	IL_003a:  ldloc.0 
-	IL_003b:  stloc.1 
-	IL_003c:  br IL_0041
-
-	IL_0041:  ldloc.1 
-	IL_0042:  ret 
-    } // end of method PropertyDictionary::get_Item
-
-    // method line 1849
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Item (string name, string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x202eb
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
-	IL_000e:  ret 
-    } // end of method PropertyDictionary::set_Item
-
-    // method line 1850
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
-    {
-        // Method begins at RVA 0x202fc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Project	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.PropertyDictionary::_project
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method PropertyDictionary::get_Project
-
-    // method line 1851
-    .method family virtual hidebysig 
-           instance default void OnClear ()  cil managed 
-    {
-        // Method begins at RVA 0x20317
-	// Code size 24 (0x18)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_readOnlyProperties
-	IL_0007:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_dynamicProperties
-	IL_0012:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
-	IL_0017:  ret 
-    } // end of method PropertyDictionary::OnClear
-
-    // method line 1852
-    .method family virtual hidebysig 
-           instance default void OnSet (object key, object oldValue, object newValue)  cil managed 
-    {
-        // Method begins at RVA 0x20330
-	// Code size 63 (0x3f)
-	.maxstack 4
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  castclass [mscorlib]System.String
-	IL_0007:  stloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsReadOnlyProperty(string)
-	IL_000f:  brfalse IL_0035
-
-	IL_0014:  nop 
-	IL_0015:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001a:  ldstr "NA1068"
-	IL_001f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0024:  ldloc.0 
-	IL_0025:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002a:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_002f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0034:  throw 
-	IL_0035:  ldarg.0 
-	IL_0036:  ldarg.1 
-	IL_0037:  ldarg.2 
-	IL_0038:  ldarg.3 
-	IL_0039:  call instance void class [mscorlib]System.Collections.DictionaryBase::OnSet(object, object, object)
-	IL_003e:  ret 
-    } // end of method PropertyDictionary::OnSet
-
-    // method line 1853
-    .method family virtual hidebysig 
-           instance default void OnInsert (object key, object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2037c
-	// Code size 54 (0x36)
-	.maxstack 3
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  castclass [mscorlib]System.String
-	IL_0007:  stloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  call instance bool class NAnt.Core.PropertyDictionary::Contains(string)
-	IL_000f:  brfalse IL_0035
-
-	IL_0014:  nop 
-	IL_0015:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001a:  ldstr "NA1065"
-	IL_001f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0024:  ldloc.0 
-	IL_0025:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002a:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_002f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0034:  throw 
-	IL_0035:  ret 
-    } // end of method PropertyDictionary::OnInsert
-
-    // method line 1854
-    .method family virtual hidebysig 
-           instance default void OnRemove (object key, object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x203c0
-	// Code size 46 (0x2e)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  isinst [mscorlib]System.String
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  brfalse IL_002d
-
-	IL_000e:  ldarg.0 
-	IL_000f:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_readOnlyProperties
-	IL_0014:  ldloc.0 
-	IL_0015:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	IL_001a:  brfalse IL_002d
-
-	IL_001f:  nop 
-	IL_0020:  ldarg.0 
-	IL_0021:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_readOnlyProperties
-	IL_0026:  ldloc.0 
-	IL_0027:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Remove(string)
-	IL_002c:  nop 
-	IL_002d:  ret 
-    } // end of method PropertyDictionary::OnRemove
-
-    // method line 1855
-    .method family virtual hidebysig 
-           instance default void OnValidate (object key, object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x203fc
-	// Code size 62 (0x3e)
-	.maxstack 3
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  isinst [mscorlib]System.String
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  brtrue IL_001f
-
-	IL_000e:  nop 
-	IL_000f:  ldstr "Property name must be a string."
-	IL_0014:  ldstr "key"
-	IL_0019:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string, string)
-	IL_001e:  throw 
-	IL_001f:  ldloc.0 
-	IL_0020:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_0025:  call void class NAnt.Core.PropertyDictionary::ValidatePropertyName(string, class NAnt.Core.Location)
-	IL_002a:  ldarg.2 
-	IL_002b:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_0030:  call void class NAnt.Core.PropertyDictionary::ValidatePropertyValue(object, class NAnt.Core.Location)
-	IL_0035:  ldarg.0 
-	IL_0036:  ldarg.1 
-	IL_0037:  ldarg.2 
-	IL_0038:  call instance void class [mscorlib]System.Collections.DictionaryBase::OnValidate(object, object)
-	IL_003d:  ret 
-    } // end of method PropertyDictionary::OnValidate
-
-    // method line 1856
-    .method public virtual hidebysig newslot 
-           instance default void AddReadOnly (string name, string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x20446
-	// Code size 42 (0x2a)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsReadOnlyProperty(string)
-	IL_0008:  brtrue IL_0029
-
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
-	IL_0014:  ldarg.1 
-	IL_0015:  ldarg.2 
-	IL_0016:  callvirt instance void class [mscorlib]System.Collections.IDictionary::Add(object, object)
-	IL_001b:  ldarg.0 
-	IL_001c:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_readOnlyProperties
-	IL_0021:  ldarg.1 
-	IL_0022:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0027:  pop 
-	IL_0028:  nop 
-	IL_0029:  ret 
-    } // end of method PropertyDictionary::AddReadOnly
-
-    // method line 1857
-    .method public virtual hidebysig newslot 
-           instance default void MarkDynamic (string name)  cil managed 
-    {
-        // Method begins at RVA 0x20474
-	// Code size 73 (0x49)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsDynamicProperty(string)
-	IL_0008:  brtrue IL_0048
-
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  call instance bool class NAnt.Core.PropertyDictionary::Contains(string)
-	IL_0015:  brtrue IL_003a
-
-	IL_001a:  nop 
-	IL_001b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0020:  ldstr "NA1067"
-	IL_0025:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_002a:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_002f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0034:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0039:  throw 
-	IL_003a:  ldarg.0 
-	IL_003b:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_dynamicProperties
-	IL_0040:  ldarg.1 
-	IL_0041:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0046:  pop 
-	IL_0047:  nop 
-	IL_0048:  ret 
-    } // end of method PropertyDictionary::MarkDynamic
-
-    // method line 1858
-    .method public virtual hidebysig newslot 
-           instance default void Add (string name, string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x204c9
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IDictionary::Add(object, object)
-	IL_000e:  ret 
-    } // end of method PropertyDictionary::Add
-
-    // method line 1859
-    .method public virtual hidebysig newslot 
-           instance default bool IsReadOnlyProperty (string name)  cil managed 
-    {
-        // Method begins at RVA 0x204dc
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_readOnlyProperties
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method PropertyDictionary::IsReadOnlyProperty
-
-    // method line 1860
-    .method public virtual hidebysig newslot 
-           instance default bool IsDynamicProperty (string name)  cil managed 
-    {
-        // Method begins at RVA 0x20500
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_dynamicProperties
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method PropertyDictionary::IsDynamicProperty
-
-    // method line 1861
-    .method public virtual hidebysig newslot 
-           instance default void Inherit (class NAnt.Core.PropertyDictionary source, class [System]System.Collections.Specialized.StringCollection excludes)  cil managed 
-    {
-        // Method begins at RVA 0x20524
-	// Code size 221 (0xdd)
-	.maxstack 3
-	.locals init (
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_1,
-		string	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
-	IL_0008:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.IDictionary::GetEnumerator()
-	IL_000d:  stloc.1 
-	.try { // 0
-	  IL_000e:  br IL_00b8
-
-	  IL_0013:  ldloc.1 
-	  IL_0014:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0019:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_001e:  stloc.0 
-	  IL_001f:  nop 
-	  IL_0020:  ldloca.s 0
-	  IL_0022:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_0027:  castclass [mscorlib]System.String
-	  IL_002c:  stloc.2 
-	  IL_002d:  ldarg.2 
-	  IL_002e:  brfalse IL_0045
-
-	  IL_0033:  ldarg.2 
-	  IL_0034:  ldloc.2 
-	  IL_0035:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	  IL_003a:  brfalse IL_0045
-
-	  IL_003f:  nop 
-	  IL_0040:  leave IL_00b8
-
-	  IL_0045:  ldarg.0 
-	  IL_0046:  ldloc.2 
-	  IL_0047:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsReadOnlyProperty(string)
-	  IL_004c:  brfalse IL_0057
-
-	  IL_0051:  nop 
-	  IL_0052:  leave IL_00b8
-
-	  IL_0057:  ldloc.2 
-	  IL_0058:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	  IL_005d:  call void class NAnt.Core.PropertyDictionary::ValidatePropertyName(string, class NAnt.Core.Location)
-	  IL_0062:  ldarg.0 
-	  IL_0063:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
-	  IL_0068:  ldloc.2 
-	  IL_0069:  ldloca.s 0
-	  IL_006b:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_0070:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
-	  IL_0075:  ldarg.1 
-	  IL_0076:  ldloc.2 
-	  IL_0077:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsReadOnlyProperty(string)
-	  IL_007c:  brfalse IL_0090
-
-	  IL_0081:  nop 
-	  IL_0082:  ldarg.0 
-	  IL_0083:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_readOnlyProperties
-	  IL_0088:  ldloc.2 
-	  IL_0089:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_008e:  pop 
-	  IL_008f:  nop 
-	  IL_0090:  ldarg.1 
-	  IL_0091:  ldloc.2 
-	  IL_0092:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsDynamicProperty(string)
-	  IL_0097:  brfalse IL_00b7
-
-	  IL_009c:  ldarg.0 
-	  IL_009d:  ldloc.2 
-	  IL_009e:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsDynamicProperty(string)
-	  IL_00a3:  brtrue IL_00b7
-
-	  IL_00a8:  nop 
-	  IL_00a9:  ldarg.0 
-	  IL_00aa:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_dynamicProperties
-	  IL_00af:  ldloc.2 
-	  IL_00b0:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_00b5:  pop 
-	  IL_00b6:  nop 
-	  IL_00b7:  nop 
-	  IL_00b8:  ldloc.1 
-	  IL_00b9:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00be:  brtrue IL_0013
-
-	  IL_00c3:  leave IL_00dc
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00c8:  ldloc.1 
-	  IL_00c9:  isinst [mscorlib]System.IDisposable
-	  IL_00ce:  dup 
-	  IL_00cf:  stloc.3 
-	  IL_00d0:  brfalse IL_00db
-
-	  IL_00d5:  ldloc.3 
-	  IL_00d6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00db:  endfinally 
-	} // end handler 0
-	IL_00dc:  ret 
-    } // end of method PropertyDictionary::Inherit
-
-    // method line 1862
-    .method public hidebysig 
-           instance default string ExpandProperties (string input, class NAnt.Core.Location location)  cil managed 
-    {
-        // Method begins at RVA 0x20620
-	// Code size 31 (0x1f)
-	.maxstack 5
-	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0,
-		class [mscorlib]System.Collections.Stack	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
-	IL_000c:  stloc.1 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.1 
-	IL_000f:  ldarg.2 
-	IL_0010:  ldloc.0 
-	IL_0011:  ldloc.1 
-	IL_0012:  call instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Stack)
-	IL_0017:  stloc.2 
-	IL_0018:  br IL_001d
-
-	IL_001d:  ldloc.2 
-	IL_001e:  ret 
-    } // end of method PropertyDictionary::ExpandProperties
-
-    // method line 1863
-    .method public hidebysig 
-           instance default bool Contains (string name)  cil managed 
-    {
-        // Method begins at RVA 0x2064c
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IDictionary::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method PropertyDictionary::Contains
-
-    // method line 1864
-    .method public hidebysig 
-           instance default void Remove (string name)  cil managed 
-    {
-        // Method begins at RVA 0x2066d
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IDictionary::Remove(object)
-	IL_000d:  ret 
-    } // end of method PropertyDictionary::Remove
-
-    // method line 1865
-    .method assembly hidebysig 
-           instance default string GetPropertyValue (string propertyName)  cil managed 
-    {
-        // Method begins at RVA 0x2067c
-	// Code size 33 (0x21)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.PropertyDictionary::CheckDeprecation(string)
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
-	IL_000e:  ldarg.1 
-	IL_000f:  callvirt instance object class [mscorlib]System.Collections.IDictionary::get_Item(object)
-	IL_0014:  castclass [mscorlib]System.String
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_001f
-
-	IL_001f:  ldloc.0 
-	IL_0020:  ret 
-    } // end of method PropertyDictionary::GetPropertyValue
-
-    // method line 1866
-    .method assembly hidebysig 
-           instance default string ExpandProperties (string input, class NAnt.Core.Location location, class [mscorlib]System.Collections.Hashtable state, class [mscorlib]System.Collections.Stack visiting)  cil managed 
-    {
-        // Method begins at RVA 0x206ac
-	// Code size 20 (0x14)
-	.maxstack 5
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  ldarg.3 
-	IL_0005:  ldarg.s 4
-	IL_0007:  call instance string class NAnt.Core.PropertyDictionary::EvaluateEmbeddedExpressions(string, class NAnt.Core.Location, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Stack)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method PropertyDictionary::ExpandProperties
-
-    // method line 1867
-    .method private hidebysig 
-           instance default string EvaluateEmbeddedExpressions (string input, class NAnt.Core.Location location, class [mscorlib]System.Collections.Hashtable state, class [mscorlib]System.Collections.Stack visiting)  cil managed 
-    {
-        // Method begins at RVA 0x206cc
-	// Code size 611 (0x263)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.Text.StringBuilder	V_1,
-		class NAnt.Core.ExpressionTokenizer	V_2,
-		class NAnt.Core.ExpressionEvaluator	V_3,
-		string	V_4,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_5,
-		class NAnt.Core.ExpressionParseException	V_6,
-		class [mscorlib]System.Text.StringBuilder	V_7,
-		string	V_8,
-		string	V_9,
-		int32	V_10,
-		int32	V_11,
-		int32	V_12,
-		int32	V_13)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_000f
-
-	IL_0007:  nop 
-	IL_0008:  ldnull 
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_0261
-
-	IL_000f:  ldarg.1 
-	IL_0010:  ldc.i4.s 0x24
-	IL_0012:  callvirt instance int32 string::IndexOf(char)
-	IL_0017:  ldc.i4.0 
-	IL_0018:  bge IL_0025
-
-	IL_001d:  nop 
-	IL_001e:  ldarg.1 
-	IL_001f:  stloc.0 
-	IL_0020:  br IL_0261
-
-	.try { // 0
-	  IL_0025:  nop 
-	  IL_0026:  ldarg.1 
-	  IL_0027:  callvirt instance int32 string::get_Length()
-	  IL_002c:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(int32)
-	  IL_0031:  stloc.1 
-	  IL_0032:  newobj instance void class NAnt.Core.ExpressionTokenizer::'.ctor'()
-	  IL_0037:  stloc.2 
-	  IL_0038:  ldarg.0 
-	  IL_0039:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	  IL_003e:  ldarg.0 
-	  IL_003f:  ldarg.3 
-	  IL_0040:  ldarg.s 4
-	  IL_0042:  newobj instance void class NAnt.Core.ExpressionEvaluator::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Stack)
-	  IL_0047:  stloc.3 
-	  IL_0048:  ldloc.2 
-	  IL_0049:  ldc.i4.0 
-	  IL_004a:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_IgnoreWhitespace(bool)
-	  IL_004f:  ldloc.2 
-	  IL_0050:  ldc.i4.1 
-	  IL_0051:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_SingleCharacterMode(bool)
-	  IL_0056:  ldloc.2 
-	  IL_0057:  ldarg.1 
-	  IL_0058:  callvirt instance void class NAnt.Core.ExpressionTokenizer::InitTokenizer(string)
-	  IL_005d:  br IL_013f
-
-	  IL_0062:  nop 
-	  IL_0063:  ldloc.2 
-	  IL_0064:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	  IL_0069:  ldc.i4.s 0x17
-	  IL_006b:  bne.un IL_0129
-
-	  IL_0070:  nop 
-	  IL_0071:  ldloc.2 
-	  IL_0072:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	  IL_0077:  ldloc.2 
-	  IL_0078:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	  IL_007d:  ldc.i4.s 0x12
-	  IL_007f:  bne.un IL_00f7
-
-	  IL_0084:  nop 
-	  IL_0085:  ldloc.2 
-	  IL_0086:  ldc.i4.1 
-	  IL_0087:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_IgnoreWhitespace(bool)
-	  IL_008c:  ldloc.2 
-	  IL_008d:  ldc.i4.0 
-	  IL_008e:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_SingleCharacterMode(bool)
-	  IL_0093:  ldloc.2 
-	  IL_0094:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	  IL_0099:  ldloc.3 
-	  IL_009a:  ldloc.2 
-	  IL_009b:  callvirt instance object class NAnt.Core.ExpressionEvalBase::Evaluate(class NAnt.Core.ExpressionTokenizer)
-	  IL_00a0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_00a5:  call string class [mscorlib]System.Convert::ToString(object, class [mscorlib]System.IFormatProvider)
-	  IL_00aa:  stloc.s 4
-	  IL_00ac:  ldloc.1 
-	  IL_00ad:  ldloc.s 4
-	  IL_00af:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_00b4:  pop 
-	  IL_00b5:  ldloc.2 
-	  IL_00b6:  ldc.i4.0 
-	  IL_00b7:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_IgnoreWhitespace(bool)
-	  IL_00bc:  ldloc.2 
-	  IL_00bd:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	  IL_00c2:  ldc.i4.s 0x13
-	  IL_00c4:  beq IL_00e4
-
-	  IL_00c9:  nop 
-	  IL_00ca:  ldstr "'}' expected"
-	  IL_00cf:  ldloc.2 
-	  IL_00d0:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	  IL_00d5:  stloc.s 5
-	  IL_00d7:  ldloca.s 5
-	  IL_00d9:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
-	  IL_00de:  newobj instance void class NAnt.Core.ExpressionParseException::'.ctor'(string, int32)
-	  IL_00e3:  throw 
-	  IL_00e4:  ldloc.2 
-	  IL_00e5:  ldc.i4.1 
-	  IL_00e6:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_SingleCharacterMode(bool)
-	  IL_00eb:  ldloc.2 
-	  IL_00ec:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	  IL_00f1:  nop 
-	  IL_00f2:  br IL_0123
-
-	  IL_00f7:  nop 
-	  IL_00f8:  ldloc.1 
-	  IL_00f9:  ldc.i4.s 0x24
-	  IL_00fb:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	  IL_0100:  pop 
-	  IL_0101:  ldloc.2 
-	  IL_0102:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	  IL_0107:  ldc.i4.1 
-	  IL_0108:  beq IL_0122
-
-	  IL_010d:  nop 
-	  IL_010e:  ldloc.1 
-	  IL_010f:  ldloc.2 
-	  IL_0110:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
-	  IL_0115:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_011a:  pop 
-	  IL_011b:  ldloc.2 
-	  IL_011c:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	  IL_0121:  nop 
-	  IL_0122:  nop 
-	  IL_0123:  nop 
-	  IL_0124:  br IL_013e
-
-	  IL_0129:  nop 
-	  IL_012a:  ldloc.1 
-	  IL_012b:  ldloc.2 
-	  IL_012c:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
-	  IL_0131:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_0136:  pop 
-	  IL_0137:  ldloc.2 
-	  IL_0138:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	  IL_013d:  nop 
-	  IL_013e:  nop 
-	  IL_013f:  ldloc.2 
-	  IL_0140:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	  IL_0145:  ldc.i4.1 
-	  IL_0146:  bne.un IL_0062
-
-	  IL_014b:  ldloc.1 
-	  IL_014c:  callvirt instance string object::ToString()
-	  IL_0151:  stloc.0 
-	  IL_0152:  leave IL_0261
-
-	} // end .try 0
-	catch class NAnt.Core.ExpressionParseException { // 0
-	  IL_0157:  stloc.s 6
-	  IL_0159:  nop 
-	  IL_015a:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	  IL_015f:  stloc.s 7
-	  IL_0161:  ldarg.1 
-	  IL_0162:  stloc.s 8
-	  IL_0164:  ldloc.s 8
-	  IL_0166:  ldc.i4.s 0x0a
-	  IL_0168:  ldc.i4.s 0x20
-	  IL_016a:  callvirt instance string string::Replace(char, char)
-	  IL_016f:  stloc.s 8
-	  IL_0171:  ldloc.s 8
-	  IL_0173:  ldc.i4.s 0x0d
-	  IL_0175:  ldc.i4.s 0x20
-	  IL_0177:  callvirt instance string string::Replace(char, char)
-	  IL_017c:  stloc.s 8
-	  IL_017e:  ldloc.s 8
-	  IL_0180:  ldc.i4.s 0x09
-	  IL_0182:  ldc.i4.s 0x20
-	  IL_0184:  callvirt instance string string::Replace(char, char)
-	  IL_0189:  stloc.s 8
-	  IL_018b:  ldloc.s 7
-	  IL_018d:  ldloc.s 6
-	  IL_018f:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	  IL_0194:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_0199:  pop 
-	  IL_019a:  ldloc.s 7
-	  IL_019c:  call string class [mscorlib]System.Environment::get_NewLine()
-	  IL_01a1:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_01a6:  pop 
-	  IL_01a7:  ldstr "Expression: "
-	  IL_01ac:  stloc.s 9
-	  IL_01ae:  ldloc.s 7
-	  IL_01b0:  ldloc.s 9
-	  IL_01b2:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_01b7:  pop 
-	  IL_01b8:  ldloc.s 7
-	  IL_01ba:  ldloc.s 8
-	  IL_01bc:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_01c1:  pop 
-	  IL_01c2:  ldloc.s 6
-	  IL_01c4:  callvirt instance int32 class NAnt.Core.ExpressionParseException::get_StartPos()
-	  IL_01c9:  stloc.s 10
-	  IL_01cb:  ldloc.s 6
-	  IL_01cd:  callvirt instance int32 class NAnt.Core.ExpressionParseException::get_EndPos()
-	  IL_01d2:  stloc.s 11
-	  IL_01d4:  ldloc.s 10
-	  IL_01d6:  ldc.i4.m1 
-	  IL_01d7:  bne.un IL_01e4
-
-	  IL_01dc:  ldloc.s 11
-	  IL_01de:  ldc.i4.m1 
-	  IL_01df:  beq IL_024c
-
-	  IL_01e4:  nop 
-	  IL_01e5:  ldloc.s 7
-	  IL_01e7:  call string class [mscorlib]System.Environment::get_NewLine()
-	  IL_01ec:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_01f1:  pop 
-	  IL_01f2:  ldloc.s 11
-	  IL_01f4:  ldc.i4.m1 
-	  IL_01f5:  bne.un IL_0200
-
-	  IL_01fa:  ldloc.s 10
-	  IL_01fc:  ldc.i4.1 
-	  IL_01fd:  add 
-	  IL_01fe:  stloc.s 11
-	  IL_0200:  ldc.i4.0 
-	  IL_0201:  stloc.s 12
-	  IL_0203:  br IL_0218
-
-	  IL_0208:  ldloc.s 7
-	  IL_020a:  ldc.i4.s 0x20
-	  IL_020c:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	  IL_0211:  pop 
-	  IL_0212:  ldloc.s 12
-	  IL_0214:  ldc.i4.1 
-	  IL_0215:  add 
-	  IL_0216:  stloc.s 12
-	  IL_0218:  ldloc.s 12
-	  IL_021a:  ldloc.s 10
-	  IL_021c:  ldloc.s 9
-	  IL_021e:  callvirt instance int32 string::get_Length()
-	  IL_0223:  add 
-	  IL_0224:  blt IL_0208
-
-	  IL_0229:  ldloc.s 10
-	  IL_022b:  stloc.s 13
-	  IL_022d:  br IL_0242
-
-	  IL_0232:  ldloc.s 7
-	  IL_0234:  ldc.i4.s 0x5e
-	  IL_0236:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	  IL_023b:  pop 
-	  IL_023c:  ldloc.s 13
-	  IL_023e:  ldc.i4.1 
-	  IL_023f:  add 
-	  IL_0240:  stloc.s 13
-	  IL_0242:  ldloc.s 13
-	  IL_0244:  ldloc.s 11
-	  IL_0246:  blt IL_0232
-
-	  IL_024b:  nop 
-	  IL_024c:  ldloc.s 7
-	  IL_024e:  callvirt instance string object::ToString()
-	  IL_0253:  ldarg.2 
-	  IL_0254:  ldloc.s 6
-	  IL_0256:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
-	  IL_025b:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0260:  throw 
-	} // end handler 0
-	IL_0261:  ldloc.0 
-	IL_0262:  ret 
-    } // end of method PropertyDictionary::EvaluateEmbeddedExpressions
-
-    // method line 1868
-    .method private hidebysig 
-           instance default void CheckDeprecation (string name)  cil managed 
-    {
-        // Method begins at RVA 0x20958
-	// Code size 856 (0x358)
-	.maxstack 7
-	.locals init (
-		class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>	V_0,
-		int32	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0352
-
-	IL_0007:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.Core.PropertyDictionary::'<>f__switch$map0'
-	IL_000c:  brtrue IL_00d9
-
-	IL_0011:  ldc.i4.s 0x0f
-	IL_0013:  newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::'.ctor'(int32)
-	IL_0018:  stloc.0 
-	IL_0019:  ldloc.0 
-	IL_001a:  ldstr "nant.filename"
-	IL_001f:  ldc.i4.0 
-	IL_0020:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0025:  ldloc.0 
-	IL_0026:  ldstr "nant.version"
-	IL_002b:  ldc.i4.1 
-	IL_002c:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0031:  ldloc.0 
-	IL_0032:  ldstr "nant.location"
-	IL_0037:  ldc.i4.2 
-	IL_0038:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_003d:  ldloc.0 
-	IL_003e:  ldstr "nant.project.basedir"
-	IL_0043:  ldc.i4.3 
-	IL_0044:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0049:  ldloc.0 
-	IL_004a:  ldstr "nant.project.name"
-	IL_004f:  ldc.i4.4 
-	IL_0050:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0055:  ldloc.0 
-	IL_0056:  ldstr "nant.project.buildfile"
-	IL_005b:  ldc.i4.5 
-	IL_005c:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0061:  ldloc.0 
-	IL_0062:  ldstr "nant.project.default"
-	IL_0067:  ldc.i4.6 
-	IL_0068:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_006d:  ldloc.0 
-	IL_006e:  ldstr "nant.platform.name"
-	IL_0073:  ldc.i4.7 
-	IL_0074:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0079:  ldloc.0 
-	IL_007a:  ldstr "nant.platform.win32"
-	IL_007f:  ldc.i4.8 
-	IL_0080:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0085:  ldloc.0 
-	IL_0086:  ldstr "nant.platform.unix"
-	IL_008b:  ldc.i4.s 0x09
-	IL_008d:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0092:  ldloc.0 
-	IL_0093:  ldstr "nant.settings.currentframework.description"
-	IL_0098:  ldc.i4.s 0x0a
-	IL_009a:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_009f:  ldloc.0 
-	IL_00a0:  ldstr "nant.settings.currentframework.frameworkdirectory"
-	IL_00a5:  ldc.i4.s 0x0b
-	IL_00a7:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_00ac:  ldloc.0 
-	IL_00ad:  ldstr "nant.settings.currentframework.sdkdirectory"
-	IL_00b2:  ldc.i4.s 0x0c
-	IL_00b4:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_00b9:  ldloc.0 
-	IL_00ba:  ldstr "nant.settings.currentframework.frameworkassemblydirectory"
-	IL_00bf:  ldc.i4.s 0x0d
-	IL_00c1:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_00c6:  ldloc.0 
-	IL_00c7:  ldstr "nant.settings.currentframework.runtimeengine"
-	IL_00cc:  ldc.i4.s 0x0e
-	IL_00ce:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_00d3:  ldloc.0 
-	IL_00d4:  stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.Core.PropertyDictionary::'<>f__switch$map0'
-	IL_00d9:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.Core.PropertyDictionary::'<>f__switch$map0'
-	IL_00de:  ldarg.1 
-	IL_00df:  ldloca.s 1
-	IL_00e1:  callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::TryGetValue(!0, [out] !1&)
-	IL_00e6:  brfalse IL_0352
-
-	IL_00eb:  ldloc.1 
-	IL_00ec:  switch (
-	  IL_0136,
-	  IL_015a,
-	  IL_017e,
-	  IL_01a2,
-	  IL_01c6,
-	  IL_01ea,
-	  IL_020e,
-	  IL_0232,
-	  IL_0256,
-	  IL_027a,
-	  IL_029e,
-	  IL_02c2,
-	  IL_02e6,
-	  IL_030a,
-	  IL_032e,
-	  IL_0352)
-	IL_0131:  br IL_0352
-
-	IL_0136:  ldarg.0 
-	IL_0137:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_013c:  ldc.i4 4000
-	IL_0141:  ldstr "Built-in property '{0}' is deprecated. Use assembly::get-location(nant::get-assembly()) expression instead."
-	IL_0146:  ldc.i4.1 
-	IL_0147:  newarr [mscorlib]System.Object
-	IL_014c:  dup 
-	IL_014d:  ldc.i4.0 
-	IL_014e:  ldarg.1 
-	IL_014f:  stelem.ref 
-	IL_0150:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0155:  br IL_0357
-
-	IL_015a:  ldarg.0 
-	IL_015b:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_0160:  ldc.i4 4000
-	IL_0165:  ldstr "Built-in property '{0}' is deprecated. Use the assemblyname::get-version(assembly::get-name(nant::get-assembly)) expression instead."
-	IL_016a:  ldc.i4.1 
-	IL_016b:  newarr [mscorlib]System.Object
-	IL_0170:  dup 
-	IL_0171:  ldc.i4.0 
-	IL_0172:  ldarg.1 
-	IL_0173:  stelem.ref 
-	IL_0174:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0179:  br IL_0357
-
-	IL_017e:  ldarg.0 
-	IL_017f:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_0184:  ldc.i4 4000
-	IL_0189:  ldstr "Built-in property '{0}' is deprecated. Use the nant::get-base-directory() function instead."
-	IL_018e:  ldc.i4.1 
-	IL_018f:  newarr [mscorlib]System.Object
-	IL_0194:  dup 
-	IL_0195:  ldc.i4.0 
-	IL_0196:  ldarg.1 
-	IL_0197:  stelem.ref 
-	IL_0198:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_019d:  br IL_0357
-
-	IL_01a2:  ldarg.0 
-	IL_01a3:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_01a8:  ldc.i4 4000
-	IL_01ad:  ldstr "Built-in property '{0}' is deprecated. Use the project::get-base-directory() function instead."
-	IL_01b2:  ldc.i4.1 
-	IL_01b3:  newarr [mscorlib]System.Object
-	IL_01b8:  dup 
-	IL_01b9:  ldc.i4.0 
-	IL_01ba:  ldarg.1 
-	IL_01bb:  stelem.ref 
-	IL_01bc:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_01c1:  br IL_0357
-
-	IL_01c6:  ldarg.0 
-	IL_01c7:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_01cc:  ldc.i4 4000
-	IL_01d1:  ldstr "Built-in property '{0}' is deprecated. Use the project::get-name() function instead."
-	IL_01d6:  ldc.i4.1 
-	IL_01d7:  newarr [mscorlib]System.Object
-	IL_01dc:  dup 
-	IL_01dd:  ldc.i4.0 
-	IL_01de:  ldarg.1 
-	IL_01df:  stelem.ref 
-	IL_01e0:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_01e5:  br IL_0357
-
-	IL_01ea:  ldarg.0 
-	IL_01eb:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_01f0:  ldc.i4 4000
-	IL_01f5:  ldstr "Built-in property '{0}' is deprecated. Use the project::get-buildfile-uri() function instead."
-	IL_01fa:  ldc.i4.1 
-	IL_01fb:  newarr [mscorlib]System.Object
-	IL_0200:  dup 
-	IL_0201:  ldc.i4.0 
-	IL_0202:  ldarg.1 
-	IL_0203:  stelem.ref 
-	IL_0204:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0209:  br IL_0357
-
-	IL_020e:  ldarg.0 
-	IL_020f:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_0214:  ldc.i4 4000
-	IL_0219:  ldstr "Built-in property '{0}' is deprecated. Use the project::get-default-target() function instead."
-	IL_021e:  ldc.i4.1 
-	IL_021f:  newarr [mscorlib]System.Object
-	IL_0224:  dup 
-	IL_0225:  ldc.i4.0 
-	IL_0226:  ldarg.1 
-	IL_0227:  stelem.ref 
-	IL_0228:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_022d:  br IL_0357
-
-	IL_0232:  ldarg.0 
-	IL_0233:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_0238:  ldc.i4 4000
-	IL_023d:  ldstr "Built-in property '{0}' is deprecated. Use the platform::get-name() function instead."
-	IL_0242:  ldc.i4.1 
-	IL_0243:  newarr [mscorlib]System.Object
-	IL_0248:  dup 
-	IL_0249:  ldc.i4.0 
-	IL_024a:  ldarg.1 
-	IL_024b:  stelem.ref 
-	IL_024c:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0251:  br IL_0357
-
-	IL_0256:  ldarg.0 
-	IL_0257:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_025c:  ldc.i4 4000
-	IL_0261:  ldstr "Built-in property '{0}' is deprecated. Use the platform::is-win32() function instead."
-	IL_0266:  ldc.i4.1 
-	IL_0267:  newarr [mscorlib]System.Object
-	IL_026c:  dup 
-	IL_026d:  ldc.i4.0 
-	IL_026e:  ldarg.1 
-	IL_026f:  stelem.ref 
-	IL_0270:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0275:  br IL_0357
-
-	IL_027a:  ldarg.0 
-	IL_027b:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_0280:  ldc.i4 4000
-	IL_0285:  ldstr "Built-in property '{0}' is deprecated. Use the platform::is-unix() function instead."
-	IL_028a:  ldc.i4.1 
-	IL_028b:  newarr [mscorlib]System.Object
-	IL_0290:  dup 
-	IL_0291:  ldc.i4.0 
-	IL_0292:  ldarg.1 
-	IL_0293:  stelem.ref 
-	IL_0294:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0299:  br IL_0357
-
-	IL_029e:  ldarg.0 
-	IL_029f:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_02a4:  ldc.i4 4000
-	IL_02a9:  ldstr "Built-in property '{0}' is deprecated. Use the framework::get-description(framework::get-target-framework()) function instead."
-	IL_02ae:  ldc.i4.1 
-	IL_02af:  newarr [mscorlib]System.Object
-	IL_02b4:  dup 
-	IL_02b5:  ldc.i4.0 
-	IL_02b6:  ldarg.1 
-	IL_02b7:  stelem.ref 
-	IL_02b8:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_02bd:  br IL_0357
-
-	IL_02c2:  ldarg.0 
-	IL_02c3:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_02c8:  ldc.i4 4000
-	IL_02cd:  ldstr "Built-in property '{0}' is deprecated. Use the framework::get-framework-directory(framework::get-target-framework()) function instead."
-	IL_02d2:  ldc.i4.1 
-	IL_02d3:  newarr [mscorlib]System.Object
-	IL_02d8:  dup 
-	IL_02d9:  ldc.i4.0 
-	IL_02da:  ldarg.1 
-	IL_02db:  stelem.ref 
-	IL_02dc:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_02e1:  br IL_0357
-
-	IL_02e6:  ldarg.0 
-	IL_02e7:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_02ec:  ldc.i4 4000
-	IL_02f1:  ldstr "Built-in property '{0}' is deprecated. Use the framework::get-sdk-directory(framework::get-target-framework()) function instead."
-	IL_02f6:  ldc.i4.1 
-	IL_02f7:  newarr [mscorlib]System.Object
-	IL_02fc:  dup 
-	IL_02fd:  ldc.i4.0 
-	IL_02fe:  ldarg.1 
-	IL_02ff:  stelem.ref 
-	IL_0300:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0305:  br IL_0357
-
-	IL_030a:  ldarg.0 
-	IL_030b:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_0310:  ldc.i4 4000
-	IL_0315:  ldstr "Built-in property '{0}' is deprecated. Use the framework::get-assembly-directory(framework::get-target-framework()) function instead."
-	IL_031a:  ldc.i4.1 
-	IL_031b:  newarr [mscorlib]System.Object
-	IL_0320:  dup 
-	IL_0321:  ldc.i4.0 
-	IL_0322:  ldarg.1 
-	IL_0323:  stelem.ref 
-	IL_0324:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0329:  br IL_0357
-
-	IL_032e:  ldarg.0 
-	IL_032f:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
-	IL_0334:  ldc.i4 4000
-	IL_0339:  ldstr "Built-in property '{0}' is deprecated. Use the framework::get-runtime-engine(framework::get-target-framework()) function instead."
-	IL_033e:  ldc.i4.1 
-	IL_033f:  newarr [mscorlib]System.Object
-	IL_0344:  dup 
-	IL_0345:  ldc.i4.0 
-	IL_0346:  ldarg.1 
-	IL_0347:  stelem.ref 
-	IL_0348:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_034d:  br IL_0357
-
-	IL_0352:  br IL_0357
-
-	IL_0357:  ret 
-    } // end of method PropertyDictionary::CheckDeprecation
-
-    // method line 1869
-    .method private static hidebysig 
-           default void ValidatePropertyName (string propertyName, class NAnt.Core.Location location)  cil managed 
-    {
-        // Method begins at RVA 0x20cbc
-	// Code size 108 (0x6c)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "^[_A-Za-z0-9][_A-Za-z0-9\\-.]*$"
-	IL_0007:  call bool class [System]System.Text.RegularExpressions.Regex::IsMatch(string, string)
-	IL_000c:  brtrue IL_002e
-
-	IL_0011:  nop 
-	IL_0012:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0017:  ldstr "NA1064"
-	IL_001c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0021:  ldarg.0 
-	IL_0022:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0027:  ldarg.1 
-	IL_0028:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_002d:  throw 
-	IL_002e:  ldarg.0 
-	IL_002f:  ldstr "-"
-	IL_0034:  callvirt instance bool string::EndsWith(string)
-	IL_0039:  brtrue IL_004e
-
-	IL_003e:  ldarg.0 
-	IL_003f:  ldstr "."
-	IL_0044:  callvirt instance bool string::EndsWith(string)
-	IL_0049:  brfalse IL_006b
-
-	IL_004e:  nop 
-	IL_004f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0054:  ldstr "NA1064"
-	IL_0059:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_005e:  ldarg.0 
-	IL_005f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0064:  ldarg.1 
-	IL_0065:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_006a:  throw 
-	IL_006b:  ret 
-    } // end of method PropertyDictionary::ValidatePropertyName
-
-    // method line 1870
-    .method private static hidebysig 
-           default void ValidatePropertyValue (object 'value', class NAnt.Core.Location location)  cil managed 
-    {
-        // Method begins at RVA 0x20d34
-	// Code size 70 (0x46)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brfalse IL_003f
-
-	IL_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  isinst [mscorlib]System.String
-	IL_000e:  brtrue IL_0039
-
-	IL_0013:  nop 
-	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0019:  ldstr "NA1066"
-	IL_001e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0023:  ldarg.0 
-	IL_0024:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0029:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002e:  ldstr "value"
-	IL_0033:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string, string)
-	IL_0038:  throw 
-	IL_0039:  nop 
-	IL_003a:  br IL_0045
-
-	IL_003f:  nop 
-	IL_0040:  br IL_0045
-
-	IL_0045:  ret 
-    } // end of method PropertyDictionary::ValidatePropertyValue
-
-    // method line 1871
-    .method assembly static hidebysig 
-           default class NAnt.Core.BuildException CreateCircularException (string end, class [mscorlib]System.Collections.Stack stack)  cil managed 
-    {
-        // Method begins at RVA 0x20d88
-	// Code size 85 (0x55)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		string	V_1,
-		class NAnt.Core.BuildException	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldstr "Circular property reference: "
-	IL_0006:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
-	IL_000b:  stloc.0 
-	IL_000c:  ldloc.0 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0013:  pop 
-	IL_0014:  nop 
-	IL_0015:  ldarg.1 
-	IL_0016:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
-	IL_001b:  castclass [mscorlib]System.String
-	IL_0020:  stloc.1 
-	IL_0021:  ldloc.0 
-	IL_0022:  ldstr " <- "
-	IL_0027:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_002c:  pop 
-	IL_002d:  ldloc.0 
-	IL_002e:  ldloc.1 
-	IL_002f:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0034:  pop 
-	IL_0035:  nop 
-	IL_0036:  ldloc.1 
-	IL_0037:  ldarg.0 
-	IL_0038:  callvirt instance bool string::Equals(string)
-	IL_003d:  brfalse IL_0014
-
-	IL_0042:  ldloc.0 
-	IL_0043:  callvirt instance string object::ToString()
-	IL_0048:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_004d:  stloc.2 
-	IL_004e:  br IL_0053
-
-	IL_0053:  ldloc.2 
-	IL_0054:  ret 
-    } // end of method PropertyDictionary::CreateCircularException
-
-	.property instance string Item (string)
-	{
-		.get instance default string NAnt.Core.PropertyDictionary::get_Item (string name) 
-		.set instance default void NAnt.Core.PropertyDictionary::set_Item (string name, string 'value') 
-	}
-	.property instance class NAnt.Core.Project Project ()
-	{
-		.get instance default class NAnt.Core.Project NAnt.Core.PropertyDictionary::get_Project () 
-	}
-  } // end of class NAnt.Core.PropertyDictionary
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi beforefieldinit ElementContainer
-  	extends NAnt.Core.Element
-  {
-    .field  private  class [System]System.Collections.Specialized.StringCollection _subXMLElements
-
-    // method line 1872
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x15ba4
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_0006:  ret 
-    } // end of method ElementContainer::.ctor
-
-    // method line 1873
-    .method family virtual hidebysig specialname 
-           instance default bool get_CustomXmlProcessing ()  cil managed 
-    {
-        // Method begins at RVA 0x15bac
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ElementContainer::get_CustomXmlProcessing
-
-    // method line 1874
-    .method public virtual hidebysig newslot 
-           instance default void Execute ()  cil managed 
-    {
-        // Method begins at RVA 0x15bc2
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance void class NAnt.Core.ElementContainer::ExecuteChildTasks()
-	IL_0007:  ret 
-    } // end of method ElementContainer::Execute
-
-    // method line 1875
-    .method family virtual hidebysig newslot 
-           instance default void ExecuteChildTasks ()  cil managed 
-    {
-        // Method begins at RVA 0x15bcc
-	// Code size 400 (0x190)
-	.maxstack 7
-	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Task	V_2,
-		class NAnt.Core.DataTypeBase	V_3,
-		class [mscorlib]System.IDisposable	V_4)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::get_XmlNode()
-	IL_0008:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNode::GetEnumerator()
-	IL_000d:  stloc.1 
-	.try { // 0
-	  IL_000e:  br IL_0169
-
-	  IL_0013:  ldloc.1 
-	  IL_0014:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0019:  castclass [System.Xml]System.Xml.XmlNode
-	  IL_001e:  stloc.0 
-	  IL_001f:  nop 
-	  IL_0020:  ldloc.0 
-	  IL_0021:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
-	  IL_0026:  ldc.i4.1 
-	  IL_0027:  bne.un IL_004c
-
-	  IL_002c:  ldloc.0 
-	  IL_002d:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	  IL_0032:  ldarg.0 
-	  IL_0033:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
-	  IL_0038:  ldstr "nant"
-	  IL_003d:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
-	  IL_0042:  callvirt instance bool string::Equals(string)
-	  IL_0047:  brtrue IL_0052
-
-	  IL_004c:  nop 
-	  IL_004d:  leave IL_0169
-
-	  IL_0052:  ldarg.0 
-	  IL_0053:  ldloc.0 
-	  IL_0054:  callvirt instance bool class NAnt.Core.ElementContainer::IsPrivateXmlElement(class [System.Xml]System.Xml.XmlNode)
-	  IL_0059:  brfalse IL_0064
-
-	  IL_005e:  nop 
-	  IL_005f:  leave IL_0169
-
-	  IL_0064:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
-	  IL_0069:  ldloc.0 
-	  IL_006a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_006f:  callvirt instance bool class NAnt.Core.TaskBuilderCollection::Contains(string)
-	  IL_0074:  brfalse IL_009d
-
-	  IL_0079:  nop 
-	  IL_007a:  ldarg.0 
-	  IL_007b:  ldloc.0 
-	  IL_007c:  callvirt instance class NAnt.Core.Task class NAnt.Core.ElementContainer::CreateChildTask(class [System.Xml]System.Xml.XmlNode)
-	  IL_0081:  stloc.2 
-	  IL_0082:  ldloc.2 
-	  IL_0083:  brfalse IL_0097
-
-	  IL_0088:  nop 
-	  IL_0089:  ldloc.2 
-	  IL_008a:  ldarg.0 
-	  IL_008b:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	  IL_0090:  ldloc.2 
-	  IL_0091:  callvirt instance void class NAnt.Core.Task::Execute()
-	  IL_0096:  nop 
-	  IL_0097:  nop 
-	  IL_0098:  br IL_0168
-
-	  IL_009d:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
-	  IL_00a2:  ldloc.0 
-	  IL_00a3:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_00a8:  callvirt instance bool class NAnt.Core.DataTypeBaseBuilderCollection::Contains(string)
-	  IL_00ad:  brfalse IL_013b
-
-	  IL_00b2:  nop 
-	  IL_00b3:  ldarg.0 
-	  IL_00b4:  ldloc.0 
-	  IL_00b5:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.ElementContainer::CreateChildDataTypeBase(class [System.Xml]System.Xml.XmlNode)
-	  IL_00ba:  stloc.3 
-	  IL_00bb:  ldarg.0 
-	  IL_00bc:  ldc.i4 1000
-	  IL_00c1:  ldstr "Adding a {0} reference with id '{1}'."
-	  IL_00c6:  ldc.i4.2 
-	  IL_00c7:  newarr [mscorlib]System.Object
-	  IL_00cc:  dup 
-	  IL_00cd:  ldc.i4.0 
-	  IL_00ce:  ldloc.0 
-	  IL_00cf:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_00d4:  stelem.ref 
-	  IL_00d5:  dup 
-	  IL_00d6:  ldc.i4.1 
-	  IL_00d7:  ldloc.3 
-	  IL_00d8:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	  IL_00dd:  stelem.ref 
-	  IL_00de:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_00e3:  ldarg.0 
-	  IL_00e4:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_00e9:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	  IL_00ee:  ldloc.3 
-	  IL_00ef:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	  IL_00f4:  callvirt instance bool class NAnt.Core.DataTypeBaseDictionary::Contains(string)
-	  IL_00f9:  brtrue IL_011c
-
-	  IL_00fe:  nop 
-	  IL_00ff:  ldarg.0 
-	  IL_0100:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_0105:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	  IL_010a:  ldloc.3 
-	  IL_010b:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	  IL_0110:  ldloc.3 
-	  IL_0111:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::Add(string, class NAnt.Core.DataTypeBase)
-	  IL_0116:  nop 
-	  IL_0117:  br IL_0135
-
-	  IL_011c:  nop 
-	  IL_011d:  ldarg.0 
-	  IL_011e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_0123:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	  IL_0128:  ldloc.3 
-	  IL_0129:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	  IL_012e:  ldloc.3 
-	  IL_012f:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::set_Item(string, class NAnt.Core.DataTypeBase)
-	  IL_0134:  nop 
-	  IL_0135:  nop 
-	  IL_0136:  br IL_0168
-
-	  IL_013b:  nop 
-	  IL_013c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0141:  ldstr "NA1071"
-	  IL_0146:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_014b:  ldloc.0 
-	  IL_014c:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_0151:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0156:  ldarg.0 
-	  IL_0157:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_015c:  ldloc.0 
-	  IL_015d:  callvirt instance class NAnt.Core.Location class NAnt.Core.Project::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	  IL_0162:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_0167:  throw 
-	  IL_0168:  nop 
-	  IL_0169:  ldloc.1 
-	  IL_016a:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_016f:  brtrue IL_0013
-
-	  IL_0174:  leave IL_018f
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0179:  ldloc.1 
-	  IL_017a:  isinst [mscorlib]System.IDisposable
-	  IL_017f:  dup 
-	  IL_0180:  stloc.s 4
-	  IL_0182:  brfalse IL_018e
-
-	  IL_0187:  ldloc.s 4
-	  IL_0189:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_018e:  endfinally 
-	} // end handler 0
-	IL_018f:  ret 
-    } // end of method ElementContainer::ExecuteChildTasks
-
-    // method line 1876
-    .method family virtual hidebysig newslot 
-           instance default class NAnt.Core.Task CreateChildTask (class [System.Xml]System.Xml.XmlNode node)  cil managed 
-    {
-        // Method begins at RVA 0x15d84
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Task	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.Core.Task class NAnt.Core.Project::CreateTask(class [System.Xml]System.Xml.XmlNode)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ElementContainer::CreateChildTask
-
-    // method line 1877
-    .method family virtual hidebysig newslot 
-           instance default class NAnt.Core.DataTypeBase CreateChildDataTypeBase (class [System.Xml]System.Xml.XmlNode node)  cil managed 
-    {
-        // Method begins at RVA 0x15da8
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.DataTypeBase	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.Project::CreateDataTypeBase(class [System.Xml]System.Xml.XmlNode)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ElementContainer::CreateChildDataTypeBase
-
-    // method line 1878
-    .method family virtual hidebysig newslot 
-           instance default bool IsPrivateXmlElement (class [System.Xml]System.Xml.XmlNode node)  cil managed 
-    {
-        // Method begins at RVA 0x15dcc
-	// Code size 40 (0x28)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.ElementContainer::_subXMLElements
-	IL_0007:  brfalse IL_001f
-
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.ElementContainer::_subXMLElements
-	IL_0012:  ldarg.1 
-	IL_0013:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_0018:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	IL_001d:  br.s IL_0020
-
-	IL_001f:  ldc.i4.0 
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
-
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method ElementContainer::IsPrivateXmlElement
-
-    // method line 1879
-    .method family virtual hidebysig newslot 
-           instance default void AddPrivateXmlElementName (string name)  cil managed 
-    {
-        // Method begins at RVA 0x15e00
-	// Code size 54 (0x36)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.ElementContainer::_subXMLElements
-	IL_0007:  brtrue IL_0017
-
-	IL_000c:  ldarg.0 
-	IL_000d:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0012:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.ElementContainer::_subXMLElements
-	IL_0017:  ldarg.0 
-	IL_0018:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.ElementContainer::_subXMLElements
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	IL_0023:  brtrue IL_0035
-
-	IL_0028:  ldarg.0 
-	IL_0029:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.ElementContainer::_subXMLElements
-	IL_002e:  ldarg.1 
-	IL_002f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0034:  pop 
-	IL_0035:  ret 
-    } // end of method ElementContainer::AddPrivateXmlElementName
-
-	.property instance bool CustomXmlProcessing ()
-	{
-		.get instance default bool NAnt.Core.ElementContainer::get_CustomXmlProcessing () 
-	}
-  } // end of class NAnt.Core.ElementContainer
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi beforefieldinit TaskContainer
-  	extends NAnt.Core.Task
-  {
-    .field  private  class [System]System.Collections.Specialized.StringCollection _subXMLElements
-
-    // method line 1880
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xf770
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
-	IL_0006:  ret 
-    } // end of method TaskContainer::.ctor
-
-    // method line 1881
-    .method family virtual hidebysig specialname 
-           instance default bool get_CustomXmlProcessing ()  cil managed 
-    {
-        // Method begins at RVA 0xf778
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method TaskContainer::get_CustomXmlProcessing
-
-    // method line 1882
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0xf790
-	// Code size 141 (0x8d)
-	.maxstack 3
-	.locals init (
-		class [mscorlib]System.Reflection.MemberInfo	V_0,
-		class [mscorlib]System.Reflection.MemberInfo[]	V_1,
-		int32	V_2,
-		class NAnt.Core.Attributes.BuildElementAttribute	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.Task::Initialize()
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_000d:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance class [mscorlib]System.Type object::GetType()
-	IL_0019:  ldc.i4.s 0x14
-	IL_001b:  callvirt instance class [mscorlib]System.Reflection.MemberInfo[] class [mscorlib]System.Type::GetMembers(valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_0020:  stloc.1 
-	IL_0021:  ldc.i4.0 
-	IL_0022:  stloc.2 
-	IL_0023:  br IL_0083
-
-	IL_0028:  ldloc.1 
-	IL_0029:  ldloc.2 
-	IL_002a:  ldelem.ref 
-	IL_002b:  stloc.0 
-	IL_002c:  nop 
-	IL_002d:  ldloc.0 
-	IL_002e:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_0033:  ldtoken [mscorlib]System.Object
-	IL_0038:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_003d:  callvirt instance bool class [mscorlib]System.Type::Equals(class [mscorlib]System.Type)
-	IL_0042:  brfalse IL_004d
-
-	IL_0047:  nop 
-	IL_0048:  br IL_007f
-
-	IL_004d:  ldloc.0 
-	IL_004e:  ldtoken NAnt.Core.Attributes.BuildElementAttribute
-	IL_0053:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0058:  ldc.i4.1 
-	IL_0059:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_005e:  castclass NAnt.Core.Attributes.BuildElementAttribute
-	IL_0063:  stloc.3 
-	IL_0064:  ldloc.3 
-	IL_0065:  brfalse IL_007e
-
-	IL_006a:  nop 
-	IL_006b:  ldarg.0 
-	IL_006c:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
-	IL_0071:  ldloc.3 
-	IL_0072:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
-	IL_0077:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_007c:  pop 
-	IL_007d:  nop 
-	IL_007e:  nop 
-	IL_007f:  ldloc.2 
-	IL_0080:  ldc.i4.1 
-	IL_0081:  add 
-	IL_0082:  stloc.2 
-	IL_0083:  ldloc.2 
-	IL_0084:  ldloc.1 
-	IL_0085:  ldlen 
-	IL_0086:  conv.i4 
-	IL_0087:  blt IL_0028
-
-	IL_008c:  ret 
-    } // end of method TaskContainer::Initialize
-
-    // method line 1883
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0xf829
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance void class NAnt.Core.TaskContainer::ExecuteChildTasks()
-	IL_0007:  ret 
-    } // end of method TaskContainer::ExecuteTask
-
-    // method line 1884
-    .method family virtual hidebysig newslot 
-           instance default void ExecuteChildTasks ()  cil managed 
-    {
-        // Method begins at RVA 0xf834
-	// Code size 400 (0x190)
-	.maxstack 7
-	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Task	V_2,
-		class NAnt.Core.DataTypeBase	V_3,
-		class [mscorlib]System.IDisposable	V_4)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::get_XmlNode()
-	IL_0008:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNode::GetEnumerator()
-	IL_000d:  stloc.1 
-	.try { // 0
-	  IL_000e:  br IL_0169
-
-	  IL_0013:  ldloc.1 
-	  IL_0014:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0019:  castclass [System.Xml]System.Xml.XmlNode
-	  IL_001e:  stloc.0 
-	  IL_001f:  nop 
-	  IL_0020:  ldloc.0 
-	  IL_0021:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
-	  IL_0026:  ldc.i4.1 
-	  IL_0027:  bne.un IL_004c
-
-	  IL_002c:  ldloc.0 
-	  IL_002d:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	  IL_0032:  ldarg.0 
-	  IL_0033:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
-	  IL_0038:  ldstr "nant"
-	  IL_003d:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
-	  IL_0042:  callvirt instance bool string::Equals(string)
-	  IL_0047:  brtrue IL_0052
-
-	  IL_004c:  nop 
-	  IL_004d:  leave IL_0169
-
-	  IL_0052:  ldarg.0 
-	  IL_0053:  ldloc.0 
-	  IL_0054:  callvirt instance bool class NAnt.Core.TaskContainer::IsPrivateXmlElement(class [System.Xml]System.Xml.XmlNode)
-	  IL_0059:  brfalse IL_0064
-
-	  IL_005e:  nop 
-	  IL_005f:  leave IL_0169
-
-	  IL_0064:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
-	  IL_0069:  ldloc.0 
-	  IL_006a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_006f:  callvirt instance bool class NAnt.Core.TaskBuilderCollection::Contains(string)
-	  IL_0074:  brfalse IL_009d
-
-	  IL_0079:  nop 
-	  IL_007a:  ldarg.0 
-	  IL_007b:  ldloc.0 
-	  IL_007c:  callvirt instance class NAnt.Core.Task class NAnt.Core.TaskContainer::CreateChildTask(class [System.Xml]System.Xml.XmlNode)
-	  IL_0081:  stloc.2 
-	  IL_0082:  ldloc.2 
-	  IL_0083:  brfalse IL_0097
-
-	  IL_0088:  nop 
-	  IL_0089:  ldloc.2 
-	  IL_008a:  ldarg.0 
-	  IL_008b:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	  IL_0090:  ldloc.2 
-	  IL_0091:  callvirt instance void class NAnt.Core.Task::Execute()
-	  IL_0096:  nop 
-	  IL_0097:  nop 
-	  IL_0098:  br IL_0168
-
-	  IL_009d:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
-	  IL_00a2:  ldloc.0 
-	  IL_00a3:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_00a8:  callvirt instance bool class NAnt.Core.DataTypeBaseBuilderCollection::Contains(string)
-	  IL_00ad:  brfalse IL_013b
-
-	  IL_00b2:  nop 
-	  IL_00b3:  ldarg.0 
-	  IL_00b4:  ldloc.0 
-	  IL_00b5:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.TaskContainer::CreateChildDataTypeBase(class [System.Xml]System.Xml.XmlNode)
-	  IL_00ba:  stloc.3 
-	  IL_00bb:  ldarg.0 
-	  IL_00bc:  ldc.i4 1000
-	  IL_00c1:  ldstr "Adding a {0} reference with id '{1}'."
-	  IL_00c6:  ldc.i4.2 
-	  IL_00c7:  newarr [mscorlib]System.Object
-	  IL_00cc:  dup 
-	  IL_00cd:  ldc.i4.0 
-	  IL_00ce:  ldloc.0 
-	  IL_00cf:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_00d4:  stelem.ref 
-	  IL_00d5:  dup 
-	  IL_00d6:  ldc.i4.1 
-	  IL_00d7:  ldloc.3 
-	  IL_00d8:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	  IL_00dd:  stelem.ref 
-	  IL_00de:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_00e3:  ldarg.0 
-	  IL_00e4:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_00e9:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	  IL_00ee:  ldloc.3 
-	  IL_00ef:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	  IL_00f4:  callvirt instance bool class NAnt.Core.DataTypeBaseDictionary::Contains(string)
-	  IL_00f9:  brtrue IL_011c
-
-	  IL_00fe:  nop 
-	  IL_00ff:  ldarg.0 
-	  IL_0100:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_0105:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	  IL_010a:  ldloc.3 
-	  IL_010b:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	  IL_0110:  ldloc.3 
-	  IL_0111:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::Add(string, class NAnt.Core.DataTypeBase)
-	  IL_0116:  nop 
-	  IL_0117:  br IL_0135
-
-	  IL_011c:  nop 
-	  IL_011d:  ldarg.0 
-	  IL_011e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_0123:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	  IL_0128:  ldloc.3 
-	  IL_0129:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	  IL_012e:  ldloc.3 
-	  IL_012f:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::set_Item(string, class NAnt.Core.DataTypeBase)
-	  IL_0134:  nop 
-	  IL_0135:  nop 
-	  IL_0136:  br IL_0168
-
-	  IL_013b:  nop 
-	  IL_013c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0141:  ldstr "NA1071"
-	  IL_0146:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_014b:  ldloc.0 
-	  IL_014c:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_0151:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0156:  ldarg.0 
-	  IL_0157:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_015c:  ldloc.0 
-	  IL_015d:  callvirt instance class NAnt.Core.Location class NAnt.Core.Project::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	  IL_0162:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_0167:  throw 
-	  IL_0168:  nop 
-	  IL_0169:  ldloc.1 
-	  IL_016a:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_016f:  brtrue IL_0013
-
-	  IL_0174:  leave IL_018f
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0179:  ldloc.1 
-	  IL_017a:  isinst [mscorlib]System.IDisposable
-	  IL_017f:  dup 
-	  IL_0180:  stloc.s 4
-	  IL_0182:  brfalse IL_018e
-
-	  IL_0187:  ldloc.s 4
-	  IL_0189:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_018e:  endfinally 
-	} // end handler 0
-	IL_018f:  ret 
-    } // end of method TaskContainer::ExecuteChildTasks
-
-    // method line 1885
-    .method family virtual hidebysig newslot 
-           instance default class NAnt.Core.Task CreateChildTask (class [System.Xml]System.Xml.XmlNode node)  cil managed 
-    {
-        // Method begins at RVA 0xf9ec
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Task	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.Core.Task class NAnt.Core.Project::CreateTask(class [System.Xml]System.Xml.XmlNode)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method TaskContainer::CreateChildTask
-
-    // method line 1886
-    .method family virtual hidebysig newslot 
-           instance default class NAnt.Core.DataTypeBase CreateChildDataTypeBase (class [System.Xml]System.Xml.XmlNode node)  cil managed 
-    {
-        // Method begins at RVA 0xfa10
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.DataTypeBase	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.Project::CreateDataTypeBase(class [System.Xml]System.Xml.XmlNode)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method TaskContainer::CreateChildDataTypeBase
-
-    // method line 1887
-    .method family virtual hidebysig newslot 
-           instance default bool IsPrivateXmlElement (class [System.Xml]System.Xml.XmlNode node)  cil managed 
-    {
-        // Method begins at RVA 0xfa34
-	// Code size 40 (0x28)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
-	IL_0007:  brfalse IL_001f
-
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
-	IL_0012:  ldarg.1 
-	IL_0013:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_0018:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	IL_001d:  br.s IL_0020
-
-	IL_001f:  ldc.i4.0 
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
-
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method TaskContainer::IsPrivateXmlElement
-
-    // method line 1888
-    .method family virtual hidebysig newslot 
-           instance default void AddPrivateXmlElementName (string name)  cil managed 
-    {
-        // Method begins at RVA 0xfa68
-	// Code size 58 (0x3a)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
-	IL_0007:  brtrue IL_0019
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0013:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
-	IL_0018:  nop 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
-	IL_001f:  ldarg.1 
-	IL_0020:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	IL_0025:  brtrue IL_0039
-
-	IL_002a:  nop 
-	IL_002b:  ldarg.0 
-	IL_002c:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
-	IL_0031:  ldarg.1 
-	IL_0032:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0037:  pop 
-	IL_0038:  nop 
-	IL_0039:  ret 
-    } // end of method TaskContainer::AddPrivateXmlElementName
-
-	.property instance bool CustomXmlProcessing ()
-	{
-		.get instance default bool NAnt.Core.TaskContainer::get_CustomXmlProcessing () 
-	}
-  } // end of class NAnt.Core.TaskContainer
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi sealed serializable beforefieldinit FrameworkInfoDictionary
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IDictionary, [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable, [mscorlib]System.ICloneable  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
-
-    .field  private  class [mscorlib]System.Collections.Hashtable _innerHash
-
-    // method line 1889
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x20de9
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
-	IL_0012:  ret 
-    } // end of method FrameworkInfoDictionary::.ctor
-
-    // method line 1890
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.FrameworkInfoDictionary original)  cil managed 
-    {
-        // Method begins at RVA 0x20dfd
+        // Method begins at RVA 0x1dbdb
 	// Code size 25 (0x19)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -70917,17 +58702,17 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.Core.FrameworkInfoDictionary::get_InnerHash()
+	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.Core.DataTypeBaseDictionary::get_InnerHash()
 	IL_000e:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary)
-	IL_0013:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0013:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0018:  ret 
-    } // end of method FrameworkInfoDictionary::.ctor
+    } // end of method DataTypeBaseDictionary::.ctor
 
-    // method line 1891
+    // method line 1618
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary)  cil managed 
     {
-        // Method begins at RVA 0x20e17
+        // Method begins at RVA 0x1dbf5
 	// Code size 20 (0x14)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -70936,15 +58721,15 @@
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
 	IL_0009:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary)
-	IL_000e:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_000e:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0013:  ret 
-    } // end of method FrameworkInfoDictionary::.ctor
+    } // end of method DataTypeBaseDictionary::.ctor
 
-    // method line 1892
+    // method line 1619
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (int32 capacity)  cil managed 
     {
-        // Method begins at RVA 0x20e2c
+        // Method begins at RVA 0x1dc0a
 	// Code size 20 (0x14)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -70953,15 +58738,15 @@
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
 	IL_0009:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(int32)
-	IL_000e:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_000e:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0013:  ret 
-    } // end of method FrameworkInfoDictionary::.ctor
+    } // end of method DataTypeBaseDictionary::.ctor
 
-    // method line 1893
+    // method line 1620
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary, float32 loadFactor)  cil managed 
     {
-        // Method begins at RVA 0x20e41
+        // Method begins at RVA 0x1dc1f
 	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -70971,15 +58756,15 @@
 	IL_0008:  ldarg.1 
 	IL_0009:  ldarg.2 
 	IL_000a:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary, float32)
-	IL_000f:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_000f:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0014:  ret 
-    } // end of method FrameworkInfoDictionary::.ctor
+    } // end of method DataTypeBaseDictionary::.ctor
 
-    // method line 1894
+    // method line 1621
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
     {
-        // Method begins at RVA 0x20e57
+        // Method begins at RVA 0x1dc35
 	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -70989,15 +58774,15 @@
 	IL_0008:  ldarg.1 
 	IL_0009:  ldarg.2 
 	IL_000a:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
-	IL_000f:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_000f:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0014:  ret 
-    } // end of method FrameworkInfoDictionary::.ctor
+    } // end of method DataTypeBaseDictionary::.ctor
 
-    // method line 1895
+    // method line 1622
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (int32 capacity, int32 loadFactor)  cil managed 
     {
-        // Method begins at RVA 0x20e6d
+        // Method begins at RVA 0x1dc4b
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -71008,15 +58793,15 @@
 	IL_0009:  ldarg.2 
 	IL_000a:  conv.r4 
 	IL_000b:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(int32, float32)
-	IL_0010:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0010:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0015:  ret 
-    } // end of method FrameworkInfoDictionary::.ctor
+    } // end of method DataTypeBaseDictionary::.ctor
 
-    // method line 1896
+    // method line 1623
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary, class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
     {
-        // Method begins at RVA 0x20e84
+        // Method begins at RVA 0x1dc62
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -71027,15 +58812,15 @@
 	IL_0009:  ldarg.2 
 	IL_000a:  ldarg.3 
 	IL_000b:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary, class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
-	IL_0010:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0010:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0015:  ret 
-    } // end of method FrameworkInfoDictionary::.ctor
+    } // end of method DataTypeBaseDictionary::.ctor
 
-    // method line 1897
+    // method line 1624
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (int32 capacity, class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
     {
-        // Method begins at RVA 0x20e9b
+        // Method begins at RVA 0x1dc79
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -71046,15 +58831,15 @@
 	IL_0009:  ldarg.2 
 	IL_000a:  ldarg.3 
 	IL_000b:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(int32, class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
-	IL_0010:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0010:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0015:  ret 
-    } // end of method FrameworkInfoDictionary::.ctor
+    } // end of method DataTypeBaseDictionary::.ctor
 
-    // method line 1898
+    // method line 1625
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary, float32 loadFactor, class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
     {
-        // Method begins at RVA 0x20eb2
+        // Method begins at RVA 0x1dc90
 	// Code size 24 (0x18)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -71066,15 +58851,15 @@
 	IL_000a:  ldarg.3 
 	IL_000b:  ldarg.s 4
 	IL_000d:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary, float32, class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
-	IL_0012:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0012:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0017:  ret 
-    } // end of method FrameworkInfoDictionary::.ctor
+    } // end of method DataTypeBaseDictionary::.ctor
 
-    // method line 1899
+    // method line 1626
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (int32 capacity, float32 loadFactor, class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
     {
-        // Method begins at RVA 0x20ecb
+        // Method begins at RVA 0x1dca9
 	// Code size 24 (0x18)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -71086,67 +58871,67 @@
 	IL_000a:  ldarg.3 
 	IL_000b:  ldarg.s 4
 	IL_000d:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(int32, float32, class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
-	IL_0012:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0012:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0017:  ret 
-    } // end of method FrameworkInfoDictionary::.ctor
+    } // end of method DataTypeBaseDictionary::.ctor
 
-    // method line 1900
+    // method line 1627
     .method assembly hidebysig specialname 
            instance default class [mscorlib]System.Collections.Hashtable get_InnerHash ()  cil managed 
     {
-        // Method begins at RVA 0x20ee4
+        // Method begins at RVA 0x1dcc4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.Collections.Hashtable	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FrameworkInfoDictionary::get_InnerHash
+    } // end of method DataTypeBaseDictionary::get_InnerHash
 
-    // method line 1901
+    // method line 1628
     .method assembly hidebysig specialname 
            instance default void set_InnerHash (class [mscorlib]System.Collections.Hashtable 'value')  cil managed 
     {
-        // Method begins at RVA 0x20eff
+        // Method begins at RVA 0x1dcdf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0003:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0008:  ret 
-    } // end of method FrameworkInfoDictionary::set_InnerHash
+    } // end of method DataTypeBaseDictionary::set_InnerHash
 
-    // method line 1902
+    // method line 1629
     .method public hidebysig 
-           instance default class NAnt.Core.FrameworkInfoDictionaryEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.Core.DataTypeBaseDictionaryEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x20f0c
+        // Method begins at RVA 0x1dcec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.FrameworkInfoDictionaryEnumerator	V_0)
+		class NAnt.Core.DataTypeBaseDictionaryEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.FrameworkInfoDictionaryEnumerator::'.ctor'(class NAnt.Core.FrameworkInfoDictionary)
+	IL_0002:  newobj instance void class NAnt.Core.DataTypeBaseDictionaryEnumerator::'.ctor'(class NAnt.Core.DataTypeBaseDictionary)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FrameworkInfoDictionary::GetEnumerator
+    } // end of method DataTypeBaseDictionary::GetEnumerator
 
-    // method line 1903
+    // method line 1630
     .method private final virtual hidebysig newslot 
            instance default class [mscorlib]System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x20f28
+        // Method begins at RVA 0x1dd08
 	.override class [mscorlib]System.Collections.IDictionary::GetEnumerator
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -71154,19 +58939,19 @@
 		class [mscorlib]System.Collections.IDictionaryEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.FrameworkInfoDictionaryEnumerator::'.ctor'(class NAnt.Core.FrameworkInfoDictionary)
+	IL_0002:  newobj instance void class NAnt.Core.DataTypeBaseDictionaryEnumerator::'.ctor'(class NAnt.Core.DataTypeBaseDictionary)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.GetEnumerator
+    } // end of method DataTypeBaseDictionary::System.Collections.IDictionary.GetEnumerator
 
-    // method line 1904
+    // method line 1631
     .method private final virtual hidebysig newslot 
            instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x20f44
+        // Method begins at RVA 0x1dd24
 	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -71174,34 +58959,34 @@
 		class [mscorlib]System.Collections.IEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.FrameworkInfoDictionaryEnumerator class NAnt.Core.FrameworkInfoDictionary::GetEnumerator()
+	IL_0002:  call instance class NAnt.Core.DataTypeBaseDictionaryEnumerator class NAnt.Core.DataTypeBaseDictionary::GetEnumerator()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FrameworkInfoDictionary::System.Collections.IEnumerable.GetEnumerator
+    } // end of method DataTypeBaseDictionary::System.Collections.IEnumerable.GetEnumerator
 
-    // method line 1905
+    // method line 1632
     .method public hidebysig 
            instance default void Remove (string key)  cil managed 
     {
-        // Method begins at RVA 0x20f5f
+        // Method begins at RVA 0x1dd3f
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
 	IL_000d:  ret 
-    } // end of method FrameworkInfoDictionary::Remove
+    } // end of method DataTypeBaseDictionary::Remove
 
-    // method line 1906
+    // method line 1633
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IDictionary.Remove (object key)  cil managed 
     {
-        // Method begins at RVA 0x20f6e
+        // Method begins at RVA 0x1dd4e
 	.override class [mscorlib]System.Collections.IDictionary::Remove
 	// Code size 14 (0xe)
 	.maxstack 8
@@ -71209,22 +58994,22 @@
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
 	IL_0003:  castclass [mscorlib]System.String
-	IL_0008:  call instance void class NAnt.Core.FrameworkInfoDictionary::Remove(string)
+	IL_0008:  call instance void class NAnt.Core.DataTypeBaseDictionary::Remove(string)
 	IL_000d:  ret 
-    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.Remove
+    } // end of method DataTypeBaseDictionary::System.Collections.IDictionary.Remove
 
-    // method line 1907
+    // method line 1634
     .method public hidebysig 
            instance default bool Contains (string key)  cil managed 
     {
-        // Method begins at RVA 0x20f80
+        // Method begins at RVA 0x1dd60
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
 	IL_000d:  stloc.0 
@@ -71232,13 +59017,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FrameworkInfoDictionary::Contains
+    } // end of method DataTypeBaseDictionary::Contains
 
-    // method line 1908
+    // method line 1635
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IDictionary.Contains (object key)  cil managed 
     {
-        // Method begins at RVA 0x20fa4
+        // Method begins at RVA 0x1dd84
 	.override class [mscorlib]System.Collections.IDictionary::Contains
 	// Code size 21 (0x15)
 	.maxstack 2
@@ -71248,49 +59033,49 @@
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
 	IL_0003:  castclass [mscorlib]System.String
-	IL_0008:  call instance bool class NAnt.Core.FrameworkInfoDictionary::Contains(string)
+	IL_0008:  call instance bool class NAnt.Core.DataTypeBaseDictionary::Contains(string)
 	IL_000d:  stloc.0 
 	IL_000e:  br IL_0013
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.Contains
+    } // end of method DataTypeBaseDictionary::System.Collections.IDictionary.Contains
 
-    // method line 1909
+    // method line 1636
     .method public final virtual hidebysig newslot 
            instance default void Clear ()  cil managed 
     {
-        // Method begins at RVA 0x20fc5
+        // Method begins at RVA 0x1dda5
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Clear()
 	IL_000c:  ret 
-    } // end of method FrameworkInfoDictionary::Clear
+    } // end of method DataTypeBaseDictionary::Clear
 
-    // method line 1910
+    // method line 1637
     .method public hidebysig 
-           instance default void Add (string key, class NAnt.Core.FrameworkInfo 'value')  cil managed 
+           instance default void Add (string key, class NAnt.Core.DataTypeBase 'value')  cil managed 
     {
-        // Method begins at RVA 0x20fd3
+        // Method begins at RVA 0x1ddb3
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  ldarg.1 
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
 	IL_000e:  ret 
-    } // end of method FrameworkInfoDictionary::Add
+    } // end of method DataTypeBaseDictionary::Add
 
-    // method line 1911
+    // method line 1638
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IDictionary.Add (object key, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x20fe3
+        // Method begins at RVA 0x1ddc3
 	.override class [mscorlib]System.Collections.IDictionary::Add
 	// Code size 20 (0x14)
 	.maxstack 8
@@ -71299,74 +59084,74 @@
 	IL_0002:  ldarg.1 
 	IL_0003:  castclass [mscorlib]System.String
 	IL_0008:  ldarg.2 
-	IL_0009:  castclass NAnt.Core.FrameworkInfo
-	IL_000e:  call instance void class NAnt.Core.FrameworkInfoDictionary::Add(string, class NAnt.Core.FrameworkInfo)
+	IL_0009:  castclass NAnt.Core.DataTypeBase
+	IL_000e:  call instance void class NAnt.Core.DataTypeBaseDictionary::Add(string, class NAnt.Core.DataTypeBase)
 	IL_0013:  ret 
-    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.Add
+    } // end of method DataTypeBaseDictionary::System.Collections.IDictionary.Add
 
-    // method line 1912
+    // method line 1639
     .method public final virtual hidebysig newslot specialname 
            instance default bool get_IsReadOnly ()  cil managed 
     {
-        // Method begins at RVA 0x20ff8
+        // Method begins at RVA 0x1ddd8
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsReadOnly()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method FrameworkInfoDictionary::get_IsReadOnly
+    } // end of method DataTypeBaseDictionary::get_IsReadOnly
 
-    // method line 1913
+    // method line 1640
     .method public hidebysig specialname 
-           instance default class NAnt.Core.FrameworkInfo get_Item (string key)  cil managed 
+           instance default class NAnt.Core.DataTypeBase get_Item (string key)  cil managed 
     {
-        // Method begins at RVA 0x21018
+        // Method begins at RVA 0x1ddf8
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0)
+		class NAnt.Core.DataTypeBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_000d:  castclass NAnt.Core.FrameworkInfo
+	IL_000d:  castclass NAnt.Core.DataTypeBase
 	IL_0012:  stloc.0 
 	IL_0013:  br IL_0018
 
 	IL_0018:  ldloc.0 
 	IL_0019:  ret 
-    } // end of method FrameworkInfoDictionary::get_Item
+    } // end of method DataTypeBaseDictionary::get_Item
 
-    // method line 1914
+    // method line 1641
     .method public hidebysig specialname 
-           instance default void set_Item (string key, class NAnt.Core.FrameworkInfo 'value')  cil managed 
+           instance default void set_Item (string key, class NAnt.Core.DataTypeBase 'value')  cil managed 
     {
-        // Method begins at RVA 0x2103e
+        // Method begins at RVA 0x1de1e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  ldarg.1 
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
 	IL_000e:  ret 
-    } // end of method FrameworkInfoDictionary::set_Item
+    } // end of method DataTypeBaseDictionary::set_Item
 
-    // method line 1915
+    // method line 1642
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IDictionary.get_Item (object key)  cil managed 
     {
-        // Method begins at RVA 0x21050
+        // Method begins at RVA 0x1de30
 	.override class [mscorlib]System.Collections.IDictionary::get_Item
 	// Code size 21 (0x15)
 	.maxstack 2
@@ -71376,19 +59161,19 @@
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
 	IL_0003:  castclass [mscorlib]System.String
-	IL_0008:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionary::get_Item(string)
+	IL_0008:  call instance class NAnt.Core.DataTypeBase class NAnt.Core.DataTypeBaseDictionary::get_Item(string)
 	IL_000d:  stloc.0 
 	IL_000e:  br IL_0013
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.get_Item
+    } // end of method DataTypeBaseDictionary::System.Collections.IDictionary.get_Item
 
-    // method line 1916
+    // method line 1643
     .method private final virtual hidebysig newslot specialname 
            instance default void System.Collections.IDictionary.set_Item (object key, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x21071
+        // Method begins at RVA 0x1de51
 	.override class [mscorlib]System.Collections.IDictionary::set_Item
 	// Code size 20 (0x14)
 	.maxstack 8
@@ -71397,196 +59182,196 @@
 	IL_0002:  ldarg.1 
 	IL_0003:  castclass [mscorlib]System.String
 	IL_0008:  ldarg.2 
-	IL_0009:  castclass NAnt.Core.FrameworkInfo
-	IL_000e:  call instance void class NAnt.Core.FrameworkInfoDictionary::set_Item(string, class NAnt.Core.FrameworkInfo)
+	IL_0009:  castclass NAnt.Core.DataTypeBase
+	IL_000e:  call instance void class NAnt.Core.DataTypeBaseDictionary::set_Item(string, class NAnt.Core.DataTypeBase)
 	IL_0013:  ret 
-    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.set_Item
+    } // end of method DataTypeBaseDictionary::System.Collections.IDictionary.set_Item
 
-    // method line 1917
+    // method line 1644
     .method public final virtual hidebysig newslot specialname 
            instance default class [mscorlib]System.Collections.ICollection get_Values ()  cil managed 
     {
-        // Method begins at RVA 0x21088
+        // Method begins at RVA 0x1de68
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.Collections.ICollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Values()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method FrameworkInfoDictionary::get_Values
+    } // end of method DataTypeBaseDictionary::get_Values
 
-    // method line 1918
+    // method line 1645
     .method public final virtual hidebysig newslot specialname 
            instance default class [mscorlib]System.Collections.ICollection get_Keys ()  cil managed 
     {
-        // Method begins at RVA 0x210a8
+        // Method begins at RVA 0x1de88
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.Collections.ICollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method FrameworkInfoDictionary::get_Keys
+    } // end of method DataTypeBaseDictionary::get_Keys
 
-    // method line 1919
+    // method line 1646
     .method public final virtual hidebysig newslot specialname 
            instance default bool get_IsFixedSize ()  cil managed 
     {
-        // Method begins at RVA 0x210c8
+        // Method begins at RVA 0x1dea8
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsFixedSize()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method FrameworkInfoDictionary::get_IsFixedSize
+    } // end of method DataTypeBaseDictionary::get_IsFixedSize
 
-    // method line 1920
+    // method line 1647
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.ICollection.CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x210e8
+        // Method begins at RVA 0x1dec8
 	.override class [mscorlib]System.Collections.ICollection::CopyTo
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  ldarg.1 
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::CopyTo(class [mscorlib]System.Array, int32)
 	IL_000e:  ret 
-    } // end of method FrameworkInfoDictionary::System.Collections.ICollection.CopyTo
+    } // end of method DataTypeBaseDictionary::System.Collections.ICollection.CopyTo
 
-    // method line 1921
+    // method line 1648
     .method public final virtual hidebysig newslot specialname 
            instance default bool get_IsSynchronized ()  cil managed 
     {
-        // Method begins at RVA 0x210f8
+        // Method begins at RVA 0x1ded8
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsSynchronized()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method FrameworkInfoDictionary::get_IsSynchronized
+    } // end of method DataTypeBaseDictionary::get_IsSynchronized
 
-    // method line 1922
+    // method line 1649
     .method public final virtual hidebysig newslot specialname 
            instance default int32 get_Count ()  cil managed 
     {
-        // Method begins at RVA 0x21118
+        // Method begins at RVA 0x1def8
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method FrameworkInfoDictionary::get_Count
+    } // end of method DataTypeBaseDictionary::get_Count
 
-    // method line 1923
+    // method line 1650
     .method public final virtual hidebysig newslot specialname 
            instance default object get_SyncRoot ()  cil managed 
     {
-        // Method begins at RVA 0x21138
+        // Method begins at RVA 0x1df18
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_SyncRoot()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method FrameworkInfoDictionary::get_SyncRoot
+    } // end of method DataTypeBaseDictionary::get_SyncRoot
 
-    // method line 1924
+    // method line 1651
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.FrameworkInfo[] 'array', int32 index)  cil managed 
+           instance default void CopyTo (class NAnt.Core.DataTypeBase[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x21158
+        // Method begins at RVA 0x1df38
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  ldarg.1 
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::CopyTo(class [mscorlib]System.Array, int32)
 	IL_000e:  ret 
-    } // end of method FrameworkInfoDictionary::CopyTo
+    } // end of method DataTypeBaseDictionary::CopyTo
 
-    // method line 1925
+    // method line 1652
     .method public hidebysig 
-           instance default class NAnt.Core.FrameworkInfoDictionary Clone ()  cil managed 
+           instance default class NAnt.Core.DataTypeBaseDictionary Clone ()  cil managed 
     {
-        // Method begins at RVA 0x21168
+        // Method begins at RVA 0x1df48
 	// Code size 38 (0x26)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.FrameworkInfoDictionary	V_0,
-		class NAnt.Core.FrameworkInfoDictionary	V_1)
+		class NAnt.Core.DataTypeBaseDictionary	V_0,
+		class NAnt.Core.DataTypeBaseDictionary	V_1)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
+	IL_0001:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
 	IL_0006:  stloc.0 
 	IL_0007:  ldloc.0 
 	IL_0008:  ldarg.0 
-	IL_0009:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0009:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_000e:  callvirt instance object class [mscorlib]System.Collections.Hashtable::Clone()
 	IL_0013:  castclass [mscorlib]System.Collections.Hashtable
-	IL_0018:  callvirt instance void class NAnt.Core.FrameworkInfoDictionary::set_InnerHash(class [mscorlib]System.Collections.Hashtable)
+	IL_0018:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::set_InnerHash(class [mscorlib]System.Collections.Hashtable)
 	IL_001d:  ldloc.0 
 	IL_001e:  stloc.1 
 	IL_001f:  br IL_0024
 
 	IL_0024:  ldloc.1 
 	IL_0025:  ret 
-    } // end of method FrameworkInfoDictionary::Clone
+    } // end of method DataTypeBaseDictionary::Clone
 
-    // method line 1926
+    // method line 1653
     .method private final virtual hidebysig newslot 
            instance default object System.ICloneable.Clone ()  cil managed 
     {
-        // Method begins at RVA 0x2119c
+        // Method begins at RVA 0x1df7c
 	.override class [mscorlib]System.ICloneable::Clone
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -71594,26 +59379,26 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.FrameworkInfoDictionary::Clone()
+	IL_0002:  call instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.DataTypeBaseDictionary::Clone()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FrameworkInfoDictionary::System.ICloneable.Clone
+    } // end of method DataTypeBaseDictionary::System.ICloneable.Clone
 
-    // method line 1927
+    // method line 1654
     .method public hidebysig 
            instance default bool ContainsKey (string key)  cil managed 
     {
-        // Method begins at RVA 0x211b8
+        // Method begins at RVA 0x1df98
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
 	IL_000d:  stloc.0 
@@ -71621,20 +59406,20 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FrameworkInfoDictionary::ContainsKey
+    } // end of method DataTypeBaseDictionary::ContainsKey
 
-    // method line 1928
+    // method line 1655
     .method public hidebysig 
-           instance default bool ContainsValue (class NAnt.Core.FrameworkInfo 'value')  cil managed 
+           instance default bool ContainsValue (class NAnt.Core.DataTypeBase 'value')  cil managed 
     {
-        // Method begins at RVA 0x211dc
+        // Method begins at RVA 0x1dfbc
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::_innerHash
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsValue(object)
 	IL_000d:  stloc.0 
@@ -71642,92 +59427,145 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method FrameworkInfoDictionary::ContainsValue
+    } // end of method DataTypeBaseDictionary::ContainsValue
 
-    // method line 1929
+    // method line 1656
     .method public static hidebysig 
-           default class NAnt.Core.FrameworkInfoDictionary Synchronized (class NAnt.Core.FrameworkInfoDictionary nonSync)  cil managed 
+           default class NAnt.Core.DataTypeBaseDictionary Synchronized (class NAnt.Core.DataTypeBaseDictionary nonSync)  cil managed 
     {
-        // Method begins at RVA 0x21200
+        // Method begins at RVA 0x1dfe0
 	// Code size 33 (0x21)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.FrameworkInfoDictionary	V_0,
-		class NAnt.Core.FrameworkInfoDictionary	V_1)
+		class NAnt.Core.DataTypeBaseDictionary	V_0,
+		class NAnt.Core.DataTypeBaseDictionary	V_1)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
+	IL_0001:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
 	IL_0006:  stloc.0 
 	IL_0007:  ldloc.0 
 	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.Core.FrameworkInfoDictionary::get_InnerHash()
+	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.Core.DataTypeBaseDictionary::get_InnerHash()
 	IL_000e:  call class [mscorlib]System.Collections.Hashtable class [mscorlib]System.Collections.Hashtable::Synchronized(class [mscorlib]System.Collections.Hashtable)
-	IL_0013:  callvirt instance void class NAnt.Core.FrameworkInfoDictionary::set_InnerHash(class [mscorlib]System.Collections.Hashtable)
+	IL_0013:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::set_InnerHash(class [mscorlib]System.Collections.Hashtable)
 	IL_0018:  ldloc.0 
 	IL_0019:  stloc.1 
 	IL_001a:  br IL_001f
 
 	IL_001f:  ldloc.1 
 	IL_0020:  ret 
-    } // end of method FrameworkInfoDictionary::Synchronized
+    } // end of method DataTypeBaseDictionary::Synchronized
+
+    // method line 1657
+    .method public virtual hidebysig newslot 
+           instance default void Inherit (class NAnt.Core.DataTypeBaseDictionary source)  cil managed 
+    {
+        // Method begins at RVA 0x1e010
+	// Code size 84 (0x54)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2)
+	IL_0000:  nop 
+	IL_0001:  nop 
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance class [mscorlib]System.Collections.ICollection class NAnt.Core.DataTypeBaseDictionary::get_Keys()
+	IL_0008:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_000d:  stloc.1 
+	.try { // 0
+	  IL_000e:  br IL_002f
+
+	  IL_0013:  ldloc.1 
+	  IL_0014:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0019:  castclass [mscorlib]System.String
+	  IL_001e:  stloc.0 
+	  IL_001f:  nop 
+	  IL_0020:  ldarg.0 
+	  IL_0021:  ldloc.0 
+	  IL_0022:  ldarg.1 
+	  IL_0023:  ldloc.0 
+	  IL_0024:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.DataTypeBaseDictionary::get_Item(string)
+	  IL_0029:  call instance void class NAnt.Core.DataTypeBaseDictionary::Add(string, class NAnt.Core.DataTypeBase)
+	  IL_002e:  nop 
+	  IL_002f:  ldloc.1 
+	  IL_0030:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0035:  brtrue IL_0013
+
+	  IL_003a:  leave IL_0053
+
+	} // end .try 0
+	finally  { // 0
+	  IL_003f:  ldloc.1 
+	  IL_0040:  isinst [mscorlib]System.IDisposable
+	  IL_0045:  dup 
+	  IL_0046:  stloc.2 
+	  IL_0047:  brfalse IL_0052
+
+	  IL_004c:  ldloc.2 
+	  IL_004d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0052:  endfinally 
+	} // end handler 0
+	IL_0053:  ret 
+    } // end of method DataTypeBaseDictionary::Inherit
 
 	.property instance object System.Collections.IDictionary.Item (object)
 	{
-		.get instance default object NAnt.Core.FrameworkInfoDictionary::System.Collections.IDictionary.get_Item (object key) 
-		.set instance default void NAnt.Core.FrameworkInfoDictionary::System.Collections.IDictionary.set_Item (object key, object 'value') 
+		.get instance default object NAnt.Core.DataTypeBaseDictionary::System.Collections.IDictionary.get_Item (object key) 
+		.set instance default void NAnt.Core.DataTypeBaseDictionary::System.Collections.IDictionary.set_Item (object key, object 'value') 
 	}
 	.property instance class [mscorlib]System.Collections.Hashtable InnerHash ()
 	{
-		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::get_InnerHash () 
-		.set instance default void NAnt.Core.FrameworkInfoDictionary::set_InnerHash (class [mscorlib]System.Collections.Hashtable 'value') 
+		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.Core.DataTypeBaseDictionary::get_InnerHash () 
+		.set instance default void NAnt.Core.DataTypeBaseDictionary::set_InnerHash (class [mscorlib]System.Collections.Hashtable 'value') 
 	}
 	.property instance bool IsReadOnly ()
 	{
-		.get instance default bool NAnt.Core.FrameworkInfoDictionary::get_IsReadOnly () 
+		.get instance default bool NAnt.Core.DataTypeBaseDictionary::get_IsReadOnly () 
 	}
-	.property instance class NAnt.Core.FrameworkInfo Item (string)
+	.property instance class NAnt.Core.DataTypeBase Item (string)
 	{
-		.get instance default class NAnt.Core.FrameworkInfo NAnt.Core.FrameworkInfoDictionary::get_Item (string key) 
-		.set instance default void NAnt.Core.FrameworkInfoDictionary::set_Item (string key, class NAnt.Core.FrameworkInfo 'value') 
+		.get instance default class NAnt.Core.DataTypeBase NAnt.Core.DataTypeBaseDictionary::get_Item (string key) 
+		.set instance default void NAnt.Core.DataTypeBaseDictionary::set_Item (string key, class NAnt.Core.DataTypeBase 'value') 
 	}
 	.property instance class [mscorlib]System.Collections.ICollection Values ()
 	{
-		.get instance default class [mscorlib]System.Collections.ICollection NAnt.Core.FrameworkInfoDictionary::get_Values () 
+		.get instance default class [mscorlib]System.Collections.ICollection NAnt.Core.DataTypeBaseDictionary::get_Values () 
 	}
 	.property instance class [mscorlib]System.Collections.ICollection Keys ()
 	{
-		.get instance default class [mscorlib]System.Collections.ICollection NAnt.Core.FrameworkInfoDictionary::get_Keys () 
+		.get instance default class [mscorlib]System.Collections.ICollection NAnt.Core.DataTypeBaseDictionary::get_Keys () 
 	}
 	.property instance bool IsFixedSize ()
 	{
-		.get instance default bool NAnt.Core.FrameworkInfoDictionary::get_IsFixedSize () 
+		.get instance default bool NAnt.Core.DataTypeBaseDictionary::get_IsFixedSize () 
 	}
 	.property instance bool IsSynchronized ()
 	{
-		.get instance default bool NAnt.Core.FrameworkInfoDictionary::get_IsSynchronized () 
+		.get instance default bool NAnt.Core.DataTypeBaseDictionary::get_IsSynchronized () 
 	}
 	.property instance int32 Count ()
 	{
-		.get instance default int32 NAnt.Core.FrameworkInfoDictionary::get_Count () 
+		.get instance default int32 NAnt.Core.DataTypeBaseDictionary::get_Count () 
 	}
 	.property instance object SyncRoot ()
 	{
-		.get instance default object NAnt.Core.FrameworkInfoDictionary::get_SyncRoot () 
+		.get instance default object NAnt.Core.DataTypeBaseDictionary::get_SyncRoot () 
 	}
-  } // end of class NAnt.Core.FrameworkInfoDictionary
+  } // end of class NAnt.Core.DataTypeBaseDictionary
 }
 
 .namespace NAnt.Core
 {
-  .class public auto ansi beforefieldinit FrameworkInfoDictionaryEnumerator
+  .class public auto ansi beforefieldinit DataTypeBaseDictionaryEnumerator
   	extends [mscorlib]System.Object
   	implements [mscorlib]System.Collections.IDictionaryEnumerator, [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IDictionaryEnumerator _innerEnumerator
 
-    // method line 1930
+    // method line 1658
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.FrameworkInfoDictionary enumerable)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.DataTypeBaseDictionary enumerable)  cil managed 
     {
-        // Method begins at RVA 0x2122d
+        // Method begins at RVA 0x1e080
 	// Code size 25 (0x19)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -71735,24 +59573,24 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.Core.FrameworkInfoDictionary::get_InnerHash()
+	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.Core.DataTypeBaseDictionary::get_InnerHash()
 	IL_000e:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_0013:  stfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0013:  stfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
 	IL_0018:  ret 
-    } // end of method FrameworkInfoDictionaryEnumerator::.ctor
+    } // end of method DataTypeBaseDictionaryEnumerator::.ctor
 
-    // method line 1931
+    // method line 1659
     .method public hidebysig specialname 
            instance default string get_Key ()  cil managed 
     {
-        // Method begins at RVA 0x21248
+        // Method begins at RVA 0x1e09c
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key()
 	IL_000c:  castclass [mscorlib]System.String
 	IL_0011:  stloc.0 
@@ -71760,13 +59598,13 @@
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method FrameworkInfoDictionaryEnumerator::get_Key
+    } // end of method DataTypeBaseDictionaryEnumerator::get_Key
 
-    // method line 1932
+    // method line 1660
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IDictionaryEnumerator.get_Key ()  cil managed 
     {
-        // Method begins at RVA 0x21270
+        // Method begins at RVA 0x1e0c4
 	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -71774,40 +59612,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Key()
+	IL_0002:  call instance string class NAnt.Core.DataTypeBaseDictionaryEnumerator::get_Key()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FrameworkInfoDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Key
+    } // end of method DataTypeBaseDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Key
 
-    // method line 1933
+    // method line 1661
     .method public hidebysig specialname 
-           instance default class NAnt.Core.FrameworkInfo get_Value ()  cil managed 
+           instance default class NAnt.Core.DataTypeBase get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x2128c
+        // Method begins at RVA 0x1e0e0
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0)
+		class NAnt.Core.DataTypeBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value()
-	IL_000c:  castclass NAnt.Core.FrameworkInfo
+	IL_000c:  castclass NAnt.Core.DataTypeBase
 	IL_0011:  stloc.0 
 	IL_0012:  br IL_0017
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method FrameworkInfoDictionaryEnumerator::get_Value
+    } // end of method DataTypeBaseDictionaryEnumerator::get_Value
 
-    // method line 1934
+    // method line 1662
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IDictionaryEnumerator.get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x212b4
+        // Method begins at RVA 0x1e108
 	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -71815,73 +59653,73 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Value()
+	IL_0002:  call instance class NAnt.Core.DataTypeBase class NAnt.Core.DataTypeBaseDictionaryEnumerator::get_Value()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FrameworkInfoDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value
+    } // end of method DataTypeBaseDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value
 
-    // method line 1935
+    // method line 1663
     .method public final virtual hidebysig newslot specialname 
            instance default valuetype [mscorlib]System.Collections.DictionaryEntry get_Entry ()  cil managed 
     {
-        // Method begins at RVA 0x212d0
+        // Method begins at RVA 0x1e124
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
 	IL_0007:  callvirt instance valuetype [mscorlib]System.Collections.DictionaryEntry class [mscorlib]System.Collections.IDictionaryEnumerator::get_Entry()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method FrameworkInfoDictionaryEnumerator::get_Entry
+    } // end of method DataTypeBaseDictionaryEnumerator::get_Entry
 
-    // method line 1936
+    // method line 1664
     .method public final virtual hidebysig newslot 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x212f0
+        // Method begins at RVA 0x1e144
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method FrameworkInfoDictionaryEnumerator::Reset
+    } // end of method DataTypeBaseDictionaryEnumerator::Reset
 
-    // method line 1937
+    // method line 1665
     .method public final virtual hidebysig newslot 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x21300
+        // Method begins at RVA 0x1e154
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
 	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method FrameworkInfoDictionaryEnumerator::MoveNext
+    } // end of method DataTypeBaseDictionaryEnumerator::MoveNext
 
-    // method line 1938
+    // method line 1666
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x21320
+        // Method begins at RVA 0x1e174
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -71889,7657 +59727,6355 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method FrameworkInfoDictionaryEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method DataTypeBaseDictionaryEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 1939
+    // method line 1667
     .method public hidebysig specialname 
-           instance default class NAnt.Core.FrameworkInfo get_Current ()  cil managed 
+           instance default class NAnt.Core.DataTypeBase get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x21340
-	// Code size 38 (0x26)
+        // Method begins at RVA 0x1e194
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0,
-		class NAnt.Core.FrameworkInfo	V_1)
+		class NAnt.Core.DataTypeBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.DataTypeBaseDictionaryEnumerator::_innerEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	IL_000c:  castclass NAnt.Core.DataTypeBase
 	IL_0011:  stloc.0 
-	IL_0012:  ldloca.s 0
-	IL_0014:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	IL_0019:  castclass NAnt.Core.FrameworkInfo
-	IL_001e:  stloc.1 
-	IL_001f:  br IL_0024
+	IL_0012:  br IL_0017
 
-	IL_0024:  ldloc.1 
-	IL_0025:  ret 
-    } // end of method FrameworkInfoDictionaryEnumerator::get_Current
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method DataTypeBaseDictionaryEnumerator::get_Current
 
 	.property instance object System.Collections.IDictionaryEnumerator.Key ()
 	{
-		.get instance default object NAnt.Core.FrameworkInfoDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Key () 
+		.get instance default object NAnt.Core.DataTypeBaseDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Key () 
 	}
 	.property instance object System.Collections.IDictionaryEnumerator.Value ()
 	{
-		.get instance default object NAnt.Core.FrameworkInfoDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value () 
+		.get instance default object NAnt.Core.DataTypeBaseDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value () 
 	}
 	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default object NAnt.Core.FrameworkInfoDictionaryEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.Core.DataTypeBaseDictionaryEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
 	.property instance string Key ()
 	{
-		.get instance default string NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Key () 
+		.get instance default string NAnt.Core.DataTypeBaseDictionaryEnumerator::get_Key () 
 	}
-	.property instance class NAnt.Core.FrameworkInfo Value ()
+	.property instance class NAnt.Core.DataTypeBase Value ()
 	{
-		.get instance default class NAnt.Core.FrameworkInfo NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Value () 
+		.get instance default class NAnt.Core.DataTypeBase NAnt.Core.DataTypeBaseDictionaryEnumerator::get_Value () 
 	}
 	.property instance valuetype [mscorlib]System.Collections.DictionaryEntry Entry ()
 	{
-		.get instance default valuetype [mscorlib]System.Collections.DictionaryEntry NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Entry () 
+		.get instance default valuetype [mscorlib]System.Collections.DictionaryEntry NAnt.Core.DataTypeBaseDictionaryEnumerator::get_Entry () 
 	}
-	.property instance class NAnt.Core.FrameworkInfo Current ()
+	.property instance class NAnt.Core.DataTypeBase Current ()
 	{
-		.get instance default class NAnt.Core.FrameworkInfo NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Current () 
+		.get instance default class NAnt.Core.DataTypeBase NAnt.Core.DataTypeBaseDictionaryEnumerator::get_Current () 
 	}
-  } // end of class NAnt.Core.FrameworkInfoDictionaryEnumerator
+  } // end of class NAnt.Core.DataTypeBaseDictionaryEnumerator
 }
 
 .namespace NAnt.Core
 {
-  .class public auto ansi serializable beforefieldinit ValidationException
-  	extends NAnt.Core.BuildException
+  .class public auto ansi abstract beforefieldinit ExpressionEvalBase
+  	extends [mscorlib]System.Object
   {
+    .field  private  valuetype NAnt.Core.ExpressionEvalBase/EvalMode _evalMode
+    .field  private  class NAnt.Core.ExpressionTokenizer _tokenizer
+    .field  private initonly  class NAnt.Core.Project _project
 
-    // method line 1940
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x21372
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.BuildException::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method ValidationException::.ctor
-
-    // method line 1941
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message)  cil managed 
-    {
-        // Method begins at RVA 0x2137b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_0007:  nop 
-	IL_0008:  ret 
-    } // end of method ValidationException::.ctor
-
-    // method line 1942
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, class [mscorlib]System.Exception innerException)  cil managed 
-    {
-        // Method begins at RVA 0x21385
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.BuildException::'.ctor'(string, class [mscorlib]System.Exception)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method ValidationException::.ctor
-
-    // method line 1943
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, class NAnt.Core.Location location)  cil managed 
-    {
-        // Method begins at RVA 0x21390
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method ValidationException::.ctor
-
-    // method line 1944
+    // method line 1668
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string message, class NAnt.Core.Location location, class [mscorlib]System.Exception innerException)  cil managed 
-    {
-        // Method begins at RVA 0x2139b
-	// Code size 11 (0xb)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  call instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	IL_0009:  nop 
-	IL_000a:  ret 
-    } // end of method ValidationException::.ctor
-
-    // method line 1945
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
     {
-        // Method begins at RVA 0x213a7
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x1e1b9
+	// Code size 39 (0x27)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.Core.BuildException::'.ctor'(class [mscorlib]System.Runtime.Serialization.SerializationInfo, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method ValidationException::.ctor
-
-  } // end of class NAnt.Core.ValidationException
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi sealed serializable beforefieldinit Target
-  	extends NAnt.Core.Element
-  	implements [mscorlib]System.ICloneable  {
-    .field  private  string _name
-    .field  private  string _description
-    .field  private  string _ifCondition
-    .field  private  string _unlessCondition
-    .field  private  class [System]System.Collections.Specialized.StringCollection _dependencies
-    .field  private  bool _executed
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void object::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ldarg.1 
+	IL_000f:  brtrue IL_001f
 
-    // method line 1946
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x213b2
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0006:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Target::_dependencies
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_0011:  nop 
-	IL_0012:  ret 
-    } // end of method Target::.ctor
+	IL_0014:  ldstr "project"
+	IL_0019:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_001e:  throw 
+	IL_001f:  ldarg.0 
+	IL_0020:  ldarg.1 
+	IL_0021:  stfld class NAnt.Core.Project NAnt.Core.ExpressionEvalBase::_project
+	IL_0026:  ret 
+    } // end of method ExpressionEvalBase::.ctor
 
-    // method line 1947
+    // method line 1669
     .method public hidebysig specialname 
-           instance default bool get_Executed ()  cil managed 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
     {
-        // Method begins at RVA 0x213c8
+        // Method begins at RVA 0x1e1e4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Project	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Target::_executed
+	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.ExpressionEvalBase::_project
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Target::get_Executed
+    } // end of method ExpressionEvalBase::get_Project
 
-    // method line 1948
-    .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+    // method line 1670
+    .method public hidebysig 
+           instance default object Evaluate (class NAnt.Core.ExpressionTokenizer tokenizer)  cil managed 
     {
-        // Method begins at RVA 0x213e4
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1e200
+	// Code size 29 (0x1d)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Target::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Target::get_Name
+	IL_0002:  ldc.i4.0 
+	IL_0003:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  stfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_000f:  ldarg.0 
+	IL_0010:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
+	IL_0015:  stloc.0 
+	IL_0016:  br IL_001b
 
-    // method line 1949
-    .method public hidebysig specialname 
-           instance default void set_Name (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x213ff
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Target::_name
-	IL_0008:  ret 
-    } // end of method Target::set_Name
+	IL_001b:  ldloc.0 
+	IL_001c:  ret 
+    } // end of method ExpressionEvalBase::Evaluate
 
-    // method line 1950
-    .method public hidebysig specialname 
-           instance default string get_IfCondition ()  cil managed 
+    // method line 1671
+    .method public hidebysig 
+           instance default object Evaluate (string s)  cil managed 
     {
-        // Method begins at RVA 0x2140c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x1e22c
+	// Code size 88 (0x58)
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		object	V_0,
+		object	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Target::_ifCondition
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  newobj instance void class NAnt.Core.ExpressionTokenizer::'.ctor'()
+	IL_0007:  stfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_000c:  ldarg.0 
+	IL_000d:  ldc.i4.0 
+	IL_000e:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	IL_0013:  ldarg.0 
+	IL_0014:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0019:  ldarg.1 
+	IL_001a:  callvirt instance void class NAnt.Core.ExpressionTokenizer::InitTokenizer(string)
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
+	IL_0025:  stloc.0 
+	IL_0026:  ldarg.0 
+	IL_0027:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_002c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0031:  ldc.i4.1 
+	IL_0032:  beq IL_004f
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Target::get_IfCondition
+	IL_0037:  nop 
+	IL_0038:  ldarg.0 
+	IL_0039:  ldstr "Unexpected token at the end of expression"
+	IL_003e:  ldarg.0 
+	IL_003f:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0044:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0049:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_004e:  throw 
+	IL_004f:  ldloc.0 
+	IL_0050:  stloc.1 
+	IL_0051:  br IL_0056
 
-    // method line 1951
-    .method public hidebysig specialname 
-           instance default void set_IfCondition (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x21427
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Target::_ifCondition
-	IL_000d:  ret 
-    } // end of method Target::set_IfCondition
+	IL_0056:  ldloc.1 
+	IL_0057:  ret 
+    } // end of method ExpressionEvalBase::Evaluate
 
-    // method line 1952
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+    // method line 1672
+    .method public hidebysig 
+           instance default void CheckSyntax (string s)  cil managed 
     {
-        // Method begins at RVA 0x21438
-	// Code size 104 (0x68)
+        // Method begins at RVA 0x1e290
+	// Code size 80 (0x50)
 	.maxstack 3
-	.locals init (
-		string	V_0,
-		bool	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0002:  newobj instance void class NAnt.Core.ExpressionTokenizer::'.ctor'()
+	IL_0007:  stfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
 	IL_000c:  ldarg.0 
-	IL_000d:  call instance string class NAnt.Core.Target::get_IfCondition()
-	IL_0012:  ldarg.0 
-	IL_0013:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0018:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
-	IL_001d:  stloc.0 
-	IL_001e:  ldloc.0 
-	IL_001f:  call bool string::IsNullOrEmpty(string)
-	IL_0024:  brtrue IL_005f
-
-	IL_0029:  nop 
-	.try { // 0
-	  IL_002a:  nop 
-	  IL_002b:  ldloc.0 
-	  IL_002c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0031:  call bool class [mscorlib]System.Convert::ToBoolean(string, class [mscorlib]System.IFormatProvider)
-	  IL_0036:  stloc.1 
-	  IL_0037:  leave IL_0066
-
-	} // end .try 0
-	catch class [mscorlib]System.FormatException { // 0
-	  IL_003c:  pop 
-	  IL_003d:  nop 
-	  IL_003e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0043:  ldstr "NA1070"
-	  IL_0048:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_004d:  ldloc.0 
-	  IL_004e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0053:  ldarg.0 
-	  IL_0054:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0059:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_005e:  throw 
-	} // end handler 0
-	IL_005f:  ldc.i4.1 
-	IL_0060:  stloc.1 
-	IL_0061:  br IL_0066
-
-	IL_0066:  ldloc.1 
-	IL_0067:  ret 
-    } // end of method Target::get_IfDefined
-
-    // method line 1953
-    .method public hidebysig specialname 
-           instance default string get_UnlessCondition ()  cil managed 
-    {
-        // Method begins at RVA 0x214bc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Target::_unlessCondition
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Target::get_UnlessCondition
+	IL_000d:  ldc.i4.1 
+	IL_000e:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	IL_0013:  ldarg.0 
+	IL_0014:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0019:  ldarg.1 
+	IL_001a:  callvirt instance void class NAnt.Core.ExpressionTokenizer::InitTokenizer(string)
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
+	IL_0025:  pop 
+	IL_0026:  ldarg.0 
+	IL_0027:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_002c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0031:  ldc.i4.1 
+	IL_0032:  beq IL_004f
 
-    // method line 1954
-    .method public hidebysig specialname 
-           instance default void set_UnlessCondition (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x214d7
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.Target::_unlessCondition
-	IL_000d:  ret 
-    } // end of method Target::set_UnlessCondition
+	IL_0037:  nop 
+	IL_0038:  ldarg.0 
+	IL_0039:  ldstr "Unexpected token at the end of expression"
+	IL_003e:  ldarg.0 
+	IL_003f:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0044:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0049:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_004e:  throw 
+	IL_004f:  ret 
+    } // end of method ExpressionEvalBase::CheckSyntax
 
-    // method line 1955
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+    // method line 1673
+    .method private hidebysig 
+           instance default bool SyntaxCheckOnly ()  cil managed 
     {
-        // Method begins at RVA 0x214e8
-	// Code size 104 (0x68)
-	.maxstack 3
+        // Method begins at RVA 0x1e2ec
+	// Code size 18 (0x12)
+	.maxstack 2
 	.locals init (
-		string	V_0,
-		bool	V_1)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0007:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance string class NAnt.Core.Target::get_UnlessCondition()
-	IL_0012:  ldarg.0 
-	IL_0013:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0018:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
-	IL_001d:  stloc.0 
-	IL_001e:  ldloc.0 
-	IL_001f:  call bool string::IsNullOrEmpty(string)
-	IL_0024:  brtrue IL_005f
-
-	IL_0029:  nop 
-	.try { // 0
-	  IL_002a:  nop 
-	  IL_002b:  ldloc.0 
-	  IL_002c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0031:  call bool class [mscorlib]System.Convert::ToBoolean(string, class [mscorlib]System.IFormatProvider)
-	  IL_0036:  stloc.1 
-	  IL_0037:  leave IL_0066
-
-	} // end .try 0
-	catch class [mscorlib]System.FormatException { // 0
-	  IL_003c:  pop 
-	  IL_003d:  nop 
-	  IL_003e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0043:  ldstr "NA1069"
-	  IL_0048:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_004d:  ldloc.0 
-	  IL_004e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0053:  ldarg.0 
-	  IL_0054:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	  IL_0059:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	  IL_005e:  throw 
-	} // end handler 0
-	IL_005f:  ldc.i4.0 
-	IL_0060:  stloc.1 
-	IL_0061:  br IL_0066
-
-	IL_0066:  ldloc.1 
-	IL_0067:  ret 
-    } // end of method Target::get_UnlessDefined
+	IL_0002:  ldfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	IL_0007:  ldc.i4.1 
+	IL_0008:  ceq 
+	IL_000a:  stloc.0 
+	IL_000b:  br IL_0010
 
-    // method line 1956
-    .method public hidebysig specialname 
-           instance default void set_Description (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2156c
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.Target::_description
-	IL_0008:  ret 
-    } // end of method Target::set_Description
+	IL_0010:  ldloc.0 
+	IL_0011:  ret 
+    } // end of method ExpressionEvalBase::SyntaxCheckOnly
 
-    // method line 1957
-    .method public hidebysig specialname 
-           instance default string get_Description ()  cil managed 
+    // method line 1674
+    .method private hidebysig 
+           instance default object ParseExpression ()  cil managed 
     {
-        // Method begins at RVA 0x21578
+        // Method begins at RVA 0x1e30c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Target::_description
+	IL_0002:  call instance object class NAnt.Core.ExpressionEvalBase::ParseBooleanOr()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Target::get_Description
+    } // end of method ExpressionEvalBase::ParseExpression
 
-    // method line 1958
-    .method public hidebysig specialname 
-           instance default void set_DependsListString (string 'value')  cil managed 
+    // method line 1675
+    .method private hidebysig 
+           instance default object ParseBooleanOr ()  cil managed 
     {
-        // Method begins at RVA 0x21594
-	// Code size 86 (0x56)
-	.maxstack 5
+        // Method begins at RVA 0x1e328
+	// Code size 256 (0x100)
+	.maxstack 6
 	.locals init (
-		string	V_0,
-		string[]	V_1,
-		int32	V_2,
-		string	V_3)
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0,
+		object	V_1,
+		valuetype NAnt.Core.ExpressionEvalBase/EvalMode	V_2,
+		bool	V_3,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_4,
+		object	V_5,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_6,
+		bool	V_7,
+		object	V_8)
 	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldc.i4.2 
-	IL_0004:  newarr [mscorlib]System.Char
-	IL_0009:  dup 
-	IL_000a:  ldc.i4.0 
-	IL_000b:  ldc.i4.s 0x20
-	IL_000d:  stelem.i2 
-	IL_000e:  dup 
-	IL_000f:  ldc.i4.1 
-	IL_0010:  ldc.i4.s 0x2c
-	IL_0012:  stelem.i2 
-	IL_0013:  callvirt instance string[] string::Split(char[])
-	IL_0018:  stloc.1 
-	IL_0019:  ldc.i4.0 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0007:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_000c:  stloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance object class NAnt.Core.ExpressionEvalBase::ParseBooleanAnd()
+	IL_0013:  stloc.1 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
 	IL_001a:  stloc.2 
-	IL_001b:  br IL_004c
-
-	IL_0020:  ldloc.1 
-	IL_0021:  ldloc.2 
-	IL_0022:  ldelem.ref 
-	IL_0023:  stloc.0 
-	IL_0024:  nop 
-	IL_0025:  ldloc.0 
-	IL_0026:  callvirt instance string string::Trim()
-	IL_002b:  stloc.3 
-	IL_002c:  ldloc.3 
-	IL_002d:  callvirt instance int32 string::get_Length()
-	IL_0032:  ldc.i4.0 
-	IL_0033:  ble IL_0047
+	.try { // 0
+	  IL_001b:  nop 
+	  IL_001c:  br IL_00d6
 
-	IL_0038:  nop 
-	IL_0039:  ldarg.0 
-	IL_003a:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Target::get_Dependencies()
-	IL_003f:  ldloc.3 
-	IL_0040:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0045:  pop 
-	IL_0046:  nop 
-	IL_0047:  nop 
-	IL_0048:  ldloc.2 
-	IL_0049:  ldc.i4.1 
-	IL_004a:  add 
-	IL_004b:  stloc.2 
-	IL_004c:  ldloc.2 
-	IL_004d:  ldloc.1 
-	IL_004e:  ldlen 
-	IL_004f:  conv.i4 
-	IL_0050:  blt IL_0020
+	  IL_0021:  nop 
+	  IL_0022:  ldc.i4.1 
+	  IL_0023:  stloc.3 
+	  IL_0024:  ldarg.0 
+	  IL_0025:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	  IL_002a:  brtrue IL_0068
 
-	IL_0055:  ret 
-    } // end of method Target::set_DependsListString
+	  IL_002f:  nop 
+	  IL_0030:  ldarg.0 
+	  IL_0031:  ldtoken [mscorlib]System.Boolean
+	  IL_0036:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_003b:  ldloc.1 
+	  IL_003c:  ldstr "the left hand side of the 'or' operator"
+	  IL_0041:  ldloc.0 
+	  IL_0042:  ldarg.0 
+	  IL_0043:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_0048:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	  IL_004d:  call instance object class NAnt.Core.ExpressionEvalBase::SafeConvert(class [mscorlib]System.Type, object, string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	  IL_0052:  unbox.any [mscorlib]System.Boolean
+	  IL_0057:  stloc.3 
+	  IL_0058:  ldloc.3 
+	  IL_0059:  brfalse IL_0067
 
-    // method line 1959
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Dependencies ()  cil managed 
-    {
-        // Method begins at RVA 0x215f8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Target::_dependencies
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_005e:  nop 
+	  IL_005f:  ldarg.0 
+	  IL_0060:  ldc.i4.1 
+	  IL_0061:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	  IL_0066:  nop 
+	  IL_0067:  nop 
+	  IL_0068:  ldarg.0 
+	  IL_0069:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_006e:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	  IL_0073:  ldarg.0 
+	  IL_0074:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_0079:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	  IL_007e:  stloc.s 4
+	  IL_0080:  ldarg.0 
+	  IL_0081:  call instance object class NAnt.Core.ExpressionEvalBase::ParseBooleanAnd()
+	  IL_0086:  stloc.s 5
+	  IL_0088:  ldarg.0 
+	  IL_0089:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_008e:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	  IL_0093:  stloc.s 6
+	  IL_0095:  ldarg.0 
+	  IL_0096:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	  IL_009b:  brtrue IL_00d5
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Target::get_Dependencies
+	  IL_00a0:  nop 
+	  IL_00a1:  ldarg.0 
+	  IL_00a2:  ldtoken [mscorlib]System.Boolean
+	  IL_00a7:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_00ac:  ldloc.s 5
+	  IL_00ae:  ldstr "the right hand side of the 'or' operator"
+	  IL_00b3:  ldloc.s 4
+	  IL_00b5:  ldloc.s 6
+	  IL_00b7:  call instance object class NAnt.Core.ExpressionEvalBase::SafeConvert(class [mscorlib]System.Type, object, string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	  IL_00bc:  unbox.any [mscorlib]System.Boolean
+	  IL_00c1:  stloc.s 7
+	  IL_00c3:  ldloc.3 
+	  IL_00c4:  brtrue IL_00cd
 
-    // method line 1960
-    .method private final virtual hidebysig newslot 
-           instance default object System.ICloneable.Clone ()  cil managed 
-    {
-        // Method begins at RVA 0x21614
-	.override class [mscorlib]System.ICloneable::Clone
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		object	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Target class NAnt.Core.Target::Clone()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_00c9:  ldloc.s 7
+	  IL_00cb:  br.s IL_00ce
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Target::System.ICloneable.Clone
+	  IL_00cd:  ldc.i4.1 
+	  IL_00ce:  box [mscorlib]System.Boolean
+	  IL_00d3:  stloc.1 
+	  IL_00d4:  nop 
+	  IL_00d5:  nop 
+	  IL_00d6:  ldarg.0 
+	  IL_00d7:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_00dc:  ldstr "or"
+	  IL_00e1:  callvirt instance bool class NAnt.Core.ExpressionTokenizer::IsKeyword(string)
+	  IL_00e6:  brtrue IL_0021
 
-    // method line 1961
-    .method public hidebysig 
-           instance default class NAnt.Core.Target Clone ()  cil managed 
-    {
-        // Method begins at RVA 0x21630
-	// Code size 95 (0x5f)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.Target	V_0,
-		class NAnt.Core.Target	V_1)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.Target::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  call instance void class NAnt.Core.Element::CopyTo(class NAnt.Core.Element)
-	IL_000e:  ldloc.0 
-	IL_000f:  ldarg.0 
-	IL_0010:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Target::_dependencies
-	IL_0015:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Target::_dependencies
-	IL_001a:  ldloc.0 
-	IL_001b:  ldarg.0 
-	IL_001c:  ldfld string NAnt.Core.Target::_description
-	IL_0021:  stfld string NAnt.Core.Target::_description
-	IL_0026:  ldloc.0 
-	IL_0027:  ldarg.0 
-	IL_0028:  ldfld bool NAnt.Core.Target::_executed
-	IL_002d:  stfld bool NAnt.Core.Target::_executed
-	IL_0032:  ldloc.0 
-	IL_0033:  ldarg.0 
-	IL_0034:  ldfld string NAnt.Core.Target::_ifCondition
-	IL_0039:  stfld string NAnt.Core.Target::_ifCondition
-	IL_003e:  ldloc.0 
-	IL_003f:  ldarg.0 
-	IL_0040:  ldfld string NAnt.Core.Target::_name
-	IL_0045:  stfld string NAnt.Core.Target::_name
-	IL_004a:  ldloc.0 
-	IL_004b:  ldarg.0 
-	IL_004c:  ldfld string NAnt.Core.Target::_unlessCondition
-	IL_0051:  stfld string NAnt.Core.Target::_unlessCondition
-	IL_0056:  ldloc.0 
-	IL_0057:  stloc.1 
-	IL_0058:  br IL_005d
+	  IL_00eb:  ldloc.1 
+	  IL_00ec:  stloc.s 8
+	  IL_00ee:  leave IL_00fd
 
-	IL_005d:  ldloc.1 
-	IL_005e:  ret 
-    } // end of method Target::Clone
+	} // end .try 0
+	finally  { // 0
+	  IL_00f3:  nop 
+	  IL_00f4:  ldarg.0 
+	  IL_00f5:  ldloc.2 
+	  IL_00f6:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	  IL_00fb:  nop 
+	  IL_00fc:  endfinally 
+	} // end handler 0
+	IL_00fd:  ldloc.s 8
+	IL_00ff:  ret 
+    } // end of method ExpressionEvalBase::ParseBooleanOr
 
-    // method line 1962
-    .method public hidebysig 
-           instance default void Execute ()  cil managed 
+    // method line 1676
+    .method private hidebysig 
+           instance default object ParseBooleanAnd ()  cil managed 
     {
-        // Method begins at RVA 0x2169c
-	// Code size 473 (0x1d9)
-	.maxstack 7
+        // Method begins at RVA 0x1e444
+	// Code size 256 (0x100)
+	.maxstack 6
 	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Task	V_2,
-		class NAnt.Core.DataTypeBase	V_3,
-		class [mscorlib]System.IDisposable	V_4)
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0,
+		object	V_1,
+		valuetype NAnt.Core.ExpressionEvalBase/EvalMode	V_2,
+		bool	V_3,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_4,
+		object	V_5,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_6,
+		bool	V_7,
+		object	V_8)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.Target::get_IfDefined()
-	IL_0007:  brfalse IL_01d8
-
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance bool class NAnt.Core.Target::get_UnlessDefined()
-	IL_0012:  brtrue IL_01d8
+	IL_0002:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0007:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_000c:  stloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance object class NAnt.Core.ExpressionEvalBase::ParseRelationalExpression()
+	IL_0013:  stloc.1 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	IL_001a:  stloc.2 
+	.try { // 0
+	  IL_001b:  nop 
+	  IL_001c:  br IL_00d6
 
-	IL_0017:  nop 
-	.try { // 1
-	  IL_0018:  nop 
-	  IL_0019:  ldarg.0 
-	  IL_001a:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_001f:  ldarg.0 
-	  IL_0020:  ldarg.0 
-	  IL_0021:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Target)
-	  IL_0026:  callvirt instance void class NAnt.Core.Project::OnTargetStarted(object, class NAnt.Core.BuildEventArgs)
-	  IL_002b:  nop 
-	  IL_002c:  ldarg.0 
-	  IL_002d:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::get_XmlNode()
-	  IL_0032:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNode::GetEnumerator()
-	  IL_0037:  stloc.1 
-	  .try { // 0
-	    IL_0038:  br IL_018f
+	  IL_0021:  nop 
+	  IL_0022:  ldc.i4.1 
+	  IL_0023:  stloc.3 
+	  IL_0024:  ldarg.0 
+	  IL_0025:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	  IL_002a:  brtrue IL_0068
 
-	    IL_003d:  ldloc.1 
-	    IL_003e:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_0043:  castclass [System.Xml]System.Xml.XmlNode
-	    IL_0048:  stloc.0 
-	    IL_0049:  nop 
-	    IL_004a:  ldloc.0 
-	    IL_004b:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
-	    IL_0050:  ldc.i4.1 
-	    IL_0051:  bne.un IL_0076
+	  IL_002f:  nop 
+	  IL_0030:  ldarg.0 
+	  IL_0031:  ldtoken [mscorlib]System.Boolean
+	  IL_0036:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_003b:  ldloc.1 
+	  IL_003c:  ldstr "the left hand side of the 'and' operator"
+	  IL_0041:  ldloc.0 
+	  IL_0042:  ldarg.0 
+	  IL_0043:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_0048:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	  IL_004d:  call instance object class NAnt.Core.ExpressionEvalBase::SafeConvert(class [mscorlib]System.Type, object, string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	  IL_0052:  unbox.any [mscorlib]System.Boolean
+	  IL_0057:  stloc.3 
+	  IL_0058:  ldloc.3 
+	  IL_0059:  brtrue IL_0067
 
-	    IL_0056:  ldloc.0 
-	    IL_0057:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	    IL_005c:  ldarg.0 
-	    IL_005d:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
-	    IL_0062:  ldstr "nant"
-	    IL_0067:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
-	    IL_006c:  callvirt instance bool string::Equals(string)
-	    IL_0071:  brtrue IL_007c
+	  IL_005e:  nop 
+	  IL_005f:  ldarg.0 
+	  IL_0060:  ldc.i4.1 
+	  IL_0061:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	  IL_0066:  nop 
+	  IL_0067:  nop 
+	  IL_0068:  ldarg.0 
+	  IL_0069:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_006e:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	  IL_0073:  ldarg.0 
+	  IL_0074:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_0079:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	  IL_007e:  stloc.s 4
+	  IL_0080:  ldarg.0 
+	  IL_0081:  call instance object class NAnt.Core.ExpressionEvalBase::ParseRelationalExpression()
+	  IL_0086:  stloc.s 5
+	  IL_0088:  ldarg.0 
+	  IL_0089:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_008e:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	  IL_0093:  stloc.s 6
+	  IL_0095:  ldarg.0 
+	  IL_0096:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	  IL_009b:  brtrue IL_00d5
 
-	    IL_0076:  nop 
-	    IL_0077:  leave IL_018f
+	  IL_00a0:  nop 
+	  IL_00a1:  ldarg.0 
+	  IL_00a2:  ldtoken [mscorlib]System.Boolean
+	  IL_00a7:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_00ac:  ldloc.s 5
+	  IL_00ae:  ldstr "the right hand side of the 'and' operator"
+	  IL_00b3:  ldloc.s 4
+	  IL_00b5:  ldloc.s 6
+	  IL_00b7:  call instance object class NAnt.Core.ExpressionEvalBase::SafeConvert(class [mscorlib]System.Type, object, string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	  IL_00bc:  unbox.any [mscorlib]System.Boolean
+	  IL_00c1:  stloc.s 7
+	  IL_00c3:  ldloc.3 
+	  IL_00c4:  brfalse IL_00cd
 
-	    IL_007c:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
-	    IL_0081:  ldloc.0 
-	    IL_0082:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	    IL_0087:  callvirt instance bool class NAnt.Core.TaskBuilderCollection::Contains(string)
-	    IL_008c:  brfalse IL_00b4
+	  IL_00c9:  ldloc.s 7
+	  IL_00cb:  br.s IL_00ce
 
-	    IL_0091:  nop 
-	    IL_0092:  ldarg.0 
-	    IL_0093:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	    IL_0098:  ldloc.0 
-	    IL_0099:  ldarg.0 
-	    IL_009a:  callvirt instance class NAnt.Core.Task class NAnt.Core.Project::CreateTask(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Target)
-	    IL_009f:  stloc.2 
-	    IL_00a0:  ldloc.2 
-	    IL_00a1:  brfalse IL_00ae
+	  IL_00cd:  ldc.i4.0 
+	  IL_00ce:  box [mscorlib]System.Boolean
+	  IL_00d3:  stloc.1 
+	  IL_00d4:  nop 
+	  IL_00d5:  nop 
+	  IL_00d6:  ldarg.0 
+	  IL_00d7:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_00dc:  ldstr "and"
+	  IL_00e1:  callvirt instance bool class NAnt.Core.ExpressionTokenizer::IsKeyword(string)
+	  IL_00e6:  brtrue IL_0021
 
-	    IL_00a6:  nop 
-	    IL_00a7:  ldloc.2 
-	    IL_00a8:  callvirt instance void class NAnt.Core.Task::Execute()
-	    IL_00ad:  nop 
-	    IL_00ae:  nop 
-	    IL_00af:  br IL_018e
+	  IL_00eb:  ldloc.1 
+	  IL_00ec:  stloc.s 8
+	  IL_00ee:  leave IL_00fd
 
-	    IL_00b4:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
-	    IL_00b9:  ldloc.0 
-	    IL_00ba:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	    IL_00bf:  callvirt instance bool class NAnt.Core.DataTypeBaseBuilderCollection::Contains(string)
-	    IL_00c4:  brfalse IL_015c
+	} // end .try 0
+	finally  { // 0
+	  IL_00f3:  nop 
+	  IL_00f4:  ldarg.0 
+	  IL_00f5:  ldloc.2 
+	  IL_00f6:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	  IL_00fb:  nop 
+	  IL_00fc:  endfinally 
+	} // end handler 0
+	IL_00fd:  ldloc.s 8
+	IL_00ff:  ret 
+    } // end of method ExpressionEvalBase::ParseBooleanAnd
 
-	    IL_00c9:  nop 
-	    IL_00ca:  ldarg.0 
-	    IL_00cb:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	    IL_00d0:  ldloc.0 
-	    IL_00d1:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.Project::CreateDataTypeBase(class [System.Xml]System.Xml.XmlNode)
-	    IL_00d6:  stloc.3 
-	    IL_00d7:  ldarg.0 
-	    IL_00d8:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	    IL_00dd:  ldc.i4 2000
-	    IL_00e2:  ldstr "Adding a {0} reference with id '{1}'."
-	    IL_00e7:  ldc.i4.2 
-	    IL_00e8:  newarr [mscorlib]System.Object
-	    IL_00ed:  dup 
-	    IL_00ee:  ldc.i4.0 
-	    IL_00ef:  ldloc.0 
-	    IL_00f0:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	    IL_00f5:  stelem.ref 
-	    IL_00f6:  dup 
-	    IL_00f7:  ldc.i4.1 
-	    IL_00f8:  ldloc.3 
-	    IL_00f9:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	    IL_00fe:  stelem.ref 
-	    IL_00ff:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	    IL_0104:  ldarg.0 
-	    IL_0105:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	    IL_010a:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	    IL_010f:  ldloc.3 
-	    IL_0110:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	    IL_0115:  callvirt instance bool class NAnt.Core.DataTypeBaseDictionary::Contains(string)
-	    IL_011a:  brtrue IL_013d
+    // method line 1677
+    .method private hidebysig 
+           instance default object ParseRelationalExpression ()  cil managed 
+    {
+        // Method begins at RVA 0x1e560
+	// Code size 5433 (0x1539)
+	.maxstack 6
+	.locals init (
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0,
+		object	V_1,
+		valuetype NAnt.Core.ExpressionTokenizer/TokenType	V_2,
+		object	V_3,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_4,
+		object	V_5,
+		int64	V_6,
+		float64	V_7,
+		float64	V_8,
+		int64	V_9,
+		float64	V_10,
+		float64	V_11)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0007:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_000c:  stloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance object class NAnt.Core.ExpressionEvalBase::ParseAddSubtract()
+	IL_0013:  stloc.1 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_001a:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_001f:  ldc.i4.5 
+	IL_0020:  beq IL_007c
 
-	    IL_011f:  nop 
-	    IL_0120:  ldarg.0 
-	    IL_0121:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	    IL_0126:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	    IL_012b:  ldloc.3 
-	    IL_012c:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	    IL_0131:  ldloc.3 
-	    IL_0132:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::Add(string, class NAnt.Core.DataTypeBase)
-	    IL_0137:  nop 
-	    IL_0138:  br IL_0156
+	IL_0025:  ldarg.0 
+	IL_0026:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_002b:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0030:  ldc.i4.6 
+	IL_0031:  beq IL_007c
 
-	    IL_013d:  nop 
-	    IL_013e:  ldarg.0 
-	    IL_013f:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	    IL_0144:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	    IL_0149:  ldloc.3 
-	    IL_014a:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
-	    IL_014f:  ldloc.3 
-	    IL_0150:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::set_Item(string, class NAnt.Core.DataTypeBase)
-	    IL_0155:  nop 
-	    IL_0156:  nop 
-	    IL_0157:  br IL_018e
+	IL_0036:  ldarg.0 
+	IL_0037:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_003c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0041:  ldc.i4.7 
+	IL_0042:  beq IL_007c
 
-	    IL_015c:  nop 
-	    IL_015d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0162:  ldstr "NA1071"
-	    IL_0167:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_016c:  ldloc.0 
-	    IL_016d:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	    IL_0172:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_0177:  ldarg.0 
-	    IL_0178:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	    IL_017d:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	    IL_0182:  ldloc.0 
-	    IL_0183:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	    IL_0188:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	    IL_018d:  throw 
-	    IL_018e:  nop 
-	    IL_018f:  ldloc.1 
-	    IL_0190:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_0195:  brtrue IL_003d
+	IL_0047:  ldarg.0 
+	IL_0048:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_004d:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0052:  ldc.i4.8 
+	IL_0053:  beq IL_007c
 
-	    IL_019a:  leave IL_01b5
+	IL_0058:  ldarg.0 
+	IL_0059:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_005e:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0063:  ldc.i4.s 0x09
+	IL_0065:  beq IL_007c
 
-	  } // end .try 0
-	  finally  { // 0
-	    IL_019f:  ldloc.1 
-	    IL_01a0:  isinst [mscorlib]System.IDisposable
-	    IL_01a5:  dup 
-	    IL_01a6:  stloc.s 4
-	    IL_01a8:  brfalse IL_01b4
+	IL_006a:  ldarg.0 
+	IL_006b:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0070:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0075:  ldc.i4.s 0x0a
+	IL_0077:  bne.un IL_152e
 
-	    IL_01ad:  ldloc.s 4
-	    IL_01af:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_01b4:  endfinally 
-	  } // end handler 0
-	  IL_01b5:  nop 
-	  IL_01b6:  leave IL_01d7
+	IL_007c:  nop 
+	IL_007d:  ldarg.0 
+	IL_007e:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0083:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0088:  stloc.2 
+	IL_0089:  ldarg.0 
+	IL_008a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_008f:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_0094:  ldarg.0 
+	IL_0095:  call instance object class NAnt.Core.ExpressionEvalBase::ParseAddSubtract()
+	IL_009a:  stloc.3 
+	IL_009b:  ldarg.0 
+	IL_009c:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_00a1:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_00a6:  stloc.s 4
+	IL_00a8:  ldarg.0 
+	IL_00a9:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	IL_00ae:  brfalse IL_00bc
 
-	} // end .try 1
-	finally  { // 1
-	  IL_01bb:  nop 
-	  IL_01bc:  ldarg.0 
-	  IL_01bd:  ldc.i4.1 
-	  IL_01be:  stfld bool NAnt.Core.Target::_executed
-	  IL_01c3:  ldarg.0 
-	  IL_01c4:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	  IL_01c9:  ldarg.0 
-	  IL_01ca:  ldarg.0 
-	  IL_01cb:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Target)
-	  IL_01d0:  callvirt instance void class NAnt.Core.Project::OnTargetFinished(object, class NAnt.Core.BuildEventArgs)
-	  IL_01d5:  nop 
-	  IL_01d6:  endfinally 
-	} // end handler 1
-	IL_01d7:  nop 
-	IL_01d8:  ret 
-    } // end of method Target::Execute
+	IL_00b3:  nop 
+	IL_00b4:  ldnull 
+	IL_00b5:  stloc.s 5
+	IL_00b7:  br IL_1536
 
-	.property instance bool Executed ()
-	{
-		.get instance default bool NAnt.Core.Target::get_Executed () 
-	}
-	.property instance string Name ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 6E 61 6D 65 02 00 54 02 08 52 65 71 75   // ...name..T..Requ
-		69 72 65 64 01 54 02 10 45 78 70 61 6E 64 50 72   // ired.T..ExpandPr
-		6F 70 65 72 74 69 65 73 00                      ) // operties.
+	IL_00bc:  ldloc.2 
+	IL_00bd:  ldc.i4.5 
+	IL_00be:  sub 
+	IL_00bf:  switch (
+	  IL_00e1,
+	  IL_046e,
+	  IL_0831,
+	  IL_0b5b,
+	  IL_0e85,
+	  IL_11d9)
+	IL_00dc:  br IL_152d
 
-		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+	IL_00e1:  ldloc.1 
+	IL_00e2:  isinst [mscorlib]System.String
+	IL_00e7:  brfalse IL_010b
 
-		.get instance default string NAnt.Core.Target::get_Name () 
-		.set instance default void NAnt.Core.Target::set_Name (string 'value') 
-	}
-	.property instance string IfCondition ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 02 69 66 01 00 54 02 10 45 78 70 61 6E 64   // ...if..T..Expand
-		50 72 6F 70 65 72 74 69 65 73 00                ) // Properties.
+	IL_00ec:  ldloc.3 
+	IL_00ed:  isinst [mscorlib]System.String
+	IL_00f2:  brfalse IL_010b
 
-		.get instance default string NAnt.Core.Target::get_IfCondition () 
-		.set instance default void NAnt.Core.Target::set_IfCondition (string 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.get instance default bool NAnt.Core.Target::get_IfDefined () 
-	}
-	.property instance string UnlessCondition ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 75 6E 6C 65 73 73 01 00 54 02 10 45 78   // ...unless..T..Ex
-		70 61 6E 64 50 72 6F 70 65 72 74 69 65 73 00    ) // pandProperties.
+	IL_00f7:  nop 
+	IL_00f8:  ldloc.1 
+	IL_00f9:  ldloc.3 
+	IL_00fa:  callvirt instance bool object::Equals(object)
+	IL_00ff:  box [mscorlib]System.Boolean
+	IL_0104:  stloc.s 5
+	IL_0106:  br IL_1536
 
-		.get instance default string NAnt.Core.Target::get_UnlessCondition () 
-		.set instance default void NAnt.Core.Target::set_UnlessCondition (string 'value') 
-	}
-	.property instance bool UnlessDefined ()
-	{
-		.get instance default bool NAnt.Core.Target::get_UnlessDefined () 
-	}
-	.property instance string Description ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 64 65 73 63 72 69 70 74 69 6F 6E 00 00 ) // ...description..
+	IL_010b:  ldloc.1 
+	IL_010c:  isinst [mscorlib]System.Boolean
+	IL_0111:  brfalse IL_0135
 
-		.get instance default string NAnt.Core.Target::get_Description () 
-		.set instance default void NAnt.Core.Target::set_Description (string 'value') 
-	}
-	.property instance string DependsListString ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 64 65 70 65 6E 64 73 00 00 ) // ...depends..
+	IL_0116:  ldloc.3 
+	IL_0117:  isinst [mscorlib]System.Boolean
+	IL_011c:  brfalse IL_0135
 
-		.set instance default void NAnt.Core.Target::set_DependsListString (string 'value') 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection Dependencies ()
-	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Target::get_Dependencies () 
-	}
-  } // end of class NAnt.Core.Target
-}
+	IL_0121:  nop 
+	IL_0122:  ldloc.1 
+	IL_0123:  ldloc.3 
+	IL_0124:  callvirt instance bool object::Equals(object)
+	IL_0129:  box [mscorlib]System.Boolean
+	IL_012e:  stloc.s 5
+	IL_0130:  br IL_1536
 
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable beforefieldinit DataTypeBaseBuilderCollection
-  	extends [mscorlib]System.Collections.CollectionBase
-  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+	IL_0135:  ldloc.1 
+	IL_0136:  isinst [mscorlib]System.Int32
+	IL_013b:  brfalse IL_015f
 
+	IL_0140:  ldloc.3 
+	IL_0141:  isinst [mscorlib]System.Int32
+	IL_0146:  brfalse IL_015f
 
-    // method line 1963
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x218b8
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method DataTypeBaseBuilderCollection::.ctor
+	IL_014b:  nop 
+	IL_014c:  ldloc.1 
+	IL_014d:  ldloc.3 
+	IL_014e:  callvirt instance bool object::Equals(object)
+	IL_0153:  box [mscorlib]System.Boolean
+	IL_0158:  stloc.s 5
+	IL_015a:  br IL_1536
 
-    // method line 1964
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.DataTypeBaseBuilderCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x218c1
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.DataTypeBaseBuilderCollection::AddRange(class NAnt.Core.DataTypeBaseBuilderCollection)
-	IL_000e:  ret 
-    } // end of method DataTypeBaseBuilderCollection::.ctor
+	IL_015f:  ldloc.1 
+	IL_0160:  isinst [mscorlib]System.Int32
+	IL_0165:  brfalse IL_0198
 
-    // method line 1965
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.DataTypeBaseBuilder[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x218d1
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.DataTypeBaseBuilderCollection::AddRange(class NAnt.Core.DataTypeBaseBuilder[])
-	IL_000e:  ret 
-    } // end of method DataTypeBaseBuilderCollection::.ctor
+	IL_016a:  ldloc.3 
+	IL_016b:  isinst [mscorlib]System.Int64
+	IL_0170:  brfalse IL_0198
 
-    // method line 1966
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.DataTypeBaseBuilder get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x218e4
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.DataTypeBaseBuilder	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.Core.DataTypeBaseBuilder
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0175:  nop 
+	IL_0176:  ldloc.1 
+	IL_0177:  call int64 class [mscorlib]System.Convert::ToInt64(object)
+	IL_017c:  stloc.s 6
+	IL_017e:  ldloca.s 6
+	IL_0180:  ldloc.3 
+	IL_0181:  constrained. [mscorlib]System.Int64
+	IL_0187:  callvirt instance bool object::Equals(object)
+	IL_018c:  box [mscorlib]System.Boolean
+	IL_0191:  stloc.s 5
+	IL_0193:  br IL_1536
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method DataTypeBaseBuilderCollection::get_Item
+	IL_0198:  ldloc.1 
+	IL_0199:  isinst [mscorlib]System.Int32
+	IL_019e:  brfalse IL_01d1
 
-    // method line 1967
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.DataTypeBaseBuilder 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2190a
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method DataTypeBaseBuilderCollection::set_Item
+	IL_01a3:  ldloc.3 
+	IL_01a4:  isinst [mscorlib]System.Double
+	IL_01a9:  brfalse IL_01d1
 
-    // method line 1968
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.DataTypeBaseBuilder get_Item (string dataTypeName)  cil managed 
-    {
-        // Method begins at RVA 0x2191c
-	// Code size 111 (0x6f)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.DataTypeBaseBuilder	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.DataTypeBaseBuilder	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0066
+	IL_01ae:  nop 
+	IL_01af:  ldloc.1 
+	IL_01b0:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_01b5:  stloc.s 7
+	IL_01b7:  ldloca.s 7
+	IL_01b9:  ldloc.3 
+	IL_01ba:  constrained. [mscorlib]System.Double
+	IL_01c0:  callvirt instance bool object::Equals(object)
+	IL_01c5:  box [mscorlib]System.Boolean
+	IL_01ca:  stloc.s 5
+	IL_01cc:  br IL_1536
 
-	IL_0007:  nop 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0014:  stloc.1 
-	.try { // 0
-	  IL_0015:  br IL_0041
+	IL_01d1:  ldloc.1 
+	IL_01d2:  isinst [mscorlib]System.Int64
+	IL_01d7:  brfalse IL_01fb
 
-	  IL_001a:  ldloc.1 
-	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.Core.DataTypeBaseBuilder
-	  IL_0025:  stloc.0 
-	  IL_0026:  nop 
-	  IL_0027:  ldarg.1 
-	  IL_0028:  ldloc.0 
-	  IL_0029:  callvirt instance string class NAnt.Core.DataTypeBaseBuilder::get_DataTypeName()
-	  IL_002e:  callvirt instance bool string::Equals(string)
-	  IL_0033:  brfalse IL_0040
+	IL_01dc:  ldloc.3 
+	IL_01dd:  isinst [mscorlib]System.Int64
+	IL_01e2:  brfalse IL_01fb
 
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  stloc.2 
-	  IL_003b:  leave IL_006d
+	IL_01e7:  nop 
+	IL_01e8:  ldloc.1 
+	IL_01e9:  ldloc.3 
+	IL_01ea:  callvirt instance bool object::Equals(object)
+	IL_01ef:  box [mscorlib]System.Boolean
+	IL_01f4:  stloc.s 5
+	IL_01f6:  br IL_1536
 
-	  IL_0040:  nop 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_001a
+	IL_01fb:  ldloc.1 
+	IL_01fc:  isinst [mscorlib]System.Int64
+	IL_0201:  brfalse IL_022f
 
-	  IL_004c:  leave IL_0065
+	IL_0206:  ldloc.3 
+	IL_0207:  isinst [mscorlib]System.Int32
+	IL_020c:  brfalse IL_022f
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0051:  ldloc.1 
-	  IL_0052:  isinst [mscorlib]System.IDisposable
-	  IL_0057:  dup 
-	  IL_0058:  stloc.3 
-	  IL_0059:  brfalse IL_0064
+	IL_0211:  nop 
+	IL_0212:  ldloc.1 
+	IL_0213:  ldloc.3 
+	IL_0214:  call int64 class [mscorlib]System.Convert::ToInt64(object)
+	IL_0219:  box [mscorlib]System.Int64
+	IL_021e:  callvirt instance bool object::Equals(object)
+	IL_0223:  box [mscorlib]System.Boolean
+	IL_0228:  stloc.s 5
+	IL_022a:  br IL_1536
 
-	  IL_005e:  ldloc.3 
-	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0064:  endfinally 
-	} // end handler 0
-	IL_0065:  nop 
-	IL_0066:  ldnull 
-	IL_0067:  stloc.2 
-	IL_0068:  br IL_006d
+	IL_022f:  ldloc.1 
+	IL_0230:  isinst [mscorlib]System.Int64
+	IL_0235:  brfalse IL_0268
 
-	IL_006d:  ldloc.2 
-	IL_006e:  ret 
-    } // end of method DataTypeBaseBuilderCollection::get_Item
+	IL_023a:  ldloc.3 
+	IL_023b:  isinst [mscorlib]System.Double
+	IL_0240:  brfalse IL_0268
 
-    // method line 1969
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x219a8
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0245:  nop 
+	IL_0246:  ldloc.1 
+	IL_0247:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_024c:  stloc.s 8
+	IL_024e:  ldloca.s 8
+	IL_0250:  ldloc.3 
+	IL_0251:  constrained. [mscorlib]System.Double
+	IL_0257:  callvirt instance bool object::Equals(object)
+	IL_025c:  box [mscorlib]System.Boolean
+	IL_0261:  stloc.s 5
+	IL_0263:  br IL_1536
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DataTypeBaseBuilderCollection::Add
+	IL_0268:  ldloc.1 
+	IL_0269:  isinst [mscorlib]System.Double
+	IL_026e:  brfalse IL_0292
 
-    // method line 1970
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.DataTypeBaseBuilder[] items)  cil managed 
-    {
-        // Method begins at RVA 0x219cc
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
+	IL_0273:  ldloc.3 
+	IL_0274:  isinst [mscorlib]System.Double
+	IL_0279:  brfalse IL_0292
 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Core.DataTypeBaseBuilderCollection::Add(class NAnt.Core.DataTypeBaseBuilder)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
+	IL_027e:  nop 
+	IL_027f:  ldloc.1 
+	IL_0280:  ldloc.3 
+	IL_0281:  callvirt instance bool object::Equals(object)
+	IL_0286:  box [mscorlib]System.Boolean
+	IL_028b:  stloc.s 5
+	IL_028d:  br IL_1536
 
-	IL_0021:  ret 
-    } // end of method DataTypeBaseBuilderCollection::AddRange
+	IL_0292:  ldloc.1 
+	IL_0293:  isinst [mscorlib]System.Double
+	IL_0298:  brfalse IL_02c6
 
-    // method line 1971
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.DataTypeBaseBuilderCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x219fc
-	// Code size 41 (0x29)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
+	IL_029d:  ldloc.3 
+	IL_029e:  isinst [mscorlib]System.Int32
+	IL_02a3:  brfalse IL_02c6
 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Core.DataTypeBaseBuilder class NAnt.Core.DataTypeBaseBuilderCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Core.DataTypeBaseBuilderCollection::Add(class NAnt.Core.DataTypeBaseBuilder)
-	IL_0016:  pop 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0023:  blt IL_0008
+	IL_02a8:  nop 
+	IL_02a9:  ldloc.1 
+	IL_02aa:  ldloc.3 
+	IL_02ab:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_02b0:  box [mscorlib]System.Double
+	IL_02b5:  callvirt instance bool object::Equals(object)
+	IL_02ba:  box [mscorlib]System.Boolean
+	IL_02bf:  stloc.s 5
+	IL_02c1:  br IL_1536
 
-	IL_0028:  ret 
-    } // end of method DataTypeBaseBuilderCollection::AddRange
+	IL_02c6:  ldloc.1 
+	IL_02c7:  isinst [mscorlib]System.Double
+	IL_02cc:  brfalse IL_02fa
 
-    // method line 1972
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x21a34
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_02d1:  ldloc.3 
+	IL_02d2:  isinst [mscorlib]System.Int64
+	IL_02d7:  brfalse IL_02fa
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DataTypeBaseBuilderCollection::Contains
+	IL_02dc:  nop 
+	IL_02dd:  ldloc.1 
+	IL_02de:  ldloc.3 
+	IL_02df:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_02e4:  box [mscorlib]System.Double
+	IL_02e9:  callvirt instance bool object::Equals(object)
+	IL_02ee:  box [mscorlib]System.Boolean
+	IL_02f3:  stloc.s 5
+	IL_02f5:  br IL_1536
 
-    // method line 1973
-    .method public hidebysig 
-           instance default bool Contains (string taskName)  cil managed 
-    {
-        // Method begins at RVA 0x21a58
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.DataTypeBaseBuilder class NAnt.Core.DataTypeBaseBuilderCollection::get_Item(string)
-	IL_0008:  ldnull 
-	IL_0009:  ceq 
-	IL_000b:  ldc.i4.0 
-	IL_000c:  ceq 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0014
+	IL_02fa:  ldloc.1 
+	IL_02fb:  isinst [mscorlib]System.DateTime
+	IL_0300:  brfalse IL_0324
 
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method DataTypeBaseBuilderCollection::Contains
+	IL_0305:  ldloc.3 
+	IL_0306:  isinst [mscorlib]System.DateTime
+	IL_030b:  brfalse IL_0324
 
-    // method line 1974
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.DataTypeBaseBuilder[] 'array', int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x21a7a
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method DataTypeBaseBuilderCollection::CopyTo
+	IL_0310:  nop 
+	IL_0311:  ldloc.1 
+	IL_0312:  ldloc.3 
+	IL_0313:  callvirt instance bool object::Equals(object)
+	IL_0318:  box [mscorlib]System.Boolean
+	IL_031d:  stloc.s 5
+	IL_031f:  br IL_1536
 
-    // method line 1975
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x21a8c
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0324:  ldloc.1 
+	IL_0325:  isinst [mscorlib]System.TimeSpan
+	IL_032a:  brfalse IL_034e
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DataTypeBaseBuilderCollection::IndexOf
+	IL_032f:  ldloc.3 
+	IL_0330:  isinst [mscorlib]System.TimeSpan
+	IL_0335:  brfalse IL_034e
 
-    // method line 1976
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x21aad
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method DataTypeBaseBuilderCollection::Insert
+	IL_033a:  nop 
+	IL_033b:  ldloc.1 
+	IL_033c:  ldloc.3 
+	IL_033d:  callvirt instance bool object::Equals(object)
+	IL_0342:  box [mscorlib]System.Boolean
+	IL_0347:  stloc.s 5
+	IL_0349:  br IL_1536
 
-    // method line 1977
-    .method public hidebysig 
-           instance default class NAnt.Core.DataTypeBaseBuilderEnumerator GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x21ac0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.DataTypeBaseBuilderEnumerator	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.DataTypeBaseBuilderEnumerator::'.ctor'(class NAnt.Core.DataTypeBaseBuilderCollection)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_034e:  ldloc.1 
+	IL_034f:  isinst [mscorlib]System.Version
+	IL_0354:  brfalse IL_0378
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DataTypeBaseBuilderCollection::GetEnumerator
+	IL_0359:  ldloc.3 
+	IL_035a:  isinst [mscorlib]System.Version
+	IL_035f:  brfalse IL_0378
 
-    // method line 1978
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x21adb
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method DataTypeBaseBuilderCollection::Remove
+	IL_0364:  nop 
+	IL_0365:  ldloc.1 
+	IL_0366:  ldloc.3 
+	IL_0367:  callvirt instance bool object::Equals(object)
+	IL_036c:  box [mscorlib]System.Boolean
+	IL_0371:  stloc.s 5
+	IL_0373:  br IL_1536
 
-	.property instance class NAnt.Core.DataTypeBaseBuilder Item (int32)
-	{
-		.get instance default class NAnt.Core.DataTypeBaseBuilder NAnt.Core.DataTypeBaseBuilderCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Core.DataTypeBaseBuilderCollection::set_Item (int32 index, class NAnt.Core.DataTypeBaseBuilder 'value') 
-	}
-	.property instance class NAnt.Core.DataTypeBaseBuilder Item (string)
-	{
-		.get instance default class NAnt.Core.DataTypeBaseBuilder NAnt.Core.DataTypeBaseBuilderCollection::get_Item (string dataTypeName) 
-	}
-  } // end of class NAnt.Core.DataTypeBaseBuilderCollection
-}
+	IL_0378:  ldloc.1 
+	IL_0379:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_037e:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
+	IL_0383:  brfalse IL_03d8
 
-.namespace NAnt.Core
-{
-  .class public auto ansi beforefieldinit DataTypeBaseBuilderEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+	IL_0388:  nop 
+	IL_0389:  ldloc.3 
+	IL_038a:  isinst [mscorlib]System.String
+	IL_038f:  brfalse IL_03b9
 
-    // method line 1979
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.DataTypeBaseBuilderCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0x21aec
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.DataTypeBaseBuilderEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method DataTypeBaseBuilderEnumerator::.ctor
+	IL_0394:  nop 
+	IL_0395:  ldloc.1 
+	IL_0396:  ldloc.1 
+	IL_0397:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_039c:  ldloc.3 
+	IL_039d:  castclass [mscorlib]System.String
+	IL_03a2:  ldc.i4.0 
+	IL_03a3:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	IL_03a8:  callvirt instance bool object::Equals(object)
+	IL_03ad:  box [mscorlib]System.Boolean
+	IL_03b2:  stloc.s 5
+	IL_03b4:  br IL_1536
 
-    // method line 1980
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.DataTypeBaseBuilder get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x21b10
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.DataTypeBaseBuilder	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.DataTypeBaseBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.DataTypeBaseBuilder
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_03b9:  nop 
+	IL_03ba:  ldloc.1 
+	IL_03bb:  ldloc.1 
+	IL_03bc:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_03c1:  ldloc.3 
+	IL_03c2:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, object)
+	IL_03c7:  callvirt instance bool object::Equals(object)
+	IL_03cc:  box [mscorlib]System.Boolean
+	IL_03d1:  stloc.s 5
+	IL_03d3:  br IL_1536
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method DataTypeBaseBuilderEnumerator::get_Current
+	IL_03d8:  ldloc.3 
+	IL_03d9:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_03de:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
+	IL_03e3:  brfalse IL_0438
 
-    // method line 1981
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x21b38
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		object	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.DataTypeBaseBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_03e8:  nop 
+	IL_03e9:  ldloc.1 
+	IL_03ea:  isinst [mscorlib]System.String
+	IL_03ef:  brfalse IL_0419
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseBuilderEnumerator::System.Collections.IEnumerator.get_Current
+	IL_03f4:  nop 
+	IL_03f5:  ldloc.3 
+	IL_03f6:  ldloc.3 
+	IL_03f7:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_03fc:  ldloc.1 
+	IL_03fd:  castclass [mscorlib]System.String
+	IL_0402:  ldc.i4.0 
+	IL_0403:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	IL_0408:  callvirt instance bool object::Equals(object)
+	IL_040d:  box [mscorlib]System.Boolean
+	IL_0412:  stloc.s 5
+	IL_0414:  br IL_1536
 
-    // method line 1982
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x21b58
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.DataTypeBaseBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0419:  nop 
+	IL_041a:  ldloc.3 
+	IL_041b:  ldloc.3 
+	IL_041c:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0421:  ldloc.1 
+	IL_0422:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, object)
+	IL_0427:  callvirt instance bool object::Equals(object)
+	IL_042c:  box [mscorlib]System.Boolean
+	IL_0431:  stloc.s 5
+	IL_0433:  br IL_1536
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseBuilderEnumerator::MoveNext
+	IL_0438:  ldarg.0 
+	IL_0439:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_043e:  ldstr "NA1038"
+	IL_0443:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0448:  ldarg.0 
+	IL_0449:  ldloc.1 
+	IL_044a:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_044f:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_0454:  ldarg.0 
+	IL_0455:  ldloc.3 
+	IL_0456:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_045b:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_0460:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0465:  ldloc.0 
+	IL_0466:  ldloc.s 4
+	IL_0468:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_046d:  throw 
+	IL_046e:  ldloc.1 
+	IL_046f:  isinst [mscorlib]System.String
+	IL_0474:  brfalse IL_049b
 
-    // method line 1983
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x21b78
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.DataTypeBaseBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0479:  ldloc.3 
+	IL_047a:  isinst [mscorlib]System.String
+	IL_047f:  brfalse IL_049b
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeBaseBuilderEnumerator::System.Collections.IEnumerator.MoveNext
+	IL_0484:  nop 
+	IL_0485:  ldloc.1 
+	IL_0486:  ldloc.3 
+	IL_0487:  callvirt instance bool object::Equals(object)
+	IL_048c:  ldc.i4.0 
+	IL_048d:  ceq 
+	IL_048f:  box [mscorlib]System.Boolean
+	IL_0494:  stloc.s 5
+	IL_0496:  br IL_1536
 
-    // method line 1984
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x21b98
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.DataTypeBaseBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method DataTypeBaseBuilderEnumerator::Reset
+	IL_049b:  ldloc.1 
+	IL_049c:  isinst [mscorlib]System.Boolean
+	IL_04a1:  brfalse IL_04c8
 
-    // method line 1985
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x21ba6
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.DataTypeBaseBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method DataTypeBaseBuilderEnumerator::System.Collections.IEnumerator.Reset
+	IL_04a6:  ldloc.3 
+	IL_04a7:  isinst [mscorlib]System.Boolean
+	IL_04ac:  brfalse IL_04c8
 
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.Core.DataTypeBaseBuilderEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.Core.DataTypeBaseBuilder Current ()
-	{
-		.get instance default class NAnt.Core.DataTypeBaseBuilder NAnt.Core.DataTypeBaseBuilderEnumerator::get_Current () 
-	}
-  } // end of class NAnt.Core.DataTypeBaseBuilderEnumerator
-}
+	IL_04b1:  nop 
+	IL_04b2:  ldloc.1 
+	IL_04b3:  ldloc.3 
+	IL_04b4:  callvirt instance bool object::Equals(object)
+	IL_04b9:  ldc.i4.0 
+	IL_04ba:  ceq 
+	IL_04bc:  box [mscorlib]System.Boolean
+	IL_04c1:  stloc.s 5
+	IL_04c3:  br IL_1536
 
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable beforefieldinit DirectoryScanner
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.ICloneable  {
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _baseDirectory
-    .field  private  class NAnt.Core.StringCollectionWithGoodToString _includes
-    .field  private  class NAnt.Core.StringCollectionWithGoodToString _excludes
-    .field  private  class [mscorlib]System.Collections.ArrayList _includePatterns
-    .field  private  class [mscorlib]System.Collections.ArrayList _excludePatterns
-    .field  private  class NAnt.Core.StringCollectionWithGoodToString _includeNames
-    .field  private  class NAnt.Core.StringCollectionWithGoodToString _excludeNames
-    .field  private  class NAnt.Core.StringCollectionWithGoodToString _fileNames
-    .field  private  class NAnt.Core.DirScannerStringCollection _directoryNames
-    .field  private  class NAnt.Core.DirScannerStringCollection _searchDirectories
-    .field  private  class NAnt.Core.DirScannerStringCollection _scannedDirectories
-    .field  private  class [mscorlib]System.Collections.ArrayList _searchDirIsRecursive
-    .field  private  bool _caseSensitive
-    .field  private  bool _isEverythingIncluded
-    .field  private static initonly  class [log4net]log4net.ILog logger
-    .field  private static  class [mscorlib]System.Collections.Hashtable cachedCaseSensitiveRegexes
-    .field  private static  class [mscorlib]System.Collections.Hashtable cachedCaseInsensitiveRegexes
+	IL_04c8:  ldloc.1 
+	IL_04c9:  isinst [mscorlib]System.Int32
+	IL_04ce:  brfalse IL_04f5
 
-    // method line 1986
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x21bb4
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_0006:  call instance void class NAnt.Core.DirectoryScanner::'.ctor'(bool)
-	IL_000b:  nop 
-	IL_000c:  ret 
-    } // end of method DirectoryScanner::.ctor
+	IL_04d3:  ldloc.3 
+	IL_04d4:  isinst [mscorlib]System.Int32
+	IL_04d9:  brfalse IL_04f5
 
-    // method line 1987
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (bool caseSensitive)  cil managed 
-    {
-        // Method begins at RVA 0x21bc2
-	// Code size 44 (0x2c)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.StringCollectionWithGoodToString::'.ctor'()
-	IL_0006:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includes
-	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class NAnt.Core.StringCollectionWithGoodToString::'.ctor'()
-	IL_0011:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludes
-	IL_0016:  ldarg.0 
-	IL_0017:  ldc.i4.1 
-	IL_0018:  stfld bool NAnt.Core.DirectoryScanner::_isEverythingIncluded
-	IL_001d:  ldarg.0 
-	IL_001e:  call instance void object::'.ctor'()
-	IL_0023:  nop 
-	IL_0024:  ldarg.0 
-	IL_0025:  ldarg.1 
-	IL_0026:  stfld bool NAnt.Core.DirectoryScanner::_caseSensitive
-	IL_002b:  ret 
-    } // end of method DirectoryScanner::.ctor
+	IL_04de:  nop 
+	IL_04df:  ldloc.1 
+	IL_04e0:  ldloc.3 
+	IL_04e1:  callvirt instance bool object::Equals(object)
+	IL_04e6:  ldc.i4.0 
+	IL_04e7:  ceq 
+	IL_04e9:  box [mscorlib]System.Boolean
+	IL_04ee:  stloc.s 5
+	IL_04f0:  br IL_1536
 
-    // method line 1988
-    .method public final virtual hidebysig newslot 
-           instance default object Clone ()  cil managed 
-    {
-        // Method begins at RVA 0x21bf0
-	// Code size 422 (0x1a6)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.DirectoryScanner	V_0,
-		object	V_1)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.DirectoryScanner::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
-	IL_000d:  brfalse IL_002a
+	IL_04f5:  ldloc.1 
+	IL_04f6:  isinst [mscorlib]System.Int32
+	IL_04fb:  brfalse IL_0531
 
-	IL_0012:  nop 
-	IL_0013:  ldloc.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
-	IL_001a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001f:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0024:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
-	IL_0029:  nop 
-	IL_002a:  ldarg.0 
-	IL_002b:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
-	IL_0030:  brfalse IL_004d
+	IL_0500:  ldloc.3 
+	IL_0501:  isinst [mscorlib]System.Int64
+	IL_0506:  brfalse IL_0531
 
-	IL_0035:  nop 
-	IL_0036:  ldloc.0 
-	IL_0037:  ldarg.0 
-	IL_0038:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
-	IL_003d:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
-	IL_0042:  castclass NAnt.Core.DirScannerStringCollection
-	IL_0047:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
-	IL_004c:  nop 
-	IL_004d:  ldarg.0 
-	IL_004e:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_excludePatterns
-	IL_0053:  brfalse IL_0070
+	IL_050b:  nop 
+	IL_050c:  ldloc.1 
+	IL_050d:  call int64 class [mscorlib]System.Convert::ToInt64(object)
+	IL_0512:  stloc.s 9
+	IL_0514:  ldloca.s 9
+	IL_0516:  ldloc.3 
+	IL_0517:  constrained. [mscorlib]System.Int64
+	IL_051d:  callvirt instance bool object::Equals(object)
+	IL_0522:  ldc.i4.0 
+	IL_0523:  ceq 
+	IL_0525:  box [mscorlib]System.Boolean
+	IL_052a:  stloc.s 5
+	IL_052c:  br IL_1536
 
-	IL_0058:  nop 
-	IL_0059:  ldloc.0 
-	IL_005a:  ldarg.0 
-	IL_005b:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_excludePatterns
-	IL_0060:  callvirt instance object class [mscorlib]System.Collections.ArrayList::Clone()
-	IL_0065:  castclass [mscorlib]System.Collections.ArrayList
-	IL_006a:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_excludePatterns
-	IL_006f:  nop 
-	IL_0070:  ldarg.0 
-	IL_0071:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludeNames
-	IL_0076:  brfalse IL_0093
+	IL_0531:  ldloc.1 
+	IL_0532:  isinst [mscorlib]System.Int32
+	IL_0537:  brfalse IL_056d
 
-	IL_007b:  nop 
-	IL_007c:  ldloc.0 
-	IL_007d:  ldarg.0 
-	IL_007e:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludeNames
-	IL_0083:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
-	IL_0088:  castclass NAnt.Core.StringCollectionWithGoodToString
-	IL_008d:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludeNames
-	IL_0092:  nop 
-	IL_0093:  ldloc.0 
-	IL_0094:  ldarg.0 
-	IL_0095:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludes
-	IL_009a:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
-	IL_009f:  castclass NAnt.Core.StringCollectionWithGoodToString
-	IL_00a4:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludes
-	IL_00a9:  ldarg.0 
-	IL_00aa:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
-	IL_00af:  brfalse IL_00cc
+	IL_053c:  ldloc.3 
+	IL_053d:  isinst [mscorlib]System.Double
+	IL_0542:  brfalse IL_056d
 
-	IL_00b4:  nop 
-	IL_00b5:  ldloc.0 
-	IL_00b6:  ldarg.0 
-	IL_00b7:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
-	IL_00bc:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
-	IL_00c1:  castclass NAnt.Core.StringCollectionWithGoodToString
-	IL_00c6:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
-	IL_00cb:  nop 
-	IL_00cc:  ldarg.0 
-	IL_00cd:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_includePatterns
-	IL_00d2:  brfalse IL_00ef
+	IL_0547:  nop 
+	IL_0548:  ldloc.1 
+	IL_0549:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_054e:  stloc.s 10
+	IL_0550:  ldloca.s 10
+	IL_0552:  ldloc.3 
+	IL_0553:  constrained. [mscorlib]System.Double
+	IL_0559:  callvirt instance bool object::Equals(object)
+	IL_055e:  ldc.i4.0 
+	IL_055f:  ceq 
+	IL_0561:  box [mscorlib]System.Boolean
+	IL_0566:  stloc.s 5
+	IL_0568:  br IL_1536
 
-	IL_00d7:  nop 
-	IL_00d8:  ldloc.0 
-	IL_00d9:  ldarg.0 
-	IL_00da:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_includePatterns
-	IL_00df:  callvirt instance object class [mscorlib]System.Collections.ArrayList::Clone()
-	IL_00e4:  castclass [mscorlib]System.Collections.ArrayList
-	IL_00e9:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_includePatterns
-	IL_00ee:  nop 
-	IL_00ef:  ldarg.0 
-	IL_00f0:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includeNames
-	IL_00f5:  brfalse IL_0112
+	IL_056d:  ldloc.1 
+	IL_056e:  isinst [mscorlib]System.Int64
+	IL_0573:  brfalse IL_059a
 
-	IL_00fa:  nop 
-	IL_00fb:  ldloc.0 
-	IL_00fc:  ldarg.0 
-	IL_00fd:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includeNames
-	IL_0102:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
-	IL_0107:  castclass NAnt.Core.StringCollectionWithGoodToString
-	IL_010c:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includeNames
-	IL_0111:  nop 
-	IL_0112:  ldloc.0 
-	IL_0113:  ldarg.0 
-	IL_0114:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includes
-	IL_0119:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
-	IL_011e:  castclass NAnt.Core.StringCollectionWithGoodToString
-	IL_0123:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includes
-	IL_0128:  ldarg.0 
-	IL_0129:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
-	IL_012e:  brfalse IL_014b
+	IL_0578:  ldloc.3 
+	IL_0579:  isinst [mscorlib]System.Int64
+	IL_057e:  brfalse IL_059a
 
-	IL_0133:  nop 
-	IL_0134:  ldloc.0 
-	IL_0135:  ldarg.0 
-	IL_0136:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
-	IL_013b:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
-	IL_0140:  castclass NAnt.Core.DirScannerStringCollection
-	IL_0145:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
-	IL_014a:  nop 
-	IL_014b:  ldarg.0 
-	IL_014c:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
-	IL_0151:  brfalse IL_016e
+	IL_0583:  nop 
+	IL_0584:  ldloc.1 
+	IL_0585:  ldloc.3 
+	IL_0586:  callvirt instance bool object::Equals(object)
+	IL_058b:  ldc.i4.0 
+	IL_058c:  ceq 
+	IL_058e:  box [mscorlib]System.Boolean
+	IL_0593:  stloc.s 5
+	IL_0595:  br IL_1536
 
-	IL_0156:  nop 
-	IL_0157:  ldloc.0 
-	IL_0158:  ldarg.0 
-	IL_0159:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
-	IL_015e:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
-	IL_0163:  castclass NAnt.Core.DirScannerStringCollection
-	IL_0168:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
-	IL_016d:  nop 
-	IL_016e:  ldarg.0 
-	IL_016f:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
-	IL_0174:  brfalse IL_0191
+	IL_059a:  ldloc.1 
+	IL_059b:  isinst [mscorlib]System.Int64
+	IL_05a0:  brfalse IL_05d1
 
-	IL_0179:  nop 
-	IL_017a:  ldloc.0 
-	IL_017b:  ldarg.0 
-	IL_017c:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
-	IL_0181:  callvirt instance object class [mscorlib]System.Collections.ArrayList::Clone()
-	IL_0186:  castclass [mscorlib]System.Collections.ArrayList
-	IL_018b:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
-	IL_0190:  nop 
-	IL_0191:  ldloc.0 
-	IL_0192:  ldarg.0 
-	IL_0193:  ldfld bool NAnt.Core.DirectoryScanner::_caseSensitive
-	IL_0198:  stfld bool NAnt.Core.DirectoryScanner::_caseSensitive
-	IL_019d:  ldloc.0 
-	IL_019e:  stloc.1 
-	IL_019f:  br IL_01a4
+	IL_05a5:  ldloc.3 
+	IL_05a6:  isinst [mscorlib]System.Int32
+	IL_05ab:  brfalse IL_05d1
 
-	IL_01a4:  ldloc.1 
-	IL_01a5:  ret 
-    } // end of method DirectoryScanner::Clone
+	IL_05b0:  nop 
+	IL_05b1:  ldloc.1 
+	IL_05b2:  ldloc.3 
+	IL_05b3:  call int64 class [mscorlib]System.Convert::ToInt64(object)
+	IL_05b8:  box [mscorlib]System.Int64
+	IL_05bd:  callvirt instance bool object::Equals(object)
+	IL_05c2:  ldc.i4.0 
+	IL_05c3:  ceq 
+	IL_05c5:  box [mscorlib]System.Boolean
+	IL_05ca:  stloc.s 5
+	IL_05cc:  br IL_1536
 
-    // method line 1989
-    .method public hidebysig specialname 
-           instance default bool get_CaseSensitive ()  cil managed 
-    {
-        // Method begins at RVA 0x21da4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.DirectoryScanner::_caseSensitive
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_05d1:  ldloc.1 
+	IL_05d2:  isinst [mscorlib]System.Int64
+	IL_05d7:  brfalse IL_060d
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DirectoryScanner::get_CaseSensitive
+	IL_05dc:  ldloc.3 
+	IL_05dd:  isinst [mscorlib]System.Double
+	IL_05e2:  brfalse IL_060d
 
-    // method line 1990
-    .method public hidebysig specialname 
-           instance default void set_CaseSensitive (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x21dbf
-	// Code size 29 (0x1d)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld bool NAnt.Core.DirectoryScanner::_caseSensitive
-	IL_0008:  beq IL_001c
+	IL_05e7:  nop 
+	IL_05e8:  ldloc.1 
+	IL_05e9:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_05ee:  stloc.s 11
+	IL_05f0:  ldloca.s 11
+	IL_05f2:  ldloc.3 
+	IL_05f3:  constrained. [mscorlib]System.Double
+	IL_05f9:  callvirt instance bool object::Equals(object)
+	IL_05fe:  ldc.i4.0 
+	IL_05ff:  ceq 
+	IL_0601:  box [mscorlib]System.Boolean
+	IL_0606:  stloc.s 5
+	IL_0608:  br IL_1536
 
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  stfld bool NAnt.Core.DirectoryScanner::_caseSensitive
-	IL_0015:  ldarg.0 
-	IL_0016:  call instance void class NAnt.Core.DirectoryScanner::Reset()
-	IL_001b:  nop 
-	IL_001c:  ret 
-    } // end of method DirectoryScanner::set_CaseSensitive
+	IL_060d:  ldloc.1 
+	IL_060e:  isinst [mscorlib]System.Double
+	IL_0613:  brfalse IL_063a
 
-    // method line 1991
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Includes ()  cil managed 
-    {
-        // Method begins at RVA 0x21de0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includes
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0618:  ldloc.3 
+	IL_0619:  isinst [mscorlib]System.Double
+	IL_061e:  brfalse IL_063a
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DirectoryScanner::get_Includes
+	IL_0623:  nop 
+	IL_0624:  ldloc.1 
+	IL_0625:  ldloc.3 
+	IL_0626:  callvirt instance bool object::Equals(object)
+	IL_062b:  ldc.i4.0 
+	IL_062c:  ceq 
+	IL_062e:  box [mscorlib]System.Boolean
+	IL_0633:  stloc.s 5
+	IL_0635:  br IL_1536
 
-    // method line 1992
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Excludes ()  cil managed 
-    {
-        // Method begins at RVA 0x21dfc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludes
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_063a:  ldloc.1 
+	IL_063b:  isinst [mscorlib]System.Double
+	IL_0640:  brfalse IL_0671
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DirectoryScanner::get_Excludes
+	IL_0645:  ldloc.3 
+	IL_0646:  isinst [mscorlib]System.Int32
+	IL_064b:  brfalse IL_0671
 
-    // method line 1993
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x21e18
-	// Code size 54 (0x36)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
-	IL_0007:  brtrue IL_0028
+	IL_0650:  nop 
+	IL_0651:  ldloc.1 
+	IL_0652:  ldloc.3 
+	IL_0653:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_0658:  box [mscorlib]System.Double
+	IL_065d:  callvirt instance bool object::Equals(object)
+	IL_0662:  ldc.i4.0 
+	IL_0663:  ceq 
+	IL_0665:  box [mscorlib]System.Boolean
+	IL_066a:  stloc.s 5
+	IL_066c:  br IL_1536
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call string class [mscorlib]System.Environment::get_CurrentDirectory()
-	IL_0013:  call class [mscorlib]System.Text.StringBuilder class NAnt.Core.DirectoryScanner::CleanPath(string)
-	IL_0018:  callvirt instance string object::ToString()
-	IL_001d:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0022:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
-	IL_0027:  nop 
-	IL_0028:  ldarg.0 
-	IL_0029:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
-	IL_002e:  stloc.0 
-	IL_002f:  br IL_0034
+	IL_0671:  ldloc.1 
+	IL_0672:  isinst [mscorlib]System.Double
+	IL_0677:  brfalse IL_06a8
 
-	IL_0034:  ldloc.0 
-	IL_0035:  ret 
-    } // end of method DirectoryScanner::get_BaseDirectory
+	IL_067c:  ldloc.3 
+	IL_067d:  isinst [mscorlib]System.Int64
+	IL_0682:  brfalse IL_06a8
 
-    // method line 1994
-    .method public hidebysig specialname 
-           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x21e5a
-	// Code size 60 (0x3c)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0020
+	IL_0687:  nop 
+	IL_0688:  ldloc.1 
+	IL_0689:  ldloc.3 
+	IL_068a:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_068f:  box [mscorlib]System.Double
+	IL_0694:  callvirt instance bool object::Equals(object)
+	IL_0699:  ldc.i4.0 
+	IL_069a:  ceq 
+	IL_069c:  box [mscorlib]System.Boolean
+	IL_06a1:  stloc.s 5
+	IL_06a3:  br IL_1536
 
-	IL_0007:  nop 
-	IL_0008:  ldarg.1 
-	IL_0009:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_000e:  call class [mscorlib]System.Text.StringBuilder class NAnt.Core.DirectoryScanner::CleanPath(string)
-	IL_0013:  callvirt instance string object::ToString()
-	IL_0018:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_001d:  starg.s 1
-	IL_001f:  nop 
-	IL_0020:  ldarg.1 
-	IL_0021:  ldarg.0 
-	IL_0022:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
-	IL_0027:  beq IL_003b
+	IL_06a8:  ldloc.1 
+	IL_06a9:  isinst [mscorlib]System.DateTime
+	IL_06ae:  brfalse IL_06d5
 
-	IL_002c:  nop 
-	IL_002d:  ldarg.0 
-	IL_002e:  ldarg.1 
-	IL_002f:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
-	IL_0034:  ldarg.0 
-	IL_0035:  call instance void class NAnt.Core.DirectoryScanner::Reset()
-	IL_003a:  nop 
-	IL_003b:  ret 
-    } // end of method DirectoryScanner::set_BaseDirectory
+	IL_06b3:  ldloc.3 
+	IL_06b4:  isinst [mscorlib]System.DateTime
+	IL_06b9:  brfalse IL_06d5
 
-    // method line 1995
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_FileNames ()  cil managed 
-    {
-        // Method begins at RVA 0x21e98
-	// Code size 34 (0x22)
-	.maxstack 1
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
-	IL_0007:  brtrue IL_0014
+	IL_06be:  nop 
+	IL_06bf:  ldloc.1 
+	IL_06c0:  ldloc.3 
+	IL_06c1:  callvirt instance bool object::Equals(object)
+	IL_06c6:  ldc.i4.0 
+	IL_06c7:  ceq 
+	IL_06c9:  box [mscorlib]System.Boolean
+	IL_06ce:  stloc.s 5
+	IL_06d0:  br IL_1536
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance void class NAnt.Core.DirectoryScanner::Scan()
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
-	IL_001a:  stloc.0 
-	IL_001b:  br IL_0020
+	IL_06d5:  ldloc.1 
+	IL_06d6:  isinst [mscorlib]System.TimeSpan
+	IL_06db:  brfalse IL_0702
 
-	IL_0020:  ldloc.0 
-	IL_0021:  ret 
-    } // end of method DirectoryScanner::get_FileNames
+	IL_06e0:  ldloc.3 
+	IL_06e1:  isinst [mscorlib]System.TimeSpan
+	IL_06e6:  brfalse IL_0702
 
-    // method line 1996
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_DirectoryNames ()  cil managed 
-    {
-        // Method begins at RVA 0x21ec8
-	// Code size 34 (0x22)
-	.maxstack 1
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
-	IL_0007:  brtrue IL_0014
+	IL_06eb:  nop 
+	IL_06ec:  ldloc.1 
+	IL_06ed:  ldloc.3 
+	IL_06ee:  callvirt instance bool object::Equals(object)
+	IL_06f3:  ldc.i4.0 
+	IL_06f4:  ceq 
+	IL_06f6:  box [mscorlib]System.Boolean
+	IL_06fb:  stloc.s 5
+	IL_06fd:  br IL_1536
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance void class NAnt.Core.DirectoryScanner::Scan()
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
-	IL_001a:  stloc.0 
-	IL_001b:  br IL_0020
+	IL_0702:  ldloc.1 
+	IL_0703:  isinst [mscorlib]System.Version
+	IL_0708:  brfalse IL_072f
 
-	IL_0020:  ldloc.0 
-	IL_0021:  ret 
-    } // end of method DirectoryScanner::get_DirectoryNames
+	IL_070d:  ldloc.3 
+	IL_070e:  isinst [mscorlib]System.Version
+	IL_0713:  brfalse IL_072f
 
-    // method line 1997
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_ScannedDirectories ()  cil managed 
-    {
-        // Method begins at RVA 0x21ef8
-	// Code size 34 (0x22)
-	.maxstack 1
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
-	IL_0007:  brtrue IL_0014
+	IL_0718:  nop 
+	IL_0719:  ldloc.1 
+	IL_071a:  ldloc.3 
+	IL_071b:  callvirt instance bool object::Equals(object)
+	IL_0720:  ldc.i4.0 
+	IL_0721:  ceq 
+	IL_0723:  box [mscorlib]System.Boolean
+	IL_0728:  stloc.s 5
+	IL_072a:  br IL_1536
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance void class NAnt.Core.DirectoryScanner::Scan()
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
-	IL_001a:  stloc.0 
-	IL_001b:  br IL_0020
+	IL_072f:  ldloc.1 
+	IL_0730:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0735:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
+	IL_073a:  brfalse IL_0795
 
-	IL_0020:  ldloc.0 
-	IL_0021:  ret 
-    } // end of method DirectoryScanner::get_ScannedDirectories
+	IL_073f:  nop 
+	IL_0740:  ldloc.3 
+	IL_0741:  isinst [mscorlib]System.String
+	IL_0746:  brfalse IL_0773
 
-    // method line 1998
-    .method public hidebysig specialname 
-           instance default bool get_IsEverythingIncluded ()  cil managed 
-    {
-        // Method begins at RVA 0x21f28
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.DirectoryScanner::_isEverythingIncluded
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_074b:  nop 
+	IL_074c:  ldloc.1 
+	IL_074d:  ldloc.1 
+	IL_074e:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0753:  ldloc.3 
+	IL_0754:  castclass [mscorlib]System.String
+	IL_0759:  ldc.i4.0 
+	IL_075a:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	IL_075f:  callvirt instance bool object::Equals(object)
+	IL_0764:  ldc.i4.0 
+	IL_0765:  ceq 
+	IL_0767:  box [mscorlib]System.Boolean
+	IL_076c:  stloc.s 5
+	IL_076e:  br IL_1536
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DirectoryScanner::get_IsEverythingIncluded
+	IL_0773:  nop 
+	IL_0774:  ldloc.1 
+	IL_0775:  ldloc.1 
+	IL_0776:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_077b:  ldloc.3 
+	IL_077c:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, object)
+	IL_0781:  callvirt instance bool object::Equals(object)
+	IL_0786:  ldc.i4.0 
+	IL_0787:  ceq 
+	IL_0789:  box [mscorlib]System.Boolean
+	IL_078e:  stloc.s 5
+	IL_0790:  br IL_1536
 
-    // method line 1999
-    .method public hidebysig 
-           instance default void Scan ()  cil managed 
-    {
-        // Method begins at RVA 0x21f44
-	// Code size 234 (0xea)
-	.maxstack 5
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0007:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_includePatterns
-	IL_000c:  ldarg.0 
-	IL_000d:  newobj instance void class NAnt.Core.StringCollectionWithGoodToString::'.ctor'()
-	IL_0012:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includeNames
-	IL_0017:  ldarg.0 
-	IL_0018:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_001d:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_excludePatterns
-	IL_0022:  ldarg.0 
-	IL_0023:  newobj instance void class NAnt.Core.StringCollectionWithGoodToString::'.ctor'()
-	IL_0028:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludeNames
-	IL_002d:  ldarg.0 
-	IL_002e:  newobj instance void class NAnt.Core.StringCollectionWithGoodToString::'.ctor'()
-	IL_0033:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
-	IL_0038:  ldarg.0 
-	IL_0039:  ldarg.0 
-	IL_003a:  call instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
-	IL_003f:  newobj instance void class NAnt.Core.DirScannerStringCollection::'.ctor'(bool)
-	IL_0044:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
-	IL_0049:  ldarg.0 
-	IL_004a:  ldarg.0 
-	IL_004b:  call instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
-	IL_0050:  newobj instance void class NAnt.Core.DirScannerStringCollection::'.ctor'(bool)
-	IL_0055:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
-	IL_005a:  ldarg.0 
-	IL_005b:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0060:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
-	IL_0065:  ldarg.0 
-	IL_0066:  ldarg.0 
-	IL_0067:  call instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
-	IL_006c:  newobj instance void class NAnt.Core.DirScannerStringCollection::'.ctor'(bool)
-	IL_0071:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
-	IL_0076:  ldarg.0 
-	IL_0077:  ldarg.0 
-	IL_0078:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includes
-	IL_007d:  ldarg.0 
-	IL_007e:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_includePatterns
-	IL_0083:  ldarg.0 
-	IL_0084:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includeNames
-	IL_0089:  ldc.i4.1 
-	IL_008a:  call instance void class NAnt.Core.DirectoryScanner::ConvertPatterns(class [System]System.Collections.Specialized.StringCollection, class [mscorlib]System.Collections.ArrayList, class [System]System.Collections.Specialized.StringCollection, bool)
-	IL_008f:  ldarg.0 
-	IL_0090:  ldarg.0 
-	IL_0091:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludes
-	IL_0096:  ldarg.0 
-	IL_0097:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_excludePatterns
-	IL_009c:  ldarg.0 
-	IL_009d:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludeNames
-	IL_00a2:  ldc.i4.0 
-	IL_00a3:  call instance void class NAnt.Core.DirectoryScanner::ConvertPatterns(class [System]System.Collections.Specialized.StringCollection, class [mscorlib]System.Collections.ArrayList, class [System]System.Collections.Specialized.StringCollection, bool)
-	IL_00a8:  ldc.i4.0 
-	IL_00a9:  stloc.0 
-	IL_00aa:  br IL_00d8
+	IL_0795:  ldloc.3 
+	IL_0796:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_079b:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
+	IL_07a0:  brfalse IL_07fb
 
-	IL_00af:  nop 
-	IL_00b0:  ldarg.0 
-	IL_00b1:  ldarg.0 
-	IL_00b2:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
-	IL_00b7:  ldloc.0 
-	IL_00b8:  callvirt instance string class [System]System.Collections.Specialized.StringCollection::get_Item(int32)
-	IL_00bd:  ldarg.0 
-	IL_00be:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
-	IL_00c3:  ldloc.0 
-	IL_00c4:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	IL_00c9:  unbox.any [mscorlib]System.Boolean
-	IL_00ce:  call instance void class NAnt.Core.DirectoryScanner::ScanDirectory(string, bool)
-	IL_00d3:  nop 
-	IL_00d4:  ldloc.0 
-	IL_00d5:  ldc.i4.1 
-	IL_00d6:  add 
-	IL_00d7:  stloc.0 
-	IL_00d8:  ldloc.0 
-	IL_00d9:  ldarg.0 
-	IL_00da:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
-	IL_00df:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_00e4:  blt IL_00af
+	IL_07a5:  nop 
+	IL_07a6:  ldloc.1 
+	IL_07a7:  isinst [mscorlib]System.String
+	IL_07ac:  brfalse IL_07d9
 
-	IL_00e9:  ret 
-    } // end of method DirectoryScanner::Scan
+	IL_07b1:  nop 
+	IL_07b2:  ldloc.3 
+	IL_07b3:  ldloc.3 
+	IL_07b4:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_07b9:  ldloc.1 
+	IL_07ba:  castclass [mscorlib]System.String
+	IL_07bf:  ldc.i4.0 
+	IL_07c0:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	IL_07c5:  callvirt instance bool object::Equals(object)
+	IL_07ca:  ldc.i4.0 
+	IL_07cb:  ceq 
+	IL_07cd:  box [mscorlib]System.Boolean
+	IL_07d2:  stloc.s 5
+	IL_07d4:  br IL_1536
 
-    // method line 2000
-    .method private hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x2203c
-	// Code size 72 (0x48)
-	.maxstack 2
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.1 
-	IL_0003:  stfld bool NAnt.Core.DirectoryScanner::_isEverythingIncluded
-	IL_0008:  ldarg.0 
-	IL_0009:  ldnull 
-	IL_000a:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_includePatterns
-	IL_000f:  ldarg.0 
-	IL_0010:  ldnull 
-	IL_0011:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includeNames
-	IL_0016:  ldarg.0 
-	IL_0017:  ldnull 
-	IL_0018:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_excludePatterns
-	IL_001d:  ldarg.0 
-	IL_001e:  ldnull 
-	IL_001f:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludeNames
-	IL_0024:  ldarg.0 
-	IL_0025:  ldnull 
-	IL_0026:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
-	IL_002b:  ldarg.0 
-	IL_002c:  ldnull 
-	IL_002d:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
-	IL_0032:  ldarg.0 
-	IL_0033:  ldnull 
-	IL_0034:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
-	IL_0039:  ldarg.0 
-	IL_003a:  ldnull 
-	IL_003b:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
-	IL_0040:  ldarg.0 
-	IL_0041:  ldnull 
-	IL_0042:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
-	IL_0047:  ret 
-    } // end of method DirectoryScanner::Reset
+	IL_07d9:  nop 
+	IL_07da:  ldloc.3 
+	IL_07db:  ldloc.3 
+	IL_07dc:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_07e1:  ldloc.1 
+	IL_07e2:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, object)
+	IL_07e7:  callvirt instance bool object::Equals(object)
+	IL_07ec:  ldc.i4.0 
+	IL_07ed:  ceq 
+	IL_07ef:  box [mscorlib]System.Boolean
+	IL_07f4:  stloc.s 5
+	IL_07f6:  br IL_1536
 
-    // method line 2001
-    .method private hidebysig 
-           instance default void ConvertPatterns (class [System]System.Collections.Specialized.StringCollection nantPatterns, class [mscorlib]System.Collections.ArrayList regexPatterns, class [System]System.Collections.Specialized.StringCollection nonRegexFiles, bool addSearchDirectories)  cil managed 
-    {
-        // Method begins at RVA 0x22090
-	// Code size 345 (0x159)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		string	V_1,
-		bool	V_2,
-		bool	V_3,
-		string	V_4,
-		class [System]System.Collections.Specialized.StringEnumerator	V_5,
-		class NAnt.Core.DirectoryScanner/RegexEntry	V_6,
-		string	V_7,
-		int32	V_8,
-		class [mscorlib]System.IDisposable	V_9)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0008:  stloc.s 5
-	.try { // 0
-	  IL_000a:  br IL_0130
+	IL_07fb:  ldarg.0 
+	IL_07fc:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0801:  ldstr "NA1042"
+	IL_0806:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_080b:  ldarg.0 
+	IL_080c:  ldloc.1 
+	IL_080d:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0812:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_0817:  ldarg.0 
+	IL_0818:  ldloc.3 
+	IL_0819:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_081e:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_0823:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0828:  ldloc.0 
+	IL_0829:  ldloc.s 4
+	IL_082b:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0830:  throw 
+	IL_0831:  ldloc.1 
+	IL_0832:  isinst [mscorlib]System.String
+	IL_0837:  brfalse IL_086e
 
-	  IL_000f:  ldloc.s 5
-	  IL_0011:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0016:  stloc.s 4
-	  IL_0018:  nop 
-	  IL_0019:  ldarg.0 
-	  IL_001a:  ldarg.s 4
-	  IL_001c:  ldloc.s 4
-	  IL_001e:  ldloca.s 0
-	  IL_0020:  ldloca.s 2
-	  IL_0022:  ldloca.s 3
-	  IL_0024:  ldloca.s 1
-	  IL_0026:  call instance void class NAnt.Core.DirectoryScanner::ParseSearchDirectoryAndPattern(bool, string, [out] string&, [out] bool&, [out] bool&, [out] string&)
-	  IL_002b:  ldloc.3 
-	  IL_002c:  brfalse IL_008f
+	IL_083c:  ldloc.3 
+	IL_083d:  isinst [mscorlib]System.String
+	IL_0842:  brfalse IL_086e
 
-	  IL_0031:  nop 
-	  IL_0032:  newobj instance void class NAnt.Core.DirectoryScanner/RegexEntry::'.ctor'()
-	  IL_0037:  stloc.s 6
-	  IL_0039:  ldloc.s 6
-	  IL_003b:  ldloc.2 
-	  IL_003c:  stfld bool NAnt.Core.DirectoryScanner/RegexEntry::IsRecursive
-	  IL_0041:  ldloc.s 6
-	  IL_0043:  ldloc.0 
-	  IL_0044:  stfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
-	  IL_0049:  ldloc.s 6
-	  IL_004b:  ldloc.1 
-	  IL_004c:  stfld string NAnt.Core.DirectoryScanner/RegexEntry::Pattern
-	  IL_0051:  ldloc.1 
-	  IL_0052:  ldstr "**/*"
-	  IL_0057:  callvirt instance bool string::EndsWith(string)
-	  IL_005c:  brtrue IL_0071
+	IL_0847:  nop 
+	IL_0848:  ldloc.1 
+	IL_0849:  castclass [mscorlib]System.String
+	IL_084e:  ldloc.3 
+	IL_084f:  castclass [mscorlib]System.String
+	IL_0854:  ldc.i4.0 
+	IL_0855:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_085a:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_085f:  ldc.i4.0 
+	IL_0860:  clt 
+	IL_0862:  box [mscorlib]System.Boolean
+	IL_0867:  stloc.s 5
+	IL_0869:  br IL_1536
 
-	  IL_0061:  ldloc.1 
-	  IL_0062:  ldstr "**\\*"
-	  IL_0067:  callvirt instance bool string::EndsWith(string)
-	  IL_006c:  brfalse IL_0080
+	IL_086e:  ldloc.1 
+	IL_086f:  isinst [mscorlib]System.Boolean
+	IL_0874:  brfalse IL_08a0
 
-	  IL_0071:  ldsfld class [log4net]log4net.ILog NAnt.Core.DirectoryScanner::logger
-	  IL_0076:  ldstr "**/* pattern may not produce desired results"
-	  IL_007b:  callvirt instance void class [log4net]log4net.ILog::Warn(object)
-	  IL_0080:  ldarg.2 
-	  IL_0081:  ldloc.s 6
-	  IL_0083:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0088:  pop 
-	  IL_0089:  nop 
-	  IL_008a:  br IL_00b2
+	IL_0879:  ldloc.3 
+	IL_087a:  isinst [mscorlib]System.Boolean
+	IL_087f:  brfalse IL_08a0
 
-	  IL_008f:  nop 
-	  IL_0090:  ldloc.0 
-	  IL_0091:  ldloc.1 
-	  IL_0092:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_0097:  stloc.s 7
-	  IL_0099:  ldarg.3 
-	  IL_009a:  ldloc.s 7
-	  IL_009c:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
-	  IL_00a1:  brtrue IL_00b1
+	IL_0884:  nop 
+	IL_0885:  ldloc.1 
+	IL_0886:  castclass [mscorlib]System.IComparable
+	IL_088b:  ldloc.3 
+	IL_088c:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0891:  ldc.i4.0 
+	IL_0892:  clt 
+	IL_0894:  box [mscorlib]System.Boolean
+	IL_0899:  stloc.s 5
+	IL_089b:  br IL_1536
 
-	  IL_00a6:  nop 
-	  IL_00a7:  ldarg.3 
-	  IL_00a8:  ldloc.s 7
-	  IL_00aa:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_00af:  pop 
-	  IL_00b0:  nop 
-	  IL_00b1:  nop 
-	  IL_00b2:  ldarg.s 4
-	  IL_00b4:  brtrue IL_00bf
+	IL_08a0:  ldloc.1 
+	IL_08a1:  isinst [mscorlib]System.Int32
+	IL_08a6:  brfalse IL_08d2
 
-	  IL_00b9:  nop 
-	  IL_00ba:  leave IL_0130
+	IL_08ab:  ldloc.3 
+	IL_08ac:  isinst [mscorlib]System.Int32
+	IL_08b1:  brfalse IL_08d2
 
-	  IL_00bf:  ldarg.0 
-	  IL_00c0:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
-	  IL_00c5:  ldloc.0 
-	  IL_00c6:  callvirt instance int32 class NAnt.Core.DirScannerStringCollection::IndexOf(string)
-	  IL_00cb:  stloc.s 8
-	  IL_00cd:  ldloc.s 8
-	  IL_00cf:  ldc.i4.m1 
-	  IL_00d0:  ble IL_010e
+	IL_08b6:  nop 
+	IL_08b7:  ldloc.1 
+	IL_08b8:  castclass [mscorlib]System.IComparable
+	IL_08bd:  ldloc.3 
+	IL_08be:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_08c3:  ldc.i4.0 
+	IL_08c4:  clt 
+	IL_08c6:  box [mscorlib]System.Boolean
+	IL_08cb:  stloc.s 5
+	IL_08cd:  br IL_1536
 
-	  IL_00d5:  nop 
-	  IL_00d6:  ldarg.0 
-	  IL_00d7:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
-	  IL_00dc:  ldloc.s 8
-	  IL_00de:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	  IL_00e3:  unbox.any [mscorlib]System.Boolean
-	  IL_00e8:  brtrue IL_0108
+	IL_08d2:  ldloc.1 
+	IL_08d3:  isinst [mscorlib]System.Int32
+	IL_08d8:  brfalse IL_0909
 
-	  IL_00ed:  ldloc.2 
-	  IL_00ee:  brfalse IL_0108
+	IL_08dd:  ldloc.3 
+	IL_08de:  isinst [mscorlib]System.Int64
+	IL_08e3:  brfalse IL_0909
 
-	  IL_00f3:  nop 
-	  IL_00f4:  ldarg.0 
-	  IL_00f5:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
-	  IL_00fa:  ldloc.s 8
-	  IL_00fc:  ldloc.2 
-	  IL_00fd:  box [mscorlib]System.Boolean
-	  IL_0102:  callvirt instance void class [mscorlib]System.Collections.ArrayList::set_Item(int32, object)
-	  IL_0107:  nop 
-	  IL_0108:  nop 
-	  IL_0109:  br IL_012f
+	IL_08e8:  nop 
+	IL_08e9:  ldloc.1 
+	IL_08ea:  call int64 class [mscorlib]System.Convert::ToInt64(object)
+	IL_08ef:  box [mscorlib]System.Int64
+	IL_08f4:  ldloc.3 
+	IL_08f5:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_08fa:  ldc.i4.0 
+	IL_08fb:  clt 
+	IL_08fd:  box [mscorlib]System.Boolean
+	IL_0902:  stloc.s 5
+	IL_0904:  br IL_1536
 
-	  IL_010e:  nop 
-	  IL_010f:  ldarg.0 
-	  IL_0110:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
-	  IL_0115:  ldloc.0 
-	  IL_0116:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_011b:  pop 
-	  IL_011c:  ldarg.0 
-	  IL_011d:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
-	  IL_0122:  ldloc.2 
-	  IL_0123:  box [mscorlib]System.Boolean
-	  IL_0128:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_012d:  pop 
-	  IL_012e:  nop 
-	  IL_012f:  nop 
-	  IL_0130:  ldloc.s 5
-	  IL_0132:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0137:  brtrue IL_000f
+	IL_0909:  ldloc.1 
+	IL_090a:  isinst [mscorlib]System.Int32
+	IL_090f:  brfalse IL_0940
 
-	  IL_013c:  leave IL_0158
+	IL_0914:  ldloc.3 
+	IL_0915:  isinst [mscorlib]System.Double
+	IL_091a:  brfalse IL_0940
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0141:  ldloc.s 5
-	  IL_0143:  isinst [mscorlib]System.IDisposable
-	  IL_0148:  dup 
-	  IL_0149:  stloc.s 9
-	  IL_014b:  brfalse IL_0157
+	IL_091f:  nop 
+	IL_0920:  ldloc.1 
+	IL_0921:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_0926:  box [mscorlib]System.Double
+	IL_092b:  ldloc.3 
+	IL_092c:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0931:  ldc.i4.0 
+	IL_0932:  clt 
+	IL_0934:  box [mscorlib]System.Boolean
+	IL_0939:  stloc.s 5
+	IL_093b:  br IL_1536
 
-	  IL_0150:  ldloc.s 9
-	  IL_0152:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0157:  endfinally 
-	} // end handler 0
-	IL_0158:  ret 
-    } // end of method DirectoryScanner::ConvertPatterns
+	IL_0940:  ldloc.1 
+	IL_0941:  isinst [mscorlib]System.Int64
+	IL_0946:  brfalse IL_0972
 
-    // method line 2002
-    .method private hidebysig 
-           instance default void ParseSearchDirectoryAndPattern (bool isInclude, string originalNAntPattern, [out] string& searchDirectory, [out] bool& recursive, [out] bool& isRegex, [out] string& regexPattern)  cil managed 
-    {
-        // Method begins at RVA 0x22214
-	// Code size 492 (0x1ec)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		int32	V_1,
-		int32	V_2,
-		char[]	V_3,
-		int32	V_4,
-		int32	V_5,
-		char	V_6,
-		bool	V_7,
-		string	V_8)
-	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  stloc.0 
-	IL_0003:  ldloc.0 
-	IL_0004:  ldc.i4.s 0x5c
-	IL_0006:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_000b:  callvirt instance string string::Replace(char, char)
-	IL_0010:  stloc.0 
-	IL_0011:  ldloc.0 
-	IL_0012:  ldc.i4.s 0x2f
-	IL_0014:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_0019:  callvirt instance string string::Replace(char, char)
-	IL_001e:  stloc.0 
-	IL_001f:  ldloc.0 
-	IL_0020:  ldstr "**"
-	IL_0025:  callvirt instance int32 string::IndexOf(string)
-	IL_002a:  stloc.1 
-	IL_002b:  ldloc.0 
-	IL_002c:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_0031:  callvirt instance int32 string::LastIndexOf(char)
-	IL_0036:  stloc.2 
-	IL_0037:  ldc.i4.2 
-	IL_0038:  newarr [mscorlib]System.Char
-	IL_003d:  dup 
-	IL_003e:  ldc.i4.0 
-	IL_003f:  ldc.i4.s 0x3f
-	IL_0041:  stelem.i2 
-	IL_0042:  dup 
-	IL_0043:  ldc.i4.1 
-	IL_0044:  ldc.i4.s 0x2a
-	IL_0046:  stelem.i2 
-	IL_0047:  stloc.3 
-	IL_0048:  ldloc.0 
-	IL_0049:  ldloc.3 
-	IL_004a:  callvirt instance int32 string::IndexOfAny(char[])
-	IL_004f:  stloc.s 4
-	IL_0051:  ldloc.s 4
-	IL_0053:  ldc.i4.m1 
-	IL_0054:  beq IL_0065
+	IL_094b:  ldloc.3 
+	IL_094c:  isinst [mscorlib]System.Int64
+	IL_0951:  brfalse IL_0972
 
-	IL_0059:  nop 
-	IL_005a:  ldloc.0 
-	IL_005b:  ldc.i4.0 
-	IL_005c:  ldloc.s 4
-	IL_005e:  callvirt instance string string::Substring(int32, int32)
-	IL_0063:  stloc.0 
-	IL_0064:  nop 
-	IL_0065:  ldloc.0 
-	IL_0066:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_006b:  callvirt instance int32 string::LastIndexOf(char)
-	IL_0070:  stloc.s 5
-	IL_0072:  ldarg.s 4
-	IL_0074:  ldloc.s 4
-	IL_0076:  ldc.i4.m1 
-	IL_0077:  beq IL_0084
+	IL_0956:  nop 
+	IL_0957:  ldloc.1 
+	IL_0958:  castclass [mscorlib]System.IComparable
+	IL_095d:  ldloc.3 
+	IL_095e:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0963:  ldc.i4.0 
+	IL_0964:  clt 
+	IL_0966:  box [mscorlib]System.Boolean
+	IL_096b:  stloc.s 5
+	IL_096d:  br IL_1536
 
-	IL_007c:  ldloc.s 4
-	IL_007e:  ldloc.2 
-	IL_007f:  blt IL_008d
+	IL_0972:  ldloc.1 
+	IL_0973:  isinst [mscorlib]System.Int64
+	IL_0978:  brfalse IL_09ae
 
-	IL_0084:  ldloc.1 
-	IL_0085:  ldc.i4.m1 
-	IL_0086:  ceq 
-	IL_0088:  ldc.i4.0 
-	IL_0089:  ceq 
-	IL_008b:  br.s IL_008e
+	IL_097d:  ldloc.3 
+	IL_097e:  isinst [mscorlib]System.Int32
+	IL_0983:  brfalse IL_09ae
 
-	IL_008d:  ldc.i4.1 
-	IL_008e:  stind.i1 
-	IL_008f:  ldloc.s 5
-	IL_0091:  ldc.i4.m1 
-	IL_0092:  beq IL_00d8
+	IL_0988:  nop 
+	IL_0989:  ldloc.1 
+	IL_098a:  castclass [mscorlib]System.IComparable
+	IL_098f:  ldloc.3 
+	IL_0990:  call int64 class [mscorlib]System.Convert::ToInt64(object)
+	IL_0995:  box [mscorlib]System.Int64
+	IL_099a:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_099f:  ldc.i4.0 
+	IL_09a0:  clt 
+	IL_09a2:  box [mscorlib]System.Boolean
+	IL_09a7:  stloc.s 5
+	IL_09a9:  br IL_1536
 
-	IL_0097:  nop 
-	IL_0098:  ldarg.2 
-	IL_0099:  ldc.i4.0 
-	IL_009a:  ldloc.s 5
-	IL_009c:  callvirt instance string string::Substring(int32, int32)
-	IL_00a1:  stloc.0 
-	IL_00a2:  ldloc.0 
-	IL_00a3:  callvirt instance int32 string::get_Length()
-	IL_00a8:  ldc.i4.2 
-	IL_00a9:  bne.un IL_00d2
+	IL_09ae:  ldloc.1 
+	IL_09af:  isinst [mscorlib]System.Int64
+	IL_09b4:  brfalse IL_09e5
 
-	IL_00ae:  ldloc.0 
-	IL_00af:  ldc.i4.1 
-	IL_00b0:  callvirt instance char string::get_Chars(int32)
-	IL_00b5:  ldsfld char [mscorlib]System.IO.Path::VolumeSeparatorChar
-	IL_00ba:  bne.un IL_00d2
+	IL_09b9:  ldloc.3 
+	IL_09ba:  isinst [mscorlib]System.Double
+	IL_09bf:  brfalse IL_09e5
 
-	IL_00bf:  nop 
-	IL_00c0:  ldloc.0 
-	IL_00c1:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_00c6:  box [mscorlib]System.Char
-	IL_00cb:  call string string::Concat(object, object)
-	IL_00d0:  stloc.0 
-	IL_00d1:  nop 
-	IL_00d2:  nop 
-	IL_00d3:  br IL_00e0
+	IL_09c4:  nop 
+	IL_09c5:  ldloc.1 
+	IL_09c6:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_09cb:  box [mscorlib]System.Double
+	IL_09d0:  ldloc.3 
+	IL_09d1:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_09d6:  ldc.i4.0 
+	IL_09d7:  clt 
+	IL_09d9:  box [mscorlib]System.Boolean
+	IL_09de:  stloc.s 5
+	IL_09e0:  br IL_1536
 
-	IL_00d8:  nop 
-	IL_00d9:  ldsfld string [mscorlib]System.String::Empty
-	IL_00de:  stloc.0 
-	IL_00df:  nop 
-	IL_00e0:  ldloc.0 
-	IL_00e1:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	IL_00e6:  brfalse IL_00ff
+	IL_09e5:  ldloc.1 
+	IL_09e6:  isinst [mscorlib]System.Double
+	IL_09eb:  brfalse IL_0a17
 
-	IL_00eb:  nop 
-	IL_00ec:  ldarg.3 
-	IL_00ed:  ldloc.0 
-	IL_00ee:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_00f3:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00f8:  stind.ref 
-	IL_00f9:  nop 
-	IL_00fa:  br IL_011e
+	IL_09f0:  ldloc.3 
+	IL_09f1:  isinst [mscorlib]System.Double
+	IL_09f6:  brfalse IL_0a17
 
-	IL_00ff:  nop 
-	IL_0100:  ldarg.3 
-	IL_0101:  ldarg.0 
-	IL_0102:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.DirectoryScanner::get_BaseDirectory()
-	IL_0107:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_010c:  ldloc.0 
-	IL_010d:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0112:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0117:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_011c:  stind.ref 
-	IL_011d:  nop 
-	IL_011e:  ldarg.3 
-	IL_011f:  ldind.ref 
-	IL_0120:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_0125:  stloc.s 6
-	IL_0127:  ldloca.s 6
-	IL_0129:  constrained. [mscorlib]System.Char
-	IL_012f:  callvirt instance string object::ToString()
-	IL_0134:  callvirt instance bool string::EndsWith(string)
-	IL_0139:  brfalse IL_0172
+	IL_09fb:  nop 
+	IL_09fc:  ldloc.1 
+	IL_09fd:  castclass [mscorlib]System.IComparable
+	IL_0a02:  ldloc.3 
+	IL_0a03:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0a08:  ldc.i4.0 
+	IL_0a09:  clt 
+	IL_0a0b:  box [mscorlib]System.Boolean
+	IL_0a10:  stloc.s 5
+	IL_0a12:  br IL_1536
 
-	IL_013e:  ldarg.3 
-	IL_013f:  ldind.ref 
-	IL_0140:  callvirt instance int32 string::get_Length()
-	IL_0145:  ldc.i4.3 
-	IL_0146:  bne.un IL_015d
+	IL_0a17:  ldloc.1 
+	IL_0a18:  isinst [mscorlib]System.Double
+	IL_0a1d:  brfalse IL_0a53
 
-	IL_014b:  ldarg.3 
-	IL_014c:  ldind.ref 
-	IL_014d:  ldc.i4.1 
-	IL_014e:  callvirt instance char string::get_Chars(int32)
-	IL_0153:  ldsfld char [mscorlib]System.IO.Path::VolumeSeparatorChar
-	IL_0158:  beq IL_0172
+	IL_0a22:  ldloc.3 
+	IL_0a23:  isinst [mscorlib]System.Int32
+	IL_0a28:  brfalse IL_0a53
 
-	IL_015d:  nop 
-	IL_015e:  ldarg.3 
-	IL_015f:  ldarg.3 
-	IL_0160:  ldind.ref 
-	IL_0161:  ldc.i4.0 
-	IL_0162:  ldarg.3 
-	IL_0163:  ldind.ref 
-	IL_0164:  callvirt instance int32 string::get_Length()
-	IL_0169:  ldc.i4.1 
-	IL_016a:  sub 
-	IL_016b:  callvirt instance string string::Substring(int32, int32)
-	IL_0170:  stind.ref 
-	IL_0171:  nop 
-	IL_0172:  ldloc.2 
-	IL_0173:  ldc.i4.m1 
-	IL_0174:  beq IL_0186
+	IL_0a2d:  nop 
+	IL_0a2e:  ldloc.1 
+	IL_0a2f:  castclass [mscorlib]System.IComparable
+	IL_0a34:  ldloc.3 
+	IL_0a35:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_0a3a:  box [mscorlib]System.Double
+	IL_0a3f:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0a44:  ldc.i4.0 
+	IL_0a45:  clt 
+	IL_0a47:  box [mscorlib]System.Boolean
+	IL_0a4c:  stloc.s 5
+	IL_0a4e:  br IL_1536
 
-	IL_0179:  ldloc.2 
-	IL_017a:  ldarg.2 
-	IL_017b:  callvirt instance int32 string::get_Length()
-	IL_0180:  ldc.i4.1 
-	IL_0181:  sub 
-	IL_0182:  ceq 
-	IL_0184:  br.s IL_0187
+	IL_0a53:  ldloc.1 
+	IL_0a54:  isinst [mscorlib]System.Double
+	IL_0a59:  brfalse IL_0a8f
 
-	IL_0186:  ldc.i4.0 
-	IL_0187:  stloc.s 7
-	IL_0189:  ldloc.s 4
-	IL_018b:  ldc.i4.m1 
-	IL_018c:  bne.un IL_01b6
+	IL_0a5e:  ldloc.3 
+	IL_0a5f:  isinst [mscorlib]System.Int64
+	IL_0a64:  brfalse IL_0a8f
 
-	IL_0191:  ldloc.s 7
-	IL_0193:  brtrue IL_01b6
+	IL_0a69:  nop 
+	IL_0a6a:  ldloc.1 
+	IL_0a6b:  castclass [mscorlib]System.IComparable
+	IL_0a70:  ldloc.3 
+	IL_0a71:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_0a76:  box [mscorlib]System.Double
+	IL_0a7b:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0a80:  ldc.i4.0 
+	IL_0a81:  clt 
+	IL_0a83:  box [mscorlib]System.Boolean
+	IL_0a88:  stloc.s 5
+	IL_0a8a:  br IL_1536
 
-	IL_0198:  nop 
-	IL_0199:  ldarg.s 6
-	IL_019b:  ldarg.0 
-	IL_019c:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.DirectoryScanner::get_BaseDirectory()
-	IL_01a1:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_01a6:  ldarg.2 
-	IL_01a7:  call string class NAnt.Core.DirectoryScanner::CleanPath(string, string)
-	IL_01ac:  stind.ref 
-	IL_01ad:  ldarg.s 5
-	IL_01af:  ldc.i4.0 
-	IL_01b0:  stind.i1 
-	IL_01b1:  br IL_01eb
+	IL_0a8f:  ldloc.1 
+	IL_0a90:  isinst [mscorlib]System.DateTime
+	IL_0a95:  brfalse IL_0ac1
 
-	IL_01b6:  ldarg.2 
-	IL_01b7:  ldloc.s 5
-	IL_01b9:  ldc.i4.1 
-	IL_01ba:  add 
-	IL_01bb:  callvirt instance string string::Substring(int32)
-	IL_01c0:  stloc.s 8
-	IL_01c2:  ldloc.s 7
-	IL_01c4:  brfalse IL_01dd
+	IL_0a9a:  ldloc.3 
+	IL_0a9b:  isinst [mscorlib]System.DateTime
+	IL_0aa0:  brfalse IL_0ac1
 
-	IL_01c9:  nop 
-	IL_01ca:  ldloc.s 8
-	IL_01cc:  ldstr "**"
-	IL_01d1:  call string string::Concat(string, string)
-	IL_01d6:  stloc.s 8
-	IL_01d8:  ldarg.s 4
-	IL_01da:  ldc.i4.1 
-	IL_01db:  stind.i1 
-	IL_01dc:  nop 
-	IL_01dd:  ldarg.s 6
-	IL_01df:  ldloc.s 8
-	IL_01e1:  call string class NAnt.Core.DirectoryScanner::ToRegexPattern(string)
-	IL_01e6:  stind.ref 
-	IL_01e7:  ldarg.s 5
-	IL_01e9:  ldc.i4.1 
-	IL_01ea:  stind.i1 
-	IL_01eb:  ret 
-    } // end of method DirectoryScanner::ParseSearchDirectoryAndPattern
+	IL_0aa5:  nop 
+	IL_0aa6:  ldloc.1 
+	IL_0aa7:  castclass [mscorlib]System.IComparable
+	IL_0aac:  ldloc.3 
+	IL_0aad:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0ab2:  ldc.i4.0 
+	IL_0ab3:  clt 
+	IL_0ab5:  box [mscorlib]System.Boolean
+	IL_0aba:  stloc.s 5
+	IL_0abc:  br IL_1536
 
-    // method line 2003
-    .method private hidebysig 
-           instance default void ScanDirectory (string path, bool recursive)  cil managed 
-    {
-        // Method begins at RVA 0x2240c
-	// Code size 795 (0x31b)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0,
-		valuetype [mscorlib]System.Globalization.CompareOptions	V_1,
-		class [mscorlib]System.Globalization.CompareInfo	V_2,
-		class [mscorlib]System.Collections.ArrayList	V_3,
-		class [mscorlib]System.Collections.ArrayList	V_4,
-		class NAnt.Core.DirectoryScanner/RegexEntry	V_5,
-		class [mscorlib]System.Collections.IEnumerator	V_6,
-		string	V_7,
-		char	V_8,
-		class [mscorlib]System.IDisposable	V_9,
-		class NAnt.Core.DirectoryScanner/RegexEntry	V_10,
-		class [mscorlib]System.Collections.IEnumerator	V_11,
-		string	V_12,
-		char	V_13,
-		class [mscorlib]System.IDisposable	V_14,
-		class [mscorlib]System.IO.DirectoryInfo	V_15,
-		class [mscorlib]System.IO.DirectoryInfo[]	V_16,
-		int32	V_17,
-		class [mscorlib]System.IO.FileInfo	V_18,
-		class [mscorlib]System.IO.FileInfo[]	V_19,
-		int32	V_20,
-		string	V_21)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class NAnt.Core.DirScannerStringCollection::Contains(string)
-	IL_000d:  brfalse IL_0018
+	IL_0ac1:  ldloc.1 
+	IL_0ac2:  isinst [mscorlib]System.TimeSpan
+	IL_0ac7:  brfalse IL_0af3
 
-	IL_0012:  nop 
-	IL_0013:  br IL_031a
+	IL_0acc:  ldloc.3 
+	IL_0acd:  isinst [mscorlib]System.TimeSpan
+	IL_0ad2:  brfalse IL_0af3
 
-	IL_0018:  ldarg.0 
-	IL_0019:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
-	IL_001e:  ldarg.1 
-	IL_001f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0024:  pop 
-	IL_0025:  ldarg.1 
-	IL_0026:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_002b:  brtrue IL_0036
+	IL_0ad7:  nop 
+	IL_0ad8:  ldloc.1 
+	IL_0ad9:  castclass [mscorlib]System.IComparable
+	IL_0ade:  ldloc.3 
+	IL_0adf:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0ae4:  ldc.i4.0 
+	IL_0ae5:  clt 
+	IL_0ae7:  box [mscorlib]System.Boolean
+	IL_0aec:  stloc.s 5
+	IL_0aee:  br IL_1536
 
-	IL_0030:  nop 
-	IL_0031:  br IL_031a
+	IL_0af3:  ldloc.1 
+	IL_0af4:  isinst [mscorlib]System.Version
+	IL_0af9:  brfalse IL_0b25
 
-	IL_0036:  ldarg.1 
-	IL_0037:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_003c:  stloc.0 
-	IL_003d:  ldc.i4.0 
-	IL_003e:  stloc.1 
-	IL_003f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0044:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
-	IL_0049:  stloc.2 
-	IL_004a:  ldarg.0 
-	IL_004b:  call instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
-	IL_0050:  brtrue IL_0059
+	IL_0afe:  ldloc.3 
+	IL_0aff:  isinst [mscorlib]System.Version
+	IL_0b04:  brfalse IL_0b25
 
-	IL_0055:  ldloc.1 
-	IL_0056:  ldc.i4.1 
-	IL_0057:  or 
-	IL_0058:  stloc.1 
-	IL_0059:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_005e:  stloc.3 
-	IL_005f:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0064:  stloc.s 4
-	IL_0066:  nop 
-	IL_0067:  ldarg.0 
-	IL_0068:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_includePatterns
-	IL_006d:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0072:  stloc.s 6
-	.try { // 0
-	  IL_0074:  br IL_0114
+	IL_0b09:  nop 
+	IL_0b0a:  ldloc.1 
+	IL_0b0b:  castclass [mscorlib]System.IComparable
+	IL_0b10:  ldloc.3 
+	IL_0b11:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0b16:  ldc.i4.0 
+	IL_0b17:  clt 
+	IL_0b19:  box [mscorlib]System.Boolean
+	IL_0b1e:  stloc.s 5
+	IL_0b20:  br IL_1536
 
-	  IL_0079:  ldloc.s 6
-	  IL_007b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0080:  castclass NAnt.Core.DirectoryScanner/RegexEntry
-	  IL_0085:  stloc.s 5
-	  IL_0087:  nop 
-	  IL_0088:  ldloc.s 5
-	  IL_008a:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
-	  IL_008f:  stloc.s 7
-	  IL_0091:  ldloc.2 
-	  IL_0092:  ldarg.1 
-	  IL_0093:  ldloc.s 7
-	  IL_0095:  ldloc.1 
-	  IL_0096:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::Compare(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
-	  IL_009b:  brtrue IL_00b0
+	IL_0b25:  ldarg.0 
+	IL_0b26:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0b2b:  ldstr "NA1051"
+	IL_0b30:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0b35:  ldarg.0 
+	IL_0b36:  ldloc.1 
+	IL_0b37:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0b3c:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_0b41:  ldarg.0 
+	IL_0b42:  ldloc.3 
+	IL_0b43:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0b48:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_0b4d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0b52:  ldloc.0 
+	IL_0b53:  ldloc.s 4
+	IL_0b55:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0b5a:  throw 
+	IL_0b5b:  ldloc.1 
+	IL_0b5c:  isinst [mscorlib]System.String
+	IL_0b61:  brfalse IL_0b98
 
-	  IL_00a0:  nop 
-	  IL_00a1:  ldloc.3 
-	  IL_00a2:  ldloc.s 5
-	  IL_00a4:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_00a9:  pop 
-	  IL_00aa:  nop 
-	  IL_00ab:  br IL_0113
+	IL_0b66:  ldloc.3 
+	IL_0b67:  isinst [mscorlib]System.String
+	IL_0b6c:  brfalse IL_0b98
 
-	  IL_00b0:  nop 
-	  IL_00b1:  ldloc.s 5
-	  IL_00b3:  ldfld bool NAnt.Core.DirectoryScanner/RegexEntry::IsRecursive
-	  IL_00b8:  brtrue IL_00c3
+	IL_0b71:  nop 
+	IL_0b72:  ldloc.1 
+	IL_0b73:  castclass [mscorlib]System.String
+	IL_0b78:  ldloc.3 
+	IL_0b79:  castclass [mscorlib]System.String
+	IL_0b7e:  ldc.i4.0 
+	IL_0b7f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0b84:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_0b89:  ldc.i4.0 
+	IL_0b8a:  cgt 
+	IL_0b8c:  box [mscorlib]System.Boolean
+	IL_0b91:  stloc.s 5
+	IL_0b93:  br IL_1536
 
-	  IL_00bd:  nop 
-	  IL_00be:  leave IL_0114
+	IL_0b98:  ldloc.1 
+	IL_0b99:  isinst [mscorlib]System.Boolean
+	IL_0b9e:  brfalse IL_0bca
 
-	  IL_00c3:  ldloc.s 7
-	  IL_00c5:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	  IL_00ca:  stloc.s 8
-	  IL_00cc:  ldloca.s 8
-	  IL_00ce:  constrained. [mscorlib]System.Char
-	  IL_00d4:  callvirt instance string object::ToString()
-	  IL_00d9:  callvirt instance bool string::EndsWith(string)
-	  IL_00de:  brtrue IL_00f8
+	IL_0ba3:  ldloc.3 
+	IL_0ba4:  isinst [mscorlib]System.Boolean
+	IL_0ba9:  brfalse IL_0bca
 
-	  IL_00e3:  nop 
-	  IL_00e4:  ldloc.s 7
-	  IL_00e6:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	  IL_00eb:  box [mscorlib]System.Char
-	  IL_00f0:  call string string::Concat(object, object)
-	  IL_00f5:  stloc.s 7
-	  IL_00f7:  nop 
-	  IL_00f8:  ldloc.2 
-	  IL_00f9:  ldarg.1 
-	  IL_00fa:  ldloc.s 7
-	  IL_00fc:  ldloc.1 
-	  IL_00fd:  callvirt instance bool class [mscorlib]System.Globalization.CompareInfo::IsPrefix(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
-	  IL_0102:  brfalse IL_0112
+	IL_0bae:  nop 
+	IL_0baf:  ldloc.1 
+	IL_0bb0:  castclass [mscorlib]System.IComparable
+	IL_0bb5:  ldloc.3 
+	IL_0bb6:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0bbb:  ldc.i4.0 
+	IL_0bbc:  cgt 
+	IL_0bbe:  box [mscorlib]System.Boolean
+	IL_0bc3:  stloc.s 5
+	IL_0bc5:  br IL_1536
 
-	  IL_0107:  nop 
-	  IL_0108:  ldloc.3 
-	  IL_0109:  ldloc.s 5
-	  IL_010b:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0110:  pop 
-	  IL_0111:  nop 
-	  IL_0112:  nop 
-	  IL_0113:  nop 
-	  IL_0114:  ldloc.s 6
-	  IL_0116:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_011b:  brtrue IL_0079
+	IL_0bca:  ldloc.1 
+	IL_0bcb:  isinst [mscorlib]System.Int32
+	IL_0bd0:  brfalse IL_0bfc
 
-	  IL_0120:  leave IL_013c
+	IL_0bd5:  ldloc.3 
+	IL_0bd6:  isinst [mscorlib]System.Int32
+	IL_0bdb:  brfalse IL_0bfc
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0125:  ldloc.s 6
-	  IL_0127:  isinst [mscorlib]System.IDisposable
-	  IL_012c:  dup 
-	  IL_012d:  stloc.s 9
-	  IL_012f:  brfalse IL_013b
+	IL_0be0:  nop 
+	IL_0be1:  ldloc.1 
+	IL_0be2:  castclass [mscorlib]System.IComparable
+	IL_0be7:  ldloc.3 
+	IL_0be8:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0bed:  ldc.i4.0 
+	IL_0bee:  cgt 
+	IL_0bf0:  box [mscorlib]System.Boolean
+	IL_0bf5:  stloc.s 5
+	IL_0bf7:  br IL_1536
 
-	  IL_0134:  ldloc.s 9
-	  IL_0136:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_013b:  endfinally 
-	} // end handler 0
-	IL_013c:  nop 
-	IL_013d:  ldarg.0 
-	IL_013e:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_excludePatterns
-	IL_0143:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0148:  stloc.s 11
-	.try { // 1
-	  IL_014a:  br IL_01fd
+	IL_0bfc:  ldloc.1 
+	IL_0bfd:  isinst [mscorlib]System.Int32
+	IL_0c02:  brfalse IL_0c33
 
-	  IL_014f:  ldloc.s 11
-	  IL_0151:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0156:  castclass NAnt.Core.DirectoryScanner/RegexEntry
-	  IL_015b:  stloc.s 10
-	  IL_015d:  nop 
-	  IL_015e:  ldloc.s 10
-	  IL_0160:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
-	  IL_0165:  stloc.s 12
-	  IL_0167:  ldloc.s 10
-	  IL_0169:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
-	  IL_016e:  callvirt instance int32 string::get_Length()
-	  IL_0173:  brfalse IL_0187
+	IL_0c07:  ldloc.3 
+	IL_0c08:  isinst [mscorlib]System.Int64
+	IL_0c0d:  brfalse IL_0c33
 
-	  IL_0178:  ldloc.2 
-	  IL_0179:  ldarg.1 
-	  IL_017a:  ldloc.s 12
-	  IL_017c:  ldloc.1 
-	  IL_017d:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::Compare(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
-	  IL_0182:  brtrue IL_0198
+	IL_0c12:  nop 
+	IL_0c13:  ldloc.1 
+	IL_0c14:  call int64 class [mscorlib]System.Convert::ToInt64(object)
+	IL_0c19:  box [mscorlib]System.Int64
+	IL_0c1e:  ldloc.3 
+	IL_0c1f:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0c24:  ldc.i4.0 
+	IL_0c25:  cgt 
+	IL_0c27:  box [mscorlib]System.Boolean
+	IL_0c2c:  stloc.s 5
+	IL_0c2e:  br IL_1536
 
-	  IL_0187:  nop 
-	  IL_0188:  ldloc.s 4
-	  IL_018a:  ldloc.s 10
-	  IL_018c:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0191:  pop 
-	  IL_0192:  nop 
-	  IL_0193:  br IL_01fc
+	IL_0c33:  ldloc.1 
+	IL_0c34:  isinst [mscorlib]System.Int32
+	IL_0c39:  brfalse IL_0c6a
 
-	  IL_0198:  nop 
-	  IL_0199:  ldloc.s 10
-	  IL_019b:  ldfld bool NAnt.Core.DirectoryScanner/RegexEntry::IsRecursive
-	  IL_01a0:  brtrue IL_01ab
+	IL_0c3e:  ldloc.3 
+	IL_0c3f:  isinst [mscorlib]System.Double
+	IL_0c44:  brfalse IL_0c6a
 
-	  IL_01a5:  nop 
-	  IL_01a6:  leave IL_01fd
+	IL_0c49:  nop 
+	IL_0c4a:  ldloc.1 
+	IL_0c4b:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_0c50:  box [mscorlib]System.Double
+	IL_0c55:  ldloc.3 
+	IL_0c56:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0c5b:  ldc.i4.0 
+	IL_0c5c:  cgt 
+	IL_0c5e:  box [mscorlib]System.Boolean
+	IL_0c63:  stloc.s 5
+	IL_0c65:  br IL_1536
 
-	  IL_01ab:  ldloc.s 12
-	  IL_01ad:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	  IL_01b2:  stloc.s 13
-	  IL_01b4:  ldloca.s 13
-	  IL_01b6:  constrained. [mscorlib]System.Char
-	  IL_01bc:  callvirt instance string object::ToString()
-	  IL_01c1:  callvirt instance bool string::EndsWith(string)
-	  IL_01c6:  brtrue IL_01e0
+	IL_0c6a:  ldloc.1 
+	IL_0c6b:  isinst [mscorlib]System.Int64
+	IL_0c70:  brfalse IL_0c9c
 
-	  IL_01cb:  nop 
-	  IL_01cc:  ldloc.s 12
-	  IL_01ce:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	  IL_01d3:  box [mscorlib]System.Char
-	  IL_01d8:  call string string::Concat(object, object)
-	  IL_01dd:  stloc.s 12
-	  IL_01df:  nop 
-	  IL_01e0:  ldloc.2 
-	  IL_01e1:  ldarg.1 
-	  IL_01e2:  ldloc.s 12
-	  IL_01e4:  ldloc.1 
-	  IL_01e5:  callvirt instance bool class [mscorlib]System.Globalization.CompareInfo::IsPrefix(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
-	  IL_01ea:  brfalse IL_01fb
+	IL_0c75:  ldloc.3 
+	IL_0c76:  isinst [mscorlib]System.Int64
+	IL_0c7b:  brfalse IL_0c9c
 
-	  IL_01ef:  nop 
-	  IL_01f0:  ldloc.s 4
-	  IL_01f2:  ldloc.s 10
-	  IL_01f4:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_01f9:  pop 
-	  IL_01fa:  nop 
-	  IL_01fb:  nop 
-	  IL_01fc:  nop 
-	  IL_01fd:  ldloc.s 11
-	  IL_01ff:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0204:  brtrue IL_014f
+	IL_0c80:  nop 
+	IL_0c81:  ldloc.1 
+	IL_0c82:  castclass [mscorlib]System.IComparable
+	IL_0c87:  ldloc.3 
+	IL_0c88:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0c8d:  ldc.i4.0 
+	IL_0c8e:  cgt 
+	IL_0c90:  box [mscorlib]System.Boolean
+	IL_0c95:  stloc.s 5
+	IL_0c97:  br IL_1536
 
-	  IL_0209:  leave IL_0225
+	IL_0c9c:  ldloc.1 
+	IL_0c9d:  isinst [mscorlib]System.Int64
+	IL_0ca2:  brfalse IL_0cd8
 
-	} // end .try 1
-	finally  { // 1
-	  IL_020e:  ldloc.s 11
-	  IL_0210:  isinst [mscorlib]System.IDisposable
-	  IL_0215:  dup 
-	  IL_0216:  stloc.s 14
-	  IL_0218:  brfalse IL_0224
+	IL_0ca7:  ldloc.3 
+	IL_0ca8:  isinst [mscorlib]System.Int32
+	IL_0cad:  brfalse IL_0cd8
 
-	  IL_021d:  ldloc.s 14
-	  IL_021f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0224:  endfinally 
-	} // end handler 1
-	IL_0225:  nop 
-	IL_0226:  ldloc.0 
-	IL_0227:  callvirt instance class [mscorlib]System.IO.DirectoryInfo[] class [mscorlib]System.IO.DirectoryInfo::GetDirectories()
-	IL_022c:  stloc.s 16
-	IL_022e:  ldc.i4.0 
-	IL_022f:  stloc.s 17
-	IL_0231:  br IL_028c
+	IL_0cb2:  nop 
+	IL_0cb3:  ldloc.1 
+	IL_0cb4:  castclass [mscorlib]System.IComparable
+	IL_0cb9:  ldloc.3 
+	IL_0cba:  call int64 class [mscorlib]System.Convert::ToInt64(object)
+	IL_0cbf:  box [mscorlib]System.Int64
+	IL_0cc4:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0cc9:  ldc.i4.0 
+	IL_0cca:  cgt 
+	IL_0ccc:  box [mscorlib]System.Boolean
+	IL_0cd1:  stloc.s 5
+	IL_0cd3:  br IL_1536
 
-	IL_0236:  ldloc.s 16
-	IL_0238:  ldloc.s 17
-	IL_023a:  ldelem.ref 
-	IL_023b:  stloc.s 15
-	IL_023d:  nop 
-	IL_023e:  ldarg.2 
-	IL_023f:  brfalse IL_0259
+	IL_0cd8:  ldloc.1 
+	IL_0cd9:  isinst [mscorlib]System.Int64
+	IL_0cde:  brfalse IL_0d0f
 
-	IL_0244:  nop 
-	IL_0245:  ldarg.0 
-	IL_0246:  ldloc.s 15
-	IL_0248:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_024d:  ldc.i4.1 
-	IL_024e:  call instance void class NAnt.Core.DirectoryScanner::ScanDirectory(string, bool)
-	IL_0253:  nop 
-	IL_0254:  br IL_0285
+	IL_0ce3:  ldloc.3 
+	IL_0ce4:  isinst [mscorlib]System.Double
+	IL_0ce9:  brfalse IL_0d0f
 
-	IL_0259:  nop 
-	IL_025a:  ldarg.0 
-	IL_025b:  ldloc.s 15
-	IL_025d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0262:  ldloc.3 
-	IL_0263:  ldloc.s 4
-	IL_0265:  call instance bool class NAnt.Core.DirectoryScanner::IsPathIncluded(string, class [mscorlib]System.Collections.ArrayList, class [mscorlib]System.Collections.ArrayList)
-	IL_026a:  brfalse IL_0284
+	IL_0cee:  nop 
+	IL_0cef:  ldloc.1 
+	IL_0cf0:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_0cf5:  box [mscorlib]System.Double
+	IL_0cfa:  ldloc.3 
+	IL_0cfb:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0d00:  ldc.i4.0 
+	IL_0d01:  cgt 
+	IL_0d03:  box [mscorlib]System.Boolean
+	IL_0d08:  stloc.s 5
+	IL_0d0a:  br IL_1536
 
-	IL_026f:  nop 
-	IL_0270:  ldarg.0 
-	IL_0271:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
-	IL_0276:  ldloc.s 15
-	IL_0278:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_027d:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0282:  pop 
-	IL_0283:  nop 
-	IL_0284:  nop 
-	IL_0285:  nop 
-	IL_0286:  ldloc.s 17
-	IL_0288:  ldc.i4.1 
-	IL_0289:  add 
-	IL_028a:  stloc.s 17
-	IL_028c:  ldloc.s 17
-	IL_028e:  ldloc.s 16
-	IL_0290:  ldlen 
-	IL_0291:  conv.i4 
-	IL_0292:  blt IL_0236
+	IL_0d0f:  ldloc.1 
+	IL_0d10:  isinst [mscorlib]System.Double
+	IL_0d15:  brfalse IL_0d41
 
-	IL_0297:  nop 
-	IL_0298:  ldloc.0 
-	IL_0299:  callvirt instance class [mscorlib]System.IO.FileInfo[] class [mscorlib]System.IO.DirectoryInfo::GetFiles()
-	IL_029e:  stloc.s 19
-	IL_02a0:  ldc.i4.0 
-	IL_02a1:  stloc.s 20
-	IL_02a3:  br IL_02f1
+	IL_0d1a:  ldloc.3 
+	IL_0d1b:  isinst [mscorlib]System.Double
+	IL_0d20:  brfalse IL_0d41
 
-	IL_02a8:  ldloc.s 19
-	IL_02aa:  ldloc.s 20
-	IL_02ac:  ldelem.ref 
-	IL_02ad:  stloc.s 18
-	IL_02af:  nop 
-	IL_02b0:  ldarg.1 
-	IL_02b1:  ldloc.s 18
-	IL_02b3:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
-	IL_02b8:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_02bd:  stloc.s 21
-	IL_02bf:  ldarg.0 
-	IL_02c0:  ldloc.s 21
-	IL_02c2:  ldloc.3 
-	IL_02c3:  ldloc.s 4
-	IL_02c5:  call instance bool class NAnt.Core.DirectoryScanner::IsPathIncluded(string, class [mscorlib]System.Collections.ArrayList, class [mscorlib]System.Collections.ArrayList)
-	IL_02ca:  brfalse IL_02ea
+	IL_0d25:  nop 
+	IL_0d26:  ldloc.1 
+	IL_0d27:  castclass [mscorlib]System.IComparable
+	IL_0d2c:  ldloc.3 
+	IL_0d2d:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0d32:  ldc.i4.0 
+	IL_0d33:  cgt 
+	IL_0d35:  box [mscorlib]System.Boolean
+	IL_0d3a:  stloc.s 5
+	IL_0d3c:  br IL_1536
 
-	IL_02cf:  nop 
-	IL_02d0:  ldarg.0 
-	IL_02d1:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
-	IL_02d6:  ldarg.1 
-	IL_02d7:  ldloc.s 18
-	IL_02d9:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
-	IL_02de:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_02e3:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_02e8:  pop 
-	IL_02e9:  nop 
-	IL_02ea:  nop 
-	IL_02eb:  ldloc.s 20
-	IL_02ed:  ldc.i4.1 
-	IL_02ee:  add 
-	IL_02ef:  stloc.s 20
-	IL_02f1:  ldloc.s 20
-	IL_02f3:  ldloc.s 19
-	IL_02f5:  ldlen 
-	IL_02f6:  conv.i4 
-	IL_02f7:  blt IL_02a8
+	IL_0d41:  ldloc.1 
+	IL_0d42:  isinst [mscorlib]System.Double
+	IL_0d47:  brfalse IL_0d7d
 
-	IL_02fc:  ldarg.0 
-	IL_02fd:  ldarg.1 
-	IL_02fe:  ldloc.3 
-	IL_02ff:  ldloc.s 4
-	IL_0301:  call instance bool class NAnt.Core.DirectoryScanner::IsPathIncluded(string, class [mscorlib]System.Collections.ArrayList, class [mscorlib]System.Collections.ArrayList)
-	IL_0306:  brfalse IL_031a
+	IL_0d4c:  ldloc.3 
+	IL_0d4d:  isinst [mscorlib]System.Int32
+	IL_0d52:  brfalse IL_0d7d
 
-	IL_030b:  nop 
-	IL_030c:  ldarg.0 
-	IL_030d:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
-	IL_0312:  ldarg.1 
-	IL_0313:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0318:  pop 
-	IL_0319:  nop 
-	IL_031a:  ret 
-    } // end of method DirectoryScanner::ScanDirectory
+	IL_0d57:  nop 
+	IL_0d58:  ldloc.1 
+	IL_0d59:  castclass [mscorlib]System.IComparable
+	IL_0d5e:  ldloc.3 
+	IL_0d5f:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_0d64:  box [mscorlib]System.Double
+	IL_0d69:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0d6e:  ldc.i4.0 
+	IL_0d6f:  cgt 
+	IL_0d71:  box [mscorlib]System.Boolean
+	IL_0d76:  stloc.s 5
+	IL_0d78:  br IL_1536
 
-    // method line 2004
-    .method private hidebysig 
-           instance default bool TestRegex (string path, class NAnt.Core.DirectoryScanner/RegexEntry entry)  cil managed 
-    {
-        // Method begins at RVA 0x22750
-	// Code size 241 (0xf1)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0,
-		class [System]System.Text.RegularExpressions.Regex	V_1,
-		valuetype [System]System.Text.RegularExpressions.RegexOptions	V_2,
-		bool	V_3,
-		bool	V_4,
-		char	V_5)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
-	IL_0007:  brfalse IL_0016
+	IL_0d7d:  ldloc.1 
+	IL_0d7e:  isinst [mscorlib]System.Double
+	IL_0d83:  brfalse IL_0db9
 
-	IL_000c:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DirectoryScanner::cachedCaseSensitiveRegexes
-	IL_0011:  br IL_001b
+	IL_0d88:  ldloc.3 
+	IL_0d89:  isinst [mscorlib]System.Int64
+	IL_0d8e:  brfalse IL_0db9
 
-	IL_0016:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DirectoryScanner::cachedCaseInsensitiveRegexes
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.2 
-	IL_001e:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::Pattern
-	IL_0023:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0028:  castclass [System]System.Text.RegularExpressions.Regex
-	IL_002d:  stloc.1 
-	IL_002e:  ldloc.1 
-	IL_002f:  brtrue IL_0061
+	IL_0d93:  nop 
+	IL_0d94:  ldloc.1 
+	IL_0d95:  castclass [mscorlib]System.IComparable
+	IL_0d9a:  ldloc.3 
+	IL_0d9b:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_0da0:  box [mscorlib]System.Double
+	IL_0da5:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0daa:  ldc.i4.0 
+	IL_0dab:  cgt 
+	IL_0dad:  box [mscorlib]System.Boolean
+	IL_0db2:  stloc.s 5
+	IL_0db4:  br IL_1536
 
-	IL_0034:  nop 
-	IL_0035:  ldc.i4.8 
-	IL_0036:  stloc.2 
-	IL_0037:  ldarg.0 
-	IL_0038:  call instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
-	IL_003d:  brtrue IL_0046
+	IL_0db9:  ldloc.1 
+	IL_0dba:  isinst [mscorlib]System.DateTime
+	IL_0dbf:  brfalse IL_0deb
 
-	IL_0042:  ldloc.2 
-	IL_0043:  ldc.i4.1 
-	IL_0044:  or 
-	IL_0045:  stloc.2 
-	IL_0046:  ldloc.0 
-	IL_0047:  ldarg.2 
-	IL_0048:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::Pattern
-	IL_004d:  ldarg.2 
-	IL_004e:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::Pattern
-	IL_0053:  ldloc.2 
-	IL_0054:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
-	IL_0059:  dup 
-	IL_005a:  stloc.1 
-	IL_005b:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0060:  nop 
-	IL_0061:  ldarg.1 
-	IL_0062:  callvirt instance int32 string::get_Length()
-	IL_0067:  ldarg.2 
-	IL_0068:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
-	IL_006d:  callvirt instance int32 string::get_Length()
-	IL_0072:  bne.un IL_0089
+	IL_0dc4:  ldloc.3 
+	IL_0dc5:  isinst [mscorlib]System.DateTime
+	IL_0dca:  brfalse IL_0deb
 
-	IL_0077:  nop 
-	IL_0078:  ldloc.1 
-	IL_0079:  ldsfld string [mscorlib]System.String::Empty
-	IL_007e:  callvirt instance bool class [System]System.Text.RegularExpressions.Regex::IsMatch(string)
-	IL_0083:  stloc.3 
-	IL_0084:  br IL_00ef
+	IL_0dcf:  nop 
+	IL_0dd0:  ldloc.1 
+	IL_0dd1:  castclass [mscorlib]System.IComparable
+	IL_0dd6:  ldloc.3 
+	IL_0dd7:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0ddc:  ldc.i4.0 
+	IL_0ddd:  cgt 
+	IL_0ddf:  box [mscorlib]System.Boolean
+	IL_0de4:  stloc.s 5
+	IL_0de6:  br IL_1536
 
-	IL_0089:  ldarg.2 
-	IL_008a:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
-	IL_008f:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_0094:  stloc.s 5
-	IL_0096:  ldloca.s 5
-	IL_0098:  constrained. [mscorlib]System.Char
-	IL_009e:  callvirt instance string object::ToString()
-	IL_00a3:  callvirt instance bool string::EndsWith(string)
-	IL_00a8:  stloc.s 4
-	IL_00aa:  ldloc.s 4
-	IL_00ac:  brfalse IL_00cf
+	IL_0deb:  ldloc.1 
+	IL_0dec:  isinst [mscorlib]System.TimeSpan
+	IL_0df1:  brfalse IL_0e1d
 
-	IL_00b1:  nop 
-	IL_00b2:  ldloc.1 
-	IL_00b3:  ldarg.1 
-	IL_00b4:  ldarg.2 
-	IL_00b5:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
-	IL_00ba:  callvirt instance int32 string::get_Length()
-	IL_00bf:  callvirt instance string string::Substring(int32)
-	IL_00c4:  callvirt instance bool class [System]System.Text.RegularExpressions.Regex::IsMatch(string)
-	IL_00c9:  stloc.3 
-	IL_00ca:  br IL_00ef
+	IL_0df6:  ldloc.3 
+	IL_0df7:  isinst [mscorlib]System.TimeSpan
+	IL_0dfc:  brfalse IL_0e1d
 
-	IL_00cf:  nop 
-	IL_00d0:  ldloc.1 
-	IL_00d1:  ldarg.1 
-	IL_00d2:  ldarg.2 
-	IL_00d3:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
-	IL_00d8:  callvirt instance int32 string::get_Length()
-	IL_00dd:  ldc.i4.1 
-	IL_00de:  add 
-	IL_00df:  callvirt instance string string::Substring(int32)
-	IL_00e4:  callvirt instance bool class [System]System.Text.RegularExpressions.Regex::IsMatch(string)
-	IL_00e9:  stloc.3 
-	IL_00ea:  br IL_00ef
+	IL_0e01:  nop 
+	IL_0e02:  ldloc.1 
+	IL_0e03:  castclass [mscorlib]System.IComparable
+	IL_0e08:  ldloc.3 
+	IL_0e09:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0e0e:  ldc.i4.0 
+	IL_0e0f:  cgt 
+	IL_0e11:  box [mscorlib]System.Boolean
+	IL_0e16:  stloc.s 5
+	IL_0e18:  br IL_1536
 
-	IL_00ef:  ldloc.3 
-	IL_00f0:  ret 
-    } // end of method DirectoryScanner::TestRegex
+	IL_0e1d:  ldloc.1 
+	IL_0e1e:  isinst [mscorlib]System.Version
+	IL_0e23:  brfalse IL_0e4f
 
-    // method line 2005
-    .method private hidebysig 
-           instance default bool IsPathIncluded (string path, class [mscorlib]System.Collections.ArrayList includedPatterns, class [mscorlib]System.Collections.ArrayList excludedPatterns)  cil managed 
-    {
-        // Method begins at RVA 0x22850
-	// Code size 471 (0x1d7)
-	.maxstack 4
-	.locals init (
-		bool	V_0,
-		valuetype [mscorlib]System.Globalization.CompareOptions	V_1,
-		class [mscorlib]System.Globalization.CompareInfo	V_2,
-		string	V_3,
-		class [System]System.Collections.Specialized.StringEnumerator	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		class NAnt.Core.DirectoryScanner/RegexEntry	V_6,
-		class [mscorlib]System.Collections.IEnumerator	V_7,
-		class [mscorlib]System.IDisposable	V_8,
-		string	V_9,
-		class [System]System.Collections.Specialized.StringEnumerator	V_10,
-		class [mscorlib]System.IDisposable	V_11,
-		class NAnt.Core.DirectoryScanner/RegexEntry	V_12,
-		class [mscorlib]System.Collections.IEnumerator	V_13,
-		class [mscorlib]System.IDisposable	V_14,
-		bool	V_15)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  ldc.i4.0 
-	IL_0004:  stloc.1 
-	IL_0005:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_000a:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
-	IL_000f:  stloc.2 
-	IL_0010:  ldarg.0 
-	IL_0011:  call instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
-	IL_0016:  brtrue IL_001f
+	IL_0e28:  ldloc.3 
+	IL_0e29:  isinst [mscorlib]System.Version
+	IL_0e2e:  brfalse IL_0e4f
 
-	IL_001b:  ldloc.1 
-	IL_001c:  ldc.i4.1 
-	IL_001d:  or 
-	IL_001e:  stloc.1 
-	IL_001f:  nop 
-	IL_0020:  ldarg.0 
-	IL_0021:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includeNames
-	IL_0026:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_002b:  stloc.s 4
-	.try { // 0
-	  IL_002d:  br IL_0052
+	IL_0e33:  nop 
+	IL_0e34:  ldloc.1 
+	IL_0e35:  castclass [mscorlib]System.IComparable
+	IL_0e3a:  ldloc.3 
+	IL_0e3b:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0e40:  ldc.i4.0 
+	IL_0e41:  cgt 
+	IL_0e43:  box [mscorlib]System.Boolean
+	IL_0e48:  stloc.s 5
+	IL_0e4a:  br IL_1536
 
-	  IL_0032:  ldloc.s 4
-	  IL_0034:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0039:  stloc.3 
-	  IL_003a:  nop 
-	  IL_003b:  ldloc.2 
-	  IL_003c:  ldloc.3 
-	  IL_003d:  ldarg.1 
-	  IL_003e:  ldloc.1 
-	  IL_003f:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::Compare(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
-	  IL_0044:  brtrue IL_0051
+	IL_0e4f:  ldarg.0 
+	IL_0e50:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0e55:  ldstr "NA1037"
+	IL_0e5a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0e5f:  ldarg.0 
+	IL_0e60:  ldloc.1 
+	IL_0e61:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0e66:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_0e6b:  ldarg.0 
+	IL_0e6c:  ldloc.3 
+	IL_0e6d:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0e72:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_0e77:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0e7c:  ldloc.0 
+	IL_0e7d:  ldloc.s 4
+	IL_0e7f:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0e84:  throw 
+	IL_0e85:  ldloc.1 
+	IL_0e86:  isinst [mscorlib]System.String
+	IL_0e8b:  brfalse IL_0ec5
 
-	  IL_0049:  nop 
-	  IL_004a:  ldc.i4.1 
-	  IL_004b:  stloc.0 
-	  IL_004c:  leave IL_005e
+	IL_0e90:  ldloc.3 
+	IL_0e91:  isinst [mscorlib]System.String
+	IL_0e96:  brfalse IL_0ec5
 
-	  IL_0051:  nop 
-	  IL_0052:  ldloc.s 4
-	  IL_0054:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0059:  brtrue IL_0032
+	IL_0e9b:  nop 
+	IL_0e9c:  ldloc.1 
+	IL_0e9d:  castclass [mscorlib]System.String
+	IL_0ea2:  ldloc.3 
+	IL_0ea3:  castclass [mscorlib]System.String
+	IL_0ea8:  ldc.i4.0 
+	IL_0ea9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0eae:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_0eb3:  ldc.i4.0 
+	IL_0eb4:  cgt 
+	IL_0eb6:  ldc.i4.0 
+	IL_0eb7:  ceq 
+	IL_0eb9:  box [mscorlib]System.Boolean
+	IL_0ebe:  stloc.s 5
+	IL_0ec0:  br IL_1536
 
-	  IL_005e:  leave IL_007a
+	IL_0ec5:  ldloc.1 
+	IL_0ec6:  isinst [mscorlib]System.Boolean
+	IL_0ecb:  brfalse IL_0efa
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0063:  ldloc.s 4
-	  IL_0065:  isinst [mscorlib]System.IDisposable
-	  IL_006a:  dup 
-	  IL_006b:  stloc.s 5
-	  IL_006d:  brfalse IL_0079
+	IL_0ed0:  ldloc.3 
+	IL_0ed1:  isinst [mscorlib]System.Boolean
+	IL_0ed6:  brfalse IL_0efa
 
-	  IL_0072:  ldloc.s 5
-	  IL_0074:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0079:  endfinally 
-	} // end handler 0
-	IL_007a:  ldloc.0 
-	IL_007b:  brtrue IL_00de
+	IL_0edb:  nop 
+	IL_0edc:  ldloc.1 
+	IL_0edd:  castclass [mscorlib]System.IComparable
+	IL_0ee2:  ldloc.3 
+	IL_0ee3:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0ee8:  ldc.i4.0 
+	IL_0ee9:  cgt 
+	IL_0eeb:  ldc.i4.0 
+	IL_0eec:  ceq 
+	IL_0eee:  box [mscorlib]System.Boolean
+	IL_0ef3:  stloc.s 5
+	IL_0ef5:  br IL_1536
 
-	IL_0080:  nop 
-	IL_0081:  nop 
-	IL_0082:  ldarg.2 
-	IL_0083:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0088:  stloc.s 7
-	.try { // 1
-	  IL_008a:  br IL_00b5
+	IL_0efa:  ldloc.1 
+	IL_0efb:  isinst [mscorlib]System.Int32
+	IL_0f00:  brfalse IL_0f2f
 
-	  IL_008f:  ldloc.s 7
-	  IL_0091:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0096:  castclass NAnt.Core.DirectoryScanner/RegexEntry
-	  IL_009b:  stloc.s 6
-	  IL_009d:  nop 
-	  IL_009e:  ldarg.0 
-	  IL_009f:  ldarg.1 
-	  IL_00a0:  ldloc.s 6
-	  IL_00a2:  call instance bool class NAnt.Core.DirectoryScanner::TestRegex(string, class NAnt.Core.DirectoryScanner/RegexEntry)
-	  IL_00a7:  brfalse IL_00b4
+	IL_0f05:  ldloc.3 
+	IL_0f06:  isinst [mscorlib]System.Int32
+	IL_0f0b:  brfalse IL_0f2f
 
-	  IL_00ac:  nop 
-	  IL_00ad:  ldc.i4.1 
-	  IL_00ae:  stloc.0 
-	  IL_00af:  leave IL_00c1
+	IL_0f10:  nop 
+	IL_0f11:  ldloc.1 
+	IL_0f12:  castclass [mscorlib]System.IComparable
+	IL_0f17:  ldloc.3 
+	IL_0f18:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0f1d:  ldc.i4.0 
+	IL_0f1e:  cgt 
+	IL_0f20:  ldc.i4.0 
+	IL_0f21:  ceq 
+	IL_0f23:  box [mscorlib]System.Boolean
+	IL_0f28:  stloc.s 5
+	IL_0f2a:  br IL_1536
 
-	  IL_00b4:  nop 
-	  IL_00b5:  ldloc.s 7
-	  IL_00b7:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00bc:  brtrue IL_008f
+	IL_0f2f:  ldloc.1 
+	IL_0f30:  isinst [mscorlib]System.Int32
+	IL_0f35:  brfalse IL_0f69
 
-	  IL_00c1:  leave IL_00dd
+	IL_0f3a:  ldloc.3 
+	IL_0f3b:  isinst [mscorlib]System.Int64
+	IL_0f40:  brfalse IL_0f69
 
-	} // end .try 1
-	finally  { // 1
-	  IL_00c6:  ldloc.s 7
-	  IL_00c8:  isinst [mscorlib]System.IDisposable
-	  IL_00cd:  dup 
-	  IL_00ce:  stloc.s 8
-	  IL_00d0:  brfalse IL_00dc
+	IL_0f45:  nop 
+	IL_0f46:  ldloc.1 
+	IL_0f47:  call int64 class [mscorlib]System.Convert::ToInt64(object)
+	IL_0f4c:  box [mscorlib]System.Int64
+	IL_0f51:  ldloc.3 
+	IL_0f52:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0f57:  ldc.i4.0 
+	IL_0f58:  cgt 
+	IL_0f5a:  ldc.i4.0 
+	IL_0f5b:  ceq 
+	IL_0f5d:  box [mscorlib]System.Boolean
+	IL_0f62:  stloc.s 5
+	IL_0f64:  br IL_1536
 
-	  IL_00d5:  ldloc.s 8
-	  IL_00d7:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00dc:  endfinally 
-	} // end handler 1
-	IL_00dd:  nop 
-	IL_00de:  ldloc.0 
-	IL_00df:  brfalse IL_0143
+	IL_0f69:  ldloc.1 
+	IL_0f6a:  isinst [mscorlib]System.Int32
+	IL_0f6f:  brfalse IL_0fa3
 
-	IL_00e4:  nop 
-	IL_00e5:  nop 
-	IL_00e6:  ldarg.0 
-	IL_00e7:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludeNames
-	IL_00ec:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_00f1:  stloc.s 10
-	.try { // 2
-	  IL_00f3:  br IL_011a
+	IL_0f74:  ldloc.3 
+	IL_0f75:  isinst [mscorlib]System.Double
+	IL_0f7a:  brfalse IL_0fa3
 
-	  IL_00f8:  ldloc.s 10
-	  IL_00fa:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_00ff:  stloc.s 9
-	  IL_0101:  nop 
-	  IL_0102:  ldloc.2 
-	  IL_0103:  ldloc.s 9
-	  IL_0105:  ldarg.1 
-	  IL_0106:  ldloc.1 
-	  IL_0107:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::Compare(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
-	  IL_010c:  brtrue IL_0119
+	IL_0f7f:  nop 
+	IL_0f80:  ldloc.1 
+	IL_0f81:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_0f86:  box [mscorlib]System.Double
+	IL_0f8b:  ldloc.3 
+	IL_0f8c:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0f91:  ldc.i4.0 
+	IL_0f92:  cgt 
+	IL_0f94:  ldc.i4.0 
+	IL_0f95:  ceq 
+	IL_0f97:  box [mscorlib]System.Boolean
+	IL_0f9c:  stloc.s 5
+	IL_0f9e:  br IL_1536
 
-	  IL_0111:  nop 
-	  IL_0112:  ldc.i4.0 
-	  IL_0113:  stloc.0 
-	  IL_0114:  leave IL_0126
+	IL_0fa3:  ldloc.1 
+	IL_0fa4:  isinst [mscorlib]System.Int64
+	IL_0fa9:  brfalse IL_0fd8
 
-	  IL_0119:  nop 
-	  IL_011a:  ldloc.s 10
-	  IL_011c:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0121:  brtrue IL_00f8
+	IL_0fae:  ldloc.3 
+	IL_0faf:  isinst [mscorlib]System.Int64
+	IL_0fb4:  brfalse IL_0fd8
 
-	  IL_0126:  leave IL_0142
+	IL_0fb9:  nop 
+	IL_0fba:  ldloc.1 
+	IL_0fbb:  castclass [mscorlib]System.IComparable
+	IL_0fc0:  ldloc.3 
+	IL_0fc1:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_0fc6:  ldc.i4.0 
+	IL_0fc7:  cgt 
+	IL_0fc9:  ldc.i4.0 
+	IL_0fca:  ceq 
+	IL_0fcc:  box [mscorlib]System.Boolean
+	IL_0fd1:  stloc.s 5
+	IL_0fd3:  br IL_1536
 
-	} // end .try 2
-	finally  { // 2
-	  IL_012b:  ldloc.s 10
-	  IL_012d:  isinst [mscorlib]System.IDisposable
-	  IL_0132:  dup 
-	  IL_0133:  stloc.s 11
-	  IL_0135:  brfalse IL_0141
+	IL_0fd8:  ldloc.1 
+	IL_0fd9:  isinst [mscorlib]System.Int64
+	IL_0fde:  brfalse IL_1017
 
-	  IL_013a:  ldloc.s 11
-	  IL_013c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0141:  endfinally 
-	} // end handler 2
-	IL_0142:  nop 
-	IL_0143:  ldloc.0 
-	IL_0144:  brfalse IL_01a7
+	IL_0fe3:  ldloc.3 
+	IL_0fe4:  isinst [mscorlib]System.Int32
+	IL_0fe9:  brfalse IL_1017
 
-	IL_0149:  nop 
-	IL_014a:  nop 
-	IL_014b:  ldarg.3 
-	IL_014c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0151:  stloc.s 13
-	.try { // 3
-	  IL_0153:  br IL_017e
+	IL_0fee:  nop 
+	IL_0fef:  ldloc.1 
+	IL_0ff0:  castclass [mscorlib]System.IComparable
+	IL_0ff5:  ldloc.3 
+	IL_0ff6:  call int64 class [mscorlib]System.Convert::ToInt64(object)
+	IL_0ffb:  box [mscorlib]System.Int64
+	IL_1000:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_1005:  ldc.i4.0 
+	IL_1006:  cgt 
+	IL_1008:  ldc.i4.0 
+	IL_1009:  ceq 
+	IL_100b:  box [mscorlib]System.Boolean
+	IL_1010:  stloc.s 5
+	IL_1012:  br IL_1536
 
-	  IL_0158:  ldloc.s 13
-	  IL_015a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_015f:  castclass NAnt.Core.DirectoryScanner/RegexEntry
-	  IL_0164:  stloc.s 12
-	  IL_0166:  nop 
-	  IL_0167:  ldarg.0 
-	  IL_0168:  ldarg.1 
-	  IL_0169:  ldloc.s 12
-	  IL_016b:  call instance bool class NAnt.Core.DirectoryScanner::TestRegex(string, class NAnt.Core.DirectoryScanner/RegexEntry)
-	  IL_0170:  brfalse IL_017d
+	IL_1017:  ldloc.1 
+	IL_1018:  isinst [mscorlib]System.Int64
+	IL_101d:  brfalse IL_1051
 
-	  IL_0175:  nop 
-	  IL_0176:  ldc.i4.0 
-	  IL_0177:  stloc.0 
-	  IL_0178:  leave IL_018a
+	IL_1022:  ldloc.3 
+	IL_1023:  isinst [mscorlib]System.Double
+	IL_1028:  brfalse IL_1051
 
-	  IL_017d:  nop 
-	  IL_017e:  ldloc.s 13
-	  IL_0180:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0185:  brtrue IL_0158
+	IL_102d:  nop 
+	IL_102e:  ldloc.1 
+	IL_102f:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_1034:  box [mscorlib]System.Double
+	IL_1039:  ldloc.3 
+	IL_103a:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_103f:  ldc.i4.0 
+	IL_1040:  cgt 
+	IL_1042:  ldc.i4.0 
+	IL_1043:  ceq 
+	IL_1045:  box [mscorlib]System.Boolean
+	IL_104a:  stloc.s 5
+	IL_104c:  br IL_1536
 
-	  IL_018a:  leave IL_01a6
+	IL_1051:  ldloc.1 
+	IL_1052:  isinst [mscorlib]System.Double
+	IL_1057:  brfalse IL_1086
 
-	} // end .try 3
-	finally  { // 3
-	  IL_018f:  ldloc.s 13
-	  IL_0191:  isinst [mscorlib]System.IDisposable
-	  IL_0196:  dup 
-	  IL_0197:  stloc.s 14
-	  IL_0199:  brfalse IL_01a5
+	IL_105c:  ldloc.3 
+	IL_105d:  isinst [mscorlib]System.Double
+	IL_1062:  brfalse IL_1086
 
-	  IL_019e:  ldloc.s 14
-	  IL_01a0:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01a5:  endfinally 
-	} // end handler 3
-	IL_01a6:  nop 
-	IL_01a7:  ldloc.0 
-	IL_01a8:  brtrue IL_01cc
+	IL_1067:  nop 
+	IL_1068:  ldloc.1 
+	IL_1069:  castclass [mscorlib]System.IComparable
+	IL_106e:  ldloc.3 
+	IL_106f:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_1074:  ldc.i4.0 
+	IL_1075:  cgt 
+	IL_1077:  ldc.i4.0 
+	IL_1078:  ceq 
+	IL_107a:  box [mscorlib]System.Boolean
+	IL_107f:  stloc.s 5
+	IL_1081:  br IL_1536
 
-	IL_01ad:  ldarg.0 
-	IL_01ae:  ldfld bool NAnt.Core.DirectoryScanner::_isEverythingIncluded
-	IL_01b3:  brfalse IL_01cc
+	IL_1086:  ldloc.1 
+	IL_1087:  isinst [mscorlib]System.Double
+	IL_108c:  brfalse IL_10c5
 
-	IL_01b8:  ldarg.1 
-	IL_01b9:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_01be:  brfalse IL_01cc
+	IL_1091:  ldloc.3 
+	IL_1092:  isinst [mscorlib]System.Int32
+	IL_1097:  brfalse IL_10c5
 
-	IL_01c3:  nop 
-	IL_01c4:  ldarg.0 
-	IL_01c5:  ldc.i4.0 
-	IL_01c6:  stfld bool NAnt.Core.DirectoryScanner::_isEverythingIncluded
-	IL_01cb:  nop 
-	IL_01cc:  ldloc.0 
-	IL_01cd:  stloc.s 15
-	IL_01cf:  br IL_01d4
+	IL_109c:  nop 
+	IL_109d:  ldloc.1 
+	IL_109e:  castclass [mscorlib]System.IComparable
+	IL_10a3:  ldloc.3 
+	IL_10a4:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_10a9:  box [mscorlib]System.Double
+	IL_10ae:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_10b3:  ldc.i4.0 
+	IL_10b4:  cgt 
+	IL_10b6:  ldc.i4.0 
+	IL_10b7:  ceq 
+	IL_10b9:  box [mscorlib]System.Boolean
+	IL_10be:  stloc.s 5
+	IL_10c0:  br IL_1536
 
-	IL_01d4:  ldloc.s 15
-	IL_01d6:  ret 
-    } // end of method DirectoryScanner::IsPathIncluded
+	IL_10c5:  ldloc.1 
+	IL_10c6:  isinst [mscorlib]System.Double
+	IL_10cb:  brfalse IL_1104
 
-    // method line 2006
-    .method private static hidebysig 
-           default class [mscorlib]System.Text.StringBuilder CleanPath (string nantPath)  cil managed 
-    {
-        // Method begins at RVA 0x22a68
-	// Code size 45 (0x2d)
-	.maxstack 3
-	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		class [mscorlib]System.Text.StringBuilder	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  ldc.i4.s 0x2f
-	IL_000b:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_0010:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(char, char)
-	IL_0015:  pop 
-	IL_0016:  ldloc.0 
-	IL_0017:  ldc.i4.s 0x5c
-	IL_0019:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_001e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(char, char)
-	IL_0023:  pop 
-	IL_0024:  ldloc.0 
-	IL_0025:  stloc.1 
-	IL_0026:  br IL_002b
+	IL_10d0:  ldloc.3 
+	IL_10d1:  isinst [mscorlib]System.Int64
+	IL_10d6:  brfalse IL_1104
 
-	IL_002b:  ldloc.1 
-	IL_002c:  ret 
-    } // end of method DirectoryScanner::CleanPath
+	IL_10db:  nop 
+	IL_10dc:  ldloc.1 
+	IL_10dd:  castclass [mscorlib]System.IComparable
+	IL_10e2:  ldloc.3 
+	IL_10e3:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_10e8:  box [mscorlib]System.Double
+	IL_10ed:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_10f2:  ldc.i4.0 
+	IL_10f3:  cgt 
+	IL_10f5:  ldc.i4.0 
+	IL_10f6:  ceq 
+	IL_10f8:  box [mscorlib]System.Boolean
+	IL_10fd:  stloc.s 5
+	IL_10ff:  br IL_1536
 
-    // method line 2007
-    .method private static hidebysig 
-           default string CleanPath (string baseDirectory, string nantPath)  cil managed 
-    {
-        // Method begins at RVA 0x22aa4
-	// Code size 36 (0x24)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call class [mscorlib]System.Text.StringBuilder class NAnt.Core.DirectoryScanner::CleanPath(string)
-	IL_0008:  callvirt instance string object::ToString()
-	IL_000d:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0012:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0017:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001c:  stloc.0 
-	IL_001d:  br IL_0022
+	IL_1104:  ldloc.1 
+	IL_1105:  isinst [mscorlib]System.DateTime
+	IL_110a:  brfalse IL_1139
 
-	IL_0022:  ldloc.0 
-	IL_0023:  ret 
-    } // end of method DirectoryScanner::CleanPath
+	IL_110f:  ldloc.3 
+	IL_1110:  isinst [mscorlib]System.DateTime
+	IL_1115:  brfalse IL_1139
 
-    // method line 2008
-    .method private static hidebysig 
-           default string ToRegexPattern (string nantPattern)  cil managed 
-    {
-        // Method begins at RVA 0x22ad4
-	// Code size 579 (0x243)
-	.maxstack 6
-	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		string	V_1,
-		char	V_2,
-		string	V_3,
-		string	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call class [mscorlib]System.Text.StringBuilder class NAnt.Core.DirectoryScanner::CleanPath(string)
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  ldstr "\\"
-	IL_000e:  ldstr "\\\\"
-	IL_0013:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_0018:  pop 
-	IL_0019:  ldloc.0 
-	IL_001a:  ldstr "."
-	IL_001f:  ldstr "\\."
-	IL_0024:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_0029:  pop 
-	IL_002a:  ldloc.0 
-	IL_002b:  ldstr "$"
-	IL_0030:  ldstr "\\$"
-	IL_0035:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_003a:  pop 
-	IL_003b:  ldloc.0 
-	IL_003c:  ldstr "^"
-	IL_0041:  ldstr "\\^"
-	IL_0046:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_004b:  pop 
-	IL_004c:  ldloc.0 
-	IL_004d:  ldstr "{"
-	IL_0052:  ldstr "\\{"
-	IL_0057:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_005c:  pop 
-	IL_005d:  ldloc.0 
-	IL_005e:  ldstr "["
-	IL_0063:  ldstr "\\["
-	IL_0068:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_006d:  pop 
-	IL_006e:  ldloc.0 
-	IL_006f:  ldstr "("
-	IL_0074:  ldstr "\\("
-	IL_0079:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_007e:  pop 
-	IL_007f:  ldloc.0 
-	IL_0080:  ldstr ")"
-	IL_0085:  ldstr "\\)"
-	IL_008a:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_008f:  pop 
-	IL_0090:  ldloc.0 
-	IL_0091:  ldstr "+"
-	IL_0096:  ldstr "\\+"
-	IL_009b:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_00a0:  pop 
-	IL_00a1:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_00a6:  stloc.2 
-	IL_00a7:  ldloca.s 2
-	IL_00a9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00ae:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
-	IL_00b3:  stloc.1 
-	IL_00b4:  ldloc.1 
-	IL_00b5:  ldstr "\\"
-	IL_00ba:  call bool string::op_Equality(string, string)
-	IL_00bf:  brfalse IL_00ca
+	IL_111a:  nop 
+	IL_111b:  ldloc.1 
+	IL_111c:  castclass [mscorlib]System.IComparable
+	IL_1121:  ldloc.3 
+	IL_1122:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_1127:  ldc.i4.0 
+	IL_1128:  cgt 
+	IL_112a:  ldc.i4.0 
+	IL_112b:  ceq 
+	IL_112d:  box [mscorlib]System.Boolean
+	IL_1132:  stloc.s 5
+	IL_1134:  br IL_1536
 
-	IL_00c4:  ldstr "\\\\"
-	IL_00c9:  stloc.1 
-	IL_00ca:  ldloc.0 
-	IL_00cb:  ldstr "?"
-	IL_00d0:  ldstr "[^"
-	IL_00d5:  ldloc.1 
-	IL_00d6:  ldstr "]?"
-	IL_00db:  call string string::Concat(string, string, string)
-	IL_00e0:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_00e5:  pop 
-	IL_00e6:  ldloc.0 
-	IL_00e7:  callvirt instance string object::ToString()
-	IL_00ec:  ldc.i4.5 
-	IL_00ed:  newarr [mscorlib]System.String
-	IL_00f2:  dup 
-	IL_00f3:  ldc.i4.0 
-	IL_00f4:  ldstr "(?<="
-	IL_00f9:  stelem.ref 
-	IL_00fa:  dup 
-	IL_00fb:  ldc.i4.1 
-	IL_00fc:  ldloc.1 
-	IL_00fd:  stelem.ref 
-	IL_00fe:  dup 
-	IL_00ff:  ldc.i4.2 
-	IL_0100:  ldstr ")\\*(?=($|"
-	IL_0105:  stelem.ref 
-	IL_0106:  dup 
-	IL_0107:  ldc.i4.3 
-	IL_0108:  ldloc.1 
-	IL_0109:  stelem.ref 
-	IL_010a:  dup 
-	IL_010b:  ldc.i4.4 
-	IL_010c:  ldstr "))"
-	IL_0111:  stelem.ref 
-	IL_0112:  call string string::Concat(string[])
-	IL_0117:  ldstr "[^"
-	IL_011c:  ldloc.1 
-	IL_011d:  ldstr "]+"
-	IL_0122:  call string string::Concat(string, string, string)
-	IL_0127:  call string class [System]System.Text.RegularExpressions.Regex::Replace(string, string, string)
-	IL_012c:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
-	IL_0131:  stloc.0 
-	IL_0132:  ldloc.0 
-	IL_0133:  ldloc.1 
-	IL_0134:  ldstr "**"
-	IL_0139:  ldloc.1 
-	IL_013a:  call string string::Concat(string, string, string)
-	IL_013f:  ldloc.1 
-	IL_0140:  ldstr "(.|?"
-	IL_0145:  ldloc.1 
-	IL_0146:  ldstr ")?"
-	IL_014b:  call string string::Concat(string, string, string, string)
-	IL_0150:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_0155:  pop 
-	IL_0156:  ldloc.0 
-	IL_0157:  ldstr "**"
-	IL_015c:  ldloc.1 
-	IL_015d:  call string string::Concat(string, string)
-	IL_0162:  ldstr ".|(?<=^|"
-	IL_0167:  ldloc.1 
-	IL_0168:  ldstr ")"
-	IL_016d:  call string string::Concat(string, string, string)
-	IL_0172:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_0177:  pop 
-	IL_0178:  ldloc.0 
-	IL_0179:  ldloc.1 
-	IL_017a:  ldstr "**"
-	IL_017f:  call string string::Concat(string, string)
-	IL_0184:  ldstr "(?=$|"
-	IL_0189:  ldloc.1 
-	IL_018a:  ldstr ").|"
-	IL_018f:  call string string::Concat(string, string, string)
-	IL_0194:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_0199:  pop 
-	IL_019a:  ldloc.0 
-	IL_019b:  ldstr "**"
-	IL_01a0:  ldstr ".|"
-	IL_01a5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_01aa:  pop 
-	IL_01ab:  ldloc.0 
-	IL_01ac:  ldstr "*"
-	IL_01b1:  ldstr "[^"
-	IL_01b6:  ldloc.1 
-	IL_01b7:  ldstr "]*"
-	IL_01bc:  call string string::Concat(string, string, string)
-	IL_01c1:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_01c6:  pop 
-	IL_01c7:  ldloc.0 
-	IL_01c8:  ldstr ".|"
-	IL_01cd:  ldstr ".*"
-	IL_01d2:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
-	IL_01d7:  pop 
-	IL_01d8:  ldloc.0 
-	IL_01d9:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_01de:  ldc.i4.0 
-	IL_01df:  ble IL_01f9
+	IL_1139:  ldloc.1 
+	IL_113a:  isinst [mscorlib]System.TimeSpan
+	IL_113f:  brfalse IL_116e
 
-	IL_01e4:  nop 
-	IL_01e5:  ldloc.0 
-	IL_01e6:  ldc.i4.0 
-	IL_01e7:  ldc.i4.s 0x5e
-	IL_01e9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Insert(int32, char)
-	IL_01ee:  pop 
-	IL_01ef:  ldloc.0 
-	IL_01f0:  ldc.i4.s 0x24
-	IL_01f2:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_01f7:  pop 
-	IL_01f8:  nop 
-	IL_01f9:  ldloc.0 
-	IL_01fa:  callvirt instance string object::ToString()
-	IL_01ff:  stloc.3 
-	IL_0200:  ldloc.3 
-	IL_0201:  ldstr "^.*"
-	IL_0206:  callvirt instance bool string::StartsWith(string)
-	IL_020b:  brfalse IL_0218
+	IL_1144:  ldloc.3 
+	IL_1145:  isinst [mscorlib]System.TimeSpan
+	IL_114a:  brfalse IL_116e
 
-	IL_0210:  ldloc.3 
-	IL_0211:  ldc.i4.3 
-	IL_0212:  callvirt instance string string::Substring(int32)
-	IL_0217:  stloc.3 
-	IL_0218:  ldloc.3 
-	IL_0219:  ldstr ".*$"
-	IL_021e:  callvirt instance bool string::EndsWith(string)
-	IL_0223:  brfalse IL_0238
+	IL_114f:  nop 
+	IL_1150:  ldloc.1 
+	IL_1151:  castclass [mscorlib]System.IComparable
+	IL_1156:  ldloc.3 
+	IL_1157:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_115c:  ldc.i4.0 
+	IL_115d:  cgt 
+	IL_115f:  ldc.i4.0 
+	IL_1160:  ceq 
+	IL_1162:  box [mscorlib]System.Boolean
+	IL_1167:  stloc.s 5
+	IL_1169:  br IL_1536
 
-	IL_0228:  ldloc.3 
-	IL_0229:  ldc.i4.0 
-	IL_022a:  ldloc.0 
-	IL_022b:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_0230:  ldc.i4.3 
-	IL_0231:  sub 
-	IL_0232:  callvirt instance string string::Substring(int32, int32)
-	IL_0237:  stloc.3 
-	IL_0238:  ldloc.3 
-	IL_0239:  stloc.s 4
-	IL_023b:  br IL_0240
+	IL_116e:  ldloc.1 
+	IL_116f:  isinst [mscorlib]System.Version
+	IL_1174:  brfalse IL_11a3
 
-	IL_0240:  ldloc.s 4
-	IL_0242:  ret 
-    } // end of method DirectoryScanner::ToRegexPattern
+	IL_1179:  ldloc.3 
+	IL_117a:  isinst [mscorlib]System.Version
+	IL_117f:  brfalse IL_11a3
 
-    // method line 2009
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x22d23
-	// Code size 41 (0x29)
-	.maxstack 8
-	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
-	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
-	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.DirectoryScanner::logger
-	IL_0014:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0019:  stsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DirectoryScanner::cachedCaseSensitiveRegexes
-	IL_001e:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0023:  stsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DirectoryScanner::cachedCaseInsensitiveRegexes
-	IL_0028:  ret 
-    } // end of method DirectoryScanner::.cctor
+	IL_1184:  nop 
+	IL_1185:  ldloc.1 
+	IL_1186:  castclass [mscorlib]System.IComparable
+	IL_118b:  ldloc.3 
+	IL_118c:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_1191:  ldc.i4.0 
+	IL_1192:  cgt 
+	IL_1194:  ldc.i4.0 
+	IL_1195:  ceq 
+	IL_1197:  box [mscorlib]System.Boolean
+	IL_119c:  stloc.s 5
+	IL_119e:  br IL_1536
 
-	.property instance bool CaseSensitive ()
-	{
-		.get instance default bool NAnt.Core.DirectoryScanner::get_CaseSensitive () 
-		.set instance default void NAnt.Core.DirectoryScanner::set_CaseSensitive (bool 'value') 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection Includes ()
-	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.DirectoryScanner::get_Includes () 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection Excludes ()
-	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.DirectoryScanner::get_Excludes () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::get_BaseDirectory () 
-		.set instance default void NAnt.Core.DirectoryScanner::set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection FileNames ()
-	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.DirectoryScanner::get_FileNames () 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection DirectoryNames ()
-	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.DirectoryScanner::get_DirectoryNames () 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection ScannedDirectories ()
-	{
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.DirectoryScanner::get_ScannedDirectories () 
-	}
-	.property instance bool IsEverythingIncluded ()
-	{
-		.get instance default bool NAnt.Core.DirectoryScanner::get_IsEverythingIncluded () 
-	}
-  .class nested private auto ansi serializable beforefieldinit RegexEntry
-  	extends [mscorlib]System.Object
-  {
-    .field  public  bool IsRecursive
-    .field  public  string BaseDirectory
-    .field  public  string Pattern
+	IL_11a3:  ldarg.0 
+	IL_11a4:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_11a9:  ldstr "NA1049"
+	IL_11ae:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_11b3:  ldarg.0 
+	IL_11b4:  ldloc.1 
+	IL_11b5:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_11ba:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_11bf:  ldarg.0 
+	IL_11c0:  ldloc.3 
+	IL_11c1:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_11c6:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_11cb:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_11d0:  ldloc.0 
+	IL_11d1:  ldloc.s 4
+	IL_11d3:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_11d8:  throw 
+	IL_11d9:  ldloc.1 
+	IL_11da:  isinst [mscorlib]System.String
+	IL_11df:  brfalse IL_1219
 
-    // method line 2010
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x22d4d
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method RegexEntry::.ctor
+	IL_11e4:  ldloc.3 
+	IL_11e5:  isinst [mscorlib]System.String
+	IL_11ea:  brfalse IL_1219
 
-  } // end of class RegexEntry
+	IL_11ef:  nop 
+	IL_11f0:  ldloc.1 
+	IL_11f1:  castclass [mscorlib]System.String
+	IL_11f6:  ldloc.3 
+	IL_11f7:  castclass [mscorlib]System.String
+	IL_11fc:  ldc.i4.0 
+	IL_11fd:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_1202:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_1207:  ldc.i4.0 
+	IL_1208:  clt 
+	IL_120a:  ldc.i4.0 
+	IL_120b:  ceq 
+	IL_120d:  box [mscorlib]System.Boolean
+	IL_1212:  stloc.s 5
+	IL_1214:  br IL_1536
 
-  } // end of class NAnt.Core.DirectoryScanner
-}
+	IL_1219:  ldloc.1 
+	IL_121a:  isinst [mscorlib]System.Boolean
+	IL_121f:  brfalse IL_124e
 
-.namespace NAnt.Core
-{
-  .class private auto ansi serializable beforefieldinit StringCollectionWithGoodToString
-  	extends [System]System.Collections.Specialized.StringCollection
-  	implements [mscorlib]System.ICloneable  {
+	IL_1224:  ldloc.3 
+	IL_1225:  isinst [mscorlib]System.Boolean
+	IL_122a:  brfalse IL_124e
 
-    // method line 2011
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x22d55
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0006:  ret 
-    } // end of method StringCollectionWithGoodToString::.ctor
+	IL_122f:  nop 
+	IL_1230:  ldloc.1 
+	IL_1231:  castclass [mscorlib]System.IComparable
+	IL_1236:  ldloc.3 
+	IL_1237:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_123c:  ldc.i4.0 
+	IL_123d:  clt 
+	IL_123f:  ldc.i4.0 
+	IL_1240:  ceq 
+	IL_1242:  box [mscorlib]System.Boolean
+	IL_1247:  stloc.s 5
+	IL_1249:  br IL_1536
 
-    // method line 2012
-    .method public virtual hidebysig newslot 
-           instance default object Clone ()  cil managed 
-    {
-        // Method begins at RVA 0x22d60
-	// Code size 43 (0x2b)
-	.maxstack 3
-	.locals init (
-		string[]	V_0,
-		class NAnt.Core.StringCollectionWithGoodToString	V_1,
-		object	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0007:  newarr [mscorlib]System.String
-	IL_000c:  stloc.0 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  call instance void class [System]System.Collections.Specialized.StringCollection::CopyTo(string[], int32)
-	IL_0015:  newobj instance void class NAnt.Core.StringCollectionWithGoodToString::'.ctor'()
-	IL_001a:  stloc.1 
-	IL_001b:  ldloc.1 
-	IL_001c:  ldloc.0 
-	IL_001d:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
-	IL_0022:  ldloc.1 
-	IL_0023:  stloc.2 
-	IL_0024:  br IL_0029
+	IL_124e:  ldloc.1 
+	IL_124f:  isinst [mscorlib]System.Int32
+	IL_1254:  brfalse IL_1283
 
-	IL_0029:  ldloc.2 
-	IL_002a:  ret 
-    } // end of method StringCollectionWithGoodToString::Clone
+	IL_1259:  ldloc.3 
+	IL_125a:  isinst [mscorlib]System.Int32
+	IL_125f:  brfalse IL_1283
 
-    // method line 2013
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
-    {
-        // Method begins at RVA 0x22d98
-	// Code size 129 (0x81)
-	.maxstack 3
-	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		string	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string object::ToString()
-	IL_0007:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  ldstr ":"
-	IL_0013:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_0018:  call string string::Concat(string, string)
-	IL_001d:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0022:  pop 
-	IL_0023:  nop 
-	IL_0024:  ldarg.0 
-	IL_0025:  call instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_002a:  stloc.2 
-	.try { // 0
-	  IL_002b:  br IL_004d
+	IL_1264:  nop 
+	IL_1265:  ldloc.1 
+	IL_1266:  castclass [mscorlib]System.IComparable
+	IL_126b:  ldloc.3 
+	IL_126c:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_1271:  ldc.i4.0 
+	IL_1272:  clt 
+	IL_1274:  ldc.i4.0 
+	IL_1275:  ceq 
+	IL_1277:  box [mscorlib]System.Boolean
+	IL_127c:  stloc.s 5
+	IL_127e:  br IL_1536
 
-	  IL_0030:  ldloc.2 
-	  IL_0031:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0036:  stloc.1 
-	  IL_0037:  nop 
-	  IL_0038:  ldloc.0 
-	  IL_0039:  ldloc.1 
-	  IL_003a:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_003f:  pop 
-	  IL_0040:  ldloc.0 
-	  IL_0041:  call string class [mscorlib]System.Environment::get_NewLine()
-	  IL_0046:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_004b:  pop 
-	  IL_004c:  nop 
-	  IL_004d:  ldloc.2 
-	  IL_004e:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0053:  brtrue IL_0030
+	IL_1283:  ldloc.1 
+	IL_1284:  isinst [mscorlib]System.Int32
+	IL_1289:  brfalse IL_12bd
 
-	  IL_0058:  leave IL_0071
+	IL_128e:  ldloc.3 
+	IL_128f:  isinst [mscorlib]System.Int64
+	IL_1294:  brfalse IL_12bd
 
-	} // end .try 0
-	finally  { // 0
-	  IL_005d:  ldloc.2 
-	  IL_005e:  isinst [mscorlib]System.IDisposable
-	  IL_0063:  dup 
-	  IL_0064:  stloc.3 
-	  IL_0065:  brfalse IL_0070
+	IL_1299:  nop 
+	IL_129a:  ldloc.1 
+	IL_129b:  call int64 class [mscorlib]System.Convert::ToInt64(object)
+	IL_12a0:  box [mscorlib]System.Int64
+	IL_12a5:  ldloc.3 
+	IL_12a6:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_12ab:  ldc.i4.0 
+	IL_12ac:  clt 
+	IL_12ae:  ldc.i4.0 
+	IL_12af:  ceq 
+	IL_12b1:  box [mscorlib]System.Boolean
+	IL_12b6:  stloc.s 5
+	IL_12b8:  br IL_1536
 
-	  IL_006a:  ldloc.3 
-	  IL_006b:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0070:  endfinally 
-	} // end handler 0
-	IL_0071:  ldloc.0 
-	IL_0072:  callvirt instance string object::ToString()
-	IL_0077:  stloc.s 4
-	IL_0079:  br IL_007e
+	IL_12bd:  ldloc.1 
+	IL_12be:  isinst [mscorlib]System.Int32
+	IL_12c3:  brfalse IL_12f7
 
-	IL_007e:  ldloc.s 4
-	IL_0080:  ret 
-    } // end of method StringCollectionWithGoodToString::ToString
+	IL_12c8:  ldloc.3 
+	IL_12c9:  isinst [mscorlib]System.Double
+	IL_12ce:  brfalse IL_12f7
 
-  } // end of class NAnt.Core.StringCollectionWithGoodToString
-}
+	IL_12d3:  nop 
+	IL_12d4:  ldloc.1 
+	IL_12d5:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_12da:  box [mscorlib]System.Double
+	IL_12df:  ldloc.3 
+	IL_12e0:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_12e5:  ldc.i4.0 
+	IL_12e6:  clt 
+	IL_12e8:  ldc.i4.0 
+	IL_12e9:  ceq 
+	IL_12eb:  box [mscorlib]System.Boolean
+	IL_12f0:  stloc.s 5
+	IL_12f2:  br IL_1536
 
-.namespace NAnt.Core
-{
-  .class private auto ansi serializable beforefieldinit DirScannerStringCollection
-  	extends NAnt.Core.StringCollectionWithGoodToString
-  {
-    .field  private initonly  bool _caseSensitive
+	IL_12f7:  ldloc.1 
+	IL_12f8:  isinst [mscorlib]System.Int64
+	IL_12fd:  brfalse IL_132c
 
-    // method line 2014
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (bool caseSensitive)  cil managed 
-    {
-        // Method begins at RVA 0x22e38
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.StringCollectionWithGoodToString::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld bool NAnt.Core.DirScannerStringCollection::_caseSensitive
-	IL_000e:  ret 
-    } // end of method DirScannerStringCollection::.ctor
+	IL_1302:  ldloc.3 
+	IL_1303:  isinst [mscorlib]System.Int64
+	IL_1308:  brfalse IL_132c
 
-    // method line 2015
-    .method public hidebysig specialname 
-           instance default bool get_CaseSensitive ()  cil managed 
-    {
-        // Method begins at RVA 0x22e48
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.DirScannerStringCollection::_caseSensitive
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_130d:  nop 
+	IL_130e:  ldloc.1 
+	IL_130f:  castclass [mscorlib]System.IComparable
+	IL_1314:  ldloc.3 
+	IL_1315:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_131a:  ldc.i4.0 
+	IL_131b:  clt 
+	IL_131d:  ldc.i4.0 
+	IL_131e:  ceq 
+	IL_1320:  box [mscorlib]System.Boolean
+	IL_1325:  stloc.s 5
+	IL_1327:  br IL_1536
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DirScannerStringCollection::get_CaseSensitive
+	IL_132c:  ldloc.1 
+	IL_132d:  isinst [mscorlib]System.Int64
+	IL_1332:  brfalse IL_136b
 
-    // method line 2016
-    .method public virtual hidebysig 
-           instance default object Clone ()  cil managed 
-    {
-        // Method begins at RVA 0x22e64
-	// Code size 49 (0x31)
-	.maxstack 3
-	.locals init (
-		string[]	V_0,
-		class NAnt.Core.DirScannerStringCollection	V_1,
-		object	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0007:  newarr [mscorlib]System.String
-	IL_000c:  stloc.0 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  call instance void class [System]System.Collections.Specialized.StringCollection::CopyTo(string[], int32)
-	IL_0015:  ldarg.0 
-	IL_0016:  call instance bool class NAnt.Core.DirScannerStringCollection::get_CaseSensitive()
-	IL_001b:  newobj instance void class NAnt.Core.DirScannerStringCollection::'.ctor'(bool)
-	IL_0020:  stloc.1 
-	IL_0021:  ldloc.1 
-	IL_0022:  ldloc.0 
-	IL_0023:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
-	IL_0028:  ldloc.1 
-	IL_0029:  stloc.2 
-	IL_002a:  br IL_002f
+	IL_1337:  ldloc.3 
+	IL_1338:  isinst [mscorlib]System.Int32
+	IL_133d:  brfalse IL_136b
 
-	IL_002f:  ldloc.2 
-	IL_0030:  ret 
-    } // end of method DirScannerStringCollection::Clone
+	IL_1342:  nop 
+	IL_1343:  ldloc.1 
+	IL_1344:  castclass [mscorlib]System.IComparable
+	IL_1349:  ldloc.3 
+	IL_134a:  call int64 class [mscorlib]System.Convert::ToInt64(object)
+	IL_134f:  box [mscorlib]System.Int64
+	IL_1354:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_1359:  ldc.i4.0 
+	IL_135a:  clt 
+	IL_135c:  ldc.i4.0 
+	IL_135d:  ceq 
+	IL_135f:  box [mscorlib]System.Boolean
+	IL_1364:  stloc.s 5
+	IL_1366:  br IL_1536
 
-    // method line 2017
-    .method public virtual hidebysig newslot 
-           instance default bool Contains (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x22ea4
-	// Code size 19 (0x13)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance int32 class NAnt.Core.DirScannerStringCollection::IndexOf(string)
-	IL_0008:  ldc.i4.m1 
-	IL_0009:  cgt 
-	IL_000b:  stloc.0 
-	IL_000c:  br IL_0011
+	IL_136b:  ldloc.1 
+	IL_136c:  isinst [mscorlib]System.Int64
+	IL_1371:  brfalse IL_13a5
 
-	IL_0011:  ldloc.0 
-	IL_0012:  ret 
-    } // end of method DirScannerStringCollection::Contains
+	IL_1376:  ldloc.3 
+	IL_1377:  isinst [mscorlib]System.Double
+	IL_137c:  brfalse IL_13a5
 
-    // method line 2018
-    .method public virtual hidebysig newslot 
-           instance default int32 IndexOf (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x22ec4
-	// Code size 132 (0x84)
-	.maxstack 4
-	.locals init (
-		int32	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0012
+	IL_1381:  nop 
+	IL_1382:  ldloc.1 
+	IL_1383:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_1388:  box [mscorlib]System.Double
+	IL_138d:  ldloc.3 
+	IL_138e:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_1393:  ldc.i4.0 
+	IL_1394:  clt 
+	IL_1396:  ldc.i4.0 
+	IL_1397:  ceq 
+	IL_1399:  box [mscorlib]System.Boolean
+	IL_139e:  stloc.s 5
+	IL_13a0:  br IL_1536
 
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance bool class NAnt.Core.DirScannerStringCollection::get_CaseSensitive()
-	IL_000d:  brfalse IL_0020
+	IL_13a5:  ldloc.1 
+	IL_13a6:  isinst [mscorlib]System.Double
+	IL_13ab:  brfalse IL_13da
 
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  call instance int32 class [System]System.Collections.Specialized.StringCollection::IndexOf(string)
-	IL_001a:  stloc.0 
-	IL_001b:  br IL_0082
+	IL_13b0:  ldloc.3 
+	IL_13b1:  isinst [mscorlib]System.Double
+	IL_13b6:  brfalse IL_13da
 
-	IL_0020:  nop 
-	IL_0021:  nop 
-	IL_0022:  ldarg.0 
-	IL_0023:  call instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0028:  stloc.2 
-	.try { // 0
-	  IL_0029:  br IL_0057
+	IL_13bb:  nop 
+	IL_13bc:  ldloc.1 
+	IL_13bd:  castclass [mscorlib]System.IComparable
+	IL_13c2:  ldloc.3 
+	IL_13c3:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_13c8:  ldc.i4.0 
+	IL_13c9:  clt 
+	IL_13cb:  ldc.i4.0 
+	IL_13cc:  ceq 
+	IL_13ce:  box [mscorlib]System.Boolean
+	IL_13d3:  stloc.s 5
+	IL_13d5:  br IL_1536
 
-	  IL_002e:  ldloc.2 
-	  IL_002f:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0034:  stloc.1 
-	  IL_0035:  nop 
-	  IL_0036:  ldloc.1 
-	  IL_0037:  ldarg.1 
-	  IL_0038:  ldc.i4.1 
-	  IL_0039:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_003e:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	  IL_0043:  brtrue IL_0056
+	IL_13da:  ldloc.1 
+	IL_13db:  isinst [mscorlib]System.Double
+	IL_13e0:  brfalse IL_1419
 
-	  IL_0048:  nop 
-	  IL_0049:  ldarg.0 
-	  IL_004a:  ldloc.1 
-	  IL_004b:  call instance int32 class [System]System.Collections.Specialized.StringCollection::IndexOf(string)
-	  IL_0050:  stloc.0 
-	  IL_0051:  leave IL_0082
+	IL_13e5:  ldloc.3 
+	IL_13e6:  isinst [mscorlib]System.Int32
+	IL_13eb:  brfalse IL_1419
 
-	  IL_0056:  nop 
-	  IL_0057:  ldloc.2 
-	  IL_0058:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_005d:  brtrue IL_002e
+	IL_13f0:  nop 
+	IL_13f1:  ldloc.1 
+	IL_13f2:  castclass [mscorlib]System.IComparable
+	IL_13f7:  ldloc.3 
+	IL_13f8:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_13fd:  box [mscorlib]System.Double
+	IL_1402:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_1407:  ldc.i4.0 
+	IL_1408:  clt 
+	IL_140a:  ldc.i4.0 
+	IL_140b:  ceq 
+	IL_140d:  box [mscorlib]System.Boolean
+	IL_1412:  stloc.s 5
+	IL_1414:  br IL_1536
 
-	  IL_0062:  leave IL_007b
+	IL_1419:  ldloc.1 
+	IL_141a:  isinst [mscorlib]System.Double
+	IL_141f:  brfalse IL_1458
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0067:  ldloc.2 
-	  IL_0068:  isinst [mscorlib]System.IDisposable
-	  IL_006d:  dup 
-	  IL_006e:  stloc.3 
-	  IL_006f:  brfalse IL_007a
+	IL_1424:  ldloc.3 
+	IL_1425:  isinst [mscorlib]System.Int64
+	IL_142a:  brfalse IL_1458
 
-	  IL_0074:  ldloc.3 
-	  IL_0075:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_007a:  endfinally 
-	} // end handler 0
-	IL_007b:  ldc.i4.m1 
-	IL_007c:  stloc.0 
-	IL_007d:  br IL_0082
+	IL_142f:  nop 
+	IL_1430:  ldloc.1 
+	IL_1431:  castclass [mscorlib]System.IComparable
+	IL_1436:  ldloc.3 
+	IL_1437:  call float64 class [mscorlib]System.Convert::ToDouble(object)
+	IL_143c:  box [mscorlib]System.Double
+	IL_1441:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_1446:  ldc.i4.0 
+	IL_1447:  clt 
+	IL_1449:  ldc.i4.0 
+	IL_144a:  ceq 
+	IL_144c:  box [mscorlib]System.Boolean
+	IL_1451:  stloc.s 5
+	IL_1453:  br IL_1536
 
-	IL_0082:  ldloc.0 
-	IL_0083:  ret 
-    } // end of method DirScannerStringCollection::IndexOf
+	IL_1458:  ldloc.1 
+	IL_1459:  isinst [mscorlib]System.DateTime
+	IL_145e:  brfalse IL_148d
 
-	.property instance bool CaseSensitive ()
-	{
-		.get instance default bool NAnt.Core.DirScannerStringCollection::get_CaseSensitive () 
-	}
-  } // end of class NAnt.Core.DirScannerStringCollection
-}
+	IL_1463:  ldloc.3 
+	IL_1464:  isinst [mscorlib]System.DateTime
+	IL_1469:  brfalse IL_148d
 
-.namespace NAnt.Core
-{
-  .class public auto ansi abstract serializable beforefieldinit DataTypeBase
-  	extends NAnt.Core.Element
-  {
-    .field  private  string _id
-    .field  private  string _refID
+	IL_146e:  nop 
+	IL_146f:  ldloc.1 
+	IL_1470:  castclass [mscorlib]System.IComparable
+	IL_1475:  ldloc.3 
+	IL_1476:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_147b:  ldc.i4.0 
+	IL_147c:  clt 
+	IL_147e:  ldc.i4.0 
+	IL_147f:  ceq 
+	IL_1481:  box [mscorlib]System.Boolean
+	IL_1486:  stloc.s 5
+	IL_1488:  br IL_1536
 
-    // method line 2019
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x73c8
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_0006:  ret 
-    } // end of method DataTypeBase::.ctor
+	IL_148d:  ldloc.1 
+	IL_148e:  isinst [mscorlib]System.TimeSpan
+	IL_1493:  brfalse IL_14c2
 
-    // method line 2020
-    .method public hidebysig specialname 
-           instance default string get_ID ()  cil managed 
-    {
-        // Method begins at RVA 0x73d0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.DataTypeBase::_id
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_1498:  ldloc.3 
+	IL_1499:  isinst [mscorlib]System.TimeSpan
+	IL_149e:  brfalse IL_14c2
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DataTypeBase::get_ID
+	IL_14a3:  nop 
+	IL_14a4:  ldloc.1 
+	IL_14a5:  castclass [mscorlib]System.IComparable
+	IL_14aa:  ldloc.3 
+	IL_14ab:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_14b0:  ldc.i4.0 
+	IL_14b1:  clt 
+	IL_14b3:  ldc.i4.0 
+	IL_14b4:  ceq 
+	IL_14b6:  box [mscorlib]System.Boolean
+	IL_14bb:  stloc.s 5
+	IL_14bd:  br IL_1536
 
-    // method line 2021
-    .method public hidebysig specialname 
-           instance default void set_ID (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x73eb
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.DataTypeBase::_id
-	IL_000d:  ret 
-    } // end of method DataTypeBase::set_ID
+	IL_14c2:  ldloc.1 
+	IL_14c3:  isinst [mscorlib]System.Version
+	IL_14c8:  brfalse IL_14f7
 
-    // method line 2022
-    .method public hidebysig specialname 
-           instance default string get_RefID ()  cil managed 
-    {
-        // Method begins at RVA 0x73fc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.DataTypeBase::_refID
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_14cd:  ldloc.3 
+	IL_14ce:  isinst [mscorlib]System.Version
+	IL_14d3:  brfalse IL_14f7
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DataTypeBase::get_RefID
+	IL_14d8:  nop 
+	IL_14d9:  ldloc.1 
+	IL_14da:  castclass [mscorlib]System.IComparable
+	IL_14df:  ldloc.3 
+	IL_14e0:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
+	IL_14e5:  ldc.i4.0 
+	IL_14e6:  clt 
+	IL_14e8:  ldc.i4.0 
+	IL_14e9:  ceq 
+	IL_14eb:  box [mscorlib]System.Boolean
+	IL_14f0:  stloc.s 5
+	IL_14f2:  br IL_1536
 
-    // method line 2023
-    .method public hidebysig specialname 
-           instance default void set_RefID (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x7417
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Core.DataTypeBase::_refID
-	IL_000d:  ret 
-    } // end of method DataTypeBase::set_RefID
+	IL_14f7:  ldarg.0 
+	IL_14f8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_14fd:  ldstr "NA1050"
+	IL_1502:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_1507:  ldarg.0 
+	IL_1508:  ldloc.1 
+	IL_1509:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_150e:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_1513:  ldarg.0 
+	IL_1514:  ldloc.3 
+	IL_1515:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_151a:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_151f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_1524:  ldloc.0 
+	IL_1525:  ldloc.s 4
+	IL_1527:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_152c:  throw 
+	IL_152d:  nop 
+	IL_152e:  ldloc.1 
+	IL_152f:  stloc.s 5
+	IL_1531:  br IL_1536
 
-    // method line 2024
-    .method public hidebysig specialname 
-           instance default bool get_CanBeReferenced ()  cil managed 
+	IL_1536:  ldloc.s 5
+	IL_1538:  ret 
+    } // end of method ExpressionEvalBase::ParseRelationalExpression
+
+    // method line 1678
+    .method private hidebysig 
+           instance default object ParseAddSubtract ()  cil managed 
     {
-        // Method begins at RVA 0x7428
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x1faa8
+	// Code size 1500 (0x5dc)
+	.maxstack 6
 	.locals init (
-		bool	V_0)
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0,
+		object	V_1,
+		object	V_2,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_3,
+		object	V_4,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_5,
+		object	V_6)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_0007:  ldnull 
-	IL_0008:  ceq 
-	IL_000a:  ldc.i4.0 
-	IL_000b:  ceq 
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0007:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_000c:  stloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance object class NAnt.Core.ExpressionEvalBase::ParseMulDiv()
+	IL_0013:  stloc.1 
+	IL_0014:  nop 
+	IL_0015:  nop 
+	IL_0016:  ldarg.0 
+	IL_0017:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_001c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0021:  ldc.i4.s 0x0b
+	IL_0023:  bne.un IL_02dd
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method DataTypeBase::get_CanBeReferenced
+	IL_0028:  nop 
+	IL_0029:  ldarg.0 
+	IL_002a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_002f:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_0034:  ldarg.0 
+	IL_0035:  call instance object class NAnt.Core.ExpressionEvalBase::ParseMulDiv()
+	IL_003a:  stloc.2 
+	IL_003b:  ldarg.0 
+	IL_003c:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0041:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0046:  stloc.3 
+	IL_0047:  ldarg.0 
+	IL_0048:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	IL_004d:  brtrue IL_02d7
 
-    // method line 2025
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x744c
-	// Code size 54 (0x36)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		class NAnt.Core.Attributes.ElementNameAttribute	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  call instance class [mscorlib]System.Type object::GetType()
-	IL_0009:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
-	IL_000e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0013:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	IL_0018:  castclass NAnt.Core.Attributes.ElementNameAttribute
-	IL_001d:  stloc.1 
-	IL_001e:  ldloc.1 
-	IL_001f:  brfalse IL_002d
+	IL_0052:  nop 
+	IL_0053:  ldloc.1 
+	IL_0054:  isinst [mscorlib]System.String
+	IL_0059:  brfalse IL_0082
 
-	IL_0024:  nop 
-	IL_0025:  ldloc.1 
-	IL_0026:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
-	IL_002b:  stloc.0 
-	IL_002c:  nop 
-	IL_002d:  ldloc.0 
-	IL_002e:  stloc.2 
-	IL_002f:  br IL_0034
+	IL_005e:  ldloc.2 
+	IL_005f:  isinst [mscorlib]System.String
+	IL_0064:  brfalse IL_0082
 
-	IL_0034:  ldloc.2 
-	IL_0035:  ret 
-    } // end of method DataTypeBase::get_Name
+	IL_0069:  nop 
+	IL_006a:  ldloc.1 
+	IL_006b:  castclass [mscorlib]System.String
+	IL_0070:  ldloc.2 
+	IL_0071:  castclass [mscorlib]System.String
+	IL_0076:  call string string::Concat(string, string)
+	IL_007b:  stloc.1 
+	IL_007c:  nop 
+	IL_007d:  br IL_02d6
 
-    // method line 2026
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0x7490
-	// Code size 281 (0x119)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance object class NAnt.Core.Element::get_Parent()
-	IL_0007:  brtrue IL_0022
+	IL_0082:  ldloc.1 
+	IL_0083:  isinst [mscorlib]System.Int32
+	IL_0088:  brfalse IL_00b2
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldc.i4 4000
-	IL_0013:  ldstr "Parent property should be set on types deriving from DataTypeBase to determine whether the type is declared on a valid level."
-	IL_0018:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_001d:  br IL_0118
+	IL_008d:  ldloc.2 
+	IL_008e:  isinst [mscorlib]System.Int32
+	IL_0093:  brfalse IL_00b2
 
-	IL_0022:  ldarg.0 
-	IL_0023:  call instance object class NAnt.Core.Element::get_Parent()
-	IL_0028:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_002d:  ldtoken NAnt.Core.Project
-	IL_0032:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0037:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_003c:  brtrue IL_0060
+	IL_0098:  nop 
+	IL_0099:  ldloc.1 
+	IL_009a:  unbox.any [mscorlib]System.Int32
+	IL_009f:  ldloc.2 
+	IL_00a0:  unbox.any [mscorlib]System.Int32
+	IL_00a5:  add 
+	IL_00a6:  box [mscorlib]System.Int32
+	IL_00ab:  stloc.1 
+	IL_00ac:  nop 
+	IL_00ad:  br IL_02d6
 
-	IL_0041:  ldarg.0 
-	IL_0042:  call instance object class NAnt.Core.Element::get_Parent()
-	IL_0047:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_004c:  ldtoken NAnt.Core.Target
-	IL_0051:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0056:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_005b:  brfalse IL_00d5
+	IL_00b2:  ldloc.1 
+	IL_00b3:  isinst [mscorlib]System.Int32
+	IL_00b8:  brfalse IL_00e3
 
-	IL_0060:  nop 
-	IL_0061:  ldarg.0 
-	IL_0062:  call instance string class NAnt.Core.DataTypeBase::get_ID()
-	IL_0067:  call bool string::IsNullOrEmpty(string)
-	IL_006c:  brfalse IL_0098
+	IL_00bd:  ldloc.2 
+	IL_00be:  isinst [mscorlib]System.Int64
+	IL_00c3:  brfalse IL_00e3
 
-	IL_0071:  nop 
-	IL_0072:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0077:  ldstr "NA1010"
-	IL_007c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0081:  ldarg.0 
-	IL_0082:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_0087:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_008c:  ldarg.0 
-	IL_008d:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0092:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0097:  throw 
-	IL_0098:  ldarg.0 
-	IL_0099:  call instance string class NAnt.Core.DataTypeBase::get_RefID()
-	IL_009e:  call bool string::IsNullOrEmpty(string)
-	IL_00a3:  brtrue IL_00cf
+	IL_00c8:  nop 
+	IL_00c9:  ldloc.1 
+	IL_00ca:  unbox.any [mscorlib]System.Int32
+	IL_00cf:  conv.i8 
+	IL_00d0:  ldloc.2 
+	IL_00d1:  unbox.any [mscorlib]System.Int64
+	IL_00d6:  add 
+	IL_00d7:  box [mscorlib]System.Int64
+	IL_00dc:  stloc.1 
+	IL_00dd:  nop 
+	IL_00de:  br IL_02d6
 
-	IL_00a8:  nop 
-	IL_00a9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00ae:  ldstr "NA1009"
-	IL_00b3:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00b8:  ldarg.0 
-	IL_00b9:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_00be:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00c3:  ldarg.0 
-	IL_00c4:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_00c9:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_00ce:  throw 
-	IL_00cf:  nop 
-	IL_00d0:  br IL_0118
+	IL_00e3:  ldloc.1 
+	IL_00e4:  isinst [mscorlib]System.Int32
+	IL_00e9:  brfalse IL_0114
 
-	IL_00d5:  nop 
-	IL_00d6:  ldarg.0 
-	IL_00d7:  call instance string class NAnt.Core.DataTypeBase::get_ID()
-	IL_00dc:  call bool string::IsNullOrEmpty(string)
-	IL_00e1:  brtrue IL_0117
+	IL_00ee:  ldloc.2 
+	IL_00ef:  isinst [mscorlib]System.Double
+	IL_00f4:  brfalse IL_0114
 
-	IL_00e6:  nop 
-	IL_00e7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00ec:  ldstr "NA1008"
-	IL_00f1:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00f6:  ldstr " can only be declared at Project or Target level."
-	IL_00fb:  call string string::Concat(string, string)
-	IL_0100:  ldarg.0 
-	IL_0101:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_0106:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_010b:  ldarg.0 
-	IL_010c:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
-	IL_0111:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0116:  throw 
-	IL_0117:  nop 
-	IL_0118:  ret 
-    } // end of method DataTypeBase::Initialize
+	IL_00f9:  nop 
+	IL_00fa:  ldloc.1 
+	IL_00fb:  unbox.any [mscorlib]System.Int32
+	IL_0100:  conv.r8 
+	IL_0101:  ldloc.2 
+	IL_0102:  unbox.any [mscorlib]System.Double
+	IL_0107:  add 
+	IL_0108:  box [mscorlib]System.Double
+	IL_010d:  stloc.1 
+	IL_010e:  nop 
+	IL_010f:  br IL_02d6
 
-    // method line 2027
-    .method public virtual hidebysig newslot 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x75b5
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method DataTypeBase::Reset
+	IL_0114:  ldloc.1 
+	IL_0115:  isinst [mscorlib]System.Int64
+	IL_011a:  brfalse IL_0144
 
-    // method line 2028
-    .method family hidebysig 
-           instance default void CopyTo (class NAnt.Core.DataTypeBase clone)  cil managed 
-    {
-        // Method begins at RVA 0x75b8
-	// Code size 33 (0x21)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.Core.Element::CopyTo(class NAnt.Core.Element)
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldfld string NAnt.Core.DataTypeBase::_id
-	IL_000f:  stfld string NAnt.Core.DataTypeBase::_id
-	IL_0014:  ldarg.1 
-	IL_0015:  ldarg.0 
-	IL_0016:  ldfld string NAnt.Core.DataTypeBase::_refID
-	IL_001b:  stfld string NAnt.Core.DataTypeBase::_refID
-	IL_0020:  ret 
-    } // end of method DataTypeBase::CopyTo
+	IL_011f:  ldloc.2 
+	IL_0120:  isinst [mscorlib]System.Int64
+	IL_0125:  brfalse IL_0144
 
-	.property instance string ID ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 64 00 00 ) // ...id..
+	IL_012a:  nop 
+	IL_012b:  ldloc.1 
+	IL_012c:  unbox.any [mscorlib]System.Int64
+	IL_0131:  ldloc.2 
+	IL_0132:  unbox.any [mscorlib]System.Int64
+	IL_0137:  add 
+	IL_0138:  box [mscorlib]System.Int64
+	IL_013d:  stloc.1 
+	IL_013e:  nop 
+	IL_013f:  br IL_02d6
 
-		.get instance default string NAnt.Core.DataTypeBase::get_ID () 
-		.set instance default void NAnt.Core.DataTypeBase::set_ID (string 'value') 
-	}
-	.property instance string RefID ()
-	{
-		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 72 65 66 69 64 00 00 ) // ...refid..
+	IL_0144:  ldloc.1 
+	IL_0145:  isinst [mscorlib]System.Int64
+	IL_014a:  brfalse IL_0175
 
-		.get instance default string NAnt.Core.DataTypeBase::get_RefID () 
-		.set instance default void NAnt.Core.DataTypeBase::set_RefID (string 'value') 
-	}
-	.property instance bool CanBeReferenced ()
-	{
-		.get instance default bool NAnt.Core.DataTypeBase::get_CanBeReferenced () 
-	}
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.Core.DataTypeBase::get_Name () 
-	}
-  } // end of class NAnt.Core.DataTypeBase
-}
+	IL_014f:  ldloc.2 
+	IL_0150:  isinst [mscorlib]System.Int32
+	IL_0155:  brfalse IL_0175
 
-.namespace NAnt.Core
-{
-  .class public auto ansi beforefieldinit ConfigurationSection
-  	extends [mscorlib]System.Object
-  	implements [System]System.Configuration.IConfigurationSectionHandler  {
+	IL_015a:  nop 
+	IL_015b:  ldloc.1 
+	IL_015c:  unbox.any [mscorlib]System.Int64
+	IL_0161:  ldloc.2 
+	IL_0162:  unbox.any [mscorlib]System.Int32
+	IL_0167:  conv.i8 
+	IL_0168:  add 
+	IL_0169:  box [mscorlib]System.Int64
+	IL_016e:  stloc.1 
+	IL_016f:  nop 
+	IL_0170:  br IL_02d6
 
-    // method line 2029
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x22f64
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method ConfigurationSection::.ctor
+	IL_0175:  ldloc.1 
+	IL_0176:  isinst [mscorlib]System.Int64
+	IL_017b:  brfalse IL_01a6
 
-    // method line 2030
-    .method public final virtual hidebysig newslot 
-           instance default object Create (object parent, object configContext, class [System.Xml]System.Xml.XmlNode node)  cil managed 
-    {
-        // Method begins at RVA 0x22f6c
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		object	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.3 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_0180:  ldloc.2 
+	IL_0181:  isinst [mscorlib]System.Double
+	IL_0186:  brfalse IL_01a6
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ConfigurationSection::Create
+	IL_018b:  nop 
+	IL_018c:  ldloc.1 
+	IL_018d:  unbox.any [mscorlib]System.Int64
+	IL_0192:  conv.r8 
+	IL_0193:  ldloc.2 
+	IL_0194:  unbox.any [mscorlib]System.Double
+	IL_0199:  add 
+	IL_019a:  box [mscorlib]System.Double
+	IL_019f:  stloc.1 
+	IL_01a0:  nop 
+	IL_01a1:  br IL_02d6
 
-  } // end of class NAnt.Core.ConfigurationSection
-}
+	IL_01a6:  ldloc.1 
+	IL_01a7:  isinst [mscorlib]System.Double
+	IL_01ac:  brfalse IL_01d6
 
-.namespace NAnt.Core
-{
-  .class public auto ansi beforefieldinit ConsoleDriver
-  	extends [mscorlib]System.Object
-  {
-    .field private static literal  int32 INDENTATION_SIZE = int32(0x00000004)
+	IL_01b1:  ldloc.2 
+	IL_01b2:  isinst [mscorlib]System.Double
+	IL_01b7:  brfalse IL_01d6
 
-    // method line 2031
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x22f82
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method ConsoleDriver::.ctor
+	IL_01bc:  nop 
+	IL_01bd:  ldloc.1 
+	IL_01be:  unbox.any [mscorlib]System.Double
+	IL_01c3:  ldloc.2 
+	IL_01c4:  unbox.any [mscorlib]System.Double
+	IL_01c9:  add 
+	IL_01ca:  box [mscorlib]System.Double
+	IL_01cf:  stloc.1 
+	IL_01d0:  nop 
+	IL_01d1:  br IL_02d6
 
-    // method line 2032
-    .method public static hidebysig 
-           default int32 Main (string[] args)  cil managed 
-    {
-        // Method begins at RVA 0x22f8c
-	// Code size 1595 (0x63b)
-	.maxstack 4
-	.locals init (
-		class NAnt.Core.Util.CommandLineParser	V_0,
-		class NAnt.Core.Project	V_1,
-		valuetype NAnt.Core.Level	V_2,
-		class NAnt.Core.Util.AssemblyResolver	V_3,
-		class NAnt.Core.CommandLineOptions	V_4,
-		int32	V_5,
-		class NAnt.Core.PropertyDictionary	V_6,
-		string	V_7,
-		class [System]System.Collections.Specialized.StringEnumerator	V_8,
-		class [mscorlib]System.IDisposable	V_9,
-		string	V_10,
-		class [mscorlib]System.Collections.IEnumerator	V_11,
-		class [mscorlib]System.IDisposable	V_12,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_13,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_14,
-		class [mscorlib]System.IDisposable	V_15,
-		class [mscorlib]System.Reflection.Assembly	V_16,
-		class NAnt.Core.FrameworkInfo	V_17,
-		class [mscorlib]System.Exception	V_18,
-		class NAnt.Core.FrameworkInfo[]	V_19,
-		class NAnt.Core.FrameworkInfo	V_20,
-		class NAnt.Core.FrameworkInfo[]	V_21,
-		int32	V_22,
-		class NAnt.Core.Util.CommandLineArgumentException	V_23,
-		class [mscorlib]System.ApplicationException	V_24,
-		class [mscorlib]System.Exception	V_25)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldnull 
-	IL_0004:  stloc.1 
-	IL_0005:  ldc.i4 3000
-	IL_000a:  stloc.2 
-	IL_000b:  newobj instance void class NAnt.Core.Util.AssemblyResolver::'.ctor'()
-	IL_0010:  stloc.3 
-	IL_0011:  ldloc.3 
-	IL_0012:  callvirt instance void class NAnt.Core.Util.AssemblyResolver::Attach()
-	IL_0017:  newobj instance void class NAnt.Core.CommandLineOptions::'.ctor'()
-	IL_001c:  stloc.s 4
-	.try { // 7
-	  .try { // 4
-	    IL_001e:  nop 
-	    IL_001f:  ldtoken NAnt.Core.CommandLineOptions
-	    IL_0024:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	    IL_0029:  ldc.i4.1 
-	    IL_002a:  newobj instance void class NAnt.Core.Util.CommandLineParser::'.ctor'(class [mscorlib]System.Type, bool)
-	    IL_002f:  stloc.0 
-	    IL_0030:  ldloc.0 
-	    IL_0031:  ldarg.0 
-	    IL_0032:  ldloc.s 4
-	    IL_0034:  callvirt instance void class NAnt.Core.Util.CommandLineParser::Parse(string[], object)
-	    IL_0039:  ldloc.s 4
-	    IL_003b:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_NoLogo()
-	    IL_0040:  brtrue IL_0057
+	IL_01d6:  ldloc.1 
+	IL_01d7:  isinst [mscorlib]System.Double
+	IL_01dc:  brfalse IL_0207
 
-	    IL_0045:  nop 
-	    IL_0046:  ldloc.0 
-	    IL_0047:  callvirt instance string class NAnt.Core.Util.CommandLineParser::get_LogoBanner()
-	    IL_004c:  call void class [mscorlib]System.Console::WriteLine(string)
-	    IL_0051:  call void class [mscorlib]System.Console::WriteLine()
-	    IL_0056:  nop 
-	    IL_0057:  ldloc.s 4
-	    IL_0059:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_ShowHelp()
-	    IL_005e:  brfalse IL_0072
+	IL_01e1:  ldloc.2 
+	IL_01e2:  isinst [mscorlib]System.Int32
+	IL_01e7:  brfalse IL_0207
 
-	    IL_0063:  nop 
-	    IL_0064:  ldloc.0 
-	    IL_0065:  call void class NAnt.Core.ConsoleDriver::ShowHelp(class NAnt.Core.Util.CommandLineParser)
-	    IL_006a:  ldc.i4.0 
-	    IL_006b:  stloc.s 5
-	    IL_006d:  leave IL_0638
+	IL_01ec:  nop 
+	IL_01ed:  ldloc.1 
+	IL_01ee:  unbox.any [mscorlib]System.Double
+	IL_01f3:  ldloc.2 
+	IL_01f4:  unbox.any [mscorlib]System.Int32
+	IL_01f9:  conv.r8 
+	IL_01fa:  add 
+	IL_01fb:  box [mscorlib]System.Double
+	IL_0200:  stloc.1 
+	IL_0201:  nop 
+	IL_0202:  br IL_02d6
 
-	    IL_0072:  ldloc.s 4
-	    IL_0074:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_Debug()
-	    IL_0079:  brfalse IL_008b
+	IL_0207:  ldloc.1 
+	IL_0208:  isinst [mscorlib]System.Double
+	IL_020d:  brfalse IL_0238
 
-	    IL_007e:  nop 
-	    IL_007f:  ldc.i4 1000
-	    IL_0084:  stloc.2 
-	    IL_0085:  nop 
-	    IL_0086:  br IL_00b8
+	IL_0212:  ldloc.2 
+	IL_0213:  isinst [mscorlib]System.Int64
+	IL_0218:  brfalse IL_0238
 
-	    IL_008b:  ldloc.s 4
-	    IL_008d:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_Verbose()
-	    IL_0092:  brfalse IL_00a4
+	IL_021d:  nop 
+	IL_021e:  ldloc.1 
+	IL_021f:  unbox.any [mscorlib]System.Double
+	IL_0224:  ldloc.2 
+	IL_0225:  unbox.any [mscorlib]System.Int64
+	IL_022a:  conv.r8 
+	IL_022b:  add 
+	IL_022c:  box [mscorlib]System.Double
+	IL_0231:  stloc.1 
+	IL_0232:  nop 
+	IL_0233:  br IL_02d6
 
-	    IL_0097:  nop 
-	    IL_0098:  ldc.i4 2000
-	    IL_009d:  stloc.2 
-	    IL_009e:  nop 
-	    IL_009f:  br IL_00b8
+	IL_0238:  ldloc.1 
+	IL_0239:  isinst [mscorlib]System.DateTime
+	IL_023e:  brfalse IL_026c
 
-	    IL_00a4:  ldloc.s 4
-	    IL_00a6:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_Quiet()
-	    IL_00ab:  brfalse IL_00b8
+	IL_0243:  ldloc.2 
+	IL_0244:  isinst [mscorlib]System.TimeSpan
+	IL_0249:  brfalse IL_026c
 
-	    IL_00b0:  nop 
-	    IL_00b1:  ldc.i4 4000
-	    IL_00b6:  stloc.2 
-	    IL_00b7:  nop 
-	    IL_00b8:  ldloc.s 4
-	    IL_00ba:  callvirt instance string class NAnt.Core.CommandLineOptions::get_BuildFile()
-	    IL_00bf:  brfalse IL_0109
+	IL_024e:  nop 
+	IL_024f:  ldloc.1 
+	IL_0250:  unbox.any [mscorlib]System.DateTime
+	IL_0255:  ldloc.2 
+	IL_0256:  unbox.any [mscorlib]System.TimeSpan
+	IL_025b:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::op_Addition(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.TimeSpan)
+	IL_0260:  box [mscorlib]System.DateTime
+	IL_0265:  stloc.1 
+	IL_0266:  nop 
+	IL_0267:  br IL_02d6
 
-	    IL_00c4:  nop 
-	    IL_00c5:  ldloc.1 
-	    IL_00c6:  brfalse IL_00f3
+	IL_026c:  ldloc.1 
+	IL_026d:  isinst [mscorlib]System.TimeSpan
+	IL_0272:  brfalse IL_02a0
 
-	    IL_00cb:  nop 
-	    IL_00cc:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_00d1:  ldstr "Buildfile has already been loaded! Using new value '{0}'; discarding old project file '{1}'"
-	    IL_00d6:  ldloc.s 4
-	    IL_00d8:  callvirt instance string class NAnt.Core.CommandLineOptions::get_BuildFile()
-	    IL_00dd:  ldloc.1 
-	    IL_00de:  callvirt instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
-	    IL_00e3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	    IL_00e8:  call void class [mscorlib]System.Console::WriteLine(string)
-	    IL_00ed:  call void class [mscorlib]System.Console::WriteLine()
-	    IL_00f2:  nop 
-	    IL_00f3:  ldloc.s 4
-	    IL_00f5:  callvirt instance string class NAnt.Core.CommandLineOptions::get_BuildFile()
-	    IL_00fa:  ldloc.2 
-	    IL_00fb:  ldloc.s 4
-	    IL_00fd:  callvirt instance int32 class NAnt.Core.CommandLineOptions::get_IndentationLevel()
-	    IL_0102:  newobj instance void class NAnt.Core.Project::'.ctor'(string, valuetype NAnt.Core.Level, int32)
-	    IL_0107:  stloc.1 
-	    IL_0108:  nop 
-	    IL_0109:  ldloc.1 
-	    IL_010a:  brtrue IL_0131
+	IL_0277:  ldloc.2 
+	IL_0278:  isinst [mscorlib]System.TimeSpan
+	IL_027d:  brfalse IL_02a0
 
-	    IL_010f:  nop 
-	    IL_0110:  call string class [mscorlib]System.Environment::get_CurrentDirectory()
-	    IL_0115:  ldnull 
-	    IL_0116:  ldloc.s 4
-	    IL_0118:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_FindInParent()
-	    IL_011d:  call string class NAnt.Core.ConsoleDriver::GetBuildFileName(string, string, bool)
-	    IL_0122:  ldloc.2 
-	    IL_0123:  ldloc.s 4
-	    IL_0125:  callvirt instance int32 class NAnt.Core.CommandLineOptions::get_IndentationLevel()
-	    IL_012a:  newobj instance void class NAnt.Core.Project::'.ctor'(string, valuetype NAnt.Core.Level, int32)
-	    IL_012f:  stloc.1 
-	    IL_0130:  nop 
-	    IL_0131:  ldloc.s 4
-	    IL_0133:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.CommandLineOptions::get_ExtensionAssemblies()
-	    IL_0138:  ldloc.1 
-	    IL_0139:  call void class NAnt.Core.ConsoleDriver::LoadExtensionAssemblies(class [System]System.Collections.Specialized.StringCollection, class NAnt.Core.Project)
-	    IL_013e:  ldloc.1 
-	    IL_013f:  newobj instance void class NAnt.Core.PropertyDictionary::'.ctor'(class NAnt.Core.Project)
-	    IL_0144:  stloc.s 6
-	    IL_0146:  ldloc.s 4
-	    IL_0148:  ldloc.1 
-	    IL_0149:  call void class NAnt.Core.ConsoleDriver::AddBuildListeners(class NAnt.Core.CommandLineOptions, class NAnt.Core.Project)
-	    IL_014e:  nop 
-	    IL_014f:  ldloc.s 4
-	    IL_0151:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.CommandLineOptions::get_Targets()
-	    IL_0156:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	    IL_015b:  stloc.s 8
-	    .try { // 0
-	      IL_015d:  br IL_017b
+	IL_0282:  nop 
+	IL_0283:  ldloc.1 
+	IL_0284:  unbox.any [mscorlib]System.TimeSpan
+	IL_0289:  ldloc.2 
+	IL_028a:  unbox.any [mscorlib]System.TimeSpan
+	IL_028f:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::op_Addition(valuetype [mscorlib]System.TimeSpan, valuetype [mscorlib]System.TimeSpan)
+	IL_0294:  box [mscorlib]System.TimeSpan
+	IL_0299:  stloc.1 
+	IL_029a:  nop 
+	IL_029b:  br IL_02d6
 
-	      IL_0162:  ldloc.s 8
-	      IL_0164:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	      IL_0169:  stloc.s 7
-	      IL_016b:  nop 
-	      IL_016c:  ldloc.1 
-	      IL_016d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
-	      IL_0172:  ldloc.s 7
-	      IL_0174:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	      IL_0179:  pop 
-	      IL_017a:  nop 
-	      IL_017b:  ldloc.s 8
-	      IL_017d:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	      IL_0182:  brtrue IL_0162
+	IL_02a0:  nop 
+	IL_02a1:  ldarg.0 
+	IL_02a2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_02a7:  ldstr "NA1041"
+	IL_02ac:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_02b1:  ldarg.0 
+	IL_02b2:  ldloc.1 
+	IL_02b3:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_02b8:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_02bd:  ldarg.0 
+	IL_02be:  ldloc.2 
+	IL_02bf:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_02c4:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_02c9:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_02ce:  ldloc.0 
+	IL_02cf:  ldloc.3 
+	IL_02d0:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_02d5:  throw 
+	IL_02d6:  nop 
+	IL_02d7:  nop 
+	IL_02d8:  br IL_05cb
 
-	      IL_0187:  leave IL_01a3
+	IL_02dd:  ldarg.0 
+	IL_02de:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_02e3:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_02e8:  ldc.i4.s 0x0c
+	IL_02ea:  bne.un IL_05c5
 
-	    } // end .try 0
-	    finally  { // 0
-	      IL_018c:  ldloc.s 8
-	      IL_018e:  isinst [mscorlib]System.IDisposable
-	      IL_0193:  dup 
-	      IL_0194:  stloc.s 9
-	      IL_0196:  brfalse IL_01a2
+	IL_02ef:  nop 
+	IL_02f0:  ldarg.0 
+	IL_02f1:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_02f6:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_02fb:  ldarg.0 
+	IL_02fc:  call instance object class NAnt.Core.ExpressionEvalBase::ParseMulDiv()
+	IL_0301:  stloc.s 4
+	IL_0303:  ldarg.0 
+	IL_0304:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0309:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_030e:  stloc.s 5
+	IL_0310:  ldarg.0 
+	IL_0311:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	IL_0316:  brtrue IL_05bf
 
-	      IL_019b:  ldloc.s 9
-	      IL_019d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	      IL_01a2:  endfinally 
-	    } // end handler 0
-	    IL_01a3:  nop 
-	    IL_01a4:  ldloc.s 4
-	    IL_01a6:  callvirt instance class [System]System.Collections.Specialized.NameValueCollection class NAnt.Core.CommandLineOptions::get_Properties()
-	    IL_01ab:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System]System.Collections.Specialized.NameObjectCollectionBase::GetEnumerator()
-	    IL_01b0:  stloc.s 11
-	    .try { // 1
-	      IL_01b2:  br IL_01de
+	IL_031b:  nop 
+	IL_031c:  ldloc.1 
+	IL_031d:  isinst [mscorlib]System.Int32
+	IL_0322:  brfalse IL_034e
 
-	      IL_01b7:  ldloc.s 11
-	      IL_01b9:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	      IL_01be:  castclass [mscorlib]System.String
-	      IL_01c3:  stloc.s 10
-	      IL_01c5:  nop 
-	      IL_01c6:  ldloc.s 6
-	      IL_01c8:  ldloc.s 10
-	      IL_01ca:  ldloc.s 4
-	      IL_01cc:  callvirt instance class [System]System.Collections.Specialized.NameValueCollection class NAnt.Core.CommandLineOptions::get_Properties()
-	      IL_01d1:  ldloc.s 10
-	      IL_01d3:  callvirt instance string class [System]System.Collections.Specialized.NameValueCollection::Get(string)
-	      IL_01d8:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	      IL_01dd:  nop 
-	      IL_01de:  ldloc.s 11
-	      IL_01e0:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	      IL_01e5:  brtrue IL_01b7
+	IL_0327:  ldloc.s 4
+	IL_0329:  isinst [mscorlib]System.Int32
+	IL_032e:  brfalse IL_034e
 
-	      IL_01ea:  leave IL_0206
+	IL_0333:  nop 
+	IL_0334:  ldloc.1 
+	IL_0335:  unbox.any [mscorlib]System.Int32
+	IL_033a:  ldloc.s 4
+	IL_033c:  unbox.any [mscorlib]System.Int32
+	IL_0341:  sub 
+	IL_0342:  box [mscorlib]System.Int32
+	IL_0347:  stloc.1 
+	IL_0348:  nop 
+	IL_0349:  br IL_05be
 
-	    } // end .try 1
-	    finally  { // 1
-	      IL_01ef:  ldloc.s 11
-	      IL_01f1:  isinst [mscorlib]System.IDisposable
-	      IL_01f6:  dup 
-	      IL_01f7:  stloc.s 12
-	      IL_01f9:  brfalse IL_0205
+	IL_034e:  ldloc.1 
+	IL_034f:  isinst [mscorlib]System.Int32
+	IL_0354:  brfalse IL_0381
 
-	      IL_01fe:  ldloc.s 12
-	      IL_0200:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	      IL_0205:  endfinally 
-	    } // end handler 1
-	    IL_0206:  nop 
-	    IL_0207:  ldloc.s 6
-	    IL_0209:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.DictionaryBase::GetEnumerator()
-	    IL_020e:  stloc.s 14
-	    .try { // 2
-	      IL_0210:  br IL_0248
+	IL_0359:  ldloc.s 4
+	IL_035b:  isinst [mscorlib]System.Int64
+	IL_0360:  brfalse IL_0381
 
-	      IL_0215:  ldloc.s 14
-	      IL_0217:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	      IL_021c:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	      IL_0221:  stloc.s 13
-	      IL_0223:  nop 
-	      IL_0224:  ldloc.1 
-	      IL_0225:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	      IL_022a:  ldloca.s 13
-	      IL_022c:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	      IL_0231:  castclass [mscorlib]System.String
-	      IL_0236:  ldloca.s 13
-	      IL_0238:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	      IL_023d:  castclass [mscorlib]System.String
-	      IL_0242:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	      IL_0247:  nop 
-	      IL_0248:  ldloc.s 14
-	      IL_024a:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	      IL_024f:  brtrue IL_0215
+	IL_0365:  nop 
+	IL_0366:  ldloc.1 
+	IL_0367:  unbox.any [mscorlib]System.Int32
+	IL_036c:  conv.i8 
+	IL_036d:  ldloc.s 4
+	IL_036f:  unbox.any [mscorlib]System.Int64
+	IL_0374:  sub 
+	IL_0375:  box [mscorlib]System.Int64
+	IL_037a:  stloc.1 
+	IL_037b:  nop 
+	IL_037c:  br IL_05be
 
-	      IL_0254:  leave IL_0270
+	IL_0381:  ldloc.1 
+	IL_0382:  isinst [mscorlib]System.Int32
+	IL_0387:  brfalse IL_03b4
 
-	    } // end .try 2
-	    finally  { // 2
-	      IL_0259:  ldloc.s 14
-	      IL_025b:  isinst [mscorlib]System.IDisposable
-	      IL_0260:  dup 
-	      IL_0261:  stloc.s 15
-	      IL_0263:  brfalse IL_026f
+	IL_038c:  ldloc.s 4
+	IL_038e:  isinst [mscorlib]System.Double
+	IL_0393:  brfalse IL_03b4
 
-	      IL_0268:  ldloc.s 15
-	      IL_026a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	      IL_026f:  endfinally 
-	    } // end handler 2
-	    IL_0270:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetExecutingAssembly()
-	    IL_0275:  stloc.s 16
-	    IL_0277:  ldloc.1 
-	    IL_0278:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	    IL_027d:  ldstr "nant.filename"
-	    IL_0282:  ldloc.s 16
-	    IL_0284:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
-	    IL_0289:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	    IL_028e:  ldloc.1 
-	    IL_028f:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	    IL_0294:  ldstr "nant.version"
-	    IL_0299:  ldloc.s 16
-	    IL_029b:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
-	    IL_02a0:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
-	    IL_02a5:  callvirt instance string object::ToString()
-	    IL_02aa:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	    IL_02af:  ldloc.1 
-	    IL_02b0:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	    IL_02b5:  ldstr "nant.location"
-	    IL_02ba:  ldloc.s 16
-	    IL_02bc:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
-	    IL_02c1:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	    IL_02c6:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
-	    IL_02cb:  ldloc.s 4
-	    IL_02cd:  callvirt instance string class NAnt.Core.CommandLineOptions::get_TargetFramework()
-	    IL_02d2:  brfalse IL_0414
+	IL_0398:  nop 
+	IL_0399:  ldloc.1 
+	IL_039a:  unbox.any [mscorlib]System.Int32
+	IL_039f:  conv.r8 
+	IL_03a0:  ldloc.s 4
+	IL_03a2:  unbox.any [mscorlib]System.Double
+	IL_03a7:  sub 
+	IL_03a8:  box [mscorlib]System.Double
+	IL_03ad:  stloc.1 
+	IL_03ae:  nop 
+	IL_03af:  br IL_05be
 
-	    IL_02d7:  nop 
-	    IL_02d8:  ldloc.1 
-	    IL_02d9:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
-	    IL_02de:  ldloc.s 4
-	    IL_02e0:  callvirt instance string class NAnt.Core.CommandLineOptions::get_TargetFramework()
-	    IL_02e5:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionary::get_Item(string)
-	    IL_02ea:  stloc.s 17
-	    IL_02ec:  ldloc.s 17
-	    IL_02ee:  brfalse IL_0363
+	IL_03b4:  ldloc.1 
+	IL_03b5:  isinst [mscorlib]System.Int64
+	IL_03ba:  brfalse IL_03e6
 
-	    IL_02f3:  nop 
-	    .try { // 3
-	      IL_02f4:  nop 
-	      IL_02f5:  ldloc.s 17
-	      IL_02f7:  callvirt instance void class NAnt.Core.FrameworkInfo::Validate()
-	      IL_02fc:  ldloc.1 
-	      IL_02fd:  ldloc.s 17
-	      IL_02ff:  callvirt instance void class NAnt.Core.Project::set_TargetFramework(class NAnt.Core.FrameworkInfo)
-	      IL_0304:  nop 
-	      IL_0305:  leave IL_035d
+	IL_03bf:  ldloc.s 4
+	IL_03c1:  isinst [mscorlib]System.Int64
+	IL_03c6:  brfalse IL_03e6
 
-	    } // end .try 3
-	    catch class [mscorlib]System.Exception { // 3
-	      IL_030a:  stloc.s 18
-	      IL_030c:  nop 
-	      IL_030d:  ldloc.s 18
-	      IL_030f:  call void class NAnt.Core.ConsoleDriver::WriteException(class [mscorlib]System.Exception)
-	      IL_0314:  ldc.i4 1000
-	      IL_0319:  ldloc.2 
-	      IL_031a:  blt IL_0355
+	IL_03cb:  nop 
+	IL_03cc:  ldloc.1 
+	IL_03cd:  unbox.any [mscorlib]System.Int64
+	IL_03d2:  ldloc.s 4
+	IL_03d4:  unbox.any [mscorlib]System.Int64
+	IL_03d9:  sub 
+	IL_03da:  box [mscorlib]System.Int64
+	IL_03df:  stloc.1 
+	IL_03e0:  nop 
+	IL_03e1:  br IL_05be
 
-	      IL_031f:  nop 
-	      IL_0320:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	      IL_0325:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	      IL_032a:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	      IL_032f:  ldstr "Stacktrace:"
-	      IL_0334:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	      IL_0339:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	      IL_033e:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	      IL_0343:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	      IL_0348:  ldloc.s 18
-	      IL_034a:  callvirt instance string object::ToString()
-	      IL_034f:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	      IL_0354:  nop 
-	      IL_0355:  ldc.i4.1 
-	      IL_0356:  stloc.s 5
-	      IL_0358:  leave IL_0638
+	IL_03e6:  ldloc.1 
+	IL_03e7:  isinst [mscorlib]System.Int64
+	IL_03ec:  brfalse IL_0419
 
-	    } // end handler 3
-	    IL_035d:  nop 
-	    IL_035e:  br IL_0413
+	IL_03f1:  ldloc.s 4
+	IL_03f3:  isinst [mscorlib]System.Int32
+	IL_03f8:  brfalse IL_0419
 
-	    IL_0363:  nop 
-	    IL_0364:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_0369:  ldstr "Invalid framework '{0}' specified."
-	    IL_036e:  ldloc.s 4
-	    IL_0370:  callvirt instance string class NAnt.Core.CommandLineOptions::get_TargetFramework()
-	    IL_0375:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	    IL_037a:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_037f:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	    IL_0384:  ldloc.1 
-	    IL_0385:  ldc.i4.2 
-	    IL_0386:  callvirt instance class NAnt.Core.FrameworkInfo[] class NAnt.Core.Project::GetFrameworks(valuetype NAnt.Core.FrameworkTypes)
-	    IL_038b:  stloc.s 19
-	    IL_038d:  ldloc.s 19
-	    IL_038f:  ldlen 
-	    IL_0390:  conv.i4 
-	    IL_0391:  brtrue IL_03ac
+	IL_03fd:  nop 
+	IL_03fe:  ldloc.1 
+	IL_03ff:  unbox.any [mscorlib]System.Int64
+	IL_0404:  ldloc.s 4
+	IL_0406:  unbox.any [mscorlib]System.Int32
+	IL_040b:  conv.i8 
+	IL_040c:  sub 
+	IL_040d:  box [mscorlib]System.Int64
+	IL_0412:  stloc.1 
+	IL_0413:  nop 
+	IL_0414:  br IL_05be
 
-	    IL_0396:  nop 
-	    IL_0397:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_039c:  ldstr "There are no supported frameworks available on your system."
-	    IL_03a1:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	    IL_03a6:  nop 
-	    IL_03a7:  br IL_040b
+	IL_0419:  ldloc.1 
+	IL_041a:  isinst [mscorlib]System.Int64
+	IL_041f:  brfalse IL_044c
 
-	    IL_03ac:  nop 
-	    IL_03ad:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_03b2:  ldstr "Possible values include:"
-	    IL_03b7:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	    IL_03bc:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_03c1:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	    IL_03c6:  nop 
-	    IL_03c7:  ldloc.s 19
-	    IL_03c9:  stloc.s 21
-	    IL_03cb:  ldc.i4.0 
-	    IL_03cc:  stloc.s 22
-	    IL_03ce:  br IL_03ff
+	IL_0424:  ldloc.s 4
+	IL_0426:  isinst [mscorlib]System.Double
+	IL_042b:  brfalse IL_044c
 
-	    IL_03d3:  ldloc.s 21
-	    IL_03d5:  ldloc.s 22
-	    IL_03d7:  ldelem.ref 
-	    IL_03d8:  stloc.s 20
-	    IL_03da:  nop 
-	    IL_03db:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_03e0:  ldstr "{0} ({1})"
-	    IL_03e5:  ldloc.s 20
-	    IL_03e7:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	    IL_03ec:  ldloc.s 20
-	    IL_03ee:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Description()
-	    IL_03f3:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object, object)
-	    IL_03f8:  nop 
-	    IL_03f9:  ldloc.s 22
-	    IL_03fb:  ldc.i4.1 
-	    IL_03fc:  add 
-	    IL_03fd:  stloc.s 22
-	    IL_03ff:  ldloc.s 22
-	    IL_0401:  ldloc.s 21
-	    IL_0403:  ldlen 
-	    IL_0404:  conv.i4 
-	    IL_0405:  blt IL_03d3
+	IL_0430:  nop 
+	IL_0431:  ldloc.1 
+	IL_0432:  unbox.any [mscorlib]System.Int64
+	IL_0437:  conv.r8 
+	IL_0438:  ldloc.s 4
+	IL_043a:  unbox.any [mscorlib]System.Double
+	IL_043f:  sub 
+	IL_0440:  box [mscorlib]System.Double
+	IL_0445:  stloc.1 
+	IL_0446:  nop 
+	IL_0447:  br IL_05be
 
-	    IL_040a:  nop 
-	    IL_040b:  ldc.i4.1 
-	    IL_040c:  stloc.s 5
-	    IL_040e:  leave IL_0638
+	IL_044c:  ldloc.1 
+	IL_044d:  isinst [mscorlib]System.Double
+	IL_0452:  brfalse IL_047e
 
-	    IL_0413:  nop 
-	    IL_0414:  ldloc.s 4
-	    IL_0416:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_ShowProjectHelp()
-	    IL_041b:  brfalse IL_0437
+	IL_0457:  ldloc.s 4
+	IL_0459:  isinst [mscorlib]System.Double
+	IL_045e:  brfalse IL_047e
 
-	    IL_0420:  nop 
-	    IL_0421:  call void class [mscorlib]System.Console::WriteLine()
-	    IL_0426:  ldloc.1 
-	    IL_0427:  callvirt instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::get_Document()
-	    IL_042c:  call void class NAnt.Core.ConsoleDriver::ShowProjectHelp(class [System.Xml]System.Xml.XmlDocument)
-	    IL_0431:  nop 
-	    IL_0432:  br IL_044d
+	IL_0463:  nop 
+	IL_0464:  ldloc.1 
+	IL_0465:  unbox.any [mscorlib]System.Double
+	IL_046a:  ldloc.s 4
+	IL_046c:  unbox.any [mscorlib]System.Double
+	IL_0471:  sub 
+	IL_0472:  box [mscorlib]System.Double
+	IL_0477:  stloc.1 
+	IL_0478:  nop 
+	IL_0479:  br IL_05be
 
-	    IL_0437:  nop 
-	    IL_0438:  ldloc.1 
-	    IL_0439:  callvirt instance bool class NAnt.Core.Project::Run()
-	    IL_043e:  brtrue IL_044c
+	IL_047e:  ldloc.1 
+	IL_047f:  isinst [mscorlib]System.Double
+	IL_0484:  brfalse IL_04b1
 
-	    IL_0443:  nop 
-	    IL_0444:  ldc.i4.1 
-	    IL_0445:  stloc.s 5
-	    IL_0447:  leave IL_0638
+	IL_0489:  ldloc.s 4
+	IL_048b:  isinst [mscorlib]System.Int32
+	IL_0490:  brfalse IL_04b1
 
-	    IL_044c:  nop 
-	    IL_044d:  ldc.i4.0 
-	    IL_044e:  stloc.s 5
-	    IL_0450:  leave IL_0638
+	IL_0495:  nop 
+	IL_0496:  ldloc.1 
+	IL_0497:  unbox.any [mscorlib]System.Double
+	IL_049c:  ldloc.s 4
+	IL_049e:  unbox.any [mscorlib]System.Int32
+	IL_04a3:  conv.r8 
+	IL_04a4:  sub 
+	IL_04a5:  box [mscorlib]System.Double
+	IL_04aa:  stloc.1 
+	IL_04ab:  nop 
+	IL_04ac:  br IL_05be
 
-	  } // end .try 4
-	  catch class NAnt.Core.Util.CommandLineArgumentException { // 4
-	    IL_0455:  stloc.s 23
-	    IL_0457:  nop 
-	    IL_0458:  ldloc.0 
-	    IL_0459:  brfalse IL_0475
+	IL_04b1:  ldloc.1 
+	IL_04b2:  isinst [mscorlib]System.Double
+	IL_04b7:  brfalse IL_04e4
 
-	    IL_045e:  nop 
-	    IL_045f:  ldloc.0 
-	    IL_0460:  callvirt instance string class NAnt.Core.Util.CommandLineParser::get_LogoBanner()
-	    IL_0465:  call void class [mscorlib]System.Console::WriteLine(string)
-	    IL_046a:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_046f:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	    IL_0474:  nop 
-	    IL_0475:  ldloc.s 23
-	    IL_0477:  call void class NAnt.Core.ConsoleDriver::WriteException(class [mscorlib]System.Exception)
-	    IL_047c:  ldc.i4 1000
-	    IL_0481:  ldloc.2 
-	    IL_0482:  blt IL_04bd
+	IL_04bc:  ldloc.s 4
+	IL_04be:  isinst [mscorlib]System.Int64
+	IL_04c3:  brfalse IL_04e4
 
-	    IL_0487:  nop 
-	    IL_0488:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_048d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	    IL_0492:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_0497:  ldstr "Stacktrace:"
-	    IL_049c:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	    IL_04a1:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_04a6:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	    IL_04ab:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_04b0:  ldloc.s 23
-	    IL_04b2:  callvirt instance string object::ToString()
-	    IL_04b7:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	    IL_04bc:  nop 
-	    IL_04bd:  call void class [mscorlib]System.Console::WriteLine()
-	    IL_04c2:  ldstr "Try 'nant -help' for more information"
-	    IL_04c7:  call void class [mscorlib]System.Console::WriteLine(string)
-	    IL_04cc:  ldc.i4.1 
-	    IL_04cd:  stloc.s 5
-	    IL_04cf:  leave IL_0638
+	IL_04c8:  nop 
+	IL_04c9:  ldloc.1 
+	IL_04ca:  unbox.any [mscorlib]System.Double
+	IL_04cf:  ldloc.s 4
+	IL_04d1:  unbox.any [mscorlib]System.Int64
+	IL_04d6:  conv.r8 
+	IL_04d7:  sub 
+	IL_04d8:  box [mscorlib]System.Double
+	IL_04dd:  stloc.1 
+	IL_04de:  nop 
+	IL_04df:  br IL_05be
 
-	  } // end handler 4
-	  catch class [mscorlib]System.ApplicationException { // 5
-	    IL_04d4:  stloc.s 24
-	    IL_04d6:  nop 
-	    IL_04d7:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_04dc:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	    IL_04e1:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_04e6:  ldstr "BUILD FAILED"
-	    IL_04eb:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	    IL_04f0:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_04f5:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	    IL_04fa:  ldloc.s 24
-	    IL_04fc:  call void class NAnt.Core.ConsoleDriver::WriteException(class [mscorlib]System.Exception)
-	    IL_0501:  ldc.i4 1000
-	    IL_0506:  ldloc.2 
-	    IL_0507:  blt IL_0547
+	IL_04e4:  ldloc.1 
+	IL_04e5:  isinst [mscorlib]System.DateTime
+	IL_04ea:  brfalse IL_051a
 
-	    IL_050c:  nop 
-	    IL_050d:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_0512:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	    IL_0517:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_051c:  ldstr "Stacktrace:"
-	    IL_0521:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	    IL_0526:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_052b:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	    IL_0530:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_0535:  ldloc.s 24
-	    IL_0537:  callvirt instance string object::ToString()
-	    IL_053c:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	    IL_0541:  nop 
-	    IL_0542:  br IL_055d
+	IL_04ef:  ldloc.s 4
+	IL_04f1:  isinst [mscorlib]System.DateTime
+	IL_04f6:  brfalse IL_051a
 
-	    IL_0547:  nop 
-	    IL_0548:  ldsfld string [mscorlib]System.String::Empty
-	    IL_054d:  call void class [mscorlib]System.Console::WriteLine(string)
-	    IL_0552:  ldstr "For more information regarding the cause of the build failure, run the build again in debug mode."
-	    IL_0557:  call void class [mscorlib]System.Console::WriteLine(string)
-	    IL_055c:  nop 
-	    IL_055d:  call void class [mscorlib]System.Console::WriteLine()
-	    IL_0562:  ldstr "Try 'nant -help' for more information"
-	    IL_0567:  call void class [mscorlib]System.Console::WriteLine(string)
-	    IL_056c:  ldc.i4.1 
-	    IL_056d:  stloc.s 5
-	    IL_056f:  leave IL_0638
+	IL_04fb:  nop 
+	IL_04fc:  ldloc.1 
+	IL_04fd:  unbox.any [mscorlib]System.DateTime
+	IL_0502:  ldloc.s 4
+	IL_0504:  unbox.any [mscorlib]System.DateTime
+	IL_0509:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.DateTime::op_Subtraction(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	IL_050e:  box [mscorlib]System.TimeSpan
+	IL_0513:  stloc.1 
+	IL_0514:  nop 
+	IL_0515:  br IL_05be
 
-	  } // end handler 5
-	  catch class [mscorlib]System.Exception { // 6
-	    IL_0574:  stloc.s 25
-	    IL_0576:  nop 
-	    IL_0577:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_057c:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	    IL_0581:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_0586:  ldstr "INTERNAL ERROR"
-	    IL_058b:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	    IL_0590:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_0595:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	    IL_059a:  ldloc.s 25
-	    IL_059c:  call void class NAnt.Core.ConsoleDriver::WriteException(class [mscorlib]System.Exception)
-	    IL_05a1:  ldc.i4 2000
-	    IL_05a6:  ldloc.2 
-	    IL_05a7:  blt IL_05e7
+	IL_051a:  ldloc.1 
+	IL_051b:  isinst [mscorlib]System.DateTime
+	IL_0520:  brfalse IL_0550
 
-	    IL_05ac:  nop 
-	    IL_05ad:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_05b2:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	    IL_05b7:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_05bc:  ldstr "Stacktrace:"
-	    IL_05c1:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	    IL_05c6:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_05cb:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	    IL_05d0:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	    IL_05d5:  ldloc.s 25
-	    IL_05d7:  callvirt instance string object::ToString()
-	    IL_05dc:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	    IL_05e1:  nop 
-	    IL_05e2:  br IL_05f8
+	IL_0525:  ldloc.s 4
+	IL_0527:  isinst [mscorlib]System.TimeSpan
+	IL_052c:  brfalse IL_0550
 
-	    IL_05e7:  nop 
-	    IL_05e8:  call void class [mscorlib]System.Console::WriteLine()
-	    IL_05ed:  ldstr "For more information regarding the cause of the build failure, run the build again in verbose mode."
-	    IL_05f2:  call void class [mscorlib]System.Console::WriteLine(string)
-	    IL_05f7:  nop 
-	    IL_05f8:  call void class [mscorlib]System.Console::WriteLine()
-	    IL_05fd:  ldstr "Please send a bug report (including the version of NAnt you're using) to nant-developers@lists.sourceforge.net"
-	    IL_0602:  call void class [mscorlib]System.Console::WriteLine(string)
-	    IL_0607:  ldc.i4.2 
-	    IL_0608:  stloc.s 5
-	    IL_060a:  leave IL_0638
+	IL_0531:  nop 
+	IL_0532:  ldloc.1 
+	IL_0533:  unbox.any [mscorlib]System.DateTime
+	IL_0538:  ldloc.s 4
+	IL_053a:  unbox.any [mscorlib]System.TimeSpan
+	IL_053f:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::op_Subtraction(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.TimeSpan)
+	IL_0544:  box [mscorlib]System.DateTime
+	IL_0549:  stloc.1 
+	IL_054a:  nop 
+	IL_054b:  br IL_05be
 
-	  } // end handler 6
-	} // end .try 7
-	finally  { // 7
-	  IL_060f:  nop 
-	  IL_0610:  ldloc.1 
-	  IL_0611:  brfalse IL_061e
+	IL_0550:  ldloc.1 
+	IL_0551:  isinst [mscorlib]System.TimeSpan
+	IL_0556:  brfalse IL_0586
 
-	  IL_0616:  nop 
-	  IL_0617:  ldloc.1 
-	  IL_0618:  callvirt instance void class NAnt.Core.Project::DetachBuildListeners()
-	  IL_061d:  nop 
-	  IL_061e:  ldloc.3 
-	  IL_061f:  callvirt instance void class NAnt.Core.Util.AssemblyResolver::Detach()
-	  IL_0624:  ldloc.s 4
-	  IL_0626:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_Pause()
-	  IL_062b:  brfalse IL_0636
+	IL_055b:  ldloc.s 4
+	IL_055d:  isinst [mscorlib]System.TimeSpan
+	IL_0562:  brfalse IL_0586
 
-	  IL_0630:  call valuetype [mscorlib]System.ConsoleKeyInfo class [mscorlib]System.Console::ReadKey()
-	  IL_0635:  pop 
-	  IL_0636:  nop 
-	  IL_0637:  endfinally 
-	} // end handler 7
-	IL_0638:  ldloc.s 5
-	IL_063a:  ret 
-    } // end of method ConsoleDriver::Main
+	IL_0567:  nop 
+	IL_0568:  ldloc.1 
+	IL_0569:  unbox.any [mscorlib]System.TimeSpan
+	IL_056e:  ldloc.s 4
+	IL_0570:  unbox.any [mscorlib]System.TimeSpan
+	IL_0575:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::op_Subtraction(valuetype [mscorlib]System.TimeSpan, valuetype [mscorlib]System.TimeSpan)
+	IL_057a:  box [mscorlib]System.TimeSpan
+	IL_057f:  stloc.1 
+	IL_0580:  nop 
+	IL_0581:  br IL_05be
 
-    // method line 2033
-    .method public static hidebysig 
-           default void ShowProjectHelp (class [System.Xml]System.Xml.XmlDocument buildDoc)  cil managed 
-    {
-        // Method begins at RVA 0x23698
-	// Code size 150 (0x96)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.IO.Stream	V_0,
-		class [System.Xml]System.Xml.XmlTextReader	V_1,
-		class [System.Xml]System.Xml.XmlDocument	V_2,
-		class [System.Xml]System.Xml.Xsl.XslCompiledTransform	V_3,
-		class [mscorlib]System.Text.StringBuilder	V_4,
-		class [mscorlib]System.IO.StringWriter	V_5,
-		class [System.Xml]System.Xml.Xsl.XsltArgumentList	V_6)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetExecutingAssembly()
-	IL_0006:  ldstr "NAnt.Core.Resources.ProjectHelp.xslt"
-	IL_000b:  callvirt instance class [mscorlib]System.IO.Stream class [mscorlib]System.Reflection.Assembly::GetManifestResourceStream(string)
-	IL_0010:  stloc.0 
-	IL_0011:  ldloc.0 
-	IL_0012:  brtrue IL_0023
+	IL_0586:  nop 
+	IL_0587:  ldarg.0 
+	IL_0588:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_058d:  ldstr "NA1048"
+	IL_0592:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0597:  ldarg.0 
+	IL_0598:  ldloc.1 
+	IL_0599:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_059e:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_05a3:  ldarg.0 
+	IL_05a4:  ldloc.s 4
+	IL_05a6:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_05ab:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_05b0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_05b5:  ldloc.0 
+	IL_05b6:  ldloc.s 5
+	IL_05b8:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_05bd:  throw 
+	IL_05be:  nop 
+	IL_05bf:  nop 
+	IL_05c0:  br IL_05cb
 
-	IL_0017:  nop 
-	IL_0018:  ldstr "Missing 'ProjectHelp.xslt' Resource Stream"
-	IL_001d:  newobj instance void class [mscorlib]System.Exception::'.ctor'(string)
-	IL_0022:  throw 
-	IL_0023:  ldloc.0 
-	IL_0024:  ldc.i4.s 0x09
-	IL_0026:  ldnull 
-	IL_0027:  newobj instance void class [System.Xml]System.Xml.XmlTextReader::'.ctor'(class [mscorlib]System.IO.Stream, valuetype [System.Xml]System.Xml.XmlNodeType, class [System.Xml]System.Xml.XmlParserContext)
-	IL_002c:  stloc.1 
-	IL_002d:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	IL_0032:  stloc.2 
-	IL_0033:  ldloc.2 
-	IL_0034:  ldloc.1 
-	IL_0035:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(class [System.Xml]System.Xml.XmlReader)
-	IL_003a:  ldloc.2 
-	IL_003b:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_0040:  ldstr "xmlns:nant"
-	IL_0045:  ldarg.0 
-	IL_0046:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	IL_004b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
-	IL_0050:  callvirt instance void class [System.Xml]System.Xml.XmlElement::SetAttribute(string, string)
-	IL_0055:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
-	IL_005a:  stloc.3 
-	IL_005b:  ldloc.3 
-	IL_005c:  ldloc.2 
-	IL_005d:  callvirt instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::Load(class [System.Xml]System.Xml.XPath.IXPathNavigable)
-	IL_0062:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0067:  stloc.s 4
-	IL_0069:  ldloc.s 4
-	IL_006b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0070:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'(class [mscorlib]System.Text.StringBuilder, class [mscorlib]System.IFormatProvider)
-	IL_0075:  stloc.s 5
-	IL_0077:  newobj instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::'.ctor'()
-	IL_007c:  stloc.s 6
-	IL_007e:  ldloc.3 
-	IL_007f:  ldarg.0 
-	IL_0080:  ldloc.s 6
-	IL_0082:  ldloc.s 5
-	IL_0084:  callvirt instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::Transform(class [System.Xml]System.Xml.XPath.IXPathNavigable, class [System.Xml]System.Xml.Xsl.XsltArgumentList, class [mscorlib]System.IO.TextWriter)
-	IL_0089:  ldloc.s 4
-	IL_008b:  callvirt instance string object::ToString()
-	IL_0090:  call void class [mscorlib]System.Console::WriteLine(string)
-	IL_0095:  ret 
-    } // end of method ConsoleDriver::ShowProjectHelp
+	IL_05c5:  nop 
+	IL_05c6:  br IL_05d1
 
-    // method line 2034
-    .method public static hidebysig 
-           default string GetBuildFileName (string directory, string searchPattern, bool findInParent)  cil managed 
+	IL_05cb:  nop 
+	IL_05cc:  br IL_0014
+
+	IL_05d1:  ldloc.1 
+	IL_05d2:  stloc.s 6
+	IL_05d4:  br IL_05d9
+
+	IL_05d9:  ldloc.s 6
+	IL_05db:  ret 
+    } // end of method ExpressionEvalBase::ParseAddSubtract
+
+    // method line 1679
+    .method private hidebysig 
+           instance default object ParseMulDiv ()  cil managed 
     {
-        // Method begins at RVA 0x2373c
-	// Code size 296 (0x128)
-	.maxstack 4
+        // Method begins at RVA 0x20090
+	// Code size 2743 (0xab7)
+	.maxstack 6
 	.locals init (
-		string	V_0,
-		class [mscorlib]System.IO.DirectoryInfo	V_1,
-		class [mscorlib]System.IO.FileInfo[]	V_2,
-		string	V_3,
-		class [mscorlib]System.IO.DirectoryInfo	V_4)
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0,
+		object	V_1,
+		object	V_2,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_3,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_4,
+		object	V_5,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_6,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_7,
+		object	V_8,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_9,
+		object	V_10)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	IL_0009:  brfalse IL_0017
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0007:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_000c:  stloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance object class NAnt.Core.ExpressionEvalBase::ParseValue()
+	IL_0013:  stloc.1 
+	IL_0014:  nop 
+	IL_0015:  nop 
+	IL_0016:  ldarg.0 
+	IL_0017:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_001c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0021:  ldc.i4.s 0x0d
+	IL_0023:  bne.un IL_0246
 
-	IL_000e:  nop 
-	IL_000f:  ldarg.1 
-	IL_0010:  stloc.0 
-	IL_0011:  nop 
-	IL_0012:  br IL_011f
+	IL_0028:  nop 
+	IL_0029:  ldarg.0 
+	IL_002a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_002f:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_0034:  ldarg.0 
+	IL_0035:  call instance object class NAnt.Core.ExpressionEvalBase::ParseValue()
+	IL_003a:  stloc.2 
+	IL_003b:  ldarg.0 
+	IL_003c:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0041:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0046:  stloc.3 
+	IL_0047:  ldarg.0 
+	IL_0048:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	IL_004d:  brtrue IL_0240
 
-	IL_0017:  nop 
-	IL_0018:  ldarg.1 
-	IL_0019:  brtrue IL_0027
+	IL_0052:  nop 
+	IL_0053:  ldloc.1 
+	IL_0054:  isinst [mscorlib]System.Int32
+	IL_0059:  brfalse IL_0083
 
-	IL_001e:  nop 
-	IL_001f:  ldstr "*.build"
-	IL_0024:  starg.s 1
-	IL_0026:  nop 
-	IL_0027:  ldarg.0 
-	IL_0028:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_002d:  stloc.1 
-	IL_002e:  ldloc.1 
-	IL_002f:  ldstr "default.build"
-	IL_0034:  callvirt instance class [mscorlib]System.IO.FileInfo[] class [mscorlib]System.IO.DirectoryInfo::GetFiles(string)
-	IL_0039:  stloc.2 
-	IL_003a:  ldloc.2 
-	IL_003b:  ldlen 
-	IL_003c:  conv.i4 
-	IL_003d:  ldc.i4.1 
-	IL_003e:  bne.un IL_0054
+	IL_005e:  ldloc.2 
+	IL_005f:  isinst [mscorlib]System.Int32
+	IL_0064:  brfalse IL_0083
 
-	IL_0043:  nop 
-	IL_0044:  ldloc.2 
-	IL_0045:  ldc.i4.0 
-	IL_0046:  ldelem.ref 
-	IL_0047:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_004c:  stloc.0 
-	IL_004d:  ldloc.0 
-	IL_004e:  stloc.3 
-	IL_004f:  br IL_0126
+	IL_0069:  nop 
+	IL_006a:  ldloc.1 
+	IL_006b:  unbox.any [mscorlib]System.Int32
+	IL_0070:  ldloc.2 
+	IL_0071:  unbox.any [mscorlib]System.Int32
+	IL_0076:  mul 
+	IL_0077:  box [mscorlib]System.Int32
+	IL_007c:  stloc.1 
+	IL_007d:  nop 
+	IL_007e:  br IL_023f
 
-	IL_0054:  ldloc.1 
-	IL_0055:  ldarg.1 
-	IL_0056:  callvirt instance class [mscorlib]System.IO.FileInfo[] class [mscorlib]System.IO.DirectoryInfo::GetFiles(string)
-	IL_005b:  stloc.2 
-	IL_005c:  ldloc.2 
-	IL_005d:  ldlen 
-	IL_005e:  conv.i4 
-	IL_005f:  ldc.i4.1 
-	IL_0060:  bne.un IL_0075
+	IL_0083:  ldloc.1 
+	IL_0084:  isinst [mscorlib]System.Int32
+	IL_0089:  brfalse IL_00b4
 
-	IL_0065:  nop 
-	IL_0066:  ldloc.2 
-	IL_0067:  ldc.i4.0 
-	IL_0068:  ldelem.ref 
-	IL_0069:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_006e:  stloc.0 
-	IL_006f:  nop 
-	IL_0070:  br IL_011e
+	IL_008e:  ldloc.2 
+	IL_008f:  isinst [mscorlib]System.Int64
+	IL_0094:  brfalse IL_00b4
 
-	IL_0075:  ldloc.2 
-	IL_0076:  ldlen 
-	IL_0077:  conv.i4 
-	IL_0078:  ldc.i4.1 
-	IL_0079:  ble IL_00a5
+	IL_0099:  nop 
+	IL_009a:  ldloc.1 
+	IL_009b:  unbox.any [mscorlib]System.Int32
+	IL_00a0:  conv.i8 
+	IL_00a1:  ldloc.2 
+	IL_00a2:  unbox.any [mscorlib]System.Int64
+	IL_00a7:  mul 
+	IL_00a8:  box [mscorlib]System.Int64
+	IL_00ad:  stloc.1 
+	IL_00ae:  nop 
+	IL_00af:  br IL_023f
 
-	IL_007e:  nop 
-	IL_007f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0084:  ldstr "NA1001"
-	IL_0089:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_008e:  ldstr "  Use -buildfile:<file> to specify the build file to execute or  create a default.build file."
-	IL_0093:  call string string::Concat(string, string)
-	IL_0098:  ldarg.1 
-	IL_0099:  ldarg.0 
-	IL_009a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_009f:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
-	IL_00a4:  throw 
-	IL_00a5:  ldloc.2 
-	IL_00a6:  ldlen 
-	IL_00a7:  conv.i4 
-	IL_00a8:  brtrue IL_0101
+	IL_00b4:  ldloc.1 
+	IL_00b5:  isinst [mscorlib]System.Int32
+	IL_00ba:  brfalse IL_00e5
 
-	IL_00ad:  ldarg.2 
-	IL_00ae:  brfalse IL_0101
+	IL_00bf:  ldloc.2 
+	IL_00c0:  isinst [mscorlib]System.Double
+	IL_00c5:  brfalse IL_00e5
 
-	IL_00b3:  nop 
-	IL_00b4:  ldloc.1 
-	IL_00b5:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.DirectoryInfo::get_Parent()
-	IL_00ba:  stloc.s 4
-	IL_00bc:  ldarg.2 
-	IL_00bd:  brfalse IL_00df
+	IL_00ca:  nop 
+	IL_00cb:  ldloc.1 
+	IL_00cc:  unbox.any [mscorlib]System.Int32
+	IL_00d1:  conv.r8 
+	IL_00d2:  ldloc.2 
+	IL_00d3:  unbox.any [mscorlib]System.Double
+	IL_00d8:  mul 
+	IL_00d9:  box [mscorlib]System.Double
+	IL_00de:  stloc.1 
+	IL_00df:  nop 
+	IL_00e0:  br IL_023f
 
-	IL_00c2:  ldloc.s 4
-	IL_00c4:  brfalse IL_00df
+	IL_00e5:  ldloc.1 
+	IL_00e6:  isinst [mscorlib]System.Int64
+	IL_00eb:  brfalse IL_0115
 
-	IL_00c9:  nop 
-	IL_00ca:  ldloc.s 4
-	IL_00cc:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00d1:  ldarg.1 
-	IL_00d2:  ldarg.2 
-	IL_00d3:  call string class NAnt.Core.ConsoleDriver::GetBuildFileName(string, string, bool)
-	IL_00d8:  stloc.0 
-	IL_00d9:  nop 
-	IL_00da:  br IL_00fb
+	IL_00f0:  ldloc.2 
+	IL_00f1:  isinst [mscorlib]System.Int64
+	IL_00f6:  brfalse IL_0115
 
-	IL_00df:  nop 
-	IL_00e0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00e5:  ldstr "NA1007"
-	IL_00ea:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00ef:  ldarg.1 
-	IL_00f0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00f5:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
-	IL_00fa:  throw 
 	IL_00fb:  nop 
-	IL_00fc:  br IL_011e
+	IL_00fc:  ldloc.1 
+	IL_00fd:  unbox.any [mscorlib]System.Int64
+	IL_0102:  ldloc.2 
+	IL_0103:  unbox.any [mscorlib]System.Int64
+	IL_0108:  mul 
+	IL_0109:  box [mscorlib]System.Int64
+	IL_010e:  stloc.1 
+	IL_010f:  nop 
+	IL_0110:  br IL_023f
 
-	IL_0101:  nop 
-	IL_0102:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0107:  ldstr "NA1004"
-	IL_010c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0111:  ldarg.1 
-	IL_0112:  ldarg.0 
-	IL_0113:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0118:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
-	IL_011d:  throw 
-	IL_011e:  nop 
-	IL_011f:  ldloc.0 
-	IL_0120:  stloc.3 
-	IL_0121:  br IL_0126
+	IL_0115:  ldloc.1 
+	IL_0116:  isinst [mscorlib]System.Int64
+	IL_011b:  brfalse IL_0146
 
-	IL_0126:  ldloc.3 
-	IL_0127:  ret 
-    } // end of method ConsoleDriver::GetBuildFileName
+	IL_0120:  ldloc.2 
+	IL_0121:  isinst [mscorlib]System.Int32
+	IL_0126:  brfalse IL_0146
 
-    // method line 2035
-    .method private static hidebysig 
-           default void LoadExtensionAssemblies (class [System]System.Collections.Specialized.StringCollection extensionAssemblies, class NAnt.Core.Project project)  cil managed 
-    {
-        // Method begins at RVA 0x23870
-	// Code size 153 (0x99)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.Tasks.LoadTasksTask	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.Tasks.LoadTasksTask::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_000e:  ldloc.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
-	IL_0015:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_001a:  ldloc.0 
-	IL_001b:  ldarg.1 
-	IL_001c:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_0021:  ldloc.0 
-	IL_0022:  ldarg.1 
-	IL_0023:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
-	IL_0028:  ldc.i4 1000
-	IL_002d:  bne.un IL_003c
+	IL_012b:  nop 
+	IL_012c:  ldloc.1 
+	IL_012d:  unbox.any [mscorlib]System.Int64
+	IL_0132:  ldloc.2 
+	IL_0133:  unbox.any [mscorlib]System.Int32
+	IL_0138:  conv.i8 
+	IL_0139:  mul 
+	IL_013a:  box [mscorlib]System.Int64
+	IL_013f:  stloc.1 
+	IL_0140:  nop 
+	IL_0141:  br IL_023f
 
-	IL_0032:  ldc.i4 1000
-	IL_0037:  br IL_0041
+	IL_0146:  ldloc.1 
+	IL_0147:  isinst [mscorlib]System.Int64
+	IL_014c:  brfalse IL_0177
 
-	IL_003c:  ldc.i4 4000
-	IL_0041:  callvirt instance void class NAnt.Core.Task::set_Threshold(valuetype NAnt.Core.Level)
-	IL_0046:  nop 
-	IL_0047:  ldarg.0 
-	IL_0048:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_004d:  stloc.2 
-	.try { // 0
-	  IL_004e:  br IL_006e
+	IL_0151:  ldloc.2 
+	IL_0152:  isinst [mscorlib]System.Double
+	IL_0157:  brfalse IL_0177
 
-	  IL_0053:  ldloc.2 
-	  IL_0054:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0059:  stloc.1 
-	  IL_005a:  nop 
-	  IL_005b:  ldloc.0 
-	  IL_005c:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.LoadTasksTask::get_TaskFileSet()
-	  IL_0061:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
-	  IL_0066:  ldloc.1 
-	  IL_0067:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_006c:  pop 
-	  IL_006d:  nop 
-	  IL_006e:  ldloc.2 
-	  IL_006f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0074:  brtrue IL_0053
+	IL_015c:  nop 
+	IL_015d:  ldloc.1 
+	IL_015e:  unbox.any [mscorlib]System.Int64
+	IL_0163:  conv.r8 
+	IL_0164:  ldloc.2 
+	IL_0165:  unbox.any [mscorlib]System.Double
+	IL_016a:  mul 
+	IL_016b:  box [mscorlib]System.Double
+	IL_0170:  stloc.1 
+	IL_0171:  nop 
+	IL_0172:  br IL_023f
 
-	  IL_0079:  leave IL_0092
+	IL_0177:  ldloc.1 
+	IL_0178:  isinst [mscorlib]System.Double
+	IL_017d:  brfalse IL_01a7
 
-	} // end .try 0
-	finally  { // 0
-	  IL_007e:  ldloc.2 
-	  IL_007f:  isinst [mscorlib]System.IDisposable
-	  IL_0084:  dup 
-	  IL_0085:  stloc.3 
-	  IL_0086:  brfalse IL_0091
+	IL_0182:  ldloc.2 
+	IL_0183:  isinst [mscorlib]System.Double
+	IL_0188:  brfalse IL_01a7
 
-	  IL_008b:  ldloc.3 
-	  IL_008c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0091:  endfinally 
-	} // end handler 0
-	IL_0092:  ldloc.0 
-	IL_0093:  callvirt instance void class NAnt.Core.Task::Execute()
-	IL_0098:  ret 
-    } // end of method ConsoleDriver::LoadExtensionAssemblies
+	IL_018d:  nop 
+	IL_018e:  ldloc.1 
+	IL_018f:  unbox.any [mscorlib]System.Double
+	IL_0194:  ldloc.2 
+	IL_0195:  unbox.any [mscorlib]System.Double
+	IL_019a:  mul 
+	IL_019b:  box [mscorlib]System.Double
+	IL_01a0:  stloc.1 
+	IL_01a1:  nop 
+	IL_01a2:  br IL_023f
 
-    // method line 2036
-    .method public static hidebysig 
-           default class NAnt.Core.IBuildLogger CreateLogger (string typeName)  cil managed 
-    {
-        // Method begins at RVA 0x23928
-        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
-	// Code size 144 (0x90)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.Type	V_0,
-		object	V_1,
-		class NAnt.Core.IBuildLogger	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  call class [mscorlib]System.Type class NAnt.Core.Util.ReflectionUtils::GetTypeFromString(string, bool)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  ldnull 
-	IL_000b:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0010:  brfalse IL_0031
+	IL_01a7:  ldloc.1 
+	IL_01a8:  isinst [mscorlib]System.Double
+	IL_01ad:  brfalse IL_01d8
 
-	IL_0015:  nop 
-	IL_0016:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001b:  ldstr "NA1006"
-	IL_0020:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0025:  ldarg.0 
-	IL_0026:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002b:  newobj instance void class [mscorlib]System.TypeLoadException::'.ctor'(string)
-	IL_0030:  throw 
-	IL_0031:  ldloc.0 
-	IL_0032:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type)
-	IL_0037:  stloc.1 
-	IL_0038:  ldtoken NAnt.Core.IBuildLogger
-	IL_003d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0042:  ldloc.1 
-	IL_0043:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0048:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_004d:  brtrue IL_0082
+	IL_01b2:  ldloc.2 
+	IL_01b3:  isinst [mscorlib]System.Int32
+	IL_01b8:  brfalse IL_01d8
 
-	IL_0052:  nop 
-	IL_0053:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0058:  ldstr "{0} does not implement {1}."
-	IL_005d:  ldloc.1 
-	IL_005e:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0063:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0068:  ldtoken NAnt.Core.IBuildLogger
-	IL_006d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0072:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0077:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_007c:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0081:  throw 
-	IL_0082:  ldloc.1 
-	IL_0083:  castclass NAnt.Core.IBuildLogger
-	IL_0088:  stloc.2 
-	IL_0089:  br IL_008e
+	IL_01bd:  nop 
+	IL_01be:  ldloc.1 
+	IL_01bf:  unbox.any [mscorlib]System.Double
+	IL_01c4:  ldloc.2 
+	IL_01c5:  unbox.any [mscorlib]System.Int32
+	IL_01ca:  conv.r8 
+	IL_01cb:  mul 
+	IL_01cc:  box [mscorlib]System.Double
+	IL_01d1:  stloc.1 
+	IL_01d2:  nop 
+	IL_01d3:  br IL_023f
 
-	IL_008e:  ldloc.2 
-	IL_008f:  ret 
-    } // end of method ConsoleDriver::CreateLogger
+	IL_01d8:  ldloc.1 
+	IL_01d9:  isinst [mscorlib]System.Double
+	IL_01de:  brfalse IL_0209
 
-    // method line 2037
-    .method public static hidebysig 
-           default class NAnt.Core.IBuildListener CreateListener (string typeName)  cil managed 
-    {
-        // Method begins at RVA 0x239c4
-        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
-	// Code size 144 (0x90)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.Type	V_0,
-		object	V_1,
-		class NAnt.Core.IBuildListener	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  call class [mscorlib]System.Type class NAnt.Core.Util.ReflectionUtils::GetTypeFromString(string, bool)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  ldnull 
-	IL_000b:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0010:  brfalse IL_0031
+	IL_01e3:  ldloc.2 
+	IL_01e4:  isinst [mscorlib]System.Int64
+	IL_01e9:  brfalse IL_0209
 
-	IL_0015:  nop 
-	IL_0016:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001b:  ldstr "NA1006"
-	IL_0020:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0025:  ldarg.0 
-	IL_0026:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_002b:  newobj instance void class [mscorlib]System.TypeLoadException::'.ctor'(string)
-	IL_0030:  throw 
-	IL_0031:  ldloc.0 
-	IL_0032:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type)
-	IL_0037:  stloc.1 
-	IL_0038:  ldtoken NAnt.Core.IBuildListener
-	IL_003d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0042:  ldloc.1 
-	IL_0043:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0048:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_004d:  brtrue IL_0082
+	IL_01ee:  nop 
+	IL_01ef:  ldloc.1 
+	IL_01f0:  unbox.any [mscorlib]System.Double
+	IL_01f5:  ldloc.2 
+	IL_01f6:  unbox.any [mscorlib]System.Int64
+	IL_01fb:  conv.r8 
+	IL_01fc:  mul 
+	IL_01fd:  box [mscorlib]System.Double
+	IL_0202:  stloc.1 
+	IL_0203:  nop 
+	IL_0204:  br IL_023f
 
-	IL_0052:  nop 
-	IL_0053:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0058:  ldstr "{0} does not implement {1}."
-	IL_005d:  ldloc.1 
-	IL_005e:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0063:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0068:  ldtoken NAnt.Core.IBuildListener
-	IL_006d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0072:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0077:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_007c:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0081:  throw 
-	IL_0082:  ldloc.1 
-	IL_0083:  castclass NAnt.Core.IBuildListener
-	IL_0088:  stloc.2 
-	IL_0089:  br IL_008e
+	IL_0209:  nop 
+	IL_020a:  ldarg.0 
+	IL_020b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0210:  ldstr "NA1036"
+	IL_0215:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_021a:  ldarg.0 
+	IL_021b:  ldloc.1 
+	IL_021c:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0221:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_0226:  ldarg.0 
+	IL_0227:  ldloc.2 
+	IL_0228:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_022d:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_0232:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0237:  ldloc.0 
+	IL_0238:  ldloc.3 
+	IL_0239:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_023e:  throw 
+	IL_023f:  nop 
+	IL_0240:  nop 
+	IL_0241:  br IL_0aa6
 
-	IL_008e:  ldloc.2 
-	IL_008f:  ret 
-    } // end of method ConsoleDriver::CreateListener
+	IL_0246:  ldarg.0 
+	IL_0247:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_024c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0251:  ldc.i4.s 0x0e
+	IL_0253:  bne.un IL_0673
 
-    // method line 2038
-    .method private static hidebysig 
-           default void AddBuildListeners (class NAnt.Core.CommandLineOptions cmdlineOptions, class NAnt.Core.Project project)  cil managed 
-    {
-        // Method begins at RVA 0x23a60
-	// Code size 412 (0x19c)
-	.maxstack 4
-	.locals init (
-		class NAnt.Core.BuildListenerCollection	V_0,
-		class NAnt.Core.IBuildLogger	V_1,
-		class [mscorlib]System.IO.TextWriter	V_2,
-		class [mscorlib]System.Exception	V_3,
-		class [mscorlib]System.Exception	V_4,
-		string	V_5,
-		class [System]System.Collections.Specialized.StringEnumerator	V_6,
-		class NAnt.Core.IBuildListener	V_7,
-		class [mscorlib]System.Exception	V_8,
-		class [mscorlib]System.IDisposable	V_9)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.BuildListenerCollection::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldnull 
-	IL_0008:  stloc.1 
-	IL_0009:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Out()
-	IL_000e:  stloc.2 
-	IL_000f:  ldarg.0 
-	IL_0010:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.CommandLineOptions::get_LogFile()
-	IL_0015:  brfalse IL_0069
+	IL_0258:  nop 
+	IL_0259:  ldarg.0 
+	IL_025a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_025f:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_0264:  ldarg.0 
+	IL_0265:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_026a:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_026f:  stloc.s 4
+	IL_0271:  ldarg.0 
+	IL_0272:  call instance object class NAnt.Core.ExpressionEvalBase::ParseValue()
+	IL_0277:  stloc.s 5
+	IL_0279:  ldarg.0 
+	IL_027a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_027f:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0284:  stloc.s 6
+	IL_0286:  ldarg.0 
+	IL_0287:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	IL_028c:  brtrue IL_066d
 
-	IL_001a:  nop 
-	.try { // 0
-	  IL_001b:  nop 
-	  IL_001c:  ldarg.0 
-	  IL_001d:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.CommandLineOptions::get_LogFile()
-	  IL_0022:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0027:  ldc.i4.2 
-	  IL_0028:  ldc.i4.2 
-	  IL_0029:  ldc.i4.1 
-	  IL_002a:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode, valuetype [mscorlib]System.IO.FileAccess, valuetype [mscorlib]System.IO.FileShare)
-	  IL_002f:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(class [mscorlib]System.IO.Stream)
-	  IL_0034:  stloc.2 
-	  IL_0035:  nop 
-	  IL_0036:  leave IL_0068
+	IL_0291:  nop 
+	IL_0292:  ldloc.1 
+	IL_0293:  isinst [mscorlib]System.Int32
+	IL_0298:  brfalse IL_02f5
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_003b:  stloc.3 
-	  IL_003c:  nop 
-	  IL_003d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0042:  ldstr "NA1005"
-	  IL_0047:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_004c:  ldarg.0 
-	  IL_004d:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.CommandLineOptions::get_LogFile()
-	  IL_0052:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0057:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_005c:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	  IL_0061:  ldloc.3 
-	  IL_0062:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0067:  throw 
-	} // end handler 0
-	IL_0068:  nop 
-	IL_0069:  ldarg.0 
-	IL_006a:  callvirt instance string class NAnt.Core.CommandLineOptions::get_LoggerType()
-	IL_006f:  brfalse IL_00b3
+	IL_029d:  ldloc.s 5
+	IL_029f:  isinst [mscorlib]System.Int32
+	IL_02a4:  brfalse IL_02f5
 
-	IL_0074:  nop 
-	.try { // 1
-	  IL_0075:  nop 
-	  IL_0076:  ldarg.0 
-	  IL_0077:  callvirt instance string class NAnt.Core.CommandLineOptions::get_LoggerType()
-	  IL_007c:  call class NAnt.Core.IBuildLogger class NAnt.Core.ConsoleDriver::CreateLogger(string)
-	  IL_0081:  stloc.1 
-	  IL_0082:  nop 
-	  IL_0083:  leave IL_00b2
+	IL_02a9:  nop 
+	IL_02aa:  ldloc.s 5
+	IL_02ac:  unbox.any [mscorlib]System.Int32
+	IL_02b1:  brtrue IL_02db
 
-	} // end .try 1
-	catch class [mscorlib]System.Exception { // 1
-	  IL_0088:  stloc.s 4
-	  IL_008a:  nop 
-	  IL_008b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0090:  ldstr "NA1003"
-	  IL_0095:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_009a:  ldarg.0 
-	  IL_009b:  callvirt instance string class NAnt.Core.CommandLineOptions::get_LoggerType()
-	  IL_00a0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_00a5:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	  IL_00aa:  ldloc.s 4
-	  IL_00ac:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_00b1:  throw 
-	} // end handler 1
-	IL_00b2:  nop 
-	IL_00b3:  ldloc.1 
-	IL_00b4:  brtrue IL_00c1
+	IL_02b6:  nop 
+	IL_02b7:  ldarg.0 
+	IL_02b8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_02bd:  ldstr "NA1043"
+	IL_02c2:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_02c7:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_02cc:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_02d1:  ldloc.s 4
+	IL_02d3:  ldloc.s 6
+	IL_02d5:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_02da:  throw 
+	IL_02db:  ldloc.1 
+	IL_02dc:  unbox.any [mscorlib]System.Int32
+	IL_02e1:  ldloc.s 5
+	IL_02e3:  unbox.any [mscorlib]System.Int32
+	IL_02e8:  div 
+	IL_02e9:  box [mscorlib]System.Int32
+	IL_02ee:  stloc.1 
+	IL_02ef:  nop 
+	IL_02f0:  br IL_066c
 
-	IL_00b9:  nop 
-	IL_00ba:  newobj instance void class NAnt.Core.DefaultLogger::'.ctor'()
-	IL_00bf:  stloc.1 
-	IL_00c0:  nop 
-	IL_00c1:  ldtoken NAnt.Core.DefaultLogger
-	IL_00c6:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_00cb:  ldloc.1 
-	IL_00cc:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_00d1:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_00d6:  brfalse IL_00e6
+	IL_02f5:  ldloc.1 
+	IL_02f6:  isinst [mscorlib]System.Int32
+	IL_02fb:  brfalse IL_035b
 
-	IL_00db:  ldarg.0 
-	IL_00dc:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.CommandLineOptions::get_LogFile()
-	IL_00e1:  brfalse IL_00ef
+	IL_0300:  ldloc.s 5
+	IL_0302:  isinst [mscorlib]System.Int64
+	IL_0307:  brfalse IL_035b
 
-	IL_00e6:  nop 
-	IL_00e7:  ldloc.1 
-	IL_00e8:  ldloc.2 
-	IL_00e9:  callvirt instance void class NAnt.Core.IBuildLogger::set_OutputWriter(class [mscorlib]System.IO.TextWriter)
-	IL_00ee:  nop 
-	IL_00ef:  ldloc.1 
-	IL_00f0:  ldarg.1 
-	IL_00f1:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
-	IL_00f6:  callvirt instance void class NAnt.Core.IBuildLogger::set_Threshold(valuetype NAnt.Core.Level)
-	IL_00fb:  ldloc.1 
-	IL_00fc:  ldarg.0 
-	IL_00fd:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_EmacsMode()
-	IL_0102:  callvirt instance void class NAnt.Core.IBuildLogger::set_EmacsMode(bool)
-	IL_0107:  ldloc.0 
-	IL_0108:  ldloc.1 
-	IL_0109:  callvirt instance int32 class NAnt.Core.BuildListenerCollection::Add(class NAnt.Core.IBuildListener)
-	IL_010e:  pop 
-	IL_010f:  nop 
-	IL_0110:  ldarg.0 
-	IL_0111:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.CommandLineOptions::get_Listeners()
-	IL_0116:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_011b:  stloc.s 6
-	.try { // 3
-	  IL_011d:  br IL_016c
+	IL_030c:  nop 
+	IL_030d:  ldloc.s 5
+	IL_030f:  unbox.any [mscorlib]System.Int64
+	IL_0314:  ldc.i4.0 
+	IL_0315:  conv.i8 
+	IL_0316:  bne.un IL_0340
 
-	  IL_0122:  ldloc.s 6
-	  IL_0124:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0129:  stloc.s 5
-	  IL_012b:  nop 
-	  .try { // 2
-	    IL_012c:  nop 
-	    IL_012d:  ldloc.s 5
-	    IL_012f:  call class NAnt.Core.IBuildListener class NAnt.Core.ConsoleDriver::CreateListener(string)
-	    IL_0134:  stloc.s 7
-	    IL_0136:  ldloc.0 
-	    IL_0137:  ldloc.s 7
-	    IL_0139:  callvirt instance int32 class NAnt.Core.BuildListenerCollection::Add(class NAnt.Core.IBuildListener)
-	    IL_013e:  pop 
-	    IL_013f:  nop 
-	    IL_0140:  leave IL_016b
+	IL_031b:  nop 
+	IL_031c:  ldarg.0 
+	IL_031d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0322:  ldstr "NA1043"
+	IL_0327:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_032c:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_0331:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0336:  ldloc.s 4
+	IL_0338:  ldloc.s 6
+	IL_033a:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_033f:  throw 
+	IL_0340:  ldloc.1 
+	IL_0341:  unbox.any [mscorlib]System.Int32
+	IL_0346:  conv.i8 
+	IL_0347:  ldloc.s 5
+	IL_0349:  unbox.any [mscorlib]System.Int64
+	IL_034e:  div 
+	IL_034f:  box [mscorlib]System.Int64
+	IL_0354:  stloc.1 
+	IL_0355:  nop 
+	IL_0356:  br IL_066c
 
-	  } // end .try 2
-	  catch class [mscorlib]System.Exception { // 2
-	    IL_0145:  stloc.s 8
-	    IL_0147:  nop 
-	    IL_0148:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_014d:  ldstr "NA1002"
-	    IL_0152:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_0157:  ldloc.s 5
-	    IL_0159:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_015e:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	    IL_0163:  ldloc.s 8
-	    IL_0165:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	    IL_016a:  throw 
-	  } // end handler 2
-	  IL_016b:  nop 
-	  IL_016c:  ldloc.s 6
-	  IL_016e:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0173:  brtrue IL_0122
+	IL_035b:  ldloc.1 
+	IL_035c:  isinst [mscorlib]System.Int32
+	IL_0361:  brfalse IL_03c8
 
-	  IL_0178:  leave IL_0194
+	IL_0366:  ldloc.s 5
+	IL_0368:  isinst [mscorlib]System.Double
+	IL_036d:  brfalse IL_03c8
 
-	} // end .try 3
-	finally  { // 3
-	  IL_017d:  ldloc.s 6
-	  IL_017f:  isinst [mscorlib]System.IDisposable
-	  IL_0184:  dup 
-	  IL_0185:  stloc.s 9
-	  IL_0187:  brfalse IL_0193
+	IL_0372:  nop 
+	IL_0373:  ldloc.s 5
+	IL_0375:  unbox.any [mscorlib]System.Double
+	IL_037a:  ldc.r8 0.
+	IL_0383:  bne.un IL_03ad
 
-	  IL_018c:  ldloc.s 9
-	  IL_018e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0193:  endfinally 
-	} // end handler 3
-	IL_0194:  ldarg.1 
-	IL_0195:  ldloc.0 
-	IL_0196:  callvirt instance void class NAnt.Core.Project::AttachBuildListeners(class NAnt.Core.BuildListenerCollection)
-	IL_019b:  ret 
-    } // end of method ConsoleDriver::AddBuildListeners
+	IL_0388:  nop 
+	IL_0389:  ldarg.0 
+	IL_038a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_038f:  ldstr "NA1043"
+	IL_0394:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0399:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_039e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_03a3:  ldloc.s 4
+	IL_03a5:  ldloc.s 6
+	IL_03a7:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_03ac:  throw 
+	IL_03ad:  ldloc.1 
+	IL_03ae:  unbox.any [mscorlib]System.Int32
+	IL_03b3:  conv.r8 
+	IL_03b4:  ldloc.s 5
+	IL_03b6:  unbox.any [mscorlib]System.Double
+	IL_03bb:  div 
+	IL_03bc:  box [mscorlib]System.Double
+	IL_03c1:  stloc.1 
+	IL_03c2:  nop 
+	IL_03c3:  br IL_066c
 
-    // method line 2039
-    .method private static hidebysig 
-           default void ShowHelp (class NAnt.Core.Util.CommandLineParser parser)  cil managed 
-    {
-        // Method begins at RVA 0x23c3c
-	// Code size 68 (0x44)
-	.maxstack 1
-	IL_0000:  nop 
-	IL_0001:  ldstr "NAnt comes with ABSOLUTELY NO WARRANTY."
-	IL_0006:  call void class [mscorlib]System.Console::WriteLine(string)
-	IL_000b:  ldstr "This is free software, and you are welcome to redistribute it under certain"
-	IL_0010:  call void class [mscorlib]System.Console::WriteLine(string)
-	IL_0015:  ldstr "conditions set out by the GNU General Public License.  A copy of the license"
-	IL_001a:  call void class [mscorlib]System.Console::WriteLine(string)
-	IL_001f:  ldstr "is available in the distribution package and from the NAnt web site."
-	IL_0024:  call void class [mscorlib]System.Console::WriteLine(string)
-	IL_0029:  call void class [mscorlib]System.Console::WriteLine()
-	IL_002e:  ldarg.0 
-	IL_002f:  callvirt instance string class NAnt.Core.Util.CommandLineParser::get_Usage()
-	IL_0034:  call void class [mscorlib]System.Console::WriteLine(string)
-	IL_0039:  ldstr "A file ending in .build will be used if no buildfile is specified."
-	IL_003e:  call void class [mscorlib]System.Console::WriteLine(string)
-	IL_0043:  ret 
-    } // end of method ConsoleDriver::ShowHelp
+	IL_03c8:  ldloc.1 
+	IL_03c9:  isinst [mscorlib]System.Int64
+	IL_03ce:  brfalse IL_042d
 
-    // method line 2040
-    .method private static hidebysig 
-           default void WriteException (class [mscorlib]System.Exception cause)  cil managed 
-    {
-        // Method begins at RVA 0x23c8c
-	// Code size 113 (0x71)
-	.maxstack 4
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_005a
+	IL_03d3:  ldloc.s 5
+	IL_03d5:  isinst [mscorlib]System.Int64
+	IL_03da:  brfalse IL_042d
 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	IL_000f:  call bool string::IsNullOrEmpty(string)
-	IL_0014:  brtrue IL_0051
+	IL_03df:  nop 
+	IL_03e0:  ldloc.s 5
+	IL_03e2:  unbox.any [mscorlib]System.Int64
+	IL_03e7:  ldc.i4.0 
+	IL_03e8:  conv.i8 
+	IL_03e9:  bne.un IL_0413
 
-	IL_0019:  nop 
-	IL_001a:  ldloc.0 
-	IL_001b:  ldc.i4.0 
-	IL_001c:  ble IL_002d
+	IL_03ee:  nop 
+	IL_03ef:  ldarg.0 
+	IL_03f0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_03f5:  ldstr "NA1043"
+	IL_03fa:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_03ff:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_0404:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0409:  ldloc.s 4
+	IL_040b:  ldloc.s 6
+	IL_040d:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0412:  throw 
+	IL_0413:  ldloc.1 
+	IL_0414:  unbox.any [mscorlib]System.Int64
+	IL_0419:  ldloc.s 5
+	IL_041b:  unbox.any [mscorlib]System.Int64
+	IL_0420:  div 
+	IL_0421:  box [mscorlib]System.Int64
+	IL_0426:  stloc.1 
+	IL_0427:  nop 
+	IL_0428:  br IL_066c
 
-	IL_0021:  nop 
-	IL_0022:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	IL_0027:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
-	IL_002c:  nop 
-	IL_002d:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	IL_0032:  ldc.i4.s 0x20
-	IL_0034:  ldloc.0 
-	IL_0035:  ldc.i4.4 
-	IL_0036:  mul 
-	IL_0037:  newobj instance void string::'.ctor'(char, int32)
-	IL_003c:  ldarg.0 
-	IL_003d:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	IL_0042:  call string string::Concat(string, string)
-	IL_0047:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_004c:  ldloc.0 
-	IL_004d:  ldc.i4.1 
-	IL_004e:  add 
-	IL_004f:  stloc.0 
-	IL_0050:  nop 
-	IL_0051:  ldarg.0 
-	IL_0052:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
-	IL_0057:  starg.s 0
-	IL_0059:  nop 
-	IL_005a:  ldarg.0 
-	IL_005b:  brfalse IL_0070
+	IL_042d:  ldloc.1 
+	IL_042e:  isinst [mscorlib]System.Int64
+	IL_0433:  brfalse IL_0491
 
-	IL_0060:  ldarg.0 
-	IL_0061:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	IL_0066:  call bool string::IsNullOrEmpty(string)
-	IL_006b:  brfalse IL_0008
+	IL_0438:  ldloc.s 5
+	IL_043a:  isinst [mscorlib]System.Int32
+	IL_043f:  brfalse IL_0491
 
-	IL_0070:  ret 
-    } // end of method ConsoleDriver::WriteException
+	IL_0444:  nop 
+	IL_0445:  ldloc.s 5
+	IL_0447:  unbox.any [mscorlib]System.Int32
+	IL_044c:  brtrue IL_0476
 
-  } // end of class NAnt.Core.ConsoleDriver
-}
+	IL_0451:  nop 
+	IL_0452:  ldarg.0 
+	IL_0453:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0458:  ldstr "NA1043"
+	IL_045d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0462:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_0467:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_046c:  ldloc.s 4
+	IL_046e:  ldloc.s 6
+	IL_0470:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0475:  throw 
+	IL_0476:  ldloc.1 
+	IL_0477:  unbox.any [mscorlib]System.Int64
+	IL_047c:  ldloc.s 5
+	IL_047e:  unbox.any [mscorlib]System.Int32
+	IL_0483:  conv.i8 
+	IL_0484:  div 
+	IL_0485:  box [mscorlib]System.Int64
+	IL_048a:  stloc.1 
+	IL_048b:  nop 
+	IL_048c:  br IL_066c
 
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable beforefieldinit TaskBuilderCollection
-  	extends [mscorlib]System.Collections.CollectionBase
-  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+	IL_0491:  ldloc.1 
+	IL_0492:  isinst [mscorlib]System.Int64
+	IL_0497:  brfalse IL_04fe
 
+	IL_049c:  ldloc.s 5
+	IL_049e:  isinst [mscorlib]System.Double
+	IL_04a3:  brfalse IL_04fe
 
-    // method line 2041
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x23d09
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method TaskBuilderCollection::.ctor
+	IL_04a8:  nop 
+	IL_04a9:  ldloc.s 5
+	IL_04ab:  unbox.any [mscorlib]System.Double
+	IL_04b0:  ldc.r8 0.
+	IL_04b9:  bne.un IL_04e3
 
-    // method line 2042
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.TaskBuilderCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x23d12
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.TaskBuilderCollection::AddRange(class NAnt.Core.TaskBuilderCollection)
-	IL_000e:  ret 
-    } // end of method TaskBuilderCollection::.ctor
+	IL_04be:  nop 
+	IL_04bf:  ldarg.0 
+	IL_04c0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_04c5:  ldstr "NA1043"
+	IL_04ca:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_04cf:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_04d4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_04d9:  ldloc.s 4
+	IL_04db:  ldloc.s 6
+	IL_04dd:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_04e2:  throw 
+	IL_04e3:  ldloc.1 
+	IL_04e4:  unbox.any [mscorlib]System.Int64
+	IL_04e9:  conv.r8 
+	IL_04ea:  ldloc.s 5
+	IL_04ec:  unbox.any [mscorlib]System.Double
+	IL_04f1:  div 
+	IL_04f2:  box [mscorlib]System.Double
+	IL_04f7:  stloc.1 
+	IL_04f8:  nop 
+	IL_04f9:  br IL_066c
 
-    // method line 2043
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.TaskBuilder[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x23d22
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.TaskBuilderCollection::AddRange(class NAnt.Core.TaskBuilder[])
-	IL_000e:  ret 
-    } // end of method TaskBuilderCollection::.ctor
+	IL_04fe:  ldloc.1 
+	IL_04ff:  isinst [mscorlib]System.Double
+	IL_0504:  brfalse IL_056a
 
-    // method line 2044
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.TaskBuilder get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x23d34
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.TaskBuilder	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.Core.TaskBuilder
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0509:  ldloc.s 5
+	IL_050b:  isinst [mscorlib]System.Double
+	IL_0510:  brfalse IL_056a
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method TaskBuilderCollection::get_Item
+	IL_0515:  nop 
+	IL_0516:  ldloc.s 5
+	IL_0518:  unbox.any [mscorlib]System.Double
+	IL_051d:  ldc.r8 0.
+	IL_0526:  bne.un IL_0550
 
-    // method line 2045
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.TaskBuilder 'value')  cil managed 
-    {
-        // Method begins at RVA 0x23d5a
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method TaskBuilderCollection::set_Item
+	IL_052b:  nop 
+	IL_052c:  ldarg.0 
+	IL_052d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0532:  ldstr "NA1043"
+	IL_0537:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_053c:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_0541:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0546:  ldloc.s 4
+	IL_0548:  ldloc.s 6
+	IL_054a:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_054f:  throw 
+	IL_0550:  ldloc.1 
+	IL_0551:  unbox.any [mscorlib]System.Double
+	IL_0556:  ldloc.s 5
+	IL_0558:  unbox.any [mscorlib]System.Double
+	IL_055d:  div 
+	IL_055e:  box [mscorlib]System.Double
+	IL_0563:  stloc.1 
+	IL_0564:  nop 
+	IL_0565:  br IL_066c
 
-    // method line 2046
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.TaskBuilder get_Item (string taskName)  cil managed 
-    {
-        // Method begins at RVA 0x23d6c
-	// Code size 111 (0x6f)
-	.maxstack 2
-	.locals init (
-		class NAnt.Core.TaskBuilder	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.TaskBuilder	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0066
+	IL_056a:  ldloc.1 
+	IL_056b:  isinst [mscorlib]System.Double
+	IL_0570:  brfalse IL_05ce
 
-	IL_0007:  nop 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0014:  stloc.1 
-	.try { // 0
-	  IL_0015:  br IL_0041
+	IL_0575:  ldloc.s 5
+	IL_0577:  isinst [mscorlib]System.Int32
+	IL_057c:  brfalse IL_05ce
 
-	  IL_001a:  ldloc.1 
-	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.Core.TaskBuilder
-	  IL_0025:  stloc.0 
-	  IL_0026:  nop 
-	  IL_0027:  ldarg.1 
-	  IL_0028:  ldloc.0 
-	  IL_0029:  callvirt instance string class NAnt.Core.TaskBuilder::get_TaskName()
-	  IL_002e:  callvirt instance bool string::Equals(string)
-	  IL_0033:  brfalse IL_0040
+	IL_0581:  nop 
+	IL_0582:  ldloc.s 5
+	IL_0584:  unbox.any [mscorlib]System.Int32
+	IL_0589:  brtrue IL_05b3
 
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  stloc.2 
-	  IL_003b:  leave IL_006d
+	IL_058e:  nop 
+	IL_058f:  ldarg.0 
+	IL_0590:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0595:  ldstr "NA1043"
+	IL_059a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_059f:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_05a4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_05a9:  ldloc.s 4
+	IL_05ab:  ldloc.s 6
+	IL_05ad:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_05b2:  throw 
+	IL_05b3:  ldloc.1 
+	IL_05b4:  unbox.any [mscorlib]System.Double
+	IL_05b9:  ldloc.s 5
+	IL_05bb:  unbox.any [mscorlib]System.Int32
+	IL_05c0:  conv.r8 
+	IL_05c1:  div 
+	IL_05c2:  box [mscorlib]System.Double
+	IL_05c7:  stloc.1 
+	IL_05c8:  nop 
+	IL_05c9:  br IL_066c
 
-	  IL_0040:  nop 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_001a
+	IL_05ce:  ldloc.1 
+	IL_05cf:  isinst [mscorlib]System.Double
+	IL_05d4:  brfalse IL_0634
 
-	  IL_004c:  leave IL_0065
+	IL_05d9:  ldloc.s 5
+	IL_05db:  isinst [mscorlib]System.Int64
+	IL_05e0:  brfalse IL_0634
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0051:  ldloc.1 
-	  IL_0052:  isinst [mscorlib]System.IDisposable
-	  IL_0057:  dup 
-	  IL_0058:  stloc.3 
-	  IL_0059:  brfalse IL_0064
+	IL_05e5:  nop 
+	IL_05e6:  ldloc.s 5
+	IL_05e8:  unbox.any [mscorlib]System.Int64
+	IL_05ed:  ldc.i4.0 
+	IL_05ee:  conv.i8 
+	IL_05ef:  bne.un IL_0619
 
-	  IL_005e:  ldloc.3 
-	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0064:  endfinally 
-	} // end handler 0
-	IL_0065:  nop 
-	IL_0066:  ldnull 
-	IL_0067:  stloc.2 
-	IL_0068:  br IL_006d
+	IL_05f4:  nop 
+	IL_05f5:  ldarg.0 
+	IL_05f6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_05fb:  ldstr "NA1043"
+	IL_0600:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0605:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_060a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_060f:  ldloc.s 4
+	IL_0611:  ldloc.s 6
+	IL_0613:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0618:  throw 
+	IL_0619:  ldloc.1 
+	IL_061a:  unbox.any [mscorlib]System.Double
+	IL_061f:  ldloc.s 5
+	IL_0621:  unbox.any [mscorlib]System.Int64
+	IL_0626:  conv.r8 
+	IL_0627:  div 
+	IL_0628:  box [mscorlib]System.Double
+	IL_062d:  stloc.1 
+	IL_062e:  nop 
+	IL_062f:  br IL_066c
 
-	IL_006d:  ldloc.2 
-	IL_006e:  ret 
-    } // end of method TaskBuilderCollection::get_Item
+	IL_0634:  nop 
+	IL_0635:  ldarg.0 
+	IL_0636:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_063b:  ldstr "NA1039"
+	IL_0640:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0645:  ldarg.0 
+	IL_0646:  ldloc.1 
+	IL_0647:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_064c:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_0651:  ldarg.0 
+	IL_0652:  ldloc.s 5
+	IL_0654:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0659:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_065e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0663:  ldloc.0 
+	IL_0664:  ldloc.s 6
+	IL_0666:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_066b:  throw 
+	IL_066c:  nop 
+	IL_066d:  nop 
+	IL_066e:  br IL_0aa6
 
-    // method line 2047
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.TaskBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x23df8
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0673:  ldarg.0 
+	IL_0674:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0679:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_067e:  ldc.i4.s 0x0f
+	IL_0680:  bne.un IL_0aa0
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method TaskBuilderCollection::Add
+	IL_0685:  nop 
+	IL_0686:  ldarg.0 
+	IL_0687:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_068c:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_0691:  ldarg.0 
+	IL_0692:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0697:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_069c:  stloc.s 7
+	IL_069e:  ldarg.0 
+	IL_069f:  call instance object class NAnt.Core.ExpressionEvalBase::ParseValue()
+	IL_06a4:  stloc.s 8
+	IL_06a6:  ldarg.0 
+	IL_06a7:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_06ac:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_06b1:  stloc.s 9
+	IL_06b3:  ldarg.0 
+	IL_06b4:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	IL_06b9:  brtrue IL_0a9a
 
-    // method line 2048
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.TaskBuilder[] items)  cil managed 
-    {
-        // Method begins at RVA 0x23e1c
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
+	IL_06be:  nop 
+	IL_06bf:  ldloc.1 
+	IL_06c0:  isinst [mscorlib]System.Int32
+	IL_06c5:  brfalse IL_0722
 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Core.TaskBuilderCollection::Add(class NAnt.Core.TaskBuilder)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
+	IL_06ca:  ldloc.s 8
+	IL_06cc:  isinst [mscorlib]System.Int32
+	IL_06d1:  brfalse IL_0722
 
-	IL_0021:  ret 
-    } // end of method TaskBuilderCollection::AddRange
+	IL_06d6:  nop 
+	IL_06d7:  ldloc.s 8
+	IL_06d9:  unbox.any [mscorlib]System.Int32
+	IL_06de:  brtrue IL_0708
 
-    // method line 2049
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.TaskBuilderCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x23e4c
-	// Code size 41 (0x29)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
+	IL_06e3:  nop 
+	IL_06e4:  ldarg.0 
+	IL_06e5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_06ea:  ldstr "NA1043"
+	IL_06ef:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_06f4:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_06f9:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_06fe:  ldloc.s 7
+	IL_0700:  ldloc.s 9
+	IL_0702:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0707:  throw 
+	IL_0708:  ldloc.1 
+	IL_0709:  unbox.any [mscorlib]System.Int32
+	IL_070e:  ldloc.s 8
+	IL_0710:  unbox.any [mscorlib]System.Int32
+	IL_0715:  rem 
+	IL_0716:  box [mscorlib]System.Int32
+	IL_071b:  stloc.1 
+	IL_071c:  nop 
+	IL_071d:  br IL_0a99
 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Core.TaskBuilder class NAnt.Core.TaskBuilderCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Core.TaskBuilderCollection::Add(class NAnt.Core.TaskBuilder)
-	IL_0016:  pop 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0023:  blt IL_0008
+	IL_0722:  ldloc.1 
+	IL_0723:  isinst [mscorlib]System.Int32
+	IL_0728:  brfalse IL_0788
 
-	IL_0028:  ret 
-    } // end of method TaskBuilderCollection::AddRange
+	IL_072d:  ldloc.s 8
+	IL_072f:  isinst [mscorlib]System.Int64
+	IL_0734:  brfalse IL_0788
 
-    // method line 2050
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.TaskBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x23e84
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0739:  nop 
+	IL_073a:  ldloc.s 8
+	IL_073c:  unbox.any [mscorlib]System.Int64
+	IL_0741:  ldc.i4.0 
+	IL_0742:  conv.i8 
+	IL_0743:  bne.un IL_076d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method TaskBuilderCollection::Contains
+	IL_0748:  nop 
+	IL_0749:  ldarg.0 
+	IL_074a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_074f:  ldstr "NA1043"
+	IL_0754:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0759:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_075e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0763:  ldloc.s 7
+	IL_0765:  ldloc.s 9
+	IL_0767:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_076c:  throw 
+	IL_076d:  ldloc.1 
+	IL_076e:  unbox.any [mscorlib]System.Int32
+	IL_0773:  conv.i8 
+	IL_0774:  ldloc.s 8
+	IL_0776:  unbox.any [mscorlib]System.Int64
+	IL_077b:  rem 
+	IL_077c:  box [mscorlib]System.Int64
+	IL_0781:  stloc.1 
+	IL_0782:  nop 
+	IL_0783:  br IL_0a99
 
-    // method line 2051
-    .method public hidebysig 
-           instance default bool Contains (string taskName)  cil managed 
-    {
-        // Method begins at RVA 0x23ea8
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.Core.TaskBuilder class NAnt.Core.TaskBuilderCollection::get_Item(string)
-	IL_0008:  ldnull 
-	IL_0009:  ceq 
-	IL_000b:  ldc.i4.0 
-	IL_000c:  ceq 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0014
+	IL_0788:  ldloc.1 
+	IL_0789:  isinst [mscorlib]System.Int32
+	IL_078e:  brfalse IL_07f5
 
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method TaskBuilderCollection::Contains
+	IL_0793:  ldloc.s 8
+	IL_0795:  isinst [mscorlib]System.Double
+	IL_079a:  brfalse IL_07f5
 
-    // method line 2052
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.TaskBuilder[] 'array', int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x23eca
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method TaskBuilderCollection::CopyTo
+	IL_079f:  nop 
+	IL_07a0:  ldloc.s 8
+	IL_07a2:  unbox.any [mscorlib]System.Double
+	IL_07a7:  ldc.r8 0.
+	IL_07b0:  bne.un IL_07da
 
-    // method line 2053
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.TaskBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x23edc
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_07b5:  nop 
+	IL_07b6:  ldarg.0 
+	IL_07b7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_07bc:  ldstr "NA1043"
+	IL_07c1:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_07c6:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_07cb:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_07d0:  ldloc.s 7
+	IL_07d2:  ldloc.s 9
+	IL_07d4:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_07d9:  throw 
+	IL_07da:  ldloc.1 
+	IL_07db:  unbox.any [mscorlib]System.Int32
+	IL_07e0:  conv.r8 
+	IL_07e1:  ldloc.s 8
+	IL_07e3:  unbox.any [mscorlib]System.Double
+	IL_07e8:  rem 
+	IL_07e9:  box [mscorlib]System.Double
+	IL_07ee:  stloc.1 
+	IL_07ef:  nop 
+	IL_07f0:  br IL_0a99
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method TaskBuilderCollection::IndexOf
+	IL_07f5:  ldloc.1 
+	IL_07f6:  isinst [mscorlib]System.Int64
+	IL_07fb:  brfalse IL_085a
 
-    // method line 2054
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.TaskBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x23efd
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method TaskBuilderCollection::Insert
+	IL_0800:  ldloc.s 8
+	IL_0802:  isinst [mscorlib]System.Int64
+	IL_0807:  brfalse IL_085a
 
-    // method line 2055
-    .method public hidebysig 
-           instance default class NAnt.Core.TaskBuilderEnumerator GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x23f10
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.TaskBuilderEnumerator	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.TaskBuilderEnumerator::'.ctor'(class NAnt.Core.TaskBuilderCollection)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_080c:  nop 
+	IL_080d:  ldloc.s 8
+	IL_080f:  unbox.any [mscorlib]System.Int64
+	IL_0814:  ldc.i4.0 
+	IL_0815:  conv.i8 
+	IL_0816:  bne.un IL_0840
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TaskBuilderCollection::GetEnumerator
+	IL_081b:  nop 
+	IL_081c:  ldarg.0 
+	IL_081d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0822:  ldstr "NA1043"
+	IL_0827:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_082c:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_0831:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0836:  ldloc.s 7
+	IL_0838:  ldloc.s 9
+	IL_083a:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_083f:  throw 
+	IL_0840:  ldloc.1 
+	IL_0841:  unbox.any [mscorlib]System.Int64
+	IL_0846:  ldloc.s 8
+	IL_0848:  unbox.any [mscorlib]System.Int64
+	IL_084d:  rem 
+	IL_084e:  box [mscorlib]System.Int64
+	IL_0853:  stloc.1 
+	IL_0854:  nop 
+	IL_0855:  br IL_0a99
 
-    // method line 2056
-    .method public hidebysig 
-           instance default void Remove (class NAnt.Core.TaskBuilder item)  cil managed 
-    {
-        // Method begins at RVA 0x23f2b
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method TaskBuilderCollection::Remove
+	IL_085a:  ldloc.1 
+	IL_085b:  isinst [mscorlib]System.Int64
+	IL_0860:  brfalse IL_08be
 
-	.property instance class NAnt.Core.TaskBuilder Item (int32)
-	{
-		.get instance default class NAnt.Core.TaskBuilder NAnt.Core.TaskBuilderCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Core.TaskBuilderCollection::set_Item (int32 index, class NAnt.Core.TaskBuilder 'value') 
-	}
-	.property instance class NAnt.Core.TaskBuilder Item (string)
-	{
-		.get instance default class NAnt.Core.TaskBuilder NAnt.Core.TaskBuilderCollection::get_Item (string taskName) 
-	}
-  } // end of class NAnt.Core.TaskBuilderCollection
-}
+	IL_0865:  ldloc.s 8
+	IL_0867:  isinst [mscorlib]System.Int32
+	IL_086c:  brfalse IL_08be
 
-.namespace NAnt.Core
-{
-  .class public auto ansi beforefieldinit TaskBuilderEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+	IL_0871:  nop 
+	IL_0872:  ldloc.s 8
+	IL_0874:  unbox.any [mscorlib]System.Int32
+	IL_0879:  brtrue IL_08a3
 
-    // method line 2057
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.TaskBuilderCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0x23f3c
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.TaskBuilderEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method TaskBuilderEnumerator::.ctor
+	IL_087e:  nop 
+	IL_087f:  ldarg.0 
+	IL_0880:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0885:  ldstr "NA1043"
+	IL_088a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_088f:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_0894:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0899:  ldloc.s 7
+	IL_089b:  ldloc.s 9
+	IL_089d:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_08a2:  throw 
+	IL_08a3:  ldloc.1 
+	IL_08a4:  unbox.any [mscorlib]System.Int64
+	IL_08a9:  ldloc.s 8
+	IL_08ab:  unbox.any [mscorlib]System.Int32
+	IL_08b0:  conv.i8 
+	IL_08b1:  rem 
+	IL_08b2:  box [mscorlib]System.Int64
+	IL_08b7:  stloc.1 
+	IL_08b8:  nop 
+	IL_08b9:  br IL_0a99
 
-    // method line 2058
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.TaskBuilder get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x23f60
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.TaskBuilder	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.TaskBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.TaskBuilder
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_08be:  ldloc.1 
+	IL_08bf:  isinst [mscorlib]System.Int64
+	IL_08c4:  brfalse IL_092b
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method TaskBuilderEnumerator::get_Current
+	IL_08c9:  ldloc.s 8
+	IL_08cb:  isinst [mscorlib]System.Double
+	IL_08d0:  brfalse IL_092b
 
-    // method line 2059
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x23f88
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		object	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.TaskBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_08d5:  nop 
+	IL_08d6:  ldloc.s 8
+	IL_08d8:  unbox.any [mscorlib]System.Double
+	IL_08dd:  ldc.r8 0.
+	IL_08e6:  bne.un IL_0910
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method TaskBuilderEnumerator::System.Collections.IEnumerator.get_Current
+	IL_08eb:  nop 
+	IL_08ec:  ldarg.0 
+	IL_08ed:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_08f2:  ldstr "NA1043"
+	IL_08f7:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_08fc:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_0901:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0906:  ldloc.s 7
+	IL_0908:  ldloc.s 9
+	IL_090a:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_090f:  throw 
+	IL_0910:  ldloc.1 
+	IL_0911:  unbox.any [mscorlib]System.Int64
+	IL_0916:  conv.r8 
+	IL_0917:  ldloc.s 8
+	IL_0919:  unbox.any [mscorlib]System.Double
+	IL_091e:  rem 
+	IL_091f:  box [mscorlib]System.Double
+	IL_0924:  stloc.1 
+	IL_0925:  nop 
+	IL_0926:  br IL_0a99
 
-    // method line 2060
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x23fa8
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.TaskBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_092b:  ldloc.1 
+	IL_092c:  isinst [mscorlib]System.Double
+	IL_0931:  brfalse IL_0997
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method TaskBuilderEnumerator::MoveNext
+	IL_0936:  ldloc.s 8
+	IL_0938:  isinst [mscorlib]System.Double
+	IL_093d:  brfalse IL_0997
 
-    // method line 2061
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x23fc8
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.TaskBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0942:  nop 
+	IL_0943:  ldloc.s 8
+	IL_0945:  unbox.any [mscorlib]System.Double
+	IL_094a:  ldc.r8 0.
+	IL_0953:  bne.un IL_097d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method TaskBuilderEnumerator::System.Collections.IEnumerator.MoveNext
+	IL_0958:  nop 
+	IL_0959:  ldarg.0 
+	IL_095a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_095f:  ldstr "NA1043"
+	IL_0964:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0969:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_096e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0973:  ldloc.s 7
+	IL_0975:  ldloc.s 9
+	IL_0977:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_097c:  throw 
+	IL_097d:  ldloc.1 
+	IL_097e:  unbox.any [mscorlib]System.Double
+	IL_0983:  ldloc.s 8
+	IL_0985:  unbox.any [mscorlib]System.Double
+	IL_098a:  rem 
+	IL_098b:  box [mscorlib]System.Double
+	IL_0990:  stloc.1 
+	IL_0991:  nop 
+	IL_0992:  br IL_0a99
 
-    // method line 2062
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x23fe8
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.TaskBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method TaskBuilderEnumerator::Reset
+	IL_0997:  ldloc.1 
+	IL_0998:  isinst [mscorlib]System.Double
+	IL_099d:  brfalse IL_09fb
 
-    // method line 2063
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x23ff6
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.TaskBuilderEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method TaskBuilderEnumerator::System.Collections.IEnumerator.Reset
+	IL_09a2:  ldloc.s 8
+	IL_09a4:  isinst [mscorlib]System.Int32
+	IL_09a9:  brfalse IL_09fb
 
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.Core.TaskBuilderEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.Core.TaskBuilder Current ()
-	{
-		.get instance default class NAnt.Core.TaskBuilder NAnt.Core.TaskBuilderEnumerator::get_Current () 
-	}
-  } // end of class NAnt.Core.TaskBuilderEnumerator
-}
+	IL_09ae:  nop 
+	IL_09af:  ldloc.s 8
+	IL_09b1:  unbox.any [mscorlib]System.Int32
+	IL_09b6:  brtrue IL_09e0
 
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable beforefieldinit FrameworkInfo
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Runtime.Serialization.ISerializable  {
-    .field  private initonly  class [System.Xml]System.Xml.XmlNode _frameworkNode
-    .field  private initonly  class [System.Xml]System.Xml.XmlNamespaceManager _nsMgr
-    .field  private initonly  string _name
-    .field  private initonly  string _family
-    .field  private initonly  string _description
-    .field  private  class [mscorlib]System.Version _version
-    .field  private  class [mscorlib]System.Version _clrVersion
-    .field  private  valuetype NAnt.Core.ClrType _clrType
-    .field  private  valuetype NAnt.Core.VendorType _vendor
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _frameworkDirectory
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _sdkDirectory
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _frameworkAssemblyDirectory
-    .field  private  class NAnt.Core.Configuration.Runtime _runtime
-    .field  private  class NAnt.Core.Project _project
-    .field  private  class NAnt.Core.Types.FileSet _taskAssemblies
-    .field  private  class NAnt.Core.Types.FileSet[] _referenceAssemblies
-    .field  private  string[] _toolPaths
-    .field  private  valuetype NAnt.Core.FrameworkInfo/InitStatus _status
+	IL_09bb:  nop 
+	IL_09bc:  ldarg.0 
+	IL_09bd:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_09c2:  ldstr "NA1043"
+	IL_09c7:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_09cc:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_09d1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_09d6:  ldloc.s 7
+	IL_09d8:  ldloc.s 9
+	IL_09da:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_09df:  throw 
+	IL_09e0:  ldloc.1 
+	IL_09e1:  unbox.any [mscorlib]System.Double
+	IL_09e6:  ldloc.s 8
+	IL_09e8:  unbox.any [mscorlib]System.Int32
+	IL_09ed:  conv.r8 
+	IL_09ee:  rem 
+	IL_09ef:  box [mscorlib]System.Double
+	IL_09f4:  stloc.1 
+	IL_09f5:  nop 
+	IL_09f6:  br IL_0a99
 
-    // method line 2064
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlNode frameworkNode, class [System.Xml]System.Xml.XmlNamespaceManager nsMgr)  cil managed 
-    {
-        // Method begins at RVA 0x24004
-	// Code size 274 (0x112)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.Exception	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void object::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.1 
-	IL_000f:  brtrue IL_0020
+	IL_09fb:  ldloc.1 
+	IL_09fc:  isinst [mscorlib]System.Double
+	IL_0a01:  brfalse IL_0a61
 
-	IL_0014:  nop 
-	IL_0015:  ldstr "frameworkNode"
-	IL_001a:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_001f:  throw 
-	IL_0020:  ldarg.2 
-	IL_0021:  brtrue IL_0032
+	IL_0a06:  ldloc.s 8
+	IL_0a08:  isinst [mscorlib]System.Int64
+	IL_0a0d:  brfalse IL_0a61
 
-	IL_0026:  nop 
-	IL_0027:  ldstr "nsMgr"
-	IL_002c:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0031:  throw 
-	IL_0032:  ldarg.0 
-	IL_0033:  ldarg.1 
-	IL_0034:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_0039:  ldarg.0 
-	IL_003a:  ldarg.2 
-	IL_003b:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.FrameworkInfo::_nsMgr
-	IL_0040:  ldarg.0 
-	IL_0041:  ldarg.1 
-	IL_0042:  ldstr "name"
-	IL_0047:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_004c:  stfld string NAnt.Core.FrameworkInfo::_name
-	IL_0051:  ldarg.0 
-	IL_0052:  ldfld string NAnt.Core.FrameworkInfo::_name
-	IL_0057:  brtrue IL_0068
+	IL_0a12:  nop 
+	IL_0a13:  ldloc.s 8
+	IL_0a15:  unbox.any [mscorlib]System.Int64
+	IL_0a1a:  ldc.i4.0 
+	IL_0a1b:  conv.i8 
+	IL_0a1c:  bne.un IL_0a46
 
-	IL_005c:  nop 
-	IL_005d:  ldstr "The \"name\" attribute does not exist, or has no value."
-	IL_0062:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0067:  throw 
-	IL_0068:  ldarg.0 
-	IL_0069:  ldarg.1 
-	IL_006a:  ldstr "family"
-	IL_006f:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_0074:  stfld string NAnt.Core.FrameworkInfo::_family
-	IL_0079:  ldarg.0 
-	IL_007a:  ldfld string NAnt.Core.FrameworkInfo::_family
-	IL_007f:  brtrue IL_0090
+	IL_0a21:  nop 
+	IL_0a22:  ldarg.0 
+	IL_0a23:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0a28:  ldstr "NA1043"
+	IL_0a2d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0a32:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_0a37:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0a3c:  ldloc.s 7
+	IL_0a3e:  ldloc.s 9
+	IL_0a40:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0a45:  throw 
+	IL_0a46:  ldloc.1 
+	IL_0a47:  unbox.any [mscorlib]System.Double
+	IL_0a4c:  ldloc.s 8
+	IL_0a4e:  unbox.any [mscorlib]System.Int64
+	IL_0a53:  conv.r8 
+	IL_0a54:  rem 
+	IL_0a55:  box [mscorlib]System.Double
+	IL_0a5a:  stloc.1 
+	IL_0a5b:  nop 
+	IL_0a5c:  br IL_0a99
 
-	IL_0084:  nop 
-	IL_0085:  ldstr "The \"family\" attribute does not exist, or has no value."
-	IL_008a:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_008f:  throw 
-	IL_0090:  ldarg.0 
-	IL_0091:  ldarg.0 
-	IL_0092:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_0097:  ldstr "description"
-	IL_009c:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_00a1:  stfld string NAnt.Core.FrameworkInfo::_description
-	IL_00a6:  ldarg.0 
-	IL_00a7:  ldfld string NAnt.Core.FrameworkInfo::_description
-	IL_00ac:  brtrue IL_00bd
+	IL_0a61:  nop 
+	IL_0a62:  ldarg.0 
+	IL_0a63:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0a68:  ldstr "NA1047"
+	IL_0a6d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0a72:  ldarg.0 
+	IL_0a73:  ldloc.1 
+	IL_0a74:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0a79:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_0a7e:  ldarg.0 
+	IL_0a7f:  ldloc.s 8
+	IL_0a81:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0a86:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_0a8b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0a90:  ldloc.0 
+	IL_0a91:  ldloc.s 9
+	IL_0a93:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0a98:  throw 
+	IL_0a99:  nop 
+	IL_0a9a:  nop 
+	IL_0a9b:  br IL_0aa6
 
-	IL_00b1:  nop 
-	IL_00b2:  ldstr "The \"description\" attribute does not exist, or has no value."
-	IL_00b7:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_00bc:  throw 
-	IL_00bd:  ldarg.0 
-	IL_00be:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_00c3:  ldstr "vendor"
-	IL_00c8:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_00cd:  stloc.0 
-	IL_00ce:  ldloc.0 
-	IL_00cf:  brtrue IL_00e0
+	IL_0aa0:  nop 
+	IL_0aa1:  br IL_0aac
 
-	IL_00d4:  nop 
-	IL_00d5:  ldstr "The \"vendor\" attribute does not exist, or has no value."
-	IL_00da:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_00df:  throw 
-	.try { // 0
-	  IL_00e0:  nop 
-	  IL_00e1:  ldarg.0 
-	  IL_00e2:  ldtoken NAnt.Core.VendorType
-	  IL_00e7:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_00ec:  ldloc.0 
-	  IL_00ed:  ldc.i4.1 
-	  IL_00ee:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	  IL_00f3:  unbox.any NAnt.Core.VendorType
-	  IL_00f8:  stfld valuetype NAnt.Core.VendorType NAnt.Core.FrameworkInfo::_vendor
-	  IL_00fd:  nop 
-	  IL_00fe:  leave IL_0111
+	IL_0aa6:  nop 
+	IL_0aa7:  br IL_0014
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0103:  stloc.1 
-	  IL_0104:  nop 
-	  IL_0105:  ldstr "The value of the \"vendor\" attribute is not valid."
-	  IL_010a:  ldloc.1 
-	  IL_010b:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string, class [mscorlib]System.Exception)
-	  IL_0110:  throw 
-	} // end handler 0
-	IL_0111:  ret 
-    } // end of method FrameworkInfo::.ctor
+	IL_0aac:  ldloc.1 
+	IL_0aad:  stloc.s 10
+	IL_0aaf:  br IL_0ab4
 
-    // method line 2065
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
+	IL_0ab4:  ldloc.s 10
+	IL_0ab6:  ret 
+    } // end of method ExpressionEvalBase::ParseMulDiv
+
+    // method line 1680
+    .method private hidebysig 
+           instance default object ParseConditional ()  cil managed 
     {
-        // Method begins at RVA 0x24134
-	// Code size 500 (0x1f4)
-	.maxstack 4
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void object::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  ldstr "Name"
-	IL_0015:  callvirt instance string class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetString(string)
-	IL_001a:  stfld string NAnt.Core.FrameworkInfo::_name
+        // Method begins at RVA 0x20b54
+	// Code size 437 (0x1b5)
+	.maxstack 6
+	.locals init (
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0,
+		object	V_1,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_2,
+		bool	V_3,
+		valuetype NAnt.Core.ExpressionEvalBase/EvalMode	V_4,
+		object	V_5,
+		object	V_6,
+		object	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0007:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0012:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0017:  ldc.i4.s 0x10
+	IL_0019:  beq IL_0036
+
+	IL_001e:  nop 
 	IL_001f:  ldarg.0 
-	IL_0020:  ldarg.1 
-	IL_0021:  ldstr "Family"
-	IL_0026:  callvirt instance string class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetString(string)
-	IL_002b:  stfld string NAnt.Core.FrameworkInfo::_family
-	IL_0030:  ldarg.0 
-	IL_0031:  ldarg.1 
-	IL_0032:  ldstr "Description"
-	IL_0037:  callvirt instance string class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetString(string)
-	IL_003c:  stfld string NAnt.Core.FrameworkInfo::_description
+	IL_0020:  ldstr "'(' expected."
+	IL_0025:  ldarg.0 
+	IL_0026:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_002b:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0030:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0035:  throw 
+	IL_0036:  ldarg.0 
+	IL_0037:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_003c:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
 	IL_0041:  ldarg.0 
-	IL_0042:  ldarg.1 
-	IL_0043:  ldstr "Status"
-	IL_0048:  ldtoken NAnt.Core.FrameworkInfo/InitStatus
-	IL_004d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0052:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_0057:  unbox.any NAnt.Core.FrameworkInfo/InitStatus
-	IL_005c:  stfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
-	IL_0061:  ldarg.0 
-	IL_0062:  ldarg.1 
-	IL_0063:  ldstr "ClrType"
-	IL_0068:  ldtoken NAnt.Core.ClrType
-	IL_006d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0072:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_0077:  unbox.any NAnt.Core.ClrType
-	IL_007c:  stfld valuetype NAnt.Core.ClrType NAnt.Core.FrameworkInfo::_clrType
-	IL_0081:  ldarg.0 
-	IL_0082:  ldarg.1 
-	IL_0083:  ldstr "Version"
-	IL_0088:  ldtoken [mscorlib]System.Version
-	IL_008d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0092:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_0097:  castclass [mscorlib]System.Version
-	IL_009c:  stfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_version
-	IL_00a1:  ldarg.0 
-	IL_00a2:  ldarg.1 
-	IL_00a3:  ldstr "ClrVersion"
-	IL_00a8:  ldtoken [mscorlib]System.Version
-	IL_00ad:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_00b2:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_00b7:  castclass [mscorlib]System.Version
-	IL_00bc:  stfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_clrVersion
-	IL_00c1:  ldarg.0 
-	IL_00c2:  ldarg.1 
-	IL_00c3:  ldstr "Vendor"
-	IL_00c8:  ldtoken NAnt.Core.VendorType
-	IL_00cd:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_00d2:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_00d7:  unbox.any NAnt.Core.VendorType
-	IL_00dc:  stfld valuetype NAnt.Core.VendorType NAnt.Core.FrameworkInfo::_vendor
-	IL_00e1:  ldarg.0 
-	IL_00e2:  ldfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
-	IL_00e7:  ldc.i4.3 
-	IL_00e8:  beq IL_00f3
-
-	IL_00ed:  nop 
-	IL_00ee:  br IL_01f3
+	IL_0042:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0047:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_004c:  stloc.0 
+	IL_004d:  ldarg.0 
+	IL_004e:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
+	IL_0053:  stloc.1 
+	IL_0054:  ldarg.0 
+	IL_0055:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_005a:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_005f:  stloc.2 
+	IL_0060:  ldc.i4.0 
+	IL_0061:  stloc.3 
+	IL_0062:  ldarg.0 
+	IL_0063:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	IL_0068:  brtrue IL_008d
 
-	IL_00f3:  ldarg.0 
-	IL_00f4:  ldarg.1 
-	IL_00f5:  ldstr "FrameworkDirectory"
-	IL_00fa:  ldtoken [mscorlib]System.IO.DirectoryInfo
-	IL_00ff:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0104:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_0109:  castclass [mscorlib]System.IO.DirectoryInfo
-	IL_010e:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkDirectory
-	IL_0113:  ldarg.0 
-	IL_0114:  ldarg.1 
-	IL_0115:  ldstr "SdkDirectory"
-	IL_011a:  ldtoken [mscorlib]System.IO.DirectoryInfo
-	IL_011f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0124:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_0129:  castclass [mscorlib]System.IO.DirectoryInfo
-	IL_012e:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_sdkDirectory
-	IL_0133:  ldarg.0 
-	IL_0134:  ldarg.1 
-	IL_0135:  ldstr "FrameworkAssemblyDirectory"
-	IL_013a:  ldtoken [mscorlib]System.IO.DirectoryInfo
-	IL_013f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0144:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_0149:  castclass [mscorlib]System.IO.DirectoryInfo
-	IL_014e:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkAssemblyDirectory
-	IL_0153:  ldarg.0 
-	IL_0154:  ldarg.1 
-	IL_0155:  ldstr "Runtime"
-	IL_015a:  ldtoken NAnt.Core.Configuration.Runtime
-	IL_015f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0164:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_0169:  castclass NAnt.Core.Configuration.Runtime
-	IL_016e:  stfld class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::_runtime
-	IL_0173:  ldarg.0 
-	IL_0174:  ldarg.1 
-	IL_0175:  ldstr "Project"
-	IL_017a:  ldtoken NAnt.Core.Project
-	IL_017f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0184:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_0189:  castclass NAnt.Core.Project
-	IL_018e:  stfld class NAnt.Core.Project NAnt.Core.FrameworkInfo::_project
-	IL_0193:  ldarg.0 
-	IL_0194:  ldarg.1 
-	IL_0195:  ldstr "TaskAssemblies"
-	IL_019a:  ldtoken NAnt.Core.Types.FileSet
-	IL_019f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_01a4:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_01a9:  castclass NAnt.Core.Types.FileSet
-	IL_01ae:  stfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
-	IL_01b3:  ldarg.0 
-	IL_01b4:  ldarg.1 
-	IL_01b5:  ldstr "ReferenceAssemblies"
-	IL_01ba:  ldtoken class NAnt.Core.Types.FileSet[]
-	IL_01bf:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_01c4:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_01c9:  castclass class NAnt.Core.Types.FileSet[]
-	IL_01ce:  stfld class NAnt.Core.Types.FileSet[] NAnt.Core.FrameworkInfo::_referenceAssemblies
-	IL_01d3:  ldarg.0 
-	IL_01d4:  ldarg.1 
-	IL_01d5:  ldstr "ToolPaths"
-	IL_01da:  ldtoken string[]
-	IL_01df:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_01e4:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_01e9:  castclass string[]
-	IL_01ee:  stfld string[] NAnt.Core.FrameworkInfo::_toolPaths
-	IL_01f3:  ret 
-    } // end of method FrameworkInfo::.ctor
+	IL_006d:  nop 
+	IL_006e:  ldarg.0 
+	IL_006f:  ldtoken [mscorlib]System.Boolean
+	IL_0074:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0079:  ldloc.1 
+	IL_007a:  ldstr "the conditional expression"
+	IL_007f:  ldloc.0 
+	IL_0080:  ldloc.2 
+	IL_0081:  call instance object class NAnt.Core.ExpressionEvalBase::SafeConvert(class [mscorlib]System.Type, object, string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0086:  unbox.any [mscorlib]System.Boolean
+	IL_008b:  stloc.3 
+	IL_008c:  nop 
+	IL_008d:  ldarg.0 
+	IL_008e:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0093:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0098:  ldc.i4.s 0x18
+	IL_009a:  beq IL_00b7
 
-    // method line 2066
-    .method private final virtual hidebysig newslot 
-           instance default void System.Runtime.Serialization.ISerializable.GetObjectData (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
-    {
-        // Method begins at RVA 0x24334
-	.override class [mscorlib]System.Runtime.Serialization.ISerializable::GetObjectData
-	// Code size 302 (0x12e)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "Name"
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance string class NAnt.Core.FrameworkInfo::get_Name()
-	IL_000d:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_0012:  ldarg.1 
-	IL_0013:  ldstr "Family"
-	IL_0018:  ldarg.0 
-	IL_0019:  call instance string class NAnt.Core.FrameworkInfo::get_Family()
-	IL_001e:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_0023:  ldarg.1 
-	IL_0024:  ldstr "Description"
-	IL_0029:  ldarg.0 
-	IL_002a:  call instance string class NAnt.Core.FrameworkInfo::get_Description()
-	IL_002f:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_0034:  ldarg.1 
-	IL_0035:  ldstr "ClrType"
-	IL_003a:  ldarg.0 
-	IL_003b:  call instance valuetype NAnt.Core.ClrType class NAnt.Core.FrameworkInfo::get_ClrType()
-	IL_0040:  box NAnt.Core.ClrType
-	IL_0045:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_004a:  ldarg.1 
-	IL_004b:  ldstr "Version"
-	IL_0050:  ldarg.0 
-	IL_0051:  call instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_Version()
-	IL_0056:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_005b:  ldarg.1 
-	IL_005c:  ldstr "ClrVersion"
-	IL_0061:  ldarg.0 
-	IL_0062:  call instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
-	IL_0067:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_006c:  ldarg.1 
-	IL_006d:  ldstr "Status"
-	IL_0072:  ldarg.0 
-	IL_0073:  ldfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
-	IL_0078:  box NAnt.Core.FrameworkInfo/InitStatus
-	IL_007d:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_0082:  ldarg.1 
-	IL_0083:  ldstr "Vendor"
-	IL_0088:  ldarg.0 
-	IL_0089:  call instance valuetype NAnt.Core.VendorType class NAnt.Core.FrameworkInfo::get_Vendor()
-	IL_008e:  box NAnt.Core.VendorType
-	IL_0093:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_0098:  ldarg.0 
-	IL_0099:  call instance bool class NAnt.Core.FrameworkInfo::get_IsValid()
-	IL_009e:  brfalse IL_012d
+	IL_009f:  nop 
+	IL_00a0:  ldarg.0 
+	IL_00a1:  ldstr "',' expected."
+	IL_00a6:  ldarg.0 
+	IL_00a7:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_00ac:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_00b1:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_00b6:  throw 
+	IL_00b7:  ldarg.0 
+	IL_00b8:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_00bd:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_00c2:  ldarg.0 
+	IL_00c3:  ldfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	IL_00c8:  stloc.s 4
+	.try { // 0
+	  IL_00ca:  nop 
+	  IL_00cb:  ldloc.3 
+	  IL_00cc:  brtrue IL_00df
 
-	IL_00a3:  nop 
-	IL_00a4:  ldarg.1 
-	IL_00a5:  ldstr "FrameworkDirectory"
-	IL_00aa:  ldarg.0 
-	IL_00ab:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
-	IL_00b0:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_00b5:  ldarg.1 
-	IL_00b6:  ldstr "SdkDirectory"
-	IL_00bb:  ldarg.0 
-	IL_00bc:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
-	IL_00c1:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_00c6:  ldarg.1 
-	IL_00c7:  ldstr "FrameworkAssemblyDirectory"
-	IL_00cc:  ldarg.0 
-	IL_00cd:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory()
-	IL_00d2:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_00d7:  ldarg.1 
-	IL_00d8:  ldstr "Runtime"
-	IL_00dd:  ldarg.0 
-	IL_00de:  call instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
-	IL_00e3:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_00e8:  ldarg.1 
-	IL_00e9:  ldstr "Project"
-	IL_00ee:  ldarg.0 
-	IL_00ef:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
-	IL_00f4:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_00f9:  ldarg.1 
-	IL_00fa:  ldstr "TaskAssemblies"
-	IL_00ff:  ldarg.0 
-	IL_0100:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.FrameworkInfo::get_TaskAssemblies()
-	IL_0105:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_010a:  ldarg.1 
-	IL_010b:  ldstr "ReferenceAssemblies"
-	IL_0110:  ldarg.0 
-	IL_0111:  call instance class NAnt.Core.Types.FileSet[] class NAnt.Core.FrameworkInfo::get_ReferenceAssemblies()
-	IL_0116:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_011b:  ldarg.1 
-	IL_011c:  ldstr "ToolPaths"
-	IL_0121:  ldarg.0 
-	IL_0122:  call instance string[] class NAnt.Core.FrameworkInfo::get_ToolPaths()
-	IL_0127:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_012c:  nop 
-	IL_012d:  ret 
-    } // end of method FrameworkInfo::System.Runtime.Serialization.ISerializable.GetObjectData
+	  IL_00d1:  nop 
+	  IL_00d2:  ldarg.0 
+	  IL_00d3:  ldc.i4.1 
+	  IL_00d4:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	  IL_00d9:  nop 
+	  IL_00da:  br IL_00e9
 
-    // method line 2067
-    .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x24470
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.FrameworkInfo::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_00df:  nop 
+	  IL_00e0:  ldarg.0 
+	  IL_00e1:  ldloc.s 4
+	  IL_00e3:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	  IL_00e8:  nop 
+	  IL_00e9:  ldarg.0 
+	  IL_00ea:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
+	  IL_00ef:  stloc.s 5
+	  IL_00f1:  ldarg.0 
+	  IL_00f2:  ldloc.s 4
+	  IL_00f4:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	  IL_00f9:  ldarg.0 
+	  IL_00fa:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_00ff:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	  IL_0104:  ldc.i4.s 0x18
+	  IL_0106:  beq IL_0123
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FrameworkInfo::get_Name
+	  IL_010b:  nop 
+	  IL_010c:  ldarg.0 
+	  IL_010d:  ldstr "',' expected."
+	  IL_0112:  ldarg.0 
+	  IL_0113:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_0118:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	  IL_011d:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	  IL_0122:  throw 
+	  IL_0123:  ldarg.0 
+	  IL_0124:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_0129:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	  IL_012e:  ldloc.3 
+	  IL_012f:  brfalse IL_0142
 
-    // method line 2068
-    .method public hidebysig specialname 
-           instance default string get_Family ()  cil managed 
-    {
-        // Method begins at RVA 0x2448c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.FrameworkInfo::_family
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0134:  nop 
+	  IL_0135:  ldarg.0 
+	  IL_0136:  ldc.i4.1 
+	  IL_0137:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	  IL_013c:  nop 
+	  IL_013d:  br IL_014c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FrameworkInfo::get_Family
+	  IL_0142:  nop 
+	  IL_0143:  ldarg.0 
+	  IL_0144:  ldloc.s 4
+	  IL_0146:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	  IL_014b:  nop 
+	  IL_014c:  ldarg.0 
+	  IL_014d:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
+	  IL_0152:  stloc.s 6
+	  IL_0154:  ldarg.0 
+	  IL_0155:  ldloc.s 4
+	  IL_0157:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	  IL_015c:  ldarg.0 
+	  IL_015d:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_0162:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	  IL_0167:  ldc.i4.s 0x11
+	  IL_0169:  beq IL_0186
 
-    // method line 2069
-    .method public hidebysig specialname 
-           instance default string get_Description ()  cil managed 
-    {
-        // Method begins at RVA 0x244a8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.FrameworkInfo::_description
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_016e:  nop 
+	  IL_016f:  ldarg.0 
+	  IL_0170:  ldstr "')' expected."
+	  IL_0175:  ldarg.0 
+	  IL_0176:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_017b:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	  IL_0180:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	  IL_0185:  throw 
+	  IL_0186:  ldarg.0 
+	  IL_0187:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_018c:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	  IL_0191:  ldloc.3 
+	  IL_0192:  brfalse IL_019e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FrameworkInfo::get_Description
+	  IL_0197:  ldloc.s 5
+	  IL_0199:  br IL_01a0
 
-    // method line 2070
-    .method assembly hidebysig specialname 
-           instance default valuetype NAnt.Core.VendorType get_Vendor ()  cil managed 
-    {
-        // Method begins at RVA 0x244c4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.Core.VendorType	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.VendorType NAnt.Core.FrameworkInfo::_vendor
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_019e:  ldloc.s 6
+	  IL_01a0:  stloc.s 7
+	  IL_01a2:  leave IL_01b2
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FrameworkInfo::get_Vendor
+	} // end .try 0
+	finally  { // 0
+	  IL_01a7:  nop 
+	  IL_01a8:  ldarg.0 
+	  IL_01a9:  ldloc.s 4
+	  IL_01ab:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	  IL_01b0:  nop 
+	  IL_01b1:  endfinally 
+	} // end handler 0
+	IL_01b2:  ldloc.s 7
+	IL_01b4:  ret 
+    } // end of method ExpressionEvalBase::ParseConditional
 
-    // method line 2071
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Version get_Version ()  cil managed 
+    // method line 1681
+    .method private hidebysig 
+           instance default object ParseValue ()  cil managed 
     {
-        // Method begins at RVA 0x244e0
-	// Code size 94 (0x5e)
-	.maxstack 2
+        // Method begins at RVA 0x20d28
+	// Code size 1978 (0x7ba)
+	.maxstack 8
 	.locals init (
-		string	V_0,
-		class [mscorlib]System.Version	V_1)
+		object	V_0,
+		object	V_1,
+		string	V_2,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_3,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_4,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_5,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_6,
+		object	V_7,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_8,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_9,
+		object	V_10,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_11,
+		bool	V_12,
+		object	V_13,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_14,
+		string	V_15,
+		class [mscorlib]System.Collections.ArrayList	V_16,
+		bool	V_17,
+		class [mscorlib]System.Reflection.MethodInfo	V_18,
+		int32	V_19,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_20,
+		object	V_21,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_22,
+		class NAnt.Core.Extensibility.FunctionArgument[]	V_23,
+		class NAnt.Core.BuildException	V_24,
+		class [mscorlib]System.Reflection.ParameterInfo[]	V_25,
+		int32	V_26,
+		class NAnt.Core.Extensibility.FunctionArgument	V_27,
+		class [mscorlib]System.Reflection.ParameterInfo	V_28,
+		object	V_29,
+		class [mscorlib]System.Exception	V_30)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_version
-	IL_0007:  ldnull 
-	IL_0008:  call bool class [mscorlib]System.Version::op_Equality(class [mscorlib]System.Version, class [mscorlib]System.Version)
-	IL_000d:  brfalse IL_0050
+	IL_0002:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0007:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_000c:  ldc.i4.3 
+	IL_000d:  bne.un IL_0031
 
 	IL_0012:  nop 
 	IL_0013:  ldarg.0 
-	IL_0014:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_0019:  brtrue IL_002a
+	IL_0014:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0019:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
+	IL_001e:  stloc.0 
+	IL_001f:  ldarg.0 
+	IL_0020:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0025:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_002a:  ldloc.0 
+	IL_002b:  stloc.1 
+	IL_002c:  br IL_07b8
 
-	IL_001e:  nop 
-	IL_001f:  ldstr "The current framework is not valid."
-	IL_0024:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0029:  throw 
-	IL_002a:  ldarg.0 
-	IL_002b:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_0030:  ldstr "version"
-	IL_0035:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_003a:  stloc.0 
-	IL_003b:  ldloc.0 
-	IL_003c:  brfalse IL_004f
+	IL_0031:  ldarg.0 
+	IL_0032:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0037:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_003c:  ldc.i4.2 
+	IL_003d:  bne.un IL_016a
 
-	IL_0041:  nop 
-	IL_0042:  ldarg.0 
-	IL_0043:  ldloc.0 
-	IL_0044:  newobj instance void class [mscorlib]System.Version::'.ctor'(string)
-	IL_0049:  stfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_version
-	IL_004e:  nop 
-	IL_004f:  nop 
-	IL_0050:  ldarg.0 
-	IL_0051:  ldfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_version
-	IL_0056:  stloc.1 
-	IL_0057:  br IL_005c
+	IL_0042:  nop 
+	IL_0043:  ldarg.0 
+	IL_0044:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0049:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
+	IL_004e:  stloc.2 
+	IL_004f:  ldarg.0 
+	IL_0050:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0055:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_005a:  stloc.3 
+	IL_005b:  ldarg.0 
+	IL_005c:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0061:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_0066:  ldloca.s 4
+	IL_0068:  ldarg.0 
+	IL_0069:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_006e:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0073:  stloc.s 5
+	IL_0075:  ldloca.s 5
+	IL_0077:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
+	IL_007c:  ldc.i4.1 
+	IL_007d:  sub 
+	IL_007e:  call instance void valuetype NAnt.Core.ExpressionTokenizer/Position::'.ctor'(int32)
+	IL_0083:  ldarg.0 
+	IL_0084:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0089:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_008e:  ldc.i4.s 0x19
+	IL_0090:  bne.un IL_0128
 
-	IL_005c:  ldloc.1 
-	IL_005d:  ret 
-    } // end of method FrameworkInfo::get_Version
+	IL_0095:  nop 
+	IL_0096:  ldloc.2 
+	IL_0097:  ldstr "."
+	IL_009c:  call string string::Concat(string, string)
+	IL_00a1:  stloc.2 
+	IL_00a2:  ldarg.0 
+	IL_00a3:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_00a8:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_00ad:  ldarg.0 
+	IL_00ae:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_00b3:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_00b8:  ldc.i4.2 
+	IL_00b9:  beq IL_00d6
 
-    // method line 2072
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Version get_ClrVersion ()  cil managed 
-    {
-        // Method begins at RVA 0x2454c
-	// Code size 94 (0x5e)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.Version	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_clrVersion
-	IL_0007:  ldnull 
-	IL_0008:  call bool class [mscorlib]System.Version::op_Equality(class [mscorlib]System.Version, class [mscorlib]System.Version)
-	IL_000d:  brfalse IL_0050
+	IL_00be:  nop 
+	IL_00bf:  ldarg.0 
+	IL_00c0:  ldstr "Fractional part expected."
+	IL_00c5:  ldarg.0 
+	IL_00c6:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_00cb:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_00d0:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_00d5:  throw 
+	IL_00d6:  ldloc.2 
+	IL_00d7:  ldarg.0 
+	IL_00d8:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_00dd:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
+	IL_00e2:  call string string::Concat(string, string)
+	IL_00e7:  stloc.2 
+	IL_00e8:  ldarg.0 
+	IL_00e9:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_00ee:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_00f3:  ldarg.0 
+	IL_00f4:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_00f9:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_00fe:  stloc.s 4
+	.try { // 0
+	  IL_0100:  nop 
+	  IL_0101:  ldloc.2 
+	  IL_0102:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0107:  call float64 float64::Parse(string, class [mscorlib]System.IFormatProvider)
+	  IL_010c:  box [mscorlib]System.Double
+	  IL_0111:  stloc.1 
+	  IL_0112:  leave IL_07b8
 
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_0019:  brtrue IL_002a
+	} // end .try 0
+	catch class [mscorlib]System.OverflowException { // 0
+	  IL_0117:  pop 
+	  IL_0118:  nop 
+	  IL_0119:  ldarg.0 
+	  IL_011a:  ldstr "Value was either too large or too small for type 'double'."
+	  IL_011f:  ldloc.3 
+	  IL_0120:  ldloc.s 4
+	  IL_0122:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	  IL_0127:  throw 
+	} // end handler 0
+	IL_0128:  nop 
+	.try { // 2
+	  IL_0129:  nop 
+	  IL_012a:  ldloc.2 
+	  IL_012b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0130:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
+	  IL_0135:  box [mscorlib]System.Int32
+	  IL_013a:  stloc.1 
+	  IL_013b:  leave IL_07b8
 
-	IL_001e:  nop 
-	IL_001f:  ldstr "The current framework is not valid."
-	IL_0024:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0029:  throw 
-	IL_002a:  ldarg.0 
-	IL_002b:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_0030:  ldstr "clrversion"
-	IL_0035:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_003a:  stloc.0 
-	IL_003b:  ldloc.0 
-	IL_003c:  brfalse IL_004f
+	} // end .try 2
+	catch class [mscorlib]System.OverflowException { // 2
+	  IL_0140:  pop 
+	  IL_0141:  nop 
+	  .try { // 1
+	    IL_0142:  nop 
+	    IL_0143:  ldloc.2 
+	    IL_0144:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0149:  call int64 int64::Parse(string, class [mscorlib]System.IFormatProvider)
+	    IL_014e:  box [mscorlib]System.Int64
+	    IL_0153:  stloc.1 
+	    IL_0154:  leave IL_07b8
 
-	IL_0041:  nop 
-	IL_0042:  ldarg.0 
-	IL_0043:  ldloc.0 
-	IL_0044:  newobj instance void class [mscorlib]System.Version::'.ctor'(string)
-	IL_0049:  stfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_clrVersion
-	IL_004e:  nop 
-	IL_004f:  nop 
-	IL_0050:  ldarg.0 
-	IL_0051:  ldfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_clrVersion
-	IL_0056:  stloc.1 
-	IL_0057:  br IL_005c
+	  } // end .try 1
+	  catch class [mscorlib]System.OverflowException { // 1
+	    IL_0159:  pop 
+	    IL_015a:  nop 
+	    IL_015b:  ldarg.0 
+	    IL_015c:  ldstr "Value was either too large or too small for type 'long'."
+	    IL_0161:  ldloc.3 
+	    IL_0162:  ldloc.s 4
+	    IL_0164:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	    IL_0169:  throw 
+	  } // end handler 1
+	} // end handler 2
+	IL_016a:  ldarg.0 
+	IL_016b:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0170:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0175:  ldc.i4.s 0x0c
+	IL_0177:  bne.un IL_0249
 
-	IL_005c:  ldloc.1 
-	IL_005d:  ret 
-    } // end of method FrameworkInfo::get_ClrVersion
+	IL_017c:  nop 
+	IL_017d:  ldarg.0 
+	IL_017e:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0183:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_0188:  ldarg.0 
+	IL_0189:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_018e:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0193:  stloc.s 6
+	IL_0195:  ldarg.0 
+	IL_0196:  call instance object class NAnt.Core.ExpressionEvalBase::ParseValue()
+	IL_019b:  stloc.s 7
+	IL_019d:  ldarg.0 
+	IL_019e:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_01a3:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_01a8:  stloc.s 8
+	IL_01aa:  ldarg.0 
+	IL_01ab:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	IL_01b0:  brtrue IL_0242
 
-    // method line 2073
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.ClrType get_ClrType ()  cil managed 
-    {
-        // Method begins at RVA 0x245b8
-	// Code size 125 (0x7d)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.Exception	V_1,
-		valuetype NAnt.Core.ClrType	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.ClrType NAnt.Core.FrameworkInfo::_clrType
-	IL_0007:  brtrue IL_006f
+	IL_01b5:  nop 
+	IL_01b6:  ldloc.s 7
+	IL_01b8:  isinst [mscorlib]System.Int32
+	IL_01bd:  brfalse IL_01d6
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_0013:  brtrue IL_0024
+	IL_01c2:  nop 
+	IL_01c3:  ldloc.s 7
+	IL_01c5:  unbox.any [mscorlib]System.Int32
+	IL_01ca:  neg 
+	IL_01cb:  box [mscorlib]System.Int32
+	IL_01d0:  stloc.1 
+	IL_01d1:  br IL_07b8
 
-	IL_0018:  nop 
-	IL_0019:  ldstr "The current framework is not valid."
-	IL_001e:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0023:  throw 
-	IL_0024:  ldarg.0 
-	IL_0025:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_002a:  ldstr "clrtype"
-	IL_002f:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_0034:  stloc.0 
-	IL_0035:  ldloc.0 
-	IL_0036:  brfalse IL_006e
+	IL_01d6:  ldloc.s 7
+	IL_01d8:  isinst [mscorlib]System.Int64
+	IL_01dd:  brfalse IL_01f6
 
-	IL_003b:  nop 
-	.try { // 0
-	  IL_003c:  nop 
-	  IL_003d:  ldarg.0 
-	  IL_003e:  ldtoken NAnt.Core.ClrType
-	  IL_0043:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0048:  ldloc.0 
-	  IL_0049:  ldc.i4.1 
-	  IL_004a:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	  IL_004f:  unbox.any NAnt.Core.ClrType
-	  IL_0054:  stfld valuetype NAnt.Core.ClrType NAnt.Core.FrameworkInfo::_clrType
-	  IL_0059:  nop 
-	  IL_005a:  leave IL_006d
+	IL_01e2:  nop 
+	IL_01e3:  ldloc.s 7
+	IL_01e5:  unbox.any [mscorlib]System.Int64
+	IL_01ea:  neg 
+	IL_01eb:  box [mscorlib]System.Int64
+	IL_01f0:  stloc.1 
+	IL_01f1:  br IL_07b8
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_005f:  stloc.1 
-	  IL_0060:  nop 
-	  IL_0061:  ldstr "The value of the \"clrtype\" attribute is not valid."
-	  IL_0066:  ldloc.1 
-	  IL_0067:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string, class [mscorlib]System.Exception)
-	  IL_006c:  throw 
-	} // end handler 0
-	IL_006d:  nop 
-	IL_006e:  nop 
-	IL_006f:  ldarg.0 
-	IL_0070:  ldfld valuetype NAnt.Core.ClrType NAnt.Core.FrameworkInfo::_clrType
-	IL_0075:  stloc.2 
-	IL_0076:  br IL_007b
+	IL_01f6:  ldloc.s 7
+	IL_01f8:  isinst [mscorlib]System.Double
+	IL_01fd:  brfalse IL_0216
 
-	IL_007b:  ldloc.2 
-	IL_007c:  ret 
-    } // end of method FrameworkInfo::get_ClrType
+	IL_0202:  nop 
+	IL_0203:  ldloc.s 7
+	IL_0205:  unbox.any [mscorlib]System.Double
+	IL_020a:  neg 
+	IL_020b:  box [mscorlib]System.Double
+	IL_0210:  stloc.1 
+	IL_0211:  br IL_07b8
 
-    // method line 2074
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Version get_VisualStudioVersion ()  cil managed 
-    {
-        // Method begins at RVA 0x24654
-	// Code size 210 (0xd2)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.Version	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
-	IL_0007:  ldnull 
-	IL_0008:  call bool class [mscorlib]System.Version::op_Equality(class [mscorlib]System.Version, class [mscorlib]System.Version)
-	IL_000d:  brfalse IL_001e
+	IL_0216:  ldarg.0 
+	IL_0217:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_021c:  ldstr "NA1040"
+	IL_0221:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0226:  ldarg.0 
+	IL_0227:  ldloc.s 7
+	IL_0229:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_022e:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	IL_0233:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0238:  ldloc.s 6
+	IL_023a:  ldloc.s 8
+	IL_023c:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0241:  throw 
+	IL_0242:  ldnull 
+	IL_0243:  stloc.1 
+	IL_0244:  br IL_07b8
 
-	IL_0012:  nop 
-	IL_0013:  ldstr "The current framework is not valid."
-	IL_0018:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_001d:  throw 
-	IL_001e:  ldarg.0 
-	IL_001f:  call instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
-	IL_0024:  ldc.i4.2 
-	IL_0025:  callvirt instance string class [mscorlib]System.Version::ToString(int32)
-	IL_002a:  stloc.0 
-	IL_002b:  ldloc.0 
-	IL_002c:  brfalse IL_00ab
+	IL_0249:  ldarg.0 
+	IL_024a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_024f:  ldstr "not"
+	IL_0254:  callvirt instance bool class NAnt.Core.ExpressionTokenizer::IsKeyword(string)
+	IL_0259:  brfalse IL_02d1
 
-	IL_0031:  ldloc.0 
-	IL_0032:  ldstr "1.0"
-	IL_0037:  call bool string::op_Equality(string, string)
-	IL_003c:  brtrue IL_0076
+	IL_025e:  nop 
+	IL_025f:  ldarg.0 
+	IL_0260:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0265:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_026a:  ldarg.0 
+	IL_026b:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0270:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0275:  stloc.s 9
+	IL_0277:  ldarg.0 
+	IL_0278:  call instance object class NAnt.Core.ExpressionEvalBase::ParseValue()
+	IL_027d:  stloc.s 10
+	IL_027f:  ldarg.0 
+	IL_0280:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0285:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_028a:  stloc.s 11
+	IL_028c:  ldarg.0 
+	IL_028d:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	IL_0292:  brtrue IL_02ca
 
-	IL_0041:  ldloc.0 
-	IL_0042:  ldstr "1.1"
-	IL_0047:  call bool string::op_Equality(string, string)
-	IL_004c:  brtrue IL_0083
+	IL_0297:  nop 
+	IL_0298:  ldarg.0 
+	IL_0299:  ldtoken [mscorlib]System.Boolean
+	IL_029e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_02a3:  ldloc.s 10
+	IL_02a5:  ldstr "the argument of 'not' operator"
+	IL_02aa:  ldloc.s 9
+	IL_02ac:  ldloc.s 11
+	IL_02ae:  call instance object class NAnt.Core.ExpressionEvalBase::SafeConvert(class [mscorlib]System.Type, object, string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_02b3:  unbox.any [mscorlib]System.Boolean
+	IL_02b8:  stloc.s 12
+	IL_02ba:  ldloc.s 12
+	IL_02bc:  ldc.i4.0 
+	IL_02bd:  ceq 
+	IL_02bf:  box [mscorlib]System.Boolean
+	IL_02c4:  stloc.1 
+	IL_02c5:  br IL_07b8
 
-	IL_0051:  ldloc.0 
-	IL_0052:  ldstr "2.0"
-	IL_0057:  call bool string::op_Equality(string, string)
-	IL_005c:  brtrue IL_0090
+	IL_02ca:  ldnull 
+	IL_02cb:  stloc.1 
+	IL_02cc:  br IL_07b8
 
-	IL_0061:  ldloc.0 
-	IL_0062:  ldstr "4.0"
-	IL_0067:  call bool string::op_Equality(string, string)
-	IL_006c:  brtrue IL_009d
+	IL_02d1:  ldarg.0 
+	IL_02d2:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_02d7:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_02dc:  ldc.i4.s 0x10
+	IL_02de:  bne.un IL_0334
 
-	IL_0071:  br IL_00ab
+	IL_02e3:  nop 
+	IL_02e4:  ldarg.0 
+	IL_02e5:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_02ea:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_02ef:  ldarg.0 
+	IL_02f0:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
+	IL_02f5:  stloc.s 13
+	IL_02f7:  ldarg.0 
+	IL_02f8:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_02fd:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0302:  ldc.i4.s 0x11
+	IL_0304:  beq IL_0321
 
-	IL_0076:  ldc.i4.7 
-	IL_0077:  ldc.i4.0 
-	IL_0078:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32)
-	IL_007d:  stloc.1 
-	IL_007e:  br IL_00d0
+	IL_0309:  nop 
+	IL_030a:  ldarg.0 
+	IL_030b:  ldstr "')' expected."
+	IL_0310:  ldarg.0 
+	IL_0311:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0316:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_031b:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0320:  throw 
+	IL_0321:  ldarg.0 
+	IL_0322:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0327:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_032c:  ldloc.s 13
+	IL_032e:  stloc.1 
+	IL_032f:  br IL_07b8
 
-	IL_0083:  ldc.i4.7 
-	IL_0084:  ldc.i4.1 
-	IL_0085:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32)
-	IL_008a:  stloc.1 
-	IL_008b:  br IL_00d0
+	IL_0334:  ldarg.0 
+	IL_0335:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_033a:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_033f:  ldc.i4.4 
+	IL_0340:  bne.un IL_07ac
 
-	IL_0090:  ldc.i4.8 
-	IL_0091:  ldc.i4.0 
-	IL_0092:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32)
-	IL_0097:  stloc.1 
-	IL_0098:  br IL_00d0
+	IL_0345:  nop 
+	IL_0346:  ldarg.0 
+	IL_0347:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_034c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0351:  stloc.s 14
+	IL_0353:  ldarg.0 
+	IL_0354:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0359:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
+	IL_035e:  stloc.s 15
+	IL_0360:  ldloc.s 15
+	IL_0362:  ldstr "if"
+	IL_0367:  call bool string::op_Equality(string, string)
+	IL_036c:  brfalse IL_037e
 
-	IL_009d:  ldc.i4.s 0x0a
-	IL_009f:  ldc.i4.0 
-	IL_00a0:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32)
-	IL_00a5:  stloc.1 
-	IL_00a6:  br IL_00d0
+	IL_0371:  nop 
+	IL_0372:  ldarg.0 
+	IL_0373:  call instance object class NAnt.Core.ExpressionEvalBase::ParseConditional()
+	IL_0378:  stloc.1 
+	IL_0379:  br IL_07b8
 
-	IL_00ab:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00b0:  ldstr "NA1055"
-	IL_00b5:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00ba:  ldarg.0 
-	IL_00bb:  call instance string class NAnt.Core.FrameworkInfo::get_Description()
-	IL_00c0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00c5:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_00ca:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_00cf:  throw 
-	IL_00d0:  ldloc.1 
-	IL_00d1:  ret 
-    } // end of method FrameworkInfo::get_VisualStudioVersion
+	IL_037e:  ldloc.s 15
+	IL_0380:  ldstr "true"
+	IL_0385:  call bool string::op_Equality(string, string)
+	IL_038a:  brfalse IL_03a7
 
-    // method line 2075
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_FrameworkDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x24734
-	// Code size 128 (0x80)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.IO.DirectoryInfo	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkDirectory
-	IL_000d:  brtrue IL_0072
+	IL_038f:  nop 
+	IL_0390:  ldarg.0 
+	IL_0391:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0396:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_039b:  ldc.i4.1 
+	IL_039c:  box [mscorlib]System.Boolean
+	IL_03a1:  stloc.1 
+	IL_03a2:  br IL_07b8
 
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_001f:  ldstr "frameworkdirectory"
-	IL_0024:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_0029:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_002e:  callvirt instance string class NAnt.Core.Project::ExpandProperties(string, class NAnt.Core.Location)
-	IL_0033:  stloc.0 
-	IL_0034:  ldloc.0 
-	IL_0035:  brfalse IL_0071
+	IL_03a7:  ldloc.s 15
+	IL_03a9:  ldstr "false"
+	IL_03ae:  call bool string::op_Equality(string, string)
+	IL_03b3:  brfalse IL_03d0
 
-	IL_003a:  nop 
-	IL_003b:  ldloc.0 
-	IL_003c:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0041:  brfalse IL_0059
+	IL_03b8:  nop 
+	IL_03b9:  ldarg.0 
+	IL_03ba:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_03bf:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_03c4:  ldc.i4.0 
+	IL_03c5:  box [mscorlib]System.Boolean
+	IL_03ca:  stloc.1 
+	IL_03cb:  br IL_07b8
 
-	IL_0046:  nop 
-	IL_0047:  ldarg.0 
-	IL_0048:  ldloc.0 
-	IL_0049:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_004e:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkDirectory
-	IL_0053:  nop 
-	IL_0054:  br IL_0070
+	IL_03d0:  ldarg.0 
+	IL_03d1:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_03d6:  ldc.i4.0 
+	IL_03d7:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_IgnoreWhitespace(bool)
+	IL_03dc:  ldarg.0 
+	IL_03dd:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_03e2:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_03e7:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_03ec:  stloc.s 16
+	IL_03ee:  ldc.i4.0 
+	IL_03ef:  stloc.s 17
+	IL_03f1:  ldarg.0 
+	IL_03f2:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_03f7:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_03fc:  ldc.i4.s 0x1a
+	IL_03fe:  bne.un IL_0470
 
-	IL_0059:  nop 
-	IL_005a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_005f:  ldstr "Framework directory '{0}' does not exist."
-	IL_0064:  ldloc.0 
-	IL_0065:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_006a:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_006f:  throw 
-	IL_0070:  nop 
-	IL_0071:  nop 
-	IL_0072:  ldarg.0 
-	IL_0073:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkDirectory
-	IL_0078:  stloc.1 
-	IL_0079:  br IL_007e
+	IL_0403:  nop 
+	IL_0404:  ldc.i4.1 
+	IL_0405:  stloc.s 17
+	IL_0407:  ldloc.s 15
+	IL_0409:  ldstr "::"
+	IL_040e:  call string string::Concat(string, string)
+	IL_0413:  stloc.s 15
+	IL_0415:  ldarg.0 
+	IL_0416:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_041b:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_0420:  ldarg.0 
+	IL_0421:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0426:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_042b:  ldc.i4.4 
+	IL_042c:  beq IL_044b
 
-	IL_007e:  ldloc.1 
-	IL_007f:  ret 
-    } // end of method FrameworkInfo::get_FrameworkDirectory
+	IL_0431:  nop 
+	IL_0432:  ldarg.0 
+	IL_0433:  ldstr "Function name expected."
+	IL_0438:  ldloc.s 14
+	IL_043a:  ldarg.0 
+	IL_043b:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0440:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0445:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_044a:  throw 
+	IL_044b:  ldloc.s 15
+	IL_044d:  ldarg.0 
+	IL_044e:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0453:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
+	IL_0458:  call string string::Concat(string, string)
+	IL_045d:  stloc.s 15
+	IL_045f:  ldarg.0 
+	IL_0460:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0465:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_046a:  nop 
+	IL_046b:  br IL_04de
 
-    // method line 2076
-    .method assembly hidebysig specialname 
-           instance default class NAnt.Core.Configuration.Runtime get_Runtime ()  cil managed 
-    {
-        // Method begins at RVA 0x247c0
-	// Code size 21 (0x15)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Configuration.Runtime	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::Init()
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::_runtime
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0470:  nop 
+	IL_0471:  br IL_0497
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method FrameworkInfo::get_Runtime
+	IL_0476:  nop 
+	IL_0477:  ldloc.s 15
+	IL_0479:  ldarg.0 
+	IL_047a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_047f:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
+	IL_0484:  call string string::Concat(string, string)
+	IL_0489:  stloc.s 15
+	IL_048b:  ldarg.0 
+	IL_048c:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0491:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_0496:  nop 
+	IL_0497:  ldarg.0 
+	IL_0498:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_049d:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_04a2:  ldc.i4.s 0x19
+	IL_04a4:  beq IL_0476
 
-    // method line 2077
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_FrameworkAssemblyDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x247e4
-	// Code size 177 (0xb1)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.IO.DirectoryInfo	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkAssemblyDirectory
-	IL_000d:  brtrue IL_00a3
+	IL_04a9:  ldarg.0 
+	IL_04aa:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_04af:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_04b4:  ldc.i4.s 0x0c
+	IL_04b6:  beq IL_0476
 
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_001f:  ldstr "frameworkassemblydirectory"
-	IL_0024:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_0029:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_002e:  callvirt instance string class NAnt.Core.Project::ExpandProperties(string, class NAnt.Core.Location)
-	IL_0033:  stloc.0 
-	IL_0034:  ldloc.0 
-	IL_0035:  brfalse IL_00a2
+	IL_04bb:  ldarg.0 
+	IL_04bc:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_04c1:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_04c6:  ldc.i4.4 
+	IL_04c7:  beq IL_0476
 
-	IL_003a:  nop 
-	IL_003b:  ldloc.0 
-	IL_003c:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0041:  brfalse IL_008a
+	IL_04cc:  ldarg.0 
+	IL_04cd:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_04d2:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_04d7:  ldc.i4.2 
+	IL_04d8:  beq IL_0476
 
-	IL_0046:  nop 
-	IL_0047:  ldloc.0 
-	IL_0048:  ldstr "System.dll"
-	IL_004d:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0052:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0057:  brtrue IL_0078
+	IL_04dd:  nop 
+	IL_04de:  ldarg.0 
+	IL_04df:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_04e4:  ldc.i4.1 
+	IL_04e5:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_IgnoreWhitespace(bool)
+	IL_04ea:  ldarg.0 
+	IL_04eb:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_04f0:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_04f5:  ldc.i4.s 0x16
+	IL_04f7:  bne.un IL_0509
 
-	IL_005c:  nop 
-	IL_005d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0062:  ldstr "NA1054"
-	IL_0067:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_006c:  ldloc.0 
-	IL_006d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0072:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0077:  throw 
-	IL_0078:  ldarg.0 
-	IL_0079:  ldloc.0 
-	IL_007a:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_007f:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkAssemblyDirectory
-	IL_0084:  nop 
-	IL_0085:  br IL_00a1
+	IL_04fc:  nop 
+	IL_04fd:  ldarg.0 
+	IL_04fe:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0503:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_0508:  nop 
+	IL_0509:  ldnull 
+	IL_050a:  stloc.s 18
+	IL_050c:  ldloc.s 17
+	IL_050e:  brfalse IL_0729
 
-	IL_008a:  nop 
-	IL_008b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0090:  ldstr "Framework assembly directory '{0}' does not exist."
-	IL_0095:  ldloc.0 
-	IL_0096:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_009b:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_00a0:  throw 
-	IL_00a1:  nop 
-	IL_00a2:  nop 
-	IL_00a3:  ldarg.0 
-	IL_00a4:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkAssemblyDirectory
-	IL_00a9:  stloc.1 
-	IL_00aa:  br IL_00af
+	IL_0513:  nop 
+	IL_0514:  ldarg.0 
+	IL_0515:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_051a:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_051f:  ldc.i4.s 0x10
+	IL_0521:  beq IL_053e
 
-	IL_00af:  ldloc.1 
-	IL_00b0:  ret 
-    } // end of method FrameworkInfo::get_FrameworkAssemblyDirectory
+	IL_0526:  nop 
+	IL_0527:  ldarg.0 
+	IL_0528:  ldstr "'(' expected."
+	IL_052d:  ldarg.0 
+	IL_052e:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0533:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0538:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_053d:  throw 
+	IL_053e:  ldarg.0 
+	IL_053f:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0544:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_0549:  ldc.i4.0 
+	IL_054a:  stloc.s 19
+	IL_054c:  br IL_05dd
 
-    // method line 2078
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_SdkDirectory ()  cil managed 
+	IL_0551:  nop 
+	IL_0552:  ldarg.0 
+	IL_0553:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0558:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_055d:  stloc.s 20
+	IL_055f:  ldarg.0 
+	IL_0560:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
+	IL_0565:  stloc.s 21
+	IL_0567:  ldarg.0 
+	IL_0568:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_056d:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0572:  stloc.s 22
+	IL_0574:  ldloc.s 16
+	IL_0576:  ldloc.s 15
+	IL_0578:  ldloc.s 19
+	IL_057a:  ldloc.s 21
+	IL_057c:  ldloc.s 20
+	IL_057e:  ldloc.s 22
+	IL_0580:  newobj instance void class NAnt.Core.Extensibility.FunctionArgument::'.ctor'(string, int32, object, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0585:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_058a:  pop 
+	IL_058b:  ldloc.s 19
+	IL_058d:  ldc.i4.1 
+	IL_058e:  add 
+	IL_058f:  stloc.s 19
+	IL_0591:  ldarg.0 
+	IL_0592:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0597:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_059c:  ldc.i4.s 0x11
+	IL_059e:  bne.un IL_05a8
+
+	IL_05a3:  br IL_0600
+
+	IL_05a8:  ldarg.0 
+	IL_05a9:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_05ae:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_05b3:  ldc.i4.s 0x18
+	IL_05b5:  beq IL_05d1
+
+	IL_05ba:  ldarg.0 
+	IL_05bb:  ldstr "',' expected."
+	IL_05c0:  ldarg.0 
+	IL_05c1:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_05c6:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_05cb:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_05d0:  throw 
+	IL_05d1:  ldarg.0 
+	IL_05d2:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_05d7:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_05dc:  nop 
+	IL_05dd:  ldarg.0 
+	IL_05de:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_05e3:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_05e8:  ldc.i4.s 0x11
+	IL_05ea:  beq IL_0600
+
+	IL_05ef:  ldarg.0 
+	IL_05f0:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_05f5:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_05fa:  ldc.i4.1 
+	IL_05fb:  bne.un IL_0551
+
+	IL_0600:  ldarg.0 
+	IL_0601:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0606:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_060b:  ldc.i4.s 0x11
+	IL_060d:  beq IL_062a
+
+	IL_0612:  nop 
+	IL_0613:  ldarg.0 
+	IL_0614:  ldstr "')' expected."
+	IL_0619:  ldarg.0 
+	IL_061a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_061f:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0624:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0629:  throw 
+	IL_062a:  ldarg.0 
+	IL_062b:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0630:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_0635:  ldarg.0 
+	IL_0636:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	IL_063b:  brtrue IL_0728
+
+	IL_0640:  nop 
+	IL_0641:  ldloc.s 16
+	IL_0643:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_0648:  newarr NAnt.Core.Extensibility.FunctionArgument
+	IL_064d:  stloc.s 23
+	IL_064f:  ldloc.s 16
+	IL_0651:  ldc.i4.0 
+	IL_0652:  ldloc.s 23
+	IL_0654:  ldc.i4.0 
+	IL_0655:  ldloc.s 16
+	IL_0657:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_065c:  callvirt instance void class [mscorlib]System.Collections.ArrayList::CopyTo(int32, class [mscorlib]System.Array, int32, int32)
+	.try { // 3
+	  IL_0661:  nop 
+	  IL_0662:  ldloc.s 15
+	  IL_0664:  ldloc.s 23
+	  IL_0666:  ldarg.0 
+	  IL_0667:  call instance class NAnt.Core.Project class NAnt.Core.ExpressionEvalBase::get_Project()
+	  IL_066c:  call class [mscorlib]System.Reflection.MethodInfo class NAnt.Core.TypeFactory::LookupFunction(string, class NAnt.Core.Extensibility.FunctionArgument[], class NAnt.Core.Project)
+	  IL_0671:  stloc.s 18
+	  IL_0673:  nop 
+	  IL_0674:  leave IL_0697
+
+	} // end .try 3
+	catch class NAnt.Core.BuildException { // 3
+	  IL_0679:  stloc.s 24
+	  IL_067b:  nop 
+	  IL_067c:  ldarg.0 
+	  IL_067d:  ldloc.s 24
+	  IL_067f:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	  IL_0684:  ldloc.s 14
+	  IL_0686:  ldarg.0 
+	  IL_0687:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_068c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	  IL_0691:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	  IL_0696:  throw 
+	} // end handler 3
+	IL_0697:  ldloc.s 18
+	IL_0699:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_069e:  stloc.s 25
+	IL_06a0:  ldloc.s 16
+	IL_06a2:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Clear()
+	IL_06a7:  ldc.i4.0 
+	IL_06a8:  stloc.s 26
+	IL_06aa:  br IL_071c
+
+	IL_06af:  nop 
+	IL_06b0:  ldloc.s 23
+	IL_06b2:  ldloc.s 26
+	IL_06b4:  ldelem.ref 
+	IL_06b5:  stloc.s 27
+	IL_06b7:  ldloc.s 25
+	IL_06b9:  ldloc.s 26
+	IL_06bb:  ldelem.ref 
+	IL_06bc:  stloc.s 28
+	IL_06be:  ldarg.0 
+	IL_06bf:  ldloc.s 28
+	IL_06c1:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	IL_06c6:  ldloc.s 27
+	IL_06c8:  callvirt instance object class NAnt.Core.Extensibility.FunctionArgument::get_Value()
+	IL_06cd:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_06d2:  ldstr "argument {1} ({0}) of {2}()"
+	IL_06d7:  ldloc.s 28
+	IL_06d9:  callvirt instance string class [mscorlib]System.Reflection.ParameterInfo::get_Name()
+	IL_06de:  ldloc.s 27
+	IL_06e0:  callvirt instance int32 class NAnt.Core.Extensibility.FunctionArgument::get_Index()
+	IL_06e5:  box [mscorlib]System.Int32
+	IL_06ea:  ldloc.s 27
+	IL_06ec:  callvirt instance string class NAnt.Core.Extensibility.FunctionArgument::get_Name()
+	IL_06f1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_06f6:  ldloc.s 27
+	IL_06f8:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.Extensibility.FunctionArgument::get_BeforeArgument()
+	IL_06fd:  ldloc.s 27
+	IL_06ff:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.Extensibility.FunctionArgument::get_AfterArgument()
+	IL_0704:  call instance object class NAnt.Core.ExpressionEvalBase::SafeConvert(class [mscorlib]System.Type, object, string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0709:  stloc.s 29
+	IL_070b:  ldloc.s 16
+	IL_070d:  ldloc.s 29
+	IL_070f:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_0714:  pop 
+	IL_0715:  nop 
+	IL_0716:  ldloc.s 26
+	IL_0718:  ldc.i4.1 
+	IL_0719:  add 
+	IL_071a:  stloc.s 26
+	IL_071c:  ldloc.s 26
+	IL_071e:  ldloc.s 23
+	IL_0720:  ldlen 
+	IL_0721:  conv.i4 
+	IL_0722:  blt IL_06af
+
+	IL_0727:  nop 
+	IL_0728:  nop 
+	.try { // 4
+	  IL_0729:  nop 
+	  IL_072a:  ldarg.0 
+	  IL_072b:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
+	  IL_0730:  brtrue IL_0762
+
+	  IL_0735:  nop 
+	  IL_0736:  ldloc.s 17
+	  IL_0738:  brfalse IL_0753
+
+	  IL_073d:  nop 
+	  IL_073e:  ldarg.0 
+	  IL_073f:  ldloc.s 18
+	  IL_0741:  ldloc.s 16
+	  IL_0743:  callvirt instance object[] class [mscorlib]System.Collections.ArrayList::ToArray()
+	  IL_0748:  callvirt instance object class NAnt.Core.ExpressionEvalBase::EvaluateFunction(class [mscorlib]System.Reflection.MethodInfo, object[])
+	  IL_074d:  stloc.1 
+	  IL_074e:  leave IL_07b8
+
+	  IL_0753:  nop 
+	  IL_0754:  ldarg.0 
+	  IL_0755:  ldloc.s 15
+	  IL_0757:  callvirt instance object class NAnt.Core.ExpressionEvalBase::EvaluateProperty(string)
+	  IL_075c:  stloc.1 
+	  IL_075d:  leave IL_07b8
+
+	  IL_0762:  nop 
+	  IL_0763:  ldnull 
+	  IL_0764:  stloc.1 
+	  IL_0765:  leave IL_07b8
+
+	} // end .try 4
+	catch class [mscorlib]System.Exception { // 4
+	  IL_076a:  stloc.s 30
+	  IL_076c:  nop 
+	  IL_076d:  ldloc.s 17
+	  IL_076f:  brfalse IL_0790
+
+	  IL_0774:  nop 
+	  IL_0775:  ldarg.0 
+	  IL_0776:  ldstr "Function call failed."
+	  IL_077b:  ldloc.s 14
+	  IL_077d:  ldarg.0 
+	  IL_077e:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_0783:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	  IL_0788:  ldloc.s 30
+	  IL_078a:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position, class [mscorlib]System.Exception)
+	  IL_078f:  throw 
+	  IL_0790:  nop 
+	  IL_0791:  ldarg.0 
+	  IL_0792:  ldstr "Property evaluation failed."
+	  IL_0797:  ldloc.s 14
+	  IL_0799:  ldarg.0 
+	  IL_079a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	  IL_079f:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	  IL_07a4:  ldloc.s 30
+	  IL_07a6:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position, class [mscorlib]System.Exception)
+	  IL_07ab:  throw 
+	} // end handler 4
+	IL_07ac:  ldarg.0 
+	IL_07ad:  callvirt instance object class NAnt.Core.ExpressionEvalBase::UnexpectedToken()
+	IL_07b2:  stloc.1 
+	IL_07b3:  br IL_07b8
+
+	IL_07b8:  ldloc.1 
+	IL_07b9:  ret 
+    } // end of method ExpressionEvalBase::ParseValue
+
+    // method line 1682
+    .method family hidebysig 
+           instance default class NAnt.Core.ExpressionParseException BuildParseError (string desc, valuetype NAnt.Core.ExpressionTokenizer/Position p0)  cil managed 
     {
-        // Method begins at RVA 0x248a4
-	// Code size 27 (0x1b)
-	.maxstack 1
+        // Method begins at RVA 0x21530
+	// Code size 22 (0x16)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		class NAnt.Core.ExpressionParseException	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::Init()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_sdkDirectory
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0019
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarga.s 2
+	IL_0004:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
+	IL_0009:  newobj instance void class NAnt.Core.ExpressionParseException::'.ctor'(string, int32)
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0014
 
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method FrameworkInfo::get_SdkDirectory
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method ExpressionEvalBase::BuildParseError
 
-    // method line 2079
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
+    // method line 1683
+    .method family hidebysig 
+           instance default class NAnt.Core.ExpressionParseException BuildParseError (string desc, valuetype NAnt.Core.ExpressionTokenizer/Position p0, valuetype NAnt.Core.ExpressionTokenizer/Position p1)  cil managed 
     {
-        // Method begins at RVA 0x248cc
-	// Code size 27 (0x1b)
-	.maxstack 1
+        // Method begins at RVA 0x21554
+	// Code size 29 (0x1d)
+	.maxstack 3
 	.locals init (
-		class NAnt.Core.Project	V_0)
+		class NAnt.Core.ExpressionParseException	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::Init()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class NAnt.Core.Project NAnt.Core.FrameworkInfo::_project
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0019
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarga.s 2
+	IL_0004:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
+	IL_0009:  ldarga.s 3
+	IL_000b:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
+	IL_0010:  newobj instance void class NAnt.Core.ExpressionParseException::'.ctor'(string, int32, int32)
+	IL_0015:  stloc.0 
+	IL_0016:  br IL_001b
 
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method FrameworkInfo::get_Project
+	IL_001b:  ldloc.0 
+	IL_001c:  ret 
+    } // end of method ExpressionEvalBase::BuildParseError
 
-    // method line 2080
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet get_TaskAssemblies ()  cil managed 
+    // method line 1684
+    .method family hidebysig 
+           instance default class NAnt.Core.ExpressionParseException BuildParseError (string desc, valuetype NAnt.Core.ExpressionTokenizer/Position p0, valuetype NAnt.Core.ExpressionTokenizer/Position p1, class [mscorlib]System.Exception ex)  cil managed 
     {
-        // Method begins at RVA 0x248f4
-	// Code size 167 (0xa7)
+        // Method begins at RVA 0x21580
+	// Code size 31 (0x1f)
 	.maxstack 4
 	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0,
-		class NAnt.Core.Types.FileSet	V_1)
+		class NAnt.Core.ExpressionParseException	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
-	IL_000d:  brtrue IL_0099
-
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0019:  stfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
-	IL_001e:  ldarg.0 
-	IL_001f:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
-	IL_0024:  ldarg.0 
-	IL_0025:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
-	IL_002a:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_002f:  ldarg.0 
-	IL_0030:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
-	IL_0035:  ldarg.0 
-	IL_0036:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
-	IL_003b:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0040:  ldarg.0 
-	IL_0041:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
-	IL_0046:  ldarg.0 
-	IL_0047:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
-	IL_004c:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_0051:  ldarg.0 
-	IL_0052:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
-	IL_0057:  ldstr "internal-task-assemblies"
-	IL_005c:  callvirt instance void class NAnt.Core.DataTypeBase::set_ID(string)
-	IL_0061:  ldarg.0 
-	IL_0062:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_0067:  ldstr "nant:task-assemblies"
-	IL_006c:  ldarg.0 
-	IL_006d:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
-	IL_0072:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0077:  stloc.0 
-	IL_0078:  ldloc.0 
-	IL_0079:  brfalse IL_0098
-
-	IL_007e:  nop 
-	IL_007f:  ldarg.0 
-	IL_0080:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
-	IL_0085:  ldloc.0 
-	IL_0086:  ldarg.0 
-	IL_0087:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
-	IL_008c:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0091:  ldarg.0 
-	IL_0092:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
-	IL_0097:  nop 
-	IL_0098:  nop 
-	IL_0099:  ldarg.0 
-	IL_009a:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
-	IL_009f:  stloc.1 
-	IL_00a0:  br IL_00a5
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarga.s 2
+	IL_0004:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
+	IL_0009:  ldarga.s 3
+	IL_000b:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
+	IL_0010:  ldarg.s 4
+	IL_0012:  newobj instance void class NAnt.Core.ExpressionParseException::'.ctor'(string, int32, int32, class [mscorlib]System.Exception)
+	IL_0017:  stloc.0 
+	IL_0018:  br IL_001d
 
-	IL_00a5:  ldloc.1 
-	IL_00a6:  ret 
-    } // end of method FrameworkInfo::get_TaskAssemblies
+	IL_001d:  ldloc.0 
+	IL_001e:  ret 
+    } // end of method ExpressionEvalBase::BuildParseError
 
-    // method line 2081
-    .method public hidebysig specialname 
-           instance default bool get_IsValid ()  cil managed 
+    // method line 1685
+    .method family hidebysig 
+           instance default object SafeConvert (class [mscorlib]System.Type returnType, object source, string description, valuetype NAnt.Core.ExpressionTokenizer/Position p0, valuetype NAnt.Core.ExpressionTokenizer/Position p1)  cil managed 
     {
-        // Method begins at RVA 0x249a8
-	// Code size 26 (0x1a)
-	.maxstack 1
+        // Method begins at RVA 0x215ac
+	// Code size 787 (0x313)
+	.maxstack 7
 	.locals init (
-		bool	V_0)
+		bool	V_0,
+		object	V_1,
+		string	V_2,
+		string[]	V_3,
+		class [mscorlib]System.Text.StringBuilder	V_4,
+		int32	V_5,
+		string	V_6,
+		class [mscorlib]System.Exception	V_7)
 	IL_0000:  nop 
 	.try { // 0
 	  IL_0001:  nop 
-	  IL_0002:  ldarg.0 
-	  IL_0003:  call instance void class NAnt.Core.FrameworkInfo::Validate()
-	  IL_0008:  ldc.i4.1 
-	  IL_0009:  stloc.0 
-	  IL_000a:  leave IL_0018
+	  IL_0002:  ldc.i4.0 
+	  IL_0003:  stloc.0 
+	  IL_0004:  ldarg.2 
+	  IL_0005:  brtrue IL_0053
 
-	} // end .try 0
-	catch class [mscorlib]System.Object { // 0
-	  IL_000f:  pop 
-	  IL_0010:  nop 
-	  IL_0011:  ldc.i4.0 
-	  IL_0012:  stloc.0 
-	  IL_0013:  leave IL_0018
+	  IL_000a:  nop 
+	  IL_000b:  ldarg.1 
+	  IL_000c:  ldtoken [mscorlib]System.String
+	  IL_0011:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0016:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_001b:  brfalse IL_002c
+
+	  IL_0020:  nop 
+	  IL_0021:  ldsfld string [mscorlib]System.String::Empty
+	  IL_0026:  stloc.1 
+	  IL_0027:  leave IL_0311
+
+	  IL_002c:  ldarg.0 
+	  IL_002d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0032:  ldstr "NA1045"
+	  IL_0037:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_003c:  ldarg.3 
+	  IL_003d:  ldarg.0 
+	  IL_003e:  ldarg.1 
+	  IL_003f:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	  IL_0044:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0049:  ldarg.s 4
+	  IL_004b:  ldarg.s 5
+	  IL_004d:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	  IL_0052:  throw 
+	  IL_0053:  ldarg.2 
+	  IL_0054:  isinst [mscorlib]System.Boolean
+	  IL_0059:  brfalse IL_008e
+
+	  IL_005e:  nop 
+	  IL_005f:  ldarg.1 
+	  IL_0060:  ldtoken [mscorlib]System.String
+	  IL_0065:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_006a:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_006f:  brfalse IL_008d
+
+	  IL_0074:  ldarg.1 
+	  IL_0075:  ldtoken [mscorlib]System.Boolean
+	  IL_007a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_007f:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_0084:  brfalse IL_008d
+
+	  IL_0089:  nop 
+	  IL_008a:  ldc.i4.1 
+	  IL_008b:  stloc.0 
+	  IL_008c:  nop 
+	  IL_008d:  nop 
+	  IL_008e:  ldarg.1 
+	  IL_008f:  ldtoken [mscorlib]System.Boolean
+	  IL_0094:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0099:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_009e:  brfalse IL_00bf
+
+	  IL_00a3:  nop 
+	  IL_00a4:  ldarg.2 
+	  IL_00a5:  isinst [mscorlib]System.String
+	  IL_00aa:  brtrue IL_00be
+
+	  IL_00af:  ldarg.2 
+	  IL_00b0:  isinst [mscorlib]System.Boolean
+	  IL_00b5:  brtrue IL_00be
+
+	  IL_00ba:  nop 
+	  IL_00bb:  ldc.i4.1 
+	  IL_00bc:  stloc.0 
+	  IL_00bd:  nop 
+	  IL_00be:  nop 
+	  IL_00bf:  ldarg.2 
+	  IL_00c0:  isinst [mscorlib]System.DateTime
+	  IL_00c5:  brfalse IL_00fa
+
+	  IL_00ca:  nop 
+	  IL_00cb:  ldarg.1 
+	  IL_00cc:  ldtoken [mscorlib]System.String
+	  IL_00d1:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_00d6:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_00db:  brfalse IL_00f9
+
+	  IL_00e0:  ldarg.1 
+	  IL_00e1:  ldtoken [mscorlib]System.DateTime
+	  IL_00e6:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_00eb:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_00f0:  brfalse IL_00f9
+
+	  IL_00f5:  nop 
+	  IL_00f6:  ldc.i4.1 
+	  IL_00f7:  stloc.0 
+	  IL_00f8:  nop 
+	  IL_00f9:  nop 
+	  IL_00fa:  ldarg.1 
+	  IL_00fb:  ldtoken [mscorlib]System.DateTime
+	  IL_0100:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0105:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_010a:  brfalse IL_012b
+
+	  IL_010f:  nop 
+	  IL_0110:  ldarg.2 
+	  IL_0111:  isinst [mscorlib]System.DateTime
+	  IL_0116:  brtrue IL_012a
+
+	  IL_011b:  ldarg.2 
+	  IL_011c:  isinst [mscorlib]System.String
+	  IL_0121:  brtrue IL_012a
+
+	  IL_0126:  nop 
+	  IL_0127:  ldc.i4.1 
+	  IL_0128:  stloc.0 
+	  IL_0129:  nop 
+	  IL_012a:  nop 
+	  IL_012b:  ldarg.2 
+	  IL_012c:  isinst [mscorlib]System.TimeSpan
+	  IL_0131:  brfalse IL_014f
+
+	  IL_0136:  ldarg.1 
+	  IL_0137:  ldtoken [mscorlib]System.TimeSpan
+	  IL_013c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0141:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_0146:  brfalse IL_014f
+
+	  IL_014b:  nop 
+	  IL_014c:  ldc.i4.1 
+	  IL_014d:  stloc.0 
+	  IL_014e:  nop 
+	  IL_014f:  ldarg.1 
+	  IL_0150:  ldtoken [mscorlib]System.TimeSpan
+	  IL_0155:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_015a:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_015f:  brfalse IL_0173
+
+	  IL_0164:  ldarg.2 
+	  IL_0165:  isinst [mscorlib]System.TimeSpan
+	  IL_016a:  brtrue IL_0173
+
+	  IL_016f:  nop 
+	  IL_0170:  ldc.i4.1 
+	  IL_0171:  stloc.0 
+	  IL_0172:  nop 
+	  IL_0173:  ldarg.1 
+	  IL_0174:  ldtoken [mscorlib]System.String
+	  IL_0179:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_017e:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_0183:  brfalse IL_01c4
+
+	  IL_0188:  nop 
+	  IL_0189:  ldarg.2 
+	  IL_018a:  isinst [mscorlib]System.IO.DirectoryInfo
+	  IL_018f:  brfalse IL_01a6
+
+	  IL_0194:  nop 
+	  IL_0195:  ldarg.2 
+	  IL_0196:  castclass [mscorlib]System.IO.DirectoryInfo
+	  IL_019b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_01a0:  stloc.1 
+	  IL_01a1:  leave IL_0311
+
+	  IL_01a6:  ldarg.2 
+	  IL_01a7:  isinst [mscorlib]System.IO.FileInfo
+	  IL_01ac:  brfalse IL_01c3
+
+	  IL_01b1:  nop 
+	  IL_01b2:  ldarg.2 
+	  IL_01b3:  castclass [mscorlib]System.IO.FileInfo
+	  IL_01b8:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_01bd:  stloc.1 
+	  IL_01be:  leave IL_0311
+
+	  IL_01c3:  nop 
+	  IL_01c4:  ldarg.1 
+	  IL_01c5:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
+	  IL_01ca:  brfalse IL_027b
+
+	  IL_01cf:  nop 
+	  IL_01d0:  ldarg.2 
+	  IL_01d1:  isinst [mscorlib]System.String
+	  IL_01d6:  stloc.2 
+	  IL_01d7:  ldloc.2 
+	  IL_01d8:  brfalse IL_026d
+
+	  IL_01dd:  nop 
+	  IL_01de:  ldloc.2 
+	  IL_01df:  ldc.i4.2 
+	  IL_01e0:  newarr [mscorlib]System.Char
+	  IL_01e5:  dup 
+	  IL_01e6:  ldc.i4.0 
+	  IL_01e7:  ldc.i4.s 0x20
+	  IL_01e9:  stelem.i2 
+	  IL_01ea:  dup 
+	  IL_01eb:  ldc.i4.1 
+	  IL_01ec:  ldc.i4.s 0x2c
+	  IL_01ee:  stelem.i2 
+	  IL_01ef:  callvirt instance string[] string::Split(char[])
+	  IL_01f4:  stloc.3 
+	  IL_01f5:  ldloc.2 
+	  IL_01f6:  callvirt instance int32 string::get_Length()
+	  IL_01fb:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(int32)
+	  IL_0200:  stloc.s 4
+	  IL_0202:  ldc.i4.0 
+	  IL_0203:  stloc.s 5
+	  IL_0205:  br IL_024f
+
+	  IL_020a:  nop 
+	  IL_020b:  ldloc.3 
+	  IL_020c:  ldloc.s 5
+	  IL_020e:  ldelem.ref 
+	  IL_020f:  callvirt instance string string::Trim()
+	  IL_0214:  stloc.s 6
+	  IL_0216:  ldloc.s 6
+	  IL_0218:  callvirt instance int32 string::get_Length()
+	  IL_021d:  brtrue IL_0227
+
+	  IL_0222:  leave IL_0249
+
+	  IL_0227:  ldloc.s 4
+	  IL_0229:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	  IL_022e:  ldc.i4.0 
+	  IL_022f:  ble IL_023e
+
+	  IL_0234:  ldloc.s 4
+	  IL_0236:  ldc.i4.s 0x2c
+	  IL_0238:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	  IL_023d:  pop 
+	  IL_023e:  ldloc.s 4
+	  IL_0240:  ldloc.s 6
+	  IL_0242:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_0247:  pop 
+	  IL_0248:  nop 
+	  IL_0249:  ldloc.s 5
+	  IL_024b:  ldc.i4.1 
+	  IL_024c:  add 
+	  IL_024d:  stloc.s 5
+	  IL_024f:  ldloc.s 5
+	  IL_0251:  ldloc.3 
+	  IL_0252:  ldlen 
+	  IL_0253:  conv.i4 
+	  IL_0254:  blt IL_020a
+
+	  IL_0259:  ldarg.1 
+	  IL_025a:  ldloc.s 4
+	  IL_025c:  callvirt instance string object::ToString()
+	  IL_0261:  ldc.i4.1 
+	  IL_0262:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	  IL_0267:  stloc.1 
+	  IL_0268:  leave IL_0311
+
+	  IL_026d:  nop 
+	  IL_026e:  ldarg.1 
+	  IL_026f:  ldarg.2 
+	  IL_0270:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, object)
+	  IL_0275:  stloc.1 
+	  IL_0276:  leave IL_0311
+
+	  IL_027b:  ldloc.0 
+	  IL_027c:  brfalse IL_02b0
+
+	  IL_0281:  nop 
+	  IL_0282:  ldarg.0 
+	  IL_0283:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0288:  ldstr "Cannot convert {0} to '{1}' (actual type was '{2}')."
+	  IL_028d:  ldarg.3 
+	  IL_028e:  ldarg.0 
+	  IL_028f:  ldarg.1 
+	  IL_0290:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	  IL_0295:  ldarg.0 
+	  IL_0296:  ldarg.2 
+	  IL_0297:  callvirt instance class [mscorlib]System.Type object::GetType()
+	  IL_029c:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	  IL_02a1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_02a6:  ldarg.s 4
+	  IL_02a8:  ldarg.s 5
+	  IL_02aa:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	  IL_02af:  throw 
+	  IL_02b0:  ldarg.1 
+	  IL_02b1:  ldarg.2 
+	  IL_02b2:  callvirt instance class [mscorlib]System.Type object::GetType()
+	  IL_02b7:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	  IL_02bc:  brfalse IL_02c8
+
+	  IL_02c1:  ldarg.2 
+	  IL_02c2:  stloc.1 
+	  IL_02c3:  leave IL_0311
+
+	  IL_02c8:  ldarg.2 
+	  IL_02c9:  ldarg.1 
+	  IL_02ca:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_02cf:  call object class [mscorlib]System.Convert::ChangeType(object, class [mscorlib]System.Type, class [mscorlib]System.IFormatProvider)
+	  IL_02d4:  stloc.1 
+	  IL_02d5:  leave IL_0311
 
+	} // end .try 0
+	catch class NAnt.Core.ExpressionParseException { // 0
+	  IL_02da:  pop 
+	  IL_02db:  nop 
+	  IL_02dc:  rethrow 
 	} // end handler 0
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method FrameworkInfo::get_IsValid
+	catch class [mscorlib]System.Exception { // 1
+	  IL_02de:  stloc.s 7
+	  IL_02e0:  nop 
+	  IL_02e1:  ldarg.0 
+	  IL_02e2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_02e7:  ldstr "Cannot convert {0} to '{1}' (actual type was '{2}')."
+	  IL_02ec:  ldarg.3 
+	  IL_02ed:  ldarg.0 
+	  IL_02ee:  ldarg.1 
+	  IL_02ef:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	  IL_02f4:  ldarg.0 
+	  IL_02f5:  ldarg.2 
+	  IL_02f6:  callvirt instance class [mscorlib]System.Type object::GetType()
+	  IL_02fb:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
+	  IL_0300:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_0305:  ldarg.s 4
+	  IL_0307:  ldarg.s 5
+	  IL_0309:  ldloc.s 7
+	  IL_030b:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position, class [mscorlib]System.Exception)
+	  IL_0310:  throw 
+	} // end handler 1
+	IL_0311:  ldloc.1 
+	IL_0312:  ret 
+    } // end of method ExpressionEvalBase::SafeConvert
 
-    // method line 2082
-    .method assembly hidebysig specialname 
-           instance default class NAnt.Core.Types.FileSet[] get_ReferenceAssemblies ()  cil managed 
+    // method line 1686
+    .method family hidebysig 
+           instance default string GetSimpleTypeName (class [mscorlib]System.Type t)  cil managed 
     {
-        // Method begins at RVA 0x249e0
-	// Code size 207 (0xcf)
-	.maxstack 4
+        // Method begins at RVA 0x21900
+	// Code size 247 (0xf7)
+	.maxstack 2
 	.locals init (
-		class [System.Xml]System.Xml.XmlNodeList	V_0,
-		int32	V_1,
-		class [System.Xml]System.Xml.XmlNode	V_2,
-		class NAnt.Core.Types.FileSet	V_3,
-		class NAnt.Core.Types.FileSet[]	V_4)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld class NAnt.Core.Types.FileSet[] NAnt.Core.FrameworkInfo::_referenceAssemblies
-	IL_000d:  brtrue IL_00bf
+	IL_0001:  ldarg.1 
+	IL_0002:  ldtoken [mscorlib]System.Int32
+	IL_0007:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000c:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0011:  brfalse IL_0022
 
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_0019:  ldstr "nant:reference-assemblies"
-	IL_001e:  ldarg.0 
-	IL_001f:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
-	IL_0024:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0029:  stloc.0 
-	IL_002a:  ldarg.0 
-	IL_002b:  ldloc.0 
-	IL_002c:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_0031:  newarr NAnt.Core.Types.FileSet
-	IL_0036:  stfld class NAnt.Core.Types.FileSet[] NAnt.Core.FrameworkInfo::_referenceAssemblies
-	IL_003b:  ldc.i4.0 
-	IL_003c:  stloc.1 
-	IL_003d:  br IL_00b2
+	IL_0016:  nop 
+	IL_0017:  ldstr "int"
+	IL_001c:  stloc.0 
+	IL_001d:  br IL_00f5
 
-	IL_0042:  nop 
-	IL_0043:  ldloc.0 
-	IL_0044:  ldloc.1 
-	IL_0045:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNodeList::get_ItemOf(int32)
-	IL_004a:  stloc.2 
-	IL_004b:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0050:  stloc.3 
-	IL_0051:  ldloc.3 
-	IL_0052:  ldarg.0 
-	IL_0053:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
-	IL_0058:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_005d:  ldloc.3 
-	IL_005e:  ldarg.0 
-	IL_005f:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
-	IL_0064:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0069:  ldloc.3 
-	IL_006a:  ldarg.0 
-	IL_006b:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
-	IL_0070:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_0075:  ldloc.3 
-	IL_0076:  ldstr "reference-assemblies-"
-	IL_007b:  ldloca.s 1
-	IL_007d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0082:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
-	IL_0087:  call string string::Concat(string, string)
-	IL_008c:  callvirt instance void class NAnt.Core.DataTypeBase::set_ID(string)
-	IL_0091:  ldloc.3 
-	IL_0092:  ldloc.2 
-	IL_0093:  ldarg.0 
-	IL_0094:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
-	IL_0099:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_009e:  ldarg.0 
-	IL_009f:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
-	IL_00a4:  ldarg.0 
-	IL_00a5:  ldfld class NAnt.Core.Types.FileSet[] NAnt.Core.FrameworkInfo::_referenceAssemblies
-	IL_00aa:  ldloc.1 
-	IL_00ab:  ldloc.3 
-	IL_00ac:  stelem.ref 
-	IL_00ad:  nop 
-	IL_00ae:  ldloc.1 
-	IL_00af:  ldc.i4.1 
-	IL_00b0:  add 
-	IL_00b1:  stloc.1 
-	IL_00b2:  ldloc.1 
-	IL_00b3:  ldloc.0 
-	IL_00b4:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_00b9:  blt IL_0042
+	IL_0022:  ldarg.1 
+	IL_0023:  ldtoken [mscorlib]System.Int64
+	IL_0028:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_002d:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0032:  brfalse IL_0043
 
-	IL_00be:  nop 
-	IL_00bf:  ldarg.0 
-	IL_00c0:  ldfld class NAnt.Core.Types.FileSet[] NAnt.Core.FrameworkInfo::_referenceAssemblies
-	IL_00c5:  stloc.s 4
-	IL_00c7:  br IL_00cc
+	IL_0037:  nop 
+	IL_0038:  ldstr "long"
+	IL_003d:  stloc.0 
+	IL_003e:  br IL_00f5
 
-	IL_00cc:  ldloc.s 4
-	IL_00ce:  ret 
-    } // end of method FrameworkInfo::get_ReferenceAssemblies
+	IL_0043:  ldarg.1 
+	IL_0044:  ldtoken [mscorlib]System.Double
+	IL_0049:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_004e:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0053:  brfalse IL_0064
 
-    // method line 2083
-    .method assembly hidebysig specialname 
-           instance default string[] get_ToolPaths ()  cil managed 
-    {
-        // Method begins at RVA 0x24abc
-	// Code size 157 (0x9d)
-	.maxstack 4
-	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0,
-		class NAnt.Core.Configuration.DirList	V_1,
-		string[]	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld string[] NAnt.Core.FrameworkInfo::_toolPaths
-	IL_000d:  brtrue IL_008f
+	IL_0058:  nop 
+	IL_0059:  ldstr "double"
+	IL_005e:  stloc.0 
+	IL_005f:  br IL_00f5
 
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_0019:  ldstr "nant:tool-paths"
-	IL_001e:  ldarg.0 
-	IL_001f:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
-	IL_0024:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0029:  stloc.0 
-	IL_002a:  ldloc.0 
-	IL_002b:  brfalse IL_0080
+	IL_0064:  ldarg.1 
+	IL_0065:  ldtoken [mscorlib]System.String
+	IL_006a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_006f:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0074:  brfalse IL_0085
 
-	IL_0030:  nop 
-	IL_0031:  newobj instance void class NAnt.Core.Configuration.DirList::'.ctor'()
-	IL_0036:  stloc.1 
-	IL_0037:  ldloc.1 
-	IL_0038:  ldarg.0 
-	IL_0039:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
-	IL_003e:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_0043:  ldloc.1 
-	IL_0044:  ldarg.0 
-	IL_0045:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
-	IL_004a:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_004f:  ldloc.1 
-	IL_0050:  ldarg.0 
-	IL_0051:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
-	IL_0056:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_005b:  ldloc.1 
-	IL_005c:  ldloc.0 
-	IL_005d:  ldarg.0 
-	IL_005e:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
-	IL_0063:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_0068:  ldarg.0 
-	IL_0069:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
-	IL_006e:  ldarg.0 
-	IL_006f:  ldloc.1 
-	IL_0070:  callvirt instance string[] class NAnt.Core.Configuration.DirList::GetDirectories()
-	IL_0075:  stfld string[] NAnt.Core.FrameworkInfo::_toolPaths
-	IL_007a:  nop 
-	IL_007b:  br IL_008e
+	IL_0079:  nop 
+	IL_007a:  ldstr "string"
+	IL_007f:  stloc.0 
+	IL_0080:  br IL_00f5
 
-	IL_0080:  nop 
-	IL_0081:  ldarg.0 
-	IL_0082:  ldc.i4.0 
-	IL_0083:  newarr [mscorlib]System.String
-	IL_0088:  stfld string[] NAnt.Core.FrameworkInfo::_toolPaths
-	IL_008d:  nop 
-	IL_008e:  nop 
-	IL_008f:  ldarg.0 
-	IL_0090:  ldfld string[] NAnt.Core.FrameworkInfo::_toolPaths
-	IL_0095:  stloc.2 
-	IL_0096:  br IL_009b
+	IL_0085:  ldarg.1 
+	IL_0086:  ldtoken [mscorlib]System.Boolean
+	IL_008b:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0090:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0095:  brfalse IL_00a6
 
-	IL_009b:  ldloc.2 
-	IL_009c:  ret 
-    } // end of method FrameworkInfo::get_ToolPaths
+	IL_009a:  nop 
+	IL_009b:  ldstr "bool"
+	IL_00a0:  stloc.0 
+	IL_00a1:  br IL_00f5
 
-    // method line 2084
-    .method assembly hidebysig specialname 
-           instance default string get_RuntimeEngine ()  cil managed 
+	IL_00a6:  ldarg.1 
+	IL_00a7:  ldtoken [mscorlib]System.DateTime
+	IL_00ac:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_00b1:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_00b6:  brfalse IL_00c7
+
+	IL_00bb:  nop 
+	IL_00bc:  ldstr "datetime"
+	IL_00c1:  stloc.0 
+	IL_00c2:  br IL_00f5
+
+	IL_00c7:  ldarg.1 
+	IL_00c8:  ldtoken [mscorlib]System.TimeSpan
+	IL_00cd:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_00d2:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_00d7:  brfalse IL_00e8
+
+	IL_00dc:  nop 
+	IL_00dd:  ldstr "timespan"
+	IL_00e2:  stloc.0 
+	IL_00e3:  br IL_00f5
+
+	IL_00e8:  nop 
+	IL_00e9:  ldarg.1 
+	IL_00ea:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_00ef:  stloc.0 
+	IL_00f0:  br IL_00f5
+
+	IL_00f5:  ldloc.0 
+	IL_00f6:  ret 
+    } // end of method ExpressionEvalBase::GetSimpleTypeName
+
+    // method line 1687
+    .method family virtual hidebysig newslot abstract 
+           instance default object EvaluateFunction (class [mscorlib]System.Reflection.MethodInfo 'method', object[] args)  cil managed 
     {
-        // Method begins at RVA 0x24b68
-	// Code size 99 (0x63)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		class NAnt.Core.Configuration.ManagedExecutionMode	V_1,
-		class NAnt.Core.Configuration.RuntimeEngine	V_2)
+        // Method begins at RVA 0x0
+    } // end of method ExpressionEvalBase::EvaluateFunction
+
+    // method line 1688
+    .method family virtual hidebysig newslot abstract 
+           instance default object EvaluateProperty (string propertyName)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ExpressionEvalBase::EvaluateProperty
+
+    // method line 1689
+    .method family virtual hidebysig newslot 
+           instance default object UnexpectedToken ()  cil managed 
+    {
+        // Method begins at RVA 0x21a03
+	// Code size 50 (0x32)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
-	IL_0007:  brtrue IL_0018
-
-	IL_000c:  nop 
-	IL_000d:  ldsfld string [mscorlib]System.String::Empty
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0061
+	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0007:  ldstr "Unexpected token '{0}'."
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0012:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	IL_0017:  box NAnt.Core.ExpressionTokenizer/TokenType
+	IL_001c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0021:  ldarg.0 
+	IL_0022:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
+	IL_0027:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_002c:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
+	IL_0031:  throw 
+    } // end of method ExpressionEvalBase::UnexpectedToken
 
-	IL_0018:  ldarg.0 
-	IL_0019:  call instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
-	IL_001e:  callvirt instance class NAnt.Core.Configuration.ManagedExecutionModes class NAnt.Core.Configuration.Runtime::get_Modes()
-	IL_0023:  ldc.i4.1 
-	IL_0024:  callvirt instance class NAnt.Core.Configuration.ManagedExecutionMode class NAnt.Core.Configuration.ManagedExecutionModes::GetExecutionMode(valuetype NAnt.Core.Types.ManagedExecution)
-	IL_0029:  stloc.1 
-	IL_002a:  ldloc.1 
-	IL_002b:  brfalse IL_0056
+	.property instance class NAnt.Core.Project Project ()
+	{
+		.get instance default class NAnt.Core.Project NAnt.Core.ExpressionEvalBase::get_Project () 
+	}
+  .class nested private auto ansi sealed EvalMode
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Core.ExpressionEvalBase/EvalMode Evaluate = int32(0x00000000)
+    .field public static literal  valuetype NAnt.Core.ExpressionEvalBase/EvalMode ParseOnly = int32(0x00000001)
 
-	IL_0030:  nop 
-	IL_0031:  ldloc.1 
-	IL_0032:  callvirt instance class NAnt.Core.Configuration.RuntimeEngine class NAnt.Core.Configuration.ManagedExecutionMode::get_Engine()
-	IL_0037:  stloc.2 
-	IL_0038:  ldloc.2 
-	IL_0039:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Configuration.RuntimeEngine::get_Program()
-	IL_003e:  brfalse IL_0055
+  } // end of class EvalMode
 
-	IL_0043:  nop 
-	IL_0044:  ldloc.2 
-	IL_0045:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Configuration.RuntimeEngine::get_Program()
-	IL_004a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_004f:  stloc.0 
-	IL_0050:  br IL_0061
+  } // end of class NAnt.Core.ExpressionEvalBase
+}
 
-	IL_0055:  nop 
-	IL_0056:  ldsfld string [mscorlib]System.String::Empty
-	IL_005b:  stloc.0 
-	IL_005c:  br IL_0061
+.namespace NAnt.Core
+{
+  .class private auto ansi beforefieldinit ProjectSettingsLoader
+  	extends [mscorlib]System.Object
+  {
+    .field  private  class NAnt.Core.Project _project
+    .field  private  class [System.Xml]System.Xml.XmlNamespaceManager _nsMgr
+    .field  private static  bool ScannedTasks
 
-	IL_0061:  ldloc.0 
-	IL_0062:  ret 
-    } // end of method FrameworkInfo::get_RuntimeEngine
+    // method line 1690
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
+    {
+        // Method begins at RVA 0x21a36
+	// Code size 58 (0x3a)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld class NAnt.Core.Project NAnt.Core.ProjectSettingsLoader::_project
+	IL_000e:  ldarg.0 
+	IL_000f:  newobj instance void class [System.Xml]System.Xml.NameTable::'.ctor'()
+	IL_0014:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
+	IL_0019:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.ProjectSettingsLoader::_nsMgr
+	IL_001e:  ldarg.0 
+	IL_001f:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.ProjectSettingsLoader::_nsMgr
+	IL_0024:  ldstr "nant"
+	IL_0029:  ldarg.0 
+	IL_002a:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.ProjectSettingsLoader::_nsMgr
+	IL_002f:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::get_DefaultNamespace()
+	IL_0034:  callvirt instance void class [System.Xml]System.Xml.XmlNamespaceManager::AddNamespace(string, string)
+	IL_0039:  ret 
+    } // end of method ProjectSettingsLoader::.ctor
 
-    // method line 2085
-    .method private hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
+    // method line 1691
+    .method family hidebysig specialname 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
     {
-        // Method begins at RVA 0x24bd8
+        // Method begins at RVA 0x21a74
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System.Xml]System.Xml.XmlNamespaceManager	V_0)
+		class NAnt.Core.Project	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.FrameworkInfo::_nsMgr
+	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.ProjectSettingsLoader::_project
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FrameworkInfo::get_NamespaceManager
+    } // end of method ProjectSettingsLoader::get_Project
 
-    // method line 2086
-    .method assembly static hidebysig specialname 
-           default class [mscorlib]System.Collections.IComparer get_NameComparer ()  cil managed 
+    // method line 1692
+    .method private hidebysig specialname 
+           instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
     {
-        // Method begins at RVA 0x24bf4
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x21a90
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.IComparer	V_0)
+		class [System.Xml]System.Xml.XmlNamespaceManager	V_0)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.FrameworkInfo/FrameworkNameComparer::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.ProjectSettingsLoader::_nsMgr
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method FrameworkInfo::get_NameComparer
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettingsLoader::get_NamespaceManager
 
-    // method line 2087
+    // method line 1693
     .method public hidebysig 
-           instance default string ResolveAssembly (string fileName)  cil managed 
+           instance default void ProcessSettings ()  cil managed 
     {
-        // Method begins at RVA 0x24c10
-	// Code size 68 (0x44)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		class NAnt.Core.Types.FileSet	V_1,
-		class NAnt.Core.Types.FileSet[]	V_2,
-		int32	V_3,
-		string	V_4)
+        // Method begins at RVA 0x21aac
+	// Code size 111 (0x6f)
+	.maxstack 5
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  nop 
-	IL_0004:  ldarg.0 
-	IL_0005:  call instance class NAnt.Core.Types.FileSet[] class NAnt.Core.FrameworkInfo::get_ReferenceAssemblies()
-	IL_000a:  stloc.2 
-	IL_000b:  ldc.i4.0 
-	IL_000c:  stloc.3 
-	IL_000d:  br IL_0030
-
-	IL_0012:  ldloc.2 
-	IL_0013:  ldloc.3 
-	IL_0014:  ldelem.ref 
-	IL_0015:  stloc.1 
-	IL_0016:  nop 
-	IL_0017:  ldloc.1 
-	IL_0018:  ldarg.1 
-	IL_0019:  callvirt instance string class NAnt.Core.Types.FileSet::Find(string)
-	IL_001e:  stloc.0 
-	IL_001f:  ldloc.0 
-	IL_0020:  brfalse IL_002b
-
-	IL_0025:  nop 
-	IL_0026:  br IL_0039
-
-	IL_002b:  nop 
-	IL_002c:  ldloc.3 
-	IL_002d:  ldc.i4.1 
-	IL_002e:  add 
-	IL_002f:  stloc.3 
-	IL_0030:  ldloc.3 
-	IL_0031:  ldloc.2 
-	IL_0032:  ldlen 
-	IL_0033:  conv.i4 
-	IL_0034:  blt IL_0012
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Project::get_ConfigurationNode()
+	IL_000c:  brtrue IL_0017
 
-	IL_0039:  ldloc.0 
-	IL_003a:  stloc.s 4
-	IL_003c:  br IL_0041
+	IL_0011:  nop 
+	IL_0012:  br IL_006e
 
-	IL_0041:  ldloc.s 4
-	IL_0043:  ret 
-    } // end of method FrameworkInfo::ResolveAssembly
+	IL_0017:  ldarg.0 
+	IL_0018:  ldarg.0 
+	IL_0019:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_001e:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Project::get_ConfigurationNode()
+	IL_0023:  ldstr "nant:frameworks/nant:platform[@name='"
+	IL_0028:  ldarg.0 
+	IL_0029:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_002e:  callvirt instance string class NAnt.Core.Project::get_PlatformName()
+	IL_0033:  ldstr "']"
+	IL_0038:  call string string::Concat(string, string, string)
+	IL_003d:  ldarg.0 
+	IL_003e:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
+	IL_0043:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0048:  call instance void class NAnt.Core.ProjectSettingsLoader::ProcessPlatform(class [System.Xml]System.Xml.XmlNode)
+	IL_004d:  ldarg.0 
+	IL_004e:  ldarg.0 
+	IL_004f:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_0054:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Project::get_ConfigurationNode()
+	IL_0059:  ldstr "nant:properties/nant:property"
+	IL_005e:  ldarg.0 
+	IL_005f:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
+	IL_0064:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0069:  call instance void class NAnt.Core.ProjectSettingsLoader::ProcessGlobalProperties(class [System.Xml]System.Xml.XmlNodeList)
+	IL_006e:  ret 
+    } // end of method ProjectSettingsLoader::ProcessSettings
 
-    // method line 2088
-    .method assembly hidebysig 
-           instance default void Validate ()  cil managed 
+    // method line 1694
+    .method private hidebysig 
+           instance default void ProcessPlatform (class [System.Xml]System.Xml.XmlNode platformNode)  cil managed 
     {
-        // Method begins at RVA 0x24c60
-	// Code size 199 (0xc7)
+        // Method begins at RVA 0x21b28
+	// Code size 446 (0x1be)
 	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Exception	V_0)
+		class NAnt.Core.Types.FileSet	V_0,
+		class [System.Xml]System.Xml.XmlNode	V_1,
+		class NAnt.Core.Tasks.LoadTasksTask	V_2,
+		class NAnt.Core.Tasks.LoadTasksTask	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
-	IL_0007:  ldc.i4.3 
-	IL_0008:  bne.un IL_0013
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-	IL_000d:  nop 
-	IL_000e:  br IL_00c6
+	IL_0007:  nop 
+	IL_0008:  ldstr "platformNode"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldsfld bool NAnt.Core.ProjectSettingsLoader::ScannedTasks
+	IL_0018:  brtrue IL_010a
 
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance void class NAnt.Core.FrameworkInfo::Init()
-	IL_0019:  ldarg.0 
-	IL_001a:  ldc.i4.1 
-	IL_001b:  stfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
-	.try { // 0
-	  IL_0020:  nop 
-	  IL_0021:  ldarg.0 
-	  IL_0022:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
-	  IL_0027:  brtrue IL_0038
+	IL_001d:  nop 
+	IL_001e:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0023:  stloc.0 
+	IL_0024:  ldloc.0 
+	IL_0025:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_002a:  callvirt instance string class [mscorlib]System.AppDomain::get_BaseDirectory()
+	IL_002f:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0034:  callvirt instance void class NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_0039:  ldloc.0 
+	IL_003a:  ldarg.0 
+	IL_003b:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_0040:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_0045:  ldloc.0 
+	IL_0046:  ldarg.0 
+	IL_0047:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
+	IL_004c:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0051:  ldloc.0 
+	IL_0052:  ldarg.0 
+	IL_0053:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_0058:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_005d:  ldloc.0 
+	IL_005e:  ldstr "platform-task-assemblies"
+	IL_0063:  callvirt instance void class NAnt.Core.DataTypeBase::set_ID(string)
+	IL_0068:  ldarg.1 
+	IL_0069:  ldstr "nant:task-assemblies"
+	IL_006e:  ldarg.0 
+	IL_006f:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
+	IL_0074:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0079:  stloc.1 
+	IL_007a:  ldloc.1 
+	IL_007b:  brfalse IL_0095
 
-	  IL_002c:  nop 
-	  IL_002d:  ldstr "The \"frameworkdirectory\" attribute does not exist, or has no value."
-	  IL_0032:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	  IL_0037:  throw 
-	  IL_0038:  ldarg.0 
-	  IL_0039:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory()
-	  IL_003e:  brtrue IL_004f
+	IL_0080:  nop 
+	IL_0081:  ldloc.0 
+	IL_0082:  ldloc.1 
+	IL_0083:  ldarg.0 
+	IL_0084:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_0089:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_008e:  ldnull 
+	IL_008f:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
+	IL_0094:  nop 
+	IL_0095:  newobj instance void class NAnt.Core.Tasks.LoadTasksTask::'.ctor'()
+	IL_009a:  stloc.2 
+	IL_009b:  ldloc.2 
+	IL_009c:  ldarg.0 
+	IL_009d:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_00a2:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_00a7:  ldloc.2 
+	IL_00a8:  ldarg.0 
+	IL_00a9:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
+	IL_00ae:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_00b3:  ldloc.2 
+	IL_00b4:  ldarg.0 
+	IL_00b5:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_00ba:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_00bf:  ldloc.2 
+	IL_00c0:  ldloc.0 
+	IL_00c1:  callvirt instance void class NAnt.Core.Tasks.LoadTasksTask::set_TaskFileSet(class NAnt.Core.Types.FileSet)
+	IL_00c6:  ldloc.2 
+	IL_00c7:  ldc.i4.0 
+	IL_00c8:  callvirt instance void class NAnt.Core.Task::set_FailOnError(bool)
+	IL_00cd:  ldloc.2 
+	IL_00ce:  ldarg.0 
+	IL_00cf:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_00d4:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
+	IL_00d9:  ldc.i4 1000
+	IL_00de:  bne.un IL_00ed
 
-	  IL_0043:  nop 
-	  IL_0044:  ldstr "The \"frameworkassemblydirectory\" attribute does not exist, or has no value."
-	  IL_0049:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	  IL_004e:  throw 
-	  IL_004f:  ldarg.0 
-	  IL_0050:  call instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_Version()
-	  IL_0055:  ldnull 
-	  IL_0056:  call bool class [mscorlib]System.Version::op_Equality(class [mscorlib]System.Version, class [mscorlib]System.Version)
-	  IL_005b:  brfalse IL_006c
+	IL_00e3:  ldc.i4 1000
+	IL_00e8:  br IL_00f2
 
-	  IL_0060:  nop 
-	  IL_0061:  ldstr "The \"version\" attribute does not exist, or has no value."
-	  IL_0066:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	  IL_006b:  throw 
-	  IL_006c:  ldarg.0 
-	  IL_006d:  call instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
-	  IL_0072:  ldnull 
-	  IL_0073:  call bool class [mscorlib]System.Version::op_Equality(class [mscorlib]System.Version, class [mscorlib]System.Version)
-	  IL_0078:  brfalse IL_0089
+	IL_00ed:  ldc.i4 4000
+	IL_00f2:  callvirt instance void class NAnt.Core.Task::set_Threshold(valuetype NAnt.Core.Level)
+	IL_00f7:  ldloc.2 
+	IL_00f8:  callvirt instance void class NAnt.Core.Task::Execute()
+	IL_00fd:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetExecutingAssembly()
+	IL_0102:  ldloc.2 
+	IL_0103:  call bool class NAnt.Core.TypeFactory::ScanAssembly(class [mscorlib]System.Reflection.Assembly, class NAnt.Core.Task)
+	IL_0108:  pop 
+	IL_0109:  nop 
+	IL_010a:  ldarg.0 
+	IL_010b:  ldarg.1 
+	IL_010c:  call instance void class NAnt.Core.ProjectSettingsLoader::ProcessFrameworks(class [System.Xml]System.Xml.XmlNode)
+	IL_0111:  ldarg.0 
+	IL_0112:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_0117:  ldarg.0 
+	IL_0118:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.ProjectSettingsLoader::ConfigureRuntimeFramework()
+	IL_011d:  callvirt instance void class NAnt.Core.Project::set_RuntimeFramework(class NAnt.Core.FrameworkInfo)
+	IL_0122:  ldarg.0 
+	IL_0123:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_0128:  ldarg.0 
+	IL_0129:  ldarg.1 
+	IL_012a:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.ProjectSettingsLoader::ConfigureTargetFramework(class [System.Xml]System.Xml.XmlNode)
+	IL_012f:  callvirt instance void class NAnt.Core.Project::set_TargetFramework(class NAnt.Core.FrameworkInfo)
+	IL_0134:  ldsfld bool NAnt.Core.ProjectSettingsLoader::ScannedTasks
+	IL_0139:  brtrue IL_01bd
 
-	  IL_007d:  nop 
-	  IL_007e:  ldstr "The \"clrversion\" attribute does not exist, or has no value."
-	  IL_0083:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	  IL_0088:  throw 
-	  IL_0089:  ldarg.0 
-	  IL_008a:  ldc.i4.3 
-	  IL_008b:  stfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
-	  IL_0090:  nop 
-	  IL_0091:  leave IL_00c6
+	IL_013e:  nop 
+	IL_013f:  newobj instance void class NAnt.Core.Tasks.LoadTasksTask::'.ctor'()
+	IL_0144:  stloc.3 
+	IL_0145:  ldloc.3 
+	IL_0146:  ldarg.0 
+	IL_0147:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_014c:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_0151:  ldloc.3 
+	IL_0152:  ldarg.0 
+	IL_0153:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
+	IL_0158:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_015d:  ldloc.3 
+	IL_015e:  ldarg.0 
+	IL_015f:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_0164:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_0169:  ldloc.3 
+	IL_016a:  ldarg.0 
+	IL_016b:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_0170:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
+	IL_0175:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.FrameworkInfo::get_TaskAssemblies()
+	IL_017a:  callvirt instance void class NAnt.Core.Tasks.LoadTasksTask::set_TaskFileSet(class NAnt.Core.Types.FileSet)
+	IL_017f:  ldloc.3 
+	IL_0180:  ldc.i4.0 
+	IL_0181:  callvirt instance void class NAnt.Core.Task::set_FailOnError(bool)
+	IL_0186:  ldloc.3 
+	IL_0187:  ldarg.0 
+	IL_0188:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_018d:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
+	IL_0192:  ldc.i4 1000
+	IL_0197:  bne.un IL_01a6
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0096:  stloc.0 
-	  IL_0097:  nop 
-	  IL_0098:  ldarg.0 
-	  IL_0099:  ldc.i4.2 
-	  IL_009a:  stfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
-	  IL_009f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_00a4:  ldstr "{0} ({1}) is not installed, or not correctly configured."
-	  IL_00a9:  ldarg.0 
-	  IL_00aa:  call instance string class NAnt.Core.FrameworkInfo::get_Description()
-	  IL_00af:  ldarg.0 
-	  IL_00b0:  call instance string class NAnt.Core.FrameworkInfo::get_Name()
-	  IL_00b5:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_00ba:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	  IL_00bf:  ldloc.0 
-	  IL_00c0:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_00c5:  throw 
-	} // end handler 0
-	IL_00c6:  ret 
-    } // end of method FrameworkInfo::Validate
+	IL_019c:  ldc.i4 1000
+	IL_01a1:  br IL_01ab
 
-    // method line 2089
-    .method assembly hidebysig 
-           instance default string GetToolPath (string tool)  cil managed 
+	IL_01a6:  ldc.i4 4000
+	IL_01ab:  callvirt instance void class NAnt.Core.Task::set_Threshold(valuetype NAnt.Core.Level)
+	IL_01b0:  ldloc.3 
+	IL_01b1:  callvirt instance void class NAnt.Core.Task::Execute()
+	IL_01b6:  ldc.i4.1 
+	IL_01b7:  stsfld bool NAnt.Core.ProjectSettingsLoader::ScannedTasks
+	IL_01bc:  nop 
+	IL_01bd:  ret 
+    } // end of method ProjectSettingsLoader::ProcessPlatform
+
+    // method line 1695
+    .method private hidebysig 
+           instance default void ProcessFrameworks (class [System.Xml]System.Xml.XmlNode platformNode)  cil managed 
     {
-        // Method begins at RVA 0x24d44
-	// Code size 39 (0x27)
+        // Method begins at RVA 0x21cf4
+	// Code size 153 (0x99)
 	.maxstack 3
 	.locals init (
-		string	V_0)
+		class [System.Xml]System.Xml.XmlNode	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.FrameworkInfo	V_2,
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0012
+	IL_0002:  brtrue IL_0013
 
-	IL_0007:  ldstr "tool"
-	IL_000c:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0011:  throw 
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance string[] class NAnt.Core.FrameworkInfo::get_ToolPaths()
-	IL_0018:  ldarg.1 
-	IL_0019:  ldc.i4.0 
-	IL_001a:  call string class NAnt.Core.Util.FileUtils::ResolveFile(string[], string, bool)
-	IL_001f:  stloc.0 
-	IL_0020:  br IL_0025
+	IL_0007:  nop 
+	IL_0008:  ldstr "platformNode"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  nop 
+	IL_0014:  ldarg.1 
+	IL_0015:  ldstr "nant:framework"
+	IL_001a:  ldarg.0 
+	IL_001b:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
+	IL_0020:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0025:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_002a:  stloc.1 
+	.try { // 0
+	  IL_002b:  br IL_0074
 
-	IL_0025:  ldloc.0 
-	IL_0026:  ret 
-    } // end of method FrameworkInfo::GetToolPath
+	  IL_0030:  ldloc.1 
+	  IL_0031:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0036:  castclass [System.Xml]System.Xml.XmlNode
+	  IL_003b:  stloc.0 
+	  IL_003c:  nop 
+	  IL_003d:  ldloc.0 
+	  IL_003e:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
+	  IL_0043:  ldc.i4.1 
+	  IL_0044:  beq IL_004f
 
-    // method line 2090
+	  IL_0049:  nop 
+	  IL_004a:  leave IL_0074
+
+	  IL_004f:  ldloc.0 
+	  IL_0050:  ldarg.0 
+	  IL_0051:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
+	  IL_0056:  newobj instance void class NAnt.Core.FrameworkInfo::'.ctor'(class [System.Xml]System.Xml.XmlNode, class [System.Xml]System.Xml.XmlNamespaceManager)
+	  IL_005b:  stloc.2 
+	  IL_005c:  ldarg.0 
+	  IL_005d:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	  IL_0062:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
+	  IL_0067:  ldloc.2 
+	  IL_0068:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	  IL_006d:  ldloc.2 
+	  IL_006e:  callvirt instance void class NAnt.Core.FrameworkInfoDictionary::Add(string, class NAnt.Core.FrameworkInfo)
+	  IL_0073:  nop 
+	  IL_0074:  ldloc.1 
+	  IL_0075:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_007a:  brtrue IL_0030
+
+	  IL_007f:  leave IL_0098
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0084:  ldloc.1 
+	  IL_0085:  isinst [mscorlib]System.IDisposable
+	  IL_008a:  dup 
+	  IL_008b:  stloc.3 
+	  IL_008c:  brfalse IL_0097
+
+	  IL_0091:  ldloc.3 
+	  IL_0092:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0097:  endfinally 
+	} // end handler 0
+	IL_0098:  ret 
+    } // end of method ProjectSettingsLoader::ProcessFrameworks
+
+    // method line 1696
     .method private hidebysig 
-           instance default void Init ()  cil managed 
+           instance default void ProcessGlobalProperties (class [System.Xml]System.Xml.XmlNodeList propertyNodes)  cil managed 
     {
-        // Method begins at RVA 0x24d78
-	// Code size 79 (0x4f)
-	.maxstack 4
+        // Method begins at RVA 0x21dac
+	// Code size 143 (0x8f)
+	.maxstack 3
 	.locals init (
-		class [mscorlib]System.Exception	V_0)
+		class [System.Xml]System.Xml.XmlNode	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.Tasks.PropertyTask	V_2,
+		class NAnt.Core.Project	V_3,
+		class [mscorlib]System.IDisposable	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
-	IL_0007:  brfalse IL_0012
+	IL_0001:  nop 
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_0008:  stloc.1 
+	.try { // 0
+	  IL_0009:  br IL_0068
 
-	IL_000c:  nop 
-	IL_000d:  br IL_004e
+	  IL_000e:  ldloc.1 
+	  IL_000f:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0014:  castclass [System.Xml]System.Xml.XmlNode
+	  IL_0019:  stloc.0 
+	  IL_001a:  nop 
+	  IL_001b:  ldloc.0 
+	  IL_001c:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
+	  IL_0021:  ldc.i4.1 
+	  IL_0022:  beq IL_002d
 
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
-	.try { // 0
-	  IL_0018:  nop 
-	  IL_0019:  ldarg.0 
-	  IL_001a:  call instance void class NAnt.Core.FrameworkInfo::PerformInit()
-	  IL_001f:  nop 
-	  IL_0020:  leave IL_004e
+	  IL_0027:  nop 
+	  IL_0028:  leave IL_0068
+
+	  IL_002d:  newobj instance void class NAnt.Core.Tasks.PropertyTask::'.ctor'()
+	  IL_0032:  stloc.2 
+	  IL_0033:  ldloc.2 
+	  IL_0034:  ldarg.0 
+	  IL_0035:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	  IL_003a:  stloc.3 
+	  IL_003b:  ldloc.2 
+	  IL_003c:  ldloc.3 
+	  IL_003d:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	  IL_0042:  ldloc.3 
+	  IL_0043:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	  IL_0048:  ldloc.2 
+	  IL_0049:  ldarg.0 
+	  IL_004a:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
+	  IL_004f:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	  IL_0054:  ldloc.2 
+	  IL_0055:  callvirt instance void class NAnt.Core.Task::InitializeTaskConfiguration()
+	  IL_005a:  ldloc.2 
+	  IL_005b:  ldloc.0 
+	  IL_005c:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode)
+	  IL_0061:  ldloc.2 
+	  IL_0062:  callvirt instance void class NAnt.Core.Task::Execute()
+	  IL_0067:  nop 
+	  IL_0068:  ldloc.1 
+	  IL_0069:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_006e:  brtrue IL_000e
+
+	  IL_0073:  leave IL_008e
 
 	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0025:  stloc.0 
-	  IL_0026:  nop 
-	  IL_0027:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_002c:  ldstr "Failed to initialize the '{0}' ({1}) target framework."
-	  IL_0031:  ldarg.0 
-	  IL_0032:  call instance string class NAnt.Core.FrameworkInfo::get_Description()
-	  IL_0037:  ldarg.0 
-	  IL_0038:  call instance string class NAnt.Core.FrameworkInfo::get_Name()
-	  IL_003d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0042:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	  IL_0047:  ldloc.0 
-	  IL_0048:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_004d:  throw 
+	finally  { // 0
+	  IL_0078:  ldloc.1 
+	  IL_0079:  isinst [mscorlib]System.IDisposable
+	  IL_007e:  dup 
+	  IL_007f:  stloc.s 4
+	  IL_0081:  brfalse IL_008d
+
+	  IL_0086:  ldloc.s 4
+	  IL_0088:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_008d:  endfinally 
 	} // end handler 0
-	IL_004e:  ret 
-    } // end of method FrameworkInfo::Init
+	IL_008e:  ret 
+    } // end of method ProjectSettingsLoader::ProcessGlobalProperties
 
-    // method line 2091
+    // method line 1697
     .method private hidebysig 
-           instance default void PerformInit ()  cil managed 
+           instance default class NAnt.Core.FrameworkInfo ConfigureRuntimeFramework ()  cil managed 
     {
-        // Method begins at RVA 0x24de4
-	// Code size 290 (0x122)
+        // Method begins at RVA 0x21e58
+	// Code size 346 (0x15a)
 	.maxstack 4
 	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0,
-		class [System.Xml]System.Xml.XmlDocument	V_1,
-		class NAnt.Core.Project	V_2,
-		class [System.Xml]System.Xml.XmlNode	V_3,
-		class NAnt.Core.Project	V_4,
-		string	V_5)
+		class [mscorlib]System.Collections.ArrayList	V_0,
+		string	V_1,
+		class [mscorlib]System.Version	V_2,
+		class NAnt.Core.FrameworkInfo	V_3,
+		class NAnt.Core.FrameworkInfoDictionaryEnumerator	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		class NAnt.Core.FrameworkInfo	V_6,
+		int32	V_7,
+		class NAnt.Core.FrameworkInfo	V_8,
+		class NAnt.Core.FrameworkInfo	V_9)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_0007:  ldstr "nant:project"
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
-	IL_0012:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  brtrue IL_0029
+	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldsfld bool NAnt.Core.PlatformHelper::IsMono
+	IL_000c:  brfalse IL_001b
 
-	IL_001e:  ldstr "No <project> node is defined."
-	IL_0023:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0028:  throw 
-	IL_0029:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	IL_002e:  stloc.1 
-	IL_002f:  ldloc.1 
-	IL_0030:  ldloc.0 
-	IL_0031:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_OuterXml()
-	IL_0036:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::LoadXml(string)
-	IL_003b:  ldloc.1 
-	IL_003c:  newobj instance void class NAnt.Core.Project::'.ctor'(class [System.Xml]System.Xml.XmlDocument)
-	IL_0041:  stloc.2 
-	IL_0042:  ldloc.2 
-	IL_0043:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_0048:  callvirt instance string class [mscorlib]System.AppDomain::get_BaseDirectory()
-	IL_004d:  callvirt instance void class NAnt.Core.Project::set_BaseDirectory(string)
-	IL_0052:  ldloc.2 
-	IL_0053:  callvirt instance void class NAnt.Core.Project::Execute()
-	IL_0058:  ldarg.0 
-	IL_0059:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_005e:  ldstr "runtime"
-	IL_0063:  ldarg.0 
-	IL_0064:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
-	IL_0069:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_006e:  stloc.3 
-	IL_006f:  ldloc.3 
-	IL_0070:  brfalse IL_00c3
+	IL_0011:  ldstr "mono"
+	IL_0016:  br IL_0020
 
-	IL_0075:  nop 
-	IL_0076:  ldarg.0 
-	IL_0077:  newobj instance void class NAnt.Core.Configuration.Runtime::'.ctor'()
-	IL_007c:  stfld class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::_runtime
-	IL_0081:  ldarg.0 
-	IL_0082:  ldfld class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::_runtime
-	IL_0087:  ldloc.2 
-	IL_0088:  stloc.s 4
-	IL_008a:  ldarg.0 
-	IL_008b:  ldfld class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::_runtime
-	IL_0090:  ldloc.s 4
-	IL_0092:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_0097:  ldloc.s 4
-	IL_0099:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_009e:  ldarg.0 
-	IL_009f:  ldfld class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::_runtime
-	IL_00a4:  ldarg.0 
-	IL_00a5:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
-	IL_00aa:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_00af:  ldarg.0 
-	IL_00b0:  ldfld class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::_runtime
-	IL_00b5:  ldloc.3 
-	IL_00b6:  ldloc.2 
-	IL_00b7:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_00bc:  ldarg.0 
-	IL_00bd:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
-	IL_00c2:  nop 
-	IL_00c3:  ldarg.0 
-	IL_00c4:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_00c9:  ldstr "sdkdirectory"
-	IL_00ce:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_00d3:  stloc.s 5
+	IL_001b:  ldstr "net"
+	IL_0020:  stloc.1 
+	IL_0021:  call class [mscorlib]System.Version class [mscorlib]System.Environment::get_Version()
+	IL_0026:  ldc.i4.3 
+	IL_0027:  callvirt instance string class [mscorlib]System.Version::ToString(int32)
+	IL_002c:  newobj instance void class [mscorlib]System.Version::'.ctor'(string)
+	IL_0031:  stloc.2 
+	IL_0032:  nop 
+	IL_0033:  ldarg.0 
+	IL_0034:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_0039:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
+	IL_003e:  callvirt instance class NAnt.Core.FrameworkInfoDictionaryEnumerator class NAnt.Core.FrameworkInfoDictionary::GetEnumerator()
+	IL_0043:  stloc.s 4
 	.try { // 0
-	  IL_00d5:  nop 
-	  IL_00d6:  ldloc.2 
-	  IL_00d7:  ldloc.s 5
-	  IL_00d9:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	  IL_00de:  callvirt instance string class NAnt.Core.Project::ExpandProperties(string, class NAnt.Core.Location)
-	  IL_00e3:  stloc.s 5
-	  IL_00e5:  nop 
-	  IL_00e6:  leave IL_00f3
+	  IL_0045:  br IL_0089
+
+	  IL_004a:  ldloc.s 4
+	  IL_004c:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Current()
+	  IL_0051:  stloc.3 
+	  IL_0052:  nop 
+	  IL_0053:  ldloc.3 
+	  IL_0054:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Family()
+	  IL_0059:  ldloc.1 
+	  IL_005a:  call bool string::op_Inequality(string, string)
+	  IL_005f:  brfalse IL_0069
+
+	  IL_0064:  leave IL_0089
+
+	  IL_0069:  ldloc.3 
+	  IL_006a:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
+	  IL_006f:  ldloc.2 
+	  IL_0070:  call bool class [mscorlib]System.Version::op_Inequality(class [mscorlib]System.Version, class [mscorlib]System.Version)
+	  IL_0075:  brfalse IL_0080
+
+	  IL_007a:  nop 
+	  IL_007b:  leave IL_0089
+
+	  IL_0080:  ldloc.0 
+	  IL_0081:  ldloc.3 
+	  IL_0082:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0087:  pop 
+	  IL_0088:  nop 
+	  IL_0089:  ldloc.s 4
+	  IL_008b:  callvirt instance bool class NAnt.Core.FrameworkInfoDictionaryEnumerator::MoveNext()
+	  IL_0090:  brtrue IL_004a
+
+	  IL_0095:  leave IL_00b1
 
 	} // end .try 0
-	catch class NAnt.Core.BuildException { // 0
-	  IL_00eb:  pop 
-	  IL_00ec:  nop 
-	  IL_00ed:  nop 
-	  IL_00ee:  leave IL_00f3
+	finally  { // 0
+	  IL_009a:  ldloc.s 4
+	  IL_009c:  isinst [mscorlib]System.IDisposable
+	  IL_00a1:  dup 
+	  IL_00a2:  stloc.s 5
+	  IL_00a4:  brfalse IL_00b0
 
+	  IL_00a9:  ldloc.s 5
+	  IL_00ab:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00b0:  endfinally 
 	} // end handler 0
-	IL_00f3:  ldloc.s 5
-	IL_00f5:  brfalse IL_0113
+	IL_00b1:  ldnull 
+	IL_00b2:  stloc.s 6
+	IL_00b4:  ldc.i4.0 
+	IL_00b5:  stloc.s 7
+	IL_00b7:  br IL_0118
 
-	IL_00fa:  ldloc.s 5
-	IL_00fc:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0101:  brfalse IL_0113
+	IL_00bc:  nop 
+	IL_00bd:  ldloc.0 
+	IL_00be:  ldloc.s 7
+	IL_00c0:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	IL_00c5:  castclass NAnt.Core.FrameworkInfo
+	IL_00ca:  stloc.s 8
+	.try { // 1
+	  IL_00cc:  nop 
+	  IL_00cd:  ldloc.s 8
+	  IL_00cf:  callvirt instance void class NAnt.Core.FrameworkInfo::Validate()
+	  IL_00d4:  ldloc.s 8
+	  IL_00d6:  stloc.s 6
+	  IL_00d8:  ldloc.s 6
+	  IL_00da:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
+	  IL_00df:  brfalse IL_00ea
 
-	IL_0106:  ldarg.0 
-	IL_0107:  ldloc.s 5
-	IL_0109:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_010e:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_sdkDirectory
-	IL_0113:  ldarg.0 
-	IL_0114:  ldloc.2 
-	IL_0115:  stfld class NAnt.Core.Project NAnt.Core.FrameworkInfo::_project
-	IL_011a:  ldarg.0 
-	IL_011b:  ldc.i4.1 
-	IL_011c:  stfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
-	IL_0121:  ret 
-    } // end of method FrameworkInfo::PerformInit
+	  IL_00e4:  nop 
+	  IL_00e5:  leave IL_0125
 
-    // method line 2092
+	  IL_00ea:  nop 
+	  IL_00eb:  leave IL_0111
+
+	} // end .try 1
+	catch class [mscorlib]System.Object { // 1
+	  IL_00f0:  pop 
+	  IL_00f1:  nop 
+	  IL_00f2:  ldloc.s 6
+	  IL_00f4:  brtrue IL_010b
+
+	  IL_00f9:  ldloc.s 7
+	  IL_00fb:  ldloc.0 
+	  IL_00fc:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	  IL_0101:  ldc.i4.1 
+	  IL_0102:  sub 
+	  IL_0103:  bne.un IL_010b
+
+	  IL_0108:  nop 
+	  IL_0109:  rethrow 
+	  IL_010b:  nop 
+	  IL_010c:  leave IL_0111
+
+	} // end handler 1
+	IL_0111:  nop 
+	IL_0112:  ldloc.s 7
+	IL_0114:  ldc.i4.1 
+	IL_0115:  add 
+	IL_0116:  stloc.s 7
+	IL_0118:  ldloc.s 7
+	IL_011a:  ldloc.0 
+	IL_011b:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_0120:  blt IL_00bc
+
+	IL_0125:  ldloc.s 6
+	IL_0127:  brtrue IL_014e
+
+	IL_012c:  nop 
+	IL_012d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0132:  ldstr "NA1062"
+	IL_0137:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_013c:  ldloc.1 
+	IL_013d:  ldloc.2 
+	IL_013e:  callvirt instance string object::ToString()
+	IL_0143:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0148:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_014d:  throw 
+	IL_014e:  ldloc.s 6
+	IL_0150:  stloc.s 9
+	IL_0152:  br IL_0157
+
+	IL_0157:  ldloc.s 9
+	IL_0159:  ret 
+    } // end of method ProjectSettingsLoader::ConfigureRuntimeFramework
+
+    // method line 1698
     .method private hidebysig 
-           instance default void AssertNotInvalid ()  cil managed 
+           instance default class NAnt.Core.FrameworkInfo ConfigureTargetFramework (class [System.Xml]System.Xml.XmlNode platformNode)  cil managed 
     {
-        // Method begins at RVA 0x24f24
-	// Code size 48 (0x30)
-	.maxstack 8
+        // Method begins at RVA 0x21fdc
+	// Code size 170 (0xaa)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		class NAnt.Core.FrameworkInfo	V_1,
+		class NAnt.Core.FrameworkInfo	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
-	IL_0007:  ldc.i4.2 
-	IL_0008:  beq IL_0023
-
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
-	IL_0013:  brtrue IL_002f
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr "default"
+	IL_0007:  call string class NAnt.Core.ProjectSettingsLoader::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  brfalse IL_0023
 
-	IL_0018:  ldarg.0 
-	IL_0019:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
-	IL_001e:  brtrue IL_002f
+	IL_0013:  ldloc.0 
+	IL_0014:  ldstr "auto"
+	IL_0019:  call bool string::op_Equality(string, string)
+	IL_001e:  brfalse IL_0035
 
 	IL_0023:  nop 
-	IL_0024:  ldstr "The current framework is not valid."
-	IL_0029:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_002e:  throw 
-	IL_002f:  ret 
-    } // end of method FrameworkInfo::AssertNotInvalid
+	IL_0024:  ldarg.0 
+	IL_0025:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_002a:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
+	IL_002f:  stloc.1 
+	IL_0030:  br IL_00a8
 
-    // method line 2093
+	IL_0035:  ldarg.0 
+	IL_0036:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_003b:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
+	IL_0040:  ldloc.0 
+	IL_0041:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionary::get_Item(string)
+	IL_0046:  stloc.2 
+	IL_0047:  ldloc.2 
+	IL_0048:  brtrue IL_00a1
+
+	IL_004d:  nop 
+	IL_004e:  ldarg.0 
+	IL_004f:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_0054:  ldc.i4 4000
+	IL_0059:  ldstr "NA1178"
+	IL_005e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0063:  ldc.i4.2 
+	IL_0064:  newarr [mscorlib]System.Object
+	IL_0069:  dup 
+	IL_006a:  ldc.i4.0 
+	IL_006b:  ldloc.0 
+	IL_006c:  stelem.ref 
+	IL_006d:  dup 
+	IL_006e:  ldc.i4.1 
+	IL_006f:  ldarg.0 
+	IL_0070:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_0075:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
+	IL_007a:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	IL_007f:  stelem.ref 
+	IL_0080:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0085:  ldarg.0 
+	IL_0086:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
+	IL_008b:  ldc.i4 4000
+	IL_0090:  ldstr ""
+	IL_0095:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string)
+	IL_009a:  ldnull 
+	IL_009b:  stloc.1 
+	IL_009c:  br IL_00a8
+
+	IL_00a1:  ldloc.2 
+	IL_00a2:  stloc.1 
+	IL_00a3:  br IL_00a8
+
+	IL_00a8:  ldloc.1 
+	IL_00a9:  ret 
+    } // end of method ProjectSettingsLoader::ConfigureTargetFramework
+
+    // method line 1699
     .method private static hidebysig 
            default string GetXmlAttributeValue (class [System.Xml]System.Xml.XmlNode xmlNode, string attributeName)  cil managed 
     {
-        // Method begins at RVA 0x24f58
+        // Method begins at RVA 0x22094
 	// Code size 58 (0x3a)
 	.maxstack 2
 	.locals init (
@@ -79575,322 +66111,4313 @@
 
 	IL_0038:  ldloc.2 
 	IL_0039:  ret 
-    } // end of method FrameworkInfo::GetXmlAttributeValue
+    } // end of method ProjectSettingsLoader::GetXmlAttributeValue
 
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.Core.FrameworkInfo::get_Name () 
-	}
-	.property instance string Family ()
-	{
-		.get instance default string NAnt.Core.FrameworkInfo::get_Family () 
-	}
-	.property instance string Description ()
-	{
-		.get instance default string NAnt.Core.FrameworkInfo::get_Description () 
-	}
-	.property instance valuetype NAnt.Core.VendorType Vendor ()
-	{
-		.get instance default valuetype NAnt.Core.VendorType NAnt.Core.FrameworkInfo::get_Vendor () 
-	}
-	.property instance class [mscorlib]System.Version Version ()
-	{
-		.get instance default class [mscorlib]System.Version NAnt.Core.FrameworkInfo::get_Version () 
-	}
-	.property instance class [mscorlib]System.Version ClrVersion ()
-	{
-		.get instance default class [mscorlib]System.Version NAnt.Core.FrameworkInfo::get_ClrVersion () 
-	}
-	.property instance valuetype NAnt.Core.ClrType ClrType ()
-	{
-		.get instance default valuetype NAnt.Core.ClrType NAnt.Core.FrameworkInfo::get_ClrType () 
-	}
-	.property instance class [mscorlib]System.Version VisualStudioVersion ()
-	{
-		.get instance default class [mscorlib]System.Version NAnt.Core.FrameworkInfo::get_VisualStudioVersion () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo FrameworkDirectory ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::get_FrameworkDirectory () 
-	}
-	.property instance class NAnt.Core.Configuration.Runtime Runtime ()
-	{
-		.get instance default class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::get_Runtime () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo FrameworkAssemblyDirectory ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo SdkDirectory ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::get_SdkDirectory () 
-	}
 	.property instance class NAnt.Core.Project Project ()
 	{
-		.get instance default class NAnt.Core.Project NAnt.Core.FrameworkInfo::get_Project () 
-	}
-	.property instance class NAnt.Core.Types.FileSet TaskAssemblies ()
-	{
-		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::get_TaskAssemblies () 
-	}
-	.property instance bool IsValid ()
-	{
-		.get instance default bool NAnt.Core.FrameworkInfo::get_IsValid () 
-	}
-	.property instance class NAnt.Core.Types.FileSet[] ReferenceAssemblies ()
-	{
-		.get instance default class NAnt.Core.Types.FileSet[] NAnt.Core.FrameworkInfo::get_ReferenceAssemblies () 
-	}
-	.property instance string[] ToolPaths ()
-	{
-		.get instance default string[] NAnt.Core.FrameworkInfo::get_ToolPaths () 
-	}
-	.property instance string RuntimeEngine ()
-	{
-		.get instance default string NAnt.Core.FrameworkInfo::get_RuntimeEngine () 
+		.get instance default class NAnt.Core.Project NAnt.Core.ProjectSettingsLoader::get_Project () 
 	}
 	.property instance class [System.Xml]System.Xml.XmlNamespaceManager NamespaceManager ()
 	{
-		.get instance default class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.FrameworkInfo::get_NamespaceManager () 
-	}
-	.property class [mscorlib]System.Collections.IComparer NameComparer ()
-	{
-		.get default class [mscorlib]System.Collections.IComparer NAnt.Core.FrameworkInfo::get_NameComparer () 
+		.get instance default class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.ProjectSettingsLoader::get_NamespaceManager () 
 	}
-  .class nested private auto ansi sealed InitStatus
+  } // end of class NAnt.Core.ProjectSettingsLoader
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi sealed Level
   	extends [mscorlib]System.Enum
   {
+    .custom instance void class [System]System.ComponentModel.TypeConverterAttribute::'.ctor'(class [mscorlib]System.Type) =  (
+		01 00 18 4E 41 6E 74 2E 43 6F 72 65 2E 4C 65 76   // ...NAnt.Core.Lev
+		65 6C 43 6F 6E 76 65 72 74 65 72 00 00          ) // elConverter..
+
     .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.FrameworkInfo/InitStatus Uninitialized = int32(0x00000000)
-    .field public static literal  valuetype NAnt.Core.FrameworkInfo/InitStatus Initialized = int32(0x00000001)
-    .field public static literal  valuetype NAnt.Core.FrameworkInfo/InitStatus Invalid = int32(0x00000002)
-    .field public static literal  valuetype NAnt.Core.FrameworkInfo/InitStatus Valid = int32(0x00000003)
+    .field public static literal  valuetype NAnt.Core.Level Debug = int32(0x000003e8)
+    .field public static literal  valuetype NAnt.Core.Level Verbose = int32(0x000007d0)
+    .field public static literal  valuetype NAnt.Core.Level Info = int32(0x00000bb8)
+    .field public static literal  valuetype NAnt.Core.Level Warning = int32(0x00000fa0)
+    .field public static literal  valuetype NAnt.Core.Level Error = int32(0x00001388)
+    .field public static literal  valuetype NAnt.Core.Level None = int32(0x0000270f)
 
-  } // end of class InitStatus
+  } // end of class NAnt.Core.Level
+}
 
-  .class nested private auto ansi beforefieldinit FrameworkNameComparer
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IComparer  {
+.namespace NAnt.Core
+{
+  .class private auto ansi beforefieldinit LevelConverter
+  	extends [System]System.ComponentModel.EnumConverter
+  {
 
-    // method line 2094
+    // method line 1700
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x24f9e
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x220da
+	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method FrameworkNameComparer::.ctor
+	IL_0001:  ldtoken NAnt.Core.Level
+	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000b:  call instance void class [System]System.ComponentModel.EnumConverter::'.ctor'(class [mscorlib]System.Type)
+	IL_0010:  nop 
+	IL_0011:  ret 
+    } // end of method LevelConverter::.ctor
 
-    // method line 2095
-    .method public final virtual hidebysig newslot 
-           instance default int32 Compare (object x, object y)  cil managed 
+    // method line 1701
+    .method public virtual hidebysig 
+           instance default object ConvertFrom (class [System]System.ComponentModel.ITypeDescriptorContext context, class [mscorlib]System.Globalization.CultureInfo culture, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x24fa8
-	// Code size 46 (0x2e)
+        // Method begins at RVA 0x220f0
+	// Code size 50 (0x32)
 	.maxstack 4
 	.locals init (
-		class NAnt.Core.FrameworkInfo	V_0,
-		class NAnt.Core.FrameworkInfo	V_1,
-		int32	V_2)
+		string	V_0,
+		object	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  isinst NAnt.Core.FrameworkInfo
+	IL_0001:  ldarg.3 
+	IL_0002:  isinst [mscorlib]System.String
 	IL_0007:  stloc.0 
-	IL_0008:  ldarg.2 
-	IL_0009:  isinst NAnt.Core.FrameworkInfo
-	IL_000e:  stloc.1 
-	IL_000f:  ldloc.0 
-	IL_0010:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	IL_0015:  ldloc.1 
-	IL_0016:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	IL_001b:  ldc.i4.0 
-	IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0021:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_0026:  stloc.2 
-	IL_0027:  br IL_002c
-
-	IL_002c:  ldloc.2 
-	IL_002d:  ret 
-    } // end of method FrameworkNameComparer::Compare
+	IL_0008:  ldloc.0 
+	IL_0009:  brfalse IL_0021
 
-  } // end of class FrameworkNameComparer
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance class [mscorlib]System.Type class [System]System.ComponentModel.EnumConverter::get_EnumType()
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	IL_001b:  stloc.1 
+	IL_001c:  br IL_0030
 
-  } // end of class NAnt.Core.FrameworkInfo
-}
+	IL_0021:  ldarg.0 
+	IL_0022:  ldarg.1 
+	IL_0023:  ldarg.2 
+	IL_0024:  ldarg.3 
+	IL_0025:  call instance object class [System]System.ComponentModel.EnumConverter::ConvertFrom(class [System]System.ComponentModel.ITypeDescriptorContext, class [mscorlib]System.Globalization.CultureInfo, object)
+	IL_002a:  stloc.1 
+	IL_002b:  br IL_0030
 
-.namespace NAnt.Core
-{
-  .class public auto ansi sealed ClrType
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.ClrType Desktop = int32(0x00000001)
-    .field public static literal  valuetype NAnt.Core.ClrType Compact = int32(0x00000002)
-    .field public static literal  valuetype NAnt.Core.ClrType Browser = int32(0x00000003)
+	IL_0030:  ldloc.1 
+	IL_0031:  ret 
+    } // end of method LevelConverter::ConvertFrom
 
-  } // end of class NAnt.Core.ClrType
+  } // end of class NAnt.Core.LevelConverter
 }
 
 .namespace NAnt.Core
 {
-  .class public auto ansi sealed VendorType
-  	extends [mscorlib]System.Enum
+  .class public auto ansi beforefieldinit BuildEventArgs
+  	extends [mscorlib]System.EventArgs
   {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.VendorType Microsoft = int32(0x00000001)
-    .field public static literal  valuetype NAnt.Core.VendorType Mono = int32(0x00000002)
+    .field  private initonly  class NAnt.Core.Project _project
+    .field  private initonly  class NAnt.Core.Target _target
+    .field  private initonly  class NAnt.Core.Task _task
+    .field  private  string _message
+    .field  private  valuetype NAnt.Core.Level _messageLevel
+    .field  private  class [mscorlib]System.Exception _exception
 
-  } // end of class NAnt.Core.VendorType
-}
+    // method line 1702
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2212e
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4 2000
+	IL_0006:  stfld valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class [mscorlib]System.EventArgs::'.ctor'()
+	IL_0011:  nop 
+	IL_0012:  ret 
+    } // end of method BuildEventArgs::.ctor
 
-.namespace NAnt.Core
-{
-  .class public auto ansi abstract serializable beforefieldinit Task
-  	extends NAnt.Core.Element
-  {
-    .field  private static initonly  class [log4net]log4net.ILog logger
-    .field  private  bool _failOnError
-    .field  private  bool _verbose
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
-    .field  private  valuetype NAnt.Core.Level _threshold
+    // method line 1703
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
+    {
+        // Method begins at RVA 0x22142
+	// Code size 26 (0x1a)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4 2000
+	IL_0006:  stfld valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class [mscorlib]System.EventArgs::'.ctor'()
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  ldarg.1 
+	IL_0014:  stfld class NAnt.Core.Project NAnt.Core.BuildEventArgs::_project
+	IL_0019:  ret 
+    } // end of method BuildEventArgs::.ctor
 
-    // method line 2096
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1704
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Target target)  cil managed 
     {
-        // Method begins at RVA 0xbbf4
-	// Code size 32 (0x20)
+        // Method begins at RVA 0x2215d
+	// Code size 38 (0x26)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.Task::_failOnError
-	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4.1 
-	IL_0009:  stfld bool NAnt.Core.Task::_ifDefined
-	IL_000e:  ldarg.0 
-	IL_000f:  ldc.i4 1000
-	IL_0014:  stfld valuetype NAnt.Core.Level NAnt.Core.Task::_threshold
-	IL_0019:  ldarg.0 
-	IL_001a:  call instance void class NAnt.Core.Element::'.ctor'()
-	IL_001f:  ret 
-    } // end of method Task::.ctor
+	IL_0001:  ldc.i4 2000
+	IL_0006:  stfld valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class [mscorlib]System.EventArgs::'.ctor'()
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  ldarg.1 
+	IL_0014:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0019:  stfld class NAnt.Core.Project NAnt.Core.BuildEventArgs::_project
+	IL_001e:  ldarg.0 
+	IL_001f:  ldarg.1 
+	IL_0020:  stfld class NAnt.Core.Target NAnt.Core.BuildEventArgs::_target
+	IL_0025:  ret 
+    } // end of method BuildEventArgs::.ctor
 
-    // method line 2097
+    // method line 1705
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Task task)  cil managed 
+    {
+        // Method begins at RVA 0x22184
+	// Code size 55 (0x37)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4 2000
+	IL_0006:  stfld valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class [mscorlib]System.EventArgs::'.ctor'()
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  ldarg.1 
+	IL_0014:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0019:  stfld class NAnt.Core.Project NAnt.Core.BuildEventArgs::_project
+	IL_001e:  ldarg.0 
+	IL_001f:  ldarg.1 
+	IL_0020:  callvirt instance object class NAnt.Core.Element::get_Parent()
+	IL_0025:  isinst NAnt.Core.Target
+	IL_002a:  stfld class NAnt.Core.Target NAnt.Core.BuildEventArgs::_target
+	IL_002f:  ldarg.0 
+	IL_0030:  ldarg.1 
+	IL_0031:  stfld class NAnt.Core.Task NAnt.Core.BuildEventArgs::_task
+	IL_0036:  ret 
+    } // end of method BuildEventArgs::.ctor
+
+    // method line 1706
     .method public hidebysig specialname 
-           instance default bool get_FailOnError ()  cil managed 
+           instance default string get_Message ()  cil managed 
     {
-        // Method begins at RVA 0xbc18
+        // Method begins at RVA 0x221bc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Task::_failOnError
+	IL_0002:  ldfld string NAnt.Core.BuildEventArgs::_message
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Task::get_FailOnError
+    } // end of method BuildEventArgs::get_Message
 
-    // method line 2098
+    // method line 1707
     .method public hidebysig specialname 
-           instance default void set_FailOnError (bool 'value')  cil managed 
+           instance default void set_Message (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xbc33
+        // Method begins at RVA 0x221d7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Task::_failOnError
+	IL_0003:  stfld string NAnt.Core.BuildEventArgs::_message
 	IL_0008:  ret 
-    } // end of method Task::set_FailOnError
+    } // end of method BuildEventArgs::set_Message
 
-    // method line 2099
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_Verbose ()  cil managed 
+    // method line 1708
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.Level get_MessageLevel ()  cil managed 
     {
-        // Method begins at RVA 0xbc40
-	// Code size 34 (0x22)
+        // Method begins at RVA 0x221e4
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype NAnt.Core.Level	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Task::_verbose
-	IL_0007:  brtrue IL_0019
-
-	IL_000c:  ldarg.0 
-	IL_000d:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0012:  callvirt instance bool class NAnt.Core.Project::get_Verbose()
-	IL_0017:  br.s IL_001a
-
-	IL_0019:  ldc.i4.1 
-	IL_001a:  stloc.0 
-	IL_001b:  br IL_0020
+	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0020:  ldloc.0 
-	IL_0021:  ret 
-    } // end of method Task::get_Verbose
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildEventArgs::get_MessageLevel
 
-    // method line 2100
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_Verbose (bool 'value')  cil managed 
+    // method line 1709
+    .method public hidebysig specialname 
+           instance default void set_MessageLevel (valuetype NAnt.Core.Level 'value')  cil managed 
     {
-        // Method begins at RVA 0xbc6e
+        // Method begins at RVA 0x221ff
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Task::_verbose
+	IL_0003:  stfld valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
 	IL_0008:  ret 
-    } // end of method Task::set_Verbose
+    } // end of method BuildEventArgs::set_MessageLevel
 
-    // method line 2101
+    // method line 1710
     .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+           instance default class [mscorlib]System.Exception get_Exception ()  cil managed 
     {
-        // Method begins at RVA 0xbc78
+        // Method begins at RVA 0x2220c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.Exception	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.Task::_ifDefined
+	IL_0002:  ldfld class [mscorlib]System.Exception NAnt.Core.BuildEventArgs::_exception
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Task::get_IfDefined
+    } // end of method BuildEventArgs::get_Exception
 
-    // method line 2102
+    // method line 1711
     .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+           instance default void set_Exception (class [mscorlib]System.Exception 'value')  cil managed 
     {
-        // Method begins at RVA 0xbc93
+        // Method begins at RVA 0x22227
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.Task::_ifDefined
+	IL_0003:  stfld class [mscorlib]System.Exception NAnt.Core.BuildEventArgs::_exception
 	IL_0008:  ret 
-    } // end of method Task::set_IfDefined
+    } // end of method BuildEventArgs::set_Exception
 
-    // method line 2103
+    // method line 1712
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x22234
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Project	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.BuildEventArgs::_project
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildEventArgs::get_Project
+
+    // method line 1713
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Target get_Target ()  cil managed 
+    {
+        // Method begins at RVA 0x22250
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Target	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Target NAnt.Core.BuildEventArgs::_target
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildEventArgs::get_Target
+
+    // method line 1714
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Task get_Task ()  cil managed 
+    {
+        // Method begins at RVA 0x2226c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Task	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Task NAnt.Core.BuildEventArgs::_task
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildEventArgs::get_Task
+
+	.property instance string Message ()
+	{
+		.get instance default string NAnt.Core.BuildEventArgs::get_Message () 
+		.set instance default void NAnt.Core.BuildEventArgs::set_Message (string 'value') 
+	}
+	.property instance valuetype NAnt.Core.Level MessageLevel ()
+	{
+		.get instance default valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::get_MessageLevel () 
+		.set instance default void NAnt.Core.BuildEventArgs::set_MessageLevel (valuetype NAnt.Core.Level 'value') 
+	}
+	.property instance class [mscorlib]System.Exception Exception ()
+	{
+		.get instance default class [mscorlib]System.Exception NAnt.Core.BuildEventArgs::get_Exception () 
+		.set instance default void NAnt.Core.BuildEventArgs::set_Exception (class [mscorlib]System.Exception 'value') 
+	}
+	.property instance class NAnt.Core.Project Project ()
+	{
+		.get instance default class NAnt.Core.Project NAnt.Core.BuildEventArgs::get_Project () 
+	}
+	.property instance class NAnt.Core.Target Target ()
+	{
+		.get instance default class NAnt.Core.Target NAnt.Core.BuildEventArgs::get_Target () 
+	}
+	.property instance class NAnt.Core.Task Task ()
+	{
+		.get instance default class NAnt.Core.Task NAnt.Core.BuildEventArgs::get_Task () 
+	}
+  } // end of class NAnt.Core.BuildEventArgs
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi sealed BuildEventHandler
+  	extends [mscorlib]System.MulticastDelegate
+  {
+
+    // method line 1715
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method BuildEventHandler::.ctor
+
+    // method line 1716
+    .method public virtual hidebysig newslot 
+           instance default void Invoke (object sender, class NAnt.Core.BuildEventArgs e)  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method BuildEventHandler::Invoke
+
+    // method line 1717
+    .method public virtual hidebysig newslot 
+           instance default class [mscorlib]System.IAsyncResult BeginInvoke (object sender, class NAnt.Core.BuildEventArgs e, class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method BuildEventHandler::BeginInvoke
+
+    // method line 1718
+    .method public virtual hidebysig newslot 
+           instance default void EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method BuildEventHandler::EndInvoke
+
+  } // end of class NAnt.Core.BuildEventHandler
+}
+
+.namespace NAnt.Core
+{
+  .class interface public auto ansi abstract IBuildListener
+  {
+
+    // method line 1719
+    .method public virtual hidebysig newslot abstract 
+           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IBuildListener::BuildStarted
+
+    // method line 1720
+    .method public virtual hidebysig newslot abstract 
+           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IBuildListener::BuildFinished
+
+    // method line 1721
+    .method public virtual hidebysig newslot abstract 
+           instance default void TargetStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IBuildListener::TargetStarted
+
+    // method line 1722
+    .method public virtual hidebysig newslot abstract 
+           instance default void TargetFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IBuildListener::TargetFinished
+
+    // method line 1723
+    .method public virtual hidebysig newslot abstract 
+           instance default void TaskStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IBuildListener::TaskStarted
+
+    // method line 1724
+    .method public virtual hidebysig newslot abstract 
+           instance default void TaskFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IBuildListener::TaskFinished
+
+    // method line 1725
+    .method public virtual hidebysig newslot abstract 
+           instance default void MessageLogged (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IBuildListener::MessageLogged
+
+  } // end of class NAnt.Core.IBuildListener
+}
+
+.namespace NAnt.Core
+{
+  .class interface public auto ansi abstract IBuildLogger
+  	implements NAnt.Core.IBuildListener  {
+
+    // method line 1726
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IBuildLogger::get_Threshold
+
+    // method line 1727
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IBuildLogger::set_Threshold
+
+    // method line 1728
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default bool get_EmacsMode ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IBuildLogger::get_EmacsMode
+
+    // method line 1729
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default void set_EmacsMode (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IBuildLogger::set_EmacsMode
+
+    // method line 1730
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default class [mscorlib]System.IO.TextWriter get_OutputWriter ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IBuildLogger::get_OutputWriter
+
+    // method line 1731
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default void set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IBuildLogger::set_OutputWriter
+
+    // method line 1732
+    .method public virtual hidebysig newslot abstract 
+           instance default void Flush ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IBuildLogger::Flush
+
+	.property instance valuetype NAnt.Core.Level Threshold ()
+	{
+		.get instance default valuetype NAnt.Core.Level NAnt.Core.IBuildLogger::get_Threshold () 
+		.set instance default void NAnt.Core.IBuildLogger::set_Threshold (valuetype NAnt.Core.Level 'value') 
+	}
+	.property instance bool EmacsMode ()
+	{
+		.get instance default bool NAnt.Core.IBuildLogger::get_EmacsMode () 
+		.set instance default void NAnt.Core.IBuildLogger::set_EmacsMode (bool 'value') 
+	}
+	.property instance class [mscorlib]System.IO.TextWriter OutputWriter ()
+	{
+		.get instance default class [mscorlib]System.IO.TextWriter NAnt.Core.IBuildLogger::get_OutputWriter () 
+		.set instance default void NAnt.Core.IBuildLogger::set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value') 
+	}
+  } // end of class NAnt.Core.IBuildLogger
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi serializable beforefieldinit DefaultLogger
+  	extends [mscorlib]System.Object
+  	implements NAnt.Core.IBuildLogger, NAnt.Core.IBuildListener  {
+    .field  private  valuetype NAnt.Core.Level _threshold
+    .field  private  class [mscorlib]System.IO.TextWriter _outputWriter
+    .field  private  bool _emacsMode
+    .field  private initonly  class [mscorlib]System.Collections.Stack _buildReports
+
+    // method line 1733
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x22287
+	// Code size 30 (0x1e)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4 3000
+	IL_0006:  stfld valuetype NAnt.Core.Level NAnt.Core.DefaultLogger::_threshold
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
+	IL_0011:  stfld class [mscorlib]System.Collections.Stack NAnt.Core.DefaultLogger::_buildReports
+	IL_0016:  ldarg.0 
+	IL_0017:  call instance void object::'.ctor'()
+	IL_001c:  nop 
+	IL_001d:  ret 
+    } // end of method DefaultLogger::.ctor
+
+    // method line 1734
+    .method public virtual hidebysig newslot specialname 
+           instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
+    {
+        // Method begins at RVA 0x222a8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.Core.Level	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.DefaultLogger::_threshold
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DefaultLogger::get_Threshold
+
+    // method line 1735
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
+    {
+        // Method begins at RVA 0x222c3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld valuetype NAnt.Core.Level NAnt.Core.DefaultLogger::_threshold
+	IL_0008:  ret 
+    } // end of method DefaultLogger::set_Threshold
+
+    // method line 1736
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_EmacsMode ()  cil managed 
+    {
+        // Method begins at RVA 0x222d0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.DefaultLogger::_emacsMode
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DefaultLogger::get_EmacsMode
+
+    // method line 1737
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_EmacsMode (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x222eb
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.DefaultLogger::_emacsMode
+	IL_0008:  ret 
+    } // end of method DefaultLogger::set_EmacsMode
+
+    // method line 1738
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.TextWriter get_OutputWriter ()  cil managed 
+    {
+        // Method begins at RVA 0x222f8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.TextWriter	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.TextWriter NAnt.Core.DefaultLogger::_outputWriter
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DefaultLogger::get_OutputWriter
+
+    // method line 1739
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
+    {
+        // Method begins at RVA 0x22313
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.TextWriter NAnt.Core.DefaultLogger::_outputWriter
+	IL_0008:  ret 
+    } // end of method DefaultLogger::set_OutputWriter
+
+    // method line 1740
+    .method public virtual hidebysig newslot 
+           instance default void Flush ()  cil managed 
+    {
+        // Method begins at RVA 0x2231d
+	// Code size 26 (0x1a)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.DefaultLogger::get_OutputWriter()
+	IL_0007:  brfalse IL_0019
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.DefaultLogger::get_OutputWriter()
+	IL_0013:  callvirt instance void class [mscorlib]System.IO.TextWriter::Flush()
+	IL_0018:  nop 
+	IL_0019:  ret 
+    } // end of method DefaultLogger::Flush
+
+    // method line 1741
+    .method public virtual hidebysig newslot 
+           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x22338
+	// Code size 23 (0x17)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.DefaultLogger::_buildReports
+	IL_0007:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
+	IL_000c:  newobj instance void class NAnt.Core.BuildReport::'.ctor'(valuetype [mscorlib]System.DateTime)
+	IL_0011:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
+	IL_0016:  ret 
+    } // end of method DefaultLogger::BuildStarted
+
+    // method line 1742
+    .method public virtual hidebysig newslot 
+           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x22350
+	// Code size 708 (0x2c4)
+	.maxstack 6
+	.locals init (
+		class [mscorlib]System.Exception	V_0,
+		int32	V_1,
+		class NAnt.Core.BuildReport	V_2,
+		class [mscorlib]System.Exception	V_3,
+		int32	V_4,
+		int32	V_5,
+		valuetype [mscorlib]System.TimeSpan	V_6)
+	IL_0000:  nop 
+	IL_0001:  ldarg.2 
+	IL_0002:  callvirt instance class [mscorlib]System.Exception class NAnt.Core.BuildEventArgs::get_Exception()
+	IL_0007:  stloc.0 
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stloc.1 
+	IL_000a:  ldarg.2 
+	IL_000b:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
+	IL_0010:  brfalse IL_002f
+
+	IL_0015:  nop 
+	IL_0016:  ldarg.2 
+	IL_0017:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
+	IL_001c:  callvirt instance int32 class NAnt.Core.Project::get_IndentationLevel()
+	IL_0021:  ldarg.2 
+	IL_0022:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
+	IL_0027:  callvirt instance int32 class NAnt.Core.Project::get_IndentationSize()
+	IL_002c:  mul 
+	IL_002d:  stloc.1 
+	IL_002e:  nop 
+	IL_002f:  ldarg.0 
+	IL_0030:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.DefaultLogger::_buildReports
+	IL_0035:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
+	IL_003a:  castclass NAnt.Core.BuildReport
+	IL_003f:  stloc.2 
+	IL_0040:  ldloc.0 
+	IL_0041:  brtrue IL_00d5
+
+	IL_0046:  nop 
+	IL_0047:  ldarg.0 
+	IL_0048:  ldc.i4 3000
+	IL_004d:  ldsfld string [mscorlib]System.String::Empty
+	IL_0052:  ldloc.1 
+	IL_0053:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_0058:  ldloc.2 
+	IL_0059:  ldfld int32 NAnt.Core.BuildReport::Errors
+	IL_005e:  brtrue IL_0086
+
+	IL_0063:  ldloc.2 
+	IL_0064:  ldfld int32 NAnt.Core.BuildReport::Warnings
+	IL_0069:  brtrue IL_0086
+
+	IL_006e:  nop 
+	IL_006f:  ldarg.0 
+	IL_0070:  ldc.i4 3000
+	IL_0075:  ldstr "BUILD SUCCEEDED"
+	IL_007a:  ldloc.1 
+	IL_007b:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_0080:  nop 
+	IL_0081:  br IL_00be
+
+	IL_0086:  nop 
+	IL_0087:  ldarg.0 
+	IL_0088:  ldc.i4 3000
+	IL_008d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0092:  ldstr "String_BuildSucceeded"
+	IL_0097:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_009c:  ldloc.2 
+	IL_009d:  ldfld int32 NAnt.Core.BuildReport::Errors
+	IL_00a2:  box [mscorlib]System.Int32
+	IL_00a7:  ldloc.2 
+	IL_00a8:  ldfld int32 NAnt.Core.BuildReport::Warnings
+	IL_00ad:  box [mscorlib]System.Int32
+	IL_00b2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_00b7:  ldloc.1 
+	IL_00b8:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_00bd:  nop 
+	IL_00be:  ldarg.0 
+	IL_00bf:  ldc.i4 3000
+	IL_00c4:  ldsfld string [mscorlib]System.String::Empty
+	IL_00c9:  ldloc.1 
+	IL_00ca:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_00cf:  nop 
+	IL_00d0:  br IL_026f
+
+	IL_00d5:  nop 
+	IL_00d6:  ldarg.0 
+	IL_00d7:  ldc.i4 5000
+	IL_00dc:  ldsfld string [mscorlib]System.String::Empty
+	IL_00e1:  ldloc.1 
+	IL_00e2:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_00e7:  ldloc.2 
+	IL_00e8:  ldfld int32 NAnt.Core.BuildReport::Errors
+	IL_00ed:  brtrue IL_0115
+
+	IL_00f2:  ldloc.2 
+	IL_00f3:  ldfld int32 NAnt.Core.BuildReport::Warnings
+	IL_00f8:  brtrue IL_0115
+
+	IL_00fd:  nop 
+	IL_00fe:  ldarg.0 
+	IL_00ff:  ldc.i4 5000
+	IL_0104:  ldstr "BUILD FAILED"
+	IL_0109:  ldloc.1 
+	IL_010a:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_010f:  nop 
+	IL_0110:  br IL_014d
+
+	IL_0115:  nop 
+	IL_0116:  ldarg.0 
+	IL_0117:  ldc.i4 3000
+	IL_011c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0121:  ldstr "String_BuildFailed"
+	IL_0126:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_012b:  ldloc.2 
+	IL_012c:  ldfld int32 NAnt.Core.BuildReport::Errors
+	IL_0131:  box [mscorlib]System.Int32
+	IL_0136:  ldloc.2 
+	IL_0137:  ldfld int32 NAnt.Core.BuildReport::Warnings
+	IL_013c:  box [mscorlib]System.Int32
+	IL_0141:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0146:  ldloc.1 
+	IL_0147:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_014c:  nop 
+	IL_014d:  ldarg.0 
+	IL_014e:  ldc.i4 5000
+	IL_0153:  ldsfld string [mscorlib]System.String::Empty
+	IL_0158:  ldloc.1 
+	IL_0159:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_015e:  ldloc.0 
+	IL_015f:  isinst NAnt.Core.BuildException
+	IL_0164:  brfalse IL_0205
+
+	IL_0169:  nop 
+	IL_016a:  ldarg.0 
+	IL_016b:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.DefaultLogger::get_Threshold()
+	IL_0170:  ldc.i4 2000
+	IL_0175:  bgt IL_0193
+
+	IL_017a:  nop 
+	IL_017b:  ldarg.0 
+	IL_017c:  ldc.i4 5000
+	IL_0181:  ldloc.0 
+	IL_0182:  callvirt instance string object::ToString()
+	IL_0187:  ldloc.1 
+	IL_0188:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_018d:  nop 
+	IL_018e:  br IL_01ff
+
+	IL_0193:  nop 
+	IL_0194:  ldloc.0 
+	IL_0195:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	IL_019a:  brfalse IL_01b3
+
+	IL_019f:  nop 
+	IL_01a0:  ldarg.0 
+	IL_01a1:  ldc.i4 5000
+	IL_01a6:  ldloc.0 
+	IL_01a7:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	IL_01ac:  ldloc.1 
+	IL_01ad:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_01b2:  nop 
+	IL_01b3:  ldloc.0 
+	IL_01b4:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
+	IL_01b9:  stloc.3 
+	IL_01ba:  ldloc.1 
+	IL_01bb:  stloc.s 4
+	IL_01bd:  ldc.i4.4 
+	IL_01be:  stloc.s 5
+	IL_01c0:  br IL_01e8
+
+	IL_01c5:  nop 
+	IL_01c6:  ldloc.s 4
+	IL_01c8:  ldloc.s 5
+	IL_01ca:  add 
+	IL_01cb:  stloc.s 4
+	IL_01cd:  ldarg.0 
+	IL_01ce:  ldc.i4 5000
+	IL_01d3:  ldloc.3 
+	IL_01d4:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	IL_01d9:  ldloc.s 4
+	IL_01db:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_01e0:  ldloc.3 
+	IL_01e1:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
+	IL_01e6:  stloc.3 
+	IL_01e7:  nop 
+	IL_01e8:  ldloc.3 
+	IL_01e9:  brfalse IL_01fe
+
+	IL_01ee:  ldloc.3 
+	IL_01ef:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	IL_01f4:  call bool string::IsNullOrEmpty(string)
+	IL_01f9:  brfalse IL_01c5
+
+	IL_01fe:  nop 
+	IL_01ff:  nop 
+	IL_0200:  br IL_025d
+
+	IL_0205:  nop 
+	IL_0206:  ldarg.0 
+	IL_0207:  ldc.i4 5000
+	IL_020c:  ldstr "INTERNAL ERROR"
+	IL_0211:  ldloc.1 
+	IL_0212:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_0217:  ldarg.0 
+	IL_0218:  ldc.i4 5000
+	IL_021d:  ldsfld string [mscorlib]System.String::Empty
+	IL_0222:  ldloc.1 
+	IL_0223:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_0228:  ldarg.0 
+	IL_0229:  ldc.i4 5000
+	IL_022e:  ldloc.0 
+	IL_022f:  callvirt instance string object::ToString()
+	IL_0234:  ldloc.1 
+	IL_0235:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_023a:  ldarg.0 
+	IL_023b:  ldc.i4 5000
+	IL_0240:  ldsfld string [mscorlib]System.String::Empty
+	IL_0245:  ldloc.1 
+	IL_0246:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_024b:  ldarg.0 
+	IL_024c:  ldc.i4 5000
+	IL_0251:  ldstr "Please send bug report to nant-developers@lists.sourceforge.net."
+	IL_0256:  ldloc.1 
+	IL_0257:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_025c:  nop 
+	IL_025d:  ldarg.0 
+	IL_025e:  ldc.i4 5000
+	IL_0263:  ldsfld string [mscorlib]System.String::Empty
+	IL_0268:  ldloc.1 
+	IL_0269:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_026e:  nop 
+	IL_026f:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
+	IL_0274:  ldloc.2 
+	IL_0275:  ldfld valuetype [mscorlib]System.DateTime NAnt.Core.BuildReport::StartTime
+	IL_027a:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.DateTime::op_Subtraction(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	IL_027f:  stloc.s 6
+	IL_0281:  ldarg.0 
+	IL_0282:  ldc.i4 3000
+	IL_0287:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_028c:  ldstr "String_TotalTime"
+	IL_0291:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0296:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_029b:  call string string::Concat(string, string)
+	IL_02a0:  ldloca.s 6
+	IL_02a2:  call instance float64 valuetype [mscorlib]System.TimeSpan::get_TotalSeconds()
+	IL_02a7:  ldc.i4.1 
+	IL_02a8:  call float64 class [mscorlib]System.Math::Round(float64, int32)
+	IL_02ad:  box [mscorlib]System.Double
+	IL_02b2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_02b7:  ldloc.1 
+	IL_02b8:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_02bd:  ldarg.0 
+	IL_02be:  callvirt instance void class NAnt.Core.DefaultLogger::Flush()
+	IL_02c3:  ret 
+    } // end of method DefaultLogger::BuildFinished
+
+    // method line 1743
+    .method public virtual hidebysig newslot 
+           instance default void TargetStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x22620
+	// Code size 126 (0x7e)
+	.maxstack 5
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.2 
+	IL_0004:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
+	IL_0009:  brfalse IL_0028
+
+	IL_000e:  nop 
+	IL_000f:  ldarg.2 
+	IL_0010:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
+	IL_0015:  callvirt instance int32 class NAnt.Core.Project::get_IndentationLevel()
+	IL_001a:  ldarg.2 
+	IL_001b:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
+	IL_0020:  callvirt instance int32 class NAnt.Core.Project::get_IndentationSize()
+	IL_0025:  mul 
+	IL_0026:  stloc.0 
+	IL_0027:  nop 
+	IL_0028:  ldarg.2 
+	IL_0029:  callvirt instance class NAnt.Core.Target class NAnt.Core.BuildEventArgs::get_Target()
+	IL_002e:  brfalse IL_007d
+
+	IL_0033:  nop 
+	IL_0034:  ldarg.0 
+	IL_0035:  ldc.i4 3000
+	IL_003a:  ldsfld string [mscorlib]System.String::Empty
+	IL_003f:  ldloc.0 
+	IL_0040:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_0045:  ldarg.0 
+	IL_0046:  ldc.i4 3000
+	IL_004b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0050:  ldstr "{0}:"
+	IL_0055:  ldarg.2 
+	IL_0056:  callvirt instance class NAnt.Core.Target class NAnt.Core.BuildEventArgs::get_Target()
+	IL_005b:  callvirt instance string class NAnt.Core.Target::get_Name()
+	IL_0060:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0065:  ldloc.0 
+	IL_0066:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_006b:  ldarg.0 
+	IL_006c:  ldc.i4 3000
+	IL_0071:  ldsfld string [mscorlib]System.String::Empty
+	IL_0076:  ldloc.0 
+	IL_0077:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
+	IL_007c:  nop 
+	IL_007d:  ret 
+    } // end of method DefaultLogger::TargetStarted
+
+    // method line 1744
+    .method public virtual hidebysig newslot 
+           instance default void TargetFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x226aa
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method DefaultLogger::TargetFinished
+
+    // method line 1745
+    .method public virtual hidebysig newslot 
+           instance default void TaskStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x226ad
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method DefaultLogger::TaskStarted
+
+    // method line 1746
+    .method public virtual hidebysig newslot 
+           instance default void TaskFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x226b0
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method DefaultLogger::TaskFinished
+
+    // method line 1747
+    .method public virtual hidebysig newslot 
+           instance default void MessageLogged (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x226b4
+	// Code size 131 (0x83)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildReport	V_0,
+		class NAnt.Core.BuildReport	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.DefaultLogger::_buildReports
+	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.Stack::get_Count()
+	IL_000c:  ldc.i4.0 
+	IL_000d:  ble IL_007b
+
+	IL_0012:  nop 
+	IL_0013:  ldarg.2 
+	IL_0014:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.BuildEventArgs::get_MessageLevel()
+	IL_0019:  ldc.i4 5000
+	IL_001e:  bne.un IL_0049
+
+	IL_0023:  nop 
+	IL_0024:  ldarg.0 
+	IL_0025:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.DefaultLogger::_buildReports
+	IL_002a:  callvirt instance object class [mscorlib]System.Collections.Stack::Peek()
+	IL_002f:  castclass NAnt.Core.BuildReport
+	IL_0034:  stloc.0 
+	IL_0035:  ldloc.0 
+	IL_0036:  dup 
+	IL_0037:  ldfld int32 NAnt.Core.BuildReport::Errors
+	IL_003c:  ldc.i4.1 
+	IL_003d:  add 
+	IL_003e:  stfld int32 NAnt.Core.BuildReport::Errors
+	IL_0043:  nop 
+	IL_0044:  br IL_007a
+
+	IL_0049:  ldarg.2 
+	IL_004a:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.BuildEventArgs::get_MessageLevel()
+	IL_004f:  ldc.i4 4000
+	IL_0054:  bne.un IL_007a
+
+	IL_0059:  nop 
+	IL_005a:  ldarg.0 
+	IL_005b:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.DefaultLogger::_buildReports
+	IL_0060:  callvirt instance object class [mscorlib]System.Collections.Stack::Peek()
+	IL_0065:  castclass NAnt.Core.BuildReport
+	IL_006a:  stloc.1 
+	IL_006b:  ldloc.1 
+	IL_006c:  dup 
+	IL_006d:  ldfld int32 NAnt.Core.BuildReport::Warnings
+	IL_0072:  ldc.i4.1 
+	IL_0073:  add 
+	IL_0074:  stfld int32 NAnt.Core.BuildReport::Warnings
+	IL_0079:  nop 
+	IL_007a:  nop 
+	IL_007b:  ldarg.0 
+	IL_007c:  ldarg.2 
+	IL_007d:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(class NAnt.Core.BuildEventArgs)
+	IL_0082:  ret 
+    } // end of method DefaultLogger::MessageLogged
+
+    // method line 1748
+    .method family virtual hidebysig newslot 
+           instance default void Log (string message)  cil managed 
+    {
+        // Method begins at RVA 0x22743
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method DefaultLogger::Log
+
+    // method line 1749
+    .method private hidebysig 
+           instance default void OutputMessage (valuetype NAnt.Core.Level messageLevel, string message, int32 indentationLength)  cil managed 
+    {
+        // Method begins at RVA 0x22746
+	// Code size 16 (0x10)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  call class NAnt.Core.BuildEventArgs class NAnt.Core.DefaultLogger::CreateBuildEvent(valuetype NAnt.Core.Level, string)
+	IL_0009:  ldarg.3 
+	IL_000a:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(class NAnt.Core.BuildEventArgs, int32)
+	IL_000f:  ret 
+    } // end of method DefaultLogger::OutputMessage
+
+    // method line 1750
+    .method private hidebysig 
+           instance default void OutputMessage (class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x22758
+	// Code size 49 (0x31)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
+	IL_0009:  brfalse IL_0028
+
+	IL_000e:  nop 
+	IL_000f:  ldarg.1 
+	IL_0010:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
+	IL_0015:  callvirt instance int32 class NAnt.Core.Project::get_IndentationLevel()
+	IL_001a:  ldarg.1 
+	IL_001b:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
+	IL_0020:  callvirt instance int32 class NAnt.Core.Project::get_IndentationSize()
+	IL_0025:  mul 
+	IL_0026:  stloc.0 
+	IL_0027:  nop 
+	IL_0028:  ldarg.0 
+	IL_0029:  ldarg.1 
+	IL_002a:  ldloc.0 
+	IL_002b:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(class NAnt.Core.BuildEventArgs, int32)
+	IL_0030:  ret 
+    } // end of method DefaultLogger::OutputMessage
+
+    // method line 1751
+    .method private hidebysig 
+           instance default void OutputMessage (class NAnt.Core.BuildEventArgs e, int32 indentationLength)  cil managed 
+    {
+        // Method begins at RVA 0x22798
+	// Code size 288 (0x120)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		string[]	V_1,
+		string	V_2,
+		string	V_3,
+		string[]	V_4,
+		int32	V_5,
+		class [mscorlib]System.Text.StringBuilder	V_6,
+		string	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.BuildEventArgs::get_MessageLevel()
+	IL_0007:  ldarg.0 
+	IL_0008:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.DefaultLogger::get_Threshold()
+	IL_000d:  blt IL_011f
+
+	IL_0012:  nop 
+	IL_0013:  ldarg.1 
+	IL_0014:  callvirt instance string class NAnt.Core.BuildEventArgs::get_Message()
+	IL_0019:  stloc.0 
+	IL_001a:  ldloc.0 
+	IL_001b:  ldstr "\t"
+	IL_0020:  ldstr " "
+	IL_0025:  callvirt instance string string::Replace(string, string)
+	IL_002a:  stloc.0 
+	IL_002b:  ldloc.0 
+	IL_002c:  ldstr "\r"
+	IL_0031:  ldstr ""
+	IL_0036:  callvirt instance string string::Replace(string, string)
+	IL_003b:  stloc.0 
+	IL_003c:  ldloc.0 
+	IL_003d:  ldc.i4.s 0x0a
+	IL_003f:  ldc.i4.0 
+	IL_0040:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	IL_0045:  stloc.1 
+	IL_0046:  ldsfld string [mscorlib]System.String::Empty
+	IL_004b:  stloc.2 
+	IL_004c:  ldarg.1 
+	IL_004d:  callvirt instance class NAnt.Core.Task class NAnt.Core.BuildEventArgs::get_Task()
+	IL_0052:  brfalse IL_0091
+
+	IL_0057:  ldarg.0 
+	IL_0058:  callvirt instance bool class NAnt.Core.DefaultLogger::get_EmacsMode()
+	IL_005d:  brtrue IL_0091
+
+	IL_0062:  nop 
+	IL_0063:  ldstr "["
+	IL_0068:  ldarg.1 
+	IL_0069:  callvirt instance class NAnt.Core.Task class NAnt.Core.BuildEventArgs::get_Task()
+	IL_006e:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_0073:  ldstr "] "
+	IL_0078:  call string string::Concat(string, string, string)
+	IL_007d:  stloc.2 
+	IL_007e:  ldloc.2 
+	IL_007f:  ldarg.1 
+	IL_0080:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
+	IL_0085:  callvirt instance int32 class NAnt.Core.Project::get_IndentationSize()
+	IL_008a:  callvirt instance string string::PadLeft(int32)
+	IL_008f:  stloc.2 
+	IL_0090:  nop 
+	IL_0091:  ldarg.2 
+	IL_0092:  ldc.i4.0 
+	IL_0093:  ble IL_00a9
+
+	IL_0098:  nop 
+	IL_0099:  ldc.i4.s 0x20
+	IL_009b:  ldarg.2 
+	IL_009c:  newobj instance void string::'.ctor'(char, int32)
+	IL_00a1:  ldloc.2 
+	IL_00a2:  call string string::Concat(string, string)
+	IL_00a7:  stloc.2 
+	IL_00a8:  nop 
+	IL_00a9:  nop 
+	IL_00aa:  ldloc.1 
+	IL_00ab:  stloc.s 4
+	IL_00ad:  ldc.i4.0 
+	IL_00ae:  stloc.s 5
+	IL_00b0:  br IL_0113
+
+	IL_00b5:  ldloc.s 4
+	IL_00b7:  ldloc.s 5
+	IL_00b9:  ldelem.ref 
+	IL_00ba:  stloc.3 
+	IL_00bb:  nop 
+	IL_00bc:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_00c1:  stloc.s 6
+	IL_00c3:  ldloc.s 6
+	IL_00c5:  ldloc.2 
+	IL_00c6:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00cb:  pop 
+	IL_00cc:  ldloc.s 6
+	IL_00ce:  ldloc.3 
+	IL_00cf:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00d4:  pop 
+	IL_00d5:  ldloc.s 6
+	IL_00d7:  callvirt instance string object::ToString()
+	IL_00dc:  stloc.s 7
+	IL_00de:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Out()
+	IL_00e3:  ldloc.s 7
+	IL_00e5:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	IL_00ea:  ldarg.0 
+	IL_00eb:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.DefaultLogger::get_OutputWriter()
+	IL_00f0:  brfalse IL_0104
+
+	IL_00f5:  nop 
+	IL_00f6:  ldarg.0 
+	IL_00f7:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.DefaultLogger::get_OutputWriter()
+	IL_00fc:  ldloc.s 7
+	IL_00fe:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	IL_0103:  nop 
+	IL_0104:  ldarg.0 
+	IL_0105:  ldloc.s 7
+	IL_0107:  callvirt instance void class NAnt.Core.DefaultLogger::Log(string)
+	IL_010c:  nop 
+	IL_010d:  ldloc.s 5
+	IL_010f:  ldc.i4.1 
+	IL_0110:  add 
+	IL_0111:  stloc.s 5
+	IL_0113:  ldloc.s 5
+	IL_0115:  ldloc.s 4
+	IL_0117:  ldlen 
+	IL_0118:  conv.i4 
+	IL_0119:  blt IL_00b5
+
+	IL_011e:  nop 
+	IL_011f:  ret 
+    } // end of method DefaultLogger::OutputMessage
+
+    // method line 1752
+    .method private static hidebysig 
+           default class NAnt.Core.BuildEventArgs CreateBuildEvent (valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
+    {
+        // Method begins at RVA 0x228c4
+	// Code size 30 (0x1e)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.BuildEventArgs	V_0,
+		class NAnt.Core.BuildEventArgs	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance void class NAnt.Core.BuildEventArgs::set_MessageLevel(valuetype NAnt.Core.Level)
+	IL_000e:  ldloc.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  callvirt instance void class NAnt.Core.BuildEventArgs::set_Message(string)
+	IL_0015:  ldloc.0 
+	IL_0016:  stloc.1 
+	IL_0017:  br IL_001c
+
+	IL_001c:  ldloc.1 
+	IL_001d:  ret 
+    } // end of method DefaultLogger::CreateBuildEvent
+
+	.property instance valuetype NAnt.Core.Level Threshold ()
+	{
+		.get instance default valuetype NAnt.Core.Level NAnt.Core.DefaultLogger::get_Threshold () 
+		.set instance default void NAnt.Core.DefaultLogger::set_Threshold (valuetype NAnt.Core.Level 'value') 
+	}
+	.property instance bool EmacsMode ()
+	{
+		.get instance default bool NAnt.Core.DefaultLogger::get_EmacsMode () 
+		.set instance default void NAnt.Core.DefaultLogger::set_EmacsMode (bool 'value') 
+	}
+	.property instance class [mscorlib]System.IO.TextWriter OutputWriter ()
+	{
+		.get instance default class [mscorlib]System.IO.TextWriter NAnt.Core.DefaultLogger::get_OutputWriter () 
+		.set instance default void NAnt.Core.DefaultLogger::set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value') 
+	}
+  } // end of class NAnt.Core.DefaultLogger
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi serializable beforefieldinit BuildReport
+  	extends [mscorlib]System.Object
+  {
+    .field  public  int32 Errors
+    .field  public  int32 Warnings
+    .field  public initonly  valuetype [mscorlib]System.DateTime StartTime
+
+    // method line 1753
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype [mscorlib]System.DateTime startTime)  cil managed 
+    {
+        // Method begins at RVA 0x228ee
+	// Code size 29 (0x1d)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld valuetype [mscorlib]System.DateTime NAnt.Core.BuildReport::StartTime
+	IL_000e:  ldarg.0 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  stfld int32 NAnt.Core.BuildReport::Errors
+	IL_0015:  ldarg.0 
+	IL_0016:  ldc.i4.0 
+	IL_0017:  stfld int32 NAnt.Core.BuildReport::Warnings
+	IL_001c:  ret 
+    } // end of method BuildReport::.ctor
+
+  } // end of class NAnt.Core.BuildReport
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi serializable beforefieldinit MailLogger
+  	extends NAnt.Core.DefaultLogger
+  {
+    .field  private  class [mscorlib]System.Text.StringBuilder _buffer
+    .field  private  class [mscorlib]System.Collections.Stack _projectStack
+
+    // method line 1754
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2290c
+	// Code size 30 (0x1e)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0006:  stfld class [mscorlib]System.Text.StringBuilder NAnt.Core.MailLogger::_buffer
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
+	IL_0011:  stfld class [mscorlib]System.Collections.Stack NAnt.Core.MailLogger::_projectStack
+	IL_0016:  ldarg.0 
+	IL_0017:  call instance void class NAnt.Core.DefaultLogger::'.ctor'()
+	IL_001c:  nop 
+	IL_001d:  ret 
+    } // end of method MailLogger::.ctor
+
+    // method line 1755
+    .method public virtual hidebysig 
+           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x2292b
+	// Code size 22 (0x16)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  call instance void class NAnt.Core.DefaultLogger::BuildStarted(object, class NAnt.Core.BuildEventArgs)
+	IL_0009:  ldarg.0 
+	IL_000a:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.MailLogger::_projectStack
+	IL_000f:  ldnull 
+	IL_0010:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
+	IL_0015:  ret 
+    } // end of method MailLogger::BuildStarted
+
+    // method line 1756
+    .method public virtual hidebysig 
+           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x22944
+	// Code size 712 (0x2c8)
+	.maxstack 8
+	.locals init (
+		class [mscorlib]System.Text.Encoding	V_0,
+		class NAnt.Core.Project	V_1,
+		class NAnt.Core.PropertyDictionary	V_2,
+		bool	V_3,
+		string	V_4,
+		string	V_5,
+		bool	V_6,
+		class [System.Web]System.Web.Mail.MailMessage	V_7,
+		string	V_8,
+		string	V_9,
+		string	V_10,
+		string	V_11,
+		class [mscorlib]System.Exception	V_12)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  call instance void class NAnt.Core.DefaultLogger::BuildFinished(object, class NAnt.Core.BuildEventArgs)
+	IL_0009:  ldarg.0 
+	IL_000a:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.MailLogger::_projectStack
+	IL_000f:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
+	IL_0014:  pop 
+	IL_0015:  ldarg.0 
+	IL_0016:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.MailLogger::_projectStack
+	IL_001b:  callvirt instance int32 class [mscorlib]System.Collections.Stack::get_Count()
+	IL_0020:  brfalse IL_002b
+
+	IL_0025:  nop 
+	IL_0026:  br IL_02c7
+
+	IL_002b:  ldnull 
+	IL_002c:  stloc.0 
+	IL_002d:  ldarg.2 
+	IL_002e:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
+	IL_0033:  stloc.1 
+	IL_0034:  ldloc.1 
+	IL_0035:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_003a:  stloc.2 
+	IL_003b:  ldarg.2 
+	IL_003c:  callvirt instance class [mscorlib]System.Exception class NAnt.Core.BuildEventArgs::get_Exception()
+	IL_0041:  ldnull 
+	IL_0042:  ceq 
+	IL_0044:  stloc.3 
+	IL_0045:  ldloc.3 
+	IL_0046:  brfalse IL_0055
+
+	IL_004b:  ldstr "success"
+	IL_0050:  br IL_005a
+
+	IL_0055:  ldstr "failure"
+	IL_005a:  stloc.s 4
+	.try { // 2
+	  IL_005c:  nop 
+	  IL_005d:  ldarg.0 
+	  IL_005e:  ldloc.2 
+	  IL_005f:  ldloc.s 4
+	  IL_0061:  ldstr ".notify"
+	  IL_0066:  call string string::Concat(string, string)
+	  IL_006b:  ldstr "true"
+	  IL_0070:  ldc.i4.0 
+	  IL_0071:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
+	  IL_0076:  stloc.s 5
+	  IL_0078:  ldc.i4.1 
+	  IL_0079:  stloc.s 6
+	  .try { // 0
+	    IL_007b:  nop 
+	    IL_007c:  ldloc.s 5
+	    IL_007e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0083:  call bool class [mscorlib]System.Convert::ToBoolean(string, class [mscorlib]System.IFormatProvider)
+	    IL_0088:  stloc.s 6
+	    IL_008a:  nop 
+	    IL_008b:  leave IL_009b
+
+	  } // end .try 0
+	  catch class [mscorlib]System.Object { // 0
+	    IL_0090:  pop 
+	    IL_0091:  nop 
+	    IL_0092:  ldc.i4.1 
+	    IL_0093:  stloc.s 6
+	    IL_0095:  nop 
+	    IL_0096:  leave IL_009b
+
+	  } // end handler 0
+	  IL_009b:  ldarg.0 
+	  IL_009c:  ldloc.2 
+	  IL_009d:  ldstr "body.encoding"
+	  IL_00a2:  ldnull 
+	  IL_00a3:  ldc.i4.0 
+	  IL_00a4:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
+	  IL_00a9:  stloc.s 5
+	  .try { // 1
+	    IL_00ab:  nop 
+	    IL_00ac:  ldloc.s 5
+	    IL_00ae:  brfalse IL_00bd
+
+	    IL_00b3:  nop 
+	    IL_00b4:  ldloc.s 5
+	    IL_00b6:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::GetEncoding(string)
+	    IL_00bb:  stloc.0 
+	    IL_00bc:  nop 
+	    IL_00bd:  nop 
+	    IL_00be:  leave IL_00cb
+
+	  } // end .try 1
+	  catch class [mscorlib]System.Object { // 1
+	    IL_00c3:  pop 
+	    IL_00c4:  nop 
+	    IL_00c5:  nop 
+	    IL_00c6:  leave IL_00cb
+
+	  } // end handler 1
+	  IL_00cb:  ldloc.s 6
+	  IL_00cd:  brtrue IL_00d8
+
+	  IL_00d2:  nop 
+	  IL_00d3:  leave IL_02c7
+
+	  IL_00d8:  newobj instance void class [System.Web]System.Web.Mail.MailMessage::'.ctor'()
+	  IL_00dd:  stloc.s 7
+	  IL_00df:  ldloc.s 7
+	  IL_00e1:  ldarg.0 
+	  IL_00e2:  ldloc.2 
+	  IL_00e3:  ldstr "from"
+	  IL_00e8:  ldnull 
+	  IL_00e9:  ldc.i4.1 
+	  IL_00ea:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
+	  IL_00ef:  callvirt instance void class [System.Web]System.Web.Mail.MailMessage::set_From(string)
+	  IL_00f4:  ldloc.s 7
+	  IL_00f6:  ldarg.0 
+	  IL_00f7:  ldloc.2 
+	  IL_00f8:  ldloc.s 4
+	  IL_00fa:  ldstr ".to"
+	  IL_00ff:  call string string::Concat(string, string)
+	  IL_0104:  ldnull 
+	  IL_0105:  ldc.i4.1 
+	  IL_0106:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
+	  IL_010b:  callvirt instance void class [System.Web]System.Web.Mail.MailMessage::set_To(string)
+	  IL_0110:  ldloc.s 7
+	  IL_0112:  ldarg.0 
+	  IL_0113:  ldloc.2 
+	  IL_0114:  ldloc.s 4
+	  IL_0116:  ldstr ".subject"
+	  IL_011b:  call string string::Concat(string, string)
+	  IL_0120:  ldloc.3 
+	  IL_0121:  brfalse IL_0130
+
+	  IL_0126:  ldstr "Build Success"
+	  IL_012b:  br IL_0135
+
+	  IL_0130:  ldstr "Build Failure"
+	  IL_0135:  ldc.i4.0 
+	  IL_0136:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
+	  IL_013b:  callvirt instance void class [System.Web]System.Web.Mail.MailMessage::set_Subject(string)
+	  IL_0140:  ldloc.s 7
+	  IL_0142:  ldarg.0 
+	  IL_0143:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.MailLogger::_buffer
+	  IL_0148:  callvirt instance string object::ToString()
+	  IL_014d:  callvirt instance void class [System.Web]System.Web.Mail.MailMessage::set_Body(string)
+	  IL_0152:  ldarg.0 
+	  IL_0153:  ldloc.2 
+	  IL_0154:  ldstr "smtp.username"
+	  IL_0159:  ldnull 
+	  IL_015a:  ldc.i4.0 
+	  IL_015b:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
+	  IL_0160:  stloc.s 8
+	  IL_0162:  ldarg.0 
+	  IL_0163:  ldloc.2 
+	  IL_0164:  ldstr "smtp.port"
+	  IL_0169:  ldnull 
+	  IL_016a:  ldc.i4.0 
+	  IL_016b:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
+	  IL_0170:  stloc.s 9
+	  IL_0172:  ldarg.0 
+	  IL_0173:  ldloc.2 
+	  IL_0174:  ldstr "smtp.enablessl"
+	  IL_0179:  ldnull 
+	  IL_017a:  ldc.i4.0 
+	  IL_017b:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
+	  IL_0180:  stloc.s 10
+	  IL_0182:  ldloc.s 8
+	  IL_0184:  brtrue IL_019c
+
+	  IL_0189:  ldloc.s 9
+	  IL_018b:  brtrue IL_019c
+
+	  IL_0190:  ldarg.0 
+	  IL_0191:  ldloc.2 
+	  IL_0192:  call instance bool class NAnt.Core.MailLogger::IsSSLEnabled(class NAnt.Core.PropertyDictionary)
+	  IL_0197:  brfalse IL_01b5
+
+	  IL_019c:  nop 
+	  IL_019d:  ldloc.s 7
+	  IL_019f:  callvirt instance class [mscorlib]System.Collections.IDictionary class [System.Web]System.Web.Mail.MailMessage::get_Fields()
+	  IL_01a4:  ldstr "http://schemas.microsoft.com/cdo/configuration/sendusing"
+	  IL_01a9:  ldc.i4.2 
+	  IL_01aa:  box [mscorlib]System.Int32
+	  IL_01af:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
+	  IL_01b4:  nop 
+	  IL_01b5:  ldloc.s 8
+	  IL_01b7:  brfalse IL_01e8
+
+	  IL_01bc:  nop 
+	  IL_01bd:  ldloc.s 7
+	  IL_01bf:  callvirt instance class [mscorlib]System.Collections.IDictionary class [System.Web]System.Web.Mail.MailMessage::get_Fields()
+	  IL_01c4:  ldstr "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
+	  IL_01c9:  ldc.i4.1 
+	  IL_01ca:  box [mscorlib]System.Int32
+	  IL_01cf:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
+	  IL_01d4:  ldloc.s 7
+	  IL_01d6:  callvirt instance class [mscorlib]System.Collections.IDictionary class [System.Web]System.Web.Mail.MailMessage::get_Fields()
+	  IL_01db:  ldstr "http://schemas.microsoft.com/cdo/configuration/sendusername"
+	  IL_01e0:  ldloc.s 8
+	  IL_01e2:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
+	  IL_01e7:  nop 
+	  IL_01e8:  ldarg.0 
+	  IL_01e9:  ldloc.2 
+	  IL_01ea:  ldstr "smtp.password"
+	  IL_01ef:  ldnull 
+	  IL_01f0:  ldc.i4.0 
+	  IL_01f1:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
+	  IL_01f6:  stloc.s 11
+	  IL_01f8:  ldloc.s 11
+	  IL_01fa:  brfalse IL_0214
+
+	  IL_01ff:  nop 
+	  IL_0200:  ldloc.s 7
+	  IL_0202:  callvirt instance class [mscorlib]System.Collections.IDictionary class [System.Web]System.Web.Mail.MailMessage::get_Fields()
+	  IL_0207:  ldstr "http://schemas.microsoft.com/cdo/configuration/sendpassword"
+	  IL_020c:  ldloc.s 11
+	  IL_020e:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
+	  IL_0213:  nop 
+	  IL_0214:  ldloc.s 9
+	  IL_0216:  brfalse IL_0230
+
+	  IL_021b:  nop 
+	  IL_021c:  ldloc.s 7
+	  IL_021e:  callvirt instance class [mscorlib]System.Collections.IDictionary class [System.Web]System.Web.Mail.MailMessage::get_Fields()
+	  IL_0223:  ldstr "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
+	  IL_0228:  ldloc.s 9
+	  IL_022a:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
+	  IL_022f:  nop 
+	  IL_0230:  ldloc.s 10
+	  IL_0232:  brfalse IL_024c
+
+	  IL_0237:  nop 
+	  IL_0238:  ldloc.s 7
+	  IL_023a:  callvirt instance class [mscorlib]System.Collections.IDictionary class [System.Web]System.Web.Mail.MailMessage::get_Fields()
+	  IL_023f:  ldstr "http://schemas.microsoft.com/cdo/configuration/smtpusessl"
+	  IL_0244:  ldloc.s 10
+	  IL_0246:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
+	  IL_024b:  nop 
+	  IL_024c:  ldarg.0 
+	  IL_024d:  ldloc.s 7
+	  IL_024f:  ldloc.1 
+	  IL_0250:  ldarg.0 
+	  IL_0251:  ldloc.2 
+	  IL_0252:  ldloc.s 4
+	  IL_0254:  ldstr ".attachments"
+	  IL_0259:  call string string::Concat(string, string)
+	  IL_025e:  ldnull 
+	  IL_025f:  ldc.i4.0 
+	  IL_0260:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
+	  IL_0265:  call instance void class NAnt.Core.MailLogger::AttachFiles(class [System.Web]System.Web.Mail.MailMessage, class NAnt.Core.Project, string)
+	  IL_026a:  ldloc.0 
+	  IL_026b:  brfalse IL_027a
+
+	  IL_0270:  nop 
+	  IL_0271:  ldloc.s 7
+	  IL_0273:  ldloc.0 
+	  IL_0274:  callvirt instance void class [System.Web]System.Web.Mail.MailMessage::set_BodyEncoding(class [mscorlib]System.Text.Encoding)
+	  IL_0279:  nop 
+	  IL_027a:  ldarg.0 
+	  IL_027b:  ldloc.2 
+	  IL_027c:  ldstr "mailhost"
+	  IL_0281:  ldstr "localhost"
+	  IL_0286:  ldc.i4.0 
+	  IL_0287:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
+	  IL_028c:  call void class [System.Web]System.Web.Mail.SmtpMail::set_SmtpServer(string)
+	  IL_0291:  ldloc.s 7
+	  IL_0293:  call void class [System.Web]System.Web.Mail.SmtpMail::Send(class [System.Web]System.Web.Mail.MailMessage)
+	  IL_0298:  nop 
+	  IL_0299:  leave IL_02c7
+
+	} // end .try 2
+	catch class [mscorlib]System.Exception { // 2
+	  IL_029e:  stloc.s 12
+	  IL_02a0:  nop 
+	  IL_02a1:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	  IL_02a6:  ldstr "[MailLogger] E-mail could not be sent!"
+	  IL_02ab:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_02b0:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	  IL_02b5:  ldloc.s 12
+	  IL_02b7:  callvirt instance string object::ToString()
+	  IL_02bc:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_02c1:  nop 
+	  IL_02c2:  leave IL_02c7
+
+	} // end handler 2
+	IL_02c7:  ret 
+    } // end of method MailLogger::BuildFinished
+
+    // method line 1757
+    .method family virtual hidebysig 
+           instance default void Log (string message)  cil managed 
+    {
+        // Method begins at RVA 0x22c64
+	// Code size 25 (0x19)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.MailLogger::_buffer
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_000d:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_0012:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0017:  pop 
+	IL_0018:  ret 
+    } // end of method MailLogger::Log
+
+    // method line 1758
+    .method private hidebysig 
+           instance default string GetPropertyValue (class NAnt.Core.PropertyDictionary properties, string name, string defaultValue, bool required)  cil managed 
+    {
+        // Method begins at RVA 0x22c80
+	// Code size 76 (0x4c)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		string	V_1,
+		string	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldstr "MailLogger."
+	IL_0006:  ldarg.2 
+	IL_0007:  call string string::Concat(string, string)
+	IL_000c:  stloc.0 
+	IL_000d:  ldarg.1 
+	IL_000e:  ldloc.0 
+	IL_000f:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
+	IL_0014:  stloc.1 
+	IL_0015:  ldloc.1 
+	IL_0016:  brtrue IL_001f
+
+	IL_001b:  nop 
+	IL_001c:  ldarg.3 
+	IL_001d:  stloc.1 
+	IL_001e:  nop 
+	IL_001f:  ldarg.s 4
+	IL_0021:  brfalse IL_0043
+
+	IL_0026:  ldloc.1 
+	IL_0027:  brtrue IL_0043
+
+	IL_002c:  nop 
+	IL_002d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0032:  ldstr "Missing required parameter {0}."
+	IL_0037:  ldloc.0 
+	IL_0038:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_003d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0042:  throw 
+	IL_0043:  ldloc.1 
+	IL_0044:  stloc.2 
+	IL_0045:  br IL_004a
+
+	IL_004a:  ldloc.2 
+	IL_004b:  ret 
+    } // end of method MailLogger::GetPropertyValue
+
+    // method line 1759
+    .method private hidebysig 
+           instance default bool IsSSLEnabled (class NAnt.Core.PropertyDictionary properties)  cil managed 
+    {
+        // Method begins at RVA 0x22cd8
+	// Code size 69 (0x45)
+	.maxstack 5
+	.locals init (
+		string	V_0,
+		bool	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldstr "smtp.enablessl"
+	IL_0008:  ldnull 
+	IL_0009:  ldc.i4.0 
+	IL_000a:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
+	IL_000f:  stloc.0 
+	IL_0010:  ldloc.0 
+	IL_0011:  brfalse IL_003c
+
+	IL_0016:  nop 
+	.try { // 0
+	  IL_0017:  nop 
+	  IL_0018:  ldloc.0 
+	  IL_0019:  call bool bool::Parse(string)
+	  IL_001e:  stloc.1 
+	  IL_001f:  leave IL_0043
+
+	} // end .try 0
+	catch class [mscorlib]System.FormatException { // 0
+	  IL_0024:  pop 
+	  IL_0025:  nop 
+	  IL_0026:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_002b:  ldstr "Invalid value '{0}' for MailLogger.smtp.enablessl property."
+	  IL_0030:  ldloc.0 
+	  IL_0031:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0036:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	  IL_003b:  throw 
+	} // end handler 0
+	IL_003c:  ldc.i4.0 
+	IL_003d:  stloc.1 
+	IL_003e:  br IL_0043
+
+	IL_0043:  ldloc.1 
+	IL_0044:  ret 
+    } // end of method MailLogger::IsSSLEnabled
+
+    // method line 1760
+    .method private hidebysig 
+           instance default void AttachFiles (class [System.Web]System.Web.Mail.MailMessage mail, class NAnt.Core.Project project, string filesetID)  cil managed 
+    {
+        // Method begins at RVA 0x22d3c
+	// Code size 184 (0xb8)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.Types.FileSet	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [System.Web]System.Web.Mail.MailAttachment	V_3,
+		class [mscorlib]System.IDisposable	V_4)
+	IL_0000:  nop 
+	IL_0001:  ldarg.3 
+	IL_0002:  call bool string::IsNullOrEmpty(string)
+	IL_0007:  brfalse IL_0012
+
+	IL_000c:  nop 
+	IL_000d:  br IL_00b7
+
+	IL_0012:  ldarg.2 
+	IL_0013:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	IL_0018:  ldarg.3 
+	IL_0019:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.DataTypeBaseDictionary::get_Item(string)
+	IL_001e:  isinst NAnt.Core.Types.FileSet
+	IL_0023:  stloc.0 
+	IL_0024:  ldloc.0 
+	IL_0025:  brtrue IL_0040
+
+	IL_002a:  nop 
+	IL_002b:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	IL_0030:  ldstr "[MailLogger] Fileset \"{0}\" is not defined. No files have been attached."
+	IL_0035:  ldarg.3 
+	IL_0036:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	IL_003b:  br IL_00b7
+
+	IL_0040:  nop 
+	IL_0041:  ldloc.0 
+	IL_0042:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0047:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_004c:  stloc.2 
+	.try { // 0
+	  IL_004d:  br IL_0091
+
+	  IL_0052:  ldloc.2 
+	  IL_0053:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0058:  stloc.1 
+	  IL_0059:  nop 
+	  IL_005a:  ldloc.1 
+	  IL_005b:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_0060:  brtrue IL_007b
+
+	  IL_0065:  nop 
+	  IL_0066:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	  IL_006b:  ldstr "[MailLogger] Attachment \"{0}\" does not exist. Skipping."
+	  IL_0070:  ldarg.3 
+	  IL_0071:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_0076:  leave IL_0091
+
+	  IL_007b:  ldloc.1 
+	  IL_007c:  ldc.i4.0 
+	  IL_007d:  newobj instance void class [System.Web]System.Web.Mail.MailAttachment::'.ctor'(string, valuetype [System.Web]System.Web.Mail.MailEncoding)
+	  IL_0082:  stloc.3 
+	  IL_0083:  ldarg.1 
+	  IL_0084:  callvirt instance class [mscorlib]System.Collections.IList class [System.Web]System.Web.Mail.MailMessage::get_Attachments()
+	  IL_0089:  ldloc.3 
+	  IL_008a:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	  IL_008f:  pop 
+	  IL_0090:  nop 
+	  IL_0091:  ldloc.2 
+	  IL_0092:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0097:  brtrue IL_0052
+
+	  IL_009c:  leave IL_00b7
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00a1:  ldloc.2 
+	  IL_00a2:  isinst [mscorlib]System.IDisposable
+	  IL_00a7:  dup 
+	  IL_00a8:  stloc.s 4
+	  IL_00aa:  brfalse IL_00b6
+
+	  IL_00af:  ldloc.s 4
+	  IL_00b1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00b6:  endfinally 
+	} // end handler 0
+	IL_00b7:  ret 
+    } // end of method MailLogger::AttachFiles
+
+  } // end of class NAnt.Core.MailLogger
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi serializable beforefieldinit BuildListenerCollection
+  	extends [mscorlib]System.Collections.CollectionBase
+  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+
+
+    // method line 1761
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x22e10
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method BuildListenerCollection::.ctor
+
+    // method line 1762
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.BuildListenerCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x22e19
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.BuildListenerCollection::AddRange(class NAnt.Core.BuildListenerCollection)
+	IL_000e:  ret 
+    } // end of method BuildListenerCollection::.ctor
+
+    // method line 1763
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.IBuildListener[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x22e29
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.BuildListenerCollection::AddRange(class NAnt.Core.IBuildListener[])
+	IL_000e:  ret 
+    } // end of method BuildListenerCollection::.ctor
+
+    // method line 1764
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.IBuildListener get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x22e3c
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.IBuildListener	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.Core.IBuildListener
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method BuildListenerCollection::get_Item
+
+    // method line 1765
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Core.IBuildListener 'value')  cil managed 
+    {
+        // Method begins at RVA 0x22e62
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method BuildListenerCollection::set_Item
+
+    // method line 1766
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.IBuildListener item)  cil managed 
+    {
+        // Method begins at RVA 0x22e74
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method BuildListenerCollection::Add
+
+    // method line 1767
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.IBuildListener[] items)  cil managed 
+    {
+        // Method begins at RVA 0x22e98
+	// Code size 34 (0x22)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.Core.BuildListenerCollection::Add(class NAnt.Core.IBuildListener)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
+
+	IL_0021:  ret 
+    } // end of method BuildListenerCollection::AddRange
+
+    // method line 1768
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.BuildListenerCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x22ec8
+	// Code size 41 (0x29)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.Core.IBuildListener class NAnt.Core.BuildListenerCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Core.BuildListenerCollection::Add(class NAnt.Core.IBuildListener)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
+
+	IL_0028:  ret 
+    } // end of method BuildListenerCollection::AddRange
+
+    // method line 1769
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.IBuildListener item)  cil managed 
+    {
+        // Method begins at RVA 0x22f00
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method BuildListenerCollection::Contains
+
+    // method line 1770
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.IBuildListener[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x22f21
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method BuildListenerCollection::CopyTo
+
+    // method line 1771
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.IBuildListener item)  cil managed 
+    {
+        // Method begins at RVA 0x22f34
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method BuildListenerCollection::IndexOf
+
+    // method line 1772
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.IBuildListener item)  cil managed 
+    {
+        // Method begins at RVA 0x22f55
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method BuildListenerCollection::Insert
+
+    // method line 1773
+    .method public hidebysig 
+           instance default class NAnt.Core.BuildListenerEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x22f68
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.BuildListenerEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.Core.BuildListenerEnumerator::'.ctor'(class NAnt.Core.BuildListenerCollection)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildListenerCollection::GetEnumerator
+
+    // method line 1774
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.IBuildListener item)  cil managed 
+    {
+        // Method begins at RVA 0x22f83
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
+	IL_000d:  ret 
+    } // end of method BuildListenerCollection::Remove
+
+	.property instance class NAnt.Core.IBuildListener Item (int32)
+	{
+		.get instance default class NAnt.Core.IBuildListener NAnt.Core.BuildListenerCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Core.BuildListenerCollection::set_Item (int32 index, class NAnt.Core.IBuildListener 'value') 
+	}
+  } // end of class NAnt.Core.BuildListenerCollection
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi beforefieldinit BuildListenerEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+
+    // method line 1775
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.BuildListenerCollection arguments)  cil managed 
+    {
+        // Method begins at RVA 0x22f94
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.BuildListenerEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method BuildListenerEnumerator::.ctor
+
+    // method line 1776
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.IBuildListener get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x22fb8
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.IBuildListener	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.BuildListenerEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.Core.IBuildListener
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method BuildListenerEnumerator::get_Current
+
+    // method line 1777
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x22fe0
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.BuildListenerEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method BuildListenerEnumerator::System.Collections.IEnumerator.get_Current
+
+    // method line 1778
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x23000
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.BuildListenerEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method BuildListenerEnumerator::MoveNext
+
+    // method line 1779
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x23020
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.BuildListenerEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method BuildListenerEnumerator::System.Collections.IEnumerator.MoveNext
+
+    // method line 1780
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x23040
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.BuildListenerEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method BuildListenerEnumerator::Reset
+
+    // method line 1781
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x2304e
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.BuildListenerEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method BuildListenerEnumerator::System.Collections.IEnumerator.Reset
+
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.Core.BuildListenerEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.Core.IBuildListener Current ()
+	{
+		.get instance default class NAnt.Core.IBuildListener NAnt.Core.BuildListenerEnumerator::get_Current () 
+	}
+  } // end of class NAnt.Core.BuildListenerEnumerator
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi beforefieldinit LogWriter
+  	extends [mscorlib]System.IO.TextWriter
+  {
+    .field  private initonly  class NAnt.Core.Task _task
+    .field  private initonly  valuetype NAnt.Core.Level _outputLevel
+    .field  private  string _message
+
+    // method line 1782
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Task task, valuetype NAnt.Core.Level outputLevel, class [mscorlib]System.IFormatProvider formatProvider)  cil managed 
+    {
+        // Method begins at RVA 0x2305c
+	// Code size 34 (0x22)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldsfld string [mscorlib]System.String::Empty
+	IL_0006:  stfld string NAnt.Core.LogWriter::_message
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.3 
+	IL_000d:  call instance void class [mscorlib]System.IO.TextWriter::'.ctor'(class [mscorlib]System.IFormatProvider)
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldarg.1 
+	IL_0015:  stfld class NAnt.Core.Task NAnt.Core.LogWriter::_task
+	IL_001a:  ldarg.0 
+	IL_001b:  ldarg.2 
+	IL_001c:  stfld valuetype NAnt.Core.Level NAnt.Core.LogWriter::_outputLevel
+	IL_0021:  ret 
+    } // end of method LogWriter::.ctor
+
+    // method line 1783
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
+    {
+        // Method begins at RVA 0x23080
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Text.Encoding	V_0)
+	IL_0000:  nop 
+	IL_0001:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_UTF8()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method LogWriter::get_Encoding
+
+    // method line 1784
+    .method public virtual hidebysig 
+           instance default void Write (char[] chars)  cil managed 
+    {
+        // Method begins at RVA 0x2309a
+	// Code size 20 (0x14)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldc.i4.0 
+	IL_0004:  ldarg.1 
+	IL_0005:  ldlen 
+	IL_0006:  conv.i4 
+	IL_0007:  ldc.i4.1 
+	IL_0008:  sub 
+	IL_0009:  newobj instance void string::'.ctor'(char[], int32, int32)
+	IL_000e:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string)
+	IL_0013:  ret 
+    } // end of method LogWriter::Write
+
+    // method line 1785
+    .method public virtual hidebysig 
+           instance default void Write (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x230af
+	// Code size 20 (0x14)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  dup 
+	IL_0003:  ldfld string NAnt.Core.LogWriter::_message
+	IL_0008:  ldarg.1 
+	IL_0009:  call string string::Concat(string, string)
+	IL_000e:  stfld string NAnt.Core.LogWriter::_message
+	IL_0013:  ret 
+    } // end of method LogWriter::Write
+
+    // method line 1786
+    .method public virtual hidebysig 
+           instance default void WriteLine ()  cil managed 
+    {
+        // Method begins at RVA 0x230c4
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldsfld string [mscorlib]System.String::Empty
+	IL_0007:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	IL_000c:  ret 
+    } // end of method LogWriter::WriteLine
+
+    // method line 1787
+    .method public virtual hidebysig 
+           instance default void WriteLine (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x230d2
+	// Code size 54 (0x36)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  dup 
+	IL_0003:  ldfld string NAnt.Core.LogWriter::_message
+	IL_0008:  ldarg.1 
+	IL_0009:  call string string::Concat(string, string)
+	IL_000e:  stfld string NAnt.Core.LogWriter::_message
+	IL_0013:  ldarg.0 
+	IL_0014:  ldfld class NAnt.Core.Task NAnt.Core.LogWriter::_task
+	IL_0019:  ldarg.0 
+	IL_001a:  call instance valuetype NAnt.Core.Level class NAnt.Core.LogWriter::get_OutputLevel()
+	IL_001f:  ldarg.0 
+	IL_0020:  ldfld string NAnt.Core.LogWriter::_message
+	IL_0025:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_002a:  ldarg.0 
+	IL_002b:  ldsfld string [mscorlib]System.String::Empty
+	IL_0030:  stfld string NAnt.Core.LogWriter::_message
+	IL_0035:  ret 
+    } // end of method LogWriter::WriteLine
+
+    // method line 1788
+    .method public virtual hidebysig 
+           instance default void WriteLine (string line, object[] args)  cil managed 
+    {
+        // Method begins at RVA 0x2310c
+	// Code size 65 (0x41)
+	.maxstack 5
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  dup 
+	IL_0003:  ldfld string NAnt.Core.LogWriter::_message
+	IL_0008:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_000d:  ldarg.1 
+	IL_000e:  ldarg.2 
+	IL_000f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0014:  call string string::Concat(string, string)
+	IL_0019:  stfld string NAnt.Core.LogWriter::_message
+	IL_001e:  ldarg.0 
+	IL_001f:  ldfld class NAnt.Core.Task NAnt.Core.LogWriter::_task
+	IL_0024:  ldarg.0 
+	IL_0025:  call instance valuetype NAnt.Core.Level class NAnt.Core.LogWriter::get_OutputLevel()
+	IL_002a:  ldarg.0 
+	IL_002b:  ldfld string NAnt.Core.LogWriter::_message
+	IL_0030:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_0035:  ldarg.0 
+	IL_0036:  ldsfld string [mscorlib]System.String::Empty
+	IL_003b:  stfld string NAnt.Core.LogWriter::_message
+	IL_0040:  ret 
+    } // end of method LogWriter::WriteLine
+
+    // method line 1789
+    .method public virtual hidebysig 
+           instance default void Flush ()  cil managed 
+    {
+        // Method begins at RVA 0x23159
+	// Code size 54 (0x36)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.LogWriter::_message
+	IL_0007:  callvirt instance int32 string::get_Length()
+	IL_000c:  brfalse IL_0035
+
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  ldfld class NAnt.Core.Task NAnt.Core.LogWriter::_task
+	IL_0018:  ldarg.0 
+	IL_0019:  call instance valuetype NAnt.Core.Level class NAnt.Core.LogWriter::get_OutputLevel()
+	IL_001e:  ldarg.0 
+	IL_001f:  ldfld string NAnt.Core.LogWriter::_message
+	IL_0024:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_0029:  ldarg.0 
+	IL_002a:  ldsfld string [mscorlib]System.String::Empty
+	IL_002f:  stfld string NAnt.Core.LogWriter::_message
+	IL_0034:  nop 
+	IL_0035:  ret 
+    } // end of method LogWriter::Flush
+
+    // method line 1790
+    .method public virtual hidebysig 
+           instance default void Close ()  cil managed 
+    {
+        // Method begins at RVA 0x23190
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance void class [mscorlib]System.IO.TextWriter::Flush()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class [mscorlib]System.IO.TextWriter::Close()
+	IL_000d:  ret 
+    } // end of method LogWriter::Close
+
+    // method line 1791
+    .method public virtual hidebysig 
+           instance default object InitializeLifetimeService ()  cil managed 
+    {
+        // Method begins at RVA 0x231a0
+	// Code size 47 (0x2f)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Runtime.Remoting.Lifetime.ILease	V_0,
+		object	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance object class [mscorlib]System.MarshalByRefObject::InitializeLifetimeService()
+	IL_0007:  castclass [mscorlib]System.Runtime.Remoting.Lifetime.ILease
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  callvirt instance valuetype [mscorlib]System.Runtime.Remoting.Lifetime.LeaseState class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::get_CurrentState()
+	IL_0013:  ldc.i4.1 
+	IL_0014:  bne.un IL_0026
+
+	IL_0019:  nop 
+	IL_001a:  ldloc.0 
+	IL_001b:  ldsfld valuetype [mscorlib]System.TimeSpan [mscorlib]System.TimeSpan::Zero
+	IL_0020:  callvirt instance void class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::set_InitialLeaseTime(valuetype [mscorlib]System.TimeSpan)
+	IL_0025:  nop 
+	IL_0026:  ldloc.0 
+	IL_0027:  stloc.1 
+	IL_0028:  br IL_002d
+
+	IL_002d:  ldloc.1 
+	IL_002e:  ret 
+    } // end of method LogWriter::InitializeLifetimeService
+
+    // method line 1792
+    .method family hidebysig specialname 
+           instance default valuetype NAnt.Core.Level get_OutputLevel ()  cil managed 
+    {
+        // Method begins at RVA 0x231dc
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.Core.Level	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.LogWriter::_outputLevel
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method LogWriter::get_OutputLevel
+
+	.property instance class [mscorlib]System.Text.Encoding Encoding ()
+	{
+		.get instance default class [mscorlib]System.Text.Encoding NAnt.Core.LogWriter::get_Encoding () 
+	}
+	.property instance valuetype NAnt.Core.Level OutputLevel ()
+	{
+		.get instance default valuetype NAnt.Core.Level NAnt.Core.LogWriter::get_OutputLevel () 
+	}
+  } // end of class NAnt.Core.LogWriter
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi serializable beforefieldinit DataTypeBaseBuilderCollection
+  	extends [mscorlib]System.Collections.CollectionBase
+  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+
+
+    // method line 1793
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x231f7
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method DataTypeBaseBuilderCollection::.ctor
+
+    // method line 1794
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.DataTypeBaseBuilderCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x23200
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.DataTypeBaseBuilderCollection::AddRange(class NAnt.Core.DataTypeBaseBuilderCollection)
+	IL_000e:  ret 
+    } // end of method DataTypeBaseBuilderCollection::.ctor
+
+    // method line 1795
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.DataTypeBaseBuilder[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x23210
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.Core.DataTypeBaseBuilderCollection::AddRange(class NAnt.Core.DataTypeBaseBuilder[])
+	IL_000e:  ret 
+    } // end of method DataTypeBaseBuilderCollection::.ctor
+
+    // method line 1796
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.DataTypeBaseBuilder get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x23220
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.DataTypeBaseBuilder	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.Core.DataTypeBaseBuilder
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method DataTypeBaseBuilderCollection::get_Item
+
+    // method line 1797
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.Core.DataTypeBaseBuilder 'value')  cil managed 
+    {
+        // Method begins at RVA 0x23246
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method DataTypeBaseBuilderCollection::set_Item
+
+    // method line 1798
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.DataTypeBaseBuilder get_Item (string dataTypeName)  cil managed 
+    {
+        // Method begins at RVA 0x23258
+	// Code size 111 (0x6f)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.DataTypeBaseBuilder	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.DataTypeBaseBuilder	V_2,
+		class [mscorlib]System.IDisposable	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0066
+
+	IL_0007:  nop 
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0014:  stloc.1 
+	.try { // 0
+	  IL_0015:  br IL_0041
+
+	  IL_001a:  ldloc.1 
+	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0020:  castclass NAnt.Core.DataTypeBaseBuilder
+	  IL_0025:  stloc.0 
+	  IL_0026:  nop 
+	  IL_0027:  ldarg.1 
+	  IL_0028:  ldloc.0 
+	  IL_0029:  callvirt instance string class NAnt.Core.DataTypeBaseBuilder::get_DataTypeName()
+	  IL_002e:  callvirt instance bool string::Equals(string)
+	  IL_0033:  brfalse IL_0040
+
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  stloc.2 
+	  IL_003b:  leave IL_006d
+
+	  IL_0040:  nop 
+	  IL_0041:  ldloc.1 
+	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0047:  brtrue IL_001a
+
+	  IL_004c:  leave IL_0065
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0051:  ldloc.1 
+	  IL_0052:  isinst [mscorlib]System.IDisposable
+	  IL_0057:  dup 
+	  IL_0058:  stloc.3 
+	  IL_0059:  brfalse IL_0064
+
+	  IL_005e:  ldloc.3 
+	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0064:  endfinally 
+	} // end handler 0
+	IL_0065:  nop 
+	IL_0066:  ldnull 
+	IL_0067:  stloc.2 
+	IL_0068:  br IL_006d
+
+	IL_006d:  ldloc.2 
+	IL_006e:  ret 
+    } // end of method DataTypeBaseBuilderCollection::get_Item
+
+    // method line 1799
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
+    {
+        // Method begins at RVA 0x232e4
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method DataTypeBaseBuilderCollection::Add
+
+    // method line 1800
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.DataTypeBaseBuilder[] items)  cil managed 
+    {
+        // Method begins at RVA 0x23308
+	// Code size 34 (0x22)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.Core.DataTypeBaseBuilderCollection::Add(class NAnt.Core.DataTypeBaseBuilder)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
+
+	IL_0021:  ret 
+    } // end of method DataTypeBaseBuilderCollection::AddRange
+
+    // method line 1801
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.Core.DataTypeBaseBuilderCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x23338
+	// Code size 41 (0x29)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.Core.DataTypeBaseBuilder class NAnt.Core.DataTypeBaseBuilderCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Core.DataTypeBaseBuilderCollection::Add(class NAnt.Core.DataTypeBaseBuilder)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
+
+	IL_0028:  ret 
+    } // end of method DataTypeBaseBuilderCollection::AddRange
+
+    // method line 1802
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
+    {
+        // Method begins at RVA 0x23370
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method DataTypeBaseBuilderCollection::Contains
+
+    // method line 1803
+    .method public hidebysig 
+           instance default bool Contains (string taskName)  cil managed 
+    {
+        // Method begins at RVA 0x23394
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance class NAnt.Core.DataTypeBaseBuilder class NAnt.Core.DataTypeBaseBuilderCollection::get_Item(string)
+	IL_0008:  ldnull 
+	IL_0009:  ceq 
+	IL_000b:  ldc.i4.0 
+	IL_000c:  ceq 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0014
+
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method DataTypeBaseBuilderCollection::Contains
+
+    // method line 1804
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.DataTypeBaseBuilder[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x233b6
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method DataTypeBaseBuilderCollection::CopyTo
+
+    // method line 1805
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
+    {
+        // Method begins at RVA 0x233c8
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method DataTypeBaseBuilderCollection::IndexOf
+
+    // method line 1806
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
+    {
+        // Method begins at RVA 0x233e9
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method DataTypeBaseBuilderCollection::Insert
+
+    // method line 1807
+    .method public hidebysig 
+           instance default class NAnt.Core.DataTypeBaseBuilderEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x233fc
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.DataTypeBaseBuilderEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.Core.DataTypeBaseBuilderEnumerator::'.ctor'(class NAnt.Core.DataTypeBaseBuilderCollection)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DataTypeBaseBuilderCollection::GetEnumerator
+
+    // method line 1808
+    .method public hidebysig 
+           instance default void Remove (class NAnt.Core.DataTypeBaseBuilder item)  cil managed 
+    {
+        // Method begins at RVA 0x23417
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
+	IL_000d:  ret 
+    } // end of method DataTypeBaseBuilderCollection::Remove
+
+	.property instance class NAnt.Core.DataTypeBaseBuilder Item (int32)
+	{
+		.get instance default class NAnt.Core.DataTypeBaseBuilder NAnt.Core.DataTypeBaseBuilderCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Core.DataTypeBaseBuilderCollection::set_Item (int32 index, class NAnt.Core.DataTypeBaseBuilder 'value') 
+	}
+	.property instance class NAnt.Core.DataTypeBaseBuilder Item (string)
+	{
+		.get instance default class NAnt.Core.DataTypeBaseBuilder NAnt.Core.DataTypeBaseBuilderCollection::get_Item (string dataTypeName) 
+	}
+  } // end of class NAnt.Core.DataTypeBaseBuilderCollection
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi beforefieldinit DataTypeBaseBuilderEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+
+    // method line 1809
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.DataTypeBaseBuilderCollection arguments)  cil managed 
+    {
+        // Method begins at RVA 0x23428
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.DataTypeBaseBuilderEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method DataTypeBaseBuilderEnumerator::.ctor
+
+    // method line 1810
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.DataTypeBaseBuilder get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x2344c
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.DataTypeBaseBuilder	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.DataTypeBaseBuilderEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.Core.DataTypeBaseBuilder
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method DataTypeBaseBuilderEnumerator::get_Current
+
+    // method line 1811
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x23474
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.DataTypeBaseBuilderEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method DataTypeBaseBuilderEnumerator::System.Collections.IEnumerator.get_Current
+
+    // method line 1812
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x23494
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.DataTypeBaseBuilderEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method DataTypeBaseBuilderEnumerator::MoveNext
+
+    // method line 1813
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x234b4
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.DataTypeBaseBuilderEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method DataTypeBaseBuilderEnumerator::System.Collections.IEnumerator.MoveNext
+
+    // method line 1814
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x234d4
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.DataTypeBaseBuilderEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method DataTypeBaseBuilderEnumerator::Reset
+
+    // method line 1815
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x234e2
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.DataTypeBaseBuilderEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method DataTypeBaseBuilderEnumerator::System.Collections.IEnumerator.Reset
+
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.Core.DataTypeBaseBuilderEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.Core.DataTypeBaseBuilder Current ()
+	{
+		.get instance default class NAnt.Core.DataTypeBaseBuilder NAnt.Core.DataTypeBaseBuilderEnumerator::get_Current () 
+	}
+  } // end of class NAnt.Core.DataTypeBaseBuilderEnumerator
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi beforefieldinit ExpressionEvaluator
+  	extends NAnt.Core.ExpressionEvalBase
+  {
+    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
+		01 00 08 70 72 6F 70 65 72 74 79 04 4E 41 6E 74   // ...property.NAnt
+		00 00                                           ) // ..
+
+    .field  private  class NAnt.Core.PropertyDictionary _properties
+    .field  private  class [mscorlib]System.Collections.Hashtable _state
+    .field  private  class [mscorlib]System.Collections.Stack _visiting
+
+    // method line 1816
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties, class [mscorlib]System.Collections.Hashtable state, class [mscorlib]System.Collections.Stack visiting)  cil managed 
+    {
+        // Method begins at RVA 0x234f0
+	// Code size 31 (0x1f)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class NAnt.Core.ExpressionEvalBase::'.ctor'(class NAnt.Core.Project)
+	IL_0007:  nop 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.2 
+	IL_000a:  stfld class NAnt.Core.PropertyDictionary NAnt.Core.ExpressionEvaluator::_properties
+	IL_000f:  ldarg.0 
+	IL_0010:  ldarg.3 
+	IL_0011:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.ExpressionEvaluator::_state
+	IL_0016:  ldarg.0 
+	IL_0017:  ldarg.s 4
+	IL_0019:  stfld class [mscorlib]System.Collections.Stack NAnt.Core.ExpressionEvaluator::_visiting
+	IL_001e:  ret 
+    } // end of method ExpressionEvaluator::.ctor
+
+    // method line 1817
+    .method family virtual hidebysig 
+           instance default object EvaluateProperty (string propertyName)  cil managed 
+    {
+        // Method begins at RVA 0x23510
+	// Code size 16 (0x10)
+	.maxstack 2
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance string class NAnt.Core.ExpressionEvaluator::GetPropertyValue(string)
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
+
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method ExpressionEvaluator::EvaluateProperty
+
+    // method line 1818
+    .method family virtual hidebysig 
+           instance default object EvaluateFunction (class [mscorlib]System.Reflection.MethodInfo methodInfo, object[] args)  cil managed 
+    {
+        // Method begins at RVA 0x2352c
+	// Code size 184 (0xb8)
+	.maxstack 5
+	.locals init (
+		object	V_0,
+		class [mscorlib]System.Reflection.ConstructorInfo	V_1,
+		object	V_2,
+		class [mscorlib]System.Reflection.TargetInvocationException	V_3)
+	IL_0000:  nop 
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  callvirt instance bool class [mscorlib]System.Reflection.MethodBase::get_IsStatic()
+	  IL_0008:  brfalse IL_001c
+
+	  IL_000d:  nop 
+	  IL_000e:  ldarg.1 
+	  IL_000f:  ldnull 
+	  IL_0010:  ldarg.2 
+	  IL_0011:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	  IL_0016:  stloc.0 
+	  IL_0017:  leave IL_00b6
+
+	  IL_001c:  ldarg.1 
+	  IL_001d:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	  IL_0022:  ldtoken NAnt.Core.ExpressionEvaluator
+	  IL_0027:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_002c:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	  IL_0031:  brfalse IL_0045
+
+	  IL_0036:  nop 
+	  IL_0037:  ldarg.1 
+	  IL_0038:  ldarg.0 
+	  IL_0039:  ldarg.2 
+	  IL_003a:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	  IL_003f:  stloc.0 
+	  IL_0040:  leave IL_00b6
+
+	  IL_0045:  nop 
+	  IL_0046:  ldarg.1 
+	  IL_0047:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	  IL_004c:  ldc.i4.2 
+	  IL_004d:  newarr [mscorlib]System.Type
+	  IL_0052:  dup 
+	  IL_0053:  ldc.i4.0 
+	  IL_0054:  ldtoken NAnt.Core.Project
+	  IL_0059:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_005e:  stelem.ref 
+	  IL_005f:  dup 
+	  IL_0060:  ldc.i4.1 
+	  IL_0061:  ldtoken NAnt.Core.PropertyDictionary
+	  IL_0066:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_006b:  stelem.ref 
+	  IL_006c:  callvirt instance class [mscorlib]System.Reflection.ConstructorInfo class [mscorlib]System.Type::GetConstructor(class [mscorlib]System.Type[])
+	  IL_0071:  stloc.1 
+	  IL_0072:  ldloc.1 
+	  IL_0073:  ldc.i4.2 
+	  IL_0074:  newarr [mscorlib]System.Object
+	  IL_0079:  dup 
+	  IL_007a:  ldc.i4.0 
+	  IL_007b:  ldarg.0 
+	  IL_007c:  call instance class NAnt.Core.Project class NAnt.Core.ExpressionEvalBase::get_Project()
+	  IL_0081:  stelem.ref 
+	  IL_0082:  dup 
+	  IL_0083:  ldc.i4.1 
+	  IL_0084:  ldarg.0 
+	  IL_0085:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.ExpressionEvaluator::_properties
+	  IL_008a:  stelem.ref 
+	  IL_008b:  callvirt instance object class [mscorlib]System.Reflection.ConstructorInfo::Invoke(object[])
+	  IL_0090:  stloc.2 
+	  IL_0091:  ldarg.1 
+	  IL_0092:  ldloc.2 
+	  IL_0093:  ldarg.2 
+	  IL_0094:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	  IL_0099:  stloc.0 
+	  IL_009a:  leave IL_00b6
+
+	} // end .try 0
+	catch class [mscorlib]System.Reflection.TargetInvocationException { // 0
+	  IL_009f:  stloc.3 
+	  IL_00a0:  nop 
+	  IL_00a1:  ldloc.3 
+	  IL_00a2:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
+	  IL_00a7:  brfalse IL_00b4
+
+	  IL_00ac:  nop 
+	  IL_00ad:  ldloc.3 
+	  IL_00ae:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
+	  IL_00b3:  throw 
+	  IL_00b4:  rethrow 
+	} // end handler 0
+	IL_00b6:  ldloc.0 
+	IL_00b7:  ret 
+    } // end of method ExpressionEvaluator::EvaluateFunction
+
+    // method line 1819
+    .method public hidebysig 
+           instance default string GetPropertyValue (string propertyName)  cil managed 
+    {
+        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 76 61 6C 75 65 00 00 ) // ...get-value..
+
+        // Method begins at RVA 0x23600
+	// Code size 271 (0x10f)
+	.maxstack 5
+	.locals init (
+		string	V_0,
+		string	V_1,
+		class NAnt.Core.Location	V_2,
+		string	V_3,
+		string	V_4)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.ExpressionEvaluator::_properties
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsDynamicProperty(string)
+	IL_000d:  brfalse IL_00d3
+
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.ExpressionEvaluator::_state
+	IL_0019:  ldarg.1 
+	IL_001a:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_001f:  castclass [mscorlib]System.String
+	IL_0024:  stloc.0 
+	IL_0025:  ldloc.0 
+	IL_0026:  ldstr "VISITING"
+	IL_002b:  call bool string::op_Equality(string, string)
+	IL_0030:  brfalse IL_0043
+
+	IL_0035:  nop 
+	IL_0036:  ldarg.1 
+	IL_0037:  ldarg.0 
+	IL_0038:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.ExpressionEvaluator::_visiting
+	IL_003d:  call class NAnt.Core.BuildException class NAnt.Core.PropertyDictionary::CreateCircularException(string, class [mscorlib]System.Collections.Stack)
+	IL_0042:  throw 
+	IL_0043:  ldarg.0 
+	IL_0044:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.ExpressionEvaluator::_visiting
+	IL_0049:  ldarg.1 
+	IL_004a:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
+	IL_004f:  ldarg.0 
+	IL_0050:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.ExpressionEvaluator::_state
+	IL_0055:  ldarg.1 
+	IL_0056:  ldstr "VISITING"
+	IL_005b:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0060:  ldarg.0 
+	IL_0061:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.ExpressionEvaluator::_properties
+	IL_0066:  ldarg.1 
+	IL_0067:  callvirt instance string class NAnt.Core.PropertyDictionary::GetPropertyValue(string)
+	IL_006c:  stloc.1 
+	IL_006d:  ldloc.1 
+	IL_006e:  brtrue IL_008f
+
+	IL_0073:  nop 
+	IL_0074:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0079:  ldstr "NA1053"
+	IL_007e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0083:  ldarg.1 
+	IL_0084:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0089:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_008e:  throw 
+	IL_008f:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_0094:  stloc.2 
+	IL_0095:  ldarg.0 
+	IL_0096:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.ExpressionEvaluator::_properties
+	IL_009b:  ldloc.1 
+	IL_009c:  ldloc.2 
+	IL_009d:  ldarg.0 
+	IL_009e:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.ExpressionEvaluator::_state
+	IL_00a3:  ldarg.0 
+	IL_00a4:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.ExpressionEvaluator::_visiting
+	IL_00a9:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Stack)
+	IL_00ae:  stloc.1 
+	IL_00af:  ldarg.0 
+	IL_00b0:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.ExpressionEvaluator::_visiting
+	IL_00b5:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
+	IL_00ba:  pop 
+	IL_00bb:  ldarg.0 
+	IL_00bc:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.ExpressionEvaluator::_state
+	IL_00c1:  ldarg.1 
+	IL_00c2:  ldstr "VISITED"
+	IL_00c7:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_00cc:  ldloc.1 
+	IL_00cd:  stloc.3 
+	IL_00ce:  br IL_010d
+
+	IL_00d3:  nop 
+	IL_00d4:  ldarg.0 
+	IL_00d5:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.ExpressionEvaluator::_properties
+	IL_00da:  ldarg.1 
+	IL_00db:  callvirt instance string class NAnt.Core.PropertyDictionary::GetPropertyValue(string)
+	IL_00e0:  stloc.s 4
+	IL_00e2:  ldloc.s 4
+	IL_00e4:  brtrue IL_0105
+
+	IL_00e9:  nop 
+	IL_00ea:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00ef:  ldstr "NA1053"
+	IL_00f4:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00f9:  ldarg.1 
+	IL_00fa:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00ff:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_0104:  throw 
+	IL_0105:  ldloc.s 4
+	IL_0107:  stloc.3 
+	IL_0108:  br IL_010d
+
+	IL_010d:  ldloc.3 
+	IL_010e:  ret 
+    } // end of method ExpressionEvaluator::GetPropertyValue
+
+  } // end of class NAnt.Core.ExpressionEvaluator
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi serializable beforefieldinit BuildException
+  	extends [mscorlib]System.ApplicationException
+  {
+    .field  private  class NAnt.Core.Location _location
+
+    // method line 1820
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2371b
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_0006:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class [mscorlib]System.ApplicationException::'.ctor'()
+	IL_0011:  nop 
+	IL_0012:  ret 
+    } // end of method BuildException::.ctor
+
+    // method line 1821
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message)  cil managed 
+    {
+        // Method begins at RVA 0x2372f
+	// Code size 20 (0x14)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_0006:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.1 
+	IL_000d:  call instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
+	IL_0012:  nop 
+	IL_0013:  ret 
+    } // end of method BuildException::.ctor
+
+    // method line 1822
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, class [mscorlib]System.Exception innerException)  cil managed 
+    {
+        // Method begins at RVA 0x23744
+	// Code size 21 (0x15)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_0006:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.1 
+	IL_000d:  ldarg.2 
+	IL_000e:  call instance void class [mscorlib]System.ApplicationException::'.ctor'(string, class [mscorlib]System.Exception)
+	IL_0013:  nop 
+	IL_0014:  ret 
+    } // end of method BuildException::.ctor
+
+    // method line 1823
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, class NAnt.Core.Location location)  cil managed 
+    {
+        // Method begins at RVA 0x2375a
+	// Code size 27 (0x1b)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_0006:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.1 
+	IL_000d:  call instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldarg.2 
+	IL_0015:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
+	IL_001a:  ret 
+    } // end of method BuildException::.ctor
+
+    // method line 1824
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, class NAnt.Core.Location location, class [mscorlib]System.Exception innerException)  cil managed 
+    {
+        // Method begins at RVA 0x23776
+	// Code size 28 (0x1c)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_0006:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.1 
+	IL_000d:  ldarg.3 
+	IL_000e:  call instance void class [mscorlib]System.ApplicationException::'.ctor'(string, class [mscorlib]System.Exception)
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldarg.2 
+	IL_0016:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
+	IL_001b:  ret 
+    } // end of method BuildException::.ctor
+
+    // method line 1825
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
+    {
+        // Method begins at RVA 0x23793
+	// Code size 54 (0x36)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_0006:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.1 
+	IL_000d:  ldarg.2 
+	IL_000e:  call instance void class [mscorlib]System.ApplicationException::'.ctor'(class [mscorlib]System.Runtime.Serialization.SerializationInfo, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext)
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldarg.1 
+	IL_0016:  ldstr "Location"
+	IL_001b:  ldarg.0 
+	IL_001c:  ldfld class NAnt.Core.Location NAnt.Core.BuildException::_location
+	IL_0021:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0026:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_002b:  isinst NAnt.Core.Location
+	IL_0030:  stfld class NAnt.Core.Location NAnt.Core.BuildException::_location
+	IL_0035:  ret 
+    } // end of method BuildException::.ctor
+
+    // method line 1826
+    .method public hidebysig specialname 
+           instance default string get_RawMessage ()  cil managed 
+    {
+        // Method begins at RVA 0x237cc
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class [mscorlib]System.Exception::get_Message()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildException::get_RawMessage
+
+    // method line 1827
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Location get_Location ()  cil managed 
+    {
+        // Method begins at RVA 0x237e8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Location	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Location NAnt.Core.BuildException::_location
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method BuildException::get_Location
+
+    // method line 1828
+    .method public virtual hidebysig 
+           instance default void GetObjectData (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
+    {
+        // Method begins at RVA 0x23803
+        .permissionset demand = {[mscorlib]System.Security.Permissions.SecurityPermissionAttribute = {property bool 'SerializationFormatter' = bool(true)}}
+	// Code size 27 (0x1b)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  call instance void class [mscorlib]System.Exception::GetObjectData(class [mscorlib]System.Runtime.Serialization.SerializationInfo, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext)
+	IL_0009:  ldarg.1 
+	IL_000a:  ldstr "Location"
+	IL_000f:  ldarg.0 
+	IL_0010:  ldfld class NAnt.Core.Location NAnt.Core.BuildException::_location
+	IL_0015:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_001a:  ret 
+    } // end of method BuildException::GetObjectData
+
+    // method line 1829
+    .method public virtual hidebysig specialname 
+           instance default string get_Message ()  cil managed 
+    {
+        // Method begins at RVA 0x23820
+	// Code size 74 (0x4a)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		string	V_1,
+		string	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class [mscorlib]System.Exception::get_Message()
+	IL_0007:  stloc.0 
+	IL_0008:  ldsfld string [mscorlib]System.String::Empty
+	IL_000d:  stloc.1 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldfld class NAnt.Core.Location NAnt.Core.BuildException::_location
+	IL_0014:  brfalse IL_0027
+
+	IL_0019:  nop 
+	IL_001a:  ldarg.0 
+	IL_001b:  ldfld class NAnt.Core.Location NAnt.Core.BuildException::_location
+	IL_0020:  callvirt instance string object::ToString()
+	IL_0025:  stloc.1 
+	IL_0026:  nop 
+	IL_0027:  ldloc.1 
+	IL_0028:  call bool string::IsNullOrEmpty(string)
+	IL_002d:  brtrue IL_0041
+
+	IL_0032:  nop 
+	IL_0033:  ldloc.1 
+	IL_0034:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_0039:  ldloc.0 
+	IL_003a:  call string string::Concat(string, string, string)
+	IL_003f:  stloc.0 
+	IL_0040:  nop 
+	IL_0041:  ldloc.0 
+	IL_0042:  stloc.2 
+	IL_0043:  br IL_0048
+
+	IL_0048:  ldloc.2 
+	IL_0049:  ret 
+    } // end of method BuildException::get_Message
+
+    // method line 1830
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
+    {
+        // Method begins at RVA 0x23878
+	// Code size 41 (0x29)
+	.maxstack 5
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0006:  ldstr "{0}:{1}{2}"
+	IL_000b:  ldarg.0 
+	IL_000c:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	IL_0011:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_0016:  ldarg.0 
+	IL_0017:  call instance string class [mscorlib]System.Exception::ToString()
+	IL_001c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_0021:  stloc.0 
+	IL_0022:  br IL_0027
+
+	IL_0027:  ldloc.0 
+	IL_0028:  ret 
+    } // end of method BuildException::ToString
+
+	.property instance string RawMessage ()
+	{
+		.get instance default string NAnt.Core.BuildException::get_RawMessage () 
+	}
+	.property instance class NAnt.Core.Location Location ()
+	{
+		.get instance default class NAnt.Core.Location NAnt.Core.BuildException::get_Location () 
+	}
+	.property instance string Message ()
+	{
+		.get instance default string NAnt.Core.BuildException::get_Message () 
+	}
+  } // end of class NAnt.Core.BuildException
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi serializable beforefieldinit ValidationException
+  	extends NAnt.Core.BuildException
+  {
+
+    // method line 1831
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x238ad
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.BuildException::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method ValidationException::.ctor
+
+    // method line 1832
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message)  cil managed 
+    {
+        // Method begins at RVA 0x238b6
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_0007:  nop 
+	IL_0008:  ret 
+    } // end of method ValidationException::.ctor
+
+    // method line 1833
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, class [mscorlib]System.Exception innerException)  cil managed 
+    {
+        // Method begins at RVA 0x238c0
+	// Code size 10 (0xa)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.BuildException::'.ctor'(string, class [mscorlib]System.Exception)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method ValidationException::.ctor
+
+    // method line 1834
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, class NAnt.Core.Location location)  cil managed 
+    {
+        // Method begins at RVA 0x238cb
+	// Code size 10 (0xa)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method ValidationException::.ctor
+
+    // method line 1835
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, class NAnt.Core.Location location, class [mscorlib]System.Exception innerException)  cil managed 
+    {
+        // Method begins at RVA 0x238d6
+	// Code size 11 (0xb)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  call instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	IL_0009:  nop 
+	IL_000a:  ret 
+    } // end of method ValidationException::.ctor
+
+    // method line 1836
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
+    {
+        // Method begins at RVA 0x238e2
+	// Code size 10 (0xa)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.Core.BuildException::'.ctor'(class [mscorlib]System.Runtime.Serialization.SerializationInfo, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method ValidationException::.ctor
+
+  } // end of class NAnt.Core.ValidationException
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi abstract serializable beforefieldinit DataTypeBase
+  	extends NAnt.Core.Element
+  {
+    .field  private  string _id
+    .field  private  string _refID
+
+    // method line 1837
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xb37a
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0006:  ret 
+    } // end of method DataTypeBase::.ctor
+
+    // method line 1838
+    .method public hidebysig specialname 
+           instance default string get_ID ()  cil managed 
+    {
+        // Method begins at RVA 0xb384
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.DataTypeBase::_id
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DataTypeBase::get_ID
+
+    // method line 1839
+    .method public hidebysig specialname 
+           instance default void set_ID (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xb39f
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.DataTypeBase::_id
+	IL_000d:  ret 
+    } // end of method DataTypeBase::set_ID
+
+    // method line 1840
+    .method public hidebysig specialname 
+           instance default string get_RefID ()  cil managed 
+    {
+        // Method begins at RVA 0xb3b0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.DataTypeBase::_refID
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DataTypeBase::get_RefID
+
+    // method line 1841
+    .method public hidebysig specialname 
+           instance default void set_RefID (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xb3cb
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.DataTypeBase::_refID
+	IL_000d:  ret 
+    } // end of method DataTypeBase::set_RefID
+
+    // method line 1842
+    .method public hidebysig specialname 
+           instance default bool get_CanBeReferenced ()  cil managed 
+    {
+        // Method begins at RVA 0xb3dc
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_0007:  ldnull 
+	IL_0008:  ceq 
+	IL_000a:  ldc.i4.0 
+	IL_000b:  ceq 
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method DataTypeBase::get_CanBeReferenced
+
+    // method line 1843
+    .method public virtual hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0xb400
+	// Code size 54 (0x36)
+	.maxstack 2
+	.locals init (
+		string	V_0,
+		class NAnt.Core.Attributes.ElementNameAttribute	V_1,
+		string	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  call instance class [mscorlib]System.Type object::GetType()
+	IL_0009:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
+	IL_000e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0013:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	IL_0018:  castclass NAnt.Core.Attributes.ElementNameAttribute
+	IL_001d:  stloc.1 
+	IL_001e:  ldloc.1 
+	IL_001f:  brfalse IL_002d
+
+	IL_0024:  nop 
+	IL_0025:  ldloc.1 
+	IL_0026:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
+	IL_002b:  stloc.0 
+	IL_002c:  nop 
+	IL_002d:  ldloc.0 
+	IL_002e:  stloc.2 
+	IL_002f:  br IL_0034
+
+	IL_0034:  ldloc.2 
+	IL_0035:  ret 
+    } // end of method DataTypeBase::get_Name
+
+    // method line 1844
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0xb444
+	// Code size 281 (0x119)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance object class NAnt.Core.Element::get_Parent()
+	IL_0007:  brtrue IL_0022
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldc.i4 4000
+	IL_0013:  ldstr "Parent property should be set on types deriving from DataTypeBase to determine whether the type is declared on a valid level."
+	IL_0018:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_001d:  br IL_0118
+
+	IL_0022:  ldarg.0 
+	IL_0023:  call instance object class NAnt.Core.Element::get_Parent()
+	IL_0028:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_002d:  ldtoken NAnt.Core.Project
+	IL_0032:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0037:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_003c:  brtrue IL_0060
+
+	IL_0041:  ldarg.0 
+	IL_0042:  call instance object class NAnt.Core.Element::get_Parent()
+	IL_0047:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_004c:  ldtoken NAnt.Core.Target
+	IL_0051:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0056:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_005b:  brfalse IL_00d5
+
+	IL_0060:  nop 
+	IL_0061:  ldarg.0 
+	IL_0062:  call instance string class NAnt.Core.DataTypeBase::get_ID()
+	IL_0067:  call bool string::IsNullOrEmpty(string)
+	IL_006c:  brfalse IL_0098
+
+	IL_0071:  nop 
+	IL_0072:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0077:  ldstr "NA1010"
+	IL_007c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0081:  ldarg.0 
+	IL_0082:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_0087:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_008c:  ldarg.0 
+	IL_008d:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0092:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0097:  throw 
+	IL_0098:  ldarg.0 
+	IL_0099:  call instance string class NAnt.Core.DataTypeBase::get_RefID()
+	IL_009e:  call bool string::IsNullOrEmpty(string)
+	IL_00a3:  brtrue IL_00cf
+
+	IL_00a8:  nop 
+	IL_00a9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00ae:  ldstr "NA1009"
+	IL_00b3:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00b8:  ldarg.0 
+	IL_00b9:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_00be:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00c3:  ldarg.0 
+	IL_00c4:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_00c9:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_00ce:  throw 
+	IL_00cf:  nop 
+	IL_00d0:  br IL_0118
+
+	IL_00d5:  nop 
+	IL_00d6:  ldarg.0 
+	IL_00d7:  call instance string class NAnt.Core.DataTypeBase::get_ID()
+	IL_00dc:  call bool string::IsNullOrEmpty(string)
+	IL_00e1:  brtrue IL_0117
+
+	IL_00e6:  nop 
+	IL_00e7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00ec:  ldstr "NA1008"
+	IL_00f1:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00f6:  ldstr " can only be declared at Project or Target level."
+	IL_00fb:  call string string::Concat(string, string)
+	IL_0100:  ldarg.0 
+	IL_0101:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_0106:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_010b:  ldarg.0 
+	IL_010c:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0111:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0116:  throw 
+	IL_0117:  nop 
+	IL_0118:  ret 
+    } // end of method DataTypeBase::Initialize
+
+    // method line 1845
+    .method public virtual hidebysig newslot 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0xb569
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method DataTypeBase::Reset
+
+    // method line 1846
+    .method family hidebysig 
+           instance default void CopyTo (class NAnt.Core.DataTypeBase clone)  cil managed 
+    {
+        // Method begins at RVA 0xb56c
+	// Code size 33 (0x21)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.Element::CopyTo(class NAnt.Core.Element)
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldfld string NAnt.Core.DataTypeBase::_id
+	IL_000f:  stfld string NAnt.Core.DataTypeBase::_id
+	IL_0014:  ldarg.1 
+	IL_0015:  ldarg.0 
+	IL_0016:  ldfld string NAnt.Core.DataTypeBase::_refID
+	IL_001b:  stfld string NAnt.Core.DataTypeBase::_refID
+	IL_0020:  ret 
+    } // end of method DataTypeBase::CopyTo
+
+	.property instance string ID ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 64 00 00 ) // ...id..
+
+		.get instance default string NAnt.Core.DataTypeBase::get_ID () 
+		.set instance default void NAnt.Core.DataTypeBase::set_ID (string 'value') 
+	}
+	.property instance string RefID ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 72 65 66 69 64 00 00 ) // ...refid..
+
+		.get instance default string NAnt.Core.DataTypeBase::get_RefID () 
+		.set instance default void NAnt.Core.DataTypeBase::set_RefID (string 'value') 
+	}
+	.property instance bool CanBeReferenced ()
+	{
+		.get instance default bool NAnt.Core.DataTypeBase::get_CanBeReferenced () 
+	}
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.Core.DataTypeBase::get_Name () 
+	}
+  } // end of class NAnt.Core.DataTypeBase
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi abstract serializable beforefieldinit Task
+  	extends NAnt.Core.Element
+  {
+    .field  private static initonly  class [log4net]log4net.ILog logger
+    .field  private  bool _failOnError
+    .field  private  bool _verbose
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
+    .field  private  valuetype NAnt.Core.Level _threshold
+
+    // method line 1847
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x111e4
+	// Code size 32 (0x20)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.Task::_failOnError
+	IL_0007:  ldarg.0 
+	IL_0008:  ldc.i4.1 
+	IL_0009:  stfld bool NAnt.Core.Task::_ifDefined
+	IL_000e:  ldarg.0 
+	IL_000f:  ldc.i4 1000
+	IL_0014:  stfld valuetype NAnt.Core.Level NAnt.Core.Task::_threshold
+	IL_0019:  ldarg.0 
+	IL_001a:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_001f:  ret 
+    } // end of method Task::.ctor
+
+    // method line 1848
+    .method public hidebysig specialname 
+           instance default bool get_FailOnError ()  cil managed 
+    {
+        // Method begins at RVA 0x11208
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Task::_failOnError
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Task::get_FailOnError
+
+    // method line 1849
+    .method public hidebysig specialname 
+           instance default void set_FailOnError (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x11223
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Task::_failOnError
+	IL_0008:  ret 
+    } // end of method Task::set_FailOnError
+
+    // method line 1850
+    .method public virtual hidebysig newslot specialname 
+           instance default bool get_Verbose ()  cil managed 
+    {
+        // Method begins at RVA 0x11230
+	// Code size 34 (0x22)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Task::_verbose
+	IL_0007:  brtrue IL_0019
+
+	IL_000c:  ldarg.0 
+	IL_000d:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0012:  callvirt instance bool class NAnt.Core.Project::get_Verbose()
+	IL_0017:  br.s IL_001a
+
+	IL_0019:  ldc.i4.1 
+	IL_001a:  stloc.0 
+	IL_001b:  br IL_0020
+
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method Task::get_Verbose
+
+    // method line 1851
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Verbose (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x1125e
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Task::_verbose
+	IL_0008:  ret 
+    } // end of method Task::set_Verbose
+
+    // method line 1852
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x11268
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Task::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Task::get_IfDefined
+
+    // method line 1853
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x11283
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.Task::_ifDefined
+	IL_0008:  ret 
+    } // end of method Task::set_IfDefined
+
+    // method line 1854
     .method public hidebysig specialname 
            instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0xbca0
+        // Method begins at RVA 0x11290
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -79905,11 +70432,11 @@
 	IL_000e:  ret 
     } // end of method Task::get_UnlessDefined
 
-    // method line 2104
+    // method line 1855
     .method public hidebysig specialname 
            instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xbcbb
+        // Method begins at RVA 0x112ab
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -79919,11 +70446,11 @@
 	IL_0008:  ret 
     } // end of method Task::set_UnlessDefined
 
-    // method line 2105
+    // method line 1856
     .method public virtual hidebysig specialname 
            instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0xbcc8
+        // Method begins at RVA 0x112b8
 	// Code size 54 (0x36)
 	.maxstack 2
 	.locals init (
@@ -79956,11 +70483,11 @@
 	IL_0035:  ret 
     } // end of method Task::get_Name
 
-    // method line 2106
+    // method line 1857
     .method public hidebysig specialname 
            instance default string get_LogPrefix ()  cil managed 
     {
-        // Method begins at RVA 0xbd0c
+        // Method begins at RVA 0x112fc
 	// Code size 48 (0x30)
 	.maxstack 3
 	.locals init (
@@ -79985,11 +70512,11 @@
 	IL_002f:  ret 
     } // end of method Task::get_LogPrefix
 
-    // method line 2107
+    // method line 1858
     .method public hidebysig specialname 
            instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
     {
-        // Method begins at RVA 0xbd48
+        // Method begins at RVA 0x11338
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -80004,11 +70531,11 @@
 	IL_000e:  ret 
     } // end of method Task::get_Threshold
 
-    // method line 2108
+    // method line 1859
     .method public hidebysig specialname 
            instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
     {
-        // Method begins at RVA 0xbd63
+        // Method begins at RVA 0x11353
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -80018,11 +70545,11 @@
 	IL_0008:  ret 
     } // end of method Task::set_Threshold
 
-    // method line 2109
+    // method line 1860
     .method assembly hidebysig specialname 
            instance default class NAnt.Core.TaskBuilder get_TaskBuilder ()  cil managed 
     {
-        // Method begins at RVA 0xbd70
+        // Method begins at RVA 0x11360
 	// Code size 25 (0x19)
 	.maxstack 2
 	.locals init (
@@ -80039,11 +70566,11 @@
 	IL_0018:  ret 
     } // end of method Task::get_TaskBuilder
 
-    // method line 2110
+    // method line 1861
     .method public hidebysig 
            instance default void Execute ()  cil managed 
     {
-        // Method begins at RVA 0xbd98
+        // Method begins at RVA 0x11388
 	// Code size 329 (0x149)
 	.maxstack 4
 	.locals init (
@@ -80188,11 +70715,11 @@
 	IL_0148:  ret 
     } // end of method Task::Execute
 
-    // method line 2111
+    // method line 1862
     .method public virtual hidebysig 
            instance default void Log (valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
     {
-        // Method begins at RVA 0xbf0c
+        // Method begins at RVA 0x114fc
 	// Code size 104 (0x68)
 	.maxstack 4
 	IL_0000:  nop 
@@ -80239,11 +70766,11 @@
 	IL_0067:  ret 
     } // end of method Task::Log
 
-    // method line 2112
+    // method line 1863
     .method public virtual hidebysig 
            instance default void Log (valuetype NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
     {
-        // Method begins at RVA 0xbf80
+        // Method begins at RVA 0x11570
 	// Code size 23 (0x17)
 	.maxstack 3
 	.locals init (
@@ -80261,11 +70788,11 @@
 	IL_0016:  ret 
     } // end of method Task::Log
 
-    // method line 2113
+    // method line 1864
     .method public hidebysig 
            instance default bool IsLogEnabledFor (valuetype NAnt.Core.Level messageLevel)  cil managed 
     {
-        // Method begins at RVA 0xbfa4
+        // Method begins at RVA 0x11594
 	// Code size 66 (0x42)
 	.maxstack 2
 	.locals init (
@@ -80302,11 +70829,11 @@
 	IL_0041:  ret 
     } // end of method Task::IsLogEnabledFor
 
-    // method line 2114
+    // method line 1865
     .method public hidebysig 
            instance default void InitializeTaskConfiguration ()  cil managed 
     {
-        // Method begins at RVA 0xbff4
+        // Method begins at RVA 0x115e4
 	// Code size 832 (0x340)
 	.maxstack 7
 	.locals init (
@@ -80665,11 +71192,11 @@
 	IL_033f:  ret 
     } // end of method Task::InitializeTaskConfiguration
 
-    // method line 2115
+    // method line 1866
     .method family virtual hidebysig 
            instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0xc374
+        // Method begins at RVA 0x11964
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -80680,7 +71207,7 @@
 	IL_000d:  ret 
     } // end of method Task::Initialize
 
-    // method line 2116
+    // method line 1867
     .method family virtual hidebysig newslot 
            instance default void InitializeTask (class [System.Xml]System.Xml.XmlNode taskNode)  cil managed 
     {
@@ -80689,25 +71216,25 @@
 		73 65 20 49 6E 69 74 69 61 6C 69 7A 65 28 29 20   // se Initialize() 
 		69 6E 73 74 65 61 64 00 00                      ) // instead..
 
-        // Method begins at RVA 0xc383
+        // Method begins at RVA 0x11973
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method Task::InitializeTask
 
-    // method line 2117
+    // method line 1868
     .method family virtual hidebysig newslot abstract 
            instance default void ExecuteTask ()  cil managed 
     {
         // Method begins at RVA 0x0
     } // end of method Task::ExecuteTask
 
-    // method line 2118
+    // method line 1869
     .method family virtual hidebysig 
            instance default class [System.Xml]System.Xml.XmlNode GetAttributeConfigurationNode (class NAnt.Core.FrameworkInfo framework, string attributeName)  cil managed 
     {
-        // Method begins at RVA 0xc388
+        // Method begins at RVA 0x11978
 	// Code size 56 (0x38)
 	.maxstack 4
 	.locals init (
@@ -80742,11 +71269,11 @@
 	IL_0037:  ret 
     } // end of method Task::GetAttributeConfigurationNode
 
-    // method line 2119
+    // method line 1870
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0xc3cc
+        // Method begins at RVA 0x119bc
 	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
@@ -80819,2140 +71346,5999 @@
 
 .namespace NAnt.Core
 {
-  .class public auto ansi beforefieldinit DataTypeBaseBuilder
-  	extends NAnt.Core.Extensibility.ExtensionBuilder
-  {
-    .field  private initonly  string _className
-    .field  private  string _dataTypeName
+  .class public auto ansi serializable beforefieldinit DirectoryScanner
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.ICloneable  {
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _baseDirectory
+    .field  private  class NAnt.Core.StringCollectionWithGoodToString _includes
+    .field  private  class NAnt.Core.StringCollectionWithGoodToString _excludes
+    .field  private  class [mscorlib]System.Collections.ArrayList _includePatterns
+    .field  private  class [mscorlib]System.Collections.ArrayList _excludePatterns
+    .field  private  class NAnt.Core.StringCollectionWithGoodToString _includeNames
+    .field  private  class NAnt.Core.StringCollectionWithGoodToString _excludeNames
+    .field  private  class NAnt.Core.StringCollectionWithGoodToString _fileNames
+    .field  private  class NAnt.Core.DirScannerStringCollection _directoryNames
+    .field  private  class NAnt.Core.DirScannerStringCollection _searchDirectories
+    .field  private  class NAnt.Core.DirScannerStringCollection _scannedDirectories
+    .field  private  class [mscorlib]System.Collections.ArrayList _searchDirIsRecursive
+    .field  private  bool _caseSensitive
+    .field  private  bool _isEverythingIncluded
+    .field  private static initonly  class [log4net]log4net.ILog logger
+    .field  private static  class [mscorlib]System.Collections.Hashtable cachedCaseSensitiveRegexes
+    .field  private static  class [mscorlib]System.Collections.Hashtable cachedCaseInsensitiveRegexes
 
-    // method line 2120
+    // method line 1871
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly', string className)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x24fe2
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x238ed
+	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call class NAnt.Core.Extensibility.ExtensionAssembly class NAnt.Core.Extensibility.ExtensionAssembly::Create(class [mscorlib]System.Reflection.Assembly)
-	IL_0007:  ldarg.2 
-	IL_0008:  call instance void class NAnt.Core.DataTypeBaseBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, string)
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method DataTypeBaseBuilder::.ctor
+	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
+	IL_0006:  call instance void class NAnt.Core.DirectoryScanner::'.ctor'(bool)
+	IL_000b:  nop 
+	IL_000c:  ret 
+    } // end of method DirectoryScanner::.ctor
 
-    // method line 2121
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, string className)  cil managed 
+    // method line 1872
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (bool caseSensitive)  cil managed 
     {
-        // Method begins at RVA 0x24ff2
-	// Code size 16 (0x10)
+        // Method begins at RVA 0x238fb
+	// Code size 44 (0x2c)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class NAnt.Core.Extensibility.ExtensionBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly)
-	IL_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.2 
-	IL_000a:  stfld string NAnt.Core.DataTypeBaseBuilder::_className
-	IL_000f:  ret 
-    } // end of method DataTypeBaseBuilder::.ctor
-
-    // method line 2122
-    .method public hidebysig specialname 
-           instance default string get_ClassName ()  cil managed 
-    {
-        // Method begins at RVA 0x25004
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.DataTypeBaseBuilder::_className
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DataTypeBaseBuilder::get_ClassName
+	IL_0001:  newobj instance void class NAnt.Core.StringCollectionWithGoodToString::'.ctor'()
+	IL_0006:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includes
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class NAnt.Core.StringCollectionWithGoodToString::'.ctor'()
+	IL_0011:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludes
+	IL_0016:  ldarg.0 
+	IL_0017:  ldc.i4.1 
+	IL_0018:  stfld bool NAnt.Core.DirectoryScanner::_isEverythingIncluded
+	IL_001d:  ldarg.0 
+	IL_001e:  call instance void object::'.ctor'()
+	IL_0023:  nop 
+	IL_0024:  ldarg.0 
+	IL_0025:  ldarg.1 
+	IL_0026:  stfld bool NAnt.Core.DirectoryScanner::_caseSensitive
+	IL_002b:  ret 
+    } // end of method DirectoryScanner::.ctor
 
-    // method line 2123
-    .method public hidebysig specialname 
-           instance default string get_DataTypeName ()  cil managed 
+    // method line 1873
+    .method public final virtual hidebysig newslot 
+           instance default object Clone ()  cil managed 
     {
-        // Method begins at RVA 0x25020
-	// Code size 78 (0x4e)
+        // Method begins at RVA 0x23928
+	// Code size 422 (0x1a6)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.Attributes.ElementNameAttribute	V_0,
-		string	V_1)
+		class NAnt.Core.DirectoryScanner	V_0,
+		object	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.DataTypeBaseBuilder::_dataTypeName
-	IL_0007:  brtrue IL_0040
+	IL_0001:  newobj instance void class NAnt.Core.DirectoryScanner::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
+	IL_000d:  brfalse IL_002a
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance string class NAnt.Core.DataTypeBaseBuilder::get_ClassName()
-	IL_0019:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string)
-	IL_001e:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
-	IL_0023:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0028:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	IL_002d:  castclass NAnt.Core.Attributes.ElementNameAttribute
-	IL_0032:  stloc.0 
-	IL_0033:  ldarg.0 
-	IL_0034:  ldloc.0 
-	IL_0035:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
-	IL_003a:  stfld string NAnt.Core.DataTypeBaseBuilder::_dataTypeName
-	IL_003f:  nop 
-	IL_0040:  ldarg.0 
-	IL_0041:  ldfld string NAnt.Core.DataTypeBaseBuilder::_dataTypeName
-	IL_0046:  stloc.1 
-	IL_0047:  br IL_004c
+	IL_0012:  nop 
+	IL_0013:  ldloc.0 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
+	IL_001a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001f:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0024:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
+	IL_0029:  nop 
+	IL_002a:  ldarg.0 
+	IL_002b:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
+	IL_0030:  brfalse IL_004d
 
-	IL_004c:  ldloc.1 
-	IL_004d:  ret 
-    } // end of method DataTypeBaseBuilder::get_DataTypeName
+	IL_0035:  nop 
+	IL_0036:  ldloc.0 
+	IL_0037:  ldarg.0 
+	IL_0038:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
+	IL_003d:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
+	IL_0042:  castclass NAnt.Core.DirScannerStringCollection
+	IL_0047:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
+	IL_004c:  nop 
+	IL_004d:  ldarg.0 
+	IL_004e:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_excludePatterns
+	IL_0053:  brfalse IL_0070
 
-    // method line 2124
-    .method public hidebysig 
-           instance default class NAnt.Core.DataTypeBase CreateDataTypeBase ()  cil managed 
-    {
-        // Method begins at RVA 0x2507c
-        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
-	// Code size 42 (0x2a)
-	.maxstack 8
-	.locals init (
-		class NAnt.Core.DataTypeBase	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance string class NAnt.Core.DataTypeBaseBuilder::get_ClassName()
-	IL_000d:  ldc.i4.1 
-	IL_000e:  ldc.i4.s 0x14
-	IL_0010:  ldnull 
-	IL_0011:  ldnull 
-	IL_0012:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0017:  ldnull 
-	IL_0018:  callvirt instance object class [mscorlib]System.Reflection.Assembly::CreateInstance(string, bool, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo, object[])
-	IL_001d:  castclass NAnt.Core.DataTypeBase
-	IL_0022:  stloc.0 
-	IL_0023:  br IL_0028
-
-	IL_0028:  ldloc.0 
-	IL_0029:  ret 
-    } // end of method DataTypeBaseBuilder::CreateDataTypeBase
-
-	.property instance string ClassName ()
-	{
-		.get instance default string NAnt.Core.DataTypeBaseBuilder::get_ClassName () 
-	}
-	.property instance string DataTypeName ()
-	{
-		.get instance default string NAnt.Core.DataTypeBaseBuilder::get_DataTypeName () 
-	}
-  } // end of class NAnt.Core.DataTypeBaseBuilder
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable beforefieldinit Location
-  	extends [mscorlib]System.Object
-  {
-    .field  private  string _fileName
-    .field  private  int32 _lineNumber
-    .field  private  int32 _columnNumber
-    .field  public static initonly  class NAnt.Core.Location UnknownLocation
-
-    // method line 2125
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string fileName, int32 lineNumber, int32 columnNumber)  cil managed 
-    {
-        // Method begins at RVA 0x250b2
-	// Code size 17 (0x11)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.2 
-	IL_000a:  ldarg.3 
-	IL_000b:  call instance void class NAnt.Core.Location::Init(string, int32, int32)
-	IL_0010:  ret 
-    } // end of method Location::.ctor
+	IL_0058:  nop 
+	IL_0059:  ldloc.0 
+	IL_005a:  ldarg.0 
+	IL_005b:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_excludePatterns
+	IL_0060:  callvirt instance object class [mscorlib]System.Collections.ArrayList::Clone()
+	IL_0065:  castclass [mscorlib]System.Collections.ArrayList
+	IL_006a:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_excludePatterns
+	IL_006f:  nop 
+	IL_0070:  ldarg.0 
+	IL_0071:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludeNames
+	IL_0076:  brfalse IL_0093
 
-    // method line 2126
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string fileName)  cil managed 
-    {
-        // Method begins at RVA 0x250c4
-	// Code size 17 (0x11)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldc.i4.0 
-	IL_000a:  ldc.i4.0 
-	IL_000b:  call instance void class NAnt.Core.Location::Init(string, int32, int32)
-	IL_0010:  ret 
-    } // end of method Location::.ctor
+	IL_007b:  nop 
+	IL_007c:  ldloc.0 
+	IL_007d:  ldarg.0 
+	IL_007e:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludeNames
+	IL_0083:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
+	IL_0088:  castclass NAnt.Core.StringCollectionWithGoodToString
+	IL_008d:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludeNames
+	IL_0092:  nop 
+	IL_0093:  ldloc.0 
+	IL_0094:  ldarg.0 
+	IL_0095:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludes
+	IL_009a:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
+	IL_009f:  castclass NAnt.Core.StringCollectionWithGoodToString
+	IL_00a4:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludes
+	IL_00a9:  ldarg.0 
+	IL_00aa:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
+	IL_00af:  brfalse IL_00cc
 
-    // method line 2127
-    .method private hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x250d6
-	// Code size 17 (0x11)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldnull 
-	IL_0009:  ldc.i4.0 
-	IL_000a:  ldc.i4.0 
-	IL_000b:  call instance void class NAnt.Core.Location::Init(string, int32, int32)
-	IL_0010:  ret 
-    } // end of method Location::.ctor
+	IL_00b4:  nop 
+	IL_00b5:  ldloc.0 
+	IL_00b6:  ldarg.0 
+	IL_00b7:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
+	IL_00bc:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
+	IL_00c1:  castclass NAnt.Core.StringCollectionWithGoodToString
+	IL_00c6:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
+	IL_00cb:  nop 
+	IL_00cc:  ldarg.0 
+	IL_00cd:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_includePatterns
+	IL_00d2:  brfalse IL_00ef
 
-    // method line 2128
-    .method private hidebysig 
-           instance default void Init (string fileName, int32 lineNumber, int32 columnNumber)  cil managed 
-    {
-        // Method begins at RVA 0x250e8
-	// Code size 84 (0x54)
-	.maxstack 2
-	.locals init (
-		class [System]System.Uri	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_003e
+	IL_00d7:  nop 
+	IL_00d8:  ldloc.0 
+	IL_00d9:  ldarg.0 
+	IL_00da:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_includePatterns
+	IL_00df:  callvirt instance object class [mscorlib]System.Collections.ArrayList::Clone()
+	IL_00e4:  castclass [mscorlib]System.Collections.ArrayList
+	IL_00e9:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_includePatterns
+	IL_00ee:  nop 
+	IL_00ef:  ldarg.0 
+	IL_00f0:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includeNames
+	IL_00f5:  brfalse IL_0112
 
-	IL_0007:  nop 
-	.try { // 1
-	  IL_0008:  nop 
-	  IL_0009:  ldarg.1 
-	  IL_000a:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	  IL_000f:  stloc.0 
-	  IL_0010:  ldloc.0 
-	  IL_0011:  callvirt instance string class [System]System.Uri::get_LocalPath()
-	  IL_0016:  starg.s 1
-	  IL_0018:  nop 
-	  IL_0019:  leave IL_003d
+	IL_00fa:  nop 
+	IL_00fb:  ldloc.0 
+	IL_00fc:  ldarg.0 
+	IL_00fd:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includeNames
+	IL_0102:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
+	IL_0107:  castclass NAnt.Core.StringCollectionWithGoodToString
+	IL_010c:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includeNames
+	IL_0111:  nop 
+	IL_0112:  ldloc.0 
+	IL_0113:  ldarg.0 
+	IL_0114:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includes
+	IL_0119:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
+	IL_011e:  castclass NAnt.Core.StringCollectionWithGoodToString
+	IL_0123:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includes
+	IL_0128:  ldarg.0 
+	IL_0129:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
+	IL_012e:  brfalse IL_014b
 
-	} // end .try 1
-	catch class [mscorlib]System.Object { // 1
-	  IL_001e:  pop 
-	  IL_001f:  nop 
-	  .try { // 0
-	    IL_0020:  nop 
-	    IL_0021:  ldarg.1 
-	    IL_0022:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
-	    IL_0027:  starg.s 1
-	    IL_0029:  nop 
-	    IL_002a:  leave IL_0037
+	IL_0133:  nop 
+	IL_0134:  ldloc.0 
+	IL_0135:  ldarg.0 
+	IL_0136:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
+	IL_013b:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
+	IL_0140:  castclass NAnt.Core.DirScannerStringCollection
+	IL_0145:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
+	IL_014a:  nop 
+	IL_014b:  ldarg.0 
+	IL_014c:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
+	IL_0151:  brfalse IL_016e
 
-	  } // end .try 0
-	  catch class [mscorlib]System.ArgumentException { // 0
-	    IL_002f:  pop 
-	    IL_0030:  nop 
-	    IL_0031:  nop 
-	    IL_0032:  leave IL_0037
+	IL_0156:  nop 
+	IL_0157:  ldloc.0 
+	IL_0158:  ldarg.0 
+	IL_0159:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
+	IL_015e:  callvirt instance object class NAnt.Core.StringCollectionWithGoodToString::Clone()
+	IL_0163:  castclass NAnt.Core.DirScannerStringCollection
+	IL_0168:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
+	IL_016d:  nop 
+	IL_016e:  ldarg.0 
+	IL_016f:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
+	IL_0174:  brfalse IL_0191
 
-	  } // end handler 0
-	  IL_0037:  nop 
-	  IL_0038:  leave IL_003d
+	IL_0179:  nop 
+	IL_017a:  ldloc.0 
+	IL_017b:  ldarg.0 
+	IL_017c:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
+	IL_0181:  callvirt instance object class [mscorlib]System.Collections.ArrayList::Clone()
+	IL_0186:  castclass [mscorlib]System.Collections.ArrayList
+	IL_018b:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
+	IL_0190:  nop 
+	IL_0191:  ldloc.0 
+	IL_0192:  ldarg.0 
+	IL_0193:  ldfld bool NAnt.Core.DirectoryScanner::_caseSensitive
+	IL_0198:  stfld bool NAnt.Core.DirectoryScanner::_caseSensitive
+	IL_019d:  ldloc.0 
+	IL_019e:  stloc.1 
+	IL_019f:  br IL_01a4
 
-	} // end handler 1
-	IL_003d:  nop 
-	IL_003e:  ldarg.0 
-	IL_003f:  ldarg.1 
-	IL_0040:  stfld string NAnt.Core.Location::_fileName
-	IL_0045:  ldarg.0 
-	IL_0046:  ldarg.2 
-	IL_0047:  stfld int32 NAnt.Core.Location::_lineNumber
-	IL_004c:  ldarg.0 
-	IL_004d:  ldarg.3 
-	IL_004e:  stfld int32 NAnt.Core.Location::_columnNumber
-	IL_0053:  ret 
-    } // end of method Location::Init
+	IL_01a4:  ldloc.1 
+	IL_01a5:  ret 
+    } // end of method DirectoryScanner::Clone
 
-    // method line 2129
+    // method line 1874
     .method public hidebysig specialname 
-           instance default string get_FileName ()  cil managed 
+           instance default bool get_CaseSensitive ()  cil managed 
     {
-        // Method begins at RVA 0x25164
+        // Method begins at RVA 0x23adc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.Location::_fileName
+	IL_0002:  ldfld bool NAnt.Core.DirectoryScanner::_caseSensitive
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Location::get_FileName
+    } // end of method DirectoryScanner::get_CaseSensitive
 
-    // method line 2130
+    // method line 1875
     .method public hidebysig specialname 
-           instance default int32 get_LineNumber ()  cil managed 
+           instance default void set_CaseSensitive (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x23af7
+	// Code size 29 (0x1d)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld bool NAnt.Core.DirectoryScanner::_caseSensitive
+	IL_0008:  beq IL_001c
+
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  stfld bool NAnt.Core.DirectoryScanner::_caseSensitive
+	IL_0015:  ldarg.0 
+	IL_0016:  call instance void class NAnt.Core.DirectoryScanner::Reset()
+	IL_001b:  nop 
+	IL_001c:  ret 
+    } // end of method DirectoryScanner::set_CaseSensitive
+
+    // method line 1876
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Includes ()  cil managed 
     {
-        // Method begins at RVA 0x25180
+        // Method begins at RVA 0x23b18
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Location::_lineNumber
+	IL_0002:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includes
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Location::get_LineNumber
+    } // end of method DirectoryScanner::get_Includes
 
-    // method line 2131
+    // method line 1877
     .method public hidebysig specialname 
-           instance default int32 get_ColumnNumber ()  cil managed 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Excludes ()  cil managed 
     {
-        // Method begins at RVA 0x2519c
+        // Method begins at RVA 0x23b34
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.Location::_columnNumber
+	IL_0002:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludes
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Location::get_ColumnNumber
+    } // end of method DirectoryScanner::get_Excludes
 
-    // method line 2132
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
+    // method line 1878
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x251b8
-	// Code size 121 (0x79)
-	.maxstack 5
+        // Method begins at RVA 0x23b50
+	// Code size 54 (0x36)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		string	V_1)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldstr ""
-	IL_0006:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
-	IL_000b:  stloc.0 
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld string NAnt.Core.Location::_fileName
-	IL_0012:  brfalse IL_006b
-
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld string NAnt.Core.Location::_fileName
-	IL_001f:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0024:  pop 
-	IL_0025:  ldarg.0 
-	IL_0026:  ldfld int32 NAnt.Core.Location::_lineNumber
-	IL_002b:  brfalse IL_005e
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
+	IL_0007:  brtrue IL_0028
 
-	IL_0030:  nop 
-	IL_0031:  ldloc.0 
-	IL_0032:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0037:  ldstr "({0},{1})"
-	IL_003c:  ldarg.0 
-	IL_003d:  ldfld int32 NAnt.Core.Location::_lineNumber
-	IL_0042:  box [mscorlib]System.Int32
-	IL_0047:  ldarg.0 
-	IL_0048:  ldfld int32 NAnt.Core.Location::_columnNumber
-	IL_004d:  box [mscorlib]System.Int32
-	IL_0052:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0057:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_005c:  pop 
-	IL_005d:  nop 
-	IL_005e:  ldloc.0 
-	IL_005f:  ldstr ":"
-	IL_0064:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0069:  pop 
-	IL_006a:  nop 
-	IL_006b:  ldloc.0 
-	IL_006c:  callvirt instance string object::ToString()
-	IL_0071:  stloc.1 
-	IL_0072:  br IL_0077
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call string class [mscorlib]System.Environment::get_CurrentDirectory()
+	IL_0013:  call class [mscorlib]System.Text.StringBuilder class NAnt.Core.DirectoryScanner::CleanPath(string)
+	IL_0018:  callvirt instance string object::ToString()
+	IL_001d:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0022:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
+	IL_0027:  nop 
+	IL_0028:  ldarg.0 
+	IL_0029:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
+	IL_002e:  stloc.0 
+	IL_002f:  br IL_0034
 
-	IL_0077:  ldloc.1 
-	IL_0078:  ret 
-    } // end of method Location::ToString
+	IL_0034:  ldloc.0 
+	IL_0035:  ret 
+    } // end of method DirectoryScanner::get_BaseDirectory
 
-    // method line 2133
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+    // method line 1879
+    .method public hidebysig specialname 
+           instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2523d
-	// Code size 11 (0xb)
+        // Method begins at RVA 0x23b92
+	// Code size 60 (0x3c)
 	.maxstack 8
-	IL_0000:  newobj instance void class NAnt.Core.Location::'.ctor'()
-	IL_0005:  stsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_000a:  ret 
-    } // end of method Location::.cctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0020
 
-	.property instance string FileName ()
-	{
-		.get instance default string NAnt.Core.Location::get_FileName () 
-	}
-	.property instance int32 LineNumber ()
-	{
-		.get instance default int32 NAnt.Core.Location::get_LineNumber () 
-	}
-	.property instance int32 ColumnNumber ()
-	{
-		.get instance default int32 NAnt.Core.Location::get_ColumnNumber () 
-	}
-  } // end of class NAnt.Core.Location
-}
+	IL_0007:  nop 
+	IL_0008:  ldarg.1 
+	IL_0009:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_000e:  call class [mscorlib]System.Text.StringBuilder class NAnt.Core.DirectoryScanner::CleanPath(string)
+	IL_0013:  callvirt instance string object::ToString()
+	IL_0018:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_001d:  starg.s 1
+	IL_001f:  nop 
+	IL_0020:  ldarg.1 
+	IL_0021:  ldarg.0 
+	IL_0022:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
+	IL_0027:  beq IL_003b
 
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable beforefieldinit XmlLogger
-  	extends [mscorlib]System.Object
-  	implements NAnt.Core.IBuildLogger, [mscorlib]System.Runtime.Serialization.ISerializable, NAnt.Core.IBuildListener  {
-    .field  private initonly  class NAnt.Core.Util.StopWatchStack _stopWatchStack
-    .field  private  class [mscorlib]System.IO.TextWriter _outputWriter
-    .field  private  class [mscorlib]System.IO.StringWriter _buffer
-    .field  private  valuetype NAnt.Core.Level _threshold
-    .field  private notserialized  class [System.Xml]System.Xml.XmlTextWriter _xmlWriter
-    .field  private  class [mscorlib]System.Collections.Stack _projectStack
+	IL_002c:  nop 
+	IL_002d:  ldarg.0 
+	IL_002e:  ldarg.1 
+	IL_002f:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::_baseDirectory
+	IL_0034:  ldarg.0 
+	IL_0035:  call instance void class NAnt.Core.DirectoryScanner::Reset()
+	IL_003a:  nop 
+	IL_003b:  ret 
+    } // end of method DirectoryScanner::set_BaseDirectory
 
-    // method line 2134
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1880
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_FileNames ()  cil managed 
     {
-        // Method begins at RVA 0x25249
-	// Code size 18 (0x12)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.Core.Util.DateTimeProvider::'.ctor'()
-	IL_0006:  newobj instance void class NAnt.Core.Util.StopWatchStack::'.ctor'(class NAnt.Core.Util.DateTimeProvider)
-	IL_000b:  call instance void class NAnt.Core.XmlLogger::'.ctor'(class NAnt.Core.Util.StopWatchStack)
-	IL_0010:  nop 
-	IL_0011:  ret 
-    } // end of method XmlLogger::.ctor
+        // Method begins at RVA 0x23bd0
+	// Code size 34 (0x22)
+	.maxstack 1
+	.locals init (
+		class [System]System.Collections.Specialized.StringCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
+	IL_0007:  brtrue IL_0014
 
-    // method line 2135
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Util.StopWatchStack stopWatchStack)  cil managed 
-    {
-        // Method begins at RVA 0x2525c
-	// Code size 65 (0x41)
-	.maxstack 2
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'()
-	IL_0006:  stfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4 3000
-	IL_0011:  stfld valuetype NAnt.Core.Level NAnt.Core.XmlLogger::_threshold
-	IL_0016:  ldarg.0 
-	IL_0017:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
-	IL_001c:  stfld class [mscorlib]System.Collections.Stack NAnt.Core.XmlLogger::_projectStack
-	IL_0021:  ldarg.0 
-	IL_0022:  call instance void object::'.ctor'()
-	IL_0027:  nop 
-	IL_0028:  ldarg.0 
-	IL_0029:  ldarg.0 
-	IL_002a:  ldfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
-	IL_002f:  newobj instance void class [System.Xml]System.Xml.XmlTextWriter::'.ctor'(class [mscorlib]System.IO.TextWriter)
-	IL_0034:  stfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0039:  ldarg.0 
-	IL_003a:  ldarg.1 
-	IL_003b:  stfld class NAnt.Core.Util.StopWatchStack NAnt.Core.XmlLogger::_stopWatchStack
-	IL_0040:  ret 
-    } // end of method XmlLogger::.ctor
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance void class NAnt.Core.DirectoryScanner::Scan()
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
+	IL_001a:  stloc.0 
+	IL_001b:  br IL_0020
 
-    // method line 2136
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
-    {
-        // Method begins at RVA 0x252ac
-	// Code size 186 (0xba)
-	.maxstack 4
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'()
-	IL_0006:  stfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4 3000
-	IL_0011:  stfld valuetype NAnt.Core.Level NAnt.Core.XmlLogger::_threshold
-	IL_0016:  ldarg.0 
-	IL_0017:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
-	IL_001c:  stfld class [mscorlib]System.Collections.Stack NAnt.Core.XmlLogger::_projectStack
-	IL_0021:  ldarg.0 
-	IL_0022:  call instance void object::'.ctor'()
-	IL_0027:  nop 
-	IL_0028:  ldarg.0 
-	IL_0029:  ldarg.1 
-	IL_002a:  ldstr "OutputWriter"
-	IL_002f:  ldtoken [mscorlib]System.IO.TextWriter
-	IL_0034:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0039:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_003e:  isinst [mscorlib]System.IO.TextWriter
-	IL_0043:  stfld class [mscorlib]System.IO.TextWriter NAnt.Core.XmlLogger::_outputWriter
-	IL_0048:  ldarg.0 
-	IL_0049:  ldarg.1 
-	IL_004a:  ldstr "Buffer"
-	IL_004f:  ldtoken [mscorlib]System.IO.StringWriter
-	IL_0054:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0059:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_005e:  isinst [mscorlib]System.IO.StringWriter
-	IL_0063:  stfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
-	IL_0068:  ldarg.0 
-	IL_0069:  ldarg.1 
-	IL_006a:  ldstr "Threshold"
-	IL_006f:  ldtoken NAnt.Core.Level
-	IL_0074:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0079:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_007e:  unbox.any NAnt.Core.Level
-	IL_0083:  stfld valuetype NAnt.Core.Level NAnt.Core.XmlLogger::_threshold
-	IL_0088:  ldarg.0 
-	IL_0089:  ldarg.0 
-	IL_008a:  ldfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
-	IL_008f:  newobj instance void class [System.Xml]System.Xml.XmlTextWriter::'.ctor'(class [mscorlib]System.IO.TextWriter)
-	IL_0094:  stfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0099:  ldarg.0 
-	IL_009a:  ldarg.1 
-	IL_009b:  ldstr "ProjectStack"
-	IL_00a0:  ldtoken [mscorlib]System.Collections.Stack
-	IL_00a5:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_00aa:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
-	IL_00af:  castclass [mscorlib]System.Collections.Stack
-	IL_00b4:  stfld class [mscorlib]System.Collections.Stack NAnt.Core.XmlLogger::_projectStack
-	IL_00b9:  ret 
-    } // end of method XmlLogger::.ctor
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method DirectoryScanner::get_FileNames
 
-    // method line 2137
-    .method public final virtual hidebysig newslot 
-           instance default void GetObjectData (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
+    // method line 1881
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_DirectoryNames ()  cil managed 
     {
-        // Method begins at RVA 0x25374
-	// Code size 75 (0x4b)
-	.maxstack 3
+        // Method begins at RVA 0x23c00
+	// Code size 34 (0x22)
+	.maxstack 1
+	.locals init (
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "OutputWriter"
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld class [mscorlib]System.IO.TextWriter NAnt.Core.XmlLogger::_outputWriter
-	IL_000d:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_0012:  ldarg.1 
-	IL_0013:  ldstr "Buffer"
-	IL_0018:  ldarg.0 
-	IL_0019:  ldfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
-	IL_001e:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_0023:  ldarg.1 
-	IL_0024:  ldstr "Threshold"
-	IL_0029:  ldarg.0 
-	IL_002a:  ldfld valuetype NAnt.Core.Level NAnt.Core.XmlLogger::_threshold
-	IL_002f:  box NAnt.Core.Level
-	IL_0034:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_0039:  ldarg.1 
-	IL_003a:  ldstr "ProjectStack"
-	IL_003f:  ldarg.0 
-	IL_0040:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.XmlLogger::_projectStack
-	IL_0045:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
-	IL_004a:  ret 
-    } // end of method XmlLogger::GetObjectData
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
+	IL_0007:  brtrue IL_0014
 
-    // method line 2138
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance void class NAnt.Core.DirectoryScanner::Scan()
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
+	IL_001a:  stloc.0 
+	IL_001b:  br IL_0020
+
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method DirectoryScanner::get_DirectoryNames
+
+    // method line 1882
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_ScannedDirectories ()  cil managed 
     {
-        // Method begins at RVA 0x253cc
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x23c30
+	// Code size 34 (0x22)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
-	IL_0007:  callvirt instance string object::ToString()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
+	IL_0007:  brtrue IL_0014
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method XmlLogger::ToString
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance void class NAnt.Core.DirectoryScanner::Scan()
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
+	IL_001a:  stloc.0 
+	IL_001b:  br IL_0020
 
-    // method line 2139
-    .method public final virtual hidebysig newslot 
-           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method DirectoryScanner::get_ScannedDirectories
+
+    // method line 1883
+    .method public hidebysig specialname 
+           instance default bool get_IsEverythingIncluded ()  cil managed 
     {
-        // Method begins at RVA 0x253ec
-	// Code size 102 (0x66)
-	.maxstack 3
+        // Method begins at RVA 0x23c60
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		object	V_0,
-		bool	V_1)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0002:  ldfld bool NAnt.Core.DirectoryScanner::_isEverythingIncluded
 	IL_0007:  stloc.0 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  stloc.1 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DirectoryScanner::get_IsEverythingIncluded
+
+    // method line 1884
+    .method public hidebysig 
+           instance default void Scan ()  cil managed 
+    {
+        // Method begins at RVA 0x23c7c
+	// Code size 234 (0xea)
+	.maxstack 5
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0007:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_includePatterns
+	IL_000c:  ldarg.0 
+	IL_000d:  newobj instance void class NAnt.Core.StringCollectionWithGoodToString::'.ctor'()
+	IL_0012:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includeNames
+	IL_0017:  ldarg.0 
+	IL_0018:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_001d:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_excludePatterns
+	IL_0022:  ldarg.0 
+	IL_0023:  newobj instance void class NAnt.Core.StringCollectionWithGoodToString::'.ctor'()
+	IL_0028:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludeNames
+	IL_002d:  ldarg.0 
+	IL_002e:  newobj instance void class NAnt.Core.StringCollectionWithGoodToString::'.ctor'()
+	IL_0033:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
+	IL_0038:  ldarg.0 
+	IL_0039:  ldarg.0 
+	IL_003a:  call instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
+	IL_003f:  newobj instance void class NAnt.Core.DirScannerStringCollection::'.ctor'(bool)
+	IL_0044:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
+	IL_0049:  ldarg.0 
+	IL_004a:  ldarg.0 
+	IL_004b:  call instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
+	IL_0050:  newobj instance void class NAnt.Core.DirScannerStringCollection::'.ctor'(bool)
+	IL_0055:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
+	IL_005a:  ldarg.0 
+	IL_005b:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0060:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
+	IL_0065:  ldarg.0 
+	IL_0066:  ldarg.0 
+	IL_0067:  call instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
+	IL_006c:  newobj instance void class NAnt.Core.DirScannerStringCollection::'.ctor'(bool)
+	IL_0071:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
+	IL_0076:  ldarg.0 
+	IL_0077:  ldarg.0 
+	IL_0078:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includes
+	IL_007d:  ldarg.0 
+	IL_007e:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_includePatterns
+	IL_0083:  ldarg.0 
+	IL_0084:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includeNames
+	IL_0089:  ldc.i4.1 
+	IL_008a:  call instance void class NAnt.Core.DirectoryScanner::ConvertPatterns(class [System]System.Collections.Specialized.StringCollection, class [mscorlib]System.Collections.ArrayList, class [System]System.Collections.Specialized.StringCollection, bool)
+	IL_008f:  ldarg.0 
+	IL_0090:  ldarg.0 
+	IL_0091:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludes
+	IL_0096:  ldarg.0 
+	IL_0097:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_excludePatterns
+	IL_009c:  ldarg.0 
+	IL_009d:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludeNames
+	IL_00a2:  ldc.i4.0 
+	IL_00a3:  call instance void class NAnt.Core.DirectoryScanner::ConvertPatterns(class [System]System.Collections.Specialized.StringCollection, class [mscorlib]System.Collections.ArrayList, class [System]System.Collections.Specialized.StringCollection, bool)
+	IL_00a8:  ldc.i4.0 
+	IL_00a9:  stloc.0 
+	IL_00aa:  br IL_00d8
+
+	IL_00af:  nop 
+	IL_00b0:  ldarg.0 
+	IL_00b1:  ldarg.0 
+	IL_00b2:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
+	IL_00b7:  ldloc.0 
+	IL_00b8:  callvirt instance string class [System]System.Collections.Specialized.StringCollection::get_Item(int32)
+	IL_00bd:  ldarg.0 
+	IL_00be:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
+	IL_00c3:  ldloc.0 
+	IL_00c4:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	IL_00c9:  unbox.any [mscorlib]System.Boolean
+	IL_00ce:  call instance void class NAnt.Core.DirectoryScanner::ScanDirectory(string, bool)
+	IL_00d3:  nop 
+	IL_00d4:  ldloc.0 
+	IL_00d5:  ldc.i4.1 
+	IL_00d6:  add 
+	IL_00d7:  stloc.0 
+	IL_00d8:  ldloc.0 
+	IL_00d9:  ldarg.0 
+	IL_00da:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
+	IL_00df:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_00e4:  blt IL_00af
+
+	IL_00e9:  ret 
+    } // end of method DirectoryScanner::Scan
+
+    // method line 1885
+    .method private hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x23d74
+	// Code size 72 (0x48)
+	.maxstack 2
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.1 
+	IL_0003:  stfld bool NAnt.Core.DirectoryScanner::_isEverythingIncluded
+	IL_0008:  ldarg.0 
+	IL_0009:  ldnull 
+	IL_000a:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_includePatterns
+	IL_000f:  ldarg.0 
+	IL_0010:  ldnull 
+	IL_0011:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includeNames
+	IL_0016:  ldarg.0 
+	IL_0017:  ldnull 
+	IL_0018:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_excludePatterns
+	IL_001d:  ldarg.0 
+	IL_001e:  ldnull 
+	IL_001f:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludeNames
+	IL_0024:  ldarg.0 
+	IL_0025:  ldnull 
+	IL_0026:  stfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
+	IL_002b:  ldarg.0 
+	IL_002c:  ldnull 
+	IL_002d:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
+	IL_0032:  ldarg.0 
+	IL_0033:  ldnull 
+	IL_0034:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
+	IL_0039:  ldarg.0 
+	IL_003a:  ldnull 
+	IL_003b:  stfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
+	IL_0040:  ldarg.0 
+	IL_0041:  ldnull 
+	IL_0042:  stfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
+	IL_0047:  ret 
+    } // end of method DirectoryScanner::Reset
+
+    // method line 1886
+    .method private hidebysig 
+           instance default void ConvertPatterns (class [System]System.Collections.Specialized.StringCollection nantPatterns, class [mscorlib]System.Collections.ArrayList regexPatterns, class [System]System.Collections.Specialized.StringCollection nonRegexFiles, bool addSearchDirectories)  cil managed 
+    {
+        // Method begins at RVA 0x23dc8
+	// Code size 345 (0x159)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		string	V_1,
+		bool	V_2,
+		bool	V_3,
+		string	V_4,
+		class [System]System.Collections.Specialized.StringEnumerator	V_5,
+		class NAnt.Core.DirectoryScanner/RegexEntry	V_6,
+		string	V_7,
+		int32	V_8,
+		class [mscorlib]System.IDisposable	V_9)
+	IL_0000:  nop 
+	IL_0001:  nop 
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0008:  stloc.s 5
 	.try { // 0
-	  IL_000a:  ldloc.0 
-	  IL_000b:  ldloca.s 1
-	  IL_000d:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
-	  IL_0012:  nop 
-	  IL_0013:  ldarg.0 
-	  IL_0014:  ldfld class NAnt.Core.Util.StopWatchStack NAnt.Core.XmlLogger::_stopWatchStack
-	  IL_0019:  callvirt instance void class NAnt.Core.Util.StopWatchStack::PushStart()
-	  IL_001e:  ldarg.0 
-	  IL_001f:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_0024:  ldstr "buildresults"
-	  IL_0029:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
-	  IL_002e:  ldarg.0 
-	  IL_002f:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_0034:  ldstr "project"
-	  IL_0039:  ldarg.2 
-	  IL_003a:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
-	  IL_003f:  callvirt instance string class NAnt.Core.Project::get_ProjectName()
-	  IL_0044:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteAttributeString(string, string)
-	  IL_0049:  nop 
-	  IL_004a:  leave IL_0059
+	  IL_000a:  br IL_0130
+
+	  IL_000f:  ldloc.s 5
+	  IL_0011:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0016:  stloc.s 4
+	  IL_0018:  nop 
+	  IL_0019:  ldarg.0 
+	  IL_001a:  ldarg.s 4
+	  IL_001c:  ldloc.s 4
+	  IL_001e:  ldloca.s 0
+	  IL_0020:  ldloca.s 2
+	  IL_0022:  ldloca.s 3
+	  IL_0024:  ldloca.s 1
+	  IL_0026:  call instance void class NAnt.Core.DirectoryScanner::ParseSearchDirectoryAndPattern(bool, string, [out] string&, [out] bool&, [out] bool&, [out] string&)
+	  IL_002b:  ldloc.3 
+	  IL_002c:  brfalse IL_008f
+
+	  IL_0031:  nop 
+	  IL_0032:  newobj instance void class NAnt.Core.DirectoryScanner/RegexEntry::'.ctor'()
+	  IL_0037:  stloc.s 6
+	  IL_0039:  ldloc.s 6
+	  IL_003b:  ldloc.2 
+	  IL_003c:  stfld bool NAnt.Core.DirectoryScanner/RegexEntry::IsRecursive
+	  IL_0041:  ldloc.s 6
+	  IL_0043:  ldloc.0 
+	  IL_0044:  stfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
+	  IL_0049:  ldloc.s 6
+	  IL_004b:  ldloc.1 
+	  IL_004c:  stfld string NAnt.Core.DirectoryScanner/RegexEntry::Pattern
+	  IL_0051:  ldloc.1 
+	  IL_0052:  ldstr "**/*"
+	  IL_0057:  callvirt instance bool string::EndsWith(string)
+	  IL_005c:  brtrue IL_0071
+
+	  IL_0061:  ldloc.1 
+	  IL_0062:  ldstr "**\\*"
+	  IL_0067:  callvirt instance bool string::EndsWith(string)
+	  IL_006c:  brfalse IL_0080
+
+	  IL_0071:  ldsfld class [log4net]log4net.ILog NAnt.Core.DirectoryScanner::logger
+	  IL_0076:  ldstr "**/* pattern may not produce desired results"
+	  IL_007b:  callvirt instance void class [log4net]log4net.ILog::Warn(object)
+	  IL_0080:  ldarg.2 
+	  IL_0081:  ldloc.s 6
+	  IL_0083:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0088:  pop 
+	  IL_0089:  nop 
+	  IL_008a:  br IL_00b2
+
+	  IL_008f:  nop 
+	  IL_0090:  ldloc.0 
+	  IL_0091:  ldloc.1 
+	  IL_0092:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_0097:  stloc.s 7
+	  IL_0099:  ldarg.3 
+	  IL_009a:  ldloc.s 7
+	  IL_009c:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	  IL_00a1:  brtrue IL_00b1
+
+	  IL_00a6:  nop 
+	  IL_00a7:  ldarg.3 
+	  IL_00a8:  ldloc.s 7
+	  IL_00aa:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_00af:  pop 
+	  IL_00b0:  nop 
+	  IL_00b1:  nop 
+	  IL_00b2:  ldarg.s 4
+	  IL_00b4:  brtrue IL_00bf
+
+	  IL_00b9:  nop 
+	  IL_00ba:  leave IL_0130
+
+	  IL_00bf:  ldarg.0 
+	  IL_00c0:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
+	  IL_00c5:  ldloc.0 
+	  IL_00c6:  callvirt instance int32 class NAnt.Core.DirScannerStringCollection::IndexOf(string)
+	  IL_00cb:  stloc.s 8
+	  IL_00cd:  ldloc.s 8
+	  IL_00cf:  ldc.i4.m1 
+	  IL_00d0:  ble IL_010e
+
+	  IL_00d5:  nop 
+	  IL_00d6:  ldarg.0 
+	  IL_00d7:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
+	  IL_00dc:  ldloc.s 8
+	  IL_00de:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	  IL_00e3:  unbox.any [mscorlib]System.Boolean
+	  IL_00e8:  brtrue IL_0108
+
+	  IL_00ed:  ldloc.2 
+	  IL_00ee:  brfalse IL_0108
+
+	  IL_00f3:  nop 
+	  IL_00f4:  ldarg.0 
+	  IL_00f5:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
+	  IL_00fa:  ldloc.s 8
+	  IL_00fc:  ldloc.2 
+	  IL_00fd:  box [mscorlib]System.Boolean
+	  IL_0102:  callvirt instance void class [mscorlib]System.Collections.ArrayList::set_Item(int32, object)
+	  IL_0107:  nop 
+	  IL_0108:  nop 
+	  IL_0109:  br IL_012f
+
+	  IL_010e:  nop 
+	  IL_010f:  ldarg.0 
+	  IL_0110:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_searchDirectories
+	  IL_0115:  ldloc.0 
+	  IL_0116:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_011b:  pop 
+	  IL_011c:  ldarg.0 
+	  IL_011d:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_searchDirIsRecursive
+	  IL_0122:  ldloc.2 
+	  IL_0123:  box [mscorlib]System.Boolean
+	  IL_0128:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_012d:  pop 
+	  IL_012e:  nop 
+	  IL_012f:  nop 
+	  IL_0130:  ldloc.s 5
+	  IL_0132:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0137:  brtrue IL_000f
+
+	  IL_013c:  leave IL_0158
 
 	} // end .try 0
 	finally  { // 0
-	  IL_004f:  ldloc.1 
-	  IL_0050:  brfalse.s IL_0058
+	  IL_0141:  ldloc.s 5
+	  IL_0143:  isinst [mscorlib]System.IDisposable
+	  IL_0148:  dup 
+	  IL_0149:  stloc.s 9
+	  IL_014b:  brfalse IL_0157
 
-	  IL_0052:  ldloc.0 
-	  IL_0053:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_0058:  endfinally 
+	  IL_0150:  ldloc.s 9
+	  IL_0152:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0157:  endfinally 
 	} // end handler 0
-	IL_0059:  ldarg.0 
-	IL_005a:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.XmlLogger::_projectStack
-	IL_005f:  ldnull 
-	IL_0060:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
-	IL_0065:  ret 
-    } // end of method XmlLogger::BuildStarted
+	IL_0158:  ret 
+    } // end of method DirectoryScanner::ConvertPatterns
 
-    // method line 2140
-    .method public final virtual hidebysig newslot 
-           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    // method line 1887
+    .method private hidebysig 
+           instance default void ParseSearchDirectoryAndPattern (bool isInclude, string originalNAntPattern, [out] string& searchDirectory, [out] bool& recursive, [out] bool& isRegex, [out] string& regexPattern)  cil managed 
     {
-        // Method begins at RVA 0x25470
-	// Code size 332 (0x14c)
+        // Method begins at RVA 0x23f4c
+	// Code size 492 (0x1ec)
+	.maxstack 5
+	.locals init (
+		string	V_0,
+		int32	V_1,
+		int32	V_2,
+		char[]	V_3,
+		int32	V_4,
+		int32	V_5,
+		char	V_6,
+		bool	V_7,
+		string	V_8)
+	IL_0000:  nop 
+	IL_0001:  ldarg.2 
+	IL_0002:  stloc.0 
+	IL_0003:  ldloc.0 
+	IL_0004:  ldc.i4.s 0x5c
+	IL_0006:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_000b:  callvirt instance string string::Replace(char, char)
+	IL_0010:  stloc.0 
+	IL_0011:  ldloc.0 
+	IL_0012:  ldc.i4.s 0x2f
+	IL_0014:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_0019:  callvirt instance string string::Replace(char, char)
+	IL_001e:  stloc.0 
+	IL_001f:  ldloc.0 
+	IL_0020:  ldstr "**"
+	IL_0025:  callvirt instance int32 string::IndexOf(string)
+	IL_002a:  stloc.1 
+	IL_002b:  ldloc.0 
+	IL_002c:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_0031:  callvirt instance int32 string::LastIndexOf(char)
+	IL_0036:  stloc.2 
+	IL_0037:  ldc.i4.2 
+	IL_0038:  newarr [mscorlib]System.Char
+	IL_003d:  dup 
+	IL_003e:  ldc.i4.0 
+	IL_003f:  ldc.i4.s 0x3f
+	IL_0041:  stelem.i2 
+	IL_0042:  dup 
+	IL_0043:  ldc.i4.1 
+	IL_0044:  ldc.i4.s 0x2a
+	IL_0046:  stelem.i2 
+	IL_0047:  stloc.3 
+	IL_0048:  ldloc.0 
+	IL_0049:  ldloc.3 
+	IL_004a:  callvirt instance int32 string::IndexOfAny(char[])
+	IL_004f:  stloc.s 4
+	IL_0051:  ldloc.s 4
+	IL_0053:  ldc.i4.m1 
+	IL_0054:  beq IL_0065
+
+	IL_0059:  nop 
+	IL_005a:  ldloc.0 
+	IL_005b:  ldc.i4.0 
+	IL_005c:  ldloc.s 4
+	IL_005e:  callvirt instance string string::Substring(int32, int32)
+	IL_0063:  stloc.0 
+	IL_0064:  nop 
+	IL_0065:  ldloc.0 
+	IL_0066:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_006b:  callvirt instance int32 string::LastIndexOf(char)
+	IL_0070:  stloc.s 5
+	IL_0072:  ldarg.s 4
+	IL_0074:  ldloc.s 4
+	IL_0076:  ldc.i4.m1 
+	IL_0077:  beq IL_0084
+
+	IL_007c:  ldloc.s 4
+	IL_007e:  ldloc.2 
+	IL_007f:  blt IL_008d
+
+	IL_0084:  ldloc.1 
+	IL_0085:  ldc.i4.m1 
+	IL_0086:  ceq 
+	IL_0088:  ldc.i4.0 
+	IL_0089:  ceq 
+	IL_008b:  br.s IL_008e
+
+	IL_008d:  ldc.i4.1 
+	IL_008e:  stind.i1 
+	IL_008f:  ldloc.s 5
+	IL_0091:  ldc.i4.m1 
+	IL_0092:  beq IL_00d8
+
+	IL_0097:  nop 
+	IL_0098:  ldarg.2 
+	IL_0099:  ldc.i4.0 
+	IL_009a:  ldloc.s 5
+	IL_009c:  callvirt instance string string::Substring(int32, int32)
+	IL_00a1:  stloc.0 
+	IL_00a2:  ldloc.0 
+	IL_00a3:  callvirt instance int32 string::get_Length()
+	IL_00a8:  ldc.i4.2 
+	IL_00a9:  bne.un IL_00d2
+
+	IL_00ae:  ldloc.0 
+	IL_00af:  ldc.i4.1 
+	IL_00b0:  callvirt instance char string::get_Chars(int32)
+	IL_00b5:  ldsfld char [mscorlib]System.IO.Path::VolumeSeparatorChar
+	IL_00ba:  bne.un IL_00d2
+
+	IL_00bf:  nop 
+	IL_00c0:  ldloc.0 
+	IL_00c1:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_00c6:  box [mscorlib]System.Char
+	IL_00cb:  call string string::Concat(object, object)
+	IL_00d0:  stloc.0 
+	IL_00d1:  nop 
+	IL_00d2:  nop 
+	IL_00d3:  br IL_00e0
+
+	IL_00d8:  nop 
+	IL_00d9:  ldsfld string [mscorlib]System.String::Empty
+	IL_00de:  stloc.0 
+	IL_00df:  nop 
+	IL_00e0:  ldloc.0 
+	IL_00e1:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_00e6:  brfalse IL_00ff
+
+	IL_00eb:  nop 
+	IL_00ec:  ldarg.3 
+	IL_00ed:  ldloc.0 
+	IL_00ee:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_00f3:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00f8:  stind.ref 
+	IL_00f9:  nop 
+	IL_00fa:  br IL_011e
+
+	IL_00ff:  nop 
+	IL_0100:  ldarg.3 
+	IL_0101:  ldarg.0 
+	IL_0102:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.DirectoryScanner::get_BaseDirectory()
+	IL_0107:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_010c:  ldloc.0 
+	IL_010d:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0112:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0117:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_011c:  stind.ref 
+	IL_011d:  nop 
+	IL_011e:  ldarg.3 
+	IL_011f:  ldind.ref 
+	IL_0120:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_0125:  stloc.s 6
+	IL_0127:  ldloca.s 6
+	IL_0129:  constrained. [mscorlib]System.Char
+	IL_012f:  callvirt instance string object::ToString()
+	IL_0134:  callvirt instance bool string::EndsWith(string)
+	IL_0139:  brfalse IL_0172
+
+	IL_013e:  ldarg.3 
+	IL_013f:  ldind.ref 
+	IL_0140:  callvirt instance int32 string::get_Length()
+	IL_0145:  ldc.i4.3 
+	IL_0146:  bne.un IL_015d
+
+	IL_014b:  ldarg.3 
+	IL_014c:  ldind.ref 
+	IL_014d:  ldc.i4.1 
+	IL_014e:  callvirt instance char string::get_Chars(int32)
+	IL_0153:  ldsfld char [mscorlib]System.IO.Path::VolumeSeparatorChar
+	IL_0158:  beq IL_0172
+
+	IL_015d:  nop 
+	IL_015e:  ldarg.3 
+	IL_015f:  ldarg.3 
+	IL_0160:  ldind.ref 
+	IL_0161:  ldc.i4.0 
+	IL_0162:  ldarg.3 
+	IL_0163:  ldind.ref 
+	IL_0164:  callvirt instance int32 string::get_Length()
+	IL_0169:  ldc.i4.1 
+	IL_016a:  sub 
+	IL_016b:  callvirt instance string string::Substring(int32, int32)
+	IL_0170:  stind.ref 
+	IL_0171:  nop 
+	IL_0172:  ldloc.2 
+	IL_0173:  ldc.i4.m1 
+	IL_0174:  beq IL_0186
+
+	IL_0179:  ldloc.2 
+	IL_017a:  ldarg.2 
+	IL_017b:  callvirt instance int32 string::get_Length()
+	IL_0180:  ldc.i4.1 
+	IL_0181:  sub 
+	IL_0182:  ceq 
+	IL_0184:  br.s IL_0187
+
+	IL_0186:  ldc.i4.0 
+	IL_0187:  stloc.s 7
+	IL_0189:  ldloc.s 4
+	IL_018b:  ldc.i4.m1 
+	IL_018c:  bne.un IL_01b6
+
+	IL_0191:  ldloc.s 7
+	IL_0193:  brtrue IL_01b6
+
+	IL_0198:  nop 
+	IL_0199:  ldarg.s 6
+	IL_019b:  ldarg.0 
+	IL_019c:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.DirectoryScanner::get_BaseDirectory()
+	IL_01a1:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_01a6:  ldarg.2 
+	IL_01a7:  call string class NAnt.Core.DirectoryScanner::CleanPath(string, string)
+	IL_01ac:  stind.ref 
+	IL_01ad:  ldarg.s 5
+	IL_01af:  ldc.i4.0 
+	IL_01b0:  stind.i1 
+	IL_01b1:  br IL_01eb
+
+	IL_01b6:  ldarg.2 
+	IL_01b7:  ldloc.s 5
+	IL_01b9:  ldc.i4.1 
+	IL_01ba:  add 
+	IL_01bb:  callvirt instance string string::Substring(int32)
+	IL_01c0:  stloc.s 8
+	IL_01c2:  ldloc.s 7
+	IL_01c4:  brfalse IL_01dd
+
+	IL_01c9:  nop 
+	IL_01ca:  ldloc.s 8
+	IL_01cc:  ldstr "**"
+	IL_01d1:  call string string::Concat(string, string)
+	IL_01d6:  stloc.s 8
+	IL_01d8:  ldarg.s 4
+	IL_01da:  ldc.i4.1 
+	IL_01db:  stind.i1 
+	IL_01dc:  nop 
+	IL_01dd:  ldarg.s 6
+	IL_01df:  ldloc.s 8
+	IL_01e1:  call string class NAnt.Core.DirectoryScanner::ToRegexPattern(string)
+	IL_01e6:  stind.ref 
+	IL_01e7:  ldarg.s 5
+	IL_01e9:  ldc.i4.1 
+	IL_01ea:  stind.i1 
+	IL_01eb:  ret 
+    } // end of method DirectoryScanner::ParseSearchDirectoryAndPattern
+
+    // method line 1888
+    .method private hidebysig 
+           instance default void ScanDirectory (string path, bool recursive)  cil managed 
+    {
+        // Method begins at RVA 0x24144
+	// Code size 795 (0x31b)
 	.maxstack 4
 	.locals init (
-		object	V_0,
-		bool	V_1,
-		string	V_2,
-		class [mscorlib]System.IO.StreamWriter	V_3,
-		class [mscorlib]System.Exception	V_4)
+		class [mscorlib]System.IO.DirectoryInfo	V_0,
+		valuetype [mscorlib]System.Globalization.CompareOptions	V_1,
+		class [mscorlib]System.Globalization.CompareInfo	V_2,
+		class [mscorlib]System.Collections.ArrayList	V_3,
+		class [mscorlib]System.Collections.ArrayList	V_4,
+		class NAnt.Core.DirectoryScanner/RegexEntry	V_5,
+		class [mscorlib]System.Collections.IEnumerator	V_6,
+		string	V_7,
+		char	V_8,
+		class [mscorlib]System.IDisposable	V_9,
+		class NAnt.Core.DirectoryScanner/RegexEntry	V_10,
+		class [mscorlib]System.Collections.IEnumerator	V_11,
+		string	V_12,
+		char	V_13,
+		class [mscorlib]System.IDisposable	V_14,
+		class [mscorlib]System.IO.DirectoryInfo	V_15,
+		class [mscorlib]System.IO.DirectoryInfo[]	V_16,
+		int32	V_17,
+		class [mscorlib]System.IO.FileInfo	V_18,
+		class [mscorlib]System.IO.FileInfo[]	V_19,
+		int32	V_20,
+		string	V_21)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0007:  stloc.0 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  stloc.1 
+	IL_0002:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class NAnt.Core.DirScannerStringCollection::Contains(string)
+	IL_000d:  brfalse IL_0018
+
+	IL_0012:  nop 
+	IL_0013:  br IL_031a
+
+	IL_0018:  ldarg.0 
+	IL_0019:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_scannedDirectories
+	IL_001e:  ldarg.1 
+	IL_001f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0024:  pop 
+	IL_0025:  ldarg.1 
+	IL_0026:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_002b:  brtrue IL_0036
+
+	IL_0030:  nop 
+	IL_0031:  br IL_031a
+
+	IL_0036:  ldarg.1 
+	IL_0037:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_003c:  stloc.0 
+	IL_003d:  ldc.i4.0 
+	IL_003e:  stloc.1 
+	IL_003f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0044:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
+	IL_0049:  stloc.2 
+	IL_004a:  ldarg.0 
+	IL_004b:  call instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
+	IL_0050:  brtrue IL_0059
+
+	IL_0055:  ldloc.1 
+	IL_0056:  ldc.i4.1 
+	IL_0057:  or 
+	IL_0058:  stloc.1 
+	IL_0059:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_005e:  stloc.3 
+	IL_005f:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0064:  stloc.s 4
+	IL_0066:  nop 
+	IL_0067:  ldarg.0 
+	IL_0068:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_includePatterns
+	IL_006d:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0072:  stloc.s 6
 	.try { // 0
-	  IL_000a:  ldloc.0 
-	  IL_000b:  ldloca.s 1
-	  IL_000d:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
-	  IL_0012:  nop 
-	  IL_0013:  ldarg.2 
-	  IL_0014:  callvirt instance class [mscorlib]System.Exception class NAnt.Core.BuildEventArgs::get_Exception()
-	  IL_0019:  brfalse IL_0047
+	  IL_0074:  br IL_0114
 
-	  IL_001e:  nop 
-	  IL_001f:  ldarg.0 
-	  IL_0020:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_0025:  ldstr "failure"
-	  IL_002a:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
-	  IL_002f:  ldarg.0 
-	  IL_0030:  ldarg.2 
-	  IL_0031:  callvirt instance class [mscorlib]System.Exception class NAnt.Core.BuildEventArgs::get_Exception()
-	  IL_0036:  call instance void class NAnt.Core.XmlLogger::WriteErrorNode(class [mscorlib]System.Exception)
-	  IL_003b:  ldarg.0 
-	  IL_003c:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_0041:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
-	  IL_0046:  nop 
-	  IL_0047:  ldarg.0 
-	  IL_0048:  call instance void class NAnt.Core.XmlLogger::WriteDuration()
-	  IL_004d:  ldarg.0 
-	  IL_004e:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_0053:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
-	  IL_0058:  ldarg.0 
-	  IL_0059:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_005e:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::Flush()
-	  IL_0063:  nop 
-	  IL_0064:  leave IL_0073
+	  IL_0079:  ldloc.s 6
+	  IL_007b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0080:  castclass NAnt.Core.DirectoryScanner/RegexEntry
+	  IL_0085:  stloc.s 5
+	  IL_0087:  nop 
+	  IL_0088:  ldloc.s 5
+	  IL_008a:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
+	  IL_008f:  stloc.s 7
+	  IL_0091:  ldloc.2 
+	  IL_0092:  ldarg.1 
+	  IL_0093:  ldloc.s 7
+	  IL_0095:  ldloc.1 
+	  IL_0096:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::Compare(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
+	  IL_009b:  brtrue IL_00b0
+
+	  IL_00a0:  nop 
+	  IL_00a1:  ldloc.3 
+	  IL_00a2:  ldloc.s 5
+	  IL_00a4:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_00a9:  pop 
+	  IL_00aa:  nop 
+	  IL_00ab:  br IL_0113
+
+	  IL_00b0:  nop 
+	  IL_00b1:  ldloc.s 5
+	  IL_00b3:  ldfld bool NAnt.Core.DirectoryScanner/RegexEntry::IsRecursive
+	  IL_00b8:  brtrue IL_00c3
+
+	  IL_00bd:  nop 
+	  IL_00be:  leave IL_0114
+
+	  IL_00c3:  ldloc.s 7
+	  IL_00c5:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	  IL_00ca:  stloc.s 8
+	  IL_00cc:  ldloca.s 8
+	  IL_00ce:  constrained. [mscorlib]System.Char
+	  IL_00d4:  callvirt instance string object::ToString()
+	  IL_00d9:  callvirt instance bool string::EndsWith(string)
+	  IL_00de:  brtrue IL_00f8
+
+	  IL_00e3:  nop 
+	  IL_00e4:  ldloc.s 7
+	  IL_00e6:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	  IL_00eb:  box [mscorlib]System.Char
+	  IL_00f0:  call string string::Concat(object, object)
+	  IL_00f5:  stloc.s 7
+	  IL_00f7:  nop 
+	  IL_00f8:  ldloc.2 
+	  IL_00f9:  ldarg.1 
+	  IL_00fa:  ldloc.s 7
+	  IL_00fc:  ldloc.1 
+	  IL_00fd:  callvirt instance bool class [mscorlib]System.Globalization.CompareInfo::IsPrefix(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
+	  IL_0102:  brfalse IL_0112
+
+	  IL_0107:  nop 
+	  IL_0108:  ldloc.3 
+	  IL_0109:  ldloc.s 5
+	  IL_010b:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0110:  pop 
+	  IL_0111:  nop 
+	  IL_0112:  nop 
+	  IL_0113:  nop 
+	  IL_0114:  ldloc.s 6
+	  IL_0116:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_011b:  brtrue IL_0079
+
+	  IL_0120:  leave IL_013c
 
 	} // end .try 0
 	finally  { // 0
-	  IL_0069:  ldloc.1 
-	  IL_006a:  brfalse.s IL_0072
+	  IL_0125:  ldloc.s 6
+	  IL_0127:  isinst [mscorlib]System.IDisposable
+	  IL_012c:  dup 
+	  IL_012d:  stloc.s 9
+	  IL_012f:  brfalse IL_013b
 
-	  IL_006c:  ldloc.0 
-	  IL_006d:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_0072:  endfinally 
+	  IL_0134:  ldloc.s 9
+	  IL_0136:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_013b:  endfinally 
 	} // end handler 0
-	IL_0073:  ldarg.0 
-	IL_0074:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.XmlLogger::_projectStack
-	IL_0079:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
-	IL_007e:  pop 
-	IL_007f:  ldarg.0 
-	IL_0080:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.XmlLogger::_projectStack
-	IL_0085:  callvirt instance int32 class [mscorlib]System.Collections.Stack::get_Count()
-	IL_008a:  brfalse IL_0095
+	IL_013c:  nop 
+	IL_013d:  ldarg.0 
+	IL_013e:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.Core.DirectoryScanner::_excludePatterns
+	IL_0143:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0148:  stloc.s 11
+	.try { // 1
+	  IL_014a:  br IL_01fd
 
-	IL_008f:  nop 
-	IL_0090:  br IL_014b
+	  IL_014f:  ldloc.s 11
+	  IL_0151:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0156:  castclass NAnt.Core.DirectoryScanner/RegexEntry
+	  IL_015b:  stloc.s 10
+	  IL_015d:  nop 
+	  IL_015e:  ldloc.s 10
+	  IL_0160:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
+	  IL_0165:  stloc.s 12
+	  IL_0167:  ldloc.s 10
+	  IL_0169:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
+	  IL_016e:  callvirt instance int32 string::get_Length()
+	  IL_0173:  brfalse IL_0187
 
-	.try { // 2
-	  IL_0095:  nop 
-	  IL_0096:  ldarg.0 
-	  IL_0097:  call instance class [mscorlib]System.IO.TextWriter class NAnt.Core.XmlLogger::get_OutputWriter()
-	  IL_009c:  brfalse IL_00c9
+	  IL_0178:  ldloc.2 
+	  IL_0179:  ldarg.1 
+	  IL_017a:  ldloc.s 12
+	  IL_017c:  ldloc.1 
+	  IL_017d:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::Compare(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
+	  IL_0182:  brtrue IL_0198
 
-	  IL_00a1:  nop 
-	  IL_00a2:  ldarg.0 
-	  IL_00a3:  call instance class [mscorlib]System.IO.TextWriter class NAnt.Core.XmlLogger::get_OutputWriter()
-	  IL_00a8:  ldarg.0 
-	  IL_00a9:  ldfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
-	  IL_00ae:  callvirt instance string object::ToString()
-	  IL_00b3:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string)
-	  IL_00b8:  ldarg.0 
-	  IL_00b9:  call instance class [mscorlib]System.IO.TextWriter class NAnt.Core.XmlLogger::get_OutputWriter()
-	  IL_00be:  callvirt instance void class [mscorlib]System.IO.TextWriter::Flush()
-	  IL_00c3:  nop 
-	  IL_00c4:  br IL_0135
+	  IL_0187:  nop 
+	  IL_0188:  ldloc.s 4
+	  IL_018a:  ldloc.s 10
+	  IL_018c:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0191:  pop 
+	  IL_0192:  nop 
+	  IL_0193:  br IL_01fc
 
-	  IL_00c9:  nop 
-	  IL_00ca:  ldarg.2 
-	  IL_00cb:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
-	  IL_00d0:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	  IL_00d5:  ldstr "XmlLogger.file"
-	  IL_00da:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
-	  IL_00df:  stloc.2 
-	  IL_00e0:  ldloc.2 
-	  IL_00e1:  brtrue IL_00ee
+	  IL_0198:  nop 
+	  IL_0199:  ldloc.s 10
+	  IL_019b:  ldfld bool NAnt.Core.DirectoryScanner/RegexEntry::IsRecursive
+	  IL_01a0:  brtrue IL_01ab
 
-	  IL_00e6:  nop 
-	  IL_00e7:  ldstr "log.xml"
-	  IL_00ec:  stloc.2 
-	  IL_00ed:  nop 
-	  IL_00ee:  ldarg.2 
-	  IL_00ef:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
-	  IL_00f4:  ldloc.2 
-	  IL_00f5:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
-	  IL_00fa:  stloc.2 
-	  IL_00fb:  ldloc.2 
-	  IL_00fc:  ldc.i4.2 
-	  IL_00fd:  ldc.i4.2 
-	  IL_00fe:  ldc.i4.1 
-	  IL_00ff:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode, valuetype [mscorlib]System.IO.FileAccess, valuetype [mscorlib]System.IO.FileShare)
-	  IL_0104:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_UTF8()
-	  IL_0109:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(class [mscorlib]System.IO.Stream, class [mscorlib]System.Text.Encoding)
-	  IL_010e:  stloc.3 
-	  .try { // 1
-	    IL_010f:  nop 
-	    IL_0110:  ldloc.3 
-	    IL_0111:  ldarg.0 
-	    IL_0112:  ldfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
-	    IL_0117:  callvirt instance string object::ToString()
-	    IL_011c:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string)
-	    IL_0121:  nop 
-	    IL_0122:  leave IL_0134
+	  IL_01a5:  nop 
+	  IL_01a6:  leave IL_01fd
 
-	  } // end .try 1
-	  finally  { // 1
-	    IL_0127:  ldloc.3 
-	    IL_0128:  brfalse IL_0133
+	  IL_01ab:  ldloc.s 12
+	  IL_01ad:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	  IL_01b2:  stloc.s 13
+	  IL_01b4:  ldloca.s 13
+	  IL_01b6:  constrained. [mscorlib]System.Char
+	  IL_01bc:  callvirt instance string object::ToString()
+	  IL_01c1:  callvirt instance bool string::EndsWith(string)
+	  IL_01c6:  brtrue IL_01e0
 
-	    IL_012d:  ldloc.3 
-	    IL_012e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0133:  endfinally 
-	  } // end handler 1
-	  IL_0134:  nop 
-	  IL_0135:  nop 
-	  IL_0136:  leave IL_014b
+	  IL_01cb:  nop 
+	  IL_01cc:  ldloc.s 12
+	  IL_01ce:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	  IL_01d3:  box [mscorlib]System.Char
+	  IL_01d8:  call string string::Concat(object, object)
+	  IL_01dd:  stloc.s 12
+	  IL_01df:  nop 
+	  IL_01e0:  ldloc.2 
+	  IL_01e1:  ldarg.1 
+	  IL_01e2:  ldloc.s 12
+	  IL_01e4:  ldloc.1 
+	  IL_01e5:  callvirt instance bool class [mscorlib]System.Globalization.CompareInfo::IsPrefix(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
+	  IL_01ea:  brfalse IL_01fb
 
-	} // end .try 2
-	catch class [mscorlib]System.Exception { // 2
-	  IL_013b:  stloc.s 4
-	  IL_013d:  nop 
-	  IL_013e:  ldstr "Unable to write to log file."
-	  IL_0143:  ldloc.s 4
-	  IL_0145:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class [mscorlib]System.Exception)
-	  IL_014a:  throw 
-	} // end handler 2
-	IL_014b:  ret 
-    } // end of method XmlLogger::BuildFinished
+	  IL_01ef:  nop 
+	  IL_01f0:  ldloc.s 4
+	  IL_01f2:  ldloc.s 10
+	  IL_01f4:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_01f9:  pop 
+	  IL_01fa:  nop 
+	  IL_01fb:  nop 
+	  IL_01fc:  nop 
+	  IL_01fd:  ldloc.s 11
+	  IL_01ff:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0204:  brtrue IL_014f
 
-    // method line 2141
-    .method public final virtual hidebysig newslot 
-           instance default void TargetStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+	  IL_0209:  leave IL_0225
+
+	} // end .try 1
+	finally  { // 1
+	  IL_020e:  ldloc.s 11
+	  IL_0210:  isinst [mscorlib]System.IDisposable
+	  IL_0215:  dup 
+	  IL_0216:  stloc.s 14
+	  IL_0218:  brfalse IL_0224
+
+	  IL_021d:  ldloc.s 14
+	  IL_021f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0224:  endfinally 
+	} // end handler 1
+	IL_0225:  nop 
+	IL_0226:  ldloc.0 
+	IL_0227:  callvirt instance class [mscorlib]System.IO.DirectoryInfo[] class [mscorlib]System.IO.DirectoryInfo::GetDirectories()
+	IL_022c:  stloc.s 16
+	IL_022e:  ldc.i4.0 
+	IL_022f:  stloc.s 17
+	IL_0231:  br IL_028c
+
+	IL_0236:  ldloc.s 16
+	IL_0238:  ldloc.s 17
+	IL_023a:  ldelem.ref 
+	IL_023b:  stloc.s 15
+	IL_023d:  nop 
+	IL_023e:  ldarg.2 
+	IL_023f:  brfalse IL_0259
+
+	IL_0244:  nop 
+	IL_0245:  ldarg.0 
+	IL_0246:  ldloc.s 15
+	IL_0248:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_024d:  ldc.i4.1 
+	IL_024e:  call instance void class NAnt.Core.DirectoryScanner::ScanDirectory(string, bool)
+	IL_0253:  nop 
+	IL_0254:  br IL_0285
+
+	IL_0259:  nop 
+	IL_025a:  ldarg.0 
+	IL_025b:  ldloc.s 15
+	IL_025d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0262:  ldloc.3 
+	IL_0263:  ldloc.s 4
+	IL_0265:  call instance bool class NAnt.Core.DirectoryScanner::IsPathIncluded(string, class [mscorlib]System.Collections.ArrayList, class [mscorlib]System.Collections.ArrayList)
+	IL_026a:  brfalse IL_0284
+
+	IL_026f:  nop 
+	IL_0270:  ldarg.0 
+	IL_0271:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
+	IL_0276:  ldloc.s 15
+	IL_0278:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_027d:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0282:  pop 
+	IL_0283:  nop 
+	IL_0284:  nop 
+	IL_0285:  nop 
+	IL_0286:  ldloc.s 17
+	IL_0288:  ldc.i4.1 
+	IL_0289:  add 
+	IL_028a:  stloc.s 17
+	IL_028c:  ldloc.s 17
+	IL_028e:  ldloc.s 16
+	IL_0290:  ldlen 
+	IL_0291:  conv.i4 
+	IL_0292:  blt IL_0236
+
+	IL_0297:  nop 
+	IL_0298:  ldloc.0 
+	IL_0299:  callvirt instance class [mscorlib]System.IO.FileInfo[] class [mscorlib]System.IO.DirectoryInfo::GetFiles()
+	IL_029e:  stloc.s 19
+	IL_02a0:  ldc.i4.0 
+	IL_02a1:  stloc.s 20
+	IL_02a3:  br IL_02f1
+
+	IL_02a8:  ldloc.s 19
+	IL_02aa:  ldloc.s 20
+	IL_02ac:  ldelem.ref 
+	IL_02ad:  stloc.s 18
+	IL_02af:  nop 
+	IL_02b0:  ldarg.1 
+	IL_02b1:  ldloc.s 18
+	IL_02b3:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
+	IL_02b8:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_02bd:  stloc.s 21
+	IL_02bf:  ldarg.0 
+	IL_02c0:  ldloc.s 21
+	IL_02c2:  ldloc.3 
+	IL_02c3:  ldloc.s 4
+	IL_02c5:  call instance bool class NAnt.Core.DirectoryScanner::IsPathIncluded(string, class [mscorlib]System.Collections.ArrayList, class [mscorlib]System.Collections.ArrayList)
+	IL_02ca:  brfalse IL_02ea
+
+	IL_02cf:  nop 
+	IL_02d0:  ldarg.0 
+	IL_02d1:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_fileNames
+	IL_02d6:  ldarg.1 
+	IL_02d7:  ldloc.s 18
+	IL_02d9:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Name()
+	IL_02de:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_02e3:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_02e8:  pop 
+	IL_02e9:  nop 
+	IL_02ea:  nop 
+	IL_02eb:  ldloc.s 20
+	IL_02ed:  ldc.i4.1 
+	IL_02ee:  add 
+	IL_02ef:  stloc.s 20
+	IL_02f1:  ldloc.s 20
+	IL_02f3:  ldloc.s 19
+	IL_02f5:  ldlen 
+	IL_02f6:  conv.i4 
+	IL_02f7:  blt IL_02a8
+
+	IL_02fc:  ldarg.0 
+	IL_02fd:  ldarg.1 
+	IL_02fe:  ldloc.3 
+	IL_02ff:  ldloc.s 4
+	IL_0301:  call instance bool class NAnt.Core.DirectoryScanner::IsPathIncluded(string, class [mscorlib]System.Collections.ArrayList, class [mscorlib]System.Collections.ArrayList)
+	IL_0306:  brfalse IL_031a
+
+	IL_030b:  nop 
+	IL_030c:  ldarg.0 
+	IL_030d:  ldfld class NAnt.Core.DirScannerStringCollection NAnt.Core.DirectoryScanner::_directoryNames
+	IL_0312:  ldarg.1 
+	IL_0313:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0318:  pop 
+	IL_0319:  nop 
+	IL_031a:  ret 
+    } // end of method DirectoryScanner::ScanDirectory
+
+    // method line 1889
+    .method private hidebysig 
+           instance default bool TestRegex (string path, class NAnt.Core.DirectoryScanner/RegexEntry entry)  cil managed 
     {
-        // Method begins at RVA 0x255f0
-	// Code size 91 (0x5b)
-	.maxstack 2
+        // Method begins at RVA 0x24488
+	// Code size 241 (0xf1)
+	.maxstack 4
 	.locals init (
-		object	V_0,
-		bool	V_1)
+		class [mscorlib]System.Collections.Hashtable	V_0,
+		class [System]System.Text.RegularExpressions.Regex	V_1,
+		valuetype [System]System.Text.RegularExpressions.RegexOptions	V_2,
+		bool	V_3,
+		bool	V_4,
+		char	V_5)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0007:  stloc.0 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  stloc.1 
+	IL_0002:  call instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
+	IL_0007:  brfalse IL_0016
+
+	IL_000c:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DirectoryScanner::cachedCaseSensitiveRegexes
+	IL_0011:  br IL_001b
+
+	IL_0016:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DirectoryScanner::cachedCaseInsensitiveRegexes
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.2 
+	IL_001e:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::Pattern
+	IL_0023:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0028:  castclass [System]System.Text.RegularExpressions.Regex
+	IL_002d:  stloc.1 
+	IL_002e:  ldloc.1 
+	IL_002f:  brtrue IL_0061
+
+	IL_0034:  nop 
+	IL_0035:  ldc.i4.8 
+	IL_0036:  stloc.2 
+	IL_0037:  ldarg.0 
+	IL_0038:  call instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
+	IL_003d:  brtrue IL_0046
+
+	IL_0042:  ldloc.2 
+	IL_0043:  ldc.i4.1 
+	IL_0044:  or 
+	IL_0045:  stloc.2 
+	IL_0046:  ldloc.0 
+	IL_0047:  ldarg.2 
+	IL_0048:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::Pattern
+	IL_004d:  ldarg.2 
+	IL_004e:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::Pattern
+	IL_0053:  ldloc.2 
+	IL_0054:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
+	IL_0059:  dup 
+	IL_005a:  stloc.1 
+	IL_005b:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0060:  nop 
+	IL_0061:  ldarg.1 
+	IL_0062:  callvirt instance int32 string::get_Length()
+	IL_0067:  ldarg.2 
+	IL_0068:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
+	IL_006d:  callvirt instance int32 string::get_Length()
+	IL_0072:  bne.un IL_0089
+
+	IL_0077:  nop 
+	IL_0078:  ldloc.1 
+	IL_0079:  ldsfld string [mscorlib]System.String::Empty
+	IL_007e:  callvirt instance bool class [System]System.Text.RegularExpressions.Regex::IsMatch(string)
+	IL_0083:  stloc.3 
+	IL_0084:  br IL_00ef
+
+	IL_0089:  ldarg.2 
+	IL_008a:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
+	IL_008f:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_0094:  stloc.s 5
+	IL_0096:  ldloca.s 5
+	IL_0098:  constrained. [mscorlib]System.Char
+	IL_009e:  callvirt instance string object::ToString()
+	IL_00a3:  callvirt instance bool string::EndsWith(string)
+	IL_00a8:  stloc.s 4
+	IL_00aa:  ldloc.s 4
+	IL_00ac:  brfalse IL_00cf
+
+	IL_00b1:  nop 
+	IL_00b2:  ldloc.1 
+	IL_00b3:  ldarg.1 
+	IL_00b4:  ldarg.2 
+	IL_00b5:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
+	IL_00ba:  callvirt instance int32 string::get_Length()
+	IL_00bf:  callvirt instance string string::Substring(int32)
+	IL_00c4:  callvirt instance bool class [System]System.Text.RegularExpressions.Regex::IsMatch(string)
+	IL_00c9:  stloc.3 
+	IL_00ca:  br IL_00ef
+
+	IL_00cf:  nop 
+	IL_00d0:  ldloc.1 
+	IL_00d1:  ldarg.1 
+	IL_00d2:  ldarg.2 
+	IL_00d3:  ldfld string NAnt.Core.DirectoryScanner/RegexEntry::BaseDirectory
+	IL_00d8:  callvirt instance int32 string::get_Length()
+	IL_00dd:  ldc.i4.1 
+	IL_00de:  add 
+	IL_00df:  callvirt instance string string::Substring(int32)
+	IL_00e4:  callvirt instance bool class [System]System.Text.RegularExpressions.Regex::IsMatch(string)
+	IL_00e9:  stloc.3 
+	IL_00ea:  br IL_00ef
+
+	IL_00ef:  ldloc.3 
+	IL_00f0:  ret 
+    } // end of method DirectoryScanner::TestRegex
+
+    // method line 1890
+    .method private hidebysig 
+           instance default bool IsPathIncluded (string path, class [mscorlib]System.Collections.ArrayList includedPatterns, class [mscorlib]System.Collections.ArrayList excludedPatterns)  cil managed 
+    {
+        // Method begins at RVA 0x24588
+	// Code size 471 (0x1d7)
+	.maxstack 4
+	.locals init (
+		bool	V_0,
+		valuetype [mscorlib]System.Globalization.CompareOptions	V_1,
+		class [mscorlib]System.Globalization.CompareInfo	V_2,
+		string	V_3,
+		class [System]System.Collections.Specialized.StringEnumerator	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		class NAnt.Core.DirectoryScanner/RegexEntry	V_6,
+		class [mscorlib]System.Collections.IEnumerator	V_7,
+		class [mscorlib]System.IDisposable	V_8,
+		string	V_9,
+		class [System]System.Collections.Specialized.StringEnumerator	V_10,
+		class [mscorlib]System.IDisposable	V_11,
+		class NAnt.Core.DirectoryScanner/RegexEntry	V_12,
+		class [mscorlib]System.Collections.IEnumerator	V_13,
+		class [mscorlib]System.IDisposable	V_14,
+		bool	V_15)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  ldc.i4.0 
+	IL_0004:  stloc.1 
+	IL_0005:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_000a:  callvirt instance class [mscorlib]System.Globalization.CompareInfo class [mscorlib]System.Globalization.CultureInfo::get_CompareInfo()
+	IL_000f:  stloc.2 
+	IL_0010:  ldarg.0 
+	IL_0011:  call instance bool class NAnt.Core.DirectoryScanner::get_CaseSensitive()
+	IL_0016:  brtrue IL_001f
+
+	IL_001b:  ldloc.1 
+	IL_001c:  ldc.i4.1 
+	IL_001d:  or 
+	IL_001e:  stloc.1 
+	IL_001f:  nop 
+	IL_0020:  ldarg.0 
+	IL_0021:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_includeNames
+	IL_0026:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_002b:  stloc.s 4
 	.try { // 0
-	  IL_000a:  ldloc.0 
-	  IL_000b:  ldloca.s 1
-	  IL_000d:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
-	  IL_0012:  nop 
-	  IL_0013:  ldarg.0 
-	  IL_0014:  ldfld class NAnt.Core.Util.StopWatchStack NAnt.Core.XmlLogger::_stopWatchStack
-	  IL_0019:  callvirt instance void class NAnt.Core.Util.StopWatchStack::PushStart()
-	  IL_001e:  ldarg.0 
-	  IL_001f:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_0024:  ldstr "target"
-	  IL_0029:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
-	  IL_002e:  ldarg.0 
-	  IL_002f:  ldarg.2 
-	  IL_0030:  callvirt instance class NAnt.Core.Target class NAnt.Core.BuildEventArgs::get_Target()
-	  IL_0035:  callvirt instance string class NAnt.Core.Target::get_Name()
-	  IL_003a:  call instance void class NAnt.Core.XmlLogger::WriteNameAttribute(string)
-	  IL_003f:  ldarg.0 
-	  IL_0040:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_0045:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::Flush()
-	  IL_004a:  nop 
-	  IL_004b:  leave IL_005a
+	  IL_002d:  br IL_0052
+
+	  IL_0032:  ldloc.s 4
+	  IL_0034:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0039:  stloc.3 
+	  IL_003a:  nop 
+	  IL_003b:  ldloc.2 
+	  IL_003c:  ldloc.3 
+	  IL_003d:  ldarg.1 
+	  IL_003e:  ldloc.1 
+	  IL_003f:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::Compare(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
+	  IL_0044:  brtrue IL_0051
+
+	  IL_0049:  nop 
+	  IL_004a:  ldc.i4.1 
+	  IL_004b:  stloc.0 
+	  IL_004c:  leave IL_005e
+
+	  IL_0051:  nop 
+	  IL_0052:  ldloc.s 4
+	  IL_0054:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0059:  brtrue IL_0032
+
+	  IL_005e:  leave IL_007a
 
 	} // end .try 0
 	finally  { // 0
-	  IL_0050:  ldloc.1 
-	  IL_0051:  brfalse.s IL_0059
+	  IL_0063:  ldloc.s 4
+	  IL_0065:  isinst [mscorlib]System.IDisposable
+	  IL_006a:  dup 
+	  IL_006b:  stloc.s 5
+	  IL_006d:  brfalse IL_0079
 
-	  IL_0053:  ldloc.0 
-	  IL_0054:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_0059:  endfinally 
+	  IL_0072:  ldloc.s 5
+	  IL_0074:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0079:  endfinally 
 	} // end handler 0
-	IL_005a:  ret 
-    } // end of method XmlLogger::TargetStarted
+	IL_007a:  ldloc.0 
+	IL_007b:  brtrue IL_00de
 
-    // method line 2142
-    .method public final virtual hidebysig newslot 
-           instance default void TargetFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+	IL_0080:  nop 
+	IL_0081:  nop 
+	IL_0082:  ldarg.2 
+	IL_0083:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0088:  stloc.s 7
+	.try { // 1
+	  IL_008a:  br IL_00b5
+
+	  IL_008f:  ldloc.s 7
+	  IL_0091:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0096:  castclass NAnt.Core.DirectoryScanner/RegexEntry
+	  IL_009b:  stloc.s 6
+	  IL_009d:  nop 
+	  IL_009e:  ldarg.0 
+	  IL_009f:  ldarg.1 
+	  IL_00a0:  ldloc.s 6
+	  IL_00a2:  call instance bool class NAnt.Core.DirectoryScanner::TestRegex(string, class NAnt.Core.DirectoryScanner/RegexEntry)
+	  IL_00a7:  brfalse IL_00b4
+
+	  IL_00ac:  nop 
+	  IL_00ad:  ldc.i4.1 
+	  IL_00ae:  stloc.0 
+	  IL_00af:  leave IL_00c1
+
+	  IL_00b4:  nop 
+	  IL_00b5:  ldloc.s 7
+	  IL_00b7:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00bc:  brtrue IL_008f
+
+	  IL_00c1:  leave IL_00dd
+
+	} // end .try 1
+	finally  { // 1
+	  IL_00c6:  ldloc.s 7
+	  IL_00c8:  isinst [mscorlib]System.IDisposable
+	  IL_00cd:  dup 
+	  IL_00ce:  stloc.s 8
+	  IL_00d0:  brfalse IL_00dc
+
+	  IL_00d5:  ldloc.s 8
+	  IL_00d7:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00dc:  endfinally 
+	} // end handler 1
+	IL_00dd:  nop 
+	IL_00de:  ldloc.0 
+	IL_00df:  brfalse IL_0143
+
+	IL_00e4:  nop 
+	IL_00e5:  nop 
+	IL_00e6:  ldarg.0 
+	IL_00e7:  ldfld class NAnt.Core.StringCollectionWithGoodToString NAnt.Core.DirectoryScanner::_excludeNames
+	IL_00ec:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_00f1:  stloc.s 10
+	.try { // 2
+	  IL_00f3:  br IL_011a
+
+	  IL_00f8:  ldloc.s 10
+	  IL_00fa:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_00ff:  stloc.s 9
+	  IL_0101:  nop 
+	  IL_0102:  ldloc.2 
+	  IL_0103:  ldloc.s 9
+	  IL_0105:  ldarg.1 
+	  IL_0106:  ldloc.1 
+	  IL_0107:  callvirt instance int32 class [mscorlib]System.Globalization.CompareInfo::Compare(string, string, valuetype [mscorlib]System.Globalization.CompareOptions)
+	  IL_010c:  brtrue IL_0119
+
+	  IL_0111:  nop 
+	  IL_0112:  ldc.i4.0 
+	  IL_0113:  stloc.0 
+	  IL_0114:  leave IL_0126
+
+	  IL_0119:  nop 
+	  IL_011a:  ldloc.s 10
+	  IL_011c:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0121:  brtrue IL_00f8
+
+	  IL_0126:  leave IL_0142
+
+	} // end .try 2
+	finally  { // 2
+	  IL_012b:  ldloc.s 10
+	  IL_012d:  isinst [mscorlib]System.IDisposable
+	  IL_0132:  dup 
+	  IL_0133:  stloc.s 11
+	  IL_0135:  brfalse IL_0141
+
+	  IL_013a:  ldloc.s 11
+	  IL_013c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0141:  endfinally 
+	} // end handler 2
+	IL_0142:  nop 
+	IL_0143:  ldloc.0 
+	IL_0144:  brfalse IL_01a7
+
+	IL_0149:  nop 
+	IL_014a:  nop 
+	IL_014b:  ldarg.3 
+	IL_014c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0151:  stloc.s 13
+	.try { // 3
+	  IL_0153:  br IL_017e
+
+	  IL_0158:  ldloc.s 13
+	  IL_015a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_015f:  castclass NAnt.Core.DirectoryScanner/RegexEntry
+	  IL_0164:  stloc.s 12
+	  IL_0166:  nop 
+	  IL_0167:  ldarg.0 
+	  IL_0168:  ldarg.1 
+	  IL_0169:  ldloc.s 12
+	  IL_016b:  call instance bool class NAnt.Core.DirectoryScanner::TestRegex(string, class NAnt.Core.DirectoryScanner/RegexEntry)
+	  IL_0170:  brfalse IL_017d
+
+	  IL_0175:  nop 
+	  IL_0176:  ldc.i4.0 
+	  IL_0177:  stloc.0 
+	  IL_0178:  leave IL_018a
+
+	  IL_017d:  nop 
+	  IL_017e:  ldloc.s 13
+	  IL_0180:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0185:  brtrue IL_0158
+
+	  IL_018a:  leave IL_01a6
+
+	} // end .try 3
+	finally  { // 3
+	  IL_018f:  ldloc.s 13
+	  IL_0191:  isinst [mscorlib]System.IDisposable
+	  IL_0196:  dup 
+	  IL_0197:  stloc.s 14
+	  IL_0199:  brfalse IL_01a5
+
+	  IL_019e:  ldloc.s 14
+	  IL_01a0:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01a5:  endfinally 
+	} // end handler 3
+	IL_01a6:  nop 
+	IL_01a7:  ldloc.0 
+	IL_01a8:  brtrue IL_01cc
+
+	IL_01ad:  ldarg.0 
+	IL_01ae:  ldfld bool NAnt.Core.DirectoryScanner::_isEverythingIncluded
+	IL_01b3:  brfalse IL_01cc
+
+	IL_01b8:  ldarg.1 
+	IL_01b9:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_01be:  brfalse IL_01cc
+
+	IL_01c3:  nop 
+	IL_01c4:  ldarg.0 
+	IL_01c5:  ldc.i4.0 
+	IL_01c6:  stfld bool NAnt.Core.DirectoryScanner::_isEverythingIncluded
+	IL_01cb:  nop 
+	IL_01cc:  ldloc.0 
+	IL_01cd:  stloc.s 15
+	IL_01cf:  br IL_01d4
+
+	IL_01d4:  ldloc.s 15
+	IL_01d6:  ret 
+    } // end of method DirectoryScanner::IsPathIncluded
+
+    // method line 1891
+    .method private static hidebysig 
+           default class [mscorlib]System.Text.StringBuilder CleanPath (string nantPath)  cil managed 
     {
-        // Method begins at RVA 0x25668
-	// Code size 64 (0x40)
-	.maxstack 2
+        // Method begins at RVA 0x247a0
+	// Code size 45 (0x2d)
+	.maxstack 3
 	.locals init (
-		object	V_0,
-		bool	V_1)
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		class [mscorlib]System.Text.StringBuilder	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0002:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
 	IL_0007:  stloc.0 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  stloc.1 
-	.try { // 0
-	  IL_000a:  ldloc.0 
-	  IL_000b:  ldloca.s 1
-	  IL_000d:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
-	  IL_0012:  nop 
-	  IL_0013:  ldarg.0 
-	  IL_0014:  call instance void class NAnt.Core.XmlLogger::WriteDuration()
-	  IL_0019:  ldarg.0 
-	  IL_001a:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_001f:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
-	  IL_0024:  ldarg.0 
-	  IL_0025:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_002a:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::Flush()
-	  IL_002f:  nop 
-	  IL_0030:  leave IL_003f
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0035:  ldloc.1 
-	  IL_0036:  brfalse.s IL_003e
+	IL_0008:  ldloc.0 
+	IL_0009:  ldc.i4.s 0x2f
+	IL_000b:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_0010:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(char, char)
+	IL_0015:  pop 
+	IL_0016:  ldloc.0 
+	IL_0017:  ldc.i4.s 0x5c
+	IL_0019:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_001e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(char, char)
+	IL_0023:  pop 
+	IL_0024:  ldloc.0 
+	IL_0025:  stloc.1 
+	IL_0026:  br IL_002b
 
-	  IL_0038:  ldloc.0 
-	  IL_0039:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_003e:  endfinally 
-	} // end handler 0
-	IL_003f:  ret 
-    } // end of method XmlLogger::TargetFinished
+	IL_002b:  ldloc.1 
+	IL_002c:  ret 
+    } // end of method DirectoryScanner::CleanPath
 
-    // method line 2143
-    .method public final virtual hidebysig newslot 
-           instance default void TaskStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    // method line 1892
+    .method private static hidebysig 
+           default string CleanPath (string baseDirectory, string nantPath)  cil managed 
     {
-        // Method begins at RVA 0x256c4
-	// Code size 91 (0x5b)
+        // Method begins at RVA 0x247dc
+	// Code size 36 (0x24)
 	.maxstack 2
 	.locals init (
-		object	V_0,
-		bool	V_1)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0002:  ldarg.1 
+	IL_0003:  call class [mscorlib]System.Text.StringBuilder class NAnt.Core.DirectoryScanner::CleanPath(string)
+	IL_0008:  callvirt instance string object::ToString()
+	IL_000d:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0012:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0017:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001c:  stloc.0 
+	IL_001d:  br IL_0022
+
+	IL_0022:  ldloc.0 
+	IL_0023:  ret 
+    } // end of method DirectoryScanner::CleanPath
+
+    // method line 1893
+    .method private static hidebysig 
+           default string ToRegexPattern (string nantPattern)  cil managed 
+    {
+        // Method begins at RVA 0x2480c
+	// Code size 579 (0x243)
+	.maxstack 6
+	.locals init (
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		string	V_1,
+		char	V_2,
+		string	V_3,
+		string	V_4)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call class [mscorlib]System.Text.StringBuilder class NAnt.Core.DirectoryScanner::CleanPath(string)
 	IL_0007:  stloc.0 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  stloc.1 
-	.try { // 0
-	  IL_000a:  ldloc.0 
-	  IL_000b:  ldloca.s 1
-	  IL_000d:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
-	  IL_0012:  nop 
-	  IL_0013:  ldarg.0 
-	  IL_0014:  ldfld class NAnt.Core.Util.StopWatchStack NAnt.Core.XmlLogger::_stopWatchStack
-	  IL_0019:  callvirt instance void class NAnt.Core.Util.StopWatchStack::PushStart()
-	  IL_001e:  ldarg.0 
-	  IL_001f:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_0024:  ldstr "task"
-	  IL_0029:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
-	  IL_002e:  ldarg.0 
-	  IL_002f:  ldarg.2 
-	  IL_0030:  callvirt instance class NAnt.Core.Task class NAnt.Core.BuildEventArgs::get_Task()
-	  IL_0035:  callvirt instance string class NAnt.Core.Element::get_Name()
-	  IL_003a:  call instance void class NAnt.Core.XmlLogger::WriteNameAttribute(string)
-	  IL_003f:  ldarg.0 
-	  IL_0040:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_0045:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::Flush()
-	  IL_004a:  nop 
-	  IL_004b:  leave IL_005a
+	IL_0008:  ldloc.0 
+	IL_0009:  ldstr "\\"
+	IL_000e:  ldstr "\\\\"
+	IL_0013:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_0018:  pop 
+	IL_0019:  ldloc.0 
+	IL_001a:  ldstr "."
+	IL_001f:  ldstr "\\."
+	IL_0024:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_0029:  pop 
+	IL_002a:  ldloc.0 
+	IL_002b:  ldstr "$"
+	IL_0030:  ldstr "\\$"
+	IL_0035:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_003a:  pop 
+	IL_003b:  ldloc.0 
+	IL_003c:  ldstr "^"
+	IL_0041:  ldstr "\\^"
+	IL_0046:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_004b:  pop 
+	IL_004c:  ldloc.0 
+	IL_004d:  ldstr "{"
+	IL_0052:  ldstr "\\{"
+	IL_0057:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_005c:  pop 
+	IL_005d:  ldloc.0 
+	IL_005e:  ldstr "["
+	IL_0063:  ldstr "\\["
+	IL_0068:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_006d:  pop 
+	IL_006e:  ldloc.0 
+	IL_006f:  ldstr "("
+	IL_0074:  ldstr "\\("
+	IL_0079:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_007e:  pop 
+	IL_007f:  ldloc.0 
+	IL_0080:  ldstr ")"
+	IL_0085:  ldstr "\\)"
+	IL_008a:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_008f:  pop 
+	IL_0090:  ldloc.0 
+	IL_0091:  ldstr "+"
+	IL_0096:  ldstr "\\+"
+	IL_009b:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_00a0:  pop 
+	IL_00a1:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_00a6:  stloc.2 
+	IL_00a7:  ldloca.s 2
+	IL_00a9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00ae:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
+	IL_00b3:  stloc.1 
+	IL_00b4:  ldloc.1 
+	IL_00b5:  ldstr "\\"
+	IL_00ba:  call bool string::op_Equality(string, string)
+	IL_00bf:  brfalse IL_00ca
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0050:  ldloc.1 
-	  IL_0051:  brfalse.s IL_0059
+	IL_00c4:  ldstr "\\\\"
+	IL_00c9:  stloc.1 
+	IL_00ca:  ldloc.0 
+	IL_00cb:  ldstr "?"
+	IL_00d0:  ldstr "[^"
+	IL_00d5:  ldloc.1 
+	IL_00d6:  ldstr "]?"
+	IL_00db:  call string string::Concat(string, string, string)
+	IL_00e0:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_00e5:  pop 
+	IL_00e6:  ldloc.0 
+	IL_00e7:  callvirt instance string object::ToString()
+	IL_00ec:  ldc.i4.5 
+	IL_00ed:  newarr [mscorlib]System.String
+	IL_00f2:  dup 
+	IL_00f3:  ldc.i4.0 
+	IL_00f4:  ldstr "(?<="
+	IL_00f9:  stelem.ref 
+	IL_00fa:  dup 
+	IL_00fb:  ldc.i4.1 
+	IL_00fc:  ldloc.1 
+	IL_00fd:  stelem.ref 
+	IL_00fe:  dup 
+	IL_00ff:  ldc.i4.2 
+	IL_0100:  ldstr ")\\*(?=($|"
+	IL_0105:  stelem.ref 
+	IL_0106:  dup 
+	IL_0107:  ldc.i4.3 
+	IL_0108:  ldloc.1 
+	IL_0109:  stelem.ref 
+	IL_010a:  dup 
+	IL_010b:  ldc.i4.4 
+	IL_010c:  ldstr "))"
+	IL_0111:  stelem.ref 
+	IL_0112:  call string string::Concat(string[])
+	IL_0117:  ldstr "[^"
+	IL_011c:  ldloc.1 
+	IL_011d:  ldstr "]+"
+	IL_0122:  call string string::Concat(string, string, string)
+	IL_0127:  call string class [System]System.Text.RegularExpressions.Regex::Replace(string, string, string)
+	IL_012c:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
+	IL_0131:  stloc.0 
+	IL_0132:  ldloc.0 
+	IL_0133:  ldloc.1 
+	IL_0134:  ldstr "**"
+	IL_0139:  ldloc.1 
+	IL_013a:  call string string::Concat(string, string, string)
+	IL_013f:  ldloc.1 
+	IL_0140:  ldstr "(.|?"
+	IL_0145:  ldloc.1 
+	IL_0146:  ldstr ")?"
+	IL_014b:  call string string::Concat(string, string, string, string)
+	IL_0150:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_0155:  pop 
+	IL_0156:  ldloc.0 
+	IL_0157:  ldstr "**"
+	IL_015c:  ldloc.1 
+	IL_015d:  call string string::Concat(string, string)
+	IL_0162:  ldstr ".|(?<=^|"
+	IL_0167:  ldloc.1 
+	IL_0168:  ldstr ")"
+	IL_016d:  call string string::Concat(string, string, string)
+	IL_0172:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_0177:  pop 
+	IL_0178:  ldloc.0 
+	IL_0179:  ldloc.1 
+	IL_017a:  ldstr "**"
+	IL_017f:  call string string::Concat(string, string)
+	IL_0184:  ldstr "(?=$|"
+	IL_0189:  ldloc.1 
+	IL_018a:  ldstr ").|"
+	IL_018f:  call string string::Concat(string, string, string)
+	IL_0194:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_0199:  pop 
+	IL_019a:  ldloc.0 
+	IL_019b:  ldstr "**"
+	IL_01a0:  ldstr ".|"
+	IL_01a5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_01aa:  pop 
+	IL_01ab:  ldloc.0 
+	IL_01ac:  ldstr "*"
+	IL_01b1:  ldstr "[^"
+	IL_01b6:  ldloc.1 
+	IL_01b7:  ldstr "]*"
+	IL_01bc:  call string string::Concat(string, string, string)
+	IL_01c1:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_01c6:  pop 
+	IL_01c7:  ldloc.0 
+	IL_01c8:  ldstr ".|"
+	IL_01cd:  ldstr ".*"
+	IL_01d2:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Replace(string, string)
+	IL_01d7:  pop 
+	IL_01d8:  ldloc.0 
+	IL_01d9:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_01de:  ldc.i4.0 
+	IL_01df:  ble IL_01f9
 
-	  IL_0053:  ldloc.0 
-	  IL_0054:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_0059:  endfinally 
-	} // end handler 0
-	IL_005a:  ret 
-    } // end of method XmlLogger::TaskStarted
+	IL_01e4:  nop 
+	IL_01e5:  ldloc.0 
+	IL_01e6:  ldc.i4.0 
+	IL_01e7:  ldc.i4.s 0x5e
+	IL_01e9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Insert(int32, char)
+	IL_01ee:  pop 
+	IL_01ef:  ldloc.0 
+	IL_01f0:  ldc.i4.s 0x24
+	IL_01f2:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_01f7:  pop 
+	IL_01f8:  nop 
+	IL_01f9:  ldloc.0 
+	IL_01fa:  callvirt instance string object::ToString()
+	IL_01ff:  stloc.3 
+	IL_0200:  ldloc.3 
+	IL_0201:  ldstr "^.*"
+	IL_0206:  callvirt instance bool string::StartsWith(string)
+	IL_020b:  brfalse IL_0218
 
-    // method line 2144
-    .method public final virtual hidebysig newslot 
-           instance default void TaskFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+	IL_0210:  ldloc.3 
+	IL_0211:  ldc.i4.3 
+	IL_0212:  callvirt instance string string::Substring(int32)
+	IL_0217:  stloc.3 
+	IL_0218:  ldloc.3 
+	IL_0219:  ldstr ".*$"
+	IL_021e:  callvirt instance bool string::EndsWith(string)
+	IL_0223:  brfalse IL_0238
+
+	IL_0228:  ldloc.3 
+	IL_0229:  ldc.i4.0 
+	IL_022a:  ldloc.0 
+	IL_022b:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_0230:  ldc.i4.3 
+	IL_0231:  sub 
+	IL_0232:  callvirt instance string string::Substring(int32, int32)
+	IL_0237:  stloc.3 
+	IL_0238:  ldloc.3 
+	IL_0239:  stloc.s 4
+	IL_023b:  br IL_0240
+
+	IL_0240:  ldloc.s 4
+	IL_0242:  ret 
+    } // end of method DirectoryScanner::ToRegexPattern
+
+    // method line 1894
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2573c
-	// Code size 64 (0x40)
-	.maxstack 2
+        // Method begins at RVA 0x24a5b
+	// Code size 41 (0x29)
+	.maxstack 8
+	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
+	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
+	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.DirectoryScanner::logger
+	IL_0014:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0019:  stsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DirectoryScanner::cachedCaseSensitiveRegexes
+	IL_001e:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0023:  stsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.DirectoryScanner::cachedCaseInsensitiveRegexes
+	IL_0028:  ret 
+    } // end of method DirectoryScanner::.cctor
+
+	.property instance bool CaseSensitive ()
+	{
+		.get instance default bool NAnt.Core.DirectoryScanner::get_CaseSensitive () 
+		.set instance default void NAnt.Core.DirectoryScanner::set_CaseSensitive (bool 'value') 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection Includes ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.DirectoryScanner::get_Includes () 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection Excludes ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.DirectoryScanner::get_Excludes () 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.DirectoryScanner::get_BaseDirectory () 
+		.set instance default void NAnt.Core.DirectoryScanner::set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection FileNames ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.DirectoryScanner::get_FileNames () 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection DirectoryNames ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.DirectoryScanner::get_DirectoryNames () 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection ScannedDirectories ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.DirectoryScanner::get_ScannedDirectories () 
+	}
+	.property instance bool IsEverythingIncluded ()
+	{
+		.get instance default bool NAnt.Core.DirectoryScanner::get_IsEverythingIncluded () 
+	}
+  .class nested private auto ansi serializable beforefieldinit RegexEntry
+  	extends [mscorlib]System.Object
+  {
+    .field  public  bool IsRecursive
+    .field  public  string BaseDirectory
+    .field  public  string Pattern
+
+    // method line 1895
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x24a85
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method RegexEntry::.ctor
+
+  } // end of class RegexEntry
+
+  } // end of class NAnt.Core.DirectoryScanner
+}
+
+.namespace NAnt.Core
+{
+  .class private auto ansi serializable beforefieldinit StringCollectionWithGoodToString
+  	extends [System]System.Collections.Specialized.StringCollection
+  	implements [mscorlib]System.ICloneable  {
+
+    // method line 1896
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x24a8d
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0006:  ret 
+    } // end of method StringCollectionWithGoodToString::.ctor
+
+    // method line 1897
+    .method public virtual hidebysig newslot 
+           instance default object Clone ()  cil managed 
+    {
+        // Method begins at RVA 0x24a98
+	// Code size 43 (0x2b)
+	.maxstack 3
 	.locals init (
-		object	V_0,
-		bool	V_1)
+		string[]	V_0,
+		class NAnt.Core.StringCollectionWithGoodToString	V_1,
+		object	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0007:  stloc.0 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  stloc.1 
+	IL_0002:  call instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0007:  newarr [mscorlib]System.String
+	IL_000c:  stloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  call instance void class [System]System.Collections.Specialized.StringCollection::CopyTo(string[], int32)
+	IL_0015:  newobj instance void class NAnt.Core.StringCollectionWithGoodToString::'.ctor'()
+	IL_001a:  stloc.1 
+	IL_001b:  ldloc.1 
+	IL_001c:  ldloc.0 
+	IL_001d:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
+	IL_0022:  ldloc.1 
+	IL_0023:  stloc.2 
+	IL_0024:  br IL_0029
+
+	IL_0029:  ldloc.2 
+	IL_002a:  ret 
+    } // end of method StringCollectionWithGoodToString::Clone
+
+    // method line 1898
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
+    {
+        // Method begins at RVA 0x24ad0
+	// Code size 129 (0x81)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		string	V_4)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string object::ToString()
+	IL_0007:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  ldstr ":"
+	IL_0013:  call string class [mscorlib]System.Environment::get_NewLine()
+	IL_0018:  call string string::Concat(string, string)
+	IL_001d:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0022:  pop 
+	IL_0023:  nop 
+	IL_0024:  ldarg.0 
+	IL_0025:  call instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_002a:  stloc.2 
 	.try { // 0
-	  IL_000a:  ldloc.0 
-	  IL_000b:  ldloca.s 1
-	  IL_000d:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
-	  IL_0012:  nop 
-	  IL_0013:  ldarg.0 
-	  IL_0014:  call instance void class NAnt.Core.XmlLogger::WriteDuration()
-	  IL_0019:  ldarg.0 
-	  IL_001a:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_001f:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
-	  IL_0024:  ldarg.0 
-	  IL_0025:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_002a:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::Flush()
-	  IL_002f:  nop 
-	  IL_0030:  leave IL_003f
+	  IL_002b:  br IL_004d
+
+	  IL_0030:  ldloc.2 
+	  IL_0031:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0036:  stloc.1 
+	  IL_0037:  nop 
+	  IL_0038:  ldloc.0 
+	  IL_0039:  ldloc.1 
+	  IL_003a:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_003f:  pop 
+	  IL_0040:  ldloc.0 
+	  IL_0041:  call string class [mscorlib]System.Environment::get_NewLine()
+	  IL_0046:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_004b:  pop 
+	  IL_004c:  nop 
+	  IL_004d:  ldloc.2 
+	  IL_004e:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0053:  brtrue IL_0030
+
+	  IL_0058:  leave IL_0071
 
 	} // end .try 0
 	finally  { // 0
-	  IL_0035:  ldloc.1 
-	  IL_0036:  brfalse.s IL_003e
+	  IL_005d:  ldloc.2 
+	  IL_005e:  isinst [mscorlib]System.IDisposable
+	  IL_0063:  dup 
+	  IL_0064:  stloc.3 
+	  IL_0065:  brfalse IL_0070
 
-	  IL_0038:  ldloc.0 
-	  IL_0039:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_003e:  endfinally 
+	  IL_006a:  ldloc.3 
+	  IL_006b:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0070:  endfinally 
 	} // end handler 0
-	IL_003f:  ret 
-    } // end of method XmlLogger::TaskFinished
+	IL_0071:  ldloc.0 
+	IL_0072:  callvirt instance string object::ToString()
+	IL_0077:  stloc.s 4
+	IL_0079:  br IL_007e
 
-    // method line 2145
-    .method private hidebysig 
-           instance default void WriteDuration ()  cil managed 
+	IL_007e:  ldloc.s 4
+	IL_0080:  ret 
+    } // end of method StringCollectionWithGoodToString::ToString
+
+  } // end of class NAnt.Core.StringCollectionWithGoodToString
+}
+
+.namespace NAnt.Core
+{
+  .class private auto ansi serializable beforefieldinit DirScannerStringCollection
+  	extends NAnt.Core.StringCollectionWithGoodToString
+  {
+    .field  private initonly  bool _caseSensitive
+
+    // method line 1899
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (bool caseSensitive)  cil managed 
     {
-        // Method begins at RVA 0x25798
-	// Code size 42 (0x2a)
+        // Method begins at RVA 0x24b70
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.StringCollectionWithGoodToString::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld bool NAnt.Core.DirScannerStringCollection::_caseSensitive
+	IL_000e:  ret 
+    } // end of method DirScannerStringCollection::.ctor
+
+    // method line 1900
+    .method public hidebysig specialname 
+           instance default bool get_CaseSensitive ()  cil managed 
+    {
+        // Method begins at RVA 0x24b80
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.DirScannerStringCollection::_caseSensitive
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DirScannerStringCollection::get_CaseSensitive
+
+    // method line 1901
+    .method public virtual hidebysig 
+           instance default object Clone ()  cil managed 
+    {
+        // Method begins at RVA 0x24b9c
+	// Code size 49 (0x31)
 	.maxstack 3
 	.locals init (
-		valuetype [mscorlib]System.TimeSpan	V_0)
+		string[]	V_0,
+		class NAnt.Core.DirScannerStringCollection	V_1,
+		object	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0007:  ldstr "duration"
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld class NAnt.Core.Util.StopWatchStack NAnt.Core.XmlLogger::_stopWatchStack
-	IL_0012:  callvirt instance valuetype [mscorlib]System.TimeSpan class NAnt.Core.Util.StopWatchStack::PopStop()
-	IL_0017:  stloc.0 
-	IL_0018:  ldloca.s 0
-	IL_001a:  call instance float64 valuetype [mscorlib]System.TimeSpan::get_TotalMilliseconds()
-	IL_001f:  call string class [System.Xml]System.Xml.XmlConvert::ToString(float64)
-	IL_0024:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteElementString(string, string)
-	IL_0029:  ret 
-    } // end of method XmlLogger::WriteDuration
+	IL_0002:  call instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0007:  newarr [mscorlib]System.String
+	IL_000c:  stloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  call instance void class [System]System.Collections.Specialized.StringCollection::CopyTo(string[], int32)
+	IL_0015:  ldarg.0 
+	IL_0016:  call instance bool class NAnt.Core.DirScannerStringCollection::get_CaseSensitive()
+	IL_001b:  newobj instance void class NAnt.Core.DirScannerStringCollection::'.ctor'(bool)
+	IL_0020:  stloc.1 
+	IL_0021:  ldloc.1 
+	IL_0022:  ldloc.0 
+	IL_0023:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
+	IL_0028:  ldloc.1 
+	IL_0029:  stloc.2 
+	IL_002a:  br IL_002f
 
-    // method line 2146
-    .method public final virtual hidebysig newslot 
-           instance default void MessageLogged (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+	IL_002f:  ldloc.2 
+	IL_0030:  ret 
+    } // end of method DirScannerStringCollection::Clone
+
+    // method line 1902
+    .method public virtual hidebysig newslot 
+           instance default bool Contains (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x257d0
-	// Code size 238 (0xee)
+        // Method begins at RVA 0x24bdc
+	// Code size 19 (0x13)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance int32 class NAnt.Core.DirScannerStringCollection::IndexOf(string)
+	IL_0008:  ldc.i4.m1 
+	IL_0009:  cgt 
+	IL_000b:  stloc.0 
+	IL_000c:  br IL_0011
+
+	IL_0011:  ldloc.0 
+	IL_0012:  ret 
+    } // end of method DirScannerStringCollection::Contains
+
+    // method line 1903
+    .method public virtual hidebysig newslot 
+           instance default int32 IndexOf (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x24bfc
+	// Code size 132 (0x84)
 	.maxstack 4
 	.locals init (
-		string	V_0,
-		object	V_1,
-		bool	V_2,
-		valuetype NAnt.Core.Level	V_3)
+		int32	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.BuildEventArgs::get_MessageLevel()
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0012
+
 	IL_0007:  ldarg.0 
-	IL_0008:  call instance valuetype NAnt.Core.Level class NAnt.Core.XmlLogger::get_Threshold()
-	IL_000d:  blt IL_00ed
+	IL_0008:  call instance bool class NAnt.Core.DirScannerStringCollection::get_CaseSensitive()
+	IL_000d:  brfalse IL_0020
 
 	IL_0012:  nop 
 	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.2 
-	IL_0015:  callvirt instance string class NAnt.Core.BuildEventArgs::get_Message()
-	IL_001a:  callvirt instance string string::Trim()
-	IL_001f:  call instance string class NAnt.Core.XmlLogger::StripFormatting(string)
-	IL_0024:  stloc.0 
-	IL_0025:  ldarg.0 
-	IL_0026:  ldloc.0 
-	IL_0027:  call instance bool class NAnt.Core.XmlLogger::IsJustWhiteSpace(string)
-	IL_002c:  brfalse IL_0037
-
-	IL_0031:  nop 
-	IL_0032:  br IL_00ed
+	IL_0014:  ldarg.1 
+	IL_0015:  call instance int32 class [System]System.Collections.Specialized.StringCollection::IndexOf(string)
+	IL_001a:  stloc.0 
+	IL_001b:  br IL_0082
 
-	IL_0037:  ldarg.0 
-	IL_0038:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_003d:  stloc.1 
-	IL_003e:  ldc.i4.0 
-	IL_003f:  stloc.2 
+	IL_0020:  nop 
+	IL_0021:  nop 
+	IL_0022:  ldarg.0 
+	IL_0023:  call instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0028:  stloc.2 
 	.try { // 0
-	  IL_0040:  ldloc.1 
-	  IL_0041:  ldloca.s 2
-	  IL_0043:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
+	  IL_0029:  br IL_0057
+
+	  IL_002e:  ldloc.2 
+	  IL_002f:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0034:  stloc.1 
+	  IL_0035:  nop 
+	  IL_0036:  ldloc.1 
+	  IL_0037:  ldarg.1 
+	  IL_0038:  ldc.i4.1 
+	  IL_0039:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_003e:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	  IL_0043:  brtrue IL_0056
+
 	  IL_0048:  nop 
 	  IL_0049:  ldarg.0 
-	  IL_004a:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_004f:  ldstr "message"
-	  IL_0054:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
-	  IL_0059:  ldarg.0 
-	  IL_005a:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_005f:  ldstr "level"
-	  IL_0064:  ldarg.2 
-	  IL_0065:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.BuildEventArgs::get_MessageLevel()
-	  IL_006a:  stloc.3 
-	  IL_006b:  ldloca.s 3
-	  IL_006d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0072:  constrained. NAnt.Core.Level
-	  IL_0078:  callvirt instance string class [mscorlib]System.Enum::ToString(class [mscorlib]System.IFormatProvider)
-	  IL_007d:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteAttributeString(string, string)
-	  IL_0082:  ldarg.0 
-	  IL_0083:  ldloc.0 
-	  IL_0084:  call instance bool class NAnt.Core.XmlLogger::IsValidXml(string)
-	  IL_0089:  brfalse IL_00b2
+	  IL_004a:  ldloc.1 
+	  IL_004b:  call instance int32 class [System]System.Collections.Specialized.StringCollection::IndexOf(string)
+	  IL_0050:  stloc.0 
+	  IL_0051:  leave IL_0082
 
-	  IL_008e:  nop 
-	  IL_008f:  ldloc.0 
-	  IL_0090:  ldstr "<\\?.*\\?>"
-	  IL_0095:  ldsfld string [mscorlib]System.String::Empty
-	  IL_009a:  call string class [System]System.Text.RegularExpressions.Regex::Replace(string, string, string)
-	  IL_009f:  stloc.0 
-	  IL_00a0:  ldarg.0 
-	  IL_00a1:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_00a6:  ldloc.0 
-	  IL_00a7:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteRaw(string)
-	  IL_00ac:  nop 
-	  IL_00ad:  br IL_00c6
+	  IL_0056:  nop 
+	  IL_0057:  ldloc.2 
+	  IL_0058:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_005d:  brtrue IL_002e
 
-	  IL_00b2:  nop 
-	  IL_00b3:  ldarg.0 
-	  IL_00b4:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_00b9:  ldarg.0 
-	  IL_00ba:  ldloc.0 
-	  IL_00bb:  call instance string class NAnt.Core.XmlLogger::StripCData(string)
-	  IL_00c0:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteCData(string)
-	  IL_00c5:  nop 
-	  IL_00c6:  ldarg.0 
-	  IL_00c7:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_00cc:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
-	  IL_00d1:  ldarg.0 
-	  IL_00d2:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_00d7:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::Flush()
-	  IL_00dc:  nop 
-	  IL_00dd:  leave IL_00ec
+	  IL_0062:  leave IL_007b
 
 	} // end .try 0
 	finally  { // 0
-	  IL_00e2:  ldloc.2 
-	  IL_00e3:  brfalse.s IL_00eb
+	  IL_0067:  ldloc.2 
+	  IL_0068:  isinst [mscorlib]System.IDisposable
+	  IL_006d:  dup 
+	  IL_006e:  stloc.3 
+	  IL_006f:  brfalse IL_007a
 
-	  IL_00e5:  ldloc.1 
-	  IL_00e6:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_00eb:  endfinally 
+	  IL_0074:  ldloc.3 
+	  IL_0075:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_007a:  endfinally 
 	} // end handler 0
-	IL_00ec:  nop 
-	IL_00ed:  ret 
-    } // end of method XmlLogger::MessageLogged
+	IL_007b:  ldc.i4.m1 
+	IL_007c:  stloc.0 
+	IL_007d:  br IL_0082
 
-    // method line 2147
-    .method public final virtual hidebysig newslot specialname 
-           instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
+	IL_0082:  ldloc.0 
+	IL_0083:  ret 
+    } // end of method DirScannerStringCollection::IndexOf
+
+	.property instance bool CaseSensitive ()
+	{
+		.get instance default bool NAnt.Core.DirScannerStringCollection::get_CaseSensitive () 
+	}
+  } // end of class NAnt.Core.DirScannerStringCollection
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi beforefieldinit CommandLineOptions
+  	extends [mscorlib]System.Object
+  {
+    .field  private  string _targetFramework
+    .field  private  string _buildFile
+    .field  private  bool _noLogo
+    .field  private  bool _showHelp
+    .field  private  bool _quiet
+    .field  private  bool _verbose
+    .field  private  bool _debug
+    .field  private  bool _emacsMode
+    .field  private  int32 _indentationLevel
+    .field  private  bool _findInParent
+    .field  private  class [System]System.Collections.Specialized.NameValueCollection _properties
+    .field  private  string _loggerType
+    .field  private  class [mscorlib]System.IO.FileInfo _logFile
+    .field  private  class [System]System.Collections.Specialized.StringCollection _listeners
+    .field  private  class [System]System.Collections.Specialized.StringCollection _extensionAssemblies
+    .field  private  class [System]System.Collections.Specialized.StringCollection _targets
+    .field  private  bool _showProjectHelp
+    .field  private  bool _pause
+
+    // method line 1904
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x24c9c
+	// Code size 58 (0x3a)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld int32 NAnt.Core.CommandLineOptions::_indentationLevel
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class [System]System.Collections.Specialized.NameValueCollection::'.ctor'()
+	IL_000d:  stfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.CommandLineOptions::_properties
+	IL_0012:  ldarg.0 
+	IL_0013:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0018:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::_listeners
+	IL_001d:  ldarg.0 
+	IL_001e:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0023:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::_extensionAssemblies
+	IL_0028:  ldarg.0 
+	IL_0029:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_002e:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::_targets
+	IL_0033:  ldarg.0 
+	IL_0034:  call instance void object::'.ctor'()
+	IL_0039:  ret 
+    } // end of method CommandLineOptions::.ctor
+
+    // method line 1905
+    .method public hidebysig specialname 
+           instance default string get_TargetFramework ()  cil managed 
     {
-        // Method begins at RVA 0x258dc
+        // Method begins at RVA 0x24cd8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.Level	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.XmlLogger::_threshold
+	IL_0002:  ldfld string NAnt.Core.CommandLineOptions::_targetFramework
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XmlLogger::get_Threshold
+    } // end of method CommandLineOptions::get_TargetFramework
 
-    // method line 2148
-    .method public final virtual hidebysig newslot specialname 
-           instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
+    // method line 1906
+    .method public hidebysig specialname 
+           instance default void set_TargetFramework (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x258f7
+        // Method begins at RVA 0x24cf3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.Core.Level NAnt.Core.XmlLogger::_threshold
+	IL_0003:  stfld string NAnt.Core.CommandLineOptions::_targetFramework
 	IL_0008:  ret 
-    } // end of method XmlLogger::set_Threshold
+    } // end of method CommandLineOptions::set_TargetFramework
 
-    // method line 2149
-    .method public virtual hidebysig newslot specialname 
-           instance default bool get_EmacsMode ()  cil managed 
+    // method line 1907
+    .method public hidebysig specialname 
+           instance default string get_DefaultFramework ()  cil managed 
     {
-        // Method begins at RVA 0x25904
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x24d00
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.CommandLineOptions::_targetFramework
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method XmlLogger::get_EmacsMode
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_DefaultFramework
 
-    // method line 2150
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_EmacsMode (bool 'value')  cil managed 
+    // method line 1908
+    .method public hidebysig specialname 
+           instance default void set_DefaultFramework (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2591a
-	// Code size 2 (0x2)
+        // Method begins at RVA 0x24d1b
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method XmlLogger::set_EmacsMode
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.CommandLineOptions::_targetFramework
+	IL_0008:  ret 
+    } // end of method CommandLineOptions::set_DefaultFramework
 
-    // method line 2151
-    .method public final virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.TextWriter get_OutputWriter ()  cil managed 
+    // method line 1909
+    .method public hidebysig specialname 
+           instance default string get_BuildFile ()  cil managed 
     {
-        // Method begins at RVA 0x25920
+        // Method begins at RVA 0x24d28
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.TextWriter	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.TextWriter NAnt.Core.XmlLogger::_outputWriter
+	IL_0002:  ldfld string NAnt.Core.CommandLineOptions::_buildFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method XmlLogger::get_OutputWriter
+    } // end of method CommandLineOptions::get_BuildFile
 
-    // method line 2152
-    .method public final virtual hidebysig newslot specialname 
-           instance default void set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
+    // method line 1910
+    .method public hidebysig specialname 
+           instance default void set_BuildFile (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2593b
+        // Method begins at RVA 0x24d43
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.TextWriter NAnt.Core.XmlLogger::_outputWriter
+	IL_0003:  stfld string NAnt.Core.CommandLineOptions::_buildFile
 	IL_0008:  ret 
-    } // end of method XmlLogger::set_OutputWriter
+    } // end of method CommandLineOptions::set_BuildFile
 
-    // method line 2153
-    .method public final virtual hidebysig newslot 
-           instance default void Flush ()  cil managed 
+    // method line 1911
+    .method public hidebysig specialname 
+           instance default bool get_Pause ()  cil managed 
     {
-        // Method begins at RVA 0x25948
-	// Code size 47 (0x2f)
-	.maxstack 2
+        // Method begins at RVA 0x24d50
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		object	V_0,
-		bool	V_1)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_pause
 	IL_0007:  stloc.0 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  stloc.1 
-	.try { // 0
-	  IL_000a:  ldloc.0 
-	  IL_000b:  ldloca.s 1
-	  IL_000d:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
-	  IL_0012:  nop 
-	  IL_0013:  ldarg.0 
-	  IL_0014:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	  IL_0019:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::Flush()
-	  IL_001e:  nop 
-	  IL_001f:  leave IL_002e
+	IL_0008:  br IL_000d
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0024:  ldloc.1 
-	  IL_0025:  brfalse.s IL_002d
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_Pause
 
-	  IL_0027:  ldloc.0 
-	  IL_0028:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
-	  IL_002d:  endfinally 
-	} // end handler 0
-	IL_002e:  ret 
-    } // end of method XmlLogger::Flush
+    // method line 1912
+    .method public hidebysig specialname 
+           instance default void set_Pause (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x24d6b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_pause
+	IL_0008:  ret 
+    } // end of method CommandLineOptions::set_Pause
 
-    // method line 2154
-    .method public hidebysig 
-           instance default string StripFormatting (string message)  cil managed 
+    // method line 1913
+    .method public hidebysig specialname 
+           instance default bool get_Verbose ()  cil managed 
     {
-        // Method begins at RVA 0x25994
-	// Code size 119 (0x77)
-	.maxstack 3
+        // Method begins at RVA 0x24d78
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		class [System]System.Text.RegularExpressions.Regex	V_1,
-		class [System]System.Text.RegularExpressions.Match	V_2,
-		string	V_3)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldstr "(?ms)^[\\s\\0]*?\\[[\\s\\w\\d]+\\](.+)"
-	IL_0006:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
-	IL_000b:  stloc.1 
-	IL_000c:  ldloc.1 
-	IL_000d:  ldarg.1 
-	IL_000e:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
-	IL_0013:  stloc.2 
-	IL_0014:  ldloc.2 
-	IL_0015:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
-	IL_001a:  brfalse IL_005b
-
-	IL_001f:  nop 
-	IL_0020:  ldloc.2 
-	IL_0021:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	IL_0026:  ldc.i4.1 
-	IL_0027:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(int32)
-	IL_002c:  callvirt instance class [System]System.Text.RegularExpressions.CaptureCollection class [System]System.Text.RegularExpressions.Group::get_Captures()
-	IL_0031:  ldc.i4.0 
-	IL_0032:  callvirt instance class [System]System.Text.RegularExpressions.Capture class [System]System.Text.RegularExpressions.CaptureCollection::get_Item(int32)
-	IL_0037:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	IL_003c:  stloc.0 
-	IL_003d:  ldloc.0 
-	IL_003e:  ldstr bytearray (
-	00 00 00 )                                       // ...
-	
-	IL_0043:  ldsfld string [mscorlib]System.String::Empty
-	IL_0048:  callvirt instance string string::Replace(string, string)
-	IL_004d:  stloc.0 
-	IL_004e:  ldloc.0 
-	IL_004f:  callvirt instance string string::Trim()
-	IL_0054:  stloc.0 
-	IL_0055:  nop 
-	IL_0056:  br IL_006e
-
-	IL_005b:  nop 
-	IL_005c:  ldarg.1 
-	IL_005d:  ldstr bytearray (
-	00 00 00 )                                       // ...
-	
-	IL_0062:  ldsfld string [mscorlib]System.String::Empty
-	IL_0067:  callvirt instance string string::Replace(string, string)
-	IL_006c:  stloc.0 
-	IL_006d:  nop 
-	IL_006e:  ldloc.0 
-	IL_006f:  stloc.3 
-	IL_0070:  br IL_0075
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_verbose
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0075:  ldloc.3 
-	IL_0076:  ret 
-    } // end of method XmlLogger::StripFormatting
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_Verbose
 
-    // method line 2155
-    .method public hidebysig 
-           instance default bool IsJustWhiteSpace (string message)  cil managed 
+    // method line 1914
+    .method public hidebysig specialname 
+           instance default void set_Verbose (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x25a18
-	// Code size 32 (0x20)
-	.maxstack 2
-	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0,
-		bool	V_1)
+        // Method begins at RVA 0x24d93
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldstr "^[\\s\\0]*$"
-	IL_0006:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
-	IL_000b:  stloc.0 
-	IL_000c:  ldloc.0 
-	IL_000d:  ldarg.1 
-	IL_000e:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
-	IL_0013:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
-	IL_0018:  stloc.1 
-	IL_0019:  br IL_001e
-
-	IL_001e:  ldloc.1 
-	IL_001f:  ret 
-    } // end of method XmlLogger::IsJustWhiteSpace
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_verbose
+	IL_0008:  ret 
+    } // end of method CommandLineOptions::set_Verbose
 
-    // method line 2156
-    .method private hidebysig 
-           instance default void WriteErrorNode (class [mscorlib]System.Exception exception)  cil managed 
+    // method line 1915
+    .method public hidebysig specialname 
+           instance default bool get_Debug ()  cil managed 
     {
-        // Method begins at RVA 0x25a44
-	// Code size 505 (0x1f9)
-	.maxstack 4
+        // Method begins at RVA 0x24da0
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.Core.BuildException	V_0,
-		int32	V_1,
-		int32	V_2)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_000d
-
-	IL_0007:  nop 
-	IL_0008:  br IL_01f8
-
-	IL_000d:  nop 
-	IL_000e:  ldnull 
-	IL_000f:  stloc.0 
-	IL_0010:  ldtoken NAnt.Core.BuildException
-	IL_0015:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_001a:  ldarg.1 
-	IL_001b:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Exception::GetType()
-	IL_0020:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_0025:  brfalse IL_0033
-
-	IL_002a:  nop 
-	IL_002b:  ldarg.1 
-	IL_002c:  castclass NAnt.Core.BuildException
-	IL_0031:  stloc.0 
-	IL_0032:  nop 
-	IL_0033:  ldloc.0 
-	IL_0034:  brfalse IL_0050
-
-	IL_0039:  nop 
-	IL_003a:  ldarg.0 
-	IL_003b:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0040:  ldstr "builderror"
-	IL_0045:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
-	IL_004a:  nop 
-	IL_004b:  br IL_0062
-
-	IL_0050:  nop 
-	IL_0051:  ldarg.0 
-	IL_0052:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0057:  ldstr "internalerror"
-	IL_005c:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
-	IL_0061:  nop 
-	IL_0062:  ldarg.0 
-	IL_0063:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0068:  ldstr "type"
-	IL_006d:  ldarg.1 
-	IL_006e:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Exception::GetType()
-	IL_0073:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0078:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteElementString(string, string)
-	IL_007d:  ldloc.0 
-	IL_007e:  brfalse IL_0173
-
-	IL_0083:  nop 
-	IL_0084:  ldloc.0 
-	IL_0085:  callvirt instance string class NAnt.Core.BuildException::get_RawMessage()
-	IL_008a:  brfalse IL_00c3
-
-	IL_008f:  nop 
-	IL_0090:  ldarg.0 
-	IL_0091:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0096:  ldstr "message"
-	IL_009b:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
-	IL_00a0:  ldarg.0 
-	IL_00a1:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_00a6:  ldarg.0 
-	IL_00a7:  ldloc.0 
-	IL_00a8:  callvirt instance string class NAnt.Core.BuildException::get_RawMessage()
-	IL_00ad:  call instance string class NAnt.Core.XmlLogger::StripCData(string)
-	IL_00b2:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteCData(string)
-	IL_00b7:  ldarg.0 
-	IL_00b8:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_00bd:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
-	IL_00c2:  nop 
-	IL_00c3:  ldloc.0 
-	IL_00c4:  callvirt instance class NAnt.Core.Location class NAnt.Core.BuildException::get_Location()
-	IL_00c9:  brfalse IL_016d
-
-	IL_00ce:  nop 
-	IL_00cf:  ldloc.0 
-	IL_00d0:  callvirt instance class NAnt.Core.Location class NAnt.Core.BuildException::get_Location()
-	IL_00d5:  callvirt instance string object::ToString()
-	IL_00da:  call bool string::IsNullOrEmpty(string)
-	IL_00df:  brtrue IL_016c
-
-	IL_00e4:  nop 
-	IL_00e5:  ldarg.0 
-	IL_00e6:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_00eb:  ldstr "location"
-	IL_00f0:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
-	IL_00f5:  ldarg.0 
-	IL_00f6:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_00fb:  ldstr "filename"
-	IL_0100:  ldloc.0 
-	IL_0101:  callvirt instance class NAnt.Core.Location class NAnt.Core.BuildException::get_Location()
-	IL_0106:  callvirt instance string class NAnt.Core.Location::get_FileName()
-	IL_010b:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteElementString(string, string)
-	IL_0110:  ldarg.0 
-	IL_0111:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0116:  ldstr "linenumber"
-	IL_011b:  ldloc.0 
-	IL_011c:  callvirt instance class NAnt.Core.Location class NAnt.Core.BuildException::get_Location()
-	IL_0121:  callvirt instance int32 class NAnt.Core.Location::get_LineNumber()
-	IL_0126:  stloc.1 
-	IL_0127:  ldloca.s 1
-	IL_0129:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_012e:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
-	IL_0133:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteElementString(string, string)
-	IL_0138:  ldarg.0 
-	IL_0139:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_013e:  ldstr "columnnumber"
-	IL_0143:  ldloc.0 
-	IL_0144:  callvirt instance class NAnt.Core.Location class NAnt.Core.BuildException::get_Location()
-	IL_0149:  callvirt instance int32 class NAnt.Core.Location::get_ColumnNumber()
-	IL_014e:  stloc.2 
-	IL_014f:  ldloca.s 2
-	IL_0151:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0156:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
-	IL_015b:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteElementString(string, string)
-	IL_0160:  ldarg.0 
-	IL_0161:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0166:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
-	IL_016b:  nop 
-	IL_016c:  nop 
-	IL_016d:  nop 
-	IL_016e:  br IL_01b4
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_debug
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0173:  nop 
-	IL_0174:  ldarg.1 
-	IL_0175:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	IL_017a:  brfalse IL_01b3
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_Debug
 
-	IL_017f:  nop 
-	IL_0180:  ldarg.0 
-	IL_0181:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0186:  ldstr "message"
-	IL_018b:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
-	IL_0190:  ldarg.0 
-	IL_0191:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0196:  ldarg.0 
-	IL_0197:  ldarg.1 
-	IL_0198:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	IL_019d:  call instance string class NAnt.Core.XmlLogger::StripCData(string)
-	IL_01a2:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteCData(string)
-	IL_01a7:  ldarg.0 
-	IL_01a8:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_01ad:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
-	IL_01b2:  nop 
-	IL_01b3:  nop 
-	IL_01b4:  ldarg.0 
-	IL_01b5:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_01ba:  ldstr "stacktrace"
-	IL_01bf:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
-	IL_01c4:  ldarg.0 
-	IL_01c5:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_01ca:  ldarg.1 
-	IL_01cb:  callvirt instance string class [mscorlib]System.Exception::get_StackTrace()
-	IL_01d0:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteCData(string)
-	IL_01d5:  ldarg.0 
-	IL_01d6:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_01db:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
-	IL_01e0:  ldarg.0 
-	IL_01e1:  ldarg.1 
-	IL_01e2:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
-	IL_01e7:  call instance void class NAnt.Core.XmlLogger::WriteErrorNode(class [mscorlib]System.Exception)
-	IL_01ec:  ldarg.0 
-	IL_01ed:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_01f2:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
-	IL_01f7:  nop 
-	IL_01f8:  ret 
-    } // end of method XmlLogger::WriteErrorNode
+    // method line 1916
+    .method public hidebysig specialname 
+           instance default void set_Debug (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x24dbb
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_debug
+	IL_0008:  ret 
+    } // end of method CommandLineOptions::set_Debug
 
-    // method line 2157
-    .method private hidebysig 
-           instance default bool IsValidXml (string message)  cil managed 
+    // method line 1917
+    .method public hidebysig specialname 
+           instance default bool get_Quiet ()  cil managed 
     {
-        // Method begins at RVA 0x25c4c
-	// Code size 96 (0x60)
-	.maxstack 3
+        // Method begins at RVA 0x24dc8
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [System.Xml]System.Xml.XmlValidatingReader	V_0,
-		bool	V_1)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "^<.*>"
-	IL_0007:  call class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string, string)
-	IL_000c:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
-	IL_0011:  brfalse IL_0057
-
-	IL_0016:  nop 
-	IL_0017:  ldnull 
-	IL_0018:  stloc.0 
-	.try { // 1
-	  .try { // 0
-	    IL_0019:  nop 
-	    IL_001a:  ldarg.1 
-	    IL_001b:  ldc.i4.s 0x09
-	    IL_001d:  ldnull 
-	    IL_001e:  newobj instance void class [System.Xml]System.Xml.XmlValidatingReader::'.ctor'(string, valuetype [System.Xml]System.Xml.XmlNodeType, class [System.Xml]System.Xml.XmlParserContext)
-	    IL_0023:  stloc.0 
-	    IL_0024:  br IL_002b
-
-	    IL_0029:  nop 
-	    IL_002a:  nop 
-	    IL_002b:  ldloc.0 
-	    IL_002c:  callvirt instance bool class [System.Xml]System.Xml.XmlReader::Read()
-	    IL_0031:  brtrue IL_0029
-
-	    IL_0036:  ldc.i4.1 
-	    IL_0037:  stloc.1 
-	    IL_0038:  leave IL_005e
-
-	  } // end .try 0
-	  catch class [mscorlib]System.Object { // 0
-	    IL_003d:  pop 
-	    IL_003e:  nop 
-	    IL_003f:  ldc.i4.0 
-	    IL_0040:  stloc.1 
-	    IL_0041:  leave IL_005e
-
-	  } // end handler 0
-	} // end .try 1
-	finally  { // 1
-	  IL_0046:  nop 
-	  IL_0047:  ldloc.0 
-	  IL_0048:  brfalse IL_0055
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_quiet
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_004d:  nop 
-	  IL_004e:  ldloc.0 
-	  IL_004f:  callvirt instance void class [System.Xml]System.Xml.XmlReader::Close()
-	  IL_0054:  nop 
-	  IL_0055:  nop 
-	  IL_0056:  endfinally 
-	} // end handler 1
-	IL_0057:  ldc.i4.0 
-	IL_0058:  stloc.1 
-	IL_0059:  br IL_005e
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_Quiet
 
-	IL_005e:  ldloc.1 
-	IL_005f:  ret 
-    } // end of method XmlLogger::IsValidXml
+    // method line 1918
+    .method public hidebysig specialname 
+           instance default void set_Quiet (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x24de3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_quiet
+	IL_0008:  ret 
+    } // end of method CommandLineOptions::set_Quiet
 
-    // method line 2158
-    .method private hidebysig 
-           instance default string StripCData (string message)  cil managed 
+    // method line 1919
+    .method public hidebysig specialname 
+           instance default bool get_EmacsMode ()  cil managed 
     {
-        // Method begins at RVA 0x25cd4
-	// Code size 42 (0x2a)
-	.maxstack 3
+        // Method begins at RVA 0x24df0
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		string	V_1)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "<!\\[CDATA\\["
-	IL_0007:  ldsfld string [mscorlib]System.String::Empty
-	IL_000c:  call string class [System]System.Text.RegularExpressions.Regex::Replace(string, string, string)
-	IL_0011:  stloc.0 
-	IL_0012:  ldloc.0 
-	IL_0013:  ldstr "\\]\\]>"
-	IL_0018:  ldsfld string [mscorlib]System.String::Empty
-	IL_001d:  call string class [System]System.Text.RegularExpressions.Regex::Replace(string, string, string)
-	IL_0022:  stloc.1 
-	IL_0023:  br IL_0028
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_emacsMode
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0028:  ldloc.1 
-	IL_0029:  ret 
-    } // end of method XmlLogger::StripCData
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_EmacsMode
 
-    // method line 2159
-    .method private hidebysig 
-           instance default void WriteNameAttribute (string name)  cil managed 
+    // method line 1920
+    .method public hidebysig specialname 
+           instance default void set_EmacsMode (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x25d0a
-	// Code size 19 (0x13)
+        // Method begins at RVA 0x24e0b
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
-	IL_0007:  ldstr "name"
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteAttributeString(string, string)
-	IL_0012:  ret 
-    } // end of method XmlLogger::WriteNameAttribute
-
-	.property instance valuetype NAnt.Core.Level Threshold ()
-	{
-		.get instance default valuetype NAnt.Core.Level NAnt.Core.XmlLogger::get_Threshold () 
-		.set instance default void NAnt.Core.XmlLogger::set_Threshold (valuetype NAnt.Core.Level 'value') 
-	}
-	.property instance bool EmacsMode ()
-	{
-		.get instance default bool NAnt.Core.XmlLogger::get_EmacsMode () 
-		.set instance default void NAnt.Core.XmlLogger::set_EmacsMode (bool 'value') 
-	}
-	.property instance class [mscorlib]System.IO.TextWriter OutputWriter ()
-	{
-		.get instance default class [mscorlib]System.IO.TextWriter NAnt.Core.XmlLogger::get_OutputWriter () 
-		.set instance default void NAnt.Core.XmlLogger::set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value') 
-	}
-  .class nested private auto ansi beforefieldinit Elements
-  	extends [mscorlib]System.Object
-  {
-    .field public static literal  string BuildResults = "buildresults"
-    .field public static literal  string Message = "message"
-    .field public static literal  string Target = "target"
-    .field public static literal  string Task = "task"
-    .field public static literal  string Status = "status"
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_emacsMode
+	IL_0008:  ret 
+    } // end of method CommandLineOptions::set_EmacsMode
 
-    // method line 2160
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1921
+    .method public hidebysig specialname 
+           instance default bool get_FindInParent ()  cil managed 
     {
-        // Method begins at RVA 0x25d1e
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method Elements::.ctor
-
-  } // end of class Elements
+        // Method begins at RVA 0x24e18
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_findInParent
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-  .class nested private auto ansi beforefieldinit Attributes
-  	extends [mscorlib]System.Object
-  {
-    .field public static literal  string Project = "project"
-    .field public static literal  string MessageLevel = "level"
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_FindInParent
 
-    // method line 2161
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1922
+    .method public hidebysig specialname 
+           instance default void set_FindInParent (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x25d26
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x24e33
+	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method Attributes::.ctor
-
-  } // end of class Attributes
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_findInParent
+	IL_0008:  ret 
+    } // end of method CommandLineOptions::set_FindInParent
 
-  } // end of class NAnt.Core.XmlLogger
-}
+    // method line 1923
+    .method public hidebysig specialname 
+           instance default int32 get_IndentationLevel ()  cil managed 
+    {
+        // Method begins at RVA 0x24e40
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.Core.CommandLineOptions::_indentationLevel
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-.namespace NAnt.Core
-{
-  .class public auto ansi ExpressionTokenizer
-  	extends [mscorlib]System.Object
-  {
-    .field  private  string _text
-    .field  private  int32 _position
-    .field  private  valuetype NAnt.Core.ExpressionTokenizer/Position _tokenStartPosition
-    .field  private  valuetype NAnt.Core.ExpressionTokenizer/TokenType _tokenType
-    .field  private  string _tokenText
-    .field  private  bool _ignoreWhiteSpace
-    .field  private  bool _singleCharacterMode
-    .field  private static  valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType[] charToTokenType
-    .field  private static  valuetype NAnt.Core.ExpressionTokenizer/TokenType[] charIndexToTokenType
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_IndentationLevel
 
-    // method line 2162
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 1924
+    .method public hidebysig specialname 
+           instance default void set_IndentationLevel (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x25d2e
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x24e5b
+	// Code size 9 (0x9)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Core.ExpressionTokenizer::_ignoreWhiteSpace
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void object::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method ExpressionTokenizer::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Core.CommandLineOptions::_indentationLevel
+	IL_0008:  ret 
+    } // end of method CommandLineOptions::set_IndentationLevel
 
-    // method line 2163
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+    // method line 1925
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.NameValueCollection get_Properties ()  cil managed 
     {
-        // Method begins at RVA 0x25d40
-	// Code size 439 (0x1b7)
-	.maxstack 4
+        // Method begins at RVA 0x24e68
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		int32	V_0,
-		valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType	V_1,
-		valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType[]	V_2,
-		int32	V_3)
-	IL_0000:  ldc.i4.s 0x0f
-	IL_0002:  newarr NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0007:  dup 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_000e:  ldc.i4.s 0x2b
-	IL_0010:  ldc.i4.s 0x0b
-	IL_0012:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_0017:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_001c:  dup 
-	IL_001d:  ldc.i4.1 
-	IL_001e:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0023:  ldc.i4.s 0x2d
-	IL_0025:  ldc.i4.s 0x0c
-	IL_0027:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_002c:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0031:  dup 
-	IL_0032:  ldc.i4.2 
-	IL_0033:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0038:  ldc.i4.s 0x2a
-	IL_003a:  ldc.i4.s 0x0d
-	IL_003c:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_0041:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0046:  dup 
-	IL_0047:  ldc.i4.3 
-	IL_0048:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_004d:  ldc.i4.s 0x2f
-	IL_004f:  ldc.i4.s 0x0e
-	IL_0051:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_0056:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_005b:  dup 
-	IL_005c:  ldc.i4.4 
-	IL_005d:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0062:  ldc.i4.s 0x25
-	IL_0064:  ldc.i4.s 0x0f
-	IL_0066:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_006b:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0070:  dup 
-	IL_0071:  ldc.i4.5 
-	IL_0072:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0077:  ldc.i4.s 0x3c
-	IL_0079:  ldc.i4.7 
-	IL_007a:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_007f:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0084:  dup 
-	IL_0085:  ldc.i4.6 
-	IL_0086:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_008b:  ldc.i4.s 0x3e
-	IL_008d:  ldc.i4.8 
-	IL_008e:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_0093:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0098:  dup 
-	IL_0099:  ldc.i4.7 
-	IL_009a:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_009f:  ldc.i4.s 0x28
-	IL_00a1:  ldc.i4.s 0x10
-	IL_00a3:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_00a8:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_00ad:  dup 
-	IL_00ae:  ldc.i4.8 
-	IL_00af:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_00b4:  ldc.i4.s 0x29
-	IL_00b6:  ldc.i4.s 0x11
-	IL_00b8:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_00bd:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_00c2:  dup 
-	IL_00c3:  ldc.i4.s 0x09
-	IL_00c5:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_00ca:  ldc.i4.s 0x7b
-	IL_00cc:  ldc.i4.s 0x12
-	IL_00ce:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_00d3:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_00d8:  dup 
-	IL_00d9:  ldc.i4.s 0x0a
-	IL_00db:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_00e0:  ldc.i4.s 0x7d
-	IL_00e2:  ldc.i4.s 0x13
-	IL_00e4:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_00e9:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_00ee:  dup 
-	IL_00ef:  ldc.i4.s 0x0b
-	IL_00f1:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_00f6:  ldc.i4.s 0x21
-	IL_00f8:  ldc.i4.s 0x14
-	IL_00fa:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_00ff:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0104:  dup 
-	IL_0105:  ldc.i4.s 0x0c
-	IL_0107:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_010c:  ldc.i4.s 0x24
-	IL_010e:  ldc.i4.s 0x17
-	IL_0110:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_0115:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_011a:  dup 
-	IL_011b:  ldc.i4.s 0x0d
-	IL_011d:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0122:  ldc.i4.s 0x2c
-	IL_0124:  ldc.i4.s 0x18
-	IL_0126:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_012b:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0130:  dup 
-	IL_0131:  ldc.i4.s 0x0e
-	IL_0133:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0138:  ldc.i4.s 0x2e
-	IL_013a:  ldc.i4.s 0x19
-	IL_013c:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
-	IL_0141:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0146:  stsfld valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType[] NAnt.Core.ExpressionTokenizer::charToTokenType
-	IL_014b:  ldc.i4 128
-	IL_0150:  newarr NAnt.Core.ExpressionTokenizer/TokenType
-	IL_0155:  stsfld valuetype NAnt.Core.ExpressionTokenizer/TokenType[] NAnt.Core.ExpressionTokenizer::charIndexToTokenType
-	IL_015a:  nop 
-	IL_015b:  ldc.i4.0 
-	IL_015c:  stloc.0 
-	IL_015d:  br IL_016f
-
-	IL_0162:  ldsfld valuetype NAnt.Core.ExpressionTokenizer/TokenType[] NAnt.Core.ExpressionTokenizer::charIndexToTokenType
-	IL_0167:  ldloc.0 
-	IL_0168:  ldc.i4.s 0x15
-	IL_016a:  stelem.i4 
-	IL_016b:  ldloc.0 
-	IL_016c:  ldc.i4.1 
-	IL_016d:  add 
-	IL_016e:  stloc.0 
-	IL_016f:  ldloc.0 
-	IL_0170:  ldc.i4 128
-	IL_0175:  blt IL_0162
-
-	IL_017a:  nop 
-	IL_017b:  ldsfld valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType[] NAnt.Core.ExpressionTokenizer::charToTokenType
-	IL_0180:  stloc.2 
-	IL_0181:  ldc.i4.0 
-	IL_0182:  stloc.3 
-	IL_0183:  br IL_01ad
-
-	IL_0188:  ldloc.2 
-	IL_0189:  ldloc.3 
-	IL_018a:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_018f:  ldobj NAnt.Core.ExpressionTokenizer/CharToTokenType
-	IL_0194:  stloc.1 
-	IL_0195:  ldsfld valuetype NAnt.Core.ExpressionTokenizer/TokenType[] NAnt.Core.ExpressionTokenizer::charIndexToTokenType
-	IL_019a:  ldloca.s 1
-	IL_019c:  ldfld char NAnt.Core.ExpressionTokenizer/CharToTokenType::ch
-	IL_01a1:  ldloca.s 1
-	IL_01a3:  ldfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer/CharToTokenType::tokenType
-	IL_01a8:  stelem.i4 
-	IL_01a9:  ldloc.3 
-	IL_01aa:  ldc.i4.1 
-	IL_01ab:  add 
-	IL_01ac:  stloc.3 
-	IL_01ad:  ldloc.3 
-	IL_01ae:  ldloc.2 
-	IL_01af:  ldlen 
-	IL_01b0:  conv.i4 
-	IL_01b1:  blt IL_0188
+		class [System]System.Collections.Specialized.NameValueCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.CommandLineOptions::_properties
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_01b6:  ret 
-    } // end of method ExpressionTokenizer::.cctor
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_Properties
 
-    // method line 2164
+    // method line 1926
     .method public hidebysig specialname 
-           instance default bool get_IgnoreWhitespace ()  cil managed 
+           instance default string get_LoggerType ()  cil managed 
     {
-        // Method begins at RVA 0x25f04
+        // Method begins at RVA 0x24e84
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.ExpressionTokenizer::_ignoreWhiteSpace
+	IL_0002:  ldfld string NAnt.Core.CommandLineOptions::_loggerType
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExpressionTokenizer::get_IgnoreWhitespace
+    } // end of method CommandLineOptions::get_LoggerType
 
-    // method line 2165
+    // method line 1927
     .method public hidebysig specialname 
-           instance default void set_IgnoreWhitespace (bool 'value')  cil managed 
+           instance default void set_LoggerType (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x25f1f
+        // Method begins at RVA 0x24e9f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.ExpressionTokenizer::_ignoreWhiteSpace
+	IL_0003:  stfld string NAnt.Core.CommandLineOptions::_loggerType
 	IL_0008:  ret 
-    } // end of method ExpressionTokenizer::set_IgnoreWhitespace
+    } // end of method CommandLineOptions::set_LoggerType
 
-    // method line 2166
+    // method line 1928
     .method public hidebysig specialname 
-           instance default bool get_SingleCharacterMode ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_LogFile ()  cil managed 
     {
-        // Method begins at RVA 0x25f2c
+        // Method begins at RVA 0x24eac
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.ExpressionTokenizer::_singleCharacterMode
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.CommandLineOptions::_logFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExpressionTokenizer::get_SingleCharacterMode
+    } // end of method CommandLineOptions::get_LogFile
 
-    // method line 2167
+    // method line 1929
     .method public hidebysig specialname 
-           instance default void set_SingleCharacterMode (bool 'value')  cil managed 
+           instance default void set_LogFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x25f47
+        // Method begins at RVA 0x24ec7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.ExpressionTokenizer::_singleCharacterMode
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.CommandLineOptions::_logFile
 	IL_0008:  ret 
-    } // end of method ExpressionTokenizer::set_SingleCharacterMode
+    } // end of method CommandLineOptions::set_LogFile
 
-    // method line 2168
+    // method line 1930
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.ExpressionTokenizer/TokenType get_CurrentToken ()  cil managed 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Listeners ()  cil managed 
     {
-        // Method begins at RVA 0x25f54
+        // Method begins at RVA 0x24ed4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.ExpressionTokenizer/TokenType	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::_listeners
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExpressionTokenizer::get_CurrentToken
+    } // end of method CommandLineOptions::get_Listeners
 
-    // method line 2169
+    // method line 1931
     .method public hidebysig specialname 
-           instance default string get_TokenText ()  cil managed 
+           instance default class [System]System.Collections.Specialized.StringCollection get_ExtensionAssemblies ()  cil managed 
     {
-        // Method begins at RVA 0x25f70
+        // Method begins at RVA 0x24ef0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::_extensionAssemblies
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExpressionTokenizer::get_TokenText
+    } // end of method CommandLineOptions::get_ExtensionAssemblies
 
-    // method line 2170
+    // method line 1932
     .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.ExpressionTokenizer/Position get_CurrentPosition ()  cil managed 
+           instance default bool get_ShowProjectHelp ()  cil managed 
     {
-        // Method begins at RVA 0x25f8c
+        // Method begins at RVA 0x24f0c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.ExpressionTokenizer::_tokenStartPosition
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_showProjectHelp
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExpressionTokenizer::get_CurrentPosition
+    } // end of method CommandLineOptions::get_ShowProjectHelp
 
-    // method line 2171
-    .method public hidebysig 
-           instance default void InitTokenizer (string s)  cil managed 
+    // method line 1933
+    .method public hidebysig specialname 
+           instance default void set_ShowProjectHelp (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x25fa7
-	// Code size 29 (0x1d)
+        // Method begins at RVA 0x24f27
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.ExpressionTokenizer::_text
-	IL_0008:  ldarg.0 
-	IL_0009:  ldc.i4.0 
-	IL_000a:  stfld int32 NAnt.Core.ExpressionTokenizer::_position
-	IL_000f:  ldarg.0 
-	IL_0010:  ldc.i4.0 
-	IL_0011:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_001c:  ret 
-    } // end of method ExpressionTokenizer::InitTokenizer
+	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_showProjectHelp
+	IL_0008:  ret 
+    } // end of method CommandLineOptions::set_ShowProjectHelp
 
-    // method line 2172
-    .method public hidebysig 
-           instance default void GetNextToken ()  cil managed 
+    // method line 1934
+    .method public hidebysig specialname 
+           instance default bool get_NoLogo ()  cil managed 
     {
-        // Method begins at RVA 0x25fc8
-	// Code size 1053 (0x41d)
-	.maxstack 3
+        // Method begins at RVA 0x24f34
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		int32	V_0,
-		char	V_1,
-		class [mscorlib]System.Text.StringBuilder	V_2,
-		string	V_3,
-		string	V_4,
-		class [mscorlib]System.Text.StringBuilder	V_5,
-		char	V_6,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_7)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_0007:  ldc.i4.1 
-	IL_0008:  bne.un IL_001f
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_noLogo
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_000d:  ldstr "String_CannotReadPastStream"
-	IL_0012:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0017:  ldc.i4.m1 
-	IL_0018:  ldc.i4.m1 
-	IL_0019:  newobj instance void class NAnt.Core.ExpressionParseException::'.ctor'(string, int32, int32)
-	IL_001e:  throw 
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance bool class NAnt.Core.ExpressionTokenizer::get_IgnoreWhitespace()
-	IL_0025:  brfalse IL_0030
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_NoLogo
 
-	IL_002a:  ldarg.0 
-	IL_002b:  call instance void class NAnt.Core.ExpressionTokenizer::SkipWhitespace()
-	IL_0030:  ldarg.0 
-	IL_0031:  ldarg.0 
-	IL_0032:  ldfld int32 NAnt.Core.ExpressionTokenizer::_position
-	IL_0037:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/Position::'.ctor'(int32)
-	IL_003c:  stfld valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.ExpressionTokenizer::_tokenStartPosition
-	IL_0041:  ldarg.0 
-	IL_0042:  call instance int32 class NAnt.Core.ExpressionTokenizer::PeekChar()
-	IL_0047:  stloc.0 
-	IL_0048:  ldloc.0 
-	IL_0049:  ldc.i4.m1 
-	IL_004a:  bne.un IL_005c
+    // method line 1935
+    .method public hidebysig specialname 
+           instance default void set_NoLogo (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x24f4f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_noLogo
+	IL_0008:  ret 
+    } // end of method CommandLineOptions::set_NoLogo
 
-	IL_004f:  nop 
-	IL_0050:  ldarg.0 
-	IL_0051:  ldc.i4.1 
-	IL_0052:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_0057:  br IL_041c
+    // method line 1936
+    .method public hidebysig specialname 
+           instance default bool get_ShowHelp ()  cil managed 
+    {
+        // Method begins at RVA 0x24f5c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_showHelp
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_005c:  ldloc.0 
-	IL_005d:  conv.u2 
-	IL_005e:  stloc.1 
-	IL_005f:  ldarg.0 
-	IL_0060:  call instance bool class NAnt.Core.ExpressionTokenizer::get_SingleCharacterMode()
-	IL_0065:  brtrue IL_03d5
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_ShowHelp
 
-	IL_006a:  nop 
-	IL_006b:  ldarg.0 
-	IL_006c:  call instance bool class NAnt.Core.ExpressionTokenizer::get_IgnoreWhitespace()
-	IL_0071:  brtrue IL_00d7
+    // method line 1937
+    .method public hidebysig specialname 
+           instance default void set_ShowHelp (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x24f77
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_showHelp
+	IL_0008:  ret 
+    } // end of method CommandLineOptions::set_ShowHelp
 
-	IL_0076:  ldloc.1 
-	IL_0077:  call bool char::IsWhiteSpace(char)
-	IL_007c:  brfalse IL_00d7
+    // method line 1938
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Targets ()  cil managed 
+    {
+        // Method begins at RVA 0x24f84
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [System]System.Collections.Specialized.StringCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::_targets
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0081:  nop 
-	IL_0082:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0087:  stloc.2 
-	IL_0088:  br IL_00b0
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CommandLineOptions::get_Targets
 
-	IL_008d:  nop 
-	IL_008e:  ldloc.0 
-	IL_008f:  conv.u2 
-	IL_0090:  call bool char::IsWhiteSpace(char)
-	IL_0095:  brtrue IL_009f
+	.property instance string TargetFramework ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 00 00 00 00 03 00 54 0E 04 4E 61 6D 65 0F   // ........T..Name.
+		74 61 72 67 65 74 66 72 61 6D 65 77 6F 72 6B 54   // targetframeworkT
+		0E 09 53 68 6F 72 74 4E 61 6D 65 01 74 54 0E 0B   // ..ShortName.tT..
+		44 65 73 63 72 69 70 74 69 6F 6E 21 53 70 65 63   // Description!Spec
+		69 66 69 65 73 20 74 68 65 20 66 72 61 6D 65 77   // ifies the framew
+		6F 72 6B 20 74 6F 20 74 61 72 67 65 74          ) // ork to target
 
-	IL_009a:  br IL_00be
+		.get instance default string NAnt.Core.CommandLineOptions::get_TargetFramework () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_TargetFramework (string 'value') 
+	}
+	.property instance string DefaultFramework ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 00 00 00 00 03 00 54 0E 04 4E 61 6D 65 10   // ........T..Name.
+		64 65 66 61 75 6C 74 66 72 61 6D 65 77 6F 72 6B   // defaultframework
+		54 0E 09 53 68 6F 72 74 4E 61 6D 65 01 6B 54 0E   // T..ShortName.kT.
+		0B 44 65 73 63 72 69 70 74 69 6F 6E 21 53 70 65   // .Description!Spe
+		63 69 66 69 65 73 20 74 68 65 20 66 72 61 6D 65   // cifies the frame
+		77 6F 72 6B 20 74 6F 20 74 61 72 67 65 74       ) // work to target
 
-	IL_009f:  ldloc.2 
-	IL_00a0:  ldloc.0 
-	IL_00a1:  conv.u2 
-	IL_00a2:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_00a7:  pop 
-	IL_00a8:  ldarg.0 
-	IL_00a9:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
-	IL_00ae:  pop 
-	IL_00af:  nop 
-	IL_00b0:  ldarg.0 
-	IL_00b1:  call instance int32 class NAnt.Core.ExpressionTokenizer::PeekChar()
-	IL_00b6:  dup 
-	IL_00b7:  stloc.0 
-	IL_00b8:  ldc.i4.m1 
-	IL_00b9:  bne.un IL_008d
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 2A 55 73 65 20 74 68 65 20 2D 5B 74 5D 61   // ..*Use the -[t]a
+		72 67 65 74 66 72 61 6D 65 77 6F 72 6B 20 6F 70   // rgetframework op
+		74 69 6F 6E 20 69 6E 73 74 65 61 64 2E 00 00 00 ) // tion instead....
 
-	IL_00be:  ldarg.0 
-	IL_00bf:  ldc.i4.s 0x16
-	IL_00c1:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
-	IL_00c6:  ldarg.0 
-	IL_00c7:  ldloc.2 
-	IL_00c8:  callvirt instance string object::ToString()
-	IL_00cd:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
-	IL_00d2:  br IL_041c
+		.get instance default string NAnt.Core.CommandLineOptions::get_DefaultFramework () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_DefaultFramework (string 'value') 
+	}
+	.property instance string BuildFile ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 00 00 00 00 03 00 54 0E 04 4E 61 6D 65 09   // ........T..Name.
+		62 75 69 6C 64 66 69 6C 65 54 0E 09 53 68 6F 72   // buildfileT..Shor
+		74 4E 61 6D 65 01 66 54 0E 0B 44 65 73 63 72 69   // tName.fT..Descri
+		70 74 69 6F 6E 13 55 73 65 20 67 69 76 65 6E 20   // ption.Use given 
+		62 75 69 6C 64 66 69 6C 65                      ) // buildfile
 
-	IL_00d7:  ldloc.1 
-	IL_00d8:  call bool char::IsDigit(char)
-	IL_00dd:  brfalse IL_0153
+		.get instance default string NAnt.Core.CommandLineOptions::get_BuildFile () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_BuildFile (string 'value') 
+	}
+	.property instance bool Pause ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 00 00 00 00 02 00 54 0E 04 4E 61 6D 65 05   // ........T..Name.
+		70 61 75 73 65 54 0E 0B 44 65 73 63 72 69 70 74   // pauseT..Descript
+		69 6F 6E 1A 50 61 75 73 65 73 20 62 65 66 6F 72   // ion.Pauses befor
+		65 20 70 72 6F 67 72 61 6D 20 65 6E 64 73       ) // e program ends
+
+		.get instance default bool NAnt.Core.CommandLineOptions::get_Pause () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_Pause (bool 'value') 
+	}
+	.property instance bool Verbose ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 00 00 00 00 03 00 54 0E 04 4E 61 6D 65 07   // ........T..Name.
+		76 65 72 62 6F 73 65 54 0E 09 53 68 6F 72 74 4E   // verboseT..ShortN
+		61 6D 65 01 76 54 0E 0B 44 65 73 63 72 69 70 74   // ame.vT..Descript
+		69 6F 6E 2E 44 69 73 70 6C 61 79 73 20 6D 6F 72   // ion.Displays mor
+		65 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 64 75   // e information du
+		72 69 6E 67 20 62 75 69 6C 64 20 70 72 6F 63 65   // ring build proce
+		73 73                                           ) // ss
+
+		.get instance default bool NAnt.Core.CommandLineOptions::get_Verbose () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_Verbose (bool 'value') 
+	}
+	.property instance bool Debug ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 00 00 00 00 02 00 54 0E 04 4E 61 6D 65 05   // ........T..Name.
+		64 65 62 75 67 54 0E 0B 44 65 73 63 72 69 70 74   // debugT..Descript
+		69 6F 6E 2F 44 69 73 70 6C 61 79 73 20 64 65 62   // ion/Displays deb
+		75 67 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 64   // ug information d
+		75 72 69 6E 67 20 62 75 69 6C 64 20 70 72 6F 63   // uring build proc
+		65 73 73                                        ) // ess
+
+		.get instance default bool NAnt.Core.CommandLineOptions::get_Debug () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_Debug (bool 'value') 
+	}
+	.property instance bool Quiet ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 00 00 00 00 03 00 54 0E 04 4E 61 6D 65 05   // ........T..Name.
+		71 75 69 65 74 54 0E 09 53 68 6F 72 74 4E 61 6D   // quietT..ShortNam
+		65 01 71 54 0E 0B 44 65 73 63 72 69 70 74 69 6F   // e.qT..Descriptio
+		6E 3C 44 69 73 70 6C 61 79 73 20 6F 6E 6C 79 20   // n<Displays only 
+		65 72 72 6F 72 20 6F 72 20 77 61 72 6E 69 6E 67   // error or warning
+		20 6D 65 73 73 61 67 65 73 20 64 75 72 69 6E 67   //  messages during
+		20 62 75 69 6C 64 20 70 72 6F 63 65 73 73       ) //  build process
+
+		.get instance default bool NAnt.Core.CommandLineOptions::get_Quiet () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_Quiet (bool 'value') 
+	}
+	.property instance bool EmacsMode ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 00 00 00 00 03 00 54 0E 04 4E 61 6D 65 05   // ........T..Name.
+		65 6D 61 63 73 54 0E 09 53 68 6F 72 74 4E 61 6D   // emacsT..ShortNam
+		65 01 65 54 0E 0B 44 65 73 63 72 69 70 74 69 6F   // e.eT..Descriptio
+		6E 2E 50 72 6F 64 75 63 65 20 6C 6F 67 67 69 6E   // n.Produce loggin
+		67 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 77 69   // g information wi
+		74 68 6F 75 74 20 61 64 6F 72 6E 6D 65 6E 74 73 ) // thout adornments
+
+		.get instance default bool NAnt.Core.CommandLineOptions::get_EmacsMode () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_EmacsMode (bool 'value') 
+	}
+	.property instance bool FindInParent ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 00 00 00 00 02 00 54 0E 04 4E 61 6D 65 04   // ........T..Name.
+		66 69 6E 64 54 0E 0B 44 65 73 63 72 69 70 74 69   // findT..Descripti
+		6F 6E 28 53 65 61 72 63 68 20 70 61 72 65 6E 74   // on(Search parent
+		20 64 69 72 65 63 74 6F 72 69 65 73 20 66 6F 72   //  directories for
+		20 62 75 69 6C 64 20 66 69 6C 65                ) //  build file
+
+		.get instance default bool NAnt.Core.CommandLineOptions::get_FindInParent () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_FindInParent (bool 'value') 
+	}
+	.property instance int32 IndentationLevel ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 00 00 00 00 02 00 54 0E 04 4E 61 6D 65 06   // ........T..Name.
+		69 6E 64 65 6E 74 54 0E 0B 44 65 73 63 72 69 70   // indentT..Descrip
+		74 69 6F 6E 21 49 6E 64 65 6E 74 61 74 69 6F 6E   // tion!Indentation
+		20 6C 65 76 65 6C 20 6F 66 20 62 75 69 6C 64 20   //  level of build 
+		6F 75 74 70 75 74                               ) // output
+
+		.get instance default int32 NAnt.Core.CommandLineOptions::get_IndentationLevel () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_IndentationLevel (int32 'value') 
+	}
+	.property instance class [System]System.Collections.Specialized.NameValueCollection Properties ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 06 00 00 00 02 00 54 0E 04 4E 61 6D 65 01   // ........T..Name.
+		44 54 0E 0B 44 65 73 63 72 69 70 74 69 6F 6E 1C   // DT..Description.
+		55 73 65 20 76 61 6C 75 65 20 66 6F 72 20 67 69   // Use value for gi
+		76 65 6E 20 70 72 6F 70 65 72 74 79             ) // ven property
+
+		.get instance default class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.CommandLineOptions::get_Properties () 
+	}
+	.property instance string LoggerType ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 00 00 00 00 02 00 54 0E 04 4E 61 6D 65 06   // ........T..Name.
+		6C 6F 67 67 65 72 54 0E 0B 44 65 73 63 72 69 70   // loggerT..Descrip
+		74 69 6F 6E 18 55 73 65 20 67 69 76 65 6E 20 74   // tion.Use given t
+		79 70 65 20 61 73 20 6C 6F 67 67 65 72          ) // ype as logger
+
+		.get instance default string NAnt.Core.CommandLineOptions::get_LoggerType () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_LoggerType (string 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo LogFile ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 00 00 00 00 03 00 54 0E 04 4E 61 6D 65 07   // ........T..Name.
+		6C 6F 67 66 69 6C 65 54 0E 09 53 68 6F 72 74 4E   // logfileT..ShortN
+		61 6D 65 01 6C 54 0E 0B 44 65 73 63 72 69 70 74   // ame.lT..Descript
+		69 6F 6E 24 55 73 65 20 76 61 6C 75 65 20 61 73   // ion$Use value as
+		20 6E 61 6D 65 20 6F 66 20 6C 6F 67 20 6F 75 74   //  name of log out
+		70 75 74 20 66 69 6C 65                         ) // put file
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.CommandLineOptions::get_LogFile () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_LogFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection Listeners ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 06 00 00 00 02 00 54 0E 04 4E 61 6D 65 08   // ........T..Name.
+		6C 69 73 74 65 6E 65 72 54 0E 0B 44 65 73 63 72   // listenerT..Descr
+		69 70 74 69 6F 6E 2E 41 64 64 20 61 6E 20 69 6E   // iption.Add an in
+		73 74 61 6E 63 65 20 6F 66 20 63 6C 61 73 73 20   // stance of class 
+		61 73 20 61 20 70 72 6F 6A 65 63 74 20 6C 69 73   // as a project lis
+		74 65 6E 65 72                                  ) // tener
+
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::get_Listeners () 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection ExtensionAssemblies ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 06 00 00 00 03 00 54 0E 04 4E 61 6D 65 09   // ........T..Name.
+		65 78 74 65 6E 73 69 6F 6E 54 0E 09 53 68 6F 72   // extensionT..Shor
+		74 4E 61 6D 65 03 65 78 74 54 0E 0B 44 65 73 63   // tName.extT..Desc
+		72 69 70 74 69 6F 6E 30 4C 6F 61 64 20 4E 41 6E   // ription0Load NAn
+		74 20 65 78 74 65 6E 73 69 6F 6E 73 20 66 72 6F   // t extensions fro
+		6D 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20   // m the specified 
+		61 73 73 65 6D 62 6C 79                         ) // assembly
+
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::get_ExtensionAssemblies () 
+	}
+	.property instance bool ShowProjectHelp ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 00 00 00 00 02 00 54 0E 04 4E 61 6D 65 0B   // ........T..Name.
+		70 72 6F 6A 65 63 74 68 65 6C 70 54 0E 0B 44 65   // projecthelpT..De
+		73 63 72 69 70 74 69 6F 6E 1F 50 72 69 6E 74 73   // scription.Prints
+		20 70 72 6F 6A 65 63 74 20 68 65 6C 70 20 69 6E   //  project help in
+		66 6F 72 6D 61 74 69 6F 6E                      ) // formation
+
+		.get instance default bool NAnt.Core.CommandLineOptions::get_ShowProjectHelp () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_ShowProjectHelp (bool 'value') 
+	}
+	.property instance bool NoLogo ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 00 00 00 00 02 00 54 0E 04 4E 61 6D 65 06   // ........T..Name.
+		6E 6F 6C 6F 67 6F 54 0E 0B 44 65 73 63 72 69 70   // nologoT..Descrip
+		74 69 6F 6E 25 53 75 70 70 72 65 73 73 65 73 20   // tion%Suppresses 
+		64 69 73 70 6C 61 79 20 6F 66 20 74 68 65 20 6C   // display of the l
+		6F 67 6F 20 62 61 6E 6E 65 72                   ) // ogo banner
+
+		.get instance default bool NAnt.Core.CommandLineOptions::get_NoLogo () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_NoLogo (bool 'value') 
+	}
+	.property instance bool ShowHelp ()
+	{
+		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 08 00 00 00 03 00 54 0E 04 4E 61 6D 65 04   // ........T..Name.
+		68 65 6C 70 54 0E 09 53 68 6F 72 74 4E 61 6D 65   // helpT..ShortName
+		01 68 54 0E 0B 44 65 73 63 72 69 70 74 69 6F 6E   // .hT..Description
+		13 50 72 69 6E 74 73 20 74 68 69 73 20 6D 65 73   // .Prints this mes
+		73 61 67 65                                     ) // sage
+
+		.get instance default bool NAnt.Core.CommandLineOptions::get_ShowHelp () 
+		.set instance default void NAnt.Core.CommandLineOptions::set_ShowHelp (bool 'value') 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection Targets ()
+	{
+		.custom instance void class NAnt.Core.Util.DefaultCommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
+		01 00 06 00 00 00 01 00 54 0E 04 4E 61 6D 65 06   // ........T..Name.
+		74 61 72 67 65 74                               ) // target
+
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::get_Targets () 
+	}
+  } // end of class NAnt.Core.CommandLineOptions
+}
+
+.namespace NAnt.Core
+{
+  .class private auto ansi serializable beforefieldinit LocationMap
+  	extends [mscorlib]System.Object
+  {
+    .field  private  class [mscorlib]System.Collections.Hashtable _fileMap
+
+    // method line 1939
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x24f9f
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0006:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.LocationMap::_fileMap
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void object::'.ctor'()
+	IL_0011:  nop 
+	IL_0012:  ret 
+    } // end of method LocationMap::.ctor
+
+    // method line 1940
+    .method public hidebysig 
+           instance default bool FileIsMapped (string fileOrUri)  cil managed 
+    {
+        // Method begins at RVA 0x24fb4
+	// Code size 33 (0x21)
+	.maxstack 2
+	.locals init (
+		class [System]System.Uri	V_0,
+		bool	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	IL_0007:  stloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.LocationMap::_fileMap
+	IL_000e:  ldloc.0 
+	IL_000f:  callvirt instance string class [System]System.Uri::get_AbsoluteUri()
+	IL_0014:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	IL_0019:  stloc.1 
+	IL_001a:  br IL_001f
+
+	IL_001f:  ldloc.1 
+	IL_0020:  ret 
+    } // end of method LocationMap::FileIsMapped
+
+    // method line 1941
+    .method public hidebysig 
+           instance default void Add (class [System.Xml]System.Xml.XmlDocument doc)  cil managed 
+    {
+        // Method begins at RVA 0x24fe4
+	// Code size 660 (0x294)
+	.maxstack 5
+	.locals init (
+		class [System]System.Uri	V_0,
+		string	V_1,
+		class [mscorlib]System.Collections.Hashtable	V_2,
+		string	V_3,
+		string	V_4,
+		int32	V_5,
+		class [System.Xml]System.Xml.XmlTextReader	V_6,
+		class [mscorlib]System.Collections.ArrayList	V_7,
+		int32	V_8,
+		string	V_9,
+		string[]	V_10,
+		string	V_11,
+		int32	V_12,
+		int32	V_13,
+		string	V_14)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_BaseURI()
+	IL_0007:  call bool string::IsNullOrEmpty(string)
+	IL_000c:  brfalse IL_0017
+
+	IL_0011:  nop 
+	IL_0012:  br IL_0293
+
+	IL_0017:  ldarg.1 
+	IL_0018:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_BaseURI()
+	IL_001d:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	IL_0022:  stloc.0 
+	IL_0023:  ldloc.0 
+	IL_0024:  callvirt instance string class [System]System.Uri::get_AbsoluteUri()
+	IL_0029:  stloc.1 
+	IL_002a:  ldarg.0 
+	IL_002b:  ldloc.1 
+	IL_002c:  call instance bool class NAnt.Core.LocationMap::FileIsMapped(string)
+	IL_0031:  brfalse IL_004d
+
+	IL_0036:  nop 
+	IL_0037:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_003c:  ldstr "XML document '{0}' has already been mapped."
+	IL_0041:  ldloc.1 
+	IL_0042:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0047:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_004c:  throw 
+	IL_004d:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0052:  stloc.2 
+	IL_0053:  ldstr "/"
+	IL_0058:  stloc.3 
+	IL_0059:  ldstr ""
+	IL_005e:  stloc.s 4
+	IL_0060:  ldc.i4.0 
+	IL_0061:  stloc.s 5
+	IL_0063:  ldloc.1 
+	IL_0064:  newobj instance void class [System.Xml]System.Xml.XmlTextReader::'.ctor'(string)
+	IL_0069:  stloc.s 6
+	.try { // 0
+	  IL_006b:  nop 
+	  IL_006c:  ldloc.2 
+	  IL_006d:  ldstr "/"
+	  IL_0072:  ldc.i4.1 
+	  IL_0073:  ldc.i4.1 
+	  IL_0074:  newobj instance void valuetype NAnt.Core.LocationMap/TextPosition::'.ctor'(int32, int32)
+	  IL_0079:  box NAnt.Core.LocationMap/TextPosition
+	  IL_007e:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	  IL_0083:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	  IL_0088:  stloc.s 7
+	  IL_008a:  br IL_026a
+
+	  IL_008f:  nop 
+	  IL_0090:  ldloc.s 6
+	  IL_0092:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
+	  IL_0097:  ldc.i4.s 0x0d
+	  IL_0099:  beq IL_0269
+
+	  IL_009e:  ldloc.s 6
+	  IL_00a0:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
+	  IL_00a5:  ldc.i4.s 0x0f
+	  IL_00a7:  beq IL_0269
+
+	  IL_00ac:  ldloc.s 6
+	  IL_00ae:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
+	  IL_00b3:  ldc.i4.7 
+	  IL_00b4:  beq IL_0269
+
+	  IL_00b9:  ldloc.s 6
+	  IL_00bb:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
+	  IL_00c0:  ldc.i4.s 0x11
+	  IL_00c2:  beq IL_0269
+
+	  IL_00c7:  ldloc.s 6
+	  IL_00c9:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
+	  IL_00ce:  ldc.i4.s 0x0a
+	  IL_00d0:  beq IL_0269
+
+	  IL_00d5:  nop 
+	  IL_00d6:  ldloc.s 6
+	  IL_00d8:  callvirt instance int32 class [System.Xml]System.Xml.XmlReader::get_Depth()
+	  IL_00dd:  stloc.s 8
+	  IL_00df:  ldstr ""
+	  IL_00e4:  stloc.s 9
+	  IL_00e6:  ldloc.s 6
+	  IL_00e8:  callvirt instance int32 class [System.Xml]System.Xml.XmlReader::get_Depth()
+	  IL_00ed:  ldloc.s 5
+	  IL_00ef:  bge IL_0155
+
+	  IL_00f4:  nop 
+	  IL_00f5:  ldloc.3 
+	  IL_00f6:  ldc.i4.s 0x2f
+	  IL_00f8:  ldc.i4.0 
+	  IL_00f9:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	  IL_00fe:  stloc.s 10
+	  IL_0100:  ldstr ""
+	  IL_0105:  stloc.s 11
+	  IL_0107:  ldc.i4.1 
+	  IL_0108:  stloc.s 12
+	  IL_010a:  br IL_012a
+
+	  IL_010f:  nop 
+	  IL_0110:  ldloc.s 11
+	  IL_0112:  ldstr "/"
+	  IL_0117:  ldloc.s 10
+	  IL_0119:  ldloc.s 12
+	  IL_011b:  ldelem.ref 
+	  IL_011c:  call string string::Concat(string, string, string)
+	  IL_0121:  stloc.s 11
+	  IL_0123:  nop 
+	  IL_0124:  ldloc.s 12
+	  IL_0126:  ldc.i4.1 
+	  IL_0127:  add 
+	  IL_0128:  stloc.s 12
+	  IL_012a:  ldloc.s 12
+	  IL_012c:  ldloc.s 8
+	  IL_012e:  ldc.i4.1 
+	  IL_012f:  add 
+	  IL_0130:  blt IL_010f
+
+	  IL_0135:  ldloc.s 11
+	  IL_0137:  stloc.3 
+	  IL_0138:  ldloc.s 7
+	  IL_013a:  ldloc.s 8
+	  IL_013c:  ldc.i4.1 
+	  IL_013d:  add 
+	  IL_013e:  ldloc.s 7
+	  IL_0140:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	  IL_0145:  ldloc.s 8
+	  IL_0147:  ldc.i4.1 
+	  IL_0148:  add 
+	  IL_0149:  sub 
+	  IL_014a:  callvirt instance void class [mscorlib]System.Collections.ArrayList::RemoveRange(int32, int32)
+	  IL_014f:  nop 
+	  IL_0150:  br IL_0168
+
+	  IL_0155:  ldloc.s 6
+	  IL_0157:  callvirt instance int32 class [System.Xml]System.Xml.XmlReader::get_Depth()
+	  IL_015c:  ldloc.s 5
+	  IL_015e:  ble IL_0168
+
+	  IL_0163:  nop 
+	  IL_0164:  ldloc.s 4
+	  IL_0166:  stloc.3 
+	  IL_0167:  nop 
+	  IL_0168:  ldloc.s 7
+	  IL_016a:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	  IL_016f:  stloc.s 13
+	  IL_0171:  br IL_018c
+
+	  IL_0176:  nop 
+	  IL_0177:  ldloc.s 7
+	  IL_0179:  ldc.i4.0 
+	  IL_017a:  box [mscorlib]System.Int32
+	  IL_017f:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0184:  pop 
+	  IL_0185:  nop 
+	  IL_0186:  ldloc.s 13
+	  IL_0188:  ldc.i4.1 
+	  IL_0189:  add 
+	  IL_018a:  stloc.s 13
+	  IL_018c:  ldloc.s 13
+	  IL_018e:  ldloc.s 8
+	  IL_0190:  ldc.i4.1 
+	  IL_0191:  add 
+	  IL_0192:  blt IL_0176
+
+	  IL_0197:  ldloc.s 7
+	  IL_0199:  ldloc.s 8
+	  IL_019b:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	  IL_01a0:  unbox.any [mscorlib]System.Int32
+	  IL_01a5:  brtrue IL_01c0
+
+	  IL_01aa:  nop 
+	  IL_01ab:  ldloc.s 7
+	  IL_01ad:  ldloc.s 8
+	  IL_01af:  ldc.i4.1 
+	  IL_01b0:  box [mscorlib]System.Int32
+	  IL_01b5:  callvirt instance void class [mscorlib]System.Collections.ArrayList::set_Item(int32, object)
+	  IL_01ba:  nop 
+	  IL_01bb:  br IL_01e0
+
+	  IL_01c0:  nop 
+	  IL_01c1:  ldloc.s 7
+	  IL_01c3:  ldloc.s 8
+	  IL_01c5:  ldloc.s 7
+	  IL_01c7:  ldloc.s 8
+	  IL_01c9:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	  IL_01ce:  unbox.any [mscorlib]System.Int32
+	  IL_01d3:  ldc.i4.1 
+	  IL_01d4:  add 
+	  IL_01d5:  box [mscorlib]System.Int32
+	  IL_01da:  callvirt instance void class [mscorlib]System.Collections.ArrayList::set_Item(int32, object)
+	  IL_01df:  nop 
+	  IL_01e0:  ldloc.3 
+	  IL_01e1:  ldstr "/"
+	  IL_01e6:  callvirt instance bool string::EndsWith(string)
+	  IL_01eb:  brfalse IL_01fa
+
+	  IL_01f0:  nop 
+	  IL_01f1:  ldloc.3 
+	  IL_01f2:  stloc.s 9
+	  IL_01f4:  nop 
+	  IL_01f5:  br IL_0209
+
+	  IL_01fa:  nop 
+	  IL_01fb:  ldloc.3 
+	  IL_01fc:  ldstr "/"
+	  IL_0201:  call string string::Concat(string, string)
+	  IL_0206:  stloc.s 9
+	  IL_0208:  nop 
+	  IL_0209:  ldloc.s 9
+	  IL_020b:  stloc.s 14
+	  IL_020d:  ldc.i4.4 
+	  IL_020e:  newarr [mscorlib]System.Object
+	  IL_0213:  dup 
+	  IL_0214:  ldc.i4.0 
+	  IL_0215:  ldloc.s 14
+	  IL_0217:  stelem.ref 
+	  IL_0218:  dup 
+	  IL_0219:  ldc.i4.1 
+	  IL_021a:  ldstr "child::node()["
+	  IL_021f:  stelem.ref 
+	  IL_0220:  dup 
+	  IL_0221:  ldc.i4.2 
+	  IL_0222:  ldloc.s 7
+	  IL_0224:  ldloc.s 8
+	  IL_0226:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	  IL_022b:  stelem.ref 
+	  IL_022c:  dup 
+	  IL_022d:  ldc.i4.3 
+	  IL_022e:  ldstr "]"
+	  IL_0233:  stelem.ref 
+	  IL_0234:  call string string::Concat(object[])
+	  IL_0239:  stloc.s 9
+	  IL_023b:  ldloc.2 
+	  IL_023c:  ldloc.s 9
+	  IL_023e:  ldloc.s 6
+	  IL_0240:  callvirt instance int32 class [System.Xml]System.Xml.XmlTextReader::get_LineNumber()
+	  IL_0245:  ldloc.s 6
+	  IL_0247:  callvirt instance int32 class [System.Xml]System.Xml.XmlTextReader::get_LinePosition()
+	  IL_024c:  newobj instance void valuetype NAnt.Core.LocationMap/TextPosition::'.ctor'(int32, int32)
+	  IL_0251:  box NAnt.Core.LocationMap/TextPosition
+	  IL_0256:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	  IL_025b:  ldloc.s 9
+	  IL_025d:  stloc.s 4
+	  IL_025f:  ldloc.s 6
+	  IL_0261:  callvirt instance int32 class [System.Xml]System.Xml.XmlReader::get_Depth()
+	  IL_0266:  stloc.s 5
+	  IL_0268:  nop 
+	  IL_0269:  nop 
+	  IL_026a:  ldloc.s 6
+	  IL_026c:  callvirt instance bool class [System.Xml]System.Xml.XmlReader::Read()
+	  IL_0271:  brtrue IL_008f
+
+	  IL_0276:  nop 
+	  IL_0277:  leave IL_0286
+
+	} // end .try 0
+	finally  { // 0
+	  IL_027c:  nop 
+	  IL_027d:  ldloc.s 6
+	  IL_027f:  callvirt instance void class [System.Xml]System.Xml.XmlReader::Close()
+	  IL_0284:  nop 
+	  IL_0285:  endfinally 
+	} // end handler 0
+	IL_0286:  ldarg.0 
+	IL_0287:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.LocationMap::_fileMap
+	IL_028c:  ldloc.1 
+	IL_028d:  ldloc.2 
+	IL_028e:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_0293:  ret 
+    } // end of method LocationMap::Add
+
+    // method line 1942
+    .method public hidebysig 
+           instance default class NAnt.Core.Location GetLocation (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    {
+        // Method begins at RVA 0x252a0
+	// Code size 170 (0xaa)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.Location	V_0,
+		class [System]System.Uri	V_1,
+		string	V_2,
+		class [mscorlib]System.Collections.Hashtable	V_3,
+		string	V_4,
+		valuetype NAnt.Core.LocationMap/TextPosition	V_5,
+		class NAnt.Core.Location	V_6)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_BaseURI()
+	IL_0007:  call bool string::IsNullOrEmpty(string)
+	IL_000c:  brfalse IL_001c
+
+	IL_0011:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_0016:  stloc.0 
+	IL_0017:  br IL_00a8
+
+	IL_001c:  ldarg.1 
+	IL_001d:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_BaseURI()
+	IL_0022:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	IL_0027:  stloc.1 
+	IL_0028:  ldloc.1 
+	IL_0029:  callvirt instance string class [System]System.Uri::get_AbsoluteUri()
+	IL_002e:  stloc.2 
+	IL_002f:  ldarg.0 
+	IL_0030:  ldloc.2 
+	IL_0031:  call instance bool class NAnt.Core.LocationMap::FileIsMapped(string)
+	IL_0036:  brtrue IL_0047
+
+	IL_003b:  nop 
+	IL_003c:  ldstr "Xml node has not been mapped."
+	IL_0041:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0046:  throw 
+	IL_0047:  ldarg.0 
+	IL_0048:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.LocationMap::_fileMap
+	IL_004d:  ldloc.2 
+	IL_004e:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0053:  castclass [mscorlib]System.Collections.Hashtable
+	IL_0058:  stloc.3 
+	IL_0059:  ldarg.0 
+	IL_005a:  ldarg.1 
+	IL_005b:  call instance string class NAnt.Core.LocationMap::GetXPathFromNode(class [System.Xml]System.Xml.XmlNode)
+	IL_0060:  stloc.s 4
+	IL_0062:  ldloc.3 
+	IL_0063:  ldloc.s 4
+	IL_0065:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	IL_006a:  brtrue IL_007b
+
+	IL_006f:  nop 
+	IL_0070:  ldstr "Xml node has not been mapped."
+	IL_0075:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_007a:  throw 
+	IL_007b:  ldloc.3 
+	IL_007c:  ldloc.s 4
+	IL_007e:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0083:  unbox.any NAnt.Core.LocationMap/TextPosition
+	IL_0088:  stloc.s 5
+	IL_008a:  ldloc.2 
+	IL_008b:  ldloca.s 5
+	IL_008d:  ldfld int32 NAnt.Core.LocationMap/TextPosition::Line
+	IL_0092:  ldloca.s 5
+	IL_0094:  ldfld int32 NAnt.Core.LocationMap/TextPosition::Column
+	IL_0099:  newobj instance void class NAnt.Core.Location::'.ctor'(string, int32, int32)
+	IL_009e:  stloc.s 6
+	IL_00a0:  ldloc.s 6
+	IL_00a2:  stloc.0 
+	IL_00a3:  br IL_00a8
+
+	IL_00a8:  ldloc.0 
+	IL_00a9:  ret 
+    } // end of method LocationMap::GetLocation
+
+    // method line 1943
+    .method private hidebysig 
+           instance default string GetXPathFromNode (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    {
+        // Method begins at RVA 0x25358
+	// Code size 246 (0xf6)
+	.maxstack 3
+	.locals init (
+		class [System.Xml]System.Xml.XPath.XPathNavigator	V_0,
+		string	V_1,
+		int32	V_2,
+		class [System.Xml]System.Xml.XPath.XPathNavigator	V_3,
+		int32	V_4,
+		string	V_5,
+		valuetype [System.Xml]System.Xml.XPath.XPathNodeType	V_6,
+		string	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XmlNode::CreateNavigator()
+	IL_0007:  stloc.0 
+	IL_0008:  ldstr ""
+	IL_000d:  stloc.1 
+	IL_000e:  ldc.i4.0 
+	IL_000f:  stloc.2 
+	IL_0010:  br IL_00b6
+
+	IL_0015:  nop 
+	IL_0016:  ldloc.0 
+	IL_0017:  callvirt instance class [System.Xml]System.Xml.XPath.XPathNavigator class [System.Xml]System.Xml.XPath.XPathNavigator::Clone()
+	IL_001c:  stloc.3 
+	IL_001d:  ldloc.3 
+	IL_001e:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNavigator::MoveToParent()
+	IL_0023:  pop 
+	IL_0024:  ldc.i4.0 
+	IL_0025:  stloc.s 4
+	IL_0027:  ldloc.3 
+	IL_0028:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNavigator::MoveToFirstChild()
+	IL_002d:  pop 
+	IL_002e:  ldloc.3 
+	IL_002f:  ldloc.0 
+	IL_0030:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNavigator::IsSamePosition(class [System.Xml]System.Xml.XPath.XPathNavigator)
+	IL_0035:  brfalse IL_003f
+
+	IL_003a:  nop 
+	IL_003b:  ldloc.s 4
+	IL_003d:  stloc.2 
+	IL_003e:  nop 
+	IL_003f:  br IL_005d
+
+	IL_0044:  nop 
+	IL_0045:  ldloc.s 4
+	IL_0047:  ldc.i4.1 
+	IL_0048:  add 
+	IL_0049:  stloc.s 4
+	IL_004b:  ldloc.3 
+	IL_004c:  ldloc.0 
+	IL_004d:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNavigator::IsSamePosition(class [System.Xml]System.Xml.XPath.XPathNavigator)
+	IL_0052:  brfalse IL_005c
+
+	IL_0057:  nop 
+	IL_0058:  ldloc.s 4
+	IL_005a:  stloc.2 
+	IL_005b:  nop 
+	IL_005c:  nop 
+	IL_005d:  ldloc.3 
+	IL_005e:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNavigator::MoveToNext()
+	IL_0063:  brtrue IL_0044
+
+	IL_0068:  ldloc.0 
+	IL_0069:  callvirt instance bool class [System.Xml]System.Xml.XPath.XPathNavigator::MoveToParent()
+	IL_006e:  pop 
+	IL_006f:  ldloc.2 
+	IL_0070:  ldc.i4.1 
+	IL_0071:  add 
+	IL_0072:  stloc.2 
+	IL_0073:  ldstr "child::node()["
+	IL_0078:  ldloca.s 2
+	IL_007a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_007f:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
+	IL_0084:  ldstr "]"
+	IL_0089:  call string string::Concat(string, string, string)
+	IL_008e:  stloc.s 5
+	IL_0090:  ldloc.1 
+	IL_0091:  callvirt instance int32 string::get_Length()
+	IL_0096:  brtrue IL_00a5
+
+	IL_009b:  nop 
+	IL_009c:  ldloc.s 5
+	IL_009e:  stloc.1 
+	IL_009f:  nop 
+	IL_00a0:  br IL_00b5
+
+	IL_00a5:  nop 
+	IL_00a6:  ldloc.s 5
+	IL_00a8:  ldstr "/"
+	IL_00ad:  ldloc.1 
+	IL_00ae:  call string string::Concat(string, string, string)
+	IL_00b3:  stloc.1 
+	IL_00b4:  nop 
+	IL_00b5:  nop 
+	IL_00b6:  ldloc.0 
+	IL_00b7:  callvirt instance valuetype [System.Xml]System.Xml.XPath.XPathNodeType class [System.Xml]System.Xml.XPath.XPathNavigator::get_NodeType()
+	IL_00bc:  stloc.s 6
+	IL_00be:  ldloca.s 6
+	IL_00c0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00c5:  constrained. [System.Xml]System.Xml.XPath.XPathNodeType
+	IL_00cb:  callvirt instance string class [mscorlib]System.Enum::ToString(class [mscorlib]System.IFormatProvider)
+	IL_00d0:  ldstr "Root"
+	IL_00d5:  call bool string::op_Inequality(string, string)
+	IL_00da:  brtrue IL_0015
+
+	IL_00df:  ldstr "/"
+	IL_00e4:  ldloc.1 
+	IL_00e5:  call string string::Concat(string, string)
+	IL_00ea:  stloc.1 
+	IL_00eb:  ldloc.1 
+	IL_00ec:  stloc.s 7
+	IL_00ee:  br IL_00f3
+
+	IL_00f3:  ldloc.s 7
+	IL_00f5:  ret 
+    } // end of method LocationMap::GetXPathFromNode
+
+  .class nested private sequential ansi sealed serializable beforefieldinit TextPosition
+  	extends [mscorlib]System.ValueType
+  {
+    .field  public  int32 Line
+    .field  public  int32 Column
+
+    // method line 1944
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (int32 line, int32 column)  cil managed 
+    {
+        // Method begins at RVA 0x2545a
+	// Code size 16 (0x10)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.Core.LocationMap/TextPosition::Line
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.2 
+	IL_000a:  stfld int32 NAnt.Core.LocationMap/TextPosition::Column
+	IL_000f:  ret 
+    } // end of method TextPosition::.ctor
+
+  } // end of class TextPosition
+
+  } // end of class NAnt.Core.LocationMap
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi beforefieldinit ConsoleDriver
+  	extends [mscorlib]System.Object
+  {
+    .field private static literal  int32 INDENTATION_SIZE = int32(0x00000004)
+
+    // method line 1945
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2546b
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ConsoleDriver::.ctor
+
+    // method line 1946
+    .method public static hidebysig 
+           default int32 Main (string[] args)  cil managed 
+    {
+        // Method begins at RVA 0x25474
+	// Code size 1595 (0x63b)
+	.maxstack 4
+	.locals init (
+		class NAnt.Core.Util.CommandLineParser	V_0,
+		class NAnt.Core.Project	V_1,
+		valuetype NAnt.Core.Level	V_2,
+		class NAnt.Core.Util.AssemblyResolver	V_3,
+		class NAnt.Core.CommandLineOptions	V_4,
+		int32	V_5,
+		class NAnt.Core.PropertyDictionary	V_6,
+		string	V_7,
+		class [System]System.Collections.Specialized.StringEnumerator	V_8,
+		class [mscorlib]System.IDisposable	V_9,
+		string	V_10,
+		class [mscorlib]System.Collections.IEnumerator	V_11,
+		class [mscorlib]System.IDisposable	V_12,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_13,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_14,
+		class [mscorlib]System.IDisposable	V_15,
+		class [mscorlib]System.Reflection.Assembly	V_16,
+		class NAnt.Core.FrameworkInfo	V_17,
+		class [mscorlib]System.Exception	V_18,
+		class NAnt.Core.FrameworkInfo[]	V_19,
+		class NAnt.Core.FrameworkInfo	V_20,
+		class NAnt.Core.FrameworkInfo[]	V_21,
+		int32	V_22,
+		class NAnt.Core.Util.CommandLineArgumentException	V_23,
+		class [mscorlib]System.ApplicationException	V_24,
+		class [mscorlib]System.Exception	V_25)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldnull 
+	IL_0004:  stloc.1 
+	IL_0005:  ldc.i4 3000
+	IL_000a:  stloc.2 
+	IL_000b:  newobj instance void class NAnt.Core.Util.AssemblyResolver::'.ctor'()
+	IL_0010:  stloc.3 
+	IL_0011:  ldloc.3 
+	IL_0012:  callvirt instance void class NAnt.Core.Util.AssemblyResolver::Attach()
+	IL_0017:  newobj instance void class NAnt.Core.CommandLineOptions::'.ctor'()
+	IL_001c:  stloc.s 4
+	.try { // 7
+	  .try { // 4
+	    IL_001e:  nop 
+	    IL_001f:  ldtoken NAnt.Core.CommandLineOptions
+	    IL_0024:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	    IL_0029:  ldc.i4.1 
+	    IL_002a:  newobj instance void class NAnt.Core.Util.CommandLineParser::'.ctor'(class [mscorlib]System.Type, bool)
+	    IL_002f:  stloc.0 
+	    IL_0030:  ldloc.0 
+	    IL_0031:  ldarg.0 
+	    IL_0032:  ldloc.s 4
+	    IL_0034:  callvirt instance void class NAnt.Core.Util.CommandLineParser::Parse(string[], object)
+	    IL_0039:  ldloc.s 4
+	    IL_003b:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_NoLogo()
+	    IL_0040:  brtrue IL_0057
+
+	    IL_0045:  nop 
+	    IL_0046:  ldloc.0 
+	    IL_0047:  callvirt instance string class NAnt.Core.Util.CommandLineParser::get_LogoBanner()
+	    IL_004c:  call void class [mscorlib]System.Console::WriteLine(string)
+	    IL_0051:  call void class [mscorlib]System.Console::WriteLine()
+	    IL_0056:  nop 
+	    IL_0057:  ldloc.s 4
+	    IL_0059:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_ShowHelp()
+	    IL_005e:  brfalse IL_0072
+
+	    IL_0063:  nop 
+	    IL_0064:  ldloc.0 
+	    IL_0065:  call void class NAnt.Core.ConsoleDriver::ShowHelp(class NAnt.Core.Util.CommandLineParser)
+	    IL_006a:  ldc.i4.0 
+	    IL_006b:  stloc.s 5
+	    IL_006d:  leave IL_0638
+
+	    IL_0072:  ldloc.s 4
+	    IL_0074:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_Debug()
+	    IL_0079:  brfalse IL_008b
+
+	    IL_007e:  nop 
+	    IL_007f:  ldc.i4 1000
+	    IL_0084:  stloc.2 
+	    IL_0085:  nop 
+	    IL_0086:  br IL_00b8
+
+	    IL_008b:  ldloc.s 4
+	    IL_008d:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_Verbose()
+	    IL_0092:  brfalse IL_00a4
+
+	    IL_0097:  nop 
+	    IL_0098:  ldc.i4 2000
+	    IL_009d:  stloc.2 
+	    IL_009e:  nop 
+	    IL_009f:  br IL_00b8
+
+	    IL_00a4:  ldloc.s 4
+	    IL_00a6:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_Quiet()
+	    IL_00ab:  brfalse IL_00b8
+
+	    IL_00b0:  nop 
+	    IL_00b1:  ldc.i4 4000
+	    IL_00b6:  stloc.2 
+	    IL_00b7:  nop 
+	    IL_00b8:  ldloc.s 4
+	    IL_00ba:  callvirt instance string class NAnt.Core.CommandLineOptions::get_BuildFile()
+	    IL_00bf:  brfalse IL_0109
+
+	    IL_00c4:  nop 
+	    IL_00c5:  ldloc.1 
+	    IL_00c6:  brfalse IL_00f3
+
+	    IL_00cb:  nop 
+	    IL_00cc:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_00d1:  ldstr "Buildfile has already been loaded! Using new value '{0}'; discarding old project file '{1}'"
+	    IL_00d6:  ldloc.s 4
+	    IL_00d8:  callvirt instance string class NAnt.Core.CommandLineOptions::get_BuildFile()
+	    IL_00dd:  ldloc.1 
+	    IL_00de:  callvirt instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
+	    IL_00e3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	    IL_00e8:  call void class [mscorlib]System.Console::WriteLine(string)
+	    IL_00ed:  call void class [mscorlib]System.Console::WriteLine()
+	    IL_00f2:  nop 
+	    IL_00f3:  ldloc.s 4
+	    IL_00f5:  callvirt instance string class NAnt.Core.CommandLineOptions::get_BuildFile()
+	    IL_00fa:  ldloc.2 
+	    IL_00fb:  ldloc.s 4
+	    IL_00fd:  callvirt instance int32 class NAnt.Core.CommandLineOptions::get_IndentationLevel()
+	    IL_0102:  newobj instance void class NAnt.Core.Project::'.ctor'(string, valuetype NAnt.Core.Level, int32)
+	    IL_0107:  stloc.1 
+	    IL_0108:  nop 
+	    IL_0109:  ldloc.1 
+	    IL_010a:  brtrue IL_0131
+
+	    IL_010f:  nop 
+	    IL_0110:  call string class [mscorlib]System.Environment::get_CurrentDirectory()
+	    IL_0115:  ldnull 
+	    IL_0116:  ldloc.s 4
+	    IL_0118:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_FindInParent()
+	    IL_011d:  call string class NAnt.Core.ConsoleDriver::GetBuildFileName(string, string, bool)
+	    IL_0122:  ldloc.2 
+	    IL_0123:  ldloc.s 4
+	    IL_0125:  callvirt instance int32 class NAnt.Core.CommandLineOptions::get_IndentationLevel()
+	    IL_012a:  newobj instance void class NAnt.Core.Project::'.ctor'(string, valuetype NAnt.Core.Level, int32)
+	    IL_012f:  stloc.1 
+	    IL_0130:  nop 
+	    IL_0131:  ldloc.s 4
+	    IL_0133:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.CommandLineOptions::get_ExtensionAssemblies()
+	    IL_0138:  ldloc.1 
+	    IL_0139:  call void class NAnt.Core.ConsoleDriver::LoadExtensionAssemblies(class [System]System.Collections.Specialized.StringCollection, class NAnt.Core.Project)
+	    IL_013e:  ldloc.1 
+	    IL_013f:  newobj instance void class NAnt.Core.PropertyDictionary::'.ctor'(class NAnt.Core.Project)
+	    IL_0144:  stloc.s 6
+	    IL_0146:  ldloc.s 4
+	    IL_0148:  ldloc.1 
+	    IL_0149:  call void class NAnt.Core.ConsoleDriver::AddBuildListeners(class NAnt.Core.CommandLineOptions, class NAnt.Core.Project)
+	    IL_014e:  nop 
+	    IL_014f:  ldloc.s 4
+	    IL_0151:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.CommandLineOptions::get_Targets()
+	    IL_0156:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	    IL_015b:  stloc.s 8
+	    .try { // 0
+	      IL_015d:  br IL_017b
+
+	      IL_0162:  ldloc.s 8
+	      IL_0164:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	      IL_0169:  stloc.s 7
+	      IL_016b:  nop 
+	      IL_016c:  ldloc.1 
+	      IL_016d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
+	      IL_0172:  ldloc.s 7
+	      IL_0174:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	      IL_0179:  pop 
+	      IL_017a:  nop 
+	      IL_017b:  ldloc.s 8
+	      IL_017d:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	      IL_0182:  brtrue IL_0162
+
+	      IL_0187:  leave IL_01a3
+
+	    } // end .try 0
+	    finally  { // 0
+	      IL_018c:  ldloc.s 8
+	      IL_018e:  isinst [mscorlib]System.IDisposable
+	      IL_0193:  dup 
+	      IL_0194:  stloc.s 9
+	      IL_0196:  brfalse IL_01a2
+
+	      IL_019b:  ldloc.s 9
+	      IL_019d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	      IL_01a2:  endfinally 
+	    } // end handler 0
+	    IL_01a3:  nop 
+	    IL_01a4:  ldloc.s 4
+	    IL_01a6:  callvirt instance class [System]System.Collections.Specialized.NameValueCollection class NAnt.Core.CommandLineOptions::get_Properties()
+	    IL_01ab:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System]System.Collections.Specialized.NameObjectCollectionBase::GetEnumerator()
+	    IL_01b0:  stloc.s 11
+	    .try { // 1
+	      IL_01b2:  br IL_01de
+
+	      IL_01b7:  ldloc.s 11
+	      IL_01b9:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	      IL_01be:  castclass [mscorlib]System.String
+	      IL_01c3:  stloc.s 10
+	      IL_01c5:  nop 
+	      IL_01c6:  ldloc.s 6
+	      IL_01c8:  ldloc.s 10
+	      IL_01ca:  ldloc.s 4
+	      IL_01cc:  callvirt instance class [System]System.Collections.Specialized.NameValueCollection class NAnt.Core.CommandLineOptions::get_Properties()
+	      IL_01d1:  ldloc.s 10
+	      IL_01d3:  callvirt instance string class [System]System.Collections.Specialized.NameValueCollection::Get(string)
+	      IL_01d8:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	      IL_01dd:  nop 
+	      IL_01de:  ldloc.s 11
+	      IL_01e0:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	      IL_01e5:  brtrue IL_01b7
+
+	      IL_01ea:  leave IL_0206
+
+	    } // end .try 1
+	    finally  { // 1
+	      IL_01ef:  ldloc.s 11
+	      IL_01f1:  isinst [mscorlib]System.IDisposable
+	      IL_01f6:  dup 
+	      IL_01f7:  stloc.s 12
+	      IL_01f9:  brfalse IL_0205
+
+	      IL_01fe:  ldloc.s 12
+	      IL_0200:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	      IL_0205:  endfinally 
+	    } // end handler 1
+	    IL_0206:  nop 
+	    IL_0207:  ldloc.s 6
+	    IL_0209:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.DictionaryBase::GetEnumerator()
+	    IL_020e:  stloc.s 14
+	    .try { // 2
+	      IL_0210:  br IL_0248
+
+	      IL_0215:  ldloc.s 14
+	      IL_0217:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	      IL_021c:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	      IL_0221:  stloc.s 13
+	      IL_0223:  nop 
+	      IL_0224:  ldloc.1 
+	      IL_0225:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	      IL_022a:  ldloca.s 13
+	      IL_022c:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	      IL_0231:  castclass [mscorlib]System.String
+	      IL_0236:  ldloca.s 13
+	      IL_0238:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	      IL_023d:  castclass [mscorlib]System.String
+	      IL_0242:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	      IL_0247:  nop 
+	      IL_0248:  ldloc.s 14
+	      IL_024a:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	      IL_024f:  brtrue IL_0215
+
+	      IL_0254:  leave IL_0270
+
+	    } // end .try 2
+	    finally  { // 2
+	      IL_0259:  ldloc.s 14
+	      IL_025b:  isinst [mscorlib]System.IDisposable
+	      IL_0260:  dup 
+	      IL_0261:  stloc.s 15
+	      IL_0263:  brfalse IL_026f
+
+	      IL_0268:  ldloc.s 15
+	      IL_026a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	      IL_026f:  endfinally 
+	    } // end handler 2
+	    IL_0270:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetExecutingAssembly()
+	    IL_0275:  stloc.s 16
+	    IL_0277:  ldloc.1 
+	    IL_0278:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	    IL_027d:  ldstr "nant.filename"
+	    IL_0282:  ldloc.s 16
+	    IL_0284:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
+	    IL_0289:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	    IL_028e:  ldloc.1 
+	    IL_028f:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	    IL_0294:  ldstr "nant.version"
+	    IL_0299:  ldloc.s 16
+	    IL_029b:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	    IL_02a0:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
+	    IL_02a5:  callvirt instance string object::ToString()
+	    IL_02aa:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	    IL_02af:  ldloc.1 
+	    IL_02b0:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	    IL_02b5:  ldstr "nant.location"
+	    IL_02ba:  ldloc.s 16
+	    IL_02bc:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
+	    IL_02c1:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	    IL_02c6:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	    IL_02cb:  ldloc.s 4
+	    IL_02cd:  callvirt instance string class NAnt.Core.CommandLineOptions::get_TargetFramework()
+	    IL_02d2:  brfalse IL_0414
+
+	    IL_02d7:  nop 
+	    IL_02d8:  ldloc.1 
+	    IL_02d9:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
+	    IL_02de:  ldloc.s 4
+	    IL_02e0:  callvirt instance string class NAnt.Core.CommandLineOptions::get_TargetFramework()
+	    IL_02e5:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionary::get_Item(string)
+	    IL_02ea:  stloc.s 17
+	    IL_02ec:  ldloc.s 17
+	    IL_02ee:  brfalse IL_0363
+
+	    IL_02f3:  nop 
+	    .try { // 3
+	      IL_02f4:  nop 
+	      IL_02f5:  ldloc.s 17
+	      IL_02f7:  callvirt instance void class NAnt.Core.FrameworkInfo::Validate()
+	      IL_02fc:  ldloc.1 
+	      IL_02fd:  ldloc.s 17
+	      IL_02ff:  callvirt instance void class NAnt.Core.Project::set_TargetFramework(class NAnt.Core.FrameworkInfo)
+	      IL_0304:  nop 
+	      IL_0305:  leave IL_035d
+
+	    } // end .try 3
+	    catch class [mscorlib]System.Exception { // 3
+	      IL_030a:  stloc.s 18
+	      IL_030c:  nop 
+	      IL_030d:  ldloc.s 18
+	      IL_030f:  call void class NAnt.Core.ConsoleDriver::WriteException(class [mscorlib]System.Exception)
+	      IL_0314:  ldc.i4 1000
+	      IL_0319:  ldloc.2 
+	      IL_031a:  blt IL_0355
+
+	      IL_031f:  nop 
+	      IL_0320:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	      IL_0325:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	      IL_032a:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	      IL_032f:  ldstr "Stacktrace:"
+	      IL_0334:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	      IL_0339:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	      IL_033e:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	      IL_0343:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	      IL_0348:  ldloc.s 18
+	      IL_034a:  callvirt instance string object::ToString()
+	      IL_034f:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	      IL_0354:  nop 
+	      IL_0355:  ldc.i4.1 
+	      IL_0356:  stloc.s 5
+	      IL_0358:  leave IL_0638
+
+	    } // end handler 3
+	    IL_035d:  nop 
+	    IL_035e:  br IL_0413
+
+	    IL_0363:  nop 
+	    IL_0364:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_0369:  ldstr "Invalid framework '{0}' specified."
+	    IL_036e:  ldloc.s 4
+	    IL_0370:  callvirt instance string class NAnt.Core.CommandLineOptions::get_TargetFramework()
+	    IL_0375:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	    IL_037a:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_037f:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	    IL_0384:  ldloc.1 
+	    IL_0385:  ldc.i4.2 
+	    IL_0386:  callvirt instance class NAnt.Core.FrameworkInfo[] class NAnt.Core.Project::GetFrameworks(valuetype NAnt.Core.FrameworkTypes)
+	    IL_038b:  stloc.s 19
+	    IL_038d:  ldloc.s 19
+	    IL_038f:  ldlen 
+	    IL_0390:  conv.i4 
+	    IL_0391:  brtrue IL_03ac
+
+	    IL_0396:  nop 
+	    IL_0397:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_039c:  ldstr "There are no supported frameworks available on your system."
+	    IL_03a1:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	    IL_03a6:  nop 
+	    IL_03a7:  br IL_040b
+
+	    IL_03ac:  nop 
+	    IL_03ad:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_03b2:  ldstr "Possible values include:"
+	    IL_03b7:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	    IL_03bc:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_03c1:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	    IL_03c6:  nop 
+	    IL_03c7:  ldloc.s 19
+	    IL_03c9:  stloc.s 21
+	    IL_03cb:  ldc.i4.0 
+	    IL_03cc:  stloc.s 22
+	    IL_03ce:  br IL_03ff
+
+	    IL_03d3:  ldloc.s 21
+	    IL_03d5:  ldloc.s 22
+	    IL_03d7:  ldelem.ref 
+	    IL_03d8:  stloc.s 20
+	    IL_03da:  nop 
+	    IL_03db:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_03e0:  ldstr "{0} ({1})"
+	    IL_03e5:  ldloc.s 20
+	    IL_03e7:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	    IL_03ec:  ldloc.s 20
+	    IL_03ee:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Description()
+	    IL_03f3:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object, object)
+	    IL_03f8:  nop 
+	    IL_03f9:  ldloc.s 22
+	    IL_03fb:  ldc.i4.1 
+	    IL_03fc:  add 
+	    IL_03fd:  stloc.s 22
+	    IL_03ff:  ldloc.s 22
+	    IL_0401:  ldloc.s 21
+	    IL_0403:  ldlen 
+	    IL_0404:  conv.i4 
+	    IL_0405:  blt IL_03d3
+
+	    IL_040a:  nop 
+	    IL_040b:  ldc.i4.1 
+	    IL_040c:  stloc.s 5
+	    IL_040e:  leave IL_0638
+
+	    IL_0413:  nop 
+	    IL_0414:  ldloc.s 4
+	    IL_0416:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_ShowProjectHelp()
+	    IL_041b:  brfalse IL_0437
+
+	    IL_0420:  nop 
+	    IL_0421:  call void class [mscorlib]System.Console::WriteLine()
+	    IL_0426:  ldloc.1 
+	    IL_0427:  callvirt instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::get_Document()
+	    IL_042c:  call void class NAnt.Core.ConsoleDriver::ShowProjectHelp(class [System.Xml]System.Xml.XmlDocument)
+	    IL_0431:  nop 
+	    IL_0432:  br IL_044d
+
+	    IL_0437:  nop 
+	    IL_0438:  ldloc.1 
+	    IL_0439:  callvirt instance bool class NAnt.Core.Project::Run()
+	    IL_043e:  brtrue IL_044c
+
+	    IL_0443:  nop 
+	    IL_0444:  ldc.i4.1 
+	    IL_0445:  stloc.s 5
+	    IL_0447:  leave IL_0638
+
+	    IL_044c:  nop 
+	    IL_044d:  ldc.i4.0 
+	    IL_044e:  stloc.s 5
+	    IL_0450:  leave IL_0638
+
+	  } // end .try 4
+	  catch class NAnt.Core.Util.CommandLineArgumentException { // 4
+	    IL_0455:  stloc.s 23
+	    IL_0457:  nop 
+	    IL_0458:  ldloc.0 
+	    IL_0459:  brfalse IL_0475
+
+	    IL_045e:  nop 
+	    IL_045f:  ldloc.0 
+	    IL_0460:  callvirt instance string class NAnt.Core.Util.CommandLineParser::get_LogoBanner()
+	    IL_0465:  call void class [mscorlib]System.Console::WriteLine(string)
+	    IL_046a:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_046f:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	    IL_0474:  nop 
+	    IL_0475:  ldloc.s 23
+	    IL_0477:  call void class NAnt.Core.ConsoleDriver::WriteException(class [mscorlib]System.Exception)
+	    IL_047c:  ldc.i4 1000
+	    IL_0481:  ldloc.2 
+	    IL_0482:  blt IL_04bd
+
+	    IL_0487:  nop 
+	    IL_0488:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_048d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	    IL_0492:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_0497:  ldstr "Stacktrace:"
+	    IL_049c:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	    IL_04a1:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_04a6:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	    IL_04ab:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_04b0:  ldloc.s 23
+	    IL_04b2:  callvirt instance string object::ToString()
+	    IL_04b7:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	    IL_04bc:  nop 
+	    IL_04bd:  call void class [mscorlib]System.Console::WriteLine()
+	    IL_04c2:  ldstr "Try 'nant -help' for more information"
+	    IL_04c7:  call void class [mscorlib]System.Console::WriteLine(string)
+	    IL_04cc:  ldc.i4.1 
+	    IL_04cd:  stloc.s 5
+	    IL_04cf:  leave IL_0638
+
+	  } // end handler 4
+	  catch class [mscorlib]System.ApplicationException { // 5
+	    IL_04d4:  stloc.s 24
+	    IL_04d6:  nop 
+	    IL_04d7:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_04dc:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	    IL_04e1:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_04e6:  ldstr "BUILD FAILED"
+	    IL_04eb:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	    IL_04f0:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_04f5:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	    IL_04fa:  ldloc.s 24
+	    IL_04fc:  call void class NAnt.Core.ConsoleDriver::WriteException(class [mscorlib]System.Exception)
+	    IL_0501:  ldc.i4 1000
+	    IL_0506:  ldloc.2 
+	    IL_0507:  blt IL_0547
+
+	    IL_050c:  nop 
+	    IL_050d:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_0512:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	    IL_0517:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_051c:  ldstr "Stacktrace:"
+	    IL_0521:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	    IL_0526:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_052b:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	    IL_0530:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_0535:  ldloc.s 24
+	    IL_0537:  callvirt instance string object::ToString()
+	    IL_053c:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	    IL_0541:  nop 
+	    IL_0542:  br IL_055d
+
+	    IL_0547:  nop 
+	    IL_0548:  ldsfld string [mscorlib]System.String::Empty
+	    IL_054d:  call void class [mscorlib]System.Console::WriteLine(string)
+	    IL_0552:  ldstr "For more information regarding the cause of the build failure, run the build again in debug mode."
+	    IL_0557:  call void class [mscorlib]System.Console::WriteLine(string)
+	    IL_055c:  nop 
+	    IL_055d:  call void class [mscorlib]System.Console::WriteLine()
+	    IL_0562:  ldstr "Try 'nant -help' for more information"
+	    IL_0567:  call void class [mscorlib]System.Console::WriteLine(string)
+	    IL_056c:  ldc.i4.1 
+	    IL_056d:  stloc.s 5
+	    IL_056f:  leave IL_0638
+
+	  } // end handler 5
+	  catch class [mscorlib]System.Exception { // 6
+	    IL_0574:  stloc.s 25
+	    IL_0576:  nop 
+	    IL_0577:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_057c:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	    IL_0581:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_0586:  ldstr "INTERNAL ERROR"
+	    IL_058b:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	    IL_0590:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_0595:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	    IL_059a:  ldloc.s 25
+	    IL_059c:  call void class NAnt.Core.ConsoleDriver::WriteException(class [mscorlib]System.Exception)
+	    IL_05a1:  ldc.i4 2000
+	    IL_05a6:  ldloc.2 
+	    IL_05a7:  blt IL_05e7
+
+	    IL_05ac:  nop 
+	    IL_05ad:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_05b2:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	    IL_05b7:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_05bc:  ldstr "Stacktrace:"
+	    IL_05c1:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	    IL_05c6:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_05cb:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	    IL_05d0:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	    IL_05d5:  ldloc.s 25
+	    IL_05d7:  callvirt instance string object::ToString()
+	    IL_05dc:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	    IL_05e1:  nop 
+	    IL_05e2:  br IL_05f8
+
+	    IL_05e7:  nop 
+	    IL_05e8:  call void class [mscorlib]System.Console::WriteLine()
+	    IL_05ed:  ldstr "For more information regarding the cause of the build failure, run the build again in verbose mode."
+	    IL_05f2:  call void class [mscorlib]System.Console::WriteLine(string)
+	    IL_05f7:  nop 
+	    IL_05f8:  call void class [mscorlib]System.Console::WriteLine()
+	    IL_05fd:  ldstr "Please send a bug report (including the version of NAnt you're using) to nant-developers@lists.sourceforge.net"
+	    IL_0602:  call void class [mscorlib]System.Console::WriteLine(string)
+	    IL_0607:  ldc.i4.2 
+	    IL_0608:  stloc.s 5
+	    IL_060a:  leave IL_0638
+
+	  } // end handler 6
+	} // end .try 7
+	finally  { // 7
+	  IL_060f:  nop 
+	  IL_0610:  ldloc.1 
+	  IL_0611:  brfalse IL_061e
+
+	  IL_0616:  nop 
+	  IL_0617:  ldloc.1 
+	  IL_0618:  callvirt instance void class NAnt.Core.Project::DetachBuildListeners()
+	  IL_061d:  nop 
+	  IL_061e:  ldloc.3 
+	  IL_061f:  callvirt instance void class NAnt.Core.Util.AssemblyResolver::Detach()
+	  IL_0624:  ldloc.s 4
+	  IL_0626:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_Pause()
+	  IL_062b:  brfalse IL_0636
+
+	  IL_0630:  call valuetype [mscorlib]System.ConsoleKeyInfo class [mscorlib]System.Console::ReadKey()
+	  IL_0635:  pop 
+	  IL_0636:  nop 
+	  IL_0637:  endfinally 
+	} // end handler 7
+	IL_0638:  ldloc.s 5
+	IL_063a:  ret 
+    } // end of method ConsoleDriver::Main
+
+    // method line 1947
+    .method public static hidebysig 
+           default void ShowProjectHelp (class [System.Xml]System.Xml.XmlDocument buildDoc)  cil managed 
+    {
+        // Method begins at RVA 0x25b80
+	// Code size 150 (0x96)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.IO.Stream	V_0,
+		class [System.Xml]System.Xml.XmlTextReader	V_1,
+		class [System.Xml]System.Xml.XmlDocument	V_2,
+		class [System.Xml]System.Xml.Xsl.XslCompiledTransform	V_3,
+		class [mscorlib]System.Text.StringBuilder	V_4,
+		class [mscorlib]System.IO.StringWriter	V_5,
+		class [System.Xml]System.Xml.Xsl.XsltArgumentList	V_6)
+	IL_0000:  nop 
+	IL_0001:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetExecutingAssembly()
+	IL_0006:  ldstr "NAnt.Core.Resources.ProjectHelp.xslt"
+	IL_000b:  callvirt instance class [mscorlib]System.IO.Stream class [mscorlib]System.Reflection.Assembly::GetManifestResourceStream(string)
+	IL_0010:  stloc.0 
+	IL_0011:  ldloc.0 
+	IL_0012:  brtrue IL_0023
+
+	IL_0017:  nop 
+	IL_0018:  ldstr "Missing 'ProjectHelp.xslt' Resource Stream"
+	IL_001d:  newobj instance void class [mscorlib]System.Exception::'.ctor'(string)
+	IL_0022:  throw 
+	IL_0023:  ldloc.0 
+	IL_0024:  ldc.i4.s 0x09
+	IL_0026:  ldnull 
+	IL_0027:  newobj instance void class [System.Xml]System.Xml.XmlTextReader::'.ctor'(class [mscorlib]System.IO.Stream, valuetype [System.Xml]System.Xml.XmlNodeType, class [System.Xml]System.Xml.XmlParserContext)
+	IL_002c:  stloc.1 
+	IL_002d:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
+	IL_0032:  stloc.2 
+	IL_0033:  ldloc.2 
+	IL_0034:  ldloc.1 
+	IL_0035:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(class [System.Xml]System.Xml.XmlReader)
+	IL_003a:  ldloc.2 
+	IL_003b:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_0040:  ldstr "xmlns:nant"
+	IL_0045:  ldarg.0 
+	IL_0046:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_004b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	IL_0050:  callvirt instance void class [System.Xml]System.Xml.XmlElement::SetAttribute(string, string)
+	IL_0055:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
+	IL_005a:  stloc.3 
+	IL_005b:  ldloc.3 
+	IL_005c:  ldloc.2 
+	IL_005d:  callvirt instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::Load(class [System.Xml]System.Xml.XPath.IXPathNavigable)
+	IL_0062:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0067:  stloc.s 4
+	IL_0069:  ldloc.s 4
+	IL_006b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0070:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'(class [mscorlib]System.Text.StringBuilder, class [mscorlib]System.IFormatProvider)
+	IL_0075:  stloc.s 5
+	IL_0077:  newobj instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::'.ctor'()
+	IL_007c:  stloc.s 6
+	IL_007e:  ldloc.3 
+	IL_007f:  ldarg.0 
+	IL_0080:  ldloc.s 6
+	IL_0082:  ldloc.s 5
+	IL_0084:  callvirt instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::Transform(class [System.Xml]System.Xml.XPath.IXPathNavigable, class [System.Xml]System.Xml.Xsl.XsltArgumentList, class [mscorlib]System.IO.TextWriter)
+	IL_0089:  ldloc.s 4
+	IL_008b:  callvirt instance string object::ToString()
+	IL_0090:  call void class [mscorlib]System.Console::WriteLine(string)
+	IL_0095:  ret 
+    } // end of method ConsoleDriver::ShowProjectHelp
+
+    // method line 1948
+    .method public static hidebysig 
+           default string GetBuildFileName (string directory, string searchPattern, bool findInParent)  cil managed 
+    {
+        // Method begins at RVA 0x25c24
+	// Code size 296 (0x128)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.IO.DirectoryInfo	V_1,
+		class [mscorlib]System.IO.FileInfo[]	V_2,
+		string	V_3,
+		class [mscorlib]System.IO.DirectoryInfo	V_4)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_0009:  brfalse IL_0017
+
+	IL_000e:  nop 
+	IL_000f:  ldarg.1 
+	IL_0010:  stloc.0 
+	IL_0011:  nop 
+	IL_0012:  br IL_011f
+
+	IL_0017:  nop 
+	IL_0018:  ldarg.1 
+	IL_0019:  brtrue IL_0027
+
+	IL_001e:  nop 
+	IL_001f:  ldstr "*.build"
+	IL_0024:  starg.s 1
+	IL_0026:  nop 
+	IL_0027:  ldarg.0 
+	IL_0028:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_002d:  stloc.1 
+	IL_002e:  ldloc.1 
+	IL_002f:  ldstr "default.build"
+	IL_0034:  callvirt instance class [mscorlib]System.IO.FileInfo[] class [mscorlib]System.IO.DirectoryInfo::GetFiles(string)
+	IL_0039:  stloc.2 
+	IL_003a:  ldloc.2 
+	IL_003b:  ldlen 
+	IL_003c:  conv.i4 
+	IL_003d:  ldc.i4.1 
+	IL_003e:  bne.un IL_0054
+
+	IL_0043:  nop 
+	IL_0044:  ldloc.2 
+	IL_0045:  ldc.i4.0 
+	IL_0046:  ldelem.ref 
+	IL_0047:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_004c:  stloc.0 
+	IL_004d:  ldloc.0 
+	IL_004e:  stloc.3 
+	IL_004f:  br IL_0126
+
+	IL_0054:  ldloc.1 
+	IL_0055:  ldarg.1 
+	IL_0056:  callvirt instance class [mscorlib]System.IO.FileInfo[] class [mscorlib]System.IO.DirectoryInfo::GetFiles(string)
+	IL_005b:  stloc.2 
+	IL_005c:  ldloc.2 
+	IL_005d:  ldlen 
+	IL_005e:  conv.i4 
+	IL_005f:  ldc.i4.1 
+	IL_0060:  bne.un IL_0075
+
+	IL_0065:  nop 
+	IL_0066:  ldloc.2 
+	IL_0067:  ldc.i4.0 
+	IL_0068:  ldelem.ref 
+	IL_0069:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_006e:  stloc.0 
+	IL_006f:  nop 
+	IL_0070:  br IL_011e
+
+	IL_0075:  ldloc.2 
+	IL_0076:  ldlen 
+	IL_0077:  conv.i4 
+	IL_0078:  ldc.i4.1 
+	IL_0079:  ble IL_00a5
+
+	IL_007e:  nop 
+	IL_007f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0084:  ldstr "NA1001"
+	IL_0089:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_008e:  ldstr "  Use -buildfile:<file> to specify the build file to execute or  create a default.build file."
+	IL_0093:  call string string::Concat(string, string)
+	IL_0098:  ldarg.1 
+	IL_0099:  ldarg.0 
+	IL_009a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_009f:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
+	IL_00a4:  throw 
+	IL_00a5:  ldloc.2 
+	IL_00a6:  ldlen 
+	IL_00a7:  conv.i4 
+	IL_00a8:  brtrue IL_0101
+
+	IL_00ad:  ldarg.2 
+	IL_00ae:  brfalse IL_0101
+
+	IL_00b3:  nop 
+	IL_00b4:  ldloc.1 
+	IL_00b5:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.DirectoryInfo::get_Parent()
+	IL_00ba:  stloc.s 4
+	IL_00bc:  ldarg.2 
+	IL_00bd:  brfalse IL_00df
+
+	IL_00c2:  ldloc.s 4
+	IL_00c4:  brfalse IL_00df
+
+	IL_00c9:  nop 
+	IL_00ca:  ldloc.s 4
+	IL_00cc:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00d1:  ldarg.1 
+	IL_00d2:  ldarg.2 
+	IL_00d3:  call string class NAnt.Core.ConsoleDriver::GetBuildFileName(string, string, bool)
+	IL_00d8:  stloc.0 
+	IL_00d9:  nop 
+	IL_00da:  br IL_00fb
+
+	IL_00df:  nop 
+	IL_00e0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00e5:  ldstr "NA1007"
+	IL_00ea:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00ef:  ldarg.1 
+	IL_00f0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00f5:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
+	IL_00fa:  throw 
+	IL_00fb:  nop 
+	IL_00fc:  br IL_011e
+
+	IL_0101:  nop 
+	IL_0102:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0107:  ldstr "NA1004"
+	IL_010c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0111:  ldarg.1 
+	IL_0112:  ldarg.0 
+	IL_0113:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0118:  newobj instance void class [mscorlib]System.ApplicationException::'.ctor'(string)
+	IL_011d:  throw 
+	IL_011e:  nop 
+	IL_011f:  ldloc.0 
+	IL_0120:  stloc.3 
+	IL_0121:  br IL_0126
+
+	IL_0126:  ldloc.3 
+	IL_0127:  ret 
+    } // end of method ConsoleDriver::GetBuildFileName
+
+    // method line 1949
+    .method private static hidebysig 
+           default void LoadExtensionAssemblies (class [System]System.Collections.Specialized.StringCollection extensionAssemblies, class NAnt.Core.Project project)  cil managed 
+    {
+        // Method begins at RVA 0x25d58
+	// Code size 153 (0x99)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.Tasks.LoadTasksTask	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.Core.Tasks.LoadTasksTask::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_000e:  ldloc.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
+	IL_0015:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_001a:  ldloc.0 
+	IL_001b:  ldarg.1 
+	IL_001c:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_0021:  ldloc.0 
+	IL_0022:  ldarg.1 
+	IL_0023:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
+	IL_0028:  ldc.i4 1000
+	IL_002d:  bne.un IL_003c
+
+	IL_0032:  ldc.i4 1000
+	IL_0037:  br IL_0041
+
+	IL_003c:  ldc.i4 4000
+	IL_0041:  callvirt instance void class NAnt.Core.Task::set_Threshold(valuetype NAnt.Core.Level)
+	IL_0046:  nop 
+	IL_0047:  ldarg.0 
+	IL_0048:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_004d:  stloc.2 
+	.try { // 0
+	  IL_004e:  br IL_006e
+
+	  IL_0053:  ldloc.2 
+	  IL_0054:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0059:  stloc.1 
+	  IL_005a:  nop 
+	  IL_005b:  ldloc.0 
+	  IL_005c:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.Tasks.LoadTasksTask::get_TaskFileSet()
+	  IL_0061:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_Includes()
+	  IL_0066:  ldloc.1 
+	  IL_0067:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_006c:  pop 
+	  IL_006d:  nop 
+	  IL_006e:  ldloc.2 
+	  IL_006f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0074:  brtrue IL_0053
+
+	  IL_0079:  leave IL_0092
+
+	} // end .try 0
+	finally  { // 0
+	  IL_007e:  ldloc.2 
+	  IL_007f:  isinst [mscorlib]System.IDisposable
+	  IL_0084:  dup 
+	  IL_0085:  stloc.3 
+	  IL_0086:  brfalse IL_0091
+
+	  IL_008b:  ldloc.3 
+	  IL_008c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0091:  endfinally 
+	} // end handler 0
+	IL_0092:  ldloc.0 
+	IL_0093:  callvirt instance void class NAnt.Core.Task::Execute()
+	IL_0098:  ret 
+    } // end of method ConsoleDriver::LoadExtensionAssemblies
+
+    // method line 1950
+    .method public static hidebysig 
+           default class NAnt.Core.IBuildLogger CreateLogger (string typeName)  cil managed 
+    {
+        // Method begins at RVA 0x25e10
+        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
+	// Code size 144 (0x90)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Type	V_0,
+		object	V_1,
+		class NAnt.Core.IBuildLogger	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  call class [mscorlib]System.Type class NAnt.Core.Util.ReflectionUtils::GetTypeFromString(string, bool)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  ldnull 
+	IL_000b:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0010:  brfalse IL_0031
+
+	IL_0015:  nop 
+	IL_0016:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001b:  ldstr "NA1006"
+	IL_0020:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0025:  ldarg.0 
+	IL_0026:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002b:  newobj instance void class [mscorlib]System.TypeLoadException::'.ctor'(string)
+	IL_0030:  throw 
+	IL_0031:  ldloc.0 
+	IL_0032:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type)
+	IL_0037:  stloc.1 
+	IL_0038:  ldtoken NAnt.Core.IBuildLogger
+	IL_003d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0042:  ldloc.1 
+	IL_0043:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0048:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_004d:  brtrue IL_0082
+
+	IL_0052:  nop 
+	IL_0053:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0058:  ldstr "{0} does not implement {1}."
+	IL_005d:  ldloc.1 
+	IL_005e:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0063:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0068:  ldtoken NAnt.Core.IBuildLogger
+	IL_006d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0072:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0077:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_007c:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0081:  throw 
+	IL_0082:  ldloc.1 
+	IL_0083:  castclass NAnt.Core.IBuildLogger
+	IL_0088:  stloc.2 
+	IL_0089:  br IL_008e
+
+	IL_008e:  ldloc.2 
+	IL_008f:  ret 
+    } // end of method ConsoleDriver::CreateLogger
+
+    // method line 1951
+    .method public static hidebysig 
+           default class NAnt.Core.IBuildListener CreateListener (string typeName)  cil managed 
+    {
+        // Method begins at RVA 0x25eac
+        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
+	// Code size 144 (0x90)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Type	V_0,
+		object	V_1,
+		class NAnt.Core.IBuildListener	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  call class [mscorlib]System.Type class NAnt.Core.Util.ReflectionUtils::GetTypeFromString(string, bool)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  ldnull 
+	IL_000b:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0010:  brfalse IL_0031
+
+	IL_0015:  nop 
+	IL_0016:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001b:  ldstr "NA1006"
+	IL_0020:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0025:  ldarg.0 
+	IL_0026:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002b:  newobj instance void class [mscorlib]System.TypeLoadException::'.ctor'(string)
+	IL_0030:  throw 
+	IL_0031:  ldloc.0 
+	IL_0032:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type)
+	IL_0037:  stloc.1 
+	IL_0038:  ldtoken NAnt.Core.IBuildListener
+	IL_003d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0042:  ldloc.1 
+	IL_0043:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0048:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_004d:  brtrue IL_0082
+
+	IL_0052:  nop 
+	IL_0053:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0058:  ldstr "{0} does not implement {1}."
+	IL_005d:  ldloc.1 
+	IL_005e:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0063:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0068:  ldtoken NAnt.Core.IBuildListener
+	IL_006d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0072:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0077:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_007c:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0081:  throw 
+	IL_0082:  ldloc.1 
+	IL_0083:  castclass NAnt.Core.IBuildListener
+	IL_0088:  stloc.2 
+	IL_0089:  br IL_008e
+
+	IL_008e:  ldloc.2 
+	IL_008f:  ret 
+    } // end of method ConsoleDriver::CreateListener
+
+    // method line 1952
+    .method private static hidebysig 
+           default void AddBuildListeners (class NAnt.Core.CommandLineOptions cmdlineOptions, class NAnt.Core.Project project)  cil managed 
+    {
+        // Method begins at RVA 0x25f48
+	// Code size 412 (0x19c)
+	.maxstack 4
+	.locals init (
+		class NAnt.Core.BuildListenerCollection	V_0,
+		class NAnt.Core.IBuildLogger	V_1,
+		class [mscorlib]System.IO.TextWriter	V_2,
+		class [mscorlib]System.Exception	V_3,
+		class [mscorlib]System.Exception	V_4,
+		string	V_5,
+		class [System]System.Collections.Specialized.StringEnumerator	V_6,
+		class NAnt.Core.IBuildListener	V_7,
+		class [mscorlib]System.Exception	V_8,
+		class [mscorlib]System.IDisposable	V_9)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.Core.BuildListenerCollection::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldnull 
+	IL_0008:  stloc.1 
+	IL_0009:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Out()
+	IL_000e:  stloc.2 
+	IL_000f:  ldarg.0 
+	IL_0010:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.CommandLineOptions::get_LogFile()
+	IL_0015:  brfalse IL_0069
+
+	IL_001a:  nop 
+	.try { // 0
+	  IL_001b:  nop 
+	  IL_001c:  ldarg.0 
+	  IL_001d:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.CommandLineOptions::get_LogFile()
+	  IL_0022:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0027:  ldc.i4.2 
+	  IL_0028:  ldc.i4.2 
+	  IL_0029:  ldc.i4.1 
+	  IL_002a:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode, valuetype [mscorlib]System.IO.FileAccess, valuetype [mscorlib]System.IO.FileShare)
+	  IL_002f:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(class [mscorlib]System.IO.Stream)
+	  IL_0034:  stloc.2 
+	  IL_0035:  nop 
+	  IL_0036:  leave IL_0068
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_003b:  stloc.3 
+	  IL_003c:  nop 
+	  IL_003d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0042:  ldstr "NA1005"
+	  IL_0047:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_004c:  ldarg.0 
+	  IL_004d:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.CommandLineOptions::get_LogFile()
+	  IL_0052:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0057:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_005c:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	  IL_0061:  ldloc.3 
+	  IL_0062:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0067:  throw 
+	} // end handler 0
+	IL_0068:  nop 
+	IL_0069:  ldarg.0 
+	IL_006a:  callvirt instance string class NAnt.Core.CommandLineOptions::get_LoggerType()
+	IL_006f:  brfalse IL_00b3
+
+	IL_0074:  nop 
+	.try { // 1
+	  IL_0075:  nop 
+	  IL_0076:  ldarg.0 
+	  IL_0077:  callvirt instance string class NAnt.Core.CommandLineOptions::get_LoggerType()
+	  IL_007c:  call class NAnt.Core.IBuildLogger class NAnt.Core.ConsoleDriver::CreateLogger(string)
+	  IL_0081:  stloc.1 
+	  IL_0082:  nop 
+	  IL_0083:  leave IL_00b2
+
+	} // end .try 1
+	catch class [mscorlib]System.Exception { // 1
+	  IL_0088:  stloc.s 4
+	  IL_008a:  nop 
+	  IL_008b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0090:  ldstr "NA1003"
+	  IL_0095:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_009a:  ldarg.0 
+	  IL_009b:  callvirt instance string class NAnt.Core.CommandLineOptions::get_LoggerType()
+	  IL_00a0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_00a5:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	  IL_00aa:  ldloc.s 4
+	  IL_00ac:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_00b1:  throw 
+	} // end handler 1
+	IL_00b2:  nop 
+	IL_00b3:  ldloc.1 
+	IL_00b4:  brtrue IL_00c1
+
+	IL_00b9:  nop 
+	IL_00ba:  newobj instance void class NAnt.Core.DefaultLogger::'.ctor'()
+	IL_00bf:  stloc.1 
+	IL_00c0:  nop 
+	IL_00c1:  ldtoken NAnt.Core.DefaultLogger
+	IL_00c6:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_00cb:  ldloc.1 
+	IL_00cc:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_00d1:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_00d6:  brfalse IL_00e6
+
+	IL_00db:  ldarg.0 
+	IL_00dc:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.CommandLineOptions::get_LogFile()
+	IL_00e1:  brfalse IL_00ef
+
+	IL_00e6:  nop 
+	IL_00e7:  ldloc.1 
+	IL_00e8:  ldloc.2 
+	IL_00e9:  callvirt instance void class NAnt.Core.IBuildLogger::set_OutputWriter(class [mscorlib]System.IO.TextWriter)
+	IL_00ee:  nop 
+	IL_00ef:  ldloc.1 
+	IL_00f0:  ldarg.1 
+	IL_00f1:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
+	IL_00f6:  callvirt instance void class NAnt.Core.IBuildLogger::set_Threshold(valuetype NAnt.Core.Level)
+	IL_00fb:  ldloc.1 
+	IL_00fc:  ldarg.0 
+	IL_00fd:  callvirt instance bool class NAnt.Core.CommandLineOptions::get_EmacsMode()
+	IL_0102:  callvirt instance void class NAnt.Core.IBuildLogger::set_EmacsMode(bool)
+	IL_0107:  ldloc.0 
+	IL_0108:  ldloc.1 
+	IL_0109:  callvirt instance int32 class NAnt.Core.BuildListenerCollection::Add(class NAnt.Core.IBuildListener)
+	IL_010e:  pop 
+	IL_010f:  nop 
+	IL_0110:  ldarg.0 
+	IL_0111:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.CommandLineOptions::get_Listeners()
+	IL_0116:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_011b:  stloc.s 6
+	.try { // 3
+	  IL_011d:  br IL_016c
+
+	  IL_0122:  ldloc.s 6
+	  IL_0124:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0129:  stloc.s 5
+	  IL_012b:  nop 
+	  .try { // 2
+	    IL_012c:  nop 
+	    IL_012d:  ldloc.s 5
+	    IL_012f:  call class NAnt.Core.IBuildListener class NAnt.Core.ConsoleDriver::CreateListener(string)
+	    IL_0134:  stloc.s 7
+	    IL_0136:  ldloc.0 
+	    IL_0137:  ldloc.s 7
+	    IL_0139:  callvirt instance int32 class NAnt.Core.BuildListenerCollection::Add(class NAnt.Core.IBuildListener)
+	    IL_013e:  pop 
+	    IL_013f:  nop 
+	    IL_0140:  leave IL_016b
+
+	  } // end .try 2
+	  catch class [mscorlib]System.Exception { // 2
+	    IL_0145:  stloc.s 8
+	    IL_0147:  nop 
+	    IL_0148:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_014d:  ldstr "NA1002"
+	    IL_0152:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_0157:  ldloc.s 5
+	    IL_0159:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_015e:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	    IL_0163:  ldloc.s 8
+	    IL_0165:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	    IL_016a:  throw 
+	  } // end handler 2
+	  IL_016b:  nop 
+	  IL_016c:  ldloc.s 6
+	  IL_016e:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0173:  brtrue IL_0122
+
+	  IL_0178:  leave IL_0194
+
+	} // end .try 3
+	finally  { // 3
+	  IL_017d:  ldloc.s 6
+	  IL_017f:  isinst [mscorlib]System.IDisposable
+	  IL_0184:  dup 
+	  IL_0185:  stloc.s 9
+	  IL_0187:  brfalse IL_0193
+
+	  IL_018c:  ldloc.s 9
+	  IL_018e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0193:  endfinally 
+	} // end handler 3
+	IL_0194:  ldarg.1 
+	IL_0195:  ldloc.0 
+	IL_0196:  callvirt instance void class NAnt.Core.Project::AttachBuildListeners(class NAnt.Core.BuildListenerCollection)
+	IL_019b:  ret 
+    } // end of method ConsoleDriver::AddBuildListeners
+
+    // method line 1953
+    .method private static hidebysig 
+           default void ShowHelp (class NAnt.Core.Util.CommandLineParser parser)  cil managed 
+    {
+        // Method begins at RVA 0x26124
+	// Code size 68 (0x44)
+	.maxstack 1
+	IL_0000:  nop 
+	IL_0001:  ldstr "NAnt comes with ABSOLUTELY NO WARRANTY."
+	IL_0006:  call void class [mscorlib]System.Console::WriteLine(string)
+	IL_000b:  ldstr "This is free software, and you are welcome to redistribute it under certain"
+	IL_0010:  call void class [mscorlib]System.Console::WriteLine(string)
+	IL_0015:  ldstr "conditions set out by the GNU General Public License.  A copy of the license"
+	IL_001a:  call void class [mscorlib]System.Console::WriteLine(string)
+	IL_001f:  ldstr "is available in the distribution package and from the NAnt web site."
+	IL_0024:  call void class [mscorlib]System.Console::WriteLine(string)
+	IL_0029:  call void class [mscorlib]System.Console::WriteLine()
+	IL_002e:  ldarg.0 
+	IL_002f:  callvirt instance string class NAnt.Core.Util.CommandLineParser::get_Usage()
+	IL_0034:  call void class [mscorlib]System.Console::WriteLine(string)
+	IL_0039:  ldstr "A file ending in .build will be used if no buildfile is specified."
+	IL_003e:  call void class [mscorlib]System.Console::WriteLine(string)
+	IL_0043:  ret 
+    } // end of method ConsoleDriver::ShowHelp
+
+    // method line 1954
+    .method private static hidebysig 
+           default void WriteException (class [mscorlib]System.Exception cause)  cil managed 
+    {
+        // Method begins at RVA 0x26174
+	// Code size 113 (0x71)
+	.maxstack 4
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_005a
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	IL_000f:  call bool string::IsNullOrEmpty(string)
+	IL_0014:  brtrue IL_0051
+
+	IL_0019:  nop 
+	IL_001a:  ldloc.0 
+	IL_001b:  ldc.i4.0 
+	IL_001c:  ble IL_002d
+
+	IL_0021:  nop 
+	IL_0022:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	IL_0027:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine()
+	IL_002c:  nop 
+	IL_002d:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
+	IL_0032:  ldc.i4.s 0x20
+	IL_0034:  ldloc.0 
+	IL_0035:  ldc.i4.4 
+	IL_0036:  mul 
+	IL_0037:  newobj instance void string::'.ctor'(char, int32)
+	IL_003c:  ldarg.0 
+	IL_003d:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	IL_0042:  call string string::Concat(string, string)
+	IL_0047:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	IL_004c:  ldloc.0 
+	IL_004d:  ldc.i4.1 
+	IL_004e:  add 
+	IL_004f:  stloc.0 
+	IL_0050:  nop 
+	IL_0051:  ldarg.0 
+	IL_0052:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
+	IL_0057:  starg.s 0
+	IL_0059:  nop 
+	IL_005a:  ldarg.0 
+	IL_005b:  brfalse IL_0070
+
+	IL_0060:  ldarg.0 
+	IL_0061:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	IL_0066:  call bool string::IsNullOrEmpty(string)
+	IL_006b:  brfalse IL_0008
+
+	IL_0070:  ret 
+    } // end of method ConsoleDriver::WriteException
+
+  } // end of class NAnt.Core.ConsoleDriver
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi beforefieldinit DataTypeBaseBuilder
+  	extends NAnt.Core.Extensibility.ExtensionBuilder
+  {
+    .field  private initonly  string _className
+    .field  private  string _dataTypeName
+
+    // method line 1955
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly', string className)  cil managed 
+    {
+        // Method begins at RVA 0x261f1
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call class NAnt.Core.Extensibility.ExtensionAssembly class NAnt.Core.Extensibility.ExtensionAssembly::Create(class [mscorlib]System.Reflection.Assembly)
+	IL_0007:  ldarg.2 
+	IL_0008:  call instance void class NAnt.Core.DataTypeBaseBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, string)
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method DataTypeBaseBuilder::.ctor
+
+    // method line 1956
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, string className)  cil managed 
+    {
+        // Method begins at RVA 0x26201
+	// Code size 16 (0x10)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class NAnt.Core.Extensibility.ExtensionBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly)
+	IL_0007:  nop 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.2 
+	IL_000a:  stfld string NAnt.Core.DataTypeBaseBuilder::_className
+	IL_000f:  ret 
+    } // end of method DataTypeBaseBuilder::.ctor
+
+    // method line 1957
+    .method public hidebysig specialname 
+           instance default string get_ClassName ()  cil managed 
+    {
+        // Method begins at RVA 0x26214
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.DataTypeBaseBuilder::_className
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DataTypeBaseBuilder::get_ClassName
+
+    // method line 1958
+    .method public hidebysig specialname 
+           instance default string get_DataTypeName ()  cil managed 
+    {
+        // Method begins at RVA 0x26230
+	// Code size 78 (0x4e)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Attributes.ElementNameAttribute	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.DataTypeBaseBuilder::_dataTypeName
+	IL_0007:  brtrue IL_0040
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance string class NAnt.Core.DataTypeBaseBuilder::get_ClassName()
+	IL_0019:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string)
+	IL_001e:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
+	IL_0023:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0028:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	IL_002d:  castclass NAnt.Core.Attributes.ElementNameAttribute
+	IL_0032:  stloc.0 
+	IL_0033:  ldarg.0 
+	IL_0034:  ldloc.0 
+	IL_0035:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
+	IL_003a:  stfld string NAnt.Core.DataTypeBaseBuilder::_dataTypeName
+	IL_003f:  nop 
+	IL_0040:  ldarg.0 
+	IL_0041:  ldfld string NAnt.Core.DataTypeBaseBuilder::_dataTypeName
+	IL_0046:  stloc.1 
+	IL_0047:  br IL_004c
+
+	IL_004c:  ldloc.1 
+	IL_004d:  ret 
+    } // end of method DataTypeBaseBuilder::get_DataTypeName
+
+    // method line 1959
+    .method public hidebysig 
+           instance default class NAnt.Core.DataTypeBase CreateDataTypeBase ()  cil managed 
+    {
+        // Method begins at RVA 0x2628c
+        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
+	// Code size 42 (0x2a)
+	.maxstack 8
+	.locals init (
+		class NAnt.Core.DataTypeBase	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance string class NAnt.Core.DataTypeBaseBuilder::get_ClassName()
+	IL_000d:  ldc.i4.1 
+	IL_000e:  ldc.i4.s 0x14
+	IL_0010:  ldnull 
+	IL_0011:  ldnull 
+	IL_0012:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0017:  ldnull 
+	IL_0018:  callvirt instance object class [mscorlib]System.Reflection.Assembly::CreateInstance(string, bool, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo, object[])
+	IL_001d:  castclass NAnt.Core.DataTypeBase
+	IL_0022:  stloc.0 
+	IL_0023:  br IL_0028
+
+	IL_0028:  ldloc.0 
+	IL_0029:  ret 
+    } // end of method DataTypeBaseBuilder::CreateDataTypeBase
+
+	.property instance string ClassName ()
+	{
+		.get instance default string NAnt.Core.DataTypeBaseBuilder::get_ClassName () 
+	}
+	.property instance string DataTypeName ()
+	{
+		.get instance default string NAnt.Core.DataTypeBaseBuilder::get_DataTypeName () 
+	}
+  } // end of class NAnt.Core.DataTypeBaseBuilder
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi serializable beforefieldinit ExpressionParseException
+  	extends [mscorlib]System.Exception
+  {
+    .field  private  int32 _startPos
+    .field  private  int32 _endPos
+
+    // method line 1960
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x262c2
+	// Code size 22 (0x16)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.m1 
+	IL_0002:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
+	IL_0007:  ldarg.0 
+	IL_0008:  ldc.i4.m1 
+	IL_0009:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance void class [mscorlib]System.Exception::'.ctor'()
+	IL_0014:  nop 
+	IL_0015:  ret 
+    } // end of method ExpressionParseException::.ctor
+
+    // method line 1961
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message)  cil managed 
+    {
+        // Method begins at RVA 0x262d9
+	// Code size 24 (0x18)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.m1 
+	IL_0002:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
+	IL_0007:  ldarg.0 
+	IL_0008:  ldc.i4.m1 
+	IL_0009:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  ldnull 
+	IL_0011:  call instance void class [mscorlib]System.Exception::'.ctor'(string, class [mscorlib]System.Exception)
+	IL_0016:  nop 
+	IL_0017:  ret 
+    } // end of method ExpressionParseException::.ctor
+
+    // method line 1962
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, class [mscorlib]System.Exception inner)  cil managed 
+    {
+        // Method begins at RVA 0x262f2
+	// Code size 24 (0x18)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.m1 
+	IL_0002:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
+	IL_0007:  ldarg.0 
+	IL_0008:  ldc.i4.m1 
+	IL_0009:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  ldarg.2 
+	IL_0011:  call instance void class [mscorlib]System.Exception::'.ctor'(string, class [mscorlib]System.Exception)
+	IL_0016:  nop 
+	IL_0017:  ret 
+    } // end of method ExpressionParseException::.ctor
+
+    // method line 1963
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
+    {
+        // Method begins at RVA 0x2630c
+	// Code size 88 (0x58)
+	.maxstack 4
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.m1 
+	IL_0002:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
+	IL_0007:  ldarg.0 
+	IL_0008:  ldc.i4.m1 
+	IL_0009:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  ldarg.2 
+	IL_0011:  call instance void class [mscorlib]System.Exception::'.ctor'(class [mscorlib]System.Runtime.Serialization.SerializationInfo, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext)
+	IL_0016:  nop 
+	IL_0017:  ldarg.0 
+	IL_0018:  ldarg.1 
+	IL_0019:  ldstr "startPos"
+	IL_001e:  ldtoken [mscorlib]System.Int32
+	IL_0023:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0028:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_002d:  unbox.any [mscorlib]System.Int32
+	IL_0032:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
+	IL_0037:  ldarg.0 
+	IL_0038:  ldarg.1 
+	IL_0039:  ldstr "endPos"
+	IL_003e:  ldtoken [mscorlib]System.Int32
+	IL_0043:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0048:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_004d:  unbox.any [mscorlib]System.Int32
+	IL_0052:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
+	IL_0057:  ret 
+    } // end of method ExpressionParseException::.ctor
+
+    // method line 1964
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, int32 pos)  cil managed 
+    {
+        // Method begins at RVA 0x26370
+	// Code size 38 (0x26)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.m1 
+	IL_0002:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
+	IL_0007:  ldarg.0 
+	IL_0008:  ldc.i4.m1 
+	IL_0009:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  ldnull 
+	IL_0011:  call instance void class [mscorlib]System.Exception::'.ctor'(string, class [mscorlib]System.Exception)
+	IL_0016:  nop 
+	IL_0017:  ldarg.0 
+	IL_0018:  ldarg.2 
+	IL_0019:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
+	IL_001e:  ldarg.0 
+	IL_001f:  ldc.i4.m1 
+	IL_0020:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
+	IL_0025:  ret 
+    } // end of method ExpressionParseException::.ctor
+
+    // method line 1965
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, int32 startPos, int32 endPos)  cil managed 
+    {
+        // Method begins at RVA 0x26397
+	// Code size 38 (0x26)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.m1 
+	IL_0002:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
+	IL_0007:  ldarg.0 
+	IL_0008:  ldc.i4.m1 
+	IL_0009:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  ldnull 
+	IL_0011:  call instance void class [mscorlib]System.Exception::'.ctor'(string, class [mscorlib]System.Exception)
+	IL_0016:  nop 
+	IL_0017:  ldarg.0 
+	IL_0018:  ldarg.2 
+	IL_0019:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
+	IL_001e:  ldarg.0 
+	IL_001f:  ldarg.3 
+	IL_0020:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
+	IL_0025:  ret 
+    } // end of method ExpressionParseException::.ctor
+
+    // method line 1966
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string message, int32 startPos, int32 endPos, class [mscorlib]System.Exception inner)  cil managed 
+    {
+        // Method begins at RVA 0x263be
+	// Code size 39 (0x27)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.m1 
+	IL_0002:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
+	IL_0007:  ldarg.0 
+	IL_0008:  ldc.i4.m1 
+	IL_0009:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  ldarg.s 4
+	IL_0012:  call instance void class [mscorlib]System.Exception::'.ctor'(string, class [mscorlib]System.Exception)
+	IL_0017:  nop 
+	IL_0018:  ldarg.0 
+	IL_0019:  ldarg.2 
+	IL_001a:  stfld int32 NAnt.Core.ExpressionParseException::_startPos
+	IL_001f:  ldarg.0 
+	IL_0020:  ldarg.3 
+	IL_0021:  stfld int32 NAnt.Core.ExpressionParseException::_endPos
+	IL_0026:  ret 
+    } // end of method ExpressionParseException::.ctor
+
+    // method line 1967
+    .method public hidebysig specialname 
+           instance default int32 get_StartPos ()  cil managed 
+    {
+        // Method begins at RVA 0x263e8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.Core.ExpressionParseException::_startPos
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExpressionParseException::get_StartPos
+
+    // method line 1968
+    .method public hidebysig specialname 
+           instance default int32 get_EndPos ()  cil managed 
+    {
+        // Method begins at RVA 0x26404
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.Core.ExpressionParseException::_endPos
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExpressionParseException::get_EndPos
+
+    // method line 1969
+    .method public virtual hidebysig 
+           instance default void GetObjectData (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
+    {
+        // Method begins at RVA 0x2641f
+	// Code size 44 (0x2c)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr "startPos"
+	IL_0007:  ldarg.0 
+	IL_0008:  ldfld int32 NAnt.Core.ExpressionParseException::_startPos
+	IL_000d:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, int32)
+	IL_0012:  ldarg.1 
+	IL_0013:  ldstr "endPos"
+	IL_0018:  ldarg.0 
+	IL_0019:  ldfld int32 NAnt.Core.ExpressionParseException::_endPos
+	IL_001e:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, int32)
+	IL_0023:  ldarg.0 
+	IL_0024:  ldarg.1 
+	IL_0025:  ldarg.2 
+	IL_0026:  call instance void class [mscorlib]System.Exception::GetObjectData(class [mscorlib]System.Runtime.Serialization.SerializationInfo, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext)
+	IL_002b:  ret 
+    } // end of method ExpressionParseException::GetObjectData
+
+	.property instance int32 StartPos ()
+	{
+		.get instance default int32 NAnt.Core.ExpressionParseException::get_StartPos () 
+	}
+	.property instance int32 EndPos ()
+	{
+		.get instance default int32 NAnt.Core.ExpressionParseException::get_EndPos () 
+	}
+  } // end of class NAnt.Core.ExpressionParseException
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi ExpressionTokenizer
+  	extends [mscorlib]System.Object
+  {
+    .field  private  string _text
+    .field  private  int32 _position
+    .field  private  valuetype NAnt.Core.ExpressionTokenizer/Position _tokenStartPosition
+    .field  private  valuetype NAnt.Core.ExpressionTokenizer/TokenType _tokenType
+    .field  private  string _tokenText
+    .field  private  bool _ignoreWhiteSpace
+    .field  private  bool _singleCharacterMode
+    .field  private static  valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType[] charToTokenType
+    .field  private static  valuetype NAnt.Core.ExpressionTokenizer/TokenType[] charIndexToTokenType
+
+    // method line 1970
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2644c
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Core.ExpressionTokenizer::_ignoreWhiteSpace
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void object::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method ExpressionTokenizer::.ctor
+
+    // method line 1971
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2645c
+	// Code size 439 (0x1b7)
+	.maxstack 4
+	.locals init (
+		int32	V_0,
+		valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType	V_1,
+		valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType[]	V_2,
+		int32	V_3)
+	IL_0000:  ldc.i4.s 0x0f
+	IL_0002:  newarr NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0007:  dup 
+	IL_0008:  ldc.i4.0 
+	IL_0009:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_000e:  ldc.i4.s 0x2b
+	IL_0010:  ldc.i4.s 0x0b
+	IL_0012:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_0017:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_001c:  dup 
+	IL_001d:  ldc.i4.1 
+	IL_001e:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0023:  ldc.i4.s 0x2d
+	IL_0025:  ldc.i4.s 0x0c
+	IL_0027:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_002c:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0031:  dup 
+	IL_0032:  ldc.i4.2 
+	IL_0033:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0038:  ldc.i4.s 0x2a
+	IL_003a:  ldc.i4.s 0x0d
+	IL_003c:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_0041:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0046:  dup 
+	IL_0047:  ldc.i4.3 
+	IL_0048:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_004d:  ldc.i4.s 0x2f
+	IL_004f:  ldc.i4.s 0x0e
+	IL_0051:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_0056:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_005b:  dup 
+	IL_005c:  ldc.i4.4 
+	IL_005d:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0062:  ldc.i4.s 0x25
+	IL_0064:  ldc.i4.s 0x0f
+	IL_0066:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_006b:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0070:  dup 
+	IL_0071:  ldc.i4.5 
+	IL_0072:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0077:  ldc.i4.s 0x3c
+	IL_0079:  ldc.i4.7 
+	IL_007a:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_007f:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0084:  dup 
+	IL_0085:  ldc.i4.6 
+	IL_0086:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_008b:  ldc.i4.s 0x3e
+	IL_008d:  ldc.i4.8 
+	IL_008e:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_0093:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0098:  dup 
+	IL_0099:  ldc.i4.7 
+	IL_009a:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_009f:  ldc.i4.s 0x28
+	IL_00a1:  ldc.i4.s 0x10
+	IL_00a3:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_00a8:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_00ad:  dup 
+	IL_00ae:  ldc.i4.8 
+	IL_00af:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_00b4:  ldc.i4.s 0x29
+	IL_00b6:  ldc.i4.s 0x11
+	IL_00b8:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_00bd:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_00c2:  dup 
+	IL_00c3:  ldc.i4.s 0x09
+	IL_00c5:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_00ca:  ldc.i4.s 0x7b
+	IL_00cc:  ldc.i4.s 0x12
+	IL_00ce:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_00d3:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_00d8:  dup 
+	IL_00d9:  ldc.i4.s 0x0a
+	IL_00db:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_00e0:  ldc.i4.s 0x7d
+	IL_00e2:  ldc.i4.s 0x13
+	IL_00e4:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_00e9:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_00ee:  dup 
+	IL_00ef:  ldc.i4.s 0x0b
+	IL_00f1:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_00f6:  ldc.i4.s 0x21
+	IL_00f8:  ldc.i4.s 0x14
+	IL_00fa:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_00ff:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0104:  dup 
+	IL_0105:  ldc.i4.s 0x0c
+	IL_0107:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_010c:  ldc.i4.s 0x24
+	IL_010e:  ldc.i4.s 0x17
+	IL_0110:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_0115:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_011a:  dup 
+	IL_011b:  ldc.i4.s 0x0d
+	IL_011d:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0122:  ldc.i4.s 0x2c
+	IL_0124:  ldc.i4.s 0x18
+	IL_0126:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_012b:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0130:  dup 
+	IL_0131:  ldc.i4.s 0x0e
+	IL_0133:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0138:  ldc.i4.s 0x2e
+	IL_013a:  ldc.i4.s 0x19
+	IL_013c:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType::'.ctor'(char, valuetype NAnt.Core.ExpressionTokenizer/TokenType)
+	IL_0141:  stobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0146:  stsfld valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType[] NAnt.Core.ExpressionTokenizer::charToTokenType
+	IL_014b:  ldc.i4 128
+	IL_0150:  newarr NAnt.Core.ExpressionTokenizer/TokenType
+	IL_0155:  stsfld valuetype NAnt.Core.ExpressionTokenizer/TokenType[] NAnt.Core.ExpressionTokenizer::charIndexToTokenType
+	IL_015a:  nop 
+	IL_015b:  ldc.i4.0 
+	IL_015c:  stloc.0 
+	IL_015d:  br IL_016f
+
+	IL_0162:  ldsfld valuetype NAnt.Core.ExpressionTokenizer/TokenType[] NAnt.Core.ExpressionTokenizer::charIndexToTokenType
+	IL_0167:  ldloc.0 
+	IL_0168:  ldc.i4.s 0x15
+	IL_016a:  stelem.i4 
+	IL_016b:  ldloc.0 
+	IL_016c:  ldc.i4.1 
+	IL_016d:  add 
+	IL_016e:  stloc.0 
+	IL_016f:  ldloc.0 
+	IL_0170:  ldc.i4 128
+	IL_0175:  blt IL_0162
+
+	IL_017a:  nop 
+	IL_017b:  ldsfld valuetype NAnt.Core.ExpressionTokenizer/CharToTokenType[] NAnt.Core.ExpressionTokenizer::charToTokenType
+	IL_0180:  stloc.2 
+	IL_0181:  ldc.i4.0 
+	IL_0182:  stloc.3 
+	IL_0183:  br IL_01ad
+
+	IL_0188:  ldloc.2 
+	IL_0189:  ldloc.3 
+	IL_018a:  ldelema NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_018f:  ldobj NAnt.Core.ExpressionTokenizer/CharToTokenType
+	IL_0194:  stloc.1 
+	IL_0195:  ldsfld valuetype NAnt.Core.ExpressionTokenizer/TokenType[] NAnt.Core.ExpressionTokenizer::charIndexToTokenType
+	IL_019a:  ldloca.s 1
+	IL_019c:  ldfld char NAnt.Core.ExpressionTokenizer/CharToTokenType::ch
+	IL_01a1:  ldloca.s 1
+	IL_01a3:  ldfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer/CharToTokenType::tokenType
+	IL_01a8:  stelem.i4 
+	IL_01a9:  ldloc.3 
+	IL_01aa:  ldc.i4.1 
+	IL_01ab:  add 
+	IL_01ac:  stloc.3 
+	IL_01ad:  ldloc.3 
+	IL_01ae:  ldloc.2 
+	IL_01af:  ldlen 
+	IL_01b0:  conv.i4 
+	IL_01b1:  blt IL_0188
+
+	IL_01b6:  ret 
+    } // end of method ExpressionTokenizer::.cctor
+
+    // method line 1972
+    .method public hidebysig specialname 
+           instance default bool get_IgnoreWhitespace ()  cil managed 
+    {
+        // Method begins at RVA 0x26620
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.ExpressionTokenizer::_ignoreWhiteSpace
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExpressionTokenizer::get_IgnoreWhitespace
+
+    // method line 1973
+    .method public hidebysig specialname 
+           instance default void set_IgnoreWhitespace (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2663b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.ExpressionTokenizer::_ignoreWhiteSpace
+	IL_0008:  ret 
+    } // end of method ExpressionTokenizer::set_IgnoreWhitespace
+
+    // method line 1974
+    .method public hidebysig specialname 
+           instance default bool get_SingleCharacterMode ()  cil managed 
+    {
+        // Method begins at RVA 0x26648
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.ExpressionTokenizer::_singleCharacterMode
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExpressionTokenizer::get_SingleCharacterMode
+
+    // method line 1975
+    .method public hidebysig specialname 
+           instance default void set_SingleCharacterMode (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x26663
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Core.ExpressionTokenizer::_singleCharacterMode
+	IL_0008:  ret 
+    } // end of method ExpressionTokenizer::set_SingleCharacterMode
+
+    // method line 1976
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.ExpressionTokenizer/TokenType get_CurrentToken ()  cil managed 
+    {
+        // Method begins at RVA 0x26670
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.Core.ExpressionTokenizer/TokenType	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExpressionTokenizer::get_CurrentToken
+
+    // method line 1977
+    .method public hidebysig specialname 
+           instance default string get_TokenText ()  cil managed 
+    {
+        // Method begins at RVA 0x2668c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExpressionTokenizer::get_TokenText
+
+    // method line 1978
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.ExpressionTokenizer/Position get_CurrentPosition ()  cil managed 
+    {
+        // Method begins at RVA 0x266a8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.ExpressionTokenizer::_tokenStartPosition
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ExpressionTokenizer::get_CurrentPosition
+
+    // method line 1979
+    .method public hidebysig 
+           instance default void InitTokenizer (string s)  cil managed 
+    {
+        // Method begins at RVA 0x266c3
+	// Code size 29 (0x1d)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.ExpressionTokenizer::_text
+	IL_0008:  ldarg.0 
+	IL_0009:  ldc.i4.0 
+	IL_000a:  stfld int32 NAnt.Core.ExpressionTokenizer::_position
+	IL_000f:  ldarg.0 
+	IL_0010:  ldc.i4.0 
+	IL_0011:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_0016:  ldarg.0 
+	IL_0017:  call instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	IL_001c:  ret 
+    } // end of method ExpressionTokenizer::InitTokenizer
+
+    // method line 1980
+    .method public hidebysig 
+           instance default void GetNextToken ()  cil managed 
+    {
+        // Method begins at RVA 0x266e4
+	// Code size 1053 (0x41d)
+	.maxstack 3
+	.locals init (
+		int32	V_0,
+		char	V_1,
+		class [mscorlib]System.Text.StringBuilder	V_2,
+		string	V_3,
+		string	V_4,
+		class [mscorlib]System.Text.StringBuilder	V_5,
+		char	V_6,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_0007:  ldc.i4.1 
+	IL_0008:  bne.un IL_001f
+
+	IL_000d:  ldstr "String_CannotReadPastStream"
+	IL_0012:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0017:  ldc.i4.m1 
+	IL_0018:  ldc.i4.m1 
+	IL_0019:  newobj instance void class NAnt.Core.ExpressionParseException::'.ctor'(string, int32, int32)
+	IL_001e:  throw 
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance bool class NAnt.Core.ExpressionTokenizer::get_IgnoreWhitespace()
+	IL_0025:  brfalse IL_0030
+
+	IL_002a:  ldarg.0 
+	IL_002b:  call instance void class NAnt.Core.ExpressionTokenizer::SkipWhitespace()
+	IL_0030:  ldarg.0 
+	IL_0031:  ldarg.0 
+	IL_0032:  ldfld int32 NAnt.Core.ExpressionTokenizer::_position
+	IL_0037:  newobj instance void valuetype NAnt.Core.ExpressionTokenizer/Position::'.ctor'(int32)
+	IL_003c:  stfld valuetype NAnt.Core.ExpressionTokenizer/Position NAnt.Core.ExpressionTokenizer::_tokenStartPosition
+	IL_0041:  ldarg.0 
+	IL_0042:  call instance int32 class NAnt.Core.ExpressionTokenizer::PeekChar()
+	IL_0047:  stloc.0 
+	IL_0048:  ldloc.0 
+	IL_0049:  ldc.i4.m1 
+	IL_004a:  bne.un IL_005c
+
+	IL_004f:  nop 
+	IL_0050:  ldarg.0 
+	IL_0051:  ldc.i4.1 
+	IL_0052:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_0057:  br IL_041c
+
+	IL_005c:  ldloc.0 
+	IL_005d:  conv.u2 
+	IL_005e:  stloc.1 
+	IL_005f:  ldarg.0 
+	IL_0060:  call instance bool class NAnt.Core.ExpressionTokenizer::get_SingleCharacterMode()
+	IL_0065:  brtrue IL_03d5
+
+	IL_006a:  nop 
+	IL_006b:  ldarg.0 
+	IL_006c:  call instance bool class NAnt.Core.ExpressionTokenizer::get_IgnoreWhitespace()
+	IL_0071:  brtrue IL_00d7
+
+	IL_0076:  ldloc.1 
+	IL_0077:  call bool char::IsWhiteSpace(char)
+	IL_007c:  brfalse IL_00d7
+
+	IL_0081:  nop 
+	IL_0082:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0087:  stloc.2 
+	IL_0088:  br IL_00b0
+
+	IL_008d:  nop 
+	IL_008e:  ldloc.0 
+	IL_008f:  conv.u2 
+	IL_0090:  call bool char::IsWhiteSpace(char)
+	IL_0095:  brtrue IL_009f
+
+	IL_009a:  br IL_00be
+
+	IL_009f:  ldloc.2 
+	IL_00a0:  ldloc.0 
+	IL_00a1:  conv.u2 
+	IL_00a2:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_00a7:  pop 
+	IL_00a8:  ldarg.0 
+	IL_00a9:  call instance int32 class NAnt.Core.ExpressionTokenizer::ReadChar()
+	IL_00ae:  pop 
+	IL_00af:  nop 
+	IL_00b0:  ldarg.0 
+	IL_00b1:  call instance int32 class NAnt.Core.ExpressionTokenizer::PeekChar()
+	IL_00b6:  dup 
+	IL_00b7:  stloc.0 
+	IL_00b8:  ldc.i4.m1 
+	IL_00b9:  bne.un IL_008d
+
+	IL_00be:  ldarg.0 
+	IL_00bf:  ldc.i4.s 0x16
+	IL_00c1:  stfld valuetype NAnt.Core.ExpressionTokenizer/TokenType NAnt.Core.ExpressionTokenizer::_tokenType
+	IL_00c6:  ldarg.0 
+	IL_00c7:  ldloc.2 
+	IL_00c8:  callvirt instance string object::ToString()
+	IL_00cd:  stfld string NAnt.Core.ExpressionTokenizer::_tokenText
+	IL_00d2:  br IL_041c
+
+	IL_00d7:  ldloc.1 
+	IL_00d8:  call bool char::IsDigit(char)
+	IL_00dd:  brfalse IL_0153
 
 	IL_00e2:  nop 
 	IL_00e3:  ldarg.0 
@@ -83306,11 +77692,11 @@
 	IL_041c:  ret 
     } // end of method ExpressionTokenizer::GetNextToken
 
-    // method line 2173
+    // method line 1981
     .method public hidebysig 
            instance default bool IsKeyword (string k)  cil managed 
     {
-        // Method begins at RVA 0x263f4
+        // Method begins at RVA 0x26b10
 	// Code size 36 (0x24)
 	.maxstack 2
 	.locals init (
@@ -83335,11 +77721,11 @@
 	IL_0023:  ret 
     } // end of method ExpressionTokenizer::IsKeyword
 
-    // method line 2174
+    // method line 1982
     .method private hidebysig 
            instance default int32 ReadChar ()  cil managed 
     {
-        // Method begins at RVA 0x26424
+        // Method begins at RVA 0x26b40
 	// Code size 66 (0x42)
 	.maxstack 4
 	.locals init (
@@ -83376,11 +77762,11 @@
 	IL_0041:  ret 
     } // end of method ExpressionTokenizer::ReadChar
 
-    // method line 2175
+    // method line 1983
     .method private hidebysig 
            instance default int32 PeekChar ()  cil managed 
     {
-        // Method begins at RVA 0x26474
+        // Method begins at RVA 0x26b90
 	// Code size 55 (0x37)
 	.maxstack 2
 	.locals init (
@@ -83409,11 +77795,11 @@
 	IL_0036:  ret 
     } // end of method ExpressionTokenizer::PeekChar
 
-    // method line 2176
+    // method line 1984
     .method private hidebysig 
            instance default void SkipWhitespace ()  cil managed 
     {
-        // Method begins at RVA 0x264b8
+        // Method begins at RVA 0x26bd4
 	// Code size 47 (0x2f)
 	.maxstack 2
 	.locals init (
@@ -83470,11 +77856,11 @@
   {
     .field  private  int32 _charIndex
 
-    // method line 2177
+    // method line 1985
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (int32 charIndex)  cil managed 
     {
-        // Method begins at RVA 0x264f3
+        // Method begins at RVA 0x26c0f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -83484,11 +77870,11 @@
 	IL_0008:  ret 
     } // end of method Position::.ctor
 
-    // method line 2178
+    // method line 1986
     .method public hidebysig specialname 
            instance default int32 get_CharIndex ()  cil managed 
     {
-        // Method begins at RVA 0x26500
+        // Method begins at RVA 0x26c1c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -83549,11 +77935,11 @@
     .field  public initonly  char ch
     .field  public initonly  valuetype NAnt.Core.ExpressionTokenizer/TokenType tokenType
 
-    // method line 2179
+    // method line 1987
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (char ch, valuetype NAnt.Core.ExpressionTokenizer/TokenType tokenType)  cil managed 
     {
-        // Method begins at RVA 0x2651b
+        // Method begins at RVA 0x26c37
 	// Code size 16 (0x10)
 	.maxstack 8
 	IL_0000:  nop 
@@ -83573,7857 +77959,14656 @@
 
 .namespace NAnt.Core
 {
-  .class public auto ansi beforefieldinit ExpressionEvaluator
-  	extends NAnt.Core.ExpressionEvalBase
+  .class public auto ansi serializable beforefieldinit PropertyDictionary
+  	extends [mscorlib]System.Collections.DictionaryBase
   {
-    .custom instance void class NAnt.Core.Attributes.FunctionSetAttribute::'.ctor'(string, string) =  (
-		01 00 08 70 72 6F 70 65 72 74 79 04 4E 41 6E 74   // ...property.NAnt
-		00 00                                           ) // ..
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-    .field  private  class NAnt.Core.PropertyDictionary _properties
-    .field  private  class [mscorlib]System.Collections.Hashtable _state
-    .field  private  class [mscorlib]System.Collections.Stack _visiting
+    .field  private  class [System]System.Collections.Specialized.StringCollection _readOnlyProperties
+    .field  private  class [System]System.Collections.Specialized.StringCollection _dynamicProperties
+    .field  private initonly  class NAnt.Core.Project _project
+    .field assembly static literal  string Visiting = "VISITING"
+    .field assembly static literal  string Visited = "VISITED"
+    .field  private static  class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> '<>f__switch$map0'
+    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-    // method line 2180
+
+    // method line 1988
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties, class [mscorlib]System.Collections.Hashtable state, class [mscorlib]System.Collections.Stack visiting)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
     {
-        // Method begins at RVA 0x29da6
-	// Code size 31 (0x1f)
+        // Method begins at RVA 0x26c48
+	// Code size 37 (0x25)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class NAnt.Core.ExpressionEvalBase::'.ctor'(class NAnt.Core.Project)
-	IL_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.2 
-	IL_000a:  stfld class NAnt.Core.PropertyDictionary NAnt.Core.ExpressionEvaluator::_properties
-	IL_000f:  ldarg.0 
-	IL_0010:  ldarg.3 
-	IL_0011:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.ExpressionEvaluator::_state
+	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0006:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_readOnlyProperties
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0011:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_dynamicProperties
 	IL_0016:  ldarg.0 
-	IL_0017:  ldarg.s 4
-	IL_0019:  stfld class [mscorlib]System.Collections.Stack NAnt.Core.ExpressionEvaluator::_visiting
-	IL_001e:  ret 
-    } // end of method ExpressionEvaluator::.ctor
-
-    // method line 2181
-    .method family virtual hidebysig 
-           instance default object EvaluateProperty (string propertyName)  cil managed 
-    {
-        // Method begins at RVA 0x29dc8
-	// Code size 16 (0x10)
-	.maxstack 2
-	.locals init (
-		object	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance string class NAnt.Core.ExpressionEvaluator::GetPropertyValue(string)
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method ExpressionEvaluator::EvaluateProperty
-
-    // method line 2182
-    .method family virtual hidebysig 
-           instance default object EvaluateFunction (class [mscorlib]System.Reflection.MethodInfo methodInfo, object[] args)  cil managed 
-    {
-        // Method begins at RVA 0x29de4
-	// Code size 184 (0xb8)
-	.maxstack 5
-	.locals init (
-		object	V_0,
-		class [mscorlib]System.Reflection.ConstructorInfo	V_1,
-		object	V_2,
-		class [mscorlib]System.Reflection.TargetInvocationException	V_3)
-	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  callvirt instance bool class [mscorlib]System.Reflection.MethodBase::get_IsStatic()
-	  IL_0008:  brfalse IL_001c
-
-	  IL_000d:  nop 
-	  IL_000e:  ldarg.1 
-	  IL_000f:  ldnull 
-	  IL_0010:  ldarg.2 
-	  IL_0011:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
-	  IL_0016:  stloc.0 
-	  IL_0017:  leave IL_00b6
-
-	  IL_001c:  ldarg.1 
-	  IL_001d:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	  IL_0022:  ldtoken NAnt.Core.ExpressionEvaluator
-	  IL_0027:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_002c:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	  IL_0031:  brfalse IL_0045
-
-	  IL_0036:  nop 
-	  IL_0037:  ldarg.1 
-	  IL_0038:  ldarg.0 
-	  IL_0039:  ldarg.2 
-	  IL_003a:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
-	  IL_003f:  stloc.0 
-	  IL_0040:  leave IL_00b6
-
-	  IL_0045:  nop 
-	  IL_0046:  ldarg.1 
-	  IL_0047:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	  IL_004c:  ldc.i4.2 
-	  IL_004d:  newarr [mscorlib]System.Type
-	  IL_0052:  dup 
-	  IL_0053:  ldc.i4.0 
-	  IL_0054:  ldtoken NAnt.Core.Project
-	  IL_0059:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_005e:  stelem.ref 
-	  IL_005f:  dup 
-	  IL_0060:  ldc.i4.1 
-	  IL_0061:  ldtoken NAnt.Core.PropertyDictionary
-	  IL_0066:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_006b:  stelem.ref 
-	  IL_006c:  callvirt instance class [mscorlib]System.Reflection.ConstructorInfo class [mscorlib]System.Type::GetConstructor(class [mscorlib]System.Type[])
-	  IL_0071:  stloc.1 
-	  IL_0072:  ldloc.1 
-	  IL_0073:  ldc.i4.2 
-	  IL_0074:  newarr [mscorlib]System.Object
-	  IL_0079:  dup 
-	  IL_007a:  ldc.i4.0 
-	  IL_007b:  ldarg.0 
-	  IL_007c:  call instance class NAnt.Core.Project class NAnt.Core.ExpressionEvalBase::get_Project()
-	  IL_0081:  stelem.ref 
-	  IL_0082:  dup 
-	  IL_0083:  ldc.i4.1 
-	  IL_0084:  ldarg.0 
-	  IL_0085:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.ExpressionEvaluator::_properties
-	  IL_008a:  stelem.ref 
-	  IL_008b:  callvirt instance object class [mscorlib]System.Reflection.ConstructorInfo::Invoke(object[])
-	  IL_0090:  stloc.2 
-	  IL_0091:  ldarg.1 
-	  IL_0092:  ldloc.2 
-	  IL_0093:  ldarg.2 
-	  IL_0094:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
-	  IL_0099:  stloc.0 
-	  IL_009a:  leave IL_00b6
-
-	} // end .try 0
-	catch class [mscorlib]System.Reflection.TargetInvocationException { // 0
-	  IL_009f:  stloc.3 
-	  IL_00a0:  nop 
-	  IL_00a1:  ldloc.3 
-	  IL_00a2:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
-	  IL_00a7:  brfalse IL_00b4
-
-	  IL_00ac:  nop 
-	  IL_00ad:  ldloc.3 
-	  IL_00ae:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
-	  IL_00b3:  throw 
-	  IL_00b4:  rethrow 
-	} // end handler 0
-	IL_00b6:  ldloc.0 
-	IL_00b7:  ret 
-    } // end of method ExpressionEvaluator::EvaluateFunction
+	IL_0017:  call instance void class [mscorlib]System.Collections.DictionaryBase::'.ctor'()
+	IL_001c:  nop 
+	IL_001d:  ldarg.0 
+	IL_001e:  ldarg.1 
+	IL_001f:  stfld class NAnt.Core.Project NAnt.Core.PropertyDictionary::_project
+	IL_0024:  ret 
+    } // end of method PropertyDictionary::.ctor
 
-    // method line 2183
-    .method public hidebysig 
-           instance default string GetPropertyValue (string propertyName)  cil managed 
+    // method line 1989
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_Item (string name)  cil managed 
     {
-        .custom instance void class NAnt.Core.Attributes.FunctionAttribute::'.ctor'(string) =  (01 00 09 67 65 74 2D 76 61 6C 75 65 00 00 ) // ...get-value..
-
-        // Method begins at RVA 0x29eb8
-	// Code size 271 (0x10f)
-	.maxstack 5
+        // Method begins at RVA 0x26c70
+	// Code size 67 (0x43)
+	.maxstack 3
 	.locals init (
 		string	V_0,
-		string	V_1,
-		class NAnt.Core.Location	V_2,
-		string	V_3,
-		string	V_4)
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.ExpressionEvaluator::_properties
+	IL_0002:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
 	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsDynamicProperty(string)
-	IL_000d:  brfalse IL_00d3
-
-	IL_0012:  nop 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IDictionary::get_Item(object)
+	IL_000d:  castclass [mscorlib]System.String
+	IL_0012:  stloc.0 
 	IL_0013:  ldarg.0 
-	IL_0014:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.ExpressionEvaluator::_state
-	IL_0019:  ldarg.1 
-	IL_001a:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_001f:  castclass [mscorlib]System.String
-	IL_0024:  stloc.0 
-	IL_0025:  ldloc.0 
-	IL_0026:  ldstr "VISITING"
-	IL_002b:  call bool string::op_Equality(string, string)
-	IL_0030:  brfalse IL_0043
-
-	IL_0035:  nop 
-	IL_0036:  ldarg.1 
-	IL_0037:  ldarg.0 
-	IL_0038:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.ExpressionEvaluator::_visiting
-	IL_003d:  call class NAnt.Core.BuildException class NAnt.Core.PropertyDictionary::CreateCircularException(string, class [mscorlib]System.Collections.Stack)
-	IL_0042:  throw 
-	IL_0043:  ldarg.0 
-	IL_0044:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.ExpressionEvaluator::_visiting
-	IL_0049:  ldarg.1 
-	IL_004a:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
-	IL_004f:  ldarg.0 
-	IL_0050:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.ExpressionEvaluator::_state
-	IL_0055:  ldarg.1 
-	IL_0056:  ldstr "VISITING"
-	IL_005b:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0060:  ldarg.0 
-	IL_0061:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.ExpressionEvaluator::_properties
-	IL_0066:  ldarg.1 
-	IL_0067:  callvirt instance string class NAnt.Core.PropertyDictionary::GetPropertyValue(string)
-	IL_006c:  stloc.1 
-	IL_006d:  ldloc.1 
-	IL_006e:  brtrue IL_008f
-
-	IL_0073:  nop 
-	IL_0074:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0079:  ldstr "NA1053"
-	IL_007e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0083:  ldarg.1 
-	IL_0084:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0089:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_008e:  throw 
-	IL_008f:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_0094:  stloc.2 
-	IL_0095:  ldarg.0 
-	IL_0096:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.ExpressionEvaluator::_properties
-	IL_009b:  ldloc.1 
-	IL_009c:  ldloc.2 
-	IL_009d:  ldarg.0 
-	IL_009e:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.ExpressionEvaluator::_state
-	IL_00a3:  ldarg.0 
-	IL_00a4:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.ExpressionEvaluator::_visiting
-	IL_00a9:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Stack)
-	IL_00ae:  stloc.1 
-	IL_00af:  ldarg.0 
-	IL_00b0:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.ExpressionEvaluator::_visiting
-	IL_00b5:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
-	IL_00ba:  pop 
-	IL_00bb:  ldarg.0 
-	IL_00bc:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.ExpressionEvaluator::_state
-	IL_00c1:  ldarg.1 
-	IL_00c2:  ldstr "VISITED"
-	IL_00c7:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_00cc:  ldloc.1 
-	IL_00cd:  stloc.3 
-	IL_00ce:  br IL_010d
-
-	IL_00d3:  nop 
-	IL_00d4:  ldarg.0 
-	IL_00d5:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.ExpressionEvaluator::_properties
-	IL_00da:  ldarg.1 
-	IL_00db:  callvirt instance string class NAnt.Core.PropertyDictionary::GetPropertyValue(string)
-	IL_00e0:  stloc.s 4
-	IL_00e2:  ldloc.s 4
-	IL_00e4:  brtrue IL_0105
-
-	IL_00e9:  nop 
-	IL_00ea:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00ef:  ldstr "NA1053"
-	IL_00f4:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00f9:  ldarg.1 
-	IL_00fa:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00ff:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_0104:  throw 
-	IL_0105:  ldloc.s 4
-	IL_0107:  stloc.3 
-	IL_0108:  br IL_010d
+	IL_0014:  ldarg.1 
+	IL_0015:  call instance void class NAnt.Core.PropertyDictionary::CheckDeprecation(string)
+	IL_001a:  ldarg.0 
+	IL_001b:  ldarg.1 
+	IL_001c:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsDynamicProperty(string)
+	IL_0021:  brfalse IL_0039
 
-	IL_010d:  ldloc.3 
-	IL_010e:  ret 
-    } // end of method ExpressionEvaluator::GetPropertyValue
+	IL_0026:  nop 
+	IL_0027:  ldarg.0 
+	IL_0028:  ldloc.0 
+	IL_0029:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_002e:  call instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
+	IL_0033:  stloc.1 
+	IL_0034:  br IL_0041
 
-  } // end of class NAnt.Core.ExpressionEvaluator
-}
+	IL_0039:  nop 
+	IL_003a:  ldloc.0 
+	IL_003b:  stloc.1 
+	IL_003c:  br IL_0041
 
-.namespace NAnt.Core
-{
-  .class public auto ansi abstract beforefieldinit ExpressionEvalBase
-  	extends [mscorlib]System.Object
-  {
-    .field  private  valuetype NAnt.Core.ExpressionEvalBase/EvalMode _evalMode
-    .field  private  class NAnt.Core.ExpressionTokenizer _tokenizer
-    .field  private initonly  class NAnt.Core.Project _project
+	IL_0041:  ldloc.1 
+	IL_0042:  ret 
+    } // end of method PropertyDictionary::get_Item
 
-    // method line 2184
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
+    // method line 1990
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Item (string name, string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2652c
-	// Code size 39 (0x27)
+        // Method begins at RVA 0x26cbf
+	// Code size 15 (0xf)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void object::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.1 
-	IL_000f:  brtrue IL_001f
-
-	IL_0014:  ldstr "project"
-	IL_0019:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_001e:  throw 
-	IL_001f:  ldarg.0 
-	IL_0020:  ldarg.1 
-	IL_0021:  stfld class NAnt.Core.Project NAnt.Core.ExpressionEvalBase::_project
-	IL_0026:  ret 
-    } // end of method ExpressionEvalBase::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
+	IL_000e:  ret 
+    } // end of method PropertyDictionary::set_Item
 
-    // method line 2185
+    // method line 1991
     .method public hidebysig specialname 
            instance default class NAnt.Core.Project get_Project ()  cil managed 
     {
-        // Method begins at RVA 0x26554
+        // Method begins at RVA 0x26cd0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class NAnt.Core.Project	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.ExpressionEvalBase::_project
+	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.PropertyDictionary::_project
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ExpressionEvalBase::get_Project
+    } // end of method PropertyDictionary::get_Project
 
-    // method line 2186
-    .method public hidebysig 
-           instance default object Evaluate (class NAnt.Core.ExpressionTokenizer tokenizer)  cil managed 
+    // method line 1992
+    .method family virtual hidebysig 
+           instance default void OnClear ()  cil managed 
     {
-        // Method begins at RVA 0x26570
-	// Code size 29 (0x1d)
-	.maxstack 2
-	.locals init (
-		object	V_0)
+        // Method begins at RVA 0x26ceb
+	// Code size 24 (0x18)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_readOnlyProperties
+	IL_0007:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_dynamicProperties
+	IL_0012:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
+	IL_0017:  ret 
+    } // end of method PropertyDictionary::OnClear
+
+    // method line 1993
+    .method family virtual hidebysig 
+           instance default void OnSet (object key, object oldValue, object newValue)  cil managed 
+    {
+        // Method begins at RVA 0x26d04
+	// Code size 63 (0x3f)
+	.maxstack 4
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  castclass [mscorlib]System.String
+	IL_0007:  stloc.0 
 	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  stfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_000f:  ldarg.0 
-	IL_0010:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
-	IL_0015:  stloc.0 
-	IL_0016:  br IL_001b
+	IL_0009:  ldloc.0 
+	IL_000a:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsReadOnlyProperty(string)
+	IL_000f:  brfalse IL_0035
 
-	IL_001b:  ldloc.0 
-	IL_001c:  ret 
-    } // end of method ExpressionEvalBase::Evaluate
+	IL_0014:  nop 
+	IL_0015:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001a:  ldstr "NA1068"
+	IL_001f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0024:  ldloc.0 
+	IL_0025:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002a:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_002f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0034:  throw 
+	IL_0035:  ldarg.0 
+	IL_0036:  ldarg.1 
+	IL_0037:  ldarg.2 
+	IL_0038:  ldarg.3 
+	IL_0039:  call instance void class [mscorlib]System.Collections.DictionaryBase::OnSet(object, object, object)
+	IL_003e:  ret 
+    } // end of method PropertyDictionary::OnSet
 
-    // method line 2187
-    .method public hidebysig 
-           instance default object Evaluate (string s)  cil managed 
+    // method line 1994
+    .method family virtual hidebysig 
+           instance default void OnInsert (object key, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x2659c
-	// Code size 88 (0x58)
+        // Method begins at RVA 0x26d50
+	// Code size 54 (0x36)
 	.maxstack 3
 	.locals init (
-		object	V_0,
-		object	V_1)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.ExpressionTokenizer::'.ctor'()
-	IL_0007:  stfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_000c:  ldarg.0 
-	IL_000d:  ldc.i4.0 
-	IL_000e:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	IL_0013:  ldarg.0 
-	IL_0014:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0019:  ldarg.1 
-	IL_001a:  callvirt instance void class NAnt.Core.ExpressionTokenizer::InitTokenizer(string)
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
-	IL_0025:  stloc.0 
-	IL_0026:  ldarg.0 
-	IL_0027:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_002c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0031:  ldc.i4.1 
-	IL_0032:  beq IL_004f
+	IL_0001:  ldarg.1 
+	IL_0002:  castclass [mscorlib]System.String
+	IL_0007:  stloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  call instance bool class NAnt.Core.PropertyDictionary::Contains(string)
+	IL_000f:  brfalse IL_0035
 
-	IL_0037:  nop 
-	IL_0038:  ldarg.0 
-	IL_0039:  ldstr "Unexpected token at the end of expression"
-	IL_003e:  ldarg.0 
-	IL_003f:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0044:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_0049:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_004e:  throw 
-	IL_004f:  ldloc.0 
-	IL_0050:  stloc.1 
-	IL_0051:  br IL_0056
+	IL_0014:  nop 
+	IL_0015:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001a:  ldstr "NA1065"
+	IL_001f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0024:  ldloc.0 
+	IL_0025:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002a:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_002f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0034:  throw 
+	IL_0035:  ret 
+    } // end of method PropertyDictionary::OnInsert
 
-	IL_0056:  ldloc.1 
-	IL_0057:  ret 
-    } // end of method ExpressionEvalBase::Evaluate
+    // method line 1995
+    .method family virtual hidebysig 
+           instance default void OnRemove (object key, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x26d94
+	// Code size 46 (0x2e)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  isinst [mscorlib]System.String
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  brfalse IL_002d
 
-    // method line 2188
-    .method public hidebysig 
-           instance default void CheckSyntax (string s)  cil managed 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_readOnlyProperties
+	IL_0014:  ldloc.0 
+	IL_0015:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	IL_001a:  brfalse IL_002d
+
+	IL_001f:  nop 
+	IL_0020:  ldarg.0 
+	IL_0021:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_readOnlyProperties
+	IL_0026:  ldloc.0 
+	IL_0027:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Remove(string)
+	IL_002c:  nop 
+	IL_002d:  ret 
+    } // end of method PropertyDictionary::OnRemove
+
+    // method line 1996
+    .method family virtual hidebysig 
+           instance default void OnValidate (object key, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x26600
-	// Code size 80 (0x50)
+        // Method begins at RVA 0x26dd0
+	// Code size 62 (0x3e)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  isinst [mscorlib]System.String
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  brtrue IL_001f
+
+	IL_000e:  nop 
+	IL_000f:  ldstr "Property name must be a string."
+	IL_0014:  ldstr "key"
+	IL_0019:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string, string)
+	IL_001e:  throw 
+	IL_001f:  ldloc.0 
+	IL_0020:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_0025:  call void class NAnt.Core.PropertyDictionary::ValidatePropertyName(string, class NAnt.Core.Location)
+	IL_002a:  ldarg.2 
+	IL_002b:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_0030:  call void class NAnt.Core.PropertyDictionary::ValidatePropertyValue(object, class NAnt.Core.Location)
+	IL_0035:  ldarg.0 
+	IL_0036:  ldarg.1 
+	IL_0037:  ldarg.2 
+	IL_0038:  call instance void class [mscorlib]System.Collections.DictionaryBase::OnValidate(object, object)
+	IL_003d:  ret 
+    } // end of method PropertyDictionary::OnValidate
+
+    // method line 1997
+    .method public virtual hidebysig newslot 
+           instance default void AddReadOnly (string name, string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x26e1a
+	// Code size 42 (0x2a)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsReadOnlyProperty(string)
+	IL_0008:  brtrue IL_0029
+
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
+	IL_0014:  ldarg.1 
+	IL_0015:  ldarg.2 
+	IL_0016:  callvirt instance void class [mscorlib]System.Collections.IDictionary::Add(object, object)
+	IL_001b:  ldarg.0 
+	IL_001c:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_readOnlyProperties
+	IL_0021:  ldarg.1 
+	IL_0022:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0027:  pop 
+	IL_0028:  nop 
+	IL_0029:  ret 
+    } // end of method PropertyDictionary::AddReadOnly
+
+    // method line 1998
+    .method public virtual hidebysig newslot 
+           instance default void MarkDynamic (string name)  cil managed 
+    {
+        // Method begins at RVA 0x26e48
+	// Code size 73 (0x49)
 	.maxstack 3
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.ExpressionTokenizer::'.ctor'()
-	IL_0007:  stfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_000c:  ldarg.0 
-	IL_000d:  ldc.i4.1 
-	IL_000e:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	IL_0013:  ldarg.0 
-	IL_0014:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0019:  ldarg.1 
-	IL_001a:  callvirt instance void class NAnt.Core.ExpressionTokenizer::InitTokenizer(string)
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
-	IL_0025:  pop 
-	IL_0026:  ldarg.0 
-	IL_0027:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_002c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0031:  ldc.i4.1 
-	IL_0032:  beq IL_004f
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsDynamicProperty(string)
+	IL_0008:  brtrue IL_0048
 
-	IL_0037:  nop 
-	IL_0038:  ldarg.0 
-	IL_0039:  ldstr "Unexpected token at the end of expression"
-	IL_003e:  ldarg.0 
-	IL_003f:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0044:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_0049:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_004e:  throw 
-	IL_004f:  ret 
-    } // end of method ExpressionEvalBase::CheckSyntax
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  call instance bool class NAnt.Core.PropertyDictionary::Contains(string)
+	IL_0015:  brtrue IL_003a
 
-    // method line 2189
-    .method private hidebysig 
-           instance default bool SyntaxCheckOnly ()  cil managed 
+	IL_001a:  nop 
+	IL_001b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0020:  ldstr "NA1067"
+	IL_0025:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_002a:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_002f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0034:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0039:  throw 
+	IL_003a:  ldarg.0 
+	IL_003b:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_dynamicProperties
+	IL_0040:  ldarg.1 
+	IL_0041:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0046:  pop 
+	IL_0047:  nop 
+	IL_0048:  ret 
+    } // end of method PropertyDictionary::MarkDynamic
+
+    // method line 1999
+    .method public virtual hidebysig newslot 
+           instance default void Add (string name, string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2665c
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x26e9d
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IDictionary::Add(object, object)
+	IL_000e:  ret 
+    } // end of method PropertyDictionary::Add
+
+    // method line 2000
+    .method public virtual hidebysig newslot 
+           instance default bool IsReadOnlyProperty (string name)  cil managed 
+    {
+        // Method begins at RVA 0x26eb0
+	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	IL_0007:  ldc.i4.1 
-	IL_0008:  ceq 
-	IL_000a:  stloc.0 
-	IL_000b:  br IL_0010
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_readOnlyProperties
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0010:  ldloc.0 
-	IL_0011:  ret 
-    } // end of method ExpressionEvalBase::SyntaxCheckOnly
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method PropertyDictionary::IsReadOnlyProperty
 
-    // method line 2190
-    .method private hidebysig 
-           instance default object ParseExpression ()  cil managed 
+    // method line 2001
+    .method public virtual hidebysig newslot 
+           instance default bool IsDynamicProperty (string name)  cil managed 
     {
-        // Method begins at RVA 0x2667c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x26ed4
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		object	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance object class NAnt.Core.ExpressionEvalBase::ParseBooleanOr()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_dynamicProperties
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ExpressionEvalBase::ParseExpression
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method PropertyDictionary::IsDynamicProperty
 
-    // method line 2191
-    .method private hidebysig 
-           instance default object ParseBooleanOr ()  cil managed 
+    // method line 2002
+    .method public virtual hidebysig newslot 
+           instance default void Inherit (class NAnt.Core.PropertyDictionary source, class [System]System.Collections.Specialized.StringCollection excludes)  cil managed 
     {
-        // Method begins at RVA 0x26698
-	// Code size 256 (0x100)
-	.maxstack 6
+        // Method begins at RVA 0x26ef8
+	// Code size 221 (0xdd)
+	.maxstack 3
 	.locals init (
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0,
-		object	V_1,
-		valuetype NAnt.Core.ExpressionEvalBase/EvalMode	V_2,
-		bool	V_3,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_4,
-		object	V_5,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_6,
-		bool	V_7,
-		object	V_8)
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_1,
+		string	V_2,
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0007:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_000c:  stloc.0 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance object class NAnt.Core.ExpressionEvalBase::ParseBooleanAnd()
-	IL_0013:  stloc.1 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	IL_001a:  stloc.2 
+	IL_0001:  nop 
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
+	IL_0008:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.IDictionary::GetEnumerator()
+	IL_000d:  stloc.1 
 	.try { // 0
-	  IL_001b:  nop 
-	  IL_001c:  br IL_00d6
+	  IL_000e:  br IL_00b8
 
-	  IL_0021:  nop 
-	  IL_0022:  ldc.i4.1 
-	  IL_0023:  stloc.3 
-	  IL_0024:  ldarg.0 
-	  IL_0025:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	  IL_002a:  brtrue IL_0068
+	  IL_0013:  ldloc.1 
+	  IL_0014:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0019:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_001e:  stloc.0 
+	  IL_001f:  nop 
+	  IL_0020:  ldloca.s 0
+	  IL_0022:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_0027:  castclass [mscorlib]System.String
+	  IL_002c:  stloc.2 
+	  IL_002d:  ldarg.2 
+	  IL_002e:  brfalse IL_0045
 
-	  IL_002f:  nop 
-	  IL_0030:  ldarg.0 
-	  IL_0031:  ldtoken [mscorlib]System.Boolean
-	  IL_0036:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_003b:  ldloc.1 
-	  IL_003c:  ldstr "the left hand side of the 'or' operator"
-	  IL_0041:  ldloc.0 
-	  IL_0042:  ldarg.0 
-	  IL_0043:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_0048:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	  IL_004d:  call instance object class NAnt.Core.ExpressionEvalBase::SafeConvert(class [mscorlib]System.Type, object, string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	  IL_0052:  unbox.any [mscorlib]System.Boolean
-	  IL_0057:  stloc.3 
-	  IL_0058:  ldloc.3 
-	  IL_0059:  brfalse IL_0067
+	  IL_0033:  ldarg.2 
+	  IL_0034:  ldloc.2 
+	  IL_0035:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	  IL_003a:  brfalse IL_0045
 
-	  IL_005e:  nop 
-	  IL_005f:  ldarg.0 
-	  IL_0060:  ldc.i4.1 
-	  IL_0061:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	  IL_0066:  nop 
-	  IL_0067:  nop 
-	  IL_0068:  ldarg.0 
-	  IL_0069:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_006e:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	  IL_0073:  ldarg.0 
-	  IL_0074:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_0079:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	  IL_007e:  stloc.s 4
-	  IL_0080:  ldarg.0 
-	  IL_0081:  call instance object class NAnt.Core.ExpressionEvalBase::ParseBooleanAnd()
-	  IL_0086:  stloc.s 5
-	  IL_0088:  ldarg.0 
-	  IL_0089:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_008e:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	  IL_0093:  stloc.s 6
-	  IL_0095:  ldarg.0 
-	  IL_0096:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	  IL_009b:  brtrue IL_00d5
+	  IL_003f:  nop 
+	  IL_0040:  leave IL_00b8
 
-	  IL_00a0:  nop 
-	  IL_00a1:  ldarg.0 
-	  IL_00a2:  ldtoken [mscorlib]System.Boolean
-	  IL_00a7:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_00ac:  ldloc.s 5
-	  IL_00ae:  ldstr "the right hand side of the 'or' operator"
-	  IL_00b3:  ldloc.s 4
-	  IL_00b5:  ldloc.s 6
-	  IL_00b7:  call instance object class NAnt.Core.ExpressionEvalBase::SafeConvert(class [mscorlib]System.Type, object, string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	  IL_00bc:  unbox.any [mscorlib]System.Boolean
-	  IL_00c1:  stloc.s 7
-	  IL_00c3:  ldloc.3 
-	  IL_00c4:  brtrue IL_00cd
+	  IL_0045:  ldarg.0 
+	  IL_0046:  ldloc.2 
+	  IL_0047:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsReadOnlyProperty(string)
+	  IL_004c:  brfalse IL_0057
 
-	  IL_00c9:  ldloc.s 7
-	  IL_00cb:  br.s IL_00ce
+	  IL_0051:  nop 
+	  IL_0052:  leave IL_00b8
 
-	  IL_00cd:  ldc.i4.1 
-	  IL_00ce:  box [mscorlib]System.Boolean
-	  IL_00d3:  stloc.1 
-	  IL_00d4:  nop 
-	  IL_00d5:  nop 
-	  IL_00d6:  ldarg.0 
-	  IL_00d7:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_00dc:  ldstr "or"
-	  IL_00e1:  callvirt instance bool class NAnt.Core.ExpressionTokenizer::IsKeyword(string)
-	  IL_00e6:  brtrue IL_0021
+	  IL_0057:  ldloc.2 
+	  IL_0058:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	  IL_005d:  call void class NAnt.Core.PropertyDictionary::ValidatePropertyName(string, class NAnt.Core.Location)
+	  IL_0062:  ldarg.0 
+	  IL_0063:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
+	  IL_0068:  ldloc.2 
+	  IL_0069:  ldloca.s 0
+	  IL_006b:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_0070:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
+	  IL_0075:  ldarg.1 
+	  IL_0076:  ldloc.2 
+	  IL_0077:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsReadOnlyProperty(string)
+	  IL_007c:  brfalse IL_0090
 
-	  IL_00eb:  ldloc.1 
-	  IL_00ec:  stloc.s 8
-	  IL_00ee:  leave IL_00fd
+	  IL_0081:  nop 
+	  IL_0082:  ldarg.0 
+	  IL_0083:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_readOnlyProperties
+	  IL_0088:  ldloc.2 
+	  IL_0089:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_008e:  pop 
+	  IL_008f:  nop 
+	  IL_0090:  ldarg.1 
+	  IL_0091:  ldloc.2 
+	  IL_0092:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsDynamicProperty(string)
+	  IL_0097:  brfalse IL_00b7
+
+	  IL_009c:  ldarg.0 
+	  IL_009d:  ldloc.2 
+	  IL_009e:  callvirt instance bool class NAnt.Core.PropertyDictionary::IsDynamicProperty(string)
+	  IL_00a3:  brtrue IL_00b7
+
+	  IL_00a8:  nop 
+	  IL_00a9:  ldarg.0 
+	  IL_00aa:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PropertyDictionary::_dynamicProperties
+	  IL_00af:  ldloc.2 
+	  IL_00b0:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_00b5:  pop 
+	  IL_00b6:  nop 
+	  IL_00b7:  nop 
+	  IL_00b8:  ldloc.1 
+	  IL_00b9:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00be:  brtrue IL_0013
+
+	  IL_00c3:  leave IL_00dc
 
 	} // end .try 0
 	finally  { // 0
-	  IL_00f3:  nop 
-	  IL_00f4:  ldarg.0 
-	  IL_00f5:  ldloc.2 
-	  IL_00f6:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	  IL_00fb:  nop 
-	  IL_00fc:  endfinally 
+	  IL_00c8:  ldloc.1 
+	  IL_00c9:  isinst [mscorlib]System.IDisposable
+	  IL_00ce:  dup 
+	  IL_00cf:  stloc.3 
+	  IL_00d0:  brfalse IL_00db
+
+	  IL_00d5:  ldloc.3 
+	  IL_00d6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00db:  endfinally 
 	} // end handler 0
-	IL_00fd:  ldloc.s 8
-	IL_00ff:  ret 
-    } // end of method ExpressionEvalBase::ParseBooleanOr
+	IL_00dc:  ret 
+    } // end of method PropertyDictionary::Inherit
 
-    // method line 2192
-    .method private hidebysig 
-           instance default object ParseBooleanAnd ()  cil managed 
+    // method line 2003
+    .method public hidebysig 
+           instance default string ExpandProperties (string input, class NAnt.Core.Location location)  cil managed 
     {
-        // Method begins at RVA 0x267b4
-	// Code size 256 (0x100)
-	.maxstack 6
+        // Method begins at RVA 0x26ff4
+	// Code size 31 (0x1f)
+	.maxstack 5
 	.locals init (
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0,
-		object	V_1,
-		valuetype NAnt.Core.ExpressionEvalBase/EvalMode	V_2,
-		bool	V_3,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_4,
-		object	V_5,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_6,
-		bool	V_7,
-		object	V_8)
+		class [mscorlib]System.Collections.Hashtable	V_0,
+		class [mscorlib]System.Collections.Stack	V_1,
+		string	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0007:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_000c:  stloc.0 
+	IL_0001:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
+	IL_000c:  stloc.1 
 	IL_000d:  ldarg.0 
-	IL_000e:  call instance object class NAnt.Core.ExpressionEvalBase::ParseRelationalExpression()
-	IL_0013:  stloc.1 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	IL_001a:  stloc.2 
-	.try { // 0
-	  IL_001b:  nop 
-	  IL_001c:  br IL_00d6
-
-	  IL_0021:  nop 
-	  IL_0022:  ldc.i4.1 
-	  IL_0023:  stloc.3 
-	  IL_0024:  ldarg.0 
-	  IL_0025:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	  IL_002a:  brtrue IL_0068
-
-	  IL_002f:  nop 
-	  IL_0030:  ldarg.0 
-	  IL_0031:  ldtoken [mscorlib]System.Boolean
-	  IL_0036:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_003b:  ldloc.1 
-	  IL_003c:  ldstr "the left hand side of the 'and' operator"
-	  IL_0041:  ldloc.0 
-	  IL_0042:  ldarg.0 
-	  IL_0043:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_0048:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	  IL_004d:  call instance object class NAnt.Core.ExpressionEvalBase::SafeConvert(class [mscorlib]System.Type, object, string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	  IL_0052:  unbox.any [mscorlib]System.Boolean
-	  IL_0057:  stloc.3 
-	  IL_0058:  ldloc.3 
-	  IL_0059:  brtrue IL_0067
+	IL_000e:  ldarg.1 
+	IL_000f:  ldarg.2 
+	IL_0010:  ldloc.0 
+	IL_0011:  ldloc.1 
+	IL_0012:  call instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Stack)
+	IL_0017:  stloc.2 
+	IL_0018:  br IL_001d
 
-	  IL_005e:  nop 
-	  IL_005f:  ldarg.0 
-	  IL_0060:  ldc.i4.1 
-	  IL_0061:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	  IL_0066:  nop 
-	  IL_0067:  nop 
-	  IL_0068:  ldarg.0 
-	  IL_0069:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_006e:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	  IL_0073:  ldarg.0 
-	  IL_0074:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_0079:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	  IL_007e:  stloc.s 4
-	  IL_0080:  ldarg.0 
-	  IL_0081:  call instance object class NAnt.Core.ExpressionEvalBase::ParseRelationalExpression()
-	  IL_0086:  stloc.s 5
-	  IL_0088:  ldarg.0 
-	  IL_0089:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_008e:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	  IL_0093:  stloc.s 6
-	  IL_0095:  ldarg.0 
-	  IL_0096:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	  IL_009b:  brtrue IL_00d5
+	IL_001d:  ldloc.2 
+	IL_001e:  ret 
+    } // end of method PropertyDictionary::ExpandProperties
 
-	  IL_00a0:  nop 
-	  IL_00a1:  ldarg.0 
-	  IL_00a2:  ldtoken [mscorlib]System.Boolean
-	  IL_00a7:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_00ac:  ldloc.s 5
-	  IL_00ae:  ldstr "the right hand side of the 'and' operator"
-	  IL_00b3:  ldloc.s 4
-	  IL_00b5:  ldloc.s 6
-	  IL_00b7:  call instance object class NAnt.Core.ExpressionEvalBase::SafeConvert(class [mscorlib]System.Type, object, string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	  IL_00bc:  unbox.any [mscorlib]System.Boolean
-	  IL_00c1:  stloc.s 7
-	  IL_00c3:  ldloc.3 
-	  IL_00c4:  brfalse IL_00cd
+    // method line 2004
+    .method public hidebysig 
+           instance default bool Contains (string name)  cil managed 
+    {
+        // Method begins at RVA 0x27020
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IDictionary::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	  IL_00c9:  ldloc.s 7
-	  IL_00cb:  br.s IL_00ce
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method PropertyDictionary::Contains
 
-	  IL_00cd:  ldc.i4.0 
-	  IL_00ce:  box [mscorlib]System.Boolean
-	  IL_00d3:  stloc.1 
-	  IL_00d4:  nop 
-	  IL_00d5:  nop 
-	  IL_00d6:  ldarg.0 
-	  IL_00d7:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_00dc:  ldstr "and"
-	  IL_00e1:  callvirt instance bool class NAnt.Core.ExpressionTokenizer::IsKeyword(string)
-	  IL_00e6:  brtrue IL_0021
+    // method line 2005
+    .method public hidebysig 
+           instance default void Remove (string name)  cil managed 
+    {
+        // Method begins at RVA 0x27041
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IDictionary::Remove(object)
+	IL_000d:  ret 
+    } // end of method PropertyDictionary::Remove
 
-	  IL_00eb:  ldloc.1 
-	  IL_00ec:  stloc.s 8
-	  IL_00ee:  leave IL_00fd
+    // method line 2006
+    .method assembly hidebysig 
+           instance default string GetPropertyValue (string propertyName)  cil managed 
+    {
+        // Method begins at RVA 0x27050
+	// Code size 33 (0x21)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.Core.PropertyDictionary::CheckDeprecation(string)
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance class [mscorlib]System.Collections.IDictionary class [mscorlib]System.Collections.DictionaryBase::get_Dictionary()
+	IL_000e:  ldarg.1 
+	IL_000f:  callvirt instance object class [mscorlib]System.Collections.IDictionary::get_Item(object)
+	IL_0014:  castclass [mscorlib]System.String
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_001f
 
-	} // end .try 0
-	finally  { // 0
-	  IL_00f3:  nop 
-	  IL_00f4:  ldarg.0 
-	  IL_00f5:  ldloc.2 
-	  IL_00f6:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	  IL_00fb:  nop 
-	  IL_00fc:  endfinally 
-	} // end handler 0
-	IL_00fd:  ldloc.s 8
-	IL_00ff:  ret 
-    } // end of method ExpressionEvalBase::ParseBooleanAnd
+	IL_001f:  ldloc.0 
+	IL_0020:  ret 
+    } // end of method PropertyDictionary::GetPropertyValue
 
-    // method line 2193
-    .method private hidebysig 
-           instance default object ParseRelationalExpression ()  cil managed 
+    // method line 2007
+    .method assembly hidebysig 
+           instance default string ExpandProperties (string input, class NAnt.Core.Location location, class [mscorlib]System.Collections.Hashtable state, class [mscorlib]System.Collections.Stack visiting)  cil managed 
     {
-        // Method begins at RVA 0x268d0
-	// Code size 5433 (0x1539)
-	.maxstack 6
+        // Method begins at RVA 0x27080
+	// Code size 20 (0x14)
+	.maxstack 5
 	.locals init (
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0,
-		object	V_1,
-		valuetype NAnt.Core.ExpressionTokenizer/TokenType	V_2,
-		object	V_3,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_4,
-		object	V_5,
-		int64	V_6,
-		float64	V_7,
-		float64	V_8,
-		int64	V_9,
-		float64	V_10,
-		float64	V_11)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0007:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  ldarg.3 
+	IL_0005:  ldarg.s 4
+	IL_0007:  call instance string class NAnt.Core.PropertyDictionary::EvaluateEmbeddedExpressions(string, class NAnt.Core.Location, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Stack)
 	IL_000c:  stloc.0 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance object class NAnt.Core.ExpressionEvalBase::ParseAddSubtract()
-	IL_0013:  stloc.1 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_001a:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_001f:  ldc.i4.5 
-	IL_0020:  beq IL_007c
-
-	IL_0025:  ldarg.0 
-	IL_0026:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_002b:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0030:  ldc.i4.6 
-	IL_0031:  beq IL_007c
+	IL_000d:  br IL_0012
 
-	IL_0036:  ldarg.0 
-	IL_0037:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_003c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0041:  ldc.i4.7 
-	IL_0042:  beq IL_007c
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PropertyDictionary::ExpandProperties
 
-	IL_0047:  ldarg.0 
-	IL_0048:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_004d:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0052:  ldc.i4.8 
-	IL_0053:  beq IL_007c
+    // method line 2008
+    .method private hidebysig 
+           instance default string EvaluateEmbeddedExpressions (string input, class NAnt.Core.Location location, class [mscorlib]System.Collections.Hashtable state, class [mscorlib]System.Collections.Stack visiting)  cil managed 
+    {
+        // Method begins at RVA 0x270a0
+	// Code size 611 (0x263)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Text.StringBuilder	V_1,
+		class NAnt.Core.ExpressionTokenizer	V_2,
+		class NAnt.Core.ExpressionEvaluator	V_3,
+		string	V_4,
+		valuetype NAnt.Core.ExpressionTokenizer/Position	V_5,
+		class NAnt.Core.ExpressionParseException	V_6,
+		class [mscorlib]System.Text.StringBuilder	V_7,
+		string	V_8,
+		string	V_9,
+		int32	V_10,
+		int32	V_11,
+		int32	V_12,
+		int32	V_13)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_000f
 
-	IL_0058:  ldarg.0 
-	IL_0059:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_005e:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0063:  ldc.i4.s 0x09
-	IL_0065:  beq IL_007c
+	IL_0007:  nop 
+	IL_0008:  ldnull 
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_0261
 
-	IL_006a:  ldarg.0 
-	IL_006b:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0070:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0075:  ldc.i4.s 0x0a
-	IL_0077:  bne.un IL_152e
+	IL_000f:  ldarg.1 
+	IL_0010:  ldc.i4.s 0x24
+	IL_0012:  callvirt instance int32 string::IndexOf(char)
+	IL_0017:  ldc.i4.0 
+	IL_0018:  bge IL_0025
 
-	IL_007c:  nop 
-	IL_007d:  ldarg.0 
-	IL_007e:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0083:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0088:  stloc.2 
-	IL_0089:  ldarg.0 
-	IL_008a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_008f:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_0094:  ldarg.0 
-	IL_0095:  call instance object class NAnt.Core.ExpressionEvalBase::ParseAddSubtract()
-	IL_009a:  stloc.3 
-	IL_009b:  ldarg.0 
-	IL_009c:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_00a1:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_00a6:  stloc.s 4
-	IL_00a8:  ldarg.0 
-	IL_00a9:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	IL_00ae:  brfalse IL_00bc
-
-	IL_00b3:  nop 
-	IL_00b4:  ldnull 
-	IL_00b5:  stloc.s 5
-	IL_00b7:  br IL_1536
-
-	IL_00bc:  ldloc.2 
-	IL_00bd:  ldc.i4.5 
-	IL_00be:  sub 
-	IL_00bf:  switch (
-	  IL_00e1,
-	  IL_046e,
-	  IL_0831,
-	  IL_0b5b,
-	  IL_0e85,
-	  IL_11d9)
-	IL_00dc:  br IL_152d
-
-	IL_00e1:  ldloc.1 
-	IL_00e2:  isinst [mscorlib]System.String
-	IL_00e7:  brfalse IL_010b
-
-	IL_00ec:  ldloc.3 
-	IL_00ed:  isinst [mscorlib]System.String
-	IL_00f2:  brfalse IL_010b
-
-	IL_00f7:  nop 
-	IL_00f8:  ldloc.1 
-	IL_00f9:  ldloc.3 
-	IL_00fa:  callvirt instance bool object::Equals(object)
-	IL_00ff:  box [mscorlib]System.Boolean
-	IL_0104:  stloc.s 5
-	IL_0106:  br IL_1536
-
-	IL_010b:  ldloc.1 
-	IL_010c:  isinst [mscorlib]System.Boolean
-	IL_0111:  brfalse IL_0135
-
-	IL_0116:  ldloc.3 
-	IL_0117:  isinst [mscorlib]System.Boolean
-	IL_011c:  brfalse IL_0135
-
-	IL_0121:  nop 
-	IL_0122:  ldloc.1 
-	IL_0123:  ldloc.3 
-	IL_0124:  callvirt instance bool object::Equals(object)
-	IL_0129:  box [mscorlib]System.Boolean
-	IL_012e:  stloc.s 5
-	IL_0130:  br IL_1536
+	IL_001d:  nop 
+	IL_001e:  ldarg.1 
+	IL_001f:  stloc.0 
+	IL_0020:  br IL_0261
 
-	IL_0135:  ldloc.1 
-	IL_0136:  isinst [mscorlib]System.Int32
-	IL_013b:  brfalse IL_015f
+	.try { // 0
+	  IL_0025:  nop 
+	  IL_0026:  ldarg.1 
+	  IL_0027:  callvirt instance int32 string::get_Length()
+	  IL_002c:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(int32)
+	  IL_0031:  stloc.1 
+	  IL_0032:  newobj instance void class NAnt.Core.ExpressionTokenizer::'.ctor'()
+	  IL_0037:  stloc.2 
+	  IL_0038:  ldarg.0 
+	  IL_0039:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	  IL_003e:  ldarg.0 
+	  IL_003f:  ldarg.3 
+	  IL_0040:  ldarg.s 4
+	  IL_0042:  newobj instance void class NAnt.Core.ExpressionEvaluator::'.ctor'(class NAnt.Core.Project, class NAnt.Core.PropertyDictionary, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Stack)
+	  IL_0047:  stloc.3 
+	  IL_0048:  ldloc.2 
+	  IL_0049:  ldc.i4.0 
+	  IL_004a:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_IgnoreWhitespace(bool)
+	  IL_004f:  ldloc.2 
+	  IL_0050:  ldc.i4.1 
+	  IL_0051:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_SingleCharacterMode(bool)
+	  IL_0056:  ldloc.2 
+	  IL_0057:  ldarg.1 
+	  IL_0058:  callvirt instance void class NAnt.Core.ExpressionTokenizer::InitTokenizer(string)
+	  IL_005d:  br IL_013f
 
-	IL_0140:  ldloc.3 
-	IL_0141:  isinst [mscorlib]System.Int32
-	IL_0146:  brfalse IL_015f
+	  IL_0062:  nop 
+	  IL_0063:  ldloc.2 
+	  IL_0064:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	  IL_0069:  ldc.i4.s 0x17
+	  IL_006b:  bne.un IL_0129
 
-	IL_014b:  nop 
-	IL_014c:  ldloc.1 
-	IL_014d:  ldloc.3 
-	IL_014e:  callvirt instance bool object::Equals(object)
-	IL_0153:  box [mscorlib]System.Boolean
-	IL_0158:  stloc.s 5
-	IL_015a:  br IL_1536
+	  IL_0070:  nop 
+	  IL_0071:  ldloc.2 
+	  IL_0072:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	  IL_0077:  ldloc.2 
+	  IL_0078:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	  IL_007d:  ldc.i4.s 0x12
+	  IL_007f:  bne.un IL_00f7
 
-	IL_015f:  ldloc.1 
-	IL_0160:  isinst [mscorlib]System.Int32
-	IL_0165:  brfalse IL_0198
+	  IL_0084:  nop 
+	  IL_0085:  ldloc.2 
+	  IL_0086:  ldc.i4.1 
+	  IL_0087:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_IgnoreWhitespace(bool)
+	  IL_008c:  ldloc.2 
+	  IL_008d:  ldc.i4.0 
+	  IL_008e:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_SingleCharacterMode(bool)
+	  IL_0093:  ldloc.2 
+	  IL_0094:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	  IL_0099:  ldloc.3 
+	  IL_009a:  ldloc.2 
+	  IL_009b:  callvirt instance object class NAnt.Core.ExpressionEvalBase::Evaluate(class NAnt.Core.ExpressionTokenizer)
+	  IL_00a0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_00a5:  call string class [mscorlib]System.Convert::ToString(object, class [mscorlib]System.IFormatProvider)
+	  IL_00aa:  stloc.s 4
+	  IL_00ac:  ldloc.1 
+	  IL_00ad:  ldloc.s 4
+	  IL_00af:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_00b4:  pop 
+	  IL_00b5:  ldloc.2 
+	  IL_00b6:  ldc.i4.0 
+	  IL_00b7:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_IgnoreWhitespace(bool)
+	  IL_00bc:  ldloc.2 
+	  IL_00bd:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	  IL_00c2:  ldc.i4.s 0x13
+	  IL_00c4:  beq IL_00e4
 
-	IL_016a:  ldloc.3 
-	IL_016b:  isinst [mscorlib]System.Int64
-	IL_0170:  brfalse IL_0198
+	  IL_00c9:  nop 
+	  IL_00ca:  ldstr "'}' expected"
+	  IL_00cf:  ldloc.2 
+	  IL_00d0:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
+	  IL_00d5:  stloc.s 5
+	  IL_00d7:  ldloca.s 5
+	  IL_00d9:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
+	  IL_00de:  newobj instance void class NAnt.Core.ExpressionParseException::'.ctor'(string, int32)
+	  IL_00e3:  throw 
+	  IL_00e4:  ldloc.2 
+	  IL_00e5:  ldc.i4.1 
+	  IL_00e6:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_SingleCharacterMode(bool)
+	  IL_00eb:  ldloc.2 
+	  IL_00ec:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	  IL_00f1:  nop 
+	  IL_00f2:  br IL_0123
 
-	IL_0175:  nop 
-	IL_0176:  ldloc.1 
-	IL_0177:  call int64 class [mscorlib]System.Convert::ToInt64(object)
-	IL_017c:  stloc.s 6
-	IL_017e:  ldloca.s 6
-	IL_0180:  ldloc.3 
-	IL_0181:  constrained. [mscorlib]System.Int64
-	IL_0187:  callvirt instance bool object::Equals(object)
-	IL_018c:  box [mscorlib]System.Boolean
-	IL_0191:  stloc.s 5
-	IL_0193:  br IL_1536
+	  IL_00f7:  nop 
+	  IL_00f8:  ldloc.1 
+	  IL_00f9:  ldc.i4.s 0x24
+	  IL_00fb:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	  IL_0100:  pop 
+	  IL_0101:  ldloc.2 
+	  IL_0102:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	  IL_0107:  ldc.i4.1 
+	  IL_0108:  beq IL_0122
 
-	IL_0198:  ldloc.1 
-	IL_0199:  isinst [mscorlib]System.Int32
-	IL_019e:  brfalse IL_01d1
+	  IL_010d:  nop 
+	  IL_010e:  ldloc.1 
+	  IL_010f:  ldloc.2 
+	  IL_0110:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
+	  IL_0115:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_011a:  pop 
+	  IL_011b:  ldloc.2 
+	  IL_011c:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	  IL_0121:  nop 
+	  IL_0122:  nop 
+	  IL_0123:  nop 
+	  IL_0124:  br IL_013e
 
-	IL_01a3:  ldloc.3 
-	IL_01a4:  isinst [mscorlib]System.Double
-	IL_01a9:  brfalse IL_01d1
+	  IL_0129:  nop 
+	  IL_012a:  ldloc.1 
+	  IL_012b:  ldloc.2 
+	  IL_012c:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
+	  IL_0131:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_0136:  pop 
+	  IL_0137:  ldloc.2 
+	  IL_0138:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
+	  IL_013d:  nop 
+	  IL_013e:  nop 
+	  IL_013f:  ldloc.2 
+	  IL_0140:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
+	  IL_0145:  ldc.i4.1 
+	  IL_0146:  bne.un IL_0062
 
-	IL_01ae:  nop 
-	IL_01af:  ldloc.1 
-	IL_01b0:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_01b5:  stloc.s 7
-	IL_01b7:  ldloca.s 7
-	IL_01b9:  ldloc.3 
-	IL_01ba:  constrained. [mscorlib]System.Double
-	IL_01c0:  callvirt instance bool object::Equals(object)
-	IL_01c5:  box [mscorlib]System.Boolean
-	IL_01ca:  stloc.s 5
-	IL_01cc:  br IL_1536
+	  IL_014b:  ldloc.1 
+	  IL_014c:  callvirt instance string object::ToString()
+	  IL_0151:  stloc.0 
+	  IL_0152:  leave IL_0261
 
-	IL_01d1:  ldloc.1 
-	IL_01d2:  isinst [mscorlib]System.Int64
-	IL_01d7:  brfalse IL_01fb
+	} // end .try 0
+	catch class NAnt.Core.ExpressionParseException { // 0
+	  IL_0157:  stloc.s 6
+	  IL_0159:  nop 
+	  IL_015a:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	  IL_015f:  stloc.s 7
+	  IL_0161:  ldarg.1 
+	  IL_0162:  stloc.s 8
+	  IL_0164:  ldloc.s 8
+	  IL_0166:  ldc.i4.s 0x0a
+	  IL_0168:  ldc.i4.s 0x20
+	  IL_016a:  callvirt instance string string::Replace(char, char)
+	  IL_016f:  stloc.s 8
+	  IL_0171:  ldloc.s 8
+	  IL_0173:  ldc.i4.s 0x0d
+	  IL_0175:  ldc.i4.s 0x20
+	  IL_0177:  callvirt instance string string::Replace(char, char)
+	  IL_017c:  stloc.s 8
+	  IL_017e:  ldloc.s 8
+	  IL_0180:  ldc.i4.s 0x09
+	  IL_0182:  ldc.i4.s 0x20
+	  IL_0184:  callvirt instance string string::Replace(char, char)
+	  IL_0189:  stloc.s 8
+	  IL_018b:  ldloc.s 7
+	  IL_018d:  ldloc.s 6
+	  IL_018f:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	  IL_0194:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_0199:  pop 
+	  IL_019a:  ldloc.s 7
+	  IL_019c:  call string class [mscorlib]System.Environment::get_NewLine()
+	  IL_01a1:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_01a6:  pop 
+	  IL_01a7:  ldstr "Expression: "
+	  IL_01ac:  stloc.s 9
+	  IL_01ae:  ldloc.s 7
+	  IL_01b0:  ldloc.s 9
+	  IL_01b2:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_01b7:  pop 
+	  IL_01b8:  ldloc.s 7
+	  IL_01ba:  ldloc.s 8
+	  IL_01bc:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_01c1:  pop 
+	  IL_01c2:  ldloc.s 6
+	  IL_01c4:  callvirt instance int32 class NAnt.Core.ExpressionParseException::get_StartPos()
+	  IL_01c9:  stloc.s 10
+	  IL_01cb:  ldloc.s 6
+	  IL_01cd:  callvirt instance int32 class NAnt.Core.ExpressionParseException::get_EndPos()
+	  IL_01d2:  stloc.s 11
+	  IL_01d4:  ldloc.s 10
+	  IL_01d6:  ldc.i4.m1 
+	  IL_01d7:  bne.un IL_01e4
 
-	IL_01dc:  ldloc.3 
-	IL_01dd:  isinst [mscorlib]System.Int64
-	IL_01e2:  brfalse IL_01fb
+	  IL_01dc:  ldloc.s 11
+	  IL_01de:  ldc.i4.m1 
+	  IL_01df:  beq IL_024c
 
-	IL_01e7:  nop 
-	IL_01e8:  ldloc.1 
-	IL_01e9:  ldloc.3 
-	IL_01ea:  callvirt instance bool object::Equals(object)
-	IL_01ef:  box [mscorlib]System.Boolean
-	IL_01f4:  stloc.s 5
-	IL_01f6:  br IL_1536
+	  IL_01e4:  nop 
+	  IL_01e5:  ldloc.s 7
+	  IL_01e7:  call string class [mscorlib]System.Environment::get_NewLine()
+	  IL_01ec:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_01f1:  pop 
+	  IL_01f2:  ldloc.s 11
+	  IL_01f4:  ldc.i4.m1 
+	  IL_01f5:  bne.un IL_0200
 
-	IL_01fb:  ldloc.1 
-	IL_01fc:  isinst [mscorlib]System.Int64
-	IL_0201:  brfalse IL_022f
+	  IL_01fa:  ldloc.s 10
+	  IL_01fc:  ldc.i4.1 
+	  IL_01fd:  add 
+	  IL_01fe:  stloc.s 11
+	  IL_0200:  ldc.i4.0 
+	  IL_0201:  stloc.s 12
+	  IL_0203:  br IL_0218
 
-	IL_0206:  ldloc.3 
-	IL_0207:  isinst [mscorlib]System.Int32
-	IL_020c:  brfalse IL_022f
+	  IL_0208:  ldloc.s 7
+	  IL_020a:  ldc.i4.s 0x20
+	  IL_020c:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	  IL_0211:  pop 
+	  IL_0212:  ldloc.s 12
+	  IL_0214:  ldc.i4.1 
+	  IL_0215:  add 
+	  IL_0216:  stloc.s 12
+	  IL_0218:  ldloc.s 12
+	  IL_021a:  ldloc.s 10
+	  IL_021c:  ldloc.s 9
+	  IL_021e:  callvirt instance int32 string::get_Length()
+	  IL_0223:  add 
+	  IL_0224:  blt IL_0208
 
-	IL_0211:  nop 
-	IL_0212:  ldloc.1 
-	IL_0213:  ldloc.3 
-	IL_0214:  call int64 class [mscorlib]System.Convert::ToInt64(object)
-	IL_0219:  box [mscorlib]System.Int64
-	IL_021e:  callvirt instance bool object::Equals(object)
-	IL_0223:  box [mscorlib]System.Boolean
-	IL_0228:  stloc.s 5
-	IL_022a:  br IL_1536
+	  IL_0229:  ldloc.s 10
+	  IL_022b:  stloc.s 13
+	  IL_022d:  br IL_0242
 
-	IL_022f:  ldloc.1 
-	IL_0230:  isinst [mscorlib]System.Int64
-	IL_0235:  brfalse IL_0268
+	  IL_0232:  ldloc.s 7
+	  IL_0234:  ldc.i4.s 0x5e
+	  IL_0236:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	  IL_023b:  pop 
+	  IL_023c:  ldloc.s 13
+	  IL_023e:  ldc.i4.1 
+	  IL_023f:  add 
+	  IL_0240:  stloc.s 13
+	  IL_0242:  ldloc.s 13
+	  IL_0244:  ldloc.s 11
+	  IL_0246:  blt IL_0232
 
-	IL_023a:  ldloc.3 
-	IL_023b:  isinst [mscorlib]System.Double
-	IL_0240:  brfalse IL_0268
+	  IL_024b:  nop 
+	  IL_024c:  ldloc.s 7
+	  IL_024e:  callvirt instance string object::ToString()
+	  IL_0253:  ldarg.2 
+	  IL_0254:  ldloc.s 6
+	  IL_0256:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
+	  IL_025b:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0260:  throw 
+	} // end handler 0
+	IL_0261:  ldloc.0 
+	IL_0262:  ret 
+    } // end of method PropertyDictionary::EvaluateEmbeddedExpressions
 
-	IL_0245:  nop 
-	IL_0246:  ldloc.1 
-	IL_0247:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_024c:  stloc.s 8
-	IL_024e:  ldloca.s 8
-	IL_0250:  ldloc.3 
-	IL_0251:  constrained. [mscorlib]System.Double
-	IL_0257:  callvirt instance bool object::Equals(object)
-	IL_025c:  box [mscorlib]System.Boolean
-	IL_0261:  stloc.s 5
-	IL_0263:  br IL_1536
+    // method line 2009
+    .method private hidebysig 
+           instance default void CheckDeprecation (string name)  cil managed 
+    {
+        // Method begins at RVA 0x2732c
+	// Code size 856 (0x358)
+	.maxstack 7
+	.locals init (
+		class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>	V_0,
+		int32	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0352
 
-	IL_0268:  ldloc.1 
-	IL_0269:  isinst [mscorlib]System.Double
-	IL_026e:  brfalse IL_0292
+	IL_0007:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.Core.PropertyDictionary::'<>f__switch$map0'
+	IL_000c:  brtrue IL_00d9
 
-	IL_0273:  ldloc.3 
-	IL_0274:  isinst [mscorlib]System.Double
-	IL_0279:  brfalse IL_0292
+	IL_0011:  ldc.i4.s 0x0f
+	IL_0013:  newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::'.ctor'(int32)
+	IL_0018:  stloc.0 
+	IL_0019:  ldloc.0 
+	IL_001a:  ldstr "nant.filename"
+	IL_001f:  ldc.i4.0 
+	IL_0020:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0025:  ldloc.0 
+	IL_0026:  ldstr "nant.version"
+	IL_002b:  ldc.i4.1 
+	IL_002c:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0031:  ldloc.0 
+	IL_0032:  ldstr "nant.location"
+	IL_0037:  ldc.i4.2 
+	IL_0038:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_003d:  ldloc.0 
+	IL_003e:  ldstr "nant.project.basedir"
+	IL_0043:  ldc.i4.3 
+	IL_0044:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0049:  ldloc.0 
+	IL_004a:  ldstr "nant.project.name"
+	IL_004f:  ldc.i4.4 
+	IL_0050:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0055:  ldloc.0 
+	IL_0056:  ldstr "nant.project.buildfile"
+	IL_005b:  ldc.i4.5 
+	IL_005c:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0061:  ldloc.0 
+	IL_0062:  ldstr "nant.project.default"
+	IL_0067:  ldc.i4.6 
+	IL_0068:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_006d:  ldloc.0 
+	IL_006e:  ldstr "nant.platform.name"
+	IL_0073:  ldc.i4.7 
+	IL_0074:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0079:  ldloc.0 
+	IL_007a:  ldstr "nant.platform.win32"
+	IL_007f:  ldc.i4.8 
+	IL_0080:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0085:  ldloc.0 
+	IL_0086:  ldstr "nant.platform.unix"
+	IL_008b:  ldc.i4.s 0x09
+	IL_008d:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0092:  ldloc.0 
+	IL_0093:  ldstr "nant.settings.currentframework.description"
+	IL_0098:  ldc.i4.s 0x0a
+	IL_009a:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_009f:  ldloc.0 
+	IL_00a0:  ldstr "nant.settings.currentframework.frameworkdirectory"
+	IL_00a5:  ldc.i4.s 0x0b
+	IL_00a7:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_00ac:  ldloc.0 
+	IL_00ad:  ldstr "nant.settings.currentframework.sdkdirectory"
+	IL_00b2:  ldc.i4.s 0x0c
+	IL_00b4:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_00b9:  ldloc.0 
+	IL_00ba:  ldstr "nant.settings.currentframework.frameworkassemblydirectory"
+	IL_00bf:  ldc.i4.s 0x0d
+	IL_00c1:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_00c6:  ldloc.0 
+	IL_00c7:  ldstr "nant.settings.currentframework.runtimeengine"
+	IL_00cc:  ldc.i4.s 0x0e
+	IL_00ce:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_00d3:  ldloc.0 
+	IL_00d4:  stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.Core.PropertyDictionary::'<>f__switch$map0'
+	IL_00d9:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.Core.PropertyDictionary::'<>f__switch$map0'
+	IL_00de:  ldarg.1 
+	IL_00df:  ldloca.s 1
+	IL_00e1:  callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::TryGetValue(!0, [out] !1&)
+	IL_00e6:  brfalse IL_0352
 
-	IL_027e:  nop 
-	IL_027f:  ldloc.1 
-	IL_0280:  ldloc.3 
-	IL_0281:  callvirt instance bool object::Equals(object)
-	IL_0286:  box [mscorlib]System.Boolean
-	IL_028b:  stloc.s 5
-	IL_028d:  br IL_1536
+	IL_00eb:  ldloc.1 
+	IL_00ec:  switch (
+	  IL_0136,
+	  IL_015a,
+	  IL_017e,
+	  IL_01a2,
+	  IL_01c6,
+	  IL_01ea,
+	  IL_020e,
+	  IL_0232,
+	  IL_0256,
+	  IL_027a,
+	  IL_029e,
+	  IL_02c2,
+	  IL_02e6,
+	  IL_030a,
+	  IL_032e,
+	  IL_0352)
+	IL_0131:  br IL_0352
 
-	IL_0292:  ldloc.1 
-	IL_0293:  isinst [mscorlib]System.Double
-	IL_0298:  brfalse IL_02c6
+	IL_0136:  ldarg.0 
+	IL_0137:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_013c:  ldc.i4 4000
+	IL_0141:  ldstr "Built-in property '{0}' is deprecated. Use assembly::get-location(nant::get-assembly()) expression instead."
+	IL_0146:  ldc.i4.1 
+	IL_0147:  newarr [mscorlib]System.Object
+	IL_014c:  dup 
+	IL_014d:  ldc.i4.0 
+	IL_014e:  ldarg.1 
+	IL_014f:  stelem.ref 
+	IL_0150:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0155:  br IL_0357
 
-	IL_029d:  ldloc.3 
-	IL_029e:  isinst [mscorlib]System.Int32
-	IL_02a3:  brfalse IL_02c6
+	IL_015a:  ldarg.0 
+	IL_015b:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_0160:  ldc.i4 4000
+	IL_0165:  ldstr "Built-in property '{0}' is deprecated. Use the assemblyname::get-version(assembly::get-name(nant::get-assembly)) expression instead."
+	IL_016a:  ldc.i4.1 
+	IL_016b:  newarr [mscorlib]System.Object
+	IL_0170:  dup 
+	IL_0171:  ldc.i4.0 
+	IL_0172:  ldarg.1 
+	IL_0173:  stelem.ref 
+	IL_0174:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0179:  br IL_0357
 
-	IL_02a8:  nop 
-	IL_02a9:  ldloc.1 
-	IL_02aa:  ldloc.3 
-	IL_02ab:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_02b0:  box [mscorlib]System.Double
-	IL_02b5:  callvirt instance bool object::Equals(object)
-	IL_02ba:  box [mscorlib]System.Boolean
-	IL_02bf:  stloc.s 5
-	IL_02c1:  br IL_1536
+	IL_017e:  ldarg.0 
+	IL_017f:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_0184:  ldc.i4 4000
+	IL_0189:  ldstr "Built-in property '{0}' is deprecated. Use the nant::get-base-directory() function instead."
+	IL_018e:  ldc.i4.1 
+	IL_018f:  newarr [mscorlib]System.Object
+	IL_0194:  dup 
+	IL_0195:  ldc.i4.0 
+	IL_0196:  ldarg.1 
+	IL_0197:  stelem.ref 
+	IL_0198:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_019d:  br IL_0357
 
-	IL_02c6:  ldloc.1 
-	IL_02c7:  isinst [mscorlib]System.Double
-	IL_02cc:  brfalse IL_02fa
+	IL_01a2:  ldarg.0 
+	IL_01a3:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_01a8:  ldc.i4 4000
+	IL_01ad:  ldstr "Built-in property '{0}' is deprecated. Use the project::get-base-directory() function instead."
+	IL_01b2:  ldc.i4.1 
+	IL_01b3:  newarr [mscorlib]System.Object
+	IL_01b8:  dup 
+	IL_01b9:  ldc.i4.0 
+	IL_01ba:  ldarg.1 
+	IL_01bb:  stelem.ref 
+	IL_01bc:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_01c1:  br IL_0357
 
-	IL_02d1:  ldloc.3 
-	IL_02d2:  isinst [mscorlib]System.Int64
-	IL_02d7:  brfalse IL_02fa
+	IL_01c6:  ldarg.0 
+	IL_01c7:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_01cc:  ldc.i4 4000
+	IL_01d1:  ldstr "Built-in property '{0}' is deprecated. Use the project::get-name() function instead."
+	IL_01d6:  ldc.i4.1 
+	IL_01d7:  newarr [mscorlib]System.Object
+	IL_01dc:  dup 
+	IL_01dd:  ldc.i4.0 
+	IL_01de:  ldarg.1 
+	IL_01df:  stelem.ref 
+	IL_01e0:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_01e5:  br IL_0357
 
-	IL_02dc:  nop 
-	IL_02dd:  ldloc.1 
-	IL_02de:  ldloc.3 
-	IL_02df:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_02e4:  box [mscorlib]System.Double
-	IL_02e9:  callvirt instance bool object::Equals(object)
-	IL_02ee:  box [mscorlib]System.Boolean
-	IL_02f3:  stloc.s 5
-	IL_02f5:  br IL_1536
+	IL_01ea:  ldarg.0 
+	IL_01eb:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_01f0:  ldc.i4 4000
+	IL_01f5:  ldstr "Built-in property '{0}' is deprecated. Use the project::get-buildfile-uri() function instead."
+	IL_01fa:  ldc.i4.1 
+	IL_01fb:  newarr [mscorlib]System.Object
+	IL_0200:  dup 
+	IL_0201:  ldc.i4.0 
+	IL_0202:  ldarg.1 
+	IL_0203:  stelem.ref 
+	IL_0204:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0209:  br IL_0357
 
-	IL_02fa:  ldloc.1 
-	IL_02fb:  isinst [mscorlib]System.DateTime
-	IL_0300:  brfalse IL_0324
+	IL_020e:  ldarg.0 
+	IL_020f:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_0214:  ldc.i4 4000
+	IL_0219:  ldstr "Built-in property '{0}' is deprecated. Use the project::get-default-target() function instead."
+	IL_021e:  ldc.i4.1 
+	IL_021f:  newarr [mscorlib]System.Object
+	IL_0224:  dup 
+	IL_0225:  ldc.i4.0 
+	IL_0226:  ldarg.1 
+	IL_0227:  stelem.ref 
+	IL_0228:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_022d:  br IL_0357
 
-	IL_0305:  ldloc.3 
-	IL_0306:  isinst [mscorlib]System.DateTime
-	IL_030b:  brfalse IL_0324
+	IL_0232:  ldarg.0 
+	IL_0233:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_0238:  ldc.i4 4000
+	IL_023d:  ldstr "Built-in property '{0}' is deprecated. Use the platform::get-name() function instead."
+	IL_0242:  ldc.i4.1 
+	IL_0243:  newarr [mscorlib]System.Object
+	IL_0248:  dup 
+	IL_0249:  ldc.i4.0 
+	IL_024a:  ldarg.1 
+	IL_024b:  stelem.ref 
+	IL_024c:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0251:  br IL_0357
 
-	IL_0310:  nop 
-	IL_0311:  ldloc.1 
-	IL_0312:  ldloc.3 
-	IL_0313:  callvirt instance bool object::Equals(object)
-	IL_0318:  box [mscorlib]System.Boolean
-	IL_031d:  stloc.s 5
-	IL_031f:  br IL_1536
+	IL_0256:  ldarg.0 
+	IL_0257:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_025c:  ldc.i4 4000
+	IL_0261:  ldstr "Built-in property '{0}' is deprecated. Use the platform::is-win32() function instead."
+	IL_0266:  ldc.i4.1 
+	IL_0267:  newarr [mscorlib]System.Object
+	IL_026c:  dup 
+	IL_026d:  ldc.i4.0 
+	IL_026e:  ldarg.1 
+	IL_026f:  stelem.ref 
+	IL_0270:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0275:  br IL_0357
 
-	IL_0324:  ldloc.1 
-	IL_0325:  isinst [mscorlib]System.TimeSpan
-	IL_032a:  brfalse IL_034e
+	IL_027a:  ldarg.0 
+	IL_027b:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_0280:  ldc.i4 4000
+	IL_0285:  ldstr "Built-in property '{0}' is deprecated. Use the platform::is-unix() function instead."
+	IL_028a:  ldc.i4.1 
+	IL_028b:  newarr [mscorlib]System.Object
+	IL_0290:  dup 
+	IL_0291:  ldc.i4.0 
+	IL_0292:  ldarg.1 
+	IL_0293:  stelem.ref 
+	IL_0294:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0299:  br IL_0357
 
-	IL_032f:  ldloc.3 
-	IL_0330:  isinst [mscorlib]System.TimeSpan
-	IL_0335:  brfalse IL_034e
+	IL_029e:  ldarg.0 
+	IL_029f:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_02a4:  ldc.i4 4000
+	IL_02a9:  ldstr "Built-in property '{0}' is deprecated. Use the framework::get-description(framework::get-target-framework()) function instead."
+	IL_02ae:  ldc.i4.1 
+	IL_02af:  newarr [mscorlib]System.Object
+	IL_02b4:  dup 
+	IL_02b5:  ldc.i4.0 
+	IL_02b6:  ldarg.1 
+	IL_02b7:  stelem.ref 
+	IL_02b8:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_02bd:  br IL_0357
 
-	IL_033a:  nop 
-	IL_033b:  ldloc.1 
-	IL_033c:  ldloc.3 
-	IL_033d:  callvirt instance bool object::Equals(object)
-	IL_0342:  box [mscorlib]System.Boolean
-	IL_0347:  stloc.s 5
-	IL_0349:  br IL_1536
+	IL_02c2:  ldarg.0 
+	IL_02c3:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_02c8:  ldc.i4 4000
+	IL_02cd:  ldstr "Built-in property '{0}' is deprecated. Use the framework::get-framework-directory(framework::get-target-framework()) function instead."
+	IL_02d2:  ldc.i4.1 
+	IL_02d3:  newarr [mscorlib]System.Object
+	IL_02d8:  dup 
+	IL_02d9:  ldc.i4.0 
+	IL_02da:  ldarg.1 
+	IL_02db:  stelem.ref 
+	IL_02dc:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_02e1:  br IL_0357
 
-	IL_034e:  ldloc.1 
-	IL_034f:  isinst [mscorlib]System.Version
-	IL_0354:  brfalse IL_0378
+	IL_02e6:  ldarg.0 
+	IL_02e7:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_02ec:  ldc.i4 4000
+	IL_02f1:  ldstr "Built-in property '{0}' is deprecated. Use the framework::get-sdk-directory(framework::get-target-framework()) function instead."
+	IL_02f6:  ldc.i4.1 
+	IL_02f7:  newarr [mscorlib]System.Object
+	IL_02fc:  dup 
+	IL_02fd:  ldc.i4.0 
+	IL_02fe:  ldarg.1 
+	IL_02ff:  stelem.ref 
+	IL_0300:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0305:  br IL_0357
 
-	IL_0359:  ldloc.3 
-	IL_035a:  isinst [mscorlib]System.Version
-	IL_035f:  brfalse IL_0378
+	IL_030a:  ldarg.0 
+	IL_030b:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_0310:  ldc.i4 4000
+	IL_0315:  ldstr "Built-in property '{0}' is deprecated. Use the framework::get-assembly-directory(framework::get-target-framework()) function instead."
+	IL_031a:  ldc.i4.1 
+	IL_031b:  newarr [mscorlib]System.Object
+	IL_0320:  dup 
+	IL_0321:  ldc.i4.0 
+	IL_0322:  ldarg.1 
+	IL_0323:  stelem.ref 
+	IL_0324:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_0329:  br IL_0357
 
-	IL_0364:  nop 
-	IL_0365:  ldloc.1 
-	IL_0366:  ldloc.3 
-	IL_0367:  callvirt instance bool object::Equals(object)
-	IL_036c:  box [mscorlib]System.Boolean
-	IL_0371:  stloc.s 5
-	IL_0373:  br IL_1536
+	IL_032e:  ldarg.0 
+	IL_032f:  call instance class NAnt.Core.Project class NAnt.Core.PropertyDictionary::get_Project()
+	IL_0334:  ldc.i4 4000
+	IL_0339:  ldstr "Built-in property '{0}' is deprecated. Use the framework::get-runtime-engine(framework::get-target-framework()) function instead."
+	IL_033e:  ldc.i4.1 
+	IL_033f:  newarr [mscorlib]System.Object
+	IL_0344:  dup 
+	IL_0345:  ldc.i4.0 
+	IL_0346:  ldarg.1 
+	IL_0347:  stelem.ref 
+	IL_0348:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_034d:  br IL_0357
 
-	IL_0378:  ldloc.1 
-	IL_0379:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_037e:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
-	IL_0383:  brfalse IL_03d8
+	IL_0352:  br IL_0357
 
-	IL_0388:  nop 
-	IL_0389:  ldloc.3 
-	IL_038a:  isinst [mscorlib]System.String
-	IL_038f:  brfalse IL_03b9
+	IL_0357:  ret 
+    } // end of method PropertyDictionary::CheckDeprecation
 
-	IL_0394:  nop 
-	IL_0395:  ldloc.1 
-	IL_0396:  ldloc.1 
-	IL_0397:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_039c:  ldloc.3 
-	IL_039d:  castclass [mscorlib]System.String
-	IL_03a2:  ldc.i4.0 
-	IL_03a3:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	IL_03a8:  callvirt instance bool object::Equals(object)
-	IL_03ad:  box [mscorlib]System.Boolean
-	IL_03b2:  stloc.s 5
-	IL_03b4:  br IL_1536
+    // method line 2010
+    .method private static hidebysig 
+           default void ValidatePropertyName (string propertyName, class NAnt.Core.Location location)  cil managed 
+    {
+        // Method begins at RVA 0x27690
+	// Code size 108 (0x6c)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "^[_A-Za-z0-9][_A-Za-z0-9\\-.]*$"
+	IL_0007:  call bool class [System]System.Text.RegularExpressions.Regex::IsMatch(string, string)
+	IL_000c:  brtrue IL_002e
 
-	IL_03b9:  nop 
-	IL_03ba:  ldloc.1 
-	IL_03bb:  ldloc.1 
-	IL_03bc:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_03c1:  ldloc.3 
-	IL_03c2:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, object)
-	IL_03c7:  callvirt instance bool object::Equals(object)
-	IL_03cc:  box [mscorlib]System.Boolean
-	IL_03d1:  stloc.s 5
-	IL_03d3:  br IL_1536
+	IL_0011:  nop 
+	IL_0012:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0017:  ldstr "NA1064"
+	IL_001c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0021:  ldarg.0 
+	IL_0022:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0027:  ldarg.1 
+	IL_0028:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_002d:  throw 
+	IL_002e:  ldarg.0 
+	IL_002f:  ldstr "-"
+	IL_0034:  callvirt instance bool string::EndsWith(string)
+	IL_0039:  brtrue IL_004e
 
-	IL_03d8:  ldloc.3 
-	IL_03d9:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_03de:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
-	IL_03e3:  brfalse IL_0438
+	IL_003e:  ldarg.0 
+	IL_003f:  ldstr "."
+	IL_0044:  callvirt instance bool string::EndsWith(string)
+	IL_0049:  brfalse IL_006b
 
-	IL_03e8:  nop 
-	IL_03e9:  ldloc.1 
-	IL_03ea:  isinst [mscorlib]System.String
-	IL_03ef:  brfalse IL_0419
+	IL_004e:  nop 
+	IL_004f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0054:  ldstr "NA1064"
+	IL_0059:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_005e:  ldarg.0 
+	IL_005f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0064:  ldarg.1 
+	IL_0065:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_006a:  throw 
+	IL_006b:  ret 
+    } // end of method PropertyDictionary::ValidatePropertyName
 
-	IL_03f4:  nop 
-	IL_03f5:  ldloc.3 
-	IL_03f6:  ldloc.3 
-	IL_03f7:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_03fc:  ldloc.1 
-	IL_03fd:  castclass [mscorlib]System.String
-	IL_0402:  ldc.i4.0 
-	IL_0403:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	IL_0408:  callvirt instance bool object::Equals(object)
-	IL_040d:  box [mscorlib]System.Boolean
-	IL_0412:  stloc.s 5
-	IL_0414:  br IL_1536
+    // method line 2011
+    .method private static hidebysig 
+           default void ValidatePropertyValue (object 'value', class NAnt.Core.Location location)  cil managed 
+    {
+        // Method begins at RVA 0x27708
+	// Code size 70 (0x46)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  brfalse IL_003f
 
-	IL_0419:  nop 
-	IL_041a:  ldloc.3 
-	IL_041b:  ldloc.3 
-	IL_041c:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0421:  ldloc.1 
-	IL_0422:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, object)
-	IL_0427:  callvirt instance bool object::Equals(object)
-	IL_042c:  box [mscorlib]System.Boolean
-	IL_0431:  stloc.s 5
-	IL_0433:  br IL_1536
+	IL_0007:  nop 
+	IL_0008:  ldarg.0 
+	IL_0009:  isinst [mscorlib]System.String
+	IL_000e:  brtrue IL_0039
 
-	IL_0438:  ldarg.0 
-	IL_0439:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_043e:  ldstr "NA1038"
-	IL_0443:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0448:  ldarg.0 
-	IL_0449:  ldloc.1 
-	IL_044a:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_044f:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_0454:  ldarg.0 
-	IL_0455:  ldloc.3 
-	IL_0456:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_045b:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_0460:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0465:  ldloc.0 
-	IL_0466:  ldloc.s 4
-	IL_0468:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_046d:  throw 
-	IL_046e:  ldloc.1 
-	IL_046f:  isinst [mscorlib]System.String
-	IL_0474:  brfalse IL_049b
+	IL_0013:  nop 
+	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0019:  ldstr "NA1066"
+	IL_001e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0023:  ldarg.0 
+	IL_0024:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0029:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_002e:  ldstr "value"
+	IL_0033:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string, string)
+	IL_0038:  throw 
+	IL_0039:  nop 
+	IL_003a:  br IL_0045
 
-	IL_0479:  ldloc.3 
-	IL_047a:  isinst [mscorlib]System.String
-	IL_047f:  brfalse IL_049b
+	IL_003f:  nop 
+	IL_0040:  br IL_0045
 
-	IL_0484:  nop 
-	IL_0485:  ldloc.1 
-	IL_0486:  ldloc.3 
-	IL_0487:  callvirt instance bool object::Equals(object)
-	IL_048c:  ldc.i4.0 
-	IL_048d:  ceq 
-	IL_048f:  box [mscorlib]System.Boolean
-	IL_0494:  stloc.s 5
-	IL_0496:  br IL_1536
+	IL_0045:  ret 
+    } // end of method PropertyDictionary::ValidatePropertyValue
 
-	IL_049b:  ldloc.1 
-	IL_049c:  isinst [mscorlib]System.Boolean
-	IL_04a1:  brfalse IL_04c8
+    // method line 2012
+    .method assembly static hidebysig 
+           default class NAnt.Core.BuildException CreateCircularException (string end, class [mscorlib]System.Collections.Stack stack)  cil managed 
+    {
+        // Method begins at RVA 0x2775c
+	// Code size 85 (0x55)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		string	V_1,
+		class NAnt.Core.BuildException	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldstr "Circular property reference: "
+	IL_0006:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
+	IL_000b:  stloc.0 
+	IL_000c:  ldloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0013:  pop 
+	IL_0014:  nop 
+	IL_0015:  ldarg.1 
+	IL_0016:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
+	IL_001b:  castclass [mscorlib]System.String
+	IL_0020:  stloc.1 
+	IL_0021:  ldloc.0 
+	IL_0022:  ldstr " <- "
+	IL_0027:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_002c:  pop 
+	IL_002d:  ldloc.0 
+	IL_002e:  ldloc.1 
+	IL_002f:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0034:  pop 
+	IL_0035:  nop 
+	IL_0036:  ldloc.1 
+	IL_0037:  ldarg.0 
+	IL_0038:  callvirt instance bool string::Equals(string)
+	IL_003d:  brfalse IL_0014
 
-	IL_04a6:  ldloc.3 
-	IL_04a7:  isinst [mscorlib]System.Boolean
-	IL_04ac:  brfalse IL_04c8
+	IL_0042:  ldloc.0 
+	IL_0043:  callvirt instance string object::ToString()
+	IL_0048:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_004d:  stloc.2 
+	IL_004e:  br IL_0053
 
-	IL_04b1:  nop 
-	IL_04b2:  ldloc.1 
-	IL_04b3:  ldloc.3 
-	IL_04b4:  callvirt instance bool object::Equals(object)
-	IL_04b9:  ldc.i4.0 
-	IL_04ba:  ceq 
-	IL_04bc:  box [mscorlib]System.Boolean
-	IL_04c1:  stloc.s 5
-	IL_04c3:  br IL_1536
+	IL_0053:  ldloc.2 
+	IL_0054:  ret 
+    } // end of method PropertyDictionary::CreateCircularException
 
-	IL_04c8:  ldloc.1 
-	IL_04c9:  isinst [mscorlib]System.Int32
-	IL_04ce:  brfalse IL_04f5
+	.property instance string Item (string)
+	{
+		.get instance default string NAnt.Core.PropertyDictionary::get_Item (string name) 
+		.set instance default void NAnt.Core.PropertyDictionary::set_Item (string name, string 'value') 
+	}
+	.property instance class NAnt.Core.Project Project ()
+	{
+		.get instance default class NAnt.Core.Project NAnt.Core.PropertyDictionary::get_Project () 
+	}
+  } // end of class NAnt.Core.PropertyDictionary
+}
 
-	IL_04d3:  ldloc.3 
-	IL_04d4:  isinst [mscorlib]System.Int32
-	IL_04d9:  brfalse IL_04f5
+.namespace NAnt.Core
+{
+  .class public auto ansi beforefieldinit ConfigurationSection
+  	extends [mscorlib]System.Object
+  	implements [System]System.Configuration.IConfigurationSectionHandler  {
 
-	IL_04de:  nop 
-	IL_04df:  ldloc.1 
-	IL_04e0:  ldloc.3 
-	IL_04e1:  callvirt instance bool object::Equals(object)
-	IL_04e6:  ldc.i4.0 
-	IL_04e7:  ceq 
-	IL_04e9:  box [mscorlib]System.Boolean
-	IL_04ee:  stloc.s 5
-	IL_04f0:  br IL_1536
+    // method line 2013
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x277bd
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ConfigurationSection::.ctor
 
-	IL_04f5:  ldloc.1 
-	IL_04f6:  isinst [mscorlib]System.Int32
-	IL_04fb:  brfalse IL_0531
+    // method line 2014
+    .method public final virtual hidebysig newslot 
+           instance default object Create (object parent, object configContext, class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    {
+        // Method begins at RVA 0x277c8
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.3 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_0500:  ldloc.3 
-	IL_0501:  isinst [mscorlib]System.Int64
-	IL_0506:  brfalse IL_0531
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ConfigurationSection::Create
 
-	IL_050b:  nop 
-	IL_050c:  ldloc.1 
-	IL_050d:  call int64 class [mscorlib]System.Convert::ToInt64(object)
-	IL_0512:  stloc.s 9
-	IL_0514:  ldloca.s 9
-	IL_0516:  ldloc.3 
-	IL_0517:  constrained. [mscorlib]System.Int64
-	IL_051d:  callvirt instance bool object::Equals(object)
-	IL_0522:  ldc.i4.0 
-	IL_0523:  ceq 
-	IL_0525:  box [mscorlib]System.Boolean
-	IL_052a:  stloc.s 5
-	IL_052c:  br IL_1536
+  } // end of class NAnt.Core.ConfigurationSection
+}
 
-	IL_0531:  ldloc.1 
-	IL_0532:  isinst [mscorlib]System.Int32
-	IL_0537:  brfalse IL_056d
+.namespace NAnt.Core
+{
+  .class public auto ansi beforefieldinit TaskBuilder
+  	extends NAnt.Core.Extensibility.ExtensionBuilder
+  {
+    .field  private initonly  string _className
+    .field  private  string _taskName
 
-	IL_053c:  ldloc.3 
-	IL_053d:  isinst [mscorlib]System.Double
-	IL_0542:  brfalse IL_056d
+    // method line 2015
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Reflection.Assembly 'assembly', string className)  cil managed 
+    {
+        // Method begins at RVA 0x277de
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call class NAnt.Core.Extensibility.ExtensionAssembly class NAnt.Core.Extensibility.ExtensionAssembly::Create(class [mscorlib]System.Reflection.Assembly)
+	IL_0007:  ldarg.2 
+	IL_0008:  call instance void class NAnt.Core.TaskBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, string)
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method TaskBuilder::.ctor
 
-	IL_0547:  nop 
-	IL_0548:  ldloc.1 
-	IL_0549:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_054e:  stloc.s 10
-	IL_0550:  ldloca.s 10
-	IL_0552:  ldloc.3 
-	IL_0553:  constrained. [mscorlib]System.Double
-	IL_0559:  callvirt instance bool object::Equals(object)
-	IL_055e:  ldc.i4.0 
-	IL_055f:  ceq 
-	IL_0561:  box [mscorlib]System.Boolean
-	IL_0566:  stloc.s 5
-	IL_0568:  br IL_1536
+    // method line 2016
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, string className)  cil managed 
+    {
+        // Method begins at RVA 0x277ee
+	// Code size 16 (0x10)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class NAnt.Core.Extensibility.ExtensionBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly)
+	IL_0007:  nop 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.2 
+	IL_000a:  stfld string NAnt.Core.TaskBuilder::_className
+	IL_000f:  ret 
+    } // end of method TaskBuilder::.ctor
 
-	IL_056d:  ldloc.1 
-	IL_056e:  isinst [mscorlib]System.Int64
-	IL_0573:  brfalse IL_059a
+    // method line 2017
+    .method public hidebysig specialname 
+           instance default string get_ClassName ()  cil managed 
+    {
+        // Method begins at RVA 0x27800
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.TaskBuilder::_className
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0578:  ldloc.3 
-	IL_0579:  isinst [mscorlib]System.Int64
-	IL_057e:  brfalse IL_059a
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TaskBuilder::get_ClassName
 
-	IL_0583:  nop 
-	IL_0584:  ldloc.1 
-	IL_0585:  ldloc.3 
-	IL_0586:  callvirt instance bool object::Equals(object)
-	IL_058b:  ldc.i4.0 
-	IL_058c:  ceq 
-	IL_058e:  box [mscorlib]System.Boolean
-	IL_0593:  stloc.s 5
-	IL_0595:  br IL_1536
+    // method line 2018
+    .method public hidebysig specialname 
+           instance default string get_TaskName ()  cil managed 
+    {
+        // Method begins at RVA 0x2781c
+	// Code size 78 (0x4e)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Attributes.TaskNameAttribute	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.TaskBuilder::_taskName
+	IL_0007:  brtrue IL_0040
 
-	IL_059a:  ldloc.1 
-	IL_059b:  isinst [mscorlib]System.Int64
-	IL_05a0:  brfalse IL_05d1
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance string class NAnt.Core.TaskBuilder::get_ClassName()
+	IL_0019:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string)
+	IL_001e:  ldtoken NAnt.Core.Attributes.TaskNameAttribute
+	IL_0023:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0028:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	IL_002d:  castclass NAnt.Core.Attributes.TaskNameAttribute
+	IL_0032:  stloc.0 
+	IL_0033:  ldarg.0 
+	IL_0034:  ldloc.0 
+	IL_0035:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
+	IL_003a:  stfld string NAnt.Core.TaskBuilder::_taskName
+	IL_003f:  nop 
+	IL_0040:  ldarg.0 
+	IL_0041:  ldfld string NAnt.Core.TaskBuilder::_taskName
+	IL_0046:  stloc.1 
+	IL_0047:  br IL_004c
 
-	IL_05a5:  ldloc.3 
-	IL_05a6:  isinst [mscorlib]System.Int32
-	IL_05ab:  brfalse IL_05d1
+	IL_004c:  ldloc.1 
+	IL_004d:  ret 
+    } // end of method TaskBuilder::get_TaskName
 
-	IL_05b0:  nop 
-	IL_05b1:  ldloc.1 
-	IL_05b2:  ldloc.3 
-	IL_05b3:  call int64 class [mscorlib]System.Convert::ToInt64(object)
-	IL_05b8:  box [mscorlib]System.Int64
-	IL_05bd:  callvirt instance bool object::Equals(object)
-	IL_05c2:  ldc.i4.0 
-	IL_05c3:  ceq 
-	IL_05c5:  box [mscorlib]System.Boolean
-	IL_05ca:  stloc.s 5
-	IL_05cc:  br IL_1536
+    // method line 2019
+    .method public hidebysig 
+           instance default class NAnt.Core.Task CreateTask ()  cil managed 
+    {
+        // Method begins at RVA 0x27878
+        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
+	// Code size 70 (0x46)
+	.maxstack 8
+	.locals init (
+		class NAnt.Core.Task	V_0,
+		class NAnt.Core.Extensibility.IPluginConsumer	V_1,
+		class NAnt.Core.Task	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance string class NAnt.Core.TaskBuilder::get_ClassName()
+	IL_000d:  ldc.i4.1 
+	IL_000e:  ldc.i4.s 0x14
+	IL_0010:  ldnull 
+	IL_0011:  ldnull 
+	IL_0012:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0017:  ldnull 
+	IL_0018:  callvirt instance object class [mscorlib]System.Reflection.Assembly::CreateInstance(string, bool, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo, object[])
+	IL_001d:  castclass NAnt.Core.Task
+	IL_0022:  stloc.0 
+	IL_0023:  ldloc.0 
+	IL_0024:  isinst NAnt.Core.Extensibility.IPluginConsumer
+	IL_0029:  stloc.1 
+	IL_002a:  ldloc.1 
+	IL_002b:  brfalse IL_003d
 
-	IL_05d1:  ldloc.1 
-	IL_05d2:  isinst [mscorlib]System.Int64
-	IL_05d7:  brfalse IL_060d
+	IL_0030:  nop 
+	IL_0031:  call class NAnt.Core.Extensibility.PluginScanner class NAnt.Core.TypeFactory::get_PluginScanner()
+	IL_0036:  ldloc.1 
+	IL_0037:  callvirt instance void class NAnt.Core.Extensibility.PluginScanner::RegisterPlugins(class NAnt.Core.Extensibility.IPluginConsumer)
+	IL_003c:  nop 
+	IL_003d:  ldloc.0 
+	IL_003e:  stloc.2 
+	IL_003f:  br IL_0044
 
-	IL_05dc:  ldloc.3 
-	IL_05dd:  isinst [mscorlib]System.Double
-	IL_05e2:  brfalse IL_060d
+	IL_0044:  ldloc.2 
+	IL_0045:  ret 
+    } // end of method TaskBuilder::CreateTask
 
-	IL_05e7:  nop 
-	IL_05e8:  ldloc.1 
-	IL_05e9:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_05ee:  stloc.s 11
-	IL_05f0:  ldloca.s 11
-	IL_05f2:  ldloc.3 
-	IL_05f3:  constrained. [mscorlib]System.Double
-	IL_05f9:  callvirt instance bool object::Equals(object)
-	IL_05fe:  ldc.i4.0 
-	IL_05ff:  ceq 
-	IL_0601:  box [mscorlib]System.Boolean
-	IL_0606:  stloc.s 5
-	IL_0608:  br IL_1536
+	.property instance string ClassName ()
+	{
+		.get instance default string NAnt.Core.TaskBuilder::get_ClassName () 
+	}
+	.property instance string TaskName ()
+	{
+		.get instance default string NAnt.Core.TaskBuilder::get_TaskName () 
+	}
+  } // end of class NAnt.Core.TaskBuilder
+}
 
-	IL_060d:  ldloc.1 
-	IL_060e:  isinst [mscorlib]System.Double
-	IL_0613:  brfalse IL_063a
+.namespace NAnt.Core
+{
+  .class public auto ansi abstract serializable beforefieldinit Element
+  	extends [mscorlib]System.Object
+  {
+    .field  private  class NAnt.Core.Location _location
+    .field  private  class NAnt.Core.Project _project
+    .field  private notserialized  class [System.Xml]System.Xml.XmlNode _xmlNode
+    .field  private  object _parent
+    .field  private notserialized  class [System.Xml]System.Xml.XmlNamespaceManager _nsMgr
+    .field  private static initonly  class [log4net]log4net.ILog logger
 
-	IL_0618:  ldloc.3 
-	IL_0619:  isinst [mscorlib]System.Double
-	IL_061e:  brfalse IL_063a
+    // method line 2020
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x7401
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_0006:  stfld class NAnt.Core.Location NAnt.Core.Element::_location
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void object::'.ctor'()
+	IL_0011:  nop 
+	IL_0012:  ret 
+    } // end of method Element::.ctor
 
-	IL_0623:  nop 
-	IL_0624:  ldloc.1 
-	IL_0625:  ldloc.3 
-	IL_0626:  callvirt instance bool object::Equals(object)
-	IL_062b:  ldc.i4.0 
-	IL_062c:  ceq 
-	IL_062e:  box [mscorlib]System.Boolean
-	IL_0633:  stloc.s 5
-	IL_0635:  br IL_1536
+    // method line 2021
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Element e)  cil managed 
+    {
+        // Method begins at RVA 0x7415
+	// Code size 56 (0x38)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldfld class NAnt.Core.Location NAnt.Core.Element::_location
+	IL_000e:  stfld class NAnt.Core.Location NAnt.Core.Element::_location
+	IL_0013:  ldarg.0 
+	IL_0014:  ldarg.1 
+	IL_0015:  ldfld class NAnt.Core.Project NAnt.Core.Element::_project
+	IL_001a:  stfld class NAnt.Core.Project NAnt.Core.Element::_project
+	IL_001f:  ldarg.0 
+	IL_0020:  ldarg.1 
+	IL_0021:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
+	IL_0026:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
+	IL_002b:  ldarg.0 
+	IL_002c:  ldarg.1 
+	IL_002d:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element::_nsMgr
+	IL_0032:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element::_nsMgr
+	IL_0037:  ret 
+    } // end of method Element::.ctor
 
-	IL_063a:  ldloc.1 
-	IL_063b:  isinst [mscorlib]System.Double
-	IL_0640:  brfalse IL_0671
+    // method line 2022
+    .method public hidebysig specialname 
+           instance default object get_Parent ()  cil managed 
+    {
+        // Method begins at RVA 0x7450
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld object NAnt.Core.Element::_parent
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0645:  ldloc.3 
-	IL_0646:  isinst [mscorlib]System.Int32
-	IL_064b:  brfalse IL_0671
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Element::get_Parent
 
-	IL_0650:  nop 
-	IL_0651:  ldloc.1 
-	IL_0652:  ldloc.3 
-	IL_0653:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_0658:  box [mscorlib]System.Double
-	IL_065d:  callvirt instance bool object::Equals(object)
-	IL_0662:  ldc.i4.0 
-	IL_0663:  ceq 
-	IL_0665:  box [mscorlib]System.Boolean
-	IL_066a:  stloc.s 5
-	IL_066c:  br IL_1536
+    // method line 2023
+    .method public hidebysig specialname 
+           instance default void set_Parent (object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x746b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld object NAnt.Core.Element::_parent
+	IL_0008:  ret 
+    } // end of method Element::set_Parent
 
-	IL_0671:  ldloc.1 
-	IL_0672:  isinst [mscorlib]System.Double
-	IL_0677:  brfalse IL_06a8
+    // method line 2024
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x7478
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Type object::GetType()
+	IL_0007:  call string class NAnt.Core.Element::GetElementNameFromType(class [mscorlib]System.Type)
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_067c:  ldloc.3 
-	IL_067d:  isinst [mscorlib]System.Int64
-	IL_0682:  brfalse IL_06a8
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method Element::get_Name
 
-	IL_0687:  nop 
-	IL_0688:  ldloc.1 
-	IL_0689:  ldloc.3 
-	IL_068a:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_068f:  box [mscorlib]System.Double
-	IL_0694:  callvirt instance bool object::Equals(object)
-	IL_0699:  ldc.i4.0 
-	IL_069a:  ceq 
-	IL_069c:  box [mscorlib]System.Boolean
-	IL_06a1:  stloc.s 5
-	IL_06a3:  br IL_1536
+    // method line 2025
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x7498
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Project	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.Element::_project
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_06a8:  ldloc.1 
-	IL_06a9:  isinst [mscorlib]System.DateTime
-	IL_06ae:  brfalse IL_06d5
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Element::get_Project
 
-	IL_06b3:  ldloc.3 
-	IL_06b4:  isinst [mscorlib]System.DateTime
-	IL_06b9:  brfalse IL_06d5
+    // method line 2026
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Project (class NAnt.Core.Project 'value')  cil managed 
+    {
+        // Method begins at RVA 0x74b3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Project NAnt.Core.Element::_project
+	IL_0008:  ret 
+    } // end of method Element::set_Project
 
-	IL_06be:  nop 
-	IL_06bf:  ldloc.1 
-	IL_06c0:  ldloc.3 
-	IL_06c1:  callvirt instance bool object::Equals(object)
-	IL_06c6:  ldc.i4.0 
-	IL_06c7:  ceq 
-	IL_06c9:  box [mscorlib]System.Boolean
-	IL_06ce:  stloc.s 5
-	IL_06d0:  br IL_1536
+    // method line 2027
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.Core.PropertyDictionary get_Properties ()  cil managed 
+    {
+        // Method begins at RVA 0x74c0
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.PropertyDictionary	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_06d5:  ldloc.1 
-	IL_06d6:  isinst [mscorlib]System.TimeSpan
-	IL_06db:  brfalse IL_0702
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method Element::get_Properties
 
-	IL_06e0:  ldloc.3 
-	IL_06e1:  isinst [mscorlib]System.TimeSpan
-	IL_06e6:  brfalse IL_0702
+    // method line 2028
+    .method public hidebysig specialname 
+           instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
+    {
+        // Method begins at RVA 0x74e0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [System.Xml]System.Xml.XmlNamespaceManager	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element::_nsMgr
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_06eb:  nop 
-	IL_06ec:  ldloc.1 
-	IL_06ed:  ldloc.3 
-	IL_06ee:  callvirt instance bool object::Equals(object)
-	IL_06f3:  ldc.i4.0 
-	IL_06f4:  ceq 
-	IL_06f6:  box [mscorlib]System.Boolean
-	IL_06fb:  stloc.s 5
-	IL_06fd:  br IL_1536
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Element::get_NamespaceManager
 
-	IL_0702:  ldloc.1 
-	IL_0703:  isinst [mscorlib]System.Version
-	IL_0708:  brfalse IL_072f
+    // method line 2029
+    .method public hidebysig specialname 
+           instance default void set_NamespaceManager (class [System.Xml]System.Xml.XmlNamespaceManager 'value')  cil managed 
+    {
+        // Method begins at RVA 0x74fb
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element::_nsMgr
+	IL_0008:  ret 
+    } // end of method Element::set_NamespaceManager
 
-	IL_070d:  ldloc.3 
-	IL_070e:  isinst [mscorlib]System.Version
-	IL_0713:  brfalse IL_072f
+    // method line 2030
+    .method family virtual hidebysig newslot specialname 
+           instance default class [System.Xml]System.Xml.XmlNode get_XmlNode ()  cil managed 
+    {
+        // Method begins at RVA 0x7508
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [System.Xml]System.Xml.XmlNode	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0718:  nop 
-	IL_0719:  ldloc.1 
-	IL_071a:  ldloc.3 
-	IL_071b:  callvirt instance bool object::Equals(object)
-	IL_0720:  ldc.i4.0 
-	IL_0721:  ceq 
-	IL_0723:  box [mscorlib]System.Boolean
-	IL_0728:  stloc.s 5
-	IL_072a:  br IL_1536
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Element::get_XmlNode
 
-	IL_072f:  ldloc.1 
-	IL_0730:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0735:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
-	IL_073a:  brfalse IL_0795
+    // method line 2031
+    .method family virtual hidebysig newslot specialname 
+           instance default void set_XmlNode (class [System.Xml]System.Xml.XmlNode 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7523
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
+	IL_0008:  ret 
+    } // end of method Element::set_XmlNode
 
-	IL_073f:  nop 
-	IL_0740:  ldloc.3 
-	IL_0741:  isinst [mscorlib]System.String
-	IL_0746:  brfalse IL_0773
+    // method line 2032
+    .method family virtual hidebysig newslot specialname 
+           instance default class NAnt.Core.Location get_Location ()  cil managed 
+    {
+        // Method begins at RVA 0x7530
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Location	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Location NAnt.Core.Element::_location
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_074b:  nop 
-	IL_074c:  ldloc.1 
-	IL_074d:  ldloc.1 
-	IL_074e:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0753:  ldloc.3 
-	IL_0754:  castclass [mscorlib]System.String
-	IL_0759:  ldc.i4.0 
-	IL_075a:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	IL_075f:  callvirt instance bool object::Equals(object)
-	IL_0764:  ldc.i4.0 
-	IL_0765:  ceq 
-	IL_0767:  box [mscorlib]System.Boolean
-	IL_076c:  stloc.s 5
-	IL_076e:  br IL_1536
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Element::get_Location
 
-	IL_0773:  nop 
-	IL_0774:  ldloc.1 
-	IL_0775:  ldloc.1 
-	IL_0776:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_077b:  ldloc.3 
-	IL_077c:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, object)
-	IL_0781:  callvirt instance bool object::Equals(object)
-	IL_0786:  ldc.i4.0 
-	IL_0787:  ceq 
-	IL_0789:  box [mscorlib]System.Boolean
-	IL_078e:  stloc.s 5
-	IL_0790:  br IL_1536
+    // method line 2033
+    .method family virtual hidebysig newslot specialname 
+           instance default void set_Location (class NAnt.Core.Location 'value')  cil managed 
+    {
+        // Method begins at RVA 0x754b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.Location NAnt.Core.Element::_location
+	IL_0008:  ret 
+    } // end of method Element::set_Location
 
-	IL_0795:  ldloc.3 
-	IL_0796:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_079b:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
-	IL_07a0:  brfalse IL_07fb
+    // method line 2034
+    .method family virtual hidebysig newslot specialname 
+           instance default bool get_CustomXmlProcessing ()  cil managed 
+    {
+        // Method begins at RVA 0x7558
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_07a5:  nop 
-	IL_07a6:  ldloc.1 
-	IL_07a7:  isinst [mscorlib]System.String
-	IL_07ac:  brfalse IL_07d9
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method Element::get_CustomXmlProcessing
 
-	IL_07b1:  nop 
-	IL_07b2:  ldloc.3 
-	IL_07b3:  ldloc.3 
-	IL_07b4:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_07b9:  ldloc.1 
-	IL_07ba:  castclass [mscorlib]System.String
-	IL_07bf:  ldc.i4.0 
-	IL_07c0:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	IL_07c5:  callvirt instance bool object::Equals(object)
-	IL_07ca:  ldc.i4.0 
-	IL_07cb:  ceq 
-	IL_07cd:  box [mscorlib]System.Boolean
-	IL_07d2:  stloc.s 5
-	IL_07d4:  br IL_1536
+    // method line 2035
+    .method public hidebysig 
+           instance default void Initialize (class [System.Xml]System.Xml.XmlNode elementNode)  cil managed 
+    {
+        // Method begins at RVA 0x756e
+	// Code size 31 (0x1f)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.0 
+	IL_0004:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0009:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_000e:  ldarg.0 
+	IL_000f:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0014:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_0019:  call instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
+	IL_001e:  ret 
+    } // end of method Element::Initialize
 
-	IL_07d9:  nop 
-	IL_07da:  ldloc.3 
-	IL_07db:  ldloc.3 
-	IL_07dc:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_07e1:  ldloc.1 
-	IL_07e2:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, object)
-	IL_07e7:  callvirt instance bool object::Equals(object)
-	IL_07ec:  ldc.i4.0 
-	IL_07ed:  ceq 
-	IL_07ef:  box [mscorlib]System.Boolean
-	IL_07f4:  stloc.s 5
-	IL_07f6:  br IL_1536
+    // method line 2036
+    .method public hidebysig 
+           instance default class NAnt.Core.Location GetLocation ()  cil managed 
+    {
+        // Method begins at RVA 0x7590
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Location	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_07fb:  ldarg.0 
-	IL_07fc:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0801:  ldstr "NA1042"
-	IL_0806:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_080b:  ldarg.0 
-	IL_080c:  ldloc.1 
-	IL_080d:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0812:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_0817:  ldarg.0 
-	IL_0818:  ldloc.3 
-	IL_0819:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_081e:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_0823:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0828:  ldloc.0 
-	IL_0829:  ldloc.s 4
-	IL_082b:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0830:  throw 
-	IL_0831:  ldloc.1 
-	IL_0832:  isinst [mscorlib]System.String
-	IL_0837:  brfalse IL_086e
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Element::GetLocation
 
-	IL_083c:  ldloc.3 
-	IL_083d:  isinst [mscorlib]System.String
-	IL_0842:  brfalse IL_086e
+    // method line 2037
+    .method public virtual hidebysig newslot 
+           instance default void Log (valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
+    {
+        // Method begins at RVA 0x75ab
+	// Code size 28 (0x1c)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  brfalse IL_001b
 
-	IL_0847:  nop 
-	IL_0848:  ldloc.1 
-	IL_0849:  castclass [mscorlib]System.String
-	IL_084e:  ldloc.3 
-	IL_084f:  castclass [mscorlib]System.String
-	IL_0854:  ldc.i4.0 
-	IL_0855:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_085a:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_085f:  ldc.i4.0 
-	IL_0860:  clt 
-	IL_0862:  box [mscorlib]System.Boolean
-	IL_0867:  stloc.s 5
-	IL_0869:  br IL_1536
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0013:  ldarg.1 
+	IL_0014:  ldarg.2 
+	IL_0015:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string)
+	IL_001a:  nop 
+	IL_001b:  ret 
+    } // end of method Element::Log
 
-	IL_086e:  ldloc.1 
-	IL_086f:  isinst [mscorlib]System.Boolean
-	IL_0874:  brfalse IL_08a0
+    // method line 2038
+    .method public virtual hidebysig newslot 
+           instance default void Log (valuetype NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
+    {
+	.param [3]
+	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	IL_0879:  ldloc.3 
-	IL_087a:  isinst [mscorlib]System.Boolean
-	IL_087f:  brfalse IL_08a0
+        // Method begins at RVA 0x75c8
+	// Code size 29 (0x1d)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  brfalse IL_001c
 
-	IL_0884:  nop 
-	IL_0885:  ldloc.1 
-	IL_0886:  castclass [mscorlib]System.IComparable
-	IL_088b:  ldloc.3 
-	IL_088c:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0891:  ldc.i4.0 
-	IL_0892:  clt 
-	IL_0894:  box [mscorlib]System.Boolean
-	IL_0899:  stloc.s 5
-	IL_089b:  br IL_1536
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0013:  ldarg.1 
+	IL_0014:  ldarg.2 
+	IL_0015:  ldarg.3 
+	IL_0016:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	IL_001b:  nop 
+	IL_001c:  ret 
+    } // end of method Element::Log
 
-	IL_08a0:  ldloc.1 
-	IL_08a1:  isinst [mscorlib]System.Int32
-	IL_08a6:  brfalse IL_08d2
+    // method line 2039
+    .method family virtual hidebysig newslot 
+           instance default void InitializeElement (class [System.Xml]System.Xml.XmlNode elementNode)  cil managed 
+    {
+        .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
+		01 00 24 44 65 70 72 65 63 61 74 65 64 2E 20 55   // ..$Deprecated. U
+		73 65 20 49 6E 69 74 69 61 6C 69 7A 65 28 29 20   // se Initialize() 
+		69 6E 73 74 65 61 64 00 00                      ) // instead..
 
-	IL_08ab:  ldloc.3 
-	IL_08ac:  isinst [mscorlib]System.Int32
-	IL_08b1:  brfalse IL_08d2
+        // Method begins at RVA 0x75e6
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method Element::InitializeElement
 
-	IL_08b6:  nop 
-	IL_08b7:  ldloc.1 
-	IL_08b8:  castclass [mscorlib]System.IComparable
-	IL_08bd:  ldloc.3 
-	IL_08be:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_08c3:  ldc.i4.0 
-	IL_08c4:  clt 
-	IL_08c6:  box [mscorlib]System.Boolean
-	IL_08cb:  stloc.s 5
-	IL_08cd:  br IL_1536
+    // method line 2040
+    .method family virtual hidebysig newslot 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0x75e9
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method Element::Initialize
 
-	IL_08d2:  ldloc.1 
-	IL_08d3:  isinst [mscorlib]System.Int32
-	IL_08d8:  brfalse IL_0909
+    // method line 2041
+    .method family hidebysig 
+           instance default void CopyTo (class NAnt.Core.Element clone)  cil managed 
+    {
+        // Method begins at RVA 0x75ec
+	// Code size 80 (0x50)
+	.maxstack 2
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld class NAnt.Core.Location NAnt.Core.Element::_location
+	IL_0008:  stfld class NAnt.Core.Location NAnt.Core.Element::_location
+	IL_000d:  ldarg.1 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element::_nsMgr
+	IL_0014:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element::_nsMgr
+	IL_0019:  ldarg.1 
+	IL_001a:  ldarg.0 
+	IL_001b:  ldfld object NAnt.Core.Element::_parent
+	IL_0020:  stfld object NAnt.Core.Element::_parent
+	IL_0025:  ldarg.1 
+	IL_0026:  ldarg.0 
+	IL_0027:  ldfld class NAnt.Core.Project NAnt.Core.Element::_project
+	IL_002c:  stfld class NAnt.Core.Project NAnt.Core.Element::_project
+	IL_0031:  ldarg.0 
+	IL_0032:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
+	IL_0037:  brfalse IL_004f
 
-	IL_08dd:  ldloc.3 
-	IL_08de:  isinst [mscorlib]System.Int64
-	IL_08e3:  brfalse IL_0909
+	IL_003c:  nop 
+	IL_003d:  ldarg.1 
+	IL_003e:  ldarg.0 
+	IL_003f:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
+	IL_0044:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::Clone()
+	IL_0049:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
+	IL_004e:  nop 
+	IL_004f:  ret 
+    } // end of method Element::CopyTo
 
-	IL_08e8:  nop 
-	IL_08e9:  ldloc.1 
-	IL_08ea:  call int64 class [mscorlib]System.Convert::ToInt64(object)
-	IL_08ef:  box [mscorlib]System.Int64
-	IL_08f4:  ldloc.3 
-	IL_08f5:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_08fa:  ldc.i4.0 
-	IL_08fb:  clt 
-	IL_08fd:  box [mscorlib]System.Boolean
-	IL_0902:  stloc.s 5
-	IL_0904:  br IL_1536
+    // method line 2042
+    .method assembly hidebysig 
+           instance default void Initialize (class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo framework)  cil managed 
+    {
+        // Method begins at RVA 0x7648
+	// Code size 101 (0x65)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.ArgumentException	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  brtrue IL_0018
 
-	IL_0909:  ldloc.1 
-	IL_090a:  isinst [mscorlib]System.Int32
-	IL_090f:  brfalse IL_0940
+	IL_000c:  nop 
+	IL_000d:  ldstr "Element has invalid Project property."
+	IL_0012:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
+	IL_0017:  throw 
+	.try { // 0
+	  IL_0018:  nop 
+	  IL_0019:  ldarg.0 
+	  IL_001a:  ldarg.0 
+	  IL_001b:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_0020:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	  IL_0025:  ldarg.1 
+	  IL_0026:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	  IL_002b:  stfld class NAnt.Core.Location NAnt.Core.Element::_location
+	  IL_0030:  nop 
+	  IL_0031:  leave IL_004e
 
-	IL_0914:  ldloc.3 
-	IL_0915:  isinst [mscorlib]System.Double
-	IL_091a:  brfalse IL_0940
+	} // end .try 0
+	catch class [mscorlib]System.ArgumentException { // 0
+	  IL_0036:  stloc.0 
+	  IL_0037:  nop 
+	  IL_0038:  ldsfld class [log4net]log4net.ILog NAnt.Core.Element::logger
+	  IL_003d:  ldstr "Location of Element node could be located."
+	  IL_0042:  ldloc.0 
+	  IL_0043:  callvirt instance void class [log4net]log4net.ILog::Warn(object, class [mscorlib]System.Exception)
+	  IL_0048:  nop 
+	  IL_0049:  leave IL_004e
 
-	IL_091f:  nop 
-	IL_0920:  ldloc.1 
-	IL_0921:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_0926:  box [mscorlib]System.Double
-	IL_092b:  ldloc.3 
-	IL_092c:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0931:  ldc.i4.0 
-	IL_0932:  clt 
-	IL_0934:  box [mscorlib]System.Boolean
-	IL_0939:  stloc.s 5
-	IL_093b:  br IL_1536
+	} // end handler 0
+	IL_004e:  ldarg.0 
+	IL_004f:  ldarg.1 
+	IL_0050:  ldarg.2 
+	IL_0051:  ldarg.3 
+	IL_0052:  callvirt instance void class NAnt.Core.Element::InitializeXml(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
+	IL_0057:  ldarg.0 
+	IL_0058:  ldarg.1 
+	IL_0059:  callvirt instance void class NAnt.Core.Element::InitializeElement(class [System.Xml]System.Xml.XmlNode)
+	IL_005e:  ldarg.0 
+	IL_005f:  callvirt instance void class NAnt.Core.Element::Initialize()
+	IL_0064:  ret 
+    } // end of method Element::Initialize
 
-	IL_0940:  ldloc.1 
-	IL_0941:  isinst [mscorlib]System.Int64
-	IL_0946:  brfalse IL_0972
+    // method line 2043
+    .method family virtual hidebysig newslot 
+           instance default void InitializeXml (class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo framework)  cil managed 
+    {
+        // Method begins at RVA 0x76cc
+	// Code size 25 (0x19)
+	.maxstack 4
+	.locals init (
+		class NAnt.Core.Element/AttributeConfigurator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::_xmlNode
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  ldarg.2 
+	IL_000b:  ldarg.3 
+	IL_000c:  newobj instance void class NAnt.Core.Element/AttributeConfigurator::'.ctor'(class NAnt.Core.Element, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
+	IL_0011:  stloc.0 
+	IL_0012:  ldloc.0 
+	IL_0013:  callvirt instance void class NAnt.Core.Element/AttributeConfigurator::Initialize()
+	IL_0018:  ret 
+    } // end of method Element::InitializeXml
 
-	IL_094b:  ldloc.3 
-	IL_094c:  isinst [mscorlib]System.Int64
-	IL_0951:  brfalse IL_0972
+    // method line 2044
+    .method family virtual hidebysig newslot 
+           instance default class [System.Xml]System.Xml.XmlNode GetAttributeConfigurationNode (class NAnt.Core.FrameworkInfo framework, string attributeName)  cil managed 
+    {
+        // Method begins at RVA 0x76f4
+	// Code size 28 (0x1c)
+	.maxstack 4
+	.locals init (
+		class [System.Xml]System.Xml.XmlNode	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0008:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Project::get_ConfigurationNode()
+	IL_000d:  ldarg.1 
+	IL_000e:  ldarg.2 
+	IL_000f:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::GetAttributeConfigurationNode(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.FrameworkInfo, string)
+	IL_0014:  stloc.0 
+	IL_0015:  br IL_001a
 
-	IL_0956:  nop 
-	IL_0957:  ldloc.1 
-	IL_0958:  castclass [mscorlib]System.IComparable
-	IL_095d:  ldloc.3 
-	IL_095e:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0963:  ldc.i4.0 
-	IL_0964:  clt 
-	IL_0966:  box [mscorlib]System.Boolean
-	IL_096b:  stloc.s 5
-	IL_096d:  br IL_1536
+	IL_001a:  ldloc.0 
+	IL_001b:  ret 
+    } // end of method Element::GetAttributeConfigurationNode
 
-	IL_0972:  ldloc.1 
-	IL_0973:  isinst [mscorlib]System.Int64
-	IL_0978:  brfalse IL_09ae
+    // method line 2045
+    .method family hidebysig 
+           instance default class [System.Xml]System.Xml.XmlNode GetAttributeConfigurationNode (class [System.Xml]System.Xml.XmlNode configSection, class NAnt.Core.FrameworkInfo framework, string attributeName)  cil managed 
+    {
+        // Method begins at RVA 0x771c
+	// Code size 314 (0x13a)
+	.maxstack 5
+	.locals init (
+		class [System.Xml]System.Xml.XmlNode	V_0,
+		string	V_1,
+		int32	V_2,
+		class NAnt.Core.Element	V_3,
+		int32	V_4,
+		class [System.Xml]System.Xml.XmlNode	V_5,
+		class [System.Xml]System.Xml.XmlNode	V_6,
+		class [System.Xml]System.Xml.XmlNode	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldstr ""
+	IL_0008:  stloc.1 
+	IL_0009:  ldc.i4.0 
+	IL_000a:  stloc.2 
+	IL_000b:  ldarg.0 
+	IL_000c:  stloc.3 
+	IL_000d:  br IL_004c
 
-	IL_097d:  ldloc.3 
-	IL_097e:  isinst [mscorlib]System.Int32
-	IL_0983:  brfalse IL_09ae
+	IL_0012:  nop 
+	IL_0013:  ldloc.3 
+	IL_0014:  isinst NAnt.Core.Task
+	IL_0019:  brfalse IL_003f
 
-	IL_0988:  nop 
-	IL_0989:  ldloc.1 
-	IL_098a:  castclass [mscorlib]System.IComparable
-	IL_098f:  ldloc.3 
-	IL_0990:  call int64 class [mscorlib]System.Convert::ToInt64(object)
-	IL_0995:  box [mscorlib]System.Int64
-	IL_099a:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_099f:  ldc.i4.0 
-	IL_09a0:  clt 
-	IL_09a2:  box [mscorlib]System.Boolean
-	IL_09a7:  stloc.s 5
-	IL_09a9:  br IL_1536
+	IL_001e:  nop 
+	IL_001f:  ldloc.1 
+	IL_0020:  ldstr " and parent::task[@name=\""
+	IL_0025:  ldloc.3 
+	IL_0026:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_002b:  ldstr "\""
+	IL_0030:  call string string::Concat(string, string, string, string)
+	IL_0035:  stloc.1 
+	IL_0036:  ldloc.2 
+	IL_0037:  ldc.i4.1 
+	IL_0038:  add 
+	IL_0039:  stloc.2 
+	IL_003a:  br IL_0052
 
-	IL_09ae:  ldloc.1 
-	IL_09af:  isinst [mscorlib]System.Int64
-	IL_09b4:  brfalse IL_09e5
+	IL_003f:  ldloc.3 
+	IL_0040:  callvirt instance object class NAnt.Core.Element::get_Parent()
+	IL_0045:  isinst NAnt.Core.Element
+	IL_004a:  stloc.3 
+	IL_004b:  nop 
+	IL_004c:  ldloc.3 
+	IL_004d:  brtrue IL_0012
 
-	IL_09b9:  ldloc.3 
-	IL_09ba:  isinst [mscorlib]System.Double
-	IL_09bf:  brfalse IL_09e5
+	IL_0052:  ldstr "descendant::attribute[@name=\""
+	IL_0057:  ldarg.3 
+	IL_0058:  ldstr "\""
+	IL_005d:  ldloc.1 
+	IL_005e:  call string string::Concat(string, string, string, string)
+	IL_0063:  stloc.1 
+	IL_0064:  ldc.i4.0 
+	IL_0065:  stloc.s 4
+	IL_0067:  br IL_0080
 
-	IL_09c4:  nop 
-	IL_09c5:  ldloc.1 
-	IL_09c6:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_09cb:  box [mscorlib]System.Double
-	IL_09d0:  ldloc.3 
-	IL_09d1:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_09d6:  ldc.i4.0 
-	IL_09d7:  clt 
-	IL_09d9:  box [mscorlib]System.Boolean
-	IL_09de:  stloc.s 5
-	IL_09e0:  br IL_1536
+	IL_006c:  nop 
+	IL_006d:  ldloc.1 
+	IL_006e:  ldstr "]"
+	IL_0073:  call string string::Concat(string, string)
+	IL_0078:  stloc.1 
+	IL_0079:  nop 
+	IL_007a:  ldloc.s 4
+	IL_007c:  ldc.i4.1 
+	IL_007d:  add 
+	IL_007e:  stloc.s 4
+	IL_0080:  ldloc.s 4
+	IL_0082:  ldloc.2 
+	IL_0083:  blt IL_006c
 
-	IL_09e5:  ldloc.1 
-	IL_09e6:  isinst [mscorlib]System.Double
-	IL_09eb:  brfalse IL_0a17
+	IL_0088:  ldloc.1 
+	IL_0089:  ldstr "]"
+	IL_008e:  call string string::Concat(string, string)
+	IL_0093:  stloc.1 
+	IL_0094:  ldarg.2 
+	IL_0095:  brfalse IL_00fc
 
-	IL_09f0:  ldloc.3 
-	IL_09f1:  isinst [mscorlib]System.Double
-	IL_09f6:  brfalse IL_0a17
+	IL_009a:  nop 
+	IL_009b:  ldarg.1 
+	IL_009c:  ldc.i4.5 
+	IL_009d:  newarr [mscorlib]System.String
+	IL_00a2:  dup 
+	IL_00a3:  ldc.i4.0 
+	IL_00a4:  ldstr "frameworks/platform[@name=\""
+	IL_00a9:  stelem.ref 
+	IL_00aa:  dup 
+	IL_00ab:  ldc.i4.1 
+	IL_00ac:  ldarg.0 
+	IL_00ad:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_00b2:  callvirt instance string class NAnt.Core.Project::get_PlatformName()
+	IL_00b7:  stelem.ref 
+	IL_00b8:  dup 
+	IL_00b9:  ldc.i4.2 
+	IL_00ba:  ldstr "\"]/framework[@name=\""
+	IL_00bf:  stelem.ref 
+	IL_00c0:  dup 
+	IL_00c1:  ldc.i4.3 
+	IL_00c2:  ldarg.2 
+	IL_00c3:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	IL_00c8:  stelem.ref 
+	IL_00c9:  dup 
+	IL_00ca:  ldc.i4.4 
+	IL_00cb:  ldstr "\"]"
+	IL_00d0:  stelem.ref 
+	IL_00d1:  call string string::Concat(string[])
+	IL_00d6:  ldarg.0 
+	IL_00d7:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
+	IL_00dc:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_00e1:  stloc.s 5
+	IL_00e3:  ldloc.s 5
+	IL_00e5:  brfalse IL_00fb
 
-	IL_09fb:  nop 
-	IL_09fc:  ldloc.1 
-	IL_09fd:  castclass [mscorlib]System.IComparable
-	IL_0a02:  ldloc.3 
-	IL_0a03:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0a08:  ldc.i4.0 
-	IL_0a09:  clt 
-	IL_0a0b:  box [mscorlib]System.Boolean
-	IL_0a10:  stloc.s 5
-	IL_0a12:  br IL_1536
+	IL_00ea:  nop 
+	IL_00eb:  ldloc.s 5
+	IL_00ed:  ldloc.1 
+	IL_00ee:  ldarg.0 
+	IL_00ef:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
+	IL_00f4:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_00f9:  stloc.0 
+	IL_00fa:  nop 
+	IL_00fb:  nop 
+	IL_00fc:  ldloc.0 
+	IL_00fd:  brtrue IL_012f
 
-	IL_0a17:  ldloc.1 
-	IL_0a18:  isinst [mscorlib]System.Double
-	IL_0a1d:  brfalse IL_0a53
+	IL_0102:  nop 
+	IL_0103:  ldarg.1 
+	IL_0104:  ldstr "frameworks/tasks"
+	IL_0109:  ldarg.0 
+	IL_010a:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
+	IL_010f:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0114:  stloc.s 6
+	IL_0116:  ldloc.s 6
+	IL_0118:  brfalse IL_012e
 
-	IL_0a22:  ldloc.3 
-	IL_0a23:  isinst [mscorlib]System.Int32
-	IL_0a28:  brfalse IL_0a53
+	IL_011d:  nop 
+	IL_011e:  ldloc.s 6
+	IL_0120:  ldloc.1 
+	IL_0121:  ldarg.0 
+	IL_0122:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
+	IL_0127:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_012c:  stloc.0 
+	IL_012d:  nop 
+	IL_012e:  nop 
+	IL_012f:  ldloc.0 
+	IL_0130:  stloc.s 7
+	IL_0132:  br IL_0137
 
-	IL_0a2d:  nop 
-	IL_0a2e:  ldloc.1 
-	IL_0a2f:  castclass [mscorlib]System.IComparable
-	IL_0a34:  ldloc.3 
-	IL_0a35:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_0a3a:  box [mscorlib]System.Double
-	IL_0a3f:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0a44:  ldc.i4.0 
-	IL_0a45:  clt 
-	IL_0a47:  box [mscorlib]System.Boolean
-	IL_0a4c:  stloc.s 5
-	IL_0a4e:  br IL_1536
+	IL_0137:  ldloc.s 7
+	IL_0139:  ret 
+    } // end of method Element::GetAttributeConfigurationNode
 
-	IL_0a53:  ldloc.1 
-	IL_0a54:  isinst [mscorlib]System.Double
-	IL_0a59:  brfalse IL_0a8f
+    // method line 2046
+    .method public static hidebysig 
+           default class NAnt.Core.Element InitializeBuildElement (class NAnt.Core.Element parent, class [System.Xml]System.Xml.XmlNode childNode, class NAnt.Core.Element buildElement, class [mscorlib]System.Type elementType)  cil managed 
+    {
+        // Method begins at RVA 0x7864
+	// Code size 557 (0x22d)
+	.maxstack 5
+	.locals init (
+		class NAnt.Core.DataTypeBase	V_0,
+		class [mscorlib]System.Reflection.ConstructorInfo	V_1,
+		class NAnt.Core.Attributes.ElementNameAttribute	V_2,
+		class NAnt.Core.Attributes.ElementNameAttribute	V_3,
+		class NAnt.Core.Element	V_4)
+	IL_0000:  nop 
+	IL_0001:  ldarg.2 
+	IL_0002:  isinst NAnt.Core.DataTypeBase
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  brfalse IL_01fb
 
-	IL_0a5e:  ldloc.3 
-	IL_0a5f:  isinst [mscorlib]System.Int64
-	IL_0a64:  brfalse IL_0a8f
+	IL_000e:  ldloc.0 
+	IL_000f:  callvirt instance bool class NAnt.Core.DataTypeBase::get_CanBeReferenced()
+	IL_0014:  brfalse IL_01fb
 
-	IL_0a69:  nop 
-	IL_0a6a:  ldloc.1 
-	IL_0a6b:  castclass [mscorlib]System.IComparable
-	IL_0a70:  ldloc.3 
-	IL_0a71:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_0a76:  box [mscorlib]System.Double
-	IL_0a7b:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0a80:  ldc.i4.0 
-	IL_0a81:  clt 
-	IL_0a83:  box [mscorlib]System.Boolean
-	IL_0a88:  stloc.s 5
-	IL_0a8a:  br IL_1536
+	IL_0019:  ldarg.1 
+	IL_001a:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_001f:  ldstr "refid"
+	IL_0024:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0029:  brfalse IL_01fb
 
-	IL_0a8f:  ldloc.1 
-	IL_0a90:  isinst [mscorlib]System.DateTime
-	IL_0a95:  brfalse IL_0ac1
+	IL_002e:  nop 
+	IL_002f:  ldloc.0 
+	IL_0030:  ldarg.1 
+	IL_0031:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0036:  ldstr "refid"
+	IL_003b:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0040:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_0045:  callvirt instance void class NAnt.Core.DataTypeBase::set_RefID(string)
+	IL_004a:  ldloc.0 
+	IL_004b:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	IL_0050:  call bool string::IsNullOrEmpty(string)
+	IL_0055:  brtrue IL_008b
 
-	IL_0a9a:  ldloc.3 
-	IL_0a9b:  isinst [mscorlib]System.DateTime
-	IL_0aa0:  brfalse IL_0ac1
+	IL_005a:  nop 
+	IL_005b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0060:  ldstr "NA1183"
+	IL_0065:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_006a:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
+	IL_006f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0074:  ldarg.0 
+	IL_0075:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_007a:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	IL_007f:  ldarg.1 
+	IL_0080:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	IL_0085:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_008a:  throw 
+	IL_008b:  ldarg.0 
+	IL_008c:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0091:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	IL_0096:  ldloc.0 
+	IL_0097:  callvirt instance string class NAnt.Core.DataTypeBase::get_RefID()
+	IL_009c:  callvirt instance bool class NAnt.Core.DataTypeBaseDictionary::Contains(string)
+	IL_00a1:  brfalse IL_00ca
 
-	IL_0aa5:  nop 
-	IL_0aa6:  ldloc.1 
-	IL_0aa7:  castclass [mscorlib]System.IComparable
-	IL_0aac:  ldloc.3 
-	IL_0aad:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0ab2:  ldc.i4.0 
-	IL_0ab3:  clt 
-	IL_0ab5:  box [mscorlib]System.Boolean
-	IL_0aba:  stloc.s 5
-	IL_0abc:  br IL_1536
+	IL_00a6:  nop 
+	IL_00a7:  ldarg.0 
+	IL_00a8:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_00ad:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	IL_00b2:  ldloc.0 
+	IL_00b3:  callvirt instance string class NAnt.Core.DataTypeBase::get_RefID()
+	IL_00b8:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.DataTypeBaseDictionary::get_Item(string)
+	IL_00bd:  stloc.0 
+	IL_00be:  ldloc.0 
+	IL_00bf:  callvirt instance void class NAnt.Core.DataTypeBase::Reset()
+	IL_00c4:  nop 
+	IL_00c5:  br IL_0102
 
-	IL_0ac1:  ldloc.1 
-	IL_0ac2:  isinst [mscorlib]System.TimeSpan
-	IL_0ac7:  brfalse IL_0af3
+	IL_00ca:  nop 
+	IL_00cb:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00d0:  ldstr "NA1184"
+	IL_00d5:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00da:  ldloc.0 
+	IL_00db:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_00e0:  ldloc.0 
+	IL_00e1:  callvirt instance string class NAnt.Core.DataTypeBase::get_RefID()
+	IL_00e6:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_00eb:  ldarg.0 
+	IL_00ec:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_00f1:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	IL_00f6:  ldarg.1 
+	IL_00f7:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	IL_00fc:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0101:  throw 
+	IL_0102:  ldarg.3 
+	IL_0103:  ldloc.0 
+	IL_0104:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0109:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_010e:  brtrue IL_01bd
 
-	IL_0acc:  ldloc.3 
-	IL_0acd:  isinst [mscorlib]System.TimeSpan
-	IL_0ad2:  brfalse IL_0af3
+	IL_0113:  nop 
+	IL_0114:  ldarg.3 
+	IL_0115:  ldc.i4.1 
+	IL_0116:  newarr [mscorlib]System.Type
+	IL_011b:  dup 
+	IL_011c:  ldc.i4.0 
+	IL_011d:  ldloc.0 
+	IL_011e:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0123:  stelem.ref 
+	IL_0124:  callvirt instance class [mscorlib]System.Reflection.ConstructorInfo class [mscorlib]System.Type::GetConstructor(class [mscorlib]System.Type[])
+	IL_0129:  stloc.1 
+	IL_012a:  ldloc.1 
+	IL_012b:  ldnull 
+	IL_012c:  call bool class [mscorlib]System.Reflection.ConstructorInfo::op_Inequality(class [mscorlib]System.Reflection.ConstructorInfo, class [mscorlib]System.Reflection.ConstructorInfo)
+	IL_0131:  brfalse IL_0153
 
-	IL_0ad7:  nop 
-	IL_0ad8:  ldloc.1 
-	IL_0ad9:  castclass [mscorlib]System.IComparable
-	IL_0ade:  ldloc.3 
-	IL_0adf:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0ae4:  ldc.i4.0 
-	IL_0ae5:  clt 
-	IL_0ae7:  box [mscorlib]System.Boolean
-	IL_0aec:  stloc.s 5
-	IL_0aee:  br IL_1536
+	IL_0136:  nop 
+	IL_0137:  ldloc.1 
+	IL_0138:  ldc.i4.1 
+	IL_0139:  newarr [mscorlib]System.Object
+	IL_013e:  dup 
+	IL_013f:  ldc.i4.0 
+	IL_0140:  ldloc.0 
+	IL_0141:  stelem.ref 
+	IL_0142:  callvirt instance object class [mscorlib]System.Reflection.ConstructorInfo::Invoke(object[])
+	IL_0147:  castclass NAnt.Core.DataTypeBase
+	IL_014c:  stloc.0 
+	IL_014d:  nop 
+	IL_014e:  br IL_01bc
 
-	IL_0af3:  ldloc.1 
-	IL_0af4:  isinst [mscorlib]System.Version
-	IL_0af9:  brfalse IL_0b25
+	IL_0153:  nop 
+	IL_0154:  ldloc.0 
+	IL_0155:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_015a:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
+	IL_015f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0164:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	IL_0169:  castclass NAnt.Core.Attributes.ElementNameAttribute
+	IL_016e:  stloc.2 
+	IL_016f:  ldarg.3 
+	IL_0170:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
+	IL_0175:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_017a:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	IL_017f:  castclass NAnt.Core.Attributes.ElementNameAttribute
+	IL_0184:  stloc.3 
+	IL_0185:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_018a:  ldstr "NA1185"
+	IL_018f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0194:  ldloc.2 
+	IL_0195:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
+	IL_019a:  ldloc.3 
+	IL_019b:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
+	IL_01a0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_01a5:  ldarg.0 
+	IL_01a6:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_01ab:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	IL_01b0:  ldarg.1 
+	IL_01b1:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	IL_01b6:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_01bb:  throw 
+	IL_01bc:  nop 
+	IL_01bd:  ldloc.0 
+	IL_01be:  ldarg.0 
+	IL_01bf:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_01c4:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_01c9:  ldloc.0 
+	IL_01ca:  ldarg.0 
+	IL_01cb:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_01d0:  ldloc.0 
+	IL_01d1:  ldarg.0 
+	IL_01d2:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
+	IL_01d7:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_01dc:  ldloc.0 
+	IL_01dd:  ldarg.0 
+	IL_01de:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_01e3:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	IL_01e8:  ldarg.1 
+	IL_01e9:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	IL_01ee:  callvirt instance void class NAnt.Core.Element::set_Location(class NAnt.Core.Location)
+	IL_01f3:  ldloc.0 
+	IL_01f4:  stloc.s 4
+	IL_01f6:  br IL_022a
 
-	IL_0afe:  ldloc.3 
-	IL_0aff:  isinst [mscorlib]System.Version
-	IL_0b04:  brfalse IL_0b25
+	IL_01fb:  nop 
+	IL_01fc:  ldarg.2 
+	IL_01fd:  ldarg.0 
+	IL_01fe:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0203:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_0208:  ldarg.2 
+	IL_0209:  ldarg.0 
+	IL_020a:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_020f:  ldarg.2 
+	IL_0210:  ldarg.0 
+	IL_0211:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
+	IL_0216:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_021b:  ldarg.2 
+	IL_021c:  ldarg.1 
+	IL_021d:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode)
+	IL_0222:  ldarg.2 
+	IL_0223:  stloc.s 4
+	IL_0225:  br IL_022a
 
-	IL_0b09:  nop 
-	IL_0b0a:  ldloc.1 
-	IL_0b0b:  castclass [mscorlib]System.IComparable
-	IL_0b10:  ldloc.3 
-	IL_0b11:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0b16:  ldc.i4.0 
-	IL_0b17:  clt 
-	IL_0b19:  box [mscorlib]System.Boolean
-	IL_0b1e:  stloc.s 5
-	IL_0b20:  br IL_1536
+	IL_022a:  ldloc.s 4
+	IL_022c:  ret 
+    } // end of method Element::InitializeBuildElement
 
-	IL_0b25:  ldarg.0 
-	IL_0b26:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0b2b:  ldstr "NA1051"
-	IL_0b30:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0b35:  ldarg.0 
-	IL_0b36:  ldloc.1 
-	IL_0b37:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0b3c:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_0b41:  ldarg.0 
-	IL_0b42:  ldloc.3 
-	IL_0b43:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0b48:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_0b4d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0b52:  ldloc.0 
-	IL_0b53:  ldloc.s 4
-	IL_0b55:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0b5a:  throw 
-	IL_0b5b:  ldloc.1 
-	IL_0b5c:  isinst [mscorlib]System.String
-	IL_0b61:  brfalse IL_0b98
+    // method line 2047
+    .method private static hidebysig 
+           default string GetElementNameFromType (class [mscorlib]System.Type 'type')  cil managed 
+    {
+        // Method begins at RVA 0x7aa0
+	// Code size 76 (0x4c)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.Attributes.ElementNameAttribute	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldnull 
+	IL_0003:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0008:  brfalse IL_0019
 
-	IL_0b66:  ldloc.3 
-	IL_0b67:  isinst [mscorlib]System.String
-	IL_0b6c:  brfalse IL_0b98
+	IL_000d:  nop 
+	IL_000e:  ldstr "type"
+	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0018:  throw 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
+	IL_001f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0024:  ldc.i4.0 
+	IL_0025:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_002a:  castclass NAnt.Core.Attributes.ElementNameAttribute
+	IL_002f:  stloc.0 
+	IL_0030:  ldloc.0 
+	IL_0031:  brfalse IL_0043
 
-	IL_0b71:  nop 
-	IL_0b72:  ldloc.1 
-	IL_0b73:  castclass [mscorlib]System.String
-	IL_0b78:  ldloc.3 
-	IL_0b79:  castclass [mscorlib]System.String
-	IL_0b7e:  ldc.i4.0 
-	IL_0b7f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0b84:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_0b89:  ldc.i4.0 
-	IL_0b8a:  cgt 
-	IL_0b8c:  box [mscorlib]System.Boolean
-	IL_0b91:  stloc.s 5
-	IL_0b93:  br IL_1536
+	IL_0036:  nop 
+	IL_0037:  ldloc.0 
+	IL_0038:  callvirt instance string class NAnt.Core.Attributes.ElementNameAttribute::get_Name()
+	IL_003d:  stloc.1 
+	IL_003e:  br IL_004a
 
-	IL_0b98:  ldloc.1 
-	IL_0b99:  isinst [mscorlib]System.Boolean
-	IL_0b9e:  brfalse IL_0bca
+	IL_0043:  ldnull 
+	IL_0044:  stloc.1 
+	IL_0045:  br IL_004a
 
-	IL_0ba3:  ldloc.3 
-	IL_0ba4:  isinst [mscorlib]System.Boolean
-	IL_0ba9:  brfalse IL_0bca
+	IL_004a:  ldloc.1 
+	IL_004b:  ret 
+    } // end of method Element::GetElementNameFromType
 
-	IL_0bae:  nop 
-	IL_0baf:  ldloc.1 
-	IL_0bb0:  castclass [mscorlib]System.IComparable
-	IL_0bb5:  ldloc.3 
-	IL_0bb6:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0bbb:  ldc.i4.0 
-	IL_0bbc:  cgt 
-	IL_0bbe:  box [mscorlib]System.Boolean
-	IL_0bc3:  stloc.s 5
-	IL_0bc5:  br IL_1536
+    // method line 2048
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x7af8
+	// Code size 21 (0x15)
+	.maxstack 8
+	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
+	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
+	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.Element::logger
+	IL_0014:  ret 
+    } // end of method Element::.cctor
 
-	IL_0bca:  ldloc.1 
-	IL_0bcb:  isinst [mscorlib]System.Int32
-	IL_0bd0:  brfalse IL_0bfc
+	.property instance object Parent ()
+	{
+		.get instance default object NAnt.Core.Element::get_Parent () 
+		.set instance default void NAnt.Core.Element::set_Parent (object 'value') 
+	}
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.Core.Element::get_Name () 
+	}
+	.property instance class NAnt.Core.Project Project ()
+	{
+		.get instance default class NAnt.Core.Project NAnt.Core.Element::get_Project () 
+		.set instance default void NAnt.Core.Element::set_Project (class NAnt.Core.Project 'value') 
+	}
+	.property instance class NAnt.Core.PropertyDictionary Properties ()
+	{
+		.get instance default class NAnt.Core.PropertyDictionary NAnt.Core.Element::get_Properties () 
+	}
+	.property instance class [System.Xml]System.Xml.XmlNamespaceManager NamespaceManager ()
+	{
+		.get instance default class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element::get_NamespaceManager () 
+		.set instance default void NAnt.Core.Element::set_NamespaceManager (class [System.Xml]System.Xml.XmlNamespaceManager 'value') 
+	}
+	.property instance class [System.Xml]System.Xml.XmlNode XmlNode ()
+	{
+		.get instance default class [System.Xml]System.Xml.XmlNode NAnt.Core.Element::get_XmlNode () 
+		.set instance default void NAnt.Core.Element::set_XmlNode (class [System.Xml]System.Xml.XmlNode 'value') 
+	}
+	.property instance class NAnt.Core.Location Location ()
+	{
+		.get instance default class NAnt.Core.Location NAnt.Core.Element::get_Location () 
+		.set instance default void NAnt.Core.Element::set_Location (class NAnt.Core.Location 'value') 
+	}
+	.property instance bool CustomXmlProcessing ()
+	{
+		.get instance default bool NAnt.Core.Element::get_CustomXmlProcessing () 
+	}
+  .class nested public auto ansi beforefieldinit AttributeConfigurator
+  	extends [mscorlib]System.Object
+  {
+    .field  private initonly  class NAnt.Core.Element _element
+    .field  private initonly  class [System.Xml]System.Xml.XmlNode _elementXml
+    .field  private initonly  class NAnt.Core.PropertyDictionary _properties
+    .field  private initonly  class NAnt.Core.FrameworkInfo _targetFramework
+    .field  private initonly  class [System]System.Collections.Specialized.StringCollection _unprocessedAttributes
+    .field  private initonly  class [System]System.Collections.Specialized.StringCollection _unprocessedChildNodes
+    .field  private static initonly  class [log4net]log4net.ILog logger
+    .field  private static  class [mscorlib]System.Collections.Hashtable AttributeSetters
 
-	IL_0bd5:  ldloc.3 
-	IL_0bd6:  isinst [mscorlib]System.Int32
-	IL_0bdb:  brfalse IL_0bfc
+    // method line 2049
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Element element, class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo targetFramework)  cil managed 
+    {
+        // Method begins at RVA 0x7b10
+	// Code size 419 (0x1a3)
+	.maxstack 3
+	.locals init (
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2,
+		class [System.Xml]System.Xml.XmlNode	V_3,
+		class [mscorlib]System.Collections.IEnumerator	V_4,
+		class [mscorlib]System.IDisposable	V_5)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  brtrue IL_0019
 
-	IL_0be0:  nop 
-	IL_0be1:  ldloc.1 
-	IL_0be2:  castclass [mscorlib]System.IComparable
-	IL_0be7:  ldloc.3 
-	IL_0be8:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0bed:  ldc.i4.0 
-	IL_0bee:  cgt 
-	IL_0bf0:  box [mscorlib]System.Boolean
-	IL_0bf5:  stloc.s 5
-	IL_0bf7:  br IL_1536
+	IL_000d:  nop 
+	IL_000e:  ldstr "element"
+	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0018:  throw 
+	IL_0019:  ldarg.2 
+	IL_001a:  brtrue IL_002b
 
-	IL_0bfc:  ldloc.1 
-	IL_0bfd:  isinst [mscorlib]System.Int32
-	IL_0c02:  brfalse IL_0c33
+	IL_001f:  nop 
+	IL_0020:  ldstr "elementNode"
+	IL_0025:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_002a:  throw 
+	IL_002b:  ldarg.3 
+	IL_002c:  brtrue IL_003d
 
-	IL_0c07:  ldloc.3 
-	IL_0c08:  isinst [mscorlib]System.Int64
-	IL_0c0d:  brfalse IL_0c33
+	IL_0031:  nop 
+	IL_0032:  ldstr "properties"
+	IL_0037:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_003c:  throw 
+	IL_003d:  ldarg.0 
+	IL_003e:  ldarg.1 
+	IL_003f:  stfld class NAnt.Core.Element NAnt.Core.Element/AttributeConfigurator::_element
+	IL_0044:  ldarg.0 
+	IL_0045:  ldarg.2 
+	IL_0046:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element/AttributeConfigurator::_elementXml
+	IL_004b:  ldarg.0 
+	IL_004c:  ldarg.3 
+	IL_004d:  stfld class NAnt.Core.PropertyDictionary NAnt.Core.Element/AttributeConfigurator::_properties
+	IL_0052:  ldarg.0 
+	IL_0053:  ldarg.s 4
+	IL_0055:  stfld class NAnt.Core.FrameworkInfo NAnt.Core.Element/AttributeConfigurator::_targetFramework
+	IL_005a:  ldarg.0 
+	IL_005b:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0060:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::_unprocessedAttributes
+	IL_0065:  nop 
+	IL_0066:  ldarg.2 
+	IL_0067:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_006c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNamedNodeMap::GetEnumerator()
+	IL_0071:  stloc.1 
+	.try { // 0
+	  IL_0072:  br IL_00ce
 
-	IL_0c12:  nop 
-	IL_0c13:  ldloc.1 
-	IL_0c14:  call int64 class [mscorlib]System.Convert::ToInt64(object)
-	IL_0c19:  box [mscorlib]System.Int64
-	IL_0c1e:  ldloc.3 
-	IL_0c1f:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0c24:  ldc.i4.0 
-	IL_0c25:  cgt 
-	IL_0c27:  box [mscorlib]System.Boolean
-	IL_0c2c:  stloc.s 5
-	IL_0c2e:  br IL_1536
+	  IL_0077:  ldloc.1 
+	  IL_0078:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_007d:  castclass [System.Xml]System.Xml.XmlAttribute
+	  IL_0082:  stloc.0 
+	  IL_0083:  nop 
+	  IL_0084:  ldloc.0 
+	  IL_0085:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	  IL_008a:  callvirt instance int32 string::get_Length()
+	  IL_008f:  ldc.i4.0 
+	  IL_0090:  ble IL_00bb
 
-	IL_0c33:  ldloc.1 
-	IL_0c34:  isinst [mscorlib]System.Int32
-	IL_0c39:  brfalse IL_0c6a
+	  IL_0095:  ldloc.0 
+	  IL_0096:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	  IL_009b:  ldarg.0 
+	  IL_009c:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
+	  IL_00a1:  ldstr "nant"
+	  IL_00a6:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
+	  IL_00ab:  callvirt instance bool string::Equals(string)
+	  IL_00b0:  brtrue IL_00bb
 
-	IL_0c3e:  ldloc.3 
-	IL_0c3f:  isinst [mscorlib]System.Double
-	IL_0c44:  brfalse IL_0c6a
+	  IL_00b5:  nop 
+	  IL_00b6:  leave IL_00ce
 
-	IL_0c49:  nop 
-	IL_0c4a:  ldloc.1 
-	IL_0c4b:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_0c50:  box [mscorlib]System.Double
-	IL_0c55:  ldloc.3 
-	IL_0c56:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0c5b:  ldc.i4.0 
-	IL_0c5c:  cgt 
-	IL_0c5e:  box [mscorlib]System.Boolean
-	IL_0c63:  stloc.s 5
-	IL_0c65:  br IL_1536
+	  IL_00bb:  ldarg.0 
+	  IL_00bc:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::_unprocessedAttributes
+	  IL_00c1:  ldloc.0 
+	  IL_00c2:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_00c7:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_00cc:  pop 
+	  IL_00cd:  nop 
+	  IL_00ce:  ldloc.1 
+	  IL_00cf:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00d4:  brtrue IL_0077
 
-	IL_0c6a:  ldloc.1 
-	IL_0c6b:  isinst [mscorlib]System.Int64
-	IL_0c70:  brfalse IL_0c9c
+	  IL_00d9:  leave IL_00f2
 
-	IL_0c75:  ldloc.3 
-	IL_0c76:  isinst [mscorlib]System.Int64
-	IL_0c7b:  brfalse IL_0c9c
+	} // end .try 0
+	finally  { // 0
+	  IL_00de:  ldloc.1 
+	  IL_00df:  isinst [mscorlib]System.IDisposable
+	  IL_00e4:  dup 
+	  IL_00e5:  stloc.2 
+	  IL_00e6:  brfalse IL_00f1
 
-	IL_0c80:  nop 
-	IL_0c81:  ldloc.1 
-	IL_0c82:  castclass [mscorlib]System.IComparable
-	IL_0c87:  ldloc.3 
-	IL_0c88:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0c8d:  ldc.i4.0 
-	IL_0c8e:  cgt 
-	IL_0c90:  box [mscorlib]System.Boolean
-	IL_0c95:  stloc.s 5
-	IL_0c97:  br IL_1536
+	  IL_00eb:  ldloc.2 
+	  IL_00ec:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00f1:  endfinally 
+	} // end handler 0
+	IL_00f2:  ldarg.0 
+	IL_00f3:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_00f8:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::_unprocessedChildNodes
+	IL_00fd:  nop 
+	IL_00fe:  ldarg.2 
+	IL_00ff:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNode::GetEnumerator()
+	IL_0104:  stloc.s 4
+	.try { // 1
+	  IL_0106:  br IL_017a
 
-	IL_0c9c:  ldloc.1 
-	IL_0c9d:  isinst [mscorlib]System.Int64
-	IL_0ca2:  brfalse IL_0cd8
+	  IL_010b:  ldloc.s 4
+	  IL_010d:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0112:  castclass [System.Xml]System.Xml.XmlNode
+	  IL_0117:  stloc.3 
+	  IL_0118:  nop 
+	  IL_0119:  ldloc.3 
+	  IL_011a:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
+	  IL_011f:  ldc.i4.1 
+	  IL_0120:  bne.un IL_0145
 
-	IL_0ca7:  ldloc.3 
-	IL_0ca8:  isinst [mscorlib]System.Int32
-	IL_0cad:  brfalse IL_0cd8
+	  IL_0125:  ldloc.3 
+	  IL_0126:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	  IL_012b:  ldarg.0 
+	  IL_012c:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
+	  IL_0131:  ldstr "nant"
+	  IL_0136:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
+	  IL_013b:  callvirt instance bool string::Equals(string)
+	  IL_0140:  brtrue IL_014b
 
-	IL_0cb2:  nop 
-	IL_0cb3:  ldloc.1 
-	IL_0cb4:  castclass [mscorlib]System.IComparable
-	IL_0cb9:  ldloc.3 
-	IL_0cba:  call int64 class [mscorlib]System.Convert::ToInt64(object)
-	IL_0cbf:  box [mscorlib]System.Int64
-	IL_0cc4:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0cc9:  ldc.i4.0 
-	IL_0cca:  cgt 
-	IL_0ccc:  box [mscorlib]System.Boolean
-	IL_0cd1:  stloc.s 5
-	IL_0cd3:  br IL_1536
+	  IL_0145:  nop 
+	  IL_0146:  leave IL_017a
 
-	IL_0cd8:  ldloc.1 
-	IL_0cd9:  isinst [mscorlib]System.Int64
-	IL_0cde:  brfalse IL_0d0f
+	  IL_014b:  ldarg.0 
+	  IL_014c:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::_unprocessedChildNodes
+	  IL_0151:  ldloc.3 
+	  IL_0152:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_0157:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	  IL_015c:  brfalse IL_0167
 
-	IL_0ce3:  ldloc.3 
-	IL_0ce4:  isinst [mscorlib]System.Double
-	IL_0ce9:  brfalse IL_0d0f
+	  IL_0161:  nop 
+	  IL_0162:  leave IL_017a
 
-	IL_0cee:  nop 
-	IL_0cef:  ldloc.1 
-	IL_0cf0:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_0cf5:  box [mscorlib]System.Double
-	IL_0cfa:  ldloc.3 
-	IL_0cfb:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0d00:  ldc.i4.0 
-	IL_0d01:  cgt 
-	IL_0d03:  box [mscorlib]System.Boolean
-	IL_0d08:  stloc.s 5
-	IL_0d0a:  br IL_1536
+	  IL_0167:  ldarg.0 
+	  IL_0168:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::_unprocessedChildNodes
+	  IL_016d:  ldloc.3 
+	  IL_016e:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_0173:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_0178:  pop 
+	  IL_0179:  nop 
+	  IL_017a:  ldloc.s 4
+	  IL_017c:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0181:  brtrue IL_010b
 
-	IL_0d0f:  ldloc.1 
-	IL_0d10:  isinst [mscorlib]System.Double
-	IL_0d15:  brfalse IL_0d41
+	  IL_0186:  leave IL_01a2
 
-	IL_0d1a:  ldloc.3 
-	IL_0d1b:  isinst [mscorlib]System.Double
-	IL_0d20:  brfalse IL_0d41
+	} // end .try 1
+	finally  { // 1
+	  IL_018b:  ldloc.s 4
+	  IL_018d:  isinst [mscorlib]System.IDisposable
+	  IL_0192:  dup 
+	  IL_0193:  stloc.s 5
+	  IL_0195:  brfalse IL_01a1
 
-	IL_0d25:  nop 
-	IL_0d26:  ldloc.1 
-	IL_0d27:  castclass [mscorlib]System.IComparable
-	IL_0d2c:  ldloc.3 
-	IL_0d2d:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0d32:  ldc.i4.0 
-	IL_0d33:  cgt 
-	IL_0d35:  box [mscorlib]System.Boolean
-	IL_0d3a:  stloc.s 5
-	IL_0d3c:  br IL_1536
+	  IL_019a:  ldloc.s 5
+	  IL_019c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01a1:  endfinally 
+	} // end handler 1
+	IL_01a2:  ret 
+    } // end of method AttributeConfigurator::.ctor
 
-	IL_0d41:  ldloc.1 
-	IL_0d42:  isinst [mscorlib]System.Double
-	IL_0d47:  brfalse IL_0d7d
+    // method line 2050
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Element get_Element ()  cil managed 
+    {
+        // Method begins at RVA 0x7cdc
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Element	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Element NAnt.Core.Element/AttributeConfigurator::_element
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0d4c:  ldloc.3 
-	IL_0d4d:  isinst [mscorlib]System.Int32
-	IL_0d52:  brfalse IL_0d7d
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttributeConfigurator::get_Element
 
-	IL_0d57:  nop 
-	IL_0d58:  ldloc.1 
-	IL_0d59:  castclass [mscorlib]System.IComparable
-	IL_0d5e:  ldloc.3 
-	IL_0d5f:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_0d64:  box [mscorlib]System.Double
-	IL_0d69:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0d6e:  ldc.i4.0 
-	IL_0d6f:  cgt 
-	IL_0d71:  box [mscorlib]System.Boolean
-	IL_0d76:  stloc.s 5
-	IL_0d78:  br IL_1536
+    // method line 2051
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Location get_Location ()  cil managed 
+    {
+        // Method begins at RVA 0x7cf8
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Location	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_0007:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0d7d:  ldloc.1 
-	IL_0d7e:  isinst [mscorlib]System.Double
-	IL_0d83:  brfalse IL_0db9
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method AttributeConfigurator::get_Location
 
-	IL_0d88:  ldloc.3 
-	IL_0d89:  isinst [mscorlib]System.Int64
-	IL_0d8e:  brfalse IL_0db9
+    // method line 2052
+    .method public hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x7d18
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_0007:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0d93:  nop 
-	IL_0d94:  ldloc.1 
-	IL_0d95:  castclass [mscorlib]System.IComparable
-	IL_0d9a:  ldloc.3 
-	IL_0d9b:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_0da0:  box [mscorlib]System.Double
-	IL_0da5:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0daa:  ldc.i4.0 
-	IL_0dab:  cgt 
-	IL_0dad:  box [mscorlib]System.Boolean
-	IL_0db2:  stloc.s 5
-	IL_0db4:  br IL_1536
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method AttributeConfigurator::get_Name
 
-	IL_0db9:  ldloc.1 
-	IL_0dba:  isinst [mscorlib]System.DateTime
-	IL_0dbf:  brfalse IL_0deb
+    // method line 2053
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x7d38
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Project	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_0007:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0dc4:  ldloc.3 
-	IL_0dc5:  isinst [mscorlib]System.DateTime
-	IL_0dca:  brfalse IL_0deb
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method AttributeConfigurator::get_Project
 
-	IL_0dcf:  nop 
-	IL_0dd0:  ldloc.1 
-	IL_0dd1:  castclass [mscorlib]System.IComparable
-	IL_0dd6:  ldloc.3 
-	IL_0dd7:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0ddc:  ldc.i4.0 
-	IL_0ddd:  cgt 
-	IL_0ddf:  box [mscorlib]System.Boolean
-	IL_0de4:  stloc.s 5
-	IL_0de6:  br IL_1536
+    // method line 2054
+    .method public hidebysig specialname 
+           instance default class [System.Xml]System.Xml.XmlNode get_ElementXml ()  cil managed 
+    {
+        // Method begins at RVA 0x7d58
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [System.Xml]System.Xml.XmlNode	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Element/AttributeConfigurator::_elementXml
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0deb:  ldloc.1 
-	IL_0dec:  isinst [mscorlib]System.TimeSpan
-	IL_0df1:  brfalse IL_0e1d
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttributeConfigurator::get_ElementXml
 
-	IL_0df6:  ldloc.3 
-	IL_0df7:  isinst [mscorlib]System.TimeSpan
-	IL_0dfc:  brfalse IL_0e1d
+    // method line 2055
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.PropertyDictionary get_Properties ()  cil managed 
+    {
+        // Method begins at RVA 0x7d74
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.PropertyDictionary	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.Element/AttributeConfigurator::_properties
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0e01:  nop 
-	IL_0e02:  ldloc.1 
-	IL_0e03:  castclass [mscorlib]System.IComparable
-	IL_0e08:  ldloc.3 
-	IL_0e09:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0e0e:  ldc.i4.0 
-	IL_0e0f:  cgt 
-	IL_0e11:  box [mscorlib]System.Boolean
-	IL_0e16:  stloc.s 5
-	IL_0e18:  br IL_1536
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttributeConfigurator::get_Properties
 
-	IL_0e1d:  ldloc.1 
-	IL_0e1e:  isinst [mscorlib]System.Version
-	IL_0e23:  brfalse IL_0e4f
+    // method line 2056
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.FrameworkInfo get_TargetFramework ()  cil managed 
+    {
+        // Method begins at RVA 0x7d90
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.FrameworkInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.FrameworkInfo NAnt.Core.Element/AttributeConfigurator::_targetFramework
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0e28:  ldloc.3 
-	IL_0e29:  isinst [mscorlib]System.Version
-	IL_0e2e:  brfalse IL_0e4f
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttributeConfigurator::get_TargetFramework
 
-	IL_0e33:  nop 
-	IL_0e34:  ldloc.1 
-	IL_0e35:  castclass [mscorlib]System.IComparable
-	IL_0e3a:  ldloc.3 
-	IL_0e3b:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0e40:  ldc.i4.0 
-	IL_0e41:  cgt 
-	IL_0e43:  box [mscorlib]System.Boolean
-	IL_0e48:  stloc.s 5
-	IL_0e4a:  br IL_1536
+    // method line 2057
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_UnprocessedAttributes ()  cil managed 
+    {
+        // Method begins at RVA 0x7dac
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [System]System.Collections.Specialized.StringCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::_unprocessedAttributes
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0e4f:  ldarg.0 
-	IL_0e50:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0e55:  ldstr "NA1037"
-	IL_0e5a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0e5f:  ldarg.0 
-	IL_0e60:  ldloc.1 
-	IL_0e61:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0e66:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_0e6b:  ldarg.0 
-	IL_0e6c:  ldloc.3 
-	IL_0e6d:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0e72:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_0e77:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0e7c:  ldloc.0 
-	IL_0e7d:  ldloc.s 4
-	IL_0e7f:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0e84:  throw 
-	IL_0e85:  ldloc.1 
-	IL_0e86:  isinst [mscorlib]System.String
-	IL_0e8b:  brfalse IL_0ec5
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttributeConfigurator::get_UnprocessedAttributes
 
-	IL_0e90:  ldloc.3 
-	IL_0e91:  isinst [mscorlib]System.String
-	IL_0e96:  brfalse IL_0ec5
+    // method line 2058
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_UnprocessedChildNodes ()  cil managed 
+    {
+        // Method begins at RVA 0x7dc8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [System]System.Collections.Specialized.StringCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::_unprocessedChildNodes
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0e9b:  nop 
-	IL_0e9c:  ldloc.1 
-	IL_0e9d:  castclass [mscorlib]System.String
-	IL_0ea2:  ldloc.3 
-	IL_0ea3:  castclass [mscorlib]System.String
-	IL_0ea8:  ldc.i4.0 
-	IL_0ea9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0eae:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_0eb3:  ldc.i4.0 
-	IL_0eb4:  cgt 
-	IL_0eb6:  ldc.i4.0 
-	IL_0eb7:  ceq 
-	IL_0eb9:  box [mscorlib]System.Boolean
-	IL_0ebe:  stloc.s 5
-	IL_0ec0:  br IL_1536
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method AttributeConfigurator::get_UnprocessedChildNodes
 
-	IL_0ec5:  ldloc.1 
-	IL_0ec6:  isinst [mscorlib]System.Boolean
-	IL_0ecb:  brfalse IL_0efa
+    // method line 2059
+    .method public hidebysig specialname 
+           instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
+    {
+        // Method begins at RVA 0x7de4
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class [System.Xml]System.Xml.XmlNamespaceManager	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0ed0:  ldloc.3 
-	IL_0ed1:  isinst [mscorlib]System.Boolean
-	IL_0ed6:  brfalse IL_0efa
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method AttributeConfigurator::get_NamespaceManager
 
-	IL_0edb:  nop 
-	IL_0edc:  ldloc.1 
-	IL_0edd:  castclass [mscorlib]System.IComparable
-	IL_0ee2:  ldloc.3 
-	IL_0ee3:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0ee8:  ldc.i4.0 
-	IL_0ee9:  cgt 
-	IL_0eeb:  ldc.i4.0 
-	IL_0eec:  ceq 
-	IL_0eee:  box [mscorlib]System.Boolean
-	IL_0ef3:  stloc.s 5
-	IL_0ef5:  br IL_1536
+    // method line 2060
+    .method public hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0x7e04
+	// Code size 468 (0x1d4)
+	.maxstack 5
+	.locals init (
+		class [mscorlib]System.Type	V_0,
+		class [mscorlib]System.Reflection.PropertyInfo[]	V_1,
+		class [mscorlib]System.Reflection.PropertyInfo	V_2,
+		class [mscorlib]System.Reflection.PropertyInfo[]	V_3,
+		int32	V_4,
+		class [mscorlib]System.Reflection.MethodInfo	V_5,
+		class [mscorlib]System.Reflection.MethodInfo	V_6)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_0007:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  ldc.i4.s 0x34
+	IL_0010:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo[] class [mscorlib]System.Type::GetProperties(valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_0015:  stloc.1 
+	IL_0016:  nop 
+	IL_0017:  ldloc.1 
+	IL_0018:  stloc.3 
+	IL_0019:  ldc.i4.0 
+	IL_001a:  stloc.s 4
+	IL_001c:  br IL_00f3
 
-	IL_0efa:  ldloc.1 
-	IL_0efb:  isinst [mscorlib]System.Int32
-	IL_0f00:  brfalse IL_0f2f
+	IL_0021:  ldloc.3 
+	IL_0022:  ldloc.s 4
+	IL_0024:  ldelem.ref 
+	IL_0025:  stloc.2 
+	IL_0026:  nop 
+	IL_0027:  ldnull 
+	IL_0028:  stloc.s 5
+	IL_002a:  ldnull 
+	IL_002b:  stloc.s 6
+	IL_002d:  ldloc.2 
+	IL_002e:  ldc.i4.1 
+	IL_002f:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Reflection.PropertyInfo::GetSetMethod(bool)
+	IL_0034:  stloc.s 6
+	IL_0036:  ldloc.s 6
+	IL_0038:  ldnull 
+	IL_0039:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Inequality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_003e:  brfalse IL_0060
 
-	IL_0f05:  ldloc.3 
-	IL_0f06:  isinst [mscorlib]System.Int32
-	IL_0f0b:  brfalse IL_0f2f
+	IL_0043:  ldloc.s 6
+	IL_0045:  callvirt instance bool class [mscorlib]System.Reflection.MethodBase::get_IsPublic()
+	IL_004a:  brtrue IL_0060
 
-	IL_0f10:  nop 
-	IL_0f11:  ldloc.1 
-	IL_0f12:  castclass [mscorlib]System.IComparable
-	IL_0f17:  ldloc.3 
-	IL_0f18:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0f1d:  ldc.i4.0 
-	IL_0f1e:  cgt 
-	IL_0f20:  ldc.i4.0 
-	IL_0f21:  ceq 
-	IL_0f23:  box [mscorlib]System.Boolean
-	IL_0f28:  stloc.s 5
-	IL_0f2a:  br IL_1536
+	IL_004f:  ldloc.s 6
+	IL_0051:  callvirt instance bool class [mscorlib]System.Reflection.MethodBase::get_IsFamily()
+	IL_0056:  brtrue IL_0060
 
-	IL_0f2f:  ldloc.1 
-	IL_0f30:  isinst [mscorlib]System.Int32
-	IL_0f35:  brfalse IL_0f69
+	IL_005b:  nop 
+	IL_005c:  ldnull 
+	IL_005d:  stloc.s 6
+	IL_005f:  nop 
+	IL_0060:  ldloc.2 
+	IL_0061:  ldc.i4.1 
+	IL_0062:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Reflection.PropertyInfo::GetGetMethod(bool)
+	IL_0067:  stloc.s 5
+	IL_0069:  ldloc.s 5
+	IL_006b:  ldnull 
+	IL_006c:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Inequality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_0071:  brfalse IL_0093
 
-	IL_0f3a:  ldloc.3 
-	IL_0f3b:  isinst [mscorlib]System.Int64
-	IL_0f40:  brfalse IL_0f69
+	IL_0076:  ldloc.s 5
+	IL_0078:  callvirt instance bool class [mscorlib]System.Reflection.MethodBase::get_IsPublic()
+	IL_007d:  brtrue IL_0093
 
-	IL_0f45:  nop 
-	IL_0f46:  ldloc.1 
-	IL_0f47:  call int64 class [mscorlib]System.Convert::ToInt64(object)
-	IL_0f4c:  box [mscorlib]System.Int64
-	IL_0f51:  ldloc.3 
-	IL_0f52:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0f57:  ldc.i4.0 
-	IL_0f58:  cgt 
-	IL_0f5a:  ldc.i4.0 
-	IL_0f5b:  ceq 
-	IL_0f5d:  box [mscorlib]System.Boolean
-	IL_0f62:  stloc.s 5
-	IL_0f64:  br IL_1536
+	IL_0082:  ldloc.s 5
+	IL_0084:  callvirt instance bool class [mscorlib]System.Reflection.MethodBase::get_IsFamily()
+	IL_0089:  brtrue IL_0093
 
-	IL_0f69:  ldloc.1 
-	IL_0f6a:  isinst [mscorlib]System.Int32
-	IL_0f6f:  brfalse IL_0fa3
+	IL_008e:  nop 
+	IL_008f:  ldnull 
+	IL_0090:  stloc.s 5
+	IL_0092:  nop 
+	IL_0093:  ldloc.s 5
+	IL_0095:  ldnull 
+	IL_0096:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_009b:  brfalse IL_00b2
 
-	IL_0f74:  ldloc.3 
-	IL_0f75:  isinst [mscorlib]System.Double
-	IL_0f7a:  brfalse IL_0fa3
+	IL_00a0:  ldloc.s 6
+	IL_00a2:  ldnull 
+	IL_00a3:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_00a8:  brfalse IL_00b2
 
-	IL_0f7f:  nop 
-	IL_0f80:  ldloc.1 
-	IL_0f81:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_0f86:  box [mscorlib]System.Double
-	IL_0f8b:  ldloc.3 
-	IL_0f8c:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0f91:  ldc.i4.0 
-	IL_0f92:  cgt 
-	IL_0f94:  ldc.i4.0 
-	IL_0f95:  ceq 
-	IL_0f97:  box [mscorlib]System.Boolean
-	IL_0f9c:  stloc.s 5
-	IL_0f9e:  br IL_1536
+	IL_00ad:  br IL_00ed
 
-	IL_0fa3:  ldloc.1 
-	IL_0fa4:  isinst [mscorlib]System.Int64
-	IL_0fa9:  brfalse IL_0fd8
+	IL_00b2:  ldarg.0 
+	IL_00b3:  ldloc.2 
+	IL_00b4:  callvirt instance bool class NAnt.Core.Element/AttributeConfigurator::InitializeAttribute(class [mscorlib]System.Reflection.PropertyInfo)
+	IL_00b9:  brfalse IL_00c4
 
-	IL_0fae:  ldloc.3 
-	IL_0faf:  isinst [mscorlib]System.Int64
-	IL_0fb4:  brfalse IL_0fd8
+	IL_00be:  nop 
+	IL_00bf:  br IL_00ed
 
-	IL_0fb9:  nop 
-	IL_0fba:  ldloc.1 
-	IL_0fbb:  castclass [mscorlib]System.IComparable
-	IL_0fc0:  ldloc.3 
-	IL_0fc1:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_0fc6:  ldc.i4.0 
-	IL_0fc7:  cgt 
-	IL_0fc9:  ldc.i4.0 
-	IL_0fca:  ceq 
-	IL_0fcc:  box [mscorlib]System.Boolean
-	IL_0fd1:  stloc.s 5
-	IL_0fd3:  br IL_1536
+	IL_00c4:  ldarg.0 
+	IL_00c5:  ldloc.2 
+	IL_00c6:  callvirt instance bool class NAnt.Core.Element/AttributeConfigurator::InitializeBuildElementCollection(class [mscorlib]System.Reflection.PropertyInfo)
+	IL_00cb:  brfalse IL_00d6
 
-	IL_0fd8:  ldloc.1 
-	IL_0fd9:  isinst [mscorlib]System.Int64
-	IL_0fde:  brfalse IL_1017
+	IL_00d0:  nop 
+	IL_00d1:  br IL_00ed
 
-	IL_0fe3:  ldloc.3 
-	IL_0fe4:  isinst [mscorlib]System.Int32
-	IL_0fe9:  brfalse IL_1017
+	IL_00d6:  ldarg.0 
+	IL_00d7:  ldloc.2 
+	IL_00d8:  ldloc.s 5
+	IL_00da:  ldloc.s 6
+	IL_00dc:  callvirt instance bool class NAnt.Core.Element/AttributeConfigurator::InitializeChildElement(class [mscorlib]System.Reflection.PropertyInfo, class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_00e1:  brfalse IL_00ec
 
-	IL_0fee:  nop 
-	IL_0fef:  ldloc.1 
-	IL_0ff0:  castclass [mscorlib]System.IComparable
-	IL_0ff5:  ldloc.3 
-	IL_0ff6:  call int64 class [mscorlib]System.Convert::ToInt64(object)
-	IL_0ffb:  box [mscorlib]System.Int64
-	IL_1000:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_1005:  ldc.i4.0 
-	IL_1006:  cgt 
-	IL_1008:  ldc.i4.0 
-	IL_1009:  ceq 
-	IL_100b:  box [mscorlib]System.Boolean
-	IL_1010:  stloc.s 5
-	IL_1012:  br IL_1536
+	IL_00e6:  nop 
+	IL_00e7:  br IL_00ed
 
-	IL_1017:  ldloc.1 
-	IL_1018:  isinst [mscorlib]System.Int64
-	IL_101d:  brfalse IL_1051
+	IL_00ec:  nop 
+	IL_00ed:  ldloc.s 4
+	IL_00ef:  ldc.i4.1 
+	IL_00f0:  add 
+	IL_00f1:  stloc.s 4
+	IL_00f3:  ldloc.s 4
+	IL_00f5:  ldloc.3 
+	IL_00f6:  ldlen 
+	IL_00f7:  conv.i4 
+	IL_00f8:  blt IL_0021
 
-	IL_1022:  ldloc.3 
-	IL_1023:  isinst [mscorlib]System.Double
-	IL_1028:  brfalse IL_1051
+	IL_00fd:  ldarg.0 
+	IL_00fe:  callvirt instance void class NAnt.Core.Element/AttributeConfigurator::InitializeOrderedChildElements()
+	IL_0103:  ldloc.0 
+	IL_0104:  ldtoken NAnt.Core.Target
+	IL_0109:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_010e:  callvirt instance bool class [mscorlib]System.Type::Equals(class [mscorlib]System.Type)
+	IL_0113:  brtrue IL_01d3
 
-	IL_102d:  nop 
-	IL_102e:  ldloc.1 
-	IL_102f:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_1034:  box [mscorlib]System.Double
-	IL_1039:  ldloc.3 
-	IL_103a:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_103f:  ldc.i4.0 
-	IL_1040:  cgt 
-	IL_1042:  ldc.i4.0 
-	IL_1043:  ceq 
-	IL_1045:  box [mscorlib]System.Boolean
-	IL_104a:  stloc.s 5
-	IL_104c:  br IL_1536
+	IL_0118:  ldloc.0 
+	IL_0119:  ldtoken NAnt.Core.Target
+	IL_011e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0123:  callvirt instance bool class [mscorlib]System.Type::IsSubclassOf(class [mscorlib]System.Type)
+	IL_0128:  brtrue IL_01d3
 
-	IL_1051:  ldloc.1 
-	IL_1052:  isinst [mscorlib]System.Double
-	IL_1057:  brfalse IL_1086
+	IL_012d:  nop 
+	IL_012e:  ldarg.0 
+	IL_012f:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedAttributes()
+	IL_0134:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0139:  ldc.i4.0 
+	IL_013a:  ble IL_0177
 
-	IL_105c:  ldloc.3 
-	IL_105d:  isinst [mscorlib]System.Double
-	IL_1062:  brfalse IL_1086
+	IL_013f:  nop 
+	IL_0140:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0145:  ldstr "NA1027"
+	IL_014a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_014f:  ldarg.0 
+	IL_0150:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedAttributes()
+	IL_0155:  ldc.i4.0 
+	IL_0156:  callvirt instance string class [System]System.Collections.Specialized.StringCollection::get_Item(int32)
+	IL_015b:  ldarg.0 
+	IL_015c:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_0161:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_0166:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_016b:  ldarg.0 
+	IL_016c:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_0171:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0176:  throw 
+	IL_0177:  ldarg.0 
+	IL_0178:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_017d:  callvirt instance bool class NAnt.Core.Element::get_CustomXmlProcessing()
+	IL_0182:  brtrue IL_01d2
 
-	IL_1067:  nop 
-	IL_1068:  ldloc.1 
-	IL_1069:  castclass [mscorlib]System.IComparable
-	IL_106e:  ldloc.3 
-	IL_106f:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_1074:  ldc.i4.0 
-	IL_1075:  cgt 
-	IL_1077:  ldc.i4.0 
-	IL_1078:  ceq 
-	IL_107a:  box [mscorlib]System.Boolean
-	IL_107f:  stloc.s 5
-	IL_1081:  br IL_1536
+	IL_0187:  nop 
+	IL_0188:  ldarg.0 
+	IL_0189:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
+	IL_018e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0193:  ldc.i4.0 
+	IL_0194:  ble IL_01d1
 
-	IL_1086:  ldloc.1 
-	IL_1087:  isinst [mscorlib]System.Double
-	IL_108c:  brfalse IL_10c5
+	IL_0199:  nop 
+	IL_019a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_019f:  ldstr "NA1032"
+	IL_01a4:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_01a9:  ldarg.0 
+	IL_01aa:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_01af:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_01b4:  ldarg.0 
+	IL_01b5:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
+	IL_01ba:  ldc.i4.0 
+	IL_01bb:  callvirt instance string class [System]System.Collections.Specialized.StringCollection::get_Item(int32)
+	IL_01c0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_01c5:  ldarg.0 
+	IL_01c6:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_01cb:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_01d0:  throw 
+	IL_01d1:  nop 
+	IL_01d2:  nop 
+	IL_01d3:  ret 
+    } // end of method AttributeConfigurator::Initialize
 
-	IL_1091:  ldloc.3 
-	IL_1092:  isinst [mscorlib]System.Int32
-	IL_1097:  brfalse IL_10c5
+    // method line 2061
+    .method family virtual hidebysig newslot 
+           instance default bool InitializeAttribute (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
+    {
+        // Method begins at RVA 0x7fe4
+	// Code size 1082 (0x43a)
+	.maxstack 6
+	.locals init (
+		class [System.Xml]System.Xml.XmlNode	V_0,
+		string	V_1,
+		class [System.Xml]System.Xml.XmlNode	V_2,
+		class NAnt.Core.Attributes.FrameworkConfigurableAttribute	V_3,
+		class NAnt.Core.BuildException	V_4,
+		class NAnt.Core.Attributes.BuildAttributeAttribute	V_5,
+		bool	V_6,
+		class [mscorlib]System.ObsoleteAttribute	V_7,
+		string	V_8,
+		class [mscorlib]System.Type	V_9,
+		object[]	V_10,
+		class NAnt.Core.Attributes.ValidatorAttribute	V_11,
+		object[]	V_12,
+		int32	V_13,
+		class NAnt.Core.ValidationException	V_14,
+		class NAnt.Core.Element/AttributeConfigurator/IAttributeSetter	V_15)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldnull 
+	IL_0004:  stloc.1 
+	IL_0005:  ldnull 
+	IL_0006:  stloc.2 
+	IL_0007:  ldarg.1 
+	IL_0008:  ldtoken NAnt.Core.Attributes.FrameworkConfigurableAttribute
+	IL_000d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0012:  ldc.i4.0 
+	IL_0013:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_0018:  castclass NAnt.Core.Attributes.FrameworkConfigurableAttribute
+	IL_001d:  stloc.3 
+	IL_001e:  ldloc.3 
+	IL_001f:  brfalse IL_0117
 
-	IL_109c:  nop 
-	IL_109d:  ldloc.1 
-	IL_109e:  castclass [mscorlib]System.IComparable
-	IL_10a3:  ldloc.3 
-	IL_10a4:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_10a9:  box [mscorlib]System.Double
-	IL_10ae:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_10b3:  ldc.i4.0 
-	IL_10b4:  cgt 
-	IL_10b6:  ldc.i4.0 
-	IL_10b7:  ceq 
-	IL_10b9:  box [mscorlib]System.Boolean
-	IL_10be:  stloc.s 5
-	IL_10c0:  br IL_1536
+	IL_0024:  nop 
+	IL_0025:  ldarg.0 
+	IL_0026:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_002b:  ldarg.0 
+	IL_002c:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Element/AttributeConfigurator::get_TargetFramework()
+	IL_0031:  ldloc.3 
+	IL_0032:  callvirt instance string class NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_Name()
+	IL_0037:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::GetAttributeConfigurationNode(class NAnt.Core.FrameworkInfo, string)
+	IL_003c:  stloc.2 
+	IL_003d:  ldloc.2 
+	IL_003e:  brfalse IL_00d7
 
-	IL_10c5:  ldloc.1 
-	IL_10c6:  isinst [mscorlib]System.Double
-	IL_10cb:  brfalse IL_1104
+	IL_0043:  nop 
+	IL_0044:  ldloc.2 
+	IL_0045:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_InnerText()
+	IL_004a:  stloc.1 
+	IL_004b:  ldloc.3 
+	IL_004c:  callvirt instance bool class NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_ExpandProperties()
+	IL_0051:  brfalse IL_00d1
 
-	IL_10d0:  ldloc.3 
-	IL_10d1:  isinst [mscorlib]System.Int64
-	IL_10d6:  brfalse IL_1104
+	IL_0056:  ldarg.0 
+	IL_0057:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Element/AttributeConfigurator::get_TargetFramework()
+	IL_005c:  brfalse IL_00d1
 
-	IL_10db:  nop 
-	IL_10dc:  ldloc.1 
-	IL_10dd:  castclass [mscorlib]System.IComparable
-	IL_10e2:  ldloc.3 
-	IL_10e3:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_10e8:  box [mscorlib]System.Double
-	IL_10ed:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_10f2:  ldc.i4.0 
-	IL_10f3:  cgt 
-	IL_10f5:  ldc.i4.0 
-	IL_10f6:  ceq 
-	IL_10f8:  box [mscorlib]System.Boolean
-	IL_10fd:  stloc.s 5
-	IL_10ff:  br IL_1536
+	IL_0061:  nop 
+	.try { // 0
+	  IL_0062:  nop 
+	  IL_0063:  ldarg.0 
+	  IL_0064:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Element/AttributeConfigurator::get_TargetFramework()
+	  IL_0069:  callvirt instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
+	  IL_006e:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	  IL_0073:  ldloc.1 
+	  IL_0074:  ldarg.0 
+	  IL_0075:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	  IL_007a:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
+	  IL_007f:  stloc.1 
+	  IL_0080:  nop 
+	  IL_0081:  leave IL_00d0
 
-	IL_1104:  ldloc.1 
-	IL_1105:  isinst [mscorlib]System.DateTime
-	IL_110a:  brfalse IL_1139
+	} // end .try 0
+	catch class NAnt.Core.BuildException { // 0
+	  IL_0086:  stloc.s 4
+	  IL_0088:  nop 
+	  IL_0089:  ldloc.3 
+	  IL_008a:  callvirt instance bool class NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_Required()
+	  IL_008f:  brfalse IL_00c8
 
-	IL_110f:  ldloc.3 
-	IL_1110:  isinst [mscorlib]System.DateTime
-	IL_1115:  brfalse IL_1139
+	  IL_0094:  nop 
+	  IL_0095:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_009a:  ldstr "NA1015"
+	  IL_009f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_00a4:  ldloc.3 
+	  IL_00a5:  callvirt instance string class NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_Name()
+	  IL_00aa:  ldarg.0 
+	  IL_00ab:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	  IL_00b0:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_00b5:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_00ba:  ldarg.0 
+	  IL_00bb:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	  IL_00c0:  ldloc.s 4
+	  IL_00c2:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_00c7:  throw 
+	  IL_00c8:  ldnull 
+	  IL_00c9:  stloc.1 
+	  IL_00ca:  nop 
+	  IL_00cb:  leave IL_00d0
 
-	IL_111a:  nop 
-	IL_111b:  ldloc.1 
-	IL_111c:  castclass [mscorlib]System.IComparable
-	IL_1121:  ldloc.3 
-	IL_1122:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_1127:  ldc.i4.0 
-	IL_1128:  cgt 
-	IL_112a:  ldc.i4.0 
-	IL_112b:  ceq 
-	IL_112d:  box [mscorlib]System.Boolean
-	IL_1132:  stloc.s 5
-	IL_1134:  br IL_1536
+	} // end handler 0
+	IL_00d0:  nop 
+	IL_00d1:  nop 
+	IL_00d2:  br IL_0116
 
-	IL_1139:  ldloc.1 
-	IL_113a:  isinst [mscorlib]System.TimeSpan
-	IL_113f:  brfalse IL_116e
+	IL_00d7:  nop 
+	IL_00d8:  ldloc.3 
+	IL_00d9:  callvirt instance bool class NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_Required()
+	IL_00de:  brfalse IL_0115
 
-	IL_1144:  ldloc.3 
-	IL_1145:  isinst [mscorlib]System.TimeSpan
-	IL_114a:  brfalse IL_116e
+	IL_00e3:  nop 
+	IL_00e4:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00e9:  ldstr "NA1015"
+	IL_00ee:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00f3:  ldloc.3 
+	IL_00f4:  callvirt instance string class NAnt.Core.Attributes.FrameworkConfigurableAttribute::get_Name()
+	IL_00f9:  ldarg.0 
+	IL_00fa:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_00ff:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_0104:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0109:  ldarg.0 
+	IL_010a:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_010f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0114:  throw 
+	IL_0115:  nop 
+	IL_0116:  nop 
+	IL_0117:  ldarg.1 
+	IL_0118:  ldtoken NAnt.Core.Attributes.BuildAttributeAttribute
+	IL_011d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0122:  ldc.i4.0 
+	IL_0123:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_0128:  castclass NAnt.Core.Attributes.BuildAttributeAttribute
+	IL_012d:  stloc.s 5
+	IL_012f:  ldloc.s 5
+	IL_0131:  brfalse IL_02ec
 
-	IL_114f:  nop 
-	IL_1150:  ldloc.1 
-	IL_1151:  castclass [mscorlib]System.IComparable
-	IL_1156:  ldloc.3 
-	IL_1157:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_115c:  ldc.i4.0 
-	IL_115d:  cgt 
-	IL_115f:  ldc.i4.0 
-	IL_1160:  ceq 
-	IL_1162:  box [mscorlib]System.Boolean
-	IL_1167:  stloc.s 5
-	IL_1169:  br IL_1536
+	IL_0136:  nop 
+	IL_0137:  ldsfld class [log4net]log4net.ILog NAnt.Core.Element/AttributeConfigurator::logger
+	IL_013c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0141:  ldstr "String_FoundAttribute"
+	IL_0146:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_014b:  ldloc.s 5
+	IL_014d:  callvirt instance string class NAnt.Core.Attributes.BuildAttributeAttribute::get_Name()
+	IL_0152:  ldarg.1 
+	IL_0153:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_0158:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_015d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0162:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
+	IL_0167:  ldarg.0 
+	IL_0168:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_016d:  brfalse IL_018c
 
-	IL_116e:  ldloc.1 
-	IL_116f:  isinst [mscorlib]System.Version
-	IL_1174:  brfalse IL_11a3
+	IL_0172:  nop 
+	IL_0173:  ldarg.0 
+	IL_0174:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_0179:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_017e:  ldloc.s 5
+	IL_0180:  callvirt instance string class NAnt.Core.Attributes.BuildAttributeAttribute::get_Name()
+	IL_0185:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_018a:  stloc.0 
+	IL_018b:  nop 
+	IL_018c:  ldloc.0 
+	IL_018d:  brfalse IL_02aa
 
-	IL_1179:  ldloc.3 
-	IL_117a:  isinst [mscorlib]System.Version
-	IL_117f:  brfalse IL_11a3
+	IL_0192:  nop 
+	IL_0193:  ldarg.0 
+	IL_0194:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedAttributes()
+	IL_0199:  ldloc.0 
+	IL_019a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_019f:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Remove(string)
+	IL_01a4:  ldloc.s 5
+	IL_01a6:  callvirt instance bool class NAnt.Core.Attributes.BuildAttributeAttribute::get_ProcessXml()
+	IL_01ab:  brtrue IL_01e9
 
-	IL_1184:  nop 
-	IL_1185:  ldloc.1 
-	IL_1186:  castclass [mscorlib]System.IComparable
-	IL_118b:  ldloc.3 
-	IL_118c:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_1191:  ldc.i4.0 
-	IL_1192:  cgt 
-	IL_1194:  ldc.i4.0 
-	IL_1195:  ceq 
-	IL_1197:  box [mscorlib]System.Boolean
-	IL_119c:  stloc.s 5
-	IL_119e:  br IL_1536
+	IL_01b0:  nop 
+	IL_01b1:  ldsfld class [log4net]log4net.ILog NAnt.Core.Element/AttributeConfigurator::logger
+	IL_01b6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01bb:  ldstr "String_SkippingAttribute"
+	IL_01c0:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_01c5:  ldloc.s 5
+	IL_01c7:  callvirt instance string class NAnt.Core.Attributes.BuildAttributeAttribute::get_Name()
+	IL_01cc:  ldarg.1 
+	IL_01cd:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_01d2:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_01d7:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_01dc:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
+	IL_01e1:  ldc.i4.1 
+	IL_01e2:  stloc.s 6
+	IL_01e4:  br IL_0437
 
-	IL_11a3:  ldarg.0 
-	IL_11a4:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_11a9:  ldstr "NA1049"
-	IL_11ae:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_11b3:  ldarg.0 
-	IL_11b4:  ldloc.1 
-	IL_11b5:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_11ba:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_11bf:  ldarg.0 
-	IL_11c0:  ldloc.3 
-	IL_11c1:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_11c6:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_11cb:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_11d0:  ldloc.0 
-	IL_11d1:  ldloc.s 4
-	IL_11d3:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_11d8:  throw 
-	IL_11d9:  ldloc.1 
-	IL_11da:  isinst [mscorlib]System.String
-	IL_11df:  brfalse IL_1219
+	IL_01e9:  ldloc.0 
+	IL_01ea:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_01ef:  stloc.1 
+	IL_01f0:  ldloc.s 5
+	IL_01f2:  callvirt instance bool class NAnt.Core.Attributes.BuildAttributeAttribute::get_ExpandProperties()
+	IL_01f7:  brfalse IL_0211
 
-	IL_11e4:  ldloc.3 
-	IL_11e5:  isinst [mscorlib]System.String
-	IL_11ea:  brfalse IL_1219
+	IL_01fc:  nop 
+	IL_01fd:  ldarg.0 
+	IL_01fe:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element/AttributeConfigurator::get_Properties()
+	IL_0203:  ldloc.1 
+	IL_0204:  ldarg.0 
+	IL_0205:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_020a:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
+	IL_020f:  stloc.1 
+	IL_0210:  nop 
+	IL_0211:  ldarg.1 
+	IL_0212:  ldtoken [mscorlib]System.ObsoleteAttribute
+	IL_0217:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_021c:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	IL_0221:  castclass [mscorlib]System.ObsoleteAttribute
+	IL_0226:  stloc.s 7
+	IL_0228:  ldloc.s 7
+	IL_022a:  brfalse IL_02a4
 
-	IL_11ef:  nop 
-	IL_11f0:  ldloc.1 
-	IL_11f1:  castclass [mscorlib]System.String
-	IL_11f6:  ldloc.3 
-	IL_11f7:  castclass [mscorlib]System.String
-	IL_11fc:  ldc.i4.0 
-	IL_11fd:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_1202:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_1207:  ldc.i4.0 
-	IL_1208:  clt 
-	IL_120a:  ldc.i4.0 
-	IL_120b:  ceq 
-	IL_120d:  box [mscorlib]System.Boolean
-	IL_1212:  stloc.s 5
-	IL_1214:  br IL_1536
+	IL_022f:  nop 
+	IL_0230:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0235:  ldstr "NA1014"
+	IL_023a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_023f:  ldloc.s 5
+	IL_0241:  callvirt instance string class NAnt.Core.Attributes.BuildAttributeAttribute::get_Name()
+	IL_0246:  ldarg.0 
+	IL_0247:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_024c:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_0251:  ldloc.s 7
+	IL_0253:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
+	IL_0258:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_025d:  stloc.s 8
+	IL_025f:  ldloc.s 7
+	IL_0261:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
+	IL_0266:  brfalse IL_027a
 
-	IL_1219:  ldloc.1 
-	IL_121a:  isinst [mscorlib]System.Boolean
-	IL_121f:  brfalse IL_124e
+	IL_026b:  nop 
+	IL_026c:  ldloc.s 8
+	IL_026e:  ldarg.0 
+	IL_026f:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_0274:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0279:  throw 
+	IL_027a:  nop 
+	IL_027b:  ldarg.0 
+	IL_027c:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_0281:  ldc.i4 4000
+	IL_0286:  ldarg.0 
+	IL_0287:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_028c:  callvirt instance string object::ToString()
+	IL_0291:  ldstr " "
+	IL_0296:  ldloc.s 8
+	IL_0298:  call string string::Concat(string, string, string)
+	IL_029d:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_02a2:  nop 
+	IL_02a3:  nop 
+	IL_02a4:  nop 
+	IL_02a5:  br IL_02eb
 
-	IL_1224:  ldloc.3 
-	IL_1225:  isinst [mscorlib]System.Boolean
-	IL_122a:  brfalse IL_124e
+	IL_02aa:  nop 
+	IL_02ab:  ldloc.s 5
+	IL_02ad:  callvirt instance bool class NAnt.Core.Attributes.BuildAttributeAttribute::get_Required()
+	IL_02b2:  brfalse IL_02ea
 
-	IL_122f:  nop 
-	IL_1230:  ldloc.1 
-	IL_1231:  castclass [mscorlib]System.IComparable
-	IL_1236:  ldloc.3 
-	IL_1237:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_123c:  ldc.i4.0 
-	IL_123d:  clt 
-	IL_123f:  ldc.i4.0 
-	IL_1240:  ceq 
-	IL_1242:  box [mscorlib]System.Boolean
-	IL_1247:  stloc.s 5
-	IL_1249:  br IL_1536
+	IL_02b7:  nop 
+	IL_02b8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_02bd:  ldstr "NA1033"
+	IL_02c2:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_02c7:  ldloc.s 5
+	IL_02c9:  callvirt instance string class NAnt.Core.Attributes.BuildAttributeAttribute::get_Name()
+	IL_02ce:  ldarg.0 
+	IL_02cf:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_02d4:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_02d9:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_02de:  ldarg.0 
+	IL_02df:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_02e4:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_02e9:  throw 
+	IL_02ea:  nop 
+	IL_02eb:  nop 
+	IL_02ec:  ldloc.1 
+	IL_02ed:  brfalse IL_0428
 
-	IL_124e:  ldloc.1 
-	IL_124f:  isinst [mscorlib]System.Int32
-	IL_1254:  brfalse IL_1283
+	IL_02f2:  nop 
+	IL_02f3:  ldloc.0 
+	IL_02f4:  brtrue IL_02fd
 
-	IL_1259:  ldloc.3 
-	IL_125a:  isinst [mscorlib]System.Int32
-	IL_125f:  brfalse IL_1283
+	IL_02f9:  nop 
+	IL_02fa:  ldloc.2 
+	IL_02fb:  stloc.0 
+	IL_02fc:  nop 
+	IL_02fd:  ldsfld class [log4net]log4net.ILog NAnt.Core.Element/AttributeConfigurator::logger
+	IL_0302:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0307:  ldstr "String_SettingValue"
+	IL_030c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0311:  ldarg.1 
+	IL_0312:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_0317:  ldloc.1 
+	IL_0318:  ldarg.1 
+	IL_0319:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_031e:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_0323:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_0328:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
+	IL_032d:  ldarg.1 
+	IL_032e:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
+	IL_0333:  brfalse IL_0427
 
-	IL_1264:  nop 
-	IL_1265:  ldloc.1 
-	IL_1266:  castclass [mscorlib]System.IComparable
-	IL_126b:  ldloc.3 
-	IL_126c:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_1271:  ldc.i4.0 
-	IL_1272:  clt 
-	IL_1274:  ldc.i4.0 
-	IL_1275:  ceq 
-	IL_1277:  box [mscorlib]System.Boolean
-	IL_127c:  stloc.s 5
-	IL_127e:  br IL_1536
+	IL_0338:  nop 
+	IL_0339:  ldarg.1 
+	IL_033a:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_033f:  stloc.s 9
+	IL_0341:  ldarg.1 
+	IL_0342:  ldtoken NAnt.Core.Attributes.ValidatorAttribute
+	IL_0347:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_034c:  call class [mscorlib]System.Attribute[] class [mscorlib]System.Attribute::GetCustomAttributes(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	IL_0351:  castclass class NAnt.Core.Attributes.ValidatorAttribute[]
+	IL_0356:  stloc.s 10
+	.try { // 1
+	  IL_0358:  nop 
+	  IL_0359:  nop 
+	  IL_035a:  ldloc.s 10
+	  IL_035c:  stloc.s 12
+	  IL_035e:  ldc.i4.0 
+	  IL_035f:  stloc.s 13
+	  IL_0361:  br IL_03bd
 
-	IL_1283:  ldloc.1 
-	IL_1284:  isinst [mscorlib]System.Int32
-	IL_1289:  brfalse IL_12bd
+	  IL_0366:  ldloc.s 12
+	  IL_0368:  ldloc.s 13
+	  IL_036a:  ldelem.ref 
+	  IL_036b:  castclass NAnt.Core.Attributes.ValidatorAttribute
+	  IL_0370:  stloc.s 11
+	  IL_0372:  nop 
+	  IL_0373:  ldsfld class [log4net]log4net.ILog NAnt.Core.Element/AttributeConfigurator::logger
+	  IL_0378:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_037d:  ldstr "String_ValidatingElement"
+	  IL_0382:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0387:  ldloc.s 11
+	  IL_0389:  callvirt instance class [mscorlib]System.Type object::GetType()
+	  IL_038e:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	  IL_0393:  ldarg.0 
+	  IL_0394:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	  IL_0399:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_039e:  ldloc.0 
+	  IL_039f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_03a4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_03a9:  callvirt instance void class [log4net]log4net.ILog::Info(object)
+	  IL_03ae:  ldloc.s 11
+	  IL_03b0:  ldloc.1 
+	  IL_03b1:  callvirt instance void class NAnt.Core.Attributes.ValidatorAttribute::Validate(object)
+	  IL_03b6:  nop 
+	  IL_03b7:  ldloc.s 13
+	  IL_03b9:  ldc.i4.1 
+	  IL_03ba:  add 
+	  IL_03bb:  stloc.s 13
+	  IL_03bd:  ldloc.s 13
+	  IL_03bf:  ldloc.s 12
+	  IL_03c1:  ldlen 
+	  IL_03c2:  conv.i4 
+	  IL_03c3:  blt IL_0366
 
-	IL_128e:  ldloc.3 
-	IL_128f:  isinst [mscorlib]System.Int64
-	IL_1294:  brfalse IL_12bd
+	  IL_03c8:  nop 
+	  IL_03c9:  leave IL_0405
 
-	IL_1299:  nop 
-	IL_129a:  ldloc.1 
-	IL_129b:  call int64 class [mscorlib]System.Convert::ToInt64(object)
-	IL_12a0:  box [mscorlib]System.Int64
-	IL_12a5:  ldloc.3 
-	IL_12a6:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_12ab:  ldc.i4.0 
-	IL_12ac:  clt 
-	IL_12ae:  ldc.i4.0 
-	IL_12af:  ceq 
-	IL_12b1:  box [mscorlib]System.Boolean
-	IL_12b6:  stloc.s 5
-	IL_12b8:  br IL_1536
+	} // end .try 1
+	catch class NAnt.Core.ValidationException { // 1
+	  IL_03ce:  stloc.s 14
+	  IL_03d0:  nop 
+	  IL_03d1:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_03d6:  ldstr "NA1022"
+	  IL_03db:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_03e0:  ldloc.1 
+	  IL_03e1:  ldloc.0 
+	  IL_03e2:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_03e7:  ldarg.0 
+	  IL_03e8:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	  IL_03ed:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_03f2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_03f7:  ldarg.0 
+	  IL_03f8:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	  IL_03fd:  ldloc.s 14
+	  IL_03ff:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0404:  throw 
+	} // end handler 1
+	IL_0405:  ldarg.0 
+	IL_0406:  ldloc.s 9
+	IL_0408:  call instance class NAnt.Core.Element/AttributeConfigurator/IAttributeSetter class NAnt.Core.Element/AttributeConfigurator::CreateAttributeSetter(class [mscorlib]System.Type)
+	IL_040d:  stloc.s 15
+	IL_040f:  ldloc.s 15
+	IL_0411:  ldloc.0 
+	IL_0412:  ldarg.0 
+	IL_0413:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_0418:  ldarg.1 
+	IL_0419:  ldloc.1 
+	IL_041a:  callvirt instance void class NAnt.Core.Element/AttributeConfigurator/IAttributeSetter::Set(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Element, class [mscorlib]System.Reflection.PropertyInfo, string)
+	IL_041f:  ldc.i4.1 
+	IL_0420:  stloc.s 6
+	IL_0422:  br IL_0437
 
-	IL_12bd:  ldloc.1 
-	IL_12be:  isinst [mscorlib]System.Int32
-	IL_12c3:  brfalse IL_12f7
+	IL_0427:  nop 
+	IL_0428:  ldloc.s 5
+	IL_042a:  ldnull 
+	IL_042b:  ceq 
+	IL_042d:  ldc.i4.0 
+	IL_042e:  ceq 
+	IL_0430:  stloc.s 6
+	IL_0432:  br IL_0437
 
-	IL_12c8:  ldloc.3 
-	IL_12c9:  isinst [mscorlib]System.Double
-	IL_12ce:  brfalse IL_12f7
+	IL_0437:  ldloc.s 6
+	IL_0439:  ret 
+    } // end of method AttributeConfigurator::InitializeAttribute
 
-	IL_12d3:  nop 
-	IL_12d4:  ldloc.1 
-	IL_12d5:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_12da:  box [mscorlib]System.Double
-	IL_12df:  ldloc.3 
-	IL_12e0:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_12e5:  ldc.i4.0 
-	IL_12e6:  clt 
-	IL_12e8:  ldc.i4.0 
-	IL_12e9:  ceq 
-	IL_12eb:  box [mscorlib]System.Boolean
-	IL_12f0:  stloc.s 5
-	IL_12f2:  br IL_1536
+    // method line 2062
+    .method family virtual hidebysig newslot 
+           instance default bool InitializeBuildElementCollection (class [mscorlib]System.Reflection.PropertyInfo propertyInfo)  cil managed 
+    {
+        // Method begins at RVA 0x8448
+	// Code size 2340 (0x924)
+	.maxstack 8
+	.locals init (
+		class NAnt.Core.Attributes.BuildElementArrayAttribute	V_0,
+		class NAnt.Core.Attributes.BuildElementCollectionAttribute	V_1,
+		bool	V_2,
+		class [mscorlib]System.Type	V_3,
+		class [mscorlib]System.Reflection.MethodInfo	V_4,
+		class [mscorlib]System.Reflection.MethodInfo[]	V_5,
+		int32	V_6,
+		class [mscorlib]System.Reflection.ParameterInfo	V_7,
+		class [System.Xml]System.Xml.XmlNodeList	V_8,
+		class [mscorlib]System.ObsoleteAttribute	V_9,
+		string	V_10,
+		string	V_11,
+		class [mscorlib]System.ObsoleteAttribute	V_12,
+		string	V_13,
+		class [mscorlib]System.Array	V_14,
+		int32	V_15,
+		class [System.Xml]System.Xml.XmlNode	V_16,
+		class [mscorlib]System.Collections.IEnumerator	V_17,
+		class NAnt.Core.Element	V_18,
+		class NAnt.Core.Configuration.ConditionalElement	V_19,
+		class [mscorlib]System.IDisposable	V_20,
+		class [mscorlib]System.Array	V_21,
+		class [mscorlib]System.Reflection.TargetInvocationException	V_22,
+		class [mscorlib]System.Reflection.MethodInfo	V_23,
+		class [mscorlib]System.Reflection.MethodInfo[]	V_24,
+		class [mscorlib]System.Reflection.MethodInfo	V_25,
+		class [mscorlib]System.Reflection.MethodInfo[]	V_26,
+		int32	V_27,
+		class [mscorlib]System.Reflection.ParameterInfo	V_28,
+		object	V_29,
+		object	V_30,
+		int32	V_31,
+		object	V_32)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldnull 
+	IL_0004:  stloc.1 
+	IL_0005:  ldarg.1 
+	IL_0006:  ldtoken NAnt.Core.Attributes.BuildElementArrayAttribute
+	IL_000b:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0010:  ldc.i4.0 
+	IL_0011:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_0016:  castclass NAnt.Core.Attributes.BuildElementArrayAttribute
+	IL_001b:  stloc.0 
+	IL_001c:  ldarg.1 
+	IL_001d:  ldtoken NAnt.Core.Attributes.BuildElementCollectionAttribute
+	IL_0022:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0027:  ldc.i4.0 
+	IL_0028:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_002d:  castclass NAnt.Core.Attributes.BuildElementCollectionAttribute
+	IL_0032:  stloc.1 
+	IL_0033:  ldloc.0 
+	IL_0034:  brtrue IL_0047
+
+	IL_0039:  ldloc.1 
+	IL_003a:  brtrue IL_0047
+
+	IL_003f:  nop 
+	IL_0040:  ldc.i4.0 
+	IL_0041:  stloc.2 
+	IL_0042:  br IL_0922
+
+	IL_0047:  ldarg.1 
+	IL_0048:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_004d:  callvirt instance bool class [mscorlib]System.Type::get_IsArray()
+	IL_0052:  brtrue IL_009e
+
+	IL_0057:  ldtoken [mscorlib]System.Collections.ICollection
+	IL_005c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0061:  ldarg.1 
+	IL_0062:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_0067:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_006c:  brtrue IL_009e
+
+	IL_0071:  nop 
+	IL_0072:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0077:  ldstr "NA1031"
+	IL_007c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0081:  ldloc.0 
+	IL_0082:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_0087:  ldarg.0 
+	IL_0088:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
+	IL_008d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0092:  ldarg.0 
+	IL_0093:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_0098:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_009d:  throw 
+	IL_009e:  ldnull 
+	IL_009f:  stloc.3 
+	IL_00a0:  ldloc.0 
+	IL_00a1:  brfalse IL_00b4
+
+	IL_00a6:  nop 
+	IL_00a7:  ldloc.0 
+	IL_00a8:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Attributes.BuildElementArrayAttribute::get_ElementType()
+	IL_00ad:  stloc.3 
+	IL_00ae:  nop 
+	IL_00af:  br IL_00bd
+
+	IL_00b4:  nop 
+	IL_00b5:  ldloc.1 
+	IL_00b6:  callvirt instance class [mscorlib]System.Type class NAnt.Core.Attributes.BuildElementArrayAttribute::get_ElementType()
+	IL_00bb:  stloc.3 
+	IL_00bc:  nop 
+	IL_00bd:  ldarg.1 
+	IL_00be:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_00c3:  callvirt instance bool class [mscorlib]System.Type::get_IsArray()
+	IL_00c8:  brfalse IL_0126
+
+	IL_00cd:  nop 
+	IL_00ce:  ldarg.1 
+	IL_00cf:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
+	IL_00d4:  brtrue IL_0106
+
+	IL_00d9:  nop 
+	IL_00da:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00df:  ldstr "NA1016"
+	IL_00e4:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00e9:  ldloc.0 
+	IL_00ea:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_00ef:  ldarg.0 
+	IL_00f0:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
+	IL_00f5:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_00fa:  ldarg.0 
+	IL_00fb:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_0100:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0105:  throw 
+	IL_0106:  ldloc.3 
+	IL_0107:  ldnull 
+	IL_0108:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_010d:  brfalse IL_0120
+
+	IL_0112:  nop 
+	IL_0113:  ldarg.1 
+	IL_0114:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_0119:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Type::GetElementType()
+	IL_011e:  stloc.3 
+	IL_011f:  nop 
+	IL_0120:  nop 
+	IL_0121:  br IL_01de
+
+	IL_0126:  nop 
+	IL_0127:  ldarg.1 
+	IL_0128:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanRead()
+	IL_012d:  brtrue IL_015f
+
+	IL_0132:  nop 
+	IL_0133:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0138:  ldstr "NA1019"
+	IL_013d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0142:  ldloc.0 
+	IL_0143:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_0148:  ldarg.0 
+	IL_0149:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
+	IL_014e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0153:  ldarg.0 
+	IL_0154:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_0159:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_015e:  throw 
+	IL_015f:  ldloc.3 
+	IL_0160:  ldnull 
+	IL_0161:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0166:  brfalse IL_01dd
+
+	IL_016b:  nop 
+	IL_016c:  nop 
+	IL_016d:  ldarg.1 
+	IL_016e:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_0173:  ldc.i4.s 0x14
+	IL_0175:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_017a:  stloc.s 5
+	IL_017c:  ldc.i4.0 
+	IL_017d:  stloc.s 6
+	IL_017f:  br IL_01d1
+
+	IL_0184:  ldloc.s 5
+	IL_0186:  ldloc.s 6
+	IL_0188:  ldelem.ref 
+	IL_0189:  stloc.s 4
+	IL_018b:  nop 
+	IL_018c:  ldloc.s 4
+	IL_018e:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_0193:  ldstr "Add"
+	IL_0198:  call bool string::op_Equality(string, string)
+	IL_019d:  brfalse IL_01ca
+
+	IL_01a2:  ldloc.s 4
+	IL_01a4:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_01a9:  ldlen 
+	IL_01aa:  conv.i4 
+	IL_01ab:  ldc.i4.1 
+	IL_01ac:  bne.un IL_01ca
+
+	IL_01b1:  nop 
+	IL_01b2:  ldloc.s 4
+	IL_01b4:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_01b9:  ldc.i4.0 
+	IL_01ba:  ldelem.ref 
+	IL_01bb:  stloc.s 7
+	IL_01bd:  ldloc.s 7
+	IL_01bf:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	IL_01c4:  stloc.3 
+	IL_01c5:  br IL_01dc
+
+	IL_01ca:  nop 
+	IL_01cb:  ldloc.s 6
+	IL_01cd:  ldc.i4.1 
+	IL_01ce:  add 
+	IL_01cf:  stloc.s 6
+	IL_01d1:  ldloc.s 6
+	IL_01d3:  ldloc.s 5
+	IL_01d5:  ldlen 
+	IL_01d6:  conv.i4 
+	IL_01d7:  blt IL_0184
+
+	IL_01dc:  nop 
+	IL_01dd:  nop 
+	IL_01de:  ldloc.3 
+	IL_01df:  ldnull 
+	IL_01e0:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_01e5:  brtrue IL_01ff
+
+	IL_01ea:  ldtoken NAnt.Core.Element
+	IL_01ef:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_01f4:  ldloc.3 
+	IL_01f5:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_01fa:  brtrue IL_0231
+
+	IL_01ff:  nop 
+	IL_0200:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0205:  ldstr "NA1140"
+	IL_020a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_020f:  ldarg.1 
+	IL_0210:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_0215:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_021a:  ldarg.1 
+	IL_021b:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_0220:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0225:  ldarg.0 
+	IL_0226:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_022b:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0230:  throw 
+	IL_0231:  ldnull 
+	IL_0232:  stloc.s 8
+	IL_0234:  ldloc.1 
+	IL_0235:  brfalse IL_0448
+
+	IL_023a:  nop 
+	IL_023b:  ldarg.0 
+	IL_023c:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_0241:  ldstr "nant:"
+	IL_0246:  ldloc.1 
+	IL_0247:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_024c:  call string string::Concat(string, string)
+	IL_0251:  ldarg.0 
+	IL_0252:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
+	IL_0257:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_025c:  stloc.s 8
+	IL_025e:  ldloc.s 8
+	IL_0260:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_0265:  brtrue IL_02a7
+
+	IL_026a:  ldloc.1 
+	IL_026b:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_Required()
+	IL_0270:  brfalse IL_02a7
+
+	IL_0275:  nop 
+	IL_0276:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_027b:  ldstr "NA1021"
+	IL_0280:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0285:  ldloc.1 
+	IL_0286:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_028b:  ldarg.0 
+	IL_028c:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_0291:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_0296:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_029b:  ldarg.0 
+	IL_029c:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_02a1:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_02a6:  throw 
+	IL_02a7:  ldloc.s 8
+	IL_02a9:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_02ae:  ldc.i4.1 
+	IL_02af:  bne.un IL_0408
+
+	IL_02b4:  nop 
+	IL_02b5:  ldarg.1 
+	IL_02b6:  ldtoken [mscorlib]System.ObsoleteAttribute
+	IL_02bb:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_02c0:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	IL_02c5:  castclass [mscorlib]System.ObsoleteAttribute
+	IL_02ca:  stloc.s 9
+	IL_02cc:  ldloc.s 9
+	IL_02ce:  brfalse IL_0347
+
+	IL_02d3:  nop 
+	IL_02d4:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_02d9:  ldstr "NA1034"
+	IL_02de:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_02e3:  ldloc.1 
+	IL_02e4:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_02e9:  ldarg.0 
+	IL_02ea:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_02ef:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_02f4:  ldloc.s 9
+	IL_02f6:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
+	IL_02fb:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_0300:  stloc.s 10
+	IL_0302:  ldloc.s 9
+	IL_0304:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
+	IL_0309:  brfalse IL_031d
+
+	IL_030e:  nop 
+	IL_030f:  ldloc.s 10
+	IL_0311:  ldarg.0 
+	IL_0312:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_0317:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_031c:  throw 
+	IL_031d:  nop 
+	IL_031e:  ldarg.0 
+	IL_031f:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_0324:  ldc.i4 4000
+	IL_0329:  ldarg.0 
+	IL_032a:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_032f:  callvirt instance string object::ToString()
+	IL_0334:  ldstr " "
+	IL_0339:  ldloc.s 10
+	IL_033b:  call string string::Concat(string, string, string)
+	IL_0340:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_0345:  nop 
+	IL_0346:  nop 
+	IL_0347:  ldarg.0 
+	IL_0348:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
+	IL_034d:  ldloc.s 8
+	IL_034f:  ldc.i4.0 
+	IL_0350:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNodeList::get_ItemOf(int32)
+	IL_0355:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_035a:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Remove(string)
+	IL_035f:  ldloc.1 
+	IL_0360:  callvirt instance string class NAnt.Core.Attributes.BuildElementCollectionAttribute::get_ChildElementName()
+	IL_0365:  stloc.s 11
+	IL_0367:  ldloc.s 11
+	IL_0369:  brtrue IL_03a1
+
+	IL_036e:  nop 
+	IL_036f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0374:  ldstr "NA1026"
+	IL_0379:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_037e:  ldloc.3 
+	IL_037f:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0384:  ldloc.1 
+	IL_0385:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_038a:  ldarg.0 
+	IL_038b:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
+	IL_0390:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_0395:  ldarg.0 
+	IL_0396:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_039b:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_03a0:  throw 
+	IL_03a1:  ldloc.s 8
+	IL_03a3:  ldc.i4.0 
+	IL_03a4:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNodeList::get_ItemOf(int32)
+	IL_03a9:  ldstr "nant:"
+	IL_03ae:  ldloc.s 11
+	IL_03b0:  call string string::Concat(string, string)
+	IL_03b5:  ldarg.0 
+	IL_03b6:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
+	IL_03bb:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_03c0:  stloc.s 8
+	IL_03c2:  ldloc.s 8
+	IL_03c4:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_03c9:  brtrue IL_0402
+
+	IL_03ce:  ldloc.1 
+	IL_03cf:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_Required()
+	IL_03d4:  brfalse IL_0402
+
+	IL_03d9:  nop 
+	IL_03da:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_03df:  ldstr "NA1021"
+	IL_03e4:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_03e9:  ldloc.s 11
+	IL_03eb:  ldloc.1 
+	IL_03ec:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_03f1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_03f6:  ldarg.0 
+	IL_03f7:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_03fc:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0401:  throw 
+	IL_0402:  nop 
+	IL_0403:  br IL_0442
+
+	IL_0408:  ldloc.s 8
+	IL_040a:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_040f:  ldc.i4.1 
+	IL_0410:  ble IL_0442
+
+	IL_0415:  nop 
+	IL_0416:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_041b:  ldstr "NA1030"
+	IL_0420:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0425:  ldloc.1 
+	IL_0426:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_042b:  ldarg.0 
+	IL_042c:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
+	IL_0431:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0436:  ldarg.0 
+	IL_0437:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_043c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0441:  throw 
+	IL_0442:  nop 
+	IL_0443:  br IL_0568
+
+	IL_0448:  nop 
+	IL_0449:  ldarg.0 
+	IL_044a:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_044f:  ldstr "nant:"
+	IL_0454:  ldloc.0 
+	IL_0455:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_045a:  call string string::Concat(string, string)
+	IL_045f:  ldarg.0 
+	IL_0460:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
+	IL_0465:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_046a:  stloc.s 8
+	IL_046c:  ldloc.s 8
+	IL_046e:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_0473:  ldc.i4.0 
+	IL_0474:  ble IL_052a
+
+	IL_0479:  nop 
+	IL_047a:  ldarg.1 
+	IL_047b:  ldtoken [mscorlib]System.ObsoleteAttribute
+	IL_0480:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0485:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
+	IL_048a:  castclass [mscorlib]System.ObsoleteAttribute
+	IL_048f:  stloc.s 12
+	IL_0491:  ldloc.s 12
+	IL_0493:  brfalse IL_050c
+
+	IL_0498:  nop 
+	IL_0499:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_049e:  ldstr "NA1034"
+	IL_04a3:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_04a8:  ldloc.0 
+	IL_04a9:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_04ae:  ldarg.0 
+	IL_04af:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_04b4:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_04b9:  ldloc.s 12
+	IL_04bb:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
+	IL_04c0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_04c5:  stloc.s 13
+	IL_04c7:  ldloc.s 12
+	IL_04c9:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
+	IL_04ce:  brfalse IL_04e2
+
+	IL_04d3:  nop 
+	IL_04d4:  ldloc.s 13
+	IL_04d6:  ldarg.0 
+	IL_04d7:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_04dc:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_04e1:  throw 
+	IL_04e2:  nop 
+	IL_04e3:  ldarg.0 
+	IL_04e4:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_04e9:  ldc.i4 4000
+	IL_04ee:  ldarg.0 
+	IL_04ef:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_04f4:  callvirt instance string object::ToString()
+	IL_04f9:  ldstr " "
+	IL_04fe:  ldloc.s 13
+	IL_0500:  call string string::Concat(string, string, string)
+	IL_0505:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
+	IL_050a:  nop 
+	IL_050b:  nop 
+	IL_050c:  ldarg.0 
+	IL_050d:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
+	IL_0512:  ldloc.s 8
+	IL_0514:  ldc.i4.0 
+	IL_0515:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNodeList::get_ItemOf(int32)
+	IL_051a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_051f:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Remove(string)
+	IL_0524:  nop 
+	IL_0525:  br IL_0567
+
+	IL_052a:  ldloc.0 
+	IL_052b:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_Required()
+	IL_0530:  brfalse IL_0567
+
+	IL_0535:  nop 
+	IL_0536:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_053b:  ldstr "NA1035"
+	IL_0540:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0545:  ldloc.0 
+	IL_0546:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_054b:  ldarg.0 
+	IL_054c:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_0551:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_0556:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_055b:  ldarg.0 
+	IL_055c:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_0561:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0566:  throw 
+	IL_0567:  nop 
+	IL_0568:  ldloc.0 
+	IL_0569:  brfalse IL_0588
+
+	IL_056e:  nop 
+	IL_056f:  ldloc.0 
+	IL_0570:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_ProcessXml()
+	IL_0575:  brtrue IL_0582
+
+	IL_057a:  nop 
+	IL_057b:  ldc.i4.1 
+	IL_057c:  stloc.2 
+	IL_057d:  br IL_0922
+
+	IL_0582:  nop 
+	IL_0583:  br IL_059b
+
+	IL_0588:  ldloc.1 
+	IL_0589:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_ProcessXml()
+	IL_058e:  brtrue IL_059b
+
+	IL_0593:  nop 
+	IL_0594:  ldc.i4.1 
+	IL_0595:  stloc.2 
+	IL_0596:  br IL_0922
+
+	IL_059b:  ldloc.3 
+	IL_059c:  ldloc.s 8
+	IL_059e:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_05a3:  call class [mscorlib]System.Array class [mscorlib]System.Array::CreateInstance(class [mscorlib]System.Type, int32)
+	IL_05a8:  stloc.s 14
+	IL_05aa:  ldc.i4.0 
+	IL_05ab:  stloc.s 15
+	IL_05ad:  nop 
+	IL_05ae:  ldloc.s 8
+	IL_05b0:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_05b5:  stloc.s 17
+	.try { // 0
+	  IL_05b7:  br IL_063e
+
+	  IL_05bc:  ldloc.s 17
+	  IL_05be:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_05c3:  castclass [System.Xml]System.Xml.XmlNode
+	  IL_05c8:  stloc.s 16
+	  IL_05ca:  nop 
+	  IL_05cb:  ldloc.s 16
+	  IL_05cd:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
+	  IL_05d2:  ldc.i4.1 
+	  IL_05d3:  bne.un IL_05f9
+
+	  IL_05d8:  ldloc.s 16
+	  IL_05da:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	  IL_05df:  ldarg.0 
+	  IL_05e0:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
+	  IL_05e5:  ldstr "nant"
+	  IL_05ea:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
+	  IL_05ef:  callvirt instance bool string::Equals(string)
+	  IL_05f4:  brtrue IL_05ff
+
+	  IL_05f9:  nop 
+	  IL_05fa:  leave IL_063e
+
+	  IL_05ff:  ldarg.0 
+	  IL_0600:  ldloc.s 16
+	  IL_0602:  ldloc.3 
+	  IL_0603:  callvirt instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::InitializeBuildElement(class [System.Xml]System.Xml.XmlNode, class [mscorlib]System.Type)
+	  IL_0608:  stloc.s 18
+	  IL_060a:  ldloc.s 18
+	  IL_060c:  isinst NAnt.Core.Configuration.ConditionalElement
+	  IL_0611:  stloc.s 19
+	  IL_0613:  ldloc.s 19
+	  IL_0615:  brfalse IL_062c
+
+	  IL_061a:  ldloc.s 19
+	  IL_061c:  callvirt instance bool class NAnt.Core.Configuration.ConditionalElement::get_Enabled()
+	  IL_0621:  brtrue IL_062c
+
+	  IL_0626:  nop 
+	  IL_0627:  leave IL_063e
+
+	  IL_062c:  ldloc.s 14
+	  IL_062e:  ldloc.s 18
+	  IL_0630:  ldloc.s 15
+	  IL_0632:  callvirt instance void class [mscorlib]System.Array::SetValue(object, int32)
+	  IL_0637:  ldloc.s 15
+	  IL_0639:  ldc.i4.1 
+	  IL_063a:  add 
+	  IL_063b:  stloc.s 15
+	  IL_063d:  nop 
+	  IL_063e:  ldloc.s 17
+	  IL_0640:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0645:  brtrue IL_05bc
+
+	  IL_064a:  leave IL_0666
+
+	} // end .try 0
+	finally  { // 0
+	  IL_064f:  ldloc.s 17
+	  IL_0651:  isinst [mscorlib]System.IDisposable
+	  IL_0656:  dup 
+	  IL_0657:  stloc.s 20
+	  IL_0659:  brfalse IL_0665
+
+	  IL_065e:  ldloc.s 20
+	  IL_0660:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0665:  endfinally 
+	} // end handler 0
+	IL_0666:  ldarg.1 
+	IL_0667:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_066c:  callvirt instance bool class [mscorlib]System.Type::get_IsArray()
+	IL_0671:  brfalse IL_073e
+
+	IL_0676:  nop 
+	.try { // 1
+	  IL_0677:  nop 
+	  IL_0678:  ldloc.s 15
+	  IL_067a:  ldloc.s 14
+	  IL_067c:  callvirt instance int32 class [mscorlib]System.Array::get_Length()
+	  IL_0681:  beq IL_06b3
+
+	  IL_0686:  nop 
+	  IL_0687:  ldloc.3 
+	  IL_0688:  ldloc.s 15
+	  IL_068a:  call class [mscorlib]System.Array class [mscorlib]System.Array::CreateInstance(class [mscorlib]System.Type, int32)
+	  IL_068f:  stloc.s 21
+	  IL_0691:  ldloc.s 14
+	  IL_0693:  ldc.i4.0 
+	  IL_0694:  ldloc.s 21
+	  IL_0696:  ldc.i4.0 
+	  IL_0697:  ldloc.s 15
+	  IL_0699:  call void class [mscorlib]System.Array::Copy(class [mscorlib]System.Array, int32, class [mscorlib]System.Array, int32, int32)
+	  IL_069e:  ldarg.1 
+	  IL_069f:  ldarg.0 
+	  IL_06a0:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	  IL_06a5:  ldloc.s 21
+	  IL_06a7:  ldnull 
+	  IL_06a8:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, object[])
+	  IL_06ad:  nop 
+	  IL_06ae:  br IL_06c4
+
+	  IL_06b3:  nop 
+	  IL_06b4:  ldarg.1 
+	  IL_06b5:  ldarg.0 
+	  IL_06b6:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	  IL_06bb:  ldloc.s 14
+	  IL_06bd:  ldnull 
+	  IL_06be:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, object[])
+	  IL_06c3:  nop 
+	  IL_06c4:  nop 
+	  IL_06c5:  leave IL_0738
+
+	} // end .try 1
+	catch class [mscorlib]System.Reflection.TargetInvocationException { // 1
+	  IL_06ca:  stloc.s 22
+	  IL_06cc:  nop 
+	  IL_06cd:  ldloc.s 22
+	  IL_06cf:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
+	  IL_06d4:  isinst NAnt.Core.BuildException
+	  IL_06d9:  brfalse IL_06e7
+
+	  IL_06de:  nop 
+	  IL_06df:  ldloc.s 22
+	  IL_06e1:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
+	  IL_06e6:  throw 
+	  IL_06e7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_06ec:  ldstr "NA1012"
+	  IL_06f1:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_06f6:  ldc.i4.4 
+	  IL_06f7:  newarr [mscorlib]System.Object
+	  IL_06fc:  dup 
+	  IL_06fd:  ldc.i4.0 
+	  IL_06fe:  ldloc.3 
+	  IL_06ff:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	  IL_0704:  stelem.ref 
+	  IL_0705:  dup 
+	  IL_0706:  ldc.i4.1 
+	  IL_0707:  ldarg.1 
+	  IL_0708:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	  IL_070d:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	  IL_0712:  stelem.ref 
+	  IL_0713:  dup 
+	  IL_0714:  ldc.i4.2 
+	  IL_0715:  ldarg.1 
+	  IL_0716:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	  IL_071b:  stelem.ref 
+	  IL_071c:  dup 
+	  IL_071d:  ldc.i4.3 
+	  IL_071e:  ldarg.0 
+	  IL_071f:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
+	  IL_0724:  stelem.ref 
+	  IL_0725:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	  IL_072a:  ldarg.0 
+	  IL_072b:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	  IL_0730:  ldloc.s 22
+	  IL_0732:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0737:  throw 
+	} // end handler 1
+	IL_0738:  nop 
+	IL_0739:  br IL_091b
+
+	IL_073e:  nop 
+	IL_073f:  ldnull 
+	IL_0740:  stloc.s 23
+	IL_0742:  ldarg.1 
+	IL_0743:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_0748:  ldc.i4.s 0x14
+	IL_074a:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_074f:  stloc.s 24
+	IL_0751:  nop 
+	IL_0752:  ldloc.s 24
+	IL_0754:  stloc.s 26
+	IL_0756:  ldc.i4.0 
+	IL_0757:  stloc.s 27
+	IL_0759:  br IL_07bb
+
+	IL_075e:  ldloc.s 26
+	IL_0760:  ldloc.s 27
+	IL_0762:  ldelem.ref 
+	IL_0763:  stloc.s 25
+	IL_0765:  nop 
+	IL_0766:  ldloc.s 25
+	IL_0768:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_076d:  ldstr "Add"
+	IL_0772:  call bool string::op_Equality(string, string)
+	IL_0777:  brfalse IL_07b4
+
+	IL_077c:  ldloc.s 25
+	IL_077e:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_0783:  ldlen 
+	IL_0784:  conv.i4 
+	IL_0785:  ldc.i4.1 
+	IL_0786:  bne.un IL_07b4
+
+	IL_078b:  nop 
+	IL_078c:  ldloc.s 25
+	IL_078e:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_0793:  ldc.i4.0 
+	IL_0794:  ldelem.ref 
+	IL_0795:  stloc.s 28
+	IL_0797:  ldloc.s 28
+	IL_0799:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	IL_079e:  ldloc.3 
+	IL_079f:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_07a4:  brfalse IL_07b3
+
+	IL_07a9:  nop 
+	IL_07aa:  ldloc.s 25
+	IL_07ac:  stloc.s 23
+	IL_07ae:  br IL_07c6
+
+	IL_07b3:  nop 
+	IL_07b4:  nop 
+	IL_07b5:  ldloc.s 27
+	IL_07b7:  ldc.i4.1 
+	IL_07b8:  add 
+	IL_07b9:  stloc.s 27
+	IL_07bb:  ldloc.s 27
+	IL_07bd:  ldloc.s 26
+	IL_07bf:  ldlen 
+	IL_07c0:  conv.i4 
+	IL_07c1:  blt IL_075e
+
+	IL_07c6:  ldloc.s 23
+	IL_07c8:  ldnull 
+	IL_07c9:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_07ce:  brfalse IL_0823
+
+	IL_07d3:  nop 
+	IL_07d4:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_07d9:  ldstr "NA1020"
+	IL_07de:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_07e3:  ldc.i4.4 
+	IL_07e4:  newarr [mscorlib]System.Object
+	IL_07e9:  dup 
+	IL_07ea:  ldc.i4.0 
+	IL_07eb:  ldloc.3 
+	IL_07ec:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_07f1:  stelem.ref 
+	IL_07f2:  dup 
+	IL_07f3:  ldc.i4.1 
+	IL_07f4:  ldarg.1 
+	IL_07f5:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_07fa:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_07ff:  stelem.ref 
+	IL_0800:  dup 
+	IL_0801:  ldc.i4.2 
+	IL_0802:  ldarg.1 
+	IL_0803:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_0808:  stelem.ref 
+	IL_0809:  dup 
+	IL_080a:  ldc.i4.3 
+	IL_080b:  ldarg.0 
+	IL_080c:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
+	IL_0811:  stelem.ref 
+	IL_0812:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0817:  ldarg.0 
+	IL_0818:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_081d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0822:  throw 
+	IL_0823:  ldarg.1 
+	IL_0824:  ldarg.0 
+	IL_0825:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_082a:  ldc.i4.0 
+	IL_082b:  ldnull 
+	IL_082c:  ldnull 
+	IL_082d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0832:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_0837:  stloc.s 29
+	IL_0839:  ldloc.s 29
+	IL_083b:  brtrue IL_08da
+
+	IL_0840:  nop 
+	IL_0841:  ldarg.1 
+	IL_0842:  callvirt instance bool class [mscorlib]System.Reflection.PropertyInfo::get_CanWrite()
+	IL_0847:  brtrue IL_08ad
+
+	IL_084c:  nop 
+	IL_084d:  ldloc.0 
+	IL_084e:  brfalse IL_0880
+
+	IL_0853:  nop 
+	IL_0854:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0859:  ldstr "NA1093"
+	IL_085e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0863:  ldloc.0 
+	IL_0864:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_0869:  ldarg.0 
+	IL_086a:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
+	IL_086f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0874:  ldarg.0 
+	IL_0875:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_087a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_087f:  throw 
+	IL_0880:  nop 
+	IL_0881:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0886:  ldstr "NA1029"
+	IL_088b:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0890:  ldloc.1 
+	IL_0891:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_0896:  ldarg.0 
+	IL_0897:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
+	IL_089c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_08a1:  ldarg.0 
+	IL_08a2:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_08a7:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_08ac:  throw 
+	IL_08ad:  ldarg.1 
+	IL_08ae:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_08b3:  ldc.i4.s 0x14
+	IL_08b5:  ldnull 
+	IL_08b6:  ldnull 
+	IL_08b7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_08bc:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_08c1:  stloc.s 30
+	IL_08c3:  ldarg.1 
+	IL_08c4:  ldarg.0 
+	IL_08c5:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_08ca:  ldloc.s 30
+	IL_08cc:  ldc.i4.0 
+	IL_08cd:  ldnull 
+	IL_08ce:  ldnull 
+	IL_08cf:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_08d4:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_08d9:  nop 
+	IL_08da:  ldc.i4.0 
+	IL_08db:  stloc.s 31
+	IL_08dd:  br IL_0911
+
+	IL_08e2:  nop 
+	IL_08e3:  ldloc.s 14
+	IL_08e5:  ldloc.s 31
+	IL_08e7:  callvirt instance object class [mscorlib]System.Array::GetValue(int32)
+	IL_08ec:  stloc.s 32
+	IL_08ee:  ldloc.s 23
+	IL_08f0:  ldloc.s 29
+	IL_08f2:  ldc.i4.0 
+	IL_08f3:  ldnull 
+	IL_08f4:  ldc.i4.1 
+	IL_08f5:  newarr [mscorlib]System.Object
+	IL_08fa:  dup 
+	IL_08fb:  ldc.i4.0 
+	IL_08fc:  ldloc.s 32
+	IL_08fe:  stelem.ref 
+	IL_08ff:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0904:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_0909:  pop 
+	IL_090a:  nop 
+	IL_090b:  ldloc.s 31
+	IL_090d:  ldc.i4.1 
+	IL_090e:  add 
+	IL_090f:  stloc.s 31
+	IL_0911:  ldloc.s 31
+	IL_0913:  ldloc.s 15
+	IL_0915:  blt IL_08e2
+
+	IL_091a:  nop 
+	IL_091b:  ldc.i4.1 
+	IL_091c:  stloc.2 
+	IL_091d:  br IL_0922
+
+	IL_0922:  ldloc.2 
+	IL_0923:  ret 
+    } // end of method AttributeConfigurator::InitializeBuildElementCollection
+
+    // method line 2063
+    .method family virtual hidebysig newslot 
+           instance default bool InitializeChildElement (class [mscorlib]System.Reflection.PropertyInfo propertyInfo, class [mscorlib]System.Reflection.MethodInfo getter, class [mscorlib]System.Reflection.MethodInfo setter)  cil managed 
+    {
+        // Method begins at RVA 0x8d94
+	// Code size 362 (0x16a)
+	.maxstack 7
+	.locals init (
+		class NAnt.Core.Attributes.BuildElementAttribute	V_0,
+		bool	V_1,
+		class [System.Xml]System.Xml.XmlNode	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldtoken NAnt.Core.Attributes.BuildElementAttribute
+	IL_0007:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000c:  ldc.i4.0 
+	IL_000d:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_0012:  castclass NAnt.Core.Attributes.BuildElementAttribute
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  brtrue IL_0026
+
+	IL_001e:  nop 
+	IL_001f:  ldc.i4.0 
+	IL_0020:  stloc.1 
+	IL_0021:  br IL_0168
+
+	IL_0026:  ldarg.0 
+	IL_0027:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_002c:  callvirt instance class [System.Xml]System.Xml.XmlDocument class [System.Xml]System.Xml.XmlNode::get_OwnerDocument()
+	IL_0031:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_0036:  brtrue IL_0054
+
+	IL_003b:  nop 
+	IL_003c:  ldarg.0 
+	IL_003d:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_0042:  ldloc.0 
+	IL_0043:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_0048:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlNode::get_Item(string)
+	IL_004d:  stloc.2 
+	IL_004e:  nop 
+	IL_004f:  br IL_007d
+
+	IL_0054:  nop 
+	IL_0055:  ldarg.0 
+	IL_0056:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_005b:  ldloc.0 
+	IL_005c:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_0061:  ldarg.0 
+	IL_0062:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_0067:  callvirt instance class [System.Xml]System.Xml.XmlDocument class [System.Xml]System.Xml.XmlNode::get_OwnerDocument()
+	IL_006c:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_0071:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	IL_0076:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlNode::get_Item(string, string)
+	IL_007b:  stloc.2 
+	IL_007c:  nop 
+	IL_007d:  ldloc.2 
+	IL_007e:  brtrue IL_00c0
+
+	IL_0083:  ldloc.0 
+	IL_0084:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_Required()
+	IL_0089:  brfalse IL_00c0
+
+	IL_008e:  nop 
+	IL_008f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0094:  ldstr "NA1013"
+	IL_0099:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_009e:  ldloc.0 
+	IL_009f:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_00a4:  ldarg.0 
+	IL_00a5:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_00aa:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_00af:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_00b4:  ldarg.0 
+	IL_00b5:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_00ba:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_00bf:  throw 
+	IL_00c0:  ldloc.2 
+	IL_00c1:  brfalse IL_0161
+
+	IL_00c6:  nop 
+	IL_00c7:  ldarg.0 
+	IL_00c8:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
+	IL_00cd:  ldloc.2 
+	IL_00ce:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_00d3:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Remove(string)
+	IL_00d8:  ldloc.0 
+	IL_00d9:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_ProcessXml()
+	IL_00de:  brtrue IL_00eb
+
+	IL_00e3:  nop 
+	IL_00e4:  ldc.i4.1 
+	IL_00e5:  stloc.1 
+	IL_00e6:  br IL_0168
+
+	IL_00eb:  ldarg.0 
+	IL_00ec:  ldarg.1 
+	IL_00ed:  ldarg.2 
+	IL_00ee:  ldarg.3 
+	IL_00ef:  ldloc.2 
+	IL_00f0:  ldarg.0 
+	IL_00f1:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Element/AttributeConfigurator::get_Properties()
+	IL_00f6:  ldarg.0 
+	IL_00f7:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Element/AttributeConfigurator::get_TargetFramework()
+	IL_00fc:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::CreateChildBuildElement(class [mscorlib]System.Reflection.PropertyInfo, class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
+	IL_0101:  pop 
+	IL_0102:  ldarg.0 
+	IL_0103:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_0108:  ldstr "nant:"
+	IL_010d:  ldloc.0 
+	IL_010e:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_0113:  call string string::Concat(string, string)
+	IL_0118:  ldarg.0 
+	IL_0119:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager()
+	IL_011e:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0123:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_0128:  ldc.i4.1 
+	IL_0129:  ble IL_0160
+
+	IL_012e:  nop 
+	IL_012f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0134:  ldstr "NA1186"
+	IL_0139:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_013e:  ldarg.0 
+	IL_013f:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_0144:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_0149:  ldloc.0 
+	IL_014a:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_014f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0154:  ldarg.0 
+	IL_0155:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_015a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_015f:  throw 
+	IL_0160:  nop 
+	IL_0161:  ldc.i4.1 
+	IL_0162:  stloc.1 
+	IL_0163:  br IL_0168
+
+	IL_0168:  ldloc.1 
+	IL_0169:  ret 
+    } // end of method AttributeConfigurator::InitializeChildElement
+
+    // method line 2064
+    .method family virtual hidebysig newslot 
+           instance default void InitializeOrderedChildElements ()  cil managed 
+    {
+        // Method begins at RVA 0x8f0c
+	// Code size 741 (0x2e5)
+	.maxstack 8
+	.locals init (
+		class [mscorlib]System.Collections.Hashtable	V_0,
+		class [mscorlib]System.Collections.Hashtable	V_1,
+		class [mscorlib]System.Reflection.MethodInfo[]	V_2,
+		class [mscorlib]System.Reflection.MethodInfo	V_3,
+		class [mscorlib]System.Reflection.MethodInfo[]	V_4,
+		int32	V_5,
+		class [mscorlib]System.Reflection.ParameterInfo[]	V_6,
+		object[]	V_7,
+		class NAnt.Core.Attributes.BuildElementAttribute	V_8,
+		class [System]System.Collections.Specialized.StringCollection	V_9,
+		class [System.Xml]System.Xml.XmlNode	V_10,
+		class [mscorlib]System.Collections.IEnumerator	V_11,
+		string	V_12,
+		class [mscorlib]System.Reflection.MethodInfo	V_13,
+		class NAnt.Core.Attributes.BuildElementAttribute	V_14,
+		class [mscorlib]System.Type	V_15,
+		class NAnt.Core.Element	V_16,
+		class [mscorlib]System.Reflection.TargetInvocationException	V_17,
+		class [mscorlib]System.IDisposable	V_18,
+		string	V_19,
+		class [System]System.Collections.Specialized.StringEnumerator	V_20,
+		class [mscorlib]System.IDisposable	V_21,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_22,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_23,
+		class [mscorlib]System.IDisposable	V_24)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_000c:  stloc.1 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_0013:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0018:  ldc.i4.s 0x14
+	IL_001a:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_001f:  stloc.2 
+	IL_0020:  nop 
+	IL_0021:  ldloc.2 
+	IL_0022:  stloc.s 4
+	IL_0024:  ldc.i4.0 
+	IL_0025:  stloc.s 5
+	IL_0027:  br IL_00a9
+
+	IL_002c:  ldloc.s 4
+	IL_002e:  ldloc.s 5
+	IL_0030:  ldelem.ref 
+	IL_0031:  stloc.3 
+	IL_0032:  nop 
+	IL_0033:  ldloc.3 
+	IL_0034:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_0039:  stloc.s 6
+	IL_003b:  ldloc.s 6
+	IL_003d:  ldlen 
+	IL_003e:  conv.i4 
+	IL_003f:  ldc.i4.1 
+	IL_0040:  beq IL_004b
+
+	IL_0045:  nop 
+	IL_0046:  br IL_00a3
+
+	IL_004b:  ldloc.3 
+	IL_004c:  ldtoken NAnt.Core.Attributes.BuildElementAttribute
+	IL_0051:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0056:  ldc.i4.1 
+	IL_0057:  callvirt instance object[] class [mscorlib]System.Reflection.MemberInfo::GetCustomAttributes(class [mscorlib]System.Type, bool)
+	IL_005c:  stloc.s 7
+	IL_005e:  ldloc.s 7
+	IL_0060:  ldlen 
+	IL_0061:  conv.i4 
+	IL_0062:  brtrue IL_006d
+
+	IL_0067:  nop 
+	IL_0068:  br IL_00a3
+
+	IL_006d:  ldloc.s 7
+	IL_006f:  ldc.i4.0 
+	IL_0070:  ldelem.ref 
+	IL_0071:  castclass NAnt.Core.Attributes.BuildElementAttribute
+	IL_0076:  stloc.s 8
+	IL_0078:  ldloc.0 
+	IL_0079:  ldloc.s 8
+	IL_007b:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_0080:  ldloc.3 
+	IL_0081:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_0086:  ldloc.s 8
+	IL_0088:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_Required()
+	IL_008d:  brfalse IL_00a2
+
+	IL_0092:  nop 
+	IL_0093:  ldloc.1 
+	IL_0094:  ldloc.s 8
+	IL_0096:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_009b:  ldloc.3 
+	IL_009c:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_00a1:  nop 
+	IL_00a2:  nop 
+	IL_00a3:  ldloc.s 5
+	IL_00a5:  ldc.i4.1 
+	IL_00a6:  add 
+	IL_00a7:  stloc.s 5
+	IL_00a9:  ldloc.s 5
+	IL_00ab:  ldloc.s 4
+	IL_00ad:  ldlen 
+	IL_00ae:  conv.i4 
+	IL_00af:  blt IL_002c
+
+	IL_00b4:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_00b9:  stloc.s 9
+	IL_00bb:  nop 
+	IL_00bc:  ldarg.0 
+	IL_00bd:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	IL_00c2:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::get_ChildNodes()
+	IL_00c7:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_00cc:  stloc.s 11
+	.try { // 1
+	  IL_00ce:  br IL_01e3
+
+	  IL_00d3:  ldloc.s 11
+	  IL_00d5:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_00da:  castclass [System.Xml]System.Xml.XmlNode
+	  IL_00df:  stloc.s 10
+	  IL_00e1:  nop 
+	  IL_00e2:  ldloc.s 10
+	  IL_00e4:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_00e9:  stloc.s 12
+	  IL_00eb:  ldarg.0 
+	  IL_00ec:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
+	  IL_00f1:  ldloc.s 12
+	  IL_00f3:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	  IL_00f8:  brtrue IL_0103
+
+	  IL_00fd:  nop 
+	  IL_00fe:  leave IL_01e3
+
+	  IL_0103:  ldloc.0 
+	  IL_0104:  ldloc.s 12
+	  IL_0106:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_010b:  castclass [mscorlib]System.Reflection.MethodInfo
+	  IL_0110:  stloc.s 13
+	  IL_0112:  ldloc.s 13
+	  IL_0114:  ldnull 
+	  IL_0115:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	  IL_011a:  brfalse IL_0125
+
+	  IL_011f:  nop 
+	  IL_0120:  leave IL_01e3
+
+	  IL_0125:  ldloc.s 9
+	  IL_0127:  ldloc.s 12
+	  IL_0129:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	  IL_012e:  brtrue IL_013f
+
+	  IL_0133:  nop 
+	  IL_0134:  ldloc.s 9
+	  IL_0136:  ldloc.s 12
+	  IL_0138:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_013d:  pop 
+	  IL_013e:  nop 
+	  IL_013f:  ldloc.1 
+	  IL_0140:  ldloc.s 12
+	  IL_0142:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	  IL_0147:  brfalse IL_0156
+
+	  IL_014c:  nop 
+	  IL_014d:  ldloc.1 
+	  IL_014e:  ldloc.s 12
+	  IL_0150:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
+	  IL_0155:  nop 
+	  IL_0156:  ldloc.s 13
+	  IL_0158:  ldtoken NAnt.Core.Attributes.BuildElementAttribute
+	  IL_015d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0162:  ldc.i4.0 
+	  IL_0163:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	  IL_0168:  castclass NAnt.Core.Attributes.BuildElementAttribute
+	  IL_016d:  stloc.s 14
+	  IL_016f:  ldloc.s 14
+	  IL_0171:  callvirt instance bool class NAnt.Core.Attributes.BuildElementAttribute::get_ProcessXml()
+	  IL_0176:  brtrue IL_0181
+
+	  IL_017b:  nop 
+	  IL_017c:  leave IL_01e3
+
+	  IL_0181:  ldloc.s 13
+	  IL_0183:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	  IL_0188:  ldc.i4.0 
+	  IL_0189:  ldelem.ref 
+	  IL_018a:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	  IL_018f:  stloc.s 15
+	  IL_0191:  ldarg.0 
+	  IL_0192:  ldloc.s 10
+	  IL_0194:  ldloc.s 15
+	  IL_0196:  callvirt instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::InitializeBuildElement(class [System.Xml]System.Xml.XmlNode, class [mscorlib]System.Type)
+	  IL_019b:  stloc.s 16
+	  .try { // 0
+	    IL_019d:  nop 
+	    IL_019e:  ldloc.s 13
+	    IL_01a0:  ldarg.0 
+	    IL_01a1:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	    IL_01a6:  ldc.i4 256
+	    IL_01ab:  ldnull 
+	    IL_01ac:  ldc.i4.1 
+	    IL_01ad:  newarr [mscorlib]System.Object
+	    IL_01b2:  dup 
+	    IL_01b3:  ldc.i4.0 
+	    IL_01b4:  ldloc.s 16
+	    IL_01b6:  stelem.ref 
+	    IL_01b7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_01bc:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	    IL_01c1:  pop 
+	    IL_01c2:  nop 
+	    IL_01c3:  leave IL_01e2
+
+	  } // end .try 0
+	  catch class [mscorlib]System.Reflection.TargetInvocationException { // 0
+	    IL_01c8:  stloc.s 17
+	    IL_01ca:  nop 
+	    IL_01cb:  ldloc.s 17
+	    IL_01cd:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
+	    IL_01d2:  brfalse IL_01e0
+
+	    IL_01d7:  nop 
+	    IL_01d8:  ldloc.s 17
+	    IL_01da:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
+	    IL_01df:  throw 
+	    IL_01e0:  rethrow 
+	  } // end handler 0
+	  IL_01e2:  nop 
+	  IL_01e3:  ldloc.s 11
+	  IL_01e5:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_01ea:  brtrue IL_00d3
+
+	  IL_01ef:  leave IL_020b
+
+	} // end .try 1
+	finally  { // 1
+	  IL_01f4:  ldloc.s 11
+	  IL_01f6:  isinst [mscorlib]System.IDisposable
+	  IL_01fb:  dup 
+	  IL_01fc:  stloc.s 18
+	  IL_01fe:  brfalse IL_020a
+
+	  IL_0203:  ldloc.s 18
+	  IL_0205:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_020a:  endfinally 
+	} // end handler 1
+	IL_020b:  nop 
+	IL_020c:  ldloc.s 9
+	IL_020e:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0213:  stloc.s 20
+	.try { // 2
+	  IL_0215:  br IL_0232
+
+	  IL_021a:  ldloc.s 20
+	  IL_021c:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0221:  stloc.s 19
+	  IL_0223:  nop 
+	  IL_0224:  ldarg.0 
+	  IL_0225:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes()
+	  IL_022a:  ldloc.s 19
+	  IL_022c:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Remove(string)
+	  IL_0231:  nop 
+	  IL_0232:  ldloc.s 20
+	  IL_0234:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0239:  brtrue IL_021a
+
+	  IL_023e:  leave IL_025a
+
+	} // end .try 2
+	finally  { // 2
+	  IL_0243:  ldloc.s 20
+	  IL_0245:  isinst [mscorlib]System.IDisposable
+	  IL_024a:  dup 
+	  IL_024b:  stloc.s 21
+	  IL_024d:  brfalse IL_0259
+
+	  IL_0252:  ldloc.s 21
+	  IL_0254:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0259:  endfinally 
+	} // end handler 2
+	IL_025a:  ldloc.1 
+	IL_025b:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
+	IL_0260:  ldc.i4.0 
+	IL_0261:  ble IL_02e4
+
+	IL_0266:  nop 
+	IL_0267:  nop 
+	IL_0268:  ldloc.1 
+	IL_0269:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_026e:  stloc.s 23
+	.try { // 3
+	  IL_0270:  br IL_02bb
+
+	  IL_0275:  ldloc.s 23
+	  IL_0277:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_027c:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_0281:  stloc.s 22
+	  IL_0283:  nop 
+	  IL_0284:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0289:  ldstr "NA1021"
+	  IL_028e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0293:  ldloca.s 22
+	  IL_0295:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_029a:  castclass [mscorlib]System.String
+	  IL_029f:  ldarg.0 
+	  IL_02a0:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element/AttributeConfigurator::get_ElementXml()
+	  IL_02a5:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_02aa:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_02af:  ldarg.0 
+	  IL_02b0:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	  IL_02b5:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_02ba:  throw 
+	  IL_02bb:  ldloc.s 23
+	  IL_02bd:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_02c2:  brtrue IL_0275
+
+	  IL_02c7:  leave IL_02e3
+
+	} // end .try 3
+	finally  { // 3
+	  IL_02cc:  ldloc.s 23
+	  IL_02ce:  isinst [mscorlib]System.IDisposable
+	  IL_02d3:  dup 
+	  IL_02d4:  stloc.s 24
+	  IL_02d6:  brfalse IL_02e2
+
+	  IL_02db:  ldloc.s 24
+	  IL_02dd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_02e2:  endfinally 
+	} // end handler 3
+	IL_02e3:  nop 
+	IL_02e4:  ret 
+    } // end of method AttributeConfigurator::InitializeOrderedChildElements
+
+    // method line 2065
+    .method family virtual hidebysig newslot 
+           instance default class NAnt.Core.Element InitializeBuildElement (class [System.Xml]System.Xml.XmlNode childNode, class [mscorlib]System.Type elementType)  cil managed 
+    {
+        // Method begins at RVA 0x9264
+	// Code size 110 (0x6e)
+	.maxstack 5
+	.locals init (
+		class NAnt.Core.Element	V_0,
+		class NAnt.Core.Element	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldtoken NAnt.Core.Element
+	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000b:  ldarg.2 
+	IL_000c:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_0011:  brtrue IL_0043
+
+	IL_0016:  nop 
+	IL_0017:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001c:  ldstr "NA1187"
+	IL_0021:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0026:  ldarg.1 
+	IL_0027:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_002c:  ldarg.2 
+	IL_002d:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0032:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0037:  ldarg.0 
+	IL_0038:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_003d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0042:  throw 
+	IL_0043:  ldarg.2 
+	IL_0044:  ldc.i4.s 0x34
+	IL_0046:  ldnull 
+	IL_0047:  ldnull 
+	IL_0048:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_004d:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_0052:  castclass NAnt.Core.Element
+	IL_0057:  stloc.0 
+	IL_0058:  ldarg.0 
+	IL_0059:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_005e:  ldarg.1 
+	IL_005f:  ldloc.0 
+	IL_0060:  ldarg.2 
+	IL_0061:  call class NAnt.Core.Element class NAnt.Core.Element::InitializeBuildElement(class NAnt.Core.Element, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Element, class [mscorlib]System.Type)
+	IL_0066:  stloc.1 
+	IL_0067:  br IL_006c
+
+	IL_006c:  ldloc.1 
+	IL_006d:  ret 
+    } // end of method AttributeConfigurator::InitializeBuildElement
+
+    // method line 2066
+    .method private hidebysig 
+           instance default class NAnt.Core.Element CreateChildBuildElement (class [mscorlib]System.Reflection.PropertyInfo propInf, class [mscorlib]System.Reflection.MethodInfo getter, class [mscorlib]System.Reflection.MethodInfo setter, class [System.Xml]System.Xml.XmlNode xml, class NAnt.Core.PropertyDictionary properties, class NAnt.Core.FrameworkInfo framework)  cil managed 
+    {
+        // Method begins at RVA 0x92e0
+	// Code size 551 (0x227)
+	.maxstack 6
+	.locals init (
+		class NAnt.Core.Element	V_0,
+		class [mscorlib]System.Type	V_1,
+		class NAnt.Core.DataTypeBase	V_2,
+		class NAnt.Core.Element	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldnull 
+	IL_0004:  stloc.1 
+	IL_0005:  ldarg.2 
+	IL_0006:  ldnull 
+	IL_0007:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Inequality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_000c:  brfalse IL_010e
+
+	IL_0011:  nop 
+	.try { // 0
+	  IL_0012:  nop 
+	  IL_0013:  ldarg.1 
+	  IL_0014:  ldarg.0 
+	  IL_0015:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	  IL_001a:  ldnull 
+	  IL_001b:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, object[])
+	  IL_0020:  castclass NAnt.Core.Element
+	  IL_0025:  stloc.0 
+	  IL_0026:  nop 
+	  IL_0027:  leave IL_0090
+
+	} // end .try 0
+	catch class [mscorlib]System.InvalidCastException { // 0
+	  IL_002c:  pop 
+	  IL_002d:  nop 
+	  IL_002e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0033:  ldstr "NA1188"
+	  IL_0038:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_003d:  ldc.i4.4 
+	  IL_003e:  newarr [mscorlib]System.Object
+	  IL_0043:  dup 
+	  IL_0044:  ldc.i4.0 
+	  IL_0045:  ldarg.1 
+	  IL_0046:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	  IL_004b:  stelem.ref 
+	  IL_004c:  dup 
+	  IL_004d:  ldc.i4.1 
+	  IL_004e:  ldarg.0 
+	  IL_004f:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	  IL_0054:  callvirt instance class [mscorlib]System.Type object::GetType()
+	  IL_0059:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	  IL_005e:  stelem.ref 
+	  IL_005f:  dup 
+	  IL_0060:  ldc.i4.2 
+	  IL_0061:  ldarg.1 
+	  IL_0062:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	  IL_0067:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	  IL_006c:  stelem.ref 
+	  IL_006d:  dup 
+	  IL_006e:  ldc.i4.3 
+	  IL_006f:  ldtoken NAnt.Core.Element
+	  IL_0074:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0079:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	  IL_007e:  stelem.ref 
+	  IL_007f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	  IL_0084:  ldarg.0 
+	  IL_0085:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	  IL_008a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_008f:  throw 
+	} // end handler 0
+	IL_0090:  ldloc.0 
+	IL_0091:  brtrue IL_0104
+
+	IL_0096:  nop 
+	IL_0097:  ldarg.3 
+	IL_0098:  ldnull 
+	IL_0099:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_009e:  brfalse IL_00da
+
+	IL_00a3:  nop 
+	IL_00a4:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00a9:  ldstr "NA1189"
+	IL_00ae:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00b3:  ldarg.1 
+	IL_00b4:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_00b9:  ldarg.0 
+	IL_00ba:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_00bf:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_00c4:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_00c9:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_00ce:  ldarg.0 
+	IL_00cf:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_00d4:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_00d9:  throw 
+	IL_00da:  nop 
+	IL_00db:  ldnull 
+	IL_00dc:  starg.s 2
+	IL_00de:  ldsfld class [log4net]log4net.ILog NAnt.Core.Element/AttributeConfigurator::logger
+	IL_00e3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00e8:  ldstr "{0}_get() returned null; will go the route of set method to populate."
+	IL_00ed:  ldarg.1 
+	IL_00ee:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_00f3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00f8:  callvirt instance void class [log4net]log4net.ILog::Info(object)
+	IL_00fd:  nop 
+	IL_00fe:  nop 
+	IL_00ff:  br IL_010d
+
+	IL_0104:  nop 
+	IL_0105:  ldloc.0 
+	IL_0106:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_010b:  stloc.1 
+	IL_010c:  nop 
+	IL_010d:  nop 
+	IL_010e:  ldarg.2 
+	IL_010f:  ldnull 
+	IL_0110:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_0115:  brfalse IL_0177
+
+	IL_011a:  nop 
+	IL_011b:  ldarg.3 
+	IL_011c:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	IL_0121:  ldc.i4.0 
+	IL_0122:  ldelem.ref 
+	IL_0123:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	IL_0128:  stloc.1 
+	IL_0129:  ldloc.1 
+	IL_012a:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
+	IL_012f:  brfalse IL_0161
+
+	IL_0134:  nop 
+	IL_0135:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_013a:  ldstr "String_AbstractType"
+	IL_013f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0144:  ldloc.1 
+	IL_0145:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_014a:  ldarg.1 
+	IL_014b:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_0150:  ldarg.0 
+	IL_0151:  call instance string class NAnt.Core.Element/AttributeConfigurator::get_Name()
+	IL_0156:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_015b:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
+	IL_0160:  throw 
+	IL_0161:  ldloc.1 
+	IL_0162:  ldc.i4.s 0x34
+	IL_0164:  ldnull 
+	IL_0165:  ldnull 
+	IL_0166:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_016b:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	IL_0170:  castclass NAnt.Core.Element
+	IL_0175:  stloc.0 
+	IL_0176:  nop 
+	IL_0177:  ldarg.0 
+	IL_0178:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_017d:  ldarg.s 4
+	IL_017f:  ldloc.0 
+	IL_0180:  ldloc.1 
+	IL_0181:  call class NAnt.Core.Element class NAnt.Core.Element::InitializeBuildElement(class NAnt.Core.Element, class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Element, class [mscorlib]System.Type)
+	IL_0186:  stloc.0 
+	IL_0187:  ldloc.0 
+	IL_0188:  isinst NAnt.Core.DataTypeBase
+	IL_018d:  stloc.2 
+	IL_018e:  ldloc.2 
+	IL_018f:  brfalse IL_01ed
+
+	IL_0194:  ldarg.s 4
+	IL_0196:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_019b:  ldstr "refid"
+	IL_01a0:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_01a5:  brfalse IL_01ed
+
+	IL_01aa:  nop 
+	IL_01ab:  ldarg.3 
+	IL_01ac:  ldnull 
+	IL_01ad:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_01b2:  brfalse IL_01e9
+
+	IL_01b7:  nop 
+	IL_01b8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01bd:  ldstr "NA1190"
+	IL_01c2:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_01c7:  ldarg.1 
+	IL_01c8:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
+	IL_01cd:  ldarg.0 
+	IL_01ce:  call instance class [mscorlib]System.Type object::GetType()
+	IL_01d3:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_01d8:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_01dd:  ldarg.0 
+	IL_01de:  call instance class NAnt.Core.Location class NAnt.Core.Element/AttributeConfigurator::get_Location()
+	IL_01e3:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_01e8:  throw 
+	IL_01e9:  ldnull 
+	IL_01ea:  starg.s 2
+	IL_01ec:  nop 
+	IL_01ed:  ldarg.3 
+	IL_01ee:  ldnull 
+	IL_01ef:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Inequality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_01f4:  brfalse IL_021e
+
+	IL_01f9:  ldarg.2 
+	IL_01fa:  ldnull 
+	IL_01fb:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
+	IL_0200:  brfalse IL_021e
+
+	IL_0205:  nop 
+	IL_0206:  ldarg.3 
+	IL_0207:  ldarg.0 
+	IL_0208:  call instance class NAnt.Core.Element class NAnt.Core.Element/AttributeConfigurator::get_Element()
+	IL_020d:  ldc.i4.1 
+	IL_020e:  newarr [mscorlib]System.Object
+	IL_0213:  dup 
+	IL_0214:  ldc.i4.0 
+	IL_0215:  ldloc.0 
+	IL_0216:  stelem.ref 
+	IL_0217:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	IL_021c:  pop 
+	IL_021d:  nop 
+	IL_021e:  ldloc.0 
+	IL_021f:  stloc.3 
+	IL_0220:  br IL_0225
+
+	IL_0225:  ldloc.3 
+	IL_0226:  ret 
+    } // end of method AttributeConfigurator::CreateChildBuildElement
+
+    // method line 2067
+    .method private hidebysig 
+           instance default class NAnt.Core.Element/AttributeConfigurator/IAttributeSetter CreateAttributeSetter (class [mscorlib]System.Type attributeType)  cil managed 
+    {
+        // Method begins at RVA 0x9524
+	// Code size 273 (0x111)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.Element/AttributeConfigurator/IAttributeSetter	V_0,
+		class NAnt.Core.Element/AttributeConfigurator/IAttributeSetter	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Element/AttributeConfigurator::AttributeSetters
+	IL_0006:  ldarg.1 
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	IL_000c:  brfalse IL_0028
+
+	IL_0011:  nop 
+	IL_0012:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Element/AttributeConfigurator::AttributeSetters
+	IL_0017:  ldarg.1 
+	IL_0018:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_001d:  castclass NAnt.Core.Element/AttributeConfigurator/IAttributeSetter
+	IL_0022:  stloc.0 
+	IL_0023:  br IL_010f
+
+	IL_0028:  ldnull 
+	IL_0029:  stloc.1 
+	IL_002a:  ldarg.1 
+	IL_002b:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
+	IL_0030:  brfalse IL_0042
+
+	IL_0035:  nop 
+	IL_0036:  newobj instance void class NAnt.Core.Element/AttributeConfigurator/EnumAttributeSetter::'.ctor'()
+	IL_003b:  stloc.1 
+	IL_003c:  nop 
+	IL_003d:  br IL_00f4
+
+	IL_0042:  ldarg.1 
+	IL_0043:  ldtoken [mscorlib]System.Text.Encoding
+	IL_0048:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_004d:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0052:  brfalse IL_0064
+
+	IL_0057:  nop 
+	IL_0058:  newobj instance void class NAnt.Core.Element/AttributeConfigurator/EncodingAttributeSetter::'.ctor'()
+	IL_005d:  stloc.1 
+	IL_005e:  nop 
+	IL_005f:  br IL_00f4
+
+	IL_0064:  ldarg.1 
+	IL_0065:  ldtoken [mscorlib]System.IO.FileInfo
+	IL_006a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_006f:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0074:  brfalse IL_0086
+
+	IL_0079:  nop 
+	IL_007a:  newobj instance void class NAnt.Core.Element/AttributeConfigurator/FileAttributeSetter::'.ctor'()
+	IL_007f:  stloc.1 
+	IL_0080:  nop 
+	IL_0081:  br IL_00f4
+
+	IL_0086:  ldarg.1 
+	IL_0087:  ldtoken [mscorlib]System.IO.DirectoryInfo
+	IL_008c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0091:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0096:  brfalse IL_00a8
+
+	IL_009b:  nop 
+	IL_009c:  newobj instance void class NAnt.Core.Element/AttributeConfigurator/DirectoryAttributeSetter::'.ctor'()
+	IL_00a1:  stloc.1 
+	IL_00a2:  nop 
+	IL_00a3:  br IL_00f4
+
+	IL_00a8:  ldarg.1 
+	IL_00a9:  ldtoken NAnt.Core.Types.PathSet
+	IL_00ae:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_00b3:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_00b8:  brfalse IL_00ca
+
+	IL_00bd:  nop 
+	IL_00be:  newobj instance void class NAnt.Core.Element/AttributeConfigurator/PathSetAttributeSetter::'.ctor'()
+	IL_00c3:  stloc.1 
+	IL_00c4:  nop 
+	IL_00c5:  br IL_00f4
+
+	IL_00ca:  ldarg.1 
+	IL_00cb:  ldtoken [System]System.Uri
+	IL_00d0:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_00d5:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_00da:  brfalse IL_00ec
+
+	IL_00df:  nop 
+	IL_00e0:  newobj instance void class NAnt.Core.Element/AttributeConfigurator/UriAttributeSetter::'.ctor'()
+	IL_00e5:  stloc.1 
+	IL_00e6:  nop 
+	IL_00e7:  br IL_00f4
+
+	IL_00ec:  nop 
+	IL_00ed:  newobj instance void class NAnt.Core.Element/AttributeConfigurator/ConvertableAttributeSetter::'.ctor'()
+	IL_00f2:  stloc.1 
+	IL_00f3:  nop 
+	IL_00f4:  ldloc.1 
+	IL_00f5:  brfalse IL_0108
+
+	IL_00fa:  nop 
+	IL_00fb:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Element/AttributeConfigurator::AttributeSetters
+	IL_0100:  ldarg.1 
+	IL_0101:  ldloc.1 
+	IL_0102:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_0107:  nop 
+	IL_0108:  ldloc.1 
+	IL_0109:  stloc.0 
+	IL_010a:  br IL_010f
+
+	IL_010f:  ldloc.0 
+	IL_0110:  ret 
+    } // end of method AttributeConfigurator::CreateAttributeSetter
+
+    // method line 2068
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x9641
+	// Code size 31 (0x1f)
+	.maxstack 8
+	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
+	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
+	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.Element/AttributeConfigurator::logger
+	IL_0014:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0019:  stsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.Element/AttributeConfigurator::AttributeSetters
+	IL_001e:  ret 
+    } // end of method AttributeConfigurator::.cctor
+
+	.property instance class NAnt.Core.Element Element ()
+	{
+		.get instance default class NAnt.Core.Element NAnt.Core.Element/AttributeConfigurator::get_Element () 
+	}
+	.property instance class NAnt.Core.Location Location ()
+	{
+		.get instance default class NAnt.Core.Location NAnt.Core.Element/AttributeConfigurator::get_Location () 
+	}
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.Core.Element/AttributeConfigurator::get_Name () 
+	}
+	.property instance class NAnt.Core.Project Project ()
+	{
+		.get instance default class NAnt.Core.Project NAnt.Core.Element/AttributeConfigurator::get_Project () 
+	}
+	.property instance class [System.Xml]System.Xml.XmlNode ElementXml ()
+	{
+		.get instance default class [System.Xml]System.Xml.XmlNode NAnt.Core.Element/AttributeConfigurator::get_ElementXml () 
+	}
+	.property instance class NAnt.Core.PropertyDictionary Properties ()
+	{
+		.get instance default class NAnt.Core.PropertyDictionary NAnt.Core.Element/AttributeConfigurator::get_Properties () 
+	}
+	.property instance class NAnt.Core.FrameworkInfo TargetFramework ()
+	{
+		.get instance default class NAnt.Core.FrameworkInfo NAnt.Core.Element/AttributeConfigurator::get_TargetFramework () 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection UnprocessedAttributes ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::get_UnprocessedAttributes () 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection UnprocessedChildNodes ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Element/AttributeConfigurator::get_UnprocessedChildNodes () 
+	}
+	.property instance class [System.Xml]System.Xml.XmlNamespaceManager NamespaceManager ()
+	{
+		.get instance default class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Element/AttributeConfigurator::get_NamespaceManager () 
+	}
+  .class nested private auto ansi beforefieldinit EnumAttributeSetter
+  	extends [mscorlib]System.Object
+  	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
+
+    // method line 2069
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x9661
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method EnumAttributeSetter::.ctor
+
+    // method line 2070
+    .method public final virtual hidebysig newslot 
+           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x966c
+	// Code size 124 (0x7c)
+	.maxstack 7
+	.locals init (
+		object	V_0,
+		class [System]System.ComponentModel.TypeConverter	V_1)
+	IL_0000:  nop 
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.3 
+	  IL_0003:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	  IL_0008:  call class [System]System.ComponentModel.TypeConverter class [System]System.ComponentModel.TypeDescriptor::GetConverter(class [mscorlib]System.Type)
+	  IL_000d:  stloc.1 
+	  IL_000e:  ldloc.1 
+	  IL_000f:  callvirt instance class [mscorlib]System.Type object::GetType()
+	  IL_0014:  ldtoken [System]System.ComponentModel.EnumConverter
+	  IL_0019:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_001e:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_0023:  brtrue IL_0038
+
+	  IL_0028:  nop 
+	  IL_0029:  ldloc.1 
+	  IL_002a:  ldarg.s 4
+	  IL_002c:  callvirt instance object class [System]System.ComponentModel.TypeConverter::ConvertFrom(object)
+	  IL_0031:  stloc.0 
+	  IL_0032:  nop 
+	  IL_0033:  br IL_0048
+
+	  IL_0038:  nop 
+	  IL_0039:  ldarg.3 
+	  IL_003a:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	  IL_003f:  ldarg.s 4
+	  IL_0041:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string)
+	  IL_0046:  stloc.0 
+	  IL_0047:  nop 
+	  IL_0048:  ldarg.3 
+	  IL_0049:  ldarg.2 
+	  IL_004a:  ldloc.0 
+	  IL_004b:  ldc.i4.s 0x14
+	  IL_004d:  ldnull 
+	  IL_004e:  ldnull 
+	  IL_004f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0054:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	  IL_0059:  nop 
+	  IL_005a:  leave IL_007b
+
+	} // end .try 0
+	catch class [mscorlib]System.FormatException { // 0
+	  IL_005f:  pop 
+	  IL_0060:  nop 
+	  IL_0061:  ldarg.0 
+	  IL_0062:  ldarg.1 
+	  IL_0063:  ldarg.2 
+	  IL_0064:  ldarg.3 
+	  IL_0065:  ldarg.s 4
+	  IL_0067:  call instance class NAnt.Core.BuildException class NAnt.Core.Element/AttributeConfigurator/EnumAttributeSetter::CreateBuildException(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Element, class [mscorlib]System.Reflection.PropertyInfo, string)
+	  IL_006c:  throw 
+	} // end handler 0
+	catch class [mscorlib]System.ArgumentException { // 1
+	  IL_006d:  pop 
+	  IL_006e:  nop 
+	  IL_006f:  ldarg.0 
+	  IL_0070:  ldarg.1 
+	  IL_0071:  ldarg.2 
+	  IL_0072:  ldarg.3 
+	  IL_0073:  ldarg.s 4
+	  IL_0075:  call instance class NAnt.Core.BuildException class NAnt.Core.Element/AttributeConfigurator/EnumAttributeSetter::CreateBuildException(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Element, class [mscorlib]System.Reflection.PropertyInfo, string)
+	  IL_007a:  throw 
+	} // end handler 1
+	IL_007b:  ret 
+    } // end of method EnumAttributeSetter::Set
+
+    // method line 2071
+    .method private hidebysig 
+           instance default class NAnt.Core.BuildException CreateBuildException (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9710
+	// Code size 197 (0xc5)
+	.maxstack 6
+	.locals init (
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		object	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		string	V_4,
+		class NAnt.Core.BuildException	V_5)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  nop 
+	IL_0008:  ldarg.3 
+	IL_0009:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	IL_000e:  call class [mscorlib]System.Array class [mscorlib]System.Enum::GetValues(class [mscorlib]System.Type)
+	IL_0013:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Array::GetEnumerator()
+	IL_0018:  stloc.2 
+	.try { // 0
+	  IL_0019:  br IL_004e
+
+	  IL_001e:  ldloc.2 
+	  IL_001f:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0024:  stloc.1 
+	  IL_0025:  nop 
+	  IL_0026:  ldloc.0 
+	  IL_0027:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	  IL_002c:  ldc.i4.0 
+	  IL_002d:  ble IL_0040
+
+	  IL_0032:  nop 
+	  IL_0033:  ldloc.0 
+	  IL_0034:  ldstr ", "
+	  IL_0039:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_003e:  pop 
+	  IL_003f:  nop 
+	  IL_0040:  ldloc.0 
+	  IL_0041:  ldloc.1 
+	  IL_0042:  callvirt instance string object::ToString()
+	  IL_0047:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_004c:  pop 
+	  IL_004d:  nop 
+	  IL_004e:  ldloc.2 
+	  IL_004f:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0054:  brtrue IL_001e
+
+	  IL_0059:  leave IL_0072
+
+	} // end .try 0
+	finally  { // 0
+	  IL_005e:  ldloc.2 
+	  IL_005f:  isinst [mscorlib]System.IDisposable
+	  IL_0064:  dup 
+	  IL_0065:  stloc.3 
+	  IL_0066:  brfalse IL_0071
+
+	  IL_006b:  ldloc.3 
+	  IL_006c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0071:  endfinally 
+	} // end handler 0
+	IL_0072:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0077:  ldstr "NA1023"
+	IL_007c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0081:  ldc.i4.4 
+	IL_0082:  newarr [mscorlib]System.Object
+	IL_0087:  dup 
+	IL_0088:  ldc.i4.0 
+	IL_0089:  ldarg.s 4
+	IL_008b:  stelem.ref 
+	IL_008c:  dup 
+	IL_008d:  ldc.i4.1 
+	IL_008e:  ldarg.1 
+	IL_008f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_0094:  stelem.ref 
+	IL_0095:  dup 
+	IL_0096:  ldc.i4.2 
+	IL_0097:  ldarg.2 
+	IL_0098:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_009d:  stelem.ref 
+	IL_009e:  dup 
+	IL_009f:  ldc.i4.3 
+	IL_00a0:  ldloc.0 
+	IL_00a1:  callvirt instance string object::ToString()
+	IL_00a6:  stelem.ref 
+	IL_00a7:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_00ac:  stloc.s 4
+	IL_00ae:  ldloc.s 4
+	IL_00b0:  ldarg.2 
+	IL_00b1:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_00b6:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_00bb:  stloc.s 5
+	IL_00bd:  br IL_00c2
+
+	IL_00c2:  ldloc.s 5
+	IL_00c4:  ret 
+    } // end of method EnumAttributeSetter::CreateBuildException
+
+  } // end of class EnumAttributeSetter
+
+  .class nested private auto ansi beforefieldinit EncodingAttributeSetter
+  	extends [mscorlib]System.Object
+  	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
+
+    // method line 2072
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x97f4
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method EncodingAttributeSetter::.ctor
+
+    // method line 2073
+    .method public final virtual hidebysig newslot 
+           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x97fc
+	// Code size 181 (0xb5)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Text.Encoding	V_1,
+		class [mscorlib]System.Exception	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.s 4
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  brtrue IL_0015
+
+	IL_000f:  nop 
+	IL_0010:  br IL_00b4
+
+	IL_0015:  ldnull 
+	IL_0016:  stloc.1 
+	.try { // 0
+	  IL_0017:  nop 
+	  IL_0018:  ldloc.0 
+	  IL_0019:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::GetEncoding(string)
+	  IL_001e:  stloc.1 
+	  IL_001f:  nop 
+	  IL_0020:  leave IL_006b
+
+	} // end .try 0
+	catch class [mscorlib]System.ArgumentException { // 0
+	  IL_0025:  pop 
+	  IL_0026:  nop 
+	  IL_0027:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_002c:  ldstr "NA1191"
+	  IL_0031:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0036:  ldloc.0 
+	  IL_0037:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_003c:  ldarg.2 
+	  IL_003d:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0042:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_0047:  throw 
+	} // end handler 0
+	catch class [mscorlib]System.NotSupportedException { // 1
+	  IL_0048:  pop 
+	  IL_0049:  nop 
+	  IL_004a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_004f:  ldstr "NA1192"
+	  IL_0054:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0059:  ldloc.0 
+	  IL_005a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_005f:  ldarg.2 
+	  IL_0060:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0065:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_006a:  throw 
+	} // end handler 1
+	.try { // 2
+	  IL_006b:  nop 
+	  IL_006c:  ldarg.3 
+	  IL_006d:  ldarg.2 
+	  IL_006e:  ldloc.1 
+	  IL_006f:  ldc.i4.s 0x14
+	  IL_0071:  ldnull 
+	  IL_0072:  ldnull 
+	  IL_0073:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0078:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	  IL_007d:  nop 
+	  IL_007e:  leave IL_00b4
+
+	} // end .try 2
+	catch class [mscorlib]System.Exception { // 2
+	  IL_0083:  stloc.2 
+	  IL_0084:  nop 
+	  IL_0085:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_008a:  ldstr "NA1022"
+	  IL_008f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0094:  ldarg.s 4
+	  IL_0096:  ldarg.1 
+	  IL_0097:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_009c:  ldarg.2 
+	  IL_009d:  callvirt instance string class NAnt.Core.Element::get_Name()
+	  IL_00a2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_00a7:  ldarg.2 
+	  IL_00a8:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_00ad:  ldloc.2 
+	  IL_00ae:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_00b3:  throw 
+	} // end handler 2
+	IL_00b4:  ret 
+    } // end of method EncodingAttributeSetter::Set
+
+  } // end of class EncodingAttributeSetter
+
+  .class nested private auto ansi beforefieldinit FileAttributeSetter
+  	extends [mscorlib]System.Object
+  	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
+
+    // method line 2074
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x98e8
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method FileAttributeSetter::.ctor
+
+    // method line 2075
+    .method public final virtual hidebysig newslot 
+           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x98f0
+	// Code size 216 (0xd8)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		object	V_1,
+		class [mscorlib]System.Exception	V_2,
+		class [mscorlib]System.Exception	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.s 4
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  brfalse IL_00aa
+
+	IL_000f:  nop 
+	.try { // 0
+	  IL_0010:  nop 
+	  IL_0011:  ldarg.2 
+	  IL_0012:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_0017:  ldarg.s 4
+	  IL_0019:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	  IL_001e:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_0023:  stloc.1 
+	  IL_0024:  nop 
+	  IL_0025:  leave IL_005b
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_002a:  stloc.2 
+	  IL_002b:  nop 
+	  IL_002c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0031:  ldstr "NA1022"
+	  IL_0036:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_003b:  ldarg.s 4
+	  IL_003d:  ldarg.1 
+	  IL_003e:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_0043:  ldarg.2 
+	  IL_0044:  callvirt instance string class NAnt.Core.Element::get_Name()
+	  IL_0049:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_004e:  ldarg.2 
+	  IL_004f:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0054:  ldloc.2 
+	  IL_0055:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_005a:  throw 
+	} // end handler 0
+	.try { // 1
+	  IL_005b:  nop 
+	  IL_005c:  ldarg.3 
+	  IL_005d:  ldarg.2 
+	  IL_005e:  ldloc.1 
+	  IL_005f:  ldc.i4.s 0x14
+	  IL_0061:  ldnull 
+	  IL_0062:  ldnull 
+	  IL_0063:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0068:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	  IL_006d:  nop 
+	  IL_006e:  leave IL_00a4
+
+	} // end .try 1
+	catch class [mscorlib]System.Exception { // 1
+	  IL_0073:  stloc.3 
+	  IL_0074:  nop 
+	  IL_0075:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_007a:  ldstr "NA1022"
+	  IL_007f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0084:  ldarg.s 4
+	  IL_0086:  ldarg.1 
+	  IL_0087:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_008c:  ldarg.2 
+	  IL_008d:  callvirt instance string class NAnt.Core.Element::get_Name()
+	  IL_0092:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_0097:  ldarg.2 
+	  IL_0098:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_009d:  ldloc.3 
+	  IL_009e:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_00a3:  throw 
+	} // end handler 1
+	IL_00a4:  nop 
+	IL_00a5:  br IL_00d7
+
+	IL_00aa:  nop 
+	IL_00ab:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00b0:  ldstr "NA1193"
+	IL_00b5:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00ba:  ldarg.1 
+	IL_00bb:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_00c0:  ldarg.2 
+	IL_00c1:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_00c6:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_00cb:  ldarg.2 
+	IL_00cc:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_00d1:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_00d6:  throw 
+	IL_00d7:  ret 
+    } // end of method FileAttributeSetter::Set
+
+  } // end of class FileAttributeSetter
+
+  .class nested private auto ansi beforefieldinit DirectoryAttributeSetter
+  	extends [mscorlib]System.Object
+  	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
+
+    // method line 2076
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x99f0
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method DirectoryAttributeSetter::.ctor
+
+    // method line 2077
+    .method public final virtual hidebysig newslot 
+           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x99f8
+	// Code size 160 (0xa0)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		object	V_1,
+		class [mscorlib]System.Exception	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.s 4
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  brfalse IL_0072
+
+	IL_000f:  nop 
+	.try { // 0
+	  IL_0010:  nop 
+	  IL_0011:  ldarg.2 
+	  IL_0012:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_0017:  ldarg.s 4
+	  IL_0019:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	  IL_001e:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	  IL_0023:  stloc.1 
+	  IL_0024:  ldarg.3 
+	  IL_0025:  ldarg.2 
+	  IL_0026:  ldloc.1 
+	  IL_0027:  ldc.i4.s 0x14
+	  IL_0029:  ldnull 
+	  IL_002a:  ldnull 
+	  IL_002b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0030:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	  IL_0035:  nop 
+	  IL_0036:  leave IL_006c
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_003b:  stloc.2 
+	  IL_003c:  nop 
+	  IL_003d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0042:  ldstr "NA1022"
+	  IL_0047:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_004c:  ldarg.s 4
+	  IL_004e:  ldarg.1 
+	  IL_004f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_0054:  ldarg.2 
+	  IL_0055:  callvirt instance string class NAnt.Core.Element::get_Name()
+	  IL_005a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_005f:  ldarg.2 
+	  IL_0060:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0065:  ldloc.2 
+	  IL_0066:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_006b:  throw 
+	} // end handler 0
+	IL_006c:  nop 
+	IL_006d:  br IL_009f
+
+	IL_0072:  nop 
+	IL_0073:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0078:  ldstr "NA1193"
+	IL_007d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0082:  ldarg.1 
+	IL_0083:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_0088:  ldarg.2 
+	IL_0089:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_008e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0093:  ldarg.2 
+	IL_0094:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0099:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_009e:  throw 
+	IL_009f:  ret 
+    } // end of method DirectoryAttributeSetter::Set
+
+  } // end of class DirectoryAttributeSetter
+
+  .class nested private auto ansi beforefieldinit PathSetAttributeSetter
+  	extends [mscorlib]System.Object
+  	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
+
+    // method line 2078
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x9ab4
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method PathSetAttributeSetter::.ctor
+
+    // method line 2079
+    .method public final virtual hidebysig newslot 
+           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9abc
+	// Code size 89 (0x59)
+	.maxstack 7
+	.locals init (
+		class NAnt.Core.Types.PathSet	V_0,
+		class [mscorlib]System.Exception	V_1)
+	IL_0000:  nop 
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.2 
+	  IL_0003:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_0008:  ldarg.s 4
+	  IL_000a:  newobj instance void class NAnt.Core.Types.PathSet::'.ctor'(class NAnt.Core.Project, string)
+	  IL_000f:  stloc.0 
+	  IL_0010:  ldarg.3 
+	  IL_0011:  ldarg.2 
+	  IL_0012:  ldloc.0 
+	  IL_0013:  ldc.i4.s 0x14
+	  IL_0015:  ldnull 
+	  IL_0016:  ldnull 
+	  IL_0017:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_001c:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	  IL_0021:  nop 
+	  IL_0022:  leave IL_0058
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0027:  stloc.1 
+	  IL_0028:  nop 
+	  IL_0029:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_002e:  ldstr "NA1022"
+	  IL_0033:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0038:  ldarg.s 4
+	  IL_003a:  ldarg.1 
+	  IL_003b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_0040:  ldarg.2 
+	  IL_0041:  callvirt instance string class NAnt.Core.Element::get_Name()
+	  IL_0046:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_004b:  ldarg.2 
+	  IL_004c:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0051:  ldloc.1 
+	  IL_0052:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0057:  throw 
+	} // end handler 0
+	IL_0058:  ret 
+    } // end of method PathSetAttributeSetter::Set
+
+  } // end of class PathSetAttributeSetter
+
+  .class nested private auto ansi beforefieldinit UriAttributeSetter
+  	extends [mscorlib]System.Object
+  	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
+
+    // method line 2080
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x9b34
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method UriAttributeSetter::.ctor
+
+    // method line 2081
+    .method public final virtual hidebysig newslot 
+           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9b3c
+	// Code size 238 (0xee)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		class [System]System.Uri	V_1,
+		class [mscorlib]System.Exception	V_2,
+		class [mscorlib]System.Exception	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.s 4
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  brfalse IL_00c0
+
+	IL_000f:  nop 
+	IL_0010:  ldarg.s 4
+	IL_0012:  ldsfld string [System]System.Uri::SchemeDelimiter
+	IL_0017:  callvirt instance int32 string::IndexOf(string)
+	IL_001c:  ldc.i4.m1 
+	IL_001d:  bne.un IL_0032
+
+	IL_0022:  nop 
+	IL_0023:  ldarg.2 
+	IL_0024:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0029:  ldarg.s 4
+	IL_002b:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	IL_0030:  stloc.0 
+	IL_0031:  nop 
+	.try { // 0
+	  IL_0032:  nop 
+	  IL_0033:  ldloc.0 
+	  IL_0034:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	  IL_0039:  stloc.1 
+	  IL_003a:  nop 
+	  IL_003b:  leave IL_0071
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0040:  stloc.2 
+	  IL_0041:  nop 
+	  IL_0042:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0047:  ldstr "NA1022"
+	  IL_004c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0051:  ldarg.s 4
+	  IL_0053:  ldarg.1 
+	  IL_0054:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_0059:  ldarg.2 
+	  IL_005a:  callvirt instance string class NAnt.Core.Element::get_Name()
+	  IL_005f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_0064:  ldarg.2 
+	  IL_0065:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_006a:  ldloc.2 
+	  IL_006b:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0070:  throw 
+	} // end handler 0
+	.try { // 1
+	  IL_0071:  nop 
+	  IL_0072:  ldarg.3 
+	  IL_0073:  ldarg.2 
+	  IL_0074:  ldloc.1 
+	  IL_0075:  ldc.i4.s 0x14
+	  IL_0077:  ldnull 
+	  IL_0078:  ldnull 
+	  IL_0079:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_007e:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	  IL_0083:  nop 
+	  IL_0084:  leave IL_00ba
+
+	} // end .try 1
+	catch class [mscorlib]System.Exception { // 1
+	  IL_0089:  stloc.3 
+	  IL_008a:  nop 
+	  IL_008b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0090:  ldstr "NA1022"
+	  IL_0095:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_009a:  ldarg.s 4
+	  IL_009c:  ldarg.1 
+	  IL_009d:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_00a2:  ldarg.2 
+	  IL_00a3:  callvirt instance string class NAnt.Core.Element::get_Name()
+	  IL_00a8:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_00ad:  ldarg.2 
+	  IL_00ae:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_00b3:  ldloc.3 
+	  IL_00b4:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_00b9:  throw 
+	} // end handler 1
+	IL_00ba:  nop 
+	IL_00bb:  br IL_00ed
+
+	IL_00c0:  nop 
+	IL_00c1:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00c6:  ldstr "NA1193"
+	IL_00cb:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00d0:  ldarg.1 
+	IL_00d1:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_00d6:  ldarg.2 
+	IL_00d7:  callvirt instance string class NAnt.Core.Element::get_Name()
+	IL_00dc:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_00e1:  ldarg.2 
+	IL_00e2:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_00e7:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_00ec:  throw 
+	IL_00ed:  ret 
+    } // end of method UriAttributeSetter::Set
+
+  } // end of class UriAttributeSetter
+
+  .class nested private auto ansi beforefieldinit ConvertableAttributeSetter
+  	extends [mscorlib]System.Object
+  	implements NAnt.Core.Element/AttributeConfigurator/IAttributeSetter  {
+
+    // method line 2082
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x9c54
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ConvertableAttributeSetter::.ctor
+
+    // method line 2083
+    .method public final virtual hidebysig newslot 
+           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9c5c
+	// Code size 94 (0x5e)
+	.maxstack 7
+	.locals init (
+		object	V_0,
+		class [mscorlib]System.Exception	V_1)
+	IL_0000:  nop 
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.s 4
+	  IL_0004:  ldarg.3 
+	  IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.PropertyInfo::get_PropertyType()
+	  IL_000a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_000f:  call object class [mscorlib]System.Convert::ChangeType(object, class [mscorlib]System.Type, class [mscorlib]System.IFormatProvider)
+	  IL_0014:  stloc.0 
+	  IL_0015:  ldarg.3 
+	  IL_0016:  ldarg.2 
+	  IL_0017:  ldloc.0 
+	  IL_0018:  ldc.i4.s 0x14
+	  IL_001a:  ldnull 
+	  IL_001b:  ldnull 
+	  IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0021:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo)
+	  IL_0026:  nop 
+	  IL_0027:  leave IL_005d
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_002c:  stloc.1 
+	  IL_002d:  nop 
+	  IL_002e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0033:  ldstr "NA1022"
+	  IL_0038:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_003d:  ldarg.s 4
+	  IL_003f:  ldarg.1 
+	  IL_0040:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_0045:  ldarg.2 
+	  IL_0046:  callvirt instance string class NAnt.Core.Element::get_Name()
+	  IL_004b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_0050:  ldarg.2 
+	  IL_0051:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0056:  ldloc.1 
+	  IL_0057:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_005c:  throw 
+	} // end handler 0
+	IL_005d:  ret 
+    } // end of method ConvertableAttributeSetter::Set
+
+  } // end of class ConvertableAttributeSetter
+
+  .class interface nested private auto ansi abstract IAttributeSetter
+  {
+
+    // method line 2084
+    .method public virtual hidebysig newslot abstract 
+           instance default void Set (class [System.Xml]System.Xml.XmlNode attributeNode, class NAnt.Core.Element parent, class [mscorlib]System.Reflection.PropertyInfo 'property', string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IAttributeSetter::Set
+
+  } // end of class IAttributeSetter
+
+  } // end of class AttributeConfigurator
+
+  } // end of class NAnt.Core.Element
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi serializable beforefieldinit Project
+  	extends [mscorlib]System.Object
+  {
+    .field  private static initonly  class [log4net]log4net.ILog logger
+    .field private static literal  string RootXml = "project"
+    .field private static literal  string ProjectNameAttribute = "name"
+    .field private static literal  string ProjectDefaultAttribte = "default"
+    .field private static literal  string ProjectBaseDirAttribute = "basedir"
+    .field private static literal  string TargetXml = "target"
+    .field private static literal  string WildTarget = "*"
+    .field private static literal  string Visiting = "VISITING"
+    .field private static literal  string Visited = "VISITED"
+    .field assembly static literal  string NAntPlatform = "nant.platform"
+    .field assembly static literal  string NAntPlatformName = "nant.platform.name"
+    .field assembly static literal  string NAntPropertyFileName = "nant.filename"
+    .field assembly static literal  string NAntPropertyVersion = "nant.version"
+    .field assembly static literal  string NAntPropertyLocation = "nant.location"
+    .field assembly static literal  string NAntPropertyProjectName = "nant.project.name"
+    .field assembly static literal  string NAntPropertyProjectBuildFile = "nant.project.buildfile"
+    .field assembly static literal  string NAntPropertyProjectBaseDir = "nant.project.basedir"
+    .field assembly static literal  string NAntPropertyProjectDefault = "nant.project.default"
+    .field assembly static literal  string NAntPropertyOnSuccess = "nant.onsuccess"
+    .field assembly static literal  string NAntPropertyOnFailure = "nant.onfailure"
+    .field  private  class NAnt.Core.BuildEventHandler BuildStarted
+    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+    .custom instance void class [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::'.ctor'(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) =  (01 00 00 00 00 00 00 00 ) // ........
+
+    .field  private  class NAnt.Core.BuildEventHandler BuildFinished
+    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+    .custom instance void class [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::'.ctor'(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) =  (01 00 00 00 00 00 00 00 ) // ........
+
+    .field  private  class NAnt.Core.BuildEventHandler TargetStarted
+    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+    .custom instance void class [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::'.ctor'(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) =  (01 00 00 00 00 00 00 00 ) // ........
+
+    .field  private  class NAnt.Core.BuildEventHandler TargetFinished
+    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+    .custom instance void class [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::'.ctor'(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) =  (01 00 00 00 00 00 00 00 ) // ........
+
+    .field  private  class NAnt.Core.BuildEventHandler TaskStarted
+    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+    .custom instance void class [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::'.ctor'(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) =  (01 00 00 00 00 00 00 00 ) // ........
+
+    .field  private  class NAnt.Core.BuildEventHandler TaskFinished
+    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+    .custom instance void class [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::'.ctor'(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) =  (01 00 00 00 00 00 00 00 ) // ........
+
+    .field  private  class NAnt.Core.BuildEventHandler MessageLogged
+    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+    .custom instance void class [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::'.ctor'(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) =  (01 00 00 00 00 00 00 00 ) // ........
+
+    .field  private  string _baseDirectory
+    .field  private  string _projectName
+    .field  private  string _defaultTargetName
+    .field  private  int32 _indentationSize
+    .field  private  int32 _indentationLevel
+    .field  private  class NAnt.Core.BuildListenerCollection _buildListeners
+    .field  private  class [System]System.Collections.Specialized.StringCollection _buildTargets
+    .field  private  class NAnt.Core.TargetCollection _targets
+    .field  private  class NAnt.Core.LocationMap _locationMap
+    .field  private  class NAnt.Core.PropertyDictionary _properties
+    .field  private  class NAnt.Core.PropertyDictionary _frameworkNeutralProperties
+    .field  private  class NAnt.Core.Target _currentTarget
+    .field  private  class NAnt.Core.FrameworkInfoDictionary _frameworks
+    .field  private  class NAnt.Core.FrameworkInfo _runtimeFramework
+    .field  private  class NAnt.Core.FrameworkInfo _targetFramework
+    .field  private notserialized  class [System.Xml]System.Xml.XmlNode _configurationNode
+    .field  private notserialized  class [System.Xml]System.Xml.XmlDocument _doc
+    .field  private notserialized  class [System.Xml]System.Xml.XmlNamespaceManager _nsMgr
+    .field  private notserialized  class NAnt.Core.DataTypeBaseDictionary _dataTypeReferences
+    .field  private  valuetype NAnt.Core.Level _threshold
+
+    // method line 2085
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlDocument doc, valuetype NAnt.Core.Level threshold, int32 indentLevel)  cil managed 
+    {
+        // Method begins at RVA 0x278cc
+	// Code size 148 (0x94)
+	.maxstack 5
+	IL_0000:  ldarg.0 
+	IL_0001:  ldstr ""
+	IL_0006:  stfld string NAnt.Core.Project::_projectName
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4.4 
+	IL_000d:  stfld int32 NAnt.Core.Project::_indentationSize
+	IL_0012:  ldarg.0 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  stfld int32 NAnt.Core.Project::_indentationLevel
+	IL_0019:  ldarg.0 
+	IL_001a:  newobj instance void class NAnt.Core.BuildListenerCollection::'.ctor'()
+	IL_001f:  stfld class NAnt.Core.BuildListenerCollection NAnt.Core.Project::_buildListeners
+	IL_0024:  ldarg.0 
+	IL_0025:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_002a:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::_buildTargets
+	IL_002f:  ldarg.0 
+	IL_0030:  newobj instance void class NAnt.Core.TargetCollection::'.ctor'()
+	IL_0035:  stfld class NAnt.Core.TargetCollection NAnt.Core.Project::_targets
+	IL_003a:  ldarg.0 
+	IL_003b:  newobj instance void class NAnt.Core.LocationMap::'.ctor'()
+	IL_0040:  stfld class NAnt.Core.LocationMap NAnt.Core.Project::_locationMap
+	IL_0045:  ldarg.0 
+	IL_0046:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
+	IL_004b:  stfld class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::_frameworks
+	IL_0050:  ldarg.0 
+	IL_0051:  newobj instance void class [System.Xml]System.Xml.NameTable::'.ctor'()
+	IL_0056:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
+	IL_005b:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::_nsMgr
+	IL_0060:  ldarg.0 
+	IL_0061:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
+	IL_0066:  stfld class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::_dataTypeReferences
+	IL_006b:  ldarg.0 
+	IL_006c:  ldc.i4 3000
+	IL_0071:  stfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
+	IL_0076:  ldarg.0 
+	IL_0077:  call instance void object::'.ctor'()
+	IL_007c:  nop 
+	IL_007d:  ldarg.0 
+	IL_007e:  ldarg.0 
+	IL_007f:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Project::GetConfigurationNode()
+	IL_0084:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::_configurationNode
+	IL_0089:  ldarg.0 
+	IL_008a:  ldarg.1 
+	IL_008b:  ldarg.2 
+	IL_008c:  ldarg.3 
+	IL_008d:  ldc.i4.0 
+	IL_008e:  call instance void class NAnt.Core.Project::CtorHelper(class [System.Xml]System.Xml.XmlDocument, valuetype NAnt.Core.Level, int32, valuetype NAnt.Core.Optimizations)
+	IL_0093:  ret 
+    } // end of method Project::.ctor
+
+    // method line 2086
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlDocument doc, valuetype NAnt.Core.Level threshold, int32 indentLevel, class [System.Xml]System.Xml.XmlNode configurationNode)  cil managed 
+    {
+        // Method begins at RVA 0x2796c
+	// Code size 144 (0x90)
+	.maxstack 5
+	IL_0000:  ldarg.0 
+	IL_0001:  ldstr ""
+	IL_0006:  stfld string NAnt.Core.Project::_projectName
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4.4 
+	IL_000d:  stfld int32 NAnt.Core.Project::_indentationSize
+	IL_0012:  ldarg.0 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  stfld int32 NAnt.Core.Project::_indentationLevel
+	IL_0019:  ldarg.0 
+	IL_001a:  newobj instance void class NAnt.Core.BuildListenerCollection::'.ctor'()
+	IL_001f:  stfld class NAnt.Core.BuildListenerCollection NAnt.Core.Project::_buildListeners
+	IL_0024:  ldarg.0 
+	IL_0025:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_002a:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::_buildTargets
+	IL_002f:  ldarg.0 
+	IL_0030:  newobj instance void class NAnt.Core.TargetCollection::'.ctor'()
+	IL_0035:  stfld class NAnt.Core.TargetCollection NAnt.Core.Project::_targets
+	IL_003a:  ldarg.0 
+	IL_003b:  newobj instance void class NAnt.Core.LocationMap::'.ctor'()
+	IL_0040:  stfld class NAnt.Core.LocationMap NAnt.Core.Project::_locationMap
+	IL_0045:  ldarg.0 
+	IL_0046:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
+	IL_004b:  stfld class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::_frameworks
+	IL_0050:  ldarg.0 
+	IL_0051:  newobj instance void class [System.Xml]System.Xml.NameTable::'.ctor'()
+	IL_0056:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
+	IL_005b:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::_nsMgr
+	IL_0060:  ldarg.0 
+	IL_0061:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
+	IL_0066:  stfld class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::_dataTypeReferences
+	IL_006b:  ldarg.0 
+	IL_006c:  ldc.i4 3000
+	IL_0071:  stfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
+	IL_0076:  ldarg.0 
+	IL_0077:  call instance void object::'.ctor'()
+	IL_007c:  nop 
+	IL_007d:  ldarg.0 
+	IL_007e:  ldarg.s 4
+	IL_0080:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::_configurationNode
+	IL_0085:  ldarg.0 
+	IL_0086:  ldarg.1 
+	IL_0087:  ldarg.2 
+	IL_0088:  ldarg.3 
+	IL_0089:  ldc.i4.0 
+	IL_008a:  call instance void class NAnt.Core.Project::CtorHelper(class [System.Xml]System.Xml.XmlDocument, valuetype NAnt.Core.Level, int32, valuetype NAnt.Core.Optimizations)
+	IL_008f:  ret 
+    } // end of method Project::.ctor
+
+    // method line 2087
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string uriOrFilePath, valuetype NAnt.Core.Level threshold, int32 indentLevel)  cil managed 
+    {
+        // Method begins at RVA 0x27a08
+	// Code size 154 (0x9a)
+	.maxstack 5
+	IL_0000:  ldarg.0 
+	IL_0001:  ldstr ""
+	IL_0006:  stfld string NAnt.Core.Project::_projectName
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4.4 
+	IL_000d:  stfld int32 NAnt.Core.Project::_indentationSize
+	IL_0012:  ldarg.0 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  stfld int32 NAnt.Core.Project::_indentationLevel
+	IL_0019:  ldarg.0 
+	IL_001a:  newobj instance void class NAnt.Core.BuildListenerCollection::'.ctor'()
+	IL_001f:  stfld class NAnt.Core.BuildListenerCollection NAnt.Core.Project::_buildListeners
+	IL_0024:  ldarg.0 
+	IL_0025:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_002a:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::_buildTargets
+	IL_002f:  ldarg.0 
+	IL_0030:  newobj instance void class NAnt.Core.TargetCollection::'.ctor'()
+	IL_0035:  stfld class NAnt.Core.TargetCollection NAnt.Core.Project::_targets
+	IL_003a:  ldarg.0 
+	IL_003b:  newobj instance void class NAnt.Core.LocationMap::'.ctor'()
+	IL_0040:  stfld class NAnt.Core.LocationMap NAnt.Core.Project::_locationMap
+	IL_0045:  ldarg.0 
+	IL_0046:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
+	IL_004b:  stfld class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::_frameworks
+	IL_0050:  ldarg.0 
+	IL_0051:  newobj instance void class [System.Xml]System.Xml.NameTable::'.ctor'()
+	IL_0056:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
+	IL_005b:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::_nsMgr
+	IL_0060:  ldarg.0 
+	IL_0061:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
+	IL_0066:  stfld class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::_dataTypeReferences
+	IL_006b:  ldarg.0 
+	IL_006c:  ldc.i4 3000
+	IL_0071:  stfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
+	IL_0076:  ldarg.0 
+	IL_0077:  call instance void object::'.ctor'()
+	IL_007c:  nop 
+	IL_007d:  ldarg.0 
+	IL_007e:  ldarg.0 
+	IL_007f:  call instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Project::GetConfigurationNode()
+	IL_0084:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::_configurationNode
+	IL_0089:  ldarg.0 
+	IL_008a:  ldarg.0 
+	IL_008b:  ldarg.1 
+	IL_008c:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::LoadBuildFile(string)
+	IL_0091:  ldarg.2 
+	IL_0092:  ldarg.3 
+	IL_0093:  ldc.i4.0 
+	IL_0094:  call instance void class NAnt.Core.Project::CtorHelper(class [System.Xml]System.Xml.XmlDocument, valuetype NAnt.Core.Level, int32, valuetype NAnt.Core.Optimizations)
+	IL_0099:  ret 
+    } // end of method Project::.ctor
+
+    // method line 2088
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string uriOrFilePath, valuetype NAnt.Core.Level threshold, int32 indentLevel, class [System.Xml]System.Xml.XmlNode configurationNode)  cil managed 
+    {
+        // Method begins at RVA 0x27ab0
+	// Code size 150 (0x96)
+	.maxstack 5
+	IL_0000:  ldarg.0 
+	IL_0001:  ldstr ""
+	IL_0006:  stfld string NAnt.Core.Project::_projectName
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4.4 
+	IL_000d:  stfld int32 NAnt.Core.Project::_indentationSize
+	IL_0012:  ldarg.0 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  stfld int32 NAnt.Core.Project::_indentationLevel
+	IL_0019:  ldarg.0 
+	IL_001a:  newobj instance void class NAnt.Core.BuildListenerCollection::'.ctor'()
+	IL_001f:  stfld class NAnt.Core.BuildListenerCollection NAnt.Core.Project::_buildListeners
+	IL_0024:  ldarg.0 
+	IL_0025:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_002a:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::_buildTargets
+	IL_002f:  ldarg.0 
+	IL_0030:  newobj instance void class NAnt.Core.TargetCollection::'.ctor'()
+	IL_0035:  stfld class NAnt.Core.TargetCollection NAnt.Core.Project::_targets
+	IL_003a:  ldarg.0 
+	IL_003b:  newobj instance void class NAnt.Core.LocationMap::'.ctor'()
+	IL_0040:  stfld class NAnt.Core.LocationMap NAnt.Core.Project::_locationMap
+	IL_0045:  ldarg.0 
+	IL_0046:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
+	IL_004b:  stfld class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::_frameworks
+	IL_0050:  ldarg.0 
+	IL_0051:  newobj instance void class [System.Xml]System.Xml.NameTable::'.ctor'()
+	IL_0056:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
+	IL_005b:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::_nsMgr
+	IL_0060:  ldarg.0 
+	IL_0061:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
+	IL_0066:  stfld class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::_dataTypeReferences
+	IL_006b:  ldarg.0 
+	IL_006c:  ldc.i4 3000
+	IL_0071:  stfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
+	IL_0076:  ldarg.0 
+	IL_0077:  call instance void object::'.ctor'()
+	IL_007c:  nop 
+	IL_007d:  ldarg.0 
+	IL_007e:  ldarg.s 4
+	IL_0080:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::_configurationNode
+	IL_0085:  ldarg.0 
+	IL_0086:  ldarg.0 
+	IL_0087:  ldarg.1 
+	IL_0088:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::LoadBuildFile(string)
+	IL_008d:  ldarg.2 
+	IL_008e:  ldarg.3 
+	IL_008f:  ldc.i4.0 
+	IL_0090:  call instance void class NAnt.Core.Project::CtorHelper(class [System.Xml]System.Xml.XmlDocument, valuetype NAnt.Core.Level, int32, valuetype NAnt.Core.Optimizations)
+	IL_0095:  ret 
+    } // end of method Project::.ctor
+
+    // method line 2089
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string uriOrFilePath, class NAnt.Core.Project parent)  cil managed 
+    {
+        // Method begins at RVA 0x27b54
+	// Code size 283 (0x11b)
+	.maxstack 5
+	.locals init (
+		class NAnt.Core.FrameworkInfo	V_0,
+		class NAnt.Core.FrameworkInfoDictionaryEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldstr ""
+	IL_0006:  stfld string NAnt.Core.Project::_projectName
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4.4 
+	IL_000d:  stfld int32 NAnt.Core.Project::_indentationSize
+	IL_0012:  ldarg.0 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  stfld int32 NAnt.Core.Project::_indentationLevel
+	IL_0019:  ldarg.0 
+	IL_001a:  newobj instance void class NAnt.Core.BuildListenerCollection::'.ctor'()
+	IL_001f:  stfld class NAnt.Core.BuildListenerCollection NAnt.Core.Project::_buildListeners
+	IL_0024:  ldarg.0 
+	IL_0025:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_002a:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::_buildTargets
+	IL_002f:  ldarg.0 
+	IL_0030:  newobj instance void class NAnt.Core.TargetCollection::'.ctor'()
+	IL_0035:  stfld class NAnt.Core.TargetCollection NAnt.Core.Project::_targets
+	IL_003a:  ldarg.0 
+	IL_003b:  newobj instance void class NAnt.Core.LocationMap::'.ctor'()
+	IL_0040:  stfld class NAnt.Core.LocationMap NAnt.Core.Project::_locationMap
+	IL_0045:  ldarg.0 
+	IL_0046:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
+	IL_004b:  stfld class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::_frameworks
+	IL_0050:  ldarg.0 
+	IL_0051:  newobj instance void class [System.Xml]System.Xml.NameTable::'.ctor'()
+	IL_0056:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
+	IL_005b:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::_nsMgr
+	IL_0060:  ldarg.0 
+	IL_0061:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
+	IL_0066:  stfld class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::_dataTypeReferences
+	IL_006b:  ldarg.0 
+	IL_006c:  ldc.i4 3000
+	IL_0071:  stfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
+	IL_0076:  ldarg.0 
+	IL_0077:  call instance void object::'.ctor'()
+	IL_007c:  nop 
+	IL_007d:  ldarg.0 
+	IL_007e:  ldarg.2 
+	IL_007f:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Project::get_ConfigurationNode()
+	IL_0084:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::_configurationNode
+	IL_0089:  ldarg.0 
+	IL_008a:  ldarg.0 
+	IL_008b:  ldarg.1 
+	IL_008c:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::LoadBuildFile(string)
+	IL_0091:  ldarg.2 
+	IL_0092:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
+	IL_0097:  ldarg.2 
+	IL_0098:  callvirt instance int32 class NAnt.Core.Project::get_IndentationLevel()
+	IL_009d:  ldc.i4.1 
+	IL_009e:  add 
+	IL_009f:  ldc.i4.2 
+	IL_00a0:  call instance void class NAnt.Core.Project::CtorHelper(class [System.Xml]System.Xml.XmlDocument, valuetype NAnt.Core.Level, int32, valuetype NAnt.Core.Optimizations)
+	IL_00a5:  ldarg.0 
+	IL_00a6:  ldarg.2 
+	IL_00a7:  callvirt instance class NAnt.Core.BuildListenerCollection class NAnt.Core.Project::get_BuildListeners()
+	IL_00ac:  call instance void class NAnt.Core.Project::AttachBuildListeners(class NAnt.Core.BuildListenerCollection)
+	IL_00b1:  nop 
+	IL_00b2:  ldarg.2 
+	IL_00b3:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
+	IL_00b8:  callvirt instance class NAnt.Core.FrameworkInfoDictionaryEnumerator class NAnt.Core.FrameworkInfoDictionary::GetEnumerator()
+	IL_00bd:  stloc.1 
+	.try { // 0
+	  IL_00be:  br IL_00de
+
+	  IL_00c3:  ldloc.1 
+	  IL_00c4:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Current()
+	  IL_00c9:  stloc.0 
+	  IL_00ca:  nop 
+	  IL_00cb:  ldarg.0 
+	  IL_00cc:  call instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
+	  IL_00d1:  ldloc.0 
+	  IL_00d2:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	  IL_00d7:  ldloc.0 
+	  IL_00d8:  callvirt instance void class NAnt.Core.FrameworkInfoDictionary::Add(string, class NAnt.Core.FrameworkInfo)
+	  IL_00dd:  nop 
+	  IL_00de:  ldloc.1 
+	  IL_00df:  callvirt instance bool class NAnt.Core.FrameworkInfoDictionaryEnumerator::MoveNext()
+	  IL_00e4:  brtrue IL_00c3
+
+	  IL_00e9:  leave IL_0102
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00ee:  ldloc.1 
+	  IL_00ef:  isinst [mscorlib]System.IDisposable
+	  IL_00f4:  dup 
+	  IL_00f5:  stloc.2 
+	  IL_00f6:  brfalse IL_0101
+
+	  IL_00fb:  ldloc.2 
+	  IL_00fc:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0101:  endfinally 
+	} // end handler 0
+	IL_0102:  ldarg.0 
+	IL_0103:  ldarg.2 
+	IL_0104:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
+	IL_0109:  call instance void class NAnt.Core.Project::set_RuntimeFramework(class NAnt.Core.FrameworkInfo)
+	IL_010e:  ldarg.0 
+	IL_010f:  ldarg.2 
+	IL_0110:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_0115:  call instance void class NAnt.Core.Project::set_TargetFramework(class NAnt.Core.FrameworkInfo)
+	IL_011a:  ret 
+    } // end of method Project::.ctor
+
+    // method line 2090
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlDocument doc)  cil managed 
+    {
+        // Method begins at RVA 0x27c8c
+	// Code size 140 (0x8c)
+	.maxstack 5
+	IL_0000:  ldarg.0 
+	IL_0001:  ldstr ""
+	IL_0006:  stfld string NAnt.Core.Project::_projectName
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4.4 
+	IL_000d:  stfld int32 NAnt.Core.Project::_indentationSize
+	IL_0012:  ldarg.0 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  stfld int32 NAnt.Core.Project::_indentationLevel
+	IL_0019:  ldarg.0 
+	IL_001a:  newobj instance void class NAnt.Core.BuildListenerCollection::'.ctor'()
+	IL_001f:  stfld class NAnt.Core.BuildListenerCollection NAnt.Core.Project::_buildListeners
+	IL_0024:  ldarg.0 
+	IL_0025:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_002a:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::_buildTargets
+	IL_002f:  ldarg.0 
+	IL_0030:  newobj instance void class NAnt.Core.TargetCollection::'.ctor'()
+	IL_0035:  stfld class NAnt.Core.TargetCollection NAnt.Core.Project::_targets
+	IL_003a:  ldarg.0 
+	IL_003b:  newobj instance void class NAnt.Core.LocationMap::'.ctor'()
+	IL_0040:  stfld class NAnt.Core.LocationMap NAnt.Core.Project::_locationMap
+	IL_0045:  ldarg.0 
+	IL_0046:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
+	IL_004b:  stfld class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::_frameworks
+	IL_0050:  ldarg.0 
+	IL_0051:  newobj instance void class [System.Xml]System.Xml.NameTable::'.ctor'()
+	IL_0056:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
+	IL_005b:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::_nsMgr
+	IL_0060:  ldarg.0 
+	IL_0061:  newobj instance void class NAnt.Core.DataTypeBaseDictionary::'.ctor'()
+	IL_0066:  stfld class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::_dataTypeReferences
+	IL_006b:  ldarg.0 
+	IL_006c:  ldc.i4 3000
+	IL_0071:  stfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
+	IL_0076:  ldarg.0 
+	IL_0077:  call instance void object::'.ctor'()
+	IL_007c:  nop 
+	IL_007d:  ldarg.0 
+	IL_007e:  ldarg.1 
+	IL_007f:  ldc.i4 9999
+	IL_0084:  ldc.i4.0 
+	IL_0085:  ldc.i4.3 
+	IL_0086:  call instance void class NAnt.Core.Project::CtorHelper(class [System.Xml]System.Xml.XmlDocument, valuetype NAnt.Core.Level, int32, valuetype NAnt.Core.Optimizations)
+	IL_008b:  ret 
+    } // end of method Project::.ctor
+
+    // method line 2091
+    .method public hidebysig specialname 
+           instance default void add_BuildStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27d24
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildEventHandler	V_0,
+		class NAnt.Core.BuildEventHandler	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildStarted
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  stloc.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildStarted
+	IL_000f:  ldloc.1 
+	IL_0010:  ldarg.1 
+	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
+	IL_0016:  castclass NAnt.Core.BuildEventHandler
+	IL_001b:  ldloc.0 
+	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldloc.1 
+	IL_0024:  bne.un IL_0007
+
+	IL_0029:  ret 
+    } // end of method Project::add_BuildStarted
+
+    // method line 2092
+    .method public hidebysig specialname 
+           instance default void remove_BuildStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27d5c
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildEventHandler	V_0,
+		class NAnt.Core.BuildEventHandler	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildStarted
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  stloc.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildStarted
+	IL_000f:  ldloc.1 
+	IL_0010:  ldarg.1 
+	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
+	IL_0016:  castclass NAnt.Core.BuildEventHandler
+	IL_001b:  ldloc.0 
+	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldloc.1 
+	IL_0024:  bne.un IL_0007
+
+	IL_0029:  ret 
+    } // end of method Project::remove_BuildStarted
+
+    // method line 2093
+    .method public hidebysig specialname 
+           instance default void add_BuildFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27d94
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildEventHandler	V_0,
+		class NAnt.Core.BuildEventHandler	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildFinished
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  stloc.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildFinished
+	IL_000f:  ldloc.1 
+	IL_0010:  ldarg.1 
+	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
+	IL_0016:  castclass NAnt.Core.BuildEventHandler
+	IL_001b:  ldloc.0 
+	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldloc.1 
+	IL_0024:  bne.un IL_0007
+
+	IL_0029:  ret 
+    } // end of method Project::add_BuildFinished
+
+    // method line 2094
+    .method public hidebysig specialname 
+           instance default void remove_BuildFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27dcc
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildEventHandler	V_0,
+		class NAnt.Core.BuildEventHandler	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildFinished
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  stloc.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildFinished
+	IL_000f:  ldloc.1 
+	IL_0010:  ldarg.1 
+	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
+	IL_0016:  castclass NAnt.Core.BuildEventHandler
+	IL_001b:  ldloc.0 
+	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldloc.1 
+	IL_0024:  bne.un IL_0007
+
+	IL_0029:  ret 
+    } // end of method Project::remove_BuildFinished
+
+    // method line 2095
+    .method public hidebysig specialname 
+           instance default void add_TargetStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27e04
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildEventHandler	V_0,
+		class NAnt.Core.BuildEventHandler	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetStarted
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  stloc.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetStarted
+	IL_000f:  ldloc.1 
+	IL_0010:  ldarg.1 
+	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
+	IL_0016:  castclass NAnt.Core.BuildEventHandler
+	IL_001b:  ldloc.0 
+	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldloc.1 
+	IL_0024:  bne.un IL_0007
+
+	IL_0029:  ret 
+    } // end of method Project::add_TargetStarted
+
+    // method line 2096
+    .method public hidebysig specialname 
+           instance default void remove_TargetStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27e3c
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildEventHandler	V_0,
+		class NAnt.Core.BuildEventHandler	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetStarted
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  stloc.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetStarted
+	IL_000f:  ldloc.1 
+	IL_0010:  ldarg.1 
+	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
+	IL_0016:  castclass NAnt.Core.BuildEventHandler
+	IL_001b:  ldloc.0 
+	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldloc.1 
+	IL_0024:  bne.un IL_0007
+
+	IL_0029:  ret 
+    } // end of method Project::remove_TargetStarted
+
+    // method line 2097
+    .method public hidebysig specialname 
+           instance default void add_TargetFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27e74
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildEventHandler	V_0,
+		class NAnt.Core.BuildEventHandler	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetFinished
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  stloc.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetFinished
+	IL_000f:  ldloc.1 
+	IL_0010:  ldarg.1 
+	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
+	IL_0016:  castclass NAnt.Core.BuildEventHandler
+	IL_001b:  ldloc.0 
+	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldloc.1 
+	IL_0024:  bne.un IL_0007
+
+	IL_0029:  ret 
+    } // end of method Project::add_TargetFinished
+
+    // method line 2098
+    .method public hidebysig specialname 
+           instance default void remove_TargetFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27eac
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildEventHandler	V_0,
+		class NAnt.Core.BuildEventHandler	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetFinished
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  stloc.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetFinished
+	IL_000f:  ldloc.1 
+	IL_0010:  ldarg.1 
+	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
+	IL_0016:  castclass NAnt.Core.BuildEventHandler
+	IL_001b:  ldloc.0 
+	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldloc.1 
+	IL_0024:  bne.un IL_0007
+
+	IL_0029:  ret 
+    } // end of method Project::remove_TargetFinished
+
+    // method line 2099
+    .method public hidebysig specialname 
+           instance default void add_TaskStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27ee4
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildEventHandler	V_0,
+		class NAnt.Core.BuildEventHandler	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskStarted
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  stloc.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskStarted
+	IL_000f:  ldloc.1 
+	IL_0010:  ldarg.1 
+	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
+	IL_0016:  castclass NAnt.Core.BuildEventHandler
+	IL_001b:  ldloc.0 
+	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldloc.1 
+	IL_0024:  bne.un IL_0007
+
+	IL_0029:  ret 
+    } // end of method Project::add_TaskStarted
+
+    // method line 2100
+    .method public hidebysig specialname 
+           instance default void remove_TaskStarted (class NAnt.Core.BuildEventHandler 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27f1c
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildEventHandler	V_0,
+		class NAnt.Core.BuildEventHandler	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskStarted
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  stloc.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskStarted
+	IL_000f:  ldloc.1 
+	IL_0010:  ldarg.1 
+	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
+	IL_0016:  castclass NAnt.Core.BuildEventHandler
+	IL_001b:  ldloc.0 
+	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldloc.1 
+	IL_0024:  bne.un IL_0007
+
+	IL_0029:  ret 
+    } // end of method Project::remove_TaskStarted
+
+    // method line 2101
+    .method public hidebysig specialname 
+           instance default void add_TaskFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27f54
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildEventHandler	V_0,
+		class NAnt.Core.BuildEventHandler	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskFinished
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  stloc.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskFinished
+	IL_000f:  ldloc.1 
+	IL_0010:  ldarg.1 
+	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
+	IL_0016:  castclass NAnt.Core.BuildEventHandler
+	IL_001b:  ldloc.0 
+	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldloc.1 
+	IL_0024:  bne.un IL_0007
+
+	IL_0029:  ret 
+    } // end of method Project::add_TaskFinished
+
+    // method line 2102
+    .method public hidebysig specialname 
+           instance default void remove_TaskFinished (class NAnt.Core.BuildEventHandler 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27f8c
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildEventHandler	V_0,
+		class NAnt.Core.BuildEventHandler	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskFinished
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  stloc.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskFinished
+	IL_000f:  ldloc.1 
+	IL_0010:  ldarg.1 
+	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
+	IL_0016:  castclass NAnt.Core.BuildEventHandler
+	IL_001b:  ldloc.0 
+	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldloc.1 
+	IL_0024:  bne.un IL_0007
+
+	IL_0029:  ret 
+    } // end of method Project::remove_TaskFinished
+
+    // method line 2103
+    .method public hidebysig specialname 
+           instance default void add_MessageLogged (class NAnt.Core.BuildEventHandler 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27fc4
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildEventHandler	V_0,
+		class NAnt.Core.BuildEventHandler	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::MessageLogged
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  stloc.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::MessageLogged
+	IL_000f:  ldloc.1 
+	IL_0010:  ldarg.1 
+	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
+	IL_0016:  castclass NAnt.Core.BuildEventHandler
+	IL_001b:  ldloc.0 
+	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldloc.1 
+	IL_0024:  bne.un IL_0007
+
+	IL_0029:  ret 
+    } // end of method Project::add_MessageLogged
+
+    // method line 2104
+    .method public hidebysig specialname 
+           instance default void remove_MessageLogged (class NAnt.Core.BuildEventHandler 'value')  cil managed 
+    {
+        // Method begins at RVA 0x27ffc
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.BuildEventHandler	V_0,
+		class NAnt.Core.BuildEventHandler	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::MessageLogged
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  stloc.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldflda class NAnt.Core.BuildEventHandler NAnt.Core.Project::MessageLogged
+	IL_000f:  ldloc.1 
+	IL_0010:  ldarg.1 
+	IL_0011:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
+	IL_0016:  castclass NAnt.Core.BuildEventHandler
+	IL_001b:  ldloc.0 
+	IL_001c:  call !!0 class [mscorlib]System.Threading.Interlocked::CompareExchange<class NAnt.Core.BuildEventHandler> ([out] !!0&, !!0, !!0)
+	IL_0021:  stloc.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  ldloc.1 
+	IL_0024:  bne.un IL_0007
+
+	IL_0029:  ret 
+    } // end of method Project::remove_MessageLogged
+
+    // method line 2105
+    .method public hidebysig specialname 
+           instance default int32 get_IndentationLevel ()  cil managed 
+    {
+        // Method begins at RVA 0x28034
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.Core.Project::_indentationLevel
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_IndentationLevel
+
+    // method line 2106
+    .method public hidebysig specialname 
+           instance default int32 get_IndentationSize ()  cil managed 
+    {
+        // Method begins at RVA 0x28050
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.Core.Project::_indentationSize
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_IndentationSize
+
+    // method line 2107
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
+    {
+        // Method begins at RVA 0x2806c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.Core.Level	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_Threshold
+
+    // method line 2108
+    .method public hidebysig specialname 
+           instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
+    {
+        // Method begins at RVA 0x28087
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld valuetype NAnt.Core.Level NAnt.Core.Project::_threshold
+	IL_0008:  ret 
+    } // end of method Project::set_Threshold
+
+    // method line 2109
+    .method public hidebysig specialname 
+           instance default string get_ProjectName ()  cil managed 
+    {
+        // Method begins at RVA 0x28094
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Project::_projectName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_ProjectName
+
+    // method line 2110
+    .method public hidebysig specialname 
+           instance default string get_BaseDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x280b0
+	// Code size 83 (0x53)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Project::_baseDirectory
+	IL_0007:  brtrue IL_0014
+
+	IL_000c:  nop 
+	IL_000d:  ldnull 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0051
+
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld string NAnt.Core.Project::_baseDirectory
+	IL_001a:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_001f:  brtrue IL_0045
+
+	IL_0024:  nop 
+	IL_0025:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InstalledUICulture()
+	IL_002a:  ldstr "Invalid base directory '{0}'. The project base directorymust be rooted."
+	IL_002f:  ldarg.0 
+	IL_0030:  ldfld string NAnt.Core.Project::_baseDirectory
+	IL_0035:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_003a:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_003f:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0044:  throw 
+	IL_0045:  ldarg.0 
+	IL_0046:  ldfld string NAnt.Core.Project::_baseDirectory
+	IL_004b:  stloc.0 
+	IL_004c:  br IL_0051
+
+	IL_0051:  ldloc.0 
+	IL_0052:  ret 
+    } // end of method Project::get_BaseDirectory
+
+    // method line 2111
+    .method public hidebysig specialname 
+           instance default void set_BaseDirectory (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x28110
+	// Code size 67 (0x43)
+	.maxstack 5
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_0007:  brtrue IL_0028
+
+	IL_000c:  nop 
+	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InstalledUICulture()
+	IL_0012:  ldstr "Invalid base directory '{0}'. The project base directorymust be rooted."
+	IL_0017:  ldarg.1 
+	IL_0018:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_001d:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_0022:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_0027:  throw 
+	IL_0028:  ldarg.0 
+	IL_0029:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_002e:  ldstr "nant.project.basedir"
+	IL_0033:  ldarg.0 
+	IL_0034:  ldarg.1 
+	IL_0035:  dup 
+	IL_0036:  stloc.0 
+	IL_0037:  stfld string NAnt.Core.Project::_baseDirectory
+	IL_003c:  ldloc.0 
+	IL_003d:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0042:  ret 
+    } // end of method Project::set_BaseDirectory
+
+    // method line 2112
+    .method public hidebysig specialname 
+           instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
+    {
+        // Method begins at RVA 0x28160
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [System.Xml]System.Xml.XmlNamespaceManager	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::_nsMgr
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_NamespaceManager
+
+    // method line 2113
+    .method public hidebysig specialname 
+           instance default class [System]System.Uri get_BuildFileUri ()  cil managed 
+    {
+        // Method begins at RVA 0x2817c
+	// Code size 85 (0x55)
+	.maxstack 3
+	.locals init (
+		class [System]System.Uri	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::get_Document()
+	IL_0007:  brfalse IL_0021
+
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::get_Document()
+	IL_0012:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_BaseURI()
+	IL_0017:  call bool string::IsNullOrEmpty(string)
+	IL_001c:  brfalse IL_0029
+
+	IL_0021:  nop 
+	IL_0022:  ldnull 
+	IL_0023:  stloc.0 
+	IL_0024:  br IL_0053
+
+	IL_0029:  nop 
+	IL_002a:  ldarg.0 
+	IL_002b:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::get_Document()
+	IL_0030:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_BaseURI()
+	IL_0035:  ldstr "#"
+	IL_003a:  ldc.i4.s 0x23
+	IL_003c:  call string class [System]System.Uri::HexEscape(char)
+	IL_0041:  callvirt instance string string::Replace(string, string)
+	IL_0046:  stloc.1 
+	IL_0047:  ldloc.1 
+	IL_0048:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	IL_004d:  stloc.0 
+	IL_004e:  br IL_0053
+
+	IL_0053:  ldloc.0 
+	IL_0054:  ret 
+    } // end of method Project::get_BuildFileUri
+
+    // method line 2114
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.FrameworkInfoDictionary get_Frameworks ()  cil managed 
+    {
+        // Method begins at RVA 0x281e0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.FrameworkInfoDictionary	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::_frameworks
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_Frameworks
+
+    // method line 2115
+    .method assembly hidebysig 
+           instance default class NAnt.Core.FrameworkInfo[] GetFrameworks (valuetype NAnt.Core.FrameworkTypes types)  cil managed 
+    {
+        // Method begins at RVA 0x281fc
+	// Code size 411 (0x19b)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.Collections.ArrayList	V_0,
+		class NAnt.Core.FrameworkInfo	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		valuetype NAnt.Core.ClrType	V_3,
+		valuetype NAnt.Core.VendorType	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		class NAnt.Core.FrameworkInfo[]	V_6,
+		class NAnt.Core.FrameworkInfo[]	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
+	IL_0007:  callvirt instance int32 class NAnt.Core.FrameworkInfoDictionary::get_Count()
+	IL_000c:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
+	IL_0011:  stloc.0 
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
+	IL_0019:  callvirt instance class [mscorlib]System.Collections.ICollection class NAnt.Core.FrameworkInfoDictionary::get_Values()
+	IL_001e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0023:  stloc.2 
+	.try { // 0
+	  IL_0024:  br IL_0149
+
+	  IL_0029:  ldloc.2 
+	  IL_002a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_002f:  castclass NAnt.Core.FrameworkInfo
+	  IL_0034:  stloc.1 
+	  IL_0035:  nop 
+	  IL_0036:  ldarg.1 
+	  IL_0037:  ldc.i4.3 
+	  IL_0038:  and 
+	  IL_0039:  brfalse IL_0070
+
+	  IL_003e:  nop 
+	  IL_003f:  ldarg.1 
+	  IL_0040:  ldc.i4.2 
+	  IL_0041:  and 
+	  IL_0042:  brtrue IL_0057
+
+	  IL_0047:  ldloc.1 
+	  IL_0048:  callvirt instance bool class NAnt.Core.FrameworkInfo::get_IsValid()
+	  IL_004d:  brfalse IL_0057
+
+	  IL_0052:  leave IL_0149
+
+	  IL_0057:  ldarg.1 
+	  IL_0058:  ldc.i4.1 
+	  IL_0059:  and 
+	  IL_005a:  brtrue IL_006f
+
+	  IL_005f:  ldloc.1 
+	  IL_0060:  callvirt instance bool class NAnt.Core.FrameworkInfo::get_IsValid()
+	  IL_0065:  brtrue IL_006f
+
+	  IL_006a:  leave IL_0149
+
+	  IL_006f:  nop 
+	  IL_0070:  ldarg.1 
+	  IL_0071:  ldc.i4.s 0x1c
+	  IL_0073:  and 
+	  IL_0074:  brfalse IL_00f2
+
+	  IL_0079:  nop 
+	  IL_007a:  ldloc.1 
+	  IL_007b:  callvirt instance valuetype NAnt.Core.ClrType class NAnt.Core.FrameworkInfo::get_ClrType()
+	  IL_0080:  stloc.3 
+	  IL_0081:  ldloc.3 
+	  IL_0082:  ldc.i4.1 
+	  IL_0083:  sub 
+	  IL_0084:  switch (
+	    IL_00ac,
+	    IL_009a,
+	    IL_00be)
+	  IL_0095:  br IL_00d1
+
+	  IL_009a:  ldarg.1 
+	  IL_009b:  ldc.i4.8 
+	  IL_009c:  and 
+	  IL_009d:  brtrue IL_00a7
+
+	  IL_00a2:  leave IL_0149
+
+	  IL_00a7:  leave IL_00f1
+
+	  IL_00ac:  ldarg.1 
+	  IL_00ad:  ldc.i4.4 
+	  IL_00ae:  and 
+	  IL_00af:  brtrue IL_00b9
+
+	  IL_00b4:  leave IL_0149
+
+	  IL_00b9:  leave IL_00f1
+
+	  IL_00be:  ldarg.1 
+	  IL_00bf:  ldc.i4.s 0x10
+	  IL_00c1:  and 
+	  IL_00c2:  brtrue IL_00cc
+
+	  IL_00c7:  leave IL_0149
+
+	  IL_00cc:  leave IL_00f1
+
+	  IL_00d1:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_00d6:  ldstr "CLR type '{0}' is not supported."
+	  IL_00db:  ldloc.1 
+	  IL_00dc:  callvirt instance valuetype NAnt.Core.ClrType class NAnt.Core.FrameworkInfo::get_ClrType()
+	  IL_00e1:  box NAnt.Core.ClrType
+	  IL_00e6:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_00eb:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
+	  IL_00f0:  throw 
+	  IL_00f1:  nop 
+	  IL_00f2:  ldarg.1 
+	  IL_00f3:  ldc.i4.s 0x60
+	  IL_00f5:  and 
+	  IL_00f6:  brfalse IL_0140
+
+	  IL_00fb:  nop 
+	  IL_00fc:  ldloc.1 
+	  IL_00fd:  callvirt instance valuetype NAnt.Core.VendorType class NAnt.Core.FrameworkInfo::get_Vendor()
+	  IL_0102:  stloc.s 4
+	  IL_0104:  ldloc.s 4
+	  IL_0106:  ldc.i4.2 
+	  IL_0107:  beq IL_0119
+
+	  IL_010c:  ldloc.s 4
+	  IL_010e:  ldc.i4.1 
+	  IL_010f:  beq IL_012c
+
+	  IL_0114:  br IL_013f
+
+	  IL_0119:  ldarg.1 
+	  IL_011a:  ldc.i4.s 0x20
+	  IL_011c:  and 
+	  IL_011d:  brtrue IL_0127
+
+	  IL_0122:  leave IL_0149
+
+	  IL_0127:  leave IL_013f
+
+	  IL_012c:  ldarg.1 
+	  IL_012d:  ldc.i4.s 0x40
+	  IL_012f:  and 
+	  IL_0130:  brtrue IL_013a
+
+	  IL_0135:  leave IL_0149
+
+	  IL_013a:  leave IL_013f
+
+	  IL_013f:  nop 
+	  IL_0140:  ldloc.0 
+	  IL_0141:  ldloc.1 
+	  IL_0142:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0147:  pop 
+	  IL_0148:  nop 
+	  IL_0149:  ldloc.2 
+	  IL_014a:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_014f:  brtrue IL_0029
+
+	  IL_0154:  leave IL_016f
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0159:  ldloc.2 
+	  IL_015a:  isinst [mscorlib]System.IDisposable
+	  IL_015f:  dup 
+	  IL_0160:  stloc.s 5
+	  IL_0162:  brfalse IL_016e
+
+	  IL_0167:  ldloc.s 5
+	  IL_0169:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_016e:  endfinally 
+	} // end handler 0
+	IL_016f:  ldloc.0 
+	IL_0170:  call class [mscorlib]System.Collections.IComparer class NAnt.Core.FrameworkInfo::get_NameComparer()
+	IL_0175:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Sort(class [mscorlib]System.Collections.IComparer)
+	IL_017a:  ldloc.0 
+	IL_017b:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_0180:  newarr NAnt.Core.FrameworkInfo
+	IL_0185:  stloc.s 6
+	IL_0187:  ldloc.0 
+	IL_0188:  ldloc.s 6
+	IL_018a:  callvirt instance void class [mscorlib]System.Collections.ArrayList::CopyTo(class [mscorlib]System.Array)
+	IL_018f:  ldloc.s 6
+	IL_0191:  stloc.s 7
+	IL_0193:  br IL_0198
+
+	IL_0198:  ldloc.s 7
+	IL_019a:  ret 
+    } // end of method Project::GetFrameworks
+
+    // method line 2116
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.FrameworkInfo get_RuntimeFramework ()  cil managed 
+    {
+        // Method begins at RVA 0x283c0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.FrameworkInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.FrameworkInfo NAnt.Core.Project::_runtimeFramework
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_RuntimeFramework
+
+    // method line 2117
+    .method public hidebysig specialname 
+           instance default void set_RuntimeFramework (class NAnt.Core.FrameworkInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x283db
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.Core.FrameworkInfo NAnt.Core.Project::_runtimeFramework
+	IL_0008:  ret 
+    } // end of method Project::set_RuntimeFramework
+
+    // method line 2118
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.FrameworkInfo get_TargetFramework ()  cil managed 
+    {
+        // Method begins at RVA 0x283e8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.FrameworkInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.FrameworkInfo NAnt.Core.Project::_targetFramework
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_TargetFramework
+
+    // method line 2119
+    .method public hidebysig specialname 
+           instance default void set_TargetFramework (class NAnt.Core.FrameworkInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x28403
+	// Code size 39 (0x27)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
+
+	IL_0007:  nop 
+	IL_0008:  ldstr "value"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.1 
+	IL_0014:  callvirt instance void class NAnt.Core.FrameworkInfo::Validate()
+	IL_0019:  ldarg.0 
+	IL_001a:  ldarg.1 
+	IL_001b:  stfld class NAnt.Core.FrameworkInfo NAnt.Core.Project::_targetFramework
+	IL_0020:  ldarg.0 
+	IL_0021:  call instance void class NAnt.Core.Project::UpdateTargetFrameworkProperties()
+	IL_0026:  ret 
+    } // end of method Project::set_TargetFramework
+
+    // method line 2120
+    .method public hidebysig specialname 
+           instance default string get_PlatformName ()  cil managed 
+    {
+        // Method begins at RVA 0x2842c
+	// Code size 118 (0x76)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		valuetype [mscorlib]System.PlatformID	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsWin32
+	IL_0006:  brfalse IL_0017
+
+	IL_000b:  nop 
+	IL_000c:  ldstr "win32"
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0074
+
+	IL_0017:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
+	IL_001c:  brfalse IL_002d
+
+	IL_0021:  nop 
+	IL_0022:  ldstr "unix"
+	IL_0027:  stloc.0 
+	IL_0028:  br IL_0074
+
+	IL_002d:  nop 
+	IL_002e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0033:  ldstr "NA1060"
+	IL_0038:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_003d:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
+	IL_0042:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
+	IL_0047:  stloc.1 
+	IL_0048:  ldloca.s 1
+	IL_004a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_004f:  constrained. [mscorlib]System.PlatformID
+	IL_0055:  callvirt instance string class [mscorlib]System.Enum::ToString(class [mscorlib]System.IFormatProvider)
+	IL_005a:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
+	IL_005f:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
+	IL_0064:  box [mscorlib]System.Int32
+	IL_0069:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_006e:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_0073:  throw 
+	IL_0074:  ldloc.0 
+	IL_0075:  ret 
+    } // end of method Project::get_PlatformName
+
+    // method line 2121
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Target get_CurrentTarget ()  cil managed 
+    {
+        // Method begins at RVA 0x284b0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.Target	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.Target NAnt.Core.Project::_currentTarget
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_CurrentTarget
+
+    // method line 2122
+    .method public hidebysig specialname 
+           instance default string get_BuildFileLocalName ()  cil managed 
+    {
+        // Method begins at RVA 0x284cc
+	// Code size 62 (0x3e)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
+	IL_0007:  ldnull 
+	IL_0008:  call bool class [System]System.Uri::op_Inequality(class [System]System.Uri, class [System]System.Uri)
+	IL_000d:  brfalse IL_0034
+
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
+	IL_0018:  callvirt instance bool class [System]System.Uri::get_IsFile()
+	IL_001d:  brfalse IL_0034
+
+	IL_0022:  nop 
+	IL_0023:  ldarg.0 
+	IL_0024:  call instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
+	IL_0029:  callvirt instance string class [System]System.Uri::get_LocalPath()
+	IL_002e:  stloc.0 
+	IL_002f:  br IL_003c
+
+	IL_0034:  nop 
+	IL_0035:  ldnull 
+	IL_0036:  stloc.0 
+	IL_0037:  br IL_003c
+
+	IL_003c:  ldloc.0 
+	IL_003d:  ret 
+    } // end of method Project::get_BuildFileLocalName
+
+    // method line 2123
+    .method public hidebysig specialname 
+           instance default class [System.Xml]System.Xml.XmlDocument get_Document ()  cil managed 
+    {
+        // Method begins at RVA 0x28518
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [System.Xml]System.Xml.XmlDocument	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlDocument NAnt.Core.Project::_doc
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_Document
+
+    // method line 2124
+    .method public hidebysig specialname 
+           instance default class [System.Xml]System.Xml.XmlNode get_ConfigurationNode ()  cil managed 
+    {
+        // Method begins at RVA 0x28534
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [System.Xml]System.Xml.XmlNode	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::_configurationNode
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_ConfigurationNode
+
+    // method line 2125
+    .method public hidebysig specialname 
+           instance default string get_DefaultTargetName ()  cil managed 
+    {
+        // Method begins at RVA 0x28550
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Project::_defaultTargetName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_DefaultTargetName
+
+    // method line 2126
+    .method public hidebysig specialname 
+           instance default bool get_Verbose ()  cil managed 
+    {
+        // Method begins at RVA 0x2856c
+	// Code size 25 (0x19)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4 2000
+	IL_0006:  ldarg.0 
+	IL_0007:  call instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
+	IL_000c:  clt 
+	IL_000e:  ldc.i4.0 
+	IL_000f:  ceq 
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_12f7:  ldloc.1 
-	IL_12f8:  isinst [mscorlib]System.Int64
-	IL_12fd:  brfalse IL_132c
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method Project::get_Verbose
 
-	IL_1302:  ldloc.3 
-	IL_1303:  isinst [mscorlib]System.Int64
-	IL_1308:  brfalse IL_132c
+    // method line 2127
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_BuildTargets ()  cil managed 
+    {
+        // Method begins at RVA 0x28594
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [System]System.Collections.Specialized.StringCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::_buildTargets
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_130d:  nop 
-	IL_130e:  ldloc.1 
-	IL_130f:  castclass [mscorlib]System.IComparable
-	IL_1314:  ldloc.3 
-	IL_1315:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_131a:  ldc.i4.0 
-	IL_131b:  clt 
-	IL_131d:  ldc.i4.0 
-	IL_131e:  ceq 
-	IL_1320:  box [mscorlib]System.Boolean
-	IL_1325:  stloc.s 5
-	IL_1327:  br IL_1536
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_BuildTargets
 
-	IL_132c:  ldloc.1 
-	IL_132d:  isinst [mscorlib]System.Int64
-	IL_1332:  brfalse IL_136b
+    // method line 2128
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.PropertyDictionary get_Properties ()  cil managed 
+    {
+        // Method begins at RVA 0x285b0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.PropertyDictionary	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.Project::_properties
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_1337:  ldloc.3 
-	IL_1338:  isinst [mscorlib]System.Int32
-	IL_133d:  brfalse IL_136b
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_Properties
 
-	IL_1342:  nop 
-	IL_1343:  ldloc.1 
-	IL_1344:  castclass [mscorlib]System.IComparable
-	IL_1349:  ldloc.3 
-	IL_134a:  call int64 class [mscorlib]System.Convert::ToInt64(object)
-	IL_134f:  box [mscorlib]System.Int64
-	IL_1354:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_1359:  ldc.i4.0 
-	IL_135a:  clt 
-	IL_135c:  ldc.i4.0 
-	IL_135d:  ceq 
-	IL_135f:  box [mscorlib]System.Boolean
-	IL_1364:  stloc.s 5
-	IL_1366:  br IL_1536
+    // method line 2129
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.PropertyDictionary get_FrameworkNeutralProperties ()  cil managed 
+    {
+        // Method begins at RVA 0x285cc
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.PropertyDictionary	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.PropertyDictionary NAnt.Core.Project::_frameworkNeutralProperties
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_136b:  ldloc.1 
-	IL_136c:  isinst [mscorlib]System.Int64
-	IL_1371:  brfalse IL_13a5
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_FrameworkNeutralProperties
 
-	IL_1376:  ldloc.3 
-	IL_1377:  isinst [mscorlib]System.Double
-	IL_137c:  brfalse IL_13a5
+    // method line 2130
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.DataTypeBaseDictionary get_DataTypeReferences ()  cil managed 
+    {
+        // Method begins at RVA 0x285e8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.DataTypeBaseDictionary	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::_dataTypeReferences
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_1381:  nop 
-	IL_1382:  ldloc.1 
-	IL_1383:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_1388:  box [mscorlib]System.Double
-	IL_138d:  ldloc.3 
-	IL_138e:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_1393:  ldc.i4.0 
-	IL_1394:  clt 
-	IL_1396:  ldc.i4.0 
-	IL_1397:  ceq 
-	IL_1399:  box [mscorlib]System.Boolean
-	IL_139e:  stloc.s 5
-	IL_13a0:  br IL_1536
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_DataTypeReferences
 
-	IL_13a5:  ldloc.1 
-	IL_13a6:  isinst [mscorlib]System.Double
-	IL_13ab:  brfalse IL_13da
+    // method line 2131
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.TargetCollection get_Targets ()  cil managed 
+    {
+        // Method begins at RVA 0x28604
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.TargetCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.TargetCollection NAnt.Core.Project::_targets
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_13b0:  ldloc.3 
-	IL_13b1:  isinst [mscorlib]System.Double
-	IL_13b6:  brfalse IL_13da
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_Targets
 
-	IL_13bb:  nop 
-	IL_13bc:  ldloc.1 
-	IL_13bd:  castclass [mscorlib]System.IComparable
-	IL_13c2:  ldloc.3 
-	IL_13c3:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_13c8:  ldc.i4.0 
-	IL_13c9:  clt 
-	IL_13cb:  ldc.i4.0 
-	IL_13cc:  ceq 
-	IL_13ce:  box [mscorlib]System.Boolean
-	IL_13d3:  stloc.s 5
-	IL_13d5:  br IL_1536
+    // method line 2132
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.BuildListenerCollection get_BuildListeners ()  cil managed 
+    {
+        // Method begins at RVA 0x28620
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.BuildListenerCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.BuildListenerCollection NAnt.Core.Project::_buildListeners
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_13da:  ldloc.1 
-	IL_13db:  isinst [mscorlib]System.Double
-	IL_13e0:  brfalse IL_1419
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_BuildListeners
 
-	IL_13e5:  ldloc.3 
-	IL_13e6:  isinst [mscorlib]System.Int32
-	IL_13eb:  brfalse IL_1419
+    // method line 2133
+    .method assembly hidebysig specialname 
+           instance default class NAnt.Core.LocationMap get_LocationMap ()  cil managed 
+    {
+        // Method begins at RVA 0x2863c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.LocationMap	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.LocationMap NAnt.Core.Project::_locationMap
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_13f0:  nop 
-	IL_13f1:  ldloc.1 
-	IL_13f2:  castclass [mscorlib]System.IComparable
-	IL_13f7:  ldloc.3 
-	IL_13f8:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_13fd:  box [mscorlib]System.Double
-	IL_1402:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_1407:  ldc.i4.0 
-	IL_1408:  clt 
-	IL_140a:  ldc.i4.0 
-	IL_140b:  ceq 
-	IL_140d:  box [mscorlib]System.Boolean
-	IL_1412:  stloc.s 5
-	IL_1414:  br IL_1536
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Project::get_LocationMap
 
-	IL_1419:  ldloc.1 
-	IL_141a:  isinst [mscorlib]System.Double
-	IL_141f:  brfalse IL_1458
+    // method line 2134
+    .method public hidebysig 
+           instance default class NAnt.Core.Location GetLocation (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    {
+        // Method begins at RVA 0x28658
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Location	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_1424:  ldloc.3 
-	IL_1425:  isinst [mscorlib]System.Int64
-	IL_142a:  brfalse IL_1458
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method Project::GetLocation
 
-	IL_142f:  nop 
-	IL_1430:  ldloc.1 
-	IL_1431:  castclass [mscorlib]System.IComparable
-	IL_1436:  ldloc.3 
-	IL_1437:  call float64 class [mscorlib]System.Convert::ToDouble(object)
-	IL_143c:  box [mscorlib]System.Double
-	IL_1441:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_1446:  ldc.i4.0 
-	IL_1447:  clt 
-	IL_1449:  ldc.i4.0 
-	IL_144a:  ceq 
-	IL_144c:  box [mscorlib]System.Boolean
-	IL_1451:  stloc.s 5
-	IL_1453:  br IL_1536
+    // method line 2135
+    .method public hidebysig 
+           instance default void OnBuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x28679
+	// Code size 28 (0x1c)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildStarted
+	IL_0007:  brfalse IL_001b
 
-	IL_1458:  ldloc.1 
-	IL_1459:  isinst [mscorlib]System.DateTime
-	IL_145e:  brfalse IL_148d
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildStarted
+	IL_0013:  ldarg.1 
+	IL_0014:  ldarg.2 
+	IL_0015:  callvirt instance void class NAnt.Core.BuildEventHandler::Invoke(object, class NAnt.Core.BuildEventArgs)
+	IL_001a:  nop 
+	IL_001b:  ret 
+    } // end of method Project::OnBuildStarted
 
-	IL_1463:  ldloc.3 
-	IL_1464:  isinst [mscorlib]System.DateTime
-	IL_1469:  brfalse IL_148d
+    // method line 2136
+    .method public hidebysig 
+           instance default void OnBuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x28696
+	// Code size 28 (0x1c)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildFinished
+	IL_0007:  brfalse IL_001b
 
-	IL_146e:  nop 
-	IL_146f:  ldloc.1 
-	IL_1470:  castclass [mscorlib]System.IComparable
-	IL_1475:  ldloc.3 
-	IL_1476:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_147b:  ldc.i4.0 
-	IL_147c:  clt 
-	IL_147e:  ldc.i4.0 
-	IL_147f:  ceq 
-	IL_1481:  box [mscorlib]System.Boolean
-	IL_1486:  stloc.s 5
-	IL_1488:  br IL_1536
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::BuildFinished
+	IL_0013:  ldarg.1 
+	IL_0014:  ldarg.2 
+	IL_0015:  callvirt instance void class NAnt.Core.BuildEventHandler::Invoke(object, class NAnt.Core.BuildEventArgs)
+	IL_001a:  nop 
+	IL_001b:  ret 
+    } // end of method Project::OnBuildFinished
 
-	IL_148d:  ldloc.1 
-	IL_148e:  isinst [mscorlib]System.TimeSpan
-	IL_1493:  brfalse IL_14c2
+    // method line 2137
+    .method public hidebysig 
+           instance default void OnTargetStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x286b3
+	// Code size 28 (0x1c)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetStarted
+	IL_0007:  brfalse IL_001b
 
-	IL_1498:  ldloc.3 
-	IL_1499:  isinst [mscorlib]System.TimeSpan
-	IL_149e:  brfalse IL_14c2
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetStarted
+	IL_0013:  ldarg.1 
+	IL_0014:  ldarg.2 
+	IL_0015:  callvirt instance void class NAnt.Core.BuildEventHandler::Invoke(object, class NAnt.Core.BuildEventArgs)
+	IL_001a:  nop 
+	IL_001b:  ret 
+    } // end of method Project::OnTargetStarted
 
-	IL_14a3:  nop 
-	IL_14a4:  ldloc.1 
-	IL_14a5:  castclass [mscorlib]System.IComparable
-	IL_14aa:  ldloc.3 
-	IL_14ab:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_14b0:  ldc.i4.0 
-	IL_14b1:  clt 
-	IL_14b3:  ldc.i4.0 
-	IL_14b4:  ceq 
-	IL_14b6:  box [mscorlib]System.Boolean
-	IL_14bb:  stloc.s 5
-	IL_14bd:  br IL_1536
+    // method line 2138
+    .method public hidebysig 
+           instance default void OnTargetFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x286d0
+	// Code size 28 (0x1c)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetFinished
+	IL_0007:  brfalse IL_001b
 
-	IL_14c2:  ldloc.1 
-	IL_14c3:  isinst [mscorlib]System.Version
-	IL_14c8:  brfalse IL_14f7
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TargetFinished
+	IL_0013:  ldarg.1 
+	IL_0014:  ldarg.2 
+	IL_0015:  callvirt instance void class NAnt.Core.BuildEventHandler::Invoke(object, class NAnt.Core.BuildEventArgs)
+	IL_001a:  nop 
+	IL_001b:  ret 
+    } // end of method Project::OnTargetFinished
 
-	IL_14cd:  ldloc.3 
-	IL_14ce:  isinst [mscorlib]System.Version
-	IL_14d3:  brfalse IL_14f7
+    // method line 2139
+    .method public hidebysig 
+           instance default void OnTaskStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x286ed
+	// Code size 28 (0x1c)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskStarted
+	IL_0007:  brfalse IL_001b
 
-	IL_14d8:  nop 
-	IL_14d9:  ldloc.1 
-	IL_14da:  castclass [mscorlib]System.IComparable
-	IL_14df:  ldloc.3 
-	IL_14e0:  callvirt instance int32 class [mscorlib]System.IComparable::CompareTo(object)
-	IL_14e5:  ldc.i4.0 
-	IL_14e6:  clt 
-	IL_14e8:  ldc.i4.0 
-	IL_14e9:  ceq 
-	IL_14eb:  box [mscorlib]System.Boolean
-	IL_14f0:  stloc.s 5
-	IL_14f2:  br IL_1536
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskStarted
+	IL_0013:  ldarg.1 
+	IL_0014:  ldarg.2 
+	IL_0015:  callvirt instance void class NAnt.Core.BuildEventHandler::Invoke(object, class NAnt.Core.BuildEventArgs)
+	IL_001a:  nop 
+	IL_001b:  ret 
+    } // end of method Project::OnTaskStarted
 
-	IL_14f7:  ldarg.0 
-	IL_14f8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_14fd:  ldstr "NA1050"
-	IL_1502:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_1507:  ldarg.0 
-	IL_1508:  ldloc.1 
-	IL_1509:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_150e:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_1513:  ldarg.0 
-	IL_1514:  ldloc.3 
-	IL_1515:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_151a:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_151f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_1524:  ldloc.0 
-	IL_1525:  ldloc.s 4
-	IL_1527:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_152c:  throw 
-	IL_152d:  nop 
-	IL_152e:  ldloc.1 
-	IL_152f:  stloc.s 5
-	IL_1531:  br IL_1536
+    // method line 2140
+    .method public hidebysig 
+           instance default void OnTaskFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    {
+        // Method begins at RVA 0x2870a
+	// Code size 28 (0x1c)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskFinished
+	IL_0007:  brfalse IL_001b
 
-	IL_1536:  ldloc.s 5
-	IL_1538:  ret 
-    } // end of method ExpressionEvalBase::ParseRelationalExpression
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::TaskFinished
+	IL_0013:  ldarg.1 
+	IL_0014:  ldarg.2 
+	IL_0015:  callvirt instance void class NAnt.Core.BuildEventHandler::Invoke(object, class NAnt.Core.BuildEventArgs)
+	IL_001a:  nop 
+	IL_001b:  ret 
+    } // end of method Project::OnTaskFinished
 
-    // method line 2194
-    .method private hidebysig 
-           instance default object ParseAddSubtract ()  cil managed 
+    // method line 2141
+    .method public hidebysig 
+           instance default void OnMessageLogged (class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x27e18
-	// Code size 1500 (0x5dc)
-	.maxstack 6
-	.locals init (
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0,
-		object	V_1,
-		object	V_2,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_3,
-		object	V_4,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_5,
-		object	V_6)
+        // Method begins at RVA 0x28727
+	// Code size 28 (0x1c)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0007:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_000c:  stloc.0 
+	IL_0002:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::MessageLogged
+	IL_0007:  brfalse IL_001b
+
+	IL_000c:  nop 
 	IL_000d:  ldarg.0 
-	IL_000e:  call instance object class NAnt.Core.ExpressionEvalBase::ParseMulDiv()
-	IL_0013:  stloc.1 
-	IL_0014:  nop 
-	IL_0015:  nop 
+	IL_000e:  ldfld class NAnt.Core.BuildEventHandler NAnt.Core.Project::MessageLogged
+	IL_0013:  ldarg.0 
+	IL_0014:  ldarg.1 
+	IL_0015:  callvirt instance void class NAnt.Core.BuildEventHandler::Invoke(object, class NAnt.Core.BuildEventArgs)
+	IL_001a:  nop 
+	IL_001b:  ret 
+    } // end of method Project::OnMessageLogged
+
+    // method line 2142
+    .method public hidebysig 
+           instance default void Log (valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
+    {
+        // Method begins at RVA 0x28744
+	// Code size 30 (0x1e)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.BuildEventArgs	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Project)
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  ldarg.2 
+	IL_000a:  callvirt instance void class NAnt.Core.BuildEventArgs::set_Message(string)
+	IL_000f:  ldloc.0 
+	IL_0010:  ldarg.1 
+	IL_0011:  callvirt instance void class NAnt.Core.BuildEventArgs::set_MessageLevel(valuetype NAnt.Core.Level)
 	IL_0016:  ldarg.0 
-	IL_0017:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_001c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0021:  ldc.i4.s 0x0b
-	IL_0023:  bne.un IL_02dd
+	IL_0017:  ldloc.0 
+	IL_0018:  call instance void class NAnt.Core.Project::OnMessageLogged(class NAnt.Core.BuildEventArgs)
+	IL_001d:  ret 
+    } // end of method Project::Log
 
-	IL_0028:  nop 
-	IL_0029:  ldarg.0 
-	IL_002a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_002f:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_0034:  ldarg.0 
-	IL_0035:  call instance object class NAnt.Core.ExpressionEvalBase::ParseMulDiv()
-	IL_003a:  stloc.2 
-	IL_003b:  ldarg.0 
-	IL_003c:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0041:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_0046:  stloc.3 
-	IL_0047:  ldarg.0 
-	IL_0048:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	IL_004d:  brtrue IL_02d7
+    // method line 2143
+    .method public hidebysig 
+           instance default void Log (valuetype NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
+    {
+	.param [3]
+	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	IL_0052:  nop 
-	IL_0053:  ldloc.1 
-	IL_0054:  isinst [mscorlib]System.String
-	IL_0059:  brfalse IL_0082
+        // Method begins at RVA 0x28770
+	// Code size 41 (0x29)
+	.maxstack 4
+	.locals init (
+		class NAnt.Core.BuildEventArgs	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Project)
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_000e:  ldarg.2 
+	IL_000f:  ldarg.3 
+	IL_0010:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0015:  callvirt instance void class NAnt.Core.BuildEventArgs::set_Message(string)
+	IL_001a:  ldloc.0 
+	IL_001b:  ldarg.1 
+	IL_001c:  callvirt instance void class NAnt.Core.BuildEventArgs::set_MessageLevel(valuetype NAnt.Core.Level)
+	IL_0021:  ldarg.0 
+	IL_0022:  ldloc.0 
+	IL_0023:  call instance void class NAnt.Core.Project::OnMessageLogged(class NAnt.Core.BuildEventArgs)
+	IL_0028:  ret 
+    } // end of method Project::Log
 
-	IL_005e:  ldloc.2 
-	IL_005f:  isinst [mscorlib]System.String
-	IL_0064:  brfalse IL_0082
+    // method line 2144
+    .method public hidebysig 
+           instance default void Log (class NAnt.Core.Task task, valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
+    {
+        // Method begins at RVA 0x287a8
+	// Code size 30 (0x1e)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.BuildEventArgs	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Task)
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  ldarg.3 
+	IL_000a:  callvirt instance void class NAnt.Core.BuildEventArgs::set_Message(string)
+	IL_000f:  ldloc.0 
+	IL_0010:  ldarg.2 
+	IL_0011:  callvirt instance void class NAnt.Core.BuildEventArgs::set_MessageLevel(valuetype NAnt.Core.Level)
+	IL_0016:  ldarg.0 
+	IL_0017:  ldloc.0 
+	IL_0018:  call instance void class NAnt.Core.Project::OnMessageLogged(class NAnt.Core.BuildEventArgs)
+	IL_001d:  ret 
+    } // end of method Project::Log
 
-	IL_0069:  nop 
-	IL_006a:  ldloc.1 
-	IL_006b:  castclass [mscorlib]System.String
-	IL_0070:  ldloc.2 
-	IL_0071:  castclass [mscorlib]System.String
-	IL_0076:  call string string::Concat(string, string)
-	IL_007b:  stloc.1 
-	IL_007c:  nop 
-	IL_007d:  br IL_02d6
+    // method line 2145
+    .method public hidebysig 
+           instance default void Log (class NAnt.Core.Target target, valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
+    {
+        // Method begins at RVA 0x287d4
+	// Code size 30 (0x1e)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.BuildEventArgs	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Target)
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  ldarg.3 
+	IL_000a:  callvirt instance void class NAnt.Core.BuildEventArgs::set_Message(string)
+	IL_000f:  ldloc.0 
+	IL_0010:  ldarg.2 
+	IL_0011:  callvirt instance void class NAnt.Core.BuildEventArgs::set_MessageLevel(valuetype NAnt.Core.Level)
+	IL_0016:  ldarg.0 
+	IL_0017:  ldloc.0 
+	IL_0018:  call instance void class NAnt.Core.Project::OnMessageLogged(class NAnt.Core.BuildEventArgs)
+	IL_001d:  ret 
+    } // end of method Project::Log
 
-	IL_0082:  ldloc.1 
-	IL_0083:  isinst [mscorlib]System.Int32
-	IL_0088:  brfalse IL_00b2
+    // method line 2146
+    .method public virtual hidebysig newslot 
+           instance default void Execute ()  cil managed 
+    {
+        // Method begins at RVA 0x28800
+	// Code size 352 (0x160)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		string	V_4,
+		class [System]System.Collections.Specialized.StringEnumerator	V_5,
+		class [mscorlib]System.IDisposable	V_6)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
+	IL_0007:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_000c:  brtrue IL_0035
 
-	IL_008d:  ldloc.2 
-	IL_008e:  isinst [mscorlib]System.Int32
-	IL_0093:  brfalse IL_00b2
+	IL_0011:  ldarg.0 
+	IL_0012:  call instance string class NAnt.Core.Project::get_DefaultTargetName()
+	IL_0017:  call bool string::IsNullOrEmpty(string)
+	IL_001c:  brtrue IL_0035
 
-	IL_0098:  nop 
-	IL_0099:  ldloc.1 
-	IL_009a:  unbox.any [mscorlib]System.Int32
-	IL_009f:  ldloc.2 
-	IL_00a0:  unbox.any [mscorlib]System.Int32
-	IL_00a5:  add 
-	IL_00a6:  box [mscorlib]System.Int32
-	IL_00ab:  stloc.1 
-	IL_00ac:  nop 
-	IL_00ad:  br IL_02d6
+	IL_0021:  nop 
+	IL_0022:  ldarg.0 
+	IL_0023:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
+	IL_0028:  ldarg.0 
+	IL_0029:  call instance string class NAnt.Core.Project::get_DefaultTargetName()
+	IL_002e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0033:  pop 
+	IL_0034:  nop 
+	IL_0035:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_003a:  stloc.0 
+	IL_003b:  ldarg.0 
+	IL_003c:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
+	IL_0041:  brfalse IL_009b
 
-	IL_00b2:  ldloc.1 
-	IL_00b3:  isinst [mscorlib]System.Int32
-	IL_00b8:  brfalse IL_00e3
+	IL_0046:  nop 
+	IL_0047:  nop 
+	IL_0048:  ldarg.0 
+	IL_0049:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
+	IL_004e:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0053:  stloc.2 
+	.try { // 0
+	  IL_0054:  br IL_0076
 
-	IL_00bd:  ldloc.2 
-	IL_00be:  isinst [mscorlib]System.Int64
-	IL_00c3:  brfalse IL_00e3
+	  IL_0059:  ldloc.2 
+	  IL_005a:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_005f:  stloc.1 
+	  IL_0060:  nop 
+	  IL_0061:  ldloc.0 
+	  IL_0062:  ldloc.1 
+	  IL_0063:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_0068:  pop 
+	  IL_0069:  ldloc.0 
+	  IL_006a:  ldstr " "
+	  IL_006f:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_0074:  pop 
+	  IL_0075:  nop 
+	  IL_0076:  ldloc.2 
+	  IL_0077:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_007c:  brtrue IL_0059
 
-	IL_00c8:  nop 
-	IL_00c9:  ldloc.1 
-	IL_00ca:  unbox.any [mscorlib]System.Int32
-	IL_00cf:  conv.i8 
-	IL_00d0:  ldloc.2 
-	IL_00d1:  unbox.any [mscorlib]System.Int64
-	IL_00d6:  add 
-	IL_00d7:  box [mscorlib]System.Int64
-	IL_00dc:  stloc.1 
-	IL_00dd:  nop 
-	IL_00de:  br IL_02d6
+	  IL_0081:  leave IL_009a
 
-	IL_00e3:  ldloc.1 
-	IL_00e4:  isinst [mscorlib]System.Int32
-	IL_00e9:  brfalse IL_0114
+	} // end .try 0
+	finally  { // 0
+	  IL_0086:  ldloc.2 
+	  IL_0087:  isinst [mscorlib]System.IDisposable
+	  IL_008c:  dup 
+	  IL_008d:  stloc.3 
+	  IL_008e:  brfalse IL_0099
 
-	IL_00ee:  ldloc.2 
-	IL_00ef:  isinst [mscorlib]System.Double
-	IL_00f4:  brfalse IL_0114
+	  IL_0093:  ldloc.3 
+	  IL_0094:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0099:  endfinally 
+	} // end handler 0
+	IL_009a:  nop 
+	IL_009b:  ldloc.0 
+	IL_009c:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_00a1:  ldc.i4.0 
+	IL_00a2:  ble IL_00d9
+
+	IL_00a7:  nop 
+	IL_00a8:  ldarg.0 
+	IL_00a9:  ldc.i4 3000
+	IL_00ae:  ldstr "Target(s) specified: "
+	IL_00b3:  ldloc.0 
+	IL_00b4:  callvirt instance string object::ToString()
+	IL_00b9:  call string string::Concat(string, string)
+	IL_00be:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string)
+	IL_00c3:  ldarg.0 
+	IL_00c4:  ldc.i4 3000
+	IL_00c9:  ldsfld string [mscorlib]System.String::Empty
+	IL_00ce:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string)
+	IL_00d3:  nop 
+	IL_00d4:  br IL_00eb
+
+	IL_00d9:  nop 
+	IL_00da:  ldarg.0 
+	IL_00db:  ldc.i4 3000
+	IL_00e0:  ldsfld string [mscorlib]System.String::Empty
+	IL_00e5:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string)
+	IL_00ea:  nop 
+	IL_00eb:  ldarg.0 
+	IL_00ec:  ldarg.0 
+	IL_00ed:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.Core.Project::get_Document()
+	IL_00f2:  call instance void class NAnt.Core.Project::InitializeProjectDocument(class [System.Xml]System.Xml.XmlDocument)
+	IL_00f7:  ldarg.0 
+	IL_00f8:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
+	IL_00fd:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0102:  brtrue IL_010e
+
+	IL_0107:  nop 
+	IL_0108:  nop 
+	IL_0109:  br IL_015f
 
-	IL_00f9:  nop 
-	IL_00fa:  ldloc.1 
-	IL_00fb:  unbox.any [mscorlib]System.Int32
-	IL_0100:  conv.r8 
-	IL_0101:  ldloc.2 
-	IL_0102:  unbox.any [mscorlib]System.Double
-	IL_0107:  add 
-	IL_0108:  box [mscorlib]System.Double
-	IL_010d:  stloc.1 
 	IL_010e:  nop 
-	IL_010f:  br IL_02d6
+	IL_010f:  nop 
+	IL_0110:  ldarg.0 
+	IL_0111:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Project::get_BuildTargets()
+	IL_0116:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_011b:  stloc.s 5
+	.try { // 1
+	  IL_011d:  br IL_0136
 
-	IL_0114:  ldloc.1 
-	IL_0115:  isinst [mscorlib]System.Int64
-	IL_011a:  brfalse IL_0144
+	  IL_0122:  ldloc.s 5
+	  IL_0124:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0129:  stloc.s 4
+	  IL_012b:  nop 
+	  IL_012c:  ldarg.0 
+	  IL_012d:  ldloc.s 4
+	  IL_012f:  ldc.i4.0 
+	  IL_0130:  call instance void class NAnt.Core.Project::Execute(string, bool)
+	  IL_0135:  nop 
+	  IL_0136:  ldloc.s 5
+	  IL_0138:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_013d:  brtrue IL_0122
 
-	IL_011f:  ldloc.2 
-	IL_0120:  isinst [mscorlib]System.Int64
-	IL_0125:  brfalse IL_0144
+	  IL_0142:  leave IL_015e
 
-	IL_012a:  nop 
-	IL_012b:  ldloc.1 
-	IL_012c:  unbox.any [mscorlib]System.Int64
-	IL_0131:  ldloc.2 
-	IL_0132:  unbox.any [mscorlib]System.Int64
-	IL_0137:  add 
-	IL_0138:  box [mscorlib]System.Int64
-	IL_013d:  stloc.1 
-	IL_013e:  nop 
-	IL_013f:  br IL_02d6
+	} // end .try 1
+	finally  { // 1
+	  IL_0147:  ldloc.s 5
+	  IL_0149:  isinst [mscorlib]System.IDisposable
+	  IL_014e:  dup 
+	  IL_014f:  stloc.s 6
+	  IL_0151:  brfalse IL_015d
 
-	IL_0144:  ldloc.1 
-	IL_0145:  isinst [mscorlib]System.Int64
-	IL_014a:  brfalse IL_0175
+	  IL_0156:  ldloc.s 6
+	  IL_0158:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_015d:  endfinally 
+	} // end handler 1
+	IL_015e:  nop 
+	IL_015f:  ret 
+    } // end of method Project::Execute
 
-	IL_014f:  ldloc.2 
-	IL_0150:  isinst [mscorlib]System.Int32
-	IL_0155:  brfalse IL_0175
+    // method line 2147
+    .method public hidebysig 
+           instance default void Execute (string targetName)  cil managed 
+    {
+        // Method begins at RVA 0x28988
+	// Code size 10 (0xa)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldc.i4.1 
+	IL_0004:  call instance void class NAnt.Core.Project::Execute(string, bool)
+	IL_0009:  ret 
+    } // end of method Project::Execute
 
-	IL_015a:  nop 
-	IL_015b:  ldloc.1 
-	IL_015c:  unbox.any [mscorlib]System.Int64
-	IL_0161:  ldloc.2 
-	IL_0162:  unbox.any [mscorlib]System.Int32
-	IL_0167:  conv.i8 
-	IL_0168:  add 
-	IL_0169:  box [mscorlib]System.Int64
-	IL_016e:  stloc.1 
-	IL_016f:  nop 
-	IL_0170:  br IL_02d6
+    // method line 2148
+    .method public hidebysig 
+           instance default void Execute (string targetName, bool forceDependencies)  cil managed 
+    {
+        // Method begins at RVA 0x28994
+	// Code size 117 (0x75)
+	.maxstack 4
+	.locals init (
+		class NAnt.Core.TargetCollection	V_0,
+		int32	V_1,
+		class NAnt.Core.Target	V_2,
+		class NAnt.Core.Target	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.0 
+	IL_0004:  call instance class NAnt.Core.TargetCollection class NAnt.Core.Project::get_Targets()
+	IL_0009:  call instance class NAnt.Core.TargetCollection class NAnt.Core.Project::TopologicalTargetSort(string, class NAnt.Core.TargetCollection)
+	IL_000e:  stloc.0 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  stloc.1 
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld class NAnt.Core.Target NAnt.Core.Project::_currentTarget
+	IL_0017:  stloc.3 
+	IL_0018:  nop 
+	IL_0019:  ldloc.0 
+	IL_001a:  ldloc.1 
+	IL_001b:  dup 
+	IL_001c:  ldc.i4.1 
+	IL_001d:  add 
+	IL_001e:  stloc.1 
+	IL_001f:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	IL_0024:  castclass NAnt.Core.Target
+	IL_0029:  stloc.2 
+	IL_002a:  ldarg.0 
+	IL_002b:  ldloc.2 
+	IL_002c:  stfld class NAnt.Core.Target NAnt.Core.Project::_currentTarget
+	IL_0031:  ldarg.2 
+	IL_0032:  brtrue IL_0053
 
-	IL_0175:  ldloc.1 
-	IL_0176:  isinst [mscorlib]System.Int64
-	IL_017b:  brfalse IL_01a6
+	IL_0037:  ldloc.2 
+	IL_0038:  callvirt instance bool class NAnt.Core.Target::get_Executed()
+	IL_003d:  brfalse IL_0053
 
-	IL_0180:  ldloc.2 
-	IL_0181:  isinst [mscorlib]System.Double
-	IL_0186:  brfalse IL_01a6
+	IL_0042:  ldloc.2 
+	IL_0043:  callvirt instance string class NAnt.Core.Target::get_Name()
+	IL_0048:  ldarg.1 
+	IL_0049:  call bool string::op_Equality(string, string)
+	IL_004e:  brfalse IL_005b
 
-	IL_018b:  nop 
-	IL_018c:  ldloc.1 
-	IL_018d:  unbox.any [mscorlib]System.Int64
-	IL_0192:  conv.r8 
-	IL_0193:  ldloc.2 
-	IL_0194:  unbox.any [mscorlib]System.Double
-	IL_0199:  add 
-	IL_019a:  box [mscorlib]System.Double
-	IL_019f:  stloc.1 
-	IL_01a0:  nop 
-	IL_01a1:  br IL_02d6
+	IL_0053:  nop 
+	IL_0054:  ldloc.2 
+	IL_0055:  callvirt instance void class NAnt.Core.Target::Execute()
+	IL_005a:  nop 
+	IL_005b:  nop 
+	IL_005c:  ldloc.2 
+	IL_005d:  callvirt instance string class NAnt.Core.Target::get_Name()
+	IL_0062:  ldarg.1 
+	IL_0063:  call bool string::op_Inequality(string, string)
+	IL_0068:  brtrue IL_0018
 
-	IL_01a6:  ldloc.1 
-	IL_01a7:  isinst [mscorlib]System.Double
-	IL_01ac:  brfalse IL_01d6
+	IL_006d:  ldarg.0 
+	IL_006e:  ldloc.3 
+	IL_006f:  stfld class NAnt.Core.Target NAnt.Core.Project::_currentTarget
+	IL_0074:  ret 
+    } // end of method Project::Execute
 
-	IL_01b1:  ldloc.2 
-	IL_01b2:  isinst [mscorlib]System.Double
-	IL_01b7:  brfalse IL_01d6
+    // method line 2149
+    .method public hidebysig 
+           instance default bool Run ()  cil managed 
+    {
+        // Method begins at RVA 0x28a18
+	// Code size 371 (0x173)
+	.maxstack 7
+	.locals init (
+		class [mscorlib]System.Exception	V_0,
+		bool	V_1,
+		class NAnt.Core.BuildException	V_2,
+		class [mscorlib]System.Exception	V_3,
+		string	V_4,
+		class NAnt.Core.Tasks.CallTask	V_5,
+		class NAnt.Core.BuildEventArgs	V_6)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	.try { // 2
+	  .try { // 0
+	    IL_0003:  nop 
+	    IL_0004:  ldarg.0 
+	    IL_0005:  ldarg.0 
+	    IL_0006:  ldarg.0 
+	    IL_0007:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Project)
+	    IL_000c:  call instance void class NAnt.Core.Project::OnBuildStarted(object, class NAnt.Core.BuildEventArgs)
+	    IL_0011:  ldarg.0 
+	    IL_0012:  ldc.i4 3000
+	    IL_0017:  ldstr "Buildfile: {0}"
+	    IL_001c:  ldc.i4.1 
+	    IL_001d:  newarr [mscorlib]System.Object
+	    IL_0022:  dup 
+	    IL_0023:  ldc.i4.0 
+	    IL_0024:  ldarg.0 
+	    IL_0025:  call instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
+	    IL_002a:  stelem.ref 
+	    IL_002b:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	    IL_0030:  ldarg.0 
+	    IL_0031:  ldc.i4 3000
+	    IL_0036:  ldstr "Target framework: {0}"
+	    IL_003b:  ldc.i4.1 
+	    IL_003c:  newarr [mscorlib]System.Object
+	    IL_0041:  dup 
+	    IL_0042:  ldc.i4.0 
+	    IL_0043:  ldarg.0 
+	    IL_0044:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	    IL_0049:  brfalse IL_005e
 
-	IL_01bc:  nop 
-	IL_01bd:  ldloc.1 
-	IL_01be:  unbox.any [mscorlib]System.Double
-	IL_01c3:  ldloc.2 
-	IL_01c4:  unbox.any [mscorlib]System.Double
-	IL_01c9:  add 
-	IL_01ca:  box [mscorlib]System.Double
-	IL_01cf:  stloc.1 
-	IL_01d0:  nop 
-	IL_01d1:  br IL_02d6
+	    IL_004e:  ldarg.0 
+	    IL_004f:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	    IL_0054:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Description()
+	    IL_0059:  br IL_0063
 
-	IL_01d6:  ldloc.1 
-	IL_01d7:  isinst [mscorlib]System.Double
-	IL_01dc:  brfalse IL_0207
+	    IL_005e:  ldstr "None"
+	    IL_0063:  stelem.ref 
+	    IL_0064:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	    IL_0069:  ldarg.0 
+	    IL_006a:  ldc.i4 2000
+	    IL_006f:  ldstr "Base Directory: {0}."
+	    IL_0074:  ldc.i4.1 
+	    IL_0075:  newarr [mscorlib]System.Object
+	    IL_007a:  dup 
+	    IL_007b:  ldc.i4.0 
+	    IL_007c:  ldarg.0 
+	    IL_007d:  call instance string class NAnt.Core.Project::get_BaseDirectory()
+	    IL_0082:  stelem.ref 
+	    IL_0083:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	    IL_0088:  ldarg.0 
+	    IL_0089:  callvirt instance void class NAnt.Core.Project::Execute()
+	    IL_008e:  ldc.i4.1 
+	    IL_008f:  stloc.1 
+	    IL_0090:  leave IL_0171
 
-	IL_01e1:  ldloc.2 
-	IL_01e2:  isinst [mscorlib]System.Int32
-	IL_01e7:  brfalse IL_0207
+	  } // end .try 0
+	  catch class NAnt.Core.BuildException { // 0
+	    IL_0095:  stloc.2 
+	    IL_0096:  nop 
+	    IL_0097:  ldloc.2 
+	    IL_0098:  stloc.0 
+	    IL_0099:  ldsfld class [log4net]log4net.ILog NAnt.Core.Project::logger
+	    IL_009e:  ldstr "Build failed."
+	    IL_00a3:  ldloc.2 
+	    IL_00a4:  callvirt instance void class [log4net]log4net.ILog::Error(object, class [mscorlib]System.Exception)
+	    IL_00a9:  ldc.i4.0 
+	    IL_00aa:  stloc.1 
+	    IL_00ab:  leave IL_0171
 
-	IL_01ec:  nop 
-	IL_01ed:  ldloc.1 
-	IL_01ee:  unbox.any [mscorlib]System.Double
-	IL_01f3:  ldloc.2 
-	IL_01f4:  unbox.any [mscorlib]System.Int32
-	IL_01f9:  conv.r8 
-	IL_01fa:  add 
-	IL_01fb:  box [mscorlib]System.Double
-	IL_0200:  stloc.1 
-	IL_0201:  nop 
-	IL_0202:  br IL_02d6
+	  } // end handler 0
+	  catch class [mscorlib]System.Exception { // 1
+	    IL_00b0:  stloc.3 
+	    IL_00b1:  nop 
+	    IL_00b2:  ldloc.3 
+	    IL_00b3:  stloc.0 
+	    IL_00b4:  ldsfld class [log4net]log4net.ILog NAnt.Core.Project::logger
+	    IL_00b9:  ldstr "Build failed."
+	    IL_00be:  ldloc.3 
+	    IL_00bf:  callvirt instance void class [log4net]log4net.ILog::Fatal(object, class [mscorlib]System.Exception)
+	    IL_00c4:  ldc.i4.0 
+	    IL_00c5:  stloc.1 
+	    IL_00c6:  leave IL_0171
 
-	IL_0207:  ldloc.1 
-	IL_0208:  isinst [mscorlib]System.Double
-	IL_020d:  brfalse IL_0238
+	  } // end handler 1
+	} // end .try 2
+	finally  { // 2
+	  IL_00cb:  nop 
+	  IL_00cc:  ldloc.0 
+	  IL_00cd:  brtrue IL_00eb
 
-	IL_0212:  ldloc.2 
-	IL_0213:  isinst [mscorlib]System.Int64
-	IL_0218:  brfalse IL_0238
+	  IL_00d2:  nop 
+	  IL_00d3:  ldarg.0 
+	  IL_00d4:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	  IL_00d9:  ldstr "nant.onsuccess"
+	  IL_00de:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
+	  IL_00e3:  stloc.s 4
+	  IL_00e5:  nop 
+	  IL_00e6:  br IL_00ff
 
-	IL_021d:  nop 
-	IL_021e:  ldloc.1 
-	IL_021f:  unbox.any [mscorlib]System.Double
-	IL_0224:  ldloc.2 
-	IL_0225:  unbox.any [mscorlib]System.Int64
-	IL_022a:  conv.r8 
-	IL_022b:  add 
-	IL_022c:  box [mscorlib]System.Double
-	IL_0231:  stloc.1 
-	IL_0232:  nop 
-	IL_0233:  br IL_02d6
+	  IL_00eb:  nop 
+	  IL_00ec:  ldarg.0 
+	  IL_00ed:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	  IL_00f2:  ldstr "nant.onfailure"
+	  IL_00f7:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
+	  IL_00fc:  stloc.s 4
+	  IL_00fe:  nop 
+	  IL_00ff:  ldloc.s 4
+	  IL_0101:  call bool string::IsNullOrEmpty(string)
+	  IL_0106:  brtrue IL_0156
 
-	IL_0238:  ldloc.1 
-	IL_0239:  isinst [mscorlib]System.DateTime
-	IL_023e:  brfalse IL_026c
+	  IL_010b:  nop 
+	  IL_010c:  newobj instance void class NAnt.Core.Tasks.CallTask::'.ctor'()
+	  IL_0111:  stloc.s 5
+	  IL_0113:  ldloc.s 5
+	  IL_0115:  ldarg.0 
+	  IL_0116:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	  IL_011b:  ldloc.s 5
+	  IL_011d:  ldarg.0 
+	  IL_011e:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	  IL_0123:  ldloc.s 5
+	  IL_0125:  ldarg.0 
+	  IL_0126:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
+	  IL_012b:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	  IL_0130:  ldloc.s 5
+	  IL_0132:  ldarg.0 
+	  IL_0133:  call instance bool class NAnt.Core.Project::get_Verbose()
+	  IL_0138:  callvirt instance void class NAnt.Core.Task::set_Verbose(bool)
+	  IL_013d:  ldloc.s 5
+	  IL_013f:  ldc.i4.0 
+	  IL_0140:  callvirt instance void class NAnt.Core.Task::set_FailOnError(bool)
+	  IL_0145:  ldloc.s 5
+	  IL_0147:  ldloc.s 4
+	  IL_0149:  callvirt instance void class NAnt.Core.Tasks.CallTask::set_TargetName(string)
+	  IL_014e:  ldloc.s 5
+	  IL_0150:  callvirt instance void class NAnt.Core.Task::Execute()
+	  IL_0155:  nop 
+	  IL_0156:  ldarg.0 
+	  IL_0157:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Project)
+	  IL_015c:  stloc.s 6
+	  IL_015e:  ldloc.s 6
+	  IL_0160:  ldloc.0 
+	  IL_0161:  callvirt instance void class NAnt.Core.BuildEventArgs::set_Exception(class [mscorlib]System.Exception)
+	  IL_0166:  ldarg.0 
+	  IL_0167:  ldarg.0 
+	  IL_0168:  ldloc.s 6
+	  IL_016a:  call instance void class NAnt.Core.Project::OnBuildFinished(object, class NAnt.Core.BuildEventArgs)
+	  IL_016f:  nop 
+	  IL_0170:  endfinally 
+	} // end handler 2
+	IL_0171:  ldloc.1 
+	IL_0172:  ret 
+    } // end of method Project::Run
 
-	IL_0243:  ldloc.2 
-	IL_0244:  isinst [mscorlib]System.TimeSpan
-	IL_0249:  brfalse IL_026c
+    // method line 2150
+    .method public hidebysig 
+           instance default class NAnt.Core.DataTypeBase CreateDataTypeBase (class [System.Xml]System.Xml.XmlNode elementNode)  cil managed 
+    {
+        // Method begins at RVA 0x28bc0
+	// Code size 51 (0x33)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.DataTypeBase	V_0,
+		class NAnt.Core.DataTypeBase	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.0 
+	IL_0003:  call class NAnt.Core.DataTypeBase class NAnt.Core.TypeFactory::CreateDataType(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Project)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  ldarg.0 
+	IL_000b:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_0010:  ldloc.0 
+	IL_0011:  ldarg.0 
+	IL_0012:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_0017:  ldloc.0 
+	IL_0018:  ldarg.0 
+	IL_0019:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
+	IL_001e:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0023:  ldloc.0 
+	IL_0024:  ldarg.1 
+	IL_0025:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode)
+	IL_002a:  ldloc.0 
+	IL_002b:  stloc.1 
+	IL_002c:  br IL_0031
 
-	IL_024e:  nop 
-	IL_024f:  ldloc.1 
-	IL_0250:  unbox.any [mscorlib]System.DateTime
-	IL_0255:  ldloc.2 
-	IL_0256:  unbox.any [mscorlib]System.TimeSpan
-	IL_025b:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::op_Addition(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.TimeSpan)
-	IL_0260:  box [mscorlib]System.DateTime
-	IL_0265:  stloc.1 
-	IL_0266:  nop 
-	IL_0267:  br IL_02d6
+	IL_0031:  ldloc.1 
+	IL_0032:  ret 
+    } // end of method Project::CreateDataTypeBase
 
-	IL_026c:  ldloc.1 
-	IL_026d:  isinst [mscorlib]System.TimeSpan
-	IL_0272:  brfalse IL_02a0
+    // method line 2151
+    .method public hidebysig 
+           instance default class NAnt.Core.Task CreateTask (class [System.Xml]System.Xml.XmlNode taskNode)  cil managed 
+    {
+        // Method begins at RVA 0x28c00
+	// Code size 17 (0x11)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.Task	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldnull 
+	IL_0004:  call instance class NAnt.Core.Task class NAnt.Core.Project::CreateTask(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Target)
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_000f
 
-	IL_0277:  ldloc.2 
-	IL_0278:  isinst [mscorlib]System.TimeSpan
-	IL_027d:  brfalse IL_02a0
+	IL_000f:  ldloc.0 
+	IL_0010:  ret 
+    } // end of method Project::CreateTask
 
-	IL_0282:  nop 
-	IL_0283:  ldloc.1 
-	IL_0284:  unbox.any [mscorlib]System.TimeSpan
-	IL_0289:  ldloc.2 
-	IL_028a:  unbox.any [mscorlib]System.TimeSpan
-	IL_028f:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::op_Addition(valuetype [mscorlib]System.TimeSpan, valuetype [mscorlib]System.TimeSpan)
-	IL_0294:  box [mscorlib]System.TimeSpan
-	IL_0299:  stloc.1 
-	IL_029a:  nop 
-	IL_029b:  br IL_02d6
+    // method line 2152
+    .method public hidebysig 
+           instance default class NAnt.Core.Task CreateTask (class [System.Xml]System.Xml.XmlNode taskNode, class NAnt.Core.Target target)  cil managed 
+    {
+        // Method begins at RVA 0x28c20
+	// Code size 51 (0x33)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Task	V_0,
+		class NAnt.Core.Task	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.0 
+	IL_0003:  call class NAnt.Core.Task class NAnt.Core.TypeFactory::CreateTask(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Project)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  ldarg.0 
+	IL_000b:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_0010:  ldloc.0 
+	IL_0011:  ldarg.2 
+	IL_0012:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_0017:  ldloc.0 
+	IL_0018:  ldarg.0 
+	IL_0019:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
+	IL_001e:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0023:  ldloc.0 
+	IL_0024:  ldarg.1 
+	IL_0025:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode)
+	IL_002a:  ldloc.0 
+	IL_002b:  stloc.1 
+	IL_002c:  br IL_0031
 
-	IL_02a0:  nop 
-	IL_02a1:  ldarg.0 
-	IL_02a2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_02a7:  ldstr "NA1041"
-	IL_02ac:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_02b1:  ldarg.0 
-	IL_02b2:  ldloc.1 
-	IL_02b3:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_02b8:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_02bd:  ldarg.0 
-	IL_02be:  ldloc.2 
-	IL_02bf:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_02c4:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_02c9:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_02ce:  ldloc.0 
-	IL_02cf:  ldloc.3 
-	IL_02d0:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_02d5:  throw 
-	IL_02d6:  nop 
-	IL_02d7:  nop 
-	IL_02d8:  br IL_05cb
+	IL_0031:  ldloc.1 
+	IL_0032:  ret 
+    } // end of method Project::CreateTask
 
-	IL_02dd:  ldarg.0 
-	IL_02de:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_02e3:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_02e8:  ldc.i4.s 0x0c
-	IL_02ea:  bne.un IL_05c5
+    // method line 2153
+    .method public hidebysig 
+           instance default string ExpandProperties (string input, class NAnt.Core.Location location)  cil managed 
+    {
+        // Method begins at RVA 0x28c60
+	// Code size 22 (0x16)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0014
 
-	IL_02ef:  nop 
-	IL_02f0:  ldarg.0 
-	IL_02f1:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_02f6:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_02fb:  ldarg.0 
-	IL_02fc:  call instance object class NAnt.Core.ExpressionEvalBase::ParseMulDiv()
-	IL_0301:  stloc.s 4
-	IL_0303:  ldarg.0 
-	IL_0304:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0309:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_030e:  stloc.s 5
-	IL_0310:  ldarg.0 
-	IL_0311:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	IL_0316:  brtrue IL_05bf
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method Project::ExpandProperties
 
-	IL_031b:  nop 
-	IL_031c:  ldloc.1 
-	IL_031d:  isinst [mscorlib]System.Int32
-	IL_0322:  brfalse IL_034e
+    // method line 2154
+    .method public hidebysig 
+           instance default string GetFullPath (string path)  cil managed 
+    {
+        // Method begins at RVA 0x28c84
+	// Code size 153 (0x99)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		class [System]System.Uri	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call bool string::IsNullOrEmpty(string)
+	IL_0007:  brfalse IL_0019
 
-	IL_0327:  ldloc.s 4
-	IL_0329:  isinst [mscorlib]System.Int32
-	IL_032e:  brfalse IL_034e
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0097
 
-	IL_0333:  nop 
-	IL_0334:  ldloc.1 
-	IL_0335:  unbox.any [mscorlib]System.Int32
-	IL_033a:  ldloc.s 4
-	IL_033c:  unbox.any [mscorlib]System.Int32
-	IL_0341:  sub 
-	IL_0342:  box [mscorlib]System.Int32
-	IL_0347:  stloc.1 
-	IL_0348:  nop 
-	IL_0349:  br IL_05be
+	.try { // 0
+	  IL_0019:  nop 
+	  IL_001a:  ldarg.1 
+	  IL_001b:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	  IL_0020:  stloc.1 
+	  IL_0021:  ldloc.1 
+	  IL_0022:  callvirt instance bool class [System]System.Uri::get_IsFile()
+	  IL_0027:  brfalse IL_003b
 
-	IL_034e:  ldloc.1 
-	IL_034f:  isinst [mscorlib]System.Int32
-	IL_0354:  brfalse IL_0381
+	  IL_002c:  nop 
+	  IL_002d:  ldloc.1 
+	  IL_002e:  callvirt instance string class [System]System.Uri::get_LocalPath()
+	  IL_0033:  starg.s 1
+	  IL_0035:  nop 
+	  IL_0036:  br IL_0062
 
-	IL_0359:  ldloc.s 4
-	IL_035b:  isinst [mscorlib]System.Int64
-	IL_0360:  brfalse IL_0381
+	  IL_003b:  nop 
+	  IL_003c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0041:  ldstr "NA1061"
+	  IL_0046:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_004b:  ldarg.1 
+	  IL_004c:  ldloc.1 
+	  IL_004d:  callvirt instance string class [System]System.Uri::get_Scheme()
+	  IL_0052:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0057:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	  IL_005c:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_0061:  throw 
+	  IL_0062:  nop 
+	  IL_0063:  leave IL_0070
 
-	IL_0365:  nop 
-	IL_0366:  ldloc.1 
-	IL_0367:  unbox.any [mscorlib]System.Int32
-	IL_036c:  conv.i8 
-	IL_036d:  ldloc.s 4
-	IL_036f:  unbox.any [mscorlib]System.Int64
-	IL_0374:  sub 
-	IL_0375:  box [mscorlib]System.Int64
-	IL_037a:  stloc.1 
-	IL_037b:  nop 
-	IL_037c:  br IL_05be
+	} // end .try 0
+	catch class [mscorlib]System.Object { // 0
+	  IL_0068:  pop 
+	  IL_0069:  nop 
+	  IL_006a:  nop 
+	  IL_006b:  leave IL_0070
 
-	IL_0381:  ldloc.1 
-	IL_0382:  isinst [mscorlib]System.Int32
-	IL_0387:  brfalse IL_03b4
+	} // end handler 0
+	IL_0070:  ldarg.1 
+	IL_0071:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_0076:  brtrue IL_0090
 
-	IL_038c:  ldloc.s 4
-	IL_038e:  isinst [mscorlib]System.Double
-	IL_0393:  brfalse IL_03b4
+	IL_007b:  nop 
+	IL_007c:  ldarg.0 
+	IL_007d:  call instance string class NAnt.Core.Project::get_BaseDirectory()
+	IL_0082:  ldarg.1 
+	IL_0083:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0088:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
+	IL_008d:  starg.s 1
+	IL_008f:  nop 
+	IL_0090:  ldarg.1 
+	IL_0091:  stloc.0 
+	IL_0092:  br IL_0097
 
-	IL_0398:  nop 
-	IL_0399:  ldloc.1 
-	IL_039a:  unbox.any [mscorlib]System.Int32
-	IL_039f:  conv.r8 
-	IL_03a0:  ldloc.s 4
-	IL_03a2:  unbox.any [mscorlib]System.Double
-	IL_03a7:  sub 
-	IL_03a8:  box [mscorlib]System.Double
-	IL_03ad:  stloc.1 
-	IL_03ae:  nop 
-	IL_03af:  br IL_05be
+	IL_0097:  ldloc.0 
+	IL_0098:  ret 
+    } // end of method Project::GetFullPath
 
-	IL_03b4:  ldloc.1 
-	IL_03b5:  isinst [mscorlib]System.Int64
-	IL_03ba:  brfalse IL_03e6
+    // method line 2155
+    .method public hidebysig 
+           instance default void CreateDefaultLogger ()  cil managed 
+    {
+        // Method begins at RVA 0x28d3c
+	// Code size 166 (0xa6)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.IBuildLogger	V_0)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.Core.DefaultLogger::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  dup 
+	IL_000a:  ldvirtftn instance void class NAnt.Core.IBuildListener::BuildStarted(object, class NAnt.Core.BuildEventArgs)
+	IL_0010:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	IL_0015:  call instance void class NAnt.Core.Project::add_BuildStarted(class NAnt.Core.BuildEventHandler)
+	IL_001a:  ldarg.0 
+	IL_001b:  ldloc.0 
+	IL_001c:  dup 
+	IL_001d:  ldvirtftn instance void class NAnt.Core.IBuildListener::BuildFinished(object, class NAnt.Core.BuildEventArgs)
+	IL_0023:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	IL_0028:  call instance void class NAnt.Core.Project::add_BuildFinished(class NAnt.Core.BuildEventHandler)
+	IL_002d:  ldarg.0 
+	IL_002e:  ldloc.0 
+	IL_002f:  dup 
+	IL_0030:  ldvirtftn instance void class NAnt.Core.IBuildListener::TargetStarted(object, class NAnt.Core.BuildEventArgs)
+	IL_0036:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	IL_003b:  call instance void class NAnt.Core.Project::add_TargetStarted(class NAnt.Core.BuildEventHandler)
+	IL_0040:  ldarg.0 
+	IL_0041:  ldloc.0 
+	IL_0042:  dup 
+	IL_0043:  ldvirtftn instance void class NAnt.Core.IBuildListener::TargetFinished(object, class NAnt.Core.BuildEventArgs)
+	IL_0049:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	IL_004e:  call instance void class NAnt.Core.Project::add_TargetFinished(class NAnt.Core.BuildEventHandler)
+	IL_0053:  ldarg.0 
+	IL_0054:  ldloc.0 
+	IL_0055:  dup 
+	IL_0056:  ldvirtftn instance void class NAnt.Core.IBuildListener::TaskStarted(object, class NAnt.Core.BuildEventArgs)
+	IL_005c:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	IL_0061:  call instance void class NAnt.Core.Project::add_TaskStarted(class NAnt.Core.BuildEventHandler)
+	IL_0066:  ldarg.0 
+	IL_0067:  ldloc.0 
+	IL_0068:  dup 
+	IL_0069:  ldvirtftn instance void class NAnt.Core.IBuildListener::TaskFinished(object, class NAnt.Core.BuildEventArgs)
+	IL_006f:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	IL_0074:  call instance void class NAnt.Core.Project::add_TaskFinished(class NAnt.Core.BuildEventHandler)
+	IL_0079:  ldarg.0 
+	IL_007a:  ldloc.0 
+	IL_007b:  dup 
+	IL_007c:  ldvirtftn instance void class NAnt.Core.IBuildListener::MessageLogged(object, class NAnt.Core.BuildEventArgs)
+	IL_0082:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	IL_0087:  call instance void class NAnt.Core.Project::add_MessageLogged(class NAnt.Core.BuildEventHandler)
+	IL_008c:  ldloc.0 
+	IL_008d:  ldarg.0 
+	IL_008e:  call instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
+	IL_0093:  callvirt instance void class NAnt.Core.IBuildLogger::set_Threshold(valuetype NAnt.Core.Level)
+	IL_0098:  ldarg.0 
+	IL_0099:  call instance class NAnt.Core.BuildListenerCollection class NAnt.Core.Project::get_BuildListeners()
+	IL_009e:  ldloc.0 
+	IL_009f:  callvirt instance int32 class NAnt.Core.BuildListenerCollection::Add(class NAnt.Core.IBuildListener)
+	IL_00a4:  pop 
+	IL_00a5:  ret 
+    } // end of method Project::CreateDefaultLogger
 
-	IL_03bf:  ldloc.s 4
-	IL_03c1:  isinst [mscorlib]System.Int64
-	IL_03c6:  brfalse IL_03e6
+    // method line 2156
+    .method public hidebysig 
+           instance default void Indent ()  cil managed 
+    {
+        // Method begins at RVA 0x28dee
+	// Code size 16 (0x10)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  dup 
+	IL_0003:  ldfld int32 NAnt.Core.Project::_indentationLevel
+	IL_0008:  ldc.i4.1 
+	IL_0009:  add 
+	IL_000a:  stfld int32 NAnt.Core.Project::_indentationLevel
+	IL_000f:  ret 
+    } // end of method Project::Indent
 
-	IL_03cb:  nop 
-	IL_03cc:  ldloc.1 
-	IL_03cd:  unbox.any [mscorlib]System.Int64
-	IL_03d2:  ldloc.s 4
-	IL_03d4:  unbox.any [mscorlib]System.Int64
-	IL_03d9:  sub 
-	IL_03da:  box [mscorlib]System.Int64
-	IL_03df:  stloc.1 
-	IL_03e0:  nop 
-	IL_03e1:  br IL_05be
+    // method line 2157
+    .method public hidebysig 
+           instance default void Unindent ()  cil managed 
+    {
+        // Method begins at RVA 0x28dff
+	// Code size 16 (0x10)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  dup 
+	IL_0003:  ldfld int32 NAnt.Core.Project::_indentationLevel
+	IL_0008:  ldc.i4.1 
+	IL_0009:  sub 
+	IL_000a:  stfld int32 NAnt.Core.Project::_indentationLevel
+	IL_000f:  ret 
+    } // end of method Project::Unindent
 
-	IL_03e6:  ldloc.1 
-	IL_03e7:  isinst [mscorlib]System.Int64
-	IL_03ec:  brfalse IL_0419
+    // method line 2158
+    .method public hidebysig 
+           instance default void DetachBuildListeners ()  cil managed 
+    {
+        // Method begins at RVA 0x28e10
+	// Code size 248 (0xf8)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.IBuildListener	V_0,
+		class NAnt.Core.BuildListenerEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2)
+	IL_0000:  nop 
+	IL_0001:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  call instance class NAnt.Core.BuildListenerCollection class NAnt.Core.Project::get_BuildListeners()
+	IL_0008:  callvirt instance class NAnt.Core.BuildListenerEnumerator class NAnt.Core.BuildListenerCollection::GetEnumerator()
+	IL_000d:  stloc.1 
+	.try { // 0
+	  IL_000e:  br IL_00c8
 
-	IL_03f1:  ldloc.s 4
-	IL_03f3:  isinst [mscorlib]System.Int32
-	IL_03f8:  brfalse IL_0419
+	  IL_0013:  ldloc.1 
+	  IL_0014:  callvirt instance class NAnt.Core.IBuildListener class NAnt.Core.BuildListenerEnumerator::get_Current()
+	  IL_0019:  stloc.0 
+	  IL_001a:  nop 
+	  IL_001b:  ldarg.0 
+	  IL_001c:  ldloc.0 
+	  IL_001d:  dup 
+	  IL_001e:  ldvirtftn instance void class NAnt.Core.IBuildListener::BuildStarted(object, class NAnt.Core.BuildEventArgs)
+	  IL_0024:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	  IL_0029:  call instance void class NAnt.Core.Project::remove_BuildStarted(class NAnt.Core.BuildEventHandler)
+	  IL_002e:  ldarg.0 
+	  IL_002f:  ldloc.0 
+	  IL_0030:  dup 
+	  IL_0031:  ldvirtftn instance void class NAnt.Core.IBuildListener::BuildFinished(object, class NAnt.Core.BuildEventArgs)
+	  IL_0037:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	  IL_003c:  call instance void class NAnt.Core.Project::remove_BuildFinished(class NAnt.Core.BuildEventHandler)
+	  IL_0041:  ldarg.0 
+	  IL_0042:  ldloc.0 
+	  IL_0043:  dup 
+	  IL_0044:  ldvirtftn instance void class NAnt.Core.IBuildListener::TargetStarted(object, class NAnt.Core.BuildEventArgs)
+	  IL_004a:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	  IL_004f:  call instance void class NAnt.Core.Project::remove_TargetStarted(class NAnt.Core.BuildEventHandler)
+	  IL_0054:  ldarg.0 
+	  IL_0055:  ldloc.0 
+	  IL_0056:  dup 
+	  IL_0057:  ldvirtftn instance void class NAnt.Core.IBuildListener::TargetFinished(object, class NAnt.Core.BuildEventArgs)
+	  IL_005d:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	  IL_0062:  call instance void class NAnt.Core.Project::remove_TargetFinished(class NAnt.Core.BuildEventHandler)
+	  IL_0067:  ldarg.0 
+	  IL_0068:  ldloc.0 
+	  IL_0069:  dup 
+	  IL_006a:  ldvirtftn instance void class NAnt.Core.IBuildListener::TaskStarted(object, class NAnt.Core.BuildEventArgs)
+	  IL_0070:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	  IL_0075:  call instance void class NAnt.Core.Project::remove_TaskStarted(class NAnt.Core.BuildEventHandler)
+	  IL_007a:  ldarg.0 
+	  IL_007b:  ldloc.0 
+	  IL_007c:  dup 
+	  IL_007d:  ldvirtftn instance void class NAnt.Core.IBuildListener::TaskFinished(object, class NAnt.Core.BuildEventArgs)
+	  IL_0083:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	  IL_0088:  call instance void class NAnt.Core.Project::remove_TaskFinished(class NAnt.Core.BuildEventHandler)
+	  IL_008d:  ldarg.0 
+	  IL_008e:  ldloc.0 
+	  IL_008f:  dup 
+	  IL_0090:  ldvirtftn instance void class NAnt.Core.IBuildListener::MessageLogged(object, class NAnt.Core.BuildEventArgs)
+	  IL_0096:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	  IL_009b:  call instance void class NAnt.Core.Project::remove_MessageLogged(class NAnt.Core.BuildEventHandler)
+	  IL_00a0:  ldtoken NAnt.Core.IBuildLogger
+	  IL_00a5:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_00aa:  ldloc.0 
+	  IL_00ab:  callvirt instance class [mscorlib]System.Type object::GetType()
+	  IL_00b0:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	  IL_00b5:  brfalse IL_00c7
 
-	IL_03fd:  nop 
-	IL_03fe:  ldloc.1 
-	IL_03ff:  unbox.any [mscorlib]System.Int64
-	IL_0404:  ldloc.s 4
-	IL_0406:  unbox.any [mscorlib]System.Int32
-	IL_040b:  conv.i8 
-	IL_040c:  sub 
-	IL_040d:  box [mscorlib]System.Int64
-	IL_0412:  stloc.1 
-	IL_0413:  nop 
-	IL_0414:  br IL_05be
+	  IL_00ba:  nop 
+	  IL_00bb:  ldloc.0 
+	  IL_00bc:  castclass NAnt.Core.IBuildLogger
+	  IL_00c1:  callvirt instance void class NAnt.Core.IBuildLogger::Flush()
+	  IL_00c6:  nop 
+	  IL_00c7:  nop 
+	  IL_00c8:  ldloc.1 
+	  IL_00c9:  callvirt instance bool class NAnt.Core.BuildListenerEnumerator::MoveNext()
+	  IL_00ce:  brtrue IL_0013
 
-	IL_0419:  ldloc.1 
-	IL_041a:  isinst [mscorlib]System.Int64
-	IL_041f:  brfalse IL_044c
+	  IL_00d3:  leave IL_00ec
 
-	IL_0424:  ldloc.s 4
-	IL_0426:  isinst [mscorlib]System.Double
-	IL_042b:  brfalse IL_044c
+	} // end .try 0
+	finally  { // 0
+	  IL_00d8:  ldloc.1 
+	  IL_00d9:  isinst [mscorlib]System.IDisposable
+	  IL_00de:  dup 
+	  IL_00df:  stloc.2 
+	  IL_00e0:  brfalse IL_00eb
 
-	IL_0430:  nop 
-	IL_0431:  ldloc.1 
-	IL_0432:  unbox.any [mscorlib]System.Int64
-	IL_0437:  conv.r8 
-	IL_0438:  ldloc.s 4
-	IL_043a:  unbox.any [mscorlib]System.Double
-	IL_043f:  sub 
-	IL_0440:  box [mscorlib]System.Double
-	IL_0445:  stloc.1 
-	IL_0446:  nop 
-	IL_0447:  br IL_05be
+	  IL_00e5:  ldloc.2 
+	  IL_00e6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00eb:  endfinally 
+	} // end handler 0
+	IL_00ec:  ldarg.0 
+	IL_00ed:  call instance class NAnt.Core.BuildListenerCollection class NAnt.Core.Project::get_BuildListeners()
+	IL_00f2:  callvirt instance void class [mscorlib]System.Collections.CollectionBase::Clear()
+	IL_00f7:  ret 
+    } // end of method Project::DetachBuildListeners
 
-	IL_044c:  ldloc.1 
-	IL_044d:  isinst [mscorlib]System.Double
-	IL_0452:  brfalse IL_047e
+    // method line 2159
+    .method public hidebysig 
+           instance default void AttachBuildListeners (class NAnt.Core.BuildListenerCollection listeners)  cil managed 
+    {
+        // Method begins at RVA 0x28f24
+	// Code size 212 (0xd4)
+	.maxstack 3
+	.locals init (
+		class NAnt.Core.IBuildListener	V_0,
+		class NAnt.Core.BuildListenerEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance void class NAnt.Core.Project::DetachBuildListeners()
+	IL_0007:  nop 
+	IL_0008:  ldarg.1 
+	IL_0009:  callvirt instance class NAnt.Core.BuildListenerEnumerator class NAnt.Core.BuildListenerCollection::GetEnumerator()
+	IL_000e:  stloc.1 
+	.try { // 0
+	  IL_000f:  br IL_00af
 
-	IL_0457:  ldloc.s 4
-	IL_0459:  isinst [mscorlib]System.Double
-	IL_045e:  brfalse IL_047e
+	  IL_0014:  ldloc.1 
+	  IL_0015:  callvirt instance class NAnt.Core.IBuildListener class NAnt.Core.BuildListenerEnumerator::get_Current()
+	  IL_001a:  stloc.0 
+	  IL_001b:  nop 
+	  IL_001c:  ldarg.0 
+	  IL_001d:  ldloc.0 
+	  IL_001e:  dup 
+	  IL_001f:  ldvirtftn instance void class NAnt.Core.IBuildListener::BuildStarted(object, class NAnt.Core.BuildEventArgs)
+	  IL_0025:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	  IL_002a:  call instance void class NAnt.Core.Project::add_BuildStarted(class NAnt.Core.BuildEventHandler)
+	  IL_002f:  ldarg.0 
+	  IL_0030:  ldloc.0 
+	  IL_0031:  dup 
+	  IL_0032:  ldvirtftn instance void class NAnt.Core.IBuildListener::BuildFinished(object, class NAnt.Core.BuildEventArgs)
+	  IL_0038:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	  IL_003d:  call instance void class NAnt.Core.Project::add_BuildFinished(class NAnt.Core.BuildEventHandler)
+	  IL_0042:  ldarg.0 
+	  IL_0043:  ldloc.0 
+	  IL_0044:  dup 
+	  IL_0045:  ldvirtftn instance void class NAnt.Core.IBuildListener::TargetStarted(object, class NAnt.Core.BuildEventArgs)
+	  IL_004b:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	  IL_0050:  call instance void class NAnt.Core.Project::add_TargetStarted(class NAnt.Core.BuildEventHandler)
+	  IL_0055:  ldarg.0 
+	  IL_0056:  ldloc.0 
+	  IL_0057:  dup 
+	  IL_0058:  ldvirtftn instance void class NAnt.Core.IBuildListener::TargetFinished(object, class NAnt.Core.BuildEventArgs)
+	  IL_005e:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	  IL_0063:  call instance void class NAnt.Core.Project::add_TargetFinished(class NAnt.Core.BuildEventHandler)
+	  IL_0068:  ldarg.0 
+	  IL_0069:  ldloc.0 
+	  IL_006a:  dup 
+	  IL_006b:  ldvirtftn instance void class NAnt.Core.IBuildListener::TaskStarted(object, class NAnt.Core.BuildEventArgs)
+	  IL_0071:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	  IL_0076:  call instance void class NAnt.Core.Project::add_TaskStarted(class NAnt.Core.BuildEventHandler)
+	  IL_007b:  ldarg.0 
+	  IL_007c:  ldloc.0 
+	  IL_007d:  dup 
+	  IL_007e:  ldvirtftn instance void class NAnt.Core.IBuildListener::TaskFinished(object, class NAnt.Core.BuildEventArgs)
+	  IL_0084:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	  IL_0089:  call instance void class NAnt.Core.Project::add_TaskFinished(class NAnt.Core.BuildEventHandler)
+	  IL_008e:  ldarg.0 
+	  IL_008f:  ldloc.0 
+	  IL_0090:  dup 
+	  IL_0091:  ldvirtftn instance void class NAnt.Core.IBuildListener::MessageLogged(object, class NAnt.Core.BuildEventArgs)
+	  IL_0097:  newobj instance void class NAnt.Core.BuildEventHandler::'.ctor'(object, native int)
+	  IL_009c:  call instance void class NAnt.Core.Project::add_MessageLogged(class NAnt.Core.BuildEventHandler)
+	  IL_00a1:  ldarg.0 
+	  IL_00a2:  call instance class NAnt.Core.BuildListenerCollection class NAnt.Core.Project::get_BuildListeners()
+	  IL_00a7:  ldloc.0 
+	  IL_00a8:  callvirt instance int32 class NAnt.Core.BuildListenerCollection::Add(class NAnt.Core.IBuildListener)
+	  IL_00ad:  pop 
+	  IL_00ae:  nop 
+	  IL_00af:  ldloc.1 
+	  IL_00b0:  callvirt instance bool class NAnt.Core.BuildListenerEnumerator::MoveNext()
+	  IL_00b5:  brtrue IL_0014
 
-	IL_0463:  nop 
-	IL_0464:  ldloc.1 
-	IL_0465:  unbox.any [mscorlib]System.Double
-	IL_046a:  ldloc.s 4
-	IL_046c:  unbox.any [mscorlib]System.Double
-	IL_0471:  sub 
-	IL_0472:  box [mscorlib]System.Double
-	IL_0477:  stloc.1 
-	IL_0478:  nop 
-	IL_0479:  br IL_05be
+	  IL_00ba:  leave IL_00d3
 
-	IL_047e:  ldloc.1 
-	IL_047f:  isinst [mscorlib]System.Double
-	IL_0484:  brfalse IL_04b1
+	} // end .try 0
+	finally  { // 0
+	  IL_00bf:  ldloc.1 
+	  IL_00c0:  isinst [mscorlib]System.IDisposable
+	  IL_00c5:  dup 
+	  IL_00c6:  stloc.2 
+	  IL_00c7:  brfalse IL_00d2
 
-	IL_0489:  ldloc.s 4
-	IL_048b:  isinst [mscorlib]System.Int32
-	IL_0490:  brfalse IL_04b1
+	  IL_00cc:  ldloc.2 
+	  IL_00cd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00d2:  endfinally 
+	} // end handler 0
+	IL_00d3:  ret 
+    } // end of method Project::AttachBuildListeners
 
-	IL_0495:  nop 
-	IL_0496:  ldloc.1 
-	IL_0497:  unbox.any [mscorlib]System.Double
-	IL_049c:  ldloc.s 4
-	IL_049e:  unbox.any [mscorlib]System.Int32
-	IL_04a3:  conv.r8 
-	IL_04a4:  sub 
-	IL_04a5:  box [mscorlib]System.Double
-	IL_04aa:  stloc.1 
-	IL_04ab:  nop 
-	IL_04ac:  br IL_05be
+    // method line 2160
+    .method private hidebysig 
+           instance default void CtorHelper (class [System.Xml]System.Xml.XmlDocument doc, valuetype NAnt.Core.Level threshold, int32 indentLevel, valuetype NAnt.Core.Optimizations optimization)  cil managed 
+    {
+        // Method begins at RVA 0x29014
+	// Code size 779 (0x30b)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		string	V_1,
+		class [System.Xml]System.Xml.XmlAttribute	V_2,
+		class [System.Xml]System.Xml.XmlAttribute	V_3,
+		bool	V_4,
+		class NAnt.Core.ProjectSettingsLoader	V_5,
+		class [mscorlib]System.Reflection.Assembly	V_6)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-	IL_04b1:  ldloc.1 
-	IL_04b2:  isinst [mscorlib]System.Double
-	IL_04b7:  brfalse IL_04e4
+	IL_0007:  nop 
+	IL_0008:  ldstr "doc"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldnull 
+	IL_0014:  stloc.0 
+	IL_0015:  ldarg.0 
+	IL_0016:  ldarg.0 
+	IL_0017:  newobj instance void class NAnt.Core.PropertyDictionary::'.ctor'(class NAnt.Core.Project)
+	IL_001c:  stfld class NAnt.Core.PropertyDictionary NAnt.Core.Project::_properties
+	IL_0021:  ldarg.0 
+	IL_0022:  ldarg.0 
+	IL_0023:  newobj instance void class NAnt.Core.PropertyDictionary::'.ctor'(class NAnt.Core.Project)
+	IL_0028:  stfld class NAnt.Core.PropertyDictionary NAnt.Core.Project::_frameworkNeutralProperties
+	IL_002d:  ldarg.0 
+	IL_002e:  ldarg.1 
+	IL_002f:  stfld class [System.Xml]System.Xml.XmlDocument NAnt.Core.Project::_doc
+	IL_0034:  ldarg.0 
+	IL_0035:  ldc.i4.s 0x0c
+	IL_0037:  stfld int32 NAnt.Core.Project::_indentationSize
+	IL_003c:  ldarg.0 
+	IL_003d:  ldarg.3 
+	IL_003e:  stfld int32 NAnt.Core.Project::_indentationLevel
+	IL_0043:  ldarg.0 
+	IL_0044:  ldarg.2 
+	IL_0045:  call instance void class NAnt.Core.Project::set_Threshold(valuetype NAnt.Core.Level)
+	IL_004a:  ldarg.0 
+	IL_004b:  call instance void class NAnt.Core.Project::CreateDefaultLogger()
+	IL_0050:  ldarg.0 
+	IL_0051:  call instance void class NAnt.Core.Project::ConfigurePlatformProperties()
+	IL_0056:  ldarg.1 
+	IL_0057:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_005c:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	IL_0061:  call bool string::IsNullOrEmpty(string)
+	IL_0066:  brfalse IL_00c9
 
-	IL_04bc:  ldloc.s 4
-	IL_04be:  isinst [mscorlib]System.Int64
-	IL_04c3:  brfalse IL_04e4
+	IL_006b:  nop 
+	IL_006c:  ldarg.1 
+	IL_006d:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_0072:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0077:  ldstr "xmlns"
+	IL_007c:  ldstr "nant"
+	IL_0081:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string, string)
+	IL_0086:  stloc.2 
+	IL_0087:  ldloc.2 
+	IL_0088:  brtrue IL_009a
 
-	IL_04c8:  nop 
-	IL_04c9:  ldloc.1 
-	IL_04ca:  unbox.any [mscorlib]System.Double
-	IL_04cf:  ldloc.s 4
-	IL_04d1:  unbox.any [mscorlib]System.Int64
-	IL_04d6:  conv.r8 
-	IL_04d7:  sub 
-	IL_04d8:  box [mscorlib]System.Double
-	IL_04dd:  stloc.1 
-	IL_04de:  nop 
-	IL_04df:  br IL_05be
+	IL_008d:  nop 
+	IL_008e:  ldstr "http://none"
+	IL_0093:  stloc.1 
+	IL_0094:  nop 
+	IL_0095:  br IL_00a3
 
-	IL_04e4:  ldloc.1 
-	IL_04e5:  isinst [mscorlib]System.DateTime
-	IL_04ea:  brfalse IL_051a
+	IL_009a:  nop 
+	IL_009b:  ldloc.2 
+	IL_009c:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_00a1:  stloc.1 
+	IL_00a2:  nop 
+	IL_00a3:  ldarg.1 
+	IL_00a4:  ldstr "xmlns"
+	IL_00a9:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlDocument::CreateAttribute(string)
+	IL_00ae:  stloc.3 
+	IL_00af:  ldloc.3 
+	IL_00b0:  ldloc.1 
+	IL_00b1:  callvirt instance void class [System.Xml]System.Xml.XmlNode::set_Value(string)
+	IL_00b6:  ldarg.1 
+	IL_00b7:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_00bc:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_00c1:  ldloc.3 
+	IL_00c2:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::Append(class [System.Xml]System.Xml.XmlAttribute)
+	IL_00c7:  pop 
+	IL_00c8:  nop 
+	IL_00c9:  ldarg.0 
+	IL_00ca:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
+	IL_00cf:  ldstr "nant"
+	IL_00d4:  ldarg.1 
+	IL_00d5:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_00da:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	IL_00df:  callvirt instance void class [System.Xml]System.Xml.XmlNamespaceManager::AddNamespace(string, string)
+	IL_00e4:  ldarg.1 
+	IL_00e5:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_00ea:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_LocalName()
+	IL_00ef:  ldstr "project"
+	IL_00f4:  callvirt instance bool string::Equals(string)
+	IL_00f9:  brtrue IL_0124
 
-	IL_04ef:  ldloc.s 4
-	IL_04f1:  isinst [mscorlib]System.DateTime
-	IL_04f6:  brfalse IL_051a
+	IL_00fe:  nop 
+	IL_00ff:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0104:  ldstr "NA1059"
+	IL_0109:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_010e:  ldarg.1 
+	IL_010f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_BaseURI()
+	IL_0114:  ldstr "project"
+	IL_0119:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_011e:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0123:  throw 
+	IL_0124:  ldarg.1 
+	IL_0125:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_012a:  ldstr "name"
+	IL_012f:  callvirt instance bool class [System.Xml]System.Xml.XmlElement::HasAttribute(string)
+	IL_0134:  brfalse IL_0151
 
-	IL_04fb:  nop 
-	IL_04fc:  ldloc.1 
-	IL_04fd:  unbox.any [mscorlib]System.DateTime
-	IL_0502:  ldloc.s 4
-	IL_0504:  unbox.any [mscorlib]System.DateTime
-	IL_0509:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.DateTime::op_Subtraction(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	IL_050e:  box [mscorlib]System.TimeSpan
-	IL_0513:  stloc.1 
-	IL_0514:  nop 
-	IL_0515:  br IL_05be
+	IL_0139:  nop 
+	IL_013a:  ldarg.0 
+	IL_013b:  ldarg.1 
+	IL_013c:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_0141:  ldstr "name"
+	IL_0146:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_014b:  stfld string NAnt.Core.Project::_projectName
+	IL_0150:  nop 
+	IL_0151:  ldarg.1 
+	IL_0152:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_0157:  ldstr "basedir"
+	IL_015c:  callvirt instance bool class [System.Xml]System.Xml.XmlElement::HasAttribute(string)
+	IL_0161:  brfalse IL_0179
 
-	IL_051a:  ldloc.1 
-	IL_051b:  isinst [mscorlib]System.DateTime
-	IL_0520:  brfalse IL_0550
+	IL_0166:  nop 
+	IL_0167:  ldarg.1 
+	IL_0168:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_016d:  ldstr "basedir"
+	IL_0172:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_0177:  stloc.0 
+	IL_0178:  nop 
+	IL_0179:  ldarg.1 
+	IL_017a:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_017f:  ldstr "default"
+	IL_0184:  callvirt instance bool class [System.Xml]System.Xml.XmlElement::HasAttribute(string)
+	IL_0189:  brfalse IL_01a6
 
-	IL_0525:  ldloc.s 4
-	IL_0527:  isinst [mscorlib]System.TimeSpan
-	IL_052c:  brfalse IL_0550
+	IL_018e:  nop 
+	IL_018f:  ldarg.0 
+	IL_0190:  ldarg.1 
+	IL_0191:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_0196:  ldstr "default"
+	IL_019b:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_01a0:  stfld string NAnt.Core.Project::_defaultTargetName
+	IL_01a5:  nop 
+	IL_01a6:  ldloc.0 
+	IL_01a7:  call bool string::IsNullOrEmpty(string)
+	IL_01ac:  brfalse IL_01e3
 
-	IL_0531:  nop 
-	IL_0532:  ldloc.1 
-	IL_0533:  unbox.any [mscorlib]System.DateTime
-	IL_0538:  ldloc.s 4
-	IL_053a:  unbox.any [mscorlib]System.TimeSpan
-	IL_053f:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::op_Subtraction(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.TimeSpan)
-	IL_0544:  box [mscorlib]System.DateTime
-	IL_0549:  stloc.1 
-	IL_054a:  nop 
-	IL_054b:  br IL_05be
+	IL_01b1:  nop 
+	IL_01b2:  ldarg.0 
+	IL_01b3:  call instance string class NAnt.Core.Project::get_BuildFileLocalName()
+	IL_01b8:  call bool string::IsNullOrEmpty(string)
+	IL_01bd:  brtrue IL_01d5
 
-	IL_0550:  ldloc.1 
-	IL_0551:  isinst [mscorlib]System.TimeSpan
-	IL_0556:  brfalse IL_0586
+	IL_01c2:  nop 
+	IL_01c3:  ldarg.0 
+	IL_01c4:  call instance string class NAnt.Core.Project::get_BuildFileLocalName()
+	IL_01c9:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_01ce:  stloc.0 
+	IL_01cf:  nop 
+	IL_01d0:  br IL_01dd
 
-	IL_055b:  ldloc.s 4
-	IL_055d:  isinst [mscorlib]System.TimeSpan
-	IL_0562:  brfalse IL_0586
+	IL_01d5:  nop 
+	IL_01d6:  call string class [mscorlib]System.Environment::get_CurrentDirectory()
+	IL_01db:  stloc.0 
+	IL_01dc:  nop 
+	IL_01dd:  nop 
+	IL_01de:  br IL_0219
 
-	IL_0567:  nop 
-	IL_0568:  ldloc.1 
-	IL_0569:  unbox.any [mscorlib]System.TimeSpan
-	IL_056e:  ldloc.s 4
-	IL_0570:  unbox.any [mscorlib]System.TimeSpan
-	IL_0575:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.TimeSpan::op_Subtraction(valuetype [mscorlib]System.TimeSpan, valuetype [mscorlib]System.TimeSpan)
-	IL_057a:  box [mscorlib]System.TimeSpan
-	IL_057f:  stloc.1 
-	IL_0580:  nop 
-	IL_0581:  br IL_05be
+	IL_01e3:  nop 
+	IL_01e4:  ldarg.0 
+	IL_01e5:  call instance string class NAnt.Core.Project::get_BuildFileLocalName()
+	IL_01ea:  call bool string::IsNullOrEmpty(string)
+	IL_01ef:  brtrue IL_0218
 
-	IL_0586:  nop 
-	IL_0587:  ldarg.0 
-	IL_0588:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_058d:  ldstr "NA1048"
-	IL_0592:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0597:  ldarg.0 
-	IL_0598:  ldloc.1 
-	IL_0599:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_059e:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_05a3:  ldarg.0 
-	IL_05a4:  ldloc.s 4
-	IL_05a6:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_05ab:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_05b0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_05b5:  ldloc.0 
-	IL_05b6:  ldloc.s 5
-	IL_05b8:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_05bd:  throw 
-	IL_05be:  nop 
-	IL_05bf:  nop 
-	IL_05c0:  br IL_05cb
+	IL_01f4:  ldloc.0 
+	IL_01f5:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_01fa:  brtrue IL_0218
 
-	IL_05c5:  nop 
-	IL_05c6:  br IL_05d1
+	IL_01ff:  nop 
+	IL_0200:  ldarg.0 
+	IL_0201:  call instance string class NAnt.Core.Project::get_BuildFileLocalName()
+	IL_0206:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_020b:  ldloc.0 
+	IL_020c:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0211:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
+	IL_0216:  stloc.0 
+	IL_0217:  nop 
+	IL_0218:  nop 
+	IL_0219:  ldloc.0 
+	IL_021a:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
+	IL_021f:  stloc.0 
+	IL_0220:  ldarg.0 
+	IL_0221:  ldloc.0 
+	IL_0222:  call instance void class NAnt.Core.Project::set_BaseDirectory(string)
+	IL_0227:  ldarg.s 4
+	IL_0229:  ldc.i4.1 
+	IL_022a:  and 
+	IL_022b:  ldc.i4.0 
+	IL_022c:  ceq 
+	IL_022e:  stloc.s 4
+	IL_0230:  ldarg.0 
+	IL_0231:  ldloc.s 4
+	IL_0233:  call void class NAnt.Core.TypeFactory::AddProject(class NAnt.Core.Project, bool)
+	IL_0238:  ldarg.s 4
+	IL_023a:  ldc.i4.2 
+	IL_023b:  and 
+	IL_023c:  brtrue IL_0252
 
-	IL_05cb:  nop 
-	IL_05cc:  br IL_0014
+	IL_0241:  nop 
+	IL_0242:  ldarg.0 
+	IL_0243:  newobj instance void class NAnt.Core.ProjectSettingsLoader::'.ctor'(class NAnt.Core.Project)
+	IL_0248:  stloc.s 5
+	IL_024a:  ldloc.s 5
+	IL_024c:  callvirt instance void class NAnt.Core.ProjectSettingsLoader::ProcessSettings()
+	IL_0251:  nop 
+	IL_0252:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetExecutingAssembly()
+	IL_0257:  stloc.s 6
+	IL_0259:  ldarg.0 
+	IL_025a:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_025f:  ldstr "nant.filename"
+	IL_0264:  ldloc.s 6
+	IL_0266:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_CodeBase()
+	IL_026b:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	IL_0270:  ldarg.0 
+	IL_0271:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0276:  ldstr "nant.version"
+	IL_027b:  ldloc.s 6
+	IL_027d:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	IL_0282:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
+	IL_0287:  callvirt instance string object::ToString()
+	IL_028c:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	IL_0291:  ldarg.0 
+	IL_0292:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0297:  ldstr "nant.location"
+	IL_029c:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_02a1:  callvirt instance string class [mscorlib]System.AppDomain::get_BaseDirectory()
+	IL_02a6:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	IL_02ab:  ldarg.0 
+	IL_02ac:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_02b1:  ldstr "nant.project.name"
+	IL_02b6:  ldarg.0 
+	IL_02b7:  call instance string class NAnt.Core.Project::get_ProjectName()
+	IL_02bc:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	IL_02c1:  ldarg.0 
+	IL_02c2:  call instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
+	IL_02c7:  ldnull 
+	IL_02c8:  call bool class [System]System.Uri::op_Inequality(class [System]System.Uri, class [System]System.Uri)
+	IL_02cd:  brfalse IL_02ef
 
-	IL_05d1:  ldloc.1 
-	IL_05d2:  stloc.s 6
-	IL_05d4:  br IL_05d9
+	IL_02d2:  nop 
+	IL_02d3:  ldarg.0 
+	IL_02d4:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_02d9:  ldstr "nant.project.buildfile"
+	IL_02de:  ldarg.0 
+	IL_02df:  call instance class [System]System.Uri class NAnt.Core.Project::get_BuildFileUri()
+	IL_02e4:  callvirt instance string object::ToString()
+	IL_02e9:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	IL_02ee:  nop 
+	IL_02ef:  ldarg.0 
+	IL_02f0:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_02f5:  ldstr "nant.project.default"
+	IL_02fa:  ldarg.0 
+	IL_02fb:  call instance string class NAnt.Core.Project::get_DefaultTargetName()
+	IL_0300:  call string class NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
+	IL_0305:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	IL_030a:  ret 
+    } // end of method Project::CtorHelper
 
-	IL_05d9:  ldloc.s 6
-	IL_05db:  ret 
-    } // end of method ExpressionEvalBase::ParseAddSubtract
+    // method line 2161
+    .method assembly hidebysig 
+           instance default void InitializeProjectDocument (class [System.Xml]System.Xml.XmlDocument doc)  cil managed 
+    {
+        // Method begins at RVA 0x2932c
+	// Code size 602 (0x25a)
+	.maxstack 7
+	.locals init (
+		class [System.Xml]System.Xml.XmlNode	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.Target	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		class [System.Xml]System.Xml.XmlNode	V_4,
+		class [mscorlib]System.Collections.IEnumerator	V_5,
+		class NAnt.Core.Task	V_6,
+		class NAnt.Core.DataTypeBase	V_7,
+		class [mscorlib]System.IDisposable	V_8)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class NAnt.Core.LocationMap::Add(class [System.Xml]System.Xml.XmlDocument)
+	IL_000d:  nop 
+	IL_000e:  ldarg.1 
+	IL_000f:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_0014:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::get_ChildNodes()
+	IL_0019:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_001e:  stloc.1 
+	.try { // 0
+	  IL_001f:  br IL_009d
 
-    // method line 2195
+	  IL_0024:  ldloc.1 
+	  IL_0025:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_002a:  castclass [System.Xml]System.Xml.XmlNode
+	  IL_002f:  stloc.0 
+	  IL_0030:  nop 
+	  IL_0031:  ldloc.0 
+	  IL_0032:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_LocalName()
+	  IL_0037:  ldstr "target"
+	  IL_003c:  callvirt instance bool string::Equals(string)
+	  IL_0041:  brfalse IL_009c
+
+	  IL_0046:  ldloc.0 
+	  IL_0047:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	  IL_004c:  ldarg.0 
+	  IL_004d:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
+	  IL_0052:  ldstr "nant"
+	  IL_0057:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
+	  IL_005c:  callvirt instance bool string::Equals(string)
+	  IL_0061:  brfalse IL_009c
+
+	  IL_0066:  nop 
+	  IL_0067:  newobj instance void class NAnt.Core.Target::'.ctor'()
+	  IL_006c:  stloc.2 
+	  IL_006d:  ldloc.2 
+	  IL_006e:  ldarg.0 
+	  IL_006f:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	  IL_0074:  ldloc.2 
+	  IL_0075:  ldarg.0 
+	  IL_0076:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	  IL_007b:  ldloc.2 
+	  IL_007c:  ldarg.0 
+	  IL_007d:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
+	  IL_0082:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	  IL_0087:  ldloc.2 
+	  IL_0088:  ldloc.0 
+	  IL_0089:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode)
+	  IL_008e:  ldarg.0 
+	  IL_008f:  call instance class NAnt.Core.TargetCollection class NAnt.Core.Project::get_Targets()
+	  IL_0094:  ldloc.2 
+	  IL_0095:  callvirt instance int32 class NAnt.Core.TargetCollection::Add(class NAnt.Core.Target)
+	  IL_009a:  pop 
+	  IL_009b:  nop 
+	  IL_009c:  nop 
+	  IL_009d:  ldloc.1 
+	  IL_009e:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00a3:  brtrue IL_0024
+
+	  IL_00a8:  leave IL_00c1
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00ad:  ldloc.1 
+	  IL_00ae:  isinst [mscorlib]System.IDisposable
+	  IL_00b3:  dup 
+	  IL_00b4:  stloc.3 
+	  IL_00b5:  brfalse IL_00c0
+
+	  IL_00ba:  ldloc.3 
+	  IL_00bb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00c0:  endfinally 
+	} // end handler 0
+	IL_00c1:  nop 
+	IL_00c2:  ldarg.1 
+	IL_00c3:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	IL_00c8:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::get_ChildNodes()
+	IL_00cd:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_00d2:  stloc.s 5
+	.try { // 1
+	  IL_00d4:  br IL_0231
+
+	  IL_00d9:  ldloc.s 5
+	  IL_00db:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_00e0:  castclass [System.Xml]System.Xml.XmlNode
+	  IL_00e5:  stloc.s 4
+	  IL_00e7:  nop 
+	  IL_00e8:  ldloc.s 4
+	  IL_00ea:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
+	  IL_00ef:  ldc.i4.1 
+	  IL_00f0:  bne.un IL_012c
+
+	  IL_00f5:  ldloc.s 4
+	  IL_00f7:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	  IL_00fc:  ldarg.0 
+	  IL_00fd:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
+	  IL_0102:  ldstr "nant"
+	  IL_0107:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
+	  IL_010c:  callvirt instance bool string::Equals(string)
+	  IL_0111:  brfalse IL_012c
+
+	  IL_0116:  ldloc.s 4
+	  IL_0118:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_LocalName()
+	  IL_011d:  ldstr "target"
+	  IL_0122:  callvirt instance bool string::Equals(string)
+	  IL_0127:  brfalse IL_0132
+
+	  IL_012c:  nop 
+	  IL_012d:  leave IL_0231
+
+	  IL_0132:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
+	  IL_0137:  ldloc.s 4
+	  IL_0139:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_013e:  callvirt instance bool class NAnt.Core.TaskBuilderCollection::Contains(string)
+	  IL_0143:  brfalse IL_0168
+
+	  IL_0148:  nop 
+	  IL_0149:  ldarg.0 
+	  IL_014a:  ldloc.s 4
+	  IL_014c:  call instance class NAnt.Core.Task class NAnt.Core.Project::CreateTask(class [System.Xml]System.Xml.XmlNode)
+	  IL_0151:  stloc.s 6
+	  IL_0153:  ldloc.s 6
+	  IL_0155:  ldarg.0 
+	  IL_0156:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	  IL_015b:  ldloc.s 6
+	  IL_015d:  callvirt instance void class NAnt.Core.Task::Execute()
+	  IL_0162:  nop 
+	  IL_0163:  br IL_0230
+
+	  IL_0168:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
+	  IL_016d:  ldloc.s 4
+	  IL_016f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_0174:  callvirt instance bool class NAnt.Core.DataTypeBaseBuilderCollection::Contains(string)
+	  IL_0179:  brfalse IL_0201
+
+	  IL_017e:  nop 
+	  IL_017f:  ldarg.0 
+	  IL_0180:  ldloc.s 4
+	  IL_0182:  call instance class NAnt.Core.DataTypeBase class NAnt.Core.Project::CreateDataTypeBase(class [System.Xml]System.Xml.XmlNode)
+	  IL_0187:  stloc.s 7
+	  IL_0189:  ldarg.0 
+	  IL_018a:  ldc.i4 1000
+	  IL_018f:  ldstr "Adding a {0} reference with id '{1}'."
+	  IL_0194:  ldc.i4.2 
+	  IL_0195:  newarr [mscorlib]System.Object
+	  IL_019a:  dup 
+	  IL_019b:  ldc.i4.0 
+	  IL_019c:  ldloc.s 4
+	  IL_019e:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_01a3:  stelem.ref 
+	  IL_01a4:  dup 
+	  IL_01a5:  ldc.i4.1 
+	  IL_01a6:  ldloc.s 7
+	  IL_01a8:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	  IL_01ad:  stelem.ref 
+	  IL_01ae:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_01b3:  ldarg.0 
+	  IL_01b4:  call instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	  IL_01b9:  ldloc.s 7
+	  IL_01bb:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	  IL_01c0:  callvirt instance bool class NAnt.Core.DataTypeBaseDictionary::Contains(string)
+	  IL_01c5:  brtrue IL_01e5
+
+	  IL_01ca:  nop 
+	  IL_01cb:  ldarg.0 
+	  IL_01cc:  call instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	  IL_01d1:  ldloc.s 7
+	  IL_01d3:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	  IL_01d8:  ldloc.s 7
+	  IL_01da:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::Add(string, class NAnt.Core.DataTypeBase)
+	  IL_01df:  nop 
+	  IL_01e0:  br IL_01fb
+
+	  IL_01e5:  nop 
+	  IL_01e6:  ldarg.0 
+	  IL_01e7:  call instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	  IL_01ec:  ldloc.s 7
+	  IL_01ee:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	  IL_01f3:  ldloc.s 7
+	  IL_01f5:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::set_Item(string, class NAnt.Core.DataTypeBase)
+	  IL_01fa:  nop 
+	  IL_01fb:  nop 
+	  IL_01fc:  br IL_0230
+
+	  IL_0201:  nop 
+	  IL_0202:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0207:  ldstr "NA1071"
+	  IL_020c:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0211:  ldloc.s 4
+	  IL_0213:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_0218:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_021d:  ldarg.0 
+	  IL_021e:  call instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	  IL_0223:  ldloc.s 4
+	  IL_0225:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	  IL_022a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_022f:  throw 
+	  IL_0230:  nop 
+	  IL_0231:  ldloc.s 5
+	  IL_0233:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0238:  brtrue IL_00d9
+
+	  IL_023d:  leave IL_0259
+
+	} // end .try 1
+	finally  { // 1
+	  IL_0242:  ldloc.s 5
+	  IL_0244:  isinst [mscorlib]System.IDisposable
+	  IL_0249:  dup 
+	  IL_024a:  stloc.s 8
+	  IL_024c:  brfalse IL_0258
+
+	  IL_0251:  ldloc.s 8
+	  IL_0253:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0258:  endfinally 
+	} // end handler 1
+	IL_0259:  ret 
+    } // end of method Project::InitializeProjectDocument
+
+    // method line 2162
     .method private hidebysig 
-           instance default object ParseMulDiv ()  cil managed 
+           instance default class [System.Xml]System.Xml.XmlDocument LoadBuildFile (string uriOrFilePath)  cil managed 
     {
-        // Method begins at RVA 0x28400
-	// Code size 2743 (0xab7)
-	.maxstack 6
+        // Method begins at RVA 0x295c8
+	// Code size 171 (0xab)
+	.maxstack 3
 	.locals init (
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0,
-		object	V_1,
-		object	V_2,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_3,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_4,
-		object	V_5,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_6,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_7,
-		object	V_8,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_9,
-		object	V_10)
+		string	V_0,
+		class [System]System.Uri	V_1,
+		class [mscorlib]System.Exception	V_2,
+		class [System.Xml]System.Xml.XmlDocument	V_3,
+		class [System.Xml]System.Xml.XmlException	V_4,
+		class NAnt.Core.Location	V_5,
+		class [mscorlib]System.Exception	V_6,
+		class NAnt.Core.Location	V_7,
+		class [System.Xml]System.Xml.XmlDocument	V_8)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  stloc.0 
+	.try { // 1
+	  .try { // 0
+	    IL_0003:  nop 
+	    IL_0004:  ldarg.1 
+	    IL_0005:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	    IL_000a:  stloc.1 
+	    IL_000b:  ldloc.1 
+	    IL_000c:  callvirt instance bool class [System]System.Uri::get_IsFile()
+	    IL_0011:  brfalse IL_001f
+
+	    IL_0016:  nop 
+	    IL_0017:  ldloc.1 
+	    IL_0018:  callvirt instance string class [System]System.Uri::get_LocalPath()
+	    IL_001d:  stloc.0 
+	    IL_001e:  nop 
+	    IL_001f:  nop 
+	    IL_0020:  leave IL_004a
+
+	  } // end .try 0
+	  catch class [mscorlib]System.Exception { // 0
+	    IL_0025:  stloc.2 
+	    IL_0026:  nop 
+	    IL_0027:  ldsfld class [log4net]log4net.ILog NAnt.Core.Project::logger
+	    IL_002c:  ldstr "Error creating URI in project constructor. Moving on... "
+	    IL_0031:  ldloc.2 
+	    IL_0032:  callvirt instance void class [log4net]log4net.ILog::Debug(object, class [mscorlib]System.Exception)
+	    IL_0037:  nop 
+	    IL_0038:  leave IL_004a
+
+	  } // end handler 0
+	} // end .try 1
+	finally  { // 1
+	  IL_003d:  nop 
+	  IL_003e:  ldloc.0 
+	  IL_003f:  brtrue IL_0048
+
+	  IL_0044:  nop 
+	  IL_0045:  ldarg.1 
+	  IL_0046:  stloc.0 
+	  IL_0047:  nop 
+	  IL_0048:  nop 
+	  IL_0049:  endfinally 
+	} // end handler 1
+	IL_004a:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
+	IL_004f:  stloc.3 
+	.try { // 2
+	  IL_0050:  nop 
+	  IL_0051:  ldloc.3 
+	  IL_0052:  ldloc.0 
+	  IL_0053:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(string)
+	  IL_0058:  nop 
+	  IL_0059:  leave IL_00a0
+
+	} // end .try 2
+	catch class [System.Xml]System.Xml.XmlException { // 2
+	  IL_005e:  stloc.s 4
+	  IL_0060:  nop 
+	  IL_0061:  ldloc.0 
+	  IL_0062:  ldloc.s 4
+	  IL_0064:  callvirt instance int32 class [System.Xml]System.Xml.XmlException::get_LineNumber()
+	  IL_0069:  ldloc.s 4
+	  IL_006b:  callvirt instance int32 class [System.Xml]System.Xml.XmlException::get_LinePosition()
+	  IL_0070:  newobj instance void class NAnt.Core.Location::'.ctor'(string, int32, int32)
+	  IL_0075:  stloc.s 5
+	  IL_0077:  ldstr "Error loading buildfile."
+	  IL_007c:  ldloc.s 5
+	  IL_007e:  ldloc.s 4
+	  IL_0080:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0085:  throw 
+	} // end handler 2
+	catch class [mscorlib]System.Exception { // 3
+	  IL_0086:  stloc.s 6
+	  IL_0088:  nop 
+	  IL_0089:  ldloc.0 
+	  IL_008a:  newobj instance void class NAnt.Core.Location::'.ctor'(string)
+	  IL_008f:  stloc.s 7
+	  IL_0091:  ldstr "Error loading buildfile."
+	  IL_0096:  ldloc.s 7
+	  IL_0098:  ldloc.s 6
+	  IL_009a:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_009f:  throw 
+	} // end handler 3
+	IL_00a0:  ldloc.3 
+	IL_00a1:  stloc.s 8
+	IL_00a3:  br IL_00a8
+
+	IL_00a8:  ldloc.s 8
+	IL_00aa:  ret 
+    } // end of method Project::LoadBuildFile
+
+    // method line 2163
+    .method private hidebysig 
+           instance default void ConfigurePlatformProperties ()  cil managed 
+    {
+        // Method begins at RVA 0x296b4
+	// Code size 260 (0x104)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		valuetype [mscorlib]System.PlatformID	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0007:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_000c:  stloc.0 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance object class NAnt.Core.ExpressionEvalBase::ParseValue()
-	IL_0013:  stloc.1 
-	IL_0014:  nop 
-	IL_0015:  nop 
-	IL_0016:  ldarg.0 
-	IL_0017:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_001c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0021:  ldc.i4.s 0x0d
-	IL_0023:  bne.un IL_0246
+	IL_0002:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0007:  ldstr "nant.platform.name"
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance string class NAnt.Core.Project::get_PlatformName()
+	IL_0012:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	IL_0017:  ldarg.0 
+	IL_0018:  call instance string class NAnt.Core.Project::get_PlatformName()
+	IL_001d:  stloc.0 
+	IL_001e:  ldloc.0 
+	IL_001f:  brfalse IL_00bd
 
-	IL_0028:  nop 
-	IL_0029:  ldarg.0 
-	IL_002a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_002f:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_0034:  ldarg.0 
-	IL_0035:  call instance object class NAnt.Core.ExpressionEvalBase::ParseValue()
-	IL_003a:  stloc.2 
-	IL_003b:  ldarg.0 
-	IL_003c:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0041:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_0046:  stloc.3 
+	IL_0024:  ldloc.0 
+	IL_0025:  ldstr "win32"
+	IL_002a:  call bool string::op_Equality(string, string)
+	IL_002f:  brtrue IL_0049
+
+	IL_0034:  ldloc.0 
+	IL_0035:  ldstr "unix"
+	IL_003a:  call bool string::op_Equality(string, string)
+	IL_003f:  brtrue IL_0083
+
+	IL_0044:  br IL_00bd
+
+	IL_0049:  ldarg.0 
+	IL_004a:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_004f:  ldstr "nant.platform.unix"
+	IL_0054:  ldstr "false"
+	IL_0059:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	IL_005e:  ldarg.0 
+	IL_005f:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0064:  ldstr "nant.platform."
+	IL_0069:  ldarg.0 
+	IL_006a:  call instance string class NAnt.Core.Project::get_PlatformName()
+	IL_006f:  call string string::Concat(string, string)
+	IL_0074:  ldstr "true"
+	IL_0079:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	IL_007e:  br IL_0103
+
+	IL_0083:  ldarg.0 
+	IL_0084:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0089:  ldstr "nant.platform."
+	IL_008e:  ldarg.0 
+	IL_008f:  call instance string class NAnt.Core.Project::get_PlatformName()
+	IL_0094:  call string string::Concat(string, string)
+	IL_0099:  ldstr "true"
+	IL_009e:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	IL_00a3:  ldarg.0 
+	IL_00a4:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_00a9:  ldstr "nant.platform.win32"
+	IL_00ae:  ldstr "false"
+	IL_00b3:  callvirt instance void class NAnt.Core.PropertyDictionary::AddReadOnly(string, string)
+	IL_00b8:  br IL_0103
+
+	IL_00bd:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00c2:  ldstr "NA1060"
+	IL_00c7:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00cc:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
+	IL_00d1:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
+	IL_00d6:  stloc.1 
+	IL_00d7:  ldloca.s 1
+	IL_00d9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00de:  constrained. [mscorlib]System.PlatformID
+	IL_00e4:  callvirt instance string class [mscorlib]System.Enum::ToString(class [mscorlib]System.IFormatProvider)
+	IL_00e9:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
+	IL_00ee:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
+	IL_00f3:  box [mscorlib]System.Int32
+	IL_00f8:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_00fd:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_0102:  throw 
+	IL_0103:  ret 
+    } // end of method Project::ConfigurePlatformProperties
+
+    // method line 2164
+    .method private hidebysig 
+           instance default void UpdateTargetFrameworkProperties ()  cil managed 
+    {
+        // Method begins at RVA 0x297c4
+	// Code size 257 (0x101)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0007:  ldstr "nant.settings.currentframework"
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_0012:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	IL_0017:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_001c:  ldarg.0 
+	IL_001d:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0022:  ldstr "nant.settings.currentframework.version"
+	IL_0027:  ldarg.0 
+	IL_0028:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_002d:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_Version()
+	IL_0032:  callvirt instance string object::ToString()
+	IL_0037:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_003c:  ldarg.0 
+	IL_003d:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0042:  ldstr "nant.settings.currentframework.description"
 	IL_0047:  ldarg.0 
-	IL_0048:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	IL_004d:  brtrue IL_0240
+	IL_0048:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_004d:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Description()
+	IL_0052:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0057:  ldarg.0 
+	IL_0058:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_005d:  ldstr "nant.settings.currentframework.frameworkdirectory"
+	IL_0062:  ldarg.0 
+	IL_0063:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_0068:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
+	IL_006d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0072:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0077:  ldarg.0 
+	IL_0078:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_007d:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
+	IL_0082:  brfalse IL_00ae
 
-	IL_0052:  nop 
-	IL_0053:  ldloc.1 
-	IL_0054:  isinst [mscorlib]System.Int32
-	IL_0059:  brfalse IL_0083
+	IL_0087:  nop 
+	IL_0088:  ldarg.0 
+	IL_0089:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_008e:  ldstr "nant.settings.currentframework.sdkdirectory"
+	IL_0093:  ldarg.0 
+	IL_0094:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_0099:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
+	IL_009e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00a3:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_00a8:  nop 
+	IL_00a9:  br IL_00c5
 
-	IL_005e:  ldloc.2 
-	IL_005f:  isinst [mscorlib]System.Int32
-	IL_0064:  brfalse IL_0083
+	IL_00ae:  nop 
+	IL_00af:  ldarg.0 
+	IL_00b0:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_00b5:  ldstr "nant.settings.currentframework.sdkdirectory"
+	IL_00ba:  ldstr ""
+	IL_00bf:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_00c4:  nop 
+	IL_00c5:  ldarg.0 
+	IL_00c6:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_00cb:  ldstr "nant.settings.currentframework.frameworkassemblydirectory"
+	IL_00d0:  ldarg.0 
+	IL_00d1:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_00d6:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory()
+	IL_00db:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00e0:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_00e5:  ldarg.0 
+	IL_00e6:  call instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_00eb:  ldstr "nant.settings.currentframework.runtimeengine"
+	IL_00f0:  ldarg.0 
+	IL_00f1:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_TargetFramework()
+	IL_00f6:  callvirt instance string class NAnt.Core.FrameworkInfo::get_RuntimeEngine()
+	IL_00fb:  callvirt instance void class NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0100:  ret 
+    } // end of method Project::UpdateTargetFrameworkProperties
 
-	IL_0069:  nop 
-	IL_006a:  ldloc.1 
-	IL_006b:  unbox.any [mscorlib]System.Int32
-	IL_0070:  ldloc.2 
-	IL_0071:  unbox.any [mscorlib]System.Int32
-	IL_0076:  mul 
-	IL_0077:  box [mscorlib]System.Int32
-	IL_007c:  stloc.1 
-	IL_007d:  nop 
-	IL_007e:  br IL_023f
+    // method line 2165
+    .method private hidebysig 
+           instance default class [System.Xml]System.Xml.XmlNode GetConfigurationNode ()  cil managed 
+    {
+        // Method begins at RVA 0x298d4
+	// Code size 69 (0x45)
+	.maxstack 3
+	.locals init (
+		class [System.Xml]System.Xml.XmlNode	V_0,
+		class [System.Xml]System.Xml.XmlNode	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldstr "nant"
+	IL_0006:  call object class [System]System.Configuration.ConfigurationSettings::GetConfig(string)
+	IL_000b:  isinst [System.Xml]System.Xml.XmlNode
+	IL_0010:  stloc.0 
+	IL_0011:  ldloc.0 
+	IL_0012:  brtrue IL_003c
 
-	IL_0083:  ldloc.1 
-	IL_0084:  isinst [mscorlib]System.Int32
-	IL_0089:  brfalse IL_00b4
+	IL_0017:  nop 
+	IL_0018:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001d:  ldstr "The NAnt configuration settings in file '{0}' could not be loaded.  Please ensure this file is available and contains a 'nant' settings node."
+	IL_0022:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_0027:  callvirt instance class [mscorlib]System.AppDomainSetup class [mscorlib]System.AppDomain::get_SetupInformation()
+	IL_002c:  callvirt instance string class [mscorlib]System.AppDomainSetup::get_ConfigurationFile()
+	IL_0031:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0036:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_003b:  throw 
+	IL_003c:  ldloc.0 
+	IL_003d:  stloc.1 
+	IL_003e:  br IL_0043
 
-	IL_008e:  ldloc.2 
-	IL_008f:  isinst [mscorlib]System.Int64
-	IL_0094:  brfalse IL_00b4
+	IL_0043:  ldloc.1 
+	IL_0044:  ret 
+    } // end of method Project::GetConfigurationNode
 
-	IL_0099:  nop 
+    // method line 2166
+    .method public hidebysig 
+           instance default class NAnt.Core.TargetCollection TopologicalTargetSort (string root, class NAnt.Core.TargetCollection targets)  cil managed 
+    {
+        // Method begins at RVA 0x29928
+	// Code size 267 (0x10b)
+	.maxstack 6
+	.locals init (
+		class NAnt.Core.TargetCollection	V_0,
+		class [mscorlib]System.Collections.Hashtable	V_1,
+		class [mscorlib]System.Collections.Stack	V_2,
+		class NAnt.Core.Target	V_3,
+		class [mscorlib]System.Collections.IEnumerator	V_4,
+		string	V_5,
+		class [mscorlib]System.IDisposable	V_6,
+		class NAnt.Core.TargetCollection	V_7)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.Core.TargetCollection::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_000c:  stloc.1 
+	IL_000d:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
+	IL_0012:  stloc.2 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldarg.1 
+	IL_0015:  ldarg.2 
+	IL_0016:  ldloc.1 
+	IL_0017:  ldloc.2 
+	IL_0018:  ldloc.0 
+	IL_0019:  call instance void class NAnt.Core.Project::TopologicalTargetSort(string, class NAnt.Core.TargetCollection, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Stack, class NAnt.Core.TargetCollection)
+	IL_001e:  ldarg.0 
+	IL_001f:  ldc.i4 1000
+	IL_0024:  ldc.i4.4 
+	IL_0025:  newarr [mscorlib]System.Object
+	IL_002a:  dup 
+	IL_002b:  ldc.i4.0 
+	IL_002c:  ldstr "Build sequence for target `"
+	IL_0031:  stelem.ref 
+	IL_0032:  dup 
+	IL_0033:  ldc.i4.1 
+	IL_0034:  ldarg.1 
+	IL_0035:  stelem.ref 
+	IL_0036:  dup 
+	IL_0037:  ldc.i4.2 
+	IL_0038:  ldstr "' is "
+	IL_003d:  stelem.ref 
+	IL_003e:  dup 
+	IL_003f:  ldc.i4.3 
+	IL_0040:  ldloc.0 
+	IL_0041:  stelem.ref 
+	IL_0042:  call string string::Concat(object[])
+	IL_0047:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string)
+	IL_004c:  nop 
+	IL_004d:  ldarg.2 
+	IL_004e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0053:  stloc.s 4
+	.try { // 0
+	  IL_0055:  br IL_00c2
+
+	  IL_005a:  ldloc.s 4
+	  IL_005c:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0061:  castclass NAnt.Core.Target
+	  IL_0066:  stloc.3 
+	  IL_0067:  nop 
+	  IL_0068:  ldloc.1 
+	  IL_0069:  ldloc.3 
+	  IL_006a:  callvirt instance string class NAnt.Core.Target::get_Name()
+	  IL_006f:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_0074:  castclass [mscorlib]System.String
+	  IL_0079:  stloc.s 5
+	  IL_007b:  ldloc.s 5
+	  IL_007d:  brtrue IL_0099
+
+	  IL_0082:  nop 
+	  IL_0083:  ldarg.0 
+	  IL_0084:  ldloc.3 
+	  IL_0085:  callvirt instance string class NAnt.Core.Target::get_Name()
+	  IL_008a:  ldarg.2 
+	  IL_008b:  ldloc.1 
+	  IL_008c:  ldloc.2 
+	  IL_008d:  ldloc.0 
+	  IL_008e:  call instance void class NAnt.Core.Project::TopologicalTargetSort(string, class NAnt.Core.TargetCollection, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Stack, class NAnt.Core.TargetCollection)
+	  IL_0093:  nop 
+	  IL_0094:  br IL_00c1
+
+	  IL_0099:  ldloc.s 5
+	  IL_009b:  ldstr "VISITING"
+	  IL_00a0:  call bool string::op_Equality(string, string)
+	  IL_00a5:  brfalse IL_00c1
+
+	  IL_00aa:  nop 
+	  IL_00ab:  ldstr "Unexpected node in visiting state: "
+	  IL_00b0:  ldloc.3 
+	  IL_00b1:  callvirt instance string class NAnt.Core.Target::get_Name()
+	  IL_00b6:  call string string::Concat(string, string)
+	  IL_00bb:  newobj instance void class [mscorlib]System.Exception::'.ctor'(string)
+	  IL_00c0:  throw 
+	  IL_00c1:  nop 
+	  IL_00c2:  ldloc.s 4
+	  IL_00c4:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00c9:  brtrue IL_005a
+
+	  IL_00ce:  leave IL_00ea
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00d3:  ldloc.s 4
+	  IL_00d5:  isinst [mscorlib]System.IDisposable
+	  IL_00da:  dup 
+	  IL_00db:  stloc.s 6
+	  IL_00dd:  brfalse IL_00e9
+
+	  IL_00e2:  ldloc.s 6
+	  IL_00e4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00e9:  endfinally 
+	} // end handler 0
+	IL_00ea:  ldarg.0 
+	IL_00eb:  ldc.i4 1000
+	IL_00f0:  ldstr "Complete build sequence is "
+	IL_00f5:  ldloc.0 
+	IL_00f6:  call string string::Concat(object, object)
+	IL_00fb:  call instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string)
+	IL_0100:  ldloc.0 
+	IL_0101:  stloc.s 7
+	IL_0103:  br IL_0108
+
+	IL_0108:  ldloc.s 7
+	IL_010a:  ret 
+    } // end of method Project::TopologicalTargetSort
+
+    // method line 2167
+    .method private hidebysig 
+           instance default void TopologicalTargetSort (string root, class NAnt.Core.TargetCollection targets, class [mscorlib]System.Collections.Hashtable state, class [mscorlib]System.Collections.Stack visiting, class NAnt.Core.TargetCollection executeTargets)  cil managed 
+    {
+        // Method begins at RVA 0x29a50
+	// Code size 411 (0x19b)
+	.maxstack 6
+	.locals init (
+		class NAnt.Core.Target	V_0,
+		class [mscorlib]System.Text.StringBuilder	V_1,
+		string	V_2,
+		string	V_3,
+		class [System]System.Collections.Specialized.StringEnumerator	V_4,
+		string	V_5,
+		class [mscorlib]System.IDisposable	V_6,
+		string	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldarg.3 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldstr "VISITING"
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_000d:  ldarg.s 4
+	IL_000f:  ldarg.1 
+	IL_0010:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
+	IL_0015:  ldarg.2 
+	IL_0016:  ldarg.1 
+	IL_0017:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
+	IL_001c:  stloc.0 
+	IL_001d:  ldloc.0 
+	IL_001e:  brtrue IL_00c8
+
+	IL_0023:  nop 
+	IL_0024:  ldarg.2 
+	IL_0025:  ldstr "*"
+	IL_002a:  callvirt instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
+	IL_002f:  stloc.0 
+	IL_0030:  ldloc.0 
+	IL_0031:  brfalse IL_004b
+
+	IL_0036:  nop 
+	IL_0037:  ldloc.0 
+	IL_0038:  callvirt instance class NAnt.Core.Target class NAnt.Core.Target::Clone()
+	IL_003d:  stloc.0 
+	IL_003e:  ldloc.0 
+	IL_003f:  ldarg.1 
+	IL_0040:  callvirt instance void class NAnt.Core.Target::set_Name(string)
+	IL_0045:  nop 
+	IL_0046:  br IL_00c7
+
+	IL_004b:  nop 
+	IL_004c:  ldstr "Target '"
+	IL_0051:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
+	IL_0056:  stloc.1 
+	IL_0057:  ldloc.1 
+	IL_0058:  ldarg.1 
+	IL_0059:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_005e:  pop 
+	IL_005f:  ldloc.1 
+	IL_0060:  ldstr "' does not exist in this project."
+	IL_0065:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_006a:  pop 
+	IL_006b:  ldarg.s 4
+	IL_006d:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
+	IL_0072:  pop 
+	IL_0073:  ldarg.s 4
+	IL_0075:  callvirt instance int32 class [mscorlib]System.Collections.Stack::get_Count()
+	IL_007a:  ldc.i4.0 
+	IL_007b:  ble IL_00bb
+
+	IL_0080:  nop 
+	IL_0081:  ldarg.s 4
+	IL_0083:  callvirt instance object class [mscorlib]System.Collections.Stack::Peek()
+	IL_0088:  castclass [mscorlib]System.String
+	IL_008d:  stloc.2 
+	IL_008e:  ldloc.1 
+	IL_008f:  ldstr " "
+	IL_0094:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0099:  pop 
 	IL_009a:  ldloc.1 
-	IL_009b:  unbox.any [mscorlib]System.Int32
-	IL_00a0:  conv.i8 
-	IL_00a1:  ldloc.2 
-	IL_00a2:  unbox.any [mscorlib]System.Int64
-	IL_00a7:  mul 
-	IL_00a8:  box [mscorlib]System.Int64
-	IL_00ad:  stloc.1 
-	IL_00ae:  nop 
-	IL_00af:  br IL_023f
+	IL_009b:  ldstr "It is used from target '"
+	IL_00a0:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00a5:  pop 
+	IL_00a6:  ldloc.1 
+	IL_00a7:  ldloc.2 
+	IL_00a8:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00ad:  pop 
+	IL_00ae:  ldloc.1 
+	IL_00af:  ldstr "'."
+	IL_00b4:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00b9:  pop 
+	IL_00ba:  nop 
+	IL_00bb:  ldloc.1 
+	IL_00bc:  callvirt instance string object::ToString()
+	IL_00c1:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_00c6:  throw 
+	IL_00c7:  nop 
+	IL_00c8:  nop 
+	IL_00c9:  ldloc.0 
+	IL_00ca:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Target::get_Dependencies()
+	IL_00cf:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_00d4:  stloc.s 4
+	.try { // 0
+	  IL_00d6:  br IL_0129
 
-	IL_00b4:  ldloc.1 
-	IL_00b5:  isinst [mscorlib]System.Int32
-	IL_00ba:  brfalse IL_00e5
+	  IL_00db:  ldloc.s 4
+	  IL_00dd:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_00e2:  stloc.3 
+	  IL_00e3:  nop 
+	  IL_00e4:  ldarg.3 
+	  IL_00e5:  ldloc.3 
+	  IL_00e6:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_00eb:  castclass [mscorlib]System.String
+	  IL_00f0:  stloc.s 5
+	  IL_00f2:  ldloc.s 5
+	  IL_00f4:  brtrue IL_010d
 
-	IL_00bf:  ldloc.2 
-	IL_00c0:  isinst [mscorlib]System.Double
-	IL_00c5:  brfalse IL_00e5
+	  IL_00f9:  nop 
+	  IL_00fa:  ldarg.0 
+	  IL_00fb:  ldloc.3 
+	  IL_00fc:  ldarg.2 
+	  IL_00fd:  ldarg.3 
+	  IL_00fe:  ldarg.s 4
+	  IL_0100:  ldarg.s 5
+	  IL_0102:  call instance void class NAnt.Core.Project::TopologicalTargetSort(string, class NAnt.Core.TargetCollection, class [mscorlib]System.Collections.Hashtable, class [mscorlib]System.Collections.Stack, class NAnt.Core.TargetCollection)
+	  IL_0107:  nop 
+	  IL_0108:  br IL_0128
 
-	IL_00ca:  nop 
-	IL_00cb:  ldloc.1 
-	IL_00cc:  unbox.any [mscorlib]System.Int32
-	IL_00d1:  conv.r8 
-	IL_00d2:  ldloc.2 
-	IL_00d3:  unbox.any [mscorlib]System.Double
-	IL_00d8:  mul 
-	IL_00d9:  box [mscorlib]System.Double
-	IL_00de:  stloc.1 
-	IL_00df:  nop 
-	IL_00e0:  br IL_023f
+	  IL_010d:  ldloc.s 5
+	  IL_010f:  ldstr "VISITING"
+	  IL_0114:  call bool string::op_Equality(string, string)
+	  IL_0119:  brfalse IL_0128
 
-	IL_00e5:  ldloc.1 
-	IL_00e6:  isinst [mscorlib]System.Int64
-	IL_00eb:  brfalse IL_0115
+	  IL_011e:  nop 
+	  IL_011f:  ldloc.3 
+	  IL_0120:  ldarg.s 4
+	  IL_0122:  call class NAnt.Core.BuildException class NAnt.Core.Project::CreateCircularException(string, class [mscorlib]System.Collections.Stack)
+	  IL_0127:  throw 
+	  IL_0128:  nop 
+	  IL_0129:  ldloc.s 4
+	  IL_012b:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0130:  brtrue IL_00db
 
-	IL_00f0:  ldloc.2 
-	IL_00f1:  isinst [mscorlib]System.Int64
-	IL_00f6:  brfalse IL_0115
+	  IL_0135:  leave IL_0151
 
-	IL_00fb:  nop 
-	IL_00fc:  ldloc.1 
-	IL_00fd:  unbox.any [mscorlib]System.Int64
-	IL_0102:  ldloc.2 
-	IL_0103:  unbox.any [mscorlib]System.Int64
-	IL_0108:  mul 
-	IL_0109:  box [mscorlib]System.Int64
-	IL_010e:  stloc.1 
-	IL_010f:  nop 
-	IL_0110:  br IL_023f
+	} // end .try 0
+	finally  { // 0
+	  IL_013a:  ldloc.s 4
+	  IL_013c:  isinst [mscorlib]System.IDisposable
+	  IL_0141:  dup 
+	  IL_0142:  stloc.s 6
+	  IL_0144:  brfalse IL_0150
 
-	IL_0115:  ldloc.1 
-	IL_0116:  isinst [mscorlib]System.Int64
-	IL_011b:  brfalse IL_0146
+	  IL_0149:  ldloc.s 6
+	  IL_014b:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0150:  endfinally 
+	} // end handler 0
+	IL_0151:  ldarg.s 4
+	IL_0153:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
+	IL_0158:  castclass [mscorlib]System.String
+	IL_015d:  stloc.s 7
+	IL_015f:  ldarg.1 
+	IL_0160:  ldloc.s 7
+	IL_0162:  call bool string::op_Inequality(string, string)
+	IL_0167:  brfalse IL_0185
 
-	IL_0120:  ldloc.2 
-	IL_0121:  isinst [mscorlib]System.Int32
-	IL_0126:  brfalse IL_0146
+	IL_016c:  nop 
+	IL_016d:  ldstr "Unexpected internal error: expected to pop "
+	IL_0172:  ldarg.1 
+	IL_0173:  ldstr " but got "
+	IL_0178:  ldloc.s 7
+	IL_017a:  call string string::Concat(string, string, string, string)
+	IL_017f:  newobj instance void class [mscorlib]System.Exception::'.ctor'(string)
+	IL_0184:  throw 
+	IL_0185:  ldarg.3 
+	IL_0186:  ldarg.1 
+	IL_0187:  ldstr "VISITED"
+	IL_018c:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0191:  ldarg.s 5
+	IL_0193:  ldloc.0 
+	IL_0194:  callvirt instance int32 class NAnt.Core.TargetCollection::Add(class NAnt.Core.Target)
+	IL_0199:  pop 
+	IL_019a:  ret 
+    } // end of method Project::TopologicalTargetSort
 
-	IL_012b:  nop 
-	IL_012c:  ldloc.1 
-	IL_012d:  unbox.any [mscorlib]System.Int64
-	IL_0132:  ldloc.2 
-	IL_0133:  unbox.any [mscorlib]System.Int32
-	IL_0138:  conv.i8 
-	IL_0139:  mul 
-	IL_013a:  box [mscorlib]System.Int64
-	IL_013f:  stloc.1 
-	IL_0140:  nop 
-	IL_0141:  br IL_023f
+    // method line 2168
+    .method private static hidebysig 
+           default class NAnt.Core.BuildException CreateCircularException (string end, class [mscorlib]System.Collections.Stack stack)  cil managed 
+    {
+        // Method begins at RVA 0x29c08
+	// Code size 85 (0x55)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		string	V_1,
+		class NAnt.Core.BuildException	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldstr "Circular dependency: "
+	IL_0006:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
+	IL_000b:  stloc.0 
+	IL_000c:  ldloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0013:  pop 
+	IL_0014:  nop 
+	IL_0015:  ldarg.1 
+	IL_0016:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
+	IL_001b:  castclass [mscorlib]System.String
+	IL_0020:  stloc.1 
+	IL_0021:  ldloc.0 
+	IL_0022:  ldstr " <- "
+	IL_0027:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_002c:  pop 
+	IL_002d:  ldloc.0 
+	IL_002e:  ldloc.1 
+	IL_002f:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0034:  pop 
+	IL_0035:  nop 
+	IL_0036:  ldloc.1 
+	IL_0037:  ldarg.0 
+	IL_0038:  callvirt instance bool string::Equals(string)
+	IL_003d:  brfalse IL_0014
 
-	IL_0146:  ldloc.1 
-	IL_0147:  isinst [mscorlib]System.Int64
-	IL_014c:  brfalse IL_0177
+	IL_0042:  ldloc.0 
+	IL_0043:  callvirt instance string object::ToString()
+	IL_0048:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_004d:  stloc.2 
+	IL_004e:  br IL_0053
 
-	IL_0151:  ldloc.2 
-	IL_0152:  isinst [mscorlib]System.Double
-	IL_0157:  brfalse IL_0177
+	IL_0053:  ldloc.2 
+	IL_0054:  ret 
+    } // end of method Project::CreateCircularException
 
-	IL_015c:  nop 
-	IL_015d:  ldloc.1 
-	IL_015e:  unbox.any [mscorlib]System.Int64
-	IL_0163:  conv.r8 
-	IL_0164:  ldloc.2 
-	IL_0165:  unbox.any [mscorlib]System.Double
-	IL_016a:  mul 
-	IL_016b:  box [mscorlib]System.Double
-	IL_0170:  stloc.1 
-	IL_0171:  nop 
-	IL_0172:  br IL_023f
+    // method line 2169
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x29c69
+	// Code size 21 (0x15)
+	.maxstack 8
+	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
+	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
+	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.Project::logger
+	IL_0014:  ret 
+    } // end of method Project::.cctor
 
-	IL_0177:  ldloc.1 
-	IL_0178:  isinst [mscorlib]System.Double
-	IL_017d:  brfalse IL_01a7
+	.property instance int32 IndentationLevel ()
+	{
+		.get instance default int32 NAnt.Core.Project::get_IndentationLevel () 
+	}
+	.property instance int32 IndentationSize ()
+	{
+		.get instance default int32 NAnt.Core.Project::get_IndentationSize () 
+	}
+	.property instance valuetype NAnt.Core.Level Threshold ()
+	{
+		.get instance default valuetype NAnt.Core.Level NAnt.Core.Project::get_Threshold () 
+		.set instance default void NAnt.Core.Project::set_Threshold (valuetype NAnt.Core.Level 'value') 
+	}
+	.property instance string ProjectName ()
+	{
+		.get instance default string NAnt.Core.Project::get_ProjectName () 
+	}
+	.property instance string BaseDirectory ()
+	{
+		.get instance default string NAnt.Core.Project::get_BaseDirectory () 
+		.set instance default void NAnt.Core.Project::set_BaseDirectory (string 'value') 
+	}
+	.property instance class [System.Xml]System.Xml.XmlNamespaceManager NamespaceManager ()
+	{
+		.get instance default class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.Project::get_NamespaceManager () 
+	}
+	.property instance class [System]System.Uri BuildFileUri ()
+	{
+		.get instance default class [System]System.Uri NAnt.Core.Project::get_BuildFileUri () 
+	}
+	.property instance class NAnt.Core.FrameworkInfoDictionary Frameworks ()
+	{
+		.get instance default class NAnt.Core.FrameworkInfoDictionary NAnt.Core.Project::get_Frameworks () 
+	}
+	.property instance class NAnt.Core.FrameworkInfo RuntimeFramework ()
+	{
+		.get instance default class NAnt.Core.FrameworkInfo NAnt.Core.Project::get_RuntimeFramework () 
+		.set instance default void NAnt.Core.Project::set_RuntimeFramework (class NAnt.Core.FrameworkInfo 'value') 
+	}
+	.property instance class NAnt.Core.FrameworkInfo TargetFramework ()
+	{
+		.get instance default class NAnt.Core.FrameworkInfo NAnt.Core.Project::get_TargetFramework () 
+		.set instance default void NAnt.Core.Project::set_TargetFramework (class NAnt.Core.FrameworkInfo 'value') 
+	}
+	.property instance string PlatformName ()
+	{
+		.get instance default string NAnt.Core.Project::get_PlatformName () 
+	}
+	.property instance class NAnt.Core.Target CurrentTarget ()
+	{
+		.get instance default class NAnt.Core.Target NAnt.Core.Project::get_CurrentTarget () 
+	}
+	.property instance string BuildFileLocalName ()
+	{
+		.get instance default string NAnt.Core.Project::get_BuildFileLocalName () 
+	}
+	.property instance class [System.Xml]System.Xml.XmlDocument Document ()
+	{
+		.get instance default class [System.Xml]System.Xml.XmlDocument NAnt.Core.Project::get_Document () 
+	}
+	.property instance class [System.Xml]System.Xml.XmlNode ConfigurationNode ()
+	{
+		.get instance default class [System.Xml]System.Xml.XmlNode NAnt.Core.Project::get_ConfigurationNode () 
+	}
+	.property instance string DefaultTargetName ()
+	{
+		.get instance default string NAnt.Core.Project::get_DefaultTargetName () 
+	}
+	.property instance bool Verbose ()
+	{
+		.get instance default bool NAnt.Core.Project::get_Verbose () 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection BuildTargets ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Project::get_BuildTargets () 
+	}
+	.property instance class NAnt.Core.PropertyDictionary Properties ()
+	{
+		.get instance default class NAnt.Core.PropertyDictionary NAnt.Core.Project::get_Properties () 
+	}
+	.property instance class NAnt.Core.PropertyDictionary FrameworkNeutralProperties ()
+	{
+		.get instance default class NAnt.Core.PropertyDictionary NAnt.Core.Project::get_FrameworkNeutralProperties () 
+	}
+	.property instance class NAnt.Core.DataTypeBaseDictionary DataTypeReferences ()
+	{
+		.get instance default class NAnt.Core.DataTypeBaseDictionary NAnt.Core.Project::get_DataTypeReferences () 
+	}
+	.property instance class NAnt.Core.TargetCollection Targets ()
+	{
+		.get instance default class NAnt.Core.TargetCollection NAnt.Core.Project::get_Targets () 
+	}
+	.property instance class NAnt.Core.BuildListenerCollection BuildListeners ()
+	{
+		.get instance default class NAnt.Core.BuildListenerCollection NAnt.Core.Project::get_BuildListeners () 
+	}
+	.property instance class NAnt.Core.LocationMap LocationMap ()
+	{
+		.get instance default class NAnt.Core.LocationMap NAnt.Core.Project::get_LocationMap () 
+	}
+	.event NAnt.Core.BuildEventHandler BuildStarted
+	{
+		.addon instance default void NAnt.Core.Project::add_BuildStarted (class NAnt.Core.BuildEventHandler 'value') 
+		.removeon instance default void NAnt.Core.Project::remove_BuildStarted (class NAnt.Core.BuildEventHandler 'value') 
+	}
+	.event NAnt.Core.BuildEventHandler BuildFinished
+	{
+		.addon instance default void NAnt.Core.Project::add_BuildFinished (class NAnt.Core.BuildEventHandler 'value') 
+		.removeon instance default void NAnt.Core.Project::remove_BuildFinished (class NAnt.Core.BuildEventHandler 'value') 
+	}
+	.event NAnt.Core.BuildEventHandler TargetStarted
+	{
+		.addon instance default void NAnt.Core.Project::add_TargetStarted (class NAnt.Core.BuildEventHandler 'value') 
+		.removeon instance default void NAnt.Core.Project::remove_TargetStarted (class NAnt.Core.BuildEventHandler 'value') 
+	}
+	.event NAnt.Core.BuildEventHandler TargetFinished
+	{
+		.addon instance default void NAnt.Core.Project::add_TargetFinished (class NAnt.Core.BuildEventHandler 'value') 
+		.removeon instance default void NAnt.Core.Project::remove_TargetFinished (class NAnt.Core.BuildEventHandler 'value') 
+	}
+	.event NAnt.Core.BuildEventHandler TaskStarted
+	{
+		.addon instance default void NAnt.Core.Project::add_TaskStarted (class NAnt.Core.BuildEventHandler 'value') 
+		.removeon instance default void NAnt.Core.Project::remove_TaskStarted (class NAnt.Core.BuildEventHandler 'value') 
+	}
+	.event NAnt.Core.BuildEventHandler TaskFinished
+	{
+		.addon instance default void NAnt.Core.Project::add_TaskFinished (class NAnt.Core.BuildEventHandler 'value') 
+		.removeon instance default void NAnt.Core.Project::remove_TaskFinished (class NAnt.Core.BuildEventHandler 'value') 
+	}
+	.event NAnt.Core.BuildEventHandler MessageLogged
+	{
+		.addon instance default void NAnt.Core.Project::add_MessageLogged (class NAnt.Core.BuildEventHandler 'value') 
+		.removeon instance default void NAnt.Core.Project::remove_MessageLogged (class NAnt.Core.BuildEventHandler 'value') 
+	}
+  } // end of class NAnt.Core.Project
+}
 
-	IL_0182:  ldloc.2 
-	IL_0183:  isinst [mscorlib]System.Double
-	IL_0188:  brfalse IL_01a7
+.namespace NAnt.Core
+{
+  .class private auto ansi sealed Optimizations
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Core.Optimizations None = int32(0x00000000)
+    .field public static literal  valuetype NAnt.Core.Optimizations SkipAutomaticDiscovery = int32(0x00000001)
+    .field public static literal  valuetype NAnt.Core.Optimizations SkipFrameworkConfiguration = int32(0x00000002)
 
-	IL_018d:  nop 
-	IL_018e:  ldloc.1 
-	IL_018f:  unbox.any [mscorlib]System.Double
-	IL_0194:  ldloc.2 
-	IL_0195:  unbox.any [mscorlib]System.Double
-	IL_019a:  mul 
-	IL_019b:  box [mscorlib]System.Double
-	IL_01a0:  stloc.1 
-	IL_01a1:  nop 
-	IL_01a2:  br IL_023f
+  } // end of class NAnt.Core.Optimizations
+}
 
-	IL_01a7:  ldloc.1 
-	IL_01a8:  isinst [mscorlib]System.Double
-	IL_01ad:  brfalse IL_01d8
+.namespace NAnt.Core
+{
+  .class public auto ansi serializable PlatformHelper
+  	extends [mscorlib]System.Object
+  {
+    .field  public static initonly  bool IsMono
+    .field  public static initonly  bool IsWin32
+    .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
+		01 00 16 55 73 65 20 49 73 57 69 6E 64 6F 77 73   // ...Use IsWindows
+		20 69 6E 73 74 65 61 64 2E 00 00                ) //  instead...
 
-	IL_01b2:  ldloc.2 
-	IL_01b3:  isinst [mscorlib]System.Int32
-	IL_01b8:  brfalse IL_01d8
+    .field  public static initonly  bool IsUnix
 
-	IL_01bd:  nop 
-	IL_01be:  ldloc.1 
-	IL_01bf:  unbox.any [mscorlib]System.Double
-	IL_01c4:  ldloc.2 
-	IL_01c5:  unbox.any [mscorlib]System.Int32
-	IL_01ca:  conv.r8 
-	IL_01cb:  mul 
-	IL_01cc:  box [mscorlib]System.Double
-	IL_01d1:  stloc.1 
-	IL_01d2:  nop 
-	IL_01d3:  br IL_023f
+    // method line 2170
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x29c80
+	// Code size 87 (0x57)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldstr "System.MonoType"
+	IL_0006:  ldc.i4.0 
+	IL_0007:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool)
+	IL_000c:  ldnull 
+	IL_000d:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_0012:  brfalse IL_001f
 
-	IL_01d8:  ldloc.1 
-	IL_01d9:  isinst [mscorlib]System.Double
-	IL_01de:  brfalse IL_0209
+	IL_0017:  nop 
+	IL_0018:  ldc.i4.1 
+	IL_0019:  stsfld bool NAnt.Core.PlatformHelper::IsMono
+	IL_001e:  nop 
+	IL_001f:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
+	IL_0024:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
+	IL_0029:  stloc.0 
+	IL_002a:  ldloc.0 
+	IL_002b:  ldc.i4.4 
+	IL_002c:  beq IL_0043
 
-	IL_01e3:  ldloc.2 
-	IL_01e4:  isinst [mscorlib]System.Int64
-	IL_01e9:  brfalse IL_0209
+	IL_0031:  ldloc.0 
+	IL_0032:  ldc.i4.6 
+	IL_0033:  beq IL_0043
 
-	IL_01ee:  nop 
-	IL_01ef:  ldloc.1 
-	IL_01f0:  unbox.any [mscorlib]System.Double
-	IL_01f5:  ldloc.2 
-	IL_01f6:  unbox.any [mscorlib]System.Int64
-	IL_01fb:  conv.r8 
-	IL_01fc:  mul 
-	IL_01fd:  box [mscorlib]System.Double
-	IL_0202:  stloc.1 
-	IL_0203:  nop 
-	IL_0204:  br IL_023f
+	IL_0038:  ldloc.0 
+	IL_0039:  ldc.i4 128
+	IL_003e:  bne.un IL_0049
 
-	IL_0209:  nop 
-	IL_020a:  ldarg.0 
-	IL_020b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0210:  ldstr "NA1036"
-	IL_0215:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_021a:  ldarg.0 
-	IL_021b:  ldloc.1 
-	IL_021c:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0221:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_0226:  ldarg.0 
-	IL_0227:  ldloc.2 
-	IL_0228:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_022d:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_0232:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0237:  ldloc.0 
-	IL_0238:  ldloc.3 
-	IL_0239:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_023e:  throw 
-	IL_023f:  nop 
-	IL_0240:  nop 
-	IL_0241:  br IL_0aa6
+	IL_0043:  ldc.i4.1 
+	IL_0044:  stsfld bool NAnt.Core.PlatformHelper::IsUnix
+	IL_0049:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
+	IL_004e:  ldc.i4.0 
+	IL_004f:  ceq 
+	IL_0051:  stsfld bool NAnt.Core.PlatformHelper::IsWin32
+	IL_0056:  ret 
+    } // end of method PlatformHelper::.cctor
 
-	IL_0246:  ldarg.0 
-	IL_0247:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_024c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0251:  ldc.i4.s 0x0e
-	IL_0253:  bne.un IL_0673
+    // method line 2171
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x29ce3
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method PlatformHelper::.ctor
 
-	IL_0258:  nop 
-	IL_0259:  ldarg.0 
-	IL_025a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_025f:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_0264:  ldarg.0 
-	IL_0265:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_026a:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_026f:  stloc.s 4
-	IL_0271:  ldarg.0 
-	IL_0272:  call instance object class NAnt.Core.ExpressionEvalBase::ParseValue()
-	IL_0277:  stloc.s 5
-	IL_0279:  ldarg.0 
-	IL_027a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_027f:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_0284:  stloc.s 6
-	IL_0286:  ldarg.0 
-	IL_0287:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	IL_028c:  brtrue IL_066d
+    // method line 2172
+    .method public static hidebysig 
+           default bool IsVolumeCaseSensitive (string path)  cil managed 
+    {
+        // Method begins at RVA 0x29cec
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0291:  nop 
-	IL_0292:  ldloc.1 
-	IL_0293:  isinst [mscorlib]System.Int32
-	IL_0298:  brfalse IL_02f5
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method PlatformHelper::IsVolumeCaseSensitive
 
-	IL_029d:  ldloc.s 5
-	IL_029f:  isinst [mscorlib]System.Int32
-	IL_02a4:  brfalse IL_02f5
+    // method line 2173
+    .method assembly static hidebysig specialname 
+           default bool get_Is64Bit ()  cil managed 
+    {
+        // Method begins at RVA 0x29d08
+	// Code size 17 (0x11)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  call int32 native int::get_Size()
+	IL_0006:  ldc.i4.8 
+	IL_0007:  ceq 
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_000f
 
-	IL_02a9:  nop 
-	IL_02aa:  ldloc.s 5
-	IL_02ac:  unbox.any [mscorlib]System.Int32
-	IL_02b1:  brtrue IL_02db
+	IL_000f:  ldloc.0 
+	IL_0010:  ret 
+    } // end of method PlatformHelper::get_Is64Bit
 
-	IL_02b6:  nop 
-	IL_02b7:  ldarg.0 
-	IL_02b8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_02bd:  ldstr "NA1043"
-	IL_02c2:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_02c7:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_02cc:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_02d1:  ldloc.s 4
-	IL_02d3:  ldloc.s 6
-	IL_02d5:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_02da:  throw 
-	IL_02db:  ldloc.1 
-	IL_02dc:  unbox.any [mscorlib]System.Int32
-	IL_02e1:  ldloc.s 5
-	IL_02e3:  unbox.any [mscorlib]System.Int32
-	IL_02e8:  div 
-	IL_02e9:  box [mscorlib]System.Int32
-	IL_02ee:  stloc.1 
-	IL_02ef:  nop 
-	IL_02f0:  br IL_066c
+    // method line 2174
+    .method assembly static hidebysig specialname 
+           default bool get_Is32Bit ()  cil managed 
+    {
+        // Method begins at RVA 0x29d28
+	// Code size 17 (0x11)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  call int32 native int::get_Size()
+	IL_0006:  ldc.i4.4 
+	IL_0007:  ceq 
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_000f
 
-	IL_02f5:  ldloc.1 
-	IL_02f6:  isinst [mscorlib]System.Int32
-	IL_02fb:  brfalse IL_035b
+	IL_000f:  ldloc.0 
+	IL_0010:  ret 
+    } // end of method PlatformHelper::get_Is32Bit
 
-	IL_0300:  ldloc.s 5
-	IL_0302:  isinst [mscorlib]System.Int64
-	IL_0307:  brfalse IL_035b
+    // method line 2175
+    .method public static hidebysig specialname 
+           default bool get_IsWindows ()  cil managed 
+    {
+        // Method begins at RVA 0x29d48
+	// Code size 17 (0x11)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
+	IL_0006:  ldc.i4.0 
+	IL_0007:  ceq 
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_000f
 
-	IL_030c:  nop 
-	IL_030d:  ldloc.s 5
-	IL_030f:  unbox.any [mscorlib]System.Int64
-	IL_0314:  ldc.i4.0 
-	IL_0315:  conv.i8 
-	IL_0316:  bne.un IL_0340
+	IL_000f:  ldloc.0 
+	IL_0010:  ret 
+    } // end of method PlatformHelper::get_IsWindows
 
-	IL_031b:  nop 
-	IL_031c:  ldarg.0 
-	IL_031d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0322:  ldstr "NA1043"
-	IL_0327:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_032c:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_0331:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0336:  ldloc.s 4
-	IL_0338:  ldloc.s 6
-	IL_033a:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_033f:  throw 
-	IL_0340:  ldloc.1 
-	IL_0341:  unbox.any [mscorlib]System.Int32
-	IL_0346:  conv.i8 
-	IL_0347:  ldloc.s 5
-	IL_0349:  unbox.any [mscorlib]System.Int64
-	IL_034e:  div 
-	IL_034f:  box [mscorlib]System.Int64
-	IL_0354:  stloc.1 
-	IL_0355:  nop 
-	IL_0356:  br IL_066c
+	.property bool Is64Bit ()
+	{
+		.get default bool NAnt.Core.PlatformHelper::get_Is64Bit () 
+	}
+	.property bool Is32Bit ()
+	{
+		.get default bool NAnt.Core.PlatformHelper::get_Is32Bit () 
+	}
+	.property bool IsWindows ()
+	{
+		.get default bool NAnt.Core.PlatformHelper::get_IsWindows () 
+	}
+  } // end of class NAnt.Core.PlatformHelper
+}
 
-	IL_035b:  ldloc.1 
-	IL_035c:  isinst [mscorlib]System.Int32
-	IL_0361:  brfalse IL_03c8
+.namespace NAnt.Core
+{
+  .class public auto ansi sealed serializable beforefieldinit Target
+  	extends NAnt.Core.Element
+  	implements [mscorlib]System.ICloneable  {
+    .field  private  string _name
+    .field  private  string _description
+    .field  private  string _ifCondition
+    .field  private  string _unlessCondition
+    .field  private  class [System]System.Collections.Specialized.StringCollection _dependencies
+    .field  private  bool _executed
 
-	IL_0366:  ldloc.s 5
-	IL_0368:  isinst [mscorlib]System.Double
-	IL_036d:  brfalse IL_03c8
+    // method line 2176
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x29d65
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0006:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Target::_dependencies
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0011:  nop 
+	IL_0012:  ret 
+    } // end of method Target::.ctor
 
-	IL_0372:  nop 
-	IL_0373:  ldloc.s 5
-	IL_0375:  unbox.any [mscorlib]System.Double
-	IL_037a:  ldc.r8 0.
-	IL_0383:  bne.un IL_03ad
+    // method line 2177
+    .method public hidebysig specialname 
+           instance default bool get_Executed ()  cil managed 
+    {
+        // Method begins at RVA 0x29d7c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Core.Target::_executed
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0388:  nop 
-	IL_0389:  ldarg.0 
-	IL_038a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_038f:  ldstr "NA1043"
-	IL_0394:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0399:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_039e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_03a3:  ldloc.s 4
-	IL_03a5:  ldloc.s 6
-	IL_03a7:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_03ac:  throw 
-	IL_03ad:  ldloc.1 
-	IL_03ae:  unbox.any [mscorlib]System.Int32
-	IL_03b3:  conv.r8 
-	IL_03b4:  ldloc.s 5
-	IL_03b6:  unbox.any [mscorlib]System.Double
-	IL_03bb:  div 
-	IL_03bc:  box [mscorlib]System.Double
-	IL_03c1:  stloc.1 
-	IL_03c2:  nop 
-	IL_03c3:  br IL_066c
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Target::get_Executed
 
-	IL_03c8:  ldloc.1 
-	IL_03c9:  isinst [mscorlib]System.Int64
-	IL_03ce:  brfalse IL_042d
+    // method line 2178
+    .method public hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x29d98
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Target::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_03d3:  ldloc.s 5
-	IL_03d5:  isinst [mscorlib]System.Int64
-	IL_03da:  brfalse IL_042d
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Target::get_Name
 
-	IL_03df:  nop 
-	IL_03e0:  ldloc.s 5
-	IL_03e2:  unbox.any [mscorlib]System.Int64
-	IL_03e7:  ldc.i4.0 
-	IL_03e8:  conv.i8 
-	IL_03e9:  bne.un IL_0413
+    // method line 2179
+    .method public hidebysig specialname 
+           instance default void set_Name (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x29db3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Target::_name
+	IL_0008:  ret 
+    } // end of method Target::set_Name
 
-	IL_03ee:  nop 
-	IL_03ef:  ldarg.0 
-	IL_03f0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_03f5:  ldstr "NA1043"
-	IL_03fa:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_03ff:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_0404:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0409:  ldloc.s 4
-	IL_040b:  ldloc.s 6
-	IL_040d:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0412:  throw 
-	IL_0413:  ldloc.1 
-	IL_0414:  unbox.any [mscorlib]System.Int64
-	IL_0419:  ldloc.s 5
-	IL_041b:  unbox.any [mscorlib]System.Int64
-	IL_0420:  div 
-	IL_0421:  box [mscorlib]System.Int64
-	IL_0426:  stloc.1 
-	IL_0427:  nop 
-	IL_0428:  br IL_066c
+    // method line 2180
+    .method public hidebysig specialname 
+           instance default string get_IfCondition ()  cil managed 
+    {
+        // Method begins at RVA 0x29dc0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Target::_ifCondition
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_042d:  ldloc.1 
-	IL_042e:  isinst [mscorlib]System.Int64
-	IL_0433:  brfalse IL_0491
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Target::get_IfCondition
+
+    // method line 2181
+    .method public hidebysig specialname 
+           instance default void set_IfCondition (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x29ddb
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Target::_ifCondition
+	IL_000d:  ret 
+    } // end of method Target::set_IfCondition
+
+    // method line 2182
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x29dec
+	// Code size 104 (0x68)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		bool	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance string class NAnt.Core.Target::get_IfCondition()
+	IL_0012:  ldarg.0 
+	IL_0013:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0018:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
+	IL_001d:  stloc.0 
+	IL_001e:  ldloc.0 
+	IL_001f:  call bool string::IsNullOrEmpty(string)
+	IL_0024:  brtrue IL_005f
+
+	IL_0029:  nop 
+	.try { // 0
+	  IL_002a:  nop 
+	  IL_002b:  ldloc.0 
+	  IL_002c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0031:  call bool class [mscorlib]System.Convert::ToBoolean(string, class [mscorlib]System.IFormatProvider)
+	  IL_0036:  stloc.1 
+	  IL_0037:  leave IL_0066
+
+	} // end .try 0
+	catch class [mscorlib]System.FormatException { // 0
+	  IL_003c:  pop 
+	  IL_003d:  nop 
+	  IL_003e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0043:  ldstr "NA1070"
+	  IL_0048:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_004d:  ldloc.0 
+	  IL_004e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0053:  ldarg.0 
+	  IL_0054:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0059:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_005e:  throw 
+	} // end handler 0
+	IL_005f:  ldc.i4.1 
+	IL_0060:  stloc.1 
+	IL_0061:  br IL_0066
+
+	IL_0066:  ldloc.1 
+	IL_0067:  ret 
+    } // end of method Target::get_IfDefined
+
+    // method line 2183
+    .method public hidebysig specialname 
+           instance default string get_UnlessCondition ()  cil managed 
+    {
+        // Method begins at RVA 0x29e70
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Target::_unlessCondition
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Target::get_UnlessCondition
+
+    // method line 2184
+    .method public hidebysig specialname 
+           instance default void set_UnlessCondition (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x29e8b
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Core.Target::_unlessCondition
+	IL_000d:  ret 
+    } // end of method Target::set_UnlessCondition
+
+    // method line 2185
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x29e9c
+	// Code size 104 (0x68)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		bool	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance string class NAnt.Core.Target::get_UnlessCondition()
+	IL_0012:  ldarg.0 
+	IL_0013:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	IL_0018:  callvirt instance string class NAnt.Core.PropertyDictionary::ExpandProperties(string, class NAnt.Core.Location)
+	IL_001d:  stloc.0 
+	IL_001e:  ldloc.0 
+	IL_001f:  call bool string::IsNullOrEmpty(string)
+	IL_0024:  brtrue IL_005f
+
+	IL_0029:  nop 
+	.try { // 0
+	  IL_002a:  nop 
+	  IL_002b:  ldloc.0 
+	  IL_002c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0031:  call bool class [mscorlib]System.Convert::ToBoolean(string, class [mscorlib]System.IFormatProvider)
+	  IL_0036:  stloc.1 
+	  IL_0037:  leave IL_0066
+
+	} // end .try 0
+	catch class [mscorlib]System.FormatException { // 0
+	  IL_003c:  pop 
+	  IL_003d:  nop 
+	  IL_003e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0043:  ldstr "NA1069"
+	  IL_0048:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_004d:  ldloc.0 
+	  IL_004e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0053:  ldarg.0 
+	  IL_0054:  callvirt instance class NAnt.Core.Location class NAnt.Core.Element::get_Location()
+	  IL_0059:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_005e:  throw 
+	} // end handler 0
+	IL_005f:  ldc.i4.0 
+	IL_0060:  stloc.1 
+	IL_0061:  br IL_0066
+
+	IL_0066:  ldloc.1 
+	IL_0067:  ret 
+    } // end of method Target::get_UnlessDefined
+
+    // method line 2186
+    .method public hidebysig specialname 
+           instance default void set_Description (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x29f20
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Core.Target::_description
+	IL_0008:  ret 
+    } // end of method Target::set_Description
+
+    // method line 2187
+    .method public hidebysig specialname 
+           instance default string get_Description ()  cil managed 
+    {
+        // Method begins at RVA 0x29f2c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Core.Target::_description
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Target::get_Description
+
+    // method line 2188
+    .method public hidebysig specialname 
+           instance default void set_DependsListString (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x29f48
+	// Code size 86 (0x56)
+	.maxstack 5
+	.locals init (
+		string	V_0,
+		string[]	V_1,
+		int32	V_2,
+		string	V_3)
+	IL_0000:  nop 
+	IL_0001:  nop 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldc.i4.2 
+	IL_0004:  newarr [mscorlib]System.Char
+	IL_0009:  dup 
+	IL_000a:  ldc.i4.0 
+	IL_000b:  ldc.i4.s 0x20
+	IL_000d:  stelem.i2 
+	IL_000e:  dup 
+	IL_000f:  ldc.i4.1 
+	IL_0010:  ldc.i4.s 0x2c
+	IL_0012:  stelem.i2 
+	IL_0013:  callvirt instance string[] string::Split(char[])
+	IL_0018:  stloc.1 
+	IL_0019:  ldc.i4.0 
+	IL_001a:  stloc.2 
+	IL_001b:  br IL_004c
+
+	IL_0020:  ldloc.1 
+	IL_0021:  ldloc.2 
+	IL_0022:  ldelem.ref 
+	IL_0023:  stloc.0 
+	IL_0024:  nop 
+	IL_0025:  ldloc.0 
+	IL_0026:  callvirt instance string string::Trim()
+	IL_002b:  stloc.3 
+	IL_002c:  ldloc.3 
+	IL_002d:  callvirt instance int32 string::get_Length()
+	IL_0032:  ldc.i4.0 
+	IL_0033:  ble IL_0047
+
+	IL_0038:  nop 
+	IL_0039:  ldarg.0 
+	IL_003a:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Target::get_Dependencies()
+	IL_003f:  ldloc.3 
+	IL_0040:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0045:  pop 
+	IL_0046:  nop 
+	IL_0047:  nop 
+	IL_0048:  ldloc.2 
+	IL_0049:  ldc.i4.1 
+	IL_004a:  add 
+	IL_004b:  stloc.2 
+	IL_004c:  ldloc.2 
+	IL_004d:  ldloc.1 
+	IL_004e:  ldlen 
+	IL_004f:  conv.i4 
+	IL_0050:  blt IL_0020
+
+	IL_0055:  ret 
+    } // end of method Target::set_DependsListString
+
+    // method line 2189
+    .method public hidebysig specialname 
+           instance default class [System]System.Collections.Specialized.StringCollection get_Dependencies ()  cil managed 
+    {
+        // Method begins at RVA 0x29fac
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [System]System.Collections.Specialized.StringCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Target::_dependencies
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Target::get_Dependencies
+
+    // method line 2190
+    .method private final virtual hidebysig newslot 
+           instance default object System.ICloneable.Clone ()  cil managed 
+    {
+        // Method begins at RVA 0x29fc8
+	.override class [mscorlib]System.ICloneable::Clone
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Target class NAnt.Core.Target::Clone()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Target::System.ICloneable.Clone
+
+    // method line 2191
+    .method public hidebysig 
+           instance default class NAnt.Core.Target Clone ()  cil managed 
+    {
+        // Method begins at RVA 0x29fe4
+	// Code size 95 (0x5f)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Target	V_0,
+		class NAnt.Core.Target	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.Core.Target::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  call instance void class NAnt.Core.Element::CopyTo(class NAnt.Core.Element)
+	IL_000e:  ldloc.0 
+	IL_000f:  ldarg.0 
+	IL_0010:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Target::_dependencies
+	IL_0015:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.Target::_dependencies
+	IL_001a:  ldloc.0 
+	IL_001b:  ldarg.0 
+	IL_001c:  ldfld string NAnt.Core.Target::_description
+	IL_0021:  stfld string NAnt.Core.Target::_description
+	IL_0026:  ldloc.0 
+	IL_0027:  ldarg.0 
+	IL_0028:  ldfld bool NAnt.Core.Target::_executed
+	IL_002d:  stfld bool NAnt.Core.Target::_executed
+	IL_0032:  ldloc.0 
+	IL_0033:  ldarg.0 
+	IL_0034:  ldfld string NAnt.Core.Target::_ifCondition
+	IL_0039:  stfld string NAnt.Core.Target::_ifCondition
+	IL_003e:  ldloc.0 
+	IL_003f:  ldarg.0 
+	IL_0040:  ldfld string NAnt.Core.Target::_name
+	IL_0045:  stfld string NAnt.Core.Target::_name
+	IL_004a:  ldloc.0 
+	IL_004b:  ldarg.0 
+	IL_004c:  ldfld string NAnt.Core.Target::_unlessCondition
+	IL_0051:  stfld string NAnt.Core.Target::_unlessCondition
+	IL_0056:  ldloc.0 
+	IL_0057:  stloc.1 
+	IL_0058:  br IL_005d
 
-	IL_0438:  ldloc.s 5
-	IL_043a:  isinst [mscorlib]System.Int32
-	IL_043f:  brfalse IL_0491
+	IL_005d:  ldloc.1 
+	IL_005e:  ret 
+    } // end of method Target::Clone
 
-	IL_0444:  nop 
-	IL_0445:  ldloc.s 5
-	IL_0447:  unbox.any [mscorlib]System.Int32
-	IL_044c:  brtrue IL_0476
+    // method line 2192
+    .method public hidebysig 
+           instance default void Execute ()  cil managed 
+    {
+        // Method begins at RVA 0x2a050
+	// Code size 473 (0x1d9)
+	.maxstack 7
+	.locals init (
+		class [System.Xml]System.Xml.XmlNode	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.Task	V_2,
+		class NAnt.Core.DataTypeBase	V_3,
+		class [mscorlib]System.IDisposable	V_4)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.Core.Target::get_IfDefined()
+	IL_0007:  brfalse IL_01d8
 
-	IL_0451:  nop 
-	IL_0452:  ldarg.0 
-	IL_0453:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0458:  ldstr "NA1043"
-	IL_045d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0462:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_0467:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_046c:  ldloc.s 4
-	IL_046e:  ldloc.s 6
-	IL_0470:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0475:  throw 
-	IL_0476:  ldloc.1 
-	IL_0477:  unbox.any [mscorlib]System.Int64
-	IL_047c:  ldloc.s 5
-	IL_047e:  unbox.any [mscorlib]System.Int32
-	IL_0483:  conv.i8 
-	IL_0484:  div 
-	IL_0485:  box [mscorlib]System.Int64
-	IL_048a:  stloc.1 
-	IL_048b:  nop 
-	IL_048c:  br IL_066c
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance bool class NAnt.Core.Target::get_UnlessDefined()
+	IL_0012:  brtrue IL_01d8
 
-	IL_0491:  ldloc.1 
-	IL_0492:  isinst [mscorlib]System.Int64
-	IL_0497:  brfalse IL_04fe
+	IL_0017:  nop 
+	.try { // 1
+	  IL_0018:  nop 
+	  IL_0019:  ldarg.0 
+	  IL_001a:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_001f:  ldarg.0 
+	  IL_0020:  ldarg.0 
+	  IL_0021:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Target)
+	  IL_0026:  callvirt instance void class NAnt.Core.Project::OnTargetStarted(object, class NAnt.Core.BuildEventArgs)
+	  IL_002b:  nop 
+	  IL_002c:  ldarg.0 
+	  IL_002d:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::get_XmlNode()
+	  IL_0032:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNode::GetEnumerator()
+	  IL_0037:  stloc.1 
+	  .try { // 0
+	    IL_0038:  br IL_018f
 
-	IL_049c:  ldloc.s 5
-	IL_049e:  isinst [mscorlib]System.Double
-	IL_04a3:  brfalse IL_04fe
+	    IL_003d:  ldloc.1 
+	    IL_003e:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_0043:  castclass [System.Xml]System.Xml.XmlNode
+	    IL_0048:  stloc.0 
+	    IL_0049:  nop 
+	    IL_004a:  ldloc.0 
+	    IL_004b:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
+	    IL_0050:  ldc.i4.1 
+	    IL_0051:  bne.un IL_0076
 
-	IL_04a8:  nop 
-	IL_04a9:  ldloc.s 5
-	IL_04ab:  unbox.any [mscorlib]System.Double
-	IL_04b0:  ldc.r8 0.
-	IL_04b9:  bne.un IL_04e3
+	    IL_0056:  ldloc.0 
+	    IL_0057:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	    IL_005c:  ldarg.0 
+	    IL_005d:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
+	    IL_0062:  ldstr "nant"
+	    IL_0067:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
+	    IL_006c:  callvirt instance bool string::Equals(string)
+	    IL_0071:  brtrue IL_007c
 
-	IL_04be:  nop 
-	IL_04bf:  ldarg.0 
-	IL_04c0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_04c5:  ldstr "NA1043"
-	IL_04ca:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_04cf:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_04d4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_04d9:  ldloc.s 4
-	IL_04db:  ldloc.s 6
-	IL_04dd:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_04e2:  throw 
-	IL_04e3:  ldloc.1 
-	IL_04e4:  unbox.any [mscorlib]System.Int64
-	IL_04e9:  conv.r8 
-	IL_04ea:  ldloc.s 5
-	IL_04ec:  unbox.any [mscorlib]System.Double
-	IL_04f1:  div 
-	IL_04f2:  box [mscorlib]System.Double
-	IL_04f7:  stloc.1 
-	IL_04f8:  nop 
-	IL_04f9:  br IL_066c
+	    IL_0076:  nop 
+	    IL_0077:  leave IL_018f
 
-	IL_04fe:  ldloc.1 
-	IL_04ff:  isinst [mscorlib]System.Double
-	IL_0504:  brfalse IL_056a
+	    IL_007c:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
+	    IL_0081:  ldloc.0 
+	    IL_0082:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	    IL_0087:  callvirt instance bool class NAnt.Core.TaskBuilderCollection::Contains(string)
+	    IL_008c:  brfalse IL_00b4
 
-	IL_0509:  ldloc.s 5
-	IL_050b:  isinst [mscorlib]System.Double
-	IL_0510:  brfalse IL_056a
+	    IL_0091:  nop 
+	    IL_0092:  ldarg.0 
+	    IL_0093:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	    IL_0098:  ldloc.0 
+	    IL_0099:  ldarg.0 
+	    IL_009a:  callvirt instance class NAnt.Core.Task class NAnt.Core.Project::CreateTask(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.Target)
+	    IL_009f:  stloc.2 
+	    IL_00a0:  ldloc.2 
+	    IL_00a1:  brfalse IL_00ae
 
-	IL_0515:  nop 
-	IL_0516:  ldloc.s 5
-	IL_0518:  unbox.any [mscorlib]System.Double
-	IL_051d:  ldc.r8 0.
-	IL_0526:  bne.un IL_0550
+	    IL_00a6:  nop 
+	    IL_00a7:  ldloc.2 
+	    IL_00a8:  callvirt instance void class NAnt.Core.Task::Execute()
+	    IL_00ad:  nop 
+	    IL_00ae:  nop 
+	    IL_00af:  br IL_018e
 
-	IL_052b:  nop 
-	IL_052c:  ldarg.0 
-	IL_052d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0532:  ldstr "NA1043"
-	IL_0537:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_053c:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_0541:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0546:  ldloc.s 4
-	IL_0548:  ldloc.s 6
-	IL_054a:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_054f:  throw 
-	IL_0550:  ldloc.1 
-	IL_0551:  unbox.any [mscorlib]System.Double
-	IL_0556:  ldloc.s 5
-	IL_0558:  unbox.any [mscorlib]System.Double
-	IL_055d:  div 
-	IL_055e:  box [mscorlib]System.Double
-	IL_0563:  stloc.1 
-	IL_0564:  nop 
-	IL_0565:  br IL_066c
+	    IL_00b4:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
+	    IL_00b9:  ldloc.0 
+	    IL_00ba:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	    IL_00bf:  callvirt instance bool class NAnt.Core.DataTypeBaseBuilderCollection::Contains(string)
+	    IL_00c4:  brfalse IL_015c
 
-	IL_056a:  ldloc.1 
-	IL_056b:  isinst [mscorlib]System.Double
-	IL_0570:  brfalse IL_05ce
+	    IL_00c9:  nop 
+	    IL_00ca:  ldarg.0 
+	    IL_00cb:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	    IL_00d0:  ldloc.0 
+	    IL_00d1:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.Project::CreateDataTypeBase(class [System.Xml]System.Xml.XmlNode)
+	    IL_00d6:  stloc.3 
+	    IL_00d7:  ldarg.0 
+	    IL_00d8:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	    IL_00dd:  ldc.i4 2000
+	    IL_00e2:  ldstr "Adding a {0} reference with id '{1}'."
+	    IL_00e7:  ldc.i4.2 
+	    IL_00e8:  newarr [mscorlib]System.Object
+	    IL_00ed:  dup 
+	    IL_00ee:  ldc.i4.0 
+	    IL_00ef:  ldloc.0 
+	    IL_00f0:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	    IL_00f5:  stelem.ref 
+	    IL_00f6:  dup 
+	    IL_00f7:  ldc.i4.1 
+	    IL_00f8:  ldloc.3 
+	    IL_00f9:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	    IL_00fe:  stelem.ref 
+	    IL_00ff:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
+	    IL_0104:  ldarg.0 
+	    IL_0105:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	    IL_010a:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	    IL_010f:  ldloc.3 
+	    IL_0110:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	    IL_0115:  callvirt instance bool class NAnt.Core.DataTypeBaseDictionary::Contains(string)
+	    IL_011a:  brtrue IL_013d
 
-	IL_0575:  ldloc.s 5
-	IL_0577:  isinst [mscorlib]System.Int32
-	IL_057c:  brfalse IL_05ce
+	    IL_011f:  nop 
+	    IL_0120:  ldarg.0 
+	    IL_0121:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	    IL_0126:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	    IL_012b:  ldloc.3 
+	    IL_012c:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	    IL_0131:  ldloc.3 
+	    IL_0132:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::Add(string, class NAnt.Core.DataTypeBase)
+	    IL_0137:  nop 
+	    IL_0138:  br IL_0156
 
-	IL_0581:  nop 
-	IL_0582:  ldloc.s 5
-	IL_0584:  unbox.any [mscorlib]System.Int32
-	IL_0589:  brtrue IL_05b3
+	    IL_013d:  nop 
+	    IL_013e:  ldarg.0 
+	    IL_013f:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	    IL_0144:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	    IL_0149:  ldloc.3 
+	    IL_014a:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	    IL_014f:  ldloc.3 
+	    IL_0150:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::set_Item(string, class NAnt.Core.DataTypeBase)
+	    IL_0155:  nop 
+	    IL_0156:  nop 
+	    IL_0157:  br IL_018e
 
-	IL_058e:  nop 
-	IL_058f:  ldarg.0 
-	IL_0590:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0595:  ldstr "NA1043"
-	IL_059a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_059f:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_05a4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_05a9:  ldloc.s 4
-	IL_05ab:  ldloc.s 6
-	IL_05ad:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_05b2:  throw 
-	IL_05b3:  ldloc.1 
-	IL_05b4:  unbox.any [mscorlib]System.Double
-	IL_05b9:  ldloc.s 5
-	IL_05bb:  unbox.any [mscorlib]System.Int32
-	IL_05c0:  conv.r8 
-	IL_05c1:  div 
-	IL_05c2:  box [mscorlib]System.Double
-	IL_05c7:  stloc.1 
-	IL_05c8:  nop 
-	IL_05c9:  br IL_066c
+	    IL_015c:  nop 
+	    IL_015d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0162:  ldstr "NA1071"
+	    IL_0167:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_016c:  ldloc.0 
+	    IL_016d:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	    IL_0172:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	    IL_0177:  ldarg.0 
+	    IL_0178:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	    IL_017d:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
+	    IL_0182:  ldloc.0 
+	    IL_0183:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	    IL_0188:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	    IL_018d:  throw 
+	    IL_018e:  nop 
+	    IL_018f:  ldloc.1 
+	    IL_0190:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_0195:  brtrue IL_003d
 
-	IL_05ce:  ldloc.1 
-	IL_05cf:  isinst [mscorlib]System.Double
-	IL_05d4:  brfalse IL_0634
+	    IL_019a:  leave IL_01b5
 
-	IL_05d9:  ldloc.s 5
-	IL_05db:  isinst [mscorlib]System.Int64
-	IL_05e0:  brfalse IL_0634
+	  } // end .try 0
+	  finally  { // 0
+	    IL_019f:  ldloc.1 
+	    IL_01a0:  isinst [mscorlib]System.IDisposable
+	    IL_01a5:  dup 
+	    IL_01a6:  stloc.s 4
+	    IL_01a8:  brfalse IL_01b4
 
-	IL_05e5:  nop 
-	IL_05e6:  ldloc.s 5
-	IL_05e8:  unbox.any [mscorlib]System.Int64
-	IL_05ed:  ldc.i4.0 
-	IL_05ee:  conv.i8 
-	IL_05ef:  bne.un IL_0619
+	    IL_01ad:  ldloc.s 4
+	    IL_01af:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_01b4:  endfinally 
+	  } // end handler 0
+	  IL_01b5:  nop 
+	  IL_01b6:  leave IL_01d7
 
-	IL_05f4:  nop 
-	IL_05f5:  ldarg.0 
-	IL_05f6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_05fb:  ldstr "NA1043"
-	IL_0600:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0605:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_060a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_060f:  ldloc.s 4
-	IL_0611:  ldloc.s 6
-	IL_0613:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0618:  throw 
-	IL_0619:  ldloc.1 
-	IL_061a:  unbox.any [mscorlib]System.Double
-	IL_061f:  ldloc.s 5
-	IL_0621:  unbox.any [mscorlib]System.Int64
-	IL_0626:  conv.r8 
-	IL_0627:  div 
-	IL_0628:  box [mscorlib]System.Double
-	IL_062d:  stloc.1 
-	IL_062e:  nop 
-	IL_062f:  br IL_066c
+	} // end .try 1
+	finally  { // 1
+	  IL_01bb:  nop 
+	  IL_01bc:  ldarg.0 
+	  IL_01bd:  ldc.i4.1 
+	  IL_01be:  stfld bool NAnt.Core.Target::_executed
+	  IL_01c3:  ldarg.0 
+	  IL_01c4:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_01c9:  ldarg.0 
+	  IL_01ca:  ldarg.0 
+	  IL_01cb:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'(class NAnt.Core.Target)
+	  IL_01d0:  callvirt instance void class NAnt.Core.Project::OnTargetFinished(object, class NAnt.Core.BuildEventArgs)
+	  IL_01d5:  nop 
+	  IL_01d6:  endfinally 
+	} // end handler 1
+	IL_01d7:  nop 
+	IL_01d8:  ret 
+    } // end of method Target::Execute
 
-	IL_0634:  nop 
-	IL_0635:  ldarg.0 
-	IL_0636:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_063b:  ldstr "NA1039"
-	IL_0640:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0645:  ldarg.0 
-	IL_0646:  ldloc.1 
-	IL_0647:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_064c:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_0651:  ldarg.0 
-	IL_0652:  ldloc.s 5
-	IL_0654:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0659:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_065e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0663:  ldloc.0 
-	IL_0664:  ldloc.s 6
-	IL_0666:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_066b:  throw 
-	IL_066c:  nop 
-	IL_066d:  nop 
-	IL_066e:  br IL_0aa6
+	.property instance bool Executed ()
+	{
+		.get instance default bool NAnt.Core.Target::get_Executed () 
+	}
+	.property instance string Name ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 6E 61 6D 65 02 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		69 72 65 64 01 54 02 10 45 78 70 61 6E 64 50 72   // ired.T..ExpandPr
+		6F 70 65 72 74 69 65 73 00                      ) // operties.
 
-	IL_0673:  ldarg.0 
-	IL_0674:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0679:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_067e:  ldc.i4.s 0x0f
-	IL_0680:  bne.un IL_0aa0
+		.custom instance void class NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-	IL_0685:  nop 
-	IL_0686:  ldarg.0 
-	IL_0687:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_068c:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_0691:  ldarg.0 
-	IL_0692:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0697:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_069c:  stloc.s 7
-	IL_069e:  ldarg.0 
-	IL_069f:  call instance object class NAnt.Core.ExpressionEvalBase::ParseValue()
-	IL_06a4:  stloc.s 8
-	IL_06a6:  ldarg.0 
-	IL_06a7:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_06ac:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_06b1:  stloc.s 9
-	IL_06b3:  ldarg.0 
-	IL_06b4:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	IL_06b9:  brtrue IL_0a9a
+		.get instance default string NAnt.Core.Target::get_Name () 
+		.set instance default void NAnt.Core.Target::set_Name (string 'value') 
+	}
+	.property instance string IfCondition ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 02 69 66 01 00 54 02 10 45 78 70 61 6E 64   // ...if..T..Expand
+		50 72 6F 70 65 72 74 69 65 73 00                ) // Properties.
 
-	IL_06be:  nop 
-	IL_06bf:  ldloc.1 
-	IL_06c0:  isinst [mscorlib]System.Int32
-	IL_06c5:  brfalse IL_0722
+		.get instance default string NAnt.Core.Target::get_IfCondition () 
+		.set instance default void NAnt.Core.Target::set_IfCondition (string 'value') 
+	}
+	.property instance bool IfDefined ()
+	{
+		.get instance default bool NAnt.Core.Target::get_IfDefined () 
+	}
+	.property instance string UnlessCondition ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 75 6E 6C 65 73 73 01 00 54 02 10 45 78   // ...unless..T..Ex
+		70 61 6E 64 50 72 6F 70 65 72 74 69 65 73 00    ) // pandProperties.
 
-	IL_06ca:  ldloc.s 8
-	IL_06cc:  isinst [mscorlib]System.Int32
-	IL_06d1:  brfalse IL_0722
+		.get instance default string NAnt.Core.Target::get_UnlessCondition () 
+		.set instance default void NAnt.Core.Target::set_UnlessCondition (string 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.get instance default bool NAnt.Core.Target::get_UnlessDefined () 
+	}
+	.property instance string Description ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 64 65 73 63 72 69 70 74 69 6F 6E 00 00 ) // ...description..
 
-	IL_06d6:  nop 
-	IL_06d7:  ldloc.s 8
-	IL_06d9:  unbox.any [mscorlib]System.Int32
-	IL_06de:  brtrue IL_0708
+		.get instance default string NAnt.Core.Target::get_Description () 
+		.set instance default void NAnt.Core.Target::set_Description (string 'value') 
+	}
+	.property instance string DependsListString ()
+	{
+		.custom instance void class NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 64 65 70 65 6E 64 73 00 00 ) // ...depends..
 
-	IL_06e3:  nop 
-	IL_06e4:  ldarg.0 
-	IL_06e5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_06ea:  ldstr "NA1043"
-	IL_06ef:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_06f4:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_06f9:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_06fe:  ldloc.s 7
-	IL_0700:  ldloc.s 9
-	IL_0702:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0707:  throw 
-	IL_0708:  ldloc.1 
-	IL_0709:  unbox.any [mscorlib]System.Int32
-	IL_070e:  ldloc.s 8
-	IL_0710:  unbox.any [mscorlib]System.Int32
-	IL_0715:  rem 
-	IL_0716:  box [mscorlib]System.Int32
-	IL_071b:  stloc.1 
-	IL_071c:  nop 
-	IL_071d:  br IL_0a99
+		.set instance default void NAnt.Core.Target::set_DependsListString (string 'value') 
+	}
+	.property instance class [System]System.Collections.Specialized.StringCollection Dependencies ()
+	{
+		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.Target::get_Dependencies () 
+	}
+  } // end of class NAnt.Core.Target
+}
 
-	IL_0722:  ldloc.1 
-	IL_0723:  isinst [mscorlib]System.Int32
-	IL_0728:  brfalse IL_0788
+.namespace NAnt.Core
+{
+  .class public auto ansi serializable beforefieldinit TargetCollection
+  	extends [mscorlib]System.Collections.ArrayList
+  {
+    .field  private static initonly  class [log4net]log4net.ILog logger
 
-	IL_072d:  ldloc.s 8
-	IL_072f:  isinst [mscorlib]System.Int64
-	IL_0734:  brfalse IL_0788
+    // method line 2193
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2a26c
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0006:  ret 
+    } // end of method TargetCollection::.ctor
 
-	IL_0739:  nop 
-	IL_073a:  ldloc.s 8
-	IL_073c:  unbox.any [mscorlib]System.Int64
-	IL_0741:  ldc.i4.0 
-	IL_0742:  conv.i8 
-	IL_0743:  bne.un IL_076d
+    // method line 2194
+    .method public virtual hidebysig newslot 
+           instance default int32 Add (class NAnt.Core.Target t)  cil managed 
+    {
+        // Method begins at RVA 0x2a274
+	// Code size 121 (0x79)
+	.maxstack 4
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-	IL_0748:  nop 
-	IL_0749:  ldarg.0 
-	IL_074a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_074f:  ldstr "NA1043"
-	IL_0754:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0759:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_075e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0763:  ldloc.s 7
-	IL_0765:  ldloc.s 9
-	IL_0767:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_076c:  throw 
-	IL_076d:  ldloc.1 
-	IL_076e:  unbox.any [mscorlib]System.Int32
-	IL_0773:  conv.i8 
-	IL_0774:  ldloc.s 8
-	IL_0776:  unbox.any [mscorlib]System.Int64
-	IL_077b:  rem 
-	IL_077c:  box [mscorlib]System.Int64
-	IL_0781:  stloc.1 
-	IL_0782:  nop 
-	IL_0783:  br IL_0a99
+	IL_0007:  nop 
+	IL_0008:  ldstr "Null Target!"
+	IL_000d:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldsfld class [log4net]log4net.ILog NAnt.Core.TargetCollection::logger
+	IL_0018:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001d:  ldstr "String_AddingTarget"
+	IL_0022:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0027:  ldarg.1 
+	IL_0028:  callvirt instance string class NAnt.Core.Target::get_Name()
+	IL_002d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0032:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
+	IL_0037:  ldarg.0 
+	IL_0038:  ldarg.1 
+	IL_0039:  callvirt instance string class NAnt.Core.Target::get_Name()
+	IL_003e:  call instance class NAnt.Core.Target class NAnt.Core.TargetCollection::Find(string)
+	IL_0043:  brtrue IL_0056
 
-	IL_0788:  ldloc.1 
-	IL_0789:  isinst [mscorlib]System.Int32
-	IL_078e:  brfalse IL_07f5
+	IL_0048:  nop 
+	IL_0049:  ldarg.0 
+	IL_004a:  ldarg.1 
+	IL_004b:  call instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_0050:  stloc.0 
+	IL_0051:  br IL_0077
 
-	IL_0793:  ldloc.s 8
-	IL_0795:  isinst [mscorlib]System.Double
-	IL_079a:  brfalse IL_07f5
+	IL_0056:  nop 
+	IL_0057:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_005c:  ldstr "NA1073"
+	IL_0061:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0066:  ldarg.1 
+	IL_0067:  callvirt instance string class NAnt.Core.Target::get_Name()
+	IL_006c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0071:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
+	IL_0076:  throw 
+	IL_0077:  ldloc.0 
+	IL_0078:  ret 
+    } // end of method TargetCollection::Add
 
-	IL_079f:  nop 
-	IL_07a0:  ldloc.s 8
-	IL_07a2:  unbox.any [mscorlib]System.Double
-	IL_07a7:  ldc.r8 0.
-	IL_07b0:  bne.un IL_07da
+    // method line 2195
+    .method public hidebysig 
+           instance default class NAnt.Core.Target Find (string targetName)  cil managed 
+    {
+        // Method begins at RVA 0x2a2fc
+	// Code size 97 (0x61)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Target	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.Target	V_2,
+		class [mscorlib]System.IDisposable	V_3)
+	IL_0000:  nop 
+	IL_0001:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0008:  stloc.1 
+	.try { // 0
+	  IL_0009:  br IL_0034
 
-	IL_07b5:  nop 
-	IL_07b6:  ldarg.0 
-	IL_07b7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_07bc:  ldstr "NA1043"
-	IL_07c1:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_07c6:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_07cb:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_07d0:  ldloc.s 7
-	IL_07d2:  ldloc.s 9
-	IL_07d4:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_07d9:  throw 
-	IL_07da:  ldloc.1 
-	IL_07db:  unbox.any [mscorlib]System.Int32
-	IL_07e0:  conv.r8 
-	IL_07e1:  ldloc.s 8
-	IL_07e3:  unbox.any [mscorlib]System.Double
-	IL_07e8:  rem 
-	IL_07e9:  box [mscorlib]System.Double
-	IL_07ee:  stloc.1 
-	IL_07ef:  nop 
-	IL_07f0:  br IL_0a99
+	  IL_000e:  ldloc.1 
+	  IL_000f:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0014:  castclass NAnt.Core.Target
+	  IL_0019:  stloc.0 
+	  IL_001a:  nop 
+	  IL_001b:  ldloc.0 
+	  IL_001c:  callvirt instance string class NAnt.Core.Target::get_Name()
+	  IL_0021:  ldarg.1 
+	  IL_0022:  call bool string::op_Equality(string, string)
+	  IL_0027:  brfalse IL_0033
 
-	IL_07f5:  ldloc.1 
-	IL_07f6:  isinst [mscorlib]System.Int64
-	IL_07fb:  brfalse IL_085a
+	  IL_002c:  ldloc.0 
+	  IL_002d:  stloc.2 
+	  IL_002e:  leave IL_005f
 
-	IL_0800:  ldloc.s 8
-	IL_0802:  isinst [mscorlib]System.Int64
-	IL_0807:  brfalse IL_085a
+	  IL_0033:  nop 
+	  IL_0034:  ldloc.1 
+	  IL_0035:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_003a:  brtrue IL_000e
 
-	IL_080c:  nop 
-	IL_080d:  ldloc.s 8
-	IL_080f:  unbox.any [mscorlib]System.Int64
-	IL_0814:  ldc.i4.0 
-	IL_0815:  conv.i8 
-	IL_0816:  bne.un IL_0840
+	  IL_003f:  leave IL_0058
 
-	IL_081b:  nop 
-	IL_081c:  ldarg.0 
-	IL_081d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0822:  ldstr "NA1043"
-	IL_0827:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_082c:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_0831:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0836:  ldloc.s 7
-	IL_0838:  ldloc.s 9
-	IL_083a:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_083f:  throw 
-	IL_0840:  ldloc.1 
-	IL_0841:  unbox.any [mscorlib]System.Int64
-	IL_0846:  ldloc.s 8
-	IL_0848:  unbox.any [mscorlib]System.Int64
-	IL_084d:  rem 
-	IL_084e:  box [mscorlib]System.Int64
-	IL_0853:  stloc.1 
-	IL_0854:  nop 
-	IL_0855:  br IL_0a99
+	} // end .try 0
+	finally  { // 0
+	  IL_0044:  ldloc.1 
+	  IL_0045:  isinst [mscorlib]System.IDisposable
+	  IL_004a:  dup 
+	  IL_004b:  stloc.3 
+	  IL_004c:  brfalse IL_0057
 
-	IL_085a:  ldloc.1 
-	IL_085b:  isinst [mscorlib]System.Int64
-	IL_0860:  brfalse IL_08be
+	  IL_0051:  ldloc.3 
+	  IL_0052:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0057:  endfinally 
+	} // end handler 0
+	IL_0058:  ldnull 
+	IL_0059:  stloc.2 
+	IL_005a:  br IL_005f
 
-	IL_0865:  ldloc.s 8
-	IL_0867:  isinst [mscorlib]System.Int32
-	IL_086c:  brfalse IL_08be
+	IL_005f:  ldloc.2 
+	IL_0060:  ret 
+    } // end of method TargetCollection::Find
 
-	IL_0871:  nop 
-	IL_0872:  ldloc.s 8
-	IL_0874:  unbox.any [mscorlib]System.Int32
-	IL_0879:  brtrue IL_08a3
+    // method line 2196
+    .method public hidebysig 
+           instance default string ToString (string separator)  cil managed 
+    {
+        // Method begins at RVA 0x2a37c
+	// Code size 73 (0x49)
+	.maxstack 4
+	.locals init (
+		string[]	V_0,
+		int32	V_1,
+		string	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_0007:  newarr [mscorlib]System.String
+	IL_000c:  stloc.0 
+	IL_000d:  ldc.i4.0 
+	IL_000e:  stloc.1 
+	IL_000f:  br IL_002e
 
-	IL_087e:  nop 
-	IL_087f:  ldarg.0 
-	IL_0880:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0885:  ldstr "NA1043"
-	IL_088a:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_088f:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_0894:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0899:  ldloc.s 7
-	IL_089b:  ldloc.s 9
-	IL_089d:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_08a2:  throw 
-	IL_08a3:  ldloc.1 
-	IL_08a4:  unbox.any [mscorlib]System.Int64
-	IL_08a9:  ldloc.s 8
-	IL_08ab:  unbox.any [mscorlib]System.Int32
-	IL_08b0:  conv.i8 
-	IL_08b1:  rem 
-	IL_08b2:  box [mscorlib]System.Int64
-	IL_08b7:  stloc.1 
-	IL_08b8:  nop 
-	IL_08b9:  br IL_0a99
+	IL_0014:  nop 
+	IL_0015:  ldloc.0 
+	IL_0016:  ldloc.1 
+	IL_0017:  ldarg.0 
+	IL_0018:  ldloc.1 
+	IL_0019:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	IL_001e:  castclass NAnt.Core.Target
+	IL_0023:  callvirt instance string class NAnt.Core.Target::get_Name()
+	IL_0028:  stelem.ref 
+	IL_0029:  nop 
+	IL_002a:  ldloc.1 
+	IL_002b:  ldc.i4.1 
+	IL_002c:  add 
+	IL_002d:  stloc.1 
+	IL_002e:  ldloc.1 
+	IL_002f:  ldarg.0 
+	IL_0030:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_0035:  blt IL_0014
 
-	IL_08be:  ldloc.1 
-	IL_08bf:  isinst [mscorlib]System.Int64
-	IL_08c4:  brfalse IL_092b
+	IL_003a:  ldarg.1 
+	IL_003b:  ldloc.0 
+	IL_003c:  call string string::Join(string, string[])
+	IL_0041:  stloc.2 
+	IL_0042:  br IL_0047
 
-	IL_08c9:  ldloc.s 8
-	IL_08cb:  isinst [mscorlib]System.Double
-	IL_08d0:  brfalse IL_092b
+	IL_0047:  ldloc.2 
+	IL_0048:  ret 
+    } // end of method TargetCollection::ToString
 
-	IL_08d5:  nop 
-	IL_08d6:  ldloc.s 8
-	IL_08d8:  unbox.any [mscorlib]System.Double
-	IL_08dd:  ldc.r8 0.
-	IL_08e6:  bne.un IL_0910
+    // method line 2197
+    .method public virtual hidebysig 
+           instance default int32 Add (object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2a3d4
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  isinst NAnt.Core.Target
+	IL_0008:  callvirt instance int32 class NAnt.Core.TargetCollection::Add(class NAnt.Core.Target)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_08eb:  nop 
-	IL_08ec:  ldarg.0 
-	IL_08ed:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_08f2:  ldstr "NA1043"
-	IL_08f7:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_08fc:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_0901:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0906:  ldloc.s 7
-	IL_0908:  ldloc.s 9
-	IL_090a:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_090f:  throw 
-	IL_0910:  ldloc.1 
-	IL_0911:  unbox.any [mscorlib]System.Int64
-	IL_0916:  conv.r8 
-	IL_0917:  ldloc.s 8
-	IL_0919:  unbox.any [mscorlib]System.Double
-	IL_091e:  rem 
-	IL_091f:  box [mscorlib]System.Double
-	IL_0924:  stloc.1 
-	IL_0925:  nop 
-	IL_0926:  br IL_0a99
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method TargetCollection::Add
 
-	IL_092b:  ldloc.1 
-	IL_092c:  isinst [mscorlib]System.Double
-	IL_0931:  brfalse IL_0997
+    // method line 2198
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
+    {
+        // Method begins at RVA 0x2a3f8
+	// Code size 20 (0x14)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr ", "
+	IL_0007:  call instance string class NAnt.Core.TargetCollection::ToString(string)
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0936:  ldloc.s 8
-	IL_0938:  isinst [mscorlib]System.Double
-	IL_093d:  brfalse IL_0997
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method TargetCollection::ToString
 
-	IL_0942:  nop 
-	IL_0943:  ldloc.s 8
-	IL_0945:  unbox.any [mscorlib]System.Double
-	IL_094a:  ldc.r8 0.
-	IL_0953:  bne.un IL_097d
+    // method line 2199
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2a418
+	// Code size 21 (0x15)
+	.maxstack 8
+	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
+	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
+	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.TargetCollection::logger
+	IL_0014:  ret 
+    } // end of method TargetCollection::.cctor
 
-	IL_0958:  nop 
-	IL_0959:  ldarg.0 
-	IL_095a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_095f:  ldstr "NA1043"
-	IL_0964:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0969:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_096e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0973:  ldloc.s 7
-	IL_0975:  ldloc.s 9
-	IL_0977:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_097c:  throw 
-	IL_097d:  ldloc.1 
-	IL_097e:  unbox.any [mscorlib]System.Double
-	IL_0983:  ldloc.s 8
-	IL_0985:  unbox.any [mscorlib]System.Double
-	IL_098a:  rem 
-	IL_098b:  box [mscorlib]System.Double
-	IL_0990:  stloc.1 
-	IL_0991:  nop 
-	IL_0992:  br IL_0a99
+  } // end of class NAnt.Core.TargetCollection
+}
 
-	IL_0997:  ldloc.1 
-	IL_0998:  isinst [mscorlib]System.Double
-	IL_099d:  brfalse IL_09fb
+.namespace NAnt.Core
+{
+  .class public auto ansi sealed serializable beforefieldinit FrameworkInfoDictionary
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IDictionary, [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable, [mscorlib]System.ICloneable  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-	IL_09a2:  ldloc.s 8
-	IL_09a4:  isinst [mscorlib]System.Int32
-	IL_09a9:  brfalse IL_09fb
+    .field  private  class [mscorlib]System.Collections.Hashtable _innerHash
 
-	IL_09ae:  nop 
-	IL_09af:  ldloc.s 8
-	IL_09b1:  unbox.any [mscorlib]System.Int32
-	IL_09b6:  brtrue IL_09e0
+    // method line 2200
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2a42e
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0012:  ret 
+    } // end of method FrameworkInfoDictionary::.ctor
 
-	IL_09bb:  nop 
-	IL_09bc:  ldarg.0 
-	IL_09bd:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_09c2:  ldstr "NA1043"
-	IL_09c7:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_09cc:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_09d1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_09d6:  ldloc.s 7
-	IL_09d8:  ldloc.s 9
-	IL_09da:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_09df:  throw 
-	IL_09e0:  ldloc.1 
-	IL_09e1:  unbox.any [mscorlib]System.Double
-	IL_09e6:  ldloc.s 8
-	IL_09e8:  unbox.any [mscorlib]System.Int32
-	IL_09ed:  conv.r8 
-	IL_09ee:  rem 
-	IL_09ef:  box [mscorlib]System.Double
-	IL_09f4:  stloc.1 
-	IL_09f5:  nop 
-	IL_09f6:  br IL_0a99
+    // method line 2201
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.FrameworkInfoDictionary original)  cil managed 
+    {
+        // Method begins at RVA 0x2a442
+	// Code size 25 (0x19)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.Core.FrameworkInfoDictionary::get_InnerHash()
+	IL_000e:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary)
+	IL_0013:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0018:  ret 
+    } // end of method FrameworkInfoDictionary::.ctor
 
-	IL_09fb:  ldloc.1 
-	IL_09fc:  isinst [mscorlib]System.Double
-	IL_0a01:  brfalse IL_0a61
+    // method line 2202
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary)  cil managed 
+    {
+        // Method begins at RVA 0x2a45c
+	// Code size 20 (0x14)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary)
+	IL_000e:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::.ctor
 
-	IL_0a06:  ldloc.s 8
-	IL_0a08:  isinst [mscorlib]System.Int64
-	IL_0a0d:  brfalse IL_0a61
+    // method line 2203
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (int32 capacity)  cil managed 
+    {
+        // Method begins at RVA 0x2a471
+	// Code size 20 (0x14)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(int32)
+	IL_000e:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::.ctor
 
-	IL_0a12:  nop 
-	IL_0a13:  ldloc.s 8
-	IL_0a15:  unbox.any [mscorlib]System.Int64
-	IL_0a1a:  ldc.i4.0 
-	IL_0a1b:  conv.i8 
-	IL_0a1c:  bne.un IL_0a46
+    // method line 2204
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary, float32 loadFactor)  cil managed 
+    {
+        // Method begins at RVA 0x2a486
+	// Code size 21 (0x15)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.2 
+	IL_000a:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary, float32)
+	IL_000f:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0014:  ret 
+    } // end of method FrameworkInfoDictionary::.ctor
 
-	IL_0a21:  nop 
-	IL_0a22:  ldarg.0 
-	IL_0a23:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0a28:  ldstr "NA1043"
-	IL_0a2d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0a32:  call !!0[] class [mscorlib]System.Array::Empty<object> ()
-	IL_0a37:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0a3c:  ldloc.s 7
-	IL_0a3e:  ldloc.s 9
-	IL_0a40:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0a45:  throw 
-	IL_0a46:  ldloc.1 
-	IL_0a47:  unbox.any [mscorlib]System.Double
-	IL_0a4c:  ldloc.s 8
-	IL_0a4e:  unbox.any [mscorlib]System.Int64
-	IL_0a53:  conv.r8 
-	IL_0a54:  rem 
-	IL_0a55:  box [mscorlib]System.Double
-	IL_0a5a:  stloc.1 
-	IL_0a5b:  nop 
-	IL_0a5c:  br IL_0a99
+    // method line 2205
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
+    {
+        // Method begins at RVA 0x2a49c
+	// Code size 21 (0x15)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.2 
+	IL_000a:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
+	IL_000f:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0014:  ret 
+    } // end of method FrameworkInfoDictionary::.ctor
 
-	IL_0a61:  nop 
-	IL_0a62:  ldarg.0 
-	IL_0a63:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0a68:  ldstr "NA1047"
-	IL_0a6d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0a72:  ldarg.0 
-	IL_0a73:  ldloc.1 
-	IL_0a74:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0a79:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_0a7e:  ldarg.0 
-	IL_0a7f:  ldloc.s 8
-	IL_0a81:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0a86:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_0a8b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0a90:  ldloc.0 
-	IL_0a91:  ldloc.s 9
-	IL_0a93:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0a98:  throw 
-	IL_0a99:  nop 
-	IL_0a9a:  nop 
-	IL_0a9b:  br IL_0aa6
+    // method line 2206
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (int32 capacity, int32 loadFactor)  cil managed 
+    {
+        // Method begins at RVA 0x2a4b2
+	// Code size 22 (0x16)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.2 
+	IL_000a:  conv.r4 
+	IL_000b:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(int32, float32)
+	IL_0010:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0015:  ret 
+    } // end of method FrameworkInfoDictionary::.ctor
 
-	IL_0aa0:  nop 
-	IL_0aa1:  br IL_0aac
+    // method line 2207
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary, class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
+    {
+        // Method begins at RVA 0x2a4c9
+	// Code size 22 (0x16)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.2 
+	IL_000a:  ldarg.3 
+	IL_000b:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary, class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
+	IL_0010:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0015:  ret 
+    } // end of method FrameworkInfoDictionary::.ctor
 
-	IL_0aa6:  nop 
-	IL_0aa7:  br IL_0014
+    // method line 2208
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (int32 capacity, class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
+    {
+        // Method begins at RVA 0x2a4e0
+	// Code size 22 (0x16)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.2 
+	IL_000a:  ldarg.3 
+	IL_000b:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(int32, class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
+	IL_0010:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0015:  ret 
+    } // end of method FrameworkInfoDictionary::.ctor
 
-	IL_0aac:  ldloc.1 
-	IL_0aad:  stloc.s 10
-	IL_0aaf:  br IL_0ab4
+    // method line 2209
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Collections.IDictionary dictionary, float32 loadFactor, class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
+    {
+        // Method begins at RVA 0x2a4f7
+	// Code size 24 (0x18)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.2 
+	IL_000a:  ldarg.3 
+	IL_000b:  ldarg.s 4
+	IL_000d:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(class [mscorlib]System.Collections.IDictionary, float32, class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
+	IL_0012:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0017:  ret 
+    } // end of method FrameworkInfoDictionary::.ctor
 
-	IL_0ab4:  ldloc.s 10
-	IL_0ab6:  ret 
-    } // end of method ExpressionEvalBase::ParseMulDiv
+    // method line 2210
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (int32 capacity, float32 loadFactor, class [mscorlib]System.Collections.IHashCodeProvider codeProvider, class [mscorlib]System.Collections.IComparer comparer)  cil managed 
+    {
+        // Method begins at RVA 0x2a510
+	// Code size 24 (0x18)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.2 
+	IL_000a:  ldarg.3 
+	IL_000b:  ldarg.s 4
+	IL_000d:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'(int32, float32, class [mscorlib]System.Collections.IHashCodeProvider, class [mscorlib]System.Collections.IComparer)
+	IL_0012:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0017:  ret 
+    } // end of method FrameworkInfoDictionary::.ctor
 
-    // method line 2196
-    .method private hidebysig 
-           instance default object ParseConditional ()  cil managed 
+    // method line 2211
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_InnerHash ()  cil managed 
     {
-        // Method begins at RVA 0x28ec4
-	// Code size 437 (0x1b5)
-	.maxstack 6
+        // Method begins at RVA 0x2a52c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_0,
-		object	V_1,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_2,
-		bool	V_3,
-		valuetype NAnt.Core.ExpressionEvalBase/EvalMode	V_4,
-		object	V_5,
-		object	V_6,
-		object	V_7)
+		class [mscorlib]System.Collections.Hashtable	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0007:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0012:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0017:  ldc.i4.s 0x10
-	IL_0019:  beq IL_0036
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_001e:  nop 
-	IL_001f:  ldarg.0 
-	IL_0020:  ldstr "'(' expected."
-	IL_0025:  ldarg.0 
-	IL_0026:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_002b:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_0030:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0035:  throw 
-	IL_0036:  ldarg.0 
-	IL_0037:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_003c:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_0041:  ldarg.0 
-	IL_0042:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0047:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_004c:  stloc.0 
-	IL_004d:  ldarg.0 
-	IL_004e:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
-	IL_0053:  stloc.1 
-	IL_0054:  ldarg.0 
-	IL_0055:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_005a:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_005f:  stloc.2 
-	IL_0060:  ldc.i4.0 
-	IL_0061:  stloc.3 
-	IL_0062:  ldarg.0 
-	IL_0063:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	IL_0068:  brtrue IL_008d
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionary::get_InnerHash
 
-	IL_006d:  nop 
-	IL_006e:  ldarg.0 
-	IL_006f:  ldtoken [mscorlib]System.Boolean
-	IL_0074:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0079:  ldloc.1 
-	IL_007a:  ldstr "the conditional expression"
-	IL_007f:  ldloc.0 
-	IL_0080:  ldloc.2 
-	IL_0081:  call instance object class NAnt.Core.ExpressionEvalBase::SafeConvert(class [mscorlib]System.Type, object, string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0086:  unbox.any [mscorlib]System.Boolean
-	IL_008b:  stloc.3 
-	IL_008c:  nop 
-	IL_008d:  ldarg.0 
-	IL_008e:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0093:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0098:  ldc.i4.s 0x18
-	IL_009a:  beq IL_00b7
+    // method line 2212
+    .method assembly hidebysig specialname 
+           instance default void set_InnerHash (class [mscorlib]System.Collections.Hashtable 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2a547
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0008:  ret 
+    } // end of method FrameworkInfoDictionary::set_InnerHash
 
-	IL_009f:  nop 
-	IL_00a0:  ldarg.0 
-	IL_00a1:  ldstr "',' expected."
-	IL_00a6:  ldarg.0 
-	IL_00a7:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_00ac:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_00b1:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_00b6:  throw 
-	IL_00b7:  ldarg.0 
-	IL_00b8:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_00bd:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_00c2:  ldarg.0 
-	IL_00c3:  ldfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	IL_00c8:  stloc.s 4
-	.try { // 0
-	  IL_00ca:  nop 
-	  IL_00cb:  ldloc.3 
-	  IL_00cc:  brtrue IL_00df
+    // method line 2213
+    .method public hidebysig 
+           instance default class NAnt.Core.FrameworkInfoDictionaryEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x2a554
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.FrameworkInfoDictionaryEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.Core.FrameworkInfoDictionaryEnumerator::'.ctor'(class NAnt.Core.FrameworkInfoDictionary)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_00d1:  nop 
-	  IL_00d2:  ldarg.0 
-	  IL_00d3:  ldc.i4.1 
-	  IL_00d4:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	  IL_00d9:  nop 
-	  IL_00da:  br IL_00e9
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionary::GetEnumerator
 
-	  IL_00df:  nop 
-	  IL_00e0:  ldarg.0 
-	  IL_00e1:  ldloc.s 4
-	  IL_00e3:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	  IL_00e8:  nop 
-	  IL_00e9:  ldarg.0 
-	  IL_00ea:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
-	  IL_00ef:  stloc.s 5
-	  IL_00f1:  ldarg.0 
-	  IL_00f2:  ldloc.s 4
-	  IL_00f4:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	  IL_00f9:  ldarg.0 
-	  IL_00fa:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_00ff:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	  IL_0104:  ldc.i4.s 0x18
-	  IL_0106:  beq IL_0123
+    // method line 2214
+    .method private final virtual hidebysig newslot 
+           instance default class [mscorlib]System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x2a570
+	.override class [mscorlib]System.Collections.IDictionary::GetEnumerator
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.Core.FrameworkInfoDictionaryEnumerator::'.ctor'(class NAnt.Core.FrameworkInfoDictionary)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_010b:  nop 
-	  IL_010c:  ldarg.0 
-	  IL_010d:  ldstr "',' expected."
-	  IL_0112:  ldarg.0 
-	  IL_0113:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_0118:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	  IL_011d:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	  IL_0122:  throw 
-	  IL_0123:  ldarg.0 
-	  IL_0124:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_0129:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	  IL_012e:  ldloc.3 
-	  IL_012f:  brfalse IL_0142
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.GetEnumerator
 
-	  IL_0134:  nop 
-	  IL_0135:  ldarg.0 
-	  IL_0136:  ldc.i4.1 
-	  IL_0137:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	  IL_013c:  nop 
-	  IL_013d:  br IL_014c
+    // method line 2215
+    .method private final virtual hidebysig newslot 
+           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x2a58c
+	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.FrameworkInfoDictionaryEnumerator class NAnt.Core.FrameworkInfoDictionary::GetEnumerator()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_0142:  nop 
-	  IL_0143:  ldarg.0 
-	  IL_0144:  ldloc.s 4
-	  IL_0146:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	  IL_014b:  nop 
-	  IL_014c:  ldarg.0 
-	  IL_014d:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
-	  IL_0152:  stloc.s 6
-	  IL_0154:  ldarg.0 
-	  IL_0155:  ldloc.s 4
-	  IL_0157:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	  IL_015c:  ldarg.0 
-	  IL_015d:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_0162:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	  IL_0167:  ldc.i4.s 0x11
-	  IL_0169:  beq IL_0186
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionary::System.Collections.IEnumerable.GetEnumerator
 
-	  IL_016e:  nop 
-	  IL_016f:  ldarg.0 
-	  IL_0170:  ldstr "')' expected."
-	  IL_0175:  ldarg.0 
-	  IL_0176:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_017b:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	  IL_0180:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	  IL_0185:  throw 
-	  IL_0186:  ldarg.0 
-	  IL_0187:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_018c:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	  IL_0191:  ldloc.3 
-	  IL_0192:  brfalse IL_019e
+    // method line 2216
+    .method public hidebysig 
+           instance default void Remove (string key)  cil managed 
+    {
+        // Method begins at RVA 0x2a5a7
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
+	IL_000d:  ret 
+    } // end of method FrameworkInfoDictionary::Remove
 
-	  IL_0197:  ldloc.s 5
-	  IL_0199:  br IL_01a0
+    // method line 2217
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IDictionary.Remove (object key)  cil managed 
+    {
+        // Method begins at RVA 0x2a5b6
+	.override class [mscorlib]System.Collections.IDictionary::Remove
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass [mscorlib]System.String
+	IL_0008:  call instance void class NAnt.Core.FrameworkInfoDictionary::Remove(string)
+	IL_000d:  ret 
+    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.Remove
 
-	  IL_019e:  ldloc.s 6
-	  IL_01a0:  stloc.s 7
-	  IL_01a2:  leave IL_01b2
+    // method line 2218
+    .method public hidebysig 
+           instance default bool Contains (string key)  cil managed 
+    {
+        // Method begins at RVA 0x2a5c8
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	} // end .try 0
-	finally  { // 0
-	  IL_01a7:  nop 
-	  IL_01a8:  ldarg.0 
-	  IL_01a9:  ldloc.s 4
-	  IL_01ab:  stfld valuetype NAnt.Core.ExpressionEvalBase/EvalMode NAnt.Core.ExpressionEvalBase::_evalMode
-	  IL_01b0:  nop 
-	  IL_01b1:  endfinally 
-	} // end handler 0
-	IL_01b2:  ldloc.s 7
-	IL_01b4:  ret 
-    } // end of method ExpressionEvalBase::ParseConditional
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FrameworkInfoDictionary::Contains
 
-    // method line 2197
-    .method private hidebysig 
-           instance default object ParseValue ()  cil managed 
+    // method line 2219
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IDictionary.Contains (object key)  cil managed 
     {
-        // Method begins at RVA 0x29098
-	// Code size 1978 (0x7ba)
-	.maxstack 8
+        // Method begins at RVA 0x2a5ec
+	.override class [mscorlib]System.Collections.IDictionary::Contains
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		object	V_0,
-		object	V_1,
-		string	V_2,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_3,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_4,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_5,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_6,
-		object	V_7,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_8,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_9,
-		object	V_10,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_11,
-		bool	V_12,
-		object	V_13,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_14,
-		string	V_15,
-		class [mscorlib]System.Collections.ArrayList	V_16,
-		bool	V_17,
-		class [mscorlib]System.Reflection.MethodInfo	V_18,
-		int32	V_19,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_20,
-		object	V_21,
-		valuetype NAnt.Core.ExpressionTokenizer/Position	V_22,
-		class NAnt.Core.Extensibility.FunctionArgument[]	V_23,
-		class NAnt.Core.BuildException	V_24,
-		class [mscorlib]System.Reflection.ParameterInfo[]	V_25,
-		int32	V_26,
-		class NAnt.Core.Extensibility.FunctionArgument	V_27,
-		class [mscorlib]System.Reflection.ParameterInfo	V_28,
-		object	V_29,
-		class [mscorlib]System.Exception	V_30)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0007:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_000c:  ldc.i4.3 
-	IL_000d:  bne.un IL_0031
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass [mscorlib]System.String
+	IL_0008:  call instance bool class NAnt.Core.FrameworkInfoDictionary::Contains(string)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0019:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
-	IL_001e:  stloc.0 
-	IL_001f:  ldarg.0 
-	IL_0020:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0025:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_002a:  ldloc.0 
-	IL_002b:  stloc.1 
-	IL_002c:  br IL_07b8
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.Contains
 
-	IL_0031:  ldarg.0 
-	IL_0032:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0037:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_003c:  ldc.i4.2 
-	IL_003d:  bne.un IL_016a
+    // method line 2220
+    .method public final virtual hidebysig newslot 
+           instance default void Clear ()  cil managed 
+    {
+        // Method begins at RVA 0x2a60d
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Clear()
+	IL_000c:  ret 
+    } // end of method FrameworkInfoDictionary::Clear
 
-	IL_0042:  nop 
-	IL_0043:  ldarg.0 
-	IL_0044:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0049:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
-	IL_004e:  stloc.2 
-	IL_004f:  ldarg.0 
-	IL_0050:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0055:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_005a:  stloc.3 
-	IL_005b:  ldarg.0 
-	IL_005c:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0061:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_0066:  ldloca.s 4
-	IL_0068:  ldarg.0 
-	IL_0069:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_006e:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_0073:  stloc.s 5
-	IL_0075:  ldloca.s 5
-	IL_0077:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
-	IL_007c:  ldc.i4.1 
-	IL_007d:  sub 
-	IL_007e:  call instance void valuetype NAnt.Core.ExpressionTokenizer/Position::'.ctor'(int32)
-	IL_0083:  ldarg.0 
-	IL_0084:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0089:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_008e:  ldc.i4.s 0x19
-	IL_0090:  bne.un IL_0128
+    // method line 2221
+    .method public hidebysig 
+           instance default void Add (string key, class NAnt.Core.FrameworkInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2a61b
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionary::Add
 
-	IL_0095:  nop 
-	IL_0096:  ldloc.2 
-	IL_0097:  ldstr "."
-	IL_009c:  call string string::Concat(string, string)
-	IL_00a1:  stloc.2 
-	IL_00a2:  ldarg.0 
-	IL_00a3:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_00a8:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_00ad:  ldarg.0 
-	IL_00ae:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_00b3:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_00b8:  ldc.i4.2 
-	IL_00b9:  beq IL_00d6
+    // method line 2222
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IDictionary.Add (object key, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2a62b
+	.override class [mscorlib]System.Collections.IDictionary::Add
+	// Code size 20 (0x14)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass [mscorlib]System.String
+	IL_0008:  ldarg.2 
+	IL_0009:  castclass NAnt.Core.FrameworkInfo
+	IL_000e:  call instance void class NAnt.Core.FrameworkInfoDictionary::Add(string, class NAnt.Core.FrameworkInfo)
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.Add
 
-	IL_00be:  nop 
-	IL_00bf:  ldarg.0 
-	IL_00c0:  ldstr "Fractional part expected."
-	IL_00c5:  ldarg.0 
-	IL_00c6:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_00cb:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_00d0:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_00d5:  throw 
-	IL_00d6:  ldloc.2 
-	IL_00d7:  ldarg.0 
-	IL_00d8:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_00dd:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
-	IL_00e2:  call string string::Concat(string, string)
-	IL_00e7:  stloc.2 
-	IL_00e8:  ldarg.0 
-	IL_00e9:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_00ee:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_00f3:  ldarg.0 
-	IL_00f4:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_00f9:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_00fe:  stloc.s 4
-	.try { // 0
-	  IL_0100:  nop 
-	  IL_0101:  ldloc.2 
-	  IL_0102:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0107:  call float64 float64::Parse(string, class [mscorlib]System.IFormatProvider)
-	  IL_010c:  box [mscorlib]System.Double
-	  IL_0111:  stloc.1 
-	  IL_0112:  leave IL_07b8
+    // method line 2223
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsReadOnly ()  cil managed 
+    {
+        // Method begins at RVA 0x2a640
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsReadOnly()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	} // end .try 0
-	catch class [mscorlib]System.OverflowException { // 0
-	  IL_0117:  pop 
-	  IL_0118:  nop 
-	  IL_0119:  ldarg.0 
-	  IL_011a:  ldstr "Value was either too large or too small for type 'double'."
-	  IL_011f:  ldloc.3 
-	  IL_0120:  ldloc.s 4
-	  IL_0122:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	  IL_0127:  throw 
-	} // end handler 0
-	IL_0128:  nop 
-	.try { // 2
-	  IL_0129:  nop 
-	  IL_012a:  ldloc.2 
-	  IL_012b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0130:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
-	  IL_0135:  box [mscorlib]System.Int32
-	  IL_013a:  stloc.1 
-	  IL_013b:  leave IL_07b8
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::get_IsReadOnly
 
-	} // end .try 2
-	catch class [mscorlib]System.OverflowException { // 2
-	  IL_0140:  pop 
-	  IL_0141:  nop 
-	  .try { // 1
-	    IL_0142:  nop 
-	    IL_0143:  ldloc.2 
-	    IL_0144:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0149:  call int64 int64::Parse(string, class [mscorlib]System.IFormatProvider)
-	    IL_014e:  box [mscorlib]System.Int64
-	    IL_0153:  stloc.1 
-	    IL_0154:  leave IL_07b8
+    // method line 2224
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.FrameworkInfo get_Item (string key)  cil managed 
+    {
+        // Method begins at RVA 0x2a660
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.FrameworkInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_000d:  castclass NAnt.Core.FrameworkInfo
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	  } // end .try 1
-	  catch class [mscorlib]System.OverflowException { // 1
-	    IL_0159:  pop 
-	    IL_015a:  nop 
-	    IL_015b:  ldarg.0 
-	    IL_015c:  ldstr "Value was either too large or too small for type 'long'."
-	    IL_0161:  ldloc.3 
-	    IL_0162:  ldloc.s 4
-	    IL_0164:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	    IL_0169:  throw 
-	  } // end handler 1
-	} // end handler 2
-	IL_016a:  ldarg.0 
-	IL_016b:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0170:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0175:  ldc.i4.s 0x0c
-	IL_0177:  bne.un IL_0249
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method FrameworkInfoDictionary::get_Item
 
-	IL_017c:  nop 
-	IL_017d:  ldarg.0 
-	IL_017e:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0183:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_0188:  ldarg.0 
-	IL_0189:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_018e:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_0193:  stloc.s 6
-	IL_0195:  ldarg.0 
-	IL_0196:  call instance object class NAnt.Core.ExpressionEvalBase::ParseValue()
-	IL_019b:  stloc.s 7
-	IL_019d:  ldarg.0 
-	IL_019e:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_01a3:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_01a8:  stloc.s 8
-	IL_01aa:  ldarg.0 
-	IL_01ab:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	IL_01b0:  brtrue IL_0242
+    // method line 2225
+    .method public hidebysig specialname 
+           instance default void set_Item (string key, class NAnt.Core.FrameworkInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2a686
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionary::set_Item
 
-	IL_01b5:  nop 
-	IL_01b6:  ldloc.s 7
-	IL_01b8:  isinst [mscorlib]System.Int32
-	IL_01bd:  brfalse IL_01d6
+    // method line 2226
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionary.get_Item (object key)  cil managed 
+    {
+        // Method begins at RVA 0x2a698
+	.override class [mscorlib]System.Collections.IDictionary::get_Item
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass [mscorlib]System.String
+	IL_0008:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionary::get_Item(string)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_01c2:  nop 
-	IL_01c3:  ldloc.s 7
-	IL_01c5:  unbox.any [mscorlib]System.Int32
-	IL_01ca:  neg 
-	IL_01cb:  box [mscorlib]System.Int32
-	IL_01d0:  stloc.1 
-	IL_01d1:  br IL_07b8
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.get_Item
 
-	IL_01d6:  ldloc.s 7
-	IL_01d8:  isinst [mscorlib]System.Int64
-	IL_01dd:  brfalse IL_01f6
+    // method line 2227
+    .method private final virtual hidebysig newslot specialname 
+           instance default void System.Collections.IDictionary.set_Item (object key, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2a6b9
+	.override class [mscorlib]System.Collections.IDictionary::set_Item
+	// Code size 20 (0x14)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass [mscorlib]System.String
+	IL_0008:  ldarg.2 
+	IL_0009:  castclass NAnt.Core.FrameworkInfo
+	IL_000e:  call instance void class NAnt.Core.FrameworkInfoDictionary::set_Item(string, class NAnt.Core.FrameworkInfo)
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::System.Collections.IDictionary.set_Item
 
-	IL_01e2:  nop 
-	IL_01e3:  ldloc.s 7
-	IL_01e5:  unbox.any [mscorlib]System.Int64
-	IL_01ea:  neg 
-	IL_01eb:  box [mscorlib]System.Int64
-	IL_01f0:  stloc.1 
-	IL_01f1:  br IL_07b8
+    // method line 2228
+    .method public final virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.Collections.ICollection get_Values ()  cil managed 
+    {
+        // Method begins at RVA 0x2a6d0
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.ICollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Values()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_01f6:  ldloc.s 7
-	IL_01f8:  isinst [mscorlib]System.Double
-	IL_01fd:  brfalse IL_0216
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::get_Values
 
-	IL_0202:  nop 
-	IL_0203:  ldloc.s 7
-	IL_0205:  unbox.any [mscorlib]System.Double
-	IL_020a:  neg 
-	IL_020b:  box [mscorlib]System.Double
-	IL_0210:  stloc.1 
-	IL_0211:  br IL_07b8
+    // method line 2229
+    .method public final virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.Collections.ICollection get_Keys ()  cil managed 
+    {
+        // Method begins at RVA 0x2a6f0
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.ICollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0216:  ldarg.0 
-	IL_0217:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_021c:  ldstr "NA1040"
-	IL_0221:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0226:  ldarg.0 
-	IL_0227:  ldloc.s 7
-	IL_0229:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_022e:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	IL_0233:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0238:  ldloc.s 6
-	IL_023a:  ldloc.s 8
-	IL_023c:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0241:  throw 
-	IL_0242:  ldnull 
-	IL_0243:  stloc.1 
-	IL_0244:  br IL_07b8
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::get_Keys
 
-	IL_0249:  ldarg.0 
-	IL_024a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_024f:  ldstr "not"
-	IL_0254:  callvirt instance bool class NAnt.Core.ExpressionTokenizer::IsKeyword(string)
-	IL_0259:  brfalse IL_02d1
+    // method line 2230
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsFixedSize ()  cil managed 
+    {
+        // Method begins at RVA 0x2a710
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsFixedSize()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_025e:  nop 
-	IL_025f:  ldarg.0 
-	IL_0260:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0265:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_026a:  ldarg.0 
-	IL_026b:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0270:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_0275:  stloc.s 9
-	IL_0277:  ldarg.0 
-	IL_0278:  call instance object class NAnt.Core.ExpressionEvalBase::ParseValue()
-	IL_027d:  stloc.s 10
-	IL_027f:  ldarg.0 
-	IL_0280:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0285:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_028a:  stloc.s 11
-	IL_028c:  ldarg.0 
-	IL_028d:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	IL_0292:  brtrue IL_02ca
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::get_IsFixedSize
 
-	IL_0297:  nop 
-	IL_0298:  ldarg.0 
-	IL_0299:  ldtoken [mscorlib]System.Boolean
-	IL_029e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_02a3:  ldloc.s 10
-	IL_02a5:  ldstr "the argument of 'not' operator"
-	IL_02aa:  ldloc.s 9
-	IL_02ac:  ldloc.s 11
-	IL_02ae:  call instance object class NAnt.Core.ExpressionEvalBase::SafeConvert(class [mscorlib]System.Type, object, string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_02b3:  unbox.any [mscorlib]System.Boolean
-	IL_02b8:  stloc.s 12
-	IL_02ba:  ldloc.s 12
-	IL_02bc:  ldc.i4.0 
-	IL_02bd:  ceq 
-	IL_02bf:  box [mscorlib]System.Boolean
-	IL_02c4:  stloc.1 
-	IL_02c5:  br IL_07b8
+    // method line 2231
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.ICollection.CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x2a730
+	.override class [mscorlib]System.Collections.ICollection::CopyTo
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionary::System.Collections.ICollection.CopyTo
 
-	IL_02ca:  ldnull 
-	IL_02cb:  stloc.1 
-	IL_02cc:  br IL_07b8
+    // method line 2232
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsSynchronized ()  cil managed 
+    {
+        // Method begins at RVA 0x2a740
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsSynchronized()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_02d1:  ldarg.0 
-	IL_02d2:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_02d7:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_02dc:  ldc.i4.s 0x10
-	IL_02de:  bne.un IL_0334
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::get_IsSynchronized
 
-	IL_02e3:  nop 
-	IL_02e4:  ldarg.0 
-	IL_02e5:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_02ea:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_02ef:  ldarg.0 
-	IL_02f0:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
-	IL_02f5:  stloc.s 13
-	IL_02f7:  ldarg.0 
-	IL_02f8:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_02fd:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0302:  ldc.i4.s 0x11
-	IL_0304:  beq IL_0321
+    // method line 2233
+    .method public final virtual hidebysig newslot specialname 
+           instance default int32 get_Count ()  cil managed 
+    {
+        // Method begins at RVA 0x2a760
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0309:  nop 
-	IL_030a:  ldarg.0 
-	IL_030b:  ldstr "')' expected."
-	IL_0310:  ldarg.0 
-	IL_0311:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0316:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_031b:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0320:  throw 
-	IL_0321:  ldarg.0 
-	IL_0322:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0327:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_032c:  ldloc.s 13
-	IL_032e:  stloc.1 
-	IL_032f:  br IL_07b8
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::get_Count
 
-	IL_0334:  ldarg.0 
-	IL_0335:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_033a:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_033f:  ldc.i4.4 
-	IL_0340:  bne.un IL_07ac
+    // method line 2234
+    .method public final virtual hidebysig newslot specialname 
+           instance default object get_SyncRoot ()  cil managed 
+    {
+        // Method begins at RVA 0x2a780
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_SyncRoot()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0345:  nop 
-	IL_0346:  ldarg.0 
-	IL_0347:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_034c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_0351:  stloc.s 14
-	IL_0353:  ldarg.0 
-	IL_0354:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0359:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
-	IL_035e:  stloc.s 15
-	IL_0360:  ldloc.s 15
-	IL_0362:  ldstr "if"
-	IL_0367:  call bool string::op_Equality(string, string)
-	IL_036c:  brfalse IL_037e
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionary::get_SyncRoot
 
-	IL_0371:  nop 
-	IL_0372:  ldarg.0 
-	IL_0373:  call instance object class NAnt.Core.ExpressionEvalBase::ParseConditional()
-	IL_0378:  stloc.1 
-	IL_0379:  br IL_07b8
+    // method line 2235
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.FrameworkInfo[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x2a7a0
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionary::CopyTo
 
-	IL_037e:  ldloc.s 15
-	IL_0380:  ldstr "true"
-	IL_0385:  call bool string::op_Equality(string, string)
-	IL_038a:  brfalse IL_03a7
+    // method line 2236
+    .method public hidebysig 
+           instance default class NAnt.Core.FrameworkInfoDictionary Clone ()  cil managed 
+    {
+        // Method begins at RVA 0x2a7b0
+	// Code size 38 (0x26)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.FrameworkInfoDictionary	V_0,
+		class NAnt.Core.FrameworkInfoDictionary	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_000e:  callvirt instance object class [mscorlib]System.Collections.Hashtable::Clone()
+	IL_0013:  castclass [mscorlib]System.Collections.Hashtable
+	IL_0018:  callvirt instance void class NAnt.Core.FrameworkInfoDictionary::set_InnerHash(class [mscorlib]System.Collections.Hashtable)
+	IL_001d:  ldloc.0 
+	IL_001e:  stloc.1 
+	IL_001f:  br IL_0024
 
-	IL_038f:  nop 
-	IL_0390:  ldarg.0 
-	IL_0391:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0396:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_039b:  ldc.i4.1 
-	IL_039c:  box [mscorlib]System.Boolean
-	IL_03a1:  stloc.1 
-	IL_03a2:  br IL_07b8
+	IL_0024:  ldloc.1 
+	IL_0025:  ret 
+    } // end of method FrameworkInfoDictionary::Clone
 
-	IL_03a7:  ldloc.s 15
-	IL_03a9:  ldstr "false"
-	IL_03ae:  call bool string::op_Equality(string, string)
-	IL_03b3:  brfalse IL_03d0
+    // method line 2237
+    .method private final virtual hidebysig newslot 
+           instance default object System.ICloneable.Clone ()  cil managed 
+    {
+        // Method begins at RVA 0x2a7e4
+	.override class [mscorlib]System.ICloneable::Clone
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.FrameworkInfoDictionary::Clone()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_03b8:  nop 
-	IL_03b9:  ldarg.0 
-	IL_03ba:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_03bf:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_03c4:  ldc.i4.0 
-	IL_03c5:  box [mscorlib]System.Boolean
-	IL_03ca:  stloc.1 
-	IL_03cb:  br IL_07b8
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionary::System.ICloneable.Clone
 
-	IL_03d0:  ldarg.0 
-	IL_03d1:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_03d6:  ldc.i4.0 
-	IL_03d7:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_IgnoreWhitespace(bool)
-	IL_03dc:  ldarg.0 
-	IL_03dd:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_03e2:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_03e7:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_03ec:  stloc.s 16
-	IL_03ee:  ldc.i4.0 
-	IL_03ef:  stloc.s 17
-	IL_03f1:  ldarg.0 
-	IL_03f2:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_03f7:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_03fc:  ldc.i4.s 0x1a
-	IL_03fe:  bne.un IL_0470
+    // method line 2238
+    .method public hidebysig 
+           instance default bool ContainsKey (string key)  cil managed 
+    {
+        // Method begins at RVA 0x2a800
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0403:  nop 
-	IL_0404:  ldc.i4.1 
-	IL_0405:  stloc.s 17
-	IL_0407:  ldloc.s 15
-	IL_0409:  ldstr "::"
-	IL_040e:  call string string::Concat(string, string)
-	IL_0413:  stloc.s 15
-	IL_0415:  ldarg.0 
-	IL_0416:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_041b:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_0420:  ldarg.0 
-	IL_0421:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0426:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_042b:  ldc.i4.4 
-	IL_042c:  beq IL_044b
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FrameworkInfoDictionary::ContainsKey
 
-	IL_0431:  nop 
-	IL_0432:  ldarg.0 
-	IL_0433:  ldstr "Function name expected."
-	IL_0438:  ldloc.s 14
-	IL_043a:  ldarg.0 
-	IL_043b:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0440:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_0445:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_044a:  throw 
-	IL_044b:  ldloc.s 15
-	IL_044d:  ldarg.0 
-	IL_044e:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0453:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
-	IL_0458:  call string string::Concat(string, string)
-	IL_045d:  stloc.s 15
-	IL_045f:  ldarg.0 
-	IL_0460:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0465:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_046a:  nop 
-	IL_046b:  br IL_04de
+    // method line 2239
+    .method public hidebysig 
+           instance default bool ContainsValue (class NAnt.Core.FrameworkInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2a824
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsValue(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0470:  nop 
-	IL_0471:  br IL_0497
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FrameworkInfoDictionary::ContainsValue
 
-	IL_0476:  nop 
-	IL_0477:  ldloc.s 15
-	IL_0479:  ldarg.0 
-	IL_047a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_047f:  callvirt instance string class NAnt.Core.ExpressionTokenizer::get_TokenText()
-	IL_0484:  call string string::Concat(string, string)
-	IL_0489:  stloc.s 15
-	IL_048b:  ldarg.0 
-	IL_048c:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0491:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_0496:  nop 
-	IL_0497:  ldarg.0 
-	IL_0498:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_049d:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_04a2:  ldc.i4.s 0x19
-	IL_04a4:  beq IL_0476
+    // method line 2240
+    .method public static hidebysig 
+           default class NAnt.Core.FrameworkInfoDictionary Synchronized (class NAnt.Core.FrameworkInfoDictionary nonSync)  cil managed 
+    {
+        // Method begins at RVA 0x2a848
+	// Code size 33 (0x21)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.FrameworkInfoDictionary	V_0,
+		class NAnt.Core.FrameworkInfoDictionary	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.Core.FrameworkInfoDictionary::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.Core.FrameworkInfoDictionary::get_InnerHash()
+	IL_000e:  call class [mscorlib]System.Collections.Hashtable class [mscorlib]System.Collections.Hashtable::Synchronized(class [mscorlib]System.Collections.Hashtable)
+	IL_0013:  callvirt instance void class NAnt.Core.FrameworkInfoDictionary::set_InnerHash(class [mscorlib]System.Collections.Hashtable)
+	IL_0018:  ldloc.0 
+	IL_0019:  stloc.1 
+	IL_001a:  br IL_001f
 
-	IL_04a9:  ldarg.0 
-	IL_04aa:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_04af:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_04b4:  ldc.i4.s 0x0c
-	IL_04b6:  beq IL_0476
+	IL_001f:  ldloc.1 
+	IL_0020:  ret 
+    } // end of method FrameworkInfoDictionary::Synchronized
 
-	IL_04bb:  ldarg.0 
-	IL_04bc:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_04c1:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_04c6:  ldc.i4.4 
-	IL_04c7:  beq IL_0476
+	.property instance object System.Collections.IDictionary.Item (object)
+	{
+		.get instance default object NAnt.Core.FrameworkInfoDictionary::System.Collections.IDictionary.get_Item (object key) 
+		.set instance default void NAnt.Core.FrameworkInfoDictionary::System.Collections.IDictionary.set_Item (object key, object 'value') 
+	}
+	.property instance class [mscorlib]System.Collections.Hashtable InnerHash ()
+	{
+		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.Core.FrameworkInfoDictionary::get_InnerHash () 
+		.set instance default void NAnt.Core.FrameworkInfoDictionary::set_InnerHash (class [mscorlib]System.Collections.Hashtable 'value') 
+	}
+	.property instance bool IsReadOnly ()
+	{
+		.get instance default bool NAnt.Core.FrameworkInfoDictionary::get_IsReadOnly () 
+	}
+	.property instance class NAnt.Core.FrameworkInfo Item (string)
+	{
+		.get instance default class NAnt.Core.FrameworkInfo NAnt.Core.FrameworkInfoDictionary::get_Item (string key) 
+		.set instance default void NAnt.Core.FrameworkInfoDictionary::set_Item (string key, class NAnt.Core.FrameworkInfo 'value') 
+	}
+	.property instance class [mscorlib]System.Collections.ICollection Values ()
+	{
+		.get instance default class [mscorlib]System.Collections.ICollection NAnt.Core.FrameworkInfoDictionary::get_Values () 
+	}
+	.property instance class [mscorlib]System.Collections.ICollection Keys ()
+	{
+		.get instance default class [mscorlib]System.Collections.ICollection NAnt.Core.FrameworkInfoDictionary::get_Keys () 
+	}
+	.property instance bool IsFixedSize ()
+	{
+		.get instance default bool NAnt.Core.FrameworkInfoDictionary::get_IsFixedSize () 
+	}
+	.property instance bool IsSynchronized ()
+	{
+		.get instance default bool NAnt.Core.FrameworkInfoDictionary::get_IsSynchronized () 
+	}
+	.property instance int32 Count ()
+	{
+		.get instance default int32 NAnt.Core.FrameworkInfoDictionary::get_Count () 
+	}
+	.property instance object SyncRoot ()
+	{
+		.get instance default object NAnt.Core.FrameworkInfoDictionary::get_SyncRoot () 
+	}
+  } // end of class NAnt.Core.FrameworkInfoDictionary
+}
 
-	IL_04cc:  ldarg.0 
-	IL_04cd:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_04d2:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_04d7:  ldc.i4.2 
-	IL_04d8:  beq IL_0476
+.namespace NAnt.Core
+{
+  .class public auto ansi beforefieldinit FrameworkInfoDictionaryEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IDictionaryEnumerator, [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IDictionaryEnumerator _innerEnumerator
 
-	IL_04dd:  nop 
-	IL_04de:  ldarg.0 
-	IL_04df:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_04e4:  ldc.i4.1 
-	IL_04e5:  callvirt instance void class NAnt.Core.ExpressionTokenizer::set_IgnoreWhitespace(bool)
-	IL_04ea:  ldarg.0 
-	IL_04eb:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_04f0:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_04f5:  ldc.i4.s 0x16
-	IL_04f7:  bne.un IL_0509
+    // method line 2241
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.FrameworkInfoDictionary enumerable)  cil managed 
+    {
+        // Method begins at RVA 0x2a875
+	// Code size 25 (0x19)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.Core.FrameworkInfoDictionary::get_InnerHash()
+	IL_000e:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_0013:  stfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0018:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::.ctor
 
-	IL_04fc:  nop 
-	IL_04fd:  ldarg.0 
-	IL_04fe:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0503:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_0508:  nop 
-	IL_0509:  ldnull 
-	IL_050a:  stloc.s 18
-	IL_050c:  ldloc.s 17
-	IL_050e:  brfalse IL_0729
+    // method line 2242
+    .method public hidebysig specialname 
+           instance default string get_Key ()  cil managed 
+    {
+        // Method begins at RVA 0x2a890
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key()
+	IL_000c:  castclass [mscorlib]System.String
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_0513:  nop 
-	IL_0514:  ldarg.0 
-	IL_0515:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_051a:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_051f:  ldc.i4.s 0x10
-	IL_0521:  beq IL_053e
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::get_Key
 
-	IL_0526:  nop 
-	IL_0527:  ldarg.0 
-	IL_0528:  ldstr "'(' expected."
-	IL_052d:  ldarg.0 
-	IL_052e:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0533:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_0538:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_053d:  throw 
-	IL_053e:  ldarg.0 
-	IL_053f:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0544:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_0549:  ldc.i4.0 
-	IL_054a:  stloc.s 19
-	IL_054c:  br IL_05dd
+    // method line 2243
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionaryEnumerator.get_Key ()  cil managed 
+    {
+        // Method begins at RVA 0x2a8b8
+	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Key()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0551:  nop 
-	IL_0552:  ldarg.0 
-	IL_0553:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0558:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_055d:  stloc.s 20
-	IL_055f:  ldarg.0 
-	IL_0560:  call instance object class NAnt.Core.ExpressionEvalBase::ParseExpression()
-	IL_0565:  stloc.s 21
-	IL_0567:  ldarg.0 
-	IL_0568:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_056d:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_0572:  stloc.s 22
-	IL_0574:  ldloc.s 16
-	IL_0576:  ldloc.s 15
-	IL_0578:  ldloc.s 19
-	IL_057a:  ldloc.s 21
-	IL_057c:  ldloc.s 20
-	IL_057e:  ldloc.s 22
-	IL_0580:  newobj instance void class NAnt.Core.Extensibility.FunctionArgument::'.ctor'(string, int32, object, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0585:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_058a:  pop 
-	IL_058b:  ldloc.s 19
-	IL_058d:  ldc.i4.1 
-	IL_058e:  add 
-	IL_058f:  stloc.s 19
-	IL_0591:  ldarg.0 
-	IL_0592:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0597:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_059c:  ldc.i4.s 0x11
-	IL_059e:  bne.un IL_05a8
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Key
 
-	IL_05a3:  br IL_0600
+    // method line 2244
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.FrameworkInfo get_Value ()  cil managed 
+    {
+        // Method begins at RVA 0x2a8d4
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.Core.FrameworkInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value()
+	IL_000c:  castclass NAnt.Core.FrameworkInfo
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_05a8:  ldarg.0 
-	IL_05a9:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_05ae:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_05b3:  ldc.i4.s 0x18
-	IL_05b5:  beq IL_05d1
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::get_Value
 
-	IL_05ba:  ldarg.0 
-	IL_05bb:  ldstr "',' expected."
-	IL_05c0:  ldarg.0 
-	IL_05c1:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_05c6:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_05cb:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_05d0:  throw 
-	IL_05d1:  ldarg.0 
-	IL_05d2:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_05d7:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_05dc:  nop 
-	IL_05dd:  ldarg.0 
-	IL_05de:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_05e3:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_05e8:  ldc.i4.s 0x11
-	IL_05ea:  beq IL_0600
+    // method line 2245
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionaryEnumerator.get_Value ()  cil managed 
+    {
+        // Method begins at RVA 0x2a8fc
+	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Value()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_05ef:  ldarg.0 
-	IL_05f0:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_05f5:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_05fa:  ldc.i4.1 
-	IL_05fb:  bne.un IL_0551
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value
 
-	IL_0600:  ldarg.0 
-	IL_0601:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0606:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_060b:  ldc.i4.s 0x11
-	IL_060d:  beq IL_062a
+    // method line 2246
+    .method public final virtual hidebysig newslot specialname 
+           instance default valuetype [mscorlib]System.Collections.DictionaryEntry get_Entry ()  cil managed 
+    {
+        // Method begins at RVA 0x2a918
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance valuetype [mscorlib]System.Collections.DictionaryEntry class [mscorlib]System.Collections.IDictionaryEnumerator::get_Entry()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0612:  nop 
-	IL_0613:  ldarg.0 
-	IL_0614:  ldstr "')' expected."
-	IL_0619:  ldarg.0 
-	IL_061a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_061f:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_0624:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0629:  throw 
-	IL_062a:  ldarg.0 
-	IL_062b:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0630:  callvirt instance void class NAnt.Core.ExpressionTokenizer::GetNextToken()
-	IL_0635:  ldarg.0 
-	IL_0636:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	IL_063b:  brtrue IL_0728
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::get_Entry
 
-	IL_0640:  nop 
-	IL_0641:  ldloc.s 16
-	IL_0643:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_0648:  newarr NAnt.Core.Extensibility.FunctionArgument
-	IL_064d:  stloc.s 23
-	IL_064f:  ldloc.s 16
-	IL_0651:  ldc.i4.0 
-	IL_0652:  ldloc.s 23
-	IL_0654:  ldc.i4.0 
-	IL_0655:  ldloc.s 16
-	IL_0657:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_065c:  callvirt instance void class [mscorlib]System.Collections.ArrayList::CopyTo(int32, class [mscorlib]System.Array, int32, int32)
-	.try { // 3
-	  IL_0661:  nop 
-	  IL_0662:  ldloc.s 15
-	  IL_0664:  ldloc.s 23
-	  IL_0666:  ldarg.0 
-	  IL_0667:  call instance class NAnt.Core.Project class NAnt.Core.ExpressionEvalBase::get_Project()
-	  IL_066c:  call class [mscorlib]System.Reflection.MethodInfo class NAnt.Core.TypeFactory::LookupFunction(string, class NAnt.Core.Extensibility.FunctionArgument[], class NAnt.Core.Project)
-	  IL_0671:  stloc.s 18
-	  IL_0673:  nop 
-	  IL_0674:  leave IL_0697
+    // method line 2247
+    .method public final virtual hidebysig newslot 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x2a938
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::Reset
 
-	} // end .try 3
-	catch class NAnt.Core.BuildException { // 3
-	  IL_0679:  stloc.s 24
-	  IL_067b:  nop 
-	  IL_067c:  ldarg.0 
-	  IL_067d:  ldloc.s 24
-	  IL_067f:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	  IL_0684:  ldloc.s 14
-	  IL_0686:  ldarg.0 
-	  IL_0687:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_068c:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	  IL_0691:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	  IL_0696:  throw 
-	} // end handler 3
-	IL_0697:  ldloc.s 18
-	IL_0699:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_069e:  stloc.s 25
-	IL_06a0:  ldloc.s 16
-	IL_06a2:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Clear()
-	IL_06a7:  ldc.i4.0 
-	IL_06a8:  stloc.s 26
-	IL_06aa:  br IL_071c
+    // method line 2248
+    .method public final virtual hidebysig newslot 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x2a948
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_06af:  nop 
-	IL_06b0:  ldloc.s 23
-	IL_06b2:  ldloc.s 26
-	IL_06b4:  ldelem.ref 
-	IL_06b5:  stloc.s 27
-	IL_06b7:  ldloc.s 25
-	IL_06b9:  ldloc.s 26
-	IL_06bb:  ldelem.ref 
-	IL_06bc:  stloc.s 28
-	IL_06be:  ldarg.0 
-	IL_06bf:  ldloc.s 28
-	IL_06c1:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	IL_06c6:  ldloc.s 27
-	IL_06c8:  callvirt instance object class NAnt.Core.Extensibility.FunctionArgument::get_Value()
-	IL_06cd:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_06d2:  ldstr "argument {1} ({0}) of {2}()"
-	IL_06d7:  ldloc.s 28
-	IL_06d9:  callvirt instance string class [mscorlib]System.Reflection.ParameterInfo::get_Name()
-	IL_06de:  ldloc.s 27
-	IL_06e0:  callvirt instance int32 class NAnt.Core.Extensibility.FunctionArgument::get_Index()
-	IL_06e5:  box [mscorlib]System.Int32
-	IL_06ea:  ldloc.s 27
-	IL_06ec:  callvirt instance string class NAnt.Core.Extensibility.FunctionArgument::get_Name()
-	IL_06f1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_06f6:  ldloc.s 27
-	IL_06f8:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.Extensibility.FunctionArgument::get_BeforeArgument()
-	IL_06fd:  ldloc.s 27
-	IL_06ff:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.Extensibility.FunctionArgument::get_AfterArgument()
-	IL_0704:  call instance object class NAnt.Core.ExpressionEvalBase::SafeConvert(class [mscorlib]System.Type, object, string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0709:  stloc.s 29
-	IL_070b:  ldloc.s 16
-	IL_070d:  ldloc.s 29
-	IL_070f:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_0714:  pop 
-	IL_0715:  nop 
-	IL_0716:  ldloc.s 26
-	IL_0718:  ldc.i4.1 
-	IL_0719:  add 
-	IL_071a:  stloc.s 26
-	IL_071c:  ldloc.s 26
-	IL_071e:  ldloc.s 23
-	IL_0720:  ldlen 
-	IL_0721:  conv.i4 
-	IL_0722:  blt IL_06af
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::MoveNext
 
-	IL_0727:  nop 
-	IL_0728:  nop 
-	.try { // 4
-	  IL_0729:  nop 
-	  IL_072a:  ldarg.0 
-	  IL_072b:  call instance bool class NAnt.Core.ExpressionEvalBase::SyntaxCheckOnly()
-	  IL_0730:  brtrue IL_0762
+    // method line 2249
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x2a968
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	  IL_0735:  nop 
-	  IL_0736:  ldloc.s 17
-	  IL_0738:  brfalse IL_0753
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::System.Collections.IEnumerator.get_Current
 
-	  IL_073d:  nop 
-	  IL_073e:  ldarg.0 
-	  IL_073f:  ldloc.s 18
-	  IL_0741:  ldloc.s 16
-	  IL_0743:  callvirt instance object[] class [mscorlib]System.Collections.ArrayList::ToArray()
-	  IL_0748:  callvirt instance object class NAnt.Core.ExpressionEvalBase::EvaluateFunction(class [mscorlib]System.Reflection.MethodInfo, object[])
-	  IL_074d:  stloc.1 
-	  IL_074e:  leave IL_07b8
+    // method line 2250
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.FrameworkInfo get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x2a988
+	// Code size 38 (0x26)
+	.maxstack 1
+	.locals init (
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0,
+		class NAnt.Core.FrameworkInfo	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.Core.FrameworkInfoDictionaryEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	IL_0011:  stloc.0 
+	IL_0012:  ldloca.s 0
+	IL_0014:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	IL_0019:  castclass NAnt.Core.FrameworkInfo
+	IL_001e:  stloc.1 
+	IL_001f:  br IL_0024
 
-	  IL_0753:  nop 
-	  IL_0754:  ldarg.0 
-	  IL_0755:  ldloc.s 15
-	  IL_0757:  callvirt instance object class NAnt.Core.ExpressionEvalBase::EvaluateProperty(string)
-	  IL_075c:  stloc.1 
-	  IL_075d:  leave IL_07b8
+	IL_0024:  ldloc.1 
+	IL_0025:  ret 
+    } // end of method FrameworkInfoDictionaryEnumerator::get_Current
 
-	  IL_0762:  nop 
-	  IL_0763:  ldnull 
-	  IL_0764:  stloc.1 
-	  IL_0765:  leave IL_07b8
+	.property instance object System.Collections.IDictionaryEnumerator.Key ()
+	{
+		.get instance default object NAnt.Core.FrameworkInfoDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Key () 
+	}
+	.property instance object System.Collections.IDictionaryEnumerator.Value ()
+	{
+		.get instance default object NAnt.Core.FrameworkInfoDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value () 
+	}
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.Core.FrameworkInfoDictionaryEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance string Key ()
+	{
+		.get instance default string NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Key () 
+	}
+	.property instance class NAnt.Core.FrameworkInfo Value ()
+	{
+		.get instance default class NAnt.Core.FrameworkInfo NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Value () 
+	}
+	.property instance valuetype [mscorlib]System.Collections.DictionaryEntry Entry ()
+	{
+		.get instance default valuetype [mscorlib]System.Collections.DictionaryEntry NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Entry () 
+	}
+	.property instance class NAnt.Core.FrameworkInfo Current ()
+	{
+		.get instance default class NAnt.Core.FrameworkInfo NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Current () 
+	}
+  } // end of class NAnt.Core.FrameworkInfoDictionaryEnumerator
+}
 
-	} // end .try 4
-	catch class [mscorlib]System.Exception { // 4
-	  IL_076a:  stloc.s 30
-	  IL_076c:  nop 
-	  IL_076d:  ldloc.s 17
-	  IL_076f:  brfalse IL_0790
+.namespace NAnt.Core
+{
+  .class public auto ansi sealed serializable beforefieldinit PathScanner
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.ICloneable  {
+    .field  private static initonly  class [log4net]log4net.ILog logger
+    .field  private  class [System]System.Collections.Specialized.StringCollection _unscannedNames
 
-	  IL_0774:  nop 
-	  IL_0775:  ldarg.0 
-	  IL_0776:  ldstr "Function call failed."
-	  IL_077b:  ldloc.s 14
-	  IL_077d:  ldarg.0 
-	  IL_077e:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_0783:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	  IL_0788:  ldloc.s 30
-	  IL_078a:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position, class [mscorlib]System.Exception)
-	  IL_078f:  throw 
-	  IL_0790:  nop 
-	  IL_0791:  ldarg.0 
-	  IL_0792:  ldstr "Property evaluation failed."
-	  IL_0797:  ldloc.s 14
-	  IL_0799:  ldarg.0 
-	  IL_079a:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	  IL_079f:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	  IL_07a4:  ldloc.s 30
-	  IL_07a6:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position, class [mscorlib]System.Exception)
-	  IL_07ab:  throw 
-	} // end handler 4
-	IL_07ac:  ldarg.0 
-	IL_07ad:  callvirt instance object class NAnt.Core.ExpressionEvalBase::UnexpectedToken()
-	IL_07b2:  stloc.1 
-	IL_07b3:  br IL_07b8
+    // method line 2251
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2a9ba
+	// Code size 18 (0x12)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0006:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PathScanner::_unscannedNames
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void object::'.ctor'()
+	IL_0011:  ret 
+    } // end of method PathScanner::.ctor
 
-	IL_07b8:  ldloc.1 
-	IL_07b9:  ret 
-    } // end of method ExpressionEvalBase::ParseValue
+    // method line 2252
+    .method private final virtual hidebysig newslot 
+           instance default object System.ICloneable.Clone ()  cil managed 
+    {
+        // Method begins at RVA 0x2a9d0
+	.override class [mscorlib]System.ICloneable::Clone
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.PathScanner class NAnt.Core.PathScanner::Clone()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 2198
-    .method family hidebysig 
-           instance default class NAnt.Core.ExpressionParseException BuildParseError (string desc, valuetype NAnt.Core.ExpressionTokenizer/Position p0)  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PathScanner::System.ICloneable.Clone
+
+    // method line 2253
+    .method public hidebysig 
+           instance default class NAnt.Core.PathScanner Clone ()  cil managed 
     {
-        // Method begins at RVA 0x298a0
-	// Code size 22 (0x16)
+        // Method begins at RVA 0x2a9ec
+	// Code size 33 (0x21)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.ExpressionParseException	V_0)
+		class NAnt.Core.PathScanner	V_0,
+		class NAnt.Core.PathScanner	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarga.s 2
-	IL_0004:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
-	IL_0009:  newobj instance void class NAnt.Core.ExpressionParseException::'.ctor'(string, int32)
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0014
+	IL_0001:  newobj instance void class NAnt.Core.PathScanner::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PathScanner::_unscannedNames
+	IL_000e:  call class [System]System.Collections.Specialized.StringCollection class NAnt.Core.PathScanner::Clone(class [System]System.Collections.Specialized.StringCollection)
+	IL_0013:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PathScanner::_unscannedNames
+	IL_0018:  ldloc.0 
+	IL_0019:  stloc.1 
+	IL_001a:  br IL_001f
 
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method ExpressionEvalBase::BuildParseError
+	IL_001f:  ldloc.1 
+	IL_0020:  ret 
+    } // end of method PathScanner::Clone
 
-    // method line 2199
-    .method family hidebysig 
-           instance default class NAnt.Core.ExpressionParseException BuildParseError (string desc, valuetype NAnt.Core.ExpressionTokenizer/Position p0, valuetype NAnt.Core.ExpressionTokenizer/Position p1)  cil managed 
+    // method line 2254
+    .method public hidebysig 
+           instance default void Add (string fileName)  cil managed 
     {
-        // Method begins at RVA 0x298c4
-	// Code size 29 (0x1d)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.ExpressionParseException	V_0)
+        // Method begins at RVA 0x2aa19
+	// Code size 15 (0xf)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarga.s 2
-	IL_0004:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
-	IL_0009:  ldarga.s 3
-	IL_000b:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
-	IL_0010:  newobj instance void class NAnt.Core.ExpressionParseException::'.ctor'(string, int32, int32)
-	IL_0015:  stloc.0 
-	IL_0016:  br IL_001b
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PathScanner::_unscannedNames
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_000d:  pop 
+	IL_000e:  ret 
+    } // end of method PathScanner::Add
 
-	IL_001b:  ldloc.0 
-	IL_001c:  ret 
-    } // end of method ExpressionEvalBase::BuildParseError
+    // method line 2255
+    .method public hidebysig 
+           instance default void Clear ()  cil managed 
+    {
+        // Method begins at RVA 0x2aa29
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PathScanner::_unscannedNames
+	IL_0007:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
+	IL_000c:  ret 
+    } // end of method PathScanner::Clear
 
-    // method line 2200
-    .method family hidebysig 
-           instance default class NAnt.Core.ExpressionParseException BuildParseError (string desc, valuetype NAnt.Core.ExpressionTokenizer/Position p0, valuetype NAnt.Core.ExpressionTokenizer/Position p1, class [mscorlib]System.Exception ex)  cil managed 
+    // method line 2256
+    .method public hidebysig 
+           instance default class [System]System.Collections.Specialized.StringCollection Scan ()  cil managed 
     {
-        // Method begins at RVA 0x298f0
-	// Code size 31 (0x1f)
-	.maxstack 4
+        // Method begins at RVA 0x2aa38
+	// Code size 20 (0x14)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.ExpressionParseException	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarga.s 2
-	IL_0004:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
-	IL_0009:  ldarga.s 3
-	IL_000b:  call instance int32 valuetype NAnt.Core.ExpressionTokenizer/Position::get_CharIndex()
-	IL_0010:  ldarg.s 4
-	IL_0012:  newobj instance void class NAnt.Core.ExpressionParseException::'.ctor'(string, int32, int32, class [mscorlib]System.Exception)
-	IL_0017:  stloc.0 
-	IL_0018:  br IL_001d
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "PATH"
+	IL_0007:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.PathScanner::Scan(string)
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_001d:  ldloc.0 
-	IL_001e:  ret 
-    } // end of method ExpressionEvalBase::BuildParseError
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method PathScanner::Scan
 
-    // method line 2201
-    .method family hidebysig 
-           instance default object SafeConvert (class [mscorlib]System.Type returnType, object source, string description, valuetype NAnt.Core.ExpressionTokenizer/Position p0, valuetype NAnt.Core.ExpressionTokenizer/Position p1)  cil managed 
+    // method line 2257
+    .method public hidebysig 
+           instance default class [System]System.Collections.Specialized.StringCollection Scan (string name)  cil managed 
     {
-        // Method begins at RVA 0x2991c
-	// Code size 787 (0x313)
-	.maxstack 7
+        // Method begins at RVA 0x2aa58
+	// Code size 371 (0x173)
+	.maxstack 4
 	.locals init (
-		bool	V_0,
-		object	V_1,
-		string	V_2,
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringCollection	V_2,
 		string[]	V_3,
-		class [mscorlib]System.Text.StringBuilder	V_4,
-		int32	V_5,
+		string	V_4,
+		class [System]System.Collections.Specialized.StringEnumerator	V_5,
 		string	V_6,
-		class [mscorlib]System.Exception	V_7)
+		string	V_7,
+		string	V_8,
+		string[]	V_9,
+		int32	V_10,
+		string	V_11,
+		string[]	V_12,
+		class [mscorlib]System.UnauthorizedAccessException	V_13,
+		class [mscorlib]System.IDisposable	V_14)
 	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldc.i4.0 
-	  IL_0003:  stloc.0 
-	  IL_0004:  ldarg.2 
-	  IL_0005:  brtrue IL_0053
-
-	  IL_000a:  nop 
-	  IL_000b:  ldarg.1 
-	  IL_000c:  ldtoken [mscorlib]System.String
-	  IL_0011:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0016:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_001b:  brfalse IL_002c
-
-	  IL_0020:  nop 
-	  IL_0021:  ldsfld string [mscorlib]System.String::Empty
-	  IL_0026:  stloc.1 
-	  IL_0027:  leave IL_0311
-
-	  IL_002c:  ldarg.0 
-	  IL_002d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0032:  ldstr "NA1045"
-	  IL_0037:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_003c:  ldarg.3 
-	  IL_003d:  ldarg.0 
-	  IL_003e:  ldarg.1 
-	  IL_003f:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	  IL_0044:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0049:  ldarg.s 4
-	  IL_004b:  ldarg.s 5
-	  IL_004d:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	  IL_0052:  throw 
-	  IL_0053:  ldarg.2 
-	  IL_0054:  isinst [mscorlib]System.Boolean
-	  IL_0059:  brfalse IL_008e
-
-	  IL_005e:  nop 
-	  IL_005f:  ldarg.1 
-	  IL_0060:  ldtoken [mscorlib]System.String
-	  IL_0065:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_006a:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_006f:  brfalse IL_008d
-
-	  IL_0074:  ldarg.1 
-	  IL_0075:  ldtoken [mscorlib]System.Boolean
-	  IL_007a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_007f:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_0084:  brfalse IL_008d
-
-	  IL_0089:  nop 
-	  IL_008a:  ldc.i4.1 
-	  IL_008b:  stloc.0 
-	  IL_008c:  nop 
-	  IL_008d:  nop 
-	  IL_008e:  ldarg.1 
-	  IL_008f:  ldtoken [mscorlib]System.Boolean
-	  IL_0094:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0099:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_009e:  brfalse IL_00bf
+	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.1 
+	IL_0008:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
+	IL_000d:  stloc.1 
+	IL_000e:  ldloc.1 
+	IL_000f:  brtrue IL_001c
 
-	  IL_00a3:  nop 
-	  IL_00a4:  ldarg.2 
-	  IL_00a5:  isinst [mscorlib]System.String
-	  IL_00aa:  brtrue IL_00be
+	IL_0014:  nop 
+	IL_0015:  ldloc.0 
+	IL_0016:  stloc.2 
+	IL_0017:  br IL_0171
 
-	  IL_00af:  ldarg.2 
-	  IL_00b0:  isinst [mscorlib]System.Boolean
-	  IL_00b5:  brtrue IL_00be
+	IL_001c:  ldloc.1 
+	IL_001d:  ldsfld char [mscorlib]System.IO.Path::PathSeparator
+	IL_0022:  ldc.i4.0 
+	IL_0023:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	IL_0028:  stloc.3 
+	IL_0029:  nop 
+	IL_002a:  ldarg.0 
+	IL_002b:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.PathScanner::_unscannedNames
+	IL_0030:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0035:  stloc.s 5
+	.try { // 1
+	  IL_0037:  br IL_0142
 
-	  IL_00ba:  nop 
-	  IL_00bb:  ldc.i4.1 
-	  IL_00bc:  stloc.0 
-	  IL_00bd:  nop 
-	  IL_00be:  nop 
-	  IL_00bf:  ldarg.2 
-	  IL_00c0:  isinst [mscorlib]System.DateTime
-	  IL_00c5:  brfalse IL_00fa
+	  IL_003c:  ldloc.s 5
+	  IL_003e:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0043:  stloc.s 4
+	  IL_0045:  nop 
+	  IL_0046:  ldloc.s 4
+	  IL_0048:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	  IL_004d:  brfalse IL_0076
 
-	  IL_00ca:  nop 
-	  IL_00cb:  ldarg.1 
-	  IL_00cc:  ldtoken [mscorlib]System.String
-	  IL_00d1:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_00d6:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_00db:  brfalse IL_00f9
+	  IL_0052:  nop 
+	  IL_0053:  ldloc.s 4
+	  IL_0055:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_005a:  brfalse IL_006f
 
-	  IL_00e0:  ldarg.1 
-	  IL_00e1:  ldtoken [mscorlib]System.DateTime
-	  IL_00e6:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_00eb:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_00f0:  brfalse IL_00f9
+	  IL_005f:  nop 
+	  IL_0060:  ldloc.0 
+	  IL_0061:  ldloc.s 4
+	  IL_0063:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_0068:  pop 
+	  IL_0069:  nop 
+	  IL_006a:  br IL_0075
 
-	  IL_00f5:  nop 
-	  IL_00f6:  ldc.i4.1 
-	  IL_00f7:  stloc.0 
-	  IL_00f8:  nop 
-	  IL_00f9:  nop 
-	  IL_00fa:  ldarg.1 
-	  IL_00fb:  ldtoken [mscorlib]System.DateTime
-	  IL_0100:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0105:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_010a:  brfalse IL_012b
+	  IL_006f:  nop 
+	  IL_0070:  leave IL_0142
 
-	  IL_010f:  nop 
-	  IL_0110:  ldarg.2 
-	  IL_0111:  isinst [mscorlib]System.DateTime
-	  IL_0116:  brtrue IL_012a
+	  IL_0075:  nop 
+	  IL_0076:  ldloc.s 4
+	  IL_0078:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	  IL_007d:  stloc.s 6
+	  IL_007f:  ldloc.s 4
+	  IL_0081:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	  IL_0086:  stloc.s 7
+	  IL_0088:  nop 
+	  IL_0089:  ldloc.3 
+	  IL_008a:  stloc.s 9
+	  IL_008c:  ldc.i4.0 
+	  IL_008d:  stloc.s 10
+	  IL_008f:  br IL_0136
 
-	  IL_011b:  ldarg.2 
-	  IL_011c:  isinst [mscorlib]System.String
-	  IL_0121:  brtrue IL_012a
+	  IL_0094:  ldloc.s 9
+	  IL_0096:  ldloc.s 10
+	  IL_0098:  ldelem.ref 
+	  IL_0099:  stloc.s 8
+	  IL_009b:  nop 
+	  IL_009c:  ldloc.s 8
+	  IL_009e:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_00a3:  brtrue IL_00ae
 
-	  IL_0126:  nop 
-	  IL_0127:  ldc.i4.1 
-	  IL_0128:  stloc.0 
-	  IL_0129:  nop 
-	  IL_012a:  nop 
-	  IL_012b:  ldarg.2 
-	  IL_012c:  isinst [mscorlib]System.TimeSpan
-	  IL_0131:  brfalse IL_014f
+	  IL_00a8:  nop 
+	  IL_00a9:  leave IL_0130
 
-	  IL_0136:  ldarg.1 
-	  IL_0137:  ldtoken [mscorlib]System.TimeSpan
-	  IL_013c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0141:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_0146:  brfalse IL_014f
+	  IL_00ae:  ldloc.s 8
+	  IL_00b0:  stloc.s 11
+	  IL_00b2:  ldloc.s 7
+	  IL_00b4:  call bool string::IsNullOrEmpty(string)
+	  IL_00b9:  brtrue IL_00dd
 
-	  IL_014b:  nop 
-	  IL_014c:  ldc.i4.1 
-	  IL_014d:  stloc.0 
-	  IL_014e:  nop 
-	  IL_014f:  ldarg.1 
-	  IL_0150:  ldtoken [mscorlib]System.TimeSpan
-	  IL_0155:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_015a:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_015f:  brfalse IL_0173
+	  IL_00be:  nop 
+	  IL_00bf:  ldloc.s 8
+	  IL_00c1:  ldloc.s 7
+	  IL_00c3:  call string class NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	  IL_00c8:  stloc.s 11
+	  IL_00ca:  ldloc.s 11
+	  IL_00cc:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_00d1:  brtrue IL_00dc
 
-	  IL_0164:  ldarg.2 
-	  IL_0165:  isinst [mscorlib]System.TimeSpan
-	  IL_016a:  brtrue IL_0173
+	  IL_00d6:  nop 
+	  IL_00d7:  leave IL_0130
 
-	  IL_016f:  nop 
-	  IL_0170:  ldc.i4.1 
-	  IL_0171:  stloc.0 
-	  IL_0172:  nop 
-	  IL_0173:  ldarg.1 
-	  IL_0174:  ldtoken [mscorlib]System.String
-	  IL_0179:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_017e:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_0183:  brfalse IL_01c4
+	  IL_00dc:  nop 
+	  .try { // 0
+	    IL_00dd:  nop 
+	    IL_00de:  ldloc.s 11
+	    IL_00e0:  ldloc.s 6
+	    IL_00e2:  call string[] class [mscorlib]System.IO.Directory::GetFiles(string, string)
+	    IL_00e7:  stloc.s 12
+	    IL_00e9:  ldloc.s 12
+	    IL_00eb:  ldlen 
+	    IL_00ec:  conv.i4 
+	    IL_00ed:  ldc.i4.0 
+	    IL_00ee:  ble IL_0104
 
-	  IL_0188:  nop 
-	  IL_0189:  ldarg.2 
-	  IL_018a:  isinst [mscorlib]System.IO.DirectoryInfo
-	  IL_018f:  brfalse IL_01a6
+	    IL_00f3:  nop 
+	    IL_00f4:  ldloc.0 
+	    IL_00f5:  ldloc.s 12
+	    IL_00f7:  ldc.i4.0 
+	    IL_00f8:  ldelem.ref 
+	    IL_00f9:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_00fe:  pop 
+	    IL_00ff:  leave IL_0141
 
-	  IL_0194:  nop 
-	  IL_0195:  ldarg.2 
-	  IL_0196:  castclass [mscorlib]System.IO.DirectoryInfo
-	  IL_019b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_01a0:  stloc.1 
-	  IL_01a1:  leave IL_0311
+	    IL_0104:  nop 
+	    IL_0105:  leave IL_012f
 
-	  IL_01a6:  ldarg.2 
-	  IL_01a7:  isinst [mscorlib]System.IO.FileInfo
-	  IL_01ac:  brfalse IL_01c3
+	  } // end .try 0
+	  catch class [mscorlib]System.UnauthorizedAccessException { // 0
+	    IL_010a:  stloc.s 13
+	    IL_010c:  nop 
+	    IL_010d:  ldsfld class [log4net]log4net.ILog NAnt.Core.PathScanner::logger
+	    IL_0112:  ldstr "Access to the path \""
+	    IL_0117:  ldloc.s 11
+	    IL_0119:  ldstr "\" is denied."
+	    IL_011e:  call string string::Concat(string, string, string)
+	    IL_0123:  ldloc.s 13
+	    IL_0125:  callvirt instance void class [log4net]log4net.ILog::Warn(object, class [mscorlib]System.Exception)
+	    IL_012a:  leave IL_0130
 
-	  IL_01b1:  nop 
-	  IL_01b2:  ldarg.2 
-	  IL_01b3:  castclass [mscorlib]System.IO.FileInfo
-	  IL_01b8:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_01bd:  stloc.1 
-	  IL_01be:  leave IL_0311
+	  } // end handler 0
+	  IL_012f:  nop 
+	  IL_0130:  ldloc.s 10
+	  IL_0132:  ldc.i4.1 
+	  IL_0133:  add 
+	  IL_0134:  stloc.s 10
+	  IL_0136:  ldloc.s 10
+	  IL_0138:  ldloc.s 9
+	  IL_013a:  ldlen 
+	  IL_013b:  conv.i4 
+	  IL_013c:  blt IL_0094
 
-	  IL_01c3:  nop 
-	  IL_01c4:  ldarg.1 
-	  IL_01c5:  callvirt instance bool class [mscorlib]System.Type::get_IsEnum()
-	  IL_01ca:  brfalse IL_027b
+	  IL_0141:  nop 
+	  IL_0142:  ldloc.s 5
+	  IL_0144:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0149:  brtrue IL_003c
 
-	  IL_01cf:  nop 
-	  IL_01d0:  ldarg.2 
-	  IL_01d1:  isinst [mscorlib]System.String
-	  IL_01d6:  stloc.2 
-	  IL_01d7:  ldloc.2 
-	  IL_01d8:  brfalse IL_026d
+	  IL_014e:  leave IL_016a
 
-	  IL_01dd:  nop 
-	  IL_01de:  ldloc.2 
-	  IL_01df:  ldc.i4.2 
-	  IL_01e0:  newarr [mscorlib]System.Char
-	  IL_01e5:  dup 
-	  IL_01e6:  ldc.i4.0 
-	  IL_01e7:  ldc.i4.s 0x20
-	  IL_01e9:  stelem.i2 
-	  IL_01ea:  dup 
-	  IL_01eb:  ldc.i4.1 
-	  IL_01ec:  ldc.i4.s 0x2c
-	  IL_01ee:  stelem.i2 
-	  IL_01ef:  callvirt instance string[] string::Split(char[])
-	  IL_01f4:  stloc.3 
-	  IL_01f5:  ldloc.2 
-	  IL_01f6:  callvirt instance int32 string::get_Length()
-	  IL_01fb:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(int32)
-	  IL_0200:  stloc.s 4
-	  IL_0202:  ldc.i4.0 
-	  IL_0203:  stloc.s 5
-	  IL_0205:  br IL_024f
+	} // end .try 1
+	finally  { // 1
+	  IL_0153:  ldloc.s 5
+	  IL_0155:  isinst [mscorlib]System.IDisposable
+	  IL_015a:  dup 
+	  IL_015b:  stloc.s 14
+	  IL_015d:  brfalse IL_0169
 
-	  IL_020a:  nop 
-	  IL_020b:  ldloc.3 
-	  IL_020c:  ldloc.s 5
-	  IL_020e:  ldelem.ref 
-	  IL_020f:  callvirt instance string string::Trim()
-	  IL_0214:  stloc.s 6
-	  IL_0216:  ldloc.s 6
-	  IL_0218:  callvirt instance int32 string::get_Length()
-	  IL_021d:  brtrue IL_0227
+	  IL_0162:  ldloc.s 14
+	  IL_0164:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0169:  endfinally 
+	} // end handler 1
+	IL_016a:  ldloc.0 
+	IL_016b:  stloc.2 
+	IL_016c:  br IL_0171
 
-	  IL_0222:  leave IL_0249
+	IL_0171:  ldloc.2 
+	IL_0172:  ret 
+    } // end of method PathScanner::Scan
 
-	  IL_0227:  ldloc.s 4
-	  IL_0229:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	  IL_022e:  ldc.i4.0 
-	  IL_022f:  ble IL_023e
+    // method line 2258
+    .method private static hidebysig 
+           default class [System]System.Collections.Specialized.StringCollection Clone (class [System]System.Collections.Specialized.StringCollection stringCollection)  cil managed 
+    {
+        // Method begins at RVA 0x2ac0c
+	// Code size 43 (0x2b)
+	.maxstack 3
+	.locals init (
+		string[]	V_0,
+		class [System]System.Collections.Specialized.StringCollection	V_1,
+		class [System]System.Collections.Specialized.StringCollection	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0007:  newarr [mscorlib]System.String
+	IL_000c:  stloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::CopyTo(string[], int32)
+	IL_0015:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_001a:  stloc.1 
+	IL_001b:  ldloc.1 
+	IL_001c:  ldloc.0 
+	IL_001d:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::AddRange(string[])
+	IL_0022:  ldloc.1 
+	IL_0023:  stloc.2 
+	IL_0024:  br IL_0029
 
-	  IL_0234:  ldloc.s 4
-	  IL_0236:  ldc.i4.s 0x2c
-	  IL_0238:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	  IL_023d:  pop 
-	  IL_023e:  ldloc.s 4
-	  IL_0240:  ldloc.s 6
-	  IL_0242:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_0247:  pop 
-	  IL_0248:  nop 
-	  IL_0249:  ldloc.s 5
-	  IL_024b:  ldc.i4.1 
-	  IL_024c:  add 
-	  IL_024d:  stloc.s 5
-	  IL_024f:  ldloc.s 5
-	  IL_0251:  ldloc.3 
-	  IL_0252:  ldlen 
-	  IL_0253:  conv.i4 
-	  IL_0254:  blt IL_020a
+	IL_0029:  ldloc.2 
+	IL_002a:  ret 
+    } // end of method PathScanner::Clone
 
-	  IL_0259:  ldarg.1 
-	  IL_025a:  ldloc.s 4
-	  IL_025c:  callvirt instance string object::ToString()
-	  IL_0261:  ldc.i4.1 
-	  IL_0262:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	  IL_0267:  stloc.1 
-	  IL_0268:  leave IL_0311
+    // method line 2259
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2ac43
+	// Code size 21 (0x15)
+	.maxstack 8
+	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
+	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
+	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.PathScanner::logger
+	IL_0014:  ret 
+    } // end of method PathScanner::.cctor
 
-	  IL_026d:  nop 
-	  IL_026e:  ldarg.1 
-	  IL_026f:  ldarg.2 
-	  IL_0270:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, object)
-	  IL_0275:  stloc.1 
-	  IL_0276:  leave IL_0311
+  } // end of class NAnt.Core.PathScanner
+}
 
-	  IL_027b:  ldloc.0 
-	  IL_027c:  brfalse IL_02b0
+.namespace NAnt.Core
+{
+  .class public auto ansi beforefieldinit ElementContainer
+  	extends NAnt.Core.Element
+  {
+    .field  private  class [System]System.Collections.Specialized.StringCollection _subXMLElements
 
-	  IL_0281:  nop 
-	  IL_0282:  ldarg.0 
-	  IL_0283:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0288:  ldstr "Cannot convert {0} to '{1}' (actual type was '{2}')."
-	  IL_028d:  ldarg.3 
-	  IL_028e:  ldarg.0 
-	  IL_028f:  ldarg.1 
-	  IL_0290:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	  IL_0295:  ldarg.0 
-	  IL_0296:  ldarg.2 
-	  IL_0297:  callvirt instance class [mscorlib]System.Type object::GetType()
-	  IL_029c:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	  IL_02a1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_02a6:  ldarg.s 4
-	  IL_02a8:  ldarg.s 5
-	  IL_02aa:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	  IL_02af:  throw 
-	  IL_02b0:  ldarg.1 
-	  IL_02b1:  ldarg.2 
-	  IL_02b2:  callvirt instance class [mscorlib]System.Type object::GetType()
-	  IL_02b7:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	  IL_02bc:  brfalse IL_02c8
+    // method line 2260
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x14b34
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.Core.Element::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ElementContainer::.ctor
 
-	  IL_02c1:  ldarg.2 
-	  IL_02c2:  stloc.1 
-	  IL_02c3:  leave IL_0311
+    // method line 2261
+    .method family virtual hidebysig specialname 
+           instance default bool get_CustomXmlProcessing ()  cil managed 
+    {
+        // Method begins at RVA 0x14b3c
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	  IL_02c8:  ldarg.2 
-	  IL_02c9:  ldarg.1 
-	  IL_02ca:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_02cf:  call object class [mscorlib]System.Convert::ChangeType(object, class [mscorlib]System.Type, class [mscorlib]System.IFormatProvider)
-	  IL_02d4:  stloc.1 
-	  IL_02d5:  leave IL_0311
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ElementContainer::get_CustomXmlProcessing
 
-	} // end .try 0
-	catch class NAnt.Core.ExpressionParseException { // 0
-	  IL_02da:  pop 
-	  IL_02db:  nop 
-	  IL_02dc:  rethrow 
-	} // end handler 0
-	catch class [mscorlib]System.Exception { // 1
-	  IL_02de:  stloc.s 7
-	  IL_02e0:  nop 
-	  IL_02e1:  ldarg.0 
-	  IL_02e2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_02e7:  ldstr "Cannot convert {0} to '{1}' (actual type was '{2}')."
-	  IL_02ec:  ldarg.3 
-	  IL_02ed:  ldarg.0 
-	  IL_02ee:  ldarg.1 
-	  IL_02ef:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	  IL_02f4:  ldarg.0 
-	  IL_02f5:  ldarg.2 
-	  IL_02f6:  callvirt instance class [mscorlib]System.Type object::GetType()
-	  IL_02fb:  call instance string class NAnt.Core.ExpressionEvalBase::GetSimpleTypeName(class [mscorlib]System.Type)
-	  IL_0300:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_0305:  ldarg.s 4
-	  IL_0307:  ldarg.s 5
-	  IL_0309:  ldloc.s 7
-	  IL_030b:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position, valuetype NAnt.Core.ExpressionTokenizer/Position, class [mscorlib]System.Exception)
-	  IL_0310:  throw 
-	} // end handler 1
-	IL_0311:  ldloc.1 
-	IL_0312:  ret 
-    } // end of method ExpressionEvalBase::SafeConvert
+    // method line 2262
+    .method public virtual hidebysig newslot 
+           instance default void Execute ()  cil managed 
+    {
+        // Method begins at RVA 0x14b52
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance void class NAnt.Core.ElementContainer::ExecuteChildTasks()
+	IL_0007:  ret 
+    } // end of method ElementContainer::Execute
 
-    // method line 2202
-    .method family hidebysig 
-           instance default string GetSimpleTypeName (class [mscorlib]System.Type t)  cil managed 
+    // method line 2263
+    .method family virtual hidebysig newslot 
+           instance default void ExecuteChildTasks ()  cil managed 
     {
-        // Method begins at RVA 0x29c70
-	// Code size 247 (0xf7)
-	.maxstack 2
+        // Method begins at RVA 0x14b5c
+	// Code size 400 (0x190)
+	.maxstack 7
 	.locals init (
-		string	V_0)
+		class [System.Xml]System.Xml.XmlNode	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.Task	V_2,
+		class NAnt.Core.DataTypeBase	V_3,
+		class [mscorlib]System.IDisposable	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldtoken [mscorlib]System.Int32
-	IL_0007:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000c:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0011:  brfalse IL_0022
-
-	IL_0016:  nop 
-	IL_0017:  ldstr "int"
-	IL_001c:  stloc.0 
-	IL_001d:  br IL_00f5
+	IL_0001:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::get_XmlNode()
+	IL_0008:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNode::GetEnumerator()
+	IL_000d:  stloc.1 
+	.try { // 0
+	  IL_000e:  br IL_0169
 
-	IL_0022:  ldarg.1 
-	IL_0023:  ldtoken [mscorlib]System.Int64
-	IL_0028:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_002d:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0032:  brfalse IL_0043
+	  IL_0013:  ldloc.1 
+	  IL_0014:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0019:  castclass [System.Xml]System.Xml.XmlNode
+	  IL_001e:  stloc.0 
+	  IL_001f:  nop 
+	  IL_0020:  ldloc.0 
+	  IL_0021:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
+	  IL_0026:  ldc.i4.1 
+	  IL_0027:  bne.un IL_004c
 
-	IL_0037:  nop 
-	IL_0038:  ldstr "long"
-	IL_003d:  stloc.0 
-	IL_003e:  br IL_00f5
+	  IL_002c:  ldloc.0 
+	  IL_002d:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	  IL_0032:  ldarg.0 
+	  IL_0033:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
+	  IL_0038:  ldstr "nant"
+	  IL_003d:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
+	  IL_0042:  callvirt instance bool string::Equals(string)
+	  IL_0047:  brtrue IL_0052
 
-	IL_0043:  ldarg.1 
-	IL_0044:  ldtoken [mscorlib]System.Double
-	IL_0049:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_004e:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0053:  brfalse IL_0064
+	  IL_004c:  nop 
+	  IL_004d:  leave IL_0169
 
-	IL_0058:  nop 
-	IL_0059:  ldstr "double"
-	IL_005e:  stloc.0 
-	IL_005f:  br IL_00f5
+	  IL_0052:  ldarg.0 
+	  IL_0053:  ldloc.0 
+	  IL_0054:  callvirt instance bool class NAnt.Core.ElementContainer::IsPrivateXmlElement(class [System.Xml]System.Xml.XmlNode)
+	  IL_0059:  brfalse IL_0064
 
-	IL_0064:  ldarg.1 
-	IL_0065:  ldtoken [mscorlib]System.String
-	IL_006a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_006f:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0074:  brfalse IL_0085
+	  IL_005e:  nop 
+	  IL_005f:  leave IL_0169
 
-	IL_0079:  nop 
-	IL_007a:  ldstr "string"
-	IL_007f:  stloc.0 
-	IL_0080:  br IL_00f5
+	  IL_0064:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
+	  IL_0069:  ldloc.0 
+	  IL_006a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_006f:  callvirt instance bool class NAnt.Core.TaskBuilderCollection::Contains(string)
+	  IL_0074:  brfalse IL_009d
 
-	IL_0085:  ldarg.1 
-	IL_0086:  ldtoken [mscorlib]System.Boolean
-	IL_008b:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0090:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0095:  brfalse IL_00a6
+	  IL_0079:  nop 
+	  IL_007a:  ldarg.0 
+	  IL_007b:  ldloc.0 
+	  IL_007c:  callvirt instance class NAnt.Core.Task class NAnt.Core.ElementContainer::CreateChildTask(class [System.Xml]System.Xml.XmlNode)
+	  IL_0081:  stloc.2 
+	  IL_0082:  ldloc.2 
+	  IL_0083:  brfalse IL_0097
 
-	IL_009a:  nop 
-	IL_009b:  ldstr "bool"
-	IL_00a0:  stloc.0 
-	IL_00a1:  br IL_00f5
+	  IL_0088:  nop 
+	  IL_0089:  ldloc.2 
+	  IL_008a:  ldarg.0 
+	  IL_008b:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	  IL_0090:  ldloc.2 
+	  IL_0091:  callvirt instance void class NAnt.Core.Task::Execute()
+	  IL_0096:  nop 
+	  IL_0097:  nop 
+	  IL_0098:  br IL_0168
 
-	IL_00a6:  ldarg.1 
-	IL_00a7:  ldtoken [mscorlib]System.DateTime
-	IL_00ac:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_00b1:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_00b6:  brfalse IL_00c7
+	  IL_009d:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
+	  IL_00a2:  ldloc.0 
+	  IL_00a3:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_00a8:  callvirt instance bool class NAnt.Core.DataTypeBaseBuilderCollection::Contains(string)
+	  IL_00ad:  brfalse IL_013b
 
-	IL_00bb:  nop 
-	IL_00bc:  ldstr "datetime"
-	IL_00c1:  stloc.0 
-	IL_00c2:  br IL_00f5
+	  IL_00b2:  nop 
+	  IL_00b3:  ldarg.0 
+	  IL_00b4:  ldloc.0 
+	  IL_00b5:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.ElementContainer::CreateChildDataTypeBase(class [System.Xml]System.Xml.XmlNode)
+	  IL_00ba:  stloc.3 
+	  IL_00bb:  ldarg.0 
+	  IL_00bc:  ldc.i4 1000
+	  IL_00c1:  ldstr "Adding a {0} reference with id '{1}'."
+	  IL_00c6:  ldc.i4.2 
+	  IL_00c7:  newarr [mscorlib]System.Object
+	  IL_00cc:  dup 
+	  IL_00cd:  ldc.i4.0 
+	  IL_00ce:  ldloc.0 
+	  IL_00cf:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_00d4:  stelem.ref 
+	  IL_00d5:  dup 
+	  IL_00d6:  ldc.i4.1 
+	  IL_00d7:  ldloc.3 
+	  IL_00d8:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	  IL_00dd:  stelem.ref 
+	  IL_00de:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_00e3:  ldarg.0 
+	  IL_00e4:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_00e9:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	  IL_00ee:  ldloc.3 
+	  IL_00ef:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	  IL_00f4:  callvirt instance bool class NAnt.Core.DataTypeBaseDictionary::Contains(string)
+	  IL_00f9:  brtrue IL_011c
 
-	IL_00c7:  ldarg.1 
-	IL_00c8:  ldtoken [mscorlib]System.TimeSpan
-	IL_00cd:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_00d2:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_00d7:  brfalse IL_00e8
+	  IL_00fe:  nop 
+	  IL_00ff:  ldarg.0 
+	  IL_0100:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_0105:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	  IL_010a:  ldloc.3 
+	  IL_010b:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	  IL_0110:  ldloc.3 
+	  IL_0111:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::Add(string, class NAnt.Core.DataTypeBase)
+	  IL_0116:  nop 
+	  IL_0117:  br IL_0135
 
-	IL_00dc:  nop 
-	IL_00dd:  ldstr "timespan"
-	IL_00e2:  stloc.0 
-	IL_00e3:  br IL_00f5
+	  IL_011c:  nop 
+	  IL_011d:  ldarg.0 
+	  IL_011e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_0123:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	  IL_0128:  ldloc.3 
+	  IL_0129:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	  IL_012e:  ldloc.3 
+	  IL_012f:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::set_Item(string, class NAnt.Core.DataTypeBase)
+	  IL_0134:  nop 
+	  IL_0135:  nop 
+	  IL_0136:  br IL_0168
 
-	IL_00e8:  nop 
-	IL_00e9:  ldarg.1 
-	IL_00ea:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_00ef:  stloc.0 
-	IL_00f0:  br IL_00f5
+	  IL_013b:  nop 
+	  IL_013c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0141:  ldstr "NA1071"
+	  IL_0146:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_014b:  ldloc.0 
+	  IL_014c:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_0151:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0156:  ldarg.0 
+	  IL_0157:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_015c:  ldloc.0 
+	  IL_015d:  callvirt instance class NAnt.Core.Location class NAnt.Core.Project::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	  IL_0162:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_0167:  throw 
+	  IL_0168:  nop 
+	  IL_0169:  ldloc.1 
+	  IL_016a:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_016f:  brtrue IL_0013
 
-	IL_00f5:  ldloc.0 
-	IL_00f6:  ret 
-    } // end of method ExpressionEvalBase::GetSimpleTypeName
+	  IL_0174:  leave IL_018f
 
-    // method line 2203
-    .method family virtual hidebysig newslot abstract 
-           instance default object EvaluateFunction (class [mscorlib]System.Reflection.MethodInfo 'method', object[] args)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ExpressionEvalBase::EvaluateFunction
+	} // end .try 0
+	finally  { // 0
+	  IL_0179:  ldloc.1 
+	  IL_017a:  isinst [mscorlib]System.IDisposable
+	  IL_017f:  dup 
+	  IL_0180:  stloc.s 4
+	  IL_0182:  brfalse IL_018e
 
-    // method line 2204
-    .method family virtual hidebysig newslot abstract 
-           instance default object EvaluateProperty (string propertyName)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ExpressionEvalBase::EvaluateProperty
+	  IL_0187:  ldloc.s 4
+	  IL_0189:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_018e:  endfinally 
+	} // end handler 0
+	IL_018f:  ret 
+    } // end of method ElementContainer::ExecuteChildTasks
 
-    // method line 2205
+    // method line 2264
     .method family virtual hidebysig newslot 
-           instance default object UnexpectedToken ()  cil managed 
+           instance default class NAnt.Core.Task CreateChildTask (class [System.Xml]System.Xml.XmlNode node)  cil managed 
     {
-        // Method begins at RVA 0x29d73
-	// Code size 50 (0x32)
-	.maxstack 8
+        // Method begins at RVA 0x14d14
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.Task	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0007:  ldstr "Unexpected token '{0}'."
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0012:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/TokenType class NAnt.Core.ExpressionTokenizer::get_CurrentToken()
-	IL_0017:  box NAnt.Core.ExpressionTokenizer/TokenType
-	IL_001c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0021:  ldarg.0 
-	IL_0022:  ldfld class NAnt.Core.ExpressionTokenizer NAnt.Core.ExpressionEvalBase::_tokenizer
-	IL_0027:  callvirt instance valuetype NAnt.Core.ExpressionTokenizer/Position class NAnt.Core.ExpressionTokenizer::get_CurrentPosition()
-	IL_002c:  call instance class NAnt.Core.ExpressionParseException class NAnt.Core.ExpressionEvalBase::BuildParseError(string, valuetype NAnt.Core.ExpressionTokenizer/Position)
-	IL_0031:  throw 
-    } // end of method ExpressionEvalBase::UnexpectedToken
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.Core.Task class NAnt.Core.Project::CreateTask(class [System.Xml]System.Xml.XmlNode)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	.property instance class NAnt.Core.Project Project ()
-	{
-		.get instance default class NAnt.Core.Project NAnt.Core.ExpressionEvalBase::get_Project () 
-	}
-  .class nested private auto ansi sealed EvalMode
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.ExpressionEvalBase/EvalMode Evaluate = int32(0x00000000)
-    .field public static literal  valuetype NAnt.Core.ExpressionEvalBase/EvalMode ParseOnly = int32(0x00000001)
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ElementContainer::CreateChildTask
 
-  } // end of class EvalMode
+    // method line 2265
+    .method family virtual hidebysig newslot 
+           instance default class NAnt.Core.DataTypeBase CreateChildDataTypeBase (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    {
+        // Method begins at RVA 0x14d38
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.DataTypeBase	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.Project::CreateDataTypeBase(class [System.Xml]System.Xml.XmlNode)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-  } // end of class NAnt.Core.ExpressionEvalBase
-}
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ElementContainer::CreateChildDataTypeBase
 
-.namespace NAnt.Core
-{
-  .class public auto ansi sealed Level
-  	extends [mscorlib]System.Enum
-  {
-    .custom instance void class [System]System.ComponentModel.TypeConverterAttribute::'.ctor'(class [mscorlib]System.Type) =  (
-		01 00 18 4E 41 6E 74 2E 43 6F 72 65 2E 4C 65 76   // ...NAnt.Core.Lev
-		65 6C 43 6F 6E 76 65 72 74 65 72 00 00          ) // elConverter..
+    // method line 2266
+    .method family virtual hidebysig newslot 
+           instance default bool IsPrivateXmlElement (class [System.Xml]System.Xml.XmlNode node)  cil managed 
+    {
+        // Method begins at RVA 0x14d5c
+	// Code size 40 (0x28)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.ElementContainer::_subXMLElements
+	IL_0007:  brfalse IL_001f
 
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.Core.Level Debug = int32(0x000003e8)
-    .field public static literal  valuetype NAnt.Core.Level Verbose = int32(0x000007d0)
-    .field public static literal  valuetype NAnt.Core.Level Info = int32(0x00000bb8)
-    .field public static literal  valuetype NAnt.Core.Level Warning = int32(0x00000fa0)
-    .field public static literal  valuetype NAnt.Core.Level Error = int32(0x00001388)
-    .field public static literal  valuetype NAnt.Core.Level None = int32(0x0000270f)
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.ElementContainer::_subXMLElements
+	IL_0012:  ldarg.1 
+	IL_0013:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_0018:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	IL_001d:  br.s IL_0020
 
-  } // end of class NAnt.Core.Level
-}
+	IL_001f:  ldc.i4.0 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
 
-.namespace NAnt.Core
-{
-  .class private auto ansi beforefieldinit LevelConverter
-  	extends [System]System.ComponentModel.EnumConverter
-  {
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method ElementContainer::IsPrivateXmlElement
 
-    // method line 2206
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 2267
+    .method family virtual hidebysig newslot 
+           instance default void AddPrivateXmlElementName (string name)  cil managed 
     {
-        // Method begins at RVA 0x29fd3
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x14d90
+	// Code size 54 (0x36)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldtoken NAnt.Core.Level
-	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000b:  call instance void class [System]System.ComponentModel.EnumConverter::'.ctor'(class [mscorlib]System.Type)
-	IL_0010:  nop 
-	IL_0011:  ret 
-    } // end of method LevelConverter::.ctor
-
-    // method line 2207
-    .method public virtual hidebysig 
-           instance default object ConvertFrom (class [System]System.ComponentModel.ITypeDescriptorContext context, class [mscorlib]System.Globalization.CultureInfo culture, object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x29fe8
-	// Code size 50 (0x32)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		object	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.3 
-	IL_0002:  isinst [mscorlib]System.String
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  brfalse IL_0021
-
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance class [mscorlib]System.Type class [System]System.ComponentModel.EnumConverter::get_EnumType()
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	IL_001b:  stloc.1 
-	IL_001c:  br IL_0030
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.ElementContainer::_subXMLElements
+	IL_0007:  brtrue IL_0017
 
-	IL_0021:  ldarg.0 
-	IL_0022:  ldarg.1 
-	IL_0023:  ldarg.2 
-	IL_0024:  ldarg.3 
-	IL_0025:  call instance object class [System]System.ComponentModel.EnumConverter::ConvertFrom(class [System]System.ComponentModel.ITypeDescriptorContext, class [mscorlib]System.Globalization.CultureInfo, object)
-	IL_002a:  stloc.1 
-	IL_002b:  br IL_0030
+	IL_000c:  ldarg.0 
+	IL_000d:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0012:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.ElementContainer::_subXMLElements
+	IL_0017:  ldarg.0 
+	IL_0018:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.ElementContainer::_subXMLElements
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	IL_0023:  brtrue IL_0035
 
-	IL_0030:  ldloc.1 
-	IL_0031:  ret 
-    } // end of method LevelConverter::ConvertFrom
+	IL_0028:  ldarg.0 
+	IL_0029:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.ElementContainer::_subXMLElements
+	IL_002e:  ldarg.1 
+	IL_002f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0034:  pop 
+	IL_0035:  ret 
+    } // end of method ElementContainer::AddPrivateXmlElementName
 
-  } // end of class NAnt.Core.LevelConverter
+	.property instance bool CustomXmlProcessing ()
+	{
+		.get instance default bool NAnt.Core.ElementContainer::get_CustomXmlProcessing () 
+	}
+  } // end of class NAnt.Core.ElementContainer
 }
 
 .namespace NAnt.Core
 {
-  .class public auto ansi beforefieldinit BuildEventArgs
-  	extends [mscorlib]System.EventArgs
-  {
-    .field  private initonly  class NAnt.Core.Project _project
-    .field  private initonly  class NAnt.Core.Target _target
-    .field  private initonly  class NAnt.Core.Task _task
-    .field  private  string _message
-    .field  private  valuetype NAnt.Core.Level _messageLevel
-    .field  private  class [mscorlib]System.Exception _exception
+  .class public auto ansi serializable beforefieldinit XmlLogger
+  	extends [mscorlib]System.Object
+  	implements NAnt.Core.IBuildLogger, [mscorlib]System.Runtime.Serialization.ISerializable, NAnt.Core.IBuildListener  {
+    .field  private initonly  class NAnt.Core.Util.StopWatchStack _stopWatchStack
+    .field  private  class [mscorlib]System.IO.TextWriter _outputWriter
+    .field  private  class [mscorlib]System.IO.StringWriter _buffer
+    .field  private  valuetype NAnt.Core.Level _threshold
+    .field  private notserialized  class [System.Xml]System.Xml.XmlTextWriter _xmlWriter
+    .field  private  class [mscorlib]System.Collections.Stack _projectStack
 
-    // method line 2208
+    // method line 2268
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2a026
-	// Code size 19 (0x13)
+        // Method begins at RVA 0x2ac59
+	// Code size 18 (0x12)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4 2000
-	IL_0006:  stfld valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class [mscorlib]System.EventArgs::'.ctor'()
-	IL_0011:  nop 
-	IL_0012:  ret 
-    } // end of method BuildEventArgs::.ctor
+	IL_0001:  newobj instance void class NAnt.Core.Util.DateTimeProvider::'.ctor'()
+	IL_0006:  newobj instance void class NAnt.Core.Util.StopWatchStack::'.ctor'(class NAnt.Core.Util.DateTimeProvider)
+	IL_000b:  call instance void class NAnt.Core.XmlLogger::'.ctor'(class NAnt.Core.Util.StopWatchStack)
+	IL_0010:  nop 
+	IL_0011:  ret 
+    } // end of method XmlLogger::.ctor
 
-    // method line 2209
+    // method line 2269
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.Util.StopWatchStack stopWatchStack)  cil managed 
     {
-        // Method begins at RVA 0x2a03a
-	// Code size 26 (0x1a)
-	.maxstack 8
+        // Method begins at RVA 0x2ac6c
+	// Code size 65 (0x41)
+	.maxstack 2
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4 2000
-	IL_0006:  stfld valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
+	IL_0001:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'()
+	IL_0006:  stfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
 	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class [mscorlib]System.EventArgs::'.ctor'()
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldarg.1 
-	IL_0014:  stfld class NAnt.Core.Project NAnt.Core.BuildEventArgs::_project
-	IL_0019:  ret 
-    } // end of method BuildEventArgs::.ctor
+	IL_000c:  ldc.i4 3000
+	IL_0011:  stfld valuetype NAnt.Core.Level NAnt.Core.XmlLogger::_threshold
+	IL_0016:  ldarg.0 
+	IL_0017:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
+	IL_001c:  stfld class [mscorlib]System.Collections.Stack NAnt.Core.XmlLogger::_projectStack
+	IL_0021:  ldarg.0 
+	IL_0022:  call instance void object::'.ctor'()
+	IL_0027:  nop 
+	IL_0028:  ldarg.0 
+	IL_0029:  ldarg.0 
+	IL_002a:  ldfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
+	IL_002f:  newobj instance void class [System.Xml]System.Xml.XmlTextWriter::'.ctor'(class [mscorlib]System.IO.TextWriter)
+	IL_0034:  stfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0039:  ldarg.0 
+	IL_003a:  ldarg.1 
+	IL_003b:  stfld class NAnt.Core.Util.StopWatchStack NAnt.Core.XmlLogger::_stopWatchStack
+	IL_0040:  ret 
+    } // end of method XmlLogger::.ctor
 
-    // method line 2210
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Target target)  cil managed 
+    // method line 2270
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
     {
-        // Method begins at RVA 0x2a055
-	// Code size 38 (0x26)
-	.maxstack 8
+        // Method begins at RVA 0x2acbc
+	// Code size 186 (0xba)
+	.maxstack 4
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4 2000
-	IL_0006:  stfld valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
+	IL_0001:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'()
+	IL_0006:  stfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
 	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class [mscorlib]System.EventArgs::'.ctor'()
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldarg.1 
-	IL_0014:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0019:  stfld class NAnt.Core.Project NAnt.Core.BuildEventArgs::_project
-	IL_001e:  ldarg.0 
-	IL_001f:  ldarg.1 
-	IL_0020:  stfld class NAnt.Core.Target NAnt.Core.BuildEventArgs::_target
-	IL_0025:  ret 
-    } // end of method BuildEventArgs::.ctor
+	IL_000c:  ldc.i4 3000
+	IL_0011:  stfld valuetype NAnt.Core.Level NAnt.Core.XmlLogger::_threshold
+	IL_0016:  ldarg.0 
+	IL_0017:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
+	IL_001c:  stfld class [mscorlib]System.Collections.Stack NAnt.Core.XmlLogger::_projectStack
+	IL_0021:  ldarg.0 
+	IL_0022:  call instance void object::'.ctor'()
+	IL_0027:  nop 
+	IL_0028:  ldarg.0 
+	IL_0029:  ldarg.1 
+	IL_002a:  ldstr "OutputWriter"
+	IL_002f:  ldtoken [mscorlib]System.IO.TextWriter
+	IL_0034:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0039:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_003e:  isinst [mscorlib]System.IO.TextWriter
+	IL_0043:  stfld class [mscorlib]System.IO.TextWriter NAnt.Core.XmlLogger::_outputWriter
+	IL_0048:  ldarg.0 
+	IL_0049:  ldarg.1 
+	IL_004a:  ldstr "Buffer"
+	IL_004f:  ldtoken [mscorlib]System.IO.StringWriter
+	IL_0054:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0059:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_005e:  isinst [mscorlib]System.IO.StringWriter
+	IL_0063:  stfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
+	IL_0068:  ldarg.0 
+	IL_0069:  ldarg.1 
+	IL_006a:  ldstr "Threshold"
+	IL_006f:  ldtoken NAnt.Core.Level
+	IL_0074:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0079:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_007e:  unbox.any NAnt.Core.Level
+	IL_0083:  stfld valuetype NAnt.Core.Level NAnt.Core.XmlLogger::_threshold
+	IL_0088:  ldarg.0 
+	IL_0089:  ldarg.0 
+	IL_008a:  ldfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
+	IL_008f:  newobj instance void class [System.Xml]System.Xml.XmlTextWriter::'.ctor'(class [mscorlib]System.IO.TextWriter)
+	IL_0094:  stfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0099:  ldarg.0 
+	IL_009a:  ldarg.1 
+	IL_009b:  ldstr "ProjectStack"
+	IL_00a0:  ldtoken [mscorlib]System.Collections.Stack
+	IL_00a5:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_00aa:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_00af:  castclass [mscorlib]System.Collections.Stack
+	IL_00b4:  stfld class [mscorlib]System.Collections.Stack NAnt.Core.XmlLogger::_projectStack
+	IL_00b9:  ret 
+    } // end of method XmlLogger::.ctor
 
-    // method line 2211
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Task task)  cil managed 
+    // method line 2271
+    .method public final virtual hidebysig newslot 
+           instance default void GetObjectData (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
     {
-        // Method begins at RVA 0x2a07c
-	// Code size 55 (0x37)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4 2000
-	IL_0006:  stfld valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class [mscorlib]System.EventArgs::'.ctor'()
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldarg.1 
-	IL_0014:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0019:  stfld class NAnt.Core.Project NAnt.Core.BuildEventArgs::_project
-	IL_001e:  ldarg.0 
-	IL_001f:  ldarg.1 
-	IL_0020:  callvirt instance object class NAnt.Core.Element::get_Parent()
-	IL_0025:  isinst NAnt.Core.Target
-	IL_002a:  stfld class NAnt.Core.Target NAnt.Core.BuildEventArgs::_target
-	IL_002f:  ldarg.0 
-	IL_0030:  ldarg.1 
-	IL_0031:  stfld class NAnt.Core.Task NAnt.Core.BuildEventArgs::_task
-	IL_0036:  ret 
-    } // end of method BuildEventArgs::.ctor
+        // Method begins at RVA 0x2ad84
+	// Code size 75 (0x4b)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr "OutputWriter"
+	IL_0007:  ldarg.0 
+	IL_0008:  ldfld class [mscorlib]System.IO.TextWriter NAnt.Core.XmlLogger::_outputWriter
+	IL_000d:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_0012:  ldarg.1 
+	IL_0013:  ldstr "Buffer"
+	IL_0018:  ldarg.0 
+	IL_0019:  ldfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
+	IL_001e:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_0023:  ldarg.1 
+	IL_0024:  ldstr "Threshold"
+	IL_0029:  ldarg.0 
+	IL_002a:  ldfld valuetype NAnt.Core.Level NAnt.Core.XmlLogger::_threshold
+	IL_002f:  box NAnt.Core.Level
+	IL_0034:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_0039:  ldarg.1 
+	IL_003a:  ldstr "ProjectStack"
+	IL_003f:  ldarg.0 
+	IL_0040:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.XmlLogger::_projectStack
+	IL_0045:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_004a:  ret 
+    } // end of method XmlLogger::GetObjectData
 
-    // method line 2212
-    .method public hidebysig specialname 
-           instance default string get_Message ()  cil managed 
+    // method line 2272
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0x2a0b4
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2addc
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.BuildEventArgs::_message
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildEventArgs::get_Message
+	IL_0002:  ldfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
+	IL_0007:  callvirt instance string object::ToString()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-    // method line 2213
-    .method public hidebysig specialname 
-           instance default void set_Message (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2a0cf
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.BuildEventArgs::_message
-	IL_0008:  ret 
-    } // end of method BuildEventArgs::set_Message
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method XmlLogger::ToString
 
-    // method line 2214
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.Core.Level get_MessageLevel ()  cil managed 
+    // method line 2273
+    .method public final virtual hidebysig newslot 
+           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2a0dc
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2adfc
+	// Code size 102 (0x66)
+	.maxstack 3
 	.locals init (
-		valuetype NAnt.Core.Level	V_0)
+		object	V_0,
+		bool	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
 	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stloc.1 
+	.try { // 0
+	  IL_000a:  ldloc.0 
+	  IL_000b:  ldloca.s 1
+	  IL_000d:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
+	  IL_0012:  nop 
+	  IL_0013:  ldarg.0 
+	  IL_0014:  ldfld class NAnt.Core.Util.StopWatchStack NAnt.Core.XmlLogger::_stopWatchStack
+	  IL_0019:  callvirt instance void class NAnt.Core.Util.StopWatchStack::PushStart()
+	  IL_001e:  ldarg.0 
+	  IL_001f:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_0024:  ldstr "buildresults"
+	  IL_0029:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
+	  IL_002e:  ldarg.0 
+	  IL_002f:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_0034:  ldstr "project"
+	  IL_0039:  ldarg.2 
+	  IL_003a:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
+	  IL_003f:  callvirt instance string class NAnt.Core.Project::get_ProjectName()
+	  IL_0044:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteAttributeString(string, string)
+	  IL_0049:  nop 
+	  IL_004a:  leave IL_0059
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildEventArgs::get_MessageLevel
+	} // end .try 0
+	finally  { // 0
+	  IL_004f:  ldloc.1 
+	  IL_0050:  brfalse.s IL_0058
 
-    // method line 2215
-    .method public hidebysig specialname 
-           instance default void set_MessageLevel (valuetype NAnt.Core.Level 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2a0f7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::_messageLevel
-	IL_0008:  ret 
-    } // end of method BuildEventArgs::set_MessageLevel
+	  IL_0052:  ldloc.0 
+	  IL_0053:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
+	  IL_0058:  endfinally 
+	} // end handler 0
+	IL_0059:  ldarg.0 
+	IL_005a:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.XmlLogger::_projectStack
+	IL_005f:  ldnull 
+	IL_0060:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
+	IL_0065:  ret 
+    } // end of method XmlLogger::BuildStarted
 
-    // method line 2216
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Exception get_Exception ()  cil managed 
+    // method line 2274
+    .method public final virtual hidebysig newslot 
+           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2a104
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2ae80
+	// Code size 332 (0x14c)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Exception	V_0)
+		object	V_0,
+		bool	V_1,
+		string	V_2,
+		class [mscorlib]System.IO.StreamWriter	V_3,
+		class [mscorlib]System.Exception	V_4)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Exception NAnt.Core.BuildEventArgs::_exception
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
 	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stloc.1 
+	.try { // 0
+	  IL_000a:  ldloc.0 
+	  IL_000b:  ldloca.s 1
+	  IL_000d:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
+	  IL_0012:  nop 
+	  IL_0013:  ldarg.2 
+	  IL_0014:  callvirt instance class [mscorlib]System.Exception class NAnt.Core.BuildEventArgs::get_Exception()
+	  IL_0019:  brfalse IL_0047
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildEventArgs::get_Exception
+	  IL_001e:  nop 
+	  IL_001f:  ldarg.0 
+	  IL_0020:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_0025:  ldstr "failure"
+	  IL_002a:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
+	  IL_002f:  ldarg.0 
+	  IL_0030:  ldarg.2 
+	  IL_0031:  callvirt instance class [mscorlib]System.Exception class NAnt.Core.BuildEventArgs::get_Exception()
+	  IL_0036:  call instance void class NAnt.Core.XmlLogger::WriteErrorNode(class [mscorlib]System.Exception)
+	  IL_003b:  ldarg.0 
+	  IL_003c:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_0041:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
+	  IL_0046:  nop 
+	  IL_0047:  ldarg.0 
+	  IL_0048:  call instance void class NAnt.Core.XmlLogger::WriteDuration()
+	  IL_004d:  ldarg.0 
+	  IL_004e:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_0053:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
+	  IL_0058:  ldarg.0 
+	  IL_0059:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_005e:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::Flush()
+	  IL_0063:  nop 
+	  IL_0064:  leave IL_0073
 
-    // method line 2217
-    .method public hidebysig specialname 
-           instance default void set_Exception (class [mscorlib]System.Exception 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2a11f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.Exception NAnt.Core.BuildEventArgs::_exception
-	IL_0008:  ret 
-    } // end of method BuildEventArgs::set_Exception
+	} // end .try 0
+	finally  { // 0
+	  IL_0069:  ldloc.1 
+	  IL_006a:  brfalse.s IL_0072
 
-    // method line 2218
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
+	  IL_006c:  ldloc.0 
+	  IL_006d:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
+	  IL_0072:  endfinally 
+	} // end handler 0
+	IL_0073:  ldarg.0 
+	IL_0074:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.XmlLogger::_projectStack
+	IL_0079:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
+	IL_007e:  pop 
+	IL_007f:  ldarg.0 
+	IL_0080:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.XmlLogger::_projectStack
+	IL_0085:  callvirt instance int32 class [mscorlib]System.Collections.Stack::get_Count()
+	IL_008a:  brfalse IL_0095
+
+	IL_008f:  nop 
+	IL_0090:  br IL_014b
+
+	.try { // 2
+	  IL_0095:  nop 
+	  IL_0096:  ldarg.0 
+	  IL_0097:  call instance class [mscorlib]System.IO.TextWriter class NAnt.Core.XmlLogger::get_OutputWriter()
+	  IL_009c:  brfalse IL_00c9
+
+	  IL_00a1:  nop 
+	  IL_00a2:  ldarg.0 
+	  IL_00a3:  call instance class [mscorlib]System.IO.TextWriter class NAnt.Core.XmlLogger::get_OutputWriter()
+	  IL_00a8:  ldarg.0 
+	  IL_00a9:  ldfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
+	  IL_00ae:  callvirt instance string object::ToString()
+	  IL_00b3:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string)
+	  IL_00b8:  ldarg.0 
+	  IL_00b9:  call instance class [mscorlib]System.IO.TextWriter class NAnt.Core.XmlLogger::get_OutputWriter()
+	  IL_00be:  callvirt instance void class [mscorlib]System.IO.TextWriter::Flush()
+	  IL_00c3:  nop 
+	  IL_00c4:  br IL_0135
+
+	  IL_00c9:  nop 
+	  IL_00ca:  ldarg.2 
+	  IL_00cb:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
+	  IL_00d0:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	  IL_00d5:  ldstr "XmlLogger.file"
+	  IL_00da:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
+	  IL_00df:  stloc.2 
+	  IL_00e0:  ldloc.2 
+	  IL_00e1:  brtrue IL_00ee
+
+	  IL_00e6:  nop 
+	  IL_00e7:  ldstr "log.xml"
+	  IL_00ec:  stloc.2 
+	  IL_00ed:  nop 
+	  IL_00ee:  ldarg.2 
+	  IL_00ef:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
+	  IL_00f4:  ldloc.2 
+	  IL_00f5:  callvirt instance string class NAnt.Core.Project::GetFullPath(string)
+	  IL_00fa:  stloc.2 
+	  IL_00fb:  ldloc.2 
+	  IL_00fc:  ldc.i4.2 
+	  IL_00fd:  ldc.i4.2 
+	  IL_00fe:  ldc.i4.1 
+	  IL_00ff:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode, valuetype [mscorlib]System.IO.FileAccess, valuetype [mscorlib]System.IO.FileShare)
+	  IL_0104:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_UTF8()
+	  IL_0109:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(class [mscorlib]System.IO.Stream, class [mscorlib]System.Text.Encoding)
+	  IL_010e:  stloc.3 
+	  .try { // 1
+	    IL_010f:  nop 
+	    IL_0110:  ldloc.3 
+	    IL_0111:  ldarg.0 
+	    IL_0112:  ldfld class [mscorlib]System.IO.StringWriter NAnt.Core.XmlLogger::_buffer
+	    IL_0117:  callvirt instance string object::ToString()
+	    IL_011c:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string)
+	    IL_0121:  nop 
+	    IL_0122:  leave IL_0134
+
+	  } // end .try 1
+	  finally  { // 1
+	    IL_0127:  ldloc.3 
+	    IL_0128:  brfalse IL_0133
+
+	    IL_012d:  ldloc.3 
+	    IL_012e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0133:  endfinally 
+	  } // end handler 1
+	  IL_0134:  nop 
+	  IL_0135:  nop 
+	  IL_0136:  leave IL_014b
+
+	} // end .try 2
+	catch class [mscorlib]System.Exception { // 2
+	  IL_013b:  stloc.s 4
+	  IL_013d:  nop 
+	  IL_013e:  ldstr "Unable to write to log file."
+	  IL_0143:  ldloc.s 4
+	  IL_0145:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class [mscorlib]System.Exception)
+	  IL_014a:  throw 
+	} // end handler 2
+	IL_014b:  ret 
+    } // end of method XmlLogger::BuildFinished
+
+    // method line 2275
+    .method public final virtual hidebysig newslot 
+           instance default void TargetStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2a12c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2b000
+	// Code size 91 (0x5b)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Project	V_0)
+		object	V_0,
+		bool	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.BuildEventArgs::_project
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
 	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stloc.1 
+	.try { // 0
+	  IL_000a:  ldloc.0 
+	  IL_000b:  ldloca.s 1
+	  IL_000d:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
+	  IL_0012:  nop 
+	  IL_0013:  ldarg.0 
+	  IL_0014:  ldfld class NAnt.Core.Util.StopWatchStack NAnt.Core.XmlLogger::_stopWatchStack
+	  IL_0019:  callvirt instance void class NAnt.Core.Util.StopWatchStack::PushStart()
+	  IL_001e:  ldarg.0 
+	  IL_001f:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_0024:  ldstr "target"
+	  IL_0029:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
+	  IL_002e:  ldarg.0 
+	  IL_002f:  ldarg.2 
+	  IL_0030:  callvirt instance class NAnt.Core.Target class NAnt.Core.BuildEventArgs::get_Target()
+	  IL_0035:  callvirt instance string class NAnt.Core.Target::get_Name()
+	  IL_003a:  call instance void class NAnt.Core.XmlLogger::WriteNameAttribute(string)
+	  IL_003f:  ldarg.0 
+	  IL_0040:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_0045:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::Flush()
+	  IL_004a:  nop 
+	  IL_004b:  leave IL_005a
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildEventArgs::get_Project
+	} // end .try 0
+	finally  { // 0
+	  IL_0050:  ldloc.1 
+	  IL_0051:  brfalse.s IL_0059
 
-    // method line 2219
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Target get_Target ()  cil managed 
+	  IL_0053:  ldloc.0 
+	  IL_0054:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
+	  IL_0059:  endfinally 
+	} // end handler 0
+	IL_005a:  ret 
+    } // end of method XmlLogger::TargetStarted
+
+    // method line 2276
+    .method public final virtual hidebysig newslot 
+           instance default void TargetFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2a148
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2b078
+	// Code size 64 (0x40)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Target	V_0)
+		object	V_0,
+		bool	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Target NAnt.Core.BuildEventArgs::_target
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
 	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stloc.1 
+	.try { // 0
+	  IL_000a:  ldloc.0 
+	  IL_000b:  ldloca.s 1
+	  IL_000d:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
+	  IL_0012:  nop 
+	  IL_0013:  ldarg.0 
+	  IL_0014:  call instance void class NAnt.Core.XmlLogger::WriteDuration()
+	  IL_0019:  ldarg.0 
+	  IL_001a:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_001f:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
+	  IL_0024:  ldarg.0 
+	  IL_0025:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_002a:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::Flush()
+	  IL_002f:  nop 
+	  IL_0030:  leave IL_003f
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildEventArgs::get_Target
+	} // end .try 0
+	finally  { // 0
+	  IL_0035:  ldloc.1 
+	  IL_0036:  brfalse.s IL_003e
 
-    // method line 2220
-    .method public hidebysig specialname 
-           instance default class NAnt.Core.Task get_Task ()  cil managed 
+	  IL_0038:  ldloc.0 
+	  IL_0039:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
+	  IL_003e:  endfinally 
+	} // end handler 0
+	IL_003f:  ret 
+    } // end of method XmlLogger::TargetFinished
+
+    // method line 2277
+    .method public final virtual hidebysig newslot 
+           instance default void TaskStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x2a164
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2b0d4
+	// Code size 91 (0x5b)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Task	V_0)
+		object	V_0,
+		bool	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Task NAnt.Core.BuildEventArgs::_task
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
 	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method BuildEventArgs::get_Task
-
-	.property instance string Message ()
-	{
-		.get instance default string NAnt.Core.BuildEventArgs::get_Message () 
-		.set instance default void NAnt.Core.BuildEventArgs::set_Message (string 'value') 
-	}
-	.property instance valuetype NAnt.Core.Level MessageLevel ()
-	{
-		.get instance default valuetype NAnt.Core.Level NAnt.Core.BuildEventArgs::get_MessageLevel () 
-		.set instance default void NAnt.Core.BuildEventArgs::set_MessageLevel (valuetype NAnt.Core.Level 'value') 
-	}
-	.property instance class [mscorlib]System.Exception Exception ()
-	{
-		.get instance default class [mscorlib]System.Exception NAnt.Core.BuildEventArgs::get_Exception () 
-		.set instance default void NAnt.Core.BuildEventArgs::set_Exception (class [mscorlib]System.Exception 'value') 
-	}
-	.property instance class NAnt.Core.Project Project ()
-	{
-		.get instance default class NAnt.Core.Project NAnt.Core.BuildEventArgs::get_Project () 
-	}
-	.property instance class NAnt.Core.Target Target ()
-	{
-		.get instance default class NAnt.Core.Target NAnt.Core.BuildEventArgs::get_Target () 
-	}
-	.property instance class NAnt.Core.Task Task ()
-	{
-		.get instance default class NAnt.Core.Task NAnt.Core.BuildEventArgs::get_Task () 
-	}
-  } // end of class NAnt.Core.BuildEventArgs
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi sealed BuildEventHandler
-  	extends [mscorlib]System.MulticastDelegate
-  {
-
-    // method line 2221
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method BuildEventHandler::.ctor
-
-    // method line 2222
-    .method public virtual hidebysig newslot 
-           instance default void Invoke (object sender, class NAnt.Core.BuildEventArgs e)  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method BuildEventHandler::Invoke
-
-    // method line 2223
-    .method public virtual hidebysig newslot 
-           instance default class [mscorlib]System.IAsyncResult BeginInvoke (object sender, class NAnt.Core.BuildEventArgs e, class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method BuildEventHandler::BeginInvoke
-
-    // method line 2224
-    .method public virtual hidebysig newslot 
-           instance default void EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method BuildEventHandler::EndInvoke
-
-  } // end of class NAnt.Core.BuildEventHandler
-}
-
-.namespace NAnt.Core
-{
-  .class interface public auto ansi abstract IBuildListener
-  {
-
-    // method line 2225
-    .method public virtual hidebysig newslot abstract 
-           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IBuildListener::BuildStarted
-
-    // method line 2226
-    .method public virtual hidebysig newslot abstract 
-           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IBuildListener::BuildFinished
-
-    // method line 2227
-    .method public virtual hidebysig newslot abstract 
-           instance default void TargetStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IBuildListener::TargetStarted
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stloc.1 
+	.try { // 0
+	  IL_000a:  ldloc.0 
+	  IL_000b:  ldloca.s 1
+	  IL_000d:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
+	  IL_0012:  nop 
+	  IL_0013:  ldarg.0 
+	  IL_0014:  ldfld class NAnt.Core.Util.StopWatchStack NAnt.Core.XmlLogger::_stopWatchStack
+	  IL_0019:  callvirt instance void class NAnt.Core.Util.StopWatchStack::PushStart()
+	  IL_001e:  ldarg.0 
+	  IL_001f:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_0024:  ldstr "task"
+	  IL_0029:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
+	  IL_002e:  ldarg.0 
+	  IL_002f:  ldarg.2 
+	  IL_0030:  callvirt instance class NAnt.Core.Task class NAnt.Core.BuildEventArgs::get_Task()
+	  IL_0035:  callvirt instance string class NAnt.Core.Element::get_Name()
+	  IL_003a:  call instance void class NAnt.Core.XmlLogger::WriteNameAttribute(string)
+	  IL_003f:  ldarg.0 
+	  IL_0040:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_0045:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::Flush()
+	  IL_004a:  nop 
+	  IL_004b:  leave IL_005a
 
-    // method line 2228
-    .method public virtual hidebysig newslot abstract 
-           instance default void TargetFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IBuildListener::TargetFinished
+	} // end .try 0
+	finally  { // 0
+	  IL_0050:  ldloc.1 
+	  IL_0051:  brfalse.s IL_0059
 
-    // method line 2229
-    .method public virtual hidebysig newslot abstract 
-           instance default void TaskStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IBuildListener::TaskStarted
+	  IL_0053:  ldloc.0 
+	  IL_0054:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
+	  IL_0059:  endfinally 
+	} // end handler 0
+	IL_005a:  ret 
+    } // end of method XmlLogger::TaskStarted
 
-    // method line 2230
-    .method public virtual hidebysig newslot abstract 
+    // method line 2278
+    .method public final virtual hidebysig newslot 
            instance default void TaskFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method IBuildListener::TaskFinished
-
-    // method line 2231
-    .method public virtual hidebysig newslot abstract 
-           instance default void MessageLogged (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IBuildListener::MessageLogged
-
-  } // end of class NAnt.Core.IBuildListener
-}
+        // Method begins at RVA 0x2b14c
+	// Code size 64 (0x40)
+	.maxstack 2
+	.locals init (
+		object	V_0,
+		bool	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0007:  stloc.0 
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stloc.1 
+	.try { // 0
+	  IL_000a:  ldloc.0 
+	  IL_000b:  ldloca.s 1
+	  IL_000d:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
+	  IL_0012:  nop 
+	  IL_0013:  ldarg.0 
+	  IL_0014:  call instance void class NAnt.Core.XmlLogger::WriteDuration()
+	  IL_0019:  ldarg.0 
+	  IL_001a:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_001f:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
+	  IL_0024:  ldarg.0 
+	  IL_0025:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_002a:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::Flush()
+	  IL_002f:  nop 
+	  IL_0030:  leave IL_003f
 
-.namespace NAnt.Core
-{
-  .class interface public auto ansi abstract IBuildLogger
-  	implements NAnt.Core.IBuildListener  {
+	} // end .try 0
+	finally  { // 0
+	  IL_0035:  ldloc.1 
+	  IL_0036:  brfalse.s IL_003e
 
-    // method line 2232
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IBuildLogger::get_Threshold
+	  IL_0038:  ldloc.0 
+	  IL_0039:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
+	  IL_003e:  endfinally 
+	} // end handler 0
+	IL_003f:  ret 
+    } // end of method XmlLogger::TaskFinished
 
-    // method line 2233
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
+    // method line 2279
+    .method private hidebysig 
+           instance default void WriteDuration ()  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method IBuildLogger::set_Threshold
+        // Method begins at RVA 0x2b1a8
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		valuetype [mscorlib]System.TimeSpan	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0007:  ldstr "duration"
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld class NAnt.Core.Util.StopWatchStack NAnt.Core.XmlLogger::_stopWatchStack
+	IL_0012:  callvirt instance valuetype [mscorlib]System.TimeSpan class NAnt.Core.Util.StopWatchStack::PopStop()
+	IL_0017:  stloc.0 
+	IL_0018:  ldloca.s 0
+	IL_001a:  call instance float64 valuetype [mscorlib]System.TimeSpan::get_TotalMilliseconds()
+	IL_001f:  call string class [System.Xml]System.Xml.XmlConvert::ToString(float64)
+	IL_0024:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteElementString(string, string)
+	IL_0029:  ret 
+    } // end of method XmlLogger::WriteDuration
 
-    // method line 2234
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default bool get_EmacsMode ()  cil managed 
+    // method line 2280
+    .method public final virtual hidebysig newslot 
+           instance default void MessageLogged (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method IBuildLogger::get_EmacsMode
+        // Method begins at RVA 0x2b1e0
+	// Code size 238 (0xee)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		object	V_1,
+		bool	V_2,
+		valuetype NAnt.Core.Level	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.2 
+	IL_0002:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.BuildEventArgs::get_MessageLevel()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance valuetype NAnt.Core.Level class NAnt.Core.XmlLogger::get_Threshold()
+	IL_000d:  blt IL_00ed
 
-    // method line 2235
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default void set_EmacsMode (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IBuildLogger::set_EmacsMode
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldarg.2 
+	IL_0015:  callvirt instance string class NAnt.Core.BuildEventArgs::get_Message()
+	IL_001a:  callvirt instance string string::Trim()
+	IL_001f:  call instance string class NAnt.Core.XmlLogger::StripFormatting(string)
+	IL_0024:  stloc.0 
+	IL_0025:  ldarg.0 
+	IL_0026:  ldloc.0 
+	IL_0027:  call instance bool class NAnt.Core.XmlLogger::IsJustWhiteSpace(string)
+	IL_002c:  brfalse IL_0037
 
-    // method line 2236
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default class [mscorlib]System.IO.TextWriter get_OutputWriter ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IBuildLogger::get_OutputWriter
+	IL_0031:  nop 
+	IL_0032:  br IL_00ed
 
-    // method line 2237
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default void set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IBuildLogger::set_OutputWriter
+	IL_0037:  ldarg.0 
+	IL_0038:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_003d:  stloc.1 
+	IL_003e:  ldc.i4.0 
+	IL_003f:  stloc.2 
+	.try { // 0
+	  IL_0040:  ldloc.1 
+	  IL_0041:  ldloca.s 2
+	  IL_0043:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
+	  IL_0048:  nop 
+	  IL_0049:  ldarg.0 
+	  IL_004a:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_004f:  ldstr "message"
+	  IL_0054:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
+	  IL_0059:  ldarg.0 
+	  IL_005a:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_005f:  ldstr "level"
+	  IL_0064:  ldarg.2 
+	  IL_0065:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.BuildEventArgs::get_MessageLevel()
+	  IL_006a:  stloc.3 
+	  IL_006b:  ldloca.s 3
+	  IL_006d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0072:  constrained. NAnt.Core.Level
+	  IL_0078:  callvirt instance string class [mscorlib]System.Enum::ToString(class [mscorlib]System.IFormatProvider)
+	  IL_007d:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteAttributeString(string, string)
+	  IL_0082:  ldarg.0 
+	  IL_0083:  ldloc.0 
+	  IL_0084:  call instance bool class NAnt.Core.XmlLogger::IsValidXml(string)
+	  IL_0089:  brfalse IL_00b2
 
-    // method line 2238
-    .method public virtual hidebysig newslot abstract 
-           instance default void Flush ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IBuildLogger::Flush
+	  IL_008e:  nop 
+	  IL_008f:  ldloc.0 
+	  IL_0090:  ldstr "<\\?.*\\?>"
+	  IL_0095:  ldsfld string [mscorlib]System.String::Empty
+	  IL_009a:  call string class [System]System.Text.RegularExpressions.Regex::Replace(string, string, string)
+	  IL_009f:  stloc.0 
+	  IL_00a0:  ldarg.0 
+	  IL_00a1:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_00a6:  ldloc.0 
+	  IL_00a7:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteRaw(string)
+	  IL_00ac:  nop 
+	  IL_00ad:  br IL_00c6
 
-	.property instance valuetype NAnt.Core.Level Threshold ()
-	{
-		.get instance default valuetype NAnt.Core.Level NAnt.Core.IBuildLogger::get_Threshold () 
-		.set instance default void NAnt.Core.IBuildLogger::set_Threshold (valuetype NAnt.Core.Level 'value') 
-	}
-	.property instance bool EmacsMode ()
-	{
-		.get instance default bool NAnt.Core.IBuildLogger::get_EmacsMode () 
-		.set instance default void NAnt.Core.IBuildLogger::set_EmacsMode (bool 'value') 
-	}
-	.property instance class [mscorlib]System.IO.TextWriter OutputWriter ()
-	{
-		.get instance default class [mscorlib]System.IO.TextWriter NAnt.Core.IBuildLogger::get_OutputWriter () 
-		.set instance default void NAnt.Core.IBuildLogger::set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value') 
-	}
-  } // end of class NAnt.Core.IBuildLogger
-}
+	  IL_00b2:  nop 
+	  IL_00b3:  ldarg.0 
+	  IL_00b4:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_00b9:  ldarg.0 
+	  IL_00ba:  ldloc.0 
+	  IL_00bb:  call instance string class NAnt.Core.XmlLogger::StripCData(string)
+	  IL_00c0:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteCData(string)
+	  IL_00c5:  nop 
+	  IL_00c6:  ldarg.0 
+	  IL_00c7:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_00cc:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
+	  IL_00d1:  ldarg.0 
+	  IL_00d2:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_00d7:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::Flush()
+	  IL_00dc:  nop 
+	  IL_00dd:  leave IL_00ec
 
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable beforefieldinit DefaultLogger
-  	extends [mscorlib]System.Object
-  	implements NAnt.Core.IBuildLogger, NAnt.Core.IBuildListener  {
-    .field  private  valuetype NAnt.Core.Level _threshold
-    .field  private  class [mscorlib]System.IO.TextWriter _outputWriter
-    .field  private  bool _emacsMode
-    .field  private initonly  class [mscorlib]System.Collections.Stack _buildReports
+	} // end .try 0
+	finally  { // 0
+	  IL_00e2:  ldloc.2 
+	  IL_00e3:  brfalse.s IL_00eb
 
-    // method line 2239
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2a17f
-	// Code size 30 (0x1e)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4 3000
-	IL_0006:  stfld valuetype NAnt.Core.Level NAnt.Core.DefaultLogger::_threshold
-	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
-	IL_0011:  stfld class [mscorlib]System.Collections.Stack NAnt.Core.DefaultLogger::_buildReports
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance void object::'.ctor'()
-	IL_001c:  nop 
-	IL_001d:  ret 
-    } // end of method DefaultLogger::.ctor
+	  IL_00e5:  ldloc.1 
+	  IL_00e6:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
+	  IL_00eb:  endfinally 
+	} // end handler 0
+	IL_00ec:  nop 
+	IL_00ed:  ret 
+    } // end of method XmlLogger::MessageLogged
 
-    // method line 2240
-    .method public virtual hidebysig newslot specialname 
+    // method line 2281
+    .method public final virtual hidebysig newslot specialname 
            instance default valuetype NAnt.Core.Level get_Threshold ()  cil managed 
     {
-        // Method begins at RVA 0x2a1a0
+        // Method begins at RVA 0x2b2ec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		valuetype NAnt.Core.Level	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.DefaultLogger::_threshold
+	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.XmlLogger::_threshold
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DefaultLogger::get_Threshold
+    } // end of method XmlLogger::get_Threshold
 
-    // method line 2241
-    .method public virtual hidebysig newslot specialname 
+    // method line 2282
+    .method public final virtual hidebysig newslot specialname 
            instance default void set_Threshold (valuetype NAnt.Core.Level 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a1bb
+        // Method begins at RVA 0x2b307
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.Core.Level NAnt.Core.DefaultLogger::_threshold
+	IL_0003:  stfld valuetype NAnt.Core.Level NAnt.Core.XmlLogger::_threshold
 	IL_0008:  ret 
-    } // end of method DefaultLogger::set_Threshold
+    } // end of method XmlLogger::set_Threshold
 
-    // method line 2242
+    // method line 2283
     .method public virtual hidebysig newslot specialname 
            instance default bool get_EmacsMode ()  cil managed 
     {
-        // Method begins at RVA 0x2a1c8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2b314
+	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.DefaultLogger::_emacsMode
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DefaultLogger::get_EmacsMode
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method XmlLogger::get_EmacsMode
 
-    // method line 2243
+    // method line 2284
     .method public virtual hidebysig newslot specialname 
            instance default void set_EmacsMode (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a1e3
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2b32a
+	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.DefaultLogger::_emacsMode
-	IL_0008:  ret 
-    } // end of method DefaultLogger::set_EmacsMode
+	IL_0001:  ret 
+    } // end of method XmlLogger::set_EmacsMode
 
-    // method line 2244
-    .method public virtual hidebysig newslot specialname 
+    // method line 2285
+    .method public final virtual hidebysig newslot specialname 
            instance default class [mscorlib]System.IO.TextWriter get_OutputWriter ()  cil managed 
     {
-        // Method begins at RVA 0x2a1f0
+        // Method begins at RVA 0x2b330
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.IO.TextWriter	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.TextWriter NAnt.Core.DefaultLogger::_outputWriter
+	IL_0002:  ldfld class [mscorlib]System.IO.TextWriter NAnt.Core.XmlLogger::_outputWriter
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DefaultLogger::get_OutputWriter
+    } // end of method XmlLogger::get_OutputWriter
 
-    // method line 2245
-    .method public virtual hidebysig newslot specialname 
+    // method line 2286
+    .method public final virtual hidebysig newslot specialname 
            instance default void set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a20b
+        // Method begins at RVA 0x2b34b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.TextWriter NAnt.Core.DefaultLogger::_outputWriter
+	IL_0003:  stfld class [mscorlib]System.IO.TextWriter NAnt.Core.XmlLogger::_outputWriter
 	IL_0008:  ret 
-    } // end of method DefaultLogger::set_OutputWriter
+    } // end of method XmlLogger::set_OutputWriter
 
-    // method line 2246
-    .method public virtual hidebysig newslot 
+    // method line 2287
+    .method public final virtual hidebysig newslot 
            instance default void Flush ()  cil managed 
     {
-        // Method begins at RVA 0x2a215
-	// Code size 26 (0x1a)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.DefaultLogger::get_OutputWriter()
-	IL_0007:  brfalse IL_0019
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.DefaultLogger::get_OutputWriter()
-	IL_0013:  callvirt instance void class [mscorlib]System.IO.TextWriter::Flush()
-	IL_0018:  nop 
-	IL_0019:  ret 
-    } // end of method DefaultLogger::Flush
-
-    // method line 2247
-    .method public virtual hidebysig newslot 
-           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x2a230
-	// Code size 23 (0x17)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.DefaultLogger::_buildReports
-	IL_0007:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
-	IL_000c:  newobj instance void class NAnt.Core.BuildReport::'.ctor'(valuetype [mscorlib]System.DateTime)
-	IL_0011:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
-	IL_0016:  ret 
-    } // end of method DefaultLogger::BuildStarted
-
-    // method line 2248
-    .method public virtual hidebysig newslot 
-           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x2a248
-	// Code size 708 (0x2c4)
-	.maxstack 6
+        // Method begins at RVA 0x2b358
+	// Code size 47 (0x2f)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.Exception	V_0,
-		int32	V_1,
-		class NAnt.Core.BuildReport	V_2,
-		class [mscorlib]System.Exception	V_3,
-		int32	V_4,
-		int32	V_5,
-		valuetype [mscorlib]System.TimeSpan	V_6)
+		object	V_0,
+		bool	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.2 
-	IL_0002:  callvirt instance class [mscorlib]System.Exception class NAnt.Core.BuildEventArgs::get_Exception()
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
 	IL_0007:  stloc.0 
 	IL_0008:  ldc.i4.0 
 	IL_0009:  stloc.1 
-	IL_000a:  ldarg.2 
-	IL_000b:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
-	IL_0010:  brfalse IL_002f
-
-	IL_0015:  nop 
-	IL_0016:  ldarg.2 
-	IL_0017:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
-	IL_001c:  callvirt instance int32 class NAnt.Core.Project::get_IndentationLevel()
-	IL_0021:  ldarg.2 
-	IL_0022:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
-	IL_0027:  callvirt instance int32 class NAnt.Core.Project::get_IndentationSize()
-	IL_002c:  mul 
-	IL_002d:  stloc.1 
-	IL_002e:  nop 
-	IL_002f:  ldarg.0 
-	IL_0030:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.DefaultLogger::_buildReports
-	IL_0035:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
-	IL_003a:  castclass NAnt.Core.BuildReport
-	IL_003f:  stloc.2 
-	IL_0040:  ldloc.0 
-	IL_0041:  brtrue IL_00d5
-
-	IL_0046:  nop 
-	IL_0047:  ldarg.0 
-	IL_0048:  ldc.i4 3000
-	IL_004d:  ldsfld string [mscorlib]System.String::Empty
-	IL_0052:  ldloc.1 
-	IL_0053:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_0058:  ldloc.2 
-	IL_0059:  ldfld int32 NAnt.Core.BuildReport::Errors
-	IL_005e:  brtrue IL_0086
-
-	IL_0063:  ldloc.2 
-	IL_0064:  ldfld int32 NAnt.Core.BuildReport::Warnings
-	IL_0069:  brtrue IL_0086
-
-	IL_006e:  nop 
-	IL_006f:  ldarg.0 
-	IL_0070:  ldc.i4 3000
-	IL_0075:  ldstr "BUILD SUCCEEDED"
-	IL_007a:  ldloc.1 
-	IL_007b:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_0080:  nop 
-	IL_0081:  br IL_00be
-
-	IL_0086:  nop 
-	IL_0087:  ldarg.0 
-	IL_0088:  ldc.i4 3000
-	IL_008d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0092:  ldstr "String_BuildSucceeded"
-	IL_0097:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_009c:  ldloc.2 
-	IL_009d:  ldfld int32 NAnt.Core.BuildReport::Errors
-	IL_00a2:  box [mscorlib]System.Int32
-	IL_00a7:  ldloc.2 
-	IL_00a8:  ldfld int32 NAnt.Core.BuildReport::Warnings
-	IL_00ad:  box [mscorlib]System.Int32
-	IL_00b2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_00b7:  ldloc.1 
-	IL_00b8:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_00bd:  nop 
-	IL_00be:  ldarg.0 
-	IL_00bf:  ldc.i4 3000
-	IL_00c4:  ldsfld string [mscorlib]System.String::Empty
-	IL_00c9:  ldloc.1 
-	IL_00ca:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_00cf:  nop 
-	IL_00d0:  br IL_026f
-
-	IL_00d5:  nop 
-	IL_00d6:  ldarg.0 
-	IL_00d7:  ldc.i4 5000
-	IL_00dc:  ldsfld string [mscorlib]System.String::Empty
-	IL_00e1:  ldloc.1 
-	IL_00e2:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_00e7:  ldloc.2 
-	IL_00e8:  ldfld int32 NAnt.Core.BuildReport::Errors
-	IL_00ed:  brtrue IL_0115
-
-	IL_00f2:  ldloc.2 
-	IL_00f3:  ldfld int32 NAnt.Core.BuildReport::Warnings
-	IL_00f8:  brtrue IL_0115
-
-	IL_00fd:  nop 
-	IL_00fe:  ldarg.0 
-	IL_00ff:  ldc.i4 5000
-	IL_0104:  ldstr "BUILD FAILED"
-	IL_0109:  ldloc.1 
-	IL_010a:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_010f:  nop 
-	IL_0110:  br IL_014d
-
-	IL_0115:  nop 
-	IL_0116:  ldarg.0 
-	IL_0117:  ldc.i4 3000
-	IL_011c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0121:  ldstr "String_BuildFailed"
-	IL_0126:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_012b:  ldloc.2 
-	IL_012c:  ldfld int32 NAnt.Core.BuildReport::Errors
-	IL_0131:  box [mscorlib]System.Int32
-	IL_0136:  ldloc.2 
-	IL_0137:  ldfld int32 NAnt.Core.BuildReport::Warnings
-	IL_013c:  box [mscorlib]System.Int32
-	IL_0141:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0146:  ldloc.1 
-	IL_0147:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_014c:  nop 
-	IL_014d:  ldarg.0 
-	IL_014e:  ldc.i4 5000
-	IL_0153:  ldsfld string [mscorlib]System.String::Empty
-	IL_0158:  ldloc.1 
-	IL_0159:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_015e:  ldloc.0 
-	IL_015f:  isinst NAnt.Core.BuildException
-	IL_0164:  brfalse IL_0205
-
-	IL_0169:  nop 
-	IL_016a:  ldarg.0 
-	IL_016b:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.DefaultLogger::get_Threshold()
-	IL_0170:  ldc.i4 2000
-	IL_0175:  bgt IL_0193
-
-	IL_017a:  nop 
-	IL_017b:  ldarg.0 
-	IL_017c:  ldc.i4 5000
-	IL_0181:  ldloc.0 
-	IL_0182:  callvirt instance string object::ToString()
-	IL_0187:  ldloc.1 
-	IL_0188:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_018d:  nop 
-	IL_018e:  br IL_01ff
-
-	IL_0193:  nop 
-	IL_0194:  ldloc.0 
-	IL_0195:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	IL_019a:  brfalse IL_01b3
-
-	IL_019f:  nop 
-	IL_01a0:  ldarg.0 
-	IL_01a1:  ldc.i4 5000
-	IL_01a6:  ldloc.0 
-	IL_01a7:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	IL_01ac:  ldloc.1 
-	IL_01ad:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_01b2:  nop 
-	IL_01b3:  ldloc.0 
-	IL_01b4:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
-	IL_01b9:  stloc.3 
-	IL_01ba:  ldloc.1 
-	IL_01bb:  stloc.s 4
-	IL_01bd:  ldc.i4.4 
-	IL_01be:  stloc.s 5
-	IL_01c0:  br IL_01e8
-
-	IL_01c5:  nop 
-	IL_01c6:  ldloc.s 4
-	IL_01c8:  ldloc.s 5
-	IL_01ca:  add 
-	IL_01cb:  stloc.s 4
-	IL_01cd:  ldarg.0 
-	IL_01ce:  ldc.i4 5000
-	IL_01d3:  ldloc.3 
-	IL_01d4:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	IL_01d9:  ldloc.s 4
-	IL_01db:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_01e0:  ldloc.3 
-	IL_01e1:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
-	IL_01e6:  stloc.3 
-	IL_01e7:  nop 
-	IL_01e8:  ldloc.3 
-	IL_01e9:  brfalse IL_01fe
-
-	IL_01ee:  ldloc.3 
-	IL_01ef:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	IL_01f4:  call bool string::IsNullOrEmpty(string)
-	IL_01f9:  brfalse IL_01c5
+	.try { // 0
+	  IL_000a:  ldloc.0 
+	  IL_000b:  ldloca.s 1
+	  IL_000d:  call void class [mscorlib]System.Threading.Monitor::Enter(object, [out] bool&)
+	  IL_0012:  nop 
+	  IL_0013:  ldarg.0 
+	  IL_0014:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	  IL_0019:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::Flush()
+	  IL_001e:  nop 
+	  IL_001f:  leave IL_002e
 
-	IL_01fe:  nop 
-	IL_01ff:  nop 
-	IL_0200:  br IL_025d
+	} // end .try 0
+	finally  { // 0
+	  IL_0024:  ldloc.1 
+	  IL_0025:  brfalse.s IL_002d
 
-	IL_0205:  nop 
-	IL_0206:  ldarg.0 
-	IL_0207:  ldc.i4 5000
-	IL_020c:  ldstr "INTERNAL ERROR"
-	IL_0211:  ldloc.1 
-	IL_0212:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_0217:  ldarg.0 
-	IL_0218:  ldc.i4 5000
-	IL_021d:  ldsfld string [mscorlib]System.String::Empty
-	IL_0222:  ldloc.1 
-	IL_0223:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_0228:  ldarg.0 
-	IL_0229:  ldc.i4 5000
-	IL_022e:  ldloc.0 
-	IL_022f:  callvirt instance string object::ToString()
-	IL_0234:  ldloc.1 
-	IL_0235:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_023a:  ldarg.0 
-	IL_023b:  ldc.i4 5000
-	IL_0240:  ldsfld string [mscorlib]System.String::Empty
-	IL_0245:  ldloc.1 
-	IL_0246:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_024b:  ldarg.0 
-	IL_024c:  ldc.i4 5000
-	IL_0251:  ldstr "Please send bug report to nant-developers@lists.sourceforge.net."
-	IL_0256:  ldloc.1 
-	IL_0257:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_025c:  nop 
-	IL_025d:  ldarg.0 
-	IL_025e:  ldc.i4 5000
-	IL_0263:  ldsfld string [mscorlib]System.String::Empty
-	IL_0268:  ldloc.1 
-	IL_0269:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_026e:  nop 
-	IL_026f:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
-	IL_0274:  ldloc.2 
-	IL_0275:  ldfld valuetype [mscorlib]System.DateTime NAnt.Core.BuildReport::StartTime
-	IL_027a:  call valuetype [mscorlib]System.TimeSpan valuetype [mscorlib]System.DateTime::op_Subtraction(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	IL_027f:  stloc.s 6
-	IL_0281:  ldarg.0 
-	IL_0282:  ldc.i4 3000
-	IL_0287:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_028c:  ldstr "String_TotalTime"
-	IL_0291:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0296:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_029b:  call string string::Concat(string, string)
-	IL_02a0:  ldloca.s 6
-	IL_02a2:  call instance float64 valuetype [mscorlib]System.TimeSpan::get_TotalSeconds()
-	IL_02a7:  ldc.i4.1 
-	IL_02a8:  call float64 class [mscorlib]System.Math::Round(float64, int32)
-	IL_02ad:  box [mscorlib]System.Double
-	IL_02b2:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_02b7:  ldloc.1 
-	IL_02b8:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_02bd:  ldarg.0 
-	IL_02be:  callvirt instance void class NAnt.Core.DefaultLogger::Flush()
-	IL_02c3:  ret 
-    } // end of method DefaultLogger::BuildFinished
+	  IL_0027:  ldloc.0 
+	  IL_0028:  call void class [mscorlib]System.Threading.Monitor::Exit(object)
+	  IL_002d:  endfinally 
+	} // end handler 0
+	IL_002e:  ret 
+    } // end of method XmlLogger::Flush
 
-    // method line 2249
-    .method public virtual hidebysig newslot 
-           instance default void TargetStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    // method line 2288
+    .method public hidebysig 
+           instance default string StripFormatting (string message)  cil managed 
     {
-        // Method begins at RVA 0x2a518
-	// Code size 126 (0x7e)
-	.maxstack 5
+        // Method begins at RVA 0x2b3a4
+	// Code size 119 (0x77)
+	.maxstack 3
 	.locals init (
-		int32	V_0)
+		string	V_0,
+		class [System]System.Text.RegularExpressions.Regex	V_1,
+		class [System]System.Text.RegularExpressions.Match	V_2,
+		string	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.2 
-	IL_0004:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
-	IL_0009:  brfalse IL_0028
+	IL_0001:  ldstr "(?ms)^[\\s\\0]*?\\[[\\s\\w\\d]+\\](.+)"
+	IL_0006:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
+	IL_000b:  stloc.1 
+	IL_000c:  ldloc.1 
+	IL_000d:  ldarg.1 
+	IL_000e:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
+	IL_0013:  stloc.2 
+	IL_0014:  ldloc.2 
+	IL_0015:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
+	IL_001a:  brfalse IL_005b
 
-	IL_000e:  nop 
-	IL_000f:  ldarg.2 
-	IL_0010:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
-	IL_0015:  callvirt instance int32 class NAnt.Core.Project::get_IndentationLevel()
-	IL_001a:  ldarg.2 
-	IL_001b:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
-	IL_0020:  callvirt instance int32 class NAnt.Core.Project::get_IndentationSize()
-	IL_0025:  mul 
-	IL_0026:  stloc.0 
-	IL_0027:  nop 
-	IL_0028:  ldarg.2 
-	IL_0029:  callvirt instance class NAnt.Core.Target class NAnt.Core.BuildEventArgs::get_Target()
-	IL_002e:  brfalse IL_007d
+	IL_001f:  nop 
+	IL_0020:  ldloc.2 
+	IL_0021:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	IL_0026:  ldc.i4.1 
+	IL_0027:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(int32)
+	IL_002c:  callvirt instance class [System]System.Text.RegularExpressions.CaptureCollection class [System]System.Text.RegularExpressions.Group::get_Captures()
+	IL_0031:  ldc.i4.0 
+	IL_0032:  callvirt instance class [System]System.Text.RegularExpressions.Capture class [System]System.Text.RegularExpressions.CaptureCollection::get_Item(int32)
+	IL_0037:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	IL_003c:  stloc.0 
+	IL_003d:  ldloc.0 
+	IL_003e:  ldstr bytearray (
+	00 00 00 )                                       // ...
+	
+	IL_0043:  ldsfld string [mscorlib]System.String::Empty
+	IL_0048:  callvirt instance string string::Replace(string, string)
+	IL_004d:  stloc.0 
+	IL_004e:  ldloc.0 
+	IL_004f:  callvirt instance string string::Trim()
+	IL_0054:  stloc.0 
+	IL_0055:  nop 
+	IL_0056:  br IL_006e
 
-	IL_0033:  nop 
-	IL_0034:  ldarg.0 
-	IL_0035:  ldc.i4 3000
-	IL_003a:  ldsfld string [mscorlib]System.String::Empty
-	IL_003f:  ldloc.0 
-	IL_0040:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_0045:  ldarg.0 
-	IL_0046:  ldc.i4 3000
-	IL_004b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0050:  ldstr "{0}:"
-	IL_0055:  ldarg.2 
-	IL_0056:  callvirt instance class NAnt.Core.Target class NAnt.Core.BuildEventArgs::get_Target()
-	IL_005b:  callvirt instance string class NAnt.Core.Target::get_Name()
-	IL_0060:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0065:  ldloc.0 
-	IL_0066:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_006b:  ldarg.0 
-	IL_006c:  ldc.i4 3000
-	IL_0071:  ldsfld string [mscorlib]System.String::Empty
-	IL_0076:  ldloc.0 
-	IL_0077:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(valuetype NAnt.Core.Level, string, int32)
-	IL_007c:  nop 
-	IL_007d:  ret 
-    } // end of method DefaultLogger::TargetStarted
+	IL_005b:  nop 
+	IL_005c:  ldarg.1 
+	IL_005d:  ldstr bytearray (
+	00 00 00 )                                       // ...
+	
+	IL_0062:  ldsfld string [mscorlib]System.String::Empty
+	IL_0067:  callvirt instance string string::Replace(string, string)
+	IL_006c:  stloc.0 
+	IL_006d:  nop 
+	IL_006e:  ldloc.0 
+	IL_006f:  stloc.3 
+	IL_0070:  br IL_0075
 
-    // method line 2250
-    .method public virtual hidebysig newslot 
-           instance default void TargetFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x2a5a2
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method DefaultLogger::TargetFinished
+	IL_0075:  ldloc.3 
+	IL_0076:  ret 
+    } // end of method XmlLogger::StripFormatting
 
-    // method line 2251
-    .method public virtual hidebysig newslot 
-           instance default void TaskStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    // method line 2289
+    .method public hidebysig 
+           instance default bool IsJustWhiteSpace (string message)  cil managed 
     {
-        // Method begins at RVA 0x2a5a5
-	// Code size 2 (0x2)
-	.maxstack 8
+        // Method begins at RVA 0x2b428
+	// Code size 32 (0x20)
+	.maxstack 2
+	.locals init (
+		class [System]System.Text.RegularExpressions.Regex	V_0,
+		bool	V_1)
 	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method DefaultLogger::TaskStarted
+	IL_0001:  ldstr "^[\\s\\0]*$"
+	IL_0006:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
+	IL_000b:  stloc.0 
+	IL_000c:  ldloc.0 
+	IL_000d:  ldarg.1 
+	IL_000e:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string)
+	IL_0013:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
+	IL_0018:  stloc.1 
+	IL_0019:  br IL_001e
 
-    // method line 2252
-    .method public virtual hidebysig newslot 
-           instance default void TaskFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x2a5a8
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method DefaultLogger::TaskFinished
+	IL_001e:  ldloc.1 
+	IL_001f:  ret 
+    } // end of method XmlLogger::IsJustWhiteSpace
 
-    // method line 2253
-    .method public virtual hidebysig newslot 
-           instance default void MessageLogged (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
+    // method line 2290
+    .method private hidebysig 
+           instance default void WriteErrorNode (class [mscorlib]System.Exception exception)  cil managed 
     {
-        // Method begins at RVA 0x2a5ac
-	// Code size 131 (0x83)
-	.maxstack 3
+        // Method begins at RVA 0x2b454
+	// Code size 505 (0x1f9)
+	.maxstack 4
 	.locals init (
-		class NAnt.Core.BuildReport	V_0,
-		class NAnt.Core.BuildReport	V_1)
+		class NAnt.Core.BuildException	V_0,
+		int32	V_1,
+		int32	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.DefaultLogger::_buildReports
-	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.Stack::get_Count()
-	IL_000c:  ldc.i4.0 
-	IL_000d:  ble IL_007b
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_000d
 
-	IL_0012:  nop 
-	IL_0013:  ldarg.2 
-	IL_0014:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.BuildEventArgs::get_MessageLevel()
-	IL_0019:  ldc.i4 5000
-	IL_001e:  bne.un IL_0049
+	IL_0007:  nop 
+	IL_0008:  br IL_01f8
 
-	IL_0023:  nop 
-	IL_0024:  ldarg.0 
-	IL_0025:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.DefaultLogger::_buildReports
-	IL_002a:  callvirt instance object class [mscorlib]System.Collections.Stack::Peek()
-	IL_002f:  castclass NAnt.Core.BuildReport
-	IL_0034:  stloc.0 
-	IL_0035:  ldloc.0 
-	IL_0036:  dup 
-	IL_0037:  ldfld int32 NAnt.Core.BuildReport::Errors
-	IL_003c:  ldc.i4.1 
-	IL_003d:  add 
-	IL_003e:  stfld int32 NAnt.Core.BuildReport::Errors
-	IL_0043:  nop 
-	IL_0044:  br IL_007a
+	IL_000d:  nop 
+	IL_000e:  ldnull 
+	IL_000f:  stloc.0 
+	IL_0010:  ldtoken NAnt.Core.BuildException
+	IL_0015:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_001a:  ldarg.1 
+	IL_001b:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Exception::GetType()
+	IL_0020:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_0025:  brfalse IL_0033
 
-	IL_0049:  ldarg.2 
-	IL_004a:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.BuildEventArgs::get_MessageLevel()
-	IL_004f:  ldc.i4 4000
-	IL_0054:  bne.un IL_007a
+	IL_002a:  nop 
+	IL_002b:  ldarg.1 
+	IL_002c:  castclass NAnt.Core.BuildException
+	IL_0031:  stloc.0 
+	IL_0032:  nop 
+	IL_0033:  ldloc.0 
+	IL_0034:  brfalse IL_0050
 
-	IL_0059:  nop 
-	IL_005a:  ldarg.0 
-	IL_005b:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.DefaultLogger::_buildReports
-	IL_0060:  callvirt instance object class [mscorlib]System.Collections.Stack::Peek()
-	IL_0065:  castclass NAnt.Core.BuildReport
-	IL_006a:  stloc.1 
-	IL_006b:  ldloc.1 
-	IL_006c:  dup 
-	IL_006d:  ldfld int32 NAnt.Core.BuildReport::Warnings
-	IL_0072:  ldc.i4.1 
-	IL_0073:  add 
-	IL_0074:  stfld int32 NAnt.Core.BuildReport::Warnings
-	IL_0079:  nop 
-	IL_007a:  nop 
-	IL_007b:  ldarg.0 
-	IL_007c:  ldarg.2 
-	IL_007d:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(class NAnt.Core.BuildEventArgs)
-	IL_0082:  ret 
-    } // end of method DefaultLogger::MessageLogged
+	IL_0039:  nop 
+	IL_003a:  ldarg.0 
+	IL_003b:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0040:  ldstr "builderror"
+	IL_0045:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
+	IL_004a:  nop 
+	IL_004b:  br IL_0062
 
-    // method line 2254
-    .method family virtual hidebysig newslot 
-           instance default void Log (string message)  cil managed 
-    {
-        // Method begins at RVA 0x2a63b
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method DefaultLogger::Log
+	IL_0050:  nop 
+	IL_0051:  ldarg.0 
+	IL_0052:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0057:  ldstr "internalerror"
+	IL_005c:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
+	IL_0061:  nop 
+	IL_0062:  ldarg.0 
+	IL_0063:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0068:  ldstr "type"
+	IL_006d:  ldarg.1 
+	IL_006e:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Exception::GetType()
+	IL_0073:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0078:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteElementString(string, string)
+	IL_007d:  ldloc.0 
+	IL_007e:  brfalse IL_0173
 
-    // method line 2255
-    .method private hidebysig 
-           instance default void OutputMessage (valuetype NAnt.Core.Level messageLevel, string message, int32 indentationLength)  cil managed 
-    {
-        // Method begins at RVA 0x2a63e
-	// Code size 16 (0x10)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  call class NAnt.Core.BuildEventArgs class NAnt.Core.DefaultLogger::CreateBuildEvent(valuetype NAnt.Core.Level, string)
-	IL_0009:  ldarg.3 
-	IL_000a:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(class NAnt.Core.BuildEventArgs, int32)
-	IL_000f:  ret 
-    } // end of method DefaultLogger::OutputMessage
+	IL_0083:  nop 
+	IL_0084:  ldloc.0 
+	IL_0085:  callvirt instance string class NAnt.Core.BuildException::get_RawMessage()
+	IL_008a:  brfalse IL_00c3
 
-    // method line 2256
-    .method private hidebysig 
-           instance default void OutputMessage (class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x2a650
-	// Code size 49 (0x31)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
-	IL_0009:  brfalse IL_0028
+	IL_008f:  nop 
+	IL_0090:  ldarg.0 
+	IL_0091:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0096:  ldstr "message"
+	IL_009b:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
+	IL_00a0:  ldarg.0 
+	IL_00a1:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_00a6:  ldarg.0 
+	IL_00a7:  ldloc.0 
+	IL_00a8:  callvirt instance string class NAnt.Core.BuildException::get_RawMessage()
+	IL_00ad:  call instance string class NAnt.Core.XmlLogger::StripCData(string)
+	IL_00b2:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteCData(string)
+	IL_00b7:  ldarg.0 
+	IL_00b8:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_00bd:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
+	IL_00c2:  nop 
+	IL_00c3:  ldloc.0 
+	IL_00c4:  callvirt instance class NAnt.Core.Location class NAnt.Core.BuildException::get_Location()
+	IL_00c9:  brfalse IL_016d
 
-	IL_000e:  nop 
-	IL_000f:  ldarg.1 
-	IL_0010:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
-	IL_0015:  callvirt instance int32 class NAnt.Core.Project::get_IndentationLevel()
-	IL_001a:  ldarg.1 
-	IL_001b:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
-	IL_0020:  callvirt instance int32 class NAnt.Core.Project::get_IndentationSize()
-	IL_0025:  mul 
-	IL_0026:  stloc.0 
-	IL_0027:  nop 
-	IL_0028:  ldarg.0 
-	IL_0029:  ldarg.1 
-	IL_002a:  ldloc.0 
-	IL_002b:  call instance void class NAnt.Core.DefaultLogger::OutputMessage(class NAnt.Core.BuildEventArgs, int32)
-	IL_0030:  ret 
-    } // end of method DefaultLogger::OutputMessage
+	IL_00ce:  nop 
+	IL_00cf:  ldloc.0 
+	IL_00d0:  callvirt instance class NAnt.Core.Location class NAnt.Core.BuildException::get_Location()
+	IL_00d5:  callvirt instance string object::ToString()
+	IL_00da:  call bool string::IsNullOrEmpty(string)
+	IL_00df:  brtrue IL_016c
 
-    // method line 2257
+	IL_00e4:  nop 
+	IL_00e5:  ldarg.0 
+	IL_00e6:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_00eb:  ldstr "location"
+	IL_00f0:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
+	IL_00f5:  ldarg.0 
+	IL_00f6:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_00fb:  ldstr "filename"
+	IL_0100:  ldloc.0 
+	IL_0101:  callvirt instance class NAnt.Core.Location class NAnt.Core.BuildException::get_Location()
+	IL_0106:  callvirt instance string class NAnt.Core.Location::get_FileName()
+	IL_010b:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteElementString(string, string)
+	IL_0110:  ldarg.0 
+	IL_0111:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0116:  ldstr "linenumber"
+	IL_011b:  ldloc.0 
+	IL_011c:  callvirt instance class NAnt.Core.Location class NAnt.Core.BuildException::get_Location()
+	IL_0121:  callvirt instance int32 class NAnt.Core.Location::get_LineNumber()
+	IL_0126:  stloc.1 
+	IL_0127:  ldloca.s 1
+	IL_0129:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_012e:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
+	IL_0133:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteElementString(string, string)
+	IL_0138:  ldarg.0 
+	IL_0139:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_013e:  ldstr "columnnumber"
+	IL_0143:  ldloc.0 
+	IL_0144:  callvirt instance class NAnt.Core.Location class NAnt.Core.BuildException::get_Location()
+	IL_0149:  callvirt instance int32 class NAnt.Core.Location::get_ColumnNumber()
+	IL_014e:  stloc.2 
+	IL_014f:  ldloca.s 2
+	IL_0151:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0156:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
+	IL_015b:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteElementString(string, string)
+	IL_0160:  ldarg.0 
+	IL_0161:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0166:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
+	IL_016b:  nop 
+	IL_016c:  nop 
+	IL_016d:  nop 
+	IL_016e:  br IL_01b4
+
+	IL_0173:  nop 
+	IL_0174:  ldarg.1 
+	IL_0175:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	IL_017a:  brfalse IL_01b3
+
+	IL_017f:  nop 
+	IL_0180:  ldarg.0 
+	IL_0181:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0186:  ldstr "message"
+	IL_018b:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
+	IL_0190:  ldarg.0 
+	IL_0191:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0196:  ldarg.0 
+	IL_0197:  ldarg.1 
+	IL_0198:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	IL_019d:  call instance string class NAnt.Core.XmlLogger::StripCData(string)
+	IL_01a2:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteCData(string)
+	IL_01a7:  ldarg.0 
+	IL_01a8:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_01ad:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
+	IL_01b2:  nop 
+	IL_01b3:  nop 
+	IL_01b4:  ldarg.0 
+	IL_01b5:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_01ba:  ldstr "stacktrace"
+	IL_01bf:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteStartElement(string)
+	IL_01c4:  ldarg.0 
+	IL_01c5:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_01ca:  ldarg.1 
+	IL_01cb:  callvirt instance string class [mscorlib]System.Exception::get_StackTrace()
+	IL_01d0:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteCData(string)
+	IL_01d5:  ldarg.0 
+	IL_01d6:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_01db:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
+	IL_01e0:  ldarg.0 
+	IL_01e1:  ldarg.1 
+	IL_01e2:  callvirt instance class [mscorlib]System.Exception class [mscorlib]System.Exception::get_InnerException()
+	IL_01e7:  call instance void class NAnt.Core.XmlLogger::WriteErrorNode(class [mscorlib]System.Exception)
+	IL_01ec:  ldarg.0 
+	IL_01ed:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_01f2:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteEndElement()
+	IL_01f7:  nop 
+	IL_01f8:  ret 
+    } // end of method XmlLogger::WriteErrorNode
+
+    // method line 2291
     .method private hidebysig 
-           instance default void OutputMessage (class NAnt.Core.BuildEventArgs e, int32 indentationLength)  cil managed 
+           instance default bool IsValidXml (string message)  cil managed 
     {
-        // Method begins at RVA 0x2a690
-	// Code size 288 (0x120)
+        // Method begins at RVA 0x2b65c
+	// Code size 96 (0x60)
 	.maxstack 3
 	.locals init (
-		string	V_0,
-		string[]	V_1,
-		string	V_2,
-		string	V_3,
-		string[]	V_4,
-		int32	V_5,
-		class [mscorlib]System.Text.StringBuilder	V_6,
-		string	V_7)
+		class [System.Xml]System.Xml.XmlValidatingReader	V_0,
+		bool	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.BuildEventArgs::get_MessageLevel()
-	IL_0007:  ldarg.0 
-	IL_0008:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.DefaultLogger::get_Threshold()
-	IL_000d:  blt IL_011f
+	IL_0002:  ldstr "^<.*>"
+	IL_0007:  call class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.Regex::Match(string, string)
+	IL_000c:  callvirt instance bool class [System]System.Text.RegularExpressions.Group::get_Success()
+	IL_0011:  brfalse IL_0057
 
-	IL_0012:  nop 
-	IL_0013:  ldarg.1 
-	IL_0014:  callvirt instance string class NAnt.Core.BuildEventArgs::get_Message()
-	IL_0019:  stloc.0 
-	IL_001a:  ldloc.0 
-	IL_001b:  ldstr "\t"
-	IL_0020:  ldstr " "
-	IL_0025:  callvirt instance string string::Replace(string, string)
-	IL_002a:  stloc.0 
-	IL_002b:  ldloc.0 
-	IL_002c:  ldstr "\r"
-	IL_0031:  ldstr ""
-	IL_0036:  callvirt instance string string::Replace(string, string)
-	IL_003b:  stloc.0 
-	IL_003c:  ldloc.0 
-	IL_003d:  ldc.i4.s 0x0a
-	IL_003f:  ldc.i4.0 
-	IL_0040:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	IL_0045:  stloc.1 
-	IL_0046:  ldsfld string [mscorlib]System.String::Empty
-	IL_004b:  stloc.2 
-	IL_004c:  ldarg.1 
-	IL_004d:  callvirt instance class NAnt.Core.Task class NAnt.Core.BuildEventArgs::get_Task()
-	IL_0052:  brfalse IL_0091
+	IL_0016:  nop 
+	IL_0017:  ldnull 
+	IL_0018:  stloc.0 
+	.try { // 1
+	  .try { // 0
+	    IL_0019:  nop 
+	    IL_001a:  ldarg.1 
+	    IL_001b:  ldc.i4.s 0x09
+	    IL_001d:  ldnull 
+	    IL_001e:  newobj instance void class [System.Xml]System.Xml.XmlValidatingReader::'.ctor'(string, valuetype [System.Xml]System.Xml.XmlNodeType, class [System.Xml]System.Xml.XmlParserContext)
+	    IL_0023:  stloc.0 
+	    IL_0024:  br IL_002b
 
-	IL_0057:  ldarg.0 
-	IL_0058:  callvirt instance bool class NAnt.Core.DefaultLogger::get_EmacsMode()
-	IL_005d:  brtrue IL_0091
+	    IL_0029:  nop 
+	    IL_002a:  nop 
+	    IL_002b:  ldloc.0 
+	    IL_002c:  callvirt instance bool class [System.Xml]System.Xml.XmlReader::Read()
+	    IL_0031:  brtrue IL_0029
 
-	IL_0062:  nop 
-	IL_0063:  ldstr "["
-	IL_0068:  ldarg.1 
-	IL_0069:  callvirt instance class NAnt.Core.Task class NAnt.Core.BuildEventArgs::get_Task()
-	IL_006e:  callvirt instance string class NAnt.Core.Element::get_Name()
-	IL_0073:  ldstr "] "
-	IL_0078:  call string string::Concat(string, string, string)
-	IL_007d:  stloc.2 
-	IL_007e:  ldloc.2 
-	IL_007f:  ldarg.1 
-	IL_0080:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
-	IL_0085:  callvirt instance int32 class NAnt.Core.Project::get_IndentationSize()
-	IL_008a:  callvirt instance string string::PadLeft(int32)
-	IL_008f:  stloc.2 
-	IL_0090:  nop 
-	IL_0091:  ldarg.2 
-	IL_0092:  ldc.i4.0 
-	IL_0093:  ble IL_00a9
+	    IL_0036:  ldc.i4.1 
+	    IL_0037:  stloc.1 
+	    IL_0038:  leave IL_005e
 
-	IL_0098:  nop 
-	IL_0099:  ldc.i4.s 0x20
-	IL_009b:  ldarg.2 
-	IL_009c:  newobj instance void string::'.ctor'(char, int32)
-	IL_00a1:  ldloc.2 
-	IL_00a2:  call string string::Concat(string, string)
-	IL_00a7:  stloc.2 
-	IL_00a8:  nop 
-	IL_00a9:  nop 
-	IL_00aa:  ldloc.1 
-	IL_00ab:  stloc.s 4
-	IL_00ad:  ldc.i4.0 
-	IL_00ae:  stloc.s 5
-	IL_00b0:  br IL_0113
+	  } // end .try 0
+	  catch class [mscorlib]System.Object { // 0
+	    IL_003d:  pop 
+	    IL_003e:  nop 
+	    IL_003f:  ldc.i4.0 
+	    IL_0040:  stloc.1 
+	    IL_0041:  leave IL_005e
 
-	IL_00b5:  ldloc.s 4
-	IL_00b7:  ldloc.s 5
-	IL_00b9:  ldelem.ref 
-	IL_00ba:  stloc.3 
-	IL_00bb:  nop 
-	IL_00bc:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_00c1:  stloc.s 6
-	IL_00c3:  ldloc.s 6
-	IL_00c5:  ldloc.2 
-	IL_00c6:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00cb:  pop 
-	IL_00cc:  ldloc.s 6
-	IL_00ce:  ldloc.3 
-	IL_00cf:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00d4:  pop 
-	IL_00d5:  ldloc.s 6
-	IL_00d7:  callvirt instance string object::ToString()
-	IL_00dc:  stloc.s 7
-	IL_00de:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Out()
-	IL_00e3:  ldloc.s 7
-	IL_00e5:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_00ea:  ldarg.0 
-	IL_00eb:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.DefaultLogger::get_OutputWriter()
-	IL_00f0:  brfalse IL_0104
+	  } // end handler 0
+	} // end .try 1
+	finally  { // 1
+	  IL_0046:  nop 
+	  IL_0047:  ldloc.0 
+	  IL_0048:  brfalse IL_0055
 
-	IL_00f5:  nop 
-	IL_00f6:  ldarg.0 
-	IL_00f7:  callvirt instance class [mscorlib]System.IO.TextWriter class NAnt.Core.DefaultLogger::get_OutputWriter()
-	IL_00fc:  ldloc.s 7
-	IL_00fe:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_0103:  nop 
-	IL_0104:  ldarg.0 
-	IL_0105:  ldloc.s 7
-	IL_0107:  callvirt instance void class NAnt.Core.DefaultLogger::Log(string)
-	IL_010c:  nop 
-	IL_010d:  ldloc.s 5
-	IL_010f:  ldc.i4.1 
-	IL_0110:  add 
-	IL_0111:  stloc.s 5
-	IL_0113:  ldloc.s 5
-	IL_0115:  ldloc.s 4
-	IL_0117:  ldlen 
-	IL_0118:  conv.i4 
-	IL_0119:  blt IL_00b5
+	  IL_004d:  nop 
+	  IL_004e:  ldloc.0 
+	  IL_004f:  callvirt instance void class [System.Xml]System.Xml.XmlReader::Close()
+	  IL_0054:  nop 
+	  IL_0055:  nop 
+	  IL_0056:  endfinally 
+	} // end handler 1
+	IL_0057:  ldc.i4.0 
+	IL_0058:  stloc.1 
+	IL_0059:  br IL_005e
 
-	IL_011e:  nop 
-	IL_011f:  ret 
-    } // end of method DefaultLogger::OutputMessage
+	IL_005e:  ldloc.1 
+	IL_005f:  ret 
+    } // end of method XmlLogger::IsValidXml
 
-    // method line 2258
-    .method private static hidebysig 
-           default class NAnt.Core.BuildEventArgs CreateBuildEvent (valuetype NAnt.Core.Level messageLevel, string message)  cil managed 
+    // method line 2292
+    .method private hidebysig 
+           instance default string StripCData (string message)  cil managed 
     {
-        // Method begins at RVA 0x2a7bc
-	// Code size 30 (0x1e)
-	.maxstack 2
+        // Method begins at RVA 0x2b6e4
+	// Code size 42 (0x2a)
+	.maxstack 3
 	.locals init (
-		class NAnt.Core.BuildEventArgs	V_0,
-		class NAnt.Core.BuildEventArgs	V_1)
+		string	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.Core.BuildEventArgs::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance void class NAnt.Core.BuildEventArgs::set_MessageLevel(valuetype NAnt.Core.Level)
-	IL_000e:  ldloc.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  callvirt instance void class NAnt.Core.BuildEventArgs::set_Message(string)
-	IL_0015:  ldloc.0 
-	IL_0016:  stloc.1 
-	IL_0017:  br IL_001c
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr "<!\\[CDATA\\["
+	IL_0007:  ldsfld string [mscorlib]System.String::Empty
+	IL_000c:  call string class [System]System.Text.RegularExpressions.Regex::Replace(string, string, string)
+	IL_0011:  stloc.0 
+	IL_0012:  ldloc.0 
+	IL_0013:  ldstr "\\]\\]>"
+	IL_0018:  ldsfld string [mscorlib]System.String::Empty
+	IL_001d:  call string class [System]System.Text.RegularExpressions.Regex::Replace(string, string, string)
+	IL_0022:  stloc.1 
+	IL_0023:  br IL_0028
 
-	IL_001c:  ldloc.1 
-	IL_001d:  ret 
-    } // end of method DefaultLogger::CreateBuildEvent
+	IL_0028:  ldloc.1 
+	IL_0029:  ret 
+    } // end of method XmlLogger::StripCData
+
+    // method line 2293
+    .method private hidebysig 
+           instance default void WriteNameAttribute (string name)  cil managed 
+    {
+        // Method begins at RVA 0x2b71a
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlTextWriter NAnt.Core.XmlLogger::_xmlWriter
+	IL_0007:  ldstr "name"
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance void class [System.Xml]System.Xml.XmlWriter::WriteAttributeString(string, string)
+	IL_0012:  ret 
+    } // end of method XmlLogger::WriteNameAttribute
 
 	.property instance valuetype NAnt.Core.Level Threshold ()
 	{
-		.get instance default valuetype NAnt.Core.Level NAnt.Core.DefaultLogger::get_Threshold () 
-		.set instance default void NAnt.Core.DefaultLogger::set_Threshold (valuetype NAnt.Core.Level 'value') 
+		.get instance default valuetype NAnt.Core.Level NAnt.Core.XmlLogger::get_Threshold () 
+		.set instance default void NAnt.Core.XmlLogger::set_Threshold (valuetype NAnt.Core.Level 'value') 
 	}
 	.property instance bool EmacsMode ()
 	{
-		.get instance default bool NAnt.Core.DefaultLogger::get_EmacsMode () 
-		.set instance default void NAnt.Core.DefaultLogger::set_EmacsMode (bool 'value') 
+		.get instance default bool NAnt.Core.XmlLogger::get_EmacsMode () 
+		.set instance default void NAnt.Core.XmlLogger::set_EmacsMode (bool 'value') 
 	}
 	.property instance class [mscorlib]System.IO.TextWriter OutputWriter ()
 	{
-		.get instance default class [mscorlib]System.IO.TextWriter NAnt.Core.DefaultLogger::get_OutputWriter () 
-		.set instance default void NAnt.Core.DefaultLogger::set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value') 
+		.get instance default class [mscorlib]System.IO.TextWriter NAnt.Core.XmlLogger::get_OutputWriter () 
+		.set instance default void NAnt.Core.XmlLogger::set_OutputWriter (class [mscorlib]System.IO.TextWriter 'value') 
 	}
-  } // end of class NAnt.Core.DefaultLogger
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable beforefieldinit BuildReport
+  .class nested private auto ansi beforefieldinit Elements
   	extends [mscorlib]System.Object
   {
-    .field  public  int32 Errors
-    .field  public  int32 Warnings
-    .field  public initonly  valuetype [mscorlib]System.DateTime StartTime
+    .field public static literal  string BuildResults = "buildresults"
+    .field public static literal  string Message = "message"
+    .field public static literal  string Target = "target"
+    .field public static literal  string Task = "task"
+    .field public static literal  string Status = "status"
 
-    // method line 2259
+    // method line 2294
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype [mscorlib]System.DateTime startTime)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2a7e6
-	// Code size 29 (0x1d)
+        // Method begins at RVA 0x2b72e
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld valuetype [mscorlib]System.DateTime NAnt.Core.BuildReport::StartTime
-	IL_000e:  ldarg.0 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  stfld int32 NAnt.Core.BuildReport::Errors
-	IL_0015:  ldarg.0 
-	IL_0016:  ldc.i4.0 
-	IL_0017:  stfld int32 NAnt.Core.BuildReport::Warnings
-	IL_001c:  ret 
-    } // end of method BuildReport::.ctor
+	IL_0006:  ret 
+    } // end of method Elements::.ctor
 
-  } // end of class NAnt.Core.BuildReport
-}
+  } // end of class Elements
 
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable beforefieldinit MailLogger
-  	extends NAnt.Core.DefaultLogger
+  .class nested private auto ansi beforefieldinit Attributes
+  	extends [mscorlib]System.Object
   {
-    .field  private  class [mscorlib]System.Text.StringBuilder _buffer
-    .field  private  class [mscorlib]System.Collections.Stack _projectStack
+    .field public static literal  string Project = "project"
+    .field public static literal  string MessageLevel = "level"
 
-    // method line 2260
+    // method line 2295
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2a804
-	// Code size 30 (0x1e)
+        // Method begins at RVA 0x2b736
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0006:  stfld class [mscorlib]System.Text.StringBuilder NAnt.Core.MailLogger::_buffer
-	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
-	IL_0011:  stfld class [mscorlib]System.Collections.Stack NAnt.Core.MailLogger::_projectStack
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance void class NAnt.Core.DefaultLogger::'.ctor'()
-	IL_001c:  nop 
-	IL_001d:  ret 
-    } // end of method MailLogger::.ctor
-
-    // method line 2261
-    .method public virtual hidebysig 
-           instance default void BuildStarted (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x2a823
-	// Code size 22 (0x16)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  call instance void class NAnt.Core.DefaultLogger::BuildStarted(object, class NAnt.Core.BuildEventArgs)
-	IL_0009:  ldarg.0 
-	IL_000a:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.MailLogger::_projectStack
-	IL_000f:  ldnull 
-	IL_0010:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
-	IL_0015:  ret 
-    } // end of method MailLogger::BuildStarted
-
-    // method line 2262
-    .method public virtual hidebysig 
-           instance default void BuildFinished (object sender, class NAnt.Core.BuildEventArgs e)  cil managed 
-    {
-        // Method begins at RVA 0x2a83c
-	// Code size 712 (0x2c8)
-	.maxstack 8
-	.locals init (
-		class [mscorlib]System.Text.Encoding	V_0,
-		class NAnt.Core.Project	V_1,
-		class NAnt.Core.PropertyDictionary	V_2,
-		bool	V_3,
-		string	V_4,
-		string	V_5,
-		bool	V_6,
-		class [System.Web]System.Web.Mail.MailMessage	V_7,
-		string	V_8,
-		string	V_9,
-		string	V_10,
-		string	V_11,
-		class [mscorlib]System.Exception	V_12)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  call instance void class NAnt.Core.DefaultLogger::BuildFinished(object, class NAnt.Core.BuildEventArgs)
-	IL_0009:  ldarg.0 
-	IL_000a:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.MailLogger::_projectStack
-	IL_000f:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
-	IL_0014:  pop 
-	IL_0015:  ldarg.0 
-	IL_0016:  ldfld class [mscorlib]System.Collections.Stack NAnt.Core.MailLogger::_projectStack
-	IL_001b:  callvirt instance int32 class [mscorlib]System.Collections.Stack::get_Count()
-	IL_0020:  brfalse IL_002b
-
-	IL_0025:  nop 
-	IL_0026:  br IL_02c7
-
-	IL_002b:  ldnull 
-	IL_002c:  stloc.0 
-	IL_002d:  ldarg.2 
-	IL_002e:  callvirt instance class NAnt.Core.Project class NAnt.Core.BuildEventArgs::get_Project()
-	IL_0033:  stloc.1 
-	IL_0034:  ldloc.1 
-	IL_0035:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_003a:  stloc.2 
-	IL_003b:  ldarg.2 
-	IL_003c:  callvirt instance class [mscorlib]System.Exception class NAnt.Core.BuildEventArgs::get_Exception()
-	IL_0041:  ldnull 
-	IL_0042:  ceq 
-	IL_0044:  stloc.3 
-	IL_0045:  ldloc.3 
-	IL_0046:  brfalse IL_0055
-
-	IL_004b:  ldstr "success"
-	IL_0050:  br IL_005a
-
-	IL_0055:  ldstr "failure"
-	IL_005a:  stloc.s 4
-	.try { // 2
-	  IL_005c:  nop 
-	  IL_005d:  ldarg.0 
-	  IL_005e:  ldloc.2 
-	  IL_005f:  ldloc.s 4
-	  IL_0061:  ldstr ".notify"
-	  IL_0066:  call string string::Concat(string, string)
-	  IL_006b:  ldstr "true"
-	  IL_0070:  ldc.i4.0 
-	  IL_0071:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
-	  IL_0076:  stloc.s 5
-	  IL_0078:  ldc.i4.1 
-	  IL_0079:  stloc.s 6
-	  .try { // 0
-	    IL_007b:  nop 
-	    IL_007c:  ldloc.s 5
-	    IL_007e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0083:  call bool class [mscorlib]System.Convert::ToBoolean(string, class [mscorlib]System.IFormatProvider)
-	    IL_0088:  stloc.s 6
-	    IL_008a:  nop 
-	    IL_008b:  leave IL_009b
-
-	  } // end .try 0
-	  catch class [mscorlib]System.Object { // 0
-	    IL_0090:  pop 
-	    IL_0091:  nop 
-	    IL_0092:  ldc.i4.1 
-	    IL_0093:  stloc.s 6
-	    IL_0095:  nop 
-	    IL_0096:  leave IL_009b
-
-	  } // end handler 0
-	  IL_009b:  ldarg.0 
-	  IL_009c:  ldloc.2 
-	  IL_009d:  ldstr "body.encoding"
-	  IL_00a2:  ldnull 
-	  IL_00a3:  ldc.i4.0 
-	  IL_00a4:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
-	  IL_00a9:  stloc.s 5
-	  .try { // 1
-	    IL_00ab:  nop 
-	    IL_00ac:  ldloc.s 5
-	    IL_00ae:  brfalse IL_00bd
-
-	    IL_00b3:  nop 
-	    IL_00b4:  ldloc.s 5
-	    IL_00b6:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::GetEncoding(string)
-	    IL_00bb:  stloc.0 
-	    IL_00bc:  nop 
-	    IL_00bd:  nop 
-	    IL_00be:  leave IL_00cb
-
-	  } // end .try 1
-	  catch class [mscorlib]System.Object { // 1
-	    IL_00c3:  pop 
-	    IL_00c4:  nop 
-	    IL_00c5:  nop 
-	    IL_00c6:  leave IL_00cb
-
-	  } // end handler 1
-	  IL_00cb:  ldloc.s 6
-	  IL_00cd:  brtrue IL_00d8
-
-	  IL_00d2:  nop 
-	  IL_00d3:  leave IL_02c7
-
-	  IL_00d8:  newobj instance void class [System.Web]System.Web.Mail.MailMessage::'.ctor'()
-	  IL_00dd:  stloc.s 7
-	  IL_00df:  ldloc.s 7
-	  IL_00e1:  ldarg.0 
-	  IL_00e2:  ldloc.2 
-	  IL_00e3:  ldstr "from"
-	  IL_00e8:  ldnull 
-	  IL_00e9:  ldc.i4.1 
-	  IL_00ea:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
-	  IL_00ef:  callvirt instance void class [System.Web]System.Web.Mail.MailMessage::set_From(string)
-	  IL_00f4:  ldloc.s 7
-	  IL_00f6:  ldarg.0 
-	  IL_00f7:  ldloc.2 
-	  IL_00f8:  ldloc.s 4
-	  IL_00fa:  ldstr ".to"
-	  IL_00ff:  call string string::Concat(string, string)
-	  IL_0104:  ldnull 
-	  IL_0105:  ldc.i4.1 
-	  IL_0106:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
-	  IL_010b:  callvirt instance void class [System.Web]System.Web.Mail.MailMessage::set_To(string)
-	  IL_0110:  ldloc.s 7
-	  IL_0112:  ldarg.0 
-	  IL_0113:  ldloc.2 
-	  IL_0114:  ldloc.s 4
-	  IL_0116:  ldstr ".subject"
-	  IL_011b:  call string string::Concat(string, string)
-	  IL_0120:  ldloc.3 
-	  IL_0121:  brfalse IL_0130
-
-	  IL_0126:  ldstr "Build Success"
-	  IL_012b:  br IL_0135
-
-	  IL_0130:  ldstr "Build Failure"
-	  IL_0135:  ldc.i4.0 
-	  IL_0136:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
-	  IL_013b:  callvirt instance void class [System.Web]System.Web.Mail.MailMessage::set_Subject(string)
-	  IL_0140:  ldloc.s 7
-	  IL_0142:  ldarg.0 
-	  IL_0143:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.MailLogger::_buffer
-	  IL_0148:  callvirt instance string object::ToString()
-	  IL_014d:  callvirt instance void class [System.Web]System.Web.Mail.MailMessage::set_Body(string)
-	  IL_0152:  ldarg.0 
-	  IL_0153:  ldloc.2 
-	  IL_0154:  ldstr "smtp.username"
-	  IL_0159:  ldnull 
-	  IL_015a:  ldc.i4.0 
-	  IL_015b:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
-	  IL_0160:  stloc.s 8
-	  IL_0162:  ldarg.0 
-	  IL_0163:  ldloc.2 
-	  IL_0164:  ldstr "smtp.port"
-	  IL_0169:  ldnull 
-	  IL_016a:  ldc.i4.0 
-	  IL_016b:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
-	  IL_0170:  stloc.s 9
-	  IL_0172:  ldarg.0 
-	  IL_0173:  ldloc.2 
-	  IL_0174:  ldstr "smtp.enablessl"
-	  IL_0179:  ldnull 
-	  IL_017a:  ldc.i4.0 
-	  IL_017b:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
-	  IL_0180:  stloc.s 10
-	  IL_0182:  ldloc.s 8
-	  IL_0184:  brtrue IL_019c
-
-	  IL_0189:  ldloc.s 9
-	  IL_018b:  brtrue IL_019c
-
-	  IL_0190:  ldarg.0 
-	  IL_0191:  ldloc.2 
-	  IL_0192:  call instance bool class NAnt.Core.MailLogger::IsSSLEnabled(class NAnt.Core.PropertyDictionary)
-	  IL_0197:  brfalse IL_01b5
-
-	  IL_019c:  nop 
-	  IL_019d:  ldloc.s 7
-	  IL_019f:  callvirt instance class [mscorlib]System.Collections.IDictionary class [System.Web]System.Web.Mail.MailMessage::get_Fields()
-	  IL_01a4:  ldstr "http://schemas.microsoft.com/cdo/configuration/sendusing"
-	  IL_01a9:  ldc.i4.2 
-	  IL_01aa:  box [mscorlib]System.Int32
-	  IL_01af:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
-	  IL_01b4:  nop 
-	  IL_01b5:  ldloc.s 8
-	  IL_01b7:  brfalse IL_01e8
-
-	  IL_01bc:  nop 
-	  IL_01bd:  ldloc.s 7
-	  IL_01bf:  callvirt instance class [mscorlib]System.Collections.IDictionary class [System.Web]System.Web.Mail.MailMessage::get_Fields()
-	  IL_01c4:  ldstr "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
-	  IL_01c9:  ldc.i4.1 
-	  IL_01ca:  box [mscorlib]System.Int32
-	  IL_01cf:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
-	  IL_01d4:  ldloc.s 7
-	  IL_01d6:  callvirt instance class [mscorlib]System.Collections.IDictionary class [System.Web]System.Web.Mail.MailMessage::get_Fields()
-	  IL_01db:  ldstr "http://schemas.microsoft.com/cdo/configuration/sendusername"
-	  IL_01e0:  ldloc.s 8
-	  IL_01e2:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
-	  IL_01e7:  nop 
-	  IL_01e8:  ldarg.0 
-	  IL_01e9:  ldloc.2 
-	  IL_01ea:  ldstr "smtp.password"
-	  IL_01ef:  ldnull 
-	  IL_01f0:  ldc.i4.0 
-	  IL_01f1:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
-	  IL_01f6:  stloc.s 11
-	  IL_01f8:  ldloc.s 11
-	  IL_01fa:  brfalse IL_0214
-
-	  IL_01ff:  nop 
-	  IL_0200:  ldloc.s 7
-	  IL_0202:  callvirt instance class [mscorlib]System.Collections.IDictionary class [System.Web]System.Web.Mail.MailMessage::get_Fields()
-	  IL_0207:  ldstr "http://schemas.microsoft.com/cdo/configuration/sendpassword"
-	  IL_020c:  ldloc.s 11
-	  IL_020e:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
-	  IL_0213:  nop 
-	  IL_0214:  ldloc.s 9
-	  IL_0216:  brfalse IL_0230
-
-	  IL_021b:  nop 
-	  IL_021c:  ldloc.s 7
-	  IL_021e:  callvirt instance class [mscorlib]System.Collections.IDictionary class [System.Web]System.Web.Mail.MailMessage::get_Fields()
-	  IL_0223:  ldstr "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
-	  IL_0228:  ldloc.s 9
-	  IL_022a:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
-	  IL_022f:  nop 
-	  IL_0230:  ldloc.s 10
-	  IL_0232:  brfalse IL_024c
-
-	  IL_0237:  nop 
-	  IL_0238:  ldloc.s 7
-	  IL_023a:  callvirt instance class [mscorlib]System.Collections.IDictionary class [System.Web]System.Web.Mail.MailMessage::get_Fields()
-	  IL_023f:  ldstr "http://schemas.microsoft.com/cdo/configuration/smtpusessl"
-	  IL_0244:  ldloc.s 10
-	  IL_0246:  callvirt instance void class [mscorlib]System.Collections.IDictionary::set_Item(object, object)
-	  IL_024b:  nop 
-	  IL_024c:  ldarg.0 
-	  IL_024d:  ldloc.s 7
-	  IL_024f:  ldloc.1 
-	  IL_0250:  ldarg.0 
-	  IL_0251:  ldloc.2 
-	  IL_0252:  ldloc.s 4
-	  IL_0254:  ldstr ".attachments"
-	  IL_0259:  call string string::Concat(string, string)
-	  IL_025e:  ldnull 
-	  IL_025f:  ldc.i4.0 
-	  IL_0260:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
-	  IL_0265:  call instance void class NAnt.Core.MailLogger::AttachFiles(class [System.Web]System.Web.Mail.MailMessage, class NAnt.Core.Project, string)
-	  IL_026a:  ldloc.0 
-	  IL_026b:  brfalse IL_027a
-
-	  IL_0270:  nop 
-	  IL_0271:  ldloc.s 7
-	  IL_0273:  ldloc.0 
-	  IL_0274:  callvirt instance void class [System.Web]System.Web.Mail.MailMessage::set_BodyEncoding(class [mscorlib]System.Text.Encoding)
-	  IL_0279:  nop 
-	  IL_027a:  ldarg.0 
-	  IL_027b:  ldloc.2 
-	  IL_027c:  ldstr "mailhost"
-	  IL_0281:  ldstr "localhost"
-	  IL_0286:  ldc.i4.0 
-	  IL_0287:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
-	  IL_028c:  call void class [System.Web]System.Web.Mail.SmtpMail::set_SmtpServer(string)
-	  IL_0291:  ldloc.s 7
-	  IL_0293:  call void class [System.Web]System.Web.Mail.SmtpMail::Send(class [System.Web]System.Web.Mail.MailMessage)
-	  IL_0298:  nop 
-	  IL_0299:  leave IL_02c7
-
-	} // end .try 2
-	catch class [mscorlib]System.Exception { // 2
-	  IL_029e:  stloc.s 12
-	  IL_02a0:  nop 
-	  IL_02a1:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	  IL_02a6:  ldstr "[MailLogger] E-mail could not be sent!"
-	  IL_02ab:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_02b0:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	  IL_02b5:  ldloc.s 12
-	  IL_02b7:  callvirt instance string object::ToString()
-	  IL_02bc:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_02c1:  nop 
-	  IL_02c2:  leave IL_02c7
-
-	} // end handler 2
-	IL_02c7:  ret 
-    } // end of method MailLogger::BuildFinished
-
-    // method line 2263
-    .method family virtual hidebysig 
-           instance default void Log (string message)  cil managed 
-    {
-        // Method begins at RVA 0x2ab5c
-	// Code size 25 (0x19)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Core.MailLogger::_buffer
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_000d:  call string class [mscorlib]System.Environment::get_NewLine()
-	IL_0012:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0017:  pop 
-	IL_0018:  ret 
-    } // end of method MailLogger::Log
-
-    // method line 2264
-    .method private hidebysig 
-           instance default string GetPropertyValue (class NAnt.Core.PropertyDictionary properties, string name, string defaultValue, bool required)  cil managed 
-    {
-        // Method begins at RVA 0x2ab78
-	// Code size 76 (0x4c)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		string	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldstr "MailLogger."
-	IL_0006:  ldarg.2 
-	IL_0007:  call string string::Concat(string, string)
-	IL_000c:  stloc.0 
-	IL_000d:  ldarg.1 
-	IL_000e:  ldloc.0 
-	IL_000f:  callvirt instance string class NAnt.Core.PropertyDictionary::get_Item(string)
-	IL_0014:  stloc.1 
-	IL_0015:  ldloc.1 
-	IL_0016:  brtrue IL_001f
-
-	IL_001b:  nop 
-	IL_001c:  ldarg.3 
-	IL_001d:  stloc.1 
-	IL_001e:  nop 
-	IL_001f:  ldarg.s 4
-	IL_0021:  brfalse IL_0043
-
-	IL_0026:  ldloc.1 
-	IL_0027:  brtrue IL_0043
-
-	IL_002c:  nop 
-	IL_002d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0032:  ldstr "Missing required parameter {0}."
-	IL_0037:  ldloc.0 
-	IL_0038:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_003d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0042:  throw 
-	IL_0043:  ldloc.1 
-	IL_0044:  stloc.2 
-	IL_0045:  br IL_004a
-
-	IL_004a:  ldloc.2 
-	IL_004b:  ret 
-    } // end of method MailLogger::GetPropertyValue
-
-    // method line 2265
-    .method private hidebysig 
-           instance default bool IsSSLEnabled (class NAnt.Core.PropertyDictionary properties)  cil managed 
-    {
-        // Method begins at RVA 0x2abd0
-	// Code size 69 (0x45)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		bool	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldstr "smtp.enablessl"
-	IL_0008:  ldnull 
-	IL_0009:  ldc.i4.0 
-	IL_000a:  call instance string class NAnt.Core.MailLogger::GetPropertyValue(class NAnt.Core.PropertyDictionary, string, string, bool)
-	IL_000f:  stloc.0 
-	IL_0010:  ldloc.0 
-	IL_0011:  brfalse IL_003c
-
-	IL_0016:  nop 
-	.try { // 0
-	  IL_0017:  nop 
-	  IL_0018:  ldloc.0 
-	  IL_0019:  call bool bool::Parse(string)
-	  IL_001e:  stloc.1 
-	  IL_001f:  leave IL_0043
-
-	} // end .try 0
-	catch class [mscorlib]System.FormatException { // 0
-	  IL_0024:  pop 
-	  IL_0025:  nop 
-	  IL_0026:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_002b:  ldstr "Invalid value '{0}' for MailLogger.smtp.enablessl property."
-	  IL_0030:  ldloc.0 
-	  IL_0031:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0036:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	  IL_003b:  throw 
-	} // end handler 0
-	IL_003c:  ldc.i4.0 
-	IL_003d:  stloc.1 
-	IL_003e:  br IL_0043
-
-	IL_0043:  ldloc.1 
-	IL_0044:  ret 
-    } // end of method MailLogger::IsSSLEnabled
-
-    // method line 2266
-    .method private hidebysig 
-           instance default void AttachFiles (class [System.Web]System.Web.Mail.MailMessage mail, class NAnt.Core.Project project, string filesetID)  cil managed 
-    {
-        // Method begins at RVA 0x2ac34
-	// Code size 184 (0xb8)
-	.maxstack 3
-	.locals init (
-		class NAnt.Core.Types.FileSet	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [System.Web]System.Web.Mail.MailAttachment	V_3,
-		class [mscorlib]System.IDisposable	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldarg.3 
-	IL_0002:  call bool string::IsNullOrEmpty(string)
-	IL_0007:  brfalse IL_0012
-
-	IL_000c:  nop 
-	IL_000d:  br IL_00b7
-
-	IL_0012:  ldarg.2 
-	IL_0013:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
-	IL_0018:  ldarg.3 
-	IL_0019:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.DataTypeBaseDictionary::get_Item(string)
-	IL_001e:  isinst NAnt.Core.Types.FileSet
-	IL_0023:  stloc.0 
-	IL_0024:  ldloc.0 
-	IL_0025:  brtrue IL_0040
-
-	IL_002a:  nop 
-	IL_002b:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	IL_0030:  ldstr "[MailLogger] Fileset \"{0}\" is not defined. No files have been attached."
-	IL_0035:  ldarg.3 
-	IL_0036:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_003b:  br IL_00b7
-
-	IL_0040:  nop 
-	IL_0041:  ldloc.0 
-	IL_0042:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0047:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_004c:  stloc.2 
-	.try { // 0
-	  IL_004d:  br IL_0091
-
-	  IL_0052:  ldloc.2 
-	  IL_0053:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0058:  stloc.1 
-	  IL_0059:  nop 
-	  IL_005a:  ldloc.1 
-	  IL_005b:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_0060:  brtrue IL_007b
-
-	  IL_0065:  nop 
-	  IL_0066:  call class [mscorlib]System.IO.TextWriter class [mscorlib]System.Console::get_Error()
-	  IL_006b:  ldstr "[MailLogger] Attachment \"{0}\" does not exist. Skipping."
-	  IL_0070:  ldarg.3 
-	  IL_0071:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_0076:  leave IL_0091
-
-	  IL_007b:  ldloc.1 
-	  IL_007c:  ldc.i4.0 
-	  IL_007d:  newobj instance void class [System.Web]System.Web.Mail.MailAttachment::'.ctor'(string, valuetype [System.Web]System.Web.Mail.MailEncoding)
-	  IL_0082:  stloc.3 
-	  IL_0083:  ldarg.1 
-	  IL_0084:  callvirt instance class [mscorlib]System.Collections.IList class [System.Web]System.Web.Mail.MailMessage::get_Attachments()
-	  IL_0089:  ldloc.3 
-	  IL_008a:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	  IL_008f:  pop 
-	  IL_0090:  nop 
-	  IL_0091:  ldloc.2 
-	  IL_0092:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0097:  brtrue IL_0052
-
-	  IL_009c:  leave IL_00b7
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00a1:  ldloc.2 
-	  IL_00a2:  isinst [mscorlib]System.IDisposable
-	  IL_00a7:  dup 
-	  IL_00a8:  stloc.s 4
-	  IL_00aa:  brfalse IL_00b6
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method Attributes::.ctor
 
-	  IL_00af:  ldloc.s 4
-	  IL_00b1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00b6:  endfinally 
-	} // end handler 0
-	IL_00b7:  ret 
-    } // end of method MailLogger::AttachFiles
+  } // end of class Attributes
 
-  } // end of class NAnt.Core.MailLogger
+  } // end of class NAnt.Core.XmlLogger
 }
 
 .namespace NAnt.Core
 {
-  .class public auto ansi serializable beforefieldinit BuildListenerCollection
+  .class public auto ansi serializable beforefieldinit TaskBuilderCollection
   	extends [mscorlib]System.Collections.CollectionBase
   {
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 2267
+    // method line 2296
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2ad08
+        // Method begins at RVA 0x2b73e
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
 	IL_0006:  nop 
 	IL_0007:  ret 
-    } // end of method BuildListenerCollection::.ctor
+    } // end of method TaskBuilderCollection::.ctor
 
-    // method line 2268
+    // method line 2297
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.BuildListenerCollection 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.TaskBuilderCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x2ad11
+        // Method begins at RVA 0x2b747
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -91431,15 +92616,15 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.BuildListenerCollection::AddRange(class NAnt.Core.BuildListenerCollection)
+	IL_0009:  call instance void class NAnt.Core.TaskBuilderCollection::AddRange(class NAnt.Core.TaskBuilderCollection)
 	IL_000e:  ret 
-    } // end of method BuildListenerCollection::.ctor
+    } // end of method TaskBuilderCollection::.ctor
 
-    // method line 2269
+    // method line 2298
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.IBuildListener[] 'value')  cil managed 
+           instance default void '.ctor' (class NAnt.Core.TaskBuilder[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x2ad21
+        // Method begins at RVA 0x2b757
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -91447,37 +92632,37 @@
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.Core.BuildListenerCollection::AddRange(class NAnt.Core.IBuildListener[])
+	IL_0009:  call instance void class NAnt.Core.TaskBuilderCollection::AddRange(class NAnt.Core.TaskBuilder[])
 	IL_000e:  ret 
-    } // end of method BuildListenerCollection::.ctor
+    } // end of method TaskBuilderCollection::.ctor
 
-    // method line 2270
+    // method line 2299
     .method public hidebysig specialname 
-           instance default class NAnt.Core.IBuildListener get_Item (int32 index)  cil managed 
+           instance default class NAnt.Core.TaskBuilder get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x2ad34
+        // Method begins at RVA 0x2b768
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class NAnt.Core.IBuildListener	V_0)
+		class NAnt.Core.TaskBuilder	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.Core.IBuildListener
+	IL_000d:  castclass NAnt.Core.TaskBuilder
 	IL_0012:  stloc.0 
 	IL_0013:  br IL_0018
 
 	IL_0018:  ldloc.0 
 	IL_0019:  ret 
-    } // end of method BuildListenerCollection::get_Item
+    } // end of method TaskBuilderCollection::get_Item
 
-    // method line 2271
+    // method line 2300
     .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.Core.IBuildListener 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.Core.TaskBuilder 'value')  cil managed 
     {
-        // Method begins at RVA 0x2ad5a
+        // Method begins at RVA 0x2b78e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -91487,13 +92672,82 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
 	IL_000e:  ret 
-    } // end of method BuildListenerCollection::set_Item
+    } // end of method TaskBuilderCollection::set_Item
 
-    // method line 2272
+    // method line 2301
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.TaskBuilder get_Item (string taskName)  cil managed 
+    {
+        // Method begins at RVA 0x2b7a0
+	// Code size 111 (0x6f)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.TaskBuilder	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.Core.TaskBuilder	V_2,
+		class [mscorlib]System.IDisposable	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0066
+
+	IL_0007:  nop 
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0014:  stloc.1 
+	.try { // 0
+	  IL_0015:  br IL_0041
+
+	  IL_001a:  ldloc.1 
+	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0020:  castclass NAnt.Core.TaskBuilder
+	  IL_0025:  stloc.0 
+	  IL_0026:  nop 
+	  IL_0027:  ldarg.1 
+	  IL_0028:  ldloc.0 
+	  IL_0029:  callvirt instance string class NAnt.Core.TaskBuilder::get_TaskName()
+	  IL_002e:  callvirt instance bool string::Equals(string)
+	  IL_0033:  brfalse IL_0040
+
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  stloc.2 
+	  IL_003b:  leave IL_006d
+
+	  IL_0040:  nop 
+	  IL_0041:  ldloc.1 
+	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0047:  brtrue IL_001a
+
+	  IL_004c:  leave IL_0065
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0051:  ldloc.1 
+	  IL_0052:  isinst [mscorlib]System.IDisposable
+	  IL_0057:  dup 
+	  IL_0058:  stloc.3 
+	  IL_0059:  brfalse IL_0064
+
+	  IL_005e:  ldloc.3 
+	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0064:  endfinally 
+	} // end handler 0
+	IL_0065:  nop 
+	IL_0066:  ldnull 
+	IL_0067:  stloc.2 
+	IL_0068:  br IL_006d
+
+	IL_006d:  ldloc.2 
+	IL_006e:  ret 
+    } // end of method TaskBuilderCollection::get_Item
+
+    // method line 2302
     .method public hidebysig 
-           instance default int32 Add (class NAnt.Core.IBuildListener item)  cil managed 
+           instance default int32 Add (class NAnt.Core.TaskBuilder item)  cil managed 
     {
-        // Method begins at RVA 0x2ad6c
+        // Method begins at RVA 0x2b82c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -91508,13 +92762,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method BuildListenerCollection::Add
+    } // end of method TaskBuilderCollection::Add
 
-    // method line 2273
+    // method line 2303
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.IBuildListener[] items)  cil managed 
+           instance default void AddRange (class NAnt.Core.TaskBuilder[] items)  cil managed 
     {
-        // Method begins at RVA 0x2ad90
+        // Method begins at RVA 0x2b850
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -91529,7 +92783,7 @@
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
 	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.Core.BuildListenerCollection::Add(class NAnt.Core.IBuildListener)
+	IL_000d:  call instance int32 class NAnt.Core.TaskBuilderCollection::Add(class NAnt.Core.TaskBuilder)
 	IL_0012:  pop 
 	IL_0013:  nop 
 	IL_0014:  ldloc.0 
@@ -91543,13 +92797,13 @@
 	IL_001c:  blt IL_0008
 
 	IL_0021:  ret 
-    } // end of method BuildListenerCollection::AddRange
+    } // end of method TaskBuilderCollection::AddRange
 
-    // method line 2274
+    // method line 2304
     .method public hidebysig 
-           instance default void AddRange (class NAnt.Core.BuildListenerCollection items)  cil managed 
+           instance default void AddRange (class NAnt.Core.TaskBuilderCollection items)  cil managed 
     {
-        // Method begins at RVA 0x2adc0
+        // Method begins at RVA 0x2b880
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -91563,8 +92817,8 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.Core.IBuildListener class NAnt.Core.BuildListenerCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.Core.BuildListenerCollection::Add(class NAnt.Core.IBuildListener)
+	IL_000c:  callvirt instance class NAnt.Core.TaskBuilder class NAnt.Core.TaskBuilderCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.Core.TaskBuilderCollection::Add(class NAnt.Core.TaskBuilder)
 	IL_0016:  pop 
 	IL_0017:  nop 
 	IL_0018:  ldloc.0 
@@ -91577,13 +92831,13 @@
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method BuildListenerCollection::AddRange
+    } // end of method TaskBuilderCollection::AddRange
 
-    // method line 2275
+    // method line 2305
     .method public hidebysig 
-           instance default bool Contains (class NAnt.Core.IBuildListener item)  cil managed 
+           instance default bool Contains (class NAnt.Core.TaskBuilder item)  cil managed 
     {
-        // Method begins at RVA 0x2adf8
+        // Method begins at RVA 0x2b8b8
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -91598,13 +92852,37 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method BuildListenerCollection::Contains
+    } // end of method TaskBuilderCollection::Contains
 
-    // method line 2276
+    // method line 2306
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.Core.IBuildListener[] 'array', int32 index)  cil managed 
+           instance default bool Contains (string taskName)  cil managed 
+    {
+        // Method begins at RVA 0x2b8dc
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance class NAnt.Core.TaskBuilder class NAnt.Core.TaskBuilderCollection::get_Item(string)
+	IL_0008:  ldnull 
+	IL_0009:  ceq 
+	IL_000b:  ldc.i4.0 
+	IL_000c:  ceq 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0014
+
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method TaskBuilderCollection::Contains
+
+    // method line 2307
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.Core.TaskBuilder[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x2ae19
+        // Method begins at RVA 0x2b8fe
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -91614,13 +92892,13 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
 	IL_000e:  ret 
-    } // end of method BuildListenerCollection::CopyTo
+    } // end of method TaskBuilderCollection::CopyTo
 
-    // method line 2277
+    // method line 2308
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.Core.IBuildListener item)  cil managed 
+           instance default int32 IndexOf (class NAnt.Core.TaskBuilder item)  cil managed 
     {
-        // Method begins at RVA 0x2ae2c
+        // Method begins at RVA 0x2b910
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -91635,13 +92913,13 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method BuildListenerCollection::IndexOf
+    } // end of method TaskBuilderCollection::IndexOf
 
-    // method line 2278
+    // method line 2309
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.Core.IBuildListener item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.Core.TaskBuilder item)  cil managed 
     {
-        // Method begins at RVA 0x2ae4d
+        // Method begins at RVA 0x2b931
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -91651,32 +92929,32 @@
 	IL_0008:  ldarg.2 
 	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
 	IL_000e:  ret 
-    } // end of method BuildListenerCollection::Insert
+    } // end of method TaskBuilderCollection::Insert
 
-    // method line 2279
+    // method line 2310
     .method public hidebysig 
-           instance default class NAnt.Core.BuildListenerEnumerator GetEnumerator ()  cil managed 
+           instance default class NAnt.Core.TaskBuilderEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x2ae60
+        // Method begins at RVA 0x2b944
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.BuildListenerEnumerator	V_0)
+		class NAnt.Core.TaskBuilderEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.Core.BuildListenerEnumerator::'.ctor'(class NAnt.Core.BuildListenerCollection)
+	IL_0002:  newobj instance void class NAnt.Core.TaskBuilderEnumerator::'.ctor'(class NAnt.Core.TaskBuilderCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method BuildListenerCollection::GetEnumerator
+    } // end of method TaskBuilderCollection::GetEnumerator
 
-    // method line 2280
+    // method line 2311
     .method public hidebysig 
-           instance default void Remove (class NAnt.Core.IBuildListener item)  cil managed 
+           instance default void Remove (class NAnt.Core.TaskBuilder item)  cil managed 
     {
-        // Method begins at RVA 0x2ae7b
+        // Method begins at RVA 0x2b95f
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -91685,28 +92963,32 @@
 	IL_0007:  ldarg.1 
 	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method BuildListenerCollection::Remove
+    } // end of method TaskBuilderCollection::Remove
 
-	.property instance class NAnt.Core.IBuildListener Item (int32)
+	.property instance class NAnt.Core.TaskBuilder Item (int32)
 	{
-		.get instance default class NAnt.Core.IBuildListener NAnt.Core.BuildListenerCollection::get_Item (int32 index) 
-		.set instance default void NAnt.Core.BuildListenerCollection::set_Item (int32 index, class NAnt.Core.IBuildListener 'value') 
+		.get instance default class NAnt.Core.TaskBuilder NAnt.Core.TaskBuilderCollection::get_Item (int32 index) 
+		.set instance default void NAnt.Core.TaskBuilderCollection::set_Item (int32 index, class NAnt.Core.TaskBuilder 'value') 
 	}
-  } // end of class NAnt.Core.BuildListenerCollection
+	.property instance class NAnt.Core.TaskBuilder Item (string)
+	{
+		.get instance default class NAnt.Core.TaskBuilder NAnt.Core.TaskBuilderCollection::get_Item (string taskName) 
+	}
+  } // end of class NAnt.Core.TaskBuilderCollection
 }
 
 .namespace NAnt.Core
 {
-  .class public auto ansi beforefieldinit BuildListenerEnumerator
+  .class public auto ansi beforefieldinit TaskBuilderEnumerator
   	extends [mscorlib]System.Object
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 2281
+    // method line 2312
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.BuildListenerCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.Core.TaskBuilderCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x2ae8c
+        // Method begins at RVA 0x2b970
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -91719,36 +93001,36 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldloc.0 
 	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.BuildListenerEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.TaskBuilderEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method BuildListenerEnumerator::.ctor
+    } // end of method TaskBuilderEnumerator::.ctor
 
-    // method line 2282
+    // method line 2313
     .method public hidebysig specialname 
-           instance default class NAnt.Core.IBuildListener get_Current ()  cil managed 
+           instance default class NAnt.Core.TaskBuilder get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2aeb0
+        // Method begins at RVA 0x2b994
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.IBuildListener	V_0)
+		class NAnt.Core.TaskBuilder	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.BuildListenerEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.TaskBuilderEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.Core.IBuildListener
+	IL_000c:  castclass NAnt.Core.TaskBuilder
 	IL_0011:  stloc.0 
 	IL_0012:  br IL_0017
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method BuildListenerEnumerator::get_Current
+    } // end of method TaskBuilderEnumerator::get_Current
 
-    // method line 2283
+    // method line 2314
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2aed8
+        // Method begins at RVA 0x2b9bc
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -91756,40 +93038,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.BuildListenerEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.TaskBuilderEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method BuildListenerEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method TaskBuilderEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 2284
+    // method line 2315
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2aef8
+        // Method begins at RVA 0x2b9dc
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.BuildListenerEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.TaskBuilderEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method BuildListenerEnumerator::MoveNext
+    } // end of method TaskBuilderEnumerator::MoveNext
 
-    // method line 2285
+    // method line 2316
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2af18
+        // Method begins at RVA 0x2b9fc
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -91797,3928 +93079,2646 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.BuildListenerEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.TaskBuilderEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method BuildListenerEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method TaskBuilderEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 2286
+    // method line 2317
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x2af38
+        // Method begins at RVA 0x2ba1c
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.BuildListenerEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.TaskBuilderEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method BuildListenerEnumerator::Reset
+    } // end of method TaskBuilderEnumerator::Reset
 
-    // method line 2287
+    // method line 2318
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x2af46
+        // Method begins at RVA 0x2ba2a
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.BuildListenerEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.Core.TaskBuilderEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method BuildListenerEnumerator::System.Collections.IEnumerator.Reset
+    } // end of method TaskBuilderEnumerator::System.Collections.IEnumerator.Reset
 
 	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default object NAnt.Core.BuildListenerEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.Core.TaskBuilderEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.Core.IBuildListener Current ()
+	.property instance class NAnt.Core.TaskBuilder Current ()
 	{
-		.get instance default class NAnt.Core.IBuildListener NAnt.Core.BuildListenerEnumerator::get_Current () 
+		.get instance default class NAnt.Core.TaskBuilder NAnt.Core.TaskBuilderEnumerator::get_Current () 
 	}
-  } // end of class NAnt.Core.BuildListenerEnumerator
+  } // end of class NAnt.Core.TaskBuilderEnumerator
 }
 
 .namespace NAnt.Core
 {
-  .class public auto ansi beforefieldinit LogWriter
-  	extends [mscorlib]System.IO.TextWriter
+  .class public auto ansi beforefieldinit TaskContainer
+  	extends NAnt.Core.Task
   {
-    .field  private initonly  class NAnt.Core.Task _task
-    .field  private initonly  valuetype NAnt.Core.Level _outputLevel
-    .field  private  string _message
+    .field  private  class [System]System.Collections.Specialized.StringCollection _subXMLElements
 
-    // method line 2288
+    // method line 2319
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Task task, valuetype NAnt.Core.Level outputLevel, class [mscorlib]System.IFormatProvider formatProvider)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2af54
-	// Code size 34 (0x22)
+        // Method begins at RVA 0x15584
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld string [mscorlib]System.String::Empty
-	IL_0006:  stfld string NAnt.Core.LogWriter::_message
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.3 
-	IL_000d:  call instance void class [mscorlib]System.IO.TextWriter::'.ctor'(class [mscorlib]System.IFormatProvider)
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  stfld class NAnt.Core.Task NAnt.Core.LogWriter::_task
-	IL_001a:  ldarg.0 
-	IL_001b:  ldarg.2 
-	IL_001c:  stfld valuetype NAnt.Core.Level NAnt.Core.LogWriter::_outputLevel
-	IL_0021:  ret 
-    } // end of method LogWriter::.ctor
+	IL_0001:  call instance void class NAnt.Core.Task::'.ctor'()
+	IL_0006:  ret 
+    } // end of method TaskContainer::.ctor
 
-    // method line 2289
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.Text.Encoding get_Encoding ()  cil managed 
+    // method line 2320
+    .method family virtual hidebysig specialname 
+           instance default bool get_CustomXmlProcessing ()  cil managed 
     {
-        // Method begins at RVA 0x2af78
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x1558c
+	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Text.Encoding	V_0)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_UTF8()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method LogWriter::get_Encoding
-
-    // method line 2290
-    .method public virtual hidebysig 
-           instance default void Write (char[] chars)  cil managed 
-    {
-        // Method begins at RVA 0x2af92
-	// Code size 20 (0x14)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldc.i4.0 
-	IL_0004:  ldarg.1 
-	IL_0005:  ldlen 
-	IL_0006:  conv.i4 
-	IL_0007:  ldc.i4.1 
-	IL_0008:  sub 
-	IL_0009:  newobj instance void string::'.ctor'(char[], int32, int32)
-	IL_000e:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string)
-	IL_0013:  ret 
-    } // end of method LogWriter::Write
-
-    // method line 2291
-    .method public virtual hidebysig 
-           instance default void Write (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2afa7
-	// Code size 20 (0x14)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  dup 
-	IL_0003:  ldfld string NAnt.Core.LogWriter::_message
-	IL_0008:  ldarg.1 
-	IL_0009:  call string string::Concat(string, string)
-	IL_000e:  stfld string NAnt.Core.LogWriter::_message
-	IL_0013:  ret 
-    } // end of method LogWriter::Write
-
-    // method line 2292
-    .method public virtual hidebysig 
-           instance default void WriteLine ()  cil managed 
-    {
-        // Method begins at RVA 0x2afbc
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldsfld string [mscorlib]System.String::Empty
-	IL_0007:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_000c:  ret 
-    } // end of method LogWriter::WriteLine
-
-    // method line 2293
-    .method public virtual hidebysig 
-           instance default void WriteLine (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2afca
-	// Code size 54 (0x36)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  dup 
-	IL_0003:  ldfld string NAnt.Core.LogWriter::_message
-	IL_0008:  ldarg.1 
-	IL_0009:  call string string::Concat(string, string)
-	IL_000e:  stfld string NAnt.Core.LogWriter::_message
-	IL_0013:  ldarg.0 
-	IL_0014:  ldfld class NAnt.Core.Task NAnt.Core.LogWriter::_task
-	IL_0019:  ldarg.0 
-	IL_001a:  call instance valuetype NAnt.Core.Level class NAnt.Core.LogWriter::get_OutputLevel()
-	IL_001f:  ldarg.0 
-	IL_0020:  ldfld string NAnt.Core.LogWriter::_message
-	IL_0025:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_002a:  ldarg.0 
-	IL_002b:  ldsfld string [mscorlib]System.String::Empty
-	IL_0030:  stfld string NAnt.Core.LogWriter::_message
-	IL_0035:  ret 
-    } // end of method LogWriter::WriteLine
-
-    // method line 2294
-    .method public virtual hidebysig 
-           instance default void WriteLine (string line, object[] args)  cil managed 
-    {
-        // Method begins at RVA 0x2b004
-	// Code size 65 (0x41)
-	.maxstack 5
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  dup 
-	IL_0003:  ldfld string NAnt.Core.LogWriter::_message
-	IL_0008:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_000d:  ldarg.1 
-	IL_000e:  ldarg.2 
-	IL_000f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0014:  call string string::Concat(string, string)
-	IL_0019:  stfld string NAnt.Core.LogWriter::_message
-	IL_001e:  ldarg.0 
-	IL_001f:  ldfld class NAnt.Core.Task NAnt.Core.LogWriter::_task
-	IL_0024:  ldarg.0 
-	IL_0025:  call instance valuetype NAnt.Core.Level class NAnt.Core.LogWriter::get_OutputLevel()
-	IL_002a:  ldarg.0 
-	IL_002b:  ldfld string NAnt.Core.LogWriter::_message
-	IL_0030:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_0035:  ldarg.0 
-	IL_0036:  ldsfld string [mscorlib]System.String::Empty
-	IL_003b:  stfld string NAnt.Core.LogWriter::_message
-	IL_0040:  ret 
-    } // end of method LogWriter::WriteLine
-
-    // method line 2295
-    .method public virtual hidebysig 
-           instance default void Flush ()  cil managed 
-    {
-        // Method begins at RVA 0x2b051
-	// Code size 54 (0x36)
-	.maxstack 8
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.LogWriter::_message
-	IL_0007:  callvirt instance int32 string::get_Length()
-	IL_000c:  brfalse IL_0035
-
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldfld class NAnt.Core.Task NAnt.Core.LogWriter::_task
-	IL_0018:  ldarg.0 
-	IL_0019:  call instance valuetype NAnt.Core.Level class NAnt.Core.LogWriter::get_OutputLevel()
-	IL_001e:  ldarg.0 
-	IL_001f:  ldfld string NAnt.Core.LogWriter::_message
-	IL_0024:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	IL_0029:  ldarg.0 
-	IL_002a:  ldsfld string [mscorlib]System.String::Empty
-	IL_002f:  stfld string NAnt.Core.LogWriter::_message
-	IL_0034:  nop 
-	IL_0035:  ret 
-    } // end of method LogWriter::Flush
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-    // method line 2296
-    .method public virtual hidebysig 
-           instance default void Close ()  cil managed 
-    {
-        // Method begins at RVA 0x2b088
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance void class [mscorlib]System.IO.TextWriter::Flush()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [mscorlib]System.IO.TextWriter::Close()
-	IL_000d:  ret 
-    } // end of method LogWriter::Close
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method TaskContainer::get_CustomXmlProcessing
 
-    // method line 2297
-    .method public virtual hidebysig 
-           instance default object InitializeLifetimeService ()  cil managed 
+    // method line 2321
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0x2b098
-	// Code size 47 (0x2f)
-	.maxstack 2
+        // Method begins at RVA 0x155a4
+	// Code size 141 (0x8d)
+	.maxstack 3
 	.locals init (
-		class [mscorlib]System.Runtime.Remoting.Lifetime.ILease	V_0,
-		object	V_1)
+		class [mscorlib]System.Reflection.MemberInfo	V_0,
+		class [mscorlib]System.Reflection.MemberInfo[]	V_1,
+		int32	V_2,
+		class NAnt.Core.Attributes.BuildElementAttribute	V_3)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance object class [mscorlib]System.MarshalByRefObject::InitializeLifetimeService()
-	IL_0007:  castclass [mscorlib]System.Runtime.Remoting.Lifetime.ILease
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  callvirt instance valuetype [mscorlib]System.Runtime.Remoting.Lifetime.LeaseState class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::get_CurrentState()
-	IL_0013:  ldc.i4.1 
-	IL_0014:  bne.un IL_0026
-
-	IL_0019:  nop 
-	IL_001a:  ldloc.0 
-	IL_001b:  ldsfld valuetype [mscorlib]System.TimeSpan [mscorlib]System.TimeSpan::Zero
-	IL_0020:  callvirt instance void class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::set_InitialLeaseTime(valuetype [mscorlib]System.TimeSpan)
-	IL_0025:  nop 
-	IL_0026:  ldloc.0 
-	IL_0027:  stloc.1 
-	IL_0028:  br IL_002d
+	IL_0002:  call instance void class NAnt.Core.Task::Initialize()
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_000d:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance class [mscorlib]System.Type object::GetType()
+	IL_0019:  ldc.i4.s 0x14
+	IL_001b:  callvirt instance class [mscorlib]System.Reflection.MemberInfo[] class [mscorlib]System.Type::GetMembers(valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_0020:  stloc.1 
+	IL_0021:  ldc.i4.0 
+	IL_0022:  stloc.2 
+	IL_0023:  br IL_0083
 
-	IL_002d:  ldloc.1 
-	IL_002e:  ret 
-    } // end of method LogWriter::InitializeLifetimeService
+	IL_0028:  ldloc.1 
+	IL_0029:  ldloc.2 
+	IL_002a:  ldelem.ref 
+	IL_002b:  stloc.0 
+	IL_002c:  nop 
+	IL_002d:  ldloc.0 
+	IL_002e:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
+	IL_0033:  ldtoken [mscorlib]System.Object
+	IL_0038:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_003d:  callvirt instance bool class [mscorlib]System.Type::Equals(class [mscorlib]System.Type)
+	IL_0042:  brfalse IL_004d
 
-    // method line 2298
-    .method family hidebysig specialname 
-           instance default valuetype NAnt.Core.Level get_OutputLevel ()  cil managed 
-    {
-        // Method begins at RVA 0x2b0d4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.Core.Level	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.Core.Level NAnt.Core.LogWriter::_outputLevel
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0047:  nop 
+	IL_0048:  br IL_007f
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method LogWriter::get_OutputLevel
+	IL_004d:  ldloc.0 
+	IL_004e:  ldtoken NAnt.Core.Attributes.BuildElementAttribute
+	IL_0053:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0058:  ldc.i4.1 
+	IL_0059:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
+	IL_005e:  castclass NAnt.Core.Attributes.BuildElementAttribute
+	IL_0063:  stloc.3 
+	IL_0064:  ldloc.3 
+	IL_0065:  brfalse IL_007e
 
-	.property instance class [mscorlib]System.Text.Encoding Encoding ()
-	{
-		.get instance default class [mscorlib]System.Text.Encoding NAnt.Core.LogWriter::get_Encoding () 
-	}
-	.property instance valuetype NAnt.Core.Level OutputLevel ()
-	{
-		.get instance default valuetype NAnt.Core.Level NAnt.Core.LogWriter::get_OutputLevel () 
-	}
-  } // end of class NAnt.Core.LogWriter
-}
+	IL_006a:  nop 
+	IL_006b:  ldarg.0 
+	IL_006c:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
+	IL_0071:  ldloc.3 
+	IL_0072:  callvirt instance string class NAnt.Core.Attributes.BuildElementAttribute::get_Name()
+	IL_0077:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_007c:  pop 
+	IL_007d:  nop 
+	IL_007e:  nop 
+	IL_007f:  ldloc.2 
+	IL_0080:  ldc.i4.1 
+	IL_0081:  add 
+	IL_0082:  stloc.2 
+	IL_0083:  ldloc.2 
+	IL_0084:  ldloc.1 
+	IL_0085:  ldlen 
+	IL_0086:  conv.i4 
+	IL_0087:  blt IL_0028
 
-.namespace NAnt.Core
-{
-  .class private auto ansi beforefieldinit ProjectSettingsLoader
-  	extends [mscorlib]System.Object
-  {
-    .field  private  class NAnt.Core.Project _project
-    .field  private  class [System.Xml]System.Xml.XmlNamespaceManager _nsMgr
-    .field  private static  bool ScannedTasks
+	IL_008c:  ret 
+    } // end of method TaskContainer::Initialize
 
-    // method line 2299
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.Core.Project project)  cil managed 
+    // method line 2322
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x2b0ef
-	// Code size 58 (0x3a)
+        // Method begins at RVA 0x1563d
+	// Code size 8 (0x8)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld class NAnt.Core.Project NAnt.Core.ProjectSettingsLoader::_project
-	IL_000e:  ldarg.0 
-	IL_000f:  newobj instance void class [System.Xml]System.Xml.NameTable::'.ctor'()
-	IL_0014:  newobj instance void class [System.Xml]System.Xml.XmlNamespaceManager::'.ctor'(class [System.Xml]System.Xml.XmlNameTable)
-	IL_0019:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.ProjectSettingsLoader::_nsMgr
-	IL_001e:  ldarg.0 
-	IL_001f:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.ProjectSettingsLoader::_nsMgr
-	IL_0024:  ldstr "nant"
-	IL_0029:  ldarg.0 
-	IL_002a:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.ProjectSettingsLoader::_nsMgr
-	IL_002f:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::get_DefaultNamespace()
-	IL_0034:  callvirt instance void class [System.Xml]System.Xml.XmlNamespaceManager::AddNamespace(string, string)
-	IL_0039:  ret 
-    } // end of method ProjectSettingsLoader::.ctor
-
-    // method line 2300
-    .method family hidebysig specialname 
-           instance default class NAnt.Core.Project get_Project ()  cil managed 
-    {
-        // Method begins at RVA 0x2b12c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.Core.Project	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.ProjectSettingsLoader::_project
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettingsLoader::get_Project
-
-    // method line 2301
-    .method private hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
-    {
-        // Method begins at RVA 0x2b148
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [System.Xml]System.Xml.XmlNamespaceManager	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.ProjectSettingsLoader::_nsMgr
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettingsLoader::get_NamespaceManager
-
-    // method line 2302
-    .method public hidebysig 
-           instance default void ProcessSettings ()  cil managed 
-    {
-        // Method begins at RVA 0x2b164
-	// Code size 111 (0x6f)
-	.maxstack 5
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Project::get_ConfigurationNode()
-	IL_000c:  brtrue IL_0017
-
-	IL_0011:  nop 
-	IL_0012:  br IL_006e
-
-	IL_0017:  ldarg.0 
-	IL_0018:  ldarg.0 
-	IL_0019:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_001e:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Project::get_ConfigurationNode()
-	IL_0023:  ldstr "nant:frameworks/nant:platform[@name='"
-	IL_0028:  ldarg.0 
-	IL_0029:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_002e:  callvirt instance string class NAnt.Core.Project::get_PlatformName()
-	IL_0033:  ldstr "']"
-	IL_0038:  call string string::Concat(string, string, string)
-	IL_003d:  ldarg.0 
-	IL_003e:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
-	IL_0043:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0048:  call instance void class NAnt.Core.ProjectSettingsLoader::ProcessPlatform(class [System.Xml]System.Xml.XmlNode)
-	IL_004d:  ldarg.0 
-	IL_004e:  ldarg.0 
-	IL_004f:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_0054:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Project::get_ConfigurationNode()
-	IL_0059:  ldstr "nant:properties/nant:property"
-	IL_005e:  ldarg.0 
-	IL_005f:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
-	IL_0064:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0069:  call instance void class NAnt.Core.ProjectSettingsLoader::ProcessGlobalProperties(class [System.Xml]System.Xml.XmlNodeList)
-	IL_006e:  ret 
-    } // end of method ProjectSettingsLoader::ProcessSettings
-
-    // method line 2303
-    .method private hidebysig 
-           instance default void ProcessPlatform (class [System.Xml]System.Xml.XmlNode platformNode)  cil managed 
-    {
-        // Method begins at RVA 0x2b1e0
-	// Code size 446 (0x1be)
-	.maxstack 4
-	.locals init (
-		class NAnt.Core.Types.FileSet	V_0,
-		class [System.Xml]System.Xml.XmlNode	V_1,
-		class NAnt.Core.Tasks.LoadTasksTask	V_2,
-		class NAnt.Core.Tasks.LoadTasksTask	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "platformNode"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldsfld bool NAnt.Core.ProjectSettingsLoader::ScannedTasks
-	IL_0018:  brtrue IL_010a
-
-	IL_001d:  nop 
-	IL_001e:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0023:  stloc.0 
-	IL_0024:  ldloc.0 
-	IL_0025:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_002a:  callvirt instance string class [mscorlib]System.AppDomain::get_BaseDirectory()
-	IL_002f:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0034:  callvirt instance void class NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_0039:  ldloc.0 
-	IL_003a:  ldarg.0 
-	IL_003b:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_0040:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_0045:  ldloc.0 
-	IL_0046:  ldarg.0 
-	IL_0047:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
-	IL_004c:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0051:  ldloc.0 
-	IL_0052:  ldarg.0 
-	IL_0053:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_0058:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_005d:  ldloc.0 
-	IL_005e:  ldstr "platform-task-assemblies"
-	IL_0063:  callvirt instance void class NAnt.Core.DataTypeBase::set_ID(string)
-	IL_0068:  ldarg.1 
-	IL_0069:  ldstr "nant:task-assemblies"
-	IL_006e:  ldarg.0 
-	IL_006f:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
-	IL_0074:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0079:  stloc.1 
-	IL_007a:  ldloc.1 
-	IL_007b:  brfalse IL_0095
-
-	IL_0080:  nop 
-	IL_0081:  ldloc.0 
-	IL_0082:  ldloc.1 
-	IL_0083:  ldarg.0 
-	IL_0084:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_0089:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
-	IL_008e:  ldnull 
-	IL_008f:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
-	IL_0094:  nop 
-	IL_0095:  newobj instance void class NAnt.Core.Tasks.LoadTasksTask::'.ctor'()
-	IL_009a:  stloc.2 
-	IL_009b:  ldloc.2 
-	IL_009c:  ldarg.0 
-	IL_009d:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_00a2:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_00a7:  ldloc.2 
-	IL_00a8:  ldarg.0 
-	IL_00a9:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
-	IL_00ae:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_00b3:  ldloc.2 
-	IL_00b4:  ldarg.0 
-	IL_00b5:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_00ba:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_00bf:  ldloc.2 
-	IL_00c0:  ldloc.0 
-	IL_00c1:  callvirt instance void class NAnt.Core.Tasks.LoadTasksTask::set_TaskFileSet(class NAnt.Core.Types.FileSet)
-	IL_00c6:  ldloc.2 
-	IL_00c7:  ldc.i4.0 
-	IL_00c8:  callvirt instance void class NAnt.Core.Task::set_FailOnError(bool)
-	IL_00cd:  ldloc.2 
-	IL_00ce:  ldarg.0 
-	IL_00cf:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_00d4:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
-	IL_00d9:  ldc.i4 1000
-	IL_00de:  bne.un IL_00ed
-
-	IL_00e3:  ldc.i4 1000
-	IL_00e8:  br IL_00f2
-
-	IL_00ed:  ldc.i4 4000
-	IL_00f2:  callvirt instance void class NAnt.Core.Task::set_Threshold(valuetype NAnt.Core.Level)
-	IL_00f7:  ldloc.2 
-	IL_00f8:  callvirt instance void class NAnt.Core.Task::Execute()
-	IL_00fd:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetExecutingAssembly()
-	IL_0102:  ldloc.2 
-	IL_0103:  call bool class NAnt.Core.TypeFactory::ScanAssembly(class [mscorlib]System.Reflection.Assembly, class NAnt.Core.Task)
-	IL_0108:  pop 
-	IL_0109:  nop 
-	IL_010a:  ldarg.0 
-	IL_010b:  ldarg.1 
-	IL_010c:  call instance void class NAnt.Core.ProjectSettingsLoader::ProcessFrameworks(class [System.Xml]System.Xml.XmlNode)
-	IL_0111:  ldarg.0 
-	IL_0112:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_0117:  ldarg.0 
-	IL_0118:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.ProjectSettingsLoader::ConfigureRuntimeFramework()
-	IL_011d:  callvirt instance void class NAnt.Core.Project::set_RuntimeFramework(class NAnt.Core.FrameworkInfo)
-	IL_0122:  ldarg.0 
-	IL_0123:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_0128:  ldarg.0 
-	IL_0129:  ldarg.1 
-	IL_012a:  call instance class NAnt.Core.FrameworkInfo class NAnt.Core.ProjectSettingsLoader::ConfigureTargetFramework(class [System.Xml]System.Xml.XmlNode)
-	IL_012f:  callvirt instance void class NAnt.Core.Project::set_TargetFramework(class NAnt.Core.FrameworkInfo)
-	IL_0134:  ldsfld bool NAnt.Core.ProjectSettingsLoader::ScannedTasks
-	IL_0139:  brtrue IL_01bd
-
-	IL_013e:  nop 
-	IL_013f:  newobj instance void class NAnt.Core.Tasks.LoadTasksTask::'.ctor'()
-	IL_0144:  stloc.3 
-	IL_0145:  ldloc.3 
-	IL_0146:  ldarg.0 
-	IL_0147:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_014c:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_0151:  ldloc.3 
-	IL_0152:  ldarg.0 
-	IL_0153:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
-	IL_0158:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_015d:  ldloc.3 
-	IL_015e:  ldarg.0 
-	IL_015f:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_0164:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_0169:  ldloc.3 
-	IL_016a:  ldarg.0 
-	IL_016b:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_0170:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
-	IL_0175:  callvirt instance class NAnt.Core.Types.FileSet class NAnt.Core.FrameworkInfo::get_TaskAssemblies()
-	IL_017a:  callvirt instance void class NAnt.Core.Tasks.LoadTasksTask::set_TaskFileSet(class NAnt.Core.Types.FileSet)
-	IL_017f:  ldloc.3 
-	IL_0180:  ldc.i4.0 
-	IL_0181:  callvirt instance void class NAnt.Core.Task::set_FailOnError(bool)
-	IL_0186:  ldloc.3 
-	IL_0187:  ldarg.0 
-	IL_0188:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_018d:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
-	IL_0192:  ldc.i4 1000
-	IL_0197:  bne.un IL_01a6
-
-	IL_019c:  ldc.i4 1000
-	IL_01a1:  br IL_01ab
-
-	IL_01a6:  ldc.i4 4000
-	IL_01ab:  callvirt instance void class NAnt.Core.Task::set_Threshold(valuetype NAnt.Core.Level)
-	IL_01b0:  ldloc.3 
-	IL_01b1:  callvirt instance void class NAnt.Core.Task::Execute()
-	IL_01b6:  ldc.i4.1 
-	IL_01b7:  stsfld bool NAnt.Core.ProjectSettingsLoader::ScannedTasks
-	IL_01bc:  nop 
-	IL_01bd:  ret 
-    } // end of method ProjectSettingsLoader::ProcessPlatform
-
-    // method line 2304
-    .method private hidebysig 
-           instance default void ProcessFrameworks (class [System.Xml]System.Xml.XmlNode platformNode)  cil managed 
-    {
-        // Method begins at RVA 0x2b3ac
-	// Code size 153 (0x99)
-	.maxstack 3
-	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.FrameworkInfo	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "platformNode"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  nop 
-	IL_0014:  ldarg.1 
-	IL_0015:  ldstr "nant:framework"
-	IL_001a:  ldarg.0 
-	IL_001b:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
-	IL_0020:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0025:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_002a:  stloc.1 
-	.try { // 0
-	  IL_002b:  br IL_0074
-
-	  IL_0030:  ldloc.1 
-	  IL_0031:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0036:  castclass [System.Xml]System.Xml.XmlNode
-	  IL_003b:  stloc.0 
-	  IL_003c:  nop 
-	  IL_003d:  ldloc.0 
-	  IL_003e:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
-	  IL_0043:  ldc.i4.1 
-	  IL_0044:  beq IL_004f
-
-	  IL_0049:  nop 
-	  IL_004a:  leave IL_0074
-
-	  IL_004f:  ldloc.0 
-	  IL_0050:  ldarg.0 
-	  IL_0051:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
-	  IL_0056:  newobj instance void class NAnt.Core.FrameworkInfo::'.ctor'(class [System.Xml]System.Xml.XmlNode, class [System.Xml]System.Xml.XmlNamespaceManager)
-	  IL_005b:  stloc.2 
-	  IL_005c:  ldarg.0 
-	  IL_005d:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	  IL_0062:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
-	  IL_0067:  ldloc.2 
-	  IL_0068:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	  IL_006d:  ldloc.2 
-	  IL_006e:  callvirt instance void class NAnt.Core.FrameworkInfoDictionary::Add(string, class NAnt.Core.FrameworkInfo)
-	  IL_0073:  nop 
-	  IL_0074:  ldloc.1 
-	  IL_0075:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_007a:  brtrue IL_0030
-
-	  IL_007f:  leave IL_0098
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0084:  ldloc.1 
-	  IL_0085:  isinst [mscorlib]System.IDisposable
-	  IL_008a:  dup 
-	  IL_008b:  stloc.3 
-	  IL_008c:  brfalse IL_0097
-
-	  IL_0091:  ldloc.3 
-	  IL_0092:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0097:  endfinally 
-	} // end handler 0
-	IL_0098:  ret 
-    } // end of method ProjectSettingsLoader::ProcessFrameworks
+	IL_0002:  callvirt instance void class NAnt.Core.TaskContainer::ExecuteChildTasks()
+	IL_0007:  ret 
+    } // end of method TaskContainer::ExecuteTask
 
-    // method line 2305
-    .method private hidebysig 
-           instance default void ProcessGlobalProperties (class [System.Xml]System.Xml.XmlNodeList propertyNodes)  cil managed 
+    // method line 2323
+    .method family virtual hidebysig newslot 
+           instance default void ExecuteChildTasks ()  cil managed 
     {
-        // Method begins at RVA 0x2b464
-	// Code size 143 (0x8f)
-	.maxstack 3
+        // Method begins at RVA 0x15648
+	// Code size 400 (0x190)
+	.maxstack 7
 	.locals init (
 		class [System.Xml]System.Xml.XmlNode	V_0,
 		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.Core.Tasks.PropertyTask	V_2,
-		class NAnt.Core.Project	V_3,
+		class NAnt.Core.Task	V_2,
+		class NAnt.Core.DataTypeBase	V_3,
 		class [mscorlib]System.IDisposable	V_4)
 	IL_0000:  nop 
 	IL_0001:  nop 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_0008:  stloc.1 
+	IL_0002:  ldarg.0 
+	IL_0003:  callvirt instance class [System.Xml]System.Xml.XmlNode class NAnt.Core.Element::get_XmlNode()
+	IL_0008:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNode::GetEnumerator()
+	IL_000d:  stloc.1 
 	.try { // 0
-	  IL_0009:  br IL_0068
-
-	  IL_000e:  ldloc.1 
-	  IL_000f:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0014:  castclass [System.Xml]System.Xml.XmlNode
-	  IL_0019:  stloc.0 
-	  IL_001a:  nop 
-	  IL_001b:  ldloc.0 
-	  IL_001c:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
-	  IL_0021:  ldc.i4.1 
-	  IL_0022:  beq IL_002d
-
-	  IL_0027:  nop 
-	  IL_0028:  leave IL_0068
-
-	  IL_002d:  newobj instance void class NAnt.Core.Tasks.PropertyTask::'.ctor'()
-	  IL_0032:  stloc.2 
-	  IL_0033:  ldloc.2 
-	  IL_0034:  ldarg.0 
-	  IL_0035:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	  IL_003a:  stloc.3 
-	  IL_003b:  ldloc.2 
-	  IL_003c:  ldloc.3 
-	  IL_003d:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	  IL_0042:  ldloc.3 
-	  IL_0043:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	  IL_0048:  ldloc.2 
-	  IL_0049:  ldarg.0 
-	  IL_004a:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.ProjectSettingsLoader::get_NamespaceManager()
-	  IL_004f:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	  IL_0054:  ldloc.2 
-	  IL_0055:  callvirt instance void class NAnt.Core.Task::InitializeTaskConfiguration()
-	  IL_005a:  ldloc.2 
-	  IL_005b:  ldloc.0 
-	  IL_005c:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode)
-	  IL_0061:  ldloc.2 
-	  IL_0062:  callvirt instance void class NAnt.Core.Task::Execute()
-	  IL_0067:  nop 
-	  IL_0068:  ldloc.1 
-	  IL_0069:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_006e:  brtrue IL_000e
-
-	  IL_0073:  leave IL_008e
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0078:  ldloc.1 
-	  IL_0079:  isinst [mscorlib]System.IDisposable
-	  IL_007e:  dup 
-	  IL_007f:  stloc.s 4
-	  IL_0081:  brfalse IL_008d
-
-	  IL_0086:  ldloc.s 4
-	  IL_0088:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_008d:  endfinally 
-	} // end handler 0
-	IL_008e:  ret 
-    } // end of method ProjectSettingsLoader::ProcessGlobalProperties
+	  IL_000e:  br IL_0169
 
-    // method line 2306
-    .method private hidebysig 
-           instance default class NAnt.Core.FrameworkInfo ConfigureRuntimeFramework ()  cil managed 
-    {
-        // Method begins at RVA 0x2b510
-	// Code size 346 (0x15a)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0,
-		string	V_1,
-		class [mscorlib]System.Version	V_2,
-		class NAnt.Core.FrameworkInfo	V_3,
-		class NAnt.Core.FrameworkInfoDictionaryEnumerator	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		class NAnt.Core.FrameworkInfo	V_6,
-		int32	V_7,
-		class NAnt.Core.FrameworkInfo	V_8,
-		class NAnt.Core.FrameworkInfo	V_9)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldsfld bool NAnt.Core.PlatformHelper::IsMono
-	IL_000c:  brfalse IL_001b
+	  IL_0013:  ldloc.1 
+	  IL_0014:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0019:  castclass [System.Xml]System.Xml.XmlNode
+	  IL_001e:  stloc.0 
+	  IL_001f:  nop 
+	  IL_0020:  ldloc.0 
+	  IL_0021:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
+	  IL_0026:  ldc.i4.1 
+	  IL_0027:  bne.un IL_004c
 
-	IL_0011:  ldstr "mono"
-	IL_0016:  br IL_0020
+	  IL_002c:  ldloc.0 
+	  IL_002d:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_NamespaceURI()
+	  IL_0032:  ldarg.0 
+	  IL_0033:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Element::get_NamespaceManager()
+	  IL_0038:  ldstr "nant"
+	  IL_003d:  callvirt instance string class [System.Xml]System.Xml.XmlNamespaceManager::LookupNamespace(string)
+	  IL_0042:  callvirt instance bool string::Equals(string)
+	  IL_0047:  brtrue IL_0052
 
-	IL_001b:  ldstr "net"
-	IL_0020:  stloc.1 
-	IL_0021:  call class [mscorlib]System.Version class [mscorlib]System.Environment::get_Version()
-	IL_0026:  ldc.i4.3 
-	IL_0027:  callvirt instance string class [mscorlib]System.Version::ToString(int32)
-	IL_002c:  newobj instance void class [mscorlib]System.Version::'.ctor'(string)
-	IL_0031:  stloc.2 
-	IL_0032:  nop 
-	IL_0033:  ldarg.0 
-	IL_0034:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_0039:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
-	IL_003e:  callvirt instance class NAnt.Core.FrameworkInfoDictionaryEnumerator class NAnt.Core.FrameworkInfoDictionary::GetEnumerator()
-	IL_0043:  stloc.s 4
-	.try { // 0
-	  IL_0045:  br IL_0089
+	  IL_004c:  nop 
+	  IL_004d:  leave IL_0169
 
-	  IL_004a:  ldloc.s 4
-	  IL_004c:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionaryEnumerator::get_Current()
-	  IL_0051:  stloc.3 
-	  IL_0052:  nop 
-	  IL_0053:  ldloc.3 
-	  IL_0054:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Family()
-	  IL_0059:  ldloc.1 
-	  IL_005a:  call bool string::op_Inequality(string, string)
-	  IL_005f:  brfalse IL_0069
+	  IL_0052:  ldarg.0 
+	  IL_0053:  ldloc.0 
+	  IL_0054:  callvirt instance bool class NAnt.Core.TaskContainer::IsPrivateXmlElement(class [System.Xml]System.Xml.XmlNode)
+	  IL_0059:  brfalse IL_0064
 
-	  IL_0064:  leave IL_0089
+	  IL_005e:  nop 
+	  IL_005f:  leave IL_0169
 
-	  IL_0069:  ldloc.3 
-	  IL_006a:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
-	  IL_006f:  ldloc.2 
-	  IL_0070:  call bool class [mscorlib]System.Version::op_Inequality(class [mscorlib]System.Version, class [mscorlib]System.Version)
-	  IL_0075:  brfalse IL_0080
+	  IL_0064:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
+	  IL_0069:  ldloc.0 
+	  IL_006a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_006f:  callvirt instance bool class NAnt.Core.TaskBuilderCollection::Contains(string)
+	  IL_0074:  brfalse IL_009d
 
-	  IL_007a:  nop 
-	  IL_007b:  leave IL_0089
+	  IL_0079:  nop 
+	  IL_007a:  ldarg.0 
+	  IL_007b:  ldloc.0 
+	  IL_007c:  callvirt instance class NAnt.Core.Task class NAnt.Core.TaskContainer::CreateChildTask(class [System.Xml]System.Xml.XmlNode)
+	  IL_0081:  stloc.2 
+	  IL_0082:  ldloc.2 
+	  IL_0083:  brfalse IL_0097
 
-	  IL_0080:  ldloc.0 
-	  IL_0081:  ldloc.3 
-	  IL_0082:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0087:  pop 
 	  IL_0088:  nop 
-	  IL_0089:  ldloc.s 4
-	  IL_008b:  callvirt instance bool class NAnt.Core.FrameworkInfoDictionaryEnumerator::MoveNext()
-	  IL_0090:  brtrue IL_004a
-
-	  IL_0095:  leave IL_00b1
-
-	} // end .try 0
-	finally  { // 0
-	  IL_009a:  ldloc.s 4
-	  IL_009c:  isinst [mscorlib]System.IDisposable
-	  IL_00a1:  dup 
-	  IL_00a2:  stloc.s 5
-	  IL_00a4:  brfalse IL_00b0
-
-	  IL_00a9:  ldloc.s 5
-	  IL_00ab:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00b0:  endfinally 
-	} // end handler 0
-	IL_00b1:  ldnull 
-	IL_00b2:  stloc.s 6
-	IL_00b4:  ldc.i4.0 
-	IL_00b5:  stloc.s 7
-	IL_00b7:  br IL_0118
-
-	IL_00bc:  nop 
-	IL_00bd:  ldloc.0 
-	IL_00be:  ldloc.s 7
-	IL_00c0:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	IL_00c5:  castclass NAnt.Core.FrameworkInfo
-	IL_00ca:  stloc.s 8
-	.try { // 1
-	  IL_00cc:  nop 
-	  IL_00cd:  ldloc.s 8
-	  IL_00cf:  callvirt instance void class NAnt.Core.FrameworkInfo::Validate()
-	  IL_00d4:  ldloc.s 8
-	  IL_00d6:  stloc.s 6
-	  IL_00d8:  ldloc.s 6
-	  IL_00da:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
-	  IL_00df:  brfalse IL_00ea
-
-	  IL_00e4:  nop 
-	  IL_00e5:  leave IL_0125
-
-	  IL_00ea:  nop 
-	  IL_00eb:  leave IL_0111
-
-	} // end .try 1
-	catch class [mscorlib]System.Object { // 1
-	  IL_00f0:  pop 
-	  IL_00f1:  nop 
-	  IL_00f2:  ldloc.s 6
-	  IL_00f4:  brtrue IL_010b
-
-	  IL_00f9:  ldloc.s 7
-	  IL_00fb:  ldloc.0 
-	  IL_00fc:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	  IL_0101:  ldc.i4.1 
-	  IL_0102:  sub 
-	  IL_0103:  bne.un IL_010b
-
-	  IL_0108:  nop 
-	  IL_0109:  rethrow 
-	  IL_010b:  nop 
-	  IL_010c:  leave IL_0111
-
-	} // end handler 1
-	IL_0111:  nop 
-	IL_0112:  ldloc.s 7
-	IL_0114:  ldc.i4.1 
-	IL_0115:  add 
-	IL_0116:  stloc.s 7
-	IL_0118:  ldloc.s 7
-	IL_011a:  ldloc.0 
-	IL_011b:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_0120:  blt IL_00bc
-
-	IL_0125:  ldloc.s 6
-	IL_0127:  brtrue IL_014e
-
-	IL_012c:  nop 
-	IL_012d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0132:  ldstr "NA1062"
-	IL_0137:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_013c:  ldloc.1 
-	IL_013d:  ldloc.2 
-	IL_013e:  callvirt instance string object::ToString()
-	IL_0143:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0148:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_014d:  throw 
-	IL_014e:  ldloc.s 6
-	IL_0150:  stloc.s 9
-	IL_0152:  br IL_0157
-
-	IL_0157:  ldloc.s 9
-	IL_0159:  ret 
-    } // end of method ProjectSettingsLoader::ConfigureRuntimeFramework
-
-    // method line 2307
-    .method private hidebysig 
-           instance default class NAnt.Core.FrameworkInfo ConfigureTargetFramework (class [System.Xml]System.Xml.XmlNode platformNode)  cil managed 
-    {
-        // Method begins at RVA 0x2b694
-	// Code size 170 (0xaa)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		class NAnt.Core.FrameworkInfo	V_1,
-		class NAnt.Core.FrameworkInfo	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "default"
-	IL_0007:  call string class NAnt.Core.ProjectSettingsLoader::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  brfalse IL_0023
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ldstr "auto"
-	IL_0019:  call bool string::op_Equality(string, string)
-	IL_001e:  brfalse IL_0035
-
-	IL_0023:  nop 
-	IL_0024:  ldarg.0 
-	IL_0025:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_002a:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
-	IL_002f:  stloc.1 
-	IL_0030:  br IL_00a8
-
-	IL_0035:  ldarg.0 
-	IL_0036:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_003b:  callvirt instance class NAnt.Core.FrameworkInfoDictionary class NAnt.Core.Project::get_Frameworks()
-	IL_0040:  ldloc.0 
-	IL_0041:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.FrameworkInfoDictionary::get_Item(string)
-	IL_0046:  stloc.2 
-	IL_0047:  ldloc.2 
-	IL_0048:  brtrue IL_00a1
-
-	IL_004d:  nop 
-	IL_004e:  ldarg.0 
-	IL_004f:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_0054:  ldc.i4 4000
-	IL_0059:  ldstr "NA1178"
-	IL_005e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0063:  ldc.i4.2 
-	IL_0064:  newarr [mscorlib]System.Object
-	IL_0069:  dup 
-	IL_006a:  ldc.i4.0 
-	IL_006b:  ldloc.0 
-	IL_006c:  stelem.ref 
-	IL_006d:  dup 
-	IL_006e:  ldc.i4.1 
-	IL_006f:  ldarg.0 
-	IL_0070:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_0075:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
-	IL_007a:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
-	IL_007f:  stelem.ref 
-	IL_0080:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0085:  ldarg.0 
-	IL_0086:  call instance class NAnt.Core.Project class NAnt.Core.ProjectSettingsLoader::get_Project()
-	IL_008b:  ldc.i4 4000
-	IL_0090:  ldstr ""
-	IL_0095:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string)
-	IL_009a:  ldnull 
-	IL_009b:  stloc.1 
-	IL_009c:  br IL_00a8
-
-	IL_00a1:  ldloc.2 
-	IL_00a2:  stloc.1 
-	IL_00a3:  br IL_00a8
-
-	IL_00a8:  ldloc.1 
-	IL_00a9:  ret 
-    } // end of method ProjectSettingsLoader::ConfigureTargetFramework
-
-    // method line 2308
-    .method private static hidebysig 
-           default string GetXmlAttributeValue (class [System.Xml]System.Xml.XmlNode xmlNode, string attributeName)  cil managed 
-    {
-        // Method begins at RVA 0x2b74c
-	// Code size 58 (0x3a)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		class [System.Xml]System.Xml.XmlAttribute	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  brfalse IL_0031
-
-	IL_0009:  nop 
-	IL_000a:  ldarg.0 
-	IL_000b:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0010:  ldarg.1 
-	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNamedNodeMap::GetNamedItem(string)
-	IL_0016:  castclass [System.Xml]System.Xml.XmlAttribute
-	IL_001b:  stloc.1 
-	IL_001c:  ldloc.1 
-	IL_001d:  brfalse IL_0030
-
-	IL_0022:  nop 
-	IL_0023:  ldloc.1 
-	IL_0024:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_0029:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_002e:  stloc.0 
-	IL_002f:  nop 
-	IL_0030:  nop 
-	IL_0031:  ldloc.0 
-	IL_0032:  stloc.2 
-	IL_0033:  br IL_0038
-
-	IL_0038:  ldloc.2 
-	IL_0039:  ret 
-    } // end of method ProjectSettingsLoader::GetXmlAttributeValue
-
-	.property instance class NAnt.Core.Project Project ()
-	{
-		.get instance default class NAnt.Core.Project NAnt.Core.ProjectSettingsLoader::get_Project () 
-	}
-	.property instance class [System.Xml]System.Xml.XmlNamespaceManager NamespaceManager ()
-	{
-		.get instance default class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.ProjectSettingsLoader::get_NamespaceManager () 
-	}
-  } // end of class NAnt.Core.ProjectSettingsLoader
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi serializable PlatformHelper
-  	extends [mscorlib]System.Object
-  {
-    .field  public static initonly  bool IsMono
-    .field  public static initonly  bool IsWin32
-    .custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string) =  (
-		01 00 16 55 73 65 20 49 73 57 69 6E 64 6F 77 73   // ...Use IsWindows
-		20 69 6E 73 74 65 61 64 2E 00 00                ) //  instead...
-
-    .field  public static initonly  bool IsUnix
-
-    // method line 2309
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2b794
-	// Code size 87 (0x57)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldstr "System.MonoType"
-	IL_0006:  ldc.i4.0 
-	IL_0007:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool)
-	IL_000c:  ldnull 
-	IL_000d:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_0012:  brfalse IL_001f
-
-	IL_0017:  nop 
-	IL_0018:  ldc.i4.1 
-	IL_0019:  stsfld bool NAnt.Core.PlatformHelper::IsMono
-	IL_001e:  nop 
-	IL_001f:  call class [mscorlib]System.OperatingSystem class [mscorlib]System.Environment::get_OSVersion()
-	IL_0024:  callvirt instance valuetype [mscorlib]System.PlatformID class [mscorlib]System.OperatingSystem::get_Platform()
-	IL_0029:  stloc.0 
-	IL_002a:  ldloc.0 
-	IL_002b:  ldc.i4.4 
-	IL_002c:  beq IL_0043
-
-	IL_0031:  ldloc.0 
-	IL_0032:  ldc.i4.6 
-	IL_0033:  beq IL_0043
-
-	IL_0038:  ldloc.0 
-	IL_0039:  ldc.i4 128
-	IL_003e:  bne.un IL_0049
-
-	IL_0043:  ldc.i4.1 
-	IL_0044:  stsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_0049:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_004e:  ldc.i4.0 
-	IL_004f:  ceq 
-	IL_0051:  stsfld bool NAnt.Core.PlatformHelper::IsWin32
-	IL_0056:  ret 
-    } // end of method PlatformHelper::.cctor
-
-    // method line 2310
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2b7f7
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method PlatformHelper::.ctor
-
-    // method line 2311
-    .method public static hidebysig 
-           default bool IsVolumeCaseSensitive (string path)  cil managed 
-    {
-        // Method begins at RVA 0x2b800
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method PlatformHelper::IsVolumeCaseSensitive
-
-    // method line 2312
-    .method assembly static hidebysig specialname 
-           default bool get_Is64Bit ()  cil managed 
-    {
-        // Method begins at RVA 0x2b81c
-	// Code size 17 (0x11)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  call int32 native int::get_Size()
-	IL_0006:  ldc.i4.8 
-	IL_0007:  ceq 
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_000f
-
-	IL_000f:  ldloc.0 
-	IL_0010:  ret 
-    } // end of method PlatformHelper::get_Is64Bit
-
-    // method line 2313
-    .method assembly static hidebysig specialname 
-           default bool get_Is32Bit ()  cil managed 
-    {
-        // Method begins at RVA 0x2b83c
-	// Code size 17 (0x11)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  call int32 native int::get_Size()
-	IL_0006:  ldc.i4.4 
-	IL_0007:  ceq 
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_000f
-
-	IL_000f:  ldloc.0 
-	IL_0010:  ret 
-    } // end of method PlatformHelper::get_Is32Bit
-
-    // method line 2314
-    .method public static hidebysig specialname 
-           default bool get_IsWindows ()  cil managed 
-    {
-        // Method begins at RVA 0x2b85c
-	// Code size 17 (0x11)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldsfld bool NAnt.Core.PlatformHelper::IsUnix
-	IL_0006:  ldc.i4.0 
-	IL_0007:  ceq 
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_000f
-
-	IL_000f:  ldloc.0 
-	IL_0010:  ret 
-    } // end of method PlatformHelper::get_IsWindows
-
-	.property bool Is64Bit ()
-	{
-		.get default bool NAnt.Core.PlatformHelper::get_Is64Bit () 
-	}
-	.property bool Is32Bit ()
-	{
-		.get default bool NAnt.Core.PlatformHelper::get_Is32Bit () 
-	}
-	.property bool IsWindows ()
-	{
-		.get default bool NAnt.Core.PlatformHelper::get_IsWindows () 
-	}
-  } // end of class NAnt.Core.PlatformHelper
-}
-
-.namespace NAnt.Core
-{
-  .class public auto ansi beforefieldinit CommandLineOptions
-  	extends [mscorlib]System.Object
-  {
-    .field  private  string _targetFramework
-    .field  private  string _buildFile
-    .field  private  bool _noLogo
-    .field  private  bool _showHelp
-    .field  private  bool _quiet
-    .field  private  bool _verbose
-    .field  private  bool _debug
-    .field  private  bool _emacsMode
-    .field  private  int32 _indentationLevel
-    .field  private  bool _findInParent
-    .field  private  class [System]System.Collections.Specialized.NameValueCollection _properties
-    .field  private  string _loggerType
-    .field  private  class [mscorlib]System.IO.FileInfo _logFile
-    .field  private  class [System]System.Collections.Specialized.StringCollection _listeners
-    .field  private  class [System]System.Collections.Specialized.StringCollection _extensionAssemblies
-    .field  private  class [System]System.Collections.Specialized.StringCollection _targets
-    .field  private  bool _showProjectHelp
-    .field  private  bool _pause
-
-    // method line 2315
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2b879
-	// Code size 58 (0x3a)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld int32 NAnt.Core.CommandLineOptions::_indentationLevel
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class [System]System.Collections.Specialized.NameValueCollection::'.ctor'()
-	IL_000d:  stfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.CommandLineOptions::_properties
-	IL_0012:  ldarg.0 
-	IL_0013:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0018:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::_listeners
-	IL_001d:  ldarg.0 
-	IL_001e:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0023:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::_extensionAssemblies
-	IL_0028:  ldarg.0 
-	IL_0029:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_002e:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::_targets
-	IL_0033:  ldarg.0 
-	IL_0034:  call instance void object::'.ctor'()
-	IL_0039:  ret 
-    } // end of method CommandLineOptions::.ctor
-
-    // method line 2316
-    .method public hidebysig specialname 
-           instance default string get_TargetFramework ()  cil managed 
-    {
-        // Method begins at RVA 0x2b8b4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.CommandLineOptions::_targetFramework
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_TargetFramework
-
-    // method line 2317
-    .method public hidebysig specialname 
-           instance default void set_TargetFramework (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2b8cf
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.CommandLineOptions::_targetFramework
-	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_TargetFramework
-
-    // method line 2318
-    .method public hidebysig specialname 
-           instance default string get_DefaultFramework ()  cil managed 
-    {
-        // Method begins at RVA 0x2b8dc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.CommandLineOptions::_targetFramework
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0089:  ldloc.2 
+	  IL_008a:  ldarg.0 
+	  IL_008b:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	  IL_0090:  ldloc.2 
+	  IL_0091:  callvirt instance void class NAnt.Core.Task::Execute()
+	  IL_0096:  nop 
+	  IL_0097:  nop 
+	  IL_0098:  br IL_0168
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_DefaultFramework
+	  IL_009d:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
+	  IL_00a2:  ldloc.0 
+	  IL_00a3:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_00a8:  callvirt instance bool class NAnt.Core.DataTypeBaseBuilderCollection::Contains(string)
+	  IL_00ad:  brfalse IL_013b
 
-    // method line 2319
-    .method public hidebysig specialname 
-           instance default void set_DefaultFramework (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2b8f7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.CommandLineOptions::_targetFramework
-	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_DefaultFramework
+	  IL_00b2:  nop 
+	  IL_00b3:  ldarg.0 
+	  IL_00b4:  ldloc.0 
+	  IL_00b5:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.TaskContainer::CreateChildDataTypeBase(class [System.Xml]System.Xml.XmlNode)
+	  IL_00ba:  stloc.3 
+	  IL_00bb:  ldarg.0 
+	  IL_00bc:  ldc.i4 1000
+	  IL_00c1:  ldstr "Adding a {0} reference with id '{1}'."
+	  IL_00c6:  ldc.i4.2 
+	  IL_00c7:  newarr [mscorlib]System.Object
+	  IL_00cc:  dup 
+	  IL_00cd:  ldc.i4.0 
+	  IL_00ce:  ldloc.0 
+	  IL_00cf:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_00d4:  stelem.ref 
+	  IL_00d5:  dup 
+	  IL_00d6:  ldc.i4.1 
+	  IL_00d7:  ldloc.3 
+	  IL_00d8:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	  IL_00dd:  stelem.ref 
+	  IL_00de:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
+	  IL_00e3:  ldarg.0 
+	  IL_00e4:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_00e9:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	  IL_00ee:  ldloc.3 
+	  IL_00ef:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	  IL_00f4:  callvirt instance bool class NAnt.Core.DataTypeBaseDictionary::Contains(string)
+	  IL_00f9:  brtrue IL_011c
 
-    // method line 2320
-    .method public hidebysig specialname 
-           instance default string get_BuildFile ()  cil managed 
-    {
-        // Method begins at RVA 0x2b904
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.CommandLineOptions::_buildFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_00fe:  nop 
+	  IL_00ff:  ldarg.0 
+	  IL_0100:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_0105:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	  IL_010a:  ldloc.3 
+	  IL_010b:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	  IL_0110:  ldloc.3 
+	  IL_0111:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::Add(string, class NAnt.Core.DataTypeBase)
+	  IL_0116:  nop 
+	  IL_0117:  br IL_0135
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_BuildFile
+	  IL_011c:  nop 
+	  IL_011d:  ldarg.0 
+	  IL_011e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_0123:  callvirt instance class NAnt.Core.DataTypeBaseDictionary class NAnt.Core.Project::get_DataTypeReferences()
+	  IL_0128:  ldloc.3 
+	  IL_0129:  callvirt instance string class NAnt.Core.DataTypeBase::get_ID()
+	  IL_012e:  ldloc.3 
+	  IL_012f:  callvirt instance void class NAnt.Core.DataTypeBaseDictionary::set_Item(string, class NAnt.Core.DataTypeBase)
+	  IL_0134:  nop 
+	  IL_0135:  nop 
+	  IL_0136:  br IL_0168
 
-    // method line 2321
-    .method public hidebysig specialname 
-           instance default void set_BuildFile (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2b91f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.CommandLineOptions::_buildFile
-	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_BuildFile
+	  IL_013b:  nop 
+	  IL_013c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0141:  ldstr "NA1071"
+	  IL_0146:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_014b:  ldloc.0 
+	  IL_014c:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_0151:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0156:  ldarg.0 
+	  IL_0157:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	  IL_015c:  ldloc.0 
+	  IL_015d:  callvirt instance class NAnt.Core.Location class NAnt.Core.Project::GetLocation(class [System.Xml]System.Xml.XmlNode)
+	  IL_0162:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	  IL_0167:  throw 
+	  IL_0168:  nop 
+	  IL_0169:  ldloc.1 
+	  IL_016a:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_016f:  brtrue IL_0013
 
-    // method line 2322
-    .method public hidebysig specialname 
-           instance default bool get_Pause ()  cil managed 
-    {
-        // Method begins at RVA 0x2b92c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_pause
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0174:  leave IL_018f
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_Pause
+	} // end .try 0
+	finally  { // 0
+	  IL_0179:  ldloc.1 
+	  IL_017a:  isinst [mscorlib]System.IDisposable
+	  IL_017f:  dup 
+	  IL_0180:  stloc.s 4
+	  IL_0182:  brfalse IL_018e
 
-    // method line 2323
-    .method public hidebysig specialname 
-           instance default void set_Pause (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2b947
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_pause
-	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_Pause
+	  IL_0187:  ldloc.s 4
+	  IL_0189:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_018e:  endfinally 
+	} // end handler 0
+	IL_018f:  ret 
+    } // end of method TaskContainer::ExecuteChildTasks
 
     // method line 2324
-    .method public hidebysig specialname 
-           instance default bool get_Verbose ()  cil managed 
+    .method family virtual hidebysig newslot 
+           instance default class NAnt.Core.Task CreateChildTask (class [System.Xml]System.Xml.XmlNode node)  cil managed 
     {
-        // Method begins at RVA 0x2b954
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x15800
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Task	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_verbose
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.Core.Task class NAnt.Core.Project::CreateTask(class [System.Xml]System.Xml.XmlNode)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_Verbose
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method TaskContainer::CreateChildTask
 
     // method line 2325
-    .method public hidebysig specialname 
-           instance default void set_Verbose (bool 'value')  cil managed 
+    .method family virtual hidebysig newslot 
+           instance default class NAnt.Core.DataTypeBase CreateChildDataTypeBase (class [System.Xml]System.Xml.XmlNode node)  cil managed 
     {
-        // Method begins at RVA 0x2b96f
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x15824
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		class NAnt.Core.DataTypeBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_verbose
-	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_Verbose
+	IL_0002:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.Project::CreateDataTypeBase(class [System.Xml]System.Xml.XmlNode)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method TaskContainer::CreateChildDataTypeBase
 
     // method line 2326
-    .method public hidebysig specialname 
-           instance default bool get_Debug ()  cil managed 
+    .method family virtual hidebysig newslot 
+           instance default bool IsPrivateXmlElement (class [System.Xml]System.Xml.XmlNode node)  cil managed 
     {
-        // Method begins at RVA 0x2b97c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x15848
+	// Code size 40 (0x28)
+	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_debug
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
+	IL_0007:  brfalse IL_001f
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_Debug
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
+	IL_0012:  ldarg.1 
+	IL_0013:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_0018:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	IL_001d:  br.s IL_0020
+
+	IL_001f:  ldc.i4.0 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
+
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method TaskContainer::IsPrivateXmlElement
 
     // method line 2327
-    .method public hidebysig specialname 
-           instance default void set_Debug (bool 'value')  cil managed 
+    .method family virtual hidebysig newslot 
+           instance default void AddPrivateXmlElementName (string name)  cil managed 
     {
-        // Method begins at RVA 0x2b997
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x1587c
+	// Code size 58 (0x3a)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_debug
-	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_Debug
+	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
+	IL_0007:  brtrue IL_0019
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0013:  stfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
+	IL_0018:  nop 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
+	IL_001f:  ldarg.1 
+	IL_0020:  callvirt instance bool class [System]System.Collections.Specialized.StringCollection::Contains(string)
+	IL_0025:  brtrue IL_0039
+
+	IL_002a:  nop 
+	IL_002b:  ldarg.0 
+	IL_002c:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.TaskContainer::_subXMLElements
+	IL_0031:  ldarg.1 
+	IL_0032:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0037:  pop 
+	IL_0038:  nop 
+	IL_0039:  ret 
+    } // end of method TaskContainer::AddPrivateXmlElementName
+
+	.property instance bool CustomXmlProcessing ()
+	{
+		.get instance default bool NAnt.Core.TaskContainer::get_CustomXmlProcessing () 
+	}
+  } // end of class NAnt.Core.TaskContainer
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi abstract beforefieldinit FunctionSetBase
+  	extends [mscorlib]System.Object
+  {
+    .field  private  class NAnt.Core.Project _project
 
     // method line 2328
-    .method public hidebysig specialname 
-           instance default bool get_Quiet ()  cil managed 
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.Core.Project project, class NAnt.Core.PropertyDictionary properties)  cil managed 
+    {
+        // Method begins at RVA 0x54bb
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld class NAnt.Core.Project NAnt.Core.FunctionSetBase::_project
+	IL_000e:  ret 
+    } // end of method FunctionSetBase::.ctor
+
+    // method line 2329
+    .method public virtual hidebysig newslot specialname 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
     {
-        // Method begins at RVA 0x2b9a4
+        // Method begins at RVA 0x54cc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.Core.Project	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_quiet
+	IL_0002:  ldfld class NAnt.Core.Project NAnt.Core.FunctionSetBase::_project
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_Quiet
+    } // end of method FunctionSetBase::get_Project
 
-    // method line 2329
-    .method public hidebysig specialname 
-           instance default void set_Quiet (bool 'value')  cil managed 
+    // method line 2330
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_Project (class NAnt.Core.Project 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b9bf
+        // Method begins at RVA 0x54e7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_quiet
+	IL_0003:  stfld class NAnt.Core.Project NAnt.Core.FunctionSetBase::_project
 	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_Quiet
+    } // end of method FunctionSetBase::set_Project
 
-    // method line 2330
-    .method public hidebysig specialname 
-           instance default bool get_EmacsMode ()  cil managed 
-    {
-        // Method begins at RVA 0x2b9cc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_emacsMode
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	.property instance class NAnt.Core.Project Project ()
+	{
+		.get instance default class NAnt.Core.Project NAnt.Core.FunctionSetBase::get_Project () 
+		.set instance default void NAnt.Core.FunctionSetBase::set_Project (class NAnt.Core.Project 'value') 
+	}
+  } // end of class NAnt.Core.FunctionSetBase
+}
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_EmacsMode
+.namespace NAnt.Core
+{
+  .class public auto ansi serializable beforefieldinit Location
+  	extends [mscorlib]System.Object
+  {
+    .field  private  string _fileName
+    .field  private  int32 _lineNumber
+    .field  private  int32 _columnNumber
+    .field  public static initonly  class NAnt.Core.Location UnknownLocation
 
     // method line 2331
-    .method public hidebysig specialname 
-           instance default void set_EmacsMode (bool 'value')  cil managed 
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string fileName, int32 lineNumber, int32 columnNumber)  cil managed 
     {
-        // Method begins at RVA 0x2b9e7
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2ba38
+	// Code size 17 (0x11)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_emacsMode
-	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_EmacsMode
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.2 
+	IL_000a:  ldarg.3 
+	IL_000b:  call instance void class NAnt.Core.Location::Init(string, int32, int32)
+	IL_0010:  ret 
+    } // end of method Location::.ctor
 
     // method line 2332
-    .method public hidebysig specialname 
-           instance default bool get_FindInParent ()  cil managed 
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string fileName)  cil managed 
     {
-        // Method begins at RVA 0x2b9f4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_findInParent
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_FindInParent
+        // Method begins at RVA 0x2ba4a
+	// Code size 17 (0x11)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldc.i4.0 
+	IL_000a:  ldc.i4.0 
+	IL_000b:  call instance void class NAnt.Core.Location::Init(string, int32, int32)
+	IL_0010:  ret 
+    } // end of method Location::.ctor
 
     // method line 2333
-    .method public hidebysig specialname 
-           instance default void set_FindInParent (bool 'value')  cil managed 
+    .method private hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2ba0f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2ba5c
+	// Code size 17 (0x11)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_findInParent
-	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_FindInParent
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldnull 
+	IL_0009:  ldc.i4.0 
+	IL_000a:  ldc.i4.0 
+	IL_000b:  call instance void class NAnt.Core.Location::Init(string, int32, int32)
+	IL_0010:  ret 
+    } // end of method Location::.ctor
 
     // method line 2334
+    .method private hidebysig 
+           instance default void Init (string fileName, int32 lineNumber, int32 columnNumber)  cil managed 
+    {
+        // Method begins at RVA 0x2ba70
+	// Code size 84 (0x54)
+	.maxstack 2
+	.locals init (
+		class [System]System.Uri	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_003e
+
+	IL_0007:  nop 
+	.try { // 1
+	  IL_0008:  nop 
+	  IL_0009:  ldarg.1 
+	  IL_000a:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	  IL_000f:  stloc.0 
+	  IL_0010:  ldloc.0 
+	  IL_0011:  callvirt instance string class [System]System.Uri::get_LocalPath()
+	  IL_0016:  starg.s 1
+	  IL_0018:  nop 
+	  IL_0019:  leave IL_003d
+
+	} // end .try 1
+	catch class [mscorlib]System.Object { // 1
+	  IL_001e:  pop 
+	  IL_001f:  nop 
+	  .try { // 0
+	    IL_0020:  nop 
+	    IL_0021:  ldarg.1 
+	    IL_0022:  call string class [mscorlib]System.IO.Path::GetFullPath(string)
+	    IL_0027:  starg.s 1
+	    IL_0029:  nop 
+	    IL_002a:  leave IL_0037
+
+	  } // end .try 0
+	  catch class [mscorlib]System.ArgumentException { // 0
+	    IL_002f:  pop 
+	    IL_0030:  nop 
+	    IL_0031:  nop 
+	    IL_0032:  leave IL_0037
+
+	  } // end handler 0
+	  IL_0037:  nop 
+	  IL_0038:  leave IL_003d
+
+	} // end handler 1
+	IL_003d:  nop 
+	IL_003e:  ldarg.0 
+	IL_003f:  ldarg.1 
+	IL_0040:  stfld string NAnt.Core.Location::_fileName
+	IL_0045:  ldarg.0 
+	IL_0046:  ldarg.2 
+	IL_0047:  stfld int32 NAnt.Core.Location::_lineNumber
+	IL_004c:  ldarg.0 
+	IL_004d:  ldarg.3 
+	IL_004e:  stfld int32 NAnt.Core.Location::_columnNumber
+	IL_0053:  ret 
+    } // end of method Location::Init
+
+    // method line 2335
     .method public hidebysig specialname 
-           instance default int32 get_IndentationLevel ()  cil managed 
+           instance default string get_FileName ()  cil managed 
     {
-        // Method begins at RVA 0x2ba1c
+        // Method begins at RVA 0x2baec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.Core.CommandLineOptions::_indentationLevel
+	IL_0002:  ldfld string NAnt.Core.Location::_fileName
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_IndentationLevel
-
-    // method line 2335
-    .method public hidebysig specialname 
-           instance default void set_IndentationLevel (int32 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2ba37
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.Core.CommandLineOptions::_indentationLevel
-	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_IndentationLevel
+    } // end of method Location::get_FileName
 
     // method line 2336
     .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.NameValueCollection get_Properties ()  cil managed 
+           instance default int32 get_LineNumber ()  cil managed 
     {
-        // Method begins at RVA 0x2ba44
+        // Method begins at RVA 0x2bb08
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System]System.Collections.Specialized.NameValueCollection	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.CommandLineOptions::_properties
+	IL_0002:  ldfld int32 NAnt.Core.Location::_lineNumber
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_Properties
+    } // end of method Location::get_LineNumber
 
     // method line 2337
     .method public hidebysig specialname 
-           instance default string get_LoggerType ()  cil managed 
+           instance default int32 get_ColumnNumber ()  cil managed 
     {
-        // Method begins at RVA 0x2ba60
+        // Method begins at RVA 0x2bb24
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Core.CommandLineOptions::_loggerType
+	IL_0002:  ldfld int32 NAnt.Core.Location::_columnNumber
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_LoggerType
+    } // end of method Location::get_ColumnNumber
 
     // method line 2338
-    .method public hidebysig specialname 
-           instance default void set_LoggerType (string 'value')  cil managed 
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0x2ba7b
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x2bb40
+	// Code size 121 (0x79)
+	.maxstack 5
+	.locals init (
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Core.CommandLineOptions::_loggerType
-	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_LoggerType
+	IL_0001:  ldstr ""
+	IL_0006:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
+	IL_000b:  stloc.0 
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld string NAnt.Core.Location::_fileName
+	IL_0012:  brfalse IL_006b
+
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld string NAnt.Core.Location::_fileName
+	IL_001f:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0024:  pop 
+	IL_0025:  ldarg.0 
+	IL_0026:  ldfld int32 NAnt.Core.Location::_lineNumber
+	IL_002b:  brfalse IL_005e
+
+	IL_0030:  nop 
+	IL_0031:  ldloc.0 
+	IL_0032:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0037:  ldstr "({0},{1})"
+	IL_003c:  ldarg.0 
+	IL_003d:  ldfld int32 NAnt.Core.Location::_lineNumber
+	IL_0042:  box [mscorlib]System.Int32
+	IL_0047:  ldarg.0 
+	IL_0048:  ldfld int32 NAnt.Core.Location::_columnNumber
+	IL_004d:  box [mscorlib]System.Int32
+	IL_0052:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0057:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_005c:  pop 
+	IL_005d:  nop 
+	IL_005e:  ldloc.0 
+	IL_005f:  ldstr ":"
+	IL_0064:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0069:  pop 
+	IL_006a:  nop 
+	IL_006b:  ldloc.0 
+	IL_006c:  callvirt instance string object::ToString()
+	IL_0071:  stloc.1 
+	IL_0072:  br IL_0077
+
+	IL_0077:  ldloc.1 
+	IL_0078:  ret 
+    } // end of method Location::ToString
 
     // method line 2339
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_LogFile ()  cil managed 
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2ba88
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Core.CommandLineOptions::_logFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+        // Method begins at RVA 0x2bbc5
+	// Code size 11 (0xb)
+	.maxstack 8
+	IL_0000:  newobj instance void class NAnt.Core.Location::'.ctor'()
+	IL_0005:  stsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_000a:  ret 
+    } // end of method Location::.cctor
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_LogFile
+	.property instance string FileName ()
+	{
+		.get instance default string NAnt.Core.Location::get_FileName () 
+	}
+	.property instance int32 LineNumber ()
+	{
+		.get instance default int32 NAnt.Core.Location::get_LineNumber () 
+	}
+	.property instance int32 ColumnNumber ()
+	{
+		.get instance default int32 NAnt.Core.Location::get_ColumnNumber () 
+	}
+  } // end of class NAnt.Core.Location
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi serializable beforefieldinit FrameworkInfo
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Runtime.Serialization.ISerializable  {
+    .field  private initonly  class [System.Xml]System.Xml.XmlNode _frameworkNode
+    .field  private initonly  class [System.Xml]System.Xml.XmlNamespaceManager _nsMgr
+    .field  private initonly  string _name
+    .field  private initonly  string _family
+    .field  private initonly  string _description
+    .field  private  class [mscorlib]System.Version _version
+    .field  private  class [mscorlib]System.Version _clrVersion
+    .field  private  valuetype NAnt.Core.ClrType _clrType
+    .field  private  valuetype NAnt.Core.VendorType _vendor
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _frameworkDirectory
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _sdkDirectory
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _frameworkAssemblyDirectory
+    .field  private  class NAnt.Core.Configuration.Runtime _runtime
+    .field  private  class NAnt.Core.Project _project
+    .field  private  class NAnt.Core.Types.FileSet _taskAssemblies
+    .field  private  class NAnt.Core.Types.FileSet[] _referenceAssemblies
+    .field  private  string[] _toolPaths
+    .field  private  valuetype NAnt.Core.FrameworkInfo/InitStatus _status
 
     // method line 2340
-    .method public hidebysig specialname 
-           instance default void set_LogFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlNode frameworkNode, class [System.Xml]System.Xml.XmlNamespaceManager nsMgr)  cil managed 
     {
-        // Method begins at RVA 0x2baa3
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Core.CommandLineOptions::_logFile
-	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_LogFile
+        // Method begins at RVA 0x2bbd4
+	// Code size 274 (0x112)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Exception	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void object::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ldarg.1 
+	IL_000f:  brtrue IL_0020
+
+	IL_0014:  nop 
+	IL_0015:  ldstr "frameworkNode"
+	IL_001a:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_001f:  throw 
+	IL_0020:  ldarg.2 
+	IL_0021:  brtrue IL_0032
+
+	IL_0026:  nop 
+	IL_0027:  ldstr "nsMgr"
+	IL_002c:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0031:  throw 
+	IL_0032:  ldarg.0 
+	IL_0033:  ldarg.1 
+	IL_0034:  stfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_0039:  ldarg.0 
+	IL_003a:  ldarg.2 
+	IL_003b:  stfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.FrameworkInfo::_nsMgr
+	IL_0040:  ldarg.0 
+	IL_0041:  ldarg.1 
+	IL_0042:  ldstr "name"
+	IL_0047:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_004c:  stfld string NAnt.Core.FrameworkInfo::_name
+	IL_0051:  ldarg.0 
+	IL_0052:  ldfld string NAnt.Core.FrameworkInfo::_name
+	IL_0057:  brtrue IL_0068
+
+	IL_005c:  nop 
+	IL_005d:  ldstr "The \"name\" attribute does not exist, or has no value."
+	IL_0062:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0067:  throw 
+	IL_0068:  ldarg.0 
+	IL_0069:  ldarg.1 
+	IL_006a:  ldstr "family"
+	IL_006f:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_0074:  stfld string NAnt.Core.FrameworkInfo::_family
+	IL_0079:  ldarg.0 
+	IL_007a:  ldfld string NAnt.Core.FrameworkInfo::_family
+	IL_007f:  brtrue IL_0090
+
+	IL_0084:  nop 
+	IL_0085:  ldstr "The \"family\" attribute does not exist, or has no value."
+	IL_008a:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_008f:  throw 
+	IL_0090:  ldarg.0 
+	IL_0091:  ldarg.0 
+	IL_0092:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_0097:  ldstr "description"
+	IL_009c:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_00a1:  stfld string NAnt.Core.FrameworkInfo::_description
+	IL_00a6:  ldarg.0 
+	IL_00a7:  ldfld string NAnt.Core.FrameworkInfo::_description
+	IL_00ac:  brtrue IL_00bd
+
+	IL_00b1:  nop 
+	IL_00b2:  ldstr "The \"description\" attribute does not exist, or has no value."
+	IL_00b7:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_00bc:  throw 
+	IL_00bd:  ldarg.0 
+	IL_00be:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_00c3:  ldstr "vendor"
+	IL_00c8:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_00cd:  stloc.0 
+	IL_00ce:  ldloc.0 
+	IL_00cf:  brtrue IL_00e0
+
+	IL_00d4:  nop 
+	IL_00d5:  ldstr "The \"vendor\" attribute does not exist, or has no value."
+	IL_00da:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_00df:  throw 
+	.try { // 0
+	  IL_00e0:  nop 
+	  IL_00e1:  ldarg.0 
+	  IL_00e2:  ldtoken NAnt.Core.VendorType
+	  IL_00e7:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_00ec:  ldloc.0 
+	  IL_00ed:  ldc.i4.1 
+	  IL_00ee:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	  IL_00f3:  unbox.any NAnt.Core.VendorType
+	  IL_00f8:  stfld valuetype NAnt.Core.VendorType NAnt.Core.FrameworkInfo::_vendor
+	  IL_00fd:  nop 
+	  IL_00fe:  leave IL_0111
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0103:  stloc.1 
+	  IL_0104:  nop 
+	  IL_0105:  ldstr "The value of the \"vendor\" attribute is not valid."
+	  IL_010a:  ldloc.1 
+	  IL_010b:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string, class [mscorlib]System.Exception)
+	  IL_0110:  throw 
+	} // end handler 0
+	IL_0111:  ret 
+    } // end of method FrameworkInfo::.ctor
 
     // method line 2341
-    .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Listeners ()  cil managed 
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
     {
-        // Method begins at RVA 0x2bab0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::_listeners
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+        // Method begins at RVA 0x2bd04
+	// Code size 500 (0x1f4)
+	.maxstack 4
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void object::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  ldstr "Name"
+	IL_0015:  callvirt instance string class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetString(string)
+	IL_001a:  stfld string NAnt.Core.FrameworkInfo::_name
+	IL_001f:  ldarg.0 
+	IL_0020:  ldarg.1 
+	IL_0021:  ldstr "Family"
+	IL_0026:  callvirt instance string class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetString(string)
+	IL_002b:  stfld string NAnt.Core.FrameworkInfo::_family
+	IL_0030:  ldarg.0 
+	IL_0031:  ldarg.1 
+	IL_0032:  ldstr "Description"
+	IL_0037:  callvirt instance string class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetString(string)
+	IL_003c:  stfld string NAnt.Core.FrameworkInfo::_description
+	IL_0041:  ldarg.0 
+	IL_0042:  ldarg.1 
+	IL_0043:  ldstr "Status"
+	IL_0048:  ldtoken NAnt.Core.FrameworkInfo/InitStatus
+	IL_004d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0052:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_0057:  unbox.any NAnt.Core.FrameworkInfo/InitStatus
+	IL_005c:  stfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	IL_0061:  ldarg.0 
+	IL_0062:  ldarg.1 
+	IL_0063:  ldstr "ClrType"
+	IL_0068:  ldtoken NAnt.Core.ClrType
+	IL_006d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0072:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_0077:  unbox.any NAnt.Core.ClrType
+	IL_007c:  stfld valuetype NAnt.Core.ClrType NAnt.Core.FrameworkInfo::_clrType
+	IL_0081:  ldarg.0 
+	IL_0082:  ldarg.1 
+	IL_0083:  ldstr "Version"
+	IL_0088:  ldtoken [mscorlib]System.Version
+	IL_008d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0092:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_0097:  castclass [mscorlib]System.Version
+	IL_009c:  stfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_version
+	IL_00a1:  ldarg.0 
+	IL_00a2:  ldarg.1 
+	IL_00a3:  ldstr "ClrVersion"
+	IL_00a8:  ldtoken [mscorlib]System.Version
+	IL_00ad:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_00b2:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_00b7:  castclass [mscorlib]System.Version
+	IL_00bc:  stfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_clrVersion
+	IL_00c1:  ldarg.0 
+	IL_00c2:  ldarg.1 
+	IL_00c3:  ldstr "Vendor"
+	IL_00c8:  ldtoken NAnt.Core.VendorType
+	IL_00cd:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_00d2:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_00d7:  unbox.any NAnt.Core.VendorType
+	IL_00dc:  stfld valuetype NAnt.Core.VendorType NAnt.Core.FrameworkInfo::_vendor
+	IL_00e1:  ldarg.0 
+	IL_00e2:  ldfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	IL_00e7:  ldc.i4.3 
+	IL_00e8:  beq IL_00f3
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_Listeners
+	IL_00ed:  nop 
+	IL_00ee:  br IL_01f3
+
+	IL_00f3:  ldarg.0 
+	IL_00f4:  ldarg.1 
+	IL_00f5:  ldstr "FrameworkDirectory"
+	IL_00fa:  ldtoken [mscorlib]System.IO.DirectoryInfo
+	IL_00ff:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0104:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_0109:  castclass [mscorlib]System.IO.DirectoryInfo
+	IL_010e:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkDirectory
+	IL_0113:  ldarg.0 
+	IL_0114:  ldarg.1 
+	IL_0115:  ldstr "SdkDirectory"
+	IL_011a:  ldtoken [mscorlib]System.IO.DirectoryInfo
+	IL_011f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0124:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_0129:  castclass [mscorlib]System.IO.DirectoryInfo
+	IL_012e:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_sdkDirectory
+	IL_0133:  ldarg.0 
+	IL_0134:  ldarg.1 
+	IL_0135:  ldstr "FrameworkAssemblyDirectory"
+	IL_013a:  ldtoken [mscorlib]System.IO.DirectoryInfo
+	IL_013f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0144:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_0149:  castclass [mscorlib]System.IO.DirectoryInfo
+	IL_014e:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkAssemblyDirectory
+	IL_0153:  ldarg.0 
+	IL_0154:  ldarg.1 
+	IL_0155:  ldstr "Runtime"
+	IL_015a:  ldtoken NAnt.Core.Configuration.Runtime
+	IL_015f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0164:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_0169:  castclass NAnt.Core.Configuration.Runtime
+	IL_016e:  stfld class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::_runtime
+	IL_0173:  ldarg.0 
+	IL_0174:  ldarg.1 
+	IL_0175:  ldstr "Project"
+	IL_017a:  ldtoken NAnt.Core.Project
+	IL_017f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0184:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_0189:  castclass NAnt.Core.Project
+	IL_018e:  stfld class NAnt.Core.Project NAnt.Core.FrameworkInfo::_project
+	IL_0193:  ldarg.0 
+	IL_0194:  ldarg.1 
+	IL_0195:  ldstr "TaskAssemblies"
+	IL_019a:  ldtoken NAnt.Core.Types.FileSet
+	IL_019f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_01a4:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_01a9:  castclass NAnt.Core.Types.FileSet
+	IL_01ae:  stfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
+	IL_01b3:  ldarg.0 
+	IL_01b4:  ldarg.1 
+	IL_01b5:  ldstr "ReferenceAssemblies"
+	IL_01ba:  ldtoken class NAnt.Core.Types.FileSet[]
+	IL_01bf:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_01c4:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_01c9:  castclass class NAnt.Core.Types.FileSet[]
+	IL_01ce:  stfld class NAnt.Core.Types.FileSet[] NAnt.Core.FrameworkInfo::_referenceAssemblies
+	IL_01d3:  ldarg.0 
+	IL_01d4:  ldarg.1 
+	IL_01d5:  ldstr "ToolPaths"
+	IL_01da:  ldtoken string[]
+	IL_01df:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_01e4:  callvirt instance object class [mscorlib]System.Runtime.Serialization.SerializationInfo::GetValue(string, class [mscorlib]System.Type)
+	IL_01e9:  castclass string[]
+	IL_01ee:  stfld string[] NAnt.Core.FrameworkInfo::_toolPaths
+	IL_01f3:  ret 
+    } // end of method FrameworkInfo::.ctor
 
     // method line 2342
+    .method private final virtual hidebysig newslot 
+           instance default void System.Runtime.Serialization.ISerializable.GetObjectData (class [mscorlib]System.Runtime.Serialization.SerializationInfo info, valuetype [mscorlib]System.Runtime.Serialization.StreamingContext context)  cil managed 
+    {
+        // Method begins at RVA 0x2bf04
+	.override class [mscorlib]System.Runtime.Serialization.ISerializable::GetObjectData
+	// Code size 302 (0x12e)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr "Name"
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance string class NAnt.Core.FrameworkInfo::get_Name()
+	IL_000d:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_0012:  ldarg.1 
+	IL_0013:  ldstr "Family"
+	IL_0018:  ldarg.0 
+	IL_0019:  call instance string class NAnt.Core.FrameworkInfo::get_Family()
+	IL_001e:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_0023:  ldarg.1 
+	IL_0024:  ldstr "Description"
+	IL_0029:  ldarg.0 
+	IL_002a:  call instance string class NAnt.Core.FrameworkInfo::get_Description()
+	IL_002f:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_0034:  ldarg.1 
+	IL_0035:  ldstr "ClrType"
+	IL_003a:  ldarg.0 
+	IL_003b:  call instance valuetype NAnt.Core.ClrType class NAnt.Core.FrameworkInfo::get_ClrType()
+	IL_0040:  box NAnt.Core.ClrType
+	IL_0045:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_004a:  ldarg.1 
+	IL_004b:  ldstr "Version"
+	IL_0050:  ldarg.0 
+	IL_0051:  call instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_Version()
+	IL_0056:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_005b:  ldarg.1 
+	IL_005c:  ldstr "ClrVersion"
+	IL_0061:  ldarg.0 
+	IL_0062:  call instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
+	IL_0067:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_006c:  ldarg.1 
+	IL_006d:  ldstr "Status"
+	IL_0072:  ldarg.0 
+	IL_0073:  ldfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	IL_0078:  box NAnt.Core.FrameworkInfo/InitStatus
+	IL_007d:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_0082:  ldarg.1 
+	IL_0083:  ldstr "Vendor"
+	IL_0088:  ldarg.0 
+	IL_0089:  call instance valuetype NAnt.Core.VendorType class NAnt.Core.FrameworkInfo::get_Vendor()
+	IL_008e:  box NAnt.Core.VendorType
+	IL_0093:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_0098:  ldarg.0 
+	IL_0099:  call instance bool class NAnt.Core.FrameworkInfo::get_IsValid()
+	IL_009e:  brfalse IL_012d
+
+	IL_00a3:  nop 
+	IL_00a4:  ldarg.1 
+	IL_00a5:  ldstr "FrameworkDirectory"
+	IL_00aa:  ldarg.0 
+	IL_00ab:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
+	IL_00b0:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_00b5:  ldarg.1 
+	IL_00b6:  ldstr "SdkDirectory"
+	IL_00bb:  ldarg.0 
+	IL_00bc:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_SdkDirectory()
+	IL_00c1:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_00c6:  ldarg.1 
+	IL_00c7:  ldstr "FrameworkAssemblyDirectory"
+	IL_00cc:  ldarg.0 
+	IL_00cd:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory()
+	IL_00d2:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_00d7:  ldarg.1 
+	IL_00d8:  ldstr "Runtime"
+	IL_00dd:  ldarg.0 
+	IL_00de:  call instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
+	IL_00e3:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_00e8:  ldarg.1 
+	IL_00e9:  ldstr "Project"
+	IL_00ee:  ldarg.0 
+	IL_00ef:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
+	IL_00f4:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_00f9:  ldarg.1 
+	IL_00fa:  ldstr "TaskAssemblies"
+	IL_00ff:  ldarg.0 
+	IL_0100:  call instance class NAnt.Core.Types.FileSet class NAnt.Core.FrameworkInfo::get_TaskAssemblies()
+	IL_0105:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_010a:  ldarg.1 
+	IL_010b:  ldstr "ReferenceAssemblies"
+	IL_0110:  ldarg.0 
+	IL_0111:  call instance class NAnt.Core.Types.FileSet[] class NAnt.Core.FrameworkInfo::get_ReferenceAssemblies()
+	IL_0116:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_011b:  ldarg.1 
+	IL_011c:  ldstr "ToolPaths"
+	IL_0121:  ldarg.0 
+	IL_0122:  call instance string[] class NAnt.Core.FrameworkInfo::get_ToolPaths()
+	IL_0127:  callvirt instance void class [mscorlib]System.Runtime.Serialization.SerializationInfo::AddValue(string, object)
+	IL_012c:  nop 
+	IL_012d:  ret 
+    } // end of method FrameworkInfo::System.Runtime.Serialization.ISerializable.GetObjectData
+
+    // method line 2343
     .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_ExtensionAssemblies ()  cil managed 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x2bacc
+        // Method begins at RVA 0x2c040
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::_extensionAssemblies
+	IL_0002:  ldfld string NAnt.Core.FrameworkInfo::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_ExtensionAssemblies
+    } // end of method FrameworkInfo::get_Name
 
-    // method line 2343
+    // method line 2344
     .method public hidebysig specialname 
-           instance default bool get_ShowProjectHelp ()  cil managed 
+           instance default string get_Family ()  cil managed 
     {
-        // Method begins at RVA 0x2bae8
+        // Method begins at RVA 0x2c05c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_showProjectHelp
+	IL_0002:  ldfld string NAnt.Core.FrameworkInfo::_family
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_ShowProjectHelp
-
-    // method line 2344
-    .method public hidebysig specialname 
-           instance default void set_ShowProjectHelp (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2bb03
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_showProjectHelp
-	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_ShowProjectHelp
+    } // end of method FrameworkInfo::get_Family
 
     // method line 2345
     .method public hidebysig specialname 
-           instance default bool get_NoLogo ()  cil managed 
+           instance default string get_Description ()  cil managed 
     {
-        // Method begins at RVA 0x2bb10
+        // Method begins at RVA 0x2c078
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_noLogo
+	IL_0002:  ldfld string NAnt.Core.FrameworkInfo::_description
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_NoLogo
+    } // end of method FrameworkInfo::get_Description
 
     // method line 2346
-    .method public hidebysig specialname 
-           instance default void set_NoLogo (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2bb2b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_noLogo
-	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_NoLogo
-
-    // method line 2347
-    .method public hidebysig specialname 
-           instance default bool get_ShowHelp ()  cil managed 
+    .method assembly hidebysig specialname 
+           instance default valuetype NAnt.Core.VendorType get_Vendor ()  cil managed 
     {
-        // Method begins at RVA 0x2bb38
+        // Method begins at RVA 0x2c094
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype NAnt.Core.VendorType	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Core.CommandLineOptions::_showHelp
+	IL_0002:  ldfld valuetype NAnt.Core.VendorType NAnt.Core.FrameworkInfo::_vendor
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_ShowHelp
+    } // end of method FrameworkInfo::get_Vendor
 
-    // method line 2348
+    // method line 2347
     .method public hidebysig specialname 
-           instance default void set_ShowHelp (bool 'value')  cil managed 
+           instance default class [mscorlib]System.Version get_Version ()  cil managed 
     {
-        // Method begins at RVA 0x2bb53
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x2c0b0
+	// Code size 94 (0x5e)
+	.maxstack 2
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Version	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Core.CommandLineOptions::_showHelp
-	IL_0008:  ret 
-    } // end of method CommandLineOptions::set_ShowHelp
+	IL_0002:  ldfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_version
+	IL_0007:  ldnull 
+	IL_0008:  call bool class [mscorlib]System.Version::op_Equality(class [mscorlib]System.Version, class [mscorlib]System.Version)
+	IL_000d:  brfalse IL_0050
 
-    // method line 2349
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_0019:  brtrue IL_002a
+
+	IL_001e:  nop 
+	IL_001f:  ldstr "The current framework is not valid."
+	IL_0024:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0029:  throw 
+	IL_002a:  ldarg.0 
+	IL_002b:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_0030:  ldstr "version"
+	IL_0035:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_003a:  stloc.0 
+	IL_003b:  ldloc.0 
+	IL_003c:  brfalse IL_004f
+
+	IL_0041:  nop 
+	IL_0042:  ldarg.0 
+	IL_0043:  ldloc.0 
+	IL_0044:  newobj instance void class [mscorlib]System.Version::'.ctor'(string)
+	IL_0049:  stfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_version
+	IL_004e:  nop 
+	IL_004f:  nop 
+	IL_0050:  ldarg.0 
+	IL_0051:  ldfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_version
+	IL_0056:  stloc.1 
+	IL_0057:  br IL_005c
+
+	IL_005c:  ldloc.1 
+	IL_005d:  ret 
+    } // end of method FrameworkInfo::get_Version
+
+    // method line 2348
     .method public hidebysig specialname 
-           instance default class [System]System.Collections.Specialized.StringCollection get_Targets ()  cil managed 
+           instance default class [mscorlib]System.Version get_ClrVersion ()  cil managed 
     {
-        // Method begins at RVA 0x2bb60
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2c11c
+	// Code size 94 (0x5e)
+	.maxstack 2
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0)
+		string	V_0,
+		class [mscorlib]System.Version	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::_targets
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CommandLineOptions::get_Targets
-
-	.property instance string TargetFramework ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 00 00 00 00 03 00 54 0E 04 4E 61 6D 65 0F   // ........T..Name.
-		74 61 72 67 65 74 66 72 61 6D 65 77 6F 72 6B 54   // targetframeworkT
-		0E 09 53 68 6F 72 74 4E 61 6D 65 01 74 54 0E 0B   // ..ShortName.tT..
-		44 65 73 63 72 69 70 74 69 6F 6E 21 53 70 65 63   // Description!Spec
-		69 66 69 65 73 20 74 68 65 20 66 72 61 6D 65 77   // ifies the framew
-		6F 72 6B 20 74 6F 20 74 61 72 67 65 74          ) // ork to target
+	IL_0002:  ldfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_clrVersion
+	IL_0007:  ldnull 
+	IL_0008:  call bool class [mscorlib]System.Version::op_Equality(class [mscorlib]System.Version, class [mscorlib]System.Version)
+	IL_000d:  brfalse IL_0050
 
-		.get instance default string NAnt.Core.CommandLineOptions::get_TargetFramework () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_TargetFramework (string 'value') 
-	}
-	.property instance string DefaultFramework ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 00 00 00 00 03 00 54 0E 04 4E 61 6D 65 10   // ........T..Name.
-		64 65 66 61 75 6C 74 66 72 61 6D 65 77 6F 72 6B   // defaultframework
-		54 0E 09 53 68 6F 72 74 4E 61 6D 65 01 6B 54 0E   // T..ShortName.kT.
-		0B 44 65 73 63 72 69 70 74 69 6F 6E 21 53 70 65   // .Description!Spe
-		63 69 66 69 65 73 20 74 68 65 20 66 72 61 6D 65   // cifies the frame
-		77 6F 72 6B 20 74 6F 20 74 61 72 67 65 74       ) // work to target
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_0019:  brtrue IL_002a
 
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 2A 55 73 65 20 74 68 65 20 2D 5B 74 5D 61   // ..*Use the -[t]a
-		72 67 65 74 66 72 61 6D 65 77 6F 72 6B 20 6F 70   // rgetframework op
-		74 69 6F 6E 20 69 6E 73 74 65 61 64 2E 00 00 00 ) // tion instead....
+	IL_001e:  nop 
+	IL_001f:  ldstr "The current framework is not valid."
+	IL_0024:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0029:  throw 
+	IL_002a:  ldarg.0 
+	IL_002b:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_0030:  ldstr "clrversion"
+	IL_0035:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_003a:  stloc.0 
+	IL_003b:  ldloc.0 
+	IL_003c:  brfalse IL_004f
 
-		.get instance default string NAnt.Core.CommandLineOptions::get_DefaultFramework () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_DefaultFramework (string 'value') 
-	}
-	.property instance string BuildFile ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 00 00 00 00 03 00 54 0E 04 4E 61 6D 65 09   // ........T..Name.
-		62 75 69 6C 64 66 69 6C 65 54 0E 09 53 68 6F 72   // buildfileT..Shor
-		74 4E 61 6D 65 01 66 54 0E 0B 44 65 73 63 72 69   // tName.fT..Descri
-		70 74 69 6F 6E 13 55 73 65 20 67 69 76 65 6E 20   // ption.Use given 
-		62 75 69 6C 64 66 69 6C 65                      ) // buildfile
+	IL_0041:  nop 
+	IL_0042:  ldarg.0 
+	IL_0043:  ldloc.0 
+	IL_0044:  newobj instance void class [mscorlib]System.Version::'.ctor'(string)
+	IL_0049:  stfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_clrVersion
+	IL_004e:  nop 
+	IL_004f:  nop 
+	IL_0050:  ldarg.0 
+	IL_0051:  ldfld class [mscorlib]System.Version NAnt.Core.FrameworkInfo::_clrVersion
+	IL_0056:  stloc.1 
+	IL_0057:  br IL_005c
 
-		.get instance default string NAnt.Core.CommandLineOptions::get_BuildFile () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_BuildFile (string 'value') 
-	}
-	.property instance bool Pause ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 00 00 00 00 02 00 54 0E 04 4E 61 6D 65 05   // ........T..Name.
-		70 61 75 73 65 54 0E 0B 44 65 73 63 72 69 70 74   // pauseT..Descript
-		69 6F 6E 1A 50 61 75 73 65 73 20 62 65 66 6F 72   // ion.Pauses befor
-		65 20 70 72 6F 67 72 61 6D 20 65 6E 64 73       ) // e program ends
+	IL_005c:  ldloc.1 
+	IL_005d:  ret 
+    } // end of method FrameworkInfo::get_ClrVersion
 
-		.get instance default bool NAnt.Core.CommandLineOptions::get_Pause () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_Pause (bool 'value') 
-	}
-	.property instance bool Verbose ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 00 00 00 00 03 00 54 0E 04 4E 61 6D 65 07   // ........T..Name.
-		76 65 72 62 6F 73 65 54 0E 09 53 68 6F 72 74 4E   // verboseT..ShortN
-		61 6D 65 01 76 54 0E 0B 44 65 73 63 72 69 70 74   // ame.vT..Descript
-		69 6F 6E 2E 44 69 73 70 6C 61 79 73 20 6D 6F 72   // ion.Displays mor
-		65 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 64 75   // e information du
-		72 69 6E 67 20 62 75 69 6C 64 20 70 72 6F 63 65   // ring build proce
-		73 73                                           ) // ss
+    // method line 2349
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.Core.ClrType get_ClrType ()  cil managed 
+    {
+        // Method begins at RVA 0x2c188
+	// Code size 125 (0x7d)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Exception	V_1,
+		valuetype NAnt.Core.ClrType	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.Core.ClrType NAnt.Core.FrameworkInfo::_clrType
+	IL_0007:  brtrue IL_006f
 
-		.get instance default bool NAnt.Core.CommandLineOptions::get_Verbose () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_Verbose (bool 'value') 
-	}
-	.property instance bool Debug ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 00 00 00 00 02 00 54 0E 04 4E 61 6D 65 05   // ........T..Name.
-		64 65 62 75 67 54 0E 0B 44 65 73 63 72 69 70 74   // debugT..Descript
-		69 6F 6E 2F 44 69 73 70 6C 61 79 73 20 64 65 62   // ion/Displays deb
-		75 67 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 64   // ug information d
-		75 72 69 6E 67 20 62 75 69 6C 64 20 70 72 6F 63   // uring build proc
-		65 73 73                                        ) // ess
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_0013:  brtrue IL_0024
 
-		.get instance default bool NAnt.Core.CommandLineOptions::get_Debug () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_Debug (bool 'value') 
-	}
-	.property instance bool Quiet ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 00 00 00 00 03 00 54 0E 04 4E 61 6D 65 05   // ........T..Name.
-		71 75 69 65 74 54 0E 09 53 68 6F 72 74 4E 61 6D   // quietT..ShortNam
-		65 01 71 54 0E 0B 44 65 73 63 72 69 70 74 69 6F   // e.qT..Descriptio
-		6E 3C 44 69 73 70 6C 61 79 73 20 6F 6E 6C 79 20   // n<Displays only 
-		65 72 72 6F 72 20 6F 72 20 77 61 72 6E 69 6E 67   // error or warning
-		20 6D 65 73 73 61 67 65 73 20 64 75 72 69 6E 67   //  messages during
-		20 62 75 69 6C 64 20 70 72 6F 63 65 73 73       ) //  build process
+	IL_0018:  nop 
+	IL_0019:  ldstr "The current framework is not valid."
+	IL_001e:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0023:  throw 
+	IL_0024:  ldarg.0 
+	IL_0025:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_002a:  ldstr "clrtype"
+	IL_002f:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_0034:  stloc.0 
+	IL_0035:  ldloc.0 
+	IL_0036:  brfalse IL_006e
 
-		.get instance default bool NAnt.Core.CommandLineOptions::get_Quiet () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_Quiet (bool 'value') 
-	}
-	.property instance bool EmacsMode ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 00 00 00 00 03 00 54 0E 04 4E 61 6D 65 05   // ........T..Name.
-		65 6D 61 63 73 54 0E 09 53 68 6F 72 74 4E 61 6D   // emacsT..ShortNam
-		65 01 65 54 0E 0B 44 65 73 63 72 69 70 74 69 6F   // e.eT..Descriptio
-		6E 2E 50 72 6F 64 75 63 65 20 6C 6F 67 67 69 6E   // n.Produce loggin
-		67 20 69 6E 66 6F 72 6D 61 74 69 6F 6E 20 77 69   // g information wi
-		74 68 6F 75 74 20 61 64 6F 72 6E 6D 65 6E 74 73 ) // thout adornments
+	IL_003b:  nop 
+	.try { // 0
+	  IL_003c:  nop 
+	  IL_003d:  ldarg.0 
+	  IL_003e:  ldtoken NAnt.Core.ClrType
+	  IL_0043:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0048:  ldloc.0 
+	  IL_0049:  ldc.i4.1 
+	  IL_004a:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	  IL_004f:  unbox.any NAnt.Core.ClrType
+	  IL_0054:  stfld valuetype NAnt.Core.ClrType NAnt.Core.FrameworkInfo::_clrType
+	  IL_0059:  nop 
+	  IL_005a:  leave IL_006d
 
-		.get instance default bool NAnt.Core.CommandLineOptions::get_EmacsMode () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_EmacsMode (bool 'value') 
-	}
-	.property instance bool FindInParent ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 00 00 00 00 02 00 54 0E 04 4E 61 6D 65 04   // ........T..Name.
-		66 69 6E 64 54 0E 0B 44 65 73 63 72 69 70 74 69   // findT..Descripti
-		6F 6E 28 53 65 61 72 63 68 20 70 61 72 65 6E 74   // on(Search parent
-		20 64 69 72 65 63 74 6F 72 69 65 73 20 66 6F 72   //  directories for
-		20 62 75 69 6C 64 20 66 69 6C 65                ) //  build file
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_005f:  stloc.1 
+	  IL_0060:  nop 
+	  IL_0061:  ldstr "The value of the \"clrtype\" attribute is not valid."
+	  IL_0066:  ldloc.1 
+	  IL_0067:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string, class [mscorlib]System.Exception)
+	  IL_006c:  throw 
+	} // end handler 0
+	IL_006d:  nop 
+	IL_006e:  nop 
+	IL_006f:  ldarg.0 
+	IL_0070:  ldfld valuetype NAnt.Core.ClrType NAnt.Core.FrameworkInfo::_clrType
+	IL_0075:  stloc.2 
+	IL_0076:  br IL_007b
 
-		.get instance default bool NAnt.Core.CommandLineOptions::get_FindInParent () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_FindInParent (bool 'value') 
-	}
-	.property instance int32 IndentationLevel ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 00 00 00 00 02 00 54 0E 04 4E 61 6D 65 06   // ........T..Name.
-		69 6E 64 65 6E 74 54 0E 0B 44 65 73 63 72 69 70   // indentT..Descrip
-		74 69 6F 6E 21 49 6E 64 65 6E 74 61 74 69 6F 6E   // tion!Indentation
-		20 6C 65 76 65 6C 20 6F 66 20 62 75 69 6C 64 20   //  level of build 
-		6F 75 74 70 75 74                               ) // output
+	IL_007b:  ldloc.2 
+	IL_007c:  ret 
+    } // end of method FrameworkInfo::get_ClrType
 
-		.get instance default int32 NAnt.Core.CommandLineOptions::get_IndentationLevel () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_IndentationLevel (int32 'value') 
-	}
-	.property instance class [System]System.Collections.Specialized.NameValueCollection Properties ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 06 00 00 00 02 00 54 0E 04 4E 61 6D 65 01   // ........T..Name.
-		44 54 0E 0B 44 65 73 63 72 69 70 74 69 6F 6E 1C   // DT..Description.
-		55 73 65 20 76 61 6C 75 65 20 66 6F 72 20 67 69   // Use value for gi
-		76 65 6E 20 70 72 6F 70 65 72 74 79             ) // ven property
+    // method line 2350
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Version get_VisualStudioVersion ()  cil managed 
+    {
+        // Method begins at RVA 0x2c224
+	// Code size 210 (0xd2)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Version	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
+	IL_0007:  ldnull 
+	IL_0008:  call bool class [mscorlib]System.Version::op_Equality(class [mscorlib]System.Version, class [mscorlib]System.Version)
+	IL_000d:  brfalse IL_001e
 
-		.get instance default class [System]System.Collections.Specialized.NameValueCollection NAnt.Core.CommandLineOptions::get_Properties () 
-	}
-	.property instance string LoggerType ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 00 00 00 00 02 00 54 0E 04 4E 61 6D 65 06   // ........T..Name.
-		6C 6F 67 67 65 72 54 0E 0B 44 65 73 63 72 69 70   // loggerT..Descrip
-		74 69 6F 6E 18 55 73 65 20 67 69 76 65 6E 20 74   // tion.Use given t
-		79 70 65 20 61 73 20 6C 6F 67 67 65 72          ) // ype as logger
+	IL_0012:  nop 
+	IL_0013:  ldstr "The current framework is not valid."
+	IL_0018:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_001d:  throw 
+	IL_001e:  ldarg.0 
+	IL_001f:  call instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
+	IL_0024:  ldc.i4.2 
+	IL_0025:  callvirt instance string class [mscorlib]System.Version::ToString(int32)
+	IL_002a:  stloc.0 
+	IL_002b:  ldloc.0 
+	IL_002c:  brfalse IL_00ab
 
-		.get instance default string NAnt.Core.CommandLineOptions::get_LoggerType () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_LoggerType (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo LogFile ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 00 00 00 00 03 00 54 0E 04 4E 61 6D 65 07   // ........T..Name.
-		6C 6F 67 66 69 6C 65 54 0E 09 53 68 6F 72 74 4E   // logfileT..ShortN
-		61 6D 65 01 6C 54 0E 0B 44 65 73 63 72 69 70 74   // ame.lT..Descript
-		69 6F 6E 24 55 73 65 20 76 61 6C 75 65 20 61 73   // ion$Use value as
-		20 6E 61 6D 65 20 6F 66 20 6C 6F 67 20 6F 75 74   //  name of log out
-		70 75 74 20 66 69 6C 65                         ) // put file
+	IL_0031:  ldloc.0 
+	IL_0032:  ldstr "1.0"
+	IL_0037:  call bool string::op_Equality(string, string)
+	IL_003c:  brtrue IL_0076
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Core.CommandLineOptions::get_LogFile () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_LogFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection Listeners ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 06 00 00 00 02 00 54 0E 04 4E 61 6D 65 08   // ........T..Name.
-		6C 69 73 74 65 6E 65 72 54 0E 0B 44 65 73 63 72   // listenerT..Descr
-		69 70 74 69 6F 6E 2E 41 64 64 20 61 6E 20 69 6E   // iption.Add an in
-		73 74 61 6E 63 65 20 6F 66 20 63 6C 61 73 73 20   // stance of class 
-		61 73 20 61 20 70 72 6F 6A 65 63 74 20 6C 69 73   // as a project lis
-		74 65 6E 65 72                                  ) // tener
+	IL_0041:  ldloc.0 
+	IL_0042:  ldstr "1.1"
+	IL_0047:  call bool string::op_Equality(string, string)
+	IL_004c:  brtrue IL_0083
 
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::get_Listeners () 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection ExtensionAssemblies ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 06 00 00 00 03 00 54 0E 04 4E 61 6D 65 09   // ........T..Name.
-		65 78 74 65 6E 73 69 6F 6E 54 0E 09 53 68 6F 72   // extensionT..Shor
-		74 4E 61 6D 65 03 65 78 74 54 0E 0B 44 65 73 63   // tName.extT..Desc
-		72 69 70 74 69 6F 6E 30 4C 6F 61 64 20 4E 41 6E   // ription0Load NAn
-		74 20 65 78 74 65 6E 73 69 6F 6E 73 20 66 72 6F   // t extensions fro
-		6D 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20   // m the specified 
-		61 73 73 65 6D 62 6C 79                         ) // assembly
+	IL_0051:  ldloc.0 
+	IL_0052:  ldstr "2.0"
+	IL_0057:  call bool string::op_Equality(string, string)
+	IL_005c:  brtrue IL_0090
 
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::get_ExtensionAssemblies () 
-	}
-	.property instance bool ShowProjectHelp ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 00 00 00 00 02 00 54 0E 04 4E 61 6D 65 0B   // ........T..Name.
-		70 72 6F 6A 65 63 74 68 65 6C 70 54 0E 0B 44 65   // projecthelpT..De
-		73 63 72 69 70 74 69 6F 6E 1F 50 72 69 6E 74 73   // scription.Prints
-		20 70 72 6F 6A 65 63 74 20 68 65 6C 70 20 69 6E   //  project help in
-		66 6F 72 6D 61 74 69 6F 6E                      ) // formation
+	IL_0061:  ldloc.0 
+	IL_0062:  ldstr "4.0"
+	IL_0067:  call bool string::op_Equality(string, string)
+	IL_006c:  brtrue IL_009d
 
-		.get instance default bool NAnt.Core.CommandLineOptions::get_ShowProjectHelp () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_ShowProjectHelp (bool 'value') 
-	}
-	.property instance bool NoLogo ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 00 00 00 00 02 00 54 0E 04 4E 61 6D 65 06   // ........T..Name.
-		6E 6F 6C 6F 67 6F 54 0E 0B 44 65 73 63 72 69 70   // nologoT..Descrip
-		74 69 6F 6E 25 53 75 70 70 72 65 73 73 65 73 20   // tion%Suppresses 
-		64 69 73 70 6C 61 79 20 6F 66 20 74 68 65 20 6C   // display of the l
-		6F 67 6F 20 62 61 6E 6E 65 72                   ) // ogo banner
+	IL_0071:  br IL_00ab
 
-		.get instance default bool NAnt.Core.CommandLineOptions::get_NoLogo () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_NoLogo (bool 'value') 
-	}
-	.property instance bool ShowHelp ()
-	{
-		.custom instance void class NAnt.Core.Util.CommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 08 00 00 00 03 00 54 0E 04 4E 61 6D 65 04   // ........T..Name.
-		68 65 6C 70 54 0E 09 53 68 6F 72 74 4E 61 6D 65   // helpT..ShortName
-		01 68 54 0E 0B 44 65 73 63 72 69 70 74 69 6F 6E   // .hT..Description
-		13 50 72 69 6E 74 73 20 74 68 69 73 20 6D 65 73   // .Prints this mes
-		73 61 67 65                                     ) // sage
+	IL_0076:  ldc.i4.7 
+	IL_0077:  ldc.i4.0 
+	IL_0078:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32)
+	IL_007d:  stloc.1 
+	IL_007e:  br IL_00d0
 
-		.get instance default bool NAnt.Core.CommandLineOptions::get_ShowHelp () 
-		.set instance default void NAnt.Core.CommandLineOptions::set_ShowHelp (bool 'value') 
-	}
-	.property instance class [System]System.Collections.Specialized.StringCollection Targets ()
-	{
-		.custom instance void class NAnt.Core.Util.DefaultCommandLineArgumentAttribute::'.ctor'(valuetype NAnt.Core.Util.CommandLineArgumentTypes) =  (
-		01 00 06 00 00 00 01 00 54 0E 04 4E 61 6D 65 06   // ........T..Name.
-		74 61 72 67 65 74                               ) // target
+	IL_0083:  ldc.i4.7 
+	IL_0084:  ldc.i4.1 
+	IL_0085:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32)
+	IL_008a:  stloc.1 
+	IL_008b:  br IL_00d0
 
-		.get instance default class [System]System.Collections.Specialized.StringCollection NAnt.Core.CommandLineOptions::get_Targets () 
-	}
-  } // end of class NAnt.Core.CommandLineOptions
-}
+	IL_0090:  ldc.i4.8 
+	IL_0091:  ldc.i4.0 
+	IL_0092:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32)
+	IL_0097:  stloc.1 
+	IL_0098:  br IL_00d0
 
-.namespace NAnt.Core
-{
-  .class public auto ansi sealed beforefieldinit TypeFactory
-  	extends [mscorlib]System.Object
-  {
-    .field  private static initonly  class [log4net]log4net.ILog logger
-    .field  private static  class NAnt.Core.TaskBuilderCollection _taskBuilders
-    .field  private static  class NAnt.Core.DataTypeBaseBuilderCollection _dataTypeBuilders
-    .field  private static  class NAnt.Core.Filters.FilterBuilderCollection _filterBuilders
-    .field  private static  class [mscorlib]System.Collections.Hashtable _methodInfoCollection
-    .field  private static  class NAnt.Core.Extensibility.PluginScanner _pluginScanner
+	IL_009d:  ldc.i4.s 0x0a
+	IL_009f:  ldc.i4.0 
+	IL_00a0:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32)
+	IL_00a5:  stloc.1 
+	IL_00a6:  br IL_00d0
 
-    // method line 2350
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2bb7b
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method TypeFactory::.ctor
+	IL_00ab:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00b0:  ldstr "NA1055"
+	IL_00b5:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00ba:  ldarg.0 
+	IL_00bb:  call instance string class NAnt.Core.FrameworkInfo::get_Description()
+	IL_00c0:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00c5:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_00ca:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
+	IL_00cf:  throw 
+	IL_00d0:  ldloc.1 
+	IL_00d1:  ret 
+    } // end of method FrameworkInfo::get_VisualStudioVersion
 
     // method line 2351
-    .method public static hidebysig specialname 
-           default class NAnt.Core.TaskBuilderCollection get_TaskBuilders ()  cil managed 
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_FrameworkDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x2bb84
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0x2c304
+	// Code size 128 (0x80)
+	.maxstack 3
 	.locals init (
-		class NAnt.Core.TaskBuilderCollection	V_0)
+		string	V_0,
+		class [mscorlib]System.IO.DirectoryInfo	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldsfld class NAnt.Core.TaskBuilderCollection NAnt.Core.TypeFactory::_taskBuilders
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
+	IL_0007:  ldarg.0 
+	IL_0008:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkDirectory
+	IL_000d:  brtrue IL_0072
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method TypeFactory::get_TaskBuilders
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_001f:  ldstr "frameworkdirectory"
+	IL_0024:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_0029:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_002e:  callvirt instance string class NAnt.Core.Project::ExpandProperties(string, class NAnt.Core.Location)
+	IL_0033:  stloc.0 
+	IL_0034:  ldloc.0 
+	IL_0035:  brfalse IL_0071
+
+	IL_003a:  nop 
+	IL_003b:  ldloc.0 
+	IL_003c:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0041:  brfalse IL_0059
+
+	IL_0046:  nop 
+	IL_0047:  ldarg.0 
+	IL_0048:  ldloc.0 
+	IL_0049:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_004e:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkDirectory
+	IL_0053:  nop 
+	IL_0054:  br IL_0070
+
+	IL_0059:  nop 
+	IL_005a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_005f:  ldstr "Framework directory '{0}' does not exist."
+	IL_0064:  ldloc.0 
+	IL_0065:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_006a:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_006f:  throw 
+	IL_0070:  nop 
+	IL_0071:  nop 
+	IL_0072:  ldarg.0 
+	IL_0073:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkDirectory
+	IL_0078:  stloc.1 
+	IL_0079:  br IL_007e
+
+	IL_007e:  ldloc.1 
+	IL_007f:  ret 
+    } // end of method FrameworkInfo::get_FrameworkDirectory
 
     // method line 2352
-    .method public static hidebysig specialname 
-           default class NAnt.Core.DataTypeBaseBuilderCollection get_DataTypeBuilders ()  cil managed 
+    .method assembly hidebysig specialname 
+           instance default class NAnt.Core.Configuration.Runtime get_Runtime ()  cil managed 
     {
-        // Method begins at RVA 0x2bba0
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x2c390
+	// Code size 21 (0x15)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.DataTypeBaseBuilderCollection	V_0)
+		class NAnt.Core.Configuration.Runtime	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldsfld class NAnt.Core.DataTypeBaseBuilderCollection NAnt.Core.TypeFactory::_dataTypeBuilders
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::Init()
+	IL_0007:  ldarg.0 
+	IL_0008:  ldfld class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::_runtime
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method TypeFactory::get_DataTypeBuilders
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method FrameworkInfo::get_Runtime
 
     // method line 2353
-    .method public static hidebysig specialname 
-           default class NAnt.Core.Filters.FilterBuilderCollection get_FilterBuilders ()  cil managed 
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_FrameworkAssemblyDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x2bbbc
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0x2c3b4
+	// Code size 177 (0xb1)
+	.maxstack 3
 	.locals init (
-		class NAnt.Core.Filters.FilterBuilderCollection	V_0)
+		string	V_0,
+		class [mscorlib]System.IO.DirectoryInfo	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldsfld class NAnt.Core.Filters.FilterBuilderCollection NAnt.Core.TypeFactory::_filterBuilders
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
+	IL_0007:  ldarg.0 
+	IL_0008:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkAssemblyDirectory
+	IL_000d:  brtrue IL_00a3
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method TypeFactory::get_FilterBuilders
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_001f:  ldstr "frameworkassemblydirectory"
+	IL_0024:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_0029:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	IL_002e:  callvirt instance string class NAnt.Core.Project::ExpandProperties(string, class NAnt.Core.Location)
+	IL_0033:  stloc.0 
+	IL_0034:  ldloc.0 
+	IL_0035:  brfalse IL_00a2
+
+	IL_003a:  nop 
+	IL_003b:  ldloc.0 
+	IL_003c:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0041:  brfalse IL_008a
+
+	IL_0046:  nop 
+	IL_0047:  ldloc.0 
+	IL_0048:  ldstr "System.dll"
+	IL_004d:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0052:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0057:  brtrue IL_0078
+
+	IL_005c:  nop 
+	IL_005d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0062:  ldstr "NA1054"
+	IL_0067:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_006c:  ldloc.0 
+	IL_006d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0072:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0077:  throw 
+	IL_0078:  ldarg.0 
+	IL_0079:  ldloc.0 
+	IL_007a:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_007f:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkAssemblyDirectory
+	IL_0084:  nop 
+	IL_0085:  br IL_00a1
+
+	IL_008a:  nop 
+	IL_008b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0090:  ldstr "Framework assembly directory '{0}' does not exist."
+	IL_0095:  ldloc.0 
+	IL_0096:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_009b:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_00a0:  throw 
+	IL_00a1:  nop 
+	IL_00a2:  nop 
+	IL_00a3:  ldarg.0 
+	IL_00a4:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_frameworkAssemblyDirectory
+	IL_00a9:  stloc.1 
+	IL_00aa:  br IL_00af
+
+	IL_00af:  ldloc.1 
+	IL_00b0:  ret 
+    } // end of method FrameworkInfo::get_FrameworkAssemblyDirectory
 
     // method line 2354
-    .method assembly static hidebysig specialname 
-           default class NAnt.Core.Extensibility.PluginScanner get_PluginScanner ()  cil managed 
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_SdkDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x2bbd8
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x2c474
+	// Code size 27 (0x1b)
 	.maxstack 1
 	.locals init (
-		class NAnt.Core.Extensibility.PluginScanner	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldsfld class NAnt.Core.Extensibility.PluginScanner NAnt.Core.TypeFactory::_pluginScanner
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::Init()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_sdkDirectory
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0019
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method TypeFactory::get_PluginScanner
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method FrameworkInfo::get_SdkDirectory
 
     // method line 2355
-    .method public static hidebysig 
-           default bool ScanAssembly (string assemblyFile, class NAnt.Core.Task task)  cil managed 
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Project get_Project ()  cil managed 
     {
-        // Method begins at RVA 0x2bbf4
-        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
-	// Code size 23 (0x17)
-	.maxstack 2
+        // Method begins at RVA 0x2c49c
+	// Code size 27 (0x1b)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0,
-		bool	V_1)
+		class NAnt.Core.Project	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFrom(string)
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  call bool class NAnt.Core.TypeFactory::ScanAssembly(class [mscorlib]System.Reflection.Assembly, class NAnt.Core.Task)
-	IL_000f:  stloc.1 
-	IL_0010:  br IL_0015
+	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::Init()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class NAnt.Core.Project NAnt.Core.FrameworkInfo::_project
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0019
 
-	IL_0015:  ldloc.1 
-	IL_0016:  ret 
-    } // end of method TypeFactory::ScanAssembly
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method FrameworkInfo::get_Project
 
     // method line 2356
-    .method public static hidebysig 
-           default bool ScanAssembly (class [mscorlib]System.Reflection.Assembly 'assembly', class NAnt.Core.Task task)  cil managed 
+    .method public hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet get_TaskAssemblies ()  cil managed 
     {
-        // Method begins at RVA 0x2bc18
-        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
-	// Code size 563 (0x233)
-	.maxstack 7
+        // Method begins at RVA 0x2c4c4
+	// Code size 167 (0xa7)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Type	V_0,
-		class [mscorlib]System.Type[]	V_1,
-		int32	V_2,
-		class [mscorlib]System.Reflection.MethodInfo	V_3,
-		class [mscorlib]System.Reflection.MethodInfo[]	V_4,
-		int32	V_5,
-		bool	V_6,
-		class NAnt.Core.Extensibility.ExtensionAssembly	V_7,
-		class [mscorlib]System.Type[]	V_8,
-		class [mscorlib]System.Reflection.ReflectionTypeLoadException	V_9,
-		class [mscorlib]System.Type	V_10,
-		class [mscorlib]System.Type[]	V_11,
-		int32	V_12,
-		bool	V_13,
-		class [mscorlib]System.Reflection.AssemblyName	V_14,
-		class [mscorlib]System.Reflection.AssemblyName	V_15,
-		class [mscorlib]System.Reflection.AssemblyName[]	V_16,
-		int32	V_17,
-		bool	V_18)
+		class [System.Xml]System.Xml.XmlNode	V_0,
+		class NAnt.Core.Types.FileSet	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldc.i4 2000
-	IL_0007:  ldstr "Scanning assembly \"{0}\" for extensions."
-	IL_000c:  ldc.i4.1 
-	IL_000d:  newarr [mscorlib]System.Object
-	IL_0012:  dup 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
-	IL_001a:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	IL_001f:  stelem.ref 
-	IL_0020:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0025:  nop 
-	IL_0026:  ldarg.0 
-	IL_0027:  callvirt instance class [mscorlib]System.Type[] class [mscorlib]System.Reflection.Assembly::GetExportedTypes()
-	IL_002c:  stloc.1 
-	IL_002d:  ldc.i4.0 
-	IL_002e:  stloc.2 
-	IL_002f:  br IL_0094
-
-	IL_0034:  ldloc.1 
-	IL_0035:  ldloc.2 
-	IL_0036:  ldelem.ref 
-	IL_0037:  stloc.0 
-	IL_0038:  nop 
-	IL_0039:  nop 
-	IL_003a:  ldloc.0 
-	IL_003b:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods()
-	IL_0040:  stloc.s 4
-	IL_0042:  ldc.i4.0 
-	IL_0043:  stloc.s 5
-	IL_0045:  br IL_0084
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
+	IL_0007:  ldarg.0 
+	IL_0008:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
+	IL_000d:  brtrue IL_0099
 
-	IL_004a:  ldloc.s 4
-	IL_004c:  ldloc.s 5
-	IL_004e:  ldelem.ref 
-	IL_004f:  stloc.3 
-	IL_0050:  nop 
-	IL_0051:  ldloc.3 
-	IL_0052:  callvirt instance bool class [mscorlib]System.Reflection.MethodBase::get_IsStatic()
-	IL_0057:  brfalse IL_007d
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0019:  stfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
+	IL_001e:  ldarg.0 
+	IL_001f:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
+	IL_0024:  ldarg.0 
+	IL_0025:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
+	IL_002a:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_002f:  ldarg.0 
+	IL_0030:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
+	IL_0035:  ldarg.0 
+	IL_0036:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
+	IL_003b:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0040:  ldarg.0 
+	IL_0041:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
+	IL_0046:  ldarg.0 
+	IL_0047:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
+	IL_004c:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_0051:  ldarg.0 
+	IL_0052:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
+	IL_0057:  ldstr "internal-task-assemblies"
+	IL_005c:  callvirt instance void class NAnt.Core.DataTypeBase::set_ID(string)
+	IL_0061:  ldarg.0 
+	IL_0062:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_0067:  ldstr "nant:task-assemblies"
+	IL_006c:  ldarg.0 
+	IL_006d:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
+	IL_0072:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0077:  stloc.0 
+	IL_0078:  ldloc.0 
+	IL_0079:  brfalse IL_0098
 
-	IL_005c:  nop 
-	IL_005d:  ldarg.1 
-	IL_005e:  ldc.i4 2000
-	IL_0063:  ldstr "Found method {0}."
-	IL_0068:  ldc.i4.1 
-	IL_0069:  newarr [mscorlib]System.Object
-	IL_006e:  dup 
-	IL_006f:  ldc.i4.0 
-	IL_0070:  ldloc.3 
-	IL_0071:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	IL_0076:  stelem.ref 
-	IL_0077:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_007c:  nop 
-	IL_007d:  nop 
-	IL_007e:  ldloc.s 5
-	IL_0080:  ldc.i4.1 
-	IL_0081:  add 
-	IL_0082:  stloc.s 5
-	IL_0084:  ldloc.s 5
-	IL_0086:  ldloc.s 4
-	IL_0088:  ldlen 
-	IL_0089:  conv.i4 
-	IL_008a:  blt IL_004a
+	IL_007e:  nop 
+	IL_007f:  ldarg.0 
+	IL_0080:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
+	IL_0085:  ldloc.0 
+	IL_0086:  ldarg.0 
+	IL_0087:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
+	IL_008c:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_0091:  ldarg.0 
+	IL_0092:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
+	IL_0097:  nop 
+	IL_0098:  nop 
+	IL_0099:  ldarg.0 
+	IL_009a:  ldfld class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::_taskAssemblies
+	IL_009f:  stloc.1 
+	IL_00a0:  br IL_00a5
 
-	IL_008f:  nop 
-	IL_0090:  ldloc.2 
-	IL_0091:  ldc.i4.1 
-	IL_0092:  add 
-	IL_0093:  stloc.2 
-	IL_0094:  ldloc.2 
-	IL_0095:  ldloc.1 
-	IL_0096:  ldlen 
-	IL_0097:  conv.i4 
-	IL_0098:  blt IL_0034
+	IL_00a5:  ldloc.1 
+	IL_00a6:  ret 
+    } // end of method FrameworkInfo::get_TaskAssemblies
 
-	IL_009d:  ldc.i4.0 
-	IL_009e:  stloc.s 6
-	IL_00a0:  ldarg.0 
-	IL_00a1:  newobj instance void class NAnt.Core.Extensibility.ExtensionAssembly::'.ctor'(class [mscorlib]System.Reflection.Assembly)
-	IL_00a6:  stloc.s 7
+    // method line 2357
+    .method public hidebysig specialname 
+           instance default bool get_IsValid ()  cil managed 
+    {
+        // Method begins at RVA 0x2c578
+	// Code size 26 (0x1a)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
 	.try { // 0
-	  IL_00a8:  nop 
-	  IL_00a9:  ldarg.0 
-	  IL_00aa:  callvirt instance class [mscorlib]System.Type[] class [mscorlib]System.Reflection.Assembly::GetTypes()
-	  IL_00af:  stloc.s 8
-	  IL_00b1:  nop 
-	  IL_00b2:  leave IL_00e2
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.0 
+	  IL_0003:  call instance void class NAnt.Core.FrameworkInfo::Validate()
+	  IL_0008:  ldc.i4.1 
+	  IL_0009:  stloc.0 
+	  IL_000a:  leave IL_0018
 
 	} // end .try 0
-	catch class [mscorlib]System.Reflection.ReflectionTypeLoadException { // 0
-	  IL_00b7:  stloc.s 9
-	  IL_00b9:  nop 
-	  IL_00ba:  ldloc.s 9
-	  IL_00bc:  callvirt instance class [mscorlib]System.Exception[] class [mscorlib]System.Reflection.ReflectionTypeLoadException::get_LoaderExceptions()
-	  IL_00c1:  brfalse IL_00e0
-
-	  IL_00c6:  ldloc.s 9
-	  IL_00c8:  callvirt instance class [mscorlib]System.Exception[] class [mscorlib]System.Reflection.ReflectionTypeLoadException::get_LoaderExceptions()
-	  IL_00cd:  ldlen 
-	  IL_00ce:  conv.i4 
-	  IL_00cf:  ldc.i4.0 
-	  IL_00d0:  ble IL_00e0
+	catch class [mscorlib]System.Object { // 0
+	  IL_000f:  pop 
+	  IL_0010:  nop 
+	  IL_0011:  ldc.i4.0 
+	  IL_0012:  stloc.0 
+	  IL_0013:  leave IL_0018
 
-	  IL_00d5:  nop 
-	  IL_00d6:  ldloc.s 9
-	  IL_00d8:  callvirt instance class [mscorlib]System.Exception[] class [mscorlib]System.Reflection.ReflectionTypeLoadException::get_LoaderExceptions()
-	  IL_00dd:  ldc.i4.0 
-	  IL_00de:  ldelem.ref 
-	  IL_00df:  throw 
-	  IL_00e0:  rethrow 
 	} // end handler 0
-	IL_00e2:  nop 
-	IL_00e3:  ldloc.s 8
-	IL_00e5:  stloc.s 11
-	IL_00e7:  ldc.i4.0 
-	IL_00e8:  stloc.s 12
-	IL_00ea:  br IL_016f
-
-	IL_00ef:  ldloc.s 11
-	IL_00f1:  ldloc.s 12
-	IL_00f3:  ldelem.ref 
-	IL_00f4:  stloc.s 10
-	IL_00f6:  nop 
-	IL_00f7:  ldloc.s 7
-	IL_00f9:  ldloc.s 10
-	IL_00fb:  ldarg.1 
-	IL_00fc:  call bool class NAnt.Core.TypeFactory::ScanTypeForTasks(class NAnt.Core.Extensibility.ExtensionAssembly, class [mscorlib]System.Type, class NAnt.Core.Task)
-	IL_0101:  stloc.s 13
-	IL_0103:  ldloc.s 13
-	IL_0105:  brtrue IL_0118
-
-	IL_010a:  nop 
-	IL_010b:  ldloc.s 7
-	IL_010d:  ldloc.s 10
-	IL_010f:  ldarg.1 
-	IL_0110:  call bool class NAnt.Core.TypeFactory::ScanTypeForDataTypes(class NAnt.Core.Extensibility.ExtensionAssembly, class [mscorlib]System.Type, class NAnt.Core.Task)
-	IL_0115:  stloc.s 13
-	IL_0117:  nop 
-	IL_0118:  ldloc.s 13
-	IL_011a:  brtrue IL_012b
-
-	IL_011f:  nop 
-	IL_0120:  ldloc.s 10
-	IL_0122:  ldarg.1 
-	IL_0123:  call bool class NAnt.Core.TypeFactory::ScanTypeForFunctions(class [mscorlib]System.Type, class NAnt.Core.Task)
-	IL_0128:  stloc.s 13
-	IL_012a:  nop 
-	IL_012b:  ldloc.s 13
-	IL_012d:  brtrue IL_0140
-
-	IL_0132:  nop 
-	IL_0133:  ldloc.s 7
-	IL_0135:  ldloc.s 10
-	IL_0137:  ldarg.1 
-	IL_0138:  call bool class NAnt.Core.TypeFactory::ScanTypeForFilters(class NAnt.Core.Extensibility.ExtensionAssembly, class [mscorlib]System.Type, class NAnt.Core.Task)
-	IL_013d:  stloc.s 13
-	IL_013f:  nop 
-	IL_0140:  ldloc.s 13
-	IL_0142:  brtrue IL_015a
-
-	IL_0147:  nop 
-	IL_0148:  ldsfld class NAnt.Core.Extensibility.PluginScanner NAnt.Core.TypeFactory::_pluginScanner
-	IL_014d:  ldloc.s 7
-	IL_014f:  ldloc.s 10
-	IL_0151:  ldarg.1 
-	IL_0152:  callvirt instance bool class NAnt.Core.Extensibility.PluginScanner::ScanTypeForPlugins(class NAnt.Core.Extensibility.ExtensionAssembly, class [mscorlib]System.Type, class NAnt.Core.Task)
-	IL_0157:  stloc.s 13
-	IL_0159:  nop 
-	IL_015a:  ldloc.s 6
-	IL_015c:  brtrue IL_0165
-
-	IL_0161:  ldloc.s 13
-	IL_0163:  br.s IL_0166
-
-	IL_0165:  ldc.i4.1 
-	IL_0166:  stloc.s 6
-	IL_0168:  nop 
-	IL_0169:  ldloc.s 12
-	IL_016b:  ldc.i4.1 
-	IL_016c:  add 
-	IL_016d:  stloc.s 12
-	IL_016f:  ldloc.s 12
-	IL_0171:  ldloc.s 11
-	IL_0173:  ldlen 
-	IL_0174:  conv.i4 
-	IL_0175:  blt IL_00ef
-
-	IL_017a:  ldloc.s 6
-	IL_017c:  brtrue IL_0227
-
-	IL_0181:  nop 
-	IL_0182:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::GetExecutingAssembly()
-	IL_0187:  ldc.i4.0 
-	IL_0188:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName(bool)
-	IL_018d:  stloc.s 14
-	IL_018f:  nop 
-	IL_0190:  ldarg.0 
-	IL_0191:  callvirt instance class [mscorlib]System.Reflection.AssemblyName[] class [mscorlib]System.Reflection.Assembly::GetReferencedAssemblies()
-	IL_0196:  stloc.s 16
-	IL_0198:  ldc.i4.0 
-	IL_0199:  stloc.s 17
-	IL_019b:  br IL_021b
-
-	IL_01a0:  ldloc.s 16
-	IL_01a2:  ldloc.s 17
-	IL_01a4:  ldelem.ref 
-	IL_01a5:  stloc.s 15
-	IL_01a7:  nop 
-	IL_01a8:  ldloc.s 15
-	IL_01aa:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	IL_01af:  ldloc.s 14
-	IL_01b1:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	IL_01b6:  call bool string::op_Equality(string, string)
-	IL_01bb:  brfalse IL_0214
-
-	IL_01c0:  nop 
-	IL_01c1:  ldloc.s 15
-	IL_01c3:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
-	IL_01c8:  ldloc.s 14
-	IL_01ca:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
-	IL_01cf:  call bool class [mscorlib]System.Version::op_Inequality(class [mscorlib]System.Version, class [mscorlib]System.Version)
-	IL_01d4:  brfalse IL_0213
-
-	IL_01d9:  nop 
-	IL_01da:  ldarg.1 
-	IL_01db:  ldc.i4 4000
-	IL_01e0:  ldstr "Assembly \"{0}\" is built using version {1} of NAnt. If any problems arise, then try using a version that is built for NAnt version {2}."
-	IL_01e5:  ldc.i4.3 
-	IL_01e6:  newarr [mscorlib]System.Object
-	IL_01eb:  dup 
-	IL_01ec:  ldc.i4.0 
-	IL_01ed:  ldarg.0 
-	IL_01ee:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
-	IL_01f3:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	IL_01f8:  stelem.ref 
-	IL_01f9:  dup 
-	IL_01fa:  ldc.i4.1 
-	IL_01fb:  ldloc.s 15
-	IL_01fd:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
-	IL_0202:  stelem.ref 
-	IL_0203:  dup 
-	IL_0204:  ldc.i4.2 
-	IL_0205:  ldloc.s 14
-	IL_0207:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
-	IL_020c:  stelem.ref 
-	IL_020d:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0212:  nop 
-	IL_0213:  nop 
-	IL_0214:  nop 
-	IL_0215:  ldloc.s 17
-	IL_0217:  ldc.i4.1 
-	IL_0218:  add 
-	IL_0219:  stloc.s 17
-	IL_021b:  ldloc.s 17
-	IL_021d:  ldloc.s 16
-	IL_021f:  ldlen 
-	IL_0220:  conv.i4 
-	IL_0221:  blt IL_01a0
-
-	IL_0226:  nop 
-	IL_0227:  ldloc.s 6
-	IL_0229:  stloc.s 18
-	IL_022b:  br IL_0230
-
-	IL_0230:  ldloc.s 18
-	IL_0232:  ret 
-    } // end of method TypeFactory::ScanAssembly
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method FrameworkInfo::get_IsValid
 
-    // method line 2357
-    .method public static hidebysig 
-           default void ScanDir (string path, class NAnt.Core.Task task, bool failOnError)  cil managed 
+    // method line 2358
+    .method assembly hidebysig specialname 
+           instance default class NAnt.Core.Types.FileSet[] get_ReferenceAssemblies ()  cil managed 
     {
-        // Method begins at RVA 0x2be68
-        .permissionset demand = {[mscorlib]System.Security.Permissions.ReflectionPermissionAttribute = {property enum [mscorlib]System.Security.Permissions.ReflectionPermissionFlag 'Flags' = int32(0)}}
-	// Code size 256 (0x100)
-	.maxstack 7
+        // Method begins at RVA 0x2c5b0
+	// Code size 207 (0xcf)
+	.maxstack 4
 	.locals init (
-		class NAnt.Core.DirectoryScanner	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [mscorlib]System.Exception	V_3,
-		string	V_4,
-		class [mscorlib]System.IDisposable	V_5)
+		class [System.Xml]System.Xml.XmlNodeList	V_0,
+		int32	V_1,
+		class [System.Xml]System.Xml.XmlNode	V_2,
+		class NAnt.Core.Types.FileSet	V_3,
+		class NAnt.Core.Types.FileSet[]	V_4)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call bool string::IsNullOrEmpty(string)
-	IL_0007:  brfalse IL_0012
-
-	IL_000c:  nop 
-	IL_000d:  br IL_00ff
-
-	IL_0012:  ldarg.1 
-	IL_0013:  ldc.i4 3000
-	IL_0018:  ldstr "Scanning directory \"{0}\" for extension assemblies."
-	IL_001d:  ldc.i4.1 
-	IL_001e:  newarr [mscorlib]System.Object
-	IL_0023:  dup 
-	IL_0024:  ldc.i4.0 
-	IL_0025:  ldarg.0 
-	IL_0026:  stelem.ref 
-	IL_0027:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_002c:  newobj instance void class NAnt.Core.DirectoryScanner::'.ctor'()
-	IL_0031:  stloc.0 
-	IL_0032:  ldloc.0 
-	IL_0033:  ldarg.0 
-	IL_0034:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0039:  callvirt instance void class NAnt.Core.DirectoryScanner::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_003e:  ldloc.0 
-	IL_003f:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_Includes()
-	IL_0044:  ldstr "*.dll"
-	IL_0049:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_004e:  pop 
-	IL_004f:  nop 
-	IL_0050:  ldloc.0 
-	IL_0051:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.Core.DirectoryScanner::get_FileNames()
-	IL_0056:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_005b:  stloc.2 
-	.try { // 1
-	  IL_005c:  br IL_00d9
-
-	  IL_0061:  ldloc.2 
-	  IL_0062:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0067:  stloc.1 
-	  IL_0068:  nop 
-	  .try { // 0
-	    IL_0069:  nop 
-	    IL_006a:  ldloc.1 
-	    IL_006b:  ldarg.1 
-	    IL_006c:  call bool class NAnt.Core.TypeFactory::ScanAssembly(string, class NAnt.Core.Task)
-	    IL_0071:  pop 
-	    IL_0072:  nop 
-	    IL_0073:  leave IL_00d8
-
-	  } // end .try 0
-	  catch class [mscorlib]System.Exception { // 0
-	    IL_0078:  stloc.3 
-	    IL_0079:  nop 
-	    IL_007a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_007f:  ldstr "Failure scanning \"{0}\" for extensions"
-	    IL_0084:  ldloc.1 
-	    IL_0085:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	    IL_008a:  stloc.s 4
-	    IL_008c:  ldarg.2 
-	    IL_008d:  brfalse IL_00ab
-
-	    IL_0092:  nop 
-	    IL_0093:  ldloc.s 4
-	    IL_0095:  ldstr "."
-	    IL_009a:  call string string::Concat(string, string)
-	    IL_009f:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	    IL_00a4:  ldloc.3 
-	    IL_00a5:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
-	    IL_00aa:  throw 
-	    IL_00ab:  ldarg.1 
-	    IL_00ac:  ldc.i4 5000
-	    IL_00b1:  ldloc.s 4
-	    IL_00b3:  ldstr ": "
-	    IL_00b8:  ldloc.1 
-	    IL_00b9:  call string string::Concat(string, string, string)
-	    IL_00be:  ldc.i4.1 
-	    IL_00bf:  newarr [mscorlib]System.Object
-	    IL_00c4:  dup 
-	    IL_00c5:  ldc.i4.0 
-	    IL_00c6:  ldloc.3 
-	    IL_00c7:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	    IL_00cc:  stelem.ref 
-	    IL_00cd:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	    IL_00d2:  nop 
-	    IL_00d3:  leave IL_00d8
-
-	  } // end handler 0
-	  IL_00d8:  nop 
-	  IL_00d9:  ldloc.2 
-	  IL_00da:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_00df:  brtrue IL_0061
+	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
+	IL_0007:  ldarg.0 
+	IL_0008:  ldfld class NAnt.Core.Types.FileSet[] NAnt.Core.FrameworkInfo::_referenceAssemblies
+	IL_000d:  brtrue IL_00bf
 
-	  IL_00e4:  leave IL_00ff
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_0019:  ldstr "nant:reference-assemblies"
+	IL_001e:  ldarg.0 
+	IL_001f:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
+	IL_0024:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0029:  stloc.0 
+	IL_002a:  ldarg.0 
+	IL_002b:  ldloc.0 
+	IL_002c:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_0031:  newarr NAnt.Core.Types.FileSet
+	IL_0036:  stfld class NAnt.Core.Types.FileSet[] NAnt.Core.FrameworkInfo::_referenceAssemblies
+	IL_003b:  ldc.i4.0 
+	IL_003c:  stloc.1 
+	IL_003d:  br IL_00b2
 
-	} // end .try 1
-	finally  { // 1
-	  IL_00e9:  ldloc.2 
-	  IL_00ea:  isinst [mscorlib]System.IDisposable
-	  IL_00ef:  dup 
-	  IL_00f0:  stloc.s 5
-	  IL_00f2:  brfalse IL_00fe
+	IL_0042:  nop 
+	IL_0043:  ldloc.0 
+	IL_0044:  ldloc.1 
+	IL_0045:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNodeList::get_ItemOf(int32)
+	IL_004a:  stloc.2 
+	IL_004b:  newobj instance void class NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0050:  stloc.3 
+	IL_0051:  ldloc.3 
+	IL_0052:  ldarg.0 
+	IL_0053:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
+	IL_0058:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_005d:  ldloc.3 
+	IL_005e:  ldarg.0 
+	IL_005f:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
+	IL_0064:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0069:  ldloc.3 
+	IL_006a:  ldarg.0 
+	IL_006b:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
+	IL_0070:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_0075:  ldloc.3 
+	IL_0076:  ldstr "reference-assemblies-"
+	IL_007b:  ldloca.s 1
+	IL_007d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0082:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
+	IL_0087:  call string string::Concat(string, string)
+	IL_008c:  callvirt instance void class NAnt.Core.DataTypeBase::set_ID(string)
+	IL_0091:  ldloc.3 
+	IL_0092:  ldloc.2 
+	IL_0093:  ldarg.0 
+	IL_0094:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
+	IL_0099:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_009e:  ldarg.0 
+	IL_009f:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
+	IL_00a4:  ldarg.0 
+	IL_00a5:  ldfld class NAnt.Core.Types.FileSet[] NAnt.Core.FrameworkInfo::_referenceAssemblies
+	IL_00aa:  ldloc.1 
+	IL_00ab:  ldloc.3 
+	IL_00ac:  stelem.ref 
+	IL_00ad:  nop 
+	IL_00ae:  ldloc.1 
+	IL_00af:  ldc.i4.1 
+	IL_00b0:  add 
+	IL_00b1:  stloc.1 
+	IL_00b2:  ldloc.1 
+	IL_00b3:  ldloc.0 
+	IL_00b4:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_00b9:  blt IL_0042
 
-	  IL_00f7:  ldloc.s 5
-	  IL_00f9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00fe:  endfinally 
-	} // end handler 1
-	IL_00ff:  ret 
-    } // end of method TypeFactory::ScanDir
+	IL_00be:  nop 
+	IL_00bf:  ldarg.0 
+	IL_00c0:  ldfld class NAnt.Core.Types.FileSet[] NAnt.Core.FrameworkInfo::_referenceAssemblies
+	IL_00c5:  stloc.s 4
+	IL_00c7:  br IL_00cc
 
-    // method line 2358
-    .method assembly static hidebysig 
-           default void AddProject (class NAnt.Core.Project project)  cil managed 
-    {
-        // Method begins at RVA 0x2bf90
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.1 
-	IL_0003:  call void class NAnt.Core.TypeFactory::AddProject(class NAnt.Core.Project, bool)
-	IL_0008:  ret 
-    } // end of method TypeFactory::AddProject
+	IL_00cc:  ldloc.s 4
+	IL_00ce:  ret 
+    } // end of method FrameworkInfo::get_ReferenceAssemblies
 
     // method line 2359
-    .method assembly static hidebysig 
-           default void AddProject (class NAnt.Core.Project project, bool scan)  cil managed 
+    .method assembly hidebysig specialname 
+           instance default string[] get_ToolPaths ()  cil managed 
     {
-        // Method begins at RVA 0x2bf9c
-	// Code size 264 (0x108)
-	.maxstack 3
+        // Method begins at RVA 0x2c68c
+	// Code size 157 (0x9d)
+	.maxstack 4
 	.locals init (
-		class NAnt.Core.Tasks.LoadTasksTask	V_0,
-		string	V_1,
-		string	V_2,
-		string	V_3)
+		class [System.Xml]System.Xml.XmlNode	V_0,
+		class NAnt.Core.Configuration.DirList	V_1,
+		string[]	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0017
-
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
 	IL_0007:  ldarg.0 
-	IL_0008:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_000d:  call bool string::IsNullOrEmpty(string)
-	IL_0012:  brfalse IL_001c
+	IL_0008:  ldfld string[] NAnt.Core.FrameworkInfo::_toolPaths
+	IL_000d:  brtrue IL_008f
 
-	IL_0017:  br IL_0107
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_0019:  ldstr "nant:tool-paths"
+	IL_001e:  ldarg.0 
+	IL_001f:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
+	IL_0024:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0029:  stloc.0 
+	IL_002a:  ldloc.0 
+	IL_002b:  brfalse IL_0080
 
-	IL_001c:  newobj instance void class NAnt.Core.Tasks.LoadTasksTask::'.ctor'()
-	IL_0021:  stloc.0 
-	IL_0022:  ldloc.0 
-	IL_0023:  ldarg.0 
-	IL_0024:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_0029:  ldloc.0 
-	IL_002a:  ldarg.0 
-	IL_002b:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
-	IL_0030:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0035:  ldloc.0 
-	IL_0036:  ldarg.0 
-	IL_0037:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_003c:  ldloc.0 
-	IL_003d:  ldc.i4.0 
-	IL_003e:  callvirt instance void class NAnt.Core.Task::set_FailOnError(bool)
-	IL_0043:  ldloc.0 
+	IL_0030:  nop 
+	IL_0031:  newobj instance void class NAnt.Core.Configuration.DirList::'.ctor'()
+	IL_0036:  stloc.1 
+	IL_0037:  ldloc.1 
+	IL_0038:  ldarg.0 
+	IL_0039:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
+	IL_003e:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_0043:  ldloc.1 
 	IL_0044:  ldarg.0 
-	IL_0045:  callvirt instance valuetype NAnt.Core.Level class NAnt.Core.Project::get_Threshold()
-	IL_004a:  ldc.i4 1000
-	IL_004f:  bne.un IL_005e
-
-	IL_0054:  ldc.i4 1000
-	IL_0059:  br IL_0063
-
-	IL_005e:  ldc.i4 4000
-	IL_0063:  callvirt instance void class NAnt.Core.Task::set_Threshold(valuetype NAnt.Core.Level)
+	IL_0045:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
+	IL_004a:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_004f:  ldloc.1 
+	IL_0050:  ldarg.0 
+	IL_0051:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
+	IL_0056:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_005b:  ldloc.1 
+	IL_005c:  ldloc.0 
+	IL_005d:  ldarg.0 
+	IL_005e:  call instance class NAnt.Core.Project class NAnt.Core.FrameworkInfo::get_Project()
+	IL_0063:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
 	IL_0068:  ldarg.0 
-	IL_0069:  callvirt instance string class NAnt.Core.Project::get_BaseDirectory()
-	IL_006e:  ldstr "extensions"
-	IL_0073:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0078:  stloc.1 
-	IL_0079:  ldloc.1 
-	IL_007a:  ldstr "common"
-	IL_007f:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0084:  stloc.2 
-	IL_0085:  ldloc.2 
-	IL_0086:  ldstr "neutral"
-	IL_008b:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0090:  ldloc.0 
-	IL_0091:  ldc.i4.0 
-	IL_0092:  call void class NAnt.Core.TypeFactory::ScanDir(string, class NAnt.Core.Task, bool)
-	IL_0097:  ldarg.0 
-	IL_0098:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
-	IL_009d:  brtrue IL_00a8
+	IL_0069:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
+	IL_006e:  ldarg.0 
+	IL_006f:  ldloc.1 
+	IL_0070:  callvirt instance string[] class NAnt.Core.Configuration.DirList::GetDirectories()
+	IL_0075:  stfld string[] NAnt.Core.FrameworkInfo::_toolPaths
+	IL_007a:  nop 
+	IL_007b:  br IL_008e
 
-	IL_00a2:  nop 
-	IL_00a3:  br IL_0107
+	IL_0080:  nop 
+	IL_0081:  ldarg.0 
+	IL_0082:  ldc.i4.0 
+	IL_0083:  newarr [mscorlib]System.String
+	IL_0088:  stfld string[] NAnt.Core.FrameworkInfo::_toolPaths
+	IL_008d:  nop 
+	IL_008e:  nop 
+	IL_008f:  ldarg.0 
+	IL_0090:  ldfld string[] NAnt.Core.FrameworkInfo::_toolPaths
+	IL_0095:  stloc.2 
+	IL_0096:  br IL_009b
 
-	IL_00a8:  ldloc.2 
-	IL_00a9:  ldarg.0 
-	IL_00aa:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
-	IL_00af:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
-	IL_00b4:  ldc.i4.2 
-	IL_00b5:  callvirt instance string class [mscorlib]System.Version::ToString(int32)
-	IL_00ba:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_00bf:  ldloc.0 
-	IL_00c0:  ldc.i4.0 
-	IL_00c1:  call void class NAnt.Core.TypeFactory::ScanDir(string, class NAnt.Core.Task, bool)
-	IL_00c6:  ldloc.1 
-	IL_00c7:  ldarg.0 
-	IL_00c8:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
-	IL_00cd:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Family()
-	IL_00d2:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_00d7:  stloc.3 
-	IL_00d8:  ldloc.3 
-	IL_00d9:  ldstr "neutral"
-	IL_00de:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_00e3:  ldloc.0 
-	IL_00e4:  ldc.i4.0 
-	IL_00e5:  call void class NAnt.Core.TypeFactory::ScanDir(string, class NAnt.Core.Task, bool)
-	IL_00ea:  ldloc.3 
-	IL_00eb:  ldarg.0 
-	IL_00ec:  callvirt instance class NAnt.Core.FrameworkInfo class NAnt.Core.Project::get_RuntimeFramework()
-	IL_00f1:  callvirt instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_Version()
-	IL_00f6:  callvirt instance string object::ToString()
-	IL_00fb:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0100:  ldloc.0 
-	IL_0101:  ldc.i4.0 
-	IL_0102:  call void class NAnt.Core.TypeFactory::ScanDir(string, class NAnt.Core.Task, bool)
-	IL_0107:  ret 
-    } // end of method TypeFactory::AddProject
+	IL_009b:  ldloc.2 
+	IL_009c:  ret 
+    } // end of method FrameworkInfo::get_ToolPaths
 
     // method line 2360
-    .method assembly static hidebysig 
-           default class [mscorlib]System.Reflection.MethodInfo LookupFunction (string functionName, class NAnt.Core.Extensibility.FunctionArgument[] args, class NAnt.Core.Project project)  cil managed 
+    .method assembly hidebysig specialname 
+           instance default string get_RuntimeEngine ()  cil managed 
     {
-        // Method begins at RVA 0x2c0b0
-	// Code size 225 (0xe1)
-	.maxstack 4
+        // Method begins at RVA 0x2c738
+	// Code size 99 (0x63)
+	.maxstack 2
 	.locals init (
-		object	V_0,
-		class [mscorlib]System.Reflection.MethodInfo	V_1,
-		class [mscorlib]System.Reflection.MethodInfo	V_2,
-		class [mscorlib]System.Collections.ArrayList	V_3,
-		int32	V_4)
+		string	V_0,
+		class NAnt.Core.Configuration.ManagedExecutionMode	V_1,
+		class NAnt.Core.Configuration.RuntimeEngine	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.TypeFactory::_methodInfoCollection
-	IL_0006:  ldarg.0 
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  brtrue IL_002e
-
-	IL_0013:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0018:  ldstr "NA1052"
-	IL_001d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0022:  ldarg.0 
-	IL_0023:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0028:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_002d:  throw 
-	IL_002e:  ldloc.0 
-	IL_002f:  isinst [mscorlib]System.Reflection.MethodInfo
-	IL_0034:  stloc.1 
-	IL_0035:  ldloc.1 
-	IL_0036:  ldnull 
-	IL_0037:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Inequality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_003c:  brfalse IL_0068
-
-	IL_0041:  nop 
-	IL_0042:  ldloc.1 
-	IL_0043:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_0048:  ldlen 
-	IL_0049:  conv.i4 
-	IL_004a:  ldarg.1 
-	IL_004b:  ldlen 
-	IL_004c:  conv.i4 
-	IL_004d:  bne.un IL_0062
-
-	IL_0052:  nop 
-	IL_0053:  ldarg.0 
-	IL_0054:  ldloc.1 
-	IL_0055:  ldarg.2 
-	IL_0056:  call void class NAnt.Core.TypeFactory::CheckDeprecation(string, class [mscorlib]System.Reflection.MethodInfo, class NAnt.Core.Project)
-	IL_005b:  ldloc.1 
-	IL_005c:  stloc.2 
-	IL_005d:  br IL_00df
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
+	IL_0007:  brtrue IL_0018
 
-	IL_0062:  nop 
-	IL_0063:  br IL_00bc
+	IL_000c:  nop 
+	IL_000d:  ldsfld string [mscorlib]System.String::Empty
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0061
 
-	IL_0068:  nop 
-	IL_0069:  ldloc.0 
-	IL_006a:  castclass [mscorlib]System.Collections.ArrayList
-	IL_006f:  stloc.3 
-	IL_0070:  ldc.i4.0 
-	IL_0071:  stloc.s 4
-	IL_0073:  br IL_00ae
+	IL_0018:  ldarg.0 
+	IL_0019:  call instance class NAnt.Core.Configuration.Runtime class NAnt.Core.FrameworkInfo::get_Runtime()
+	IL_001e:  callvirt instance class NAnt.Core.Configuration.ManagedExecutionModes class NAnt.Core.Configuration.Runtime::get_Modes()
+	IL_0023:  ldc.i4.1 
+	IL_0024:  callvirt instance class NAnt.Core.Configuration.ManagedExecutionMode class NAnt.Core.Configuration.ManagedExecutionModes::GetExecutionMode(valuetype NAnt.Core.Types.ManagedExecution)
+	IL_0029:  stloc.1 
+	IL_002a:  ldloc.1 
+	IL_002b:  brfalse IL_0056
 
-	IL_0078:  nop 
-	IL_0079:  ldloc.3 
-	IL_007a:  ldloc.s 4
-	IL_007c:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	IL_0081:  castclass [mscorlib]System.Reflection.MethodInfo
-	IL_0086:  stloc.1 
-	IL_0087:  ldloc.1 
-	IL_0088:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	IL_008d:  ldlen 
-	IL_008e:  conv.i4 
-	IL_008f:  ldarg.1 
-	IL_0090:  ldlen 
-	IL_0091:  conv.i4 
-	IL_0092:  bne.un IL_00a7
+	IL_0030:  nop 
+	IL_0031:  ldloc.1 
+	IL_0032:  callvirt instance class NAnt.Core.Configuration.RuntimeEngine class NAnt.Core.Configuration.ManagedExecutionMode::get_Engine()
+	IL_0037:  stloc.2 
+	IL_0038:  ldloc.2 
+	IL_0039:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Configuration.RuntimeEngine::get_Program()
+	IL_003e:  brfalse IL_0055
 
-	IL_0097:  nop 
-	IL_0098:  ldarg.0 
-	IL_0099:  ldloc.1 
-	IL_009a:  ldarg.2 
-	IL_009b:  call void class NAnt.Core.TypeFactory::CheckDeprecation(string, class [mscorlib]System.Reflection.MethodInfo, class NAnt.Core.Project)
-	IL_00a0:  ldloc.1 
-	IL_00a1:  stloc.2 
-	IL_00a2:  br IL_00df
+	IL_0043:  nop 
+	IL_0044:  ldloc.2 
+	IL_0045:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.Core.Configuration.RuntimeEngine::get_Program()
+	IL_004a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_004f:  stloc.0 
+	IL_0050:  br IL_0061
 
-	IL_00a7:  nop 
-	IL_00a8:  ldloc.s 4
-	IL_00aa:  ldc.i4.1 
-	IL_00ab:  add 
-	IL_00ac:  stloc.s 4
-	IL_00ae:  ldloc.s 4
-	IL_00b0:  ldloc.3 
-	IL_00b1:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_00b6:  blt IL_0078
+	IL_0055:  nop 
+	IL_0056:  ldsfld string [mscorlib]System.String::Empty
+	IL_005b:  stloc.0 
+	IL_005c:  br IL_0061
 
-	IL_00bb:  nop 
-	IL_00bc:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00c1:  ldstr "NA1044"
-	IL_00c6:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00cb:  ldarg.0 
-	IL_00cc:  ldarg.1 
-	IL_00cd:  ldlen 
-	IL_00ce:  conv.i4 
-	IL_00cf:  box [mscorlib]System.Int32
-	IL_00d4:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_00d9:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string)
-	IL_00de:  throw 
-	IL_00df:  ldloc.2 
-	IL_00e0:  ret 
-    } // end of method TypeFactory::LookupFunction
+	IL_0061:  ldloc.0 
+	IL_0062:  ret 
+    } // end of method FrameworkInfo::get_RuntimeEngine
 
     // method line 2361
-    .method private static hidebysig 
-           default void CheckDeprecation (string functionName, class [mscorlib]System.Reflection.MethodInfo function, class NAnt.Core.Project project)  cil managed 
+    .method private hidebysig specialname 
+           instance default class [System.Xml]System.Xml.XmlNamespaceManager get_NamespaceManager ()  cil managed 
     {
-        // Method begins at RVA 0x2c1a0
-	// Code size 149 (0x95)
-	.maxstack 7
+        // Method begins at RVA 0x2c7a8
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.ObsoleteAttribute	V_0,
-		string	V_1)
+		class [System.Xml]System.Xml.XmlNamespaceManager	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldtoken [mscorlib]System.ObsoleteAttribute
-	IL_0007:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000c:  ldc.i4.1 
-	IL_000d:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_0012:  castclass [mscorlib]System.ObsoleteAttribute
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  brtrue IL_003c
-
-	IL_001e:  nop 
-	IL_001f:  ldarg.1 
-	IL_0020:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_0025:  ldtoken [mscorlib]System.ObsoleteAttribute
-	IL_002a:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_002f:  ldc.i4.1 
-	IL_0030:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_0035:  castclass [mscorlib]System.ObsoleteAttribute
-	IL_003a:  stloc.0 
-	IL_003b:  nop 
-	IL_003c:  ldloc.0 
-	IL_003d:  brfalse IL_0094
-
-	IL_0042:  nop 
-	IL_0043:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0048:  ldstr "NA1087"
-	IL_004d:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0052:  ldarg.0 
-	IL_0053:  ldloc.0 
-	IL_0054:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
-	IL_0059:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_005e:  stloc.1 
-	IL_005f:  ldloc.0 
-	IL_0060:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
-	IL_0065:  brfalse IL_0077
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.FrameworkInfo::_nsMgr
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_006a:  nop 
-	IL_006b:  ldloc.1 
-	IL_006c:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
-	IL_0071:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0076:  throw 
-	IL_0077:  nop 
-	IL_0078:  ldarg.2 
-	IL_0079:  ldc.i4 4000
-	IL_007e:  ldstr "{0}"
-	IL_0083:  ldc.i4.1 
-	IL_0084:  newarr [mscorlib]System.Object
-	IL_0089:  dup 
-	IL_008a:  ldc.i4.0 
-	IL_008b:  ldloc.1 
-	IL_008c:  stelem.ref 
-	IL_008d:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0092:  nop 
-	IL_0093:  nop 
-	IL_0094:  ret 
-    } // end of method TypeFactory::CheckDeprecation
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FrameworkInfo::get_NamespaceManager
 
     // method line 2362
-    .method public static hidebysig 
-           default class NAnt.Core.Task CreateTask (class [System.Xml]System.Xml.XmlNode taskNode, class NAnt.Core.Project proj)  cil managed 
+    .method assembly static hidebysig specialname 
+           default class [mscorlib]System.Collections.IComparer get_NameComparer ()  cil managed 
     {
-        // Method begins at RVA 0x2c244
-	// Code size 280 (0x118)
-	.maxstack 7
+        // Method begins at RVA 0x2c7c4
+	// Code size 14 (0xe)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		class NAnt.Core.TaskBuilder	V_1,
-		class NAnt.Core.Location	V_2,
-		class NAnt.Core.Task	V_3,
-		class [mscorlib]System.ObsoleteAttribute	V_4,
-		class NAnt.Core.Location	V_5,
-		string	V_6,
-		class NAnt.Core.Task	V_7)
+		class [mscorlib]System.Collections.IComparer	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "taskNode"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.1 
-	IL_0014:  brtrue IL_0025
-
-	IL_0019:  nop 
-	IL_001a:  ldstr "proj"
-	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0024:  throw 
-	IL_0025:  ldarg.0 
-	IL_0026:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_002b:  stloc.0 
-	IL_002c:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
-	IL_0031:  ldloc.0 
-	IL_0032:  callvirt instance class NAnt.Core.TaskBuilder class NAnt.Core.TaskBuilderCollection::get_Item(string)
-	IL_0037:  stloc.1 
-	IL_0038:  ldloc.1 
-	IL_0039:  brtrue IL_0068
-
-	IL_003e:  nop 
-	IL_003f:  ldarg.1 
-	IL_0040:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	IL_0045:  ldarg.0 
-	IL_0046:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	IL_004b:  stloc.2 
-	IL_004c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0051:  ldstr "NA1083"
-	IL_0056:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_005b:  ldloc.0 
-	IL_005c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0061:  ldloc.2 
-	IL_0062:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0067:  throw 
-	IL_0068:  ldloc.1 
-	IL_0069:  callvirt instance class NAnt.Core.Task class NAnt.Core.TaskBuilder::CreateTask()
-	IL_006e:  stloc.3 
-	IL_006f:  ldloc.3 
-	IL_0070:  ldarg.1 
-	IL_0071:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_0076:  ldloc.3 
-	IL_0077:  ldarg.1 
-	IL_0078:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
-	IL_007d:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0082:  ldloc.3 
-	IL_0083:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0088:  ldtoken [mscorlib]System.ObsoleteAttribute
-	IL_008d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0092:  ldc.i4.1 
-	IL_0093:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_0098:  castclass [mscorlib]System.ObsoleteAttribute
-	IL_009d:  stloc.s 4
-	IL_009f:  ldloc.s 4
-	IL_00a1:  brfalse IL_010d
-
-	IL_00a6:  nop 
-	IL_00a7:  ldarg.1 
-	IL_00a8:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	IL_00ad:  ldarg.0 
-	IL_00ae:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	IL_00b3:  stloc.s 5
-	IL_00b5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00ba:  ldstr "NA1086"
-	IL_00bf:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00c4:  ldloc.0 
-	IL_00c5:  ldloc.s 4
-	IL_00c7:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
-	IL_00cc:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_00d1:  stloc.s 6
-	IL_00d3:  ldloc.s 4
-	IL_00d5:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
-	IL_00da:  brfalse IL_00ea
-
-	IL_00df:  nop 
-	IL_00e0:  ldloc.s 6
-	IL_00e2:  ldloc.s 5
-	IL_00e4:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_00e9:  throw 
-	IL_00ea:  nop 
-	IL_00eb:  ldarg.1 
-	IL_00ec:  ldc.i4 4000
-	IL_00f1:  ldstr "{0} {1}"
-	IL_00f6:  ldc.i4.2 
-	IL_00f7:  newarr [mscorlib]System.Object
-	IL_00fc:  dup 
-	IL_00fd:  ldc.i4.0 
-	IL_00fe:  ldloc.s 5
-	IL_0100:  stelem.ref 
-	IL_0101:  dup 
-	IL_0102:  ldc.i4.1 
-	IL_0103:  ldloc.s 6
-	IL_0105:  stelem.ref 
-	IL_0106:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_010b:  nop 
-	IL_010c:  nop 
-	IL_010d:  ldloc.3 
-	IL_010e:  stloc.s 7
-	IL_0110:  br IL_0115
+	IL_0001:  newobj instance void class NAnt.Core.FrameworkInfo/FrameworkNameComparer::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0115:  ldloc.s 7
-	IL_0117:  ret 
-    } // end of method TypeFactory::CreateTask
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method FrameworkInfo::get_NameComparer
 
     // method line 2363
-    .method public static hidebysig 
-           default class NAnt.Core.Filters.Filter CreateFilter (class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.Element parent)  cil managed 
+    .method public hidebysig 
+           instance default string ResolveAssembly (string fileName)  cil managed 
     {
-        // Method begins at RVA 0x2c368
-	// Code size 319 (0x13f)
-	.maxstack 7
+        // Method begins at RVA 0x2c7e0
+	// Code size 68 (0x44)
+	.maxstack 2
 	.locals init (
 		string	V_0,
-		class NAnt.Core.Filters.FilterBuilder	V_1,
-		class NAnt.Core.Location	V_2,
-		class NAnt.Core.Filters.Filter	V_3,
-		class [mscorlib]System.ObsoleteAttribute	V_4,
-		class NAnt.Core.Location	V_5,
-		string	V_6,
-		class NAnt.Core.Filters.Filter	V_7)
+		class NAnt.Core.Types.FileSet	V_1,
+		class NAnt.Core.Types.FileSet[]	V_2,
+		int32	V_3,
+		string	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "elementNode"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.1 
-	IL_0014:  brtrue IL_0025
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  nop 
+	IL_0004:  ldarg.0 
+	IL_0005:  call instance class NAnt.Core.Types.FileSet[] class NAnt.Core.FrameworkInfo::get_ReferenceAssemblies()
+	IL_000a:  stloc.2 
+	IL_000b:  ldc.i4.0 
+	IL_000c:  stloc.3 
+	IL_000d:  br IL_0030
 
-	IL_0019:  nop 
-	IL_001a:  ldstr "parent"
-	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0024:  throw 
-	IL_0025:  ldarg.0 
-	IL_0026:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_002b:  stloc.0 
-	IL_002c:  call class NAnt.Core.Filters.FilterBuilderCollection class NAnt.Core.TypeFactory::get_FilterBuilders()
-	IL_0031:  ldloc.0 
-	IL_0032:  callvirt instance class NAnt.Core.Filters.FilterBuilder class NAnt.Core.Filters.FilterBuilderCollection::get_Item(string)
-	IL_0037:  stloc.1 
-	IL_0038:  ldloc.1 
-	IL_0039:  brtrue IL_006d
+	IL_0012:  ldloc.2 
+	IL_0013:  ldloc.3 
+	IL_0014:  ldelem.ref 
+	IL_0015:  stloc.1 
+	IL_0016:  nop 
+	IL_0017:  ldloc.1 
+	IL_0018:  ldarg.1 
+	IL_0019:  callvirt instance string class NAnt.Core.Types.FileSet::Find(string)
+	IL_001e:  stloc.0 
+	IL_001f:  ldloc.0 
+	IL_0020:  brfalse IL_002b
 
-	IL_003e:  nop 
-	IL_003f:  ldarg.1 
-	IL_0040:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0045:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	IL_004a:  ldarg.0 
-	IL_004b:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	IL_0050:  stloc.2 
-	IL_0051:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0056:  ldstr "NA1082"
-	IL_005b:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0060:  ldloc.0 
-	IL_0061:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0066:  ldloc.2 
-	IL_0067:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_006c:  throw 
-	IL_006d:  ldloc.1 
-	IL_006e:  callvirt instance class NAnt.Core.Filters.Filter class NAnt.Core.Filters.FilterBuilder::CreateFilter()
-	IL_0073:  stloc.3 
-	IL_0074:  ldloc.3 
-	IL_0075:  ldarg.1 
-	IL_0076:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
-	IL_007b:  ldloc.3 
-	IL_007c:  ldarg.1 
-	IL_007d:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0082:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_0087:  ldloc.3 
-	IL_0088:  ldarg.1 
-	IL_0089:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_008e:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
-	IL_0093:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0098:  ldloc.3 
-	IL_0099:  ldarg.0 
-	IL_009a:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode)
-	IL_009f:  ldloc.3 
-	IL_00a0:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_00a5:  ldtoken [mscorlib]System.ObsoleteAttribute
-	IL_00aa:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_00af:  ldc.i4.1 
-	IL_00b0:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_00b5:  castclass [mscorlib]System.ObsoleteAttribute
-	IL_00ba:  stloc.s 4
-	IL_00bc:  ldloc.s 4
-	IL_00be:  brfalse IL_0134
+	IL_0025:  nop 
+	IL_0026:  br IL_0039
 
-	IL_00c3:  nop 
-	IL_00c4:  ldarg.1 
-	IL_00c5:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_00ca:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	IL_00cf:  ldarg.0 
-	IL_00d0:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	IL_00d5:  stloc.s 5
-	IL_00d7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00dc:  ldstr "NA1079"
-	IL_00e1:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00e6:  ldloc.0 
-	IL_00e7:  ldloc.s 4
-	IL_00e9:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
-	IL_00ee:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_00f3:  stloc.s 6
-	IL_00f5:  ldloc.s 4
-	IL_00f7:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
-	IL_00fc:  brfalse IL_010c
+	IL_002b:  nop 
+	IL_002c:  ldloc.3 
+	IL_002d:  ldc.i4.1 
+	IL_002e:  add 
+	IL_002f:  stloc.3 
+	IL_0030:  ldloc.3 
+	IL_0031:  ldloc.2 
+	IL_0032:  ldlen 
+	IL_0033:  conv.i4 
+	IL_0034:  blt IL_0012
 
-	IL_0101:  nop 
-	IL_0102:  ldloc.s 6
-	IL_0104:  ldloc.s 5
-	IL_0106:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_010b:  throw 
-	IL_010c:  nop 
-	IL_010d:  ldarg.1 
-	IL_010e:  callvirt instance class NAnt.Core.Project class NAnt.Core.Element::get_Project()
-	IL_0113:  ldc.i4 4000
-	IL_0118:  ldstr "{0} {1}"
-	IL_011d:  ldc.i4.2 
-	IL_011e:  newarr [mscorlib]System.Object
-	IL_0123:  dup 
-	IL_0124:  ldc.i4.0 
-	IL_0125:  ldloc.s 5
-	IL_0127:  stelem.ref 
-	IL_0128:  dup 
-	IL_0129:  ldc.i4.1 
-	IL_012a:  ldloc.s 6
-	IL_012c:  stelem.ref 
-	IL_012d:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_0132:  nop 
-	IL_0133:  nop 
-	IL_0134:  ldloc.3 
-	IL_0135:  stloc.s 7
-	IL_0137:  br IL_013c
+	IL_0039:  ldloc.0 
+	IL_003a:  stloc.s 4
+	IL_003c:  br IL_0041
 
-	IL_013c:  ldloc.s 7
-	IL_013e:  ret 
-    } // end of method TypeFactory::CreateFilter
+	IL_0041:  ldloc.s 4
+	IL_0043:  ret 
+    } // end of method FrameworkInfo::ResolveAssembly
 
     // method line 2364
-    .method public static hidebysig 
-           default class NAnt.Core.DataTypeBase CreateDataType (class [System.Xml]System.Xml.XmlNode elementNode, class NAnt.Core.Project proj)  cil managed 
+    .method assembly hidebysig 
+           instance default void Validate ()  cil managed 
     {
-        // Method begins at RVA 0x2c4b4
-	// Code size 280 (0x118)
-	.maxstack 7
+        // Method begins at RVA 0x2c830
+	// Code size 199 (0xc7)
+	.maxstack 4
 	.locals init (
-		string	V_0,
-		class NAnt.Core.DataTypeBaseBuilder	V_1,
-		class NAnt.Core.Location	V_2,
-		class NAnt.Core.DataTypeBase	V_3,
-		class [mscorlib]System.ObsoleteAttribute	V_4,
-		class NAnt.Core.Location	V_5,
-		string	V_6,
-		class NAnt.Core.DataTypeBase	V_7)
+		class [mscorlib]System.Exception	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0013
+	IL_0002:  ldfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	IL_0007:  ldc.i4.3 
+	IL_0008:  bne.un IL_0013
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "elementNode"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.1 
-	IL_0014:  brtrue IL_0025
+	IL_000d:  nop 
+	IL_000e:  br IL_00c6
 
-	IL_0019:  nop 
-	IL_001a:  ldstr "proj"
-	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0024:  throw 
-	IL_0025:  ldarg.0 
-	IL_0026:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_002b:  stloc.0 
-	IL_002c:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
-	IL_0031:  ldloc.0 
-	IL_0032:  callvirt instance class NAnt.Core.DataTypeBaseBuilder class NAnt.Core.DataTypeBaseBuilderCollection::get_Item(string)
-	IL_0037:  stloc.1 
-	IL_0038:  ldloc.1 
-	IL_0039:  brtrue IL_0068
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance void class NAnt.Core.FrameworkInfo::Init()
+	IL_0019:  ldarg.0 
+	IL_001a:  ldc.i4.1 
+	IL_001b:  stfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	.try { // 0
+	  IL_0020:  nop 
+	  IL_0021:  ldarg.0 
+	  IL_0022:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
+	  IL_0027:  brtrue IL_0038
 
-	IL_003e:  nop 
-	IL_003f:  ldarg.1 
-	IL_0040:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	IL_0045:  ldarg.0 
-	IL_0046:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	IL_004b:  stloc.2 
-	IL_004c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0051:  ldstr "NA1081"
-	IL_0056:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_005b:  ldloc.0 
-	IL_005c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0061:  ldloc.2 
-	IL_0062:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_0067:  throw 
-	IL_0068:  ldloc.1 
-	IL_0069:  callvirt instance class NAnt.Core.DataTypeBase class NAnt.Core.DataTypeBaseBuilder::CreateDataTypeBase()
-	IL_006e:  stloc.3 
-	IL_006f:  ldloc.3 
-	IL_0070:  ldarg.1 
-	IL_0071:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
-	IL_0076:  ldloc.3 
-	IL_0077:  ldarg.1 
-	IL_0078:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.Project::get_NamespaceManager()
-	IL_007d:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0082:  ldloc.3 
-	IL_0083:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0088:  ldtoken [mscorlib]System.ObsoleteAttribute
-	IL_008d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0092:  ldc.i4.1 
-	IL_0093:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type, bool)
-	IL_0098:  castclass [mscorlib]System.ObsoleteAttribute
-	IL_009d:  stloc.s 4
-	IL_009f:  ldloc.s 4
-	IL_00a1:  brfalse IL_010d
+	  IL_002c:  nop 
+	  IL_002d:  ldstr "The \"frameworkdirectory\" attribute does not exist, or has no value."
+	  IL_0032:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	  IL_0037:  throw 
+	  IL_0038:  ldarg.0 
+	  IL_0039:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory()
+	  IL_003e:  brtrue IL_004f
 
-	IL_00a6:  nop 
-	IL_00a7:  ldarg.1 
-	IL_00a8:  callvirt instance class NAnt.Core.LocationMap class NAnt.Core.Project::get_LocationMap()
-	IL_00ad:  ldarg.0 
-	IL_00ae:  callvirt instance class NAnt.Core.Location class NAnt.Core.LocationMap::GetLocation(class [System.Xml]System.Xml.XmlNode)
-	IL_00b3:  stloc.s 5
-	IL_00b5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00ba:  ldstr "NA1085"
-	IL_00bf:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00c4:  ldloc.0 
-	IL_00c5:  ldloc.s 4
-	IL_00c7:  callvirt instance string class [mscorlib]System.ObsoleteAttribute::get_Message()
-	IL_00cc:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_00d1:  stloc.s 6
-	IL_00d3:  ldloc.s 4
-	IL_00d5:  callvirt instance bool class [mscorlib]System.ObsoleteAttribute::get_IsError()
-	IL_00da:  brfalse IL_00ea
+	  IL_0043:  nop 
+	  IL_0044:  ldstr "The \"frameworkassemblydirectory\" attribute does not exist, or has no value."
+	  IL_0049:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	  IL_004e:  throw 
+	  IL_004f:  ldarg.0 
+	  IL_0050:  call instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_Version()
+	  IL_0055:  ldnull 
+	  IL_0056:  call bool class [mscorlib]System.Version::op_Equality(class [mscorlib]System.Version, class [mscorlib]System.Version)
+	  IL_005b:  brfalse IL_006c
 
-	IL_00df:  nop 
-	IL_00e0:  ldloc.s 6
-	IL_00e2:  ldloc.s 5
-	IL_00e4:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location)
-	IL_00e9:  throw 
-	IL_00ea:  nop 
-	IL_00eb:  ldarg.1 
-	IL_00ec:  ldc.i4 4000
-	IL_00f1:  ldstr "{0} {1}"
-	IL_00f6:  ldc.i4.2 
-	IL_00f7:  newarr [mscorlib]System.Object
-	IL_00fc:  dup 
-	IL_00fd:  ldc.i4.0 
-	IL_00fe:  ldloc.s 5
-	IL_0100:  stelem.ref 
-	IL_0101:  dup 
-	IL_0102:  ldc.i4.1 
-	IL_0103:  ldloc.s 6
-	IL_0105:  stelem.ref 
-	IL_0106:  callvirt instance void class NAnt.Core.Project::Log(valuetype NAnt.Core.Level, string, object[])
-	IL_010b:  nop 
-	IL_010c:  nop 
-	IL_010d:  ldloc.3 
-	IL_010e:  stloc.s 7
-	IL_0110:  br IL_0115
+	  IL_0060:  nop 
+	  IL_0061:  ldstr "The \"version\" attribute does not exist, or has no value."
+	  IL_0066:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	  IL_006b:  throw 
+	  IL_006c:  ldarg.0 
+	  IL_006d:  call instance class [mscorlib]System.Version class NAnt.Core.FrameworkInfo::get_ClrVersion()
+	  IL_0072:  ldnull 
+	  IL_0073:  call bool class [mscorlib]System.Version::op_Equality(class [mscorlib]System.Version, class [mscorlib]System.Version)
+	  IL_0078:  brfalse IL_0089
 
-	IL_0115:  ldloc.s 7
-	IL_0117:  ret 
-    } // end of method TypeFactory::CreateDataType
+	  IL_007d:  nop 
+	  IL_007e:  ldstr "The \"clrversion\" attribute does not exist, or has no value."
+	  IL_0083:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	  IL_0088:  throw 
+	  IL_0089:  ldarg.0 
+	  IL_008a:  ldc.i4.3 
+	  IL_008b:  stfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	  IL_0090:  nop 
+	  IL_0091:  leave IL_00c6
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0096:  stloc.0 
+	  IL_0097:  nop 
+	  IL_0098:  ldarg.0 
+	  IL_0099:  ldc.i4.2 
+	  IL_009a:  stfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	  IL_009f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_00a4:  ldstr "{0} ({1}) is not installed, or not correctly configured."
+	  IL_00a9:  ldarg.0 
+	  IL_00aa:  call instance string class NAnt.Core.FrameworkInfo::get_Description()
+	  IL_00af:  ldarg.0 
+	  IL_00b0:  call instance string class NAnt.Core.FrameworkInfo::get_Name()
+	  IL_00b5:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_00ba:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	  IL_00bf:  ldloc.0 
+	  IL_00c0:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_00c5:  throw 
+	} // end handler 0
+	IL_00c6:  ret 
+    } // end of method FrameworkInfo::Validate
 
     // method line 2365
-    .method private static hidebysig 
-           default bool ScanTypeForTasks (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, class [mscorlib]System.Type 'type', class NAnt.Core.Task task)  cil managed 
+    .method assembly hidebysig 
+           instance default string GetToolPath (string tool)  cil managed 
     {
-        // Method begins at RVA 0x2c5d8
-	// Code size 254 (0xfe)
-	.maxstack 7
+        // Method begins at RVA 0x2c914
+	// Code size 39 (0x27)
+	.maxstack 3
 	.locals init (
-		class NAnt.Core.Attributes.TaskNameAttribute	V_0,
-		class NAnt.Core.TaskBuilder	V_1,
-		bool	V_2)
+		string	V_0)
 	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  ldtoken NAnt.Core.Attributes.TaskNameAttribute
-	  IL_0008:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_000d:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	  IL_0012:  castclass NAnt.Core.Attributes.TaskNameAttribute
-	  IL_0017:  stloc.0 
-	  IL_0018:  ldarg.1 
-	  IL_0019:  ldtoken NAnt.Core.Task
-	  IL_001e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0023:  callvirt instance bool class [mscorlib]System.Type::IsSubclassOf(class [mscorlib]System.Type)
-	  IL_0028:  brfalse IL_00d1
-
-	  IL_002d:  ldarg.1 
-	  IL_002e:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
-	  IL_0033:  brtrue IL_00d1
-
-	  IL_0038:  ldloc.0 
-	  IL_0039:  brfalse IL_00d1
-
-	  IL_003e:  nop 
-	  IL_003f:  ldarg.2 
-	  IL_0040:  ldc.i4 1000
-	  IL_0045:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_004a:  ldstr "String_CreatingTaskBuilder"
-	  IL_004f:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0054:  ldarg.1 
-	  IL_0055:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	  IL_005a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_005f:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	  IL_0064:  ldarg.0 
-	  IL_0065:  ldarg.1 
-	  IL_0066:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	  IL_006b:  newobj instance void class NAnt.Core.TaskBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, string)
-	  IL_0070:  stloc.1 
-	  IL_0071:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
-	  IL_0076:  ldloc.1 
-	  IL_0077:  callvirt instance string class NAnt.Core.TaskBuilder::get_TaskName()
-	  IL_007c:  callvirt instance class NAnt.Core.TaskBuilder class NAnt.Core.TaskBuilderCollection::get_Item(string)
-	  IL_0081:  brtrue IL_00ca
-
-	  IL_0086:  nop 
-	  IL_0087:  ldarg.2 
-	  IL_0088:  ldc.i4 1000
-	  IL_008d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0092:  ldstr "String_AddingTask"
-	  IL_0097:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_009c:  ldloc.1 
-	  IL_009d:  callvirt instance string class NAnt.Core.TaskBuilder::get_TaskName()
-	  IL_00a2:  ldloc.1 
-	  IL_00a3:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
-	  IL_00a8:  call string class NAnt.Core.TypeFactory::GetAssemblyLocation(class [mscorlib]System.Reflection.Assembly)
-	  IL_00ad:  ldloc.1 
-	  IL_00ae:  callvirt instance string class NAnt.Core.TaskBuilder::get_ClassName()
-	  IL_00b3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_00b8:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string)
-	  IL_00bd:  call class NAnt.Core.TaskBuilderCollection class NAnt.Core.TypeFactory::get_TaskBuilders()
-	  IL_00c2:  ldloc.1 
-	  IL_00c3:  callvirt instance int32 class NAnt.Core.TaskBuilderCollection::Add(class NAnt.Core.TaskBuilder)
-	  IL_00c8:  pop 
-	  IL_00c9:  nop 
-	  IL_00ca:  ldc.i4.1 
-	  IL_00cb:  stloc.2 
-	  IL_00cc:  leave IL_00fc
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0012
 
-	  IL_00d1:  nop 
-	  IL_00d2:  ldc.i4.0 
-	  IL_00d3:  stloc.2 
-	  IL_00d4:  leave IL_00fc
+	IL_0007:  ldstr "tool"
+	IL_000c:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0011:  throw 
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance string[] class NAnt.Core.FrameworkInfo::get_ToolPaths()
+	IL_0018:  ldarg.1 
+	IL_0019:  ldc.i4.0 
+	IL_001a:  call string class NAnt.Core.Util.FileUtils::ResolveFile(string[], string, bool)
+	IL_001f:  stloc.0 
+	IL_0020:  br IL_0025
 
-	} // end .try 0
-	catch class [mscorlib]System.Object { // 0
-	  IL_00d9:  pop 
-	  IL_00da:  nop 
-	  IL_00db:  ldarg.2 
-	  IL_00dc:  ldc.i4 5000
-	  IL_00e1:  ldstr "Failure scanning \"{0}\" for tasks."
-	  IL_00e6:  ldc.i4.1 
-	  IL_00e7:  newarr [mscorlib]System.Object
-	  IL_00ec:  dup 
-	  IL_00ed:  ldc.i4.0 
-	  IL_00ee:  ldarg.1 
-	  IL_00ef:  callvirt instance string class [mscorlib]System.Type::get_AssemblyQualifiedName()
-	  IL_00f4:  stelem.ref 
-	  IL_00f5:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_00fa:  rethrow 
-	} // end handler 0
-	IL_00fc:  ldloc.2 
-	IL_00fd:  ret 
-    } // end of method TypeFactory::ScanTypeForTasks
+	IL_0025:  ldloc.0 
+	IL_0026:  ret 
+    } // end of method FrameworkInfo::GetToolPath
 
     // method line 2366
-    .method private static hidebysig 
-           default bool ScanTypeForDataTypes (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, class [mscorlib]System.Type 'type', class NAnt.Core.Task task)  cil managed 
+    .method private hidebysig 
+           instance default void Init ()  cil managed 
     {
-        // Method begins at RVA 0x2c6f4
-	// Code size 252 (0xfc)
-	.maxstack 7
+        // Method begins at RVA 0x2c948
+	// Code size 79 (0x4f)
+	.maxstack 4
 	.locals init (
-		class NAnt.Core.Attributes.ElementNameAttribute	V_0,
-		class NAnt.Core.DataTypeBaseBuilder	V_1,
-		bool	V_2)
+		class [mscorlib]System.Exception	V_0)
 	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
-	  IL_0008:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_000d:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	  IL_0012:  castclass NAnt.Core.Attributes.ElementNameAttribute
-	  IL_0017:  stloc.0 
-	  IL_0018:  ldarg.1 
-	  IL_0019:  ldtoken NAnt.Core.DataTypeBase
-	  IL_001e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0023:  callvirt instance bool class [mscorlib]System.Type::IsSubclassOf(class [mscorlib]System.Type)
-	  IL_0028:  brfalse IL_00cf
-
-	  IL_002d:  ldarg.1 
-	  IL_002e:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
-	  IL_0033:  brtrue IL_00cf
-
-	  IL_0038:  ldloc.0 
-	  IL_0039:  brfalse IL_00cf
-
-	  IL_003e:  nop 
-	  IL_003f:  ldsfld class [log4net]log4net.ILog NAnt.Core.TypeFactory::logger
-	  IL_0044:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0049:  ldstr "String_CreatingDataTypeBaseBuilder"
-	  IL_004e:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0053:  ldarg.1 
-	  IL_0054:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	  IL_0059:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_005e:  callvirt instance void class [log4net]log4net.ILog::Info(object)
-	  IL_0063:  ldarg.0 
-	  IL_0064:  ldarg.1 
-	  IL_0065:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	  IL_006a:  newobj instance void class NAnt.Core.DataTypeBaseBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, string)
-	  IL_006f:  stloc.1 
-	  IL_0070:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
-	  IL_0075:  ldloc.1 
-	  IL_0076:  callvirt instance string class NAnt.Core.DataTypeBaseBuilder::get_DataTypeName()
-	  IL_007b:  callvirt instance class NAnt.Core.DataTypeBaseBuilder class NAnt.Core.DataTypeBaseBuilderCollection::get_Item(string)
-	  IL_0080:  brtrue IL_00c8
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	IL_0007:  brfalse IL_0012
 
-	  IL_0085:  nop 
-	  IL_0086:  ldsfld class [log4net]log4net.ILog NAnt.Core.TypeFactory::logger
-	  IL_008b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0090:  ldstr "String_AddingDataType"
-	  IL_0095:  call string class NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_009a:  ldloc.1 
-	  IL_009b:  callvirt instance string class NAnt.Core.DataTypeBaseBuilder::get_DataTypeName()
-	  IL_00a0:  ldloc.1 
-	  IL_00a1:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
-	  IL_00a6:  call string class NAnt.Core.TypeFactory::GetAssemblyLocation(class [mscorlib]System.Reflection.Assembly)
-	  IL_00ab:  ldloc.1 
-	  IL_00ac:  callvirt instance string class NAnt.Core.DataTypeBaseBuilder::get_ClassName()
-	  IL_00b1:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_00b6:  callvirt instance void class [log4net]log4net.ILog::Debug(object)
-	  IL_00bb:  call class NAnt.Core.DataTypeBaseBuilderCollection class NAnt.Core.TypeFactory::get_DataTypeBuilders()
-	  IL_00c0:  ldloc.1 
-	  IL_00c1:  callvirt instance int32 class NAnt.Core.DataTypeBaseBuilderCollection::Add(class NAnt.Core.DataTypeBaseBuilder)
-	  IL_00c6:  pop 
-	  IL_00c7:  nop 
-	  IL_00c8:  ldc.i4.1 
-	  IL_00c9:  stloc.2 
-	  IL_00ca:  leave IL_00fa
+	IL_000c:  nop 
+	IL_000d:  br IL_004e
 
-	  IL_00cf:  nop 
-	  IL_00d0:  ldc.i4.0 
-	  IL_00d1:  stloc.2 
-	  IL_00d2:  leave IL_00fa
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance void class NAnt.Core.FrameworkInfo::AssertNotInvalid()
+	.try { // 0
+	  IL_0018:  nop 
+	  IL_0019:  ldarg.0 
+	  IL_001a:  call instance void class NAnt.Core.FrameworkInfo::PerformInit()
+	  IL_001f:  nop 
+	  IL_0020:  leave IL_004e
 
 	} // end .try 0
-	catch class [mscorlib]System.Object { // 0
-	  IL_00d7:  pop 
-	  IL_00d8:  nop 
-	  IL_00d9:  ldarg.2 
-	  IL_00da:  ldc.i4 5000
-	  IL_00df:  ldstr "Failure scanning \"{0}\" for data types."
-	  IL_00e4:  ldc.i4.1 
-	  IL_00e5:  newarr [mscorlib]System.Object
-	  IL_00ea:  dup 
-	  IL_00eb:  ldc.i4.0 
-	  IL_00ec:  ldarg.1 
-	  IL_00ed:  callvirt instance string class [mscorlib]System.Type::get_AssemblyQualifiedName()
-	  IL_00f2:  stelem.ref 
-	  IL_00f3:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_00f8:  rethrow 
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0025:  stloc.0 
+	  IL_0026:  nop 
+	  IL_0027:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_002c:  ldstr "Failed to initialize the '{0}' ({1}) target framework."
+	  IL_0031:  ldarg.0 
+	  IL_0032:  call instance string class NAnt.Core.FrameworkInfo::get_Description()
+	  IL_0037:  ldarg.0 
+	  IL_0038:  call instance string class NAnt.Core.FrameworkInfo::get_Name()
+	  IL_003d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0042:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	  IL_0047:  ldloc.0 
+	  IL_0048:  newobj instance void class NAnt.Core.BuildException::'.ctor'(string, class NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_004d:  throw 
 	} // end handler 0
-	IL_00fa:  ldloc.2 
-	IL_00fb:  ret 
-    } // end of method TypeFactory::ScanTypeForDataTypes
+	IL_004e:  ret 
+    } // end of method FrameworkInfo::Init
 
     // method line 2367
-    .method private static hidebysig 
-           default bool ScanTypeForFunctions (class [mscorlib]System.Type 'type', class NAnt.Core.Task task)  cil managed 
+    .method private hidebysig 
+           instance default void PerformInit ()  cil managed 
     {
-        // Method begins at RVA 0x2c80c
-	// Code size 333 (0x14d)
-	.maxstack 7
+        // Method begins at RVA 0x2c9b4
+	// Code size 290 (0x122)
+	.maxstack 4
 	.locals init (
-		class NAnt.Core.Attributes.FunctionSetAttribute	V_0,
-		bool	V_1,
-		bool	V_2,
-		string	V_3,
-		class [mscorlib]System.Reflection.MethodInfo	V_4,
-		class [mscorlib]System.Reflection.MethodInfo[]	V_5,
-		int32	V_6,
-		class NAnt.Core.Attributes.FunctionAttribute	V_7)
+		class [System.Xml]System.Xml.XmlNode	V_0,
+		class [System.Xml]System.Xml.XmlDocument	V_1,
+		class NAnt.Core.Project	V_2,
+		class [System.Xml]System.Xml.XmlNode	V_3,
+		class NAnt.Core.Project	V_4,
+		string	V_5)
 	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.0 
-	  IL_0003:  ldtoken NAnt.Core.Attributes.FunctionSetAttribute
-	  IL_0008:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_000d:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	  IL_0012:  castclass NAnt.Core.Attributes.FunctionSetAttribute
-	  IL_0017:  stloc.0 
-	  IL_0018:  ldloc.0 
-	  IL_0019:  brtrue IL_0026
-
-	  IL_001e:  nop 
-	  IL_001f:  ldc.i4.0 
-	  IL_0020:  stloc.1 
-	  IL_0021:  leave IL_014b
-
-	  IL_0026:  ldarg.0 
-	  IL_0027:  ldtoken NAnt.Core.ExpressionEvaluator
-	  IL_002c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0031:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_0036:  stloc.2 
-	  IL_0037:  ldarg.0 
-	  IL_0038:  ldtoken NAnt.Core.FunctionSetBase
-	  IL_003d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Type::IsSubclassOf(class [mscorlib]System.Type)
-	  IL_0047:  brfalse IL_005b
-
-	  IL_004c:  ldarg.0 
-	  IL_004d:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
-	  IL_0052:  brtrue IL_005b
-
-	  IL_0057:  nop 
-	  IL_0058:  ldc.i4.1 
-	  IL_0059:  stloc.2 
-	  IL_005a:  nop 
-	  IL_005b:  ldloc.2 
-	  IL_005c:  brfalse IL_0120
-
-	  IL_0061:  nop 
-	  IL_0062:  ldloc.0 
-	  IL_0063:  callvirt instance string class NAnt.Core.Attributes.FunctionSetAttribute::get_Prefix()
-	  IL_0068:  stloc.3 
-	  IL_0069:  ldloc.3 
-	  IL_006a:  brfalse IL_0092
-
-	  IL_006f:  ldloc.3 
-	  IL_0070:  ldsfld string [mscorlib]System.String::Empty
-	  IL_0075:  call bool string::op_Inequality(string, string)
-	  IL_007a:  brfalse IL_0092
-
-	  IL_007f:  nop 
-	  IL_0080:  ldloc.3 
-	  IL_0081:  ldstr "::"
-	  IL_0086:  call string string::Concat(string, string)
-	  IL_008b:  stloc.3 
-	  IL_008c:  nop 
-	  IL_008d:  br IL_00b9
-
-	  IL_0092:  nop 
-	  IL_0093:  ldarg.1 
-	  IL_0094:  ldc.i4 4000
-	  IL_0099:  ldstr "Ignoring functions in type \"{0}\": no prefix was set."
-	  IL_009e:  ldc.i4.1 
-	  IL_009f:  newarr [mscorlib]System.Object
-	  IL_00a4:  dup 
-	  IL_00a5:  ldc.i4.0 
-	  IL_00a6:  ldarg.0 
-	  IL_00a7:  callvirt instance string class [mscorlib]System.Type::get_AssemblyQualifiedName()
-	  IL_00ac:  stelem.ref 
-	  IL_00ad:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_00b2:  ldc.i4.0 
-	  IL_00b3:  stloc.1 
-	  IL_00b4:  leave IL_014b
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_0007:  ldstr "nant:project"
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
+	IL_0012:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  brtrue IL_0029
 
-	  IL_00b9:  nop 
-	  IL_00ba:  ldarg.0 
-	  IL_00bb:  ldc.i4.s 0x1c
-	  IL_00bd:  callvirt instance class [mscorlib]System.Reflection.MethodInfo[] class [mscorlib]System.Type::GetMethods(valuetype [mscorlib]System.Reflection.BindingFlags)
-	  IL_00c2:  stloc.s 5
-	  IL_00c4:  ldc.i4.0 
-	  IL_00c5:  stloc.s 6
-	  IL_00c7:  br IL_010e
+	IL_001e:  ldstr "No <project> node is defined."
+	IL_0023:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0028:  throw 
+	IL_0029:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
+	IL_002e:  stloc.1 
+	IL_002f:  ldloc.1 
+	IL_0030:  ldloc.0 
+	IL_0031:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_OuterXml()
+	IL_0036:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::LoadXml(string)
+	IL_003b:  ldloc.1 
+	IL_003c:  newobj instance void class NAnt.Core.Project::'.ctor'(class [System.Xml]System.Xml.XmlDocument)
+	IL_0041:  stloc.2 
+	IL_0042:  ldloc.2 
+	IL_0043:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_0048:  callvirt instance string class [mscorlib]System.AppDomain::get_BaseDirectory()
+	IL_004d:  callvirt instance void class NAnt.Core.Project::set_BaseDirectory(string)
+	IL_0052:  ldloc.2 
+	IL_0053:  callvirt instance void class NAnt.Core.Project::Execute()
+	IL_0058:  ldarg.0 
+	IL_0059:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_005e:  ldstr "runtime"
+	IL_0063:  ldarg.0 
+	IL_0064:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
+	IL_0069:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_006e:  stloc.3 
+	IL_006f:  ldloc.3 
+	IL_0070:  brfalse IL_00c3
 
-	  IL_00cc:  ldloc.s 5
-	  IL_00ce:  ldloc.s 6
-	  IL_00d0:  ldelem.ref 
-	  IL_00d1:  stloc.s 4
-	  IL_00d3:  nop 
-	  IL_00d4:  ldloc.s 4
-	  IL_00d6:  ldtoken NAnt.Core.Attributes.FunctionAttribute
-	  IL_00db:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_00e0:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	  IL_00e5:  castclass NAnt.Core.Attributes.FunctionAttribute
-	  IL_00ea:  stloc.s 7
-	  IL_00ec:  ldloc.s 7
-	  IL_00ee:  brfalse IL_0107
+	IL_0075:  nop 
+	IL_0076:  ldarg.0 
+	IL_0077:  newobj instance void class NAnt.Core.Configuration.Runtime::'.ctor'()
+	IL_007c:  stfld class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::_runtime
+	IL_0081:  ldarg.0 
+	IL_0082:  ldfld class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::_runtime
+	IL_0087:  ldloc.2 
+	IL_0088:  stloc.s 4
+	IL_008a:  ldarg.0 
+	IL_008b:  ldfld class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::_runtime
+	IL_0090:  ldloc.s 4
+	IL_0092:  callvirt instance void class NAnt.Core.Element::set_Project(class NAnt.Core.Project)
+	IL_0097:  ldloc.s 4
+	IL_0099:  callvirt instance void class NAnt.Core.Element::set_Parent(object)
+	IL_009e:  ldarg.0 
+	IL_009f:  ldfld class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::_runtime
+	IL_00a4:  ldarg.0 
+	IL_00a5:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class NAnt.Core.FrameworkInfo::get_NamespaceManager()
+	IL_00aa:  callvirt instance void class NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_00af:  ldarg.0 
+	IL_00b0:  ldfld class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::_runtime
+	IL_00b5:  ldloc.3 
+	IL_00b6:  ldloc.2 
+	IL_00b7:  callvirt instance class NAnt.Core.PropertyDictionary class NAnt.Core.Project::get_Properties()
+	IL_00bc:  ldarg.0 
+	IL_00bd:  callvirt instance void class NAnt.Core.Element::Initialize(class [System.Xml]System.Xml.XmlNode, class NAnt.Core.PropertyDictionary, class NAnt.Core.FrameworkInfo)
+	IL_00c2:  nop 
+	IL_00c3:  ldarg.0 
+	IL_00c4:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_00c9:  ldstr "sdkdirectory"
+	IL_00ce:  call string class NAnt.Core.FrameworkInfo::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_00d3:  stloc.s 5
+	.try { // 0
+	  IL_00d5:  nop 
+	  IL_00d6:  ldloc.2 
+	  IL_00d7:  ldloc.s 5
+	  IL_00d9:  ldsfld class NAnt.Core.Location NAnt.Core.Location::UnknownLocation
+	  IL_00de:  callvirt instance string class NAnt.Core.Project::ExpandProperties(string, class NAnt.Core.Location)
+	  IL_00e3:  stloc.s 5
+	  IL_00e5:  nop 
+	  IL_00e6:  leave IL_00f3
 
-	  IL_00f3:  ldloc.3 
-	  IL_00f4:  ldloc.s 7
-	  IL_00f6:  callvirt instance string class NAnt.Core.Attributes.FunctionAttribute::get_Name()
-	  IL_00fb:  call string string::Concat(string, string)
-	  IL_0100:  ldloc.s 4
-	  IL_0102:  call void class NAnt.Core.TypeFactory::RegisterFunction(string, class [mscorlib]System.Reflection.MethodInfo)
-	  IL_0107:  nop 
-	  IL_0108:  ldloc.s 6
-	  IL_010a:  ldc.i4.1 
-	  IL_010b:  add 
-	  IL_010c:  stloc.s 6
-	  IL_010e:  ldloc.s 6
-	  IL_0110:  ldloc.s 5
-	  IL_0112:  ldlen 
-	  IL_0113:  conv.i4 
-	  IL_0114:  blt IL_00cc
+	} // end .try 0
+	catch class NAnt.Core.BuildException { // 0
+	  IL_00eb:  pop 
+	  IL_00ec:  nop 
+	  IL_00ed:  nop 
+	  IL_00ee:  leave IL_00f3
 
-	  IL_0119:  ldc.i4.1 
-	  IL_011a:  stloc.1 
-	  IL_011b:  leave IL_014b
+	} // end handler 0
+	IL_00f3:  ldloc.s 5
+	IL_00f5:  brfalse IL_0113
 
-	  IL_0120:  nop 
-	  IL_0121:  ldc.i4.0 
-	  IL_0122:  stloc.1 
-	  IL_0123:  leave IL_014b
+	IL_00fa:  ldloc.s 5
+	IL_00fc:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0101:  brfalse IL_0113
 
-	} // end .try 0
-	catch class [mscorlib]System.Object { // 0
-	  IL_0128:  pop 
-	  IL_0129:  nop 
-	  IL_012a:  ldarg.1 
-	  IL_012b:  ldc.i4 5000
-	  IL_0130:  ldstr "Failure scanning \"{0}\" for functions."
-	  IL_0135:  ldc.i4.1 
-	  IL_0136:  newarr [mscorlib]System.Object
-	  IL_013b:  dup 
-	  IL_013c:  ldc.i4.0 
-	  IL_013d:  ldarg.0 
-	  IL_013e:  callvirt instance string class [mscorlib]System.Type::get_AssemblyQualifiedName()
-	  IL_0143:  stelem.ref 
-	  IL_0144:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_0149:  rethrow 
-	} // end handler 0
-	IL_014b:  ldloc.1 
-	IL_014c:  ret 
-    } // end of method TypeFactory::ScanTypeForFunctions
+	IL_0106:  ldarg.0 
+	IL_0107:  ldloc.s 5
+	IL_0109:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_010e:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::_sdkDirectory
+	IL_0113:  ldarg.0 
+	IL_0114:  ldloc.2 
+	IL_0115:  stfld class NAnt.Core.Project NAnt.Core.FrameworkInfo::_project
+	IL_011a:  ldarg.0 
+	IL_011b:  ldc.i4.1 
+	IL_011c:  stfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	IL_0121:  ret 
+    } // end of method FrameworkInfo::PerformInit
 
     // method line 2368
-    .method private static hidebysig 
-           default void RegisterFunction (string key, class [mscorlib]System.Reflection.MethodInfo info)  cil managed 
+    .method private hidebysig 
+           instance default void AssertNotInvalid ()  cil managed 
     {
-        // Method begins at RVA 0x2c984
-	// Code size 119 (0x77)
-	.maxstack 3
-	.locals init (
-		object	V_0,
-		class [mscorlib]System.Reflection.MethodInfo	V_1,
-		class [mscorlib]System.Collections.ArrayList	V_2,
-		class [mscorlib]System.Collections.ArrayList	V_3)
+        // Method begins at RVA 0x2caf4
+	// Code size 48 (0x30)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.TypeFactory::_methodInfoCollection
-	IL_0006:  ldarg.0 
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  brtrue IL_0026
-
-	IL_0013:  nop 
-	IL_0014:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.TypeFactory::_methodInfoCollection
-	IL_0019:  ldarg.0 
-	IL_001a:  ldarg.1 
-	IL_001b:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_0020:  nop 
-	IL_0021:  br IL_0076
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	IL_0007:  ldc.i4.2 
+	IL_0008:  beq IL_0023
 
-	IL_0026:  nop 
-	IL_0027:  ldloc.0 
-	IL_0028:  isinst [mscorlib]System.Reflection.MethodInfo
-	IL_002d:  stloc.1 
-	IL_002e:  ldloc.1 
-	IL_002f:  ldnull 
-	IL_0030:  call bool class [mscorlib]System.Reflection.MethodInfo::op_Equality(class [mscorlib]System.Reflection.MethodInfo, class [mscorlib]System.Reflection.MethodInfo)
-	IL_0035:  brfalse IL_0050
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld valuetype NAnt.Core.FrameworkInfo/InitStatus NAnt.Core.FrameworkInfo::_status
+	IL_0013:  brtrue IL_002f
 
-	IL_003a:  nop 
-	IL_003b:  ldloc.0 
-	IL_003c:  castclass [mscorlib]System.Collections.ArrayList
-	IL_0041:  stloc.2 
-	IL_0042:  ldloc.2 
-	IL_0043:  ldarg.1 
-	IL_0044:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_0049:  pop 
-	IL_004a:  nop 
-	IL_004b:  br IL_0075
+	IL_0018:  ldarg.0 
+	IL_0019:  ldfld class [System.Xml]System.Xml.XmlNode NAnt.Core.FrameworkInfo::_frameworkNode
+	IL_001e:  brtrue IL_002f
 
-	IL_0050:  nop 
-	IL_0051:  ldc.i4.3 
-	IL_0052:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
-	IL_0057:  stloc.3 
-	IL_0058:  ldloc.3 
-	IL_0059:  ldloc.1 
-	IL_005a:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_005f:  pop 
-	IL_0060:  ldloc.3 
-	IL_0061:  ldarg.1 
-	IL_0062:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_0067:  pop 
-	IL_0068:  ldsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.TypeFactory::_methodInfoCollection
-	IL_006d:  ldarg.0 
-	IL_006e:  ldloc.3 
-	IL_006f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0074:  nop 
-	IL_0075:  nop 
-	IL_0076:  ret 
-    } // end of method TypeFactory::RegisterFunction
+	IL_0023:  nop 
+	IL_0024:  ldstr "The current framework is not valid."
+	IL_0029:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_002e:  throw 
+	IL_002f:  ret 
+    } // end of method FrameworkInfo::AssertNotInvalid
 
     // method line 2369
     .method private static hidebysig 
-           default bool ScanTypeForFilters (class NAnt.Core.Extensibility.ExtensionAssembly extensionAssembly, class [mscorlib]System.Type 'type', class NAnt.Core.Task task)  cil managed 
+           default string GetXmlAttributeValue (class [System.Xml]System.Xml.XmlNode xmlNode, string attributeName)  cil managed 
     {
-        // Method begins at RVA 0x2ca08
-	// Code size 247 (0xf7)
-	.maxstack 7
+        // Method begins at RVA 0x2cb28
+	// Code size 58 (0x3a)
+	.maxstack 2
 	.locals init (
-		class NAnt.Core.Attributes.ElementNameAttribute	V_0,
-		class NAnt.Core.Filters.FilterBuilder	V_1,
-		bool	V_2)
+		string	V_0,
+		class [System.Xml]System.Xml.XmlAttribute	V_1,
+		string	V_2)
 	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  ldtoken NAnt.Core.Attributes.ElementNameAttribute
-	  IL_0008:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_000d:  call class [mscorlib]System.Attribute class [mscorlib]System.Attribute::GetCustomAttribute(class [mscorlib]System.Reflection.MemberInfo, class [mscorlib]System.Type)
-	  IL_0012:  castclass NAnt.Core.Attributes.ElementNameAttribute
-	  IL_0017:  stloc.0 
-	  IL_0018:  ldarg.1 
-	  IL_0019:  ldtoken NAnt.Core.Filters.Filter
-	  IL_001e:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0023:  callvirt instance bool class [mscorlib]System.Type::IsSubclassOf(class [mscorlib]System.Type)
-	  IL_0028:  brfalse IL_00cb
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  brfalse IL_0031
 
-	  IL_002d:  ldarg.1 
-	  IL_002e:  callvirt instance bool class [mscorlib]System.Type::get_IsAbstract()
-	  IL_0033:  brtrue IL_00cb
+	IL_0009:  nop 
+	IL_000a:  ldarg.0 
+	IL_000b:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0010:  ldarg.1 
+	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNamedNodeMap::GetNamedItem(string)
+	IL_0016:  castclass [System.Xml]System.Xml.XmlAttribute
+	IL_001b:  stloc.1 
+	IL_001c:  ldloc.1 
+	IL_001d:  brfalse IL_0030
 
-	  IL_0038:  ldloc.0 
-	  IL_0039:  brfalse IL_00cb
+	IL_0022:  nop 
+	IL_0023:  ldloc.1 
+	IL_0024:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_0029:  call string class NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_002e:  stloc.0 
+	IL_002f:  nop 
+	IL_0030:  nop 
+	IL_0031:  ldloc.0 
+	IL_0032:  stloc.2 
+	IL_0033:  br IL_0038
 
-	  IL_003e:  nop 
-	  IL_003f:  ldarg.2 
-	  IL_0040:  ldc.i4 1000
-	  IL_0045:  ldstr "Creating FilterBuilder for \"{0}\"."
-	  IL_004a:  ldc.i4.1 
-	  IL_004b:  newarr [mscorlib]System.Object
-	  IL_0050:  dup 
-	  IL_0051:  ldc.i4.0 
-	  IL_0052:  ldarg.1 
-	  IL_0053:  callvirt instance string class [mscorlib]System.Reflection.MemberInfo::get_Name()
-	  IL_0058:  stelem.ref 
-	  IL_0059:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_005e:  ldarg.0 
-	  IL_005f:  ldarg.1 
-	  IL_0060:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	  IL_0065:  newobj instance void class NAnt.Core.Filters.FilterBuilder::'.ctor'(class NAnt.Core.Extensibility.ExtensionAssembly, string)
-	  IL_006a:  stloc.1 
-	  IL_006b:  call class NAnt.Core.Filters.FilterBuilderCollection class NAnt.Core.TypeFactory::get_FilterBuilders()
-	  IL_0070:  ldloc.1 
-	  IL_0071:  callvirt instance string class NAnt.Core.Filters.FilterBuilder::get_FilterName()
-	  IL_0076:  callvirt instance class NAnt.Core.Filters.FilterBuilder class NAnt.Core.Filters.FilterBuilderCollection::get_Item(string)
-	  IL_007b:  brtrue IL_00c4
+	IL_0038:  ldloc.2 
+	IL_0039:  ret 
+    } // end of method FrameworkInfo::GetXmlAttributeValue
 
-	  IL_0080:  nop 
-	  IL_0081:  call class NAnt.Core.Filters.FilterBuilderCollection class NAnt.Core.TypeFactory::get_FilterBuilders()
-	  IL_0086:  ldloc.1 
-	  IL_0087:  callvirt instance int32 class NAnt.Core.Filters.FilterBuilderCollection::Add(class NAnt.Core.Filters.FilterBuilder)
-	  IL_008c:  pop 
-	  IL_008d:  ldarg.2 
-	  IL_008e:  ldc.i4 1000
-	  IL_0093:  ldstr "Adding filter \"{0}\" from {1}:{2}."
-	  IL_0098:  ldc.i4.3 
-	  IL_0099:  newarr [mscorlib]System.Object
-	  IL_009e:  dup 
-	  IL_009f:  ldc.i4.0 
-	  IL_00a0:  ldloc.1 
-	  IL_00a1:  callvirt instance string class NAnt.Core.Filters.FilterBuilder::get_FilterName()
-	  IL_00a6:  stelem.ref 
-	  IL_00a7:  dup 
-	  IL_00a8:  ldc.i4.1 
-	  IL_00a9:  ldloc.1 
-	  IL_00aa:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.Core.Extensibility.ExtensionBuilder::get_Assembly()
-	  IL_00af:  call string class NAnt.Core.TypeFactory::GetAssemblyLocation(class [mscorlib]System.Reflection.Assembly)
-	  IL_00b4:  stelem.ref 
-	  IL_00b5:  dup 
-	  IL_00b6:  ldc.i4.2 
-	  IL_00b7:  ldloc.1 
-	  IL_00b8:  callvirt instance string class NAnt.Core.Filters.FilterBuilder::get_ClassName()
-	  IL_00bd:  stelem.ref 
-	  IL_00be:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_00c3:  nop 
-	  IL_00c4:  ldc.i4.1 
-	  IL_00c5:  stloc.2 
-	  IL_00c6:  leave IL_00f5
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.Core.FrameworkInfo::get_Name () 
+	}
+	.property instance string Family ()
+	{
+		.get instance default string NAnt.Core.FrameworkInfo::get_Family () 
+	}
+	.property instance string Description ()
+	{
+		.get instance default string NAnt.Core.FrameworkInfo::get_Description () 
+	}
+	.property instance valuetype NAnt.Core.VendorType Vendor ()
+	{
+		.get instance default valuetype NAnt.Core.VendorType NAnt.Core.FrameworkInfo::get_Vendor () 
+	}
+	.property instance class [mscorlib]System.Version Version ()
+	{
+		.get instance default class [mscorlib]System.Version NAnt.Core.FrameworkInfo::get_Version () 
+	}
+	.property instance class [mscorlib]System.Version ClrVersion ()
+	{
+		.get instance default class [mscorlib]System.Version NAnt.Core.FrameworkInfo::get_ClrVersion () 
+	}
+	.property instance valuetype NAnt.Core.ClrType ClrType ()
+	{
+		.get instance default valuetype NAnt.Core.ClrType NAnt.Core.FrameworkInfo::get_ClrType () 
+	}
+	.property instance class [mscorlib]System.Version VisualStudioVersion ()
+	{
+		.get instance default class [mscorlib]System.Version NAnt.Core.FrameworkInfo::get_VisualStudioVersion () 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo FrameworkDirectory ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::get_FrameworkDirectory () 
+	}
+	.property instance class NAnt.Core.Configuration.Runtime Runtime ()
+	{
+		.get instance default class NAnt.Core.Configuration.Runtime NAnt.Core.FrameworkInfo::get_Runtime () 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo FrameworkAssemblyDirectory ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory () 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo SdkDirectory ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.Core.FrameworkInfo::get_SdkDirectory () 
+	}
+	.property instance class NAnt.Core.Project Project ()
+	{
+		.get instance default class NAnt.Core.Project NAnt.Core.FrameworkInfo::get_Project () 
+	}
+	.property instance class NAnt.Core.Types.FileSet TaskAssemblies ()
+	{
+		.get instance default class NAnt.Core.Types.FileSet NAnt.Core.FrameworkInfo::get_TaskAssemblies () 
+	}
+	.property instance bool IsValid ()
+	{
+		.get instance default bool NAnt.Core.FrameworkInfo::get_IsValid () 
+	}
+	.property instance class NAnt.Core.Types.FileSet[] ReferenceAssemblies ()
+	{
+		.get instance default class NAnt.Core.Types.FileSet[] NAnt.Core.FrameworkInfo::get_ReferenceAssemblies () 
+	}
+	.property instance string[] ToolPaths ()
+	{
+		.get instance default string[] NAnt.Core.FrameworkInfo::get_ToolPaths () 
+	}
+	.property instance string RuntimeEngine ()
+	{
+		.get instance default string NAnt.Core.FrameworkInfo::get_RuntimeEngine () 
+	}
+	.property instance class [System.Xml]System.Xml.XmlNamespaceManager NamespaceManager ()
+	{
+		.get instance default class [System.Xml]System.Xml.XmlNamespaceManager NAnt.Core.FrameworkInfo::get_NamespaceManager () 
+	}
+	.property class [mscorlib]System.Collections.IComparer NameComparer ()
+	{
+		.get default class [mscorlib]System.Collections.IComparer NAnt.Core.FrameworkInfo::get_NameComparer () 
+	}
+  .class nested private auto ansi sealed InitStatus
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Core.FrameworkInfo/InitStatus Uninitialized = int32(0x00000000)
+    .field public static literal  valuetype NAnt.Core.FrameworkInfo/InitStatus Initialized = int32(0x00000001)
+    .field public static literal  valuetype NAnt.Core.FrameworkInfo/InitStatus Invalid = int32(0x00000002)
+    .field public static literal  valuetype NAnt.Core.FrameworkInfo/InitStatus Valid = int32(0x00000003)
 
-	  IL_00cb:  ldc.i4.0 
-	  IL_00cc:  stloc.2 
-	  IL_00cd:  leave IL_00f5
+  } // end of class InitStatus
 
-	} // end .try 0
-	catch class [mscorlib]System.Object { // 0
-	  IL_00d2:  pop 
-	  IL_00d3:  nop 
-	  IL_00d4:  ldarg.2 
-	  IL_00d5:  ldc.i4 5000
-	  IL_00da:  ldstr "Failure scanning \"{0}\" for filters."
-	  IL_00df:  ldc.i4.1 
-	  IL_00e0:  newarr [mscorlib]System.Object
-	  IL_00e5:  dup 
-	  IL_00e6:  ldc.i4.0 
-	  IL_00e7:  ldarg.1 
-	  IL_00e8:  callvirt instance string class [mscorlib]System.Type::get_AssemblyQualifiedName()
-	  IL_00ed:  stelem.ref 
-	  IL_00ee:  callvirt instance void class NAnt.Core.Element::Log(valuetype NAnt.Core.Level, string, object[])
-	  IL_00f3:  rethrow 
-	} // end handler 0
-	IL_00f5:  ldloc.2 
-	IL_00f6:  ret 
-    } // end of method TypeFactory::ScanTypeForFilters
+  .class nested private auto ansi beforefieldinit FrameworkNameComparer
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IComparer  {
 
     // method line 2370
-    .method private static hidebysig 
-           default string GetAssemblyLocation (class [mscorlib]System.Reflection.Assembly 'assembly')  cil managed 
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2cb1c
-	// Code size 35 (0x23)
-	.maxstack 1
+        // Method begins at RVA 0x2cb6e
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method FrameworkNameComparer::.ctor
+
+    // method line 2371
+    .method public final virtual hidebysig newslot 
+           instance default int32 Compare (object x, object y)  cil managed 
+    {
+        // Method begins at RVA 0x2cb78
+	// Code size 46 (0x2e)
+	.maxstack 4
 	.locals init (
-		string	V_0)
+		class NAnt.Core.FrameworkInfo	V_0,
+		class NAnt.Core.FrameworkInfo	V_1,
+		int32	V_2)
 	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.0 
-	  IL_0003:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_Location()
-	  IL_0008:  stloc.0 
-	  IL_0009:  leave IL_0021
+	IL_0001:  ldarg.1 
+	IL_0002:  isinst NAnt.Core.FrameworkInfo
+	IL_0007:  stloc.0 
+	IL_0008:  ldarg.2 
+	IL_0009:  isinst NAnt.Core.FrameworkInfo
+	IL_000e:  stloc.1 
+	IL_000f:  ldloc.0 
+	IL_0010:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	IL_0015:  ldloc.1 
+	IL_0016:  callvirt instance string class NAnt.Core.FrameworkInfo::get_Name()
+	IL_001b:  ldc.i4.0 
+	IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0021:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_0026:  stloc.2 
+	IL_0027:  br IL_002c
 
-	} // end .try 0
-	catch class [mscorlib]System.NotSupportedException { // 0
-	  IL_000e:  pop 
-	  IL_000f:  nop 
-	  IL_0010:  ldarg.0 
-	  IL_0011:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
-	  IL_0016:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	  IL_001b:  stloc.0 
-	  IL_001c:  leave IL_0021
+	IL_002c:  ldloc.2 
+	IL_002d:  ret 
+    } // end of method FrameworkNameComparer::Compare
 
-	} // end handler 0
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method TypeFactory::GetAssemblyLocation
+  } // end of class FrameworkNameComparer
 
-    // method line 2371
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2cb5c
-	// Code size 71 (0x47)
-	.maxstack 1
-	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
-	IL_0005:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.MemberInfo::get_DeclaringType()
-	IL_000a:  call class [log4net]log4net.ILog class [log4net]log4net.LogManager::GetLogger(class [mscorlib]System.Type)
-	IL_000f:  stsfld class [log4net]log4net.ILog NAnt.Core.TypeFactory::logger
-	IL_0014:  newobj instance void class NAnt.Core.TaskBuilderCollection::'.ctor'()
-	IL_0019:  stsfld class NAnt.Core.TaskBuilderCollection NAnt.Core.TypeFactory::_taskBuilders
-	IL_001e:  newobj instance void class NAnt.Core.DataTypeBaseBuilderCollection::'.ctor'()
-	IL_0023:  stsfld class NAnt.Core.DataTypeBaseBuilderCollection NAnt.Core.TypeFactory::_dataTypeBuilders
-	IL_0028:  newobj instance void class NAnt.Core.Filters.FilterBuilderCollection::'.ctor'()
-	IL_002d:  stsfld class NAnt.Core.Filters.FilterBuilderCollection NAnt.Core.TypeFactory::_filterBuilders
-	IL_0032:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0037:  stsfld class [mscorlib]System.Collections.Hashtable NAnt.Core.TypeFactory::_methodInfoCollection
-	IL_003c:  newobj instance void class NAnt.Core.Extensibility.PluginScanner::'.ctor'()
-	IL_0041:  stsfld class NAnt.Core.Extensibility.PluginScanner NAnt.Core.TypeFactory::_pluginScanner
-	IL_0046:  ret 
-    } // end of method TypeFactory::.cctor
+  } // end of class NAnt.Core.FrameworkInfo
+}
 
-	.property class NAnt.Core.TaskBuilderCollection TaskBuilders ()
-	{
-		.get default class NAnt.Core.TaskBuilderCollection NAnt.Core.TypeFactory::get_TaskBuilders () 
-	}
-	.property class NAnt.Core.DataTypeBaseBuilderCollection DataTypeBuilders ()
-	{
-		.get default class NAnt.Core.DataTypeBaseBuilderCollection NAnt.Core.TypeFactory::get_DataTypeBuilders () 
-	}
-	.property class NAnt.Core.Filters.FilterBuilderCollection FilterBuilders ()
-	{
-		.get default class NAnt.Core.Filters.FilterBuilderCollection NAnt.Core.TypeFactory::get_FilterBuilders () 
-	}
-	.property class NAnt.Core.Extensibility.PluginScanner PluginScanner ()
-	{
-		.get default class NAnt.Core.Extensibility.PluginScanner NAnt.Core.TypeFactory::get_PluginScanner () 
-	}
-  } // end of class NAnt.Core.TypeFactory
+.namespace NAnt.Core
+{
+  .class public auto ansi sealed ClrType
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Core.ClrType Desktop = int32(0x00000001)
+    .field public static literal  valuetype NAnt.Core.ClrType Compact = int32(0x00000002)
+    .field public static literal  valuetype NAnt.Core.ClrType Browser = int32(0x00000003)
+
+  } // end of class NAnt.Core.ClrType
+}
+
+.namespace NAnt.Core
+{
+  .class public auto ansi sealed VendorType
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.Core.VendorType Microsoft = int32(0x00000001)
+    .field public static literal  valuetype NAnt.Core.VendorType Mono = int32(0x00000002)
+
+  } // end of class NAnt.Core.VendorType
 }
 
   .class private auto ansi abstract sealed beforefieldinit '<PrivateImplementationDetails>'
/usr/share/NAnt/bin/NAnt.Core.xml differs (XML 1.0 document, ASCII text, with very long lines)
--- old//usr/share/NAnt/bin/NAnt.Core.xml	2018-06-14 00:00:00.000000000 +0000
+++ new//usr/share/NAnt/bin/NAnt.Core.xml	2018-06-14 00:00:00.000000000 +0000
@@ -4,1210 +4,1494 @@
         <name>NAnt.Core</name>
     </assembly>
     <members>
-        <member name="M:NAnt.Core.Extensibility.ExtensionBuilder.#ctor(NAnt.Core.Extensibility.ExtensionAssembly)">
+        <member name="T:NAnt.Core.Util.DefaultCommandLineArgumentAttribute">
              <summary>
-             Initializes a instance of the <see cref="T:NAnt.Core.Extensibility.ExtensionBuilder" /> 
-             class for an extension in a given <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly" />.
+             Marks a command-line option as being the default option.  When the name of 
+             a command-line argument is not specified, this option will be assumed.
              </summary>
-             <param name="extensionAssembly">The <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly" /> in which the extension is found.</param>
-             <exception cref="T:System.ArgumentNullException"><paramref name="extensionAssembly" /> is <see langword="null" />.</exception>
             </member>
-        <member name="M:NAnt.Core.Extensibility.ExtensionBuilder.#ctor(System.Reflection.Assembly)">
+        <member name="M:NAnt.Core.Util.DefaultCommandLineArgumentAttribute.#ctor(NAnt.Core.Util.CommandLineArgumentTypes)">
              <summary>
-             Initializes a instance of the <see cref="T:NAnt.Core.Extensibility.ExtensionBuilder" /> 
-             class for an extension in a given <see cref="T:System.Reflection.Assembly" />.
+             Initializes a new instance of the <see cref="T:NAnt.Core.Util.CommandLineArgumentAttribute" /> class
+             with the specified argument type.
              </summary>
-             <param name="assembly">The <see cref="T:System.Reflection.Assembly" /> in which the extension is found.</param>
-             <exception cref="T:System.ArgumentNullException"><paramref name="assembly" /> is <see langword="null" />.</exception>
+             <param name="argumentType">Specifies the checking to be done on the argument.</param>
             </member>
-        <member name="P:NAnt.Core.Extensibility.ExtensionBuilder.ExtensionAssembly">
+        <member name="T:NAnt.Core.Util.FileUtils">
              <summary>
-             Gets the <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly" /> in which the extension
-             was found.
+             Provides modified version for Copy and Move from the File class that 
+             allow for filter chain processing.
              </summary>
             </member>
-        <member name="P:NAnt.Core.Extensibility.ExtensionBuilder.Assembly">
+        <member name="F:NAnt.Core.Util.FileUtils._bufferSize">
              <summary>
-             Gets the <see cref="T:System.Reflection.Assembly" /> from which the extension will 
-             be created.
+             Constant buffer size for copy/move functions.
              </summary>
-             <value>
-             The <see cref="T:System.Reflection.Assembly" /> containing the extension.
-             </value>
+             <remarks>Default value is 8k</remarks>
             </member>
-        <member name="T:NAnt.Core.Extensibility.ExtensionAssembly">
+        <member name="M:NAnt.Core.Util.FileUtils.CopyFile(System.String,System.String,NAnt.Core.Filters.FilterChain,System.Text.Encoding,System.Text.Encoding)">
              <summary>
-             Represents an <see cref="T:System.Reflection.Assembly" /> in which one or more extensions
-             are found.
+             Copies a file filtering its content through the filter chain.
              </summary>
+             <param name="sourceFileName">
+             The file to copy
+             </param>
+             <param name="destFileName">
+             The file to copy to
+             </param>
+             <param name="filterChain">
+             Chain of filters to apply when copying, or <see langword="null" /> is no
+             filters should be applied.
+             </param>
+             <param name="inputEncoding">
+             The encoding used to read the soure file.
+             </param>
+             <param name="outputEncoding">
+             The encoding used to write the destination file.
+             </param>
             </member>
-        <member name="M:NAnt.Core.Extensibility.ExtensionAssembly.#ctor(System.Reflection.Assembly)">
+        <member name="M:NAnt.Core.Util.FileUtils.MoveFile(System.String,System.String,NAnt.Core.Filters.FilterChain,System.Text.Encoding,System.Text.Encoding)">
              <summary>
-             Initializes a new instance of the <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly" />
-             class for a given <see cref="T:System.Reflection.Assembly" />.
+             Moves a file filtering its content through the filter chain.
              </summary>
-             <remarks>
-             The <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly" /> instance is not cached for
-             future use. If this is required, use <see cref="M:NAnt.Core.Extensibility.ExtensionAssembly.Create(System.Reflection.Assembly)" />.
-             </remarks>
-             <param name="assembly">The <see cref="T:System.Reflection.Assembly" /> for which to construct an <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly" />.</param>
+             <param name="sourceFileName">
+             The file to move.
+             </param>
+             <param name="destFileName">
+             The file to move move to.
+             </param>
+             <param name="filterChain">
+             Chain of filters to apply when moving, or <see langword="null" /> is no
+             filters should be applied.
+             </param>
+             <param name="inputEncoding">
+             The encoding used to read the soure file.
+             </param>
+             <param name="outputEncoding">
+             The encoding used to write the destination file.
+             </param>
             </member>
-        <member name="P:NAnt.Core.Extensibility.ExtensionAssembly.Assembly">
+        <member name="M:NAnt.Core.Util.FileUtils.CopyDirectory(System.String,System.String,NAnt.Core.Filters.FilterChain,System.Text.Encoding,System.Text.Encoding)">
              <summary>
-             Gets the <see cref="T:System.Reflection.Assembly" /> containing extensions.
+             Copies a directory while filtering its file content through the filter chain.
              </summary>
+             <param name="sourceDirectory">
+             Source directory to copy from.
+             </param>
+             <param name="destDirectory">
+             Destination directory to copy to.
+             </param>
+             <param name="filterChain">
+             Chain of filters to apply when copying, or <see langword="null" /> is no
+             filters should be applied.
+             </param>
+             <param name="inputEncoding">
+             The encoding used to read the soure file.
+             </param>
+             <param name="outputEncoding">
+             The encoding used to write the destination file.
+             </param>
             </member>
-        <member name="M:NAnt.Core.Extensibility.ExtensionAssembly.Create(System.Reflection.Assembly)">
+        <member name="M:NAnt.Core.Util.FileUtils.MoveDirectory(System.String,System.String,NAnt.Core.Filters.FilterChain,System.Text.Encoding,System.Text.Encoding)">
              <summary>
-             Creates an  <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly" /> for the specified
-             <see cref="T:System.Reflection.Assembly" /> and caches it for future use.
+             Moves a directory while filtering its file content through the filter chain.
+             </summary>
+             <param name="sourceDirectory">
+             Source directory to move from.
+             </param>
+             <param name="destDirectory">
+             Destination directory to move to.
+             </param>
+             <param name="filterChain">
+             Chain of filters to apply when copying, or <see langword="null" /> is no
+             filters should be applied.
+             </param>
+             <param name="inputEncoding">
+             The encoding used to read the soure file.
+             </param>
+             <param name="outputEncoding">
+             The encoding used to write the destination file.
+             </param>
+            </member>
+        <member name="M:NAnt.Core.Util.FileUtils.GetTempDirectoryName">
+             <summary>
+             Generates a new temporary directory name based on the system's
+             temporary path.
              </summary>
-             <remarks>
-             If an <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly" /> for the same assembly is
-             available in the cache, then this cached instance is returned.
-             </remarks>
-             <param name="assembly">The <see cref="T:System.Reflection.Assembly" /> for which to construct an <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly" />.</param>
              <returns>
-             The <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly" /> for the specified <see cref="T:System.Reflection.Assembly" />.
+             The temp directory name.
              </returns>
             </member>
-        <member name="M:NAnt.Core.Extensibility.PluginConsumerAttribute.#ctor(System.Type)">
+        <member name="M:NAnt.Core.Util.FileUtils.ReadFile(System.String,NAnt.Core.Filters.FilterChain,System.Text.Encoding)">
              <summary>
-             Initializes a new instance of the <see cref="T:NAnt.Core.Extensibility.PluginConsumerAttribute" /> 
-             with the specified type.
+             Reads a file filtering its content through the filter chain.
              </summary>
-             <param name="type">The type of the <see cref="T:NAnt.Core.Extensibility.IPlugin" /> to consume.</param>
-             <exception cref="T:System.ArgumentNullException"><paramref name="type" /> is <see langword="null" />.</exception>
+             <param name="fileName">The file to read.</param>
+             <param name="filterChain">Chain of filters to apply when reading, or <see langword="null" /> is no filters should be applied.</param>
+             <param name="inputEncoding">The encoding used to read the file.</param>
+             <remarks>
+             If <paramref name="inputEncoding" /> is <see langword="null" />,
+             then the system's ANSI code page will be used to read the file.
+             </remarks>
             </member>
-        <member name="T:NAnt.Core.Extensibility.PluginScanner">
+        <member name="M:NAnt.Core.Util.FileUtils.GetTempDirectory">
              <summary>
-             Responsible for scanning types for plugins, and maintaining a cache of
-             <see cref="T:NAnt.Core.Extensibility.PluginBuilder" /> instances.
+             Returns a uniquely named empty temporary directory on disk.
              </summary>
+             <value>
+             A <see cref="T:System.IO.DirectoryInfo" /> representing the temporary directory.
+             </value>
             </member>
-        <member name="M:NAnt.Core.Extensibility.PluginScanner.ScanTypeForPlugins(NAnt.Core.Extensibility.ExtensionAssembly,System.Type,NAnt.Core.Task)">
+        <member name="M:NAnt.Core.Util.FileUtils.CombinePaths(System.String,System.String)">
              <summary>
-             Scans a given <see cref="T:System.Type" /> for plugins.
+             Combines two path strings.
              </summary>
-             <param name="extensionAssembly">The <see cref="T:NAnt.Core.Extensibility.ExtensionAssembly" /> containing the <see cref="T:System.Type" /> to scan.</param>
PE32 Mono/.Net assembly: /usr/share/NAnt/bin/NAnt.DotNetTasks.dll
/usr/share/NAnt/bin/NAnt.DotNetTasks.dll differs (PE32 executable (DLL) (console) Intel 80386, Mono/.Net assembly, for MS Windows)
--- old /usr/share/NAnt/bin/NAnt.DotNetTasks.dll (monodis)
+++ new /usr/share/NAnt/bin/NAnt.DotNetTasks.dll (monodis)
@@ -72,1487 +72,759 @@
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi beforefieldinit CompilerWarning
-  	extends [NAnt.Core]NAnt.Core.Element
-  {
-    .field  private  string _number
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+  .class public auto ansi abstract beforefieldinit DataTypeCollectionBase
+  	extends [NAnt.Core]NAnt.Core.DataTypeBase
+  	implements [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable  {
+    .field  private  class [mscorlib]System.Collections.ArrayList _list
 
     // method line 1
-    .method public hidebysig specialname rtspecialname 
+    .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
         // Method begins at RVA 0x2050
-	// Code size 14 (0xe)
+	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.DotNet.Types.CompilerWarning::_ifDefined
+	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.DataTypeBase::'.ctor'()
+	IL_0006:  nop 
 	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_000d:  ret 
-    } // end of method CompilerWarning::.ctor
+	IL_0008:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_000d:  stfld class [mscorlib]System.Collections.ArrayList NAnt.DotNet.Types.DataTypeCollectionBase::_list
+	IL_0012:  ret 
+    } // end of method DataTypeCollectionBase::.ctor
 
     // method line 2
-    .method public hidebysig specialname 
-           instance default string get_Number ()  cil managed 
+    .method private final virtual hidebysig newslot specialname 
+           instance default bool System.Collections.ICollection.get_IsSynchronized ()  cil managed 
     {
-        // Method begins at RVA 0x2060
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2064
+	.override class [mscorlib]System.Collections.ICollection::get_IsSynchronized
+	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Types.CompilerWarning::_number
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerWarning::get_Number
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method DataTypeCollectionBase::System.Collections.ICollection.get_IsSynchronized
 
     // method line 3
-    .method public hidebysig specialname 
-           instance default void set_Number (string 'value')  cil managed 
+    .method public final virtual hidebysig newslot specialname 
+           instance default int32 get_Count ()  cil managed 
     {
-        // Method begins at RVA 0x207b
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x207c
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.DotNet.Types.CompilerWarning::_number
-	IL_0008:  ret 
-    } // end of method CompilerWarning::set_Number
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
+	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method DataTypeCollectionBase::get_Count
 
     // method line 4
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+    .method public final virtual hidebysig newslot 
+           instance default void CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x2088
+        // Method begins at RVA 0x209c
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Types.CompilerWarning::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ArrayList::CopyTo(class [mscorlib]System.Array, int32)
 	IL_000e:  ret 
-    } // end of method CompilerWarning::get_IfDefined
+    } // end of method DataTypeCollectionBase::CopyTo
 
     // method line 5
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.ICollection.get_SyncRoot ()  cil managed 
     {
-        // Method begins at RVA 0x20a3
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x20ac
+	.override class [mscorlib]System.Collections.ICollection::get_SyncRoot
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Types.CompilerWarning::_ifDefined
-	IL_0008:  ret 
-    } // end of method CompilerWarning::set_IfDefined
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
+
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method DataTypeCollectionBase::System.Collections.ICollection.get_SyncRoot
 
     // method line 6
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+    .method private final virtual hidebysig newslot 
+           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x20b0
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x20c4
+	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.Collections.IEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Types.CompilerWarning::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
+	IL_0007:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CompilerWarning::get_UnlessDefined
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method DataTypeCollectionBase::System.Collections.IEnumerable.GetEnumerator
 
     // method line 7
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsFixedSize ()  cil managed 
     {
-        // Method begins at RVA 0x20cb
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x20e4
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Types.CompilerWarning::_unlessDefined
-	IL_0008:  ret 
-    } // end of method CompilerWarning::set_UnlessDefined
-
-	.property instance string Number ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 6E 75 6D 62 65 72 01 00 54 02 08 52 65   // ...number..T..Re
-		71 75 69 72 65 64 01                            ) // quired.
-
-		.get instance default string NAnt.DotNet.Types.CompilerWarning::get_Number () 
-		.set instance default void NAnt.DotNet.Types.CompilerWarning::set_Number (string 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.DotNet.Types.CompilerWarning::get_IfDefined () 
-		.set instance default void NAnt.DotNet.Types.CompilerWarning::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.DotNet.Types.CompilerWarning::get_UnlessDefined () 
-		.set instance default void NAnt.DotNet.Types.CompilerWarning::set_UnlessDefined (bool 'value') 
-	}
-  } // end of class NAnt.DotNet.Types.CompilerWarning
-}
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi beforefieldinit Package
-  	extends [NAnt.Core]NAnt.Core.Element
-  {
-    .field  private  string _name
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method DataTypeCollectionBase::get_IsFixedSize
 
     // method line 8
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsReadOnly ()  cil managed 
     {
-        // Method begins at RVA 0x20d5
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.DotNet.Types.Package::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_000d:  ret 
-    } // end of method Package::.ctor
+        // Method begins at RVA 0x20fc
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
+
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method DataTypeCollectionBase::get_IsReadOnly
 
     // method line 9
-    .method public hidebysig specialname 
-           instance default string get_PackageName ()  cil managed 
+    .method public final virtual hidebysig newslot 
+           instance default void RemoveAt (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x20e4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+        // Method begins at RVA 0x2112
+	// Code size 21 (0x15)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Types.Package::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Package::get_PackageName
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::RangeCheck(int32)
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
+	IL_000e:  ldarg.1 
+	IL_000f:  callvirt instance void class [mscorlib]System.Collections.ArrayList::RemoveAt(int32)
+	IL_0014:  ret 
+    } // end of method DataTypeCollectionBase::RemoveAt
 
     // method line 10
-    .method public hidebysig specialname 
-           instance default void set_PackageName (string 'value')  cil managed 
+    .method public final virtual hidebysig newslot 
+           instance default void Clear ()  cil managed 
     {
-        // Method begins at RVA 0x20ff
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2128
+	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.DotNet.Types.Package::_name
-	IL_0008:  ret 
-    } // end of method Package::set_PackageName
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Clear()
+	IL_000c:  ret 
+    } // end of method DataTypeCollectionBase::Clear
 
     // method line 11
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+    .method family hidebysig specialname 
+           instance default class [mscorlib]System.Collections.ArrayList get_List ()  cil managed 
     {
-        // Method begins at RVA 0x210c
+        // Method begins at RVA 0x2138
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.Collections.ArrayList	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Types.Package::_ifDefined
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.DotNet.Types.DataTypeCollectionBase::_list
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method Package::get_IfDefined
+    } // end of method DataTypeCollectionBase::get_List
 
     // method line 12
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default class [mscorlib]System.Type get_ItemType ()  cil managed 
     {
-        // Method begins at RVA 0x2127
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Types.Package::_ifDefined
-	IL_0008:  ret 
-    } // end of method Package::set_IfDefined
+        // Method begins at RVA 0x0
+    } // end of method DataTypeCollectionBase::get_ItemType
 
     // method line 13
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+    .method family hidebysig 
+           instance default void ValidateType (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x2134
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
+        // Method begins at RVA 0x2154
+	// Code size 70 (0x46)
+	.maxstack 3
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Types.Package::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Package::get_UnlessDefined
+	IL_0007:  nop 
+	IL_0008:  ldstr "value"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.0 
+	IL_0014:  callvirt instance class [mscorlib]System.Type class NAnt.DotNet.Types.DataTypeCollectionBase::get_ItemType()
+	IL_0019:  ldarg.1 
+	IL_001a:  callvirt instance bool class [mscorlib]System.Type::IsInstanceOfType(object)
+	IL_001f:  brtrue IL_0045
+
+	IL_0024:  nop 
+	IL_0025:  ldstr "Specified value is not an instance of "
+	IL_002a:  ldarg.0 
+	IL_002b:  callvirt instance class [mscorlib]System.Type class NAnt.DotNet.Types.DataTypeCollectionBase::get_ItemType()
+	IL_0030:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0035:  ldstr "."
+	IL_003a:  call string string::Concat(string, string, string)
+	IL_003f:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_0044:  throw 
+	IL_0045:  ret 
+    } // end of method DataTypeCollectionBase::ValidateType
 
     // method line 14
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    .method family hidebysig 
+           instance default void RangeCheck (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x214f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x21a6
+	// Code size 44 (0x2c)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Types.Package::_unlessDefined
-	IL_0008:  ret 
-    } // end of method Package::set_UnlessDefined
+	IL_0001:  ldarg.1 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  blt IL_0014
 
-	.property instance string PackageName ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
-		69 72 65 64 01                                  ) // ired.
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.0 
+	IL_000a:  call instance int32 class NAnt.DotNet.Types.DataTypeCollectionBase::get_Count()
+	IL_000f:  blt IL_002b
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+	IL_0014:  nop 
+	IL_0015:  ldstr "index"
+	IL_001a:  ldarg.1 
+	IL_001b:  box [mscorlib]System.Int32
+	IL_0020:  ldstr "Index must be greater than or equal to zero, and less than the number of items in the collection."
+	IL_0025:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
+	IL_002a:  throw 
+	IL_002b:  ret 
+    } // end of method DataTypeCollectionBase::RangeCheck
 
-		.get instance default string NAnt.DotNet.Types.Package::get_PackageName () 
-		.set instance default void NAnt.DotNet.Types.Package::set_PackageName (string 'value') 
+	.property instance bool System.Collections.ICollection.IsSynchronized ()
+	{
+		.get instance default bool NAnt.DotNet.Types.DataTypeCollectionBase::System.Collections.ICollection.get_IsSynchronized () 
 	}
-	.property instance bool IfDefined ()
+	.property instance object System.Collections.ICollection.SyncRoot ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.DotNet.Types.Package::get_IfDefined () 
-		.set instance default void NAnt.DotNet.Types.Package::set_IfDefined (bool 'value') 
+		.get instance default object NAnt.DotNet.Types.DataTypeCollectionBase::System.Collections.ICollection.get_SyncRoot () 
 	}
-	.property instance bool UnlessDefined ()
+	.property instance int32 Count ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.DotNet.Types.Package::get_UnlessDefined () 
-		.set instance default void NAnt.DotNet.Types.Package::set_UnlessDefined (bool 'value') 
+		.get instance default int32 NAnt.DotNet.Types.DataTypeCollectionBase::get_Count () 
 	}
-  } // end of class NAnt.DotNet.Types.Package
+	.property instance bool IsFixedSize ()
+	{
+		.get instance default bool NAnt.DotNet.Types.DataTypeCollectionBase::get_IsFixedSize () 
+	}
+	.property instance bool IsReadOnly ()
+	{
+		.get instance default bool NAnt.DotNet.Types.DataTypeCollectionBase::get_IsReadOnly () 
+	}
+	.property instance class [mscorlib]System.Collections.ArrayList List ()
+	{
+		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.DotNet.Types.DataTypeCollectionBase::get_List () 
+	}
+	.property instance class [mscorlib]System.Type ItemType ()
+	{
+		.get instance default class [mscorlib]System.Type NAnt.DotNet.Types.DataTypeCollectionBase::get_ItemType () 
+	}
+  } // end of class NAnt.DotNet.Types.DataTypeCollectionBase
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi sealed DelaySign
-  	extends [mscorlib]System.Enum
-  {
-    .custom instance void class [System]System.ComponentModel.TypeConverterAttribute::'.ctor'(class [mscorlib]System.Type) =  (
-		01 00 24 4E 41 6E 74 2E 44 6F 74 4E 65 74 2E 54   // ..$NAnt.DotNet.T
-		79 70 65 73 2E 44 65 6C 61 79 53 69 67 6E 43 6F   // ypes.DelaySignCo
-		6E 76 65 72 74 65 72 00 00                      ) // nverter..
-
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.DotNet.Types.DelaySign NotSet = int32(0x00000000)
-    .field public static literal  valuetype NAnt.DotNet.Types.DelaySign No = int32(0x00000001)
-    .field public static literal  valuetype NAnt.DotNet.Types.DelaySign Yes = int32(0x00000002)
+  .class public auto ansi serializable beforefieldinit NamespaceImportCollection
+  	extends NAnt.DotNet.Types.DataTypeCollectionBase
+  	implements [mscorlib]System.Collections.IList, [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
+		01 00 10 6E 61 6D 65 73 70 61 63 65 69 6D 70 6F   // ...namespaceimpo
+		72 74 73 00 00                                  ) // rts..
 
-  } // end of class NAnt.DotNet.Types.DelaySign
-}
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi beforefieldinit DelaySignConverter
-  	extends [System]System.ComponentModel.EnumConverter
-  {
 
     // method line 15
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2159
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x21d3
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldtoken NAnt.DotNet.Types.DelaySign
-	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000b:  call instance void class [System]System.ComponentModel.EnumConverter::'.ctor'(class [mscorlib]System.Type)
-	IL_0010:  nop 
-	IL_0011:  ret 
-    } // end of method DelaySignConverter::.ctor
+	IL_0001:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::'.ctor'()
+	IL_0006:  ret 
+    } // end of method NamespaceImportCollection::.ctor
 
     // method line 16
-    .method public virtual hidebysig 
-           instance default object ConvertFrom (class [System]System.ComponentModel.ITypeDescriptorContext context, class [mscorlib]System.Globalization.CultureInfo culture, object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x216c
-	// Code size 115 (0x73)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		object	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.3 
-	IL_0002:  isinst [mscorlib]System.String
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  brfalse IL_0062
-
-	IL_000e:  nop 
-	IL_000f:  ldloc.0 
-	IL_0010:  ldstr "true"
-	IL_0015:  ldc.i4.1 
-	IL_0016:  ldarg.2 
-	IL_0017:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_001c:  brtrue IL_002d
-
-	IL_0021:  ldc.i4.2 
-	IL_0022:  box NAnt.DotNet.Types.DelaySign
-	IL_0027:  stloc.1 
-	IL_0028:  br IL_0071
-
-	IL_002d:  ldloc.0 
-	IL_002e:  ldstr "false"
-	IL_0033:  ldc.i4.1 
-	IL_0034:  ldarg.2 
-	IL_0035:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_003a:  brtrue IL_004b
-
-	IL_003f:  ldc.i4.1 
-	IL_0040:  box NAnt.DotNet.Types.DelaySign
-	IL_0045:  stloc.1 
-	IL_0046:  br IL_0071
-
-	IL_004b:  ldtoken NAnt.DotNet.Types.DelaySign
-	IL_0050:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0055:  ldloc.0 
-	IL_0056:  ldc.i4.1 
-	IL_0057:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	IL_005c:  stloc.1 
-	IL_005d:  br IL_0071
-
-	IL_0062:  ldarg.0 
-	IL_0063:  ldarg.1 
-	IL_0064:  ldarg.2 
-	IL_0065:  ldarg.3 
-	IL_0066:  call instance object class [System]System.ComponentModel.EnumConverter::ConvertFrom(class [System]System.ComponentModel.ITypeDescriptorContext, class [mscorlib]System.Globalization.CultureInfo, object)
-	IL_006b:  stloc.1 
-	IL_006c:  br IL_0071
-
-	IL_0071:  ldloc.1 
-	IL_0072:  ret 
-    } // end of method DelaySignConverter::ConvertFrom
-
-  } // end of class NAnt.DotNet.Types.DelaySignConverter
-}
-
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi beforefieldinit ResourceFileSet
-  	extends [NAnt.Core]NAnt.Core.Types.FileSet
-  	implements [mscorlib]System.ICloneable  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
-		01 00 0F 72 65 73 6F 75 72 63 65 66 69 6C 65 73   // ...resourcefiles
-		65 74 00 00                                     ) // et..
-
-    .field  private  string _prefix
-    .field  private  bool _dynamicprefix
-
-    // method line 17
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x21eb
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method ResourceFileSet::.ctor
-
-    // method line 18
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [NAnt.Core]NAnt.Core.Types.FileSet fs)  cil managed 
-    {
-        // Method begins at RVA 0x21f4
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'(class [NAnt.Core]NAnt.Core.Types.FileSet)
-	IL_0007:  nop 
-	IL_0008:  ret 
-    } // end of method ResourceFileSet::.ctor
-
-    // method line 19
-    .method public hidebysig specialname 
-           instance default string get_Prefix ()  cil managed 
+    .method public hidebysig 
+           instance default class NAnt.DotNet.Types.NamespaceImportEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x2200
+        // Method begins at RVA 0x21dc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.DotNet.Types.NamespaceImportEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Types.ResourceFileSet::_prefix
+	IL_0002:  newobj instance void class NAnt.DotNet.Types.NamespaceImportEnumerator::'.ctor'(class NAnt.DotNet.Types.NamespaceImportCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ResourceFileSet::get_Prefix
-
-    // method line 20
-    .method public hidebysig specialname 
-           instance default void set_Prefix (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x221b
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Types.ResourceFileSet::_prefix
-	IL_000d:  ret 
-    } // end of method ResourceFileSet::set_Prefix
+    } // end of method NamespaceImportCollection::GetEnumerator
 
-    // method line 21
+    // method line 17
     .method public hidebysig specialname 
-           instance default bool get_DynamicPrefix ()  cil managed 
+           instance default class NAnt.DotNet.Types.NamespaceImport get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x222c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x21f8
+	// Code size 33 (0x21)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class NAnt.DotNet.Types.NamespaceImport	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Types.ResourceFileSet::_dynamicprefix
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::RangeCheck(int32)
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
+	IL_000e:  ldarg.1 
+	IL_000f:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	IL_0014:  castclass NAnt.DotNet.Types.NamespaceImport
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_001f
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ResourceFileSet::get_DynamicPrefix
+	IL_001f:  ldloc.0 
+	IL_0020:  ret 
+    } // end of method NamespaceImportCollection::get_Item
 
-    // method line 22
+    // method line 18
     .method public hidebysig specialname 
-           instance default void set_DynamicPrefix (bool 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
     {
-        // Method begins at RVA 0x2247
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x2225
+	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Types.ResourceFileSet::_dynamicprefix
-	IL_0008:  ret 
-    } // end of method ResourceFileSet::set_DynamicPrefix
+	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::RangeCheck(int32)
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
+	IL_000e:  ldarg.1 
+	IL_000f:  ldarg.2 
+	IL_0010:  callvirt instance void class [mscorlib]System.Collections.ArrayList::set_Item(int32, object)
+	IL_0015:  ret 
+    } // end of method NamespaceImportCollection::set_Item
 
-    // method line 23
+    // method line 19
     .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_ResxFiles ()  cil managed 
+           instance default class NAnt.DotNet.Types.NamespaceImport get_Item (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2254
-	// Code size 179 (0xb3)
+        // Method begins at RVA 0x223c
+	// Code size 111 (0x6f)
 	.maxstack 2
 	.locals init (
-		class NAnt.DotNet.Types.ResourceFileSet	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		class [NAnt.Core]NAnt.Core.Types.FileSet	V_4)
+		class NAnt.DotNet.Types.NamespaceImport	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.DotNet.Types.NamespaceImport	V_2,
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance object class [NAnt.Core]NAnt.Core.Types.FileSet::Clone()
-	IL_0007:  castclass NAnt.DotNet.Types.ResourceFileSet
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	IL_0013:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
-	IL_0018:  ldloc.0 
-	IL_0019:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Excludes()
-	IL_001e:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
-	IL_0023:  ldloc.0 
-	IL_0024:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_AsIs()
-	IL_0029:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
-	IL_002e:  ldloc.0 
-	IL_002f:  ldc.i4.0 
-	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_FailOnEmpty(bool)
-	IL_0035:  nop 
-	IL_0036:  ldarg.0 
-	IL_0037:  call instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_003c:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0041:  stloc.2 
-	.try { // 0
-	  IL_0042:  br IL_007e
-
-	  IL_0047:  ldloc.2 
-	  IL_0048:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_004d:  stloc.1 
-	  IL_004e:  nop 
-	  IL_004f:  ldloc.1 
-	  IL_0050:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	  IL_0055:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_005a:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	  IL_005f:  ldstr ".resx"
-	  IL_0064:  call bool string::op_Equality(string, string)
-	  IL_0069:  brfalse IL_007d
-
-	  IL_006e:  nop 
-	  IL_006f:  ldloc.0 
-	  IL_0070:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	  IL_0075:  ldloc.1 
-	  IL_0076:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_007b:  pop 
-	  IL_007c:  nop 
-	  IL_007d:  nop 
-	  IL_007e:  ldloc.2 
-	  IL_007f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0084:  brtrue IL_0047
-
-	  IL_0089:  leave IL_00a2
-
-	} // end .try 0
-	finally  { // 0
-	  IL_008e:  ldloc.2 
-	  IL_008f:  isinst [mscorlib]System.IDisposable
-	  IL_0094:  dup 
-	  IL_0095:  stloc.3 
-	  IL_0096:  brfalse IL_00a1
-
-	  IL_009b:  ldloc.3 
-	  IL_009c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00a1:  endfinally 
-	} // end handler 0
-	IL_00a2:  ldloc.0 
-	IL_00a3:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::Scan()
-	IL_00a8:  ldloc.0 
-	IL_00a9:  stloc.s 4
-	IL_00ab:  br IL_00b0
-
-	IL_00b0:  ldloc.s 4
-	IL_00b2:  ret 
-    } // end of method ResourceFileSet::get_ResxFiles
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0066
 
-    // method line 24
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_NonResxFiles ()  cil managed 
-    {
-        // Method begins at RVA 0x2324
-	// Code size 179 (0xb3)
-	.maxstack 2
-	.locals init (
-		class NAnt.DotNet.Types.ResourceFileSet	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		class [NAnt.Core]NAnt.Core.Types.FileSet	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance object class [NAnt.Core]NAnt.Core.Types.FileSet::Clone()
-	IL_0007:  castclass NAnt.DotNet.Types.ResourceFileSet
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	IL_0013:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
-	IL_0018:  ldloc.0 
-	IL_0019:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Excludes()
-	IL_001e:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
-	IL_0023:  ldloc.0 
-	IL_0024:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_AsIs()
-	IL_0029:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
-	IL_002e:  ldloc.0 
-	IL_002f:  ldc.i4.0 
-	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_FailOnEmpty(bool)
-	IL_0035:  nop 
-	IL_0036:  ldarg.0 
-	IL_0037:  call instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_003c:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0041:  stloc.2 
+	IL_0007:  nop 
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
+	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0014:  stloc.1 
 	.try { // 0
-	  IL_0042:  br IL_007e
+	  IL_0015:  br IL_0041
 
-	  IL_0047:  ldloc.2 
-	  IL_0048:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_004d:  stloc.1 
-	  IL_004e:  nop 
-	  IL_004f:  ldloc.1 
-	  IL_0050:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	  IL_0055:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_005a:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	  IL_005f:  ldstr ".resx"
-	  IL_0064:  call bool string::op_Inequality(string, string)
-	  IL_0069:  brfalse IL_007d
+	  IL_001a:  ldloc.1 
+	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0020:  castclass NAnt.DotNet.Types.NamespaceImport
+	  IL_0025:  stloc.0 
+	  IL_0026:  nop 
+	  IL_0027:  ldarg.1 
+	  IL_0028:  ldloc.0 
+	  IL_0029:  callvirt instance string class NAnt.DotNet.Types.NamespaceImport::get_Namespace()
+	  IL_002e:  callvirt instance bool string::Equals(string)
+	  IL_0033:  brfalse IL_0040
 
-	  IL_006e:  nop 
-	  IL_006f:  ldloc.0 
-	  IL_0070:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	  IL_0075:  ldloc.1 
-	  IL_0076:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_007b:  pop 
-	  IL_007c:  nop 
-	  IL_007d:  nop 
-	  IL_007e:  ldloc.2 
-	  IL_007f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0084:  brtrue IL_0047
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  stloc.2 
+	  IL_003b:  leave IL_006d
 
-	  IL_0089:  leave IL_00a2
+	  IL_0040:  nop 
+	  IL_0041:  ldloc.1 
+	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0047:  brtrue IL_001a
+
+	  IL_004c:  leave IL_0065
 
 	} // end .try 0
 	finally  { // 0
-	  IL_008e:  ldloc.2 
-	  IL_008f:  isinst [mscorlib]System.IDisposable
-	  IL_0094:  dup 
-	  IL_0095:  stloc.3 
-	  IL_0096:  brfalse IL_00a1
+	  IL_0051:  ldloc.1 
+	  IL_0052:  isinst [mscorlib]System.IDisposable
+	  IL_0057:  dup 
+	  IL_0058:  stloc.3 
+	  IL_0059:  brfalse IL_0064
 
-	  IL_009b:  ldloc.3 
-	  IL_009c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00a1:  endfinally 
+	  IL_005e:  ldloc.3 
+	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0064:  endfinally 
 	} // end handler 0
-	IL_00a2:  ldloc.0 
-	IL_00a3:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::Scan()
-	IL_00a8:  ldloc.0 
-	IL_00a9:  stloc.s 4
-	IL_00ab:  br IL_00b0
+	IL_0065:  nop 
+	IL_0066:  ldnull 
+	IL_0067:  stloc.2 
+	IL_0068:  br IL_006d
 
-	IL_00b0:  ldloc.s 4
-	IL_00b2:  ret 
-    } // end of method ResourceFileSet::get_NonResxFiles
+	IL_006d:  ldloc.2 
+	IL_006e:  ret 
+    } // end of method NamespaceImportCollection::get_Item
 
-    // method line 25
+    // method line 20
     .method public virtual hidebysig 
-           instance default object Clone ()  cil managed 
-    {
-        // Method begins at RVA 0x23f4
-	// Code size 47 (0x2f)
-	.maxstack 2
-	.locals init (
-		class NAnt.DotNet.Types.ResourceFileSet	V_0,
-		object	V_1)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.DotNet.Types.ResourceFileSet::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::CopyTo(class [NAnt.Core]NAnt.Core.Types.FileSet)
-	IL_000e:  ldloc.0 
-	IL_000f:  ldarg.0 
-	IL_0010:  ldfld bool NAnt.DotNet.Types.ResourceFileSet::_dynamicprefix
-	IL_0015:  stfld bool NAnt.DotNet.Types.ResourceFileSet::_dynamicprefix
-	IL_001a:  ldloc.0 
-	IL_001b:  ldarg.0 
-	IL_001c:  ldfld string NAnt.DotNet.Types.ResourceFileSet::_prefix
-	IL_0021:  stfld string NAnt.DotNet.Types.ResourceFileSet::_prefix
-	IL_0026:  ldloc.0 
-	IL_0027:  stloc.1 
-	IL_0028:  br IL_002d
-
-	IL_002d:  ldloc.1 
-	IL_002e:  ret 
-    } // end of method ResourceFileSet::Clone
-
-    // method line 26
-    .method public hidebysig 
-           instance default string GetManifestResourceName (string resourceFile)  cil managed 
-    {
-        // Method begins at RVA 0x2430
-	// Code size 17 (0x11)
-	.maxstack 3
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.1 
-	IL_0004:  call instance string class NAnt.DotNet.Types.ResourceFileSet::GetManifestResourceName(string, string)
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_000f
-
-	IL_000f:  ldloc.0 
-	IL_0010:  ret 
-    } // end of method ResourceFileSet::GetManifestResourceName
-
-    // method line 27
-    .method public hidebysig 
-           instance default string GetManifestResourceName (string physicalPath, string logicalPath)  cil managed 
+           instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0x2450
-	// Code size 496 (0x1f0)
+        // Method begins at RVA 0x22c8
+	// Code size 207 (0xcf)
 	.maxstack 3
 	.locals init (
 		class [mscorlib]System.Text.StringBuilder	V_0,
-		string	V_1,
-		char	V_2,
-		string	V_3,
-		char	V_4,
-		string	V_5,
-		string	V_6,
-		class [mscorlib]System.Text.StringBuilder	V_7,
-		string[]	V_8,
-		int32	V_9,
-		string	V_10,
-		int32	V_11,
-		char	V_12,
-		string	V_13)
+		class NAnt.DotNet.Types.NamespaceImport	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		string[]	V_3,
+		string	V_4,
+		string[]	V_5,
+		int32	V_6,
+		class [mscorlib]System.IDisposable	V_7,
+		string	V_8)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.DotNet.Types.ResourceFileSet::get_Prefix()
-	IL_0007:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
-	IL_000c:  stloc.0 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance bool class NAnt.DotNet.Types.ResourceFileSet::get_DynamicPrefix()
-	IL_0013:  brfalse IL_00fc
-
-	IL_0018:  nop 
-	IL_0019:  ldarg.0 
-	IL_001a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_001f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0024:  stloc.1 
-	IL_0025:  ldloc.1 
-	IL_0026:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_002b:  stloc.2 
-	IL_002c:  ldloca.s 2
-	IL_002e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0033:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
-	IL_0038:  callvirt instance bool string::EndsWith(string)
-	IL_003d:  brtrue IL_0055
-
-	IL_0042:  nop 
-	IL_0043:  ldloc.1 
-	IL_0044:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_0049:  box [mscorlib]System.Char
-	IL_004e:  call string string::Concat(object, object)
-	IL_0053:  stloc.1 
-	IL_0054:  nop 
-	IL_0055:  ldarg.2 
-	IL_0056:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_005b:  stloc.3 
-	IL_005c:  ldloc.3 
-	IL_005d:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_0062:  stloc.s 4
-	IL_0064:  ldloca.s 4
-	IL_0066:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_006b:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
-	IL_0070:  callvirt instance bool string::EndsWith(string)
-	IL_0075:  brtrue IL_008d
-
-	IL_007a:  nop 
-	IL_007b:  ldloc.3 
-	IL_007c:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_0081:  box [mscorlib]System.Char
-	IL_0086:  call string string::Concat(object, object)
-	IL_008b:  stloc.3 
-	IL_008c:  nop 
-	IL_008d:  ldsfld string [mscorlib]System.String::Empty
-	IL_0092:  stloc.s 5
-	IL_0094:  ldloc.3 
-	IL_0095:  ldloc.1 
-	IL_0096:  call bool string::op_Inequality(string, string)
-	IL_009b:  brfalse IL_00bc
-
-	IL_00a0:  ldloc.3 
-	IL_00a1:  ldloc.1 
-	IL_00a2:  callvirt instance bool string::StartsWith(string)
-	IL_00a7:  brfalse IL_00bc
-
-	IL_00ac:  nop 
-	IL_00ad:  ldloc.3 
-	IL_00ae:  ldloc.1 
-	IL_00af:  callvirt instance int32 string::get_Length()
-	IL_00b4:  callvirt instance string string::Substring(int32)
-	IL_00b9:  stloc.s 5
-	IL_00bb:  nop 
-	IL_00bc:  ldloc.s 5
-	IL_00be:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_00c3:  ldc.i4.s 0x2e
-	IL_00c5:  callvirt instance string string::Replace(char, char)
-	IL_00ca:  ldsfld char [mscorlib]System.IO.Path::AltDirectorySeparatorChar
-	IL_00cf:  ldc.i4.s 0x2e
-	IL_00d1:  callvirt instance string string::Replace(char, char)
-	IL_00d6:  stloc.s 6
-	IL_00d8:  ldloc.0 
-	IL_00d9:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	IL_00de:  ldc.i4.0 
-	IL_00df:  ble IL_00f2
-
-	IL_00e4:  nop 
-	IL_00e5:  ldloc.0 
-	IL_00e6:  ldstr "."
-	IL_00eb:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00f0:  pop 
-	IL_00f1:  nop 
-	IL_00f2:  ldloc.0 
-	IL_00f3:  ldloc.s 6
-	IL_00f5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00fa:  pop 
-	IL_00fb:  nop 
-	IL_00fc:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0101:  stloc.s 7
-	IL_0103:  ldloc.0 
-	IL_0104:  callvirt instance string object::ToString()
-	IL_0109:  ldc.i4.s 0x2e
-	IL_010b:  ldc.i4.0 
-	IL_010c:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	IL_0111:  stloc.s 8
-	IL_0113:  ldc.i4.0 
-	IL_0114:  stloc.s 9
-	IL_0116:  br IL_01c6
-
-	IL_011b:  nop 
-	IL_011c:  ldloc.s 8
-	IL_011e:  ldloc.s 9
-	IL_0120:  ldelem.ref 
-	IL_0121:  stloc.s 10
-	IL_0123:  ldloc.s 10
-	IL_0125:  callvirt instance int32 string::get_Length()
-	IL_012a:  brtrue IL_0135
-
-	IL_012f:  nop 
-	IL_0130:  br IL_01c0
-
-	IL_0135:  ldc.i4.0 
-	IL_0136:  stloc.s 11
-	IL_0138:  br IL_01a7
-
-	IL_013d:  nop 
-	IL_013e:  ldloc.s 10
-	IL_0140:  ldloc.s 11
-	IL_0142:  callvirt instance char string::get_Chars(int32)
-	IL_0147:  stloc.s 12
-	IL_0149:  ldloc.s 11
-	IL_014b:  brtrue IL_0177
-
-	IL_0150:  ldloc.s 12
-	IL_0152:  call bool char::IsDigit(char)
-	IL_0157:  brfalse IL_0177
-
-	IL_015c:  nop 
-	IL_015d:  ldloc.s 7
-	IL_015f:  ldc.i4.s 0x5f
-	IL_0161:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_0166:  pop 
-	IL_0167:  ldloc.s 7
-	IL_0169:  ldloc.s 12
-	IL_016b:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_0170:  pop 
-	IL_0171:  nop 
-	IL_0172:  br IL_01a0
-
-	IL_0177:  ldloc.s 12
-	IL_0179:  call bool char::IsLetterOrDigit(char)
-	IL_017e:  brtrue IL_0194
-
-	IL_0183:  nop 
-	IL_0184:  ldloc.s 7
-	IL_0186:  ldc.i4.s 0x5f
-	IL_0188:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_018d:  pop 
-	IL_018e:  nop 
-	IL_018f:  br IL_01a0
-
-	IL_0194:  nop 
-	IL_0195:  ldloc.s 7
-	IL_0197:  ldloc.s 12
-	IL_0199:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_019e:  pop 
-	IL_019f:  nop 
-	IL_01a0:  nop 
-	IL_01a1:  ldloc.s 11
-	IL_01a3:  ldc.i4.1 
-	IL_01a4:  add 
-	IL_01a5:  stloc.s 11
-	IL_01a7:  ldloc.s 11
-	IL_01a9:  ldloc.s 10
-	IL_01ab:  callvirt instance int32 string::get_Length()
-	IL_01b0:  blt IL_013d
-
-	IL_01b5:  ldloc.s 7
-	IL_01b7:  ldc.i4.s 0x2e
-	IL_01b9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	IL_01be:  pop 
-	IL_01bf:  nop 
-	IL_01c0:  ldloc.s 9
-	IL_01c2:  ldc.i4.1 
-	IL_01c3:  add 
-	IL_01c4:  stloc.s 9
-	IL_01c6:  ldloc.s 9
-	IL_01c8:  ldloc.s 8
-	IL_01ca:  ldlen 
-	IL_01cb:  conv.i4 
-	IL_01cc:  blt IL_011b
-
-	IL_01d1:  ldloc.s 7
-	IL_01d3:  ldarg.1 
-	IL_01d4:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_01d9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_01de:  pop 
-	IL_01df:  ldloc.s 7
-	IL_01e1:  callvirt instance string object::ToString()
-	IL_01e6:  stloc.s 13
-	IL_01e8:  br IL_01ed
-
-	IL_01ed:  ldloc.s 13
-	IL_01ef:  ret 
-    } // end of method ResourceFileSet::GetManifestResourceName
-
-	.property instance string Prefix ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 70 72 65 66 69 78 00 00 ) // ...prefix..
-
-		.get instance default string NAnt.DotNet.Types.ResourceFileSet::get_Prefix () 
-		.set instance default void NAnt.DotNet.Types.ResourceFileSet::set_Prefix (string 'value') 
-	}
-	.property instance bool DynamicPrefix ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 64 79 6E 61 6D 69 63 70 72 65 66 69 78   // ...dynamicprefix
-		00 00                                           ) // ..
+	IL_0001:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  nop 
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
+	IL_000e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0013:  stloc.2 
+	.try { // 0
+	  IL_0014:  br IL_0099
 
-		.get instance default bool NAnt.DotNet.Types.ResourceFileSet::get_DynamicPrefix () 
-		.set instance default void NAnt.DotNet.Types.ResourceFileSet::set_DynamicPrefix (bool 'value') 
-	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet ResxFiles ()
-	{
-		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Types.ResourceFileSet::get_ResxFiles () 
-	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet NonResxFiles ()
-	{
-		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Types.ResourceFileSet::get_NonResxFiles () 
-	}
-  } // end of class NAnt.DotNet.Types.ResourceFileSet
-}
+	  IL_0019:  ldloc.2 
+	  IL_001a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_001f:  castclass NAnt.DotNet.Types.NamespaceImport
+	  IL_0024:  stloc.1 
+	  IL_0025:  nop 
+	  IL_0026:  ldloc.1 
+	  IL_0027:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImport::get_IfDefined()
+	  IL_002c:  brfalse IL_0098
 
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi serializable beforefieldinit ModuleSet
-  	extends [NAnt.Core]NAnt.Core.DataTypeBase
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 09 6D 6F 64 75 6C 65 73 65 74 00 00 ) // ...moduleset..
+	  IL_0031:  ldloc.1 
+	  IL_0032:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImport::get_UnlessDefined()
+	  IL_0037:  brtrue IL_0098
 
-    .field  private initonly  class NAnt.DotNet.Types.ModuleCollection _modules
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _dir
+	  IL_003c:  nop 
+	  IL_003d:  ldloc.1 
+	  IL_003e:  callvirt instance string class NAnt.DotNet.Types.NamespaceImport::get_Namespace()
+	  IL_0043:  ldc.i4.s 0x2c
+	  IL_0045:  ldc.i4.0 
+	  IL_0046:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	  IL_004b:  stloc.3 
+	  IL_004c:  nop 
+	  IL_004d:  ldloc.3 
+	  IL_004e:  stloc.s 5
+	  IL_0050:  ldc.i4.0 
+	  IL_0051:  stloc.s 6
+	  IL_0053:  br IL_008c
 
-    // method line 28
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x264c
-	// Code size 20 (0x14)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.DataTypeBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  newobj instance void class NAnt.DotNet.Types.ModuleCollection::'.ctor'(class NAnt.DotNet.Types.ModuleSet)
-	IL_000e:  stfld class NAnt.DotNet.Types.ModuleCollection NAnt.DotNet.Types.ModuleSet::_modules
-	IL_0013:  ret 
-    } // end of method ModuleSet::.ctor
+	  IL_0058:  ldloc.s 5
+	  IL_005a:  ldloc.s 6
+	  IL_005c:  ldelem.ref 
+	  IL_005d:  stloc.s 4
+	  IL_005f:  nop 
+	  IL_0060:  ldloc.0 
+	  IL_0061:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	  IL_0066:  ldc.i4.0 
+	  IL_0067:  ble IL_0077
 
-    // method line 29
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_Dir ()  cil managed 
-    {
-        // Method begins at RVA 0x2664
-	// Code size 62 (0x3e)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Types.ModuleSet::_dir
-	IL_0007:  brtrue IL_0030
+	  IL_006c:  nop 
+	  IL_006d:  ldloc.0 
+	  IL_006e:  ldc.i4.s 0x2c
+	  IL_0070:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	  IL_0075:  pop 
+	  IL_0076:  nop 
+	  IL_0077:  ldloc.0 
+	  IL_0078:  ldstr "\"{0}\""
+	  IL_007d:  ldloc.s 4
+	  IL_007f:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	  IL_0084:  pop 
+	  IL_0085:  nop 
+	  IL_0086:  ldloc.s 6
+	  IL_0088:  ldc.i4.1 
+	  IL_0089:  add 
+	  IL_008a:  stloc.s 6
+	  IL_008c:  ldloc.s 6
+	  IL_008e:  ldloc.s 5
+	  IL_0090:  ldlen 
+	  IL_0091:  conv.i4 
+	  IL_0092:  blt IL_0058
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0013:  brfalse IL_002f
+	  IL_0097:  nop 
+	  IL_0098:  nop 
+	  IL_0099:  ldloc.2 
+	  IL_009a:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_009f:  brtrue IL_0019
 
-	IL_0018:  nop 
-	IL_0019:  ldarg.0 
-	IL_001a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_001f:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	IL_0024:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0029:  stloc.0 
-	IL_002a:  br IL_003c
+	  IL_00a4:  leave IL_00bf
 
-	IL_002f:  nop 
-	IL_0030:  ldarg.0 
-	IL_0031:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Types.ModuleSet::_dir
-	IL_0036:  stloc.0 
-	IL_0037:  br IL_003c
+	} // end .try 0
+	finally  { // 0
+	  IL_00a9:  ldloc.2 
+	  IL_00aa:  isinst [mscorlib]System.IDisposable
+	  IL_00af:  dup 
+	  IL_00b0:  stloc.s 7
+	  IL_00b2:  brfalse IL_00be
 
-	IL_003c:  ldloc.0 
-	IL_003d:  ret 
-    } // end of method ModuleSet::get_Dir
+	  IL_00b7:  ldloc.s 7
+	  IL_00b9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00be:  endfinally 
+	} // end handler 0
+	IL_00bf:  ldloc.0 
+	IL_00c0:  callvirt instance string object::ToString()
+	IL_00c5:  stloc.s 8
+	IL_00c7:  br IL_00cc
 
-    // method line 30
-    .method public hidebysig specialname 
-           instance default void set_Dir (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x26ae
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Types.ModuleSet::_dir
-	IL_0008:  ret 
-    } // end of method ModuleSet::set_Dir
+	IL_00cc:  ldloc.s 8
+	IL_00ce:  ret 
+    } // end of method NamespaceImportCollection::ToString
 
-    // method line 31
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.ModuleCollection get_Modules ()  cil managed 
+    // method line 21
+    .method family virtual hidebysig specialname 
+           instance default class [mscorlib]System.Type get_ItemType ()  cil managed 
     {
-        // Method begins at RVA 0x26b8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x23b4
+	// Code size 19 (0x13)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.ModuleCollection	V_0)
+		class [mscorlib]System.Type	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.ModuleCollection NAnt.DotNet.Types.ModuleSet::_modules
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ModuleSet::get_Modules
-
-	.property instance class [mscorlib]System.IO.DirectoryInfo Dir ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 69 72 00 00 ) // ...dir..
-
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Types.ModuleSet::get_Dir () 
-		.set instance default void NAnt.DotNet.Types.ModuleSet::set_Dir (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.ModuleCollection Modules ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 06 6D 6F 64 75 6C 65 00 00 ) // ...module..
-
-		.get instance default class NAnt.DotNet.Types.ModuleCollection NAnt.DotNet.Types.ModuleSet::get_Modules () 
-	}
-  } // end of class NAnt.DotNet.Types.ModuleSet
-}
-
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi serializable beforefieldinit Module
-  	extends [NAnt.Core]NAnt.Core.Element
-  {
-    .field  private  string _file
-    .field  private  string _target
-    .field  private  class NAnt.DotNet.Types.ModuleSet _moduleSet
+	IL_0001:  ldtoken NAnt.DotNet.Types.NamespaceImport
+	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000b:  stloc.0 
+	IL_000c:  br IL_0011
 
-    // method line 32
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x26d3
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_0006:  ret 
-    } // end of method Module::.ctor
+	IL_0011:  ldloc.0 
+	IL_0012:  ret 
+    } // end of method NamespaceImportCollection::get_ItemType
 
-    // method line 33
-    .method public hidebysig specialname 
-           instance default string get_File ()  cil managed 
+    // method line 22
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IList.get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x26dc
-	// Code size 71 (0x47)
+        // Method begins at RVA 0x23d4
+	.override class [mscorlib]System.Collections.IList::get_Item
+	// Code size 16 (0x10)
 	.maxstack 2
 	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.DotNet.Types.ModuleSet class NAnt.DotNet.Types.Module::get_ModuleSet()
-	IL_0007:  brfalse IL_0039
-
-	IL_000c:  ldarg.0 
-	IL_000d:  ldfld string NAnt.DotNet.Types.Module::_file
-	IL_0012:  brfalse IL_0039
-
-	IL_0017:  nop 
-	IL_0018:  ldarg.0 
-	IL_0019:  call instance class NAnt.DotNet.Types.ModuleSet class NAnt.DotNet.Types.Module::get_ModuleSet()
-	IL_001e:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.DotNet.Types.ModuleSet::get_Dir()
-	IL_0023:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0028:  ldarg.0 
-	IL_0029:  ldfld string NAnt.DotNet.Types.Module::_file
-	IL_002e:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0033:  stloc.0 
-	IL_0034:  br IL_0045
-
-	IL_0039:  ldarg.0 
-	IL_003a:  ldfld string NAnt.DotNet.Types.Module::_file
-	IL_003f:  stloc.0 
-	IL_0040:  br IL_0045
-
-	IL_0045:  ldloc.0 
-	IL_0046:  ret 
-    } // end of method Module::get_File
-
-    // method line 34
-    .method public hidebysig specialname 
-           instance default void set_File (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x272f
-	// Code size 9 (0x9)
-	.maxstack 8
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.DotNet.Types.Module::_file
-	IL_0008:  ret 
-    } // end of method Module::set_File
-
-    // method line 35
-    .method public hidebysig specialname 
-           instance default string get_Target ()  cil managed 
-    {
-        // Method begins at RVA 0x273c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Types.Module::_target
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0003:  call instance class NAnt.DotNet.Types.NamespaceImport class NAnt.DotNet.Types.NamespaceImportCollection::get_Item(int32)
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Module::get_Target
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method NamespaceImportCollection::System.Collections.IList.get_Item
 
-    // method line 36
-    .method public hidebysig specialname 
-           instance default void set_Target (string 'value')  cil managed 
+    // method line 23
+    .method private final virtual hidebysig newslot specialname 
+           instance default void System.Collections.IList.set_Item (int32 index, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x2757
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x23f0
+	.override class [mscorlib]System.Collections.IList::set_Item
+	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Types.Module::_target
-	IL_000d:  ret 
-    } // end of method Module::set_Target
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::ValidateType(object)
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  ldarg.2 
+	IL_000b:  castclass NAnt.DotNet.Types.NamespaceImport
+	IL_0010:  call instance void class NAnt.DotNet.Types.NamespaceImportCollection::set_Item(int32, class NAnt.DotNet.Types.NamespaceImport)
+	IL_0015:  ret 
+    } // end of method NamespaceImportCollection::System.Collections.IList.set_Item
 
-    // method line 37
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.ModuleSet get_ModuleSet ()  cil managed 
+    // method line 24
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IList.Insert (int32 index, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x2768
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.ModuleSet	V_0)
+        // Method begins at RVA 0x2407
+	.override class [mscorlib]System.Collections.IList::Insert
+	// Code size 22 (0x16)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.ModuleSet NAnt.DotNet.Types.Module::_moduleSet
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Module::get_ModuleSet
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::ValidateType(object)
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  ldarg.2 
+	IL_000b:  castclass NAnt.DotNet.Types.NamespaceImport
+	IL_0010:  call instance void class NAnt.DotNet.Types.NamespaceImportCollection::Insert(int32, class NAnt.DotNet.Types.NamespaceImport)
+	IL_0015:  ret 
+    } // end of method NamespaceImportCollection::System.Collections.IList.Insert
 
-    // method line 38
-    .method public hidebysig specialname 
-           instance default void set_ModuleSet (class NAnt.DotNet.Types.ModuleSet 'value')  cil managed 
+    // method line 25
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IList.Remove (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x2783
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x241e
+	.override class [mscorlib]System.Collections.IList::Remove
+	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.DotNet.Types.ModuleSet NAnt.DotNet.Types.Module::_moduleSet
-	IL_0008:  ret 
-    } // end of method Module::set_ModuleSet
+	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::ValidateType(object)
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  castclass NAnt.DotNet.Types.NamespaceImport
+	IL_000f:  call instance void class NAnt.DotNet.Types.NamespaceImportCollection::Remove(class NAnt.DotNet.Types.NamespaceImport)
+	IL_0014:  ret 
+    } // end of method NamespaceImportCollection::System.Collections.IList.Remove
 
-    // method line 39
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
+    // method line 26
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IList.Contains (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x2790
-	// Code size 91 (0x5b)
+        // Method begins at RVA 0x2434
+	.override class [mscorlib]System.Collections.IList::Contains
+	// Code size 33 (0x21)
 	.maxstack 2
 	.locals init (
-		string	V_0,
-		class [mscorlib]System.Text.StringBuilder	V_1)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.DotNet.Types.Module::get_File()
-	IL_0007:  brtrue IL_0014
-
-	IL_000c:  nop 
-	IL_000d:  ldnull 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0059
-
-	IL_0014:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0019:  stloc.1 
-	IL_001a:  ldloc.1 
-	IL_001b:  ldarg.0 
-	IL_001c:  call instance string class NAnt.DotNet.Types.Module::get_File()
-	IL_0021:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0026:  pop 
-	IL_0027:  ldarg.0 
-	IL_0028:  call instance string class NAnt.DotNet.Types.Module::get_Target()
-	IL_002d:  brfalse IL_004d
-
-	IL_0032:  nop 
-	IL_0033:  ldloc.1 
-	IL_0034:  ldstr ","
-	IL_0039:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_003e:  pop 
-	IL_003f:  ldloc.1 
-	IL_0040:  ldarg.0 
-	IL_0041:  call instance string class NAnt.DotNet.Types.Module::get_Target()
-	IL_0046:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_004b:  pop 
-	IL_004c:  nop 
-	IL_004d:  ldloc.1 
-	IL_004e:  callvirt instance string object::ToString()
-	IL_0053:  stloc.0 
-	IL_0054:  br IL_0059
-
-	IL_0059:  ldloc.0 
-	IL_005a:  ret 
-    } // end of method Module::ToString
-
-	.property instance string File ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 66 69 6C 65 01 00 54 02 08 52 65 71 75   // ...file..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.DotNet.Types.Module::get_File () 
-		.set instance default void NAnt.DotNet.Types.Module::set_File (string 'value') 
-	}
-	.property instance string Target ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 74 61 72 67 65 74 01 00 54 02 08 52 65   // ...target..T..Re
-		71 75 69 72 65 64 00                            ) // quired.
-
-		.get instance default string NAnt.DotNet.Types.Module::get_Target () 
-		.set instance default void NAnt.DotNet.Types.Module::set_Target (string 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.ModuleSet ModuleSet ()
-	{
-		.get instance default class NAnt.DotNet.Types.ModuleSet NAnt.DotNet.Types.Module::get_ModuleSet () 
-		.set instance default void NAnt.DotNet.Types.Module::set_ModuleSet (class NAnt.DotNet.Types.ModuleSet 'value') 
-	}
-  } // end of class NAnt.DotNet.Types.Module
-}
-
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi serializable beforefieldinit CompilerWarningCollection
-  	extends [mscorlib]System.Collections.CollectionBase
-  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
-
-
-    // method line 40
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x27f7
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method CompilerWarningCollection::.ctor
-
-    // method line 41
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.CompilerWarningCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2800
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.DotNet.Types.CompilerWarningCollection::AddRange(class NAnt.DotNet.Types.CompilerWarningCollection)
-	IL_000e:  ret 
-    } // end of method CompilerWarningCollection::.ctor
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::ValidateType(object)
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
+	IL_000e:  ldarg.1 
+	IL_000f:  castclass NAnt.DotNet.Types.NamespaceImport
+	IL_0014:  callvirt instance bool class [mscorlib]System.Collections.ArrayList::Contains(object)
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_001f
 
-    // method line 42
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.CompilerWarning[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2810
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.DotNet.Types.CompilerWarningCollection::AddRange(class NAnt.DotNet.Types.CompilerWarning[])
-	IL_000e:  ret 
-    } // end of method CompilerWarningCollection::.ctor
+	IL_001f:  ldloc.0 
+	IL_0020:  ret 
+    } // end of method NamespaceImportCollection::System.Collections.IList.Contains
 
-    // method line 43
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.CompilerWarning get_Item (int32 index)  cil managed 
+    // method line 27
+    .method private final virtual hidebysig newslot 
+           instance default int32 System.Collections.IList.IndexOf (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x2820
-	// Code size 26 (0x1a)
+        // Method begins at RVA 0x2464
+	.override class [mscorlib]System.Collections.IList::IndexOf
+	// Code size 28 (0x1c)
 	.maxstack 2
 	.locals init (
-		class NAnt.DotNet.Types.CompilerWarning	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.DotNet.Types.CompilerWarning
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
-
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method CompilerWarningCollection::get_Item
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::ValidateType(object)
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  castclass NAnt.DotNet.Types.NamespaceImport
+	IL_000f:  call instance int32 class NAnt.DotNet.Types.NamespaceImportCollection::IndexOf(class NAnt.DotNet.Types.NamespaceImport)
+	IL_0014:  stloc.0 
+	IL_0015:  br IL_001a
 
-    // method line 44
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.DotNet.Types.CompilerWarning 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2846
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method CompilerWarningCollection::set_Item
+	IL_001a:  ldloc.0 
+	IL_001b:  ret 
+    } // end of method NamespaceImportCollection::System.Collections.IList.IndexOf
 
-    // method line 45
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
+    // method line 28
+    .method private final virtual hidebysig newslot 
+           instance default int32 System.Collections.IList.Add (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x2858
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x248c
+	.override class [mscorlib]System.Collections.IList::Add
+	// Code size 28 (0x1c)
 	.maxstack 2
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method CompilerWarningCollection::Add
-
-    // method line 46
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.CompilerWarning[] items)  cil managed 
-    {
-        // Method begins at RVA 0x287c
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.DotNet.Types.CompilerWarningCollection::Add(class NAnt.DotNet.Types.CompilerWarning)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::ValidateType(object)
+	IL_0008:  ldarg.0 
+	IL_0009:  ldarg.1 
+	IL_000a:  castclass NAnt.DotNet.Types.NamespaceImport
+	IL_000f:  call instance int32 class NAnt.DotNet.Types.NamespaceImportCollection::Add(class NAnt.DotNet.Types.NamespaceImport)
+	IL_0014:  stloc.0 
+	IL_0015:  br IL_001a
 
-	IL_0021:  ret 
-    } // end of method CompilerWarningCollection::AddRange
+	IL_001a:  ldloc.0 
+	IL_001b:  ret 
+    } // end of method NamespaceImportCollection::System.Collections.IList.Add
 
-    // method line 47
+    // method line 29
     .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.CompilerWarningCollection items)  cil managed 
+           instance default void AddRange (class NAnt.DotNet.Types.NamespaceImportCollection items)  cil managed 
     {
-        // Method begins at RVA 0x28ac
+        // Method begins at RVA 0x24b4
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -1566,8 +838,8 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.DotNet.Types.CompilerWarning class NAnt.DotNet.Types.CompilerWarningCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.DotNet.Types.CompilerWarningCollection::Add(class NAnt.DotNet.Types.CompilerWarning)
+	IL_000c:  callvirt instance class NAnt.DotNet.Types.NamespaceImport class NAnt.DotNet.Types.NamespaceImportCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.DotNet.Types.NamespaceImportCollection::Add(class NAnt.DotNet.Types.NamespaceImport)
 	IL_0016:  pop 
 	IL_0017:  nop 
 	IL_0018:  ldloc.0 
@@ -1576,588 +848,141 @@
 	IL_001b:  stloc.0 
 	IL_001c:  ldloc.0 
 	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_001e:  callvirt instance int32 class NAnt.DotNet.Types.DataTypeCollectionBase::get_Count()
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method CompilerWarningCollection::AddRange
-
-    // method line 48
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
-    {
-        // Method begins at RVA 0x28e4
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method CompilerWarningCollection::Contains
+    } // end of method NamespaceImportCollection::AddRange
 
-    // method line 49
+    // method line 30
     .method public hidebysig 
-           instance default void CopyTo (class NAnt.DotNet.Types.CompilerWarning[] 'array', int32 index)  cil managed 
+           instance default int32 Add (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
     {
-        // Method begins at RVA 0x2905
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method CompilerWarningCollection::CopyTo
+        .custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 06 69 6D 70 6F 72 74 00 00 ) // ...import..
 
-    // method line 50
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
-    {
-        // Method begins at RVA 0x2918
+        // Method begins at RVA 0x24ec
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
 	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
 	IL_000d:  stloc.0 
 	IL_000e:  br IL_0013
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method CompilerWarningCollection::IndexOf
+    } // end of method NamespaceImportCollection::Add
 
-    // method line 51
+    // method line 31
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
+           instance default void Insert (int32 index, class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
     {
-        // Method begins at RVA 0x2939
+        // Method begins at RVA 0x250d
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
 	IL_0007:  ldarg.1 
 	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method CompilerWarningCollection::Insert
-
-    // method line 52
-    .method public hidebysig 
-           instance default class NAnt.DotNet.Types.CompilerWarningEnumerator GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x294c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.CompilerWarningEnumerator	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.DotNet.Types.CompilerWarningEnumerator::'.ctor'(class NAnt.DotNet.Types.CompilerWarningCollection)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Insert(int32, object)
 	IL_000e:  ret 
-    } // end of method CompilerWarningCollection::GetEnumerator
+    } // end of method NamespaceImportCollection::Insert
 
-    // method line 53
+    // method line 32
     .method public hidebysig 
-           instance default void Remove (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
+           instance default void Remove (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
     {
-        // Method begins at RVA 0x2967
+        // Method begins at RVA 0x251d
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
 	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Remove(object)
 	IL_000d:  ret 
-    } // end of method CompilerWarningCollection::Remove
-
-	.property instance class NAnt.DotNet.Types.CompilerWarning Item (int32)
-	{
-		.get instance default class NAnt.DotNet.Types.CompilerWarning NAnt.DotNet.Types.CompilerWarningCollection::get_Item (int32 index) 
-		.set instance default void NAnt.DotNet.Types.CompilerWarningCollection::set_Item (int32 index, class NAnt.DotNet.Types.CompilerWarning 'value') 
-	}
-  } // end of class NAnt.DotNet.Types.CompilerWarningCollection
-}
-
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi beforefieldinit CompilerWarningEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
-
-    // method line 54
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.CompilerWarningCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0x2978
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method CompilerWarningEnumerator::.ctor
-
-    // method line 55
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.CompilerWarning get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x299c
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.CompilerWarning	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.DotNet.Types.CompilerWarning
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method CompilerWarningEnumerator::get_Current
-
-    // method line 56
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x29c4
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		object	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method CompilerWarningEnumerator::System.Collections.IEnumerator.get_Current
-
-    // method line 57
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x29e4
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method CompilerWarningEnumerator::MoveNext
-
-    // method line 58
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x2a04
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method CompilerWarningEnumerator::System.Collections.IEnumerator.MoveNext
-
-    // method line 59
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x2a24
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method CompilerWarningEnumerator::Reset
-
-    // method line 60
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x2a32
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method CompilerWarningEnumerator::System.Collections.IEnumerator.Reset
-
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.DotNet.Types.CompilerWarningEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.DotNet.Types.CompilerWarning Current ()
-	{
-		.get instance default class NAnt.DotNet.Types.CompilerWarning NAnt.DotNet.Types.CompilerWarningEnumerator::get_Current () 
-	}
-  } // end of class NAnt.DotNet.Types.CompilerWarningEnumerator
-}
-
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi serializable beforefieldinit PackageCollection
-  	extends [mscorlib]System.Collections.CollectionBase
-  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
-
-
-    // method line 61
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2a40
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method PackageCollection::.ctor
-
-    // method line 62
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.PackageCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2a49
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.DotNet.Types.PackageCollection::AddRange(class NAnt.DotNet.Types.PackageCollection)
-	IL_000e:  ret 
-    } // end of method PackageCollection::.ctor
-
-    // method line 63
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.Package[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2a59
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.DotNet.Types.PackageCollection::AddRange(class NAnt.DotNet.Types.Package[])
-	IL_000e:  ret 
-    } // end of method PackageCollection::.ctor
-
-    // method line 64
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.Package get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x2a6c
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class NAnt.DotNet.Types.Package	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.DotNet.Types.Package
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
-
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method PackageCollection::get_Item
-
-    // method line 65
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.DotNet.Types.Package 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2a92
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method PackageCollection::set_Item
-
-    // method line 66
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.DotNet.Types.Package item)  cil managed 
-    {
-        // Method begins at RVA 0x2aa4
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method PackageCollection::Add
-
-    // method line 67
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.Package[] items)  cil managed 
-    {
-        // Method begins at RVA 0x2ac8
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.DotNet.Types.PackageCollection::Add(class NAnt.DotNet.Types.Package)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
-
-	IL_0021:  ret 
-    } // end of method PackageCollection::AddRange
-
-    // method line 68
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.PackageCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x2af8
-	// Code size 41 (0x29)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.DotNet.Types.Package class NAnt.DotNet.Types.PackageCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.DotNet.Types.PackageCollection::Add(class NAnt.DotNet.Types.Package)
-	IL_0016:  pop 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0023:  blt IL_0008
-
-	IL_0028:  ret 
-    } // end of method PackageCollection::AddRange
+    } // end of method NamespaceImportCollection::Remove
 
-    // method line 69
+    // method line 33
     .method public hidebysig 
-           instance default bool Contains (class NAnt.DotNet.Types.Package item)  cil managed 
+           instance default bool Contains (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b30
+        // Method begins at RVA 0x252c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
 	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.ArrayList::Contains(object)
 	IL_000d:  stloc.0 
 	IL_000e:  br IL_0013
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method PackageCollection::Contains
-
-    // method line 70
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.DotNet.Types.Package[] 'array', int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x2b51
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method PackageCollection::CopyTo
+    } // end of method NamespaceImportCollection::Contains
 
-    // method line 71
+    // method line 34
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.DotNet.Types.Package item)  cil managed 
+           instance default int32 IndexOf (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b64
+        // Method begins at RVA 0x2550
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
 	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::IndexOf(object)
 	IL_000d:  stloc.0 
 	IL_000e:  br IL_0013
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method PackageCollection::IndexOf
-
-    // method line 72
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.DotNet.Types.Package item)  cil managed 
-    {
-        // Method begins at RVA 0x2b85
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method PackageCollection::Insert
-
-    // method line 73
-    .method public hidebysig 
-           instance default class NAnt.DotNet.Types.PackageEnumerator GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x2b98
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.PackageEnumerator	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.DotNet.Types.PackageEnumerator::'.ctor'(class NAnt.DotNet.Types.PackageCollection)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method PackageCollection::GetEnumerator
-
-    // method line 74
-    .method public hidebysig 
-           instance default void Remove (class NAnt.DotNet.Types.Package item)  cil managed 
-    {
-        // Method begins at RVA 0x2bb3
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method PackageCollection::Remove
+    } // end of method NamespaceImportCollection::IndexOf
 
-	.property instance class NAnt.DotNet.Types.Package Item (int32)
+	.property instance object System.Collections.IList.Item (int32)
 	{
-		.get instance default class NAnt.DotNet.Types.Package NAnt.DotNet.Types.PackageCollection::get_Item (int32 index) 
-		.set instance default void NAnt.DotNet.Types.PackageCollection::set_Item (int32 index, class NAnt.DotNet.Types.Package 'value') 
+		.get instance default object NAnt.DotNet.Types.NamespaceImportCollection::System.Collections.IList.get_Item (int32 index) 
+		.set instance default void NAnt.DotNet.Types.NamespaceImportCollection::System.Collections.IList.set_Item (int32 index, object 'value') 
 	}
-  } // end of class NAnt.DotNet.Types.PackageCollection
+	.property instance class NAnt.DotNet.Types.NamespaceImport Item (int32)
+	{
+		.get instance default class NAnt.DotNet.Types.NamespaceImport NAnt.DotNet.Types.NamespaceImportCollection::get_Item (int32 index) 
+		.set instance default void NAnt.DotNet.Types.NamespaceImportCollection::set_Item (int32 index, class NAnt.DotNet.Types.NamespaceImport 'value') 
+	}
+	.property instance class NAnt.DotNet.Types.NamespaceImport Item (string)
+	{
+		.get instance default class NAnt.DotNet.Types.NamespaceImport NAnt.DotNet.Types.NamespaceImportCollection::get_Item (string 'value') 
+	}
+	.property instance class [mscorlib]System.Type ItemType ()
+	{
+		.get instance default class [mscorlib]System.Type NAnt.DotNet.Types.NamespaceImportCollection::get_ItemType () 
+	}
+  } // end of class NAnt.DotNet.Types.NamespaceImportCollection
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi beforefieldinit PackageEnumerator
+  .class public auto ansi beforefieldinit NamespaceImportEnumerator
   	extends [mscorlib]System.Object
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 75
+    // method line 35
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.PackageCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.DotNet.Types.NamespaceImportCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x2bc4
+        // Method begins at RVA 0x2574
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -2170,36 +995,36 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldloc.0 
 	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.NamespaceImportEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method PackageEnumerator::.ctor
+    } // end of method NamespaceImportEnumerator::.ctor
 
-    // method line 76
+    // method line 36
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.Package get_Current ()  cil managed 
+           instance default class NAnt.DotNet.Types.NamespaceImport get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2be8
+        // Method begins at RVA 0x2598
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.Package	V_0)
+		class NAnt.DotNet.Types.NamespaceImport	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.NamespaceImportEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.DotNet.Types.Package
+	IL_000c:  castclass NAnt.DotNet.Types.NamespaceImport
 	IL_0011:  stloc.0 
 	IL_0012:  br IL_0017
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method PackageEnumerator::get_Current
+    } // end of method NamespaceImportEnumerator::get_Current
 
-    // method line 77
+    // method line 37
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2c10
+        // Method begins at RVA 0x25c0
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -2207,40 +1032,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.NamespaceImportEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method PackageEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method NamespaceImportEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 78
+    // method line 38
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2c30
+        // Method begins at RVA 0x25e0
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.NamespaceImportEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method PackageEnumerator::MoveNext
+    } // end of method NamespaceImportEnumerator::MoveNext
 
-    // method line 79
+    // method line 39
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2c50
+        // Method begins at RVA 0x2600
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -2248,53 +1073,53 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.NamespaceImportEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method PackageEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method NamespaceImportEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 80
+    // method line 40
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x2c70
+        // Method begins at RVA 0x2620
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.NamespaceImportEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method PackageEnumerator::Reset
+    } // end of method NamespaceImportEnumerator::Reset
 
-    // method line 81
+    // method line 41
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x2c7e
+        // Method begins at RVA 0x262e
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.NamespaceImportEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method PackageEnumerator::System.Collections.IEnumerator.Reset
+    } // end of method NamespaceImportEnumerator::System.Collections.IEnumerator.Reset
 
 	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default object NAnt.DotNet.Types.PackageEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.DotNet.Types.NamespaceImportEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.DotNet.Types.Package Current ()
+	.property instance class NAnt.DotNet.Types.NamespaceImport Current ()
 	{
-		.get instance default class NAnt.DotNet.Types.Package NAnt.DotNet.Types.PackageEnumerator::get_Current () 
+		.get instance default class NAnt.DotNet.Types.NamespaceImport NAnt.DotNet.Types.NamespaceImportEnumerator::get_Current () 
 	}
-  } // end of class NAnt.DotNet.Types.PackageEnumerator
+  } // end of class NAnt.DotNet.Types.NamespaceImportEnumerator
 }
 
 .namespace NAnt.DotNet.Types
@@ -2305,11 +1130,11 @@
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 82
+    // method line 42
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2c8c
+        // Method begins at RVA 0x263c
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2318,11 +1143,11 @@
 	IL_0007:  ret 
     } // end of method ResourceFileSetCollection::.ctor
 
-    // method line 83
+    // method line 43
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.DotNet.Types.ResourceFileSetCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x2c95
+        // Method begins at RVA 0x2645
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2334,11 +1159,11 @@
 	IL_000e:  ret 
     } // end of method ResourceFileSetCollection::.ctor
 
-    // method line 84
+    // method line 44
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.DotNet.Types.ResourceFileSet[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x2ca5
+        // Method begins at RVA 0x2655
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2350,11 +1175,11 @@
 	IL_000e:  ret 
     } // end of method ResourceFileSetCollection::.ctor
 
-    // method line 85
+    // method line 45
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.ResourceFileSet get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x2cb8
+        // Method begins at RVA 0x2668
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -2372,11 +1197,11 @@
 	IL_0019:  ret 
     } // end of method ResourceFileSetCollection::get_Item
 
-    // method line 86
+    // method line 46
     .method public hidebysig specialname 
            instance default void set_Item (int32 index, class NAnt.DotNet.Types.ResourceFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x2cde
+        // Method begins at RVA 0x268e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2388,11 +1213,11 @@
 	IL_000e:  ret 
     } // end of method ResourceFileSetCollection::set_Item
 
-    // method line 87
+    // method line 47
     .method public hidebysig 
            instance default int32 Add (class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x2cf0
+        // Method begins at RVA 0x26a0
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -2409,11 +1234,11 @@
 	IL_0014:  ret 
     } // end of method ResourceFileSetCollection::Add
 
-    // method line 88
+    // method line 48
     .method public hidebysig 
            instance default void AddRange (class NAnt.DotNet.Types.ResourceFileSet[] items)  cil managed 
     {
-        // Method begins at RVA 0x2d14
+        // Method begins at RVA 0x26c4
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -2444,11 +1269,11 @@
 	IL_0021:  ret 
     } // end of method ResourceFileSetCollection::AddRange
 
-    // method line 89
+    // method line 49
     .method public hidebysig 
            instance default void AddRange (class NAnt.DotNet.Types.ResourceFileSetCollection items)  cil managed 
     {
-        // Method begins at RVA 0x2d44
+        // Method begins at RVA 0x26f4
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -2478,11 +1303,11 @@
 	IL_0028:  ret 
     } // end of method ResourceFileSetCollection::AddRange
 
-    // method line 90
+    // method line 50
     .method public hidebysig 
            instance default bool Contains (class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x2d7c
+        // Method begins at RVA 0x272c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -2499,11 +1324,11 @@
 	IL_0014:  ret 
     } // end of method ResourceFileSetCollection::Contains
 
-    // method line 91
+    // method line 51
     .method public hidebysig 
            instance default void CopyTo (class NAnt.DotNet.Types.ResourceFileSet[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x2d9d
+        // Method begins at RVA 0x274d
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2515,11 +1340,11 @@
 	IL_000e:  ret 
     } // end of method ResourceFileSetCollection::CopyTo
 
-    // method line 92
+    // method line 52
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x2db0
+        // Method begins at RVA 0x2760
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -2536,11 +1361,11 @@
 	IL_0014:  ret 
     } // end of method ResourceFileSetCollection::IndexOf
 
-    // method line 93
+    // method line 53
     .method public hidebysig 
            instance default void Insert (int32 index, class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x2dd1
+        // Method begins at RVA 0x2781
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2552,11 +1377,11 @@
 	IL_000e:  ret 
     } // end of method ResourceFileSetCollection::Insert
 
-    // method line 94
+    // method line 54
     .method public hidebysig 
            instance default class NAnt.DotNet.Types.ResourceFileSetEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x2de4
+        // Method begins at RVA 0x2794
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2571,11 +1396,11 @@
 	IL_000e:  ret 
     } // end of method ResourceFileSetCollection::GetEnumerator
 
-    // method line 95
+    // method line 55
     .method public hidebysig 
            instance default void Remove (class NAnt.DotNet.Types.ResourceFileSet item)  cil managed 
     {
-        // Method begins at RVA 0x2dff
+        // Method begins at RVA 0x27af
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2601,11 +1426,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 96
+    // method line 56
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.DotNet.Types.ResourceFileSetCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x2e10
+        // Method begins at RVA 0x27c0
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -2622,11 +1447,11 @@
 	IL_0015:  ret 
     } // end of method ResourceFileSetEnumerator::.ctor
 
-    // method line 97
+    // method line 57
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.ResourceFileSet get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2e34
+        // Method begins at RVA 0x27e4
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -2643,11 +1468,11 @@
 	IL_0018:  ret 
     } // end of method ResourceFileSetEnumerator::get_Current
 
-    // method line 98
+    // method line 58
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2e5c
+        // Method begins at RVA 0x280c
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -2664,11 +1489,11 @@
 	IL_0013:  ret 
     } // end of method ResourceFileSetEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 99
+    // method line 59
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2e7c
+        // Method begins at RVA 0x282c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -2684,11 +1509,11 @@
 	IL_0013:  ret 
     } // end of method ResourceFileSetEnumerator::MoveNext
 
-    // method line 100
+    // method line 60
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2e9c
+        // Method begins at RVA 0x284c
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -2705,11 +1530,11 @@
 	IL_0013:  ret 
     } // end of method ResourceFileSetEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 101
+    // method line 61
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x2ebc
+        // Method begins at RVA 0x286c
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2719,11 +1544,11 @@
 	IL_000c:  ret 
     } // end of method ResourceFileSetEnumerator::Reset
 
-    // method line 102
+    // method line 62
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x2eca
+        // Method begins at RVA 0x287a
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
@@ -2753,11 +1578,11 @@
     .field  private initonly  string _file
     .field  private initonly  string _manifestResourceName
 
-    // method line 103
+    // method line 63
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string file, string manifestResourceName)  cil managed 
     {
-        // Method begins at RVA 0x2ed8
+        // Method begins at RVA 0x2888
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2772,11 +1597,11 @@
 	IL_0015:  ret 
     } // end of method EmbeddedResource::.ctor
 
-    // method line 104
+    // method line 64
     .method public hidebysig specialname 
            instance default string get_File ()  cil managed 
     {
-        // Method begins at RVA 0x2ef0
+        // Method begins at RVA 0x28a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2791,11 +1616,11 @@
 	IL_000e:  ret 
     } // end of method EmbeddedResource::get_File
 
-    // method line 105
+    // method line 65
     .method public hidebysig specialname 
            instance default string get_ManifestResourceName ()  cil managed 
     {
-        // Method begins at RVA 0x2f0c
+        // Method begins at RVA 0x28bc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2823,1043 +1648,6 @@
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi sealed DebugOutput
-  	extends [mscorlib]System.Enum
-  {
-    .custom instance void class [System]System.ComponentModel.TypeConverterAttribute::'.ctor'(class [mscorlib]System.Type) =  (
-		01 00 26 4E 41 6E 74 2E 44 6F 74 4E 65 74 2E 54   // ..&NAnt.DotNet.T
-		79 70 65 73 2E 44 65 62 75 67 4F 75 74 70 75 74   // ypes.DebugOutput
-		43 6F 6E 76 65 72 74 65 72 00 00                ) // Converter..
-
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.DotNet.Types.DebugOutput None = int32(0x00000000)
-    .field public static literal  valuetype NAnt.DotNet.Types.DebugOutput Enable = int32(0x00000001)
-    .field public static literal  valuetype NAnt.DotNet.Types.DebugOutput Full = int32(0x00000002)
-    .field public static literal  valuetype NAnt.DotNet.Types.DebugOutput PdbOnly = int32(0x00000003)
-
-  } // end of class NAnt.DotNet.Types.DebugOutput
-}
-
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi beforefieldinit DebugOutputConverter
-  	extends [System]System.ComponentModel.EnumConverter
-  {
-
-    // method line 106
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2f27
-	// Code size 18 (0x12)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldtoken NAnt.DotNet.Types.DebugOutput
-	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000b:  call instance void class [System]System.ComponentModel.EnumConverter::'.ctor'(class [mscorlib]System.Type)
-	IL_0010:  nop 
-	IL_0011:  ret 
-    } // end of method DebugOutputConverter::.ctor
-
-    // method line 107
-    .method public virtual hidebysig 
-           instance default object ConvertFrom (class [System]System.ComponentModel.ITypeDescriptorContext context, class [mscorlib]System.Globalization.CultureInfo culture, object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2f3c
-	// Code size 115 (0x73)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		object	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.3 
-	IL_0002:  isinst [mscorlib]System.String
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  brfalse IL_0062
-
-	IL_000e:  nop 
-	IL_000f:  ldloc.0 
-	IL_0010:  ldstr "true"
-	IL_0015:  ldc.i4.1 
-	IL_0016:  ldarg.2 
-	IL_0017:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_001c:  brtrue IL_002d
-
-	IL_0021:  ldc.i4.1 
-	IL_0022:  box NAnt.DotNet.Types.DebugOutput
-	IL_0027:  stloc.1 
-	IL_0028:  br IL_0071
-
-	IL_002d:  ldloc.0 
-	IL_002e:  ldstr "false"
-	IL_0033:  ldc.i4.1 
-	IL_0034:  ldarg.2 
-	IL_0035:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_003a:  brtrue IL_004b
-
-	IL_003f:  ldc.i4.0 
-	IL_0040:  box NAnt.DotNet.Types.DebugOutput
-	IL_0045:  stloc.1 
-	IL_0046:  br IL_0071
-
-	IL_004b:  ldtoken NAnt.DotNet.Types.DebugOutput
-	IL_0050:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0055:  ldloc.0 
-	IL_0056:  ldc.i4.1 
-	IL_0057:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	IL_005c:  stloc.1 
-	IL_005d:  br IL_0071
-
-	IL_0062:  ldarg.0 
-	IL_0063:  ldarg.1 
-	IL_0064:  ldarg.2 
-	IL_0065:  ldarg.3 
-	IL_0066:  call instance object class [System]System.ComponentModel.EnumConverter::ConvertFrom(class [System]System.ComponentModel.ITypeDescriptorContext, class [mscorlib]System.Globalization.CultureInfo, object)
-	IL_006b:  stloc.1 
-	IL_006c:  br IL_0071
-
-	IL_0071:  ldloc.1 
-	IL_0072:  ret 
-    } // end of method DebugOutputConverter::ConvertFrom
-
-  } // end of class NAnt.DotNet.Types.DebugOutputConverter
-}
-
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi serializable beforefieldinit AssemblyAttributeCollection
-  	extends [mscorlib]System.Collections.CollectionBase
-  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
-
-
-    // method line 108
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2fbb
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method AssemblyAttributeCollection::.ctor
-
-    // method line 109
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyAttributeCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2fc4
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.DotNet.Types.AssemblyAttributeCollection::AddRange(class NAnt.DotNet.Types.AssemblyAttributeCollection)
-	IL_000e:  ret 
-    } // end of method AssemblyAttributeCollection::.ctor
-
-    // method line 110
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyAttribute[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2fd4
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.DotNet.Types.AssemblyAttributeCollection::AddRange(class NAnt.DotNet.Types.AssemblyAttribute[])
-	IL_000e:  ret 
-    } // end of method AssemblyAttributeCollection::.ctor
-
-    // method line 111
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyAttribute get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x2fe4
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class NAnt.DotNet.Types.AssemblyAttribute	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.DotNet.Types.AssemblyAttribute
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
-
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method AssemblyAttributeCollection::get_Item
-
-    // method line 112
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.DotNet.Types.AssemblyAttribute 'value')  cil managed 
-    {
-        // Method begins at RVA 0x300a
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method AssemblyAttributeCollection::set_Item
-
-    // method line 113
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyAttribute get_Item (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x301c
-	// Code size 111 (0x6f)
-	.maxstack 2
-	.locals init (
-		class NAnt.DotNet.Types.AssemblyAttribute	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.DotNet.Types.AssemblyAttribute	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0066
-
-	IL_0007:  nop 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0014:  stloc.1 
-	.try { // 0
-	  IL_0015:  br IL_0041
-
-	  IL_001a:  ldloc.1 
-	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.DotNet.Types.AssemblyAttribute
-	  IL_0025:  stloc.0 
-	  IL_0026:  nop 
-	  IL_0027:  ldarg.1 
-	  IL_0028:  ldloc.0 
-	  IL_0029:  callvirt instance string class NAnt.DotNet.Types.AssemblyAttribute::get_Value()
-	  IL_002e:  callvirt instance bool string::Equals(string)
-	  IL_0033:  brfalse IL_0040
-
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  stloc.2 
-	  IL_003b:  leave IL_006d
-
-	  IL_0040:  nop 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_001a
-
-	  IL_004c:  leave IL_0065
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0051:  ldloc.1 
-	  IL_0052:  isinst [mscorlib]System.IDisposable
-	  IL_0057:  dup 
-	  IL_0058:  stloc.3 
-	  IL_0059:  brfalse IL_0064
-
-	  IL_005e:  ldloc.3 
-	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0064:  endfinally 
-	} // end handler 0
-	IL_0065:  nop 
-	IL_0066:  ldnull 
-	IL_0067:  stloc.2 
-	IL_0068:  br IL_006d
-
-	IL_006d:  ldloc.2 
-	IL_006e:  ret 
-    } // end of method AssemblyAttributeCollection::get_Item
-
-    // method line 114
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
-    {
-        // Method begins at RVA 0x30a8
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method AssemblyAttributeCollection::Add
-
-    // method line 115
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.AssemblyAttribute[] items)  cil managed 
-    {
-        // Method begins at RVA 0x30cc
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.DotNet.Types.AssemblyAttributeCollection::Add(class NAnt.DotNet.Types.AssemblyAttribute)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
-
-	IL_0021:  ret 
-    } // end of method AssemblyAttributeCollection::AddRange
-
-    // method line 116
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.AssemblyAttributeCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x30fc
-	// Code size 41 (0x29)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.DotNet.Types.AssemblyAttribute class NAnt.DotNet.Types.AssemblyAttributeCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.DotNet.Types.AssemblyAttributeCollection::Add(class NAnt.DotNet.Types.AssemblyAttribute)
-	IL_0016:  pop 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0023:  blt IL_0008
-
-	IL_0028:  ret 
-    } // end of method AssemblyAttributeCollection::AddRange
-
-    // method line 117
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
-    {
-        // Method begins at RVA 0x3134
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method AssemblyAttributeCollection::Contains
-
-    // method line 118
-    .method public hidebysig 
-           instance default bool Contains (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3158
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.DotNet.Types.AssemblyAttribute class NAnt.DotNet.Types.AssemblyAttributeCollection::get_Item(string)
-	IL_0008:  ldnull 
-	IL_0009:  ceq 
-	IL_000b:  ldc.i4.0 
-	IL_000c:  ceq 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0014
-
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method AssemblyAttributeCollection::Contains
-
-    // method line 119
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.DotNet.Types.AssemblyAttribute[] 'array', int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x317a
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method AssemblyAttributeCollection::CopyTo
-
-    // method line 120
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
-    {
-        // Method begins at RVA 0x318c
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method AssemblyAttributeCollection::IndexOf
-
-    // method line 121
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
-    {
-        // Method begins at RVA 0x31ad
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method AssemblyAttributeCollection::Insert
-
-    // method line 122
-    .method public hidebysig 
-           instance default class NAnt.DotNet.Types.AssemblyAttributeEnumerator GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x31c0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.AssemblyAttributeEnumerator	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.DotNet.Types.AssemblyAttributeEnumerator::'.ctor'(class NAnt.DotNet.Types.AssemblyAttributeCollection)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyAttributeCollection::GetEnumerator
-
-    // method line 123
-    .method public hidebysig 
-           instance default void Remove (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
-    {
-        // Method begins at RVA 0x31db
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method AssemblyAttributeCollection::Remove
-
-	.property instance class NAnt.DotNet.Types.AssemblyAttribute Item (int32)
-	{
-		.get instance default class NAnt.DotNet.Types.AssemblyAttribute NAnt.DotNet.Types.AssemblyAttributeCollection::get_Item (int32 index) 
-		.set instance default void NAnt.DotNet.Types.AssemblyAttributeCollection::set_Item (int32 index, class NAnt.DotNet.Types.AssemblyAttribute 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.AssemblyAttribute Item (string)
-	{
-		.get instance default class NAnt.DotNet.Types.AssemblyAttribute NAnt.DotNet.Types.AssemblyAttributeCollection::get_Item (string 'value') 
-	}
-  } // end of class NAnt.DotNet.Types.AssemblyAttributeCollection
-}
-
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi beforefieldinit AssemblyAttributeEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
-
-    // method line 124
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyAttributeCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0x31ec
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method AssemblyAttributeEnumerator::.ctor
-
-    // method line 125
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyAttribute get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x3210
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.AssemblyAttribute	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.DotNet.Types.AssemblyAttribute
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method AssemblyAttributeEnumerator::get_Current
-
-    // method line 126
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x3238
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		object	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method AssemblyAttributeEnumerator::System.Collections.IEnumerator.get_Current
-
-    // method line 127
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x3258
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method AssemblyAttributeEnumerator::MoveNext
-
-    // method line 128
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x3278
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method AssemblyAttributeEnumerator::System.Collections.IEnumerator.MoveNext
-
-    // method line 129
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x3298
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method AssemblyAttributeEnumerator::Reset
-
-    // method line 130
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x32a6
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method AssemblyAttributeEnumerator::System.Collections.IEnumerator.Reset
-
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.DotNet.Types.AssemblyAttributeEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.DotNet.Types.AssemblyAttribute Current ()
-	{
-		.get instance default class NAnt.DotNet.Types.AssemblyAttribute NAnt.DotNet.Types.AssemblyAttributeEnumerator::get_Current () 
-	}
-  } // end of class NAnt.DotNet.Types.AssemblyAttributeEnumerator
-}
-
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi beforefieldinit WarningAsError
-  	extends [NAnt.Core]NAnt.Core.DataTypeBase
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
-		01 00 0B 77 61 72 6E 61 73 65 72 72 6F 72 00 00 ) // ...warnaserror..
-
-    .field  private  class NAnt.DotNet.Types.CompilerWarningCollection _includes
-    .field  private  class NAnt.DotNet.Types.CompilerWarningCollection _excludes
-
-    // method line 131
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x32b4
-	// Code size 29 (0x1d)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.DotNet.Types.CompilerWarningCollection::'.ctor'()
-	IL_0006:  stfld class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Types.WarningAsError::_includes
-	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class NAnt.DotNet.Types.CompilerWarningCollection::'.ctor'()
-	IL_0011:  stfld class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Types.WarningAsError::_excludes
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance void class [NAnt.Core]NAnt.Core.DataTypeBase::'.ctor'()
-	IL_001c:  ret 
-    } // end of method WarningAsError::.ctor
-
-    // method line 132
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.CompilerWarningCollection get_Includes ()  cil managed 
-    {
-        // Method begins at RVA 0x32d4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.CompilerWarningCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Types.WarningAsError::_includes
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method WarningAsError::get_Includes
-
-    // method line 133
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.CompilerWarningCollection get_Excludes ()  cil managed 
-    {
-        // Method begins at RVA 0x32f0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.CompilerWarningCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Types.WarningAsError::_excludes
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method WarningAsError::get_Excludes
-
-	.property instance class NAnt.DotNet.Types.CompilerWarningCollection Includes ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 69 6E 63 6C 75 64 65 00 00 ) // ...include..
-
-		.get instance default class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Types.WarningAsError::get_Includes () 
-	}
-	.property instance class NAnt.DotNet.Types.CompilerWarningCollection Excludes ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 65 78 63 6C 75 64 65 00 00 ) // ...exclude..
-
-		.get instance default class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Types.WarningAsError::get_Excludes () 
-	}
-  } // end of class NAnt.DotNet.Types.WarningAsError
-}
-
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi serializable beforefieldinit LibDirectorySet
-  	extends [NAnt.Core]NAnt.Core.Types.FileSet
-  {
-    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _parent
-
-    // method line 134
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyFileSet parent)  cil managed 
-    {
-        // Method begins at RVA 0x330b
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Types.LibDirectorySet::_parent
-	IL_000e:  ret 
-    } // end of method LibDirectorySet::.ctor
-
-    // method line 135
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x331c
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Types.LibDirectorySet::_parent
-	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method LibDirectorySet::get_BaseDirectory
-
-	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Types.LibDirectorySet::get_BaseDirectory () 
-	}
-  } // end of class NAnt.DotNet.Types.LibDirectorySet
-}
-
-.namespace NAnt.DotNet.Types
-{
-  .class public auto ansi serializable beforefieldinit AssemblyFileSet
-  	extends [NAnt.Core]NAnt.Core.Types.FileSet
-  	implements [mscorlib]System.ICloneable  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
-		01 00 0F 61 73 73 65 6D 62 6C 79 66 69 6C 65 73   // ...assemblyfiles
-		65 74 00 00                                     ) // et..
-
-    .field  private  class NAnt.DotNet.Types.LibDirectorySet _lib
-
-    // method line 136
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x333c
-	// Code size 27 (0x1b)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldnull 
-	IL_0002:  stfld class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::_lib
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.0 
-	IL_0010:  newobj instance void class NAnt.DotNet.Types.LibDirectorySet::'.ctor'(class NAnt.DotNet.Types.AssemblyFileSet)
-	IL_0015:  stfld class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::_lib
-	IL_001a:  ret 
-    } // end of method AssemblyFileSet::.ctor
-
-    // method line 137
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [NAnt.Core]NAnt.Core.Types.FileSet fs)  cil managed 
-    {
-        // Method begins at RVA 0x3358
-	// Code size 28 (0x1c)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldnull 
-	IL_0002:  stfld class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::_lib
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'(class [NAnt.Core]NAnt.Core.Types.FileSet)
-	IL_000e:  nop 
-	IL_000f:  ldarg.0 
-	IL_0010:  ldarg.0 
-	IL_0011:  newobj instance void class NAnt.DotNet.Types.LibDirectorySet::'.ctor'(class NAnt.DotNet.Types.AssemblyFileSet)
-	IL_0016:  stfld class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::_lib
-	IL_001b:  ret 
-    } // end of method AssemblyFileSet::.ctor
-
-    // method line 138
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.LibDirectorySet get_Lib ()  cil managed 
-    {
-        // Method begins at RVA 0x3378
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.LibDirectorySet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::_lib
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyFileSet::get_Lib
-
-    // method line 139
-    .method public hidebysig specialname 
-           instance default void set_Lib (class NAnt.DotNet.Types.LibDirectorySet 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3393
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::_lib
-	IL_0008:  ret 
-    } // end of method AssemblyFileSet::set_Lib
-
-    // method line 140
-    .method public virtual hidebysig 
-           instance default void Scan ()  cil managed 
-    {
-        // Method begins at RVA 0x339d
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::Scan()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class NAnt.DotNet.Types.AssemblyFileSet::ResolveReferences()
-	IL_000d:  ret 
-    } // end of method AssemblyFileSet::Scan
-
-    // method line 141
-    .method family hidebysig 
-           instance default void ResolveReferences ()  cil managed 
-    {
-        // Method begins at RVA 0x33ac
-	// Code size 300 (0x12c)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		class [System]System.Collections.Specialized.StringEnumerator	V_1,
-		string	V_2,
-		string	V_3,
-		class [System]System.Collections.Specialized.StringEnumerator	V_4,
-		string	V_5,
-		class [mscorlib]System.IDisposable	V_6,
-		string	V_7,
-		class [mscorlib]System.IDisposable	V_8)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	IL_0008:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_000d:  stloc.1 
-	.try { // 1
-	  IL_000e:  br IL_0105
-
-	  IL_0013:  ldloc.1 
-	  IL_0014:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0019:  stloc.0 
-	  IL_001a:  nop 
-	  IL_001b:  ldloc.0 
-	  IL_001c:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	  IL_0021:  ldloc.0 
-	  IL_0022:  call bool string::op_Equality(string, string)
-	  IL_0027:  brfalse IL_0104
-
-	  IL_002c:  nop 
-	  IL_002d:  ldarg.0 
-	  IL_002e:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	  IL_0033:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0038:  ldloc.0 
-	  IL_0039:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_003e:  stloc.2 
-	  IL_003f:  ldloc.2 
-	  IL_0040:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_0045:  brfalse IL_0050
-
-	  IL_004a:  nop 
-	  IL_004b:  leave IL_0105
-
-	  IL_0050:  nop 
-	  IL_0051:  ldarg.0 
-	  IL_0052:  call instance class NAnt.DotNet.Types.LibDirectorySet class NAnt.DotNet.Types.AssemblyFileSet::get_Lib()
-	  IL_0057:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_DirectoryNames()
-	  IL_005c:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_0061:  stloc.s 4
-	  .try { // 0
-	    IL_0063:  br IL_009b
-
-	    IL_0068:  ldloc.s 4
-	    IL_006a:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_006f:  stloc.3 
-	    IL_0070:  nop 
-	    IL_0071:  ldloc.3 
-	    IL_0072:  ldloc.0 
-	    IL_0073:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	    IL_0078:  stloc.s 5
-	    IL_007a:  ldloc.s 5
-	    IL_007c:  call bool class [mscorlib]System.IO.File::Exists(string)
-	    IL_0081:  brfalse IL_009a
-
-	    IL_0086:  nop 
-	    IL_0087:  ldarg.0 
-	    IL_0088:  call instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	    IL_008d:  ldloc.s 5
-	    IL_008f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_0094:  pop 
-	    IL_0095:  leave IL_009b
-
-	    IL_009a:  nop 
-	    IL_009b:  ldloc.s 4
-	    IL_009d:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_00a2:  brtrue IL_0068
-
-	    IL_00a7:  leave IL_00c3
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_00ac:  ldloc.s 4
-	    IL_00ae:  isinst [mscorlib]System.IDisposable
-	    IL_00b3:  dup 
-	    IL_00b4:  stloc.s 6
-	    IL_00b6:  brfalse IL_00c2
-
-	    IL_00bb:  ldloc.s 6
-	    IL_00bd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_00c2:  endfinally 
-	  } // end handler 0
-	  IL_00c3:  ldarg.0 
-	  IL_00c4:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_00c9:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	  IL_00ce:  brfalse IL_0103
-
-	  IL_00d3:  nop 
-	  IL_00d4:  ldarg.0 
-	  IL_00d5:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_00da:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	  IL_00df:  ldloc.0 
-	  IL_00e0:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::ResolveAssembly(string)
-	  IL_00e5:  stloc.s 7
-	  IL_00e7:  ldloc.s 7
-	  IL_00e9:  brfalse IL_0102
-
-	  IL_00ee:  nop 
-	  IL_00ef:  ldarg.0 
-	  IL_00f0:  call instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	  IL_00f5:  ldloc.s 7
-	  IL_00f7:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_00fc:  pop 
-	  IL_00fd:  leave IL_0105
-
-	  IL_0102:  nop 
-	  IL_0103:  nop 
-	  IL_0104:  nop 
-	  IL_0105:  ldloc.1 
-	  IL_0106:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_010b:  brtrue IL_0013
-
-	  IL_0110:  leave IL_012b
-
-	} // end .try 1
-	finally  { // 1
-	  IL_0115:  ldloc.1 
-	  IL_0116:  isinst [mscorlib]System.IDisposable
-	  IL_011b:  dup 
-	  IL_011c:  stloc.s 8
-	  IL_011e:  brfalse IL_012a
-
-	  IL_0123:  ldloc.s 8
-	  IL_0125:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_012a:  endfinally 
-	} // end handler 1
-	IL_012b:  ret 
-    } // end of method AssemblyFileSet::ResolveReferences
-
-	.property instance class NAnt.DotNet.Types.LibDirectorySet Lib ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 03 6C 69 62 00 00 ) // ...lib..
-
-		.get instance default class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::get_Lib () 
-		.set instance default void NAnt.DotNet.Types.AssemblyFileSet::set_Lib (class NAnt.DotNet.Types.LibDirectorySet 'value') 
-	}
-  } // end of class NAnt.DotNet.Types.AssemblyFileSet
-}
-
-.namespace NAnt.DotNet.Types
-{
   .class public auto ansi serializable beforefieldinit ModuleCollection
   	extends [mscorlib]System.Object
   	implements [mscorlib]System.Collections.IList, [mscorlib]System.Collections.IEnumerable, [mscorlib]System.Collections.ICollection  {
@@ -3868,11 +1656,11 @@
     .field  private initonly  class NAnt.DotNet.Types.ModuleSet _moduleSet
     .field  private initonly  class [mscorlib]System.Collections.ArrayList _list
 
-    // method line 142
+    // method line 66
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.DotNet.Types.ModuleSet moduleSet)  cil managed 
     {
-        // Method begins at RVA 0x3518
+        // Method begins at RVA 0x28d7
 	// Code size 44 (0x2c)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -3894,11 +1682,11 @@
 	IL_002b:  ret 
     } // end of method ModuleCollection::.ctor
 
-    // method line 143
+    // method line 67
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.Module get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x3548
+        // Method begins at RVA 0x2904
 	// Code size 68 (0x44)
 	.maxstack 3
 	.locals init (
@@ -3932,11 +1720,11 @@
 	IL_0043:  ret 
     } // end of method ModuleCollection::get_Item
 
-    // method line 144
+    // method line 68
     .method public hidebysig specialname 
            instance default void set_Item (int32 index, class NAnt.DotNet.Types.Module 'value')  cil managed 
     {
-        // Method begins at RVA 0x3598
+        // Method begins at RVA 0x2954
 	// Code size 57 (0x39)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3964,11 +1752,11 @@
 	IL_0038:  ret 
     } // end of method ModuleCollection::set_Item
 
-    // method line 145
+    // method line 69
     .method family hidebysig specialname 
            instance default class [mscorlib]System.Collections.ArrayList get_List ()  cil managed 
     {
-        // Method begins at RVA 0x35d4
+        // Method begins at RVA 0x2990
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3983,11 +1771,11 @@
 	IL_000e:  ret 
     } // end of method ModuleCollection::get_List
 
-    // method line 146
+    // method line 70
     .method private final virtual hidebysig newslot 
            instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x35f0
+        // Method begins at RVA 0x29ac
 	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -4004,11 +1792,11 @@
 	IL_0013:  ret 
     } // end of method ModuleCollection::System.Collections.IEnumerable.GetEnumerator
 
-    // method line 147
+    // method line 71
     .method private final virtual hidebysig newslot specialname 
            instance default bool System.Collections.ICollection.get_IsSynchronized ()  cil managed 
     {
-        // Method begins at RVA 0x3610
+        // Method begins at RVA 0x29cc
 	.override class [mscorlib]System.Collections.ICollection::get_IsSynchronized
 	// Code size 10 (0xa)
 	.maxstack 1
@@ -4023,11 +1811,11 @@
 	IL_0009:  ret 
     } // end of method ModuleCollection::System.Collections.ICollection.get_IsSynchronized
 
-    // method line 148
+    // method line 72
     .method public final virtual hidebysig newslot specialname 
            instance default int32 get_Count ()  cil managed 
     {
-        // Method begins at RVA 0x3628
+        // Method begins at RVA 0x29e4
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -4043,11 +1831,11 @@
 	IL_0013:  ret 
     } // end of method ModuleCollection::get_Count
 
-    // method line 149
+    // method line 73
     .method public final virtual hidebysig newslot 
            instance default void CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x3648
+        // Method begins at RVA 0x2a04
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4059,11 +1847,11 @@
 	IL_000e:  ret 
     } // end of method ModuleCollection::CopyTo
 
-    // method line 150
+    // method line 74
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.ICollection.get_SyncRoot ()  cil managed 
     {
-        // Method begins at RVA 0x3658
+        // Method begins at RVA 0x2a14
 	.override class [mscorlib]System.Collections.ICollection::get_SyncRoot
 	// Code size 10 (0xa)
 	.maxstack 1
@@ -4078,11 +1866,11 @@
 	IL_0009:  ret 
     } // end of method ModuleCollection::System.Collections.ICollection.get_SyncRoot
 
-    // method line 151
+    // method line 75
     .method public final virtual hidebysig newslot specialname 
            instance default bool get_IsFixedSize ()  cil managed 
     {
-        // Method begins at RVA 0x3670
+        // Method begins at RVA 0x2a2c
 	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
@@ -4096,11 +1884,11 @@
 	IL_0009:  ret 
     } // end of method ModuleCollection::get_IsFixedSize
 
-    // method line 152
+    // method line 76
     .method public final virtual hidebysig newslot specialname 
            instance default bool get_IsReadOnly ()  cil managed 
     {
-        // Method begins at RVA 0x3688
+        // Method begins at RVA 0x2a44
 	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
@@ -4114,11 +1902,11 @@
 	IL_0009:  ret 
     } // end of method ModuleCollection::get_IsReadOnly
 
-    // method line 153
+    // method line 77
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IList.get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x36a0
+        // Method begins at RVA 0x2a5c
 	.override class [mscorlib]System.Collections.IList::get_Item
 	// Code size 16 (0x10)
 	.maxstack 2
@@ -4135,11 +1923,11 @@
 	IL_000f:  ret 
     } // end of method ModuleCollection::System.Collections.IList.get_Item
 
-    // method line 154
+    // method line 78
     .method private final virtual hidebysig newslot specialname 
            instance default void System.Collections.IList.set_Item (int32 index, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x36bc
+        // Method begins at RVA 0x2a78
 	.override class [mscorlib]System.Collections.IList::set_Item
 	// Code size 56 (0x38)
 	.maxstack 8
@@ -4167,11 +1955,11 @@
 	IL_0037:  ret 
     } // end of method ModuleCollection::System.Collections.IList.set_Item
 
-    // method line 155
+    // method line 79
     .method public final virtual hidebysig newslot 
            instance default void Clear ()  cil managed 
     {
-        // Method begins at RVA 0x36f5
+        // Method begins at RVA 0x2ab1
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4181,11 +1969,11 @@
 	IL_000c:  ret 
     } // end of method ModuleCollection::Clear
 
-    // method line 156
+    // method line 80
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IList.Insert (int32 index, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x3703
+        // Method begins at RVA 0x2abf
 	.override class [mscorlib]System.Collections.IList::Insert
 	// Code size 56 (0x38)
 	.maxstack 8
@@ -4213,11 +2001,11 @@
 	IL_0037:  ret 
     } // end of method ModuleCollection::System.Collections.IList.Insert
 
-    // method line 157
+    // method line 81
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IList.Remove (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x373c
+        // Method begins at RVA 0x2af8
 	.override class [mscorlib]System.Collections.IList::Remove
 	// Code size 55 (0x37)
 	.maxstack 8
@@ -4244,11 +2032,11 @@
 	IL_0036:  ret 
     } // end of method ModuleCollection::System.Collections.IList.Remove
 
-    // method line 158
+    // method line 82
     .method public final virtual hidebysig newslot 
            instance default void RemoveAt (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x3774
+        // Method begins at RVA 0x2b30
 	// Code size 56 (0x38)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4275,11 +2063,11 @@
 	IL_0037:  ret 
     } // end of method ModuleCollection::RemoveAt
 
-    // method line 159
+    // method line 83
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IList.Contains (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x37b0
+        // Method begins at RVA 0x2b6c
 	.override class [mscorlib]System.Collections.IList::Contains
 	// Code size 67 (0x43)
 	.maxstack 2
@@ -4313,11 +2101,11 @@
 	IL_0042:  ret 
     } // end of method ModuleCollection::System.Collections.IList.Contains
 
-    // method line 160
+    // method line 84
     .method private final virtual hidebysig newslot 
            instance default int32 System.Collections.IList.IndexOf (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x3800
+        // Method begins at RVA 0x2bbc
 	.override class [mscorlib]System.Collections.IList::IndexOf
 	// Code size 62 (0x3e)
 	.maxstack 2
@@ -4350,11 +2138,11 @@
 	IL_003d:  ret 
     } // end of method ModuleCollection::System.Collections.IList.IndexOf
 
-    // method line 161
+    // method line 85
     .method private final virtual hidebysig newslot 
            instance default int32 System.Collections.IList.Add (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x384c
+        // Method begins at RVA 0x2c08
 	.override class [mscorlib]System.Collections.IList::Add
 	// Code size 62 (0x3e)
 	.maxstack 2
@@ -4387,11 +2175,11 @@
 	IL_003d:  ret 
     } // end of method ModuleCollection::System.Collections.IList.Add
 
-    // method line 162
+    // method line 86
     .method public hidebysig 
            instance default void AddRange (class NAnt.DotNet.Types.ModuleCollection items)  cil managed 
     {
-        // Method begins at RVA 0x3898
+        // Method begins at RVA 0x2c54
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -4421,11 +2209,11 @@
 	IL_0028:  ret 
     } // end of method ModuleCollection::AddRange
 
-    // method line 163
+    // method line 87
     .method public hidebysig 
            instance default int32 Add (class NAnt.DotNet.Types.Module 'value')  cil managed 
     {
-        // Method begins at RVA 0x38d0
+        // Method begins at RVA 0x2c8c
 	// Code size 56 (0x38)
 	.maxstack 2
 	.locals init (
@@ -4454,11 +2242,11 @@
 	IL_0037:  ret 
     } // end of method ModuleCollection::Add
 
-    // method line 164
+    // method line 88
     .method public hidebysig 
            instance default class NAnt.DotNet.Types.ModuleEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x3914
+        // Method begins at RVA 0x2cd0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4473,11 +2261,11 @@
 	IL_000e:  ret 
     } // end of method ModuleCollection::GetEnumerator
 
-    // method line 165
+    // method line 89
     .method public hidebysig 
            instance default void Insert (int32 index, class NAnt.DotNet.Types.Module 'value')  cil managed 
     {
-        // Method begins at RVA 0x392f
+        // Method begins at RVA 0x2ceb
 	// Code size 50 (0x32)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4501,11 +2289,11 @@
 	IL_0031:  ret 
     } // end of method ModuleCollection::Insert
 
-    // method line 166
+    // method line 90
     .method public hidebysig 
            instance default void Remove (class NAnt.DotNet.Types.Module 'value')  cil managed 
     {
-        // Method begins at RVA 0x3962
+        // Method begins at RVA 0x2d1e
 	// Code size 40 (0x28)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4527,11 +2315,11 @@
 	IL_0027:  ret 
     } // end of method ModuleCollection::Remove
 
-    // method line 167
+    // method line 91
     .method public hidebysig 
            instance default bool Contains (class NAnt.DotNet.Types.Module 'value')  cil managed 
     {
-        // Method begins at RVA 0x398c
+        // Method begins at RVA 0x2d48
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -4548,11 +2336,11 @@
 	IL_0014:  ret 
     } // end of method ModuleCollection::Contains
 
-    // method line 168
+    // method line 92
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.DotNet.Types.Module 'value')  cil managed 
     {
-        // Method begins at RVA 0x39b0
+        // Method begins at RVA 0x2d6c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -4613,11 +2401,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 169
+    // method line 93
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.DotNet.Types.ModuleCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x39d4
+        // Method begins at RVA 0x2d90
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -4634,11 +2422,11 @@
 	IL_0015:  ret 
     } // end of method ModuleEnumerator::.ctor
 
-    // method line 170
+    // method line 94
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.Module get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x39f8
+        // Method begins at RVA 0x2db4
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -4655,11 +2443,11 @@
 	IL_0018:  ret 
     } // end of method ModuleEnumerator::get_Current
 
-    // method line 171
+    // method line 95
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x3a20
+        // Method begins at RVA 0x2ddc
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 15 (0xf)
 	.maxstack 1
@@ -4675,11 +2463,11 @@
 	IL_000e:  ret 
     } // end of method ModuleEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 172
+    // method line 96
     .method public final virtual hidebysig newslot 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x3a3c
+        // Method begins at RVA 0x2df8
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -4695,11 +2483,11 @@
 	IL_0013:  ret 
     } // end of method ModuleEnumerator::MoveNext
 
-    // method line 173
+    // method line 97
     .method public final virtual hidebysig newslot 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x3a5c
+        // Method begins at RVA 0x2e18
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4722,759 +2510,309 @@
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi abstract beforefieldinit DataTypeCollectionBase
-  	extends [NAnt.Core]NAnt.Core.DataTypeBase
-  	implements [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable  {
-    .field  private  class [mscorlib]System.Collections.ArrayList _list
+  .class public auto ansi beforefieldinit CompilerWarning
+  	extends [NAnt.Core]NAnt.Core.Element
+  {
+    .field  private  string _number
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 174
-    .method family hidebysig specialname rtspecialname 
+    // method line 98
+    .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3a6a
-	// Code size 19 (0x13)
+        // Method begins at RVA 0x2e26
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.DataTypeBase::'.ctor'()
-	IL_0006:  nop 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.DotNet.Types.CompilerWarning::_ifDefined
 	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_000d:  stfld class [mscorlib]System.Collections.ArrayList NAnt.DotNet.Types.DataTypeCollectionBase::_list
-	IL_0012:  ret 
-    } // end of method DataTypeCollectionBase::.ctor
-
-    // method line 175
-    .method private final virtual hidebysig newslot specialname 
-           instance default bool System.Collections.ICollection.get_IsSynchronized ()  cil managed 
-    {
-        // Method begins at RVA 0x3a80
-	.override class [mscorlib]System.Collections.ICollection::get_IsSynchronized
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method DataTypeCollectionBase::System.Collections.ICollection.get_IsSynchronized
-
-    // method line 176
-    .method public final virtual hidebysig newslot specialname 
-           instance default int32 get_Count ()  cil managed 
-    {
-        // Method begins at RVA 0x3a98
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
-	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeCollectionBase::get_Count
+	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_000d:  ret 
+    } // end of method CompilerWarning::.ctor
 
-    // method line 177
-    .method public final virtual hidebysig newslot 
-           instance default void CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
+    // method line 99
+    .method public hidebysig specialname 
+           instance default string get_Number ()  cil managed 
     {
-        // Method begins at RVA 0x3ab8
+        // Method begins at RVA 0x2e38
 	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ArrayList::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method DataTypeCollectionBase::CopyTo
-
-    // method line 178
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.ICollection.get_SyncRoot ()  cil managed 
-    {
-        // Method begins at RVA 0x3ac8
-	.override class [mscorlib]System.Collections.ICollection::get_SyncRoot
-	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_0002:  ldfld string NAnt.DotNet.Types.CompilerWarning::_number
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method DataTypeCollectionBase::System.Collections.ICollection.get_SyncRoot
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CompilerWarning::get_Number
 
-    // method line 179
-    .method private final virtual hidebysig newslot 
-           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
+    // method line 100
+    .method public hidebysig specialname 
+           instance default void set_Number (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3ae0
-	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerator	V_0)
+        // Method begins at RVA 0x2e53
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
-	IL_0007:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method DataTypeCollectionBase::System.Collections.IEnumerable.GetEnumerator
-
-    // method line 180
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsFixedSize ()  cil managed 
-    {
-        // Method begins at RVA 0x3b00
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method DataTypeCollectionBase::get_IsFixedSize
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.DotNet.Types.CompilerWarning::_number
+	IL_0008:  ret 
+    } // end of method CompilerWarning::set_Number
 
-    // method line 181
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsReadOnly ()  cil managed 
+    // method line 101
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x3b18
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x2e60
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Types.CompilerWarning::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method DataTypeCollectionBase::get_IsReadOnly
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CompilerWarning::get_IfDefined
 
-    // method line 182
-    .method public final virtual hidebysig newslot 
-           instance default void RemoveAt (int32 index)  cil managed 
+    // method line 102
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x3b2e
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x2e7b
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::RangeCheck(int32)
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
-	IL_000e:  ldarg.1 
-	IL_000f:  callvirt instance void class [mscorlib]System.Collections.ArrayList::RemoveAt(int32)
-	IL_0014:  ret 
-    } // end of method DataTypeCollectionBase::RemoveAt
-
-    // method line 183
-    .method public final virtual hidebysig newslot 
-           instance default void Clear ()  cil managed 
-    {
-        // Method begins at RVA 0x3b44
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Clear()
-	IL_000c:  ret 
-    } // end of method DataTypeCollectionBase::Clear
+	IL_0003:  stfld bool NAnt.DotNet.Types.CompilerWarning::_ifDefined
+	IL_0008:  ret 
+    } // end of method CompilerWarning::set_IfDefined
 
-    // method line 184
-    .method family hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_List ()  cil managed 
+    // method line 103
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x3b54
+        // Method begins at RVA 0x2e88
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.DotNet.Types.DataTypeCollectionBase::_list
+	IL_0002:  ldfld bool NAnt.DotNet.Types.CompilerWarning::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DataTypeCollectionBase::get_List
-
-    // method line 185
-    .method family virtual hidebysig newslot abstract specialname 
-           instance default class [mscorlib]System.Type get_ItemType ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method DataTypeCollectionBase::get_ItemType
-
-    // method line 186
-    .method family hidebysig 
-           instance default void ValidateType (object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3b70
-	// Code size 70 (0x46)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "value"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.0 
-	IL_0014:  callvirt instance class [mscorlib]System.Type class NAnt.DotNet.Types.DataTypeCollectionBase::get_ItemType()
-	IL_0019:  ldarg.1 
-	IL_001a:  callvirt instance bool class [mscorlib]System.Type::IsInstanceOfType(object)
-	IL_001f:  brtrue IL_0045
-
-	IL_0024:  nop 
-	IL_0025:  ldstr "Specified value is not an instance of "
-	IL_002a:  ldarg.0 
-	IL_002b:  callvirt instance class [mscorlib]System.Type class NAnt.DotNet.Types.DataTypeCollectionBase::get_ItemType()
-	IL_0030:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0035:  ldstr "."
-	IL_003a:  call string string::Concat(string, string, string)
-	IL_003f:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_0044:  throw 
-	IL_0045:  ret 
-    } // end of method DataTypeCollectionBase::ValidateType
+    } // end of method CompilerWarning::get_UnlessDefined
 
-    // method line 187
-    .method family hidebysig 
-           instance default void RangeCheck (int32 index)  cil managed 
+    // method line 104
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x3bc2
-	// Code size 44 (0x2c)
+        // Method begins at RVA 0x2ea3
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  blt IL_0014
-
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.0 
-	IL_000a:  call instance int32 class NAnt.DotNet.Types.DataTypeCollectionBase::get_Count()
-	IL_000f:  blt IL_002b
-
-	IL_0014:  nop 
-	IL_0015:  ldstr "index"
-	IL_001a:  ldarg.1 
-	IL_001b:  box [mscorlib]System.Int32
-	IL_0020:  ldstr "Index must be greater than or equal to zero, and less than the number of items in the collection."
-	IL_0025:  newobj instance void class [mscorlib]System.ArgumentOutOfRangeException::'.ctor'(string, object, string)
-	IL_002a:  throw 
-	IL_002b:  ret 
-    } // end of method DataTypeCollectionBase::RangeCheck
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Types.CompilerWarning::_unlessDefined
+	IL_0008:  ret 
+    } // end of method CompilerWarning::set_UnlessDefined
 
-	.property instance bool System.Collections.ICollection.IsSynchronized ()
-	{
-		.get instance default bool NAnt.DotNet.Types.DataTypeCollectionBase::System.Collections.ICollection.get_IsSynchronized () 
-	}
-	.property instance object System.Collections.ICollection.SyncRoot ()
-	{
-		.get instance default object NAnt.DotNet.Types.DataTypeCollectionBase::System.Collections.ICollection.get_SyncRoot () 
-	}
-	.property instance int32 Count ()
-	{
-		.get instance default int32 NAnt.DotNet.Types.DataTypeCollectionBase::get_Count () 
-	}
-	.property instance bool IsFixedSize ()
-	{
-		.get instance default bool NAnt.DotNet.Types.DataTypeCollectionBase::get_IsFixedSize () 
-	}
-	.property instance bool IsReadOnly ()
+	.property instance string Number ()
 	{
-		.get instance default bool NAnt.DotNet.Types.DataTypeCollectionBase::get_IsReadOnly () 
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 6E 75 6D 62 65 72 01 00 54 02 08 52 65   // ...number..T..Re
+		71 75 69 72 65 64 01                            ) // quired.
+
+		.get instance default string NAnt.DotNet.Types.CompilerWarning::get_Number () 
+		.set instance default void NAnt.DotNet.Types.CompilerWarning::set_Number (string 'value') 
 	}
-	.property instance class [mscorlib]System.Collections.ArrayList List ()
+	.property instance bool IfDefined ()
 	{
-		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.DotNet.Types.DataTypeCollectionBase::get_List () 
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Types.CompilerWarning::get_IfDefined () 
+		.set instance default void NAnt.DotNet.Types.CompilerWarning::set_IfDefined (bool 'value') 
 	}
-	.property instance class [mscorlib]System.Type ItemType ()
+	.property instance bool UnlessDefined ()
 	{
-		.get instance default class [mscorlib]System.Type NAnt.DotNet.Types.DataTypeCollectionBase::get_ItemType () 
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Types.CompilerWarning::get_UnlessDefined () 
+		.set instance default void NAnt.DotNet.Types.CompilerWarning::set_UnlessDefined (bool 'value') 
 	}
-  } // end of class NAnt.DotNet.Types.DataTypeCollectionBase
+  } // end of class NAnt.DotNet.Types.CompilerWarning
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi serializable beforefieldinit NamespaceImportCollection
-  	extends NAnt.DotNet.Types.DataTypeCollectionBase
-  	implements [mscorlib]System.Collections.IList, [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
-		01 00 10 6E 61 6D 65 73 70 61 63 65 69 6D 70 6F   // ...namespaceimpo
-		72 74 73 00 00                                  ) // rts..
-
+  .class public auto ansi serializable beforefieldinit PackageCollection
+  	extends [mscorlib]System.Collections.CollectionBase
+  {
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 188
+    // method line 105
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3bef
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x2ead
+	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::'.ctor'()
-	IL_0006:  ret 
-    } // end of method NamespaceImportCollection::.ctor
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method PackageCollection::.ctor
 
-    // method line 189
-    .method public hidebysig 
-           instance default class NAnt.DotNet.Types.NamespaceImportEnumerator GetEnumerator ()  cil managed 
+    // method line 106
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.DotNet.Types.PackageCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x3bf8
+        // Method begins at RVA 0x2eb6
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.NamespaceImportEnumerator	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.DotNet.Types.NamespaceImportEnumerator::'.ctor'(class NAnt.DotNet.Types.NamespaceImportCollection)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.DotNet.Types.PackageCollection::AddRange(class NAnt.DotNet.Types.PackageCollection)
 	IL_000e:  ret 
-    } // end of method NamespaceImportCollection::GetEnumerator
-
-    // method line 190
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.NamespaceImport get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x3c14
-	// Code size 33 (0x21)
-	.maxstack 2
-	.locals init (
-		class NAnt.DotNet.Types.NamespaceImport	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::RangeCheck(int32)
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
-	IL_000e:  ldarg.1 
-	IL_000f:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	IL_0014:  castclass NAnt.DotNet.Types.NamespaceImport
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_001f
-
-	IL_001f:  ldloc.0 
-	IL_0020:  ret 
-    } // end of method NamespaceImportCollection::get_Item
+    } // end of method PackageCollection::.ctor
 
-    // method line 191
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
+    // method line 107
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.DotNet.Types.Package[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x3c41
-	// Code size 22 (0x16)
+        // Method begins at RVA 0x2ec6
+	// Code size 15 (0xf)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::RangeCheck(int32)
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
-	IL_000e:  ldarg.1 
-	IL_000f:  ldarg.2 
-	IL_0010:  callvirt instance void class [mscorlib]System.Collections.ArrayList::set_Item(int32, object)
-	IL_0015:  ret 
-    } // end of method NamespaceImportCollection::set_Item
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.DotNet.Types.PackageCollection::AddRange(class NAnt.DotNet.Types.Package[])
+	IL_000e:  ret 
+    } // end of method PackageCollection::.ctor
 
-    // method line 192
+    // method line 108
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.NamespaceImport get_Item (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3c58
-	// Code size 111 (0x6f)
-	.maxstack 2
-	.locals init (
-		class NAnt.DotNet.Types.NamespaceImport	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.DotNet.Types.NamespaceImport	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brfalse IL_0066
-
-	IL_0007:  nop 
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
-	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0014:  stloc.1 
-	.try { // 0
-	  IL_0015:  br IL_0041
-
-	  IL_001a:  ldloc.1 
-	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0020:  castclass NAnt.DotNet.Types.NamespaceImport
-	  IL_0025:  stloc.0 
-	  IL_0026:  nop 
-	  IL_0027:  ldarg.1 
-	  IL_0028:  ldloc.0 
-	  IL_0029:  callvirt instance string class NAnt.DotNet.Types.NamespaceImport::get_Namespace()
-	  IL_002e:  callvirt instance bool string::Equals(string)
-	  IL_0033:  brfalse IL_0040
-
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.0 
-	  IL_003a:  stloc.2 
-	  IL_003b:  leave IL_006d
-
-	  IL_0040:  nop 
-	  IL_0041:  ldloc.1 
-	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_001a
-
-	  IL_004c:  leave IL_0065
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0051:  ldloc.1 
-	  IL_0052:  isinst [mscorlib]System.IDisposable
-	  IL_0057:  dup 
-	  IL_0058:  stloc.3 
-	  IL_0059:  brfalse IL_0064
-
-	  IL_005e:  ldloc.3 
-	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0064:  endfinally 
-	} // end handler 0
-	IL_0065:  nop 
-	IL_0066:  ldnull 
-	IL_0067:  stloc.2 
-	IL_0068:  br IL_006d
-
-	IL_006d:  ldloc.2 
-	IL_006e:  ret 
-    } // end of method NamespaceImportCollection::get_Item
-
-    // method line 193
-    .method public virtual hidebysig 
-           instance default string ToString ()  cil managed 
-    {
-        // Method begins at RVA 0x3ce4
-	// Code size 207 (0xcf)
-	.maxstack 3
-	.locals init (
-		class [mscorlib]System.Text.StringBuilder	V_0,
-		class NAnt.DotNet.Types.NamespaceImport	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		string[]	V_3,
-		string	V_4,
-		string[]	V_5,
-		int32	V_6,
-		class [mscorlib]System.IDisposable	V_7,
-		string	V_8)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
-	IL_000e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0013:  stloc.2 
-	.try { // 0
-	  IL_0014:  br IL_0099
-
-	  IL_0019:  ldloc.2 
-	  IL_001a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_001f:  castclass NAnt.DotNet.Types.NamespaceImport
-	  IL_0024:  stloc.1 
-	  IL_0025:  nop 
-	  IL_0026:  ldloc.1 
-	  IL_0027:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImport::get_IfDefined()
-	  IL_002c:  brfalse IL_0098
-
-	  IL_0031:  ldloc.1 
-	  IL_0032:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImport::get_UnlessDefined()
-	  IL_0037:  brtrue IL_0098
-
-	  IL_003c:  nop 
-	  IL_003d:  ldloc.1 
-	  IL_003e:  callvirt instance string class NAnt.DotNet.Types.NamespaceImport::get_Namespace()
-	  IL_0043:  ldc.i4.s 0x2c
-	  IL_0045:  ldc.i4.0 
-	  IL_0046:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	  IL_004b:  stloc.3 
-	  IL_004c:  nop 
-	  IL_004d:  ldloc.3 
-	  IL_004e:  stloc.s 5
-	  IL_0050:  ldc.i4.0 
-	  IL_0051:  stloc.s 6
-	  IL_0053:  br IL_008c
-
-	  IL_0058:  ldloc.s 5
-	  IL_005a:  ldloc.s 6
-	  IL_005c:  ldelem.ref 
-	  IL_005d:  stloc.s 4
-	  IL_005f:  nop 
-	  IL_0060:  ldloc.0 
-	  IL_0061:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
-	  IL_0066:  ldc.i4.0 
-	  IL_0067:  ble IL_0077
-
-	  IL_006c:  nop 
-	  IL_006d:  ldloc.0 
-	  IL_006e:  ldc.i4.s 0x2c
-	  IL_0070:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	  IL_0075:  pop 
-	  IL_0076:  nop 
-	  IL_0077:  ldloc.0 
-	  IL_0078:  ldstr "\"{0}\""
-	  IL_007d:  ldloc.s 4
-	  IL_007f:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	  IL_0084:  pop 
-	  IL_0085:  nop 
-	  IL_0086:  ldloc.s 6
-	  IL_0088:  ldc.i4.1 
-	  IL_0089:  add 
-	  IL_008a:  stloc.s 6
-	  IL_008c:  ldloc.s 6
-	  IL_008e:  ldloc.s 5
-	  IL_0090:  ldlen 
-	  IL_0091:  conv.i4 
-	  IL_0092:  blt IL_0058
-
-	  IL_0097:  nop 
-	  IL_0098:  nop 
-	  IL_0099:  ldloc.2 
-	  IL_009a:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_009f:  brtrue IL_0019
-
-	  IL_00a4:  leave IL_00bf
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00a9:  ldloc.2 
-	  IL_00aa:  isinst [mscorlib]System.IDisposable
-	  IL_00af:  dup 
-	  IL_00b0:  stloc.s 7
-	  IL_00b2:  brfalse IL_00be
-
-	  IL_00b7:  ldloc.s 7
-	  IL_00b9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00be:  endfinally 
-	} // end handler 0
-	IL_00bf:  ldloc.0 
-	IL_00c0:  callvirt instance string object::ToString()
-	IL_00c5:  stloc.s 8
-	IL_00c7:  br IL_00cc
-
-	IL_00cc:  ldloc.s 8
-	IL_00ce:  ret 
-    } // end of method NamespaceImportCollection::ToString
-
-    // method line 194
-    .method family virtual hidebysig specialname 
-           instance default class [mscorlib]System.Type get_ItemType ()  cil managed 
-    {
-        // Method begins at RVA 0x3dd0
-	// Code size 19 (0x13)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Type	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldtoken NAnt.DotNet.Types.NamespaceImport
-	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000b:  stloc.0 
-	IL_000c:  br IL_0011
-
-	IL_0011:  ldloc.0 
-	IL_0012:  ret 
-    } // end of method NamespaceImportCollection::get_ItemType
-
-    // method line 195
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IList.get_Item (int32 index)  cil managed 
+           instance default class NAnt.DotNet.Types.Package get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x3df0
-	.override class [mscorlib]System.Collections.IList::get_Item
-	// Code size 16 (0x10)
+        // Method begins at RVA 0x2ed8
+	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		object	V_0)
+		class NAnt.DotNet.Types.Package	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.DotNet.Types.NamespaceImport class NAnt.DotNet.Types.NamespaceImportCollection::get_Item(int32)
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method NamespaceImportCollection::System.Collections.IList.get_Item
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.DotNet.Types.Package
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-    // method line 196
-    .method private final virtual hidebysig newslot specialname 
-           instance default void System.Collections.IList.set_Item (int32 index, object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3e0c
-	.override class [mscorlib]System.Collections.IList::set_Item
-	// Code size 22 (0x16)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::ValidateType(object)
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  ldarg.2 
-	IL_000b:  castclass NAnt.DotNet.Types.NamespaceImport
-	IL_0010:  call instance void class NAnt.DotNet.Types.NamespaceImportCollection::set_Item(int32, class NAnt.DotNet.Types.NamespaceImport)
-	IL_0015:  ret 
-    } // end of method NamespaceImportCollection::System.Collections.IList.set_Item
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method PackageCollection::get_Item
 
-    // method line 197
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IList.Insert (int32 index, object 'value')  cil managed 
+    // method line 109
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.DotNet.Types.Package 'value')  cil managed 
     {
-        // Method begins at RVA 0x3e23
-	.override class [mscorlib]System.Collections.IList::Insert
-	// Code size 22 (0x16)
+        // Method begins at RVA 0x2efe
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::ValidateType(object)
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  ldarg.2 
-	IL_000b:  castclass NAnt.DotNet.Types.NamespaceImport
-	IL_0010:  call instance void class NAnt.DotNet.Types.NamespaceImportCollection::Insert(int32, class NAnt.DotNet.Types.NamespaceImport)
-	IL_0015:  ret 
-    } // end of method NamespaceImportCollection::System.Collections.IList.Insert
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method PackageCollection::set_Item
 
-    // method line 198
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IList.Remove (object 'value')  cil managed 
+    // method line 110
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.DotNet.Types.Package item)  cil managed 
     {
-        // Method begins at RVA 0x3e3a
-	.override class [mscorlib]System.Collections.IList::Remove
+        // Method begins at RVA 0x2f10
 	// Code size 21 (0x15)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::ValidateType(object)
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  castclass NAnt.DotNet.Types.NamespaceImport
-	IL_000f:  call instance void class NAnt.DotNet.Types.NamespaceImportCollection::Remove(class NAnt.DotNet.Types.NamespaceImport)
-	IL_0014:  ret 
-    } // end of method NamespaceImportCollection::System.Collections.IList.Remove
-
-    // method line 199
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IList.Contains (object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3e50
-	.override class [mscorlib]System.Collections.IList::Contains
-	// Code size 33 (0x21)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::ValidateType(object)
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
-	IL_000e:  ldarg.1 
-	IL_000f:  castclass NAnt.DotNet.Types.NamespaceImport
-	IL_0014:  callvirt instance bool class [mscorlib]System.Collections.ArrayList::Contains(object)
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_001f
-
-	IL_001f:  ldloc.0 
-	IL_0020:  ret 
-    } // end of method NamespaceImportCollection::System.Collections.IList.Contains
-
-    // method line 200
-    .method private final virtual hidebysig newslot 
-           instance default int32 System.Collections.IList.IndexOf (object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3e80
-	.override class [mscorlib]System.Collections.IList::IndexOf
-	// Code size 28 (0x1c)
 	.maxstack 2
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::ValidateType(object)
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  castclass NAnt.DotNet.Types.NamespaceImport
-	IL_000f:  call instance int32 class NAnt.DotNet.Types.NamespaceImportCollection::IndexOf(class NAnt.DotNet.Types.NamespaceImport)
-	IL_0014:  stloc.0 
-	IL_0015:  br IL_001a
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_001a:  ldloc.0 
-	IL_001b:  ret 
-    } // end of method NamespaceImportCollection::System.Collections.IList.IndexOf
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method PackageCollection::Add
 
-    // method line 201
-    .method private final virtual hidebysig newslot 
-           instance default int32 System.Collections.IList.Add (object 'value')  cil managed 
+    // method line 111
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.DotNet.Types.Package[] items)  cil managed 
     {
-        // Method begins at RVA 0x3ea8
-	.override class [mscorlib]System.Collections.IList::Add
-	// Code size 28 (0x1c)
-	.maxstack 2
+        // Method begins at RVA 0x2f34
+	// Code size 34 (0x22)
+	.maxstack 3
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Types.DataTypeCollectionBase::ValidateType(object)
-	IL_0008:  ldarg.0 
-	IL_0009:  ldarg.1 
-	IL_000a:  castclass NAnt.DotNet.Types.NamespaceImport
-	IL_000f:  call instance int32 class NAnt.DotNet.Types.NamespaceImportCollection::Add(class NAnt.DotNet.Types.NamespaceImport)
-	IL_0014:  stloc.0 
-	IL_0015:  br IL_001a
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
 
-	IL_001a:  ldloc.0 
-	IL_001b:  ret 
-    } // end of method NamespaceImportCollection::System.Collections.IList.Add
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.DotNet.Types.PackageCollection::Add(class NAnt.DotNet.Types.Package)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
 
-    // method line 202
+	IL_0021:  ret 
+    } // end of method PackageCollection::AddRange
+
+    // method line 112
     .method public hidebysig 
-           instance default void AddRange (class NAnt.DotNet.Types.NamespaceImportCollection items)  cil managed 
+           instance default void AddRange (class NAnt.DotNet.Types.PackageCollection items)  cil managed 
     {
-        // Method begins at RVA 0x3ed0
+        // Method begins at RVA 0x2f64
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -5488,8 +2826,8 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldarg.1 
 	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.DotNet.Types.NamespaceImport class NAnt.DotNet.Types.NamespaceImportCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.DotNet.Types.NamespaceImportCollection::Add(class NAnt.DotNet.Types.NamespaceImport)
+	IL_000c:  callvirt instance class NAnt.DotNet.Types.Package class NAnt.DotNet.Types.PackageCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.DotNet.Types.PackageCollection::Add(class NAnt.DotNet.Types.Package)
 	IL_0016:  pop 
 	IL_0017:  nop 
 	IL_0018:  ldloc.0 
@@ -5498,141 +2836,140 @@
 	IL_001b:  stloc.0 
 	IL_001c:  ldloc.0 
 	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class NAnt.DotNet.Types.DataTypeCollectionBase::get_Count()
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
 	IL_0023:  blt IL_0008
 
 	IL_0028:  ret 
-    } // end of method NamespaceImportCollection::AddRange
+    } // end of method PackageCollection::AddRange
 
-    // method line 203
+    // method line 113
     .method public hidebysig 
-           instance default int32 Add (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
+           instance default bool Contains (class NAnt.DotNet.Types.Package item)  cil managed 
     {
-        .custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 06 69 6D 70 6F 72 74 00 00 ) // ...import..
-
-        // Method begins at RVA 0x3f08
+        // Method begins at RVA 0x2f9c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		int32	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
 	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
 	IL_000d:  stloc.0 
 	IL_000e:  br IL_0013
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method NamespaceImportCollection::Add
+    } // end of method PackageCollection::Contains
 
-    // method line 204
+    // method line 114
     .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
+           instance default void CopyTo (class NAnt.DotNet.Types.Package[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x3f29
+        // Method begins at RVA 0x2fbd
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
 	IL_0007:  ldarg.1 
 	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Insert(int32, object)
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
 	IL_000e:  ret 
-    } // end of method NamespaceImportCollection::Insert
-
-    // method line 205
-    .method public hidebysig 
-           instance default void Remove (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3f39
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Remove(object)
-	IL_000d:  ret 
-    } // end of method NamespaceImportCollection::Remove
+    } // end of method PackageCollection::CopyTo
 
-    // method line 206
+    // method line 115
     .method public hidebysig 
-           instance default bool Contains (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
+           instance default int32 IndexOf (class NAnt.DotNet.Types.Package item)  cil managed 
     {
-        // Method begins at RVA 0x3f48
+        // Method begins at RVA 0x2fd0
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
 	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.ArrayList::Contains(object)
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
 	IL_000d:  stloc.0 
 	IL_000e:  br IL_0013
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method NamespaceImportCollection::Contains
+    } // end of method PackageCollection::IndexOf
 
-    // method line 207
+    // method line 116
     .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.DotNet.Types.NamespaceImport 'value')  cil managed 
+           instance default void Insert (int32 index, class NAnt.DotNet.Types.Package item)  cil managed 
     {
-        // Method begins at RVA 0x3f6c
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
+        // Method begins at RVA 0x2ff1
+	// Code size 15 (0xf)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.ArrayList class NAnt.DotNet.Types.DataTypeCollectionBase::get_List()
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
 	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method PackageCollection::Insert
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method NamespaceImportCollection::IndexOf
+    // method line 117
+    .method public hidebysig 
+           instance default class NAnt.DotNet.Types.PackageEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x3004
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.DotNet.Types.PackageEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.DotNet.Types.PackageEnumerator::'.ctor'(class NAnt.DotNet.Types.PackageCollection)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	.property instance object System.Collections.IList.Item (int32)
-	{
-		.get instance default object NAnt.DotNet.Types.NamespaceImportCollection::System.Collections.IList.get_Item (int32 index) 
-		.set instance default void NAnt.DotNet.Types.NamespaceImportCollection::System.Collections.IList.set_Item (int32 index, object 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.NamespaceImport Item (int32)
-	{
-		.get instance default class NAnt.DotNet.Types.NamespaceImport NAnt.DotNet.Types.NamespaceImportCollection::get_Item (int32 index) 
-		.set instance default void NAnt.DotNet.Types.NamespaceImportCollection::set_Item (int32 index, class NAnt.DotNet.Types.NamespaceImport 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.NamespaceImport Item (string)
-	{
-		.get instance default class NAnt.DotNet.Types.NamespaceImport NAnt.DotNet.Types.NamespaceImportCollection::get_Item (string 'value') 
-	}
-	.property instance class [mscorlib]System.Type ItemType ()
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method PackageCollection::GetEnumerator
+
+    // method line 118
+    .method public hidebysig 
+           instance default void Remove (class NAnt.DotNet.Types.Package item)  cil managed 
+    {
+        // Method begins at RVA 0x301f
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
+	IL_000d:  ret 
+    } // end of method PackageCollection::Remove
+
+	.property instance class NAnt.DotNet.Types.Package Item (int32)
 	{
-		.get instance default class [mscorlib]System.Type NAnt.DotNet.Types.NamespaceImportCollection::get_ItemType () 
+		.get instance default class NAnt.DotNet.Types.Package NAnt.DotNet.Types.PackageCollection::get_Item (int32 index) 
+		.set instance default void NAnt.DotNet.Types.PackageCollection::set_Item (int32 index, class NAnt.DotNet.Types.Package 'value') 
 	}
-  } // end of class NAnt.DotNet.Types.NamespaceImportCollection
+  } // end of class NAnt.DotNet.Types.PackageCollection
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi beforefieldinit NamespaceImportEnumerator
+  .class public auto ansi beforefieldinit PackageEnumerator
   	extends [mscorlib]System.Object
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 208
+    // method line 119
     .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Types.NamespaceImportCollection arguments)  cil managed 
+           instance default void '.ctor' (class NAnt.DotNet.Types.PackageCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x3f90
+        // Method begins at RVA 0x3030
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -5645,36 +2982,36 @@
 	IL_0009:  ldarg.0 
 	IL_000a:  ldloc.0 
 	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.NamespaceImportEnumerator::_baseEnumerator
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
 	IL_0015:  ret 
-    } // end of method NamespaceImportEnumerator::.ctor
+    } // end of method PackageEnumerator::.ctor
 
-    // method line 209
+    // method line 120
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.NamespaceImport get_Current ()  cil managed 
+           instance default class NAnt.DotNet.Types.Package get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x3fb4
+        // Method begins at RVA 0x3054
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.NamespaceImport	V_0)
+		class NAnt.DotNet.Types.Package	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.NamespaceImportEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.DotNet.Types.NamespaceImport
+	IL_000c:  castclass NAnt.DotNet.Types.Package
 	IL_0011:  stloc.0 
 	IL_0012:  br IL_0017
 
 	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method NamespaceImportEnumerator::get_Current
+    } // end of method PackageEnumerator::get_Current
 
-    // method line 210
+    // method line 121
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x3fdc
+        // Method begins at RVA 0x307c
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -5682,40 +3019,40 @@
 		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.NamespaceImportEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method NamespaceImportEnumerator::System.Collections.IEnumerator.get_Current
+    } // end of method PackageEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 211
+    // method line 122
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x3ffc
+        // Method begins at RVA 0x309c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.NamespaceImportEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method NamespaceImportEnumerator::MoveNext
+    } // end of method PackageEnumerator::MoveNext
 
-    // method line 212
+    // method line 123
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x401c
+        // Method begins at RVA 0x30bc
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -5723,53 +3060,291 @@
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.NamespaceImportEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method NamespaceImportEnumerator::System.Collections.IEnumerator.MoveNext
+    } // end of method PackageEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 213
+    // method line 124
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x403c
+        // Method begins at RVA 0x30dc
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.NamespaceImportEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method NamespaceImportEnumerator::Reset
+    } // end of method PackageEnumerator::Reset
 
-    // method line 214
+    // method line 125
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x404a
+        // Method begins at RVA 0x30ea
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.NamespaceImportEnumerator::_baseEnumerator
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.PackageEnumerator::_baseEnumerator
 	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
 	IL_000c:  ret 
-    } // end of method NamespaceImportEnumerator::System.Collections.IEnumerator.Reset
+    } // end of method PackageEnumerator::System.Collections.IEnumerator.Reset
 
 	.property instance object System.Collections.IEnumerator.Current ()
 	{
-		.get instance default object NAnt.DotNet.Types.NamespaceImportEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default object NAnt.DotNet.Types.PackageEnumerator::System.Collections.IEnumerator.get_Current () 
 	}
-	.property instance class NAnt.DotNet.Types.NamespaceImport Current ()
+	.property instance class NAnt.DotNet.Types.Package Current ()
 	{
-		.get instance default class NAnt.DotNet.Types.NamespaceImport NAnt.DotNet.Types.NamespaceImportEnumerator::get_Current () 
+		.get instance default class NAnt.DotNet.Types.Package NAnt.DotNet.Types.PackageEnumerator::get_Current () 
 	}
-  } // end of class NAnt.DotNet.Types.NamespaceImportEnumerator
+  } // end of class NAnt.DotNet.Types.PackageEnumerator
+}
+
+.namespace NAnt.DotNet.Types
+{
+  .class public auto ansi serializable beforefieldinit NamespaceImport
+  	extends [NAnt.Core]NAnt.Core.Element
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 06 69 6D 70 6F 72 74 00 00 ) // ...import..
+
+    .field  private  string _namespace
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
+
+    // method line 126
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x30f8
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.DotNet.Types.NamespaceImport::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method NamespaceImport::.ctor
+
+    // method line 127
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string nameSpace)  cil managed 
+    {
+        // Method begins at RVA 0x3108
+	// Code size 40 (0x28)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.DotNet.Types.NamespaceImport::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ldarg.1 
+	IL_000f:  brtrue IL_0020
+
+	IL_0014:  nop 
+	IL_0015:  ldstr "nameSpace"
+	IL_001a:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_001f:  throw 
+	IL_0020:  ldarg.0 
+	IL_0021:  ldarg.1 
+	IL_0022:  stfld string NAnt.DotNet.Types.NamespaceImport::_namespace
+	IL_0027:  ret 
+    } // end of method NamespaceImport::.ctor
+
+    // method line 128
+    .method public hidebysig specialname 
+           instance default string get_TempName ()  cil managed 
+    {
+        // Method begins at RVA 0x3134
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.DotNet.Types.NamespaceImport::get_Namespace()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NamespaceImport::get_TempName
+
+    // method line 129
+    .method public hidebysig specialname 
+           instance default void set_TempName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x314f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance void class NAnt.DotNet.Types.NamespaceImport::set_Namespace(string)
+	IL_0008:  ret 
+    } // end of method NamespaceImport::set_TempName
+
+    // method line 130
+    .method public hidebysig specialname 
+           instance default string get_Namespace ()  cil managed 
+    {
+        // Method begins at RVA 0x315c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.DotNet.Types.NamespaceImport::_namespace
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NamespaceImport::get_Namespace
+
+    // method line 131
+    .method public hidebysig specialname 
+           instance default void set_Namespace (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3177
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance string string::Trim()
+	IL_0008:  stfld string NAnt.DotNet.Types.NamespaceImport::_namespace
+	IL_000d:  ret 
+    } // end of method NamespaceImport::set_Namespace
+
+    // method line 132
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x3188
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Types.NamespaceImport::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NamespaceImport::get_IfDefined
+
+    // method line 133
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x31a3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Types.NamespaceImport::_ifDefined
+	IL_0008:  ret 
+    } // end of method NamespaceImport::set_IfDefined
+
+    // method line 134
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x31b0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Types.NamespaceImport::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NamespaceImport::get_UnlessDefined
+
+    // method line 135
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x31cb
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Types.NamespaceImport::_unlessDefined
+	IL_0008:  ret 
+    } // end of method NamespaceImport::set_UnlessDefined
+
+	.property instance string TempName ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		69 72 65 64 00                                  ) // ired.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 22 55 73 65 20 22 6E 61 6D 65 73 70 61 63   // .."Use "namespac
+		65 22 20 61 74 74 72 69 62 75 74 65 20 69 6E 73   // e" attribute ins
+		74 65 61 64 2E 00 00 00                         ) // tead....
+
+		.get instance default string NAnt.DotNet.Types.NamespaceImport::get_TempName () 
+		.set instance default void NAnt.DotNet.Types.NamespaceImport::set_TempName (string 'value') 
+	}
+	.property instance string Namespace ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 09 6E 61 6D 65 73 70 61 63 65 01 00 54 02   // ...namespace..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.DotNet.Types.NamespaceImport::get_Namespace () 
+		.set instance default void NAnt.DotNet.Types.NamespaceImport::set_Namespace (string 'value') 
+	}
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Types.NamespaceImport::get_IfDefined () 
+		.set instance default void NAnt.DotNet.Types.NamespaceImport::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Types.NamespaceImport::get_UnlessDefined () 
+		.set instance default void NAnt.DotNet.Types.NamespaceImport::set_UnlessDefined (bool 'value') 
+	}
+  } // end of class NAnt.DotNet.Types.NamespaceImport
 }
 
 .namespace NAnt.DotNet.Types
@@ -5780,11 +3355,11 @@
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 215
+    // method line 136
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x4058
+        // Method begins at RVA 0x31d5
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -5792,11 +3367,11 @@
 	IL_0006:  ret 
     } // end of method EmbeddedResourceCollection::.ctor
 
-    // method line 216
+    // method line 137
     .method public hidebysig 
            instance default class NAnt.DotNet.Types.EmbeddedResourceEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x4060
+        // Method begins at RVA 0x31e0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5811,11 +3386,11 @@
 	IL_000e:  ret 
     } // end of method EmbeddedResourceCollection::GetEnumerator
 
-    // method line 217
+    // method line 138
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.EmbeddedResource get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x407c
+        // Method begins at RVA 0x31fc
 	// Code size 33 (0x21)
 	.maxstack 2
 	.locals init (
@@ -5836,11 +3411,11 @@
 	IL_0020:  ret 
     } // end of method EmbeddedResourceCollection::get_Item
 
-    // method line 218
+    // method line 139
     .method public hidebysig specialname 
            instance default void set_Item (int32 index, class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
     {
-        // Method begins at RVA 0x40a9
+        // Method begins at RVA 0x3229
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  nop 
@@ -5855,11 +3430,11 @@
 	IL_0015:  ret 
     } // end of method EmbeddedResourceCollection::set_Item
 
-    // method line 219
+    // method line 140
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.EmbeddedResource get_Item (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x40c0
+        // Method begins at RVA 0x3240
 	// Code size 111 (0x6f)
 	.maxstack 2
 	.locals init (
@@ -5924,11 +3499,11 @@
 	IL_006e:  ret 
     } // end of method EmbeddedResourceCollection::get_Item
 
-    // method line 220
+    // method line 141
     .method family virtual hidebysig specialname 
            instance default class [mscorlib]System.Type get_ItemType ()  cil managed 
     {
-        // Method begins at RVA 0x414c
+        // Method begins at RVA 0x32cc
 	// Code size 19 (0x13)
 	.maxstack 1
 	.locals init (
@@ -5943,11 +3518,11 @@
 	IL_0012:  ret 
     } // end of method EmbeddedResourceCollection::get_ItemType
 
-    // method line 221
+    // method line 142
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IList.get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x416c
+        // Method begins at RVA 0x32ec
 	.override class [mscorlib]System.Collections.IList::get_Item
 	// Code size 16 (0x10)
 	.maxstack 2
@@ -5964,11 +3539,11 @@
 	IL_000f:  ret 
     } // end of method EmbeddedResourceCollection::System.Collections.IList.get_Item
 
-    // method line 222
+    // method line 143
     .method private final virtual hidebysig newslot specialname 
            instance default void System.Collections.IList.set_Item (int32 index, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x4188
+        // Method begins at RVA 0x3308
 	.override class [mscorlib]System.Collections.IList::set_Item
 	// Code size 22 (0x16)
 	.maxstack 8
@@ -5984,11 +3559,11 @@
 	IL_0015:  ret 
     } // end of method EmbeddedResourceCollection::System.Collections.IList.set_Item
 
-    // method line 223
+    // method line 144
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IList.Insert (int32 index, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x419f
+        // Method begins at RVA 0x331f
 	.override class [mscorlib]System.Collections.IList::Insert
 	// Code size 22 (0x16)
 	.maxstack 8
@@ -6004,11 +3579,11 @@
 	IL_0015:  ret 
     } // end of method EmbeddedResourceCollection::System.Collections.IList.Insert
 
-    // method line 224
+    // method line 145
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IList.Remove (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x41b6
+        // Method begins at RVA 0x3336
 	.override class [mscorlib]System.Collections.IList::Remove
 	// Code size 21 (0x15)
 	.maxstack 8
@@ -6023,11 +3598,11 @@
 	IL_0014:  ret 
     } // end of method EmbeddedResourceCollection::System.Collections.IList.Remove
 
-    // method line 225
+    // method line 146
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IList.Contains (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x41cc
+        // Method begins at RVA 0x334c
 	.override class [mscorlib]System.Collections.IList::Contains
 	// Code size 33 (0x21)
 	.maxstack 2
@@ -6049,11 +3624,11 @@
 	IL_0020:  ret 
     } // end of method EmbeddedResourceCollection::System.Collections.IList.Contains
 
-    // method line 226
+    // method line 147
     .method private final virtual hidebysig newslot 
            instance default int32 System.Collections.IList.IndexOf (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x41fc
+        // Method begins at RVA 0x337c
 	.override class [mscorlib]System.Collections.IList::IndexOf
 	// Code size 28 (0x1c)
 	.maxstack 2
@@ -6074,11 +3649,11 @@
 	IL_001b:  ret 
     } // end of method EmbeddedResourceCollection::System.Collections.IList.IndexOf
 
-    // method line 227
+    // method line 148
     .method private final virtual hidebysig newslot 
            instance default int32 System.Collections.IList.Add (object 'value')  cil managed 
     {
-        // Method begins at RVA 0x4224
+        // Method begins at RVA 0x33a4
 	.override class [mscorlib]System.Collections.IList::Add
 	// Code size 28 (0x1c)
 	.maxstack 2
@@ -6099,11 +3674,11 @@
 	IL_001b:  ret 
     } // end of method EmbeddedResourceCollection::System.Collections.IList.Add
 
-    // method line 228
+    // method line 149
     .method public hidebysig 
            instance default void AddRange (class NAnt.DotNet.Types.EmbeddedResourceCollection items)  cil managed 
     {
-        // Method begins at RVA 0x424c
+        // Method begins at RVA 0x33cc
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -6133,11 +3708,11 @@
 	IL_0028:  ret 
     } // end of method EmbeddedResourceCollection::AddRange
 
-    // method line 229
+    // method line 150
     .method public hidebysig 
            instance default int32 Add (class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
     {
-        // Method begins at RVA 0x4284
+        // Method begins at RVA 0x3404
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -6154,11 +3729,11 @@
 	IL_0014:  ret 
     } // end of method EmbeddedResourceCollection::Add
 
-    // method line 230
+    // method line 151
     .method public hidebysig 
            instance default void Insert (int32 index, class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
     {
-        // Method begins at RVA 0x42a5
+        // Method begins at RVA 0x3425
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -6170,11 +3745,11 @@
 	IL_000e:  ret 
     } // end of method EmbeddedResourceCollection::Insert
 
-    // method line 231
+    // method line 152
     .method public hidebysig 
            instance default void Remove (class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
     {
-        // Method begins at RVA 0x42b5
+        // Method begins at RVA 0x3435
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -6185,11 +3760,11 @@
 	IL_000d:  ret 
     } // end of method EmbeddedResourceCollection::Remove
 
-    // method line 232
+    // method line 153
     .method public hidebysig 
            instance default bool Contains (class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
     {
-        // Method begins at RVA 0x42c4
+        // Method begins at RVA 0x3444
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -6206,11 +3781,11 @@
 	IL_0014:  ret 
     } // end of method EmbeddedResourceCollection::Contains
 
-    // method line 233
+    // method line 154
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.DotNet.Types.EmbeddedResource 'value')  cil managed 
     {
-        // Method begins at RVA 0x42e8
+        // Method begins at RVA 0x3468
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -6255,11 +3830,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 234
+    // method line 155
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.DotNet.Types.EmbeddedResourceCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x430c
+        // Method begins at RVA 0x348c
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -6276,11 +3851,11 @@
 	IL_0015:  ret 
     } // end of method EmbeddedResourceEnumerator::.ctor
 
-    // method line 235
+    // method line 156
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.EmbeddedResource get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x4330
+        // Method begins at RVA 0x34b0
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -6297,11 +3872,11 @@
 	IL_0018:  ret 
     } // end of method EmbeddedResourceEnumerator::get_Current
 
-    // method line 236
+    // method line 157
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x4358
+        // Method begins at RVA 0x34d8
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -6318,11 +3893,11 @@
 	IL_0013:  ret 
     } // end of method EmbeddedResourceEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 237
+    // method line 158
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x4378
+        // Method begins at RVA 0x34f8
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -6338,11 +3913,11 @@
 	IL_0013:  ret 
     } // end of method EmbeddedResourceEnumerator::MoveNext
 
-    // method line 238
+    // method line 159
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x4398
+        // Method begins at RVA 0x3518
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -6359,11 +3934,11 @@
 	IL_0013:  ret 
     } // end of method EmbeddedResourceEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 239
+    // method line 160
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x43b8
+        // Method begins at RVA 0x3538
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -6373,11 +3948,11 @@
 	IL_000c:  ret 
     } // end of method EmbeddedResourceEnumerator::Reset
 
-    // method line 240
+    // method line 161
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x43c6
+        // Method begins at RVA 0x3546
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
@@ -6401,4209 +3976,2910 @@
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi serializable beforefieldinit NamespaceImport
-  	extends [NAnt.Core]NAnt.Core.Element
+  .class public auto ansi serializable beforefieldinit LibDirectorySet
+  	extends [NAnt.Core]NAnt.Core.Types.FileSet
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 06 69 6D 70 6F 72 74 00 00 ) // ...import..
-
-    .field  private  string _namespace
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _parent
 
-    // method line 241
+    // method line 162
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyFileSet parent)  cil managed 
     {
-        // Method begins at RVA 0x43d4
+        // Method begins at RVA 0x3554
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.DotNet.Types.NamespaceImport::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method NamespaceImport::.ctor
-
-    // method line 242
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string nameSpace)  cil managed 
-    {
-        // Method begins at RVA 0x43e4
-	// Code size 40 (0x28)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.DotNet.Types.NamespaceImport::_ifDefined
+	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0006:  nop 
 	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.1 
-	IL_000f:  brtrue IL_0020
-
-	IL_0014:  nop 
-	IL_0015:  ldstr "nameSpace"
-	IL_001a:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_001f:  throw 
-	IL_0020:  ldarg.0 
-	IL_0021:  ldarg.1 
-	IL_0022:  stfld string NAnt.DotNet.Types.NamespaceImport::_namespace
-	IL_0027:  ret 
-    } // end of method NamespaceImport::.ctor
-
-    // method line 243
-    .method public hidebysig specialname 
-           instance default string get_TempName ()  cil managed 
-    {
-        // Method begins at RVA 0x4410
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.DotNet.Types.NamespaceImport::get_Namespace()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NamespaceImport::get_TempName
-
-    // method line 244
-    .method public hidebysig specialname 
-           instance default void set_TempName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x442b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Types.NamespaceImport::set_Namespace(string)
-	IL_0008:  ret 
-    } // end of method NamespaceImport::set_TempName
-
-    // method line 245
-    .method public hidebysig specialname 
-           instance default string get_Namespace ()  cil managed 
-    {
-        // Method begins at RVA 0x4438
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Types.NamespaceImport::_namespace
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NamespaceImport::get_Namespace
-
-    // method line 246
-    .method public hidebysig specialname 
-           instance default void set_Namespace (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4453
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance string string::Trim()
-	IL_0008:  stfld string NAnt.DotNet.Types.NamespaceImport::_namespace
-	IL_000d:  ret 
-    } // end of method NamespaceImport::set_Namespace
-
-    // method line 247
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x4464
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Types.NamespaceImport::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Types.LibDirectorySet::_parent
 	IL_000e:  ret 
-    } // end of method NamespaceImport::get_IfDefined
-
-    // method line 248
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x447f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Types.NamespaceImport::_ifDefined
-	IL_0008:  ret 
-    } // end of method NamespaceImport::set_IfDefined
+    } // end of method LibDirectorySet::.ctor
 
-    // method line 249
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+    // method line 163
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x448c
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x3564
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Types.NamespaceImport::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NamespaceImport::get_UnlessDefined
-
-    // method line 250
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x44a7
-	// Code size 9 (0x9)
-	.maxstack 8
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Types.NamespaceImport::_unlessDefined
-	IL_0008:  ret 
-    } // end of method NamespaceImport::set_UnlessDefined
-
-	.property instance string TempName ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
-		69 72 65 64 00                                  ) // ired.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 22 55 73 65 20 22 6E 61 6D 65 73 70 61 63   // .."Use "namespac
-		65 22 20 61 74 74 72 69 62 75 74 65 20 69 6E 73   // e" attribute ins
-		74 65 61 64 2E 00 00 00                         ) // tead....
-
-		.get instance default string NAnt.DotNet.Types.NamespaceImport::get_TempName () 
-		.set instance default void NAnt.DotNet.Types.NamespaceImport::set_TempName (string 'value') 
-	}
-	.property instance string Namespace ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 6E 61 6D 65 73 70 61 63 65 01 00 54 02   // ...namespace..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.DotNet.Types.NamespaceImport::get_Namespace () 
-		.set instance default void NAnt.DotNet.Types.NamespaceImport::set_Namespace (string 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Types.LibDirectorySet::_parent
+	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method LibDirectorySet::get_BaseDirectory
 
-		.get instance default bool NAnt.DotNet.Types.NamespaceImport::get_IfDefined () 
-		.set instance default void NAnt.DotNet.Types.NamespaceImport::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo BaseDirectory ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.DotNet.Types.NamespaceImport::get_UnlessDefined () 
-		.set instance default void NAnt.DotNet.Types.NamespaceImport::set_UnlessDefined (bool 'value') 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Types.LibDirectorySet::get_BaseDirectory () 
 	}
-  } // end of class NAnt.DotNet.Types.NamespaceImport
+  } // end of class NAnt.DotNet.Types.LibDirectorySet
 }
 
 .namespace NAnt.DotNet.Types
 {
-  .class public auto ansi serializable beforefieldinit AssemblyAttribute
-  	extends [NAnt.Core]NAnt.Core.Element
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 09 61 74 74 72 69 62 75 74 65 00 00 ) // ...attribute..
+  .class public auto ansi serializable beforefieldinit AssemblyFileSet
+  	extends [NAnt.Core]NAnt.Core.Types.FileSet
+  	implements [mscorlib]System.ICloneable  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
+		01 00 0F 61 73 73 65 6D 62 6C 79 66 69 6C 65 73   // ...assemblyfiles
+		65 74 00 00                                     ) // et..
 
-    .field  private  string _typeName
-    .field  private  string _value
-    .field  private  bool _asIs
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+    .field  private  class NAnt.DotNet.Types.LibDirectorySet _lib
 
-    // method line 251
+    // method line 164
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x44b1
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x3584
+	// Code size 27 (0x1b)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.DotNet.Types.AssemblyAttribute::_ifDefined
+	IL_0001:  ldnull 
+	IL_0002:  stfld class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::_lib
 	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
 	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method AssemblyAttribute::.ctor
-
-    // method line 252
-    .method public hidebysig specialname 
-           instance default string get_TypeName ()  cil managed 
-    {
-        // Method begins at RVA 0x44c4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Types.AssemblyAttribute::_typeName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyAttribute::get_TypeName
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.0 
+	IL_0010:  newobj instance void class NAnt.DotNet.Types.LibDirectorySet::'.ctor'(class NAnt.DotNet.Types.AssemblyFileSet)
+	IL_0015:  stfld class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::_lib
+	IL_001a:  ret 
+    } // end of method AssemblyFileSet::.ctor
 
-    // method line 253
-    .method public hidebysig specialname 
-           instance default void set_TypeName (string 'value')  cil managed 
+    // method line 165
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [NAnt.Core]NAnt.Core.Types.FileSet fs)  cil managed 
     {
-        // Method begins at RVA 0x44df
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x35a0
+	// Code size 28 (0x1c)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Types.AssemblyAttribute::_typeName
-	IL_000d:  ret 
-    } // end of method AssemblyAttribute::set_TypeName
+	IL_0000:  ldarg.0 
+	IL_0001:  ldnull 
+	IL_0002:  stfld class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::_lib
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'(class [NAnt.Core]NAnt.Core.Types.FileSet)
+	IL_000e:  nop 
+	IL_000f:  ldarg.0 
+	IL_0010:  ldarg.0 
+	IL_0011:  newobj instance void class NAnt.DotNet.Types.LibDirectorySet::'.ctor'(class NAnt.DotNet.Types.AssemblyFileSet)
+	IL_0016:  stfld class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::_lib
+	IL_001b:  ret 
+    } // end of method AssemblyFileSet::.ctor
 
-    // method line 254
+    // method line 166
     .method public hidebysig specialname 
-           instance default string get_Value ()  cil managed 
+           instance default class NAnt.DotNet.Types.LibDirectorySet get_Lib ()  cil managed 
     {
-        // Method begins at RVA 0x44f0
+        // Method begins at RVA 0x35c0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.DotNet.Types.LibDirectorySet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Types.AssemblyAttribute::_value
+	IL_0002:  ldfld class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::_lib
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AssemblyAttribute::get_Value
+    } // end of method AssemblyFileSet::get_Lib
 
-    // method line 255
+    // method line 167
     .method public hidebysig specialname 
-           instance default void set_Value (string 'value')  cil managed 
+           instance default void set_Lib (class NAnt.DotNet.Types.LibDirectorySet 'value')  cil managed 
     {
-        // Method begins at RVA 0x450b
+        // Method begins at RVA 0x35db
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.DotNet.Types.AssemblyAttribute::_value
+	IL_0003:  stfld class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::_lib
 	IL_0008:  ret 
-    } // end of method AssemblyAttribute::set_Value
-
-    // method line 256
-    .method public hidebysig specialname 
-           instance default bool get_AsIs ()  cil managed 
-    {
-        // Method begins at RVA 0x4518
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Types.AssemblyAttribute::_asIs
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyAttribute::get_AsIs
+    } // end of method AssemblyFileSet::set_Lib
 
-    // method line 257
-    .method public hidebysig specialname 
-           instance default void set_AsIs (bool 'value')  cil managed 
+    // method line 168
+    .method public virtual hidebysig 
+           instance default void Scan ()  cil managed 
     {
-        // Method begins at RVA 0x4533
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x35e5
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Types.AssemblyAttribute::_asIs
-	IL_0008:  ret 
-    } // end of method AssemblyAttribute::set_AsIs
+	IL_0002:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::Scan()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class NAnt.DotNet.Types.AssemblyFileSet::ResolveReferences()
+	IL_000d:  ret 
+    } // end of method AssemblyFileSet::Scan
 
-    // method line 258
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
+    // method line 169
+    .method family hidebysig 
+           instance default void ResolveReferences ()  cil managed 
     {
-        // Method begins at RVA 0x4540
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x35f4
+	// Code size 300 (0x12c)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		string	V_0,
+		class [System]System.Collections.Specialized.StringEnumerator	V_1,
+		string	V_2,
+		string	V_3,
+		class [System]System.Collections.Specialized.StringEnumerator	V_4,
+		string	V_5,
+		class [mscorlib]System.IDisposable	V_6,
+		string	V_7,
+		class [mscorlib]System.IDisposable	V_8)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Types.AssemblyAttribute::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  call instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	IL_0008:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_000d:  stloc.1 
+	.try { // 1
+	  IL_000e:  br IL_0105
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyAttribute::get_IfDefined
+	  IL_0013:  ldloc.1 
+	  IL_0014:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0019:  stloc.0 
+	  IL_001a:  nop 
+	  IL_001b:  ldloc.0 
+	  IL_001c:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	  IL_0021:  ldloc.0 
+	  IL_0022:  call bool string::op_Equality(string, string)
+	  IL_0027:  brfalse IL_0104
 
-    // method line 259
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x455b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Types.AssemblyAttribute::_ifDefined
-	IL_0008:  ret 
-    } // end of method AssemblyAttribute::set_IfDefined
+	  IL_002c:  nop 
+	  IL_002d:  ldarg.0 
+	  IL_002e:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	  IL_0033:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0038:  ldloc.0 
+	  IL_0039:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_003e:  stloc.2 
+	  IL_003f:  ldloc.2 
+	  IL_0040:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_0045:  brfalse IL_0050
 
-    // method line 260
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x4568
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Types.AssemblyAttribute::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_004a:  nop 
+	  IL_004b:  leave IL_0105
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyAttribute::get_UnlessDefined
+	  IL_0050:  nop 
+	  IL_0051:  ldarg.0 
+	  IL_0052:  call instance class NAnt.DotNet.Types.LibDirectorySet class NAnt.DotNet.Types.AssemblyFileSet::get_Lib()
+	  IL_0057:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_DirectoryNames()
+	  IL_005c:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_0061:  stloc.s 4
+	  .try { // 0
+	    IL_0063:  br IL_009b
 
-    // method line 261
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4583
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Types.AssemblyAttribute::_unlessDefined
-	IL_0008:  ret 
-    } // end of method AssemblyAttribute::set_UnlessDefined
+	    IL_0068:  ldloc.s 4
+	    IL_006a:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_006f:  stloc.3 
+	    IL_0070:  nop 
+	    IL_0071:  ldloc.3 
+	    IL_0072:  ldloc.0 
+	    IL_0073:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	    IL_0078:  stloc.s 5
+	    IL_007a:  ldloc.s 5
+	    IL_007c:  call bool class [mscorlib]System.IO.File::Exists(string)
+	    IL_0081:  brfalse IL_009a
 
-	.property instance string TypeName ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 74 79 70 65 01 00 54 02 08 52 65 71 75   // ...type..T..Requ
-		69 72 65 64 01                                  ) // ired.
+	    IL_0086:  nop 
+	    IL_0087:  ldarg.0 
+	    IL_0088:  call instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	    IL_008d:  ldloc.s 5
+	    IL_008f:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_0094:  pop 
+	    IL_0095:  leave IL_009b
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+	    IL_009a:  nop 
+	    IL_009b:  ldloc.s 4
+	    IL_009d:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_00a2:  brtrue IL_0068
 
-		.get instance default string NAnt.DotNet.Types.AssemblyAttribute::get_TypeName () 
-		.set instance default void NAnt.DotNet.Types.AssemblyAttribute::set_TypeName (string 'value') 
-	}
-	.property instance string Value ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 76 61 6C 75 65 00 00 ) // ...value..
+	    IL_00a7:  leave IL_00c3
 
-		.get instance default string NAnt.DotNet.Types.AssemblyAttribute::get_Value () 
-		.set instance default void NAnt.DotNet.Types.AssemblyAttribute::set_Value (string 'value') 
-	}
-	.property instance bool AsIs ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 61 73 69 73 00 00 ) // ...asis..
+	  } // end .try 0
+	  finally  { // 0
+	    IL_00ac:  ldloc.s 4
+	    IL_00ae:  isinst [mscorlib]System.IDisposable
+	    IL_00b3:  dup 
+	    IL_00b4:  stloc.s 6
+	    IL_00b6:  brfalse IL_00c2
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	    IL_00bb:  ldloc.s 6
+	    IL_00bd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_00c2:  endfinally 
+	  } // end handler 0
+	  IL_00c3:  ldarg.0 
+	  IL_00c4:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_00c9:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	  IL_00ce:  brfalse IL_0103
 
-		.get instance default bool NAnt.DotNet.Types.AssemblyAttribute::get_AsIs () 
-		.set instance default void NAnt.DotNet.Types.AssemblyAttribute::set_AsIs (bool 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+	  IL_00d3:  nop 
+	  IL_00d4:  ldarg.0 
+	  IL_00d5:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_00da:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	  IL_00df:  ldloc.0 
+	  IL_00e0:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::ResolveAssembly(string)
+	  IL_00e5:  stloc.s 7
+	  IL_00e7:  ldloc.s 7
+	  IL_00e9:  brfalse IL_0102
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	  IL_00ee:  nop 
+	  IL_00ef:  ldarg.0 
+	  IL_00f0:  call instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	  IL_00f5:  ldloc.s 7
+	  IL_00f7:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_00fc:  pop 
+	  IL_00fd:  leave IL_0105
 
-		.get instance default bool NAnt.DotNet.Types.AssemblyAttribute::get_IfDefined () 
-		.set instance default void NAnt.DotNet.Types.AssemblyAttribute::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+	  IL_0102:  nop 
+	  IL_0103:  nop 
+	  IL_0104:  nop 
+	  IL_0105:  ldloc.1 
+	  IL_0106:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_010b:  brtrue IL_0013
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	  IL_0110:  leave IL_012b
 
-		.get instance default bool NAnt.DotNet.Types.AssemblyAttribute::get_UnlessDefined () 
-		.set instance default void NAnt.DotNet.Types.AssemblyAttribute::set_UnlessDefined (bool 'value') 
+	} // end .try 1
+	finally  { // 1
+	  IL_0115:  ldloc.1 
+	  IL_0116:  isinst [mscorlib]System.IDisposable
+	  IL_011b:  dup 
+	  IL_011c:  stloc.s 8
+	  IL_011e:  brfalse IL_012a
+
+	  IL_0123:  ldloc.s 8
+	  IL_0125:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_012a:  endfinally 
+	} // end handler 1
+	IL_012b:  ret 
+    } // end of method AssemblyFileSet::ResolveReferences
+
+	.property instance class NAnt.DotNet.Types.LibDirectorySet Lib ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 03 6C 69 62 00 00 ) // ...lib..
+
+		.get instance default class NAnt.DotNet.Types.LibDirectorySet NAnt.DotNet.Types.AssemblyFileSet::get_Lib () 
+		.set instance default void NAnt.DotNet.Types.AssemblyFileSet::set_Lib (class NAnt.DotNet.Types.LibDirectorySet 'value') 
 	}
-  } // end of class NAnt.DotNet.Types.AssemblyAttribute
+  } // end of class NAnt.DotNet.Types.AssemblyFileSet
 }
 
-.namespace NAnt.DotNet.Tasks
+.namespace NAnt.DotNet.Types
 {
-  .class public auto ansi beforefieldinit CscTask
-  	extends NAnt.DotNet.Tasks.CompilerBase
+  .class public auto ansi serializable beforefieldinit CompilerWarningCollection
+  	extends [mscorlib]System.Collections.CollectionBase
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 63 73 63 00 00 ) // ...csc..
-
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 00 00 00 00 00 00 ) // ........
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-    .field  private  valuetype NAnt.DotNet.Types.DebugOutput _debugOutput
-    .field  private  class [mscorlib]System.IO.FileInfo _docFile
-    .field  private  int32 _fileAlign
-    .field  private  bool _nostdlib
-    .field  private  bool _noconfig
-    .field  private  bool _checked
-    .field  private  bool _unsafe
-    .field  private  bool _optimize
-    .field  private  string _warningLevel
-    .field  private  string _codepage
-    .field  private  string _baseAddress
-    .field  private  string _platform
-    .field  private  string _langVersion
-    .field  private  bool _supportsDocGeneration
-    .field  private  bool _supportsPlatform
-    .field  private  bool _supportsLangVersion
-    .field  private static  class [System]System.Text.RegularExpressions.Regex _classNameRegex
-    .field  private static  class [System]System.Text.RegularExpressions.Regex _namespaceRegex
 
-    // method line 262
+    // method line 170
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x68ed
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x3760
+	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.CscTask::_debugOutput
-	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4.1 
-	IL_0009:  stfld bool NAnt.DotNet.Tasks.CscTask::_supportsDocGeneration
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance void class NAnt.DotNet.Tasks.CompilerBase::'.ctor'()
-	IL_0014:  ret 
-    } // end of method CscTask::.ctor
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method CompilerWarningCollection::.ctor
 
-    // method line 263
-    .method public hidebysig specialname 
-           instance default string get_BaseAddress ()  cil managed 
+    // method line 171
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.DotNet.Types.CompilerWarningCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x6904
+        // Method begins at RVA 0x3769
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.CscTask::_baseAddress
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.DotNet.Types.CompilerWarningCollection::AddRange(class NAnt.DotNet.Types.CompilerWarningCollection)
 	IL_000e:  ret 
-    } // end of method CscTask::get_BaseAddress
+    } // end of method CompilerWarningCollection::.ctor
 
-    // method line 264
-    .method public hidebysig specialname 
-           instance default void set_BaseAddress (string 'value')  cil managed 
+    // method line 172
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.DotNet.Types.CompilerWarning[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x691f
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x3779
+	// Code size 15 (0xf)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.CscTask::_baseAddress
-	IL_000d:  ret 
-    } // end of method CscTask::set_BaseAddress
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.DotNet.Types.CompilerWarningCollection::AddRange(class NAnt.DotNet.Types.CompilerWarning[])
+	IL_000e:  ret 
+    } // end of method CompilerWarningCollection::.ctor
 
-    // method line 265
+    // method line 173
     .method public hidebysig specialname 
-           instance default valuetype NAnt.DotNet.Types.DebugOutput get_DebugOutput ()  cil managed 
+           instance default class NAnt.DotNet.Types.CompilerWarning get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x6930
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x378c
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
-		valuetype NAnt.DotNet.Types.DebugOutput	V_0)
+		class NAnt.DotNet.Types.CompilerWarning	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.CscTask::_debugOutput
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.DotNet.Types.CompilerWarning
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CscTask::get_DebugOutput
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method CompilerWarningCollection::get_Item
 
-    // method line 266
+    // method line 174
     .method public hidebysig specialname 
-           instance default void set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.DotNet.Types.CompilerWarning 'value')  cil managed 
     {
-        // Method begins at RVA 0x694b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x37b2
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.CscTask::_debugOutput
-	IL_0008:  ret 
-    } // end of method CscTask::set_DebugOutput
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method CompilerWarningCollection::set_Item
 
-    // method line 267
-    .method public virtual hidebysig specialname 
-           instance default bool get_Debug ()  cil managed 
+    // method line 175
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
     {
-        // Method begins at RVA 0x6958
+        // Method begins at RVA 0x37c4
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.CscTask::get_DebugOutput()
-	IL_0007:  ldc.i4.0 
-	IL_0008:  ceq 
-	IL_000a:  ldc.i4.0 
-	IL_000b:  ceq 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
 	IL_000d:  stloc.0 
 	IL_000e:  br IL_0013
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method CscTask::get_Debug
-
-    // method line 268
-    .method public virtual hidebysig specialname 
-           instance default void set_Debug (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6979
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.1 
-	IL_0003:  call instance void class NAnt.DotNet.Tasks.CscTask::set_DebugOutput(valuetype NAnt.DotNet.Types.DebugOutput)
-	IL_0008:  ret 
-    } // end of method CscTask::set_Debug
-
-    // method line 269
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_DocFile ()  cil managed 
-    {
-        // Method begins at RVA 0x6984
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CscTask::_docFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CscTask::get_DocFile
-
-    // method line 270
-    .method public hidebysig specialname 
-           instance default void set_DocFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x699f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CscTask::_docFile
-	IL_0008:  ret 
-    } // end of method CscTask::set_DocFile
+    } // end of method CompilerWarningCollection::Add
 
-    // method line 271
-    .method public hidebysig specialname 
-           instance default int32 get_FileAlign ()  cil managed 
+    // method line 176
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.DotNet.Types.CompilerWarning[] items)  cil managed 
     {
-        // Method begins at RVA 0x69ac
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x37e8
+	// Code size 34 (0x22)
+	.maxstack 3
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.DotNet.Tasks.CscTask::_fileAlign
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CscTask::get_FileAlign
-
-    // method line 272
-    .method public hidebysig specialname 
-           instance default void set_FileAlign (int32 'value')  cil managed 
-    {
-        // Method begins at RVA 0x69c7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.DotNet.Tasks.CscTask::_fileAlign
-	IL_0008:  ret 
-    } // end of method CscTask::set_FileAlign
-
-    // method line 273
-    .method public hidebysig specialname 
-           instance default bool get_NoStdLib ()  cil managed 
-    {
-        // Method begins at RVA 0x69d4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_nostdlib
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CscTask::get_NoStdLib
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.DotNet.Types.CompilerWarningCollection::Add(class NAnt.DotNet.Types.CompilerWarning)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
 
-    // method line 274
-    .method public hidebysig specialname 
-           instance default void set_NoStdLib (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x69ef
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_nostdlib
-	IL_0008:  ret 
-    } // end of method CscTask::set_NoStdLib
+	IL_0021:  ret 
+    } // end of method CompilerWarningCollection::AddRange
 
-    // method line 275
-    .method public hidebysig specialname 
-           instance default bool get_NoConfig ()  cil managed 
+    // method line 177
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.DotNet.Types.CompilerWarningCollection items)  cil managed 
     {
-        // Method begins at RVA 0x69fc
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x3818
+	// Code size 41 (0x29)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_noconfig
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CscTask::get_NoConfig
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.DotNet.Types.CompilerWarning class NAnt.DotNet.Types.CompilerWarningCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.DotNet.Types.CompilerWarningCollection::Add(class NAnt.DotNet.Types.CompilerWarning)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
 
-    // method line 276
-    .method public hidebysig specialname 
-           instance default void set_NoConfig (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6a17
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_noconfig
-	IL_0008:  ret 
-    } // end of method CscTask::set_NoConfig
+	IL_0028:  ret 
+    } // end of method CompilerWarningCollection::AddRange
 
-    // method line 277
-    .method public hidebysig specialname 
-           instance default bool get_Checked ()  cil managed 
+    // method line 178
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
     {
-        // Method begins at RVA 0x6a24
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x3850
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_checked
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CscTask::get_Checked
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-    // method line 278
-    .method public hidebysig specialname 
-           instance default void set_Checked (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6a3f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_checked
-	IL_0008:  ret 
-    } // end of method CscTask::set_Checked
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method CompilerWarningCollection::Contains
 
-    // method line 279
-    .method public hidebysig specialname 
-           instance default bool get_Unsafe ()  cil managed 
+    // method line 179
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.DotNet.Types.CompilerWarning[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x6a4c
+        // Method begins at RVA 0x3871
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_unsafe
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CscTask::get_Unsafe
-
-    // method line 280
-    .method public hidebysig specialname 
-           instance default void set_Unsafe (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6a67
-	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_unsafe
-	IL_0008:  ret 
-    } // end of method CscTask::set_Unsafe
-
-    // method line 281
-    .method public hidebysig specialname 
-           instance default string get_LangVersion ()  cil managed 
-    {
-        // Method begins at RVA 0x6a74
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.CscTask::_langVersion
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
 	IL_000e:  ret 
-    } // end of method CscTask::get_LangVersion
-
-    // method line 282
-    .method public hidebysig specialname 
-           instance default void set_LangVersion (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6a8f
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.CscTask::_langVersion
-	IL_000d:  ret 
-    } // end of method CscTask::set_LangVersion
+    } // end of method CompilerWarningCollection::CopyTo
 
-    // method line 283
-    .method public hidebysig specialname 
-           instance default bool get_Optimize ()  cil managed 
+    // method line 180
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
     {
-        // Method begins at RVA 0x6aa0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x3884
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_optimize
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CscTask::get_Optimize
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-    // method line 284
-    .method public hidebysig specialname 
-           instance default void set_Optimize (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6abb
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_optimize
-	IL_0008:  ret 
-    } // end of method CscTask::set_Optimize
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method CompilerWarningCollection::IndexOf
 
-    // method line 285
-    .method public hidebysig specialname 
-           instance default string get_Platform ()  cil managed 
+    // method line 181
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
     {
-        // Method begins at RVA 0x6ac8
+        // Method begins at RVA 0x38a5
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.CscTask::_platform
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CscTask::get_Platform
-
-    // method line 286
-    .method public hidebysig specialname 
-           instance default void set_Platform (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6ae3
-	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.CscTask::_platform
-	IL_000d:  ret 
-    } // end of method CscTask::set_Platform
-
-    // method line 287
-    .method public hidebysig specialname 
-           instance default string get_WarningLevel ()  cil managed 
-    {
-        // Method begins at RVA 0x6af4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.CscTask::_warningLevel
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
 	IL_000e:  ret 
-    } // end of method CscTask::get_WarningLevel
-
-    // method line 288
-    .method public hidebysig specialname 
-           instance default void set_WarningLevel (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6b0f
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.CscTask::_warningLevel
-	IL_000d:  ret 
-    } // end of method CscTask::set_WarningLevel
+    } // end of method CompilerWarningCollection::Insert
 
-    // method line 289
-    .method public hidebysig specialname 
-           instance default string get_Codepage ()  cil managed 
+    // method line 182
+    .method public hidebysig 
+           instance default class NAnt.DotNet.Types.CompilerWarningEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x6b20
+        // Method begins at RVA 0x38b8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.DotNet.Types.CompilerWarningEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.CscTask::_codepage
+	IL_0002:  newobj instance void class NAnt.DotNet.Types.CompilerWarningEnumerator::'.ctor'(class NAnt.DotNet.Types.CompilerWarningCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CscTask::get_Codepage
+    } // end of method CompilerWarningCollection::GetEnumerator
 
-    // method line 290
-    .method public hidebysig specialname 
-           instance default void set_Codepage (string 'value')  cil managed 
+    // method line 183
+    .method public hidebysig 
+           instance default void Remove (class NAnt.DotNet.Types.CompilerWarning item)  cil managed 
     {
-        // Method begins at RVA 0x6b3b
+        // Method begins at RVA 0x38d3
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.CscTask::_codepage
-	IL_000d:  ret 
-    } // end of method CscTask::set_Codepage
-
-    // method line 291
-    .method public hidebysig specialname 
-           instance default bool get_SupportsDocGeneration ()  cil managed 
-    {
-        // Method begins at RVA 0x6b4c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_supportsDocGeneration
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CscTask::get_SupportsDocGeneration
-
-    // method line 292
-    .method public hidebysig specialname 
-           instance default void set_SupportsDocGeneration (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6b67
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_supportsDocGeneration
-	IL_0008:  ret 
-    } // end of method CscTask::set_SupportsDocGeneration
-
-    // method line 293
-    .method public hidebysig specialname 
-           instance default bool get_SupportsPlatform ()  cil managed 
-    {
-        // Method begins at RVA 0x6b74
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_supportsPlatform
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CscTask::get_SupportsPlatform
-
-    // method line 294
-    .method public hidebysig specialname 
-           instance default void set_SupportsPlatform (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6b8f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_supportsPlatform
-	IL_0008:  ret 
-    } // end of method CscTask::set_SupportsPlatform
-
-    // method line 295
-    .method public hidebysig specialname 
-           instance default bool get_SupportsLangVersion ()  cil managed 
-    {
-        // Method begins at RVA 0x6b9c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_supportsLangVersion
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CscTask::get_SupportsLangVersion
-
-    // method line 296
-    .method public hidebysig specialname 
-           instance default void set_SupportsLangVersion (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x6bb7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_supportsLangVersion
-	IL_0008:  ret 
-    } // end of method CscTask::set_SupportsLangVersion
-
-    // method line 297
-    .method family virtual hidebysig 
-           instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
-    {
-        // Method begins at RVA 0x6bc4
-	// Code size 812 (0x32c)
-	.maxstack 7
-	.locals init (
-		valuetype NAnt.DotNet.Types.DebugOutput	V_0,
-		int32	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldstr "fullpaths"
-	IL_0008:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance string class NAnt.DotNet.Tasks.CscTask::get_BaseAddress()
-	IL_0013:  brfalse IL_002c
-
-	IL_0018:  nop 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldarg.1 
-	IL_001b:  ldstr "baseaddress"
-	IL_0020:  ldarg.0 
-	IL_0021:  call instance string class NAnt.DotNet.Tasks.CscTask::get_BaseAddress()
-	IL_0026:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_002b:  nop 
-	IL_002c:  ldarg.0 
-	IL_002d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CscTask::get_DocFile()
-	IL_0032:  brfalse IL_0092
-
-	IL_0037:  nop 
-	IL_0038:  ldarg.0 
-	IL_0039:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_SupportsDocGeneration()
-	IL_003e:  brfalse IL_0061
-
-	IL_0043:  nop 
-	IL_0044:  ldarg.0 
-	IL_0045:  ldarg.1 
-	IL_0046:  ldstr "doc"
-	IL_004b:  ldarg.0 
-	IL_004c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CscTask::get_DocFile()
-	IL_0051:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0056:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_005b:  nop 
-	IL_005c:  br IL_0091
-
-	IL_0061:  nop 
-	IL_0062:  ldarg.0 
-	IL_0063:  ldc.i4 4000
-	IL_0068:  ldstr "String_CompilerDoesNotSupportXmlDoc"
-	IL_006d:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0072:  ldc.i4.1 
-	IL_0073:  newarr [mscorlib]System.Object
-	IL_0078:  dup 
-	IL_0079:  ldc.i4.0 
-	IL_007a:  ldarg.0 
-	IL_007b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0080:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0085:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	IL_008a:  stelem.ref 
-	IL_008b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0090:  nop 
-	IL_0091:  nop 
-	IL_0092:  ldarg.0 
-	IL_0093:  call instance string class NAnt.DotNet.Tasks.CscTask::get_LangVersion()
-	IL_0098:  brfalse IL_00f3
-
-	IL_009d:  nop 
-	IL_009e:  ldarg.0 
-	IL_009f:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_SupportsLangVersion()
-	IL_00a4:  brfalse IL_00c2
-
-	IL_00a9:  nop 
-	IL_00aa:  ldarg.0 
-	IL_00ab:  ldarg.1 
-	IL_00ac:  ldstr "langversion"
-	IL_00b1:  ldarg.0 
-	IL_00b2:  call instance string class NAnt.DotNet.Tasks.CscTask::get_LangVersion()
-	IL_00b7:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_00bc:  nop 
-	IL_00bd:  br IL_00f2
-
-	IL_00c2:  nop 
-	IL_00c3:  ldarg.0 
-	IL_00c4:  ldc.i4 4000
-	IL_00c9:  ldstr "String_CompilerDoesNotSupportLangVersion"
-	IL_00ce:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00d3:  ldc.i4.1 
-	IL_00d4:  newarr [mscorlib]System.Object
-	IL_00d9:  dup 
-	IL_00da:  ldc.i4.0 
-	IL_00db:  ldarg.0 
-	IL_00dc:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_00e1:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_00e6:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	IL_00eb:  stelem.ref 
-	IL_00ec:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00f1:  nop 
-	IL_00f2:  nop 
-	IL_00f3:  ldarg.0 
-	IL_00f4:  call instance string class NAnt.DotNet.Tasks.CscTask::get_Platform()
-	IL_00f9:  brfalse IL_0154
-
-	IL_00fe:  nop 
-	IL_00ff:  ldarg.0 
-	IL_0100:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_SupportsPlatform()
-	IL_0105:  brfalse IL_0123
-
-	IL_010a:  nop 
-	IL_010b:  ldarg.0 
-	IL_010c:  ldarg.1 
-	IL_010d:  ldstr "platform"
-	IL_0112:  ldarg.0 
-	IL_0113:  call instance string class NAnt.DotNet.Tasks.CscTask::get_Platform()
-	IL_0118:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_011d:  nop 
-	IL_011e:  br IL_0153
-
-	IL_0123:  nop 
-	IL_0124:  ldarg.0 
-	IL_0125:  ldc.i4 4000
-	IL_012a:  ldstr "String_CompilerDoesNotSupportPlatform"
-	IL_012f:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0134:  ldc.i4.1 
-	IL_0135:  newarr [mscorlib]System.Object
-	IL_013a:  dup 
-	IL_013b:  ldc.i4.0 
-	IL_013c:  ldarg.0 
-	IL_013d:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0142:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0147:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	IL_014c:  stelem.ref 
-	IL_014d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0152:  nop 
-	IL_0153:  nop 
-	IL_0154:  ldarg.0 
-	IL_0155:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
-	IL_015a:  brfalse IL_0178
-
-	IL_015f:  nop 
-	IL_0160:  ldarg.0 
-	IL_0161:  ldarg.1 
-	IL_0162:  ldstr "win32res"
-	IL_0167:  ldarg.0 
-	IL_0168:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
-	IL_016d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0172:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_0177:  nop 
-	IL_0178:  ldarg.0 
-	IL_0179:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.CscTask::get_DebugOutput()
-	IL_017e:  stloc.0 
-	IL_017f:  ldloc.0 
-	IL_0180:  switch (
-	  IL_019a,
-	  IL_019f,
-	  IL_01d2,
-	  IL_01e3)
-	IL_0195:  br IL_01f9
-
-	IL_019a:  br IL_0224
-
-	IL_019f:  ldarg.0 
-	IL_01a0:  ldarg.1 
-	IL_01a1:  ldstr "debug"
-	IL_01a6:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_01ab:  ldarg.0 
-	IL_01ac:  ldarg.1 
-	IL_01ad:  ldstr "define"
-	IL_01b2:  ldstr "DEBUG"
-	IL_01b7:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_01bc:  ldarg.0 
-	IL_01bd:  ldarg.1 
-	IL_01be:  ldstr "define"
-	IL_01c3:  ldstr "TRACE"
-	IL_01c8:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_01cd:  br IL_0224
-
-	IL_01d2:  ldarg.0 
-	IL_01d3:  ldarg.1 
-	IL_01d4:  ldstr "debug"
-	IL_01d9:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_01de:  br IL_0224
-
-	IL_01e3:  ldarg.0 
-	IL_01e4:  ldarg.1 
-	IL_01e5:  ldstr "debug"
-	IL_01ea:  ldstr "pdbonly"
-	IL_01ef:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_01f4:  br IL_0224
-
-	IL_01f9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01fe:  ldstr "NA2011"
-	IL_0203:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0208:  ldarg.0 
-	IL_0209:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.CscTask::get_DebugOutput()
-	IL_020e:  box NAnt.DotNet.Types.DebugOutput
-	IL_0213:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0218:  ldarg.0 
-	IL_0219:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_021e:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0223:  throw 
-	IL_0224:  ldarg.0 
-	IL_0225:  call instance int32 class NAnt.DotNet.Tasks.CscTask::get_FileAlign()
-	IL_022a:  ldc.i4.0 
-	IL_022b:  ble IL_0251
-
-	IL_0230:  nop 
-	IL_0231:  ldarg.0 
-	IL_0232:  ldarg.1 
-	IL_0233:  ldstr "filealign"
-	IL_0238:  ldarg.0 
-	IL_0239:  call instance int32 class NAnt.DotNet.Tasks.CscTask::get_FileAlign()
-	IL_023e:  stloc.1 
-	IL_023f:  ldloca.s 1
-	IL_0241:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0246:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
-	IL_024b:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_0250:  nop 
-	IL_0251:  ldarg.0 
-	IL_0252:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_NoStdLib()
-	IL_0257:  brfalse IL_026a
-
-	IL_025c:  nop 
-	IL_025d:  ldarg.0 
-	IL_025e:  ldarg.1 
-	IL_025f:  ldstr "nostdlib"
-	IL_0264:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_0269:  nop 
-	IL_026a:  ldarg.0 
-	IL_026b:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_Checked()
-	IL_0270:  brfalse IL_0283
-
-	IL_0275:  nop 
-	IL_0276:  ldarg.0 
-	IL_0277:  ldarg.1 
-	IL_0278:  ldstr "checked"
-	IL_027d:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_0282:  nop 
-	IL_0283:  ldarg.0 
-	IL_0284:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_Unsafe()
-	IL_0289:  brfalse IL_029c
-
-	IL_028e:  nop 
-	IL_028f:  ldarg.0 
-	IL_0290:  ldarg.1 
-	IL_0291:  ldstr "unsafe"
-	IL_0296:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_029b:  nop 
-	IL_029c:  ldarg.0 
-	IL_029d:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_Optimize()
-	IL_02a2:  brfalse IL_02b5
-
-	IL_02a7:  nop 
-	IL_02a8:  ldarg.0 
-	IL_02a9:  ldarg.1 
-	IL_02aa:  ldstr "optimize"
-	IL_02af:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_02b4:  nop 
-	IL_02b5:  ldarg.0 
-	IL_02b6:  call instance string class NAnt.DotNet.Tasks.CscTask::get_WarningLevel()
-	IL_02bb:  brfalse IL_02d4
-
-	IL_02c0:  nop 
-	IL_02c1:  ldarg.0 
-	IL_02c2:  ldarg.1 
-	IL_02c3:  ldstr "warn"
-	IL_02c8:  ldarg.0 
-	IL_02c9:  call instance string class NAnt.DotNet.Tasks.CscTask::get_WarningLevel()
-	IL_02ce:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_02d3:  nop 
-	IL_02d4:  ldarg.0 
-	IL_02d5:  call instance string class NAnt.DotNet.Tasks.CscTask::get_Codepage()
-	IL_02da:  brfalse IL_02f3
-
-	IL_02df:  nop 
-	IL_02e0:  ldarg.0 
-	IL_02e1:  ldarg.1 
-	IL_02e2:  ldstr "codepage"
-	IL_02e7:  ldarg.0 
-	IL_02e8:  call instance string class NAnt.DotNet.Tasks.CscTask::get_Codepage()
-	IL_02ed:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_02f2:  nop 
-	IL_02f3:  ldarg.0 
-	IL_02f4:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_NoConfig()
-	IL_02f9:  brfalse IL_032b
-
-	IL_02fe:  ldarg.0 
-	IL_02ff:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_0304:  ldstr "/noconfig"
-	IL_0309:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Contains(string)
-	IL_030e:  brtrue IL_032b
-
-	IL_0313:  nop 
-	IL_0314:  ldarg.0 
-	IL_0315:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_031a:  ldstr "/noconfig"
-	IL_031f:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0324:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	IL_0329:  pop 
-	IL_032a:  nop 
-	IL_032b:  ret 
-    } // end of method CscTask::WriteOptions
-
-    // method line 298
-    .method family virtual hidebysig 
-           instance default bool NeedsCompiling ()  cil managed 
-    {
-        // Method begins at RVA 0x6efc
-	// Code size 118 (0x76)
-	.maxstack 7
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.DotNet.Tasks.CompilerBase::NeedsCompiling()
-	IL_0007:  brfalse IL_0014
-
-	IL_000c:  nop 
-	IL_000d:  ldc.i4.1 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0074
-
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CscTask::get_DocFile()
-	IL_001a:  brfalse IL_006d
-
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_SupportsDocGeneration()
-	IL_0025:  brfalse IL_006d
-
-	IL_002a:  nop 
-	IL_002b:  ldarg.0 
-	IL_002c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CscTask::get_DocFile()
-	IL_0031:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0036:  brtrue IL_006c
-
-	IL_003b:  nop 
-	IL_003c:  ldarg.0 
-	IL_003d:  ldc.i4 2000
-	IL_0042:  ldstr "String_DocFileDoesNotExist"
-	IL_0047:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_004c:  ldc.i4.1 
-	IL_004d:  newarr [mscorlib]System.Object
-	IL_0052:  dup 
-	IL_0053:  ldc.i4.0 
-	IL_0054:  ldarg.0 
-	IL_0055:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CscTask::get_DocFile()
-	IL_005a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_005f:  stelem.ref 
-	IL_0060:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0065:  ldc.i4.1 
-	IL_0066:  stloc.0 
-	IL_0067:  br IL_0074
-
-	IL_006c:  nop 
-	IL_006d:  ldc.i4.0 
-	IL_006e:  stloc.0 
-	IL_006f:  br IL_0074
-
-	IL_0074:  ldloc.0 
-	IL_0075:  ret 
-    } // end of method CscTask::NeedsCompiling
-
-    // method line 299
-    .method public virtual hidebysig specialname 
-           instance default string get_Extension ()  cil managed 
-    {
-        // Method begins at RVA 0x6f80
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldstr "cs"
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method CscTask::get_Extension
-
-    // method line 300
-    .method family virtual hidebysig specialname 
-           instance default class [System]System.Text.RegularExpressions.Regex get_ClassNameRegex ()  cil managed 
-    {
-        // Method begins at RVA 0x6f9c
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::_classNameRegex
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method CscTask::get_ClassNameRegex
-
-    // method line 301
-    .method family virtual hidebysig specialname 
-           instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
-    {
-        // Method begins at RVA 0x6fb8
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::_namespaceRegex
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method CscTask::get_NamespaceRegex
-
-    // method line 302
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x6fd2
-	// Code size 31 (0x1f)
-	.maxstack 8
-	IL_0000:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.\\{]+|class\\s+(?<class>\\w+)|(?<keyword>\\w+))*"
-	IL_0005:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
-	IL_000a:  stsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::_classNameRegex
-	IL_000f:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.\\{]+|namespace\\s+(?<namespace>(\\w+(\\.\\w+)*)+)|(?<keyword>\\w+))*"
-	IL_0014:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
-	IL_0019:  stsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::_namespaceRegex
-	IL_001e:  ret 
-    } // end of method CscTask::.cctor
-
-	.property instance string BaseAddress ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 62 61 73 65 61 64 64 72 65 73 73 00 00 ) // ...baseaddress..
-
-		.get instance default string NAnt.DotNet.Tasks.CscTask::get_BaseAddress () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_BaseAddress (string 'value') 
-	}
-	.property instance valuetype NAnt.DotNet.Types.DebugOutput DebugOutput ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 64 65 62 75 67 00 00 ) // ...debug..
-
-		.get instance default valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.CscTask::get_DebugOutput () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value') 
-	}
-	.property instance bool Debug ()
-	{
-		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_Debug () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_Debug (bool 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo DocFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 6F 63 00 00 ) // ...doc..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CscTask::get_DocFile () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_DocFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance int32 FileAlign ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 66 69 6C 65 61 6C 69 67 6E 00 00 ) // ...filealign..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 02 00 00 00 20 00 00 00 00 ) // ....... ....
-
-		.get instance default int32 NAnt.DotNet.Tasks.CscTask::get_FileAlign () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_FileAlign (int32 'value') 
-	}
-	.property instance bool NoStdLib ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (01 00 08 6E 6F 73 74 64 6C 69 62 00 00 ) // ...nostdlib..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 6E 6F 73 74 64 6C 69 62 00 00 ) // ...nostdlib..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_NoStdLib () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_NoStdLib (bool 'value') 
-	}
-	.property instance bool NoConfig ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (01 00 08 6E 6F 63 6F 6E 66 69 67 00 00 ) // ...noconfig..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 6E 6F 63 6F 6E 66 69 67 00 00 ) // ...noconfig..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_NoConfig () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_NoConfig (bool 'value') 
-	}
-	.property instance bool Checked ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 63 68 65 63 6B 65 64 00 00 ) // ...checked..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_Checked () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_Checked (bool 'value') 
-	}
-	.property instance bool Unsafe ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 73 61 66 65 00 00 ) // ...unsafe..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_Unsafe () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_Unsafe (bool 'value') 
-	}
-	.property instance string LangVersion ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 6C 61 6E 67 76 65 72 73 69 6F 6E 00 00 ) // ...langversion..
-
-		.get instance default string NAnt.DotNet.Tasks.CscTask::get_LangVersion () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_LangVersion (string 'value') 
-	}
-	.property instance bool Optimize ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 6F 70 74 69 6D 69 7A 65 00 00 ) // ...optimize..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_Optimize () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_Optimize (bool 'value') 
-	}
-	.property instance string Platform ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 70 6C 61 74 66 6F 72 6D 00 00 ) // ...platform..
-
-		.get instance default string NAnt.DotNet.Tasks.CscTask::get_Platform () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_Platform (string 'value') 
-	}
-	.property instance string WarningLevel ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 77 61 72 6E 69 6E 67 6C 65 76 65 6C 00   // ...warninglevel.
-		00                                              ) // .
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 04 00 00 00 00 00 ) // ............
-
-		.get instance default string NAnt.DotNet.Tasks.CscTask::get_WarningLevel () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_WarningLevel (string 'value') 
-	}
-	.property instance string Codepage ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 63 6F 64 65 70 61 67 65 00 00 ) // ...codepage..
-
-		.get instance default string NAnt.DotNet.Tasks.CscTask::get_Codepage () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_Codepage (string 'value') 
-	}
-	.property instance bool SupportsDocGeneration ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 15 73 75 70 70 6F 72 74 73 64 6F 63 67 65   // ...supportsdocge
-		6E 65 72 61 74 69 6F 6E 00 00                   ) // neration..
-
-		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_SupportsDocGeneration () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_SupportsDocGeneration (bool 'value') 
-	}
-	.property instance bool SupportsPlatform ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 10 73 75 70 70 6F 72 74 73 70 6C 61 74 66   // ...supportsplatf
-		6F 72 6D 00 00                                  ) // orm..
-
-		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_SupportsPlatform () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_SupportsPlatform (bool 'value') 
-	}
-	.property instance bool SupportsLangVersion ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 13 73 75 70 70 6F 72 74 73 6C 61 6E 67 76   // ...supportslangv
-		65 72 73 69 6F 6E 00 00                         ) // ersion..
+    } // end of method CompilerWarningCollection::Remove
 
-		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_SupportsLangVersion () 
-		.set instance default void NAnt.DotNet.Tasks.CscTask::set_SupportsLangVersion (bool 'value') 
-	}
-	.property instance string Extension ()
-	{
-		.get instance default string NAnt.DotNet.Tasks.CscTask::get_Extension () 
-	}
-	.property instance class [System]System.Text.RegularExpressions.Regex ClassNameRegex ()
-	{
-		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::get_ClassNameRegex () 
-	}
-	.property instance class [System]System.Text.RegularExpressions.Regex NamespaceRegex ()
+	.property instance class NAnt.DotNet.Types.CompilerWarning Item (int32)
 	{
-		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::get_NamespaceRegex () 
+		.get instance default class NAnt.DotNet.Types.CompilerWarning NAnt.DotNet.Types.CompilerWarningCollection::get_Item (int32 index) 
+		.set instance default void NAnt.DotNet.Types.CompilerWarningCollection::set_Item (int32 index, class NAnt.DotNet.Types.CompilerWarning 'value') 
 	}
-  } // end of class NAnt.DotNet.Tasks.CscTask
+  } // end of class NAnt.DotNet.Types.CompilerWarningCollection
 }
 
-.namespace NAnt.DotNet.Tasks
+.namespace NAnt.DotNet.Types
 {
-  .class public auto ansi serializable beforefieldinit AssemblyInfoTask
-  	extends [NAnt.Core]NAnt.Core.Task
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 61 73 6D 69 6E 66 6F 00 00 ) // ...asminfo..
-
-    .field  private  class [mscorlib]System.IO.FileInfo _output
-    .field  private  valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage _language
-    .field  private  class NAnt.DotNet.Types.AssemblyAttributeCollection _attributes
-    .field  private  class NAnt.DotNet.Types.NamespaceImportCollection _imports
-    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _references
+  .class public auto ansi beforefieldinit CompilerWarningEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 303
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 184
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.DotNet.Types.CompilerWarningCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x6ff2
-	// Code size 47 (0x2f)
-	.maxstack 8
+        // Method begins at RVA 0x38e4
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerable	V_0)
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage NAnt.DotNet.Tasks.AssemblyInfoTask::_language
-	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class NAnt.DotNet.Types.AssemblyAttributeCollection::'.ctor'()
-	IL_000d:  stfld class NAnt.DotNet.Types.AssemblyAttributeCollection NAnt.DotNet.Tasks.AssemblyInfoTask::_attributes
-	IL_0012:  ldarg.0 
-	IL_0013:  newobj instance void class NAnt.DotNet.Types.NamespaceImportCollection::'.ctor'()
-	IL_0018:  stfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.AssemblyInfoTask::_imports
-	IL_001d:  ldarg.0 
-	IL_001e:  newobj instance void class NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
-	IL_0023:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.AssemblyInfoTask::_references
-	IL_0028:  ldarg.0 
-	IL_0029:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
-	IL_002e:  ret 
-    } // end of method AssemblyInfoTask::.ctor
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method CompilerWarningEnumerator::.ctor
 
-    // method line 304
+    // method line 185
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Output ()  cil managed 
+           instance default class NAnt.DotNet.Types.CompilerWarning get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x7024
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x3908
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		class NAnt.DotNet.Types.CompilerWarning	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyInfoTask::_output
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyInfoTask::get_Output
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.DotNet.Types.CompilerWarning
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-    // method line 305
-    .method public hidebysig specialname 
-           instance default void set_Output (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x703f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyInfoTask::_output
-	IL_0008:  ret 
-    } // end of method AssemblyInfoTask::set_Output
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method CompilerWarningEnumerator::get_Current
 
-    // method line 306
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage get_Language ()  cil managed 
+    // method line 186
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x704c
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x3930
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage NAnt.DotNet.Tasks.AssemblyInfoTask::_language
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyInfoTask::get_Language
-
-    // method line 307
-    .method public hidebysig specialname 
-           instance default void set_Language (valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage 'value')  cil managed 
-    {
-        // Method begins at RVA 0x7068
-	// Code size 70 (0x46)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldtoken NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage
-	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000b:  ldarg.1 
-	IL_000c:  box NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage
-	IL_0011:  call bool class [mscorlib]System.Enum::IsDefined(class [mscorlib]System.Type, object)
-	IL_0016:  brtrue IL_003c
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_001b:  nop 
-	IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0021:  ldstr "NA2002"
-	IL_0026:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_002b:  ldarg.1 
-	IL_002c:  box NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage
-	IL_0031:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0036:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_003b:  throw 
-	IL_003c:  nop 
-	IL_003d:  ldarg.0 
-	IL_003e:  ldarg.1 
-	IL_003f:  stfld valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage NAnt.DotNet.Tasks.AssemblyInfoTask::_language
-	IL_0044:  nop 
-	IL_0045:  ret 
-    } // end of method AssemblyInfoTask::set_Language
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method CompilerWarningEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 308
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyAttributeCollection get_AssemblyAttributes ()  cil managed 
+    // method line 187
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x70bc
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x3950
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.AssemblyAttributeCollection	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyAttributeCollection NAnt.DotNet.Tasks.AssemblyInfoTask::_attributes
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyInfoTask::get_AssemblyAttributes
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method CompilerWarningEnumerator::MoveNext
 
-    // method line 309
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.NamespaceImportCollection get_Imports ()  cil managed 
+    // method line 188
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x70d8
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x3970
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.NamespaceImportCollection	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.AssemblyInfoTask::_imports
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyInfoTask::get_Imports
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method CompilerWarningEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 310
-    .method public hidebysig specialname 
-           instance default void set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value')  cil managed 
+    // method line 189
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x70f3
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x3990
+	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.AssemblyInfoTask::_imports
-	IL_0008:  ret 
-    } // end of method AssemblyInfoTask::set_Imports
-
-    // method line 311
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
-    {
-        // Method begins at RVA 0x7100
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.AssemblyFileSet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.AssemblyInfoTask::_references
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AssemblyInfoTask::get_References
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method CompilerWarningEnumerator::Reset
 
-    // method line 312
-    .method public hidebysig specialname 
-           instance default void set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
+    // method line 190
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x711b
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x399e
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.AssemblyInfoTask::_references
-	IL_0008:  ret 
-    } // end of method AssemblyInfoTask::set_References
-
-    // method line 313
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x7128
-	// Code size 512 (0x200)
-	.maxstack 7
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		class NAnt.DotNet.Types.NamespaceImport	V_1,
-		class NAnt.DotNet.Types.NamespaceImportEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		class [mscorlib]System.IO.MemoryStream	V_4,
-		class [mscorlib]System.IO.StreamWriter	V_5,
-		class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider	V_6,
-		class [mscorlib]System.IO.FileStream	V_7,
-		unsigned int8[]	V_8,
-		class [mscorlib]System.Exception	V_9)
-	IL_0000:  nop 
-	.try { // 3
-	  IL_0001:  nop 
-	  IL_0002:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	  IL_0007:  stloc.0 
-	  IL_0008:  nop 
-	  IL_0009:  ldarg.0 
-	  IL_000a:  call instance class NAnt.DotNet.Types.NamespaceImportCollection class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Imports()
-	  IL_000f:  callvirt instance class NAnt.DotNet.Types.NamespaceImportEnumerator class NAnt.DotNet.Types.NamespaceImportCollection::GetEnumerator()
-	  IL_0014:  stloc.2 
-	  .try { // 0
-	    IL_0015:  br IL_0048
-
-	    IL_001a:  ldloc.2 
-	    IL_001b:  callvirt instance class NAnt.DotNet.Types.NamespaceImport class NAnt.DotNet.Types.NamespaceImportEnumerator::get_Current()
-	    IL_0020:  stloc.1 
-	    IL_0021:  nop 
-	    IL_0022:  ldloc.1 
-	    IL_0023:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImport::get_IfDefined()
-	    IL_0028:  brfalse IL_0047
-
-	    IL_002d:  ldloc.1 
-	    IL_002e:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImport::get_UnlessDefined()
-	    IL_0033:  brtrue IL_0047
-
-	    IL_0038:  nop 
-	    IL_0039:  ldloc.0 
-	    IL_003a:  ldloc.1 
-	    IL_003b:  callvirt instance string class NAnt.DotNet.Types.NamespaceImport::get_Namespace()
-	    IL_0040:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_0045:  pop 
-	    IL_0046:  nop 
-	    IL_0047:  nop 
-	    IL_0048:  ldloc.2 
-	    IL_0049:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImportEnumerator::MoveNext()
-	    IL_004e:  brtrue IL_001a
-
-	    IL_0053:  leave IL_006c
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_0058:  ldloc.2 
-	    IL_0059:  isinst [mscorlib]System.IDisposable
-	    IL_005e:  dup 
-	    IL_005f:  stloc.3 
-	    IL_0060:  brfalse IL_006b
-
-	    IL_0065:  ldloc.3 
-	    IL_0066:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_006b:  endfinally 
-	  } // end handler 0
-	  IL_006c:  ldarg.0 
-	  IL_006d:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.AssemblyInfoTask::get_References()
-	  IL_0072:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	  IL_0077:  brtrue IL_0099
-
-	  IL_007c:  nop 
-	  IL_007d:  ldarg.0 
-	  IL_007e:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.AssemblyInfoTask::get_References()
-	  IL_0083:  ldarg.0 
-	  IL_0084:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_0089:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	  IL_008e:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	  IL_0093:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	  IL_0098:  nop 
-	  IL_0099:  newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
-	  IL_009e:  stloc.s 4
-	  IL_00a0:  ldloc.s 4
-	  IL_00a2:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
-	  IL_00a7:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(class [mscorlib]System.IO.Stream, class [mscorlib]System.Text.Encoding)
-	  IL_00ac:  stloc.s 5
-	  .try { // 2
-	    IL_00ae:  nop 
-	    IL_00af:  ldarg.0 
-	    IL_00b0:  ldarg.0 
-	    IL_00b1:  call instance valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Language()
-	    IL_00b6:  newobj instance void class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::'.ctor'(class NAnt.DotNet.Tasks.AssemblyInfoTask, valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage)
-	    IL_00bb:  stloc.s 6
-	    IL_00bd:  ldarg.0 
-	    IL_00be:  call instance valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Language()
-	    IL_00c3:  brtrue IL_00d4
-
-	    IL_00c8:  nop 
-	    IL_00c9:  ldloc.s 6
-	    IL_00cb:  ldloc.0 
-	    IL_00cc:  ldloc.s 5
-	    IL_00ce:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::GenerateImportCode(class [System]System.Collections.Specialized.StringCollection, class [mscorlib]System.IO.TextWriter)
-	    IL_00d3:  nop 
-	    IL_00d4:  ldloc.s 6
-	    IL_00d6:  ldarg.0 
-	    IL_00d7:  call instance class NAnt.DotNet.Types.AssemblyAttributeCollection class NAnt.DotNet.Tasks.AssemblyInfoTask::get_AssemblyAttributes()
-	    IL_00dc:  ldloc.0 
-	    IL_00dd:  ldarg.0 
-	    IL_00de:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.AssemblyInfoTask::get_References()
-	    IL_00e3:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	    IL_00e8:  ldloc.s 5
-	    IL_00ea:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::GenerateAssemblyAttributesCode(class NAnt.DotNet.Types.AssemblyAttributeCollection, class [System]System.Collections.Specialized.StringCollection, class [System]System.Collections.Specialized.StringCollection, class [mscorlib]System.IO.TextWriter)
-	    IL_00ef:  ldloc.s 5
-	    IL_00f1:  callvirt instance void class [mscorlib]System.IO.TextWriter::Flush()
-	    IL_00f6:  ldarg.0 
-	    IL_00f7:  ldloc.s 4
-	    IL_00f9:  call instance bool class NAnt.DotNet.Tasks.AssemblyInfoTask::NeedsPersisting(class [mscorlib]System.IO.Stream)
-	    IL_00fe:  brfalse IL_0189
-
-	    IL_0103:  nop 
-	    IL_0104:  ldarg.0 
-	    IL_0105:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
-	    IL_010a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	    IL_010f:  ldc.i4.2 
-	    IL_0110:  ldc.i4.2 
-	    IL_0111:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode, valuetype [mscorlib]System.IO.FileAccess)
-	    IL_0116:  stloc.s 7
-	    .try { // 1
-	      IL_0118:  nop 
-	      IL_0119:  ldloc.s 4
-	      IL_011b:  callvirt instance unsigned int8[] class [mscorlib]System.IO.MemoryStream::ToArray()
-	      IL_0120:  stloc.s 8
-	      IL_0122:  ldloc.s 7
-	      IL_0124:  ldloc.s 8
-	      IL_0126:  ldc.i4.0 
-	      IL_0127:  ldloc.s 8
-	      IL_0129:  ldlen 
-	      IL_012a:  conv.i4 
-	      IL_012b:  callvirt instance void class [mscorlib]System.IO.Stream::Write(unsigned int8[], int32, int32)
-	      IL_0130:  ldloc.s 7
-	      IL_0132:  callvirt instance void class [mscorlib]System.IO.Stream::Flush()
-	      IL_0137:  ldloc.s 7
-	      IL_0139:  callvirt instance void class [mscorlib]System.IO.Stream::Close()
-	      IL_013e:  ldloc.s 4
-	      IL_0140:  callvirt instance void class [mscorlib]System.IO.Stream::Close()
-	      IL_0145:  nop 
-	      IL_0146:  leave IL_015a
-
-	    } // end .try 1
-	    finally  { // 1
-	      IL_014b:  ldloc.s 7
-	      IL_014d:  brfalse IL_0159
-
-	      IL_0152:  ldloc.s 7
-	      IL_0154:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	      IL_0159:  endfinally 
-	    } // end handler 1
-	    IL_015a:  ldarg.0 
-	    IL_015b:  ldc.i4 3000
-	    IL_0160:  ldstr "String_GeneratedFile"
-	    IL_0165:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_016a:  ldc.i4.1 
-	    IL_016b:  newarr [mscorlib]System.Object
-	    IL_0170:  dup 
-	    IL_0171:  ldc.i4.0 
-	    IL_0172:  ldarg.0 
-	    IL_0173:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
-	    IL_0178:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	    IL_017d:  stelem.ref 
-	    IL_017e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	    IL_0183:  nop 
-	    IL_0184:  br IL_01b4
-
-	    IL_0189:  nop 
-	    IL_018a:  ldarg.0 
-	    IL_018b:  ldc.i4 2000
-	    IL_0190:  ldstr "String_FileUpToDate"
-	    IL_0195:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_019a:  ldc.i4.1 
-	    IL_019b:  newarr [mscorlib]System.Object
-	    IL_01a0:  dup 
-	    IL_01a1:  ldc.i4.0 
-	    IL_01a2:  ldarg.0 
-	    IL_01a3:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
-	    IL_01a8:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	    IL_01ad:  stelem.ref 
-	    IL_01ae:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	    IL_01b3:  nop 
-	    IL_01b4:  nop 
-	    IL_01b5:  leave IL_01c9
-
-	  } // end .try 2
-	  finally  { // 2
-	    IL_01ba:  ldloc.s 5
-	    IL_01bc:  brfalse IL_01c8
-
-	    IL_01c1:  ldloc.s 5
-	    IL_01c3:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_01c8:  endfinally 
-	  } // end handler 2
-	  IL_01c9:  nop 
-	  IL_01ca:  leave IL_01ff
-
-	} // end .try 3
-	catch class [mscorlib]System.Exception { // 3
-	  IL_01cf:  stloc.s 9
-	  IL_01d1:  nop 
-	  IL_01d2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_01d7:  ldstr "NA2004"
-	  IL_01dc:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_01e1:  ldarg.0 
-	  IL_01e2:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
-	  IL_01e7:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_01ec:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_01f1:  ldarg.0 
-	  IL_01f2:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	  IL_01f7:  ldloc.s 9
-	  IL_01f9:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_01fe:  throw 
-	} // end handler 3
-	IL_01ff:  ret 
-    } // end of method AssemblyInfoTask::ExecuteTask
-
-    // method line 314
-    .method private hidebysig 
-           instance default bool NeedsPersisting (class [mscorlib]System.IO.Stream generatedAsmInfoStream)  cil managed 
-    {
-        // Method begins at RVA 0x7398
-	// Code size 230 (0xe6)
-	.maxstack 7
-	.locals init (
-		bool	V_0,
-		unsigned int8[]	V_1,
-		unsigned int8[]	V_2,
-		class [mscorlib]System.Security.Cryptography.SHA1	V_3,
-		class [mscorlib]System.IO.FileStream	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
-	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_000c:  brtrue IL_0042
-
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldc.i4 2000
-	IL_0018:  ldstr "String_OutputFileDoesNotExist"
-	IL_001d:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0022:  ldc.i4.1 
-	IL_0023:  newarr [mscorlib]System.Object
-	IL_0028:  dup 
-	IL_0029:  ldc.i4.0 
-	IL_002a:  ldarg.0 
-	IL_002b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
-	IL_0030:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0035:  stelem.ref 
-	IL_0036:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_003b:  ldc.i4.1 
-	IL_003c:  stloc.0 
-	IL_003d:  br IL_00e4
-
-	IL_0042:  ldnull 
-	IL_0043:  stloc.1 
-	IL_0044:  ldnull 
-	IL_0045:  stloc.2 
-	IL_0046:  newobj instance void class [mscorlib]System.Security.Cryptography.SHA1CryptoServiceProvider::'.ctor'()
-	IL_004b:  stloc.3 
-	IL_004c:  ldarg.0 
-	IL_004d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
-	IL_0052:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0057:  ldc.i4.3 
-	IL_0058:  ldc.i4.1 
-	IL_0059:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode, valuetype [mscorlib]System.IO.FileAccess)
-	IL_005e:  stloc.s 4
-	.try { // 0
-	  IL_0060:  nop 
-	  IL_0061:  ldloc.3 
-	  IL_0062:  ldloc.s 4
-	  IL_0064:  callvirt instance unsigned int8[] class [mscorlib]System.Security.Cryptography.HashAlgorithm::ComputeHash(class [mscorlib]System.IO.Stream)
-	  IL_0069:  stloc.1 
-	  IL_006a:  nop 
-	  IL_006b:  leave IL_007f
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0070:  ldloc.s 4
-	  IL_0072:  brfalse IL_007e
-
-	  IL_0077:  ldloc.s 4
-	  IL_0079:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_007e:  endfinally 
-	} // end handler 0
-	IL_007f:  ldarg.1 
-	IL_0080:  ldc.i4.0 
-	IL_0081:  conv.i8 
-	IL_0082:  callvirt instance void class [mscorlib]System.IO.Stream::set_Position(int64)
-	IL_0087:  ldloc.3 
-	IL_0088:  ldarg.1 
-	IL_0089:  callvirt instance unsigned int8[] class [mscorlib]System.Security.Cryptography.HashAlgorithm::ComputeHash(class [mscorlib]System.IO.Stream)
-	IL_008e:  stloc.2 
-	IL_008f:  ldloc.3 
-	IL_0090:  callvirt instance void class [mscorlib]System.Security.Cryptography.HashAlgorithm::Clear()
-	IL_0095:  ldloc.2 
-	IL_0096:  call string class [mscorlib]System.Convert::ToBase64String(unsigned int8[])
-	IL_009b:  ldloc.1 
-	IL_009c:  call string class [mscorlib]System.Convert::ToBase64String(unsigned int8[])
-	IL_00a1:  call bool string::op_Inequality(string, string)
-	IL_00a6:  brfalse IL_00dc
-
-	IL_00ab:  nop 
-	IL_00ac:  ldarg.0 
-	IL_00ad:  ldc.i4 2000
-	IL_00b2:  ldstr "String_OutputFileNotUpToDate"
-	IL_00b7:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00bc:  ldc.i4.1 
-	IL_00bd:  newarr [mscorlib]System.Object
-	IL_00c2:  dup 
-	IL_00c3:  ldc.i4.0 
-	IL_00c4:  ldarg.0 
-	IL_00c5:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
-	IL_00ca:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00cf:  stelem.ref 
-	IL_00d0:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00d5:  ldc.i4.1 
-	IL_00d6:  stloc.0 
-	IL_00d7:  br IL_00e4
-
-	IL_00dc:  nop 
-	IL_00dd:  ldc.i4.0 
-	IL_00de:  stloc.0 
-	IL_00df:  br IL_00e4
-
-	IL_00e4:  ldloc.0 
-	IL_00e5:  ret 
-    } // end of method AssemblyInfoTask::NeedsPersisting
-
-	.property instance class [mscorlib]System.IO.FileInfo Output ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 6F 75 74 70 75 74 01 00 54 02 08 52 65   // ...output..T..Re
-		71 75 69 72 65 64 01                            ) // quired.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyInfoTask::set_Output (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage Language ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 6C 61 6E 67 75 61 67 65 01 00 54 02 08   // ...language..T..
-		52 65 71 75 69 72 65 64 01                      ) // Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage NAnt.DotNet.Tasks.AssemblyInfoTask::get_Language () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyInfoTask::set_Language (valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.AssemblyAttributeCollection AssemblyAttributes ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
-		01 00 0A 61 74 74 72 69 62 75 74 65 73 09 61 74   // ...attributes.at
-		74 72 69 62 75 74 65 00 00                      ) // tribute..
-
-		.get instance default class NAnt.DotNet.Types.AssemblyAttributeCollection NAnt.DotNet.Tasks.AssemblyInfoTask::get_AssemblyAttributes () 
-	}
-	.property instance class NAnt.DotNet.Types.NamespaceImportCollection Imports ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 69 6D 70 6F 72 74 73 00 00 ) // ...imports..
-
-		.get instance default class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.AssemblyInfoTask::get_Imports () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyInfoTask::set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.AssemblyFileSet References ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 0A 72 65 66 65 72 65 6E 63 65 73 00 00 ) // ...references..
-
-		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.AssemblyInfoTask::get_References () 
-		.set instance default void NAnt.DotNet.Tasks.AssemblyInfoTask::set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
-	}
-  .class nested public auto ansi sealed CodeLanguage
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage CSharp = int32(0x00000000)
-    .field public static literal  valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage JScript = int32(0x00000001)
-    .field public static literal  valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage VB = int32(0x00000002)
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.CompilerWarningEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method CompilerWarningEnumerator::System.Collections.IEnumerator.Reset
 
-  } // end of class CodeLanguage
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.DotNet.Types.CompilerWarningEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.DotNet.Types.CompilerWarning Current ()
+	{
+		.get instance default class NAnt.DotNet.Types.CompilerWarning NAnt.DotNet.Types.CompilerWarningEnumerator::get_Current () 
+	}
+  } // end of class NAnt.DotNet.Types.CompilerWarningEnumerator
+}
 
-  .class nested assembly auto ansi beforefieldinit CodeProvider
-  	extends [mscorlib]System.Object
+.namespace NAnt.DotNet.Types
+{
+  .class public auto ansi beforefieldinit WarningAsError
+  	extends [NAnt.Core]NAnt.Core.DataTypeBase
   {
-    .field  private initonly  valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage _language
-    .field  private initonly  class [System]System.CodeDom.Compiler.ICodeGenerator _generator
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
+		01 00 0B 77 61 72 6E 61 73 65 72 72 6F 72 00 00 ) // ...warnaserror..
 
-    // method line 315
+    .field  private  class NAnt.DotNet.Types.CompilerWarningCollection _includes
+    .field  private  class NAnt.DotNet.Types.CompilerWarningCollection _excludes
+
+    // method line 191
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.DotNet.Tasks.AssemblyInfoTask assemblyInfoTask, valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage codeLanguage)  cil managed 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x749c
-	// Code size 106 (0x6a)
-	.maxstack 2
-	.locals init (
-		class [System]System.CodeDom.Compiler.CodeDomProvider	V_0)
+        // Method begins at RVA 0x39ac
+	// Code size 29 (0x1d)
+	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldnull 
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.2 
-	IL_000a:  switch (
-	  IL_0020,
-	  IL_002b,
-	  IL_003b)
-	IL_001b:  br IL_0046
-
-	IL_0020:  newobj instance void class [System]Microsoft.CSharp.CSharpCodeProvider::'.ctor'()
-	IL_0025:  stloc.0 
-	IL_0026:  br IL_0056
-
-	IL_002b:  ldstr "NA2008"
-	IL_0030:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0035:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
-	IL_003a:  throw 
-	IL_003b:  newobj instance void class [System]Microsoft.VisualBasic.VBCodeProvider::'.ctor'()
-	IL_0040:  stloc.0 
-	IL_0041:  br IL_0056
-
-	IL_0046:  ldstr "NA2007"
-	IL_004b:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0050:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
-	IL_0055:  throw 
-	IL_0056:  ldarg.0 
-	IL_0057:  ldloc.0 
-	IL_0058:  callvirt instance class [System]System.CodeDom.Compiler.ICodeGenerator class [System]System.CodeDom.Compiler.CodeDomProvider::CreateGenerator()
-	IL_005d:  stfld class [System]System.CodeDom.Compiler.ICodeGenerator NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::_generator
-	IL_0062:  ldarg.0 
-	IL_0063:  ldarg.2 
-	IL_0064:  stfld valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::_language
-	IL_0069:  ret 
-    } // end of method CodeProvider::.ctor
+	IL_0001:  newobj instance void class NAnt.DotNet.Types.CompilerWarningCollection::'.ctor'()
+	IL_0006:  stfld class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Types.WarningAsError::_includes
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class NAnt.DotNet.Types.CompilerWarningCollection::'.ctor'()
+	IL_0011:  stfld class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Types.WarningAsError::_excludes
+	IL_0016:  ldarg.0 
+	IL_0017:  call instance void class [NAnt.Core]NAnt.Core.DataTypeBase::'.ctor'()
+	IL_001c:  ret 
+    } // end of method WarningAsError::.ctor
 
-    // method line 316
-    .method private hidebysig specialname 
-           instance default valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage get_Language ()  cil managed 
+    // method line 192
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.CompilerWarningCollection get_Includes ()  cil managed 
     {
-        // Method begins at RVA 0x7514
+        // Method begins at RVA 0x39cc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage	V_0)
+		class NAnt.DotNet.Types.CompilerWarningCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::_language
+	IL_0002:  ldfld class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Types.WarningAsError::_includes
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CodeProvider::get_Language
+    } // end of method WarningAsError::get_Includes
 
-    // method line 317
-    .method private hidebysig specialname 
-           instance default class [System]System.CodeDom.Compiler.ICodeGenerator get_Generator ()  cil managed 
+    // method line 193
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.CompilerWarningCollection get_Excludes ()  cil managed 
     {
-        // Method begins at RVA 0x7530
+        // Method begins at RVA 0x39e8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System]System.CodeDom.Compiler.ICodeGenerator	V_0)
+		class NAnt.DotNet.Types.CompilerWarningCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.CodeDom.Compiler.ICodeGenerator NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::_generator
+	IL_0002:  ldfld class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Types.WarningAsError::_excludes
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CodeProvider::get_Generator
+    } // end of method WarningAsError::get_Excludes
 
-    // method line 318
-    .method public hidebysig 
-           instance default void GenerateImportCode (class [System]System.Collections.Specialized.StringCollection imports, class [mscorlib]System.IO.TextWriter writer)  cil managed 
-    {
-        // Method begins at RVA 0x754c
-	// Code size 101 (0x65)
-	.maxstack 4
-	.locals init (
-		class [System]System.CodeDom.CodeNamespace	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.CodeDom.CodeNamespace::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  nop 
-	IL_0008:  ldarg.1 
-	IL_0009:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_000e:  stloc.2 
-	.try { // 0
-	  IL_000f:  br IL_002e
+	.property instance class NAnt.DotNet.Types.CompilerWarningCollection Includes ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 69 6E 63 6C 75 64 65 00 00 ) // ...include..
 
-	  IL_0014:  ldloc.2 
-	  IL_0015:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_001a:  stloc.1 
-	  IL_001b:  nop 
-	  IL_001c:  ldloc.0 
-	  IL_001d:  callvirt instance class [System]System.CodeDom.CodeNamespaceImportCollection class [System]System.CodeDom.CodeNamespace::get_Imports()
-	  IL_0022:  ldloc.1 
-	  IL_0023:  newobj instance void class [System]System.CodeDom.CodeNamespaceImport::'.ctor'(string)
-	  IL_0028:  callvirt instance void class [System]System.CodeDom.CodeNamespaceImportCollection::Add(class [System]System.CodeDom.CodeNamespaceImport)
-	  IL_002d:  nop 
-	  IL_002e:  ldloc.2 
-	  IL_002f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0034:  brtrue IL_0014
+		.get instance default class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Types.WarningAsError::get_Includes () 
+	}
+	.property instance class NAnt.DotNet.Types.CompilerWarningCollection Excludes ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 65 78 63 6C 75 64 65 00 00 ) // ...exclude..
 
-	  IL_0039:  leave IL_0052
+		.get instance default class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Types.WarningAsError::get_Excludes () 
+	}
+  } // end of class NAnt.DotNet.Types.WarningAsError
+}
 
-	} // end .try 0
-	finally  { // 0
-	  IL_003e:  ldloc.2 
-	  IL_003f:  isinst [mscorlib]System.IDisposable
-	  IL_0044:  dup 
-	  IL_0045:  stloc.3 
-	  IL_0046:  brfalse IL_0051
+.namespace NAnt.DotNet.Types
+{
+  .class public auto ansi serializable beforefieldinit Module
+  	extends [NAnt.Core]NAnt.Core.Element
+  {
+    .field  private  string _file
+    .field  private  string _target
+    .field  private  class NAnt.DotNet.Types.ModuleSet _moduleSet
 
-	  IL_004b:  ldloc.3 
-	  IL_004c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0051:  endfinally 
-	} // end handler 0
-	IL_0052:  ldarg.0 
-	IL_0053:  call instance class [System]System.CodeDom.Compiler.ICodeGenerator class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::get_Generator()
-	IL_0058:  ldloc.0 
-	IL_0059:  ldarg.2 
-	IL_005a:  newobj instance void class [System]System.CodeDom.Compiler.CodeGeneratorOptions::'.ctor'()
-	IL_005f:  callvirt instance void class [System]System.CodeDom.Compiler.ICodeGenerator::GenerateCodeFromNamespace(class [System]System.CodeDom.CodeNamespace, class [mscorlib]System.IO.TextWriter, class [System]System.CodeDom.Compiler.CodeGeneratorOptions)
-	IL_0064:  ret 
-    } // end of method CodeProvider::GenerateImportCode
+    // method line 194
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x3a03
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_0006:  ret 
+    } // end of method Module::.ctor
 
-    // method line 319
-    .method public hidebysig 
-           instance default void GenerateAssemblyAttributesCode (class NAnt.DotNet.Types.AssemblyAttributeCollection assemblyAttributes, class [System]System.Collections.Specialized.StringCollection imports, class [System]System.Collections.Specialized.StringCollection assemblies, class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    // method line 195
+    .method public hidebysig specialname 
+           instance default string get_File ()  cil managed 
     {
-        // Method begins at RVA 0x75d0
-	// Code size 353 (0x161)
-	.maxstack 4
+        // Method begins at RVA 0x3a0c
+	// Code size 71 (0x47)
+	.maxstack 2
 	.locals init (
-		class [System]System.CodeDom.CodeCompileUnit	V_0,
-		class [System]System.CodeDom.CodeNamespace	V_1,
-		string	V_2,
-		class [System]System.Collections.Specialized.StringEnumerator	V_3,
-		class [mscorlib]System.IDisposable	V_4,
-		class NAnt.DotNet.Types.AssemblyAttribute	V_5,
-		class NAnt.DotNet.Types.AssemblyAttributeEnumerator	V_6,
-		class [System]System.CodeDom.CodeAttributeDeclaration	V_7,
-		object	V_8,
-		class [mscorlib]System.IDisposable	V_9)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.CodeDom.CodeCompileUnit::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::get_Language()
-	IL_000d:  ldc.i4.2 
-	IL_000e:  bne.un IL_0075
-
-	IL_0013:  nop 
-	IL_0014:  newobj instance void class [System]System.CodeDom.CodeNamespace::'.ctor'()
-	IL_0019:  stloc.1 
-	IL_001a:  nop 
-	IL_001b:  ldarg.2 
-	IL_001c:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0021:  stloc.3 
-	.try { // 0
-	  IL_0022:  br IL_0041
-
-	  IL_0027:  ldloc.3 
-	  IL_0028:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_002d:  stloc.2 
-	  IL_002e:  nop 
-	  IL_002f:  ldloc.1 
-	  IL_0030:  callvirt instance class [System]System.CodeDom.CodeNamespaceImportCollection class [System]System.CodeDom.CodeNamespace::get_Imports()
-	  IL_0035:  ldloc.2 
-	  IL_0036:  newobj instance void class [System]System.CodeDom.CodeNamespaceImport::'.ctor'(string)
-	  IL_003b:  callvirt instance void class [System]System.CodeDom.CodeNamespaceImportCollection::Add(class [System]System.CodeDom.CodeNamespaceImport)
-	  IL_0040:  nop 
-	  IL_0041:  ldloc.3 
-	  IL_0042:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0047:  brtrue IL_0027
-
-	  IL_004c:  leave IL_0067
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0051:  ldloc.3 
-	  IL_0052:  isinst [mscorlib]System.IDisposable
-	  IL_0057:  dup 
-	  IL_0058:  stloc.s 4
-	  IL_005a:  brfalse IL_0066
-
-	  IL_005f:  ldloc.s 4
-	  IL_0061:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0066:  endfinally 
-	} // end handler 0
-	IL_0067:  ldloc.0 
-	IL_0068:  callvirt instance class [System]System.CodeDom.CodeNamespaceCollection class [System]System.CodeDom.CodeCompileUnit::get_Namespaces()
-	IL_006d:  ldloc.1 
-	IL_006e:  callvirt instance int32 class [System]System.CodeDom.CodeNamespaceCollection::Add(class [System]System.CodeDom.CodeNamespace)
-	IL_0073:  pop 
-	IL_0074:  nop 
-	IL_0075:  nop 
-	IL_0076:  ldarg.1 
-	IL_0077:  callvirt instance class NAnt.DotNet.Types.AssemblyAttributeEnumerator class NAnt.DotNet.Types.AssemblyAttributeCollection::GetEnumerator()
-	IL_007c:  stloc.s 6
-	.try { // 1
-	  IL_007e:  br IL_0125
-
-	  IL_0083:  ldloc.s 6
-	  IL_0085:  callvirt instance class NAnt.DotNet.Types.AssemblyAttribute class NAnt.DotNet.Types.AssemblyAttributeEnumerator::get_Current()
-	  IL_008a:  stloc.s 5
-	  IL_008c:  nop 
-	  IL_008d:  ldloc.s 5
-	  IL_008f:  callvirt instance bool class NAnt.DotNet.Types.AssemblyAttribute::get_IfDefined()
-	  IL_0094:  brfalse IL_0124
-
-	  IL_0099:  ldloc.s 5
-	  IL_009b:  callvirt instance bool class NAnt.DotNet.Types.AssemblyAttribute::get_UnlessDefined()
-	  IL_00a0:  brtrue IL_0124
-
-	  IL_00a5:  nop 
-	  IL_00a6:  ldloc.s 5
-	  IL_00a8:  callvirt instance string class NAnt.DotNet.Types.AssemblyAttribute::get_TypeName()
-	  IL_00ad:  newobj instance void class [System]System.CodeDom.CodeAttributeDeclaration::'.ctor'(string)
-	  IL_00b2:  stloc.s 7
-	  IL_00b4:  ldloc.s 5
-	  IL_00b6:  callvirt instance bool class NAnt.DotNet.Types.AssemblyAttribute::get_AsIs()
-	  IL_00bb:  brfalse IL_00e5
-
-	  IL_00c0:  nop 
-	  IL_00c1:  ldloc.s 7
-	  IL_00c3:  callvirt instance class [System]System.CodeDom.CodeAttributeArgumentCollection class [System]System.CodeDom.CodeAttributeDeclaration::get_Arguments()
-	  IL_00c8:  ldloc.s 5
-	  IL_00ca:  callvirt instance string class NAnt.DotNet.Types.AssemblyAttribute::get_Value()
-	  IL_00cf:  newobj instance void class [System]System.CodeDom.CodeSnippetExpression::'.ctor'(string)
-	  IL_00d4:  newobj instance void class [System]System.CodeDom.CodeAttributeArgument::'.ctor'(class [System]System.CodeDom.CodeExpression)
-	  IL_00d9:  callvirt instance int32 class [System]System.CodeDom.CodeAttributeArgumentCollection::Add(class [System]System.CodeDom.CodeAttributeArgument)
-	  IL_00de:  pop 
-	  IL_00df:  nop 
-	  IL_00e0:  br IL_0115
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.DotNet.Types.ModuleSet class NAnt.DotNet.Types.Module::get_ModuleSet()
+	IL_0007:  brfalse IL_0039
 
-	  IL_00e5:  nop 
-	  IL_00e6:  ldarg.0 
-	  IL_00e7:  ldloc.s 5
-	  IL_00e9:  ldarg.3 
-	  IL_00ea:  ldarg.2 
-	  IL_00eb:  call instance object class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::GetTypedValue(class NAnt.DotNet.Types.AssemblyAttribute, class [System]System.Collections.Specialized.StringCollection, class [System]System.Collections.Specialized.StringCollection)
-	  IL_00f0:  stloc.s 8
-	  IL_00f2:  ldloc.s 8
-	  IL_00f4:  brfalse IL_0114
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld string NAnt.DotNet.Types.Module::_file
+	IL_0012:  brfalse IL_0039
 
-	  IL_00f9:  nop 
-	  IL_00fa:  ldloc.s 7
-	  IL_00fc:  callvirt instance class [System]System.CodeDom.CodeAttributeArgumentCollection class [System]System.CodeDom.CodeAttributeDeclaration::get_Arguments()
-	  IL_0101:  ldloc.s 8
-	  IL_0103:  newobj instance void class [System]System.CodeDom.CodePrimitiveExpression::'.ctor'(object)
-	  IL_0108:  newobj instance void class [System]System.CodeDom.CodeAttributeArgument::'.ctor'(class [System]System.CodeDom.CodeExpression)
-	  IL_010d:  callvirt instance int32 class [System]System.CodeDom.CodeAttributeArgumentCollection::Add(class [System]System.CodeDom.CodeAttributeArgument)
-	  IL_0112:  pop 
-	  IL_0113:  nop 
-	  IL_0114:  nop 
-	  IL_0115:  ldloc.0 
-	  IL_0116:  callvirt instance class [System]System.CodeDom.CodeAttributeDeclarationCollection class [System]System.CodeDom.CodeCompileUnit::get_AssemblyCustomAttributes()
-	  IL_011b:  ldloc.s 7
-	  IL_011d:  callvirt instance int32 class [System]System.CodeDom.CodeAttributeDeclarationCollection::Add(class [System]System.CodeDom.CodeAttributeDeclaration)
-	  IL_0122:  pop 
-	  IL_0123:  nop 
-	  IL_0124:  nop 
-	  IL_0125:  ldloc.s 6
-	  IL_0127:  callvirt instance bool class NAnt.DotNet.Types.AssemblyAttributeEnumerator::MoveNext()
-	  IL_012c:  brtrue IL_0083
+	IL_0017:  nop 
+	IL_0018:  ldarg.0 
+	IL_0019:  call instance class NAnt.DotNet.Types.ModuleSet class NAnt.DotNet.Types.Module::get_ModuleSet()
+	IL_001e:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.DotNet.Types.ModuleSet::get_Dir()
+	IL_0023:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0028:  ldarg.0 
+	IL_0029:  ldfld string NAnt.DotNet.Types.Module::_file
+	IL_002e:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0033:  stloc.0 
+	IL_0034:  br IL_0045
 
-	  IL_0131:  leave IL_014d
+	IL_0039:  ldarg.0 
+	IL_003a:  ldfld string NAnt.DotNet.Types.Module::_file
+	IL_003f:  stloc.0 
+	IL_0040:  br IL_0045
 
-	} // end .try 1
-	finally  { // 1
-	  IL_0136:  ldloc.s 6
-	  IL_0138:  isinst [mscorlib]System.IDisposable
-	  IL_013d:  dup 
-	  IL_013e:  stloc.s 9
-	  IL_0140:  brfalse IL_014c
+	IL_0045:  ldloc.0 
+	IL_0046:  ret 
+    } // end of method Module::get_File
 
-	  IL_0145:  ldloc.s 9
-	  IL_0147:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_014c:  endfinally 
-	} // end handler 1
-	IL_014d:  ldarg.0 
-	IL_014e:  call instance class [System]System.CodeDom.Compiler.ICodeGenerator class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::get_Generator()
-	IL_0153:  ldloc.0 
-	IL_0154:  ldarg.s 4
-	IL_0156:  newobj instance void class [System]System.CodeDom.Compiler.CodeGeneratorOptions::'.ctor'()
-	IL_015b:  callvirt instance void class [System]System.CodeDom.Compiler.ICodeGenerator::GenerateCodeFromCompileUnit(class [System]System.CodeDom.CodeCompileUnit, class [mscorlib]System.IO.TextWriter, class [System]System.CodeDom.Compiler.CodeGeneratorOptions)
-	IL_0160:  ret 
-    } // end of method CodeProvider::GenerateAssemblyAttributesCode
+    // method line 196
+    .method public hidebysig specialname 
+           instance default void set_File (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3a5f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.DotNet.Types.Module::_file
+	IL_0008:  ret 
+    } // end of method Module::set_File
 
-    // method line 320
-    .method private hidebysig 
-           instance default object GetTypedValue (class NAnt.DotNet.Types.AssemblyAttribute attribute, class [System]System.Collections.Specialized.StringCollection assemblies, class [System]System.Collections.Specialized.StringCollection imports)  cil managed 
+    // method line 197
+    .method public hidebysig specialname 
+           instance default string get_Target ()  cil managed 
     {
-        // Method begins at RVA 0x775c
-	// Code size 151 (0x97)
-	.maxstack 9
+        // Method begins at RVA 0x3a6c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Security.PermissionSet	V_0,
-		class [mscorlib]System.AppDomain	V_1,
-		class NAnt.DotNet.Tasks.AssemblyInfoTask/TypedValueGatherer	V_2,
-		object	V_3,
-		object	V_4)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  newobj instance void class [mscorlib]System.Security.PermissionSet::'.ctor'(valuetype [mscorlib]System.Security.Permissions.PermissionState)
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.DotNet.Types.Module::_target
 	IL_0007:  stloc.0 
-	IL_0008:  ldstr "TypeGatheringDomain"
-	IL_000d:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_0012:  callvirt instance class [mscorlib]System.Security.Policy.Evidence class [mscorlib]System.AppDomain::get_Evidence()
-	IL_0017:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
-	IL_001c:  callvirt instance class [mscorlib]System.AppDomainSetup class [mscorlib]System.AppDomain::get_SetupInformation()
-	IL_0021:  ldloc.0 
-	IL_0022:  call !!0[] class [mscorlib]System.Array::Empty<class [mscorlib]System.Security.Policy.StrongName> ()
-	IL_0027:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::CreateDomain(string, class [mscorlib]System.Security.Policy.Evidence, class [mscorlib]System.AppDomainSetup, class [mscorlib]System.Security.PermissionSet, class [mscorlib]System.Security.Policy.StrongName[])
-	IL_002c:  stloc.1 
-	IL_002d:  ldloc.1 
-	IL_002e:  ldtoken NAnt.DotNet.Tasks.AssemblyInfoTask/TypedValueGatherer
-	IL_0033:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0038:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Type::get_Assembly()
-	IL_003d:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
-	IL_0042:  ldtoken NAnt.DotNet.Tasks.AssemblyInfoTask/TypedValueGatherer
-	IL_0047:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_004c:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	IL_0051:  ldc.i4.0 
-	IL_0052:  ldc.i4.s 0x14
-	IL_0054:  ldnull 
-	IL_0055:  ldc.i4.0 
-	IL_0056:  newarr [mscorlib]System.Object
-	IL_005b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0060:  ldc.i4.0 
-	IL_0061:  newarr [mscorlib]System.Object
-	IL_0066:  callvirt instance object class [mscorlib]System.AppDomain::CreateInstanceAndUnwrap(string, string, bool, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo, object[])
-	IL_006b:  castclass NAnt.DotNet.Tasks.AssemblyInfoTask/TypedValueGatherer
-	IL_0070:  stloc.2 
-	IL_0071:  ldloc.2 
-	IL_0072:  ldarg.2 
-	IL_0073:  ldarg.3 
-	IL_0074:  ldarg.1 
-	IL_0075:  callvirt instance string class NAnt.DotNet.Types.AssemblyAttribute::get_TypeName()
-	IL_007a:  ldarg.1 
-	IL_007b:  callvirt instance string class NAnt.DotNet.Types.AssemblyAttribute::get_Value()
-	IL_0080:  callvirt instance object class NAnt.DotNet.Tasks.AssemblyInfoTask/TypedValueGatherer::GetTypedValue(class [System]System.Collections.Specialized.StringCollection, class [System]System.Collections.Specialized.StringCollection, string, string)
-	IL_0085:  stloc.3 
-	IL_0086:  ldloc.1 
-	IL_0087:  call void class [mscorlib]System.AppDomain::Unload(class [mscorlib]System.AppDomain)
-	IL_008c:  ldloc.3 
-	IL_008d:  stloc.s 4
-	IL_008f:  br IL_0094
-
-	IL_0094:  ldloc.s 4
-	IL_0096:  ret 
-    } // end of method CodeProvider::GetTypedValue
-
-	.property instance valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage Language ()
-	{
-		.get instance default valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::get_Language () 
-	}
-	.property instance class [System]System.CodeDom.Compiler.ICodeGenerator Generator ()
-	{
-		.get instance default class [System]System.CodeDom.Compiler.ICodeGenerator NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::get_Generator () 
-	}
-  } // end of class CodeProvider
+	IL_0008:  br IL_000d
 
-  .class nested private auto ansi beforefieldinit TypedValueGatherer
-  	extends [mscorlib]System.MarshalByRefObject
-  {
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Module::get_Target
 
-    // method line 321
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 198
+    .method public hidebysig specialname 
+           instance default void set_Target (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x77ff
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x3a87
+	// Code size 14 (0xe)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.MarshalByRefObject::'.ctor'()
-	IL_0006:  ret 
-    } // end of method TypedValueGatherer::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Types.Module::_target
+	IL_000d:  ret 
+    } // end of method Module::set_Target
 
-    // method line 322
-    .method public virtual hidebysig 
-           instance default object InitializeLifetimeService ()  cil managed 
+    // method line 199
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.ModuleSet get_ModuleSet ()  cil managed 
     {
-        // Method begins at RVA 0x7808
-	// Code size 47 (0x2f)
-	.maxstack 2
+        // Method begins at RVA 0x3a98
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Runtime.Remoting.Lifetime.ILease	V_0,
-		object	V_1)
+		class NAnt.DotNet.Types.ModuleSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance object class [mscorlib]System.MarshalByRefObject::InitializeLifetimeService()
-	IL_0007:  castclass [mscorlib]System.Runtime.Remoting.Lifetime.ILease
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  callvirt instance valuetype [mscorlib]System.Runtime.Remoting.Lifetime.LeaseState class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::get_CurrentState()
-	IL_0013:  ldc.i4.1 
-	IL_0014:  bne.un IL_0026
+	IL_0002:  ldfld class NAnt.DotNet.Types.ModuleSet NAnt.DotNet.Types.Module::_moduleSet
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0019:  nop 
-	IL_001a:  ldloc.0 
-	IL_001b:  ldsfld valuetype [mscorlib]System.TimeSpan [mscorlib]System.TimeSpan::Zero
-	IL_0020:  callvirt instance void class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::set_InitialLeaseTime(valuetype [mscorlib]System.TimeSpan)
-	IL_0025:  nop 
-	IL_0026:  ldloc.0 
-	IL_0027:  stloc.1 
-	IL_0028:  br IL_002d
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Module::get_ModuleSet
 
-	IL_002d:  ldloc.1 
-	IL_002e:  ret 
-    } // end of method TypedValueGatherer::InitializeLifetimeService
+    // method line 200
+    .method public hidebysig specialname 
+           instance default void set_ModuleSet (class NAnt.DotNet.Types.ModuleSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3ab3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.DotNet.Types.ModuleSet NAnt.DotNet.Types.Module::_moduleSet
+	IL_0008:  ret 
+    } // end of method Module::set_ModuleSet
 
-    // method line 323
-    .method public hidebysig 
-           instance default object GetTypedValue (class [System]System.Collections.Specialized.StringCollection assemblies, class [System]System.Collections.Specialized.StringCollection imports, string typename, string 'value')  cil managed 
+    // method line 201
+    .method public virtual hidebysig 
+           instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0x7844
-	// Code size 467 (0x1d3)
-	.maxstack 5
+        // Method begins at RVA 0x3ac0
+	// Code size 91 (0x5b)
+	.maxstack 2
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Util.AssemblyResolver	V_0,
-		class [mscorlib]System.Type	V_1,
-		object	V_2,
-		class [mscorlib]System.Reflection.ConstructorInfo	V_3,
-		class [mscorlib]System.Reflection.ConstructorInfo[]	V_4,
-		int32	V_5,
-		class [mscorlib]System.Reflection.ParameterInfo[]	V_6,
-		class [mscorlib]System.Exception	V_7,
-		object	V_8)
+		string	V_0,
+		class [mscorlib]System.Text.StringBuilder	V_1)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [NAnt.Core]NAnt.Core.Util.AssemblyResolver::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  callvirt instance void class [NAnt.Core]NAnt.Core.Util.AssemblyResolver::Attach()
-	.try { // 1
-	  IL_000d:  nop 
-	  IL_000e:  ldarg.0 
-	  IL_000f:  ldarg.1 
-	  IL_0010:  ldarg.2 
-	  IL_0011:  ldarg.3 
-	  IL_0012:  call instance class [mscorlib]System.Type class NAnt.DotNet.Tasks.AssemblyInfoTask/TypedValueGatherer::FindType(class [System]System.Collections.Specialized.StringCollection, class [System]System.Collections.Specialized.StringCollection, string)
-	  IL_0017:  stloc.1 
-	  IL_0018:  ldloc.1 
-	  IL_0019:  ldnull 
-	  IL_001a:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_001f:  brfalse IL_0174
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.DotNet.Types.Module::get_File()
+	IL_0007:  brtrue IL_0014
 
-	  IL_0024:  nop 
-	  IL_0025:  ldnull 
-	  IL_0026:  stloc.2 
-	  IL_0027:  ldarg.s 4
-	  IL_0029:  brtrue IL_007f
+	IL_000c:  nop 
+	IL_000d:  ldnull 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0059
 
-	  IL_002e:  nop 
-	  IL_002f:  ldloc.1 
-	  IL_0030:  ldc.i4.s 0x14
-	  IL_0032:  ldnull 
-	  IL_0033:  ldc.i4.0 
-	  IL_0034:  newarr [mscorlib]System.Type
-	  IL_0039:  ldc.i4.0 
-	  IL_003a:  newarr [mscorlib]System.Reflection.ParameterModifier
-	  IL_003f:  callvirt instance class [mscorlib]System.Reflection.ConstructorInfo class [mscorlib]System.Type::GetConstructor(valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, class [mscorlib]System.Type[], valuetype [mscorlib]System.Reflection.ParameterModifier[])
-	  IL_0044:  stloc.3 
-	  IL_0045:  ldloc.3 
-	  IL_0046:  ldnull 
-	  IL_0047:  call bool class [mscorlib]System.Reflection.ConstructorInfo::op_Equality(class [mscorlib]System.Reflection.ConstructorInfo, class [mscorlib]System.Reflection.ConstructorInfo)
-	  IL_004c:  brfalse IL_0077
+	IL_0014:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0019:  stloc.1 
+	IL_001a:  ldloc.1 
+	IL_001b:  ldarg.0 
+	IL_001c:  call instance string class NAnt.DotNet.Types.Module::get_File()
+	IL_0021:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0026:  pop 
+	IL_0027:  ldarg.0 
+	IL_0028:  call instance string class NAnt.DotNet.Types.Module::get_Target()
+	IL_002d:  brfalse IL_004d
 
-	  IL_0051:  nop 
-	  IL_0052:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0057:  ldstr "NA2005"
-	  IL_005c:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0061:  ldloc.1 
-	  IL_0062:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	  IL_0067:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_006c:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	  IL_0071:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	  IL_0076:  throw 
-	  IL_0077:  ldnull 
-	  IL_0078:  stloc.2 
-	  IL_0079:  nop 
-	  IL_007a:  br IL_016c
+	IL_0032:  nop 
+	IL_0033:  ldloc.1 
+	IL_0034:  ldstr ","
+	IL_0039:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_003e:  pop 
+	IL_003f:  ldloc.1 
+	IL_0040:  ldarg.0 
+	IL_0041:  call instance string class NAnt.DotNet.Types.Module::get_Target()
+	IL_0046:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_004b:  pop 
+	IL_004c:  nop 
+	IL_004d:  ldloc.1 
+	IL_004e:  callvirt instance string object::ToString()
+	IL_0053:  stloc.0 
+	IL_0054:  br IL_0059
 
-	  IL_007f:  nop 
-	  IL_0080:  ldloc.1 
-	  IL_0081:  ldc.i4.s 0x14
-	  IL_0083:  callvirt instance class [mscorlib]System.Reflection.ConstructorInfo[] class [mscorlib]System.Type::GetConstructors(valuetype [mscorlib]System.Reflection.BindingFlags)
-	  IL_0088:  stloc.s 4
-	  IL_008a:  ldc.i4.0 
-	  IL_008b:  stloc.s 5
-	  IL_008d:  br IL_0139
+	IL_0059:  ldloc.0 
+	IL_005a:  ret 
+    } // end of method Module::ToString
 
-	  IL_0092:  nop 
-	  IL_0093:  ldloc.s 4
-	  IL_0095:  ldloc.s 5
-	  IL_0097:  ldelem.ref 
-	  IL_0098:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
-	  IL_009d:  stloc.s 6
-	  IL_009f:  ldloc.s 6
-	  IL_00a1:  ldlen 
-	  IL_00a2:  conv.i4 
-	  IL_00a3:  ldc.i4.1 
-	  IL_00a4:  bne.un IL_0132
+	.property instance string File ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 66 69 6C 65 01 00 54 02 08 52 65 71 75   // ...file..T..Requ
+		69 72 65 64 01                                  ) // ired.
 
-	  IL_00a9:  nop 
-	  IL_00aa:  ldloc.s 6
-	  IL_00ac:  ldc.i4.0 
-	  IL_00ad:  ldelem.ref 
-	  IL_00ae:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	  IL_00b3:  callvirt instance bool class [mscorlib]System.Type::get_IsPrimitive()
-	  IL_00b8:  brtrue IL_00da
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-	  IL_00bd:  ldloc.s 6
-	  IL_00bf:  ldc.i4.0 
-	  IL_00c0:  ldelem.ref 
-	  IL_00c1:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	  IL_00c6:  ldtoken [mscorlib]System.String
-	  IL_00cb:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_00d0:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_00d5:  brfalse IL_0131
+		.get instance default string NAnt.DotNet.Types.Module::get_File () 
+		.set instance default void NAnt.DotNet.Types.Module::set_File (string 'value') 
+	}
+	.property instance string Target ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 74 61 72 67 65 74 01 00 54 02 08 52 65   // ...target..T..Re
+		71 75 69 72 65 64 00                            ) // quired.
 
-	  IL_00da:  nop 
-	  .try { // 0
-	    IL_00db:  nop 
-	    IL_00dc:  ldarg.s 4
-	    IL_00de:  ldloc.s 6
-	    IL_00e0:  ldc.i4.0 
-	    IL_00e1:  ldelem.ref 
-	    IL_00e2:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	    IL_00e7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_00ec:  call object class [mscorlib]System.Convert::ChangeType(object, class [mscorlib]System.Type, class [mscorlib]System.IFormatProvider)
-	    IL_00f1:  stloc.2 
-	    IL_00f2:  leave IL_0144
+		.get instance default string NAnt.DotNet.Types.Module::get_Target () 
+		.set instance default void NAnt.DotNet.Types.Module::set_Target (string 'value') 
+	}
+	.property instance class NAnt.DotNet.Types.ModuleSet ModuleSet ()
+	{
+		.get instance default class NAnt.DotNet.Types.ModuleSet NAnt.DotNet.Types.Module::get_ModuleSet () 
+		.set instance default void NAnt.DotNet.Types.Module::set_ModuleSet (class NAnt.DotNet.Types.ModuleSet 'value') 
+	}
+  } // end of class NAnt.DotNet.Types.Module
+}
 
-	  } // end .try 0
-	  catch class [mscorlib]System.Exception { // 0
-	    IL_00f7:  stloc.s 7
-	    IL_00f9:  nop 
-	    IL_00fa:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_00ff:  ldstr "NA2006"
-	    IL_0104:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	    IL_0109:  ldarg.s 4
-	    IL_010b:  ldloc.s 6
-	    IL_010d:  ldc.i4.0 
-	    IL_010e:  ldelem.ref 
-	    IL_010f:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
-	    IL_0114:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	    IL_0119:  ldloc.1 
-	    IL_011a:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	    IL_011f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	    IL_0124:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	    IL_0129:  ldloc.s 7
-	    IL_012b:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	    IL_0130:  throw 
-	  } // end handler 0
-	  IL_0131:  nop 
-	  IL_0132:  nop 
-	  IL_0133:  ldloc.s 5
-	  IL_0135:  ldc.i4.1 
-	  IL_0136:  add 
-	  IL_0137:  stloc.s 5
-	  IL_0139:  ldloc.s 5
-	  IL_013b:  ldloc.s 4
-	  IL_013d:  ldlen 
-	  IL_013e:  conv.i4 
-	  IL_013f:  blt IL_0092
+.namespace NAnt.DotNet.Types
+{
+  .class public auto ansi sealed DebugOutput
+  	extends [mscorlib]System.Enum
+  {
+    .custom instance void class [System]System.ComponentModel.TypeConverterAttribute::'.ctor'(class [mscorlib]System.Type) =  (
+		01 00 26 4E 41 6E 74 2E 44 6F 74 4E 65 74 2E 54   // ..&NAnt.DotNet.T
+		79 70 65 73 2E 44 65 62 75 67 4F 75 74 70 75 74   // ypes.DebugOutput
+		43 6F 6E 76 65 72 74 65 72 00 00                ) // Converter..
 
-	  IL_0144:  ldloc.2 
-	  IL_0145:  brtrue IL_016b
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.DotNet.Types.DebugOutput None = int32(0x00000000)
+    .field public static literal  valuetype NAnt.DotNet.Types.DebugOutput Enable = int32(0x00000001)
+    .field public static literal  valuetype NAnt.DotNet.Types.DebugOutput Full = int32(0x00000002)
+    .field public static literal  valuetype NAnt.DotNet.Types.DebugOutput PdbOnly = int32(0x00000003)
 
-	  IL_014a:  nop 
-	  IL_014b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0150:  ldstr "NA2003"
-	  IL_0155:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_015a:  ldarg.3 
-	  IL_015b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0160:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	  IL_0165:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	  IL_016a:  throw 
-	  IL_016b:  nop 
-	  IL_016c:  ldloc.2 
-	  IL_016d:  stloc.s 8
-	  IL_016f:  leave IL_01d0
+  } // end of class NAnt.DotNet.Types.DebugOutput
+}
 
-	  IL_0174:  nop 
-	  IL_0175:  ldarg.3 
-	  IL_0176:  ldstr "Attribute"
-	  IL_017b:  callvirt instance bool string::EndsWith(string)
-	  IL_0180:  brtrue IL_01a6
+.namespace NAnt.DotNet.Types
+{
+  .class public auto ansi beforefieldinit DebugOutputConverter
+  	extends [System]System.ComponentModel.EnumConverter
+  {
 
-	  IL_0185:  nop 
-	  IL_0186:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_018b:  ldstr "NA2039"
-	  IL_0190:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_0195:  ldarg.3 
-	  IL_0196:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_019b:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	  IL_01a0:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	  IL_01a5:  throw 
-	  IL_01a6:  nop 
-	  IL_01a7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_01ac:  ldstr "NA2001"
-	  IL_01b1:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	  IL_01b6:  ldarg.3 
-	  IL_01b7:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_01bc:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	  IL_01c1:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	  IL_01c6:  throw 
-	} // end .try 1
-	finally  { // 1
-	  IL_01c7:  nop 
-	  IL_01c8:  ldloc.0 
-	  IL_01c9:  callvirt instance void class [NAnt.Core]NAnt.Core.Util.AssemblyResolver::Detach()
-	  IL_01ce:  nop 
-	  IL_01cf:  endfinally 
-	} // end handler 1
-	IL_01d0:  ldloc.s 8
-	IL_01d2:  ret 
-    } // end of method TypedValueGatherer::GetTypedValue
+    // method line 202
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x3b27
+	// Code size 18 (0x12)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldtoken NAnt.DotNet.Types.DebugOutput
+	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000b:  call instance void class [System]System.ComponentModel.EnumConverter::'.ctor'(class [mscorlib]System.Type)
+	IL_0010:  nop 
+	IL_0011:  ret 
+    } // end of method DebugOutputConverter::.ctor
 
-    // method line 324
-    .method private hidebysig 
-           instance default class [mscorlib]System.Type FindType (class [System]System.Collections.Specialized.StringCollection assemblies, class [System]System.Collections.Specialized.StringCollection imports, string typename)  cil managed 
+    // method line 203
+    .method public virtual hidebysig 
+           instance default object ConvertFrom (class [System]System.ComponentModel.ITypeDescriptorContext context, class [mscorlib]System.Globalization.CultureInfo culture, object 'value')  cil managed 
     {
-        // Method begins at RVA 0x7a58
-	// Code size 369 (0x171)
+        // Method begins at RVA 0x3b3c
+	// Code size 115 (0x73)
 	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Type	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringEnumerator	V_2,
-		class [mscorlib]System.Reflection.Assembly	V_3,
-		string	V_4,
-		class [System]System.Collections.Specialized.StringEnumerator	V_5,
-		class [mscorlib]System.IDisposable	V_6,
-		class [mscorlib]System.IDisposable	V_7,
-		string	V_8,
-		class [System]System.Collections.Specialized.StringEnumerator	V_9,
-		class [mscorlib]System.IDisposable	V_10,
-		class [mscorlib]System.Type	V_11)
+		string	V_0,
+		object	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  nop 
-	IL_0004:  ldarg.1 
-	IL_0005:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_000a:  stloc.2 
-	.try { // 1
-	  IL_000b:  br IL_00b3
-
-	  IL_0010:  ldloc.2 
-	  IL_0011:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0016:  stloc.1 
-	  IL_0017:  nop 
-	  IL_0018:  ldloc.1 
-	  IL_0019:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFrom(string)
-	  IL_001e:  stloc.3 
-	  IL_001f:  ldloc.3 
-	  IL_0020:  ldarg.3 
-	  IL_0021:  ldc.i4.0 
-	  IL_0022:  ldc.i4.0 
-	  IL_0023:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool, bool)
-	  IL_0028:  stloc.0 
-	  IL_0029:  ldloc.0 
-	  IL_002a:  ldnull 
-	  IL_002b:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_0030:  brfalse IL_00a0
-
-	  IL_0035:  nop 
-	  IL_0036:  nop 
-	  IL_0037:  ldarg.2 
-	  IL_0038:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_003d:  stloc.s 5
-	  .try { // 0
-	    IL_003f:  br IL_0077
-
-	    IL_0044:  ldloc.s 5
-	    IL_0046:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_004b:  stloc.s 4
-	    IL_004d:  nop 
-	    IL_004e:  ldloc.3 
-	    IL_004f:  ldloc.s 4
-	    IL_0051:  ldstr "."
-	    IL_0056:  ldarg.3 
-	    IL_0057:  call string string::Concat(string, string, string)
-	    IL_005c:  ldc.i4.0 
-	    IL_005d:  ldc.i4.0 
-	    IL_005e:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool, bool)
-	    IL_0063:  stloc.0 
-	    IL_0064:  ldloc.0 
-	    IL_0065:  ldnull 
-	    IL_0066:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	    IL_006b:  brfalse IL_0076
-
-	    IL_0070:  nop 
-	    IL_0071:  leave IL_0083
-
-	    IL_0076:  nop 
-	    IL_0077:  ldloc.s 5
-	    IL_0079:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_007e:  brtrue IL_0044
-
-	    IL_0083:  leave IL_009f
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_0088:  ldloc.s 5
-	    IL_008a:  isinst [mscorlib]System.IDisposable
-	    IL_008f:  dup 
-	    IL_0090:  stloc.s 6
-	    IL_0092:  brfalse IL_009e
-
-	    IL_0097:  ldloc.s 6
-	    IL_0099:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_009e:  endfinally 
-	  } // end handler 0
-	  IL_009f:  nop 
-	  IL_00a0:  ldloc.0 
-	  IL_00a1:  ldnull 
-	  IL_00a2:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_00a7:  brfalse IL_00b2
-
-	  IL_00ac:  nop 
-	  IL_00ad:  leave IL_00be
-
-	  IL_00b2:  nop 
-	  IL_00b3:  ldloc.2 
-	  IL_00b4:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_00b9:  brtrue IL_0010
-
-	  IL_00be:  leave IL_00d9
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00c3:  ldloc.2 
-	  IL_00c4:  isinst [mscorlib]System.IDisposable
-	  IL_00c9:  dup 
-	  IL_00ca:  stloc.s 7
-	  IL_00cc:  brfalse IL_00d8
-
-	  IL_00d1:  ldloc.s 7
-	  IL_00d3:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00d8:  endfinally 
-	} // end handler 1
-	IL_00d9:  ldloc.0 
-	IL_00da:  ldnull 
-	IL_00db:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_00e0:  brfalse IL_0166
-
-	IL_00e5:  nop 
-	IL_00e6:  ldarg.3 
-	IL_00e7:  ldc.i4.0 
-	IL_00e8:  ldc.i4.0 
-	IL_00e9:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool, bool)
-	IL_00ee:  stloc.0 
-	IL_00ef:  ldloc.0 
-	IL_00f0:  ldnull 
-	IL_00f1:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	IL_00f6:  brfalse IL_0165
-
-	IL_00fb:  nop 
-	IL_00fc:  nop 
-	IL_00fd:  ldarg.2 
-	IL_00fe:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0103:  stloc.s 9
-	.try { // 2
-	  IL_0105:  br IL_013c
-
-	  IL_010a:  ldloc.s 9
-	  IL_010c:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0111:  stloc.s 8
-	  IL_0113:  nop 
-	  IL_0114:  ldloc.s 8
-	  IL_0116:  ldstr "."
-	  IL_011b:  ldarg.3 
-	  IL_011c:  call string string::Concat(string, string, string)
-	  IL_0121:  ldc.i4.0 
-	  IL_0122:  ldc.i4.0 
-	  IL_0123:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool, bool)
-	  IL_0128:  stloc.0 
-	  IL_0129:  ldloc.0 
-	  IL_012a:  ldnull 
-	  IL_012b:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
-	  IL_0130:  brfalse IL_013b
+	IL_0001:  ldarg.3 
+	IL_0002:  isinst [mscorlib]System.String
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  brfalse IL_0062
 
-	  IL_0135:  nop 
-	  IL_0136:  leave IL_0148
+	IL_000e:  nop 
+	IL_000f:  ldloc.0 
+	IL_0010:  ldstr "true"
+	IL_0015:  ldc.i4.1 
+	IL_0016:  ldarg.2 
+	IL_0017:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_001c:  brtrue IL_002d
 
-	  IL_013b:  nop 
-	  IL_013c:  ldloc.s 9
-	  IL_013e:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0143:  brtrue IL_010a
+	IL_0021:  ldc.i4.1 
+	IL_0022:  box NAnt.DotNet.Types.DebugOutput
+	IL_0027:  stloc.1 
+	IL_0028:  br IL_0071
 
-	  IL_0148:  leave IL_0164
+	IL_002d:  ldloc.0 
+	IL_002e:  ldstr "false"
+	IL_0033:  ldc.i4.1 
+	IL_0034:  ldarg.2 
+	IL_0035:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_003a:  brtrue IL_004b
 
-	} // end .try 2
-	finally  { // 2
-	  IL_014d:  ldloc.s 9
-	  IL_014f:  isinst [mscorlib]System.IDisposable
-	  IL_0154:  dup 
-	  IL_0155:  stloc.s 10
-	  IL_0157:  brfalse IL_0163
+	IL_003f:  ldc.i4.0 
+	IL_0040:  box NAnt.DotNet.Types.DebugOutput
+	IL_0045:  stloc.1 
+	IL_0046:  br IL_0071
 
-	  IL_015c:  ldloc.s 10
-	  IL_015e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0163:  endfinally 
-	} // end handler 2
-	IL_0164:  nop 
-	IL_0165:  nop 
-	IL_0166:  ldloc.0 
-	IL_0167:  stloc.s 11
-	IL_0169:  br IL_016e
+	IL_004b:  ldtoken NAnt.DotNet.Types.DebugOutput
+	IL_0050:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0055:  ldloc.0 
+	IL_0056:  ldc.i4.1 
+	IL_0057:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	IL_005c:  stloc.1 
+	IL_005d:  br IL_0071
 
-	IL_016e:  ldloc.s 11
-	IL_0170:  ret 
-    } // end of method TypedValueGatherer::FindType
+	IL_0062:  ldarg.0 
+	IL_0063:  ldarg.1 
+	IL_0064:  ldarg.2 
+	IL_0065:  ldarg.3 
+	IL_0066:  call instance object class [System]System.ComponentModel.EnumConverter::ConvertFrom(class [System]System.ComponentModel.ITypeDescriptorContext, class [mscorlib]System.Globalization.CultureInfo, object)
+	IL_006b:  stloc.1 
+	IL_006c:  br IL_0071
 
-  } // end of class TypedValueGatherer
+	IL_0071:  ldloc.1 
+	IL_0072:  ret 
+    } // end of method DebugOutputConverter::ConvertFrom
 
-  } // end of class NAnt.DotNet.Tasks.AssemblyInfoTask
+  } // end of class NAnt.DotNet.Types.DebugOutputConverter
 }
 
-.namespace NAnt.DotNet.Tasks
+.namespace NAnt.DotNet.Types
 {
-  .class public auto ansi beforefieldinit RegsvcsTask
-  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  .class public auto ansi serializable beforefieldinit AssemblyAttribute
+  	extends [NAnt.Core]NAnt.Core.Element
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 72 65 67 73 76 63 73 00 00 ) // ...regsvcs..
-
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 00 00 00 00 00 00 ) // ........
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 09 61 74 74 72 69 62 75 74 65 00 00 ) // ...attribute..
 
-    .field  private  class [mscorlib]System.Text.StringBuilder _argumentBuilder
-    .field  private  valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType _action
-    .field  private  class [mscorlib]System.IO.FileInfo _assemblyFile
-    .field  private  string _applicationName
-    .field  private  class [mscorlib]System.IO.FileInfo _typeLibrary
-    .field  private  bool _existingTlb
-    .field  private  bool _existingApplication
-    .field  private  bool _noreconfig
-    .field  private  bool _componentsOnly
-    .field  private  string _partitionName
+    .field  private  string _typeName
+    .field  private  string _value
+    .field  private  bool _asIs
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
 
-    // method line 325
+    // method line 204
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x7c00
-	// Code size 56 (0x38)
+        // Method begins at RVA 0x3bbb
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldnull 
-	IL_0002:  stfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.DotNet.Types.AssemblyAttribute::_ifDefined
 	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  stfld valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType NAnt.DotNet.Tasks.RegsvcsTask::_action
-	IL_000e:  ldarg.0 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingTlb
-	IL_0015:  ldarg.0 
-	IL_0016:  ldc.i4.0 
-	IL_0017:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingApplication
-	IL_001c:  ldarg.0 
-	IL_001d:  ldc.i4.0 
-	IL_001e:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_noreconfig
-	IL_0023:  ldarg.0 
-	IL_0024:  ldc.i4.0 
-	IL_0025:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_componentsOnly
-	IL_002a:  ldarg.0 
-	IL_002b:  ldnull 
-	IL_002c:  stfld string NAnt.DotNet.Tasks.RegsvcsTask::_partitionName
-	IL_0031:  ldarg.0 
-	IL_0032:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
-	IL_0037:  ret 
-    } // end of method RegsvcsTask::.ctor
+	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method AssemblyAttribute::.ctor
 
-    // method line 326
+    // method line 205
     .method public hidebysig specialname 
-           instance default valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType get_Action ()  cil managed 
+           instance default string get_TypeName ()  cil managed 
     {
-        // Method begins at RVA 0x7c3c
+        // Method begins at RVA 0x3bcc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType NAnt.DotNet.Tasks.RegsvcsTask::_action
+	IL_0002:  ldfld string NAnt.DotNet.Types.AssemblyAttribute::_typeName
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method RegsvcsTask::get_Action
+    } // end of method AssemblyAttribute::get_TypeName
 
-    // method line 327
+    // method line 206
     .method public hidebysig specialname 
-           instance default void set_Action (valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType 'value')  cil managed 
+           instance default void set_TypeName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x7c58
-	// Code size 70 (0x46)
-	.maxstack 3
+        // Method begins at RVA 0x3be7
+	// Code size 14 (0xe)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldtoken NAnt.DotNet.Tasks.RegsvcsTask/ActionType
-	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000b:  ldarg.1 
-	IL_000c:  box NAnt.DotNet.Tasks.RegsvcsTask/ActionType
-	IL_0011:  call bool class [mscorlib]System.Enum::IsDefined(class [mscorlib]System.Type, object)
-	IL_0016:  brtrue IL_003c
-
-	IL_001b:  nop 
-	IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0021:  ldstr "NA2002"
-	IL_0026:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_002b:  ldarg.1 
-	IL_002c:  box NAnt.DotNet.Tasks.RegsvcsTask/ActionType
-	IL_0031:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0036:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_003b:  throw 
-	IL_003c:  nop 
-	IL_003d:  ldarg.0 
-	IL_003e:  ldarg.1 
-	IL_003f:  stfld valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType NAnt.DotNet.Tasks.RegsvcsTask::_action
-	IL_0044:  nop 
-	IL_0045:  ret 
-    } // end of method RegsvcsTask::set_Action
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Types.AssemblyAttribute::_typeName
+	IL_000d:  ret 
+    } // end of method AssemblyAttribute::set_TypeName
 
-    // method line 328
+    // method line 207
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_AssemblyFile ()  cil managed 
+           instance default string get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x7cac
+        // Method begins at RVA 0x3bf8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::_assemblyFile
+	IL_0002:  ldfld string NAnt.DotNet.Types.AssemblyAttribute::_value
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method RegsvcsTask::get_AssemblyFile
+    } // end of method AssemblyAttribute::get_Value
 
-    // method line 329
+    // method line 208
     .method public hidebysig specialname 
-           instance default void set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_Value (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x7cc7
+        // Method begins at RVA 0x3c13
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::_assemblyFile
+	IL_0003:  stfld string NAnt.DotNet.Types.AssemblyAttribute::_value
 	IL_0008:  ret 
-    } // end of method RegsvcsTask::set_AssemblyFile
+    } // end of method AssemblyAttribute::set_Value
 
-    // method line 330
+    // method line 209
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_TypeLibrary ()  cil managed 
+           instance default bool get_AsIs ()  cil managed 
     {
-        // Method begins at RVA 0x7cd4
+        // Method begins at RVA 0x3c20
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::_typeLibrary
+	IL_0002:  ldfld bool NAnt.DotNet.Types.AssemblyAttribute::_asIs
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method RegsvcsTask::get_TypeLibrary
+    } // end of method AssemblyAttribute::get_AsIs
 
-    // method line 331
+    // method line 210
     .method public hidebysig specialname 
-           instance default void set_TypeLibrary (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_AsIs (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x7cef
+        // Method begins at RVA 0x3c3b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::_typeLibrary
+	IL_0003:  stfld bool NAnt.DotNet.Types.AssemblyAttribute::_asIs
 	IL_0008:  ret 
-    } // end of method RegsvcsTask::set_TypeLibrary
+    } // end of method AssemblyAttribute::set_AsIs
 
-    // method line 332
+    // method line 211
     .method public hidebysig specialname 
-           instance default bool get_ExistingTypeLibrary ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x7cfc
+        // Method begins at RVA 0x3c48
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingTlb
+	IL_0002:  ldfld bool NAnt.DotNet.Types.AssemblyAttribute::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method RegsvcsTask::get_ExistingTypeLibrary
+    } // end of method AssemblyAttribute::get_IfDefined
 
-    // method line 333
+    // method line 212
     .method public hidebysig specialname 
-           instance default void set_ExistingTypeLibrary (bool 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x7d17
+        // Method begins at RVA 0x3c63
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingTlb
+	IL_0003:  stfld bool NAnt.DotNet.Types.AssemblyAttribute::_ifDefined
 	IL_0008:  ret 
-    } // end of method RegsvcsTask::set_ExistingTypeLibrary
+    } // end of method AssemblyAttribute::set_IfDefined
 
-    // method line 334
+    // method line 213
     .method public hidebysig specialname 
-           instance default bool get_NoReconfig ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x7d24
+        // Method begins at RVA 0x3c70
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.RegsvcsTask::_noreconfig
+	IL_0002:  ldfld bool NAnt.DotNet.Types.AssemblyAttribute::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method RegsvcsTask::get_NoReconfig
+    } // end of method AssemblyAttribute::get_UnlessDefined
 
-    // method line 335
+    // method line 214
     .method public hidebysig specialname 
-           instance default void set_NoReconfig (bool 'value')  cil managed 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x7d3f
+        // Method begins at RVA 0x3c8b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_noreconfig
+	IL_0003:  stfld bool NAnt.DotNet.Types.AssemblyAttribute::_unlessDefined
 	IL_0008:  ret 
-    } // end of method RegsvcsTask::set_NoReconfig
+    } // end of method AssemblyAttribute::set_UnlessDefined
 
-    // method line 336
+	.property instance string TypeName ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 74 79 70 65 01 00 54 02 08 52 65 71 75   // ...type..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.DotNet.Types.AssemblyAttribute::get_TypeName () 
+		.set instance default void NAnt.DotNet.Types.AssemblyAttribute::set_TypeName (string 'value') 
+	}
+	.property instance string Value ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 76 61 6C 75 65 00 00 ) // ...value..
+
+		.get instance default string NAnt.DotNet.Types.AssemblyAttribute::get_Value () 
+		.set instance default void NAnt.DotNet.Types.AssemblyAttribute::set_Value (string 'value') 
+	}
+	.property instance bool AsIs ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 61 73 69 73 00 00 ) // ...asis..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Types.AssemblyAttribute::get_AsIs () 
+		.set instance default void NAnt.DotNet.Types.AssemblyAttribute::set_AsIs (bool 'value') 
+	}
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Types.AssemblyAttribute::get_IfDefined () 
+		.set instance default void NAnt.DotNet.Types.AssemblyAttribute::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Types.AssemblyAttribute::get_UnlessDefined () 
+		.set instance default void NAnt.DotNet.Types.AssemblyAttribute::set_UnlessDefined (bool 'value') 
+	}
+  } // end of class NAnt.DotNet.Types.AssemblyAttribute
+}
+
+.namespace NAnt.DotNet.Types
+{
+  .class public auto ansi beforefieldinit Package
+  	extends [NAnt.Core]NAnt.Core.Element
+  {
+    .field  private  string _name
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
+
+    // method line 215
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x3c95
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.DotNet.Types.Package::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_000d:  ret 
+    } // end of method Package::.ctor
+
+    // method line 216
     .method public hidebysig specialname 
-           instance default bool get_ComponentsOnly ()  cil managed 
+           instance default string get_PackageName ()  cil managed 
     {
-        // Method begins at RVA 0x7d4c
+        // Method begins at RVA 0x3ca4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.RegsvcsTask::_componentsOnly
+	IL_0002:  ldfld string NAnt.DotNet.Types.Package::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method RegsvcsTask::get_ComponentsOnly
+    } // end of method Package::get_PackageName
 
-    // method line 337
+    // method line 217
     .method public hidebysig specialname 
-           instance default void set_ComponentsOnly (bool 'value')  cil managed 
+           instance default void set_PackageName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x7d67
+        // Method begins at RVA 0x3cbf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_componentsOnly
+	IL_0003:  stfld string NAnt.DotNet.Types.Package::_name
 	IL_0008:  ret 
-    } // end of method RegsvcsTask::set_ComponentsOnly
+    } // end of method Package::set_PackageName
 
-    // method line 338
+    // method line 218
     .method public hidebysig specialname 
-           instance default bool get_ExistingApplication ()  cil managed 
+           instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x7d74
+        // Method begins at RVA 0x3ccc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingApplication
+	IL_0002:  ldfld bool NAnt.DotNet.Types.Package::_ifDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method RegsvcsTask::get_ExistingApplication
+    } // end of method Package::get_IfDefined
 
-    // method line 339
+    // method line 219
     .method public hidebysig specialname 
-           instance default void set_ExistingApplication (bool 'value')  cil managed 
+           instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x7d8f
+        // Method begins at RVA 0x3ce7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingApplication
+	IL_0003:  stfld bool NAnt.DotNet.Types.Package::_ifDefined
 	IL_0008:  ret 
-    } // end of method RegsvcsTask::set_ExistingApplication
+    } // end of method Package::set_IfDefined
 
-    // method line 340
+    // method line 220
     .method public hidebysig specialname 
-           instance default string get_ApplicationName ()  cil managed 
+           instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x7d9c
+        // Method begins at RVA 0x3cf4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.RegsvcsTask::_applicationName
+	IL_0002:  ldfld bool NAnt.DotNet.Types.Package::_unlessDefined
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method RegsvcsTask::get_ApplicationName
+    } // end of method Package::get_UnlessDefined
 
-    // method line 341
+    // method line 221
     .method public hidebysig specialname 
-           instance default void set_ApplicationName (string 'value')  cil managed 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x7db7
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x3d0f
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.RegsvcsTask::_applicationName
-	IL_000d:  ret 
-    } // end of method RegsvcsTask::set_ApplicationName
+	IL_0003:  stfld bool NAnt.DotNet.Types.Package::_unlessDefined
+	IL_0008:  ret 
+    } // end of method Package::set_UnlessDefined
 
-    // method line 342
+	.property instance string PackageName ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.DotNet.Types.Package::get_PackageName () 
+		.set instance default void NAnt.DotNet.Types.Package::set_PackageName (string 'value') 
+	}
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Types.Package::get_IfDefined () 
+		.set instance default void NAnt.DotNet.Types.Package::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Types.Package::get_UnlessDefined () 
+		.set instance default void NAnt.DotNet.Types.Package::set_UnlessDefined (bool 'value') 
+	}
+  } // end of class NAnt.DotNet.Types.Package
+}
+
+.namespace NAnt.DotNet.Types
+{
+  .class public auto ansi beforefieldinit ResourceFileSet
+  	extends [NAnt.Core]NAnt.Core.Types.FileSet
+  	implements [mscorlib]System.ICloneable  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (
+		01 00 0F 72 65 73 6F 75 72 63 65 66 69 6C 65 73   // ...resourcefiles
+		65 74 00 00                                     ) // et..
+
+    .field  private  string _prefix
+    .field  private  bool _dynamicprefix
+
+    // method line 222
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x3d19
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method ResourceFileSet::.ctor
+
+    // method line 223
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [NAnt.Core]NAnt.Core.Types.FileSet fs)  cil managed 
+    {
+        // Method begins at RVA 0x3d22
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'(class [NAnt.Core]NAnt.Core.Types.FileSet)
+	IL_0007:  nop 
+	IL_0008:  ret 
+    } // end of method ResourceFileSet::.ctor
+
+    // method line 224
     .method public hidebysig specialname 
-           instance default string get_PartitionName ()  cil managed 
+           instance default string get_Prefix ()  cil managed 
     {
-        // Method begins at RVA 0x7dc8
+        // Method begins at RVA 0x3d2c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.RegsvcsTask::_partitionName
+	IL_0002:  ldfld string NAnt.DotNet.Types.ResourceFileSet::_prefix
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method RegsvcsTask::get_PartitionName
+    } // end of method ResourceFileSet::get_Prefix
 
-    // method line 343
+    // method line 225
     .method public hidebysig specialname 
-           instance default void set_PartitionName (string 'value')  cil managed 
+           instance default void set_Prefix (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x7de3
+        // Method begins at RVA 0x3d47
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
 	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.RegsvcsTask::_partitionName
+	IL_0008:  stfld string NAnt.DotNet.Types.ResourceFileSet::_prefix
 	IL_000d:  ret 
-    } // end of method RegsvcsTask::set_PartitionName
+    } // end of method ResourceFileSet::set_Prefix
 
-    // method line 344
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
+    // method line 226
+    .method public hidebysig specialname 
+           instance default bool get_DynamicPrefix ()  cil managed 
     {
-        // Method begins at RVA 0x7df4
-	// Code size 40 (0x28)
+        // Method begins at RVA 0x3d58
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_0007:  brfalse IL_001e
+	IL_0002:  ldfld bool NAnt.DotNet.Types.ResourceFileSet::_dynamicprefix
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_0013:  callvirt instance string object::ToString()
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_0026
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ResourceFileSet::get_DynamicPrefix
 
-	IL_001e:  nop 
-	IL_001f:  ldnull 
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
+    // method line 227
+    .method public hidebysig specialname 
+           instance default void set_DynamicPrefix (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3d73
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Types.ResourceFileSet::_dynamicprefix
+	IL_0008:  ret 
+    } // end of method ResourceFileSet::set_DynamicPrefix
 
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method RegsvcsTask::get_ProgramArguments
+    // method line 228
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_ResxFiles ()  cil managed 
+    {
+        // Method begins at RVA 0x3d80
+	// Code size 179 (0xb3)
+	.maxstack 2
+	.locals init (
+		class NAnt.DotNet.Types.ResourceFileSet	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		class [NAnt.Core]NAnt.Core.Types.FileSet	V_4)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance object class [NAnt.Core]NAnt.Core.Types.FileSet::Clone()
+	IL_0007:  castclass NAnt.DotNet.Types.ResourceFileSet
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	IL_0013:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
+	IL_0018:  ldloc.0 
+	IL_0019:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Excludes()
+	IL_001e:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
+	IL_0023:  ldloc.0 
+	IL_0024:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_AsIs()
+	IL_0029:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
+	IL_002e:  ldloc.0 
+	IL_002f:  ldc.i4.0 
+	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_FailOnEmpty(bool)
+	IL_0035:  nop 
+	IL_0036:  ldarg.0 
+	IL_0037:  call instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_003c:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0041:  stloc.2 
+	.try { // 0
+	  IL_0042:  br IL_007e
 
-    // method line 345
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+	  IL_0047:  ldloc.2 
+	  IL_0048:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_004d:  stloc.1 
+	  IL_004e:  nop 
+	  IL_004f:  ldloc.1 
+	  IL_0050:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	  IL_0055:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_005a:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	  IL_005f:  ldstr ".resx"
+	  IL_0064:  call bool string::op_Equality(string, string)
+	  IL_0069:  brfalse IL_007d
+
+	  IL_006e:  nop 
+	  IL_006f:  ldloc.0 
+	  IL_0070:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	  IL_0075:  ldloc.1 
+	  IL_0076:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_007b:  pop 
+	  IL_007c:  nop 
+	  IL_007d:  nop 
+	  IL_007e:  ldloc.2 
+	  IL_007f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0084:  brtrue IL_0047
+
+	  IL_0089:  leave IL_00a2
+
+	} // end .try 0
+	finally  { // 0
+	  IL_008e:  ldloc.2 
+	  IL_008f:  isinst [mscorlib]System.IDisposable
+	  IL_0094:  dup 
+	  IL_0095:  stloc.3 
+	  IL_0096:  brfalse IL_00a1
+
+	  IL_009b:  ldloc.3 
+	  IL_009c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00a1:  endfinally 
+	} // end handler 0
+	IL_00a2:  ldloc.0 
+	IL_00a3:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::Scan()
+	IL_00a8:  ldloc.0 
+	IL_00a9:  stloc.s 4
+	IL_00ab:  br IL_00b0
+
+	IL_00b0:  ldloc.s 4
+	IL_00b2:  ret 
+    } // end of method ResourceFileSet::get_ResxFiles
+
+    // method line 229
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_NonResxFiles ()  cil managed 
     {
-        // Method begins at RVA 0x7e28
-	// Code size 558 (0x22e)
-	.maxstack 7
+        // Method begins at RVA 0x3e50
+	// Code size 179 (0xb3)
+	.maxstack 2
 	.locals init (
-		valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType	V_0)
+		class NAnt.DotNet.Types.ResourceFileSet	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		class [NAnt.Core]NAnt.Core.Types.FileSet	V_4)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0007:  stfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType class NAnt.DotNet.Tasks.RegsvcsTask::get_Action()
-	IL_0012:  stloc.0 
-	IL_0013:  ldloc.0 
-	IL_0014:  ldc.i4.1 
-	IL_0015:  beq IL_002c
+	IL_0002:  callvirt instance object class [NAnt.Core]NAnt.Core.Types.FileSet::Clone()
+	IL_0007:  castclass NAnt.DotNet.Types.ResourceFileSet
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	IL_0013:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
+	IL_0018:  ldloc.0 
+	IL_0019:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Excludes()
+	IL_001e:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
+	IL_0023:  ldloc.0 
+	IL_0024:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_AsIs()
+	IL_0029:  callvirt instance void class [System]System.Collections.Specialized.StringCollection::Clear()
+	IL_002e:  ldloc.0 
+	IL_002f:  ldc.i4.0 
+	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_FailOnEmpty(bool)
+	IL_0035:  nop 
+	IL_0036:  ldarg.0 
+	IL_0037:  call instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_003c:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0041:  stloc.2 
+	.try { // 0
+	  IL_0042:  br IL_007e
+
+	  IL_0047:  ldloc.2 
+	  IL_0048:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_004d:  stloc.1 
+	  IL_004e:  nop 
+	  IL_004f:  ldloc.1 
+	  IL_0050:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	  IL_0055:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_005a:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	  IL_005f:  ldstr ".resx"
+	  IL_0064:  call bool string::op_Inequality(string, string)
+	  IL_0069:  brfalse IL_007d
+
+	  IL_006e:  nop 
+	  IL_006f:  ldloc.0 
+	  IL_0070:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	  IL_0075:  ldloc.1 
+	  IL_0076:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_007b:  pop 
+	  IL_007c:  nop 
+	  IL_007d:  nop 
+	  IL_007e:  ldloc.2 
+	  IL_007f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0084:  brtrue IL_0047
+
+	  IL_0089:  leave IL_00a2
+
+	} // end .try 0
+	finally  { // 0
+	  IL_008e:  ldloc.2 
+	  IL_008f:  isinst [mscorlib]System.IDisposable
+	  IL_0094:  dup 
+	  IL_0095:  stloc.3 
+	  IL_0096:  brfalse IL_00a1
+
+	  IL_009b:  ldloc.3 
+	  IL_009c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00a1:  endfinally 
+	} // end handler 0
+	IL_00a2:  ldloc.0 
+	IL_00a3:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::Scan()
+	IL_00a8:  ldloc.0 
+	IL_00a9:  stloc.s 4
+	IL_00ab:  br IL_00b0
+
+	IL_00b0:  ldloc.s 4
+	IL_00b2:  ret 
+    } // end of method ResourceFileSet::get_NonResxFiles
 
+    // method line 230
+    .method public virtual hidebysig 
+           instance default object Clone ()  cil managed 
+    {
+        // Method begins at RVA 0x3f20
+	// Code size 47 (0x2f)
+	.maxstack 2
+	.locals init (
+		class NAnt.DotNet.Types.ResourceFileSet	V_0,
+		object	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.DotNet.Types.ResourceFileSet::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  call instance void class [NAnt.Core]NAnt.Core.Types.FileSet::CopyTo(class [NAnt.Core]NAnt.Core.Types.FileSet)
+	IL_000e:  ldloc.0 
+	IL_000f:  ldarg.0 
+	IL_0010:  ldfld bool NAnt.DotNet.Types.ResourceFileSet::_dynamicprefix
+	IL_0015:  stfld bool NAnt.DotNet.Types.ResourceFileSet::_dynamicprefix
 	IL_001a:  ldloc.0 
-	IL_001b:  brfalse IL_006b
+	IL_001b:  ldarg.0 
+	IL_001c:  ldfld string NAnt.DotNet.Types.ResourceFileSet::_prefix
+	IL_0021:  stfld string NAnt.DotNet.Types.ResourceFileSet::_prefix
+	IL_0026:  ldloc.0 
+	IL_0027:  stloc.1 
+	IL_0028:  br IL_002d
 
-	IL_0020:  ldloc.0 
-	IL_0021:  ldc.i4.2 
-	IL_0022:  beq IL_00aa
+	IL_002d:  ldloc.1 
+	IL_002e:  ret 
+    } // end of method ResourceFileSet::Clone
 
-	IL_0027:  br IL_00e9
+    // method line 231
+    .method public hidebysig 
+           instance default string GetManifestResourceName (string resourceFile)  cil managed 
+    {
+        // Method begins at RVA 0x3f5c
+	// Code size 17 (0x11)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.1 
+	IL_0004:  call instance string class NAnt.DotNet.Types.ResourceFileSet::GetManifestResourceName(string, string)
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_000f
 
-	IL_002c:  ldarg.0 
-	IL_002d:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_0032:  ldstr "/c "
-	IL_0037:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_003c:  pop 
-	IL_003d:  ldarg.0 
-	IL_003e:  ldc.i4 3000
-	IL_0043:  ldstr "String_CreatingCOM+Application"
-	IL_0048:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_004d:  ldc.i4.1 
-	IL_004e:  newarr [mscorlib]System.Object
-	IL_0053:  dup 
-	IL_0054:  ldc.i4.0 
-	IL_0055:  ldarg.0 
-	IL_0056:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.RegsvcsTask::get_AssemblyFile()
-	IL_005b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0060:  stelem.ref 
-	IL_0061:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0066:  br IL_00e9
+	IL_000f:  ldloc.0 
+	IL_0010:  ret 
+    } // end of method ResourceFileSet::GetManifestResourceName
 
-	IL_006b:  ldarg.0 
-	IL_006c:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_0071:  ldstr "/fc "
-	IL_0076:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_007b:  pop 
-	IL_007c:  ldarg.0 
-	IL_007d:  ldc.i4 3000
-	IL_0082:  ldstr "String_FindingCOM+Application"
-	IL_0087:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_008c:  ldc.i4.1 
-	IL_008d:  newarr [mscorlib]System.Object
-	IL_0092:  dup 
-	IL_0093:  ldc.i4.0 
-	IL_0094:  ldarg.0 
-	IL_0095:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.RegsvcsTask::get_AssemblyFile()
-	IL_009a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_009f:  stelem.ref 
-	IL_00a0:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00a5:  br IL_00e9
+    // method line 232
+    .method public hidebysig 
+           instance default string GetManifestResourceName (string physicalPath, string logicalPath)  cil managed 
+    {
+        // Method begins at RVA 0x3f7c
+	// Code size 496 (0x1f0)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.Text.StringBuilder	V_0,
+		string	V_1,
+		char	V_2,
+		string	V_3,
+		char	V_4,
+		string	V_5,
+		string	V_6,
+		class [mscorlib]System.Text.StringBuilder	V_7,
+		string[]	V_8,
+		int32	V_9,
+		string	V_10,
+		int32	V_11,
+		char	V_12,
+		string	V_13)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.DotNet.Types.ResourceFileSet::get_Prefix()
+	IL_0007:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(string)
+	IL_000c:  stloc.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance bool class NAnt.DotNet.Types.ResourceFileSet::get_DynamicPrefix()
+	IL_0013:  brfalse IL_00fc
 
-	IL_00aa:  ldarg.0 
-	IL_00ab:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_00b0:  ldstr "/u "
-	IL_00b5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00ba:  pop 
-	IL_00bb:  ldarg.0 
-	IL_00bc:  ldc.i4 3000
-	IL_00c1:  ldstr "String_UninstallingCOM+Application"
-	IL_00c6:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00cb:  ldc.i4.1 
-	IL_00cc:  newarr [mscorlib]System.Object
-	IL_00d1:  dup 
-	IL_00d2:  ldc.i4.0 
-	IL_00d3:  ldarg.0 
-	IL_00d4:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.RegsvcsTask::get_AssemblyFile()
-	IL_00d9:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00de:  stelem.ref 
-	IL_00df:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00e4:  br IL_00e9
+	IL_0018:  nop 
+	IL_0019:  ldarg.0 
+	IL_001a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_001f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0024:  stloc.1 
+	IL_0025:  ldloc.1 
+	IL_0026:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_002b:  stloc.2 
+	IL_002c:  ldloca.s 2
+	IL_002e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0033:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
+	IL_0038:  callvirt instance bool string::EndsWith(string)
+	IL_003d:  brtrue IL_0055
 
-	IL_00e9:  ldarg.0 
-	IL_00ea:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.RegsvcsTask::get_TypeLibrary()
-	IL_00ef:  brfalse IL_0112
+	IL_0042:  nop 
+	IL_0043:  ldloc.1 
+	IL_0044:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_0049:  box [mscorlib]System.Char
+	IL_004e:  call string string::Concat(object, object)
+	IL_0053:  stloc.1 
+	IL_0054:  nop 
+	IL_0055:  ldarg.2 
+	IL_0056:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_005b:  stloc.3 
+	IL_005c:  ldloc.3 
+	IL_005d:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_0062:  stloc.s 4
+	IL_0064:  ldloca.s 4
+	IL_0066:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_006b:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
+	IL_0070:  callvirt instance bool string::EndsWith(string)
+	IL_0075:  brtrue IL_008d
 
-	IL_00f4:  nop 
-	IL_00f5:  ldarg.0 
-	IL_00f6:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_00fb:  ldstr "/tlb:\"{0}\" "
-	IL_0100:  ldarg.0 
-	IL_0101:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.RegsvcsTask::get_TypeLibrary()
-	IL_0106:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_010b:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	IL_0110:  pop 
-	IL_0111:  nop 
-	IL_0112:  ldarg.0 
-	IL_0113:  call instance bool class NAnt.DotNet.Tasks.RegsvcsTask::get_ExistingTypeLibrary()
-	IL_0118:  brfalse IL_0130
+	IL_007a:  nop 
+	IL_007b:  ldloc.3 
+	IL_007c:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_0081:  box [mscorlib]System.Char
+	IL_0086:  call string string::Concat(object, object)
+	IL_008b:  stloc.3 
+	IL_008c:  nop 
+	IL_008d:  ldsfld string [mscorlib]System.String::Empty
+	IL_0092:  stloc.s 5
+	IL_0094:  ldloc.3 
+	IL_0095:  ldloc.1 
+	IL_0096:  call bool string::op_Inequality(string, string)
+	IL_009b:  brfalse IL_00bc
 
-	IL_011d:  nop 
-	IL_011e:  ldarg.0 
-	IL_011f:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_0124:  ldstr "/extlb "
-	IL_0129:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_012e:  pop 
-	IL_012f:  nop 
-	IL_0130:  ldarg.0 
-	IL_0131:  call instance bool class NAnt.DotNet.Tasks.RegsvcsTask::get_NoReconfig()
-	IL_0136:  brfalse IL_014e
+	IL_00a0:  ldloc.3 
+	IL_00a1:  ldloc.1 
+	IL_00a2:  callvirt instance bool string::StartsWith(string)
+	IL_00a7:  brfalse IL_00bc
 
-	IL_013b:  nop 
-	IL_013c:  ldarg.0 
-	IL_013d:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_0142:  ldstr "/noreconfig "
-	IL_0147:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_014c:  pop 
-	IL_014d:  nop 
-	IL_014e:  ldarg.0 
-	IL_014f:  call instance bool class NAnt.DotNet.Tasks.RegsvcsTask::get_ComponentsOnly()
-	IL_0154:  brfalse IL_016c
+	IL_00ac:  nop 
+	IL_00ad:  ldloc.3 
+	IL_00ae:  ldloc.1 
+	IL_00af:  callvirt instance int32 string::get_Length()
+	IL_00b4:  callvirt instance string string::Substring(int32)
+	IL_00b9:  stloc.s 5
+	IL_00bb:  nop 
+	IL_00bc:  ldloc.s 5
+	IL_00be:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_00c3:  ldc.i4.s 0x2e
+	IL_00c5:  callvirt instance string string::Replace(char, char)
+	IL_00ca:  ldsfld char [mscorlib]System.IO.Path::AltDirectorySeparatorChar
+	IL_00cf:  ldc.i4.s 0x2e
+	IL_00d1:  callvirt instance string string::Replace(char, char)
+	IL_00d6:  stloc.s 6
+	IL_00d8:  ldloc.0 
+	IL_00d9:  callvirt instance int32 class [mscorlib]System.Text.StringBuilder::get_Length()
+	IL_00de:  ldc.i4.0 
+	IL_00df:  ble IL_00f2
 
-	IL_0159:  nop 
-	IL_015a:  ldarg.0 
-	IL_015b:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_0160:  ldstr "/componly "
-	IL_0165:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_016a:  pop 
-	IL_016b:  nop 
-	IL_016c:  ldarg.0 
-	IL_016d:  call instance string class NAnt.DotNet.Tasks.RegsvcsTask::get_ApplicationName()
-	IL_0172:  brfalse IL_0190
+	IL_00e4:  nop 
+	IL_00e5:  ldloc.0 
+	IL_00e6:  ldstr "."
+	IL_00eb:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00f0:  pop 
+	IL_00f1:  nop 
+	IL_00f2:  ldloc.0 
+	IL_00f3:  ldloc.s 6
+	IL_00f5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00fa:  pop 
+	IL_00fb:  nop 
+	IL_00fc:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0101:  stloc.s 7
+	IL_0103:  ldloc.0 
+	IL_0104:  callvirt instance string object::ToString()
+	IL_0109:  ldc.i4.s 0x2e
+	IL_010b:  ldc.i4.0 
+	IL_010c:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	IL_0111:  stloc.s 8
+	IL_0113:  ldc.i4.0 
+	IL_0114:  stloc.s 9
+	IL_0116:  br IL_01c6
 
-	IL_0177:  nop 
-	IL_0178:  ldarg.0 
-	IL_0179:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_017e:  ldstr "/appname:\"{0}\" "
-	IL_0183:  ldarg.0 
-	IL_0184:  call instance string class NAnt.DotNet.Tasks.RegsvcsTask::get_ApplicationName()
-	IL_0189:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	IL_018e:  pop 
-	IL_018f:  nop 
-	IL_0190:  ldarg.0 
-	IL_0191:  call instance bool class NAnt.DotNet.Tasks.RegsvcsTask::get_ExistingApplication()
-	IL_0196:  brfalse IL_01ae
+	IL_011b:  nop 
+	IL_011c:  ldloc.s 8
+	IL_011e:  ldloc.s 9
+	IL_0120:  ldelem.ref 
+	IL_0121:  stloc.s 10
+	IL_0123:  ldloc.s 10
+	IL_0125:  callvirt instance int32 string::get_Length()
+	IL_012a:  brtrue IL_0135
 
-	IL_019b:  nop 
-	IL_019c:  ldarg.0 
-	IL_019d:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_01a2:  ldstr "/exapp "
-	IL_01a7:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_01ac:  pop 
-	IL_01ad:  nop 
-	IL_01ae:  ldarg.0 
-	IL_01af:  call instance string class NAnt.DotNet.Tasks.RegsvcsTask::get_PartitionName()
-	IL_01b4:  brfalse IL_01d2
+	IL_012f:  nop 
+	IL_0130:  br IL_01c0
 
-	IL_01b9:  nop 
-	IL_01ba:  ldarg.0 
-	IL_01bb:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_01c0:  ldstr "/parname:\"{0}\" "
-	IL_01c5:  ldarg.0 
-	IL_01c6:  call instance string class NAnt.DotNet.Tasks.RegsvcsTask::get_PartitionName()
-	IL_01cb:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	IL_01d0:  pop 
-	IL_01d1:  nop 
-	IL_01d2:  ldarg.0 
-	IL_01d3:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_01d8:  brtrue IL_01f0
+	IL_0135:  ldc.i4.0 
+	IL_0136:  stloc.s 11
+	IL_0138:  br IL_01a7
 
-	IL_01dd:  nop 
-	IL_01de:  ldarg.0 
-	IL_01df:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_01e4:  ldstr "/quiet "
-	IL_01e9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_01ee:  pop 
-	IL_01ef:  nop 
-	IL_01f0:  ldarg.0 
-	IL_01f1:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_01f6:  ldstr "/nologo "
-	IL_01fb:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0200:  pop 
-	IL_0201:  ldarg.0 
-	IL_0202:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
-	IL_0207:  ldstr "\""
-	IL_020c:  ldarg.0 
-	IL_020d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.RegsvcsTask::get_AssemblyFile()
-	IL_0212:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0217:  ldstr "\""
-	IL_021c:  call string string::Concat(string, string, string)
-	IL_0221:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0226:  pop 
-	IL_0227:  ldarg.0 
-	IL_0228:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	IL_022d:  ret 
-    } // end of method RegsvcsTask::ExecuteTask
+	IL_013d:  nop 
+	IL_013e:  ldloc.s 10
+	IL_0140:  ldloc.s 11
+	IL_0142:  callvirt instance char string::get_Chars(int32)
+	IL_0147:  stloc.s 12
+	IL_0149:  ldloc.s 11
+	IL_014b:  brtrue IL_0177
 
-	.property instance valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType Action ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 61 63 74 69 6F 6E 00 00 ) // ...action..
+	IL_0150:  ldloc.s 12
+	IL_0152:  call bool char::IsDigit(char)
+	IL_0157:  brfalse IL_0177
 
-		.get instance default valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType NAnt.DotNet.Tasks.RegsvcsTask::get_Action () 
-		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_Action (valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo AssemblyFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 61 73 73 65 6D 62 6C 79 01 00 54 02 08   // ...assembly..T..
-		52 65 71 75 69 72 65 64 01                      ) // Required.
+	IL_015c:  nop 
+	IL_015d:  ldloc.s 7
+	IL_015f:  ldc.i4.s 0x5f
+	IL_0161:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_0166:  pop 
+	IL_0167:  ldloc.s 7
+	IL_0169:  ldloc.s 12
+	IL_016b:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_0170:  pop 
+	IL_0171:  nop 
+	IL_0172:  br IL_01a0
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+	IL_0177:  ldloc.s 12
+	IL_0179:  call bool char::IsLetterOrDigit(char)
+	IL_017e:  brtrue IL_0194
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::get_AssemblyFile () 
-		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo TypeLibrary ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 74 6C 62 00 00 ) // ...tlb..
+	IL_0183:  nop 
+	IL_0184:  ldloc.s 7
+	IL_0186:  ldc.i4.s 0x5f
+	IL_0188:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_018d:  pop 
+	IL_018e:  nop 
+	IL_018f:  br IL_01a0
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::get_TypeLibrary () 
-		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_TypeLibrary (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance bool ExistingTypeLibrary ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 65 78 69 73 74 69 6E 67 74 6C 62 00 00 ) // ...existingtlb..
+	IL_0194:  nop 
+	IL_0195:  ldloc.s 7
+	IL_0197:  ldloc.s 12
+	IL_0199:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_019e:  pop 
+	IL_019f:  nop 
+	IL_01a0:  nop 
+	IL_01a1:  ldloc.s 11
+	IL_01a3:  ldc.i4.1 
+	IL_01a4:  add 
+	IL_01a5:  stloc.s 11
+	IL_01a7:  ldloc.s 11
+	IL_01a9:  ldloc.s 10
+	IL_01ab:  callvirt instance int32 string::get_Length()
+	IL_01b0:  blt IL_013d
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_01b5:  ldloc.s 7
+	IL_01b7:  ldc.i4.s 0x2e
+	IL_01b9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	IL_01be:  pop 
+	IL_01bf:  nop 
+	IL_01c0:  ldloc.s 9
+	IL_01c2:  ldc.i4.1 
+	IL_01c3:  add 
+	IL_01c4:  stloc.s 9
+	IL_01c6:  ldloc.s 9
+	IL_01c8:  ldloc.s 8
+	IL_01ca:  ldlen 
+	IL_01cb:  conv.i4 
+	IL_01cc:  blt IL_011b
 
-		.get instance default bool NAnt.DotNet.Tasks.RegsvcsTask::get_ExistingTypeLibrary () 
-		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_ExistingTypeLibrary (bool 'value') 
-	}
-	.property instance bool NoReconfig ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 6E 6F 72 65 63 6F 6E 66 69 67 00 00 ) // ...noreconfig..
+	IL_01d1:  ldloc.s 7
+	IL_01d3:  ldarg.1 
+	IL_01d4:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_01d9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_01de:  pop 
+	IL_01df:  ldloc.s 7
+	IL_01e1:  callvirt instance string object::ToString()
+	IL_01e6:  stloc.s 13
+	IL_01e8:  br IL_01ed
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_01ed:  ldloc.s 13
+	IL_01ef:  ret 
+    } // end of method ResourceFileSet::GetManifestResourceName
 
-		.get instance default bool NAnt.DotNet.Tasks.RegsvcsTask::get_NoReconfig () 
-		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_NoReconfig (bool 'value') 
-	}
-	.property instance bool ComponentsOnly ()
+	.property instance string Prefix ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0E 63 6F 6D 70 6F 6E 65 6E 74 73 6F 6E 6C   // ...componentsonl
-		79 00 00                                        ) // y..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 70 72 65 66 69 78 00 00 ) // ...prefix..
 
-		.get instance default bool NAnt.DotNet.Tasks.RegsvcsTask::get_ComponentsOnly () 
-		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_ComponentsOnly (bool 'value') 
+		.get instance default string NAnt.DotNet.Types.ResourceFileSet::get_Prefix () 
+		.set instance default void NAnt.DotNet.Types.ResourceFileSet::set_Prefix (string 'value') 
 	}
-	.property instance bool ExistingApplication ()
+	.property instance bool DynamicPrefix ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 65 78 69 73 74 69 6E 67 61 70 70 00 00 ) // ...existingapp..
-
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.DotNet.Tasks.RegsvcsTask::get_ExistingApplication () 
-		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_ExistingApplication (bool 'value') 
-	}
-	.property instance string ApplicationName ()
-	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 61 70 70 6C 69 63 61 74 69 6F 6E 00 00 ) // ...application..
+		01 00 0D 64 79 6E 61 6D 69 63 70 72 65 66 69 78   // ...dynamicprefix
+		00 00                                           ) // ..
 
-		.get instance default string NAnt.DotNet.Tasks.RegsvcsTask::get_ApplicationName () 
-		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_ApplicationName (string 'value') 
+		.get instance default bool NAnt.DotNet.Types.ResourceFileSet::get_DynamicPrefix () 
+		.set instance default void NAnt.DotNet.Types.ResourceFileSet::set_DynamicPrefix (bool 'value') 
 	}
-	.property instance string PartitionName ()
+	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet ResxFiles ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 70 61 72 74 69 74 69 6F 6E 00 00 ) // ...partition..
-
-		.get instance default string NAnt.DotNet.Tasks.RegsvcsTask::get_PartitionName () 
-		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_PartitionName (string 'value') 
+		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Types.ResourceFileSet::get_ResxFiles () 
 	}
-	.property instance string ProgramArguments ()
+	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet NonResxFiles ()
 	{
-		.get instance default string NAnt.DotNet.Tasks.RegsvcsTask::get_ProgramArguments () 
+		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Types.ResourceFileSet::get_NonResxFiles () 
 	}
-  .class nested public auto ansi sealed ActionType
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType FindOrCreate = int32(0x00000000)
-    .field public static literal  valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType Create = int32(0x00000001)
-    .field public static literal  valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType Uninstall = int32(0x00000002)
-
-  } // end of class ActionType
-
-  } // end of class NAnt.DotNet.Tasks.RegsvcsTask
+  } // end of class NAnt.DotNet.Types.ResourceFileSet
 }
 
-.namespace NAnt.DotNet.Tasks
+.namespace NAnt.DotNet.Types
 {
-  .class public auto ansi beforefieldinit DelaySignTask
-  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  .class public auto ansi serializable beforefieldinit AssemblyAttributeCollection
+  	extends [mscorlib]System.Collections.CollectionBase
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 0A 64 65 6C 61 79 2D 73 69 67 6E 00 00 ) // ...delay-sign..
-
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 01 00 00 00 00 00 ) // ........
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _targets
-    .field  private  class [mscorlib]System.IO.FileInfo _keyFile
-    .field  private  string _keyContainer
-    .field  private  class [mscorlib]System.Text.StringBuilder _argumentBuilder
 
-    // method line 346
+    // method line 233
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x8062
-	// Code size 18 (0x12)
+        // Method begins at RVA 0x4178
+	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0006:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.DelaySignTask::_targets
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
-	IL_0011:  ret 
-    } // end of method DelaySignTask::.ctor
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method AssemblyAttributeCollection::.ctor
 
-    // method line 347
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Targets ()  cil managed 
+    // method line 234
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyAttributeCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x8078
+        // Method begins at RVA 0x4181
 	// Code size 15 (0xf)
-	.maxstack 1
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.DotNet.Types.AssemblyAttributeCollection::AddRange(class NAnt.DotNet.Types.AssemblyAttributeCollection)
+	IL_000e:  ret 
+    } // end of method AssemblyAttributeCollection::.ctor
+
+    // method line 235
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyAttribute[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x4191
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.DotNet.Types.AssemblyAttributeCollection::AddRange(class NAnt.DotNet.Types.AssemblyAttribute[])
+	IL_000e:  ret 
+    } // end of method AssemblyAttributeCollection::.ctor
+
+    // method line 236
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.AssemblyAttribute get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x41a4
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
+		class NAnt.DotNet.Types.AssemblyAttribute	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.DelaySignTask::_targets
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.DotNet.Types.AssemblyAttribute
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method DelaySignTask::get_Targets
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method AssemblyAttributeCollection::get_Item
 
-    // method line 348
+    // method line 237
     .method public hidebysig specialname 
-           instance default void set_Targets (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_Item (int32 index, class NAnt.DotNet.Types.AssemblyAttribute 'value')  cil managed 
     {
-        // Method begins at RVA 0x8093
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x41ca
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.DelaySignTask::_targets
-	IL_0008:  ret 
-    } // end of method DelaySignTask::set_Targets
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method AssemblyAttributeCollection::set_Item
 
-    // method line 349
+    // method line 238
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
+           instance default class NAnt.DotNet.Types.AssemblyAttribute get_Item (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x80a0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x41dc
+	// Code size 111 (0x6f)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		class NAnt.DotNet.Types.AssemblyAttribute	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.DotNet.Types.AssemblyAttribute	V_2,
+		class [mscorlib]System.IDisposable	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brfalse IL_0066
+
+	IL_0007:  nop 
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_000f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0014:  stloc.1 
+	.try { // 0
+	  IL_0015:  br IL_0041
+
+	  IL_001a:  ldloc.1 
+	  IL_001b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0020:  castclass NAnt.DotNet.Types.AssemblyAttribute
+	  IL_0025:  stloc.0 
+	  IL_0026:  nop 
+	  IL_0027:  ldarg.1 
+	  IL_0028:  ldloc.0 
+	  IL_0029:  callvirt instance string class NAnt.DotNet.Types.AssemblyAttribute::get_Value()
+	  IL_002e:  callvirt instance bool string::Equals(string)
+	  IL_0033:  brfalse IL_0040
+
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.0 
+	  IL_003a:  stloc.2 
+	  IL_003b:  leave IL_006d
+
+	  IL_0040:  nop 
+	  IL_0041:  ldloc.1 
+	  IL_0042:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0047:  brtrue IL_001a
+
+	  IL_004c:  leave IL_0065
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0051:  ldloc.1 
+	  IL_0052:  isinst [mscorlib]System.IDisposable
+	  IL_0057:  dup 
+	  IL_0058:  stloc.3 
+	  IL_0059:  brfalse IL_0064
+
+	  IL_005e:  ldloc.3 
+	  IL_005f:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0064:  endfinally 
+	} // end handler 0
+	IL_0065:  nop 
+	IL_0066:  ldnull 
+	IL_0067:  stloc.2 
+	IL_0068:  br IL_006d
+
+	IL_006d:  ldloc.2 
+	IL_006e:  ret 
+    } // end of method AssemblyAttributeCollection::get_Item
+
+    // method line 239
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
+    {
+        // Method begins at RVA 0x4268
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.DelaySignTask::_keyFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_000d:  ldloc.0 
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method AssemblyAttributeCollection::Add
+
+    // method line 240
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.DotNet.Types.AssemblyAttribute[] items)  cil managed 
+    {
+        // Method begins at RVA 0x428c
+	// Code size 34 (0x22)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.DotNet.Types.AssemblyAttributeCollection::Add(class NAnt.DotNet.Types.AssemblyAttribute)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
+
+	IL_0021:  ret 
+    } // end of method AssemblyAttributeCollection::AddRange
+
+    // method line 241
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.DotNet.Types.AssemblyAttributeCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x42bc
+	// Code size 41 (0x29)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.DotNet.Types.AssemblyAttribute class NAnt.DotNet.Types.AssemblyAttributeCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.DotNet.Types.AssemblyAttributeCollection::Add(class NAnt.DotNet.Types.AssemblyAttribute)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
+
+	IL_0028:  ret 
+    } // end of method AssemblyAttributeCollection::AddRange
+
+    // method line 242
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
+    {
+        // Method begins at RVA 0x42f4
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method AssemblyAttributeCollection::Contains
+
+    // method line 243
+    .method public hidebysig 
+           instance default bool Contains (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x4318
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance class NAnt.DotNet.Types.AssemblyAttribute class NAnt.DotNet.Types.AssemblyAttributeCollection::get_Item(string)
+	IL_0008:  ldnull 
+	IL_0009:  ceq 
+	IL_000b:  ldc.i4.0 
+	IL_000c:  ceq 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0014
+
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method AssemblyAttributeCollection::Contains
+
+    // method line 244
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.DotNet.Types.AssemblyAttribute[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x433a
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
 	IL_000e:  ret 
-    } // end of method DelaySignTask::get_KeyFile
+    } // end of method AssemblyAttributeCollection::CopyTo
 
-    // method line 350
-    .method public hidebysig specialname 
-           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    // method line 245
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
     {
-        // Method begins at RVA 0x80bb
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x434c
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method AssemblyAttributeCollection::IndexOf
+
+    // method line 246
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
+    {
+        // Method begins at RVA 0x436d
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.DelaySignTask::_keyFile
-	IL_0008:  ret 
-    } // end of method DelaySignTask::set_KeyFile
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method AssemblyAttributeCollection::Insert
 
-    // method line 351
-    .method public hidebysig specialname 
-           instance default string get_KeyContainer ()  cil managed 
+    // method line 247
+    .method public hidebysig 
+           instance default class NAnt.DotNet.Types.AssemblyAttributeEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x80c8
+        // Method begins at RVA 0x4380
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.DotNet.Types.AssemblyAttributeEnumerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.DelaySignTask::_keyContainer
+	IL_0002:  newobj instance void class NAnt.DotNet.Types.AssemblyAttributeEnumerator::'.ctor'(class NAnt.DotNet.Types.AssemblyAttributeCollection)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method DelaySignTask::get_KeyContainer
+    } // end of method AssemblyAttributeCollection::GetEnumerator
 
-    // method line 352
-    .method public hidebysig specialname 
-           instance default void set_KeyContainer (string 'value')  cil managed 
+    // method line 248
+    .method public hidebysig 
+           instance default void Remove (class NAnt.DotNet.Types.AssemblyAttribute item)  cil managed 
     {
-        // Method begins at RVA 0x80e3
+        // Method begins at RVA 0x439b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.DelaySignTask::_keyContainer
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
 	IL_000d:  ret 
-    } // end of method DelaySignTask::set_KeyContainer
+    } // end of method AssemblyAttributeCollection::Remove
 
-    // method line 353
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
+	.property instance class NAnt.DotNet.Types.AssemblyAttribute Item (int32)
+	{
+		.get instance default class NAnt.DotNet.Types.AssemblyAttribute NAnt.DotNet.Types.AssemblyAttributeCollection::get_Item (int32 index) 
+		.set instance default void NAnt.DotNet.Types.AssemblyAttributeCollection::set_Item (int32 index, class NAnt.DotNet.Types.AssemblyAttribute 'value') 
+	}
+	.property instance class NAnt.DotNet.Types.AssemblyAttribute Item (string)
+	{
+		.get instance default class NAnt.DotNet.Types.AssemblyAttribute NAnt.DotNet.Types.AssemblyAttributeCollection::get_Item (string 'value') 
+	}
+  } // end of class NAnt.DotNet.Types.AssemblyAttributeCollection
+}
+
+.namespace NAnt.DotNet.Types
+{
+  .class public auto ansi beforefieldinit AssemblyAttributeEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+
+    // method line 249
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.DotNet.Types.AssemblyAttributeCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x80f4
-	// Code size 40 (0x28)
+        // Method begins at RVA 0x43ac
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method AssemblyAttributeEnumerator::.ctor
+
+    // method line 250
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.AssemblyAttribute get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x43d0
+	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.DotNet.Types.AssemblyAttribute	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
-	IL_0007:  brfalse IL_001e
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.DotNet.Types.AssemblyAttribute
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
-	IL_0013:  callvirt instance string object::ToString()
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_0026
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method AssemblyAttributeEnumerator::get_Current
 
-	IL_001e:  nop 
-	IL_001f:  ldnull 
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
+    // method line 251
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x43f8
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method DelaySignTask::get_ProgramArguments
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method AssemblyAttributeEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 354
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 252
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x8128
-	// Code size 429 (0x1ad)
-	.maxstack 7
+        // Method begins at RVA 0x4418
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		bool	V_0,
-		bool	V_1,
-		string	V_2,
-		string	V_3,
-		class [System]System.Collections.Specialized.StringEnumerator	V_4,
-		class [mscorlib]System.IDisposable	V_5)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.DelaySignTask::get_KeyFile()
-	IL_0007:  ldnull 
-	IL_0008:  ceq 
-	IL_000a:  ldc.i4.0 
-	IL_000b:  ceq 
-	IL_000d:  stloc.0 
-	IL_000e:  ldarg.0 
-	IL_000f:  call instance string class NAnt.DotNet.Tasks.DelaySignTask::get_KeyContainer()
-	IL_0014:  ldnull 
-	IL_0015:  ceq 
-	IL_0017:  ldc.i4.0 
-	IL_0018:  ceq 
-	IL_001a:  stloc.1 
-	IL_001b:  ldloc.1 
-	IL_001c:  brfalse IL_002c
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0021:  ldarg.0 
-	IL_0022:  call instance string class NAnt.DotNet.Tasks.DelaySignTask::get_KeyContainer()
-	IL_0027:  br IL_0037
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method AssemblyAttributeEnumerator::MoveNext
 
-	IL_002c:  ldarg.0 
-	IL_002d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.DelaySignTask::get_KeyFile()
-	IL_0032:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0037:  stloc.2 
-	IL_0038:  ldarg.0 
-	IL_0039:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.DelaySignTask::get_Targets()
-	IL_003e:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_0043:  brtrue IL_0065
+    // method line 253
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x4438
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0048:  nop 
-	IL_0049:  ldarg.0 
-	IL_004a:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.DelaySignTask::get_Targets()
-	IL_004f:  ldarg.0 
-	IL_0050:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0055:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	IL_005a:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_005f:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_0064:  nop 
-	IL_0065:  ldloc.0 
-	IL_0066:  brfalse IL_0071
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method AssemblyAttributeEnumerator::System.Collections.IEnumerator.MoveNext
 
-	IL_006b:  ldloc.1 
-	IL_006c:  brtrue IL_007d
+    // method line 254
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x4458
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method AssemblyAttributeEnumerator::Reset
 
-	IL_0071:  ldloc.0 
-	IL_0072:  brtrue IL_0094
+    // method line 255
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x4466
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.DotNet.Types.AssemblyAttributeEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method AssemblyAttributeEnumerator::System.Collections.IEnumerator.Reset
 
-	IL_0077:  ldloc.1 
-	IL_0078:  brtrue IL_0094
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.DotNet.Types.AssemblyAttributeEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.DotNet.Types.AssemblyAttribute Current ()
+	{
+		.get instance default class NAnt.DotNet.Types.AssemblyAttribute NAnt.DotNet.Types.AssemblyAttributeEnumerator::get_Current () 
+	}
+  } // end of class NAnt.DotNet.Types.AssemblyAttributeEnumerator
+}
 
-	IL_007d:  nop 
-	IL_007e:  ldstr "NA2012"
-	IL_0083:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0088:  ldarg.0 
-	IL_0089:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_008e:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0093:  throw 
-	IL_0094:  ldarg.0 
-	IL_0095:  ldc.i4 3000
-	IL_009a:  ldstr "String_DelaySigningAssemblies"
-	IL_009f:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00a4:  ldc.i4.1 
-	IL_00a5:  newarr [mscorlib]System.Object
-	IL_00aa:  dup 
-	IL_00ab:  ldc.i4.0 
-	IL_00ac:  ldarg.0 
-	IL_00ad:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.DelaySignTask::get_Targets()
-	IL_00b2:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_00b7:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_00bc:  box [mscorlib]System.Int32
-	IL_00c1:  stelem.ref 
-	IL_00c2:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00c7:  nop 
-	IL_00c8:  ldarg.0 
-	IL_00c9:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.DelaySignTask::get_Targets()
-	IL_00ce:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_00d3:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_00d8:  stloc.s 4
-	.try { // 0
-	  IL_00da:  br IL_0184
+.namespace NAnt.DotNet.Types
+{
+  .class public auto ansi serializable beforefieldinit ModuleSet
+  	extends [NAnt.Core]NAnt.Core.DataTypeBase
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 09 6D 6F 64 75 6C 65 73 65 74 00 00 ) // ...moduleset..
 
-	  IL_00df:  ldloc.s 4
-	  IL_00e1:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_00e6:  stloc.3 
-	  IL_00e7:  nop 
-	  IL_00e8:  ldarg.0 
-	  IL_00e9:  ldc.i4.s 0x09
-	  IL_00eb:  ldloc.3 
-	  IL_00ec:  callvirt instance int32 string::get_Length()
-	  IL_00f1:  add 
-	  IL_00f2:  ldloc.2 
-	  IL_00f3:  callvirt instance int32 string::get_Length()
-	  IL_00f8:  add 
-	  IL_00f9:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(int32)
-	  IL_00fe:  stfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
-	  IL_0103:  ldarg.0 
-	  IL_0104:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	  IL_0109:  brtrue IL_0121
+    .field  private initonly  class NAnt.DotNet.Types.ModuleCollection _modules
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _dir
 
-	  IL_010e:  nop 
-	  IL_010f:  ldarg.0 
-	  IL_0110:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
-	  IL_0115:  ldstr "-q "
-	  IL_011a:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_011f:  pop 
-	  IL_0120:  nop 
-	  IL_0121:  ldarg.0 
-	  IL_0122:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
-	  IL_0127:  ldstr "-R"
-	  IL_012c:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_0131:  pop 
-	  IL_0132:  ldloc.1 
-	  IL_0133:  brfalse IL_0148
+    // method line 256
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x4474
+	// Code size 20 (0x14)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.DataTypeBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  newobj instance void class NAnt.DotNet.Types.ModuleCollection::'.ctor'(class NAnt.DotNet.Types.ModuleSet)
+	IL_000e:  stfld class NAnt.DotNet.Types.ModuleCollection NAnt.DotNet.Types.ModuleSet::_modules
+	IL_0013:  ret 
+    } // end of method ModuleSet::.ctor
 
-	  IL_0138:  nop 
-	  IL_0139:  ldarg.0 
-	  IL_013a:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
-	  IL_013f:  ldc.i4.s 0x63
-	  IL_0141:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	  IL_0146:  pop 
-	  IL_0147:  nop 
-	  IL_0148:  ldarg.0 
-	  IL_0149:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
-	  IL_014e:  ldstr " \""
-	  IL_0153:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_0158:  ldloc.3 
-	  IL_0159:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_015e:  ldstr "\" \""
-	  IL_0163:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_0168:  pop 
-	  IL_0169:  ldarg.0 
-	  IL_016a:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
-	  IL_016f:  ldloc.2 
-	  IL_0170:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	  IL_0175:  ldc.i4.s 0x22
-	  IL_0177:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
-	  IL_017c:  pop 
-	  IL_017d:  ldarg.0 
-	  IL_017e:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	  IL_0183:  nop 
-	  IL_0184:  ldloc.s 4
-	  IL_0186:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_018b:  brtrue IL_00df
+    // method line 257
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_Dir ()  cil managed 
+    {
+        // Method begins at RVA 0x448c
+	// Code size 62 (0x3e)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Types.ModuleSet::_dir
+	IL_0007:  brtrue IL_0030
 
-	  IL_0190:  leave IL_01ac
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0013:  brfalse IL_002f
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0195:  ldloc.s 4
-	  IL_0197:  isinst [mscorlib]System.IDisposable
-	  IL_019c:  dup 
-	  IL_019d:  stloc.s 5
-	  IL_019f:  brfalse IL_01ab
+	IL_0018:  nop 
+	IL_0019:  ldarg.0 
+	IL_001a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_001f:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	IL_0024:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0029:  stloc.0 
+	IL_002a:  br IL_003c
 
-	  IL_01a4:  ldloc.s 5
-	  IL_01a6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01ab:  endfinally 
-	} // end handler 0
-	IL_01ac:  ret 
-    } // end of method DelaySignTask::ExecuteTask
+	IL_002f:  nop 
+	IL_0030:  ldarg.0 
+	IL_0031:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Types.ModuleSet::_dir
+	IL_0036:  stloc.0 
+	IL_0037:  br IL_003c
 
-	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet Targets ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 74 61 72 67 65 74 73 00 00 ) // ...targets..
+	IL_003c:  ldloc.0 
+	IL_003d:  ret 
+    } // end of method ModuleSet::get_Dir
 
-		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.DelaySignTask::get_Targets () 
-		.set instance default void NAnt.DotNet.Tasks.DelaySignTask::set_Targets (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo KeyFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6B 65 79 66 69 6C 65 00 00 ) // ...keyfile..
+    // method line 258
+    .method public hidebysig specialname 
+           instance default void set_Dir (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x44d6
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Types.ModuleSet::_dir
+	IL_0008:  ret 
+    } // end of method ModuleSet::set_Dir
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.DelaySignTask::get_KeyFile () 
-		.set instance default void NAnt.DotNet.Tasks.DelaySignTask::set_KeyFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string KeyContainer ()
+    // method line 259
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.ModuleCollection get_Modules ()  cil managed 
+    {
+        // Method begins at RVA 0x44e0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.DotNet.Types.ModuleCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.DotNet.Types.ModuleCollection NAnt.DotNet.Types.ModuleSet::_modules
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ModuleSet::get_Modules
+
+	.property instance class [mscorlib]System.IO.DirectoryInfo Dir ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 6B 65 79 63 6F 6E 74 61 69 6E 65 72 00   // ...keycontainer.
-		00                                              ) // .
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 69 72 00 00 ) // ...dir..
 
-		.get instance default string NAnt.DotNet.Tasks.DelaySignTask::get_KeyContainer () 
-		.set instance default void NAnt.DotNet.Tasks.DelaySignTask::set_KeyContainer (string 'value') 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.DotNet.Types.ModuleSet::get_Dir () 
+		.set instance default void NAnt.DotNet.Types.ModuleSet::set_Dir (class [mscorlib]System.IO.DirectoryInfo 'value') 
 	}
-	.property instance string ProgramArguments ()
+	.property instance class NAnt.DotNet.Types.ModuleCollection Modules ()
 	{
-		.get instance default string NAnt.DotNet.Tasks.DelaySignTask::get_ProgramArguments () 
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 06 6D 6F 64 75 6C 65 00 00 ) // ...module..
+
+		.get instance default class NAnt.DotNet.Types.ModuleCollection NAnt.DotNet.Types.ModuleSet::get_Modules () 
 	}
-  } // end of class NAnt.DotNet.Tasks.DelaySignTask
+  } // end of class NAnt.DotNet.Types.ModuleSet
+}
+
+.namespace NAnt.DotNet.Types
+{
+  .class public auto ansi sealed DelaySign
+  	extends [mscorlib]System.Enum
+  {
+    .custom instance void class [System]System.ComponentModel.TypeConverterAttribute::'.ctor'(class [mscorlib]System.Type) =  (
+		01 00 24 4E 41 6E 74 2E 44 6F 74 4E 65 74 2E 54   // ..$NAnt.DotNet.T
+		79 70 65 73 2E 44 65 6C 61 79 53 69 67 6E 43 6F   // ypes.DelaySignCo
+		6E 76 65 72 74 65 72 00 00                      ) // nverter..
+
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.DotNet.Types.DelaySign NotSet = int32(0x00000000)
+    .field public static literal  valuetype NAnt.DotNet.Types.DelaySign No = int32(0x00000001)
+    .field public static literal  valuetype NAnt.DotNet.Types.DelaySign Yes = int32(0x00000002)
+
+  } // end of class NAnt.DotNet.Types.DelaySign
+}
+
+.namespace NAnt.DotNet.Types
+{
+  .class public auto ansi beforefieldinit DelaySignConverter
+  	extends [System]System.ComponentModel.EnumConverter
+  {
+
+    // method line 260
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x44fb
+	// Code size 18 (0x12)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldtoken NAnt.DotNet.Types.DelaySign
+	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000b:  call instance void class [System]System.ComponentModel.EnumConverter::'.ctor'(class [mscorlib]System.Type)
+	IL_0010:  nop 
+	IL_0011:  ret 
+    } // end of method DelaySignConverter::.ctor
+
+    // method line 261
+    .method public virtual hidebysig 
+           instance default object ConvertFrom (class [System]System.ComponentModel.ITypeDescriptorContext context, class [mscorlib]System.Globalization.CultureInfo culture, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x4510
+	// Code size 115 (0x73)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		object	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.3 
+	IL_0002:  isinst [mscorlib]System.String
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  brfalse IL_0062
+
+	IL_000e:  nop 
+	IL_000f:  ldloc.0 
+	IL_0010:  ldstr "true"
+	IL_0015:  ldc.i4.1 
+	IL_0016:  ldarg.2 
+	IL_0017:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_001c:  brtrue IL_002d
+
+	IL_0021:  ldc.i4.2 
+	IL_0022:  box NAnt.DotNet.Types.DelaySign
+	IL_0027:  stloc.1 
+	IL_0028:  br IL_0071
+
+	IL_002d:  ldloc.0 
+	IL_002e:  ldstr "false"
+	IL_0033:  ldc.i4.1 
+	IL_0034:  ldarg.2 
+	IL_0035:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_003a:  brtrue IL_004b
+
+	IL_003f:  ldc.i4.1 
+	IL_0040:  box NAnt.DotNet.Types.DelaySign
+	IL_0045:  stloc.1 
+	IL_0046:  br IL_0071
+
+	IL_004b:  ldtoken NAnt.DotNet.Types.DelaySign
+	IL_0050:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0055:  ldloc.0 
+	IL_0056:  ldc.i4.1 
+	IL_0057:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	IL_005c:  stloc.1 
+	IL_005d:  br IL_0071
+
+	IL_0062:  ldarg.0 
+	IL_0063:  ldarg.1 
+	IL_0064:  ldarg.2 
+	IL_0065:  ldarg.3 
+	IL_0066:  call instance object class [System]System.ComponentModel.EnumConverter::ConvertFrom(class [System]System.ComponentModel.ITypeDescriptorContext, class [mscorlib]System.Globalization.CultureInfo, object)
+	IL_006b:  stloc.1 
+	IL_006c:  br IL_0071
+
+	IL_0071:  ldloc.1 
+	IL_0072:  ret 
+    } // end of method DelaySignConverter::ConvertFrom
+
+  } // end of class NAnt.DotNet.Types.DelaySignConverter
 }
 
 .namespace NAnt.DotNet.Tasks
@@ -10630,11 +6906,11 @@
     .field  private  bool _supportsExternalFileReferences
     .field private static literal  int32 _maxCmdLineLength = int32(0x00007530)
 
-    // method line 355
+    // method line 262
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x82f4
+        // Method begins at RVA 0x458f
 	// Code size 62 (0x3e)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -10657,11 +6933,11 @@
 	IL_003d:  ret 
     } // end of method ResGenTask::.ctor
 
-    // method line 356
+    // method line 263
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_InputFile ()  cil managed 
     {
-        // Method begins at RVA 0x8334
+        // Method begins at RVA 0x45d0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -10676,11 +6952,11 @@
 	IL_000e:  ret 
     } // end of method ResGenTask::get_InputFile
 
-    // method line 357
+    // method line 264
     .method public hidebysig specialname 
            instance default void set_InputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x834f
+        // Method begins at RVA 0x45eb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -10690,11 +6966,11 @@
 	IL_0008:  ret 
     } // end of method ResGenTask::set_InputFile
 
-    // method line 358
+    // method line 265
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x835c
+        // Method begins at RVA 0x45f8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -10709,11 +6985,11 @@
 	IL_000e:  ret 
     } // end of method ResGenTask::get_OutputFile
 
-    // method line 359
+    // method line 266
     .method public hidebysig specialname 
            instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x8377
+        // Method begins at RVA 0x4613
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -10723,11 +6999,11 @@
 	IL_0008:  ret 
     } // end of method ResGenTask::set_OutputFile
 
-    // method line 360
+    // method line 267
     .method public hidebysig specialname 
            instance default string get_TargetExt ()  cil managed 
     {
-        // Method begins at RVA 0x8384
+        // Method begins at RVA 0x4620
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -10742,11 +7018,11 @@
 	IL_000e:  ret 
     } // end of method ResGenTask::get_TargetExt
 
-    // method line 361
+    // method line 268
     .method public hidebysig specialname 
            instance default void set_TargetExt (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x839f
+        // Method begins at RVA 0x463b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -10757,11 +7033,11 @@
 	IL_000d:  ret 
     } // end of method ResGenTask::set_TargetExt
 
-    // method line 362
+    // method line 269
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_ToDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x83b0
+        // Method begins at RVA 0x464c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -10776,11 +7052,11 @@
 	IL_000e:  ret 
     } // end of method ResGenTask::get_ToDirectory
 
-    // method line 363
+    // method line 270
     .method public hidebysig specialname 
            instance default void set_ToDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x83cb
+        // Method begins at RVA 0x4667
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -10790,11 +7066,11 @@
 	IL_0008:  ret 
     } // end of method ResGenTask::set_ToDirectory
 
-    // method line 364
+    // method line 271
     .method public hidebysig specialname 
            instance default bool get_UseSourcePath ()  cil managed 
     {
-        // Method begins at RVA 0x83d8
+        // Method begins at RVA 0x4674
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -10809,11 +7085,11 @@
 	IL_000e:  ret 
     } // end of method ResGenTask::get_UseSourcePath
 
-    // method line 365
+    // method line 272
     .method public hidebysig specialname 
            instance default void set_UseSourcePath (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x83f3
+        // Method begins at RVA 0x468f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -10823,11 +7099,11 @@
 	IL_0008:  ret 
     } // end of method ResGenTask::set_UseSourcePath
 
-    // method line 366
+    // method line 273
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.ResourceFileSet get_Resources ()  cil managed 
     {
-        // Method begins at RVA 0x8400
+        // Method begins at RVA 0x469c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -10842,11 +7118,11 @@
 	IL_000e:  ret 
     } // end of method ResGenTask::get_Resources
 
-    // method line 367
+    // method line 274
     .method public hidebysig specialname 
            instance default void set_Resources (class NAnt.DotNet.Types.ResourceFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x841b
+        // Method begins at RVA 0x46b7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -10856,11 +7132,11 @@
 	IL_0008:  ret 
     } // end of method ResGenTask::set_Resources
 
-    // method line 368
+    // method line 275
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
     {
-        // Method begins at RVA 0x8428
+        // Method begins at RVA 0x46c4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -10875,11 +7151,11 @@
 	IL_000e:  ret 
     } // end of method ResGenTask::get_Assemblies
 
-    // method line 369
+    // method line 276
     .method public hidebysig specialname 
            instance default void set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x8443
+        // Method begins at RVA 0x46df
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -10889,11 +7165,11 @@
 	IL_0008:  ret 
     } // end of method ResGenTask::set_Assemblies
 
-    // method line 370
+    // method line 277
     .method public hidebysig specialname 
            instance default bool get_SupportsAssemblyReferences ()  cil managed 
     {
-        // Method begins at RVA 0x8450
+        // Method begins at RVA 0x46ec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -10908,11 +7184,11 @@
 	IL_000e:  ret 
     } // end of method ResGenTask::get_SupportsAssemblyReferences
 
-    // method line 371
+    // method line 278
     .method public hidebysig specialname 
            instance default void set_SupportsAssemblyReferences (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x846b
+        // Method begins at RVA 0x4707
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -10922,11 +7198,11 @@
 	IL_0008:  ret 
     } // end of method ResGenTask::set_SupportsAssemblyReferences
 
-    // method line 372
+    // method line 279
     .method public hidebysig specialname 
            instance default bool get_SupportsExternalFileReferences ()  cil managed 
     {
-        // Method begins at RVA 0x8478
+        // Method begins at RVA 0x4714
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -10941,11 +7217,11 @@
 	IL_000e:  ret 
     } // end of method ResGenTask::get_SupportsExternalFileReferences
 
-    // method line 373
+    // method line 280
     .method public hidebysig specialname 
            instance default void set_SupportsExternalFileReferences (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x8493
+        // Method begins at RVA 0x472f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -10955,11 +7231,11 @@
 	IL_0008:  ret 
     } // end of method ResGenTask::set_SupportsExternalFileReferences
 
-    // method line 374
+    // method line 281
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Collections.ArrayList get_QualifiedResources ()  cil managed 
     {
-        // Method begins at RVA 0x84a0
+        // Method begins at RVA 0x473c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -10974,11 +7250,11 @@
 	IL_000e:  ret 
     } // end of method ResGenTask::get_QualifiedResources
 
-    // method line 375
+    // method line 282
     .method private hidebysig specialname 
            instance default bool get_RequiresAssemblyReferences ()  cil managed 
     {
-        // Method begins at RVA 0x84bc
+        // Method begins at RVA 0x4758
 	// Code size 285 (0x11d)
 	.maxstack 2
 	.locals init (
@@ -11114,11 +7390,11 @@
 	IL_011c:  ret 
     } // end of method ResGenTask::get_RequiresAssemblyReferences
 
-    // method line 376
+    // method line 283
     .method public virtual hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x8604
+        // Method begins at RVA 0x48a0
 	// Code size 39 (0x27)
 	.maxstack 1
 	.locals init (
@@ -11143,11 +7419,11 @@
 	IL_0026:  ret 
     } // end of method ResGenTask::get_BaseDirectory
 
-    // method line 377
+    // method line 284
     .method public virtual hidebysig specialname 
            instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x8637
+        // Method begins at RVA 0x48d3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -11157,11 +7433,11 @@
 	IL_0008:  ret 
     } // end of method ResGenTask::set_BaseDirectory
 
-    // method line 378
+    // method line 285
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x8644
+        // Method begins at RVA 0x48e0
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -11177,11 +7453,11 @@
 	IL_0013:  ret 
     } // end of method ResGenTask::get_ProgramArguments
 
-    // method line 379
+    // method line 286
     .method public virtual hidebysig specialname 
            instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x8664
+        // Method begins at RVA 0x4900
 	// Code size 40 (0x28)
 	.maxstack 2
 	.locals init (
@@ -11206,11 +7482,11 @@
 	IL_0027:  ret 
     } // end of method ResGenTask::get_ProgramFileName
 
-    // method line 380
+    // method line 287
     .method family virtual hidebysig 
            instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
     {
-        // Method begins at RVA 0x8698
+        // Method begins at RVA 0x4934
 	// Code size 434 (0x1b2)
 	.maxstack 3
 	.locals init (
@@ -11380,11 +7656,11 @@
 	IL_01b1:  ret 
     } // end of method ResGenTask::PrepareProcess
 
-    // method line 381
+    // method line 288
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x8874
+        // Method begins at RVA 0x4b10
 	// Code size 756 (0x2f4)
 	.maxstack 7
 	.locals init (
@@ -11680,11 +7956,11 @@
 	IL_02f3:  ret 
     } // end of method ResGenTask::ExecuteTask
 
-    // method line 382
+    // method line 289
     .method public hidebysig 
            instance default void RemoveOutputs ()  cil managed 
     {
-        // Method begins at RVA 0x8b9c
+        // Method begins at RVA 0x4e38
 	// Code size 281 (0x119)
 	.maxstack 4
 	.locals init (
@@ -11811,11 +8087,11 @@
 	IL_0118:  ret 
     } // end of method ResGenTask::RemoveOutputs
 
-    // method line 383
+    // method line 290
     .method family virtual hidebysig newslot 
            instance default bool NeedsCompiling (class [mscorlib]System.IO.FileInfo inputFile, class [mscorlib]System.IO.FileInfo outputFile)  cil managed 
     {
-        // Method begins at RVA 0x8ce0
+        // Method begins at RVA 0x4f7c
 	// Code size 299 (0x12b)
 	.maxstack 7
 	.locals init (
@@ -11946,11 +8222,11 @@
 	IL_012a:  ret 
     } // end of method ResGenTask::NeedsCompiling
 
-    // method line 384
+    // method line 291
     .method private hidebysig 
            instance default class [mscorlib]System.IO.FileInfo GetOutputFile (class [mscorlib]System.IO.FileInfo file)  cil managed 
     {
-        // Method begins at RVA 0x8e18
+        // Method begins at RVA 0x50b4
 	// Code size 110 (0x6e)
 	.maxstack 2
 	.locals init (
@@ -12005,11 +8281,11 @@
 	IL_006d:  ret 
     } // end of method ResGenTask::GetOutputFile
 
-    // method line 385
+    // method line 292
     .method private hidebysig 
            instance default bool ReferencesThirdPartyAssemblies (string resourceFile)  cil managed 
     {
-        // Method begins at RVA 0x8e94
+        // Method begins at RVA 0x5130
 	// Code size 133 (0x85)
 	.maxstack 4
 	.locals init (
@@ -12086,11 +8362,11 @@
 	IL_0084:  ret 
     } // end of method ResGenTask::ReferencesThirdPartyAssemblies
 
-    // method line 386
+    // method line 293
     .method private hidebysig 
            instance default class [System]System.Collections.Specialized.StringCollection GetExternalFileReferences (class [mscorlib]System.IO.FileInfo resxFile)  cil managed 
     {
-        // Method begins at RVA 0x8f44
+        // Method begins at RVA 0x51e0
 	// Code size 285 (0x11d)
 	.maxstack 4
 	.locals init (
@@ -12223,11 +8499,11 @@
 	IL_011c:  ret 
     } // end of method ResGenTask::GetExternalFileReferences
 
-    // method line 387
+    // method line 294
     .method private hidebysig 
            instance default void WriteCommandLineOptions (class [mscorlib]System.IO.FileInfo inputFile, class [mscorlib]System.IO.FileInfo outputFile)  cil managed 
     {
-        // Method begins at RVA 0x9080
+        // Method begins at RVA 0x531c
 	// Code size 482 (0x1e2)
 	.maxstack 7
 	.locals init (
@@ -12541,11 +8817,11 @@
     .field  private  class [mscorlib]System.IO.FileInfo _inputFile
     .field  private  class [mscorlib]System.IO.FileInfo _outputFile
 
-    // method line 388
+    // method line 295
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.IO.FileInfo input, class [mscorlib]System.IO.FileInfo output)  cil managed 
     {
-        // Method begins at RVA 0x928c
+        // Method begins at RVA 0x5528
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -12560,11 +8836,11 @@
 	IL_0015:  ret 
     } // end of method QualifiedResource::.ctor
 
-    // method line 389
+    // method line 296
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_Input ()  cil managed 
     {
-        // Method begins at RVA 0x92a4
+        // Method begins at RVA 0x5540
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -12579,11 +8855,11 @@
 	IL_000e:  ret 
     } // end of method QualifiedResource::get_Input
 
-    // method line 390
+    // method line 297
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_Output ()  cil managed 
     {
-        // Method begins at RVA 0x92c0
+        // Method begins at RVA 0x555c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -12611,1197 +8887,1621 @@
 
 .namespace NAnt.DotNet.Tasks
 {
-  .class public auto ansi beforefieldinit IlasmTask
-  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  .class public auto ansi beforefieldinit JscTask
+  	extends NAnt.DotNet.Tasks.CompilerBase
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 69 6C 61 73 6D 00 00 ) // ...ilasm..
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 6A 73 63 00 00 ) // ...jsc..
 
     .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 00 00 00 00 00 00 ) // ........
 
-    .field  private  bool _clock
-    .field  private  bool _debug
-    .field  private  bool _error
-    .field  private  bool _forceRebuild
-    .field  private  bool _listing
-    .field  private  int32 _alignment
-    .field  private  int32 _base
-    .field  private  int32 _flags
-    .field  private  int32 _subsystem
-    .field  private  string _target
-    .field  private  string _keySource
-    .field  private  class [mscorlib]System.IO.FileInfo _keyFile
-    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
-    .field  private  class [mscorlib]System.IO.FileInfo _resourceFile
-    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _sources
-    .field  private  string _options
+    .field  private  bool _autoRef
+    .field  private  bool _nostdlib
+    .field  private  string _warningLevel
+    .field  private  string _codepage
+    .field  private  string _platform
+    .field  private  bool _versionSafe
+    .field  private  bool _supportsPlatform
+    .field  private static  class [System]System.Text.RegularExpressions.Regex _classNameRegex
+    .field  private static  class [System]System.Text.RegularExpressions.Regex _namespaceRegex
 
-    // method line 391
+    // method line 298
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x92db
+        // Method begins at RVA 0x78d5
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_0001:  call instance void class NAnt.DotNet.Tasks.CompilerBase::'.ctor'()
 	IL_0006:  ret 
-    } // end of method IlasmTask::.ctor
+    } // end of method JscTask::.ctor
 
-    // method line 392
+    // method line 299
     .method public hidebysig specialname 
-           instance default bool get_Clock ()  cil managed 
+           instance default bool get_AutoRef ()  cil managed 
     {
-        // Method begins at RVA 0x92e4
+        // Method begins at RVA 0x78e0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.IlasmTask::_clock
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.JscTask::_autoRef
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_Clock
+    } // end of method JscTask::get_AutoRef
 
-    // method line 393
+    // method line 300
     .method public hidebysig specialname 
-           instance default void set_Clock (bool 'value')  cil managed 
+           instance default void set_AutoRef (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x92ff
+        // Method begins at RVA 0x78fb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.IlasmTask::_clock
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.JscTask::_autoRef
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Clock
+    } // end of method JscTask::set_AutoRef
 
-    // method line 394
+    // method line 301
     .method public hidebysig specialname 
-           instance default bool get_Debug ()  cil managed 
+           instance default bool get_NoStdLib ()  cil managed 
     {
-        // Method begins at RVA 0x930c
+        // Method begins at RVA 0x7908
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.IlasmTask::_debug
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.JscTask::_nostdlib
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_Debug
+    } // end of method JscTask::get_NoStdLib
 
-    // method line 395
+    // method line 302
     .method public hidebysig specialname 
-           instance default void set_Debug (bool 'value')  cil managed 
+           instance default void set_NoStdLib (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9327
+        // Method begins at RVA 0x7923
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.IlasmTask::_debug
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.JscTask::_nostdlib
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Debug
+    } // end of method JscTask::set_NoStdLib
 
-    // method line 396
+    // method line 303
     .method public hidebysig specialname 
-           instance default bool get_Error ()  cil managed 
+           instance default string get_Platform ()  cil managed 
     {
-        // Method begins at RVA 0x9334
+        // Method begins at RVA 0x7930
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.IlasmTask::_error
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.JscTask::_platform
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_Error
+    } // end of method JscTask::get_Platform
 
-    // method line 397
+    // method line 304
     .method public hidebysig specialname 
-           instance default void set_Error (bool 'value')  cil managed 
+           instance default void set_Platform (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x934f
-	// Code size 9 (0x9)
+        // Method begins at RVA 0x794b
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.IlasmTask::_error
-	IL_0008:  ret 
-    } // end of method IlasmTask::set_Error
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.JscTask::_platform
+	IL_000d:  ret 
+    } // end of method JscTask::set_Platform
 
-    // method line 398
+    // method line 305
     .method public hidebysig specialname 
-           instance default bool get_ForceRebuild ()  cil managed 
+           instance default bool get_VersionSafe ()  cil managed 
     {
-        // Method begins at RVA 0x935c
+        // Method begins at RVA 0x795c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.IlasmTask::_forceRebuild
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.JscTask::_versionSafe
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_ForceRebuild
+    } // end of method JscTask::get_VersionSafe
 
-    // method line 399
+    // method line 306
     .method public hidebysig specialname 
-           instance default void set_ForceRebuild (bool 'value')  cil managed 
+           instance default void set_VersionSafe (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9377
+        // Method begins at RVA 0x7977
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.IlasmTask::_forceRebuild
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.JscTask::_versionSafe
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_ForceRebuild
+    } // end of method JscTask::set_VersionSafe
 
-    // method line 400
+    // method line 307
     .method public hidebysig specialname 
-           instance default bool get_Listing ()  cil managed 
+           instance default string get_WarningLevel ()  cil managed 
     {
-        // Method begins at RVA 0x9384
+        // Method begins at RVA 0x7984
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.IlasmTask::_listing
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.JscTask::_warningLevel
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_Listing
+    } // end of method JscTask::get_WarningLevel
 
-    // method line 401
+    // method line 308
     .method public hidebysig specialname 
-           instance default void set_Listing (bool 'value')  cil managed 
+           instance default void set_WarningLevel (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x799f
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.JscTask::_warningLevel
+	IL_000d:  ret 
+    } // end of method JscTask::set_WarningLevel
+
+    // method line 309
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.DotNet.Types.WarningAsError get_WarningAsError ()  cil managed 
+    {
+        // Method begins at RVA 0x79b0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.DotNet.Types.WarningAsError	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.DotNet.Types.WarningAsError class NAnt.DotNet.Tasks.CompilerBase::get_WarningAsError()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JscTask::get_WarningAsError
+
+    // method line 310
+    .method public virtual hidebysig specialname 
+           instance default string get_NoWarn ()  cil managed 
+    {
+        // Method begins at RVA 0x79cc
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_NoWarn()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JscTask::get_NoWarn
+
+    // method line 311
+    .method public virtual hidebysig specialname 
+           instance default void set_NoWarn (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x939f
+        // Method begins at RVA 0x79e7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.IlasmTask::_listing
+	IL_0003:  call instance void class NAnt.DotNet.Tasks.CompilerBase::set_NoWarn(string)
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Listing
+    } // end of method JscTask::set_NoWarn
 
-    // method line 402
+    // method line 312
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.DotNet.Types.CompilerWarningCollection get_SuppressWarnings ()  cil managed 
+    {
+        // Method begins at RVA 0x79f4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.DotNet.Types.CompilerWarningCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.DotNet.Types.CompilerWarningCollection class NAnt.DotNet.Tasks.CompilerBase::get_SuppressWarnings()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JscTask::get_SuppressWarnings
+
+    // method line 313
     .method public hidebysig specialname 
-           instance default int32 get_Alignment ()  cil managed 
+           instance default string get_Codepage ()  cil managed 
     {
-        // Method begins at RVA 0x93ac
+        // Method begins at RVA 0x7a10
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.DotNet.Tasks.IlasmTask::_alignment
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.JscTask::_codepage
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_Alignment
+    } // end of method JscTask::get_Codepage
 
-    // method line 403
+    // method line 314
     .method public hidebysig specialname 
-           instance default void set_Alignment (int32 'value')  cil managed 
+           instance default void set_Codepage (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7a2b
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.JscTask::_codepage
+	IL_000d:  ret 
+    } // end of method JscTask::set_Codepage
+
+    // method line 315
+    .method public virtual hidebysig specialname 
+           instance default string get_KeyContainer ()  cil managed 
+    {
+        // Method begins at RVA 0x7a3c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_KeyContainer()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JscTask::get_KeyContainer
+
+    // method line 316
+    .method public virtual hidebysig specialname 
+           instance default void set_KeyContainer (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x93c7
+        // Method begins at RVA 0x7a57
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.DotNet.Tasks.IlasmTask::_alignment
+	IL_0003:  call instance void class NAnt.DotNet.Tasks.CompilerBase::set_KeyContainer(string)
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Alignment
+    } // end of method JscTask::set_KeyContainer
 
-    // method line 404
-    .method public hidebysig specialname 
-           instance default int32 get_Base ()  cil managed 
+    // method line 317
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
     {
-        // Method begins at RVA 0x93d4
+        // Method begins at RVA 0x7a64
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.DotNet.Tasks.IlasmTask::_base
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_KeyFile()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_Base
+    } // end of method JscTask::get_KeyFile
 
-    // method line 405
-    .method public hidebysig specialname 
-           instance default void set_Base (int32 'value')  cil managed 
+    // method line 318
+    .method public virtual hidebysig specialname 
+           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x93ef
+        // Method begins at RVA 0x7a7f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.DotNet.Tasks.IlasmTask::_base
+	IL_0003:  call instance void class NAnt.DotNet.Tasks.CompilerBase::set_KeyFile(class [mscorlib]System.IO.FileInfo)
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Base
+    } // end of method JscTask::set_KeyFile
 
-    // method line 406
-    .method public hidebysig specialname 
-           instance default int32 get_Flags ()  cil managed 
+    // method line 319
+    .method public virtual hidebysig specialname 
+           instance default valuetype NAnt.DotNet.Types.DelaySign get_DelaySign ()  cil managed 
     {
-        // Method begins at RVA 0x93fc
+        // Method begins at RVA 0x7a8c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		valuetype NAnt.DotNet.Types.DelaySign	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.DotNet.Tasks.IlasmTask::_flags
+	IL_0002:  call instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.CompilerBase::get_DelaySign()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_Flags
+    } // end of method JscTask::get_DelaySign
 
-    // method line 407
-    .method public hidebysig specialname 
-           instance default void set_Flags (int32 'value')  cil managed 
+    // method line 320
+    .method public virtual hidebysig specialname 
+           instance default void set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value')  cil managed 
     {
-        // Method begins at RVA 0x9417
+        // Method begins at RVA 0x7aa7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.DotNet.Tasks.IlasmTask::_flags
+	IL_0003:  call instance void class NAnt.DotNet.Tasks.CompilerBase::set_DelaySign(valuetype NAnt.DotNet.Types.DelaySign)
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Flags
+    } // end of method JscTask::set_DelaySign
 
-    // method line 408
+    // method line 321
+    .method public virtual hidebysig specialname 
+           instance default bool get_SupportsKeyContainer ()  cil managed 
+    {
+        // Method begins at RVA 0x7ab4
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
+
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method JscTask::get_SupportsKeyContainer
+
+    // method line 322
+    .method public virtual hidebysig specialname 
+           instance default void set_SupportsKeyContainer (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7aca
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method JscTask::set_SupportsKeyContainer
+
+    // method line 323
+    .method public virtual hidebysig specialname 
+           instance default bool get_SupportsKeyFile ()  cil managed 
+    {
+        // Method begins at RVA 0x7ad0
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
+
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method JscTask::get_SupportsKeyFile
+
+    // method line 324
+    .method public virtual hidebysig specialname 
+           instance default void set_SupportsKeyFile (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7ae6
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method JscTask::set_SupportsKeyFile
+
+    // method line 325
+    .method public virtual hidebysig specialname 
+           instance default bool get_SupportsDelaySign ()  cil managed 
+    {
+        // Method begins at RVA 0x7aec
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
+
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method JscTask::get_SupportsDelaySign
+
+    // method line 326
+    .method public virtual hidebysig specialname 
+           instance default void set_SupportsDelaySign (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7b02
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method JscTask::set_SupportsDelaySign
+
+    // method line 327
     .method public hidebysig specialname 
-           instance default int32 get_Subsystem ()  cil managed 
+           instance default bool get_SupportsPlatform ()  cil managed 
     {
-        // Method begins at RVA 0x9424
+        // Method begins at RVA 0x7b08
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		int32	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld int32 NAnt.DotNet.Tasks.IlasmTask::_subsystem
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.JscTask::_supportsPlatform
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_Subsystem
+    } // end of method JscTask::get_SupportsPlatform
 
-    // method line 409
+    // method line 328
     .method public hidebysig specialname 
-           instance default void set_Subsystem (int32 'value')  cil managed 
+           instance default void set_SupportsPlatform (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x943f
+        // Method begins at RVA 0x7b23
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld int32 NAnt.DotNet.Tasks.IlasmTask::_subsystem
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.JscTask::_supportsPlatform
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Subsystem
+    } // end of method JscTask::set_SupportsPlatform
 
-    // method line 410
-    .method public hidebysig specialname 
-           instance default string get_Target ()  cil managed 
+    // method line 329
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Modules ()  cil managed 
     {
-        // Method begins at RVA 0x944c
+        // Method begins at RVA 0x7b30
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.DotNet.Types.AssemblyFileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.IlasmTask::_target
+	IL_0002:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_Target
+    } // end of method JscTask::get_Modules
 
-    // method line 411
-    .method public hidebysig specialname 
-           instance default void set_Target (string 'value')  cil managed 
+    // method line 330
+    .method public virtual hidebysig specialname 
+           instance default void set_Modules (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x9467
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x7b4b
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.IlasmTask::_target
+	IL_0003:  call instance void class NAnt.DotNet.Tasks.CompilerBase::set_Modules(class NAnt.DotNet.Types.AssemblyFileSet)
+	IL_0008:  ret 
+    } // end of method JscTask::set_Modules
+
+    // method line 331
+    .method family virtual hidebysig 
+           instance default void WriteModuleReferences (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x7b55
+	// Code size 47 (0x2f)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
+	IL_0007:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_000c:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0011:  ldc.i4.0 
+	IL_0012:  ble IL_002e
+
+	IL_0017:  nop 
+	IL_0018:  ldarg.0 
+	IL_0019:  ldc.i4 4000
+	IL_001e:  ldstr "String_JscDoesNotSupportLinkingModules"
+	IL_0023:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0028:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_002d:  nop 
+	IL_002e:  ret 
+    } // end of method JscTask::WriteModuleReferences
+
+    // method line 332
+    .method family virtual hidebysig 
+           instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x7b88
+	// Code size 336 (0x150)
+	.maxstack 7
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_Debug()
+	IL_0007:  brfalse IL_003c
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.1 
+	IL_000f:  ldstr "debug"
+	IL_0014:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_0019:  ldarg.0 
+	IL_001a:  ldarg.1 
+	IL_001b:  ldstr "define"
+	IL_0020:  ldstr "DEBUG"
+	IL_0025:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_002a:  ldarg.0 
+	IL_002b:  ldarg.1 
+	IL_002c:  ldstr "define"
+	IL_0031:  ldstr "TRACE"
+	IL_0036:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_003b:  nop 
+	IL_003c:  ldarg.0 
+	IL_003d:  call instance bool class NAnt.DotNet.Tasks.JscTask::get_NoStdLib()
+	IL_0042:  brfalse IL_005a
+
+	IL_0047:  nop 
+	IL_0048:  ldarg.0 
+	IL_0049:  ldarg.1 
+	IL_004a:  ldstr "nostdlib"
+	IL_004f:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_0054:  nop 
+	IL_0055:  br IL_0073
+
+	IL_005a:  ldarg.0 
+	IL_005b:  call instance bool class NAnt.DotNet.Tasks.JscTask::get_AutoRef()
+	IL_0060:  brfalse IL_0073
+
+	IL_0065:  nop 
+	IL_0066:  ldarg.0 
+	IL_0067:  ldarg.1 
+	IL_0068:  ldstr "autoref"
+	IL_006d:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_0072:  nop 
+	IL_0073:  ldarg.0 
+	IL_0074:  call instance string class NAnt.DotNet.Tasks.JscTask::get_WarningLevel()
+	IL_0079:  brfalse IL_0092
+
+	IL_007e:  nop 
+	IL_007f:  ldarg.0 
+	IL_0080:  ldarg.1 
+	IL_0081:  ldstr "warn"
+	IL_0086:  ldarg.0 
+	IL_0087:  call instance string class NAnt.DotNet.Tasks.JscTask::get_WarningLevel()
+	IL_008c:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_0091:  nop 
+	IL_0092:  ldarg.0 
+	IL_0093:  call instance string class NAnt.DotNet.Tasks.JscTask::get_Codepage()
+	IL_0098:  brfalse IL_00b1
+
+	IL_009d:  nop 
+	IL_009e:  ldarg.0 
+	IL_009f:  ldarg.1 
+	IL_00a0:  ldstr "codepage"
+	IL_00a5:  ldarg.0 
+	IL_00a6:  call instance string class NAnt.DotNet.Tasks.JscTask::get_Codepage()
+	IL_00ab:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_00b0:  nop 
+	IL_00b1:  ldarg.0 
+	IL_00b2:  call instance string class NAnt.DotNet.Tasks.JscTask::get_Platform()
+	IL_00b7:  brfalse IL_0112
+
+	IL_00bc:  nop 
+	IL_00bd:  ldarg.0 
+	IL_00be:  call instance bool class NAnt.DotNet.Tasks.JscTask::get_SupportsPlatform()
+	IL_00c3:  brfalse IL_00e1
+
+	IL_00c8:  nop 
+	IL_00c9:  ldarg.0 
+	IL_00ca:  ldarg.1 
+	IL_00cb:  ldstr "platform"
+	IL_00d0:  ldarg.0 
+	IL_00d1:  call instance string class NAnt.DotNet.Tasks.JscTask::get_Platform()
+	IL_00d6:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_00db:  nop 
+	IL_00dc:  br IL_0111
+
+	IL_00e1:  nop 
+	IL_00e2:  ldarg.0 
+	IL_00e3:  ldc.i4 4000
+	IL_00e8:  ldstr "String_CompilerDoesNotSupportPlatform"
+	IL_00ed:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00f2:  ldc.i4.1 
+	IL_00f3:  newarr [mscorlib]System.Object
+	IL_00f8:  dup 
+	IL_00f9:  ldc.i4.0 
+	IL_00fa:  ldarg.0 
+	IL_00fb:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0100:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0105:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	IL_010a:  stelem.ref 
+	IL_010b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0110:  nop 
+	IL_0111:  nop 
+	IL_0112:  ldarg.0 
+	IL_0113:  call instance bool class NAnt.DotNet.Tasks.JscTask::get_VersionSafe()
+	IL_0118:  brfalse IL_012b
+
+	IL_011d:  nop 
+	IL_011e:  ldarg.0 
+	IL_011f:  ldarg.1 
+	IL_0120:  ldstr "versionsafe"
+	IL_0125:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_012a:  nop 
+	IL_012b:  ldarg.0 
+	IL_012c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
+	IL_0131:  brfalse IL_014f
+
+	IL_0136:  nop 
+	IL_0137:  ldarg.0 
+	IL_0138:  ldarg.1 
+	IL_0139:  ldstr "win32res"
+	IL_013e:  ldarg.0 
+	IL_013f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
+	IL_0144:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0149:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_014e:  nop 
+	IL_014f:  ret 
+    } // end of method JscTask::WriteOptions
+
+    // method line 333
+    .method public virtual hidebysig specialname 
+           instance default string get_Extension ()  cil managed 
+    {
+        // Method begins at RVA 0x7ce4
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldstr "js"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
 	IL_000d:  ret 
-    } // end of method IlasmTask::set_Target
+    } // end of method JscTask::get_Extension
 
-    // method line 412
+    // method line 334
+    .method family virtual hidebysig specialname 
+           instance default class [System]System.Text.RegularExpressions.Regex get_ClassNameRegex ()  cil managed 
+    {
+        // Method begins at RVA 0x7d00
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		class [System]System.Text.RegularExpressions.Regex	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::_classNameRegex
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method JscTask::get_ClassNameRegex
+
+    // method line 335
+    .method family virtual hidebysig specialname 
+           instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
+    {
+        // Method begins at RVA 0x7d1c
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		class [System]System.Text.RegularExpressions.Regex	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::_namespaceRegex
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method JscTask::get_NamespaceRegex
+
+    // method line 336
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x7d36
+	// Code size 31 (0x1f)
+	.maxstack 8
+	IL_0000:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.\\{]+|class\\s+(?<class>\\w+)|(?<keyword>\\w+))*"
+	IL_0005:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
+	IL_000a:  stsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::_classNameRegex
+	IL_000f:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.\\{]+|namespace\\s+(?<namespace>(\\w+(\\.\\w+)*)+)|(?<keyword>\\w+))*"
+	IL_0014:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
+	IL_0019:  stsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::_namespaceRegex
+	IL_001e:  ret 
+    } // end of method JscTask::.cctor
+
+	.property instance bool AutoRef ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 61 75 74 6F 72 65 66 00 00 ) // ...autoref..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_AutoRef () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_AutoRef (bool 'value') 
+	}
+	.property instance bool NoStdLib ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 6E 6F 73 74 64 6C 69 62 00 00 ) // ...nostdlib..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_NoStdLib () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_NoStdLib (bool 'value') 
+	}
+	.property instance string Platform ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 70 6C 61 74 66 6F 72 6D 00 00 ) // ...platform..
+
+		.get instance default string NAnt.DotNet.Tasks.JscTask::get_Platform () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_Platform (string 'value') 
+	}
+	.property instance bool VersionSafe ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 76 65 72 73 69 6F 6E 73 61 66 65 00 00 ) // ...versionsafe..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_VersionSafe () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_VersionSafe (bool 'value') 
+	}
+	.property instance string WarningLevel ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0C 77 61 72 6E 69 6E 67 6C 65 76 65 6C 00   // ...warninglevel.
+		00                                              ) // .
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 04 00 00 00 00 00 ) // ............
+
+		.get instance default string NAnt.DotNet.Tasks.JscTask::get_WarningLevel () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_WarningLevel (string 'value') 
+	}
+	.property instance class NAnt.DotNet.Types.WarningAsError WarningAsError ()
+	{
+		.get instance default class NAnt.DotNet.Types.WarningAsError NAnt.DotNet.Tasks.JscTask::get_WarningAsError () 
+	}
+	.property instance string NoWarn ()
+	{
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 21 55 73 65 20 74 68 65 20 3C 6E 6F 77 61   // ..!Use the <nowa
+		72 6E 3E 20 65 6C 65 6D 65 6E 74 20 69 6E 73 74   // rn> element inst
+		65 61 64 2E 00 00 00                            ) // ead....
+
+		.get instance default string NAnt.DotNet.Tasks.JscTask::get_NoWarn () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_NoWarn (string 'value') 
+	}
+	.property instance class NAnt.DotNet.Types.CompilerWarningCollection SuppressWarnings ()
+	{
+		.get instance default class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Tasks.JscTask::get_SuppressWarnings () 
+	}
+	.property instance string Codepage ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 63 6F 64 65 70 61 67 65 00 00 ) // ...codepage..
+
+		.get instance default string NAnt.DotNet.Tasks.JscTask::get_Codepage () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_Codepage (string 'value') 
+	}
+	.property instance string KeyContainer ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.JscTask::get_KeyContainer () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_KeyContainer (string 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo KeyFile ()
+	{
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.JscTask::get_KeyFile () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_KeyFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance valuetype NAnt.DotNet.Types.DelaySign DelaySign ()
+	{
+		.get instance default valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.JscTask::get_DelaySign () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value') 
+	}
+	.property instance bool SupportsKeyContainer ()
+	{
+		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_SupportsKeyContainer () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_SupportsKeyContainer (bool 'value') 
+	}
+	.property instance bool SupportsKeyFile ()
+	{
+		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_SupportsKeyFile () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_SupportsKeyFile (bool 'value') 
+	}
+	.property instance bool SupportsDelaySign ()
+	{
+		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_SupportsDelaySign () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_SupportsDelaySign (bool 'value') 
+	}
+	.property instance bool SupportsPlatform ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 10 73 75 70 70 6F 72 74 73 70 6C 61 74 66   // ...supportsplatf
+		6F 72 6D 00 00                                  ) // orm..
+
+		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_SupportsPlatform () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_SupportsPlatform (bool 'value') 
+	}
+	.property instance class NAnt.DotNet.Types.AssemblyFileSet Modules ()
+	{
+		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.JscTask::get_Modules () 
+		.set instance default void NAnt.DotNet.Tasks.JscTask::set_Modules (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
+	}
+	.property instance string Extension ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.JscTask::get_Extension () 
+	}
+	.property instance class [System]System.Text.RegularExpressions.Regex ClassNameRegex ()
+	{
+		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::get_ClassNameRegex () 
+	}
+	.property instance class [System]System.Text.RegularExpressions.Regex NamespaceRegex ()
+	{
+		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::get_NamespaceRegex () 
+	}
+  } // end of class NAnt.DotNet.Tasks.JscTask
+}
+
+.namespace NAnt.DotNet.Tasks
+{
+  .class public auto ansi beforefieldinit RegsvcsTask
+  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 72 65 67 73 76 63 73 00 00 ) // ...regsvcs..
+
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 00 00 00 00 00 00 ) // ........
+
+    .field  private  class [mscorlib]System.Text.StringBuilder _argumentBuilder
+    .field  private  valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType _action
+    .field  private  class [mscorlib]System.IO.FileInfo _assemblyFile
+    .field  private  string _applicationName
+    .field  private  class [mscorlib]System.IO.FileInfo _typeLibrary
+    .field  private  bool _existingTlb
+    .field  private  bool _existingApplication
+    .field  private  bool _noreconfig
+    .field  private  bool _componentsOnly
+    .field  private  string _partitionName
+
+    // method line 337
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x7d56
+	// Code size 56 (0x38)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldnull 
+	IL_0002:  stfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_0007:  ldarg.0 
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stfld valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType NAnt.DotNet.Tasks.RegsvcsTask::_action
+	IL_000e:  ldarg.0 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingTlb
+	IL_0015:  ldarg.0 
+	IL_0016:  ldc.i4.0 
+	IL_0017:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingApplication
+	IL_001c:  ldarg.0 
+	IL_001d:  ldc.i4.0 
+	IL_001e:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_noreconfig
+	IL_0023:  ldarg.0 
+	IL_0024:  ldc.i4.0 
+	IL_0025:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_componentsOnly
+	IL_002a:  ldarg.0 
+	IL_002b:  ldnull 
+	IL_002c:  stfld string NAnt.DotNet.Tasks.RegsvcsTask::_partitionName
+	IL_0031:  ldarg.0 
+	IL_0032:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_0037:  ret 
+    } // end of method RegsvcsTask::.ctor
+
+    // method line 338
     .method public hidebysig specialname 
-           instance default string get_KeySource ()  cil managed 
+           instance default valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType get_Action ()  cil managed 
     {
-        // Method begins at RVA 0x9478
+        // Method begins at RVA 0x7d90
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.IlasmTask::_keySource
+	IL_0002:  ldfld valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType NAnt.DotNet.Tasks.RegsvcsTask::_action
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_KeySource
+    } // end of method RegsvcsTask::get_Action
 
-    // method line 413
+    // method line 339
     .method public hidebysig specialname 
-           instance default void set_KeySource (string 'value')  cil managed 
+           instance default void set_Action (valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7dac
+	// Code size 70 (0x46)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldtoken NAnt.DotNet.Tasks.RegsvcsTask/ActionType
+	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000b:  ldarg.1 
+	IL_000c:  box NAnt.DotNet.Tasks.RegsvcsTask/ActionType
+	IL_0011:  call bool class [mscorlib]System.Enum::IsDefined(class [mscorlib]System.Type, object)
+	IL_0016:  brtrue IL_003c
+
+	IL_001b:  nop 
+	IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0021:  ldstr "NA2002"
+	IL_0026:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_002b:  ldarg.1 
+	IL_002c:  box NAnt.DotNet.Tasks.RegsvcsTask/ActionType
+	IL_0031:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0036:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_003b:  throw 
+	IL_003c:  nop 
+	IL_003d:  ldarg.0 
+	IL_003e:  ldarg.1 
+	IL_003f:  stfld valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType NAnt.DotNet.Tasks.RegsvcsTask::_action
+	IL_0044:  nop 
+	IL_0045:  ret 
+    } // end of method RegsvcsTask::set_Action
+
+    // method line 340
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_AssemblyFile ()  cil managed 
+    {
+        // Method begins at RVA 0x7e00
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::_assemblyFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method RegsvcsTask::get_AssemblyFile
+
+    // method line 341
+    .method public hidebysig specialname 
+           instance default void set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x9493
+        // Method begins at RVA 0x7e1b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.DotNet.Tasks.IlasmTask::_keySource
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::_assemblyFile
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_KeySource
+    } // end of method RegsvcsTask::set_AssemblyFile
 
-    // method line 414
+    // method line 342
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_TypeLibrary ()  cil managed 
     {
-        // Method begins at RVA 0x94a0
+        // Method begins at RVA 0x7e28
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::_keyFile
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::_typeLibrary
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method RegsvcsTask::get_TypeLibrary
+
+    // method line 343
+    .method public hidebysig specialname 
+           instance default void set_TypeLibrary (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x7e43
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::_typeLibrary
+	IL_0008:  ret 
+    } // end of method RegsvcsTask::set_TypeLibrary
+
+    // method line 344
+    .method public hidebysig specialname 
+           instance default bool get_ExistingTypeLibrary ()  cil managed 
+    {
+        // Method begins at RVA 0x7e50
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingTlb
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_KeyFile
+    } // end of method RegsvcsTask::get_ExistingTypeLibrary
 
-    // method line 415
+    // method line 345
     .method public hidebysig specialname 
-           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_ExistingTypeLibrary (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x94bb
+        // Method begins at RVA 0x7e6b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::_keyFile
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingTlb
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_KeyFile
+    } // end of method RegsvcsTask::set_ExistingTypeLibrary
 
-    // method line 416
+    // method line 346
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
+           instance default bool get_NoReconfig ()  cil managed 
     {
-        // Method begins at RVA 0x94c8
+        // Method begins at RVA 0x7e78
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::_outputFile
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.RegsvcsTask::_noreconfig
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_OutputFile
+    } // end of method RegsvcsTask::get_NoReconfig
 
-    // method line 417
+    // method line 347
     .method public hidebysig specialname 
-           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_NoReconfig (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x94e3
+        // Method begins at RVA 0x7e93
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::_outputFile
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_noreconfig
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_OutputFile
+    } // end of method RegsvcsTask::set_NoReconfig
 
-    // method line 418
+    // method line 348
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_ResourceFile ()  cil managed 
+           instance default bool get_ComponentsOnly ()  cil managed 
     {
-        // Method begins at RVA 0x94f0
+        // Method begins at RVA 0x7ea0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::_resourceFile
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.RegsvcsTask::_componentsOnly
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_ResourceFile
+    } // end of method RegsvcsTask::get_ComponentsOnly
 
-    // method line 419
+    // method line 349
     .method public hidebysig specialname 
-           instance default void set_ResourceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+           instance default void set_ComponentsOnly (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x950b
+        // Method begins at RVA 0x7ebb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::_resourceFile
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_componentsOnly
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_ResourceFile
+    } // end of method RegsvcsTask::set_ComponentsOnly
 
-    // method line 420
+    // method line 350
     .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Sources ()  cil managed 
+           instance default bool get_ExistingApplication ()  cil managed 
     {
-        // Method begins at RVA 0x9518
+        // Method begins at RVA 0x7ec8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.IlasmTask::_sources
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingApplication
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_Sources
+    } // end of method RegsvcsTask::get_ExistingApplication
 
-    // method line 421
+    // method line 351
     .method public hidebysig specialname 
-           instance default void set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+           instance default void set_ExistingApplication (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9533
+        // Method begins at RVA 0x7ee3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.IlasmTask::_sources
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.RegsvcsTask::_existingApplication
 	IL_0008:  ret 
-    } // end of method IlasmTask::set_Sources
+    } // end of method RegsvcsTask::set_ExistingApplication
 
-    // method line 422
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
+    // method line 352
+    .method public hidebysig specialname 
+           instance default string get_ApplicationName ()  cil managed 
     {
-        // Method begins at RVA 0x9540
+        // Method begins at RVA 0x7ef0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.IlasmTask::_options
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.RegsvcsTask::_applicationName
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method IlasmTask::get_ProgramArguments
+    } // end of method RegsvcsTask::get_ApplicationName
 
-    // method line 423
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
+    // method line 353
+    .method public hidebysig specialname 
+           instance default void set_ApplicationName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x955c
-	// Code size 137 (0x89)
-	.maxstack 7
+        // Method begins at RVA 0x7f0b
+	// Code size 14 (0xe)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.DotNet.Tasks.IlasmTask::NeedsCompiling()
-	IL_0007:  brfalse IL_0088
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.IlasmTask::get_Sources()
-	IL_0013:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_0018:  brtrue IL_003a
-
-	IL_001d:  nop 
-	IL_001e:  ldarg.0 
-	IL_001f:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.IlasmTask::get_Sources()
-	IL_0024:  ldarg.0 
-	IL_0025:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_002a:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	IL_002f:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0034:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_0039:  nop 
-	IL_003a:  ldarg.0 
-	IL_003b:  ldc.i4 3000
-	IL_0040:  ldstr "String_CompilingFiles"
-	IL_0045:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_004a:  ldc.i4.2 
-	IL_004b:  newarr [mscorlib]System.Object
-	IL_0050:  dup 
-	IL_0051:  ldc.i4.0 
-	IL_0052:  ldarg.0 
-	IL_0053:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.IlasmTask::get_Sources()
-	IL_0058:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_005d:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0062:  box [mscorlib]System.Int32
-	IL_0067:  stelem.ref 
-	IL_0068:  dup 
-	IL_0069:  ldc.i4.1 
-	IL_006a:  ldarg.0 
-	IL_006b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
-	IL_0070:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0075:  stelem.ref 
-	IL_0076:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_007b:  ldarg.0 
-	IL_007c:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOptions()
-	IL_0081:  ldarg.0 
-	IL_0082:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	IL_0087:  nop 
-	IL_0088:  ret 
-    } // end of method IlasmTask::ExecuteTask
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.RegsvcsTask::_applicationName
+	IL_000d:  ret 
+    } // end of method RegsvcsTask::set_ApplicationName
 
-    // method line 424
-    .method private hidebysig 
-           instance default void WriteOptions ()  cil managed 
+    // method line 354
+    .method public hidebysig specialname 
+           instance default string get_PartitionName ()  cil managed 
     {
-        // Method begins at RVA 0x95f4
-	// Code size 636 (0x27c)
-	.maxstack 5
+        // Method begins at RVA 0x7f1c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.StringWriter	V_0,
-		int32	V_1,
-		int32	V_2,
-		int32	V_3,
-		int32	V_4,
-		string	V_5,
-		class [System]System.Collections.Specialized.StringEnumerator	V_6,
-		class [mscorlib]System.IDisposable	V_7)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'()
-	IL_0006:  stloc.0 
-	.try { // 1
-	  IL_0007:  nop 
-	  IL_0008:  ldarg.0 
-	  IL_0009:  ldloc.0 
-	  IL_000a:  ldstr "NOLOGO"
-	  IL_000f:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string)
-	  IL_0014:  ldarg.0 
-	  IL_0015:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	  IL_001a:  brtrue IL_002d
-
-	  IL_001f:  nop 
-	  IL_0020:  ldarg.0 
-	  IL_0021:  ldloc.0 
-	  IL_0022:  ldstr "QUIET"
-	  IL_0027:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string)
-	  IL_002c:  nop 
-	  IL_002d:  ldarg.0 
-	  IL_002e:  call instance bool class NAnt.DotNet.Tasks.IlasmTask::get_Clock()
-	  IL_0033:  brfalse IL_0046
-
-	  IL_0038:  nop 
-	  IL_0039:  ldarg.0 
-	  IL_003a:  ldloc.0 
-	  IL_003b:  ldstr "CLOCK"
-	  IL_0040:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string)
-	  IL_0045:  nop 
-	  IL_0046:  ldarg.0 
-	  IL_0047:  call instance bool class NAnt.DotNet.Tasks.IlasmTask::get_Debug()
-	  IL_004c:  brfalse IL_005f
-
-	  IL_0051:  nop 
-	  IL_0052:  ldarg.0 
-	  IL_0053:  ldloc.0 
-	  IL_0054:  ldstr "DEBUG"
-	  IL_0059:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string)
-	  IL_005e:  nop 
-	  IL_005f:  ldarg.0 
-	  IL_0060:  call instance bool class NAnt.DotNet.Tasks.IlasmTask::get_Error()
-	  IL_0065:  brfalse IL_0078
-
-	  IL_006a:  nop 
-	  IL_006b:  ldarg.0 
-	  IL_006c:  ldloc.0 
-	  IL_006d:  ldstr "ERROR"
-	  IL_0072:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string)
-	  IL_0077:  nop 
-	  IL_0078:  ldarg.0 
-	  IL_0079:  call instance bool class NAnt.DotNet.Tasks.IlasmTask::get_Listing()
-	  IL_007e:  brfalse IL_0091
-
-	  IL_0083:  nop 
-	  IL_0084:  ldarg.0 
-	  IL_0085:  ldloc.0 
-	  IL_0086:  ldstr "LISTING"
-	  IL_008b:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string)
-	  IL_0090:  nop 
-	  IL_0091:  ldarg.0 
-	  IL_0092:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Alignment()
-	  IL_0097:  ldc.i4.0 
-	  IL_0098:  ble IL_00bf
-
-	  IL_009d:  nop 
-	  IL_009e:  ldarg.0 
-	  IL_009f:  ldloc.0 
-	  IL_00a0:  ldstr "ALIGNMENT"
-	  IL_00a5:  ldarg.0 
-	  IL_00a6:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Alignment()
-	  IL_00ab:  stloc.1 
-	  IL_00ac:  ldloca.s 1
-	  IL_00ae:  constrained. [mscorlib]System.Int32
-	  IL_00b4:  callvirt instance string object::ToString()
-	  IL_00b9:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
-	  IL_00be:  nop 
-	  IL_00bf:  ldarg.0 
-	  IL_00c0:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Base()
-	  IL_00c5:  ldc.i4.0 
-	  IL_00c6:  ble IL_00ed
-
-	  IL_00cb:  nop 
-	  IL_00cc:  ldarg.0 
-	  IL_00cd:  ldloc.0 
-	  IL_00ce:  ldstr "BASE"
-	  IL_00d3:  ldarg.0 
-	  IL_00d4:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Base()
-	  IL_00d9:  stloc.2 
-	  IL_00da:  ldloca.s 2
-	  IL_00dc:  constrained. [mscorlib]System.Int32
-	  IL_00e2:  callvirt instance string object::ToString()
-	  IL_00e7:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
-	  IL_00ec:  nop 
-	  IL_00ed:  ldarg.0 
-	  IL_00ee:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Flags()
-	  IL_00f3:  ldc.i4.0 
-	  IL_00f4:  ble IL_011b
-
-	  IL_00f9:  nop 
-	  IL_00fa:  ldarg.0 
-	  IL_00fb:  ldloc.0 
-	  IL_00fc:  ldstr "FLAGS"
-	  IL_0101:  ldarg.0 
-	  IL_0102:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Flags()
-	  IL_0107:  stloc.3 
-	  IL_0108:  ldloca.s 3
-	  IL_010a:  constrained. [mscorlib]System.Int32
-	  IL_0110:  callvirt instance string object::ToString()
-	  IL_0115:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
-	  IL_011a:  nop 
-	  IL_011b:  ldarg.0 
-	  IL_011c:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Subsystem()
-	  IL_0121:  ldc.i4.0 
-	  IL_0122:  ble IL_014a
-
-	  IL_0127:  nop 
-	  IL_0128:  ldarg.0 
-	  IL_0129:  ldloc.0 
-	  IL_012a:  ldstr "SUBSYSTEM"
-	  IL_012f:  ldarg.0 
-	  IL_0130:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Subsystem()
-	  IL_0135:  stloc.s 4
-	  IL_0137:  ldloca.s 4
-	  IL_0139:  constrained. [mscorlib]System.Int32
-	  IL_013f:  callvirt instance string object::ToString()
-	  IL_0144:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
-	  IL_0149:  nop 
-	  IL_014a:  ldarg.0 
-	  IL_014b:  call instance string class NAnt.DotNet.Tasks.IlasmTask::get_Target()
-	  IL_0150:  brfalse IL_0169
-
-	  IL_0155:  nop 
-	  IL_0156:  ldarg.0 
-	  IL_0157:  ldloc.0 
-	  IL_0158:  ldarg.0 
-	  IL_0159:  call instance string class NAnt.DotNet.Tasks.IlasmTask::get_Target()
-	  IL_015e:  callvirt instance string string::ToUpper()
-	  IL_0163:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string)
-	  IL_0168:  nop 
-	  IL_0169:  ldarg.0 
-	  IL_016a:  call instance string class NAnt.DotNet.Tasks.IlasmTask::get_KeySource()
-	  IL_016f:  brfalse IL_0192
-
-	  IL_0174:  nop 
-	  IL_0175:  ldarg.0 
-	  IL_0176:  ldloc.0 
-	  IL_0177:  ldstr "KEY"
-	  IL_017c:  ldstr "@"
-	  IL_0181:  ldarg.0 
-	  IL_0182:  call instance string class NAnt.DotNet.Tasks.IlasmTask::get_KeySource()
-	  IL_0187:  call string string::Concat(string, string)
-	  IL_018c:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
-	  IL_0191:  nop 
-	  IL_0192:  ldarg.0 
-	  IL_0193:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_KeyFile()
-	  IL_0198:  brfalse IL_01b6
-
-	  IL_019d:  nop 
-	  IL_019e:  ldarg.0 
-	  IL_019f:  ldloc.0 
-	  IL_01a0:  ldstr "KEY"
-	  IL_01a5:  ldarg.0 
-	  IL_01a6:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_KeyFile()
-	  IL_01ab:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_01b0:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
-	  IL_01b5:  nop 
-	  IL_01b6:  ldarg.0 
-	  IL_01b7:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
-	  IL_01bc:  brfalse IL_01da
-
-	  IL_01c1:  nop 
-	  IL_01c2:  ldarg.0 
-	  IL_01c3:  ldloc.0 
-	  IL_01c4:  ldstr "OUTPUT"
-	  IL_01c9:  ldarg.0 
-	  IL_01ca:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
-	  IL_01cf:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_01d4:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
-	  IL_01d9:  nop 
-	  IL_01da:  ldarg.0 
-	  IL_01db:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_ResourceFile()
-	  IL_01e0:  brfalse IL_01fe
-
-	  IL_01e5:  nop 
-	  IL_01e6:  ldarg.0 
-	  IL_01e7:  ldloc.0 
-	  IL_01e8:  ldstr "RESOURCE"
-	  IL_01ed:  ldarg.0 
-	  IL_01ee:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_ResourceFile()
-	  IL_01f3:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_01f8:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
-	  IL_01fd:  nop 
-	  IL_01fe:  nop 
-	  IL_01ff:  ldarg.0 
-	  IL_0200:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.IlasmTask::get_Sources()
-	  IL_0205:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	  IL_020a:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_020f:  stloc.s 6
-	  .try { // 0
-	    IL_0211:  br IL_0238
-
-	    IL_0216:  ldloc.s 6
-	    IL_0218:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_021d:  stloc.s 5
-	    IL_021f:  nop 
-	    IL_0220:  ldloc.0 
-	    IL_0221:  ldstr " \""
-	    IL_0226:  ldloc.s 5
-	    IL_0228:  ldstr "\" "
-	    IL_022d:  call string string::Concat(string, string, string)
-	    IL_0232:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string)
-	    IL_0237:  nop 
-	    IL_0238:  ldloc.s 6
-	    IL_023a:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_023f:  brtrue IL_0216
-
-	    IL_0244:  leave IL_0260
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_0249:  ldloc.s 6
-	    IL_024b:  isinst [mscorlib]System.IDisposable
-	    IL_0250:  dup 
-	    IL_0251:  stloc.s 7
-	    IL_0253:  brfalse IL_025f
-
-	    IL_0258:  ldloc.s 7
-	    IL_025a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_025f:  endfinally 
-	  } // end handler 0
-	  IL_0260:  ldarg.0 
-	  IL_0261:  ldloc.0 
-	  IL_0262:  callvirt instance string object::ToString()
-	  IL_0267:  stfld string NAnt.DotNet.Tasks.IlasmTask::_options
-	  IL_026c:  nop 
-	  IL_026d:  leave IL_027b
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.RegsvcsTask::_partitionName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	} // end .try 1
-	finally  { // 1
-	  IL_0272:  nop 
-	  IL_0273:  ldloc.0 
-	  IL_0274:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
-	  IL_0279:  nop 
-	  IL_027a:  endfinally 
-	} // end handler 1
-	IL_027b:  ret 
-    } // end of method IlasmTask::WriteOptions
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method RegsvcsTask::get_PartitionName
 
-    // method line 425
-    .method private hidebysig 
-           instance default void WriteOption (class [mscorlib]System.IO.StringWriter writer, string name)  cil managed 
+    // method line 355
+    .method public hidebysig specialname 
+           instance default void set_PartitionName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x98b0
+        // Method begins at RVA 0x7f37
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "/{0} "
-	IL_0007:  ldarg.2 
-	IL_0008:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string, object)
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.RegsvcsTask::_partitionName
 	IL_000d:  ret 
-    } // end of method IlasmTask::WriteOption
-
-    // method line 426
-    .method private hidebysig 
-           instance default void WriteOption (class [mscorlib]System.IO.StringWriter writer, string name, string arg)  cil managed 
-    {
-        // Method begins at RVA 0x98bf
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "\"/{0}={1}\" "
-	IL_0007:  ldarg.2 
-	IL_0008:  ldarg.3 
-	IL_0009:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string, object, object)
-	IL_000e:  ret 
-    } // end of method IlasmTask::WriteOption
+    } // end of method RegsvcsTask::set_PartitionName
 
-    // method line 427
-    .method private hidebysig 
-           instance default bool NeedsCompiling ()  cil managed 
+    // method line 356
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x98d0
-	// Code size 360 (0x168)
-	.maxstack 7
+        // Method begins at RVA 0x7f48
+	// Code size 40 (0x28)
+	.maxstack 1
 	.locals init (
-		bool	V_0,
-		string	V_1)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.DotNet.Tasks.IlasmTask::get_ForceRebuild()
-	IL_0007:  brfalse IL_0029
+	IL_0002:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_0007:  brfalse IL_001e
 
 	IL_000c:  nop 
 	IL_000d:  ldarg.0 
-	IL_000e:  ldc.i4 2000
-	IL_0013:  ldstr "String_RebuildAttributeSetToTrue"
-	IL_0018:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_001d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0022:  ldc.i4.1 
-	IL_0023:  stloc.0 
-	IL_0024:  br IL_0166
-
-	IL_0029:  ldarg.0 
-	IL_002a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
-	IL_002f:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0034:  brtrue IL_006a
-
-	IL_0039:  nop 
-	IL_003a:  ldarg.0 
-	IL_003b:  ldc.i4 2000
-	IL_0040:  ldstr "String_OutputFileDoesNotExist"
-	IL_0045:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_004a:  ldc.i4.1 
-	IL_004b:  newarr [mscorlib]System.Object
-	IL_0050:  dup 
-	IL_0051:  ldc.i4.0 
-	IL_0052:  ldarg.0 
-	IL_0053:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
-	IL_0058:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_005d:  stelem.ref 
-	IL_005e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0063:  ldc.i4.1 
-	IL_0064:  stloc.0 
-	IL_0065:  br IL_0166
+	IL_000e:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_0013:  callvirt instance string object::ToString()
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_0026
 
-	IL_006a:  ldarg.0 
-	IL_006b:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.IlasmTask::get_Sources()
-	IL_0070:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0075:  ldarg.0 
-	IL_0076:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
-	IL_007b:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0080:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
-	IL_0085:  stloc.1 
-	IL_0086:  ldloc.1 
-	IL_0087:  brfalse IL_00b3
+	IL_001e:  nop 
+	IL_001f:  ldnull 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
 
-	IL_008c:  nop 
-	IL_008d:  ldarg.0 
-	IL_008e:  ldc.i4 2000
-	IL_0093:  ldstr "String_FileHasBeenUpdated"
-	IL_0098:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_009d:  ldc.i4.1 
-	IL_009e:  newarr [mscorlib]System.Object
-	IL_00a3:  dup 
-	IL_00a4:  ldc.i4.0 
-	IL_00a5:  ldloc.1 
-	IL_00a6:  stelem.ref 
-	IL_00a7:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00ac:  ldc.i4.1 
-	IL_00ad:  stloc.0 
-	IL_00ae:  br IL_0166
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method RegsvcsTask::get_ProgramArguments
 
-	IL_00b3:  ldarg.0 
-	IL_00b4:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_ResourceFile()
-	IL_00b9:  brfalse IL_0109
+    // method line 357
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x7f7c
+	// Code size 558 (0x22e)
+	.maxstack 7
+	.locals init (
+		valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0007:  stfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType class NAnt.DotNet.Tasks.RegsvcsTask::get_Action()
+	IL_0012:  stloc.0 
+	IL_0013:  ldloc.0 
+	IL_0014:  ldc.i4.1 
+	IL_0015:  beq IL_002c
 
-	IL_00be:  nop 
-	IL_00bf:  ldarg.0 
-	IL_00c0:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_ResourceFile()
-	IL_00c5:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00ca:  ldarg.0 
-	IL_00cb:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
-	IL_00d0:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_00d5:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_00da:  stloc.1 
-	IL_00db:  ldloc.1 
-	IL_00dc:  brfalse IL_0108
+	IL_001a:  ldloc.0 
+	IL_001b:  brfalse IL_006b
 
-	IL_00e1:  nop 
-	IL_00e2:  ldarg.0 
-	IL_00e3:  ldc.i4 2000
-	IL_00e8:  ldstr "String_FileHasBeenUpdated"
-	IL_00ed:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00f2:  ldc.i4.1 
-	IL_00f3:  newarr [mscorlib]System.Object
-	IL_00f8:  dup 
-	IL_00f9:  ldc.i4.0 
-	IL_00fa:  ldloc.1 
-	IL_00fb:  stelem.ref 
-	IL_00fc:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0101:  ldc.i4.1 
-	IL_0102:  stloc.0 
-	IL_0103:  br IL_0166
+	IL_0020:  ldloc.0 
+	IL_0021:  ldc.i4.2 
+	IL_0022:  beq IL_00aa
 
-	IL_0108:  nop 
-	IL_0109:  ldarg.0 
-	IL_010a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_KeyFile()
-	IL_010f:  brfalse IL_015f
+	IL_0027:  br IL_00e9
 
-	IL_0114:  nop 
-	IL_0115:  ldarg.0 
-	IL_0116:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_KeyFile()
-	IL_011b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0120:  ldarg.0 
-	IL_0121:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
-	IL_0126:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_012b:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_0130:  stloc.1 
-	IL_0131:  ldloc.1 
-	IL_0132:  brfalse IL_015e
+	IL_002c:  ldarg.0 
+	IL_002d:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_0032:  ldstr "/c "
+	IL_0037:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_003c:  pop 
+	IL_003d:  ldarg.0 
+	IL_003e:  ldc.i4 3000
+	IL_0043:  ldstr "String_CreatingCOM+Application"
+	IL_0048:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_004d:  ldc.i4.1 
+	IL_004e:  newarr [mscorlib]System.Object
+	IL_0053:  dup 
+	IL_0054:  ldc.i4.0 
+	IL_0055:  ldarg.0 
+	IL_0056:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.RegsvcsTask::get_AssemblyFile()
+	IL_005b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0060:  stelem.ref 
+	IL_0061:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0066:  br IL_00e9
 
-	IL_0137:  nop 
-	IL_0138:  ldarg.0 
-	IL_0139:  ldc.i4 2000
-	IL_013e:  ldstr "String_FileHasBeenUpdated"
-	IL_0143:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0148:  ldc.i4.1 
-	IL_0149:  newarr [mscorlib]System.Object
-	IL_014e:  dup 
-	IL_014f:  ldc.i4.0 
-	IL_0150:  ldloc.1 
-	IL_0151:  stelem.ref 
-	IL_0152:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0157:  ldc.i4.1 
-	IL_0158:  stloc.0 
-	IL_0159:  br IL_0166
+	IL_006b:  ldarg.0 
+	IL_006c:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_0071:  ldstr "/fc "
+	IL_0076:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_007b:  pop 
+	IL_007c:  ldarg.0 
+	IL_007d:  ldc.i4 3000
+	IL_0082:  ldstr "String_FindingCOM+Application"
+	IL_0087:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_008c:  ldc.i4.1 
+	IL_008d:  newarr [mscorlib]System.Object
+	IL_0092:  dup 
+	IL_0093:  ldc.i4.0 
+	IL_0094:  ldarg.0 
+	IL_0095:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.RegsvcsTask::get_AssemblyFile()
+	IL_009a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_009f:  stelem.ref 
+	IL_00a0:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00a5:  br IL_00e9
 
-	IL_015e:  nop 
-	IL_015f:  ldc.i4.0 
-	IL_0160:  stloc.0 
-	IL_0161:  br IL_0166
+	IL_00aa:  ldarg.0 
+	IL_00ab:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_00b0:  ldstr "/u "
+	IL_00b5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00ba:  pop 
+	IL_00bb:  ldarg.0 
+	IL_00bc:  ldc.i4 3000
+	IL_00c1:  ldstr "String_UninstallingCOM+Application"
+	IL_00c6:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00cb:  ldc.i4.1 
+	IL_00cc:  newarr [mscorlib]System.Object
+	IL_00d1:  dup 
+	IL_00d2:  ldc.i4.0 
+	IL_00d3:  ldarg.0 
+	IL_00d4:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.RegsvcsTask::get_AssemblyFile()
+	IL_00d9:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00de:  stelem.ref 
+	IL_00df:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00e4:  br IL_00e9
 
-	IL_0166:  ldloc.0 
-	IL_0167:  ret 
-    } // end of method IlasmTask::NeedsCompiling
+	IL_00e9:  ldarg.0 
+	IL_00ea:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.RegsvcsTask::get_TypeLibrary()
+	IL_00ef:  brfalse IL_0112
 
-	.property instance bool Clock ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 63 6C 6F 63 6B 00 00 ) // ...clock..
+	IL_00f4:  nop 
+	IL_00f5:  ldarg.0 
+	IL_00f6:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_00fb:  ldstr "/tlb:\"{0}\" "
+	IL_0100:  ldarg.0 
+	IL_0101:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.RegsvcsTask::get_TypeLibrary()
+	IL_0106:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_010b:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_0110:  pop 
+	IL_0111:  nop 
+	IL_0112:  ldarg.0 
+	IL_0113:  call instance bool class NAnt.DotNet.Tasks.RegsvcsTask::get_ExistingTypeLibrary()
+	IL_0118:  brfalse IL_0130
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_011d:  nop 
+	IL_011e:  ldarg.0 
+	IL_011f:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_0124:  ldstr "/extlb "
+	IL_0129:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_012e:  pop 
+	IL_012f:  nop 
+	IL_0130:  ldarg.0 
+	IL_0131:  call instance bool class NAnt.DotNet.Tasks.RegsvcsTask::get_NoReconfig()
+	IL_0136:  brfalse IL_014e
 
-		.get instance default bool NAnt.DotNet.Tasks.IlasmTask::get_Clock () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Clock (bool 'value') 
-	}
-	.property instance bool Debug ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 64 65 62 75 67 00 00 ) // ...debug..
+	IL_013b:  nop 
+	IL_013c:  ldarg.0 
+	IL_013d:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_0142:  ldstr "/noreconfig "
+	IL_0147:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_014c:  pop 
+	IL_014d:  nop 
+	IL_014e:  ldarg.0 
+	IL_014f:  call instance bool class NAnt.DotNet.Tasks.RegsvcsTask::get_ComponentsOnly()
+	IL_0154:  brfalse IL_016c
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0159:  nop 
+	IL_015a:  ldarg.0 
+	IL_015b:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_0160:  ldstr "/componly "
+	IL_0165:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_016a:  pop 
+	IL_016b:  nop 
+	IL_016c:  ldarg.0 
+	IL_016d:  call instance string class NAnt.DotNet.Tasks.RegsvcsTask::get_ApplicationName()
+	IL_0172:  brfalse IL_0190
 
-		.get instance default bool NAnt.DotNet.Tasks.IlasmTask::get_Debug () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Debug (bool 'value') 
-	}
-	.property instance bool Error ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 65 72 72 6F 72 00 00 ) // ...error..
+	IL_0177:  nop 
+	IL_0178:  ldarg.0 
+	IL_0179:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_017e:  ldstr "/appname:\"{0}\" "
+	IL_0183:  ldarg.0 
+	IL_0184:  call instance string class NAnt.DotNet.Tasks.RegsvcsTask::get_ApplicationName()
+	IL_0189:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_018e:  pop 
+	IL_018f:  nop 
+	IL_0190:  ldarg.0 
+	IL_0191:  call instance bool class NAnt.DotNet.Tasks.RegsvcsTask::get_ExistingApplication()
+	IL_0196:  brfalse IL_01ae
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_019b:  nop 
+	IL_019c:  ldarg.0 
+	IL_019d:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_01a2:  ldstr "/exapp "
+	IL_01a7:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_01ac:  pop 
+	IL_01ad:  nop 
+	IL_01ae:  ldarg.0 
+	IL_01af:  call instance string class NAnt.DotNet.Tasks.RegsvcsTask::get_PartitionName()
+	IL_01b4:  brfalse IL_01d2
 
-		.get instance default bool NAnt.DotNet.Tasks.IlasmTask::get_Error () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Error (bool 'value') 
-	}
-	.property instance bool ForceRebuild ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 72 65 62 75 69 6C 64 00 00 ) // ...rebuild..
+	IL_01b9:  nop 
+	IL_01ba:  ldarg.0 
+	IL_01bb:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_01c0:  ldstr "/parname:\"{0}\" "
+	IL_01c5:  ldarg.0 
+	IL_01c6:  call instance string class NAnt.DotNet.Tasks.RegsvcsTask::get_PartitionName()
+	IL_01cb:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_01d0:  pop 
+	IL_01d1:  nop 
+	IL_01d2:  ldarg.0 
+	IL_01d3:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_01d8:  brtrue IL_01f0
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_01dd:  nop 
+	IL_01de:  ldarg.0 
+	IL_01df:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_01e4:  ldstr "/quiet "
+	IL_01e9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_01ee:  pop 
+	IL_01ef:  nop 
+	IL_01f0:  ldarg.0 
+	IL_01f1:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_01f6:  ldstr "/nologo "
+	IL_01fb:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0200:  pop 
+	IL_0201:  ldarg.0 
+	IL_0202:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.RegsvcsTask::_argumentBuilder
+	IL_0207:  ldstr "\""
+	IL_020c:  ldarg.0 
+	IL_020d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.RegsvcsTask::get_AssemblyFile()
+	IL_0212:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0217:  ldstr "\""
+	IL_021c:  call string string::Concat(string, string, string)
+	IL_0221:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0226:  pop 
+	IL_0227:  ldarg.0 
+	IL_0228:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	IL_022d:  ret 
+    } // end of method RegsvcsTask::ExecuteTask
 
-		.get instance default bool NAnt.DotNet.Tasks.IlasmTask::get_ForceRebuild () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_ForceRebuild (bool 'value') 
-	}
-	.property instance bool Listing ()
+	.property instance valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType Action ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6C 69 73 74 69 6E 67 00 00 ) // ...listing..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 61 63 74 69 6F 6E 00 00 ) // ...action..
 
-		.get instance default bool NAnt.DotNet.Tasks.IlasmTask::get_Listing () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Listing (bool 'value') 
+		.get instance default valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType NAnt.DotNet.Tasks.RegsvcsTask::get_Action () 
+		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_Action (valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType 'value') 
 	}
-	.property instance int32 Alignment ()
+	.property instance class [mscorlib]System.IO.FileInfo AssemblyFile ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 61 6C 69 67 6E 6D 65 6E 74 00 00 ) // ...alignment..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 61 73 73 65 6D 62 6C 79 01 00 54 02 08   // ...assembly..T..
+		52 65 71 75 69 72 65 64 01                      ) // Required.
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
 
-		.get instance default int32 NAnt.DotNet.Tasks.IlasmTask::get_Alignment () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Alignment (int32 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::get_AssemblyFile () 
+		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance int32 Base ()
+	.property instance class [mscorlib]System.IO.FileInfo TypeLibrary ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 62 61 73 65 00 00 ) // ...base..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 74 6C 62 00 00 ) // ...tlb..
 
-		.get instance default int32 NAnt.DotNet.Tasks.IlasmTask::get_Base () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Base (int32 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.RegsvcsTask::get_TypeLibrary () 
+		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_TypeLibrary (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance int32 Flags ()
+	.property instance bool ExistingTypeLibrary ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 66 6C 61 67 73 00 00 ) // ...flags..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 65 78 69 73 74 69 6E 67 74 6C 62 00 00 ) // ...existingtlb..
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default int32 NAnt.DotNet.Tasks.IlasmTask::get_Flags () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Flags (int32 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.RegsvcsTask::get_ExistingTypeLibrary () 
+		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_ExistingTypeLibrary (bool 'value') 
 	}
-	.property instance int32 Subsystem ()
+	.property instance bool NoReconfig ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 73 75 62 73 79 73 74 65 6D 00 00 ) // ...subsystem..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 6E 6F 72 65 63 6F 6E 66 69 67 00 00 ) // ...noreconfig..
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default int32 NAnt.DotNet.Tasks.IlasmTask::get_Subsystem () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Subsystem (int32 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.RegsvcsTask::get_NoReconfig () 
+		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_NoReconfig (bool 'value') 
 	}
-	.property instance string Target ()
+	.property instance bool ComponentsOnly ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 74 61 72 67 65 74 01 00 54 02 08 52 65   // ...target..T..Re
-		71 75 69 72 65 64 01                            ) // quired.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.DotNet.Tasks.IlasmTask::get_Target () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Target (string 'value') 
-	}
-	.property instance string KeySource ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 6B 65 79 73 6F 75 72 63 65 00 00 ) // ...keysource..
+		01 00 0E 63 6F 6D 70 6F 6E 65 6E 74 73 6F 6E 6C   // ...componentsonl
+		79 00 00                                        ) // y..
 
-		.get instance default string NAnt.DotNet.Tasks.IlasmTask::get_KeySource () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_KeySource (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo KeyFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6B 65 79 66 69 6C 65 00 00 ) // ...keyfile..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::get_KeyFile () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_KeyFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.RegsvcsTask::get_ComponentsOnly () 
+		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_ComponentsOnly (bool 'value') 
 	}
-	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
+	.property instance bool ExistingApplication ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 6F 75 74 70 75 74 01 00 54 02 08 52 65   // ...output..T..Re
-		71 75 69 72 65 64 01                            ) // quired.
+		01 00 0B 65 78 69 73 74 69 6E 67 61 70 70 00 00 ) // ...existingapp..
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::get_OutputFile () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.RegsvcsTask::get_ExistingApplication () 
+		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_ExistingApplication (bool 'value') 
 	}
-	.property instance class [mscorlib]System.IO.FileInfo ResourceFile ()
+	.property instance string ApplicationName ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 72 65 73 6F 75 72 63 65 66 69 6C 65 00   // ...resourcefile.
-		00                                              ) // .
+		01 00 0B 61 70 70 6C 69 63 61 74 69 6F 6E 00 00 ) // ...application..
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::get_ResourceFile () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_ResourceFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default string NAnt.DotNet.Tasks.RegsvcsTask::get_ApplicationName () 
+		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_ApplicationName (string 'value') 
 	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet Sources ()
+	.property instance string PartitionName ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 07 73 6F 75 72 63 65 73 01 00 54 02 08 52   // ...sources..T..R
-		65 71 75 69 72 65 64 01                         ) // equired.
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 70 61 72 74 69 74 69 6F 6E 00 00 ) // ...partition..
 
-		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.IlasmTask::get_Sources () 
-		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
+		.get instance default string NAnt.DotNet.Tasks.RegsvcsTask::get_PartitionName () 
+		.set instance default void NAnt.DotNet.Tasks.RegsvcsTask::set_PartitionName (string 'value') 
 	}
 	.property instance string ProgramArguments ()
 	{
-		.get instance default string NAnt.DotNet.Tasks.IlasmTask::get_ProgramArguments () 
+		.get instance default string NAnt.DotNet.Tasks.RegsvcsTask::get_ProgramArguments () 
 	}
-  } // end of class NAnt.DotNet.Tasks.IlasmTask
+  .class nested public auto ansi sealed ActionType
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType FindOrCreate = int32(0x00000000)
+    .field public static literal  valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType Create = int32(0x00000001)
+    .field public static literal  valuetype NAnt.DotNet.Tasks.RegsvcsTask/ActionType Uninstall = int32(0x00000002)
+
+  } // end of class ActionType
+
+  } // end of class NAnt.DotNet.Tasks.RegsvcsTask
 }
 
 .namespace NAnt.DotNet.Tasks
@@ -13842,11 +10542,11 @@
     .field  private  class [mscorlib]System.IO.FileInfo _win32Res
     .field  private  bool _supportsTemplate
 
-    // method line 428
+    // method line 358
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x9a44
+        // Method begins at RVA 0x81b6
 	// Code size 47 (0x2f)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -13866,11 +10566,11 @@
 	IL_002e:  ret 
     } // end of method AssemblyLinkerTask::.ctor
 
-    // method line 429
+    // method line 359
     .method public hidebysig specialname 
            instance default string get_AlgorithmID ()  cil managed 
     {
-        // Method begins at RVA 0x9a74
+        // Method begins at RVA 0x81e8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13885,11 +10585,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_AlgorithmID
 
-    // method line 430
+    // method line 360
     .method public hidebysig specialname 
            instance default void set_AlgorithmID (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9a8f
+        // Method begins at RVA 0x8203
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -13900,11 +10600,11 @@
 	IL_000d:  ret 
     } // end of method AssemblyLinkerTask::set_AlgorithmID
 
-    // method line 431
+    // method line 361
     .method public hidebysig specialname 
            instance default string get_Company ()  cil managed 
     {
-        // Method begins at RVA 0x9aa0
+        // Method begins at RVA 0x8214
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13919,11 +10619,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_Company
 
-    // method line 432
+    // method line 362
     .method public hidebysig specialname 
            instance default void set_Company (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9abb
+        // Method begins at RVA 0x822f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -13933,11 +10633,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_Company
 
-    // method line 433
+    // method line 363
     .method public hidebysig specialname 
            instance default string get_Configuration ()  cil managed 
     {
-        // Method begins at RVA 0x9ac8
+        // Method begins at RVA 0x823c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13952,11 +10652,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_Configuration
 
-    // method line 434
+    // method line 364
     .method public hidebysig specialname 
            instance default void set_Configuration (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9ae3
+        // Method begins at RVA 0x8257
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -13966,11 +10666,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_Configuration
 
-    // method line 435
+    // method line 365
     .method public hidebysig specialname 
            instance default string get_Copyright ()  cil managed 
     {
-        // Method begins at RVA 0x9af0
+        // Method begins at RVA 0x8264
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -13985,11 +10685,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_Copyright
 
-    // method line 436
+    // method line 366
     .method public hidebysig specialname 
            instance default void set_Copyright (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9b0b
+        // Method begins at RVA 0x827f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -13999,11 +10699,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_Copyright
 
-    // method line 437
+    // method line 367
     .method public hidebysig specialname 
            instance default string get_Culture ()  cil managed 
     {
-        // Method begins at RVA 0x9b18
+        // Method begins at RVA 0x828c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14018,11 +10718,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_Culture
 
-    // method line 438
+    // method line 368
     .method public hidebysig specialname 
            instance default void set_Culture (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9b33
+        // Method begins at RVA 0x82a7
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14033,11 +10733,11 @@
 	IL_000d:  ret 
     } // end of method AssemblyLinkerTask::set_Culture
 
-    // method line 439
+    // method line 369
     .method public hidebysig specialname 
            instance default valuetype NAnt.DotNet.Types.DelaySign get_DelaySign ()  cil managed 
     {
-        // Method begins at RVA 0x9b44
+        // Method begins at RVA 0x82b8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14052,11 +10752,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_DelaySign
 
-    // method line 440
+    // method line 370
     .method public hidebysig specialname 
            instance default void set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value')  cil managed 
     {
-        // Method begins at RVA 0x9b5f
+        // Method begins at RVA 0x82d3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14066,11 +10766,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_DelaySign
 
-    // method line 441
+    // method line 371
     .method public hidebysig specialname 
            instance default string get_Description ()  cil managed 
     {
-        // Method begins at RVA 0x9b6c
+        // Method begins at RVA 0x82e0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14085,11 +10785,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_Description
 
-    // method line 442
+    // method line 372
     .method public hidebysig specialname 
            instance default void set_Description (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9b87
+        // Method begins at RVA 0x82fb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14099,11 +10799,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_Description
 
-    // method line 443
+    // method line 373
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_EvidenceFile ()  cil managed 
     {
-        // Method begins at RVA 0x9b94
+        // Method begins at RVA 0x8308
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14118,11 +10818,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_EvidenceFile
 
-    // method line 444
+    // method line 374
     .method public hidebysig specialname 
            instance default void set_EvidenceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x9baf
+        // Method begins at RVA 0x8323
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14132,11 +10832,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_EvidenceFile
 
-    // method line 445
+    // method line 375
     .method public hidebysig specialname 
            instance default string get_FileVersion ()  cil managed 
     {
-        // Method begins at RVA 0x9bbc
+        // Method begins at RVA 0x8330
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14151,11 +10851,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_FileVersion
 
-    // method line 446
+    // method line 376
     .method public hidebysig specialname 
            instance default void set_FileVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9bd7
+        // Method begins at RVA 0x834b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14166,11 +10866,11 @@
 	IL_000d:  ret 
     } // end of method AssemblyLinkerTask::set_FileVersion
 
-    // method line 447
+    // method line 377
     .method public hidebysig specialname 
            instance default string get_Flags ()  cil managed 
     {
-        // Method begins at RVA 0x9be8
+        // Method begins at RVA 0x835c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14185,11 +10885,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_Flags
 
-    // method line 448
+    // method line 378
     .method public hidebysig specialname 
            instance default void set_Flags (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9c03
+        // Method begins at RVA 0x8377
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14200,11 +10900,11 @@
 	IL_000d:  ret 
     } // end of method AssemblyLinkerTask::set_Flags
 
-    // method line 449
+    // method line 379
     .method public hidebysig specialname 
            instance default string get_KeyContainer ()  cil managed 
     {
-        // Method begins at RVA 0x9c14
+        // Method begins at RVA 0x8388
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14219,11 +10919,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_KeyContainer
 
-    // method line 450
+    // method line 380
     .method public hidebysig specialname 
            instance default void set_KeyContainer (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9c2f
+        // Method begins at RVA 0x83a3
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14234,11 +10934,11 @@
 	IL_000d:  ret 
     } // end of method AssemblyLinkerTask::set_KeyContainer
 
-    // method line 451
+    // method line 381
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
     {
-        // Method begins at RVA 0x9c40
+        // Method begins at RVA 0x83b4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14253,11 +10953,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_KeyFile
 
-    // method line 452
+    // method line 382
     .method public hidebysig specialname 
            instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x9c5b
+        // Method begins at RVA 0x83cf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14267,11 +10967,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_KeyFile
 
-    // method line 453
+    // method line 383
     .method public hidebysig specialname 
            instance default string get_MainMethod ()  cil managed 
     {
-        // Method begins at RVA 0x9c68
+        // Method begins at RVA 0x83dc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14286,11 +10986,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_MainMethod
 
-    // method line 454
+    // method line 384
     .method public hidebysig specialname 
            instance default void set_MainMethod (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9c83
+        // Method begins at RVA 0x83f7
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14301,11 +11001,11 @@
 	IL_000d:  ret 
     } // end of method AssemblyLinkerTask::set_MainMethod
 
-    // method line 455
+    // method line 385
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.ModuleSet get_ModuleSet ()  cil managed 
     {
-        // Method begins at RVA 0x9c94
+        // Method begins at RVA 0x8408
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14320,11 +11020,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_ModuleSet
 
-    // method line 456
+    // method line 386
     .method public hidebysig specialname 
            instance default void set_ModuleSet (class NAnt.DotNet.Types.ModuleSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x9caf
+        // Method begins at RVA 0x8423
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14334,11 +11034,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_ModuleSet
 
-    // method line 457
+    // method line 387
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x9cbc
+        // Method begins at RVA 0x8430
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14353,11 +11053,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_OutputFile
 
-    // method line 458
+    // method line 388
     .method public hidebysig specialname 
            instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x9cd7
+        // Method begins at RVA 0x844b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14367,11 +11067,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_OutputFile
 
-    // method line 459
+    // method line 389
     .method public hidebysig specialname 
            instance default string get_OutputTarget ()  cil managed 
     {
-        // Method begins at RVA 0x9ce4
+        // Method begins at RVA 0x8458
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14386,11 +11086,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_OutputTarget
 
-    // method line 460
+    // method line 390
     .method public hidebysig specialname 
            instance default void set_OutputTarget (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9cff
+        // Method begins at RVA 0x8473
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14401,11 +11101,11 @@
 	IL_000d:  ret 
     } // end of method AssemblyLinkerTask::set_OutputTarget
 
-    // method line 461
+    // method line 391
     .method public hidebysig specialname 
            instance default string get_Product ()  cil managed 
     {
-        // Method begins at RVA 0x9d10
+        // Method begins at RVA 0x8484
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14420,11 +11120,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_Product
 
-    // method line 462
+    // method line 392
     .method public hidebysig specialname 
            instance default void set_Product (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9d2b
+        // Method begins at RVA 0x849f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14434,11 +11134,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_Product
 
-    // method line 463
+    // method line 393
     .method public hidebysig specialname 
            instance default string get_ProductVersion ()  cil managed 
     {
-        // Method begins at RVA 0x9d38
+        // Method begins at RVA 0x84ac
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14453,11 +11153,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_ProductVersion
 
-    // method line 464
+    // method line 394
     .method public hidebysig specialname 
            instance default void set_ProductVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9d53
+        // Method begins at RVA 0x84c7
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14468,11 +11168,11 @@
 	IL_000d:  ret 
     } // end of method AssemblyLinkerTask::set_ProductVersion
 
-    // method line 465
+    // method line 395
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Resources ()  cil managed 
     {
-        // Method begins at RVA 0x9d64
+        // Method begins at RVA 0x84d8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14487,11 +11187,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_Resources
 
-    // method line 466
+    // method line 396
     .method public hidebysig specialname 
            instance default void set_Resources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x9d7f
+        // Method begins at RVA 0x84f3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14501,11 +11201,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_Resources
 
-    // method line 467
+    // method line 397
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.EmbeddedResourceCollection get_EmbeddedResources ()  cil managed 
     {
-        // Method begins at RVA 0x9d8c
+        // Method begins at RVA 0x8500
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14520,11 +11220,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_EmbeddedResources
 
-    // method line 468
+    // method line 398
     .method public hidebysig specialname 
            instance default void set_EmbeddedResources (class NAnt.DotNet.Types.EmbeddedResourceCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x9da7
+        // Method begins at RVA 0x851b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14534,11 +11234,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_EmbeddedResources
 
-    // method line 469
+    // method line 399
     .method public hidebysig specialname 
            instance default bool get_SupportsTemplate ()  cil managed 
     {
-        // Method begins at RVA 0x9db4
+        // Method begins at RVA 0x8528
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14553,11 +11253,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_SupportsTemplate
 
-    // method line 470
+    // method line 400
     .method public hidebysig specialname 
            instance default void set_SupportsTemplate (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x9dcf
+        // Method begins at RVA 0x8543
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14567,11 +11267,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_SupportsTemplate
 
-    // method line 471
+    // method line 401
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_TemplateFile ()  cil managed 
     {
-        // Method begins at RVA 0x9ddc
+        // Method begins at RVA 0x8550
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14586,11 +11286,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_TemplateFile
 
-    // method line 472
+    // method line 402
     .method public hidebysig specialname 
            instance default void set_TemplateFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x9df7
+        // Method begins at RVA 0x856b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14600,11 +11300,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_TemplateFile
 
-    // method line 473
+    // method line 403
     .method public hidebysig specialname 
            instance default string get_Title ()  cil managed 
     {
-        // Method begins at RVA 0x9e04
+        // Method begins at RVA 0x8578
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14619,11 +11319,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_Title
 
-    // method line 474
+    // method line 404
     .method public hidebysig specialname 
            instance default void set_Title (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9e1f
+        // Method begins at RVA 0x8593
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14633,11 +11333,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_Title
 
-    // method line 475
+    // method line 405
     .method public hidebysig specialname 
            instance default string get_Trademark ()  cil managed 
     {
-        // Method begins at RVA 0x9e2c
+        // Method begins at RVA 0x85a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14652,11 +11352,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_Trademark
 
-    // method line 476
+    // method line 406
     .method public hidebysig specialname 
            instance default void set_Trademark (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9e47
+        // Method begins at RVA 0x85bb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14666,11 +11366,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_Trademark
 
-    // method line 477
+    // method line 407
     .method public hidebysig specialname 
            instance default string get_Version ()  cil managed 
     {
-        // Method begins at RVA 0x9e54
+        // Method begins at RVA 0x85c8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14685,11 +11385,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_Version
 
-    // method line 478
+    // method line 408
     .method public hidebysig specialname 
            instance default void set_Version (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x9e6f
+        // Method begins at RVA 0x85e3
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14700,11 +11400,11 @@
 	IL_000d:  ret 
     } // end of method AssemblyLinkerTask::set_Version
 
-    // method line 479
+    // method line 409
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_Win32Icon ()  cil managed 
     {
-        // Method begins at RVA 0x9e80
+        // Method begins at RVA 0x85f4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14719,11 +11419,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_Win32Icon
 
-    // method line 480
+    // method line 410
     .method public hidebysig specialname 
            instance default void set_Win32Icon (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x9e9b
+        // Method begins at RVA 0x860f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14733,11 +11433,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_Win32Icon
 
-    // method line 481
+    // method line 411
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_Win32Res ()  cil managed 
     {
-        // Method begins at RVA 0x9ea8
+        // Method begins at RVA 0x861c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -14752,11 +11452,11 @@
 	IL_000e:  ret 
     } // end of method AssemblyLinkerTask::get_Win32Res
 
-    // method line 482
+    // method line 412
     .method public hidebysig specialname 
            instance default void set_Win32Res (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x9ec3
+        // Method begins at RVA 0x8637
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -14766,11 +11466,11 @@
 	IL_0008:  ret 
     } // end of method AssemblyLinkerTask::set_Win32Res
 
-    // method line 483
+    // method line 413
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x9ed0
+        // Method begins at RVA 0x8644
 	// Code size 50 (0x32)
 	.maxstack 3
 	.locals init (
@@ -14798,11 +11498,11 @@
 	IL_0031:  ret 
     } // end of method AssemblyLinkerTask::get_ProgramArguments
 
-    // method line 484
+    // method line 414
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x9f10
+        // Method begins at RVA 0x8684
 	// Code size 1471 (0x5bf)
 	.maxstack 8
 	.locals init (
@@ -15351,11 +12051,11 @@
 	IL_05be:  ret 
     } // end of method AssemblyLinkerTask::ExecuteTask
 
-    // method line 485
+    // method line 415
     .method family virtual hidebysig newslot 
            instance default bool NeedsCompiling ()  cil managed 
     {
-        // Method begins at RVA 0xa540
+        // Method begins at RVA 0x8cb4
 	// Code size 1229 (0x4cd)
 	.maxstack 7
 	.locals init (
@@ -16114,6 +12814,3142 @@
 
 .namespace NAnt.DotNet.Tasks
 {
+  .class public auto ansi beforefieldinit VbcTask
+  	extends NAnt.DotNet.Tasks.CompilerBase
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 76 62 63 00 00 ) // ...vbc..
+
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 00 00 00 00 00 00 ) // ........
+
+    .field  private  string _baseAddress
+    .field  private  valuetype NAnt.DotNet.Types.DebugOutput _debugOutput
+    .field  private  class [mscorlib]System.IO.FileInfo _docFile
+    .field  private  bool _nostdlib
+    .field  private  string _optionCompare
+    .field  private  bool _optionExplicit
+    .field  private  bool _optionStrict
+    .field  private  bool _optionOptimize
+    .field  private  bool _removeintchecks
+    .field  private  string _rootNamespace
+    .field  private  string _platform
+    .field  private  class NAnt.DotNet.Types.NamespaceImportCollection _imports
+    .field  private  bool _supportsDocGeneration
+    .field  private  bool _supportsNoStdLib
+    .field  private  bool _supportsPlatform
+    .field  private static  class [System]System.Text.RegularExpressions.Regex _classNameRegex
+    .field  private static  class [System]System.Text.RegularExpressions.Regex _namespaceRegex
+
+    // method line 416
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x91dc
+	// Code size 25 (0x19)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VbcTask::_debugOutput
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class NAnt.DotNet.Types.NamespaceImportCollection::'.ctor'()
+	IL_000d:  stfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.VbcTask::_imports
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance void class NAnt.DotNet.Tasks.CompilerBase::'.ctor'()
+	IL_0018:  ret 
+    } // end of method VbcTask::.ctor
+
+    // method line 417
+    .method public hidebysig specialname 
+           instance default string get_BaseAddress ()  cil managed 
+    {
+        // Method begins at RVA 0x91f8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.VbcTask::_baseAddress
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_BaseAddress
+
+    // method line 418
+    .method public hidebysig specialname 
+           instance default void set_BaseAddress (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9213
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.VbcTask::_baseAddress
+	IL_000d:  ret 
+    } // end of method VbcTask::set_BaseAddress
+
+    // method line 419
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.DotNet.Types.DebugOutput get_DebugOutput ()  cil managed 
+    {
+        // Method begins at RVA 0x9224
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.DotNet.Types.DebugOutput	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VbcTask::_debugOutput
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_DebugOutput
+
+    // method line 420
+    .method public hidebysig specialname 
+           instance default void set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value')  cil managed 
+    {
+        // Method begins at RVA 0x923f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VbcTask::_debugOutput
+	IL_0008:  ret 
+    } // end of method VbcTask::set_DebugOutput
+
+    // method line 421
+    .method public virtual hidebysig specialname 
+           instance default bool get_Debug ()  cil managed 
+    {
+        // Method begins at RVA 0x924c
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.VbcTask::get_DebugOutput()
+	IL_0007:  ldc.i4.0 
+	IL_0008:  ceq 
+	IL_000a:  ldc.i4.0 
+	IL_000b:  ceq 
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method VbcTask::get_Debug
+
+    // method line 422
+    .method public virtual hidebysig specialname 
+           instance default void set_Debug (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x926d
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.1 
+	IL_0003:  call instance void class NAnt.DotNet.Tasks.VbcTask::set_DebugOutput(valuetype NAnt.DotNet.Types.DebugOutput)
+	IL_0008:  ret 
+    } // end of method VbcTask::set_Debug
+
+    // method line 423
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_DocFile ()  cil managed 
+    {
+        // Method begins at RVA 0x9278
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.VbcTask::_docFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_DocFile
+
+    // method line 424
+    .method public hidebysig specialname 
+           instance default void set_DocFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9293
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.VbcTask::_docFile
+	IL_0008:  ret 
+    } // end of method VbcTask::set_DocFile
+
+    // method line 425
+    .method public hidebysig specialname 
+           instance default void set_ImportsString (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x92a0
+	// Code size 72 (0x48)
+	.maxstack 3
+	.locals init (
+		string[]	V_0,
+		string	V_1,
+		string[]	V_2,
+		int32	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call bool string::IsNullOrEmpty(string)
+	IL_0007:  brtrue IL_0047
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.1 
+	IL_000e:  ldc.i4.s 0x2c
+	IL_0010:  ldc.i4.0 
+	IL_0011:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	IL_0016:  stloc.0 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  stloc.2 
+	IL_001a:  ldc.i4.0 
+	IL_001b:  stloc.3 
+	IL_001c:  br IL_003d
+
+	IL_0021:  ldloc.2 
+	IL_0022:  ldloc.3 
+	IL_0023:  ldelem.ref 
+	IL_0024:  stloc.1 
+	IL_0025:  nop 
+	IL_0026:  ldarg.0 
+	IL_0027:  call instance class NAnt.DotNet.Types.NamespaceImportCollection class NAnt.DotNet.Tasks.VbcTask::get_Imports()
+	IL_002c:  ldloc.1 
+	IL_002d:  newobj instance void class NAnt.DotNet.Types.NamespaceImport::'.ctor'(string)
+	IL_0032:  callvirt instance int32 class NAnt.DotNet.Types.NamespaceImportCollection::Add(class NAnt.DotNet.Types.NamespaceImport)
+	IL_0037:  pop 
+	IL_0038:  nop 
+	IL_0039:  ldloc.3 
+	IL_003a:  ldc.i4.1 
+	IL_003b:  add 
+	IL_003c:  stloc.3 
+	IL_003d:  ldloc.3 
+	IL_003e:  ldloc.2 
+	IL_003f:  ldlen 
+	IL_0040:  conv.i4 
+	IL_0041:  blt IL_0021
+
+	IL_0046:  nop 
+	IL_0047:  ret 
+    } // end of method VbcTask::set_ImportsString
+
+    // method line 426
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.NamespaceImportCollection get_Imports ()  cil managed 
+    {
+        // Method begins at RVA 0x92f4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.DotNet.Types.NamespaceImportCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.VbcTask::_imports
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_Imports
+
+    // method line 427
+    .method public hidebysig specialname 
+           instance default void set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x930f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.VbcTask::_imports
+	IL_0008:  ret 
+    } // end of method VbcTask::set_Imports
+
+    // method line 428
+    .method public hidebysig specialname 
+           instance default bool get_NoStdLib ()  cil managed 
+    {
+        // Method begins at RVA 0x931c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_nostdlib
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_NoStdLib
+
+    // method line 429
+    .method public hidebysig specialname 
+           instance default void set_NoStdLib (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9337
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_nostdlib
+	IL_0008:  ret 
+    } // end of method VbcTask::set_NoStdLib
+
+    // method line 430
+    .method public hidebysig specialname 
+           instance default string get_OptionCompare ()  cil managed 
+    {
+        // Method begins at RVA 0x9344
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.VbcTask::_optionCompare
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_OptionCompare
+
+    // method line 431
+    .method public hidebysig specialname 
+           instance default void set_OptionCompare (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x935f
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.VbcTask::_optionCompare
+	IL_000d:  ret 
+    } // end of method VbcTask::set_OptionCompare
+
+    // method line 432
+    .method public hidebysig specialname 
+           instance default bool get_OptionExplicit ()  cil managed 
+    {
+        // Method begins at RVA 0x9370
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_optionExplicit
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_OptionExplicit
+
+    // method line 433
+    .method public hidebysig specialname 
+           instance default void set_OptionExplicit (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x938b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_optionExplicit
+	IL_0008:  ret 
+    } // end of method VbcTask::set_OptionExplicit
+
+    // method line 434
+    .method public hidebysig specialname 
+           instance default bool get_OptionOptimize ()  cil managed 
+    {
+        // Method begins at RVA 0x9398
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_optionOptimize
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_OptionOptimize
+
+    // method line 435
+    .method public hidebysig specialname 
+           instance default void set_OptionOptimize (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x93b3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_optionOptimize
+	IL_0008:  ret 
+    } // end of method VbcTask::set_OptionOptimize
+
+    // method line 436
+    .method public hidebysig specialname 
+           instance default bool get_OptionStrict ()  cil managed 
+    {
+        // Method begins at RVA 0x93c0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_optionStrict
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_OptionStrict
+
+    // method line 437
+    .method public hidebysig specialname 
+           instance default void set_OptionStrict (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x93db
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_optionStrict
+	IL_0008:  ret 
+    } // end of method VbcTask::set_OptionStrict
+
+    // method line 438
+    .method public hidebysig specialname 
+           instance default string get_Platform ()  cil managed 
+    {
+        // Method begins at RVA 0x93e8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.VbcTask::_platform
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_Platform
+
+    // method line 439
+    .method public hidebysig specialname 
+           instance default void set_Platform (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9403
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.VbcTask::_platform
+	IL_000d:  ret 
+    } // end of method VbcTask::set_Platform
+
+    // method line 440
+    .method public hidebysig specialname 
+           instance default bool get_RemoveIntChecks ()  cil managed 
+    {
+        // Method begins at RVA 0x9414
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_removeintchecks
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_RemoveIntChecks
+
+    // method line 441
+    .method public hidebysig specialname 
+           instance default void set_RemoveIntChecks (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x942f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_removeintchecks
+	IL_0008:  ret 
+    } // end of method VbcTask::set_RemoveIntChecks
+
+    // method line 442
+    .method public hidebysig specialname 
+           instance default string get_RootNamespace ()  cil managed 
+    {
+        // Method begins at RVA 0x943c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.VbcTask::_rootNamespace
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_RootNamespace
+
+    // method line 443
+    .method public hidebysig specialname 
+           instance default void set_RootNamespace (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9457
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.VbcTask::_rootNamespace
+	IL_000d:  ret 
+    } // end of method VbcTask::set_RootNamespace
+
+    // method line 444
+    .method public hidebysig specialname 
+           instance default bool get_SupportsDocGeneration ()  cil managed 
+    {
+        // Method begins at RVA 0x9468
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_supportsDocGeneration
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_SupportsDocGeneration
+
+    // method line 445
+    .method public hidebysig specialname 
+           instance default void set_SupportsDocGeneration (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9483
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_supportsDocGeneration
+	IL_0008:  ret 
+    } // end of method VbcTask::set_SupportsDocGeneration
+
+    // method line 446
+    .method public hidebysig specialname 
+           instance default bool get_SupportsNoStdLib ()  cil managed 
+    {
+        // Method begins at RVA 0x9490
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_supportsNoStdLib
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_SupportsNoStdLib
+
+    // method line 447
+    .method public hidebysig specialname 
+           instance default void set_SupportsNoStdLib (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x94ab
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_supportsNoStdLib
+	IL_0008:  ret 
+    } // end of method VbcTask::set_SupportsNoStdLib
+
+    // method line 448
+    .method public hidebysig specialname 
+           instance default bool get_SupportsPlatform ()  cil managed 
+    {
+        // Method begins at RVA 0x94b8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_supportsPlatform
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VbcTask::get_SupportsPlatform
+
+    // method line 449
+    .method public hidebysig specialname 
+           instance default void set_SupportsPlatform (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x94d3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_supportsPlatform
+	IL_0008:  ret 
+    } // end of method VbcTask::set_SupportsPlatform
+
+    // method line 450
+    .method family virtual hidebysig 
+           instance default class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage GetResourceLinkage (string dependentFile, class [mscorlib]System.Globalization.CultureInfo resourceCulture)  cil managed 
+    {
+        // Method begins at RVA 0x94e0
+	// Code size 105 (0x69)
+	.maxstack 4
+	.locals init (
+		class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage	V_0,
+		class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  call instance class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage class NAnt.DotNet.Tasks.CompilerBase::GetResourceLinkage(string, class [mscorlib]System.Globalization.CultureInfo)
+	IL_0009:  stloc.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  brfalse IL_0060
+
+	IL_0010:  nop 
+	IL_0011:  ldarg.0 
+	IL_0012:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_RootNamespace()
+	IL_0017:  call bool string::IsNullOrEmpty(string)
+	IL_001c:  brtrue IL_005f
+
+	IL_0021:  nop 
+	IL_0022:  ldloc.0 
+	IL_0023:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_HasNamespaceName()
+	IL_0028:  brfalse IL_0050
+
+	IL_002d:  nop 
+	IL_002e:  ldloc.0 
+	IL_002f:  ldarg.0 
+	IL_0030:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_RootNamespace()
+	IL_0035:  ldstr "."
+	IL_003a:  ldloc.0 
+	IL_003b:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_NamespaceName()
+	IL_0040:  call string string::Concat(string, string, string)
+	IL_0045:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::set_NamespaceName(string)
+	IL_004a:  nop 
+	IL_004b:  br IL_005e
+
+	IL_0050:  nop 
+	IL_0051:  ldloc.0 
+	IL_0052:  ldarg.0 
+	IL_0053:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_RootNamespace()
+	IL_0058:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::set_NamespaceName(string)
+	IL_005d:  nop 
+	IL_005e:  nop 
+	IL_005f:  nop 
+	IL_0060:  ldloc.0 
+	IL_0061:  stloc.1 
+	IL_0062:  br IL_0067
+
+	IL_0067:  ldloc.1 
+	IL_0068:  ret 
+    } // end of method VbcTask::GetResourceLinkage
+
+    // method line 451
+    .method family virtual hidebysig 
+           instance default void WriteConditionalCompilationConstants (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x9558
+	// Code size 72 (0x48)
+	.maxstack 4
+	.locals init (
+		string[]	V_0,
+		string	V_1,
+		string[]	V_2,
+		int32	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_Define()
+	IL_0007:  brfalse IL_0047
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_Define()
+	IL_0013:  ldc.i4.s 0x2c
+	IL_0015:  ldc.i4.0 
+	IL_0016:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	IL_001b:  stloc.0 
+	IL_001c:  nop 
+	IL_001d:  ldloc.0 
+	IL_001e:  stloc.2 
+	IL_001f:  ldc.i4.0 
+	IL_0020:  stloc.3 
+	IL_0021:  br IL_003d
+
+	IL_0026:  ldloc.2 
+	IL_0027:  ldloc.3 
+	IL_0028:  ldelem.ref 
+	IL_0029:  stloc.1 
+	IL_002a:  nop 
+	IL_002b:  ldarg.0 
+	IL_002c:  ldarg.1 
+	IL_002d:  ldstr "define"
+	IL_0032:  ldloc.1 
+	IL_0033:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_0038:  nop 
+	IL_0039:  ldloc.3 
+	IL_003a:  ldc.i4.1 
+	IL_003b:  add 
+	IL_003c:  stloc.3 
+	IL_003d:  ldloc.3 
+	IL_003e:  ldloc.2 
+	IL_003f:  ldlen 
+	IL_0040:  conv.i4 
+	IL_0041:  blt IL_0026
+
+	IL_0046:  nop 
+	IL_0047:  ret 
+    } // end of method VbcTask::WriteConditionalCompilationConstants
+
+    // method line 452
+    .method family virtual hidebysig 
+           instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x95ac
+	// Code size 840 (0x348)
+	.maxstack 7
+	.locals init (
+		valuetype NAnt.DotNet.Types.DebugOutput	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_BaseAddress()
+	IL_0007:  brfalse IL_0020
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldarg.1 
+	IL_000f:  ldstr "baseaddress"
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_BaseAddress()
+	IL_001a:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_001f:  nop 
+	IL_0020:  ldarg.0 
+	IL_0021:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.VbcTask::get_DocFile()
+	IL_0026:  brfalse IL_0086
+
+	IL_002b:  nop 
+	IL_002c:  ldarg.0 
+	IL_002d:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_SupportsDocGeneration()
+	IL_0032:  brfalse IL_0055
+
+	IL_0037:  nop 
+	IL_0038:  ldarg.0 
+	IL_0039:  ldarg.1 
+	IL_003a:  ldstr "doc"
+	IL_003f:  ldarg.0 
+	IL_0040:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.VbcTask::get_DocFile()
+	IL_0045:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_004a:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_004f:  nop 
+	IL_0050:  br IL_0085
+
+	IL_0055:  nop 
+	IL_0056:  ldarg.0 
+	IL_0057:  ldc.i4 4000
+	IL_005c:  ldstr "String_CompilerDoesNotSupportXmlDoc"
+	IL_0061:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0066:  ldc.i4.1 
+	IL_0067:  newarr [mscorlib]System.Object
+	IL_006c:  dup 
+	IL_006d:  ldc.i4.0 
+	IL_006e:  ldarg.0 
+	IL_006f:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0074:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0079:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	IL_007e:  stelem.ref 
+	IL_007f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0084:  nop 
+	IL_0085:  nop 
+	IL_0086:  ldarg.0 
+	IL_0087:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_NoStdLib()
+	IL_008c:  brfalse IL_00e1
+
+	IL_0091:  nop 
+	IL_0092:  ldarg.0 
+	IL_0093:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_SupportsNoStdLib()
+	IL_0098:  brfalse IL_00b0
+
+	IL_009d:  nop 
+	IL_009e:  ldarg.0 
+	IL_009f:  ldarg.1 
+	IL_00a0:  ldstr "nostdlib"
+	IL_00a5:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_00aa:  nop 
+	IL_00ab:  br IL_00e0
+
+	IL_00b0:  nop 
+	IL_00b1:  ldarg.0 
+	IL_00b2:  ldc.i4 4000
+	IL_00b7:  ldstr "String_CompilerDoesNotSupportNoStdLib"
+	IL_00bc:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00c1:  ldc.i4.1 
+	IL_00c2:  newarr [mscorlib]System.Object
+	IL_00c7:  dup 
+	IL_00c8:  ldc.i4.0 
+	IL_00c9:  ldarg.0 
+	IL_00ca:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_00cf:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_00d4:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	IL_00d9:  stelem.ref 
+	IL_00da:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00df:  nop 
+	IL_00e0:  nop 
+	IL_00e1:  ldarg.0 
+	IL_00e2:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_Platform()
+	IL_00e7:  brfalse IL_0142
+
+	IL_00ec:  nop 
+	IL_00ed:  ldarg.0 
+	IL_00ee:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_SupportsPlatform()
+	IL_00f3:  brfalse IL_0111
+
+	IL_00f8:  nop 
+	IL_00f9:  ldarg.0 
+	IL_00fa:  ldarg.1 
+	IL_00fb:  ldstr "platform"
+	IL_0100:  ldarg.0 
+	IL_0101:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_Platform()
+	IL_0106:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_010b:  nop 
+	IL_010c:  br IL_0141
+
+	IL_0111:  nop 
+	IL_0112:  ldarg.0 
+	IL_0113:  ldc.i4 4000
+	IL_0118:  ldstr "String_CompilerDoesNotSupportPlatform"
+	IL_011d:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0122:  ldc.i4.1 
+	IL_0123:  newarr [mscorlib]System.Object
+	IL_0128:  dup 
+	IL_0129:  ldc.i4.0 
+	IL_012a:  ldarg.0 
+	IL_012b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0130:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0135:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	IL_013a:  stelem.ref 
+	IL_013b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0140:  nop 
+	IL_0141:  nop 
+	IL_0142:  ldarg.0 
+	IL_0143:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
+	IL_0148:  brfalse IL_0166
+
+	IL_014d:  nop 
+	IL_014e:  ldarg.0 
+	IL_014f:  ldarg.1 
+	IL_0150:  ldstr "win32resource"
+	IL_0155:  ldarg.0 
+	IL_0156:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
+	IL_015b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0160:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_0165:  nop 
+	IL_0166:  ldarg.0 
+	IL_0167:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.VbcTask::get_DebugOutput()
+	IL_016c:  stloc.0 
+	IL_016d:  ldloc.0 
+	IL_016e:  switch (
+	  IL_0188,
+	  IL_018d,
+	  IL_01c0,
+	  IL_01d1)
+	IL_0183:  br IL_01e7
+
+	IL_0188:  br IL_0212
+
+	IL_018d:  ldarg.0 
+	IL_018e:  ldarg.1 
+	IL_018f:  ldstr "debug"
+	IL_0194:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_0199:  ldarg.0 
+	IL_019a:  ldarg.1 
+	IL_019b:  ldstr "define"
+	IL_01a0:  ldstr "DEBUG=True"
+	IL_01a5:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_01aa:  ldarg.0 
+	IL_01ab:  ldarg.1 
+	IL_01ac:  ldstr "define"
+	IL_01b1:  ldstr "TRACE=True"
+	IL_01b6:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_01bb:  br IL_0212
+
+	IL_01c0:  ldarg.0 
+	IL_01c1:  ldarg.1 
+	IL_01c2:  ldstr "debug"
+	IL_01c7:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_01cc:  br IL_0212
+
+	IL_01d1:  ldarg.0 
+	IL_01d2:  ldarg.1 
+	IL_01d3:  ldstr "debug"
+	IL_01d8:  ldstr "pdbonly"
+	IL_01dd:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_01e2:  br IL_0212
+
+	IL_01e7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01ec:  ldstr "NA2011"
+	IL_01f1:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_01f6:  ldarg.0 
+	IL_01f7:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.VbcTask::get_DebugOutput()
+	IL_01fc:  box NAnt.DotNet.Types.DebugOutput
+	IL_0201:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0206:  ldarg.0 
+	IL_0207:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_020c:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0211:  throw 
+	IL_0212:  ldarg.0 
+	IL_0213:  call instance class NAnt.DotNet.Types.NamespaceImportCollection class NAnt.DotNet.Tasks.VbcTask::get_Imports()
+	IL_0218:  callvirt instance string object::ToString()
+	IL_021d:  stloc.1 
+	IL_021e:  ldloc.1 
+	IL_021f:  call bool string::IsNullOrEmpty(string)
+	IL_0224:  brtrue IL_0238
+
+	IL_0229:  nop 
+	IL_022a:  ldarg.0 
+	IL_022b:  ldarg.1 
+	IL_022c:  ldstr "imports"
+	IL_0231:  ldloc.1 
+	IL_0232:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_0237:  nop 
+	IL_0238:  ldarg.0 
+	IL_0239:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_OptionCompare()
+	IL_023e:  brfalse IL_0276
+
+	IL_0243:  ldarg.0 
+	IL_0244:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_OptionCompare()
+	IL_0249:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_024e:  callvirt instance string string::ToUpper(class [mscorlib]System.Globalization.CultureInfo)
+	IL_0253:  ldstr "FALSE"
+	IL_0258:  call bool string::op_Inequality(string, string)
+	IL_025d:  brfalse IL_0276
+
+	IL_0262:  nop 
+	IL_0263:  ldarg.0 
+	IL_0264:  ldarg.1 
+	IL_0265:  ldstr "optioncompare"
+	IL_026a:  ldarg.0 
+	IL_026b:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_OptionCompare()
+	IL_0270:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_0275:  nop 
+	IL_0276:  ldarg.0 
+	IL_0277:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_OptionExplicit()
+	IL_027c:  brfalse IL_028f
+
+	IL_0281:  nop 
+	IL_0282:  ldarg.0 
+	IL_0283:  ldarg.1 
+	IL_0284:  ldstr "optionexplicit"
+	IL_0289:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_028e:  nop 
+	IL_028f:  ldarg.0 
+	IL_0290:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_OptionStrict()
+	IL_0295:  brfalse IL_02a8
+
+	IL_029a:  nop 
+	IL_029b:  ldarg.0 
+	IL_029c:  ldarg.1 
+	IL_029d:  ldstr "optionstrict"
+	IL_02a2:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_02a7:  nop 
+	IL_02a8:  ldarg.0 
+	IL_02a9:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_RemoveIntChecks()
+	IL_02ae:  brfalse IL_02c1
+
+	IL_02b3:  nop 
+	IL_02b4:  ldarg.0 
+	IL_02b5:  ldarg.1 
+	IL_02b6:  ldstr "removeintchecks"
+	IL_02bb:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_02c0:  nop 
+	IL_02c1:  ldarg.0 
+	IL_02c2:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_OptionOptimize()
+	IL_02c7:  brfalse IL_02da
+
+	IL_02cc:  nop 
+	IL_02cd:  ldarg.0 
+	IL_02ce:  ldarg.1 
+	IL_02cf:  ldstr "optimize"
+	IL_02d4:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_02d9:  nop 
+	IL_02da:  ldarg.0 
+	IL_02db:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_RootNamespace()
+	IL_02e0:  brfalse IL_02f9
+
+	IL_02e5:  nop 
+	IL_02e6:  ldarg.0 
+	IL_02e7:  ldarg.1 
+	IL_02e8:  ldstr "rootnamespace"
+	IL_02ed:  ldarg.0 
+	IL_02ee:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_RootNamespace()
+	IL_02f3:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_02f8:  nop 
+	IL_02f9:  ldarg.0 
+	IL_02fa:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_02ff:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0304:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Family()
+	IL_0309:  ldstr "netcf"
+	IL_030e:  call bool string::op_Equality(string, string)
+	IL_0313:  brfalse IL_0347
+
+	IL_0318:  nop 
+	IL_0319:  ldarg.0 
+	IL_031a:  ldarg.1 
+	IL_031b:  ldstr "netcf"
+	IL_0320:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_0325:  ldarg.0 
+	IL_0326:  ldarg.1 
+	IL_0327:  ldstr "sdkpath"
+	IL_032c:  ldarg.0 
+	IL_032d:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0332:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0337:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory()
+	IL_033c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0341:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_0346:  nop 
+	IL_0347:  ret 
+    } // end of method VbcTask::WriteOptions
+
+    // method line 453
+    .method family virtual hidebysig 
+           instance default bool NeedsCompiling ()  cil managed 
+    {
+        // Method begins at RVA 0x9900
+	// Code size 123 (0x7b)
+	.maxstack 7
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.DotNet.Tasks.CompilerBase::NeedsCompiling()
+	IL_0007:  brfalse IL_0014
+
+	IL_000c:  nop 
+	IL_000d:  ldc.i4.1 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0079
+
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.VbcTask::get_DocFile()
+	IL_001a:  brfalse IL_006d
+
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_SupportsDocGeneration()
+	IL_0025:  brfalse IL_006d
+
+	IL_002a:  nop 
+	IL_002b:  ldarg.0 
+	IL_002c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.VbcTask::get_DocFile()
+	IL_0031:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0036:  brtrue IL_006c
+
+	IL_003b:  nop 
+	IL_003c:  ldarg.0 
+	IL_003d:  ldc.i4 2000
+	IL_0042:  ldstr "String_DocFileDoesNotExist"
+	IL_0047:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_004c:  ldc.i4.1 
+	IL_004d:  newarr [mscorlib]System.Object
+	IL_0052:  dup 
+	IL_0053:  ldc.i4.0 
+	IL_0054:  ldarg.0 
+	IL_0055:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.VbcTask::get_DocFile()
+	IL_005a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_005f:  stelem.ref 
+	IL_0060:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0065:  ldc.i4.1 
+	IL_0066:  stloc.0 
+	IL_0067:  br IL_0079
+
+	IL_006c:  nop 
+	IL_006d:  ldarg.0 
+	IL_006e:  call instance bool class NAnt.DotNet.Tasks.CompilerBase::NeedsCompiling()
+	IL_0073:  stloc.0 
+	IL_0074:  br IL_0079
+
+	IL_0079:  ldloc.0 
+	IL_007a:  ret 
+    } // end of method VbcTask::NeedsCompiling
+
+    // method line 454
+    .method public virtual hidebysig specialname 
+           instance default string get_Extension ()  cil managed 
+    {
+        // Method begins at RVA 0x9988
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldstr "vb"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method VbcTask::get_Extension
+
+    // method line 455
+    .method family virtual hidebysig specialname 
+           instance default class [System]System.Text.RegularExpressions.Regex get_ClassNameRegex ()  cil managed 
+    {
+        // Method begins at RVA 0x99a4
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		class [System]System.Text.RegularExpressions.Regex	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VbcTask::_classNameRegex
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method VbcTask::get_ClassNameRegex
+
+    // method line 456
+    .method family virtual hidebysig specialname 
+           instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
+    {
+        // Method begins at RVA 0x99c0
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		class [System]System.Text.RegularExpressions.Regex	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VbcTask::_namespaceRegex
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method VbcTask::get_NamespaceRegex
+
+    // method line 457
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x99da
+	// Code size 31 (0x1f)
+	.maxstack 8
+	IL_0000:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.]+|Class\\s+(?<class>\\w+)|(?<keyword>\\w+))*"
+	IL_0005:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
+	IL_000a:  stsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VbcTask::_classNameRegex
+	IL_000f:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.]+|Namespace\\s+(?<namespace>(\\w+(\\.\\w+)*)+)|(?<keyword>\\w+))*"
+	IL_0014:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
+	IL_0019:  stsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VbcTask::_namespaceRegex
+	IL_001e:  ret 
+    } // end of method VbcTask::.cctor
+
+	.property instance string BaseAddress ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 62 61 73 65 61 64 64 72 65 73 73 00 00 ) // ...baseaddress..
+
+		.get instance default string NAnt.DotNet.Tasks.VbcTask::get_BaseAddress () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_BaseAddress (string 'value') 
+	}
+	.property instance valuetype NAnt.DotNet.Types.DebugOutput DebugOutput ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 64 65 62 75 67 00 00 ) // ...debug..
+
+		.get instance default valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VbcTask::get_DebugOutput () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value') 
+	}
+	.property instance bool Debug ()
+	{
+		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_Debug () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_Debug (bool 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo DocFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 6F 63 00 00 ) // ...doc..
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.VbcTask::get_DocFile () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_DocFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string ImportsString ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 69 6D 70 6F 72 74 73 00 00 ) // ...imports..
+
+		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
+		01 00 22 55 73 65 20 74 68 65 20 3C 69 6D 70 6F   // .."Use the <impo
+		72 74 73 3E 20 65 6C 65 6D 65 6E 74 20 69 6E 73   // rts> element ins
+		74 65 61 64 2E 00 00 00                         ) // tead....
+
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_ImportsString (string 'value') 
+	}
+	.property instance class NAnt.DotNet.Types.NamespaceImportCollection Imports ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 69 6D 70 6F 72 74 73 00 00 ) // ...imports..
+
+		.get instance default class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.VbcTask::get_Imports () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value') 
+	}
+	.property instance bool NoStdLib ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (01 00 08 6E 6F 73 74 64 6C 69 62 00 00 ) // ...nostdlib..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 6E 6F 73 74 64 6C 69 62 00 00 ) // ...nostdlib..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_NoStdLib () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_NoStdLib (bool 'value') 
+	}
+	.property instance string OptionCompare ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 6F 70 74 69 6F 6E 63 6F 6D 70 61 72 65   // ...optioncompare
+		00 00                                           ) // ..
+
+		.get instance default string NAnt.DotNet.Tasks.VbcTask::get_OptionCompare () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionCompare (string 'value') 
+	}
+	.property instance bool OptionExplicit ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0E 6F 70 74 69 6F 6E 65 78 70 6C 69 63 69   // ...optionexplici
+		74 00 00                                        ) // t..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_OptionExplicit () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionExplicit (bool 'value') 
+	}
+	.property instance bool OptionOptimize ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0E 6F 70 74 69 6F 6E 6F 70 74 69 6D 69 7A   // ...optionoptimiz
+		65 00 00                                        ) // e..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_OptionOptimize () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionOptimize (bool 'value') 
+	}
+	.property instance bool OptionStrict ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0C 6F 70 74 69 6F 6E 73 74 72 69 63 74 00   // ...optionstrict.
+		00                                              ) // .
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_OptionStrict () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionStrict (bool 'value') 
+	}
+	.property instance string Platform ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 70 6C 61 74 66 6F 72 6D 00 00 ) // ...platform..
+
+		.get instance default string NAnt.DotNet.Tasks.VbcTask::get_Platform () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_Platform (string 'value') 
+	}
+	.property instance bool RemoveIntChecks ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0F 72 65 6D 6F 76 65 69 6E 74 63 68 65 63   // ...removeintchec
+		6B 73 00 00                                     ) // ks..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_RemoveIntChecks () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_RemoveIntChecks (bool 'value') 
+	}
+	.property instance string RootNamespace ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 72 6F 6F 74 6E 61 6D 65 73 70 61 63 65   // ...rootnamespace
+		00 00                                           ) // ..
+
+		.get instance default string NAnt.DotNet.Tasks.VbcTask::get_RootNamespace () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_RootNamespace (string 'value') 
+	}
+	.property instance bool SupportsDocGeneration ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 15 73 75 70 70 6F 72 74 73 64 6F 63 67 65   // ...supportsdocge
+		6E 65 72 61 74 69 6F 6E 00 00                   ) // neration..
+
+		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_SupportsDocGeneration () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_SupportsDocGeneration (bool 'value') 
+	}
+	.property instance bool SupportsNoStdLib ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 10 73 75 70 70 6F 72 74 73 6E 6F 73 74 64   // ...supportsnostd
+		6C 69 62 00 00                                  ) // lib..
+
+		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_SupportsNoStdLib () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_SupportsNoStdLib (bool 'value') 
+	}
+	.property instance bool SupportsPlatform ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 10 73 75 70 70 6F 72 74 73 70 6C 61 74 66   // ...supportsplatf
+		6F 72 6D 00 00                                  ) // orm..
+
+		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_SupportsPlatform () 
+		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_SupportsPlatform (bool 'value') 
+	}
+	.property instance string Extension ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.VbcTask::get_Extension () 
+	}
+	.property instance class [System]System.Text.RegularExpressions.Regex ClassNameRegex ()
+	{
+		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VbcTask::get_ClassNameRegex () 
+	}
+	.property instance class [System]System.Text.RegularExpressions.Regex NamespaceRegex ()
+	{
+		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VbcTask::get_NamespaceRegex () 
+	}
+  } // end of class NAnt.DotNet.Tasks.VbcTask
+}
+
+.namespace NAnt.DotNet.Tasks
+{
+  .class public auto ansi beforefieldinit NDocTask
+  	extends [NAnt.Core]NAnt.Core.Task
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 6E 64 6F 63 00 00 ) // ...ndoc..
+
+    .field  private  class [System.Xml]System.Xml.XmlNodeList _docNodes
+    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _assemblies
+    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _summaries
+    .field  private  class [NAnt.Core]NAnt.Core.Types.RawXml _documenters
+    .field  private  class [NAnt.Core]NAnt.Core.Types.DirSet _referencePaths
+    .field  private  string _hhcexe
+
+    // method line 458
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x99fa
+	// Code size 40 (0x28)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
+	IL_0006:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.NDocTask::_assemblies
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0011:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.NDocTask::_summaries
+	IL_0016:  ldarg.0 
+	IL_0017:  newobj instance void class [NAnt.Core]NAnt.Core.Types.DirSet::'.ctor'()
+	IL_001c:  stfld class [NAnt.Core]NAnt.Core.Types.DirSet NAnt.DotNet.Tasks.NDocTask::_referencePaths
+	IL_0021:  ldarg.0 
+	IL_0022:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
+	IL_0027:  ret 
+    } // end of method NDocTask::.ctor
+
+    // method line 459
+    .method public hidebysig specialname 
+           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
+    {
+        // Method begins at RVA 0x9a24
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.DotNet.Types.AssemblyFileSet	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.NDocTask::_assemblies
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NDocTask::get_Assemblies
+
+    // method line 460
+    .method public hidebysig specialname 
+           instance default void set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9a3f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.NDocTask::_assemblies
+	IL_0008:  ret 
+    } // end of method NDocTask::set_Assemblies
+
+    // method line 461
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Summaries ()  cil managed 
+    {
+        // Method begins at RVA 0x9a4c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.NDocTask::_summaries
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NDocTask::get_Summaries
+
+    // method line 462
+    .method public hidebysig specialname 
+           instance default void set_Summaries (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9a67
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.NDocTask::_summaries
+	IL_0008:  ret 
+    } // end of method NDocTask::set_Summaries
+
+    // method line 463
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.RawXml get_Documenters ()  cil managed 
+    {
+        // Method begins at RVA 0x9a74
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [NAnt.Core]NAnt.Core.Types.RawXml	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.RawXml NAnt.DotNet.Tasks.NDocTask::_documenters
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NDocTask::get_Documenters
+
+    // method line 464
+    .method public hidebysig specialname 
+           instance default void set_Documenters (class [NAnt.Core]NAnt.Core.Types.RawXml 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9a8f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.RawXml NAnt.DotNet.Tasks.NDocTask::_documenters
+	IL_0008:  ret 
+    } // end of method NDocTask::set_Documenters
+
+    // method line 465
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.DirSet get_ReferencePaths ()  cil managed 
+    {
+        // Method begins at RVA 0x9a9c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [NAnt.Core]NAnt.Core.Types.DirSet	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.DirSet NAnt.DotNet.Tasks.NDocTask::_referencePaths
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NDocTask::get_ReferencePaths
+
+    // method line 466
+    .method public hidebysig specialname 
+           instance default void set_ReferencePaths (class [NAnt.Core]NAnt.Core.Types.DirSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x9ab7
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.DirSet NAnt.DotNet.Tasks.NDocTask::_referencePaths
+	IL_0008:  ret 
+    } // end of method NDocTask::set_ReferencePaths
+
+    // method line 467
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0x9ac4
+	// Code size 64 (0x40)
+	.maxstack 4
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  call instance class [NAnt.Core]NAnt.Core.Types.RawXml class NAnt.DotNet.Tasks.NDocTask::get_Documenters()
+	IL_0008:  callvirt instance class [System.Xml]System.Xml.XmlNode class [NAnt.Core]NAnt.Core.Types.RawXml::get_Xml()
+	IL_000d:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::Clone()
+	IL_0012:  ldstr "nant:documenter"
+	IL_0017:  ldarg.0 
+	IL_0018:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_001d:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0022:  stfld class [System.Xml]System.Xml.XmlNodeList NAnt.DotNet.Tasks.NDocTask::_docNodes
+	IL_0027:  ldarg.0 
+	IL_0028:  ldarg.0 
+	IL_0029:  ldfld class [System.Xml]System.Xml.XmlNodeList NAnt.DotNet.Tasks.NDocTask::_docNodes
+	IL_002e:  call instance void class NAnt.DotNet.Tasks.NDocTask::ExpandPropertiesInNodes(class [System.Xml]System.Xml.XmlNodeList)
+	IL_0033:  ldarg.0 
+	IL_0034:  ldarg.0 
+	IL_0035:  call instance string class NAnt.DotNet.Tasks.NDocTask::ResolveHhcExe()
+	IL_003a:  stfld string NAnt.DotNet.Tasks.NDocTask::_hhcexe
+	IL_003f:  ret 
+    } // end of method NDocTask::Initialize
+
+    // method line 468
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x9b10
+    } // end of method NDocTask::ExecuteTask
+
+    // method line 469
+    .method private hidebysig 
+           (null) cil managed 
+    {
+        // Method begins at RVA 0xa1c4
+	// Code size 58 (0x3a)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4 3000
+	IL_0007:  ldarg.2 
+	IL_0008:  callvirt instance string [NDoc.Core]NDoc.Core.ProgressArgs::get_Status()
+	IL_000d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0012:  ldarg.2 
+	IL_0013:  callvirt instance int32 [NDoc.Core]NDoc.Core.ProgressArgs::get_Progress()
+	IL_0018:  ldc.i4.s 0x19
+	IL_001a:  bne.un IL_0039
+
+	IL_001f:  ldarg.0 
+	IL_0020:  ldfld string NAnt.DotNet.Tasks.NDocTask::_hhcexe
+	IL_0025:  brfalse IL_0039
+
+	IL_002a:  nop 
+	IL_002b:  ldarg.0 
+	IL_002c:  ldarg.1 
+	IL_002d:  ldarg.0 
+	IL_002e:  ldfld string NAnt.DotNet.Tasks.NDocTask::_hhcexe
+	IL_0033:  call instance void class NAnt.DotNet.Tasks.NDocTask::SetHtmlHelpCompiler(object, string)
+	IL_0038:  nop 
+	IL_0039:  ret 
+    } // end of method NDocTask::<NULL METHOD SIGNATURE>
+
+    // method line 470
+    .method private hidebysig 
+           (null) cil managed 
+    {
+        // Method begins at RVA 0xa1ff
+	// Code size 39 (0x27)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4 2000
+	IL_0007:  ldarg.2 
+	IL_0008:  callvirt instance int32 [NDoc.Core]NDoc.Core.ProgressArgs::get_Progress()
+	IL_000d:  box [mscorlib]System.Int32
+	IL_0012:  ldstr "String_PercentageComplete"
+	IL_0017:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_001c:  call string string::Concat(object, object)
+	IL_0021:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0026:  ret 
+    } // end of method NDocTask::<NULL METHOD SIGNATURE>
+
+    // method line 471
+    .method private hidebysig 
+           (null) cil managed 
+    {
+        // Method begins at RVA 0xa228
+    } // end of method NDocTask::<NULL METHOD SIGNATURE>
+
+    // method line 472
+    .method private hidebysig 
+           instance default void ExpandPropertiesInNodes (class [System.Xml]System.Xml.XmlNodeList nodes)  cil managed 
+    {
+        // Method begins at RVA 0xa340
+	// Code size 272 (0x110)
+	.maxstack 4
+	.locals init (
+		class [System.Xml]System.Xml.XmlNode	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class [System.Xml]System.Xml.XmlAttribute	V_2,
+		class [mscorlib]System.Collections.IEnumerator	V_3,
+		class [mscorlib]System.IDisposable	V_4,
+		class [System.Xml]System.Xml.XmlNode	V_5,
+		class [System.Xml]System.Xml.XmlAttribute	V_6,
+		class [mscorlib]System.IDisposable	V_7)
+	IL_0000:  nop 
+	IL_0001:  nop 
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_0008:  stloc.1 
+	.try { // 1
+	  IL_0009:  br IL_00e9
+
+	  IL_000e:  ldloc.1 
+	  IL_000f:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0014:  castclass [System.Xml]System.Xml.XmlNode
+	  IL_0019:  stloc.0 
+	  IL_001a:  nop 
+	  IL_001b:  ldloc.0 
+	  IL_001c:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
+	  IL_0021:  ldc.i4.1 
+	  IL_0022:  bne.un IL_00e8
+
+	  IL_0027:  nop 
+	  IL_0028:  ldarg.0 
+	  IL_0029:  ldloc.0 
+	  IL_002a:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::get_ChildNodes()
+	  IL_002f:  call instance void class NAnt.DotNet.Tasks.NDocTask::ExpandPropertiesInNodes(class [System.Xml]System.Xml.XmlNodeList)
+	  IL_0034:  nop 
+	  IL_0035:  ldloc.0 
+	  IL_0036:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	  IL_003b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNamedNodeMap::GetEnumerator()
+	  IL_0040:  stloc.3 
+	  .try { // 0
+	    IL_0041:  br IL_0071
+
+	    IL_0046:  ldloc.3 
+	    IL_0047:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_004c:  castclass [System.Xml]System.Xml.XmlAttribute
+	    IL_0051:  stloc.2 
+	    IL_0052:  nop 
+	    IL_0053:  ldloc.2 
+	    IL_0054:  ldarg.0 
+	    IL_0055:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	    IL_005a:  ldloc.2 
+	    IL_005b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	    IL_0060:  ldarg.0 
+	    IL_0061:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	    IL_0066:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::ExpandProperties(string, class [NAnt.Core]NAnt.Core.Location)
+	    IL_006b:  callvirt instance void class [System.Xml]System.Xml.XmlNode::set_Value(string)
+	    IL_0070:  nop 
+	    IL_0071:  ldloc.3 
+	    IL_0072:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_0077:  brtrue IL_0046
+
+	    IL_007c:  leave IL_0097
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_0081:  ldloc.3 
+	    IL_0082:  isinst [mscorlib]System.IDisposable
+	    IL_0087:  dup 
+	    IL_0088:  stloc.s 4
+	    IL_008a:  brfalse IL_0096
+
+	    IL_008f:  ldloc.s 4
+	    IL_0091:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0096:  endfinally 
+	  } // end handler 0
+	  IL_0097:  ldloc.0 
+	  IL_0098:  ldstr "property[@name='OutputDirectory']"
+	  IL_009d:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	  IL_00a2:  stloc.s 5
+	  IL_00a4:  ldloc.s 5
+	  IL_00a6:  brfalse IL_00e7
+
+	  IL_00ab:  nop 
+	  IL_00ac:  ldloc.s 5
+	  IL_00ae:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	  IL_00b3:  ldstr "value"
+	  IL_00b8:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNamedNodeMap::GetNamedItem(string)
+	  IL_00bd:  castclass [System.Xml]System.Xml.XmlAttribute
+	  IL_00c2:  stloc.s 6
+	  IL_00c4:  ldloc.s 6
+	  IL_00c6:  brfalse IL_00e6
+
+	  IL_00cb:  nop 
+	  IL_00cc:  ldloc.s 6
+	  IL_00ce:  ldarg.0 
+	  IL_00cf:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_00d4:  ldloc.s 6
+	  IL_00d6:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	  IL_00db:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::GetFullPath(string)
+	  IL_00e0:  callvirt instance void class [System.Xml]System.Xml.XmlNode::set_Value(string)
+	  IL_00e5:  nop 
+	  IL_00e6:  nop 
+	  IL_00e7:  nop 
+	  IL_00e8:  nop 
+	  IL_00e9:  ldloc.1 
+	  IL_00ea:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00ef:  brtrue IL_000e
+
+	  IL_00f4:  leave IL_010f
+
+	} // end .try 1
+	finally  { // 1
+	  IL_00f9:  ldloc.1 
+	  IL_00fa:  isinst [mscorlib]System.IDisposable
+	  IL_00ff:  dup 
+	  IL_0100:  stloc.s 7
+	  IL_0102:  brfalse IL_010e
+
+	  IL_0107:  ldloc.s 7
+	  IL_0109:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_010e:  endfinally 
+	} // end handler 1
+	IL_010f:  ret 
+    } // end of method NDocTask::ExpandPropertiesInNodes
+
+    // method line 473
+    .method private hidebysig 
+           instance default void SetHtmlHelpCompiler (object sender, string hhcexe)  cil managed 
+    {
+        // Method begins at RVA 0xa478
+	// Code size 164 (0xa4)
+	.maxstack 7
+	.locals init (
+		class [mscorlib]System.Reflection.FieldInfo	V_0,
+		object	V_1,
+		class [mscorlib]System.Reflection.FieldInfo	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4 1000
+	IL_0007:  ldstr "Setting Html Help Compiler per reflection"
+	IL_000c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0011:  ldarg.1 
+	IL_0012:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0017:  ldstr "htmlHelp"
+	IL_001c:  ldc.i4.s 0x24
+	IL_001e:  callvirt instance class [mscorlib]System.Reflection.FieldInfo class [mscorlib]System.Type::GetField(string, valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_0023:  stloc.0 
+	IL_0024:  ldnull 
+	IL_0025:  ldloc.0 
+	IL_0026:  call bool class [mscorlib]System.Reflection.FieldInfo::op_Equality(class [mscorlib]System.Reflection.FieldInfo, class [mscorlib]System.Reflection.FieldInfo)
+	IL_002b:  brfalse IL_0035
+
+	IL_0030:  br IL_00a3
+
+	IL_0035:  ldarg.0 
+	IL_0036:  ldc.i4 1000
+	IL_003b:  ldstr "Found MSDNDocumenter.htmlHelp field"
+	IL_0040:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0045:  ldloc.0 
+	IL_0046:  ldarg.1 
+	IL_0047:  callvirt instance object class [mscorlib]System.Reflection.FieldInfo::GetValue(object)
+	IL_004c:  stloc.1 
+	IL_004d:  ldloc.0 
+	IL_004e:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.FieldInfo::get_FieldType()
+	IL_0053:  ldstr "_htmlHelpCompiler"
+	IL_0058:  ldc.i4.s 0x24
+	IL_005a:  callvirt instance class [mscorlib]System.Reflection.FieldInfo class [mscorlib]System.Type::GetField(string, valuetype [mscorlib]System.Reflection.BindingFlags)
+	IL_005f:  stloc.2 
+	IL_0060:  ldnull 
+	IL_0061:  ldloc.2 
+	IL_0062:  call bool class [mscorlib]System.Reflection.FieldInfo::op_Equality(class [mscorlib]System.Reflection.FieldInfo, class [mscorlib]System.Reflection.FieldInfo)
+	IL_0067:  brfalse IL_0071
+
+	IL_006c:  br IL_00a3
+
+	IL_0071:  ldarg.0 
+	IL_0072:  ldc.i4 1000
+	IL_0077:  ldstr "Found HtmlHelp._htmlHelpCompiler field"
+	IL_007c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0081:  ldloc.2 
+	IL_0082:  ldloc.1 
+	IL_0083:  ldarg.2 
+	IL_0084:  callvirt instance void class [mscorlib]System.Reflection.FieldInfo::SetValue(object, object)
+	IL_0089:  ldarg.0 
+	IL_008a:  ldc.i4 2000
+	IL_008f:  ldstr "Set  Html Help Compiler to '{0}'"
+	IL_0094:  ldc.i4.1 
+	IL_0095:  newarr [mscorlib]System.Object
+	IL_009a:  dup 
+	IL_009b:  ldc.i4.0 
+	IL_009c:  ldarg.2 
+	IL_009d:  stelem.ref 
+	IL_009e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00a3:  ret 
+    } // end of method NDocTask::SetHtmlHelpCompiler
+
+    // method line 474
+    .method private hidebysig 
+           instance default string ResolveHhcExe ()  cil managed 
+    {
+        // Method begins at RVA 0xa528
+	// Code size 166 (0xa6)
+	.maxstack 4
+	.locals init (
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		string	V_1,
+		string	V_2,
+		string[]	V_3,
+		int32	V_4,
+		string	V_5)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldstr "ProgramFiles(x86)"
+	IL_000c:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
+	IL_0011:  stloc.1 
+	IL_0012:  ldloc.1 
+	IL_0013:  call bool string::IsNullOrEmpty(string)
+	IL_0018:  brtrue IL_0031
+
+	IL_001d:  nop 
+	IL_001e:  ldloc.0 
+	IL_001f:  ldloc.1 
+	IL_0020:  ldstr "HTML Help Workshop"
+	IL_0025:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_002a:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_002f:  pop 
+	IL_0030:  nop 
+	IL_0031:  ldstr "ProgramFiles"
+	IL_0036:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
+	IL_003b:  stloc.2 
+	IL_003c:  ldloc.2 
+	IL_003d:  call bool string::IsNullOrEmpty(string)
+	IL_0042:  brtrue IL_005b
+
+	IL_0047:  nop 
+	IL_0048:  ldloc.0 
+	IL_0049:  ldloc.2 
+	IL_004a:  ldstr "HTML Help Workshop"
+	IL_004f:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0054:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0059:  pop 
+	IL_005a:  nop 
+	IL_005b:  ldloc.0 
+	IL_005c:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0061:  newarr [mscorlib]System.String
+	IL_0066:  stloc.3 
+	IL_0067:  ldc.i4.0 
+	IL_0068:  stloc.s 4
+	IL_006a:  br IL_0083
+
+	IL_006f:  nop 
+	IL_0070:  ldloc.3 
+	IL_0071:  ldloc.s 4
+	IL_0073:  ldloc.0 
+	IL_0074:  ldloc.s 4
+	IL_0076:  callvirt instance string class [System]System.Collections.Specialized.StringCollection::get_Item(int32)
+	IL_007b:  stelem.ref 
+	IL_007c:  nop 
+	IL_007d:  ldloc.s 4
+	IL_007f:  ldc.i4.1 
+	IL_0080:  add 
+	IL_0081:  stloc.s 4
+	IL_0083:  ldloc.s 4
+	IL_0085:  ldloc.0 
+	IL_0086:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_008b:  blt IL_006f
+
+	IL_0090:  ldloc.3 
+	IL_0091:  ldstr "hhc.exe"
+	IL_0096:  ldc.i4.0 
+	IL_0097:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::ResolveFile(string[], string, bool)
+	IL_009c:  stloc.s 5
+	IL_009e:  br IL_00a3
+
+	IL_00a3:  ldloc.s 5
+	IL_00a5:  ret 
+    } // end of method NDocTask::ResolveHhcExe
+
+	.property instance class NAnt.DotNet.Types.AssemblyFileSet Assemblies ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0A 61 73 73 65 6D 62 6C 69 65 73 01 00 54   // ...assemblies..T
+		02 08 52 65 71 75 69 72 65 64 01                ) // ..Required.
+
+		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.NDocTask::get_Assemblies () 
+		.set instance default void NAnt.DotNet.Tasks.NDocTask::set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
+	}
+	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet Summaries ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 09 73 75 6D 6D 61 72 69 65 73 00 00 ) // ...summaries..
+
+		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.NDocTask::get_Summaries () 
+		.set instance default void NAnt.DotNet.Tasks.NDocTask::set_Summaries (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance class [NAnt.Core]NAnt.Core.Types.RawXml Documenters ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0B 64 6F 63 75 6D 65 6E 74 65 72 73 01 00   // ...documenters..
+		54 02 08 52 65 71 75 69 72 65 64 01             ) // T..Required.
+
+		.get instance default class [NAnt.Core]NAnt.Core.Types.RawXml NAnt.DotNet.Tasks.NDocTask::get_Documenters () 
+		.set instance default void NAnt.DotNet.Tasks.NDocTask::set_Documenters (class [NAnt.Core]NAnt.Core.Types.RawXml 'value') 
+	}
+	.property instance class [NAnt.Core]NAnt.Core.Types.DirSet ReferencePaths ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0E 72 65 66 65 72 65 6E 63 65 70 61 74 68   // ...referencepath
+		73 00 00                                        ) // s..
+
+		.get instance default class [NAnt.Core]NAnt.Core.Types.DirSet NAnt.DotNet.Tasks.NDocTask::get_ReferencePaths () 
+		.set instance default void NAnt.DotNet.Tasks.NDocTask::set_ReferencePaths (class [NAnt.Core]NAnt.Core.Types.DirSet 'value') 
+	}
+  } // end of class NAnt.DotNet.Tasks.NDocTask
+}
+
+.namespace NAnt.DotNet.Tasks
+{
+  .class public auto ansi beforefieldinit IlasmTask
+  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 69 6C 61 73 6D 00 00 ) // ...ilasm..
+
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 00 00 00 00 00 00 ) // ........
+
+    .field  private  bool _clock
+    .field  private  bool _debug
+    .field  private  bool _error
+    .field  private  bool _forceRebuild
+    .field  private  bool _listing
+    .field  private  int32 _alignment
+    .field  private  int32 _base
+    .field  private  int32 _flags
+    .field  private  int32 _subsystem
+    .field  private  string _target
+    .field  private  string _keySource
+    .field  private  class [mscorlib]System.IO.FileInfo _keyFile
+    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
+    .field  private  class [mscorlib]System.IO.FileInfo _resourceFile
+    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _sources
+    .field  private  string _options
+
+    // method line 475
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xa5da
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_0006:  ret 
+    } // end of method IlasmTask::.ctor
+
+    // method line 476
+    .method public hidebysig specialname 
+           instance default bool get_Clock ()  cil managed 
+    {
+        // Method begins at RVA 0xa5e4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.IlasmTask::_clock
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Clock
+
+    // method line 477
+    .method public hidebysig specialname 
+           instance default void set_Clock (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa5ff
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.IlasmTask::_clock
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_Clock
+
+    // method line 478
+    .method public hidebysig specialname 
+           instance default bool get_Debug ()  cil managed 
+    {
+        // Method begins at RVA 0xa60c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.IlasmTask::_debug
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Debug
+
+    // method line 479
+    .method public hidebysig specialname 
+           instance default void set_Debug (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa627
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.IlasmTask::_debug
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_Debug
+
+    // method line 480
+    .method public hidebysig specialname 
+           instance default bool get_Error ()  cil managed 
+    {
+        // Method begins at RVA 0xa634
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.IlasmTask::_error
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Error
+
+    // method line 481
+    .method public hidebysig specialname 
+           instance default void set_Error (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa64f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.IlasmTask::_error
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_Error
+
+    // method line 482
+    .method public hidebysig specialname 
+           instance default bool get_ForceRebuild ()  cil managed 
+    {
+        // Method begins at RVA 0xa65c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.IlasmTask::_forceRebuild
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_ForceRebuild
+
+    // method line 483
+    .method public hidebysig specialname 
+           instance default void set_ForceRebuild (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa677
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.IlasmTask::_forceRebuild
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_ForceRebuild
+
+    // method line 484
+    .method public hidebysig specialname 
+           instance default bool get_Listing ()  cil managed 
+    {
+        // Method begins at RVA 0xa684
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.IlasmTask::_listing
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Listing
+
+    // method line 485
+    .method public hidebysig specialname 
+           instance default void set_Listing (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa69f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.IlasmTask::_listing
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_Listing
+
+    // method line 486
+    .method public hidebysig specialname 
+           instance default int32 get_Alignment ()  cil managed 
+    {
+        // Method begins at RVA 0xa6ac
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.DotNet.Tasks.IlasmTask::_alignment
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Alignment
+
+    // method line 487
+    .method public hidebysig specialname 
+           instance default void set_Alignment (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa6c7
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.DotNet.Tasks.IlasmTask::_alignment
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_Alignment
+
+    // method line 488
+    .method public hidebysig specialname 
+           instance default int32 get_Base ()  cil managed 
+    {
+        // Method begins at RVA 0xa6d4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.DotNet.Tasks.IlasmTask::_base
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Base
+
+    // method line 489
+    .method public hidebysig specialname 
+           instance default void set_Base (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa6ef
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.DotNet.Tasks.IlasmTask::_base
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_Base
+
+    // method line 490
+    .method public hidebysig specialname 
+           instance default int32 get_Flags ()  cil managed 
+    {
+        // Method begins at RVA 0xa6fc
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.DotNet.Tasks.IlasmTask::_flags
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Flags
+
+    // method line 491
+    .method public hidebysig specialname 
+           instance default void set_Flags (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa717
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.DotNet.Tasks.IlasmTask::_flags
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_Flags
+
+    // method line 492
+    .method public hidebysig specialname 
+           instance default int32 get_Subsystem ()  cil managed 
+    {
+        // Method begins at RVA 0xa724
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.DotNet.Tasks.IlasmTask::_subsystem
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Subsystem
+
+    // method line 493
+    .method public hidebysig specialname 
+           instance default void set_Subsystem (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa73f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.DotNet.Tasks.IlasmTask::_subsystem
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_Subsystem
+
+    // method line 494
+    .method public hidebysig specialname 
+           instance default string get_Target ()  cil managed 
+    {
+        // Method begins at RVA 0xa74c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.IlasmTask::_target
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Target
+
+    // method line 495
+    .method public hidebysig specialname 
+           instance default void set_Target (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa767
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.IlasmTask::_target
+	IL_000d:  ret 
+    } // end of method IlasmTask::set_Target
+
+    // method line 496
+    .method public hidebysig specialname 
+           instance default string get_KeySource ()  cil managed 
+    {
+        // Method begins at RVA 0xa778
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.IlasmTask::_keySource
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_KeySource
+
+    // method line 497
+    .method public hidebysig specialname 
+           instance default void set_KeySource (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa793
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.DotNet.Tasks.IlasmTask::_keySource
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_KeySource
+
+    // method line 498
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
+    {
+        // Method begins at RVA 0xa7a0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::_keyFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_KeyFile
+
+    // method line 499
+    .method public hidebysig specialname 
+           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa7bb
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::_keyFile
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_KeyFile
+
+    // method line 500
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
+    {
+        // Method begins at RVA 0xa7c8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::_outputFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_OutputFile
+
+    // method line 501
+    .method public hidebysig specialname 
+           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa7e3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::_outputFile
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_OutputFile
+
+    // method line 502
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_ResourceFile ()  cil managed 
+    {
+        // Method begins at RVA 0xa7f0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::_resourceFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_ResourceFile
+
+    // method line 503
+    .method public hidebysig specialname 
+           instance default void set_ResourceFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa80b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::_resourceFile
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_ResourceFile
+
+    // method line 504
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Sources ()  cil managed 
+    {
+        // Method begins at RVA 0xa818
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.IlasmTask::_sources
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_Sources
+
+    // method line 505
+    .method public hidebysig specialname 
+           instance default void set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0xa833
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.IlasmTask::_sources
+	IL_0008:  ret 
+    } // end of method IlasmTask::set_Sources
+
+    // method line 506
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
+    {
+        // Method begins at RVA 0xa840
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.IlasmTask::_options
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IlasmTask::get_ProgramArguments
+
+    // method line 507
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0xa85c
+	// Code size 137 (0x89)
+	.maxstack 7
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.DotNet.Tasks.IlasmTask::NeedsCompiling()
+	IL_0007:  brfalse IL_0088
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.IlasmTask::get_Sources()
+	IL_0013:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_0018:  brtrue IL_003a
+
+	IL_001d:  nop 
+	IL_001e:  ldarg.0 
+	IL_001f:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.IlasmTask::get_Sources()
+	IL_0024:  ldarg.0 
+	IL_0025:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_002a:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	IL_002f:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0034:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_0039:  nop 
+	IL_003a:  ldarg.0 
+	IL_003b:  ldc.i4 3000
+	IL_0040:  ldstr "String_CompilingFiles"
+	IL_0045:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_004a:  ldc.i4.2 
+	IL_004b:  newarr [mscorlib]System.Object
+	IL_0050:  dup 
+	IL_0051:  ldc.i4.0 
+	IL_0052:  ldarg.0 
+	IL_0053:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.IlasmTask::get_Sources()
+	IL_0058:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_005d:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_0062:  box [mscorlib]System.Int32
+	IL_0067:  stelem.ref 
+	IL_0068:  dup 
+	IL_0069:  ldc.i4.1 
+	IL_006a:  ldarg.0 
+	IL_006b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
+	IL_0070:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0075:  stelem.ref 
+	IL_0076:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_007b:  ldarg.0 
+	IL_007c:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOptions()
+	IL_0081:  ldarg.0 
+	IL_0082:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	IL_0087:  nop 
+	IL_0088:  ret 
+    } // end of method IlasmTask::ExecuteTask
+
+    // method line 508
+    .method private hidebysig 
+           instance default void WriteOptions ()  cil managed 
+    {
+        // Method begins at RVA 0xa8f4
+	// Code size 636 (0x27c)
+	.maxstack 5
+	.locals init (
+		class [mscorlib]System.IO.StringWriter	V_0,
+		int32	V_1,
+		int32	V_2,
+		int32	V_3,
+		int32	V_4,
+		string	V_5,
+		class [System]System.Collections.Specialized.StringEnumerator	V_6,
+		class [mscorlib]System.IDisposable	V_7)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [mscorlib]System.IO.StringWriter::'.ctor'()
+	IL_0006:  stloc.0 
+	.try { // 1
+	  IL_0007:  nop 
+	  IL_0008:  ldarg.0 
+	  IL_0009:  ldloc.0 
+	  IL_000a:  ldstr "NOLOGO"
+	  IL_000f:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string)
+	  IL_0014:  ldarg.0 
+	  IL_0015:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	  IL_001a:  brtrue IL_002d
+
+	  IL_001f:  nop 
+	  IL_0020:  ldarg.0 
+	  IL_0021:  ldloc.0 
+	  IL_0022:  ldstr "QUIET"
+	  IL_0027:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string)
+	  IL_002c:  nop 
+	  IL_002d:  ldarg.0 
+	  IL_002e:  call instance bool class NAnt.DotNet.Tasks.IlasmTask::get_Clock()
+	  IL_0033:  brfalse IL_0046
+
+	  IL_0038:  nop 
+	  IL_0039:  ldarg.0 
+	  IL_003a:  ldloc.0 
+	  IL_003b:  ldstr "CLOCK"
+	  IL_0040:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string)
+	  IL_0045:  nop 
+	  IL_0046:  ldarg.0 
+	  IL_0047:  call instance bool class NAnt.DotNet.Tasks.IlasmTask::get_Debug()
+	  IL_004c:  brfalse IL_005f
+
+	  IL_0051:  nop 
+	  IL_0052:  ldarg.0 
+	  IL_0053:  ldloc.0 
+	  IL_0054:  ldstr "DEBUG"
+	  IL_0059:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string)
+	  IL_005e:  nop 
+	  IL_005f:  ldarg.0 
+	  IL_0060:  call instance bool class NAnt.DotNet.Tasks.IlasmTask::get_Error()
+	  IL_0065:  brfalse IL_0078
+
+	  IL_006a:  nop 
+	  IL_006b:  ldarg.0 
+	  IL_006c:  ldloc.0 
+	  IL_006d:  ldstr "ERROR"
+	  IL_0072:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string)
+	  IL_0077:  nop 
+	  IL_0078:  ldarg.0 
+	  IL_0079:  call instance bool class NAnt.DotNet.Tasks.IlasmTask::get_Listing()
+	  IL_007e:  brfalse IL_0091
+
+	  IL_0083:  nop 
+	  IL_0084:  ldarg.0 
+	  IL_0085:  ldloc.0 
+	  IL_0086:  ldstr "LISTING"
+	  IL_008b:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string)
+	  IL_0090:  nop 
+	  IL_0091:  ldarg.0 
+	  IL_0092:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Alignment()
+	  IL_0097:  ldc.i4.0 
+	  IL_0098:  ble IL_00bf
+
+	  IL_009d:  nop 
+	  IL_009e:  ldarg.0 
+	  IL_009f:  ldloc.0 
+	  IL_00a0:  ldstr "ALIGNMENT"
+	  IL_00a5:  ldarg.0 
+	  IL_00a6:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Alignment()
+	  IL_00ab:  stloc.1 
+	  IL_00ac:  ldloca.s 1
+	  IL_00ae:  constrained. [mscorlib]System.Int32
+	  IL_00b4:  callvirt instance string object::ToString()
+	  IL_00b9:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
+	  IL_00be:  nop 
+	  IL_00bf:  ldarg.0 
+	  IL_00c0:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Base()
+	  IL_00c5:  ldc.i4.0 
+	  IL_00c6:  ble IL_00ed
+
+	  IL_00cb:  nop 
+	  IL_00cc:  ldarg.0 
+	  IL_00cd:  ldloc.0 
+	  IL_00ce:  ldstr "BASE"
+	  IL_00d3:  ldarg.0 
+	  IL_00d4:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Base()
+	  IL_00d9:  stloc.2 
+	  IL_00da:  ldloca.s 2
+	  IL_00dc:  constrained. [mscorlib]System.Int32
+	  IL_00e2:  callvirt instance string object::ToString()
+	  IL_00e7:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
+	  IL_00ec:  nop 
+	  IL_00ed:  ldarg.0 
+	  IL_00ee:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Flags()
+	  IL_00f3:  ldc.i4.0 
+	  IL_00f4:  ble IL_011b
+
+	  IL_00f9:  nop 
+	  IL_00fa:  ldarg.0 
+	  IL_00fb:  ldloc.0 
+	  IL_00fc:  ldstr "FLAGS"
+	  IL_0101:  ldarg.0 
+	  IL_0102:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Flags()
+	  IL_0107:  stloc.3 
+	  IL_0108:  ldloca.s 3
+	  IL_010a:  constrained. [mscorlib]System.Int32
+	  IL_0110:  callvirt instance string object::ToString()
+	  IL_0115:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
+	  IL_011a:  nop 
+	  IL_011b:  ldarg.0 
+	  IL_011c:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Subsystem()
+	  IL_0121:  ldc.i4.0 
+	  IL_0122:  ble IL_014a
+
+	  IL_0127:  nop 
+	  IL_0128:  ldarg.0 
+	  IL_0129:  ldloc.0 
+	  IL_012a:  ldstr "SUBSYSTEM"
+	  IL_012f:  ldarg.0 
+	  IL_0130:  call instance int32 class NAnt.DotNet.Tasks.IlasmTask::get_Subsystem()
+	  IL_0135:  stloc.s 4
+	  IL_0137:  ldloca.s 4
+	  IL_0139:  constrained. [mscorlib]System.Int32
+	  IL_013f:  callvirt instance string object::ToString()
+	  IL_0144:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
+	  IL_0149:  nop 
+	  IL_014a:  ldarg.0 
+	  IL_014b:  call instance string class NAnt.DotNet.Tasks.IlasmTask::get_Target()
+	  IL_0150:  brfalse IL_0169
+
+	  IL_0155:  nop 
+	  IL_0156:  ldarg.0 
+	  IL_0157:  ldloc.0 
+	  IL_0158:  ldarg.0 
+	  IL_0159:  call instance string class NAnt.DotNet.Tasks.IlasmTask::get_Target()
+	  IL_015e:  callvirt instance string string::ToUpper()
+	  IL_0163:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string)
+	  IL_0168:  nop 
+	  IL_0169:  ldarg.0 
+	  IL_016a:  call instance string class NAnt.DotNet.Tasks.IlasmTask::get_KeySource()
+	  IL_016f:  brfalse IL_0192
+
+	  IL_0174:  nop 
+	  IL_0175:  ldarg.0 
+	  IL_0176:  ldloc.0 
+	  IL_0177:  ldstr "KEY"
+	  IL_017c:  ldstr "@"
+	  IL_0181:  ldarg.0 
+	  IL_0182:  call instance string class NAnt.DotNet.Tasks.IlasmTask::get_KeySource()
+	  IL_0187:  call string string::Concat(string, string)
+	  IL_018c:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
+	  IL_0191:  nop 
+	  IL_0192:  ldarg.0 
+	  IL_0193:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_KeyFile()
+	  IL_0198:  brfalse IL_01b6
+
+	  IL_019d:  nop 
+	  IL_019e:  ldarg.0 
+	  IL_019f:  ldloc.0 
+	  IL_01a0:  ldstr "KEY"
+	  IL_01a5:  ldarg.0 
+	  IL_01a6:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_KeyFile()
+	  IL_01ab:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_01b0:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
+	  IL_01b5:  nop 
+	  IL_01b6:  ldarg.0 
+	  IL_01b7:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
+	  IL_01bc:  brfalse IL_01da
+
+	  IL_01c1:  nop 
+	  IL_01c2:  ldarg.0 
+	  IL_01c3:  ldloc.0 
+	  IL_01c4:  ldstr "OUTPUT"
+	  IL_01c9:  ldarg.0 
+	  IL_01ca:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
+	  IL_01cf:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_01d4:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
+	  IL_01d9:  nop 
+	  IL_01da:  ldarg.0 
+	  IL_01db:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_ResourceFile()
+	  IL_01e0:  brfalse IL_01fe
+
+	  IL_01e5:  nop 
+	  IL_01e6:  ldarg.0 
+	  IL_01e7:  ldloc.0 
+	  IL_01e8:  ldstr "RESOURCE"
+	  IL_01ed:  ldarg.0 
+	  IL_01ee:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_ResourceFile()
+	  IL_01f3:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_01f8:  call instance void class NAnt.DotNet.Tasks.IlasmTask::WriteOption(class [mscorlib]System.IO.StringWriter, string, string)
+	  IL_01fd:  nop 
+	  IL_01fe:  nop 
+	  IL_01ff:  ldarg.0 
+	  IL_0200:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.IlasmTask::get_Sources()
+	  IL_0205:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	  IL_020a:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_020f:  stloc.s 6
+	  .try { // 0
+	    IL_0211:  br IL_0238
+
+	    IL_0216:  ldloc.s 6
+	    IL_0218:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_021d:  stloc.s 5
+	    IL_021f:  nop 
+	    IL_0220:  ldloc.0 
+	    IL_0221:  ldstr " \""
+	    IL_0226:  ldloc.s 5
+	    IL_0228:  ldstr "\" "
+	    IL_022d:  call string string::Concat(string, string, string)
+	    IL_0232:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string)
+	    IL_0237:  nop 
+	    IL_0238:  ldloc.s 6
+	    IL_023a:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_023f:  brtrue IL_0216
+
+	    IL_0244:  leave IL_0260
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_0249:  ldloc.s 6
+	    IL_024b:  isinst [mscorlib]System.IDisposable
+	    IL_0250:  dup 
+	    IL_0251:  stloc.s 7
+	    IL_0253:  brfalse IL_025f
+
+	    IL_0258:  ldloc.s 7
+	    IL_025a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_025f:  endfinally 
+	  } // end handler 0
+	  IL_0260:  ldarg.0 
+	  IL_0261:  ldloc.0 
+	  IL_0262:  callvirt instance string object::ToString()
+	  IL_0267:  stfld string NAnt.DotNet.Tasks.IlasmTask::_options
+	  IL_026c:  nop 
+	  IL_026d:  leave IL_027b
+
+	} // end .try 1
+	finally  { // 1
+	  IL_0272:  nop 
+	  IL_0273:  ldloc.0 
+	  IL_0274:  callvirt instance void class [mscorlib]System.IO.TextWriter::Close()
+	  IL_0279:  nop 
+	  IL_027a:  endfinally 
+	} // end handler 1
+	IL_027b:  ret 
+    } // end of method IlasmTask::WriteOptions
+
+    // method line 509
+    .method private hidebysig 
+           instance default void WriteOption (class [mscorlib]System.IO.StringWriter writer, string name)  cil managed 
+    {
+        // Method begins at RVA 0xabb0
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr "/{0} "
+	IL_0007:  ldarg.2 
+	IL_0008:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string, object)
+	IL_000d:  ret 
+    } // end of method IlasmTask::WriteOption
+
+    // method line 510
+    .method private hidebysig 
+           instance default void WriteOption (class [mscorlib]System.IO.StringWriter writer, string name, string arg)  cil managed 
+    {
+        // Method begins at RVA 0xabbf
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr "\"/{0}={1}\" "
+	IL_0007:  ldarg.2 
+	IL_0008:  ldarg.3 
+	IL_0009:  callvirt instance void class [mscorlib]System.IO.TextWriter::Write(string, object, object)
+	IL_000e:  ret 
+    } // end of method IlasmTask::WriteOption
+
+    // method line 511
+    .method private hidebysig 
+           instance default bool NeedsCompiling ()  cil managed 
+    {
+        // Method begins at RVA 0xabd0
+	// Code size 360 (0x168)
+	.maxstack 7
+	.locals init (
+		bool	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.DotNet.Tasks.IlasmTask::get_ForceRebuild()
+	IL_0007:  brfalse IL_0029
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldc.i4 2000
+	IL_0013:  ldstr "String_RebuildAttributeSetToTrue"
+	IL_0018:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_001d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0022:  ldc.i4.1 
+	IL_0023:  stloc.0 
+	IL_0024:  br IL_0166
+
+	IL_0029:  ldarg.0 
+	IL_002a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
+	IL_002f:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0034:  brtrue IL_006a
+
+	IL_0039:  nop 
+	IL_003a:  ldarg.0 
+	IL_003b:  ldc.i4 2000
+	IL_0040:  ldstr "String_OutputFileDoesNotExist"
+	IL_0045:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_004a:  ldc.i4.1 
+	IL_004b:  newarr [mscorlib]System.Object
+	IL_0050:  dup 
+	IL_0051:  ldc.i4.0 
+	IL_0052:  ldarg.0 
+	IL_0053:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
+	IL_0058:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_005d:  stelem.ref 
+	IL_005e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0063:  ldc.i4.1 
+	IL_0064:  stloc.0 
+	IL_0065:  br IL_0166
+
+	IL_006a:  ldarg.0 
+	IL_006b:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.IlasmTask::get_Sources()
+	IL_0070:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0075:  ldarg.0 
+	IL_0076:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
+	IL_007b:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0080:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
+	IL_0085:  stloc.1 
+	IL_0086:  ldloc.1 
+	IL_0087:  brfalse IL_00b3
+
+	IL_008c:  nop 
+	IL_008d:  ldarg.0 
+	IL_008e:  ldc.i4 2000
+	IL_0093:  ldstr "String_FileHasBeenUpdated"
+	IL_0098:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_009d:  ldc.i4.1 
+	IL_009e:  newarr [mscorlib]System.Object
+	IL_00a3:  dup 
+	IL_00a4:  ldc.i4.0 
+	IL_00a5:  ldloc.1 
+	IL_00a6:  stelem.ref 
+	IL_00a7:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00ac:  ldc.i4.1 
+	IL_00ad:  stloc.0 
+	IL_00ae:  br IL_0166
+
+	IL_00b3:  ldarg.0 
+	IL_00b4:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_ResourceFile()
+	IL_00b9:  brfalse IL_0109
+
+	IL_00be:  nop 
+	IL_00bf:  ldarg.0 
+	IL_00c0:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_ResourceFile()
+	IL_00c5:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00ca:  ldarg.0 
+	IL_00cb:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
+	IL_00d0:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_00d5:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_00da:  stloc.1 
+	IL_00db:  ldloc.1 
+	IL_00dc:  brfalse IL_0108
+
+	IL_00e1:  nop 
+	IL_00e2:  ldarg.0 
+	IL_00e3:  ldc.i4 2000
+	IL_00e8:  ldstr "String_FileHasBeenUpdated"
+	IL_00ed:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00f2:  ldc.i4.1 
+	IL_00f3:  newarr [mscorlib]System.Object
+	IL_00f8:  dup 
+	IL_00f9:  ldc.i4.0 
+	IL_00fa:  ldloc.1 
+	IL_00fb:  stelem.ref 
+	IL_00fc:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0101:  ldc.i4.1 
+	IL_0102:  stloc.0 
+	IL_0103:  br IL_0166
+
+	IL_0108:  nop 
+	IL_0109:  ldarg.0 
+	IL_010a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_KeyFile()
+	IL_010f:  brfalse IL_015f
+
+	IL_0114:  nop 
+	IL_0115:  ldarg.0 
+	IL_0116:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_KeyFile()
+	IL_011b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0120:  ldarg.0 
+	IL_0121:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.IlasmTask::get_OutputFile()
+	IL_0126:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_012b:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_0130:  stloc.1 
+	IL_0131:  ldloc.1 
+	IL_0132:  brfalse IL_015e
+
+	IL_0137:  nop 
+	IL_0138:  ldarg.0 
+	IL_0139:  ldc.i4 2000
+	IL_013e:  ldstr "String_FileHasBeenUpdated"
+	IL_0143:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0148:  ldc.i4.1 
+	IL_0149:  newarr [mscorlib]System.Object
+	IL_014e:  dup 
+	IL_014f:  ldc.i4.0 
+	IL_0150:  ldloc.1 
+	IL_0151:  stelem.ref 
+	IL_0152:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0157:  ldc.i4.1 
+	IL_0158:  stloc.0 
+	IL_0159:  br IL_0166
+
+	IL_015e:  nop 
+	IL_015f:  ldc.i4.0 
+	IL_0160:  stloc.0 
+	IL_0161:  br IL_0166
+
+	IL_0166:  ldloc.0 
+	IL_0167:  ret 
+    } // end of method IlasmTask::NeedsCompiling
+
+	.property instance bool Clock ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 63 6C 6F 63 6B 00 00 ) // ...clock..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.IlasmTask::get_Clock () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Clock (bool 'value') 
+	}
+	.property instance bool Debug ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 64 65 62 75 67 00 00 ) // ...debug..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.IlasmTask::get_Debug () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Debug (bool 'value') 
+	}
+	.property instance bool Error ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 65 72 72 6F 72 00 00 ) // ...error..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.IlasmTask::get_Error () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Error (bool 'value') 
+	}
+	.property instance bool ForceRebuild ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 72 65 62 75 69 6C 64 00 00 ) // ...rebuild..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.IlasmTask::get_ForceRebuild () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_ForceRebuild (bool 'value') 
+	}
+	.property instance bool Listing ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6C 69 73 74 69 6E 67 00 00 ) // ...listing..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.IlasmTask::get_Listing () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Listing (bool 'value') 
+	}
+	.property instance int32 Alignment ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 61 6C 69 67 6E 6D 65 6E 74 00 00 ) // ...alignment..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default int32 NAnt.DotNet.Tasks.IlasmTask::get_Alignment () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Alignment (int32 'value') 
+	}
+	.property instance int32 Base ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 62 61 73 65 00 00 ) // ...base..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default int32 NAnt.DotNet.Tasks.IlasmTask::get_Base () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Base (int32 'value') 
+	}
+	.property instance int32 Flags ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 66 6C 61 67 73 00 00 ) // ...flags..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default int32 NAnt.DotNet.Tasks.IlasmTask::get_Flags () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Flags (int32 'value') 
+	}
+	.property instance int32 Subsystem ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 73 75 62 73 79 73 74 65 6D 00 00 ) // ...subsystem..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default int32 NAnt.DotNet.Tasks.IlasmTask::get_Subsystem () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Subsystem (int32 'value') 
+	}
+	.property instance string Target ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 74 61 72 67 65 74 01 00 54 02 08 52 65   // ...target..T..Re
+		71 75 69 72 65 64 01                            ) // quired.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.DotNet.Tasks.IlasmTask::get_Target () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Target (string 'value') 
+	}
+	.property instance string KeySource ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 6B 65 79 73 6F 75 72 63 65 00 00 ) // ...keysource..
+
+		.get instance default string NAnt.DotNet.Tasks.IlasmTask::get_KeySource () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_KeySource (string 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo KeyFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6B 65 79 66 69 6C 65 00 00 ) // ...keyfile..
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::get_KeyFile () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_KeyFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 6F 75 74 70 75 74 01 00 54 02 08 52 65   // ...output..T..Re
+		71 75 69 72 65 64 01                            ) // quired.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::get_OutputFile () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo ResourceFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0C 72 65 73 6F 75 72 63 65 66 69 6C 65 00   // ...resourcefile.
+		00                                              ) // .
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.IlasmTask::get_ResourceFile () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_ResourceFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet Sources ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 07 73 6F 75 72 63 65 73 01 00 54 02 08 52   // ...sources..T..R
+		65 71 75 69 72 65 64 01                         ) // equired.
+
+		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.IlasmTask::get_Sources () 
+		.set instance default void NAnt.DotNet.Tasks.IlasmTask::set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance string ProgramArguments ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.IlasmTask::get_ProgramArguments () 
+	}
+  } // end of class NAnt.DotNet.Tasks.IlasmTask
+}
+
+.namespace NAnt.DotNet.Tasks
+{
   .class public auto ansi abstract CompilerBase
   	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
   {
@@ -16148,11 +15984,11 @@
     .field  family static  string[] CodebehindExtensions
     .field  family static initonly  class [mscorlib]System.Collections.Hashtable CultureNames
 
-    // method line 486
+    // method line 512
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x4590
+        // Method begins at RVA 0x5578
 	// Code size 111 (0x6f)
 	.maxstack 4
 	.locals init (
@@ -16219,11 +16055,11 @@
 	IL_006e:  ret 
     } // end of method CompilerBase::.cctor
 
-    // method line 487
+    // method line 513
     .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x460c
+        // Method begins at RVA 0x55f4
 	// Code size 102 (0x66)
 	.maxstack 2
 	IL_0000:  ldarg.0 
@@ -16258,11 +16094,11 @@
 	IL_0065:  ret 
     } // end of method CompilerBase::.ctor
 
-    // method line 488
+    // method line 514
     .method public virtual hidebysig newslot specialname 
            instance default bool get_Debug ()  cil managed 
     {
-        // Method begins at RVA 0x4680
+        // Method begins at RVA 0x5668
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16277,11 +16113,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_Debug
 
-    // method line 489
+    // method line 515
     .method public virtual hidebysig newslot specialname 
            instance default void set_Debug (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x469b
+        // Method begins at RVA 0x5683
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16291,11 +16127,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_Debug
 
-    // method line 490
+    // method line 516
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x46a8
+        // Method begins at RVA 0x5690
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16310,11 +16146,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_OutputFile
 
-    // method line 491
+    // method line 517
     .method public hidebysig specialname 
            instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x46c3
+        // Method begins at RVA 0x56ab
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16324,11 +16160,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_OutputFile
 
-    // method line 492
+    // method line 518
     .method public hidebysig specialname 
            instance default string get_OutputTarget ()  cil managed 
     {
-        // Method begins at RVA 0x46d0
+        // Method begins at RVA 0x56b8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16343,11 +16179,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_OutputTarget
 
-    // method line 493
+    // method line 519
     .method public hidebysig specialname 
            instance default void set_OutputTarget (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x46eb
+        // Method begins at RVA 0x56d3
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16358,11 +16194,11 @@
 	IL_000d:  ret 
     } // end of method CompilerBase::set_OutputTarget
 
-    // method line 494
+    // method line 520
     .method public hidebysig specialname 
            instance default string get_Define ()  cil managed 
     {
-        // Method begins at RVA 0x46fc
+        // Method begins at RVA 0x56e4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16377,11 +16213,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_Define
 
-    // method line 495
+    // method line 521
     .method public hidebysig specialname 
            instance default void set_Define (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4717
+        // Method begins at RVA 0x56ff
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16392,11 +16228,11 @@
 	IL_000d:  ret 
     } // end of method CompilerBase::set_Define
 
-    // method line 496
+    // method line 522
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_Win32Icon ()  cil managed 
     {
-        // Method begins at RVA 0x4728
+        // Method begins at RVA 0x5710
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16411,11 +16247,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_Win32Icon
 
-    // method line 497
+    // method line 523
     .method public hidebysig specialname 
            instance default void set_Win32Icon (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x4743
+        // Method begins at RVA 0x572b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16425,11 +16261,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_Win32Icon
 
-    // method line 498
+    // method line 524
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_Win32Res ()  cil managed 
     {
-        // Method begins at RVA 0x4750
+        // Method begins at RVA 0x5738
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16444,11 +16280,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_Win32Res
 
-    // method line 499
+    // method line 525
     .method public hidebysig specialname 
            instance default void set_Win32Res (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x476b
+        // Method begins at RVA 0x5753
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16458,11 +16294,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_Win32Res
 
-    // method line 500
+    // method line 526
     .method public hidebysig specialname 
            instance default bool get_WarnAsError ()  cil managed 
     {
-        // Method begins at RVA 0x4778
+        // Method begins at RVA 0x5760
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16477,11 +16313,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_WarnAsError
 
-    // method line 501
+    // method line 527
     .method public hidebysig specialname 
            instance default void set_WarnAsError (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x4793
+        // Method begins at RVA 0x577b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16491,11 +16327,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_WarnAsError
 
-    // method line 502
+    // method line 528
     .method public virtual hidebysig newslot specialname 
            instance default class NAnt.DotNet.Types.WarningAsError get_WarningAsError ()  cil managed 
     {
-        // Method begins at RVA 0x47a0
+        // Method begins at RVA 0x5788
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16510,11 +16346,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_WarningAsError
 
-    // method line 503
+    // method line 529
     .method public virtual hidebysig newslot specialname 
            instance default string get_NoWarn ()  cil managed 
     {
-        // Method begins at RVA 0x47bc
+        // Method begins at RVA 0x57a4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16529,11 +16365,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_NoWarn
 
-    // method line 504
+    // method line 530
     .method public virtual hidebysig newslot specialname 
            instance default void set_NoWarn (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x47d7
+        // Method begins at RVA 0x57bf
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16544,11 +16380,11 @@
 	IL_000d:  ret 
     } // end of method CompilerBase::set_NoWarn
 
-    // method line 505
+    // method line 531
     .method public virtual hidebysig newslot specialname 
            instance default class NAnt.DotNet.Types.CompilerWarningCollection get_SuppressWarnings ()  cil managed 
     {
-        // Method begins at RVA 0x47e8
+        // Method begins at RVA 0x57d0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16563,11 +16399,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_SuppressWarnings
 
-    // method line 506
+    // method line 532
     .method public hidebysig specialname 
            instance default bool get_ForceRebuild ()  cil managed 
     {
-        // Method begins at RVA 0x4804
+        // Method begins at RVA 0x57ec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16582,11 +16418,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_ForceRebuild
 
-    // method line 507
+    // method line 533
     .method public hidebysig specialname 
            instance default void set_ForceRebuild (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x481f
+        // Method begins at RVA 0x5807
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16596,11 +16432,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_ForceRebuild
 
-    // method line 508
+    // method line 534
     .method public hidebysig specialname 
            instance default string get_MainType ()  cil managed 
     {
-        // Method begins at RVA 0x482c
+        // Method begins at RVA 0x5814
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16615,11 +16451,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_MainType
 
-    // method line 509
+    // method line 535
     .method public hidebysig specialname 
            instance default void set_MainType (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4847
+        // Method begins at RVA 0x582f
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16630,11 +16466,11 @@
 	IL_000d:  ret 
     } // end of method CompilerBase::set_MainType
 
-    // method line 510
+    // method line 536
     .method public virtual hidebysig newslot specialname 
            instance default string get_KeyContainer ()  cil managed 
     {
-        // Method begins at RVA 0x4858
+        // Method begins at RVA 0x5840
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16649,11 +16485,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_KeyContainer
 
-    // method line 511
+    // method line 537
     .method public virtual hidebysig newslot specialname 
            instance default void set_KeyContainer (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4873
+        // Method begins at RVA 0x585b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16664,11 +16500,11 @@
 	IL_000d:  ret 
     } // end of method CompilerBase::set_KeyContainer
 
-    // method line 512
+    // method line 538
     .method public virtual hidebysig newslot specialname 
            instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
     {
-        // Method begins at RVA 0x4884
+        // Method begins at RVA 0x586c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16683,11 +16519,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_KeyFile
 
-    // method line 513
+    // method line 539
     .method public virtual hidebysig newslot specialname 
            instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x489f
+        // Method begins at RVA 0x5887
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16697,11 +16533,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_KeyFile
 
-    // method line 514
+    // method line 540
     .method public virtual hidebysig newslot specialname 
            instance default valuetype NAnt.DotNet.Types.DelaySign get_DelaySign ()  cil managed 
     {
-        // Method begins at RVA 0x48ac
+        // Method begins at RVA 0x5894
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16716,11 +16552,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_DelaySign
 
-    // method line 515
+    // method line 541
     .method public virtual hidebysig newslot specialname 
            instance default void set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value')  cil managed 
     {
-        // Method begins at RVA 0x48c7
+        // Method begins at RVA 0x58af
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16730,11 +16566,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_DelaySign
 
-    // method line 516
+    // method line 542
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Lib ()  cil managed 
     {
-        // Method begins at RVA 0x48d4
+        // Method begins at RVA 0x58bc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16749,11 +16585,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_Lib
 
-    // method line 517
+    // method line 543
     .method public hidebysig specialname 
            instance default void set_Lib (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x48ef
+        // Method begins at RVA 0x58d7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16763,11 +16599,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_Lib
 
-    // method line 518
+    // method line 544
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
     {
-        // Method begins at RVA 0x48fc
+        // Method begins at RVA 0x58e4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16782,11 +16618,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_References
 
-    // method line 519
+    // method line 545
     .method public hidebysig specialname 
            instance default void set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x4917
+        // Method begins at RVA 0x58ff
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16796,11 +16632,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_References
 
-    // method line 520
+    // method line 546
     .method public virtual hidebysig newslot specialname 
            instance default class NAnt.DotNet.Types.PackageCollection get_Packages ()  cil managed 
     {
-        // Method begins at RVA 0x4924
+        // Method begins at RVA 0x590c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16815,11 +16651,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_Packages
 
-    // method line 521
+    // method line 547
     .method public virtual hidebysig newslot specialname 
            instance default void set_Packages (class NAnt.DotNet.Types.PackageCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x493f
+        // Method begins at RVA 0x5927
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16829,11 +16665,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_Packages
 
-    // method line 522
+    // method line 548
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.ResourceFileSetCollection get_ResourcesList ()  cil managed 
     {
-        // Method begins at RVA 0x494c
+        // Method begins at RVA 0x5934
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16848,11 +16684,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_ResourcesList
 
-    // method line 523
+    // method line 549
     .method public virtual hidebysig newslot specialname 
            instance default class NAnt.DotNet.Types.AssemblyFileSet get_Modules ()  cil managed 
     {
-        // Method begins at RVA 0x4968
+        // Method begins at RVA 0x5950
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16867,11 +16703,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_Modules
 
-    // method line 524
+    // method line 550
     .method public virtual hidebysig newslot specialname 
            instance default void set_Modules (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x4983
+        // Method begins at RVA 0x596b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16881,11 +16717,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_Modules
 
-    // method line 525
+    // method line 551
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Sources ()  cil managed 
     {
-        // Method begins at RVA 0x4990
+        // Method begins at RVA 0x5978
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16900,11 +16736,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_Sources
 
-    // method line 526
+    // method line 552
     .method public hidebysig specialname 
            instance default void set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x49ab
+        // Method begins at RVA 0x5993
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16914,11 +16750,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_Sources
 
-    // method line 527
+    // method line 553
     .method public virtual hidebysig newslot specialname 
            instance default bool get_SupportsPackageReferences ()  cil managed 
     {
-        // Method begins at RVA 0x49b8
+        // Method begins at RVA 0x59a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16933,11 +16769,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_SupportsPackageReferences
 
-    // method line 528
+    // method line 554
     .method public virtual hidebysig newslot specialname 
            instance default void set_SupportsPackageReferences (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x49d3
+        // Method begins at RVA 0x59bb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16947,11 +16783,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_SupportsPackageReferences
 
-    // method line 529
+    // method line 555
     .method public virtual hidebysig newslot specialname 
            instance default bool get_SupportsWarnAsErrorList ()  cil managed 
     {
-        // Method begins at RVA 0x49e0
+        // Method begins at RVA 0x59c8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16966,11 +16802,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_SupportsWarnAsErrorList
 
-    // method line 530
+    // method line 556
     .method public virtual hidebysig newslot specialname 
            instance default void set_SupportsWarnAsErrorList (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x49fb
+        // Method begins at RVA 0x59e3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -16980,11 +16816,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_SupportsWarnAsErrorList
 
-    // method line 531
+    // method line 557
     .method public virtual hidebysig newslot specialname 
            instance default bool get_SupportsNoWarnList ()  cil managed 
     {
-        // Method begins at RVA 0x4a08
+        // Method begins at RVA 0x59f0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -16999,11 +16835,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_SupportsNoWarnList
 
-    // method line 532
+    // method line 558
     .method public virtual hidebysig newslot specialname 
            instance default void set_SupportsNoWarnList (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x4a23
+        // Method begins at RVA 0x5a0b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -17013,11 +16849,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_SupportsNoWarnList
 
-    // method line 533
+    // method line 559
     .method public virtual hidebysig newslot specialname 
            instance default bool get_SupportsKeyContainer ()  cil managed 
     {
-        // Method begins at RVA 0x4a30
+        // Method begins at RVA 0x5a18
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -17032,11 +16868,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_SupportsKeyContainer
 
-    // method line 534
+    // method line 560
     .method public virtual hidebysig newslot specialname 
            instance default void set_SupportsKeyContainer (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x4a4b
+        // Method begins at RVA 0x5a33
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -17046,11 +16882,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_SupportsKeyContainer
 
-    // method line 535
+    // method line 561
     .method public virtual hidebysig newslot specialname 
            instance default bool get_SupportsKeyFile ()  cil managed 
     {
-        // Method begins at RVA 0x4a58
+        // Method begins at RVA 0x5a40
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -17065,11 +16901,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_SupportsKeyFile
 
-    // method line 536
+    // method line 562
     .method public virtual hidebysig newslot specialname 
            instance default void set_SupportsKeyFile (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x4a73
+        // Method begins at RVA 0x5a5b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -17079,11 +16915,11 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_SupportsKeyFile
 
-    // method line 537
+    // method line 563
     .method public virtual hidebysig newslot specialname 
            instance default bool get_SupportsDelaySign ()  cil managed 
     {
-        // Method begins at RVA 0x4a80
+        // Method begins at RVA 0x5a68
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -17098,11 +16934,11 @@
 	IL_000e:  ret 
     } // end of method CompilerBase::get_SupportsDelaySign
 
-    // method line 538
+    // method line 564
     .method public virtual hidebysig newslot specialname 
            instance default void set_SupportsDelaySign (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x4a9b
+        // Method begins at RVA 0x5a83
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -17112,32 +16948,32 @@
 	IL_0008:  ret 
     } // end of method CompilerBase::set_SupportsDelaySign
 
-    // method line 539
+    // method line 565
     .method public virtual hidebysig newslot abstract specialname 
            instance default string get_Extension ()  cil managed 
     {
         // Method begins at RVA 0x0
     } // end of method CompilerBase::get_Extension
 
-    // method line 540
+    // method line 566
     .method family virtual hidebysig newslot abstract specialname 
            instance default class [System]System.Text.RegularExpressions.Regex get_ClassNameRegex ()  cil managed 
     {
         // Method begins at RVA 0x0
     } // end of method CompilerBase::get_ClassNameRegex
 
-    // method line 541
+    // method line 567
     .method family virtual hidebysig newslot abstract specialname 
            instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
     {
         // Method begins at RVA 0x0
     } // end of method CompilerBase::get_NamespaceRegex
 
-    // method line 542
+    // method line 568
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x4aa8
+        // Method begins at RVA 0x5a90
 	// Code size 30 (0x1e)
 	.maxstack 3
 	.locals init (
@@ -17155,11 +16991,11 @@
 	IL_001d:  ret 
     } // end of method CompilerBase::get_ProgramArguments
 
-    // method line 543
+    // method line 569
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x4ad4
+        // Method begins at RVA 0x5abc
 	// Code size 2158 (0x86e)
 	.maxstack 7
 	.locals init (
@@ -18001,11 +17837,11 @@
 	IL_086d:  ret 
     } // end of method CompilerBase::ExecuteTask
 
-    // method line 544
+    // method line 570
     .method public hidebysig 
            instance default string GetManifestResourceName (class NAnt.DotNet.Types.ResourceFileSet resources, string resourcePhysicalFile, string resourceLogicalFile, string dependentFile)  cil managed 
     {
-        // Method begins at RVA 0x542c
+        // Method begins at RVA 0x6414
 	// Code size 636 (0x27c)
 	.maxstack 4
 	.locals init (
@@ -18268,11 +18104,11 @@
 	IL_027b:  ret 
     } // end of method CompilerBase::GetManifestResourceName
 
-    // method line 545
+    // method line 571
     .method public hidebysig 
            instance default string GetManifestResourceName (class NAnt.DotNet.Types.ResourceFileSet resources, string resourceFile)  cil managed 
     {
-        // Method begins at RVA 0x56b4
+        // Method begins at RVA 0x669c
 	// Code size 303 (0x12f)
 	.maxstack 5
 	.locals init (
@@ -18411,11 +18247,11 @@
 	IL_012e:  ret 
     } // end of method CompilerBase::GetManifestResourceName
 
-    // method line 546
+    // method line 572
     .method public virtual hidebysig newslot 
            instance default class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage PerformSearchForResourceLinkage (class [mscorlib]System.IO.TextReader sr)  cil managed 
     {
-        // Method begins at RVA 0x57f0
+        // Method begins at RVA 0x67d8
 	// Code size 314 (0x13a)
 	.maxstack 3
 	.locals init (
@@ -18557,11 +18393,11 @@
 	IL_0139:  ret 
     } // end of method CompilerBase::PerformSearchForResourceLinkage
 
-    // method line 547
+    // method line 573
     .method family virtual hidebysig newslot 
            instance default void WritePackageReferences (class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0x5948
+        // Method begins at RVA 0x6930
 	// Code size 221 (0xdd)
 	.maxstack 7
 	.locals init (
@@ -18661,11 +18497,11 @@
 	IL_00dc:  ret 
     } // end of method CompilerBase::WritePackageReferences
 
-    // method line 548
+    // method line 574
     .method family virtual hidebysig newslot 
            instance default void WriteWarningsAsError (class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0x5a44
+        // Method begins at RVA 0x6a2c
 	// Code size 516 (0x204)
 	.maxstack 7
 	.locals init (
@@ -18878,11 +18714,11 @@
 	IL_0203:  ret 
     } // end of method CompilerBase::WriteWarningsAsError
 
-    // method line 549
+    // method line 575
     .method family virtual hidebysig newslot 
            instance default void WriteNoWarnList (class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0x5c70
+        // Method begins at RVA 0x6c58
 	// Code size 255 (0xff)
 	.maxstack 7
 	.locals init (
@@ -18995,11 +18831,11 @@
 	IL_00fe:  ret 
     } // end of method CompilerBase::WriteNoWarnList
 
-    // method line 550
+    // method line 576
     .method family virtual hidebysig newslot 
            instance default void WriteConditionalCompilationConstants (class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0x5d8c
+        // Method begins at RVA 0x6d74
 	// Code size 33 (0x21)
 	.maxstack 8
 	IL_0000:  nop 
@@ -19018,11 +18854,11 @@
 	IL_0020:  ret 
     } // end of method CompilerBase::WriteConditionalCompilationConstants
 
-    // method line 551
+    // method line 577
     .method family virtual hidebysig newslot 
            instance default void WriteModuleReferences (class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0x5db0
+        // Method begins at RVA 0x6d98
 	// Code size 83 (0x53)
 	.maxstack 4
 	.locals init (
@@ -19070,22 +18906,22 @@
 	IL_0052:  ret 
     } // end of method CompilerBase::WriteModuleReferences
 
-    // method line 552
+    // method line 578
     .method family virtual hidebysig newslot 
            instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0x5e20
+        // Method begins at RVA 0x6e08
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method CompilerBase::WriteOptions
 
-    // method line 553
+    // method line 579
     .method family virtual hidebysig newslot 
            instance default void WriteOption (class [mscorlib]System.IO.TextWriter writer, string name)  cil managed 
     {
-        // Method begins at RVA 0x5e23
+        // Method begins at RVA 0x6e0b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -19096,11 +18932,11 @@
 	IL_000d:  ret 
     } // end of method CompilerBase::WriteOption
 
-    // method line 554
+    // method line 580
     .method family virtual hidebysig newslot 
            instance default void WriteOption (class [mscorlib]System.IO.TextWriter writer, string name, string 'value')  cil managed 
     {
-        // Method begins at RVA 0x5e34
+        // Method begins at RVA 0x6e1c
 	// Code size 69 (0x45)
 	.maxstack 4
 	IL_0000:  nop 
@@ -19133,11 +18969,11 @@
 	IL_0044:  ret 
     } // end of method CompilerBase::WriteOption
 
-    // method line 555
+    // method line 581
     .method family virtual hidebysig newslot 
            instance default bool NeedsCompiling ()  cil managed 
     {
-        // Method begins at RVA 0x5e88
+        // Method begins at RVA 0x6e70
 	// Code size 1022 (0x3fe)
 	.maxstack 7
 	.locals init (
@@ -19554,11 +19390,11 @@
 	IL_03fd:  ret 
     } // end of method CompilerBase::NeedsCompiling
 
-    // method line 556
+    // method line 582
     .method family virtual hidebysig newslot 
            instance default class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage GetResourceLinkage (string dependentFile, class [mscorlib]System.Globalization.CultureInfo resourceCulture)  cil managed 
     {
-        // Method begins at RVA 0x62b0
+        // Method begins at RVA 0x7298
 	// Code size 211 (0xd3)
 	.maxstack 7
 	.locals init (
@@ -19674,11 +19510,11 @@
 	IL_00d2:  ret 
     } // end of method CompilerBase::GetResourceLinkage
 
-    // method line 557
+    // method line 583
     .method family hidebysig 
            instance default void LinkResourceAssembly (class [mscorlib]System.Collections.Hashtable resourceFiles, class [mscorlib]System.IO.FileInfo resourceAssemblyFile, string culture)  cil managed 
     {
-        // Method begins at RVA 0x63ac
+        // Method begins at RVA 0x7394
 	// Code size 262 (0x106)
 	.maxstack 2
 	.locals init (
@@ -19797,11 +19633,11 @@
 	IL_0105:  ret 
     } // end of method CompilerBase::LinkResourceAssembly
 
-    // method line 558
+    // method line 584
     .method family hidebysig 
            instance default void CompileResxResources (class [System]System.Collections.Specialized.StringCollection resxFiles)  cil managed 
     {
-        // Method begins at RVA 0x64dc
+        // Method begins at RVA 0x74c4
 	// Code size 375 (0x177)
 	.maxstack 2
 	.locals init (
@@ -19963,11 +19799,11 @@
 	IL_0176:  ret 
     } // end of method CompilerBase::CompileResxResources
 
-    // method line 559
+    // method line 585
     .method public static hidebysig 
            default class [mscorlib]System.Globalization.CultureInfo GetResourceCulture (string resourceFile, string dependentFile)  cil managed 
     {
-        // Method begins at RVA 0x6688
+        // Method begins at RVA 0x7670
 	// Code size 140 (0x8c)
 	.maxstack 5
 	.locals init (
@@ -20302,11 +20138,11 @@
     .field  private  string _className
     .field  private  class [mscorlib]System.Globalization.CultureInfo _culture
 
-    // method line 560
+    // method line 586
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string namespaceName, string className)  cil managed 
     {
-        // Method begins at RVA 0x6720
+        // Method begins at RVA 0x7708
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -20321,11 +20157,11 @@
 	IL_0015:  ret 
     } // end of method ResourceLinkage::.ctor
 
-    // method line 561
+    // method line 587
     .method public virtual hidebysig 
            instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0x6738
+        // Method begins at RVA 0x7720
 	// Code size 146 (0x92)
 	.maxstack 3
 	.locals init (
@@ -20395,11 +20231,11 @@
 	IL_0091:  ret 
     } // end of method ResourceLinkage::ToString
 
-    // method line 562
+    // method line 588
     .method public hidebysig specialname 
            instance default bool get_IsValid ()  cil managed 
     {
-        // Method begins at RVA 0x67d8
+        // Method begins at RVA 0x77c0
 	// Code size 42 (0x2a)
 	.maxstack 2
 	.locals init (
@@ -20425,11 +20261,11 @@
 	IL_0029:  ret 
     } // end of method ResourceLinkage::get_IsValid
 
-    // method line 563
+    // method line 589
     .method public hidebysig specialname 
            instance default bool get_HasNamespaceName ()  cil managed 
     {
-        // Method begins at RVA 0x6810
+        // Method begins at RVA 0x77f8
 	// Code size 23 (0x17)
 	.maxstack 2
 	.locals init (
@@ -20447,11 +20283,11 @@
 	IL_0016:  ret 
     } // end of method ResourceLinkage::get_HasNamespaceName
 
-    // method line 564
+    // method line 590
     .method public hidebysig specialname 
            instance default bool get_HasClassName ()  cil managed 
     {
-        // Method begins at RVA 0x6834
+        // Method begins at RVA 0x781c
 	// Code size 23 (0x17)
 	.maxstack 2
 	.locals init (
@@ -20469,11 +20305,11 @@
 	IL_0016:  ret 
     } // end of method ResourceLinkage::get_HasClassName
 
-    // method line 565
+    // method line 591
     .method public hidebysig specialname 
            instance default string get_NamespaceName ()  cil managed 
     {
-        // Method begins at RVA 0x6858
+        // Method begins at RVA 0x7840
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -20488,11 +20324,11 @@
 	IL_000e:  ret 
     } // end of method ResourceLinkage::get_NamespaceName
 
-    // method line 566
+    // method line 592
     .method public hidebysig specialname 
            instance default void set_NamespaceName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x6873
+        // Method begins at RVA 0x785b
 	// Code size 26 (0x1a)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20509,11 +20345,11 @@
 	IL_0019:  ret 
     } // end of method ResourceLinkage::set_NamespaceName
 
-    // method line 567
+    // method line 593
     .method public hidebysig specialname 
            instance default string get_ClassName ()  cil managed 
     {
-        // Method begins at RVA 0x6890
+        // Method begins at RVA 0x7878
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -20528,11 +20364,11 @@
 	IL_000e:  ret 
     } // end of method ResourceLinkage::get_ClassName
 
-    // method line 568
+    // method line 594
     .method public hidebysig specialname 
            instance default void set_ClassName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x68ab
+        // Method begins at RVA 0x7893
 	// Code size 26 (0x1a)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20549,11 +20385,11 @@
 	IL_0019:  ret 
     } // end of method ResourceLinkage::set_ClassName
 
-    // method line 569
+    // method line 595
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Globalization.CultureInfo get_Culture ()  cil managed 
     {
-        // Method begins at RVA 0x68c8
+        // Method begins at RVA 0x78b0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -20568,11 +20404,11 @@
 	IL_000e:  ret 
     } // end of method ResourceLinkage::get_Culture
 
-    // method line 570
+    // method line 596
     .method public hidebysig specialname 
            instance default void set_Culture (class [mscorlib]System.Globalization.CultureInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x68e3
+        // Method begins at RVA 0x78cb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20633,11 +20469,11 @@
     .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
 
-    // method line 571
+    // method line 597
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xaa68
+        // Method begins at RVA 0xad44
 	// Code size 58 (0x3a)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -20660,11 +20496,11 @@
 	IL_0039:  ret 
     } // end of method ScriptTask::.ctor
 
-    // method line 572
+    // method line 598
     .method public hidebysig specialname 
            instance default string get_Language ()  cil managed 
     {
-        // Method begins at RVA 0xaaa4
+        // Method begins at RVA 0xad80
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -20679,11 +20515,11 @@
 	IL_000e:  ret 
     } // end of method ScriptTask::get_Language
 
-    // method line 573
+    // method line 599
     .method public hidebysig specialname 
            instance default void set_Language (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xaabf
+        // Method begins at RVA 0xad9b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20694,11 +20530,11 @@
 	IL_000d:  ret 
     } // end of method ScriptTask::set_Language
 
-    // method line 574
+    // method line 600
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
     {
-        // Method begins at RVA 0xaad0
+        // Method begins at RVA 0xadac
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -20713,11 +20549,11 @@
 	IL_000e:  ret 
     } // end of method ScriptTask::get_References
 
-    // method line 575
+    // method line 601
     .method public hidebysig specialname 
            instance default void set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xaaeb
+        // Method begins at RVA 0xadc7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20727,11 +20563,11 @@
 	IL_0008:  ret 
     } // end of method ScriptTask::set_References
 
-    // method line 576
+    // method line 602
     .method public hidebysig specialname 
            instance default string get_MainClass ()  cil managed 
     {
-        // Method begins at RVA 0xaaf8
+        // Method begins at RVA 0xadd4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -20746,11 +20582,11 @@
 	IL_000e:  ret 
     } // end of method ScriptTask::get_MainClass
 
-    // method line 577
+    // method line 603
     .method public hidebysig specialname 
            instance default void set_MainClass (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xab13
+        // Method begins at RVA 0xadef
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20761,11 +20597,11 @@
 	IL_000d:  ret 
     } // end of method ScriptTask::set_MainClass
 
-    // method line 578
+    // method line 604
     .method public hidebysig specialname 
            instance default string get_Prefix ()  cil managed 
     {
-        // Method begins at RVA 0xab24
+        // Method begins at RVA 0xae00
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -20780,11 +20616,11 @@
 	IL_000e:  ret 
     } // end of method ScriptTask::get_Prefix
 
-    // method line 579
+    // method line 605
     .method public hidebysig specialname 
            instance default void set_Prefix (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xab3f
+        // Method begins at RVA 0xae1b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20795,11 +20631,11 @@
 	IL_000d:  ret 
     } // end of method ScriptTask::set_Prefix
 
-    // method line 580
+    // method line 606
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.NamespaceImportCollection get_Imports ()  cil managed 
     {
-        // Method begins at RVA 0xab50
+        // Method begins at RVA 0xae2c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -20814,11 +20650,11 @@
 	IL_000e:  ret 
     } // end of method ScriptTask::get_Imports
 
-    // method line 581
+    // method line 607
     .method public hidebysig specialname 
            instance default void set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0xab6b
+        // Method begins at RVA 0xae47
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20828,11 +20664,11 @@
 	IL_0008:  ret 
     } // end of method ScriptTask::set_Imports
 
-    // method line 582
+    // method line 608
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.RawXml get_Code ()  cil managed 
     {
-        // Method begins at RVA 0xab78
+        // Method begins at RVA 0xae54
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -20847,11 +20683,11 @@
 	IL_000e:  ret 
     } // end of method ScriptTask::get_Code
 
-    // method line 583
+    // method line 609
     .method public hidebysig specialname 
            instance default void set_Code (class [NAnt.Core]NAnt.Core.Types.RawXml 'value')  cil managed 
     {
-        // Method begins at RVA 0xab93
+        // Method begins at RVA 0xae6f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -20861,11 +20697,11 @@
 	IL_0008:  ret 
     } // end of method ScriptTask::set_Code
 
-    // method line 584
+    // method line 610
     .method family virtual hidebysig 
            instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0xaba0
+        // Method begins at RVA 0xae7c
 	// Code size 41 (0x29)
 	.maxstack 5
 	.locals init (
@@ -20884,11 +20720,11 @@
 	IL_0028:  ret 
     } // end of method ScriptTask::Initialize
 
-    // method line 585
+    // method line 611
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0xabd8
+        // Method begins at RVA 0xaeb4
 	// Code size 1226 (0x4ca)
 	.maxstack 7
 	.locals init (
@@ -21361,11 +21197,11 @@
 	IL_04c9:  ret 
     } // end of method ScriptTask::ExecuteTask
 
-    // method line 586
+    // method line 612
     .method private hidebysig 
            instance default class NAnt.DotNet.Tasks.ScriptTask/CompilerInfo CreateCompilerInfo (string language)  cil managed 
     {
-        // Method begins at RVA 0xb0f0
+        // Method begins at RVA 0xb3cc
 	// Code size 375 (0x177)
 	.maxstack 3
 	.locals init (
@@ -21506,11 +21342,11 @@
 	IL_0176:  ret 
     } // end of method ScriptTask::CreateCompilerInfo
 
-    // method line 587
+    // method line 613
     .method private static hidebysig 
            default class [System]System.CodeDom.Compiler.CodeDomProvider CreateCodeDomProvider (string typeName, string assemblyName)  cil managed 
     {
-        // Method begins at RVA 0xb290
+        // Method begins at RVA 0xb56c
 	// Code size 72 (0x48)
 	.maxstack 4
 	.locals init (
@@ -21549,11 +21385,11 @@
 	IL_0047:  ret 
     } // end of method ScriptTask::CreateCodeDomProvider
 
-    // method line 588
+    // method line 614
     .method private static hidebysig 
            default class [System]System.CodeDom.Compiler.CodeDomProvider CreateCodeDomProvider (string assemblyQualifiedTypeName)  cil managed 
     {
-        // Method begins at RVA 0xb2e4
+        // Method begins at RVA 0xb5c0
 	// Code size 24 (0x18)
 	.maxstack 3
 	.locals init (
@@ -21574,11 +21410,11 @@
 	IL_0017:  ret 
     } // end of method ScriptTask::CreateCodeDomProvider
 
-    // method line 589
+    // method line 615
     .method private static hidebysig 
            default class [System]System.CodeDom.Compiler.CodeDomProvider CreateCodeDomProvider (class [mscorlib]System.Type providerType)  cil managed 
     {
-        // Method begins at RVA 0xb308
+        // Method begins at RVA 0xb5e4
 	// Code size 66 (0x42)
 	.maxstack 3
 	.locals init (
@@ -21610,11 +21446,11 @@
 	IL_0041:  ret 
     } // end of method ScriptTask::CreateCodeDomProvider
 
-    // method line 590
+    // method line 616
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0xb356
+        // Method begins at RVA 0xb632
 	// Code size 60 (0x3c)
 	.maxstack 8
 	IL_0000:  ldc.i4.6 
@@ -21703,11 +21539,11 @@
     .field  public initonly  class [System]System.CodeDom.Compiler.ICodeCompiler Compiler
     .field  public initonly  class [System]System.CodeDom.Compiler.ICodeGenerator CodeGen
 
-    // method line 591
+    // method line 617
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [System]System.CodeDom.Compiler.CodeDomProvider provider)  cil managed 
     {
-        // Method begins at RVA 0xb393
+        // Method begins at RVA 0xb66f
 	// Code size 32 (0x20)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -21724,11 +21560,11 @@
 	IL_001f:  ret 
     } // end of method CompilerInfo::.ctor
 
-    // method line 592
+    // method line 618
     .method public hidebysig 
            instance default class [System]System.CodeDom.CodeCompileUnit GenerateCode (string typeName, string codeBody, class [System]System.Collections.Specialized.StringCollection imports, string prefix)  cil managed 
     {
-        // Method begins at RVA 0xb3b4
+        // Method begins at RVA 0xb690
 	// Code size 492 (0x1ec)
 	.maxstack 4
 	.locals init (
@@ -21924,589 +21760,6 @@
 
 .namespace NAnt.DotNet.Tasks
 {
-  .class public auto ansi beforefieldinit NDocTask
-  	extends [NAnt.Core]NAnt.Core.Task
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 6E 64 6F 63 00 00 ) // ...ndoc..
-
-    .field  private  class [System.Xml]System.Xml.XmlNodeList _docNodes
-    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _assemblies
-    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _summaries
-    .field  private  class [NAnt.Core]NAnt.Core.Types.RawXml _documenters
-    .field  private  class [NAnt.Core]NAnt.Core.Types.DirSet _referencePaths
-    .field  private  string _hhcexe
-
-    // method line 593
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xb5bc
-	// Code size 40 (0x28)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
-	IL_0006:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.NDocTask::_assemblies
-	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0011:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.NDocTask::_summaries
-	IL_0016:  ldarg.0 
-	IL_0017:  newobj instance void class [NAnt.Core]NAnt.Core.Types.DirSet::'.ctor'()
-	IL_001c:  stfld class [NAnt.Core]NAnt.Core.Types.DirSet NAnt.DotNet.Tasks.NDocTask::_referencePaths
-	IL_0021:  ldarg.0 
-	IL_0022:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
-	IL_0027:  ret 
-    } // end of method NDocTask::.ctor
-
-    // method line 594
-    .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
-    {
-        // Method begins at RVA 0xb5e8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.AssemblyFileSet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.NDocTask::_assemblies
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NDocTask::get_Assemblies
-
-    // method line 595
-    .method public hidebysig specialname 
-           instance default void set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb603
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.NDocTask::_assemblies
-	IL_0008:  ret 
-    } // end of method NDocTask::set_Assemblies
-
-    // method line 596
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Summaries ()  cil managed 
-    {
-        // Method begins at RVA 0xb610
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.NDocTask::_summaries
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NDocTask::get_Summaries
-
-    // method line 597
-    .method public hidebysig specialname 
-           instance default void set_Summaries (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb62b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.NDocTask::_summaries
-	IL_0008:  ret 
-    } // end of method NDocTask::set_Summaries
-
-    // method line 598
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.RawXml get_Documenters ()  cil managed 
-    {
-        // Method begins at RVA 0xb638
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.RawXml	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.RawXml NAnt.DotNet.Tasks.NDocTask::_documenters
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NDocTask::get_Documenters
-
-    // method line 599
-    .method public hidebysig specialname 
-           instance default void set_Documenters (class [NAnt.Core]NAnt.Core.Types.RawXml 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb653
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.RawXml NAnt.DotNet.Tasks.NDocTask::_documenters
-	IL_0008:  ret 
-    } // end of method NDocTask::set_Documenters
-
-    // method line 600
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.DirSet get_ReferencePaths ()  cil managed 
-    {
-        // Method begins at RVA 0xb660
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.DirSet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.DirSet NAnt.DotNet.Tasks.NDocTask::_referencePaths
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NDocTask::get_ReferencePaths
-
-    // method line 601
-    .method public hidebysig specialname 
-           instance default void set_ReferencePaths (class [NAnt.Core]NAnt.Core.Types.DirSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0xb67b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.DirSet NAnt.DotNet.Tasks.NDocTask::_referencePaths
-	IL_0008:  ret 
-    } // end of method NDocTask::set_ReferencePaths
-
-    // method line 602
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0xb688
-	// Code size 64 (0x40)
-	.maxstack 4
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance class [NAnt.Core]NAnt.Core.Types.RawXml class NAnt.DotNet.Tasks.NDocTask::get_Documenters()
-	IL_0008:  callvirt instance class [System.Xml]System.Xml.XmlNode class [NAnt.Core]NAnt.Core.Types.RawXml::get_Xml()
-	IL_000d:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::Clone()
-	IL_0012:  ldstr "nant:documenter"
-	IL_0017:  ldarg.0 
-	IL_0018:  call instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_001d:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string, class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0022:  stfld class [System.Xml]System.Xml.XmlNodeList NAnt.DotNet.Tasks.NDocTask::_docNodes
-	IL_0027:  ldarg.0 
-	IL_0028:  ldarg.0 
-	IL_0029:  ldfld class [System.Xml]System.Xml.XmlNodeList NAnt.DotNet.Tasks.NDocTask::_docNodes
-	IL_002e:  call instance void class NAnt.DotNet.Tasks.NDocTask::ExpandPropertiesInNodes(class [System.Xml]System.Xml.XmlNodeList)
-	IL_0033:  ldarg.0 
-	IL_0034:  ldarg.0 
-	IL_0035:  call instance string class NAnt.DotNet.Tasks.NDocTask::ResolveHhcExe()
-	IL_003a:  stfld string NAnt.DotNet.Tasks.NDocTask::_hhcexe
-	IL_003f:  ret 
-    } // end of method NDocTask::Initialize
-
-    // method line 603
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0xb6d4
-    } // end of method NDocTask::ExecuteTask
-
-    // method line 604
-    .method private hidebysig 
-           (null) cil managed 
-    {
-        // Method begins at RVA 0xbd88
-	// Code size 58 (0x3a)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 3000
-	IL_0007:  ldarg.2 
-	IL_0008:  callvirt instance string [NDoc.Core]NDoc.Core.ProgressArgs::get_Status()
-	IL_000d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0012:  ldarg.2 
-	IL_0013:  callvirt instance int32 [NDoc.Core]NDoc.Core.ProgressArgs::get_Progress()
-	IL_0018:  ldc.i4.s 0x19
-	IL_001a:  bne.un IL_0039
-
-	IL_001f:  ldarg.0 
-	IL_0020:  ldfld string NAnt.DotNet.Tasks.NDocTask::_hhcexe
-	IL_0025:  brfalse IL_0039
-
-	IL_002a:  nop 
-	IL_002b:  ldarg.0 
-	IL_002c:  ldarg.1 
-	IL_002d:  ldarg.0 
-	IL_002e:  ldfld string NAnt.DotNet.Tasks.NDocTask::_hhcexe
-	IL_0033:  call instance void class NAnt.DotNet.Tasks.NDocTask::SetHtmlHelpCompiler(object, string)
-	IL_0038:  nop 
-	IL_0039:  ret 
-    } // end of method NDocTask::<NULL METHOD SIGNATURE>
-
-    // method line 605
-    .method private hidebysig 
-           (null) cil managed 
-    {
-        // Method begins at RVA 0xbdc3
-	// Code size 39 (0x27)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 2000
-	IL_0007:  ldarg.2 
-	IL_0008:  callvirt instance int32 [NDoc.Core]NDoc.Core.ProgressArgs::get_Progress()
-	IL_000d:  box [mscorlib]System.Int32
-	IL_0012:  ldstr "String_PercentageComplete"
-	IL_0017:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_001c:  call string string::Concat(object, object)
-	IL_0021:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0026:  ret 
-    } // end of method NDocTask::<NULL METHOD SIGNATURE>
-
-    // method line 606
-    .method private hidebysig 
-           (null) cil managed 
-    {
-        // Method begins at RVA 0xbdec
-    } // end of method NDocTask::<NULL METHOD SIGNATURE>
-
-    // method line 607
-    .method private hidebysig 
-           instance default void ExpandPropertiesInNodes (class [System.Xml]System.Xml.XmlNodeList nodes)  cil managed 
-    {
-        // Method begins at RVA 0xbf04
-	// Code size 272 (0x110)
-	.maxstack 4
-	.locals init (
-		class [System.Xml]System.Xml.XmlNode	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class [System.Xml]System.Xml.XmlAttribute	V_2,
-		class [mscorlib]System.Collections.IEnumerator	V_3,
-		class [mscorlib]System.IDisposable	V_4,
-		class [System.Xml]System.Xml.XmlNode	V_5,
-		class [System.Xml]System.Xml.XmlAttribute	V_6,
-		class [mscorlib]System.IDisposable	V_7)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_0008:  stloc.1 
-	.try { // 1
-	  IL_0009:  br IL_00e9
-
-	  IL_000e:  ldloc.1 
-	  IL_000f:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0014:  castclass [System.Xml]System.Xml.XmlNode
-	  IL_0019:  stloc.0 
-	  IL_001a:  nop 
-	  IL_001b:  ldloc.0 
-	  IL_001c:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlNode::get_NodeType()
-	  IL_0021:  ldc.i4.1 
-	  IL_0022:  bne.un IL_00e8
-
-	  IL_0027:  nop 
-	  IL_0028:  ldarg.0 
-	  IL_0029:  ldloc.0 
-	  IL_002a:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::get_ChildNodes()
-	  IL_002f:  call instance void class NAnt.DotNet.Tasks.NDocTask::ExpandPropertiesInNodes(class [System.Xml]System.Xml.XmlNodeList)
-	  IL_0034:  nop 
-	  IL_0035:  ldloc.0 
-	  IL_0036:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	  IL_003b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNamedNodeMap::GetEnumerator()
-	  IL_0040:  stloc.3 
-	  .try { // 0
-	    IL_0041:  br IL_0071
-
-	    IL_0046:  ldloc.3 
-	    IL_0047:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_004c:  castclass [System.Xml]System.Xml.XmlAttribute
-	    IL_0051:  stloc.2 
-	    IL_0052:  nop 
-	    IL_0053:  ldloc.2 
-	    IL_0054:  ldarg.0 
-	    IL_0055:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	    IL_005a:  ldloc.2 
-	    IL_005b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	    IL_0060:  ldarg.0 
-	    IL_0061:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	    IL_0066:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::ExpandProperties(string, class [NAnt.Core]NAnt.Core.Location)
-	    IL_006b:  callvirt instance void class [System.Xml]System.Xml.XmlNode::set_Value(string)
-	    IL_0070:  nop 
-	    IL_0071:  ldloc.3 
-	    IL_0072:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_0077:  brtrue IL_0046
-
-	    IL_007c:  leave IL_0097
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_0081:  ldloc.3 
-	    IL_0082:  isinst [mscorlib]System.IDisposable
-	    IL_0087:  dup 
-	    IL_0088:  stloc.s 4
-	    IL_008a:  brfalse IL_0096
-
-	    IL_008f:  ldloc.s 4
-	    IL_0091:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0096:  endfinally 
-	  } // end handler 0
-	  IL_0097:  ldloc.0 
-	  IL_0098:  ldstr "property[@name='OutputDirectory']"
-	  IL_009d:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	  IL_00a2:  stloc.s 5
-	  IL_00a4:  ldloc.s 5
-	  IL_00a6:  brfalse IL_00e7
-
-	  IL_00ab:  nop 
-	  IL_00ac:  ldloc.s 5
-	  IL_00ae:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	  IL_00b3:  ldstr "value"
-	  IL_00b8:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNamedNodeMap::GetNamedItem(string)
-	  IL_00bd:  castclass [System.Xml]System.Xml.XmlAttribute
-	  IL_00c2:  stloc.s 6
-	  IL_00c4:  ldloc.s 6
-	  IL_00c6:  brfalse IL_00e6
-
-	  IL_00cb:  nop 
-	  IL_00cc:  ldloc.s 6
-	  IL_00ce:  ldarg.0 
-	  IL_00cf:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_00d4:  ldloc.s 6
-	  IL_00d6:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	  IL_00db:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::GetFullPath(string)
-	  IL_00e0:  callvirt instance void class [System.Xml]System.Xml.XmlNode::set_Value(string)
-	  IL_00e5:  nop 
-	  IL_00e6:  nop 
-	  IL_00e7:  nop 
-	  IL_00e8:  nop 
-	  IL_00e9:  ldloc.1 
-	  IL_00ea:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00ef:  brtrue IL_000e
-
-	  IL_00f4:  leave IL_010f
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00f9:  ldloc.1 
-	  IL_00fa:  isinst [mscorlib]System.IDisposable
-	  IL_00ff:  dup 
-	  IL_0100:  stloc.s 7
-	  IL_0102:  brfalse IL_010e
-
-	  IL_0107:  ldloc.s 7
-	  IL_0109:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_010e:  endfinally 
-	} // end handler 1
-	IL_010f:  ret 
-    } // end of method NDocTask::ExpandPropertiesInNodes
-
-    // method line 608
-    .method private hidebysig 
-           instance default void SetHtmlHelpCompiler (object sender, string hhcexe)  cil managed 
-    {
-        // Method begins at RVA 0xc03c
-	// Code size 164 (0xa4)
-	.maxstack 7
-	.locals init (
-		class [mscorlib]System.Reflection.FieldInfo	V_0,
-		object	V_1,
-		class [mscorlib]System.Reflection.FieldInfo	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 1000
-	IL_0007:  ldstr "Setting Html Help Compiler per reflection"
-	IL_000c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0011:  ldarg.1 
-	IL_0012:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0017:  ldstr "htmlHelp"
-	IL_001c:  ldc.i4.s 0x24
-	IL_001e:  callvirt instance class [mscorlib]System.Reflection.FieldInfo class [mscorlib]System.Type::GetField(string, valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_0023:  stloc.0 
-	IL_0024:  ldnull 
-	IL_0025:  ldloc.0 
-	IL_0026:  call bool class [mscorlib]System.Reflection.FieldInfo::op_Equality(class [mscorlib]System.Reflection.FieldInfo, class [mscorlib]System.Reflection.FieldInfo)
-	IL_002b:  brfalse IL_0035
-
-	IL_0030:  br IL_00a3
-
-	IL_0035:  ldarg.0 
-	IL_0036:  ldc.i4 1000
-	IL_003b:  ldstr "Found MSDNDocumenter.htmlHelp field"
-	IL_0040:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0045:  ldloc.0 
-	IL_0046:  ldarg.1 
-	IL_0047:  callvirt instance object class [mscorlib]System.Reflection.FieldInfo::GetValue(object)
-	IL_004c:  stloc.1 
-	IL_004d:  ldloc.0 
-	IL_004e:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.FieldInfo::get_FieldType()
-	IL_0053:  ldstr "_htmlHelpCompiler"
-	IL_0058:  ldc.i4.s 0x24
-	IL_005a:  callvirt instance class [mscorlib]System.Reflection.FieldInfo class [mscorlib]System.Type::GetField(string, valuetype [mscorlib]System.Reflection.BindingFlags)
-	IL_005f:  stloc.2 
-	IL_0060:  ldnull 
-	IL_0061:  ldloc.2 
-	IL_0062:  call bool class [mscorlib]System.Reflection.FieldInfo::op_Equality(class [mscorlib]System.Reflection.FieldInfo, class [mscorlib]System.Reflection.FieldInfo)
-	IL_0067:  brfalse IL_0071
-
-	IL_006c:  br IL_00a3
-
-	IL_0071:  ldarg.0 
-	IL_0072:  ldc.i4 1000
-	IL_0077:  ldstr "Found HtmlHelp._htmlHelpCompiler field"
-	IL_007c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0081:  ldloc.2 
-	IL_0082:  ldloc.1 
-	IL_0083:  ldarg.2 
-	IL_0084:  callvirt instance void class [mscorlib]System.Reflection.FieldInfo::SetValue(object, object)
-	IL_0089:  ldarg.0 
-	IL_008a:  ldc.i4 2000
-	IL_008f:  ldstr "Set  Html Help Compiler to '{0}'"
-	IL_0094:  ldc.i4.1 
-	IL_0095:  newarr [mscorlib]System.Object
-	IL_009a:  dup 
-	IL_009b:  ldc.i4.0 
-	IL_009c:  ldarg.2 
-	IL_009d:  stelem.ref 
-	IL_009e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00a3:  ret 
-    } // end of method NDocTask::SetHtmlHelpCompiler
-
-    // method line 609
-    .method private hidebysig 
-           instance default string ResolveHhcExe ()  cil managed 
-    {
-        // Method begins at RVA 0xc0ec
-	// Code size 166 (0xa6)
-	.maxstack 4
-	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		string	V_1,
-		string	V_2,
-		string[]	V_3,
-		int32	V_4,
-		string	V_5)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldstr "ProgramFiles(x86)"
-	IL_000c:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
-	IL_0011:  stloc.1 
-	IL_0012:  ldloc.1 
-	IL_0013:  call bool string::IsNullOrEmpty(string)
-	IL_0018:  brtrue IL_0031
-
-	IL_001d:  nop 
-	IL_001e:  ldloc.0 
-	IL_001f:  ldloc.1 
-	IL_0020:  ldstr "HTML Help Workshop"
-	IL_0025:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_002a:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_002f:  pop 
-	IL_0030:  nop 
-	IL_0031:  ldstr "ProgramFiles"
-	IL_0036:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
-	IL_003b:  stloc.2 
-	IL_003c:  ldloc.2 
-	IL_003d:  call bool string::IsNullOrEmpty(string)
-	IL_0042:  brtrue IL_005b
-
-	IL_0047:  nop 
-	IL_0048:  ldloc.0 
-	IL_0049:  ldloc.2 
-	IL_004a:  ldstr "HTML Help Workshop"
-	IL_004f:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0054:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0059:  pop 
-	IL_005a:  nop 
-	IL_005b:  ldloc.0 
-	IL_005c:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0061:  newarr [mscorlib]System.String
-	IL_0066:  stloc.3 
-	IL_0067:  ldc.i4.0 
-	IL_0068:  stloc.s 4
-	IL_006a:  br IL_0083
-
-	IL_006f:  nop 
-	IL_0070:  ldloc.3 
-	IL_0071:  ldloc.s 4
-	IL_0073:  ldloc.0 
-	IL_0074:  ldloc.s 4
-	IL_0076:  callvirt instance string class [System]System.Collections.Specialized.StringCollection::get_Item(int32)
-	IL_007b:  stelem.ref 
-	IL_007c:  nop 
-	IL_007d:  ldloc.s 4
-	IL_007f:  ldc.i4.1 
-	IL_0080:  add 
-	IL_0081:  stloc.s 4
-	IL_0083:  ldloc.s 4
-	IL_0085:  ldloc.0 
-	IL_0086:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_008b:  blt IL_006f
-
-	IL_0090:  ldloc.3 
-	IL_0091:  ldstr "hhc.exe"
-	IL_0096:  ldc.i4.0 
-	IL_0097:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::ResolveFile(string[], string, bool)
-	IL_009c:  stloc.s 5
-	IL_009e:  br IL_00a3
-
-	IL_00a3:  ldloc.s 5
-	IL_00a5:  ret 
-    } // end of method NDocTask::ResolveHhcExe
-
-	.property instance class NAnt.DotNet.Types.AssemblyFileSet Assemblies ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0A 61 73 73 65 6D 62 6C 69 65 73 01 00 54   // ...assemblies..T
-		02 08 52 65 71 75 69 72 65 64 01                ) // ..Required.
-
-		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.NDocTask::get_Assemblies () 
-		.set instance default void NAnt.DotNet.Tasks.NDocTask::set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
-	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet Summaries ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 09 73 75 6D 6D 61 72 69 65 73 00 00 ) // ...summaries..
-
-		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.NDocTask::get_Summaries () 
-		.set instance default void NAnt.DotNet.Tasks.NDocTask::set_Summaries (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
-	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.RawXml Documenters ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0B 64 6F 63 75 6D 65 6E 74 65 72 73 01 00   // ...documenters..
-		54 02 08 52 65 71 75 69 72 65 64 01             ) // T..Required.
-
-		.get instance default class [NAnt.Core]NAnt.Core.Types.RawXml NAnt.DotNet.Tasks.NDocTask::get_Documenters () 
-		.set instance default void NAnt.DotNet.Tasks.NDocTask::set_Documenters (class [NAnt.Core]NAnt.Core.Types.RawXml 'value') 
-	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.DirSet ReferencePaths ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0E 72 65 66 65 72 65 6E 63 65 70 61 74 68   // ...referencepath
-		73 00 00                                        ) // s..
-
-		.get instance default class [NAnt.Core]NAnt.Core.Types.DirSet NAnt.DotNet.Tasks.NDocTask::get_ReferencePaths () 
-		.set instance default void NAnt.DotNet.Tasks.NDocTask::set_ReferencePaths (class [NAnt.Core]NAnt.Core.Types.DirSet 'value') 
-	}
-  } // end of class NAnt.DotNet.Tasks.NDocTask
-}
-
-.namespace NAnt.DotNet.Tasks
-{
   .class public auto ansi beforefieldinit VjcTask
   	extends NAnt.DotNet.Tasks.CompilerBase
   {
@@ -22525,11 +21778,11 @@
     .field  private static  class [System]System.Text.RegularExpressions.Regex _classNameRegex
     .field  private static  class [System]System.Text.RegularExpressions.Regex _namespaceRegex
 
-    // method line 610
+    // method line 619
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xc19e
+        // Method begins at RVA 0xb898
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -22540,11 +21793,11 @@
 	IL_000d:  ret 
     } // end of method VjcTask::.ctor
 
-    // method line 611
+    // method line 620
     .method public hidebysig specialname 
            instance default string get_BaseAddress ()  cil managed 
     {
-        // Method begins at RVA 0xc1b0
+        // Method begins at RVA 0xb8a8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -22559,11 +21812,11 @@
 	IL_000e:  ret 
     } // end of method VjcTask::get_BaseAddress
 
-    // method line 612
+    // method line 621
     .method public hidebysig specialname 
            instance default void set_BaseAddress (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc1cb
+        // Method begins at RVA 0xb8c3
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22574,11 +21827,11 @@
 	IL_000d:  ret 
     } // end of method VjcTask::set_BaseAddress
 
-    // method line 613
+    // method line 622
     .method public hidebysig specialname 
            instance default valuetype NAnt.DotNet.Types.DebugOutput get_DebugOutput ()  cil managed 
     {
-        // Method begins at RVA 0xc1dc
+        // Method begins at RVA 0xb8d4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -22593,11 +21846,11 @@
 	IL_000e:  ret 
     } // end of method VjcTask::get_DebugOutput
 
-    // method line 614
+    // method line 623
     .method public hidebysig specialname 
            instance default void set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value')  cil managed 
     {
-        // Method begins at RVA 0xc1f7
+        // Method begins at RVA 0xb8ef
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22607,11 +21860,11 @@
 	IL_0008:  ret 
     } // end of method VjcTask::set_DebugOutput
 
-    // method line 615
+    // method line 624
     .method public virtual hidebysig specialname 
            instance default bool get_Debug ()  cil managed 
     {
-        // Method begins at RVA 0xc204
+        // Method begins at RVA 0xb8fc
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -22630,11 +21883,11 @@
 	IL_0014:  ret 
     } // end of method VjcTask::get_Debug
 
-    // method line 616
+    // method line 625
     .method public virtual hidebysig specialname 
            instance default void set_Debug (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xc225
+        // Method begins at RVA 0xb91d
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22644,11 +21897,11 @@
 	IL_0008:  ret 
     } // end of method VjcTask::set_Debug
 
-    // method line 617
+    // method line 626
     .method public hidebysig specialname 
            instance default bool get_SecureScoping ()  cil managed 
     {
-        // Method begins at RVA 0xc230
+        // Method begins at RVA 0xb928
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -22663,11 +21916,11 @@
 	IL_000e:  ret 
     } // end of method VjcTask::get_SecureScoping
 
-    // method line 618
+    // method line 627
     .method public hidebysig specialname 
            instance default void set_SecureScoping (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xc24b
+        // Method begins at RVA 0xb943
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22677,11 +21930,11 @@
 	IL_0008:  ret 
     } // end of method VjcTask::set_SecureScoping
 
-    // method line 619
+    // method line 628
     .method public hidebysig specialname 
            instance default string get_X ()  cil managed 
     {
-        // Method begins at RVA 0xc258
+        // Method begins at RVA 0xb950
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -22696,11 +21949,11 @@
 	IL_000e:  ret 
     } // end of method VjcTask::get_X
 
-    // method line 620
+    // method line 629
     .method public hidebysig specialname 
            instance default void set_X (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc273
+        // Method begins at RVA 0xb96b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22711,11 +21964,11 @@
 	IL_000d:  ret 
     } // end of method VjcTask::set_X
 
-    // method line 621
+    // method line 630
     .method public hidebysig specialname 
            instance default string get_LibPath ()  cil managed 
     {
-        // Method begins at RVA 0xc284
+        // Method begins at RVA 0xb97c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -22730,11 +21983,11 @@
 	IL_000e:  ret 
     } // end of method VjcTask::get_LibPath
 
-    // method line 622
+    // method line 631
     .method public hidebysig specialname 
            instance default void set_LibPath (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc29f
+        // Method begins at RVA 0xb997
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22745,11 +21998,11 @@
 	IL_000d:  ret 
     } // end of method VjcTask::set_LibPath
 
-    // method line 623
+    // method line 632
     .method public hidebysig specialname 
            instance default string get_Jcpa ()  cil managed 
     {
-        // Method begins at RVA 0xc2b0
+        // Method begins at RVA 0xb9a8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -22764,11 +22017,11 @@
 	IL_000e:  ret 
     } // end of method VjcTask::get_Jcpa
 
-    // method line 624
+    // method line 633
     .method public hidebysig specialname 
            instance default void set_Jcpa (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc2cb
+        // Method begins at RVA 0xb9c3
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22779,11 +22032,11 @@
 	IL_000d:  ret 
     } // end of method VjcTask::set_Jcpa
 
-    // method line 625
+    // method line 634
     .method public hidebysig specialname 
            instance default string get_Codepage ()  cil managed 
     {
-        // Method begins at RVA 0xc2dc
+        // Method begins at RVA 0xb9d4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -22798,11 +22051,11 @@
 	IL_000e:  ret 
     } // end of method VjcTask::get_Codepage
 
-    // method line 626
+    // method line 635
     .method public hidebysig specialname 
            instance default void set_Codepage (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc2f7
+        // Method begins at RVA 0xb9ef
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22813,11 +22066,11 @@
 	IL_000d:  ret 
     } // end of method VjcTask::set_Codepage
 
-    // method line 627
+    // method line 636
     .method public hidebysig specialname 
            instance default string get_WarningLevel ()  cil managed 
     {
-        // Method begins at RVA 0xc308
+        // Method begins at RVA 0xba00
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -22832,11 +22085,11 @@
 	IL_000e:  ret 
     } // end of method VjcTask::get_WarningLevel
 
-    // method line 628
+    // method line 637
     .method public hidebysig specialname 
            instance default void set_WarningLevel (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc323
+        // Method begins at RVA 0xba1b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22847,11 +22100,11 @@
 	IL_000d:  ret 
     } // end of method VjcTask::set_WarningLevel
 
-    // method line 629
+    // method line 638
     .method public virtual hidebysig specialname 
            instance default class NAnt.DotNet.Types.WarningAsError get_WarningAsError ()  cil managed 
     {
-        // Method begins at RVA 0xc334
+        // Method begins at RVA 0xba2c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -22866,11 +22119,11 @@
 	IL_000e:  ret 
     } // end of method VjcTask::get_WarningAsError
 
-    // method line 630
+    // method line 639
     .method public virtual hidebysig specialname 
            instance default class NAnt.DotNet.Types.PackageCollection get_Packages ()  cil managed 
     {
-        // Method begins at RVA 0xc350
+        // Method begins at RVA 0xba48
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -22885,11 +22138,11 @@
 	IL_000e:  ret 
     } // end of method VjcTask::get_Packages
 
-    // method line 631
+    // method line 640
     .method public virtual hidebysig specialname 
            instance default void set_Packages (class NAnt.DotNet.Types.PackageCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0xc36b
+        // Method begins at RVA 0xba63
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22899,11 +22152,11 @@
 	IL_0008:  ret 
     } // end of method VjcTask::set_Packages
 
-    // method line 632
+    // method line 641
     .method public virtual hidebysig specialname 
            instance default class NAnt.DotNet.Types.AssemblyFileSet get_Modules ()  cil managed 
     {
-        // Method begins at RVA 0xc378
+        // Method begins at RVA 0xba70
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -22918,11 +22171,11 @@
 	IL_000e:  ret 
     } // end of method VjcTask::get_Modules
 
-    // method line 633
+    // method line 642
     .method public virtual hidebysig specialname 
            instance default void set_Modules (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xc393
+        // Method begins at RVA 0xba8b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22932,11 +22185,11 @@
 	IL_0008:  ret 
     } // end of method VjcTask::set_Modules
 
-    // method line 634
+    // method line 643
     .method family virtual hidebysig 
            instance default void WriteModuleReferences (class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0xc39d
+        // Method begins at RVA 0xba95
 	// Code size 47 (0x2f)
 	.maxstack 8
 	IL_0000:  nop 
@@ -22957,11 +22210,11 @@
 	IL_002e:  ret 
     } // end of method VjcTask::WriteModuleReferences
 
-    // method line 635
+    // method line 644
     .method family virtual hidebysig 
            instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0xc3d0
+        // Method begins at RVA 0xbac8
 	// Code size 421 (0x1a5)
 	.maxstack 4
 	.locals init (
@@ -23118,11 +22371,11 @@
 	IL_01a4:  ret 
     } // end of method VjcTask::WriteOptions
 
-    // method line 636
+    // method line 645
     .method public virtual hidebysig specialname 
            instance default string get_Extension ()  cil managed 
     {
-        // Method begins at RVA 0xc584
+        // Method begins at RVA 0xbc7c
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
@@ -23136,11 +22389,11 @@
 	IL_000d:  ret 
     } // end of method VjcTask::get_Extension
 
-    // method line 637
+    // method line 646
     .method family virtual hidebysig specialname 
            instance default class [System]System.Text.RegularExpressions.Regex get_ClassNameRegex ()  cil managed 
     {
-        // Method begins at RVA 0xc5a0
+        // Method begins at RVA 0xbc98
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
@@ -23154,11 +22407,11 @@
 	IL_000d:  ret 
     } // end of method VjcTask::get_ClassNameRegex
 
-    // method line 638
+    // method line 647
     .method family virtual hidebysig specialname 
            instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
     {
-        // Method begins at RVA 0xc5bc
+        // Method begins at RVA 0xbcb4
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
@@ -23172,11 +22425,11 @@
 	IL_000d:  ret 
     } // end of method VjcTask::get_NamespaceRegex
 
-    // method line 639
+    // method line 648
     .method public virtual hidebysig specialname 
            instance default bool get_SupportsPackageReferences ()  cil managed 
     {
-        // Method begins at RVA 0xc5d8
+        // Method begins at RVA 0xbcd0
 	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
@@ -23190,22 +22443,22 @@
 	IL_0009:  ret 
     } // end of method VjcTask::get_SupportsPackageReferences
 
-    // method line 640
+    // method line 649
     .method public virtual hidebysig specialname 
            instance default void set_SupportsPackageReferences (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xc5ee
+        // Method begins at RVA 0xbce6
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method VjcTask::set_SupportsPackageReferences
 
-    // method line 641
+    // method line 650
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0xc5f1
+        // Method begins at RVA 0xbce9
 	// Code size 31 (0x1f)
 	.maxstack 8
 	IL_0000:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.\\{]+|class\\s+(?<class>\\w+)|(?<keyword>\\w+))*"
@@ -23320,128 +22573,495 @@
 
 .namespace NAnt.DotNet.Tasks
 {
-  .class public auto ansi beforefieldinit VbcTask
+  .class public auto ansi beforefieldinit DelaySignTask
+  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 0A 64 65 6C 61 79 2D 73 69 67 6E 00 00 ) // ...delay-sign..
+
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 01 00 00 00 00 00 ) // ........
+
+    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _targets
+    .field  private  class [mscorlib]System.IO.FileInfo _keyFile
+    .field  private  string _keyContainer
+    .field  private  class [mscorlib]System.Text.StringBuilder _argumentBuilder
+
+    // method line 651
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xbd09
+	// Code size 18 (0x12)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0006:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.DelaySignTask::_targets
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_0011:  ret 
+    } // end of method DelaySignTask::.ctor
+
+    // method line 652
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Targets ()  cil managed 
+    {
+        // Method begins at RVA 0xbd1c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.DelaySignTask::_targets
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DelaySignTask::get_Targets
+
+    // method line 653
+    .method public hidebysig specialname 
+           instance default void set_Targets (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0xbd37
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.DelaySignTask::_targets
+	IL_0008:  ret 
+    } // end of method DelaySignTask::set_Targets
+
+    // method line 654
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
+    {
+        // Method begins at RVA 0xbd44
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.DelaySignTask::_keyFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DelaySignTask::get_KeyFile
+
+    // method line 655
+    .method public hidebysig specialname 
+           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0xbd5f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.DelaySignTask::_keyFile
+	IL_0008:  ret 
+    } // end of method DelaySignTask::set_KeyFile
+
+    // method line 656
+    .method public hidebysig specialname 
+           instance default string get_KeyContainer ()  cil managed 
+    {
+        // Method begins at RVA 0xbd6c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.DelaySignTask::_keyContainer
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method DelaySignTask::get_KeyContainer
+
+    // method line 657
+    .method public hidebysig specialname 
+           instance default void set_KeyContainer (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0xbd87
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.DelaySignTask::_keyContainer
+	IL_000d:  ret 
+    } // end of method DelaySignTask::set_KeyContainer
+
+    // method line 658
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
+    {
+        // Method begins at RVA 0xbd98
+	// Code size 40 (0x28)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
+	IL_0007:  brfalse IL_001e
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
+	IL_0013:  callvirt instance string object::ToString()
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_0026
+
+	IL_001e:  nop 
+	IL_001f:  ldnull 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
+
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method DelaySignTask::get_ProgramArguments
+
+    // method line 659
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0xbdcc
+	// Code size 429 (0x1ad)
+	.maxstack 7
+	.locals init (
+		bool	V_0,
+		bool	V_1,
+		string	V_2,
+		string	V_3,
+		class [System]System.Collections.Specialized.StringEnumerator	V_4,
+		class [mscorlib]System.IDisposable	V_5)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.DelaySignTask::get_KeyFile()
+	IL_0007:  ldnull 
+	IL_0008:  ceq 
+	IL_000a:  ldc.i4.0 
+	IL_000b:  ceq 
+	IL_000d:  stloc.0 
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance string class NAnt.DotNet.Tasks.DelaySignTask::get_KeyContainer()
+	IL_0014:  ldnull 
+	IL_0015:  ceq 
+	IL_0017:  ldc.i4.0 
+	IL_0018:  ceq 
+	IL_001a:  stloc.1 
+	IL_001b:  ldloc.1 
+	IL_001c:  brfalse IL_002c
+
+	IL_0021:  ldarg.0 
+	IL_0022:  call instance string class NAnt.DotNet.Tasks.DelaySignTask::get_KeyContainer()
+	IL_0027:  br IL_0037
+
+	IL_002c:  ldarg.0 
+	IL_002d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.DelaySignTask::get_KeyFile()
+	IL_0032:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0037:  stloc.2 
+	IL_0038:  ldarg.0 
+	IL_0039:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.DelaySignTask::get_Targets()
+	IL_003e:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_0043:  brtrue IL_0065
+
+	IL_0048:  nop 
+	IL_0049:  ldarg.0 
+	IL_004a:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.DelaySignTask::get_Targets()
+	IL_004f:  ldarg.0 
+	IL_0050:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0055:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	IL_005a:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_005f:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_0064:  nop 
+	IL_0065:  ldloc.0 
+	IL_0066:  brfalse IL_0071
+
+	IL_006b:  ldloc.1 
+	IL_006c:  brtrue IL_007d
+
+	IL_0071:  ldloc.0 
+	IL_0072:  brtrue IL_0094
+
+	IL_0077:  ldloc.1 
+	IL_0078:  brtrue IL_0094
+
+	IL_007d:  nop 
+	IL_007e:  ldstr "NA2012"
+	IL_0083:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0088:  ldarg.0 
+	IL_0089:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_008e:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0093:  throw 
+	IL_0094:  ldarg.0 
+	IL_0095:  ldc.i4 3000
+	IL_009a:  ldstr "String_DelaySigningAssemblies"
+	IL_009f:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00a4:  ldc.i4.1 
+	IL_00a5:  newarr [mscorlib]System.Object
+	IL_00aa:  dup 
+	IL_00ab:  ldc.i4.0 
+	IL_00ac:  ldarg.0 
+	IL_00ad:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.DelaySignTask::get_Targets()
+	IL_00b2:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_00b7:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
+	IL_00bc:  box [mscorlib]System.Int32
+	IL_00c1:  stelem.ref 
+	IL_00c2:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00c7:  nop 
+	IL_00c8:  ldarg.0 
+	IL_00c9:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.DotNet.Tasks.DelaySignTask::get_Targets()
+	IL_00ce:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_00d3:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_00d8:  stloc.s 4
+	.try { // 0
+	  IL_00da:  br IL_0184
+
+	  IL_00df:  ldloc.s 4
+	  IL_00e1:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_00e6:  stloc.3 
+	  IL_00e7:  nop 
+	  IL_00e8:  ldarg.0 
+	  IL_00e9:  ldc.i4.s 0x09
+	  IL_00eb:  ldloc.3 
+	  IL_00ec:  callvirt instance int32 string::get_Length()
+	  IL_00f1:  add 
+	  IL_00f2:  ldloc.2 
+	  IL_00f3:  callvirt instance int32 string::get_Length()
+	  IL_00f8:  add 
+	  IL_00f9:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'(int32)
+	  IL_00fe:  stfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
+	  IL_0103:  ldarg.0 
+	  IL_0104:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	  IL_0109:  brtrue IL_0121
+
+	  IL_010e:  nop 
+	  IL_010f:  ldarg.0 
+	  IL_0110:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
+	  IL_0115:  ldstr "-q "
+	  IL_011a:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_011f:  pop 
+	  IL_0120:  nop 
+	  IL_0121:  ldarg.0 
+	  IL_0122:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
+	  IL_0127:  ldstr "-R"
+	  IL_012c:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_0131:  pop 
+	  IL_0132:  ldloc.1 
+	  IL_0133:  brfalse IL_0148
+
+	  IL_0138:  nop 
+	  IL_0139:  ldarg.0 
+	  IL_013a:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
+	  IL_013f:  ldc.i4.s 0x63
+	  IL_0141:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	  IL_0146:  pop 
+	  IL_0147:  nop 
+	  IL_0148:  ldarg.0 
+	  IL_0149:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
+	  IL_014e:  ldstr " \""
+	  IL_0153:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_0158:  ldloc.3 
+	  IL_0159:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_015e:  ldstr "\" \""
+	  IL_0163:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_0168:  pop 
+	  IL_0169:  ldarg.0 
+	  IL_016a:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.DotNet.Tasks.DelaySignTask::_argumentBuilder
+	  IL_016f:  ldloc.2 
+	  IL_0170:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	  IL_0175:  ldc.i4.s 0x22
+	  IL_0177:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(char)
+	  IL_017c:  pop 
+	  IL_017d:  ldarg.0 
+	  IL_017e:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	  IL_0183:  nop 
+	  IL_0184:  ldloc.s 4
+	  IL_0186:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_018b:  brtrue IL_00df
+
+	  IL_0190:  leave IL_01ac
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0195:  ldloc.s 4
+	  IL_0197:  isinst [mscorlib]System.IDisposable
+	  IL_019c:  dup 
+	  IL_019d:  stloc.s 5
+	  IL_019f:  brfalse IL_01ab
+
+	  IL_01a4:  ldloc.s 5
+	  IL_01a6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01ab:  endfinally 
+	} // end handler 0
+	IL_01ac:  ret 
+    } // end of method DelaySignTask::ExecuteTask
+
+	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet Targets ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 74 61 72 67 65 74 73 00 00 ) // ...targets..
+
+		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.DotNet.Tasks.DelaySignTask::get_Targets () 
+		.set instance default void NAnt.DotNet.Tasks.DelaySignTask::set_Targets (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo KeyFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6B 65 79 66 69 6C 65 00 00 ) // ...keyfile..
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.DelaySignTask::get_KeyFile () 
+		.set instance default void NAnt.DotNet.Tasks.DelaySignTask::set_KeyFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string KeyContainer ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0C 6B 65 79 63 6F 6E 74 61 69 6E 65 72 00   // ...keycontainer.
+		00                                              ) // .
+
+		.get instance default string NAnt.DotNet.Tasks.DelaySignTask::get_KeyContainer () 
+		.set instance default void NAnt.DotNet.Tasks.DelaySignTask::set_KeyContainer (string 'value') 
+	}
+	.property instance string ProgramArguments ()
+	{
+		.get instance default string NAnt.DotNet.Tasks.DelaySignTask::get_ProgramArguments () 
+	}
+  } // end of class NAnt.DotNet.Tasks.DelaySignTask
+}
+
+.namespace NAnt.DotNet.Tasks
+{
+  .class public auto ansi beforefieldinit CscTask
   	extends NAnt.DotNet.Tasks.CompilerBase
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 76 62 63 00 00 ) // ...vbc..
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 63 73 63 00 00 ) // ...csc..
 
     .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 00 00 00 00 00 00 ) // ........
 
-    .field  private  string _baseAddress
     .field  private  valuetype NAnt.DotNet.Types.DebugOutput _debugOutput
     .field  private  class [mscorlib]System.IO.FileInfo _docFile
+    .field  private  int32 _fileAlign
     .field  private  bool _nostdlib
-    .field  private  string _optionCompare
-    .field  private  bool _optionExplicit
-    .field  private  bool _optionStrict
-    .field  private  bool _optionOptimize
-    .field  private  bool _removeintchecks
-    .field  private  string _rootNamespace
+    .field  private  bool _noconfig
+    .field  private  bool _checked
+    .field  private  bool _unsafe
+    .field  private  bool _optimize
+    .field  private  string _warningLevel
+    .field  private  string _codepage
+    .field  private  string _baseAddress
     .field  private  string _platform
-    .field  private  class NAnt.DotNet.Types.NamespaceImportCollection _imports
+    .field  private  string _langVersion
     .field  private  bool _supportsDocGeneration
-    .field  private  bool _supportsNoStdLib
     .field  private  bool _supportsPlatform
+    .field  private  bool _supportsLangVersion
     .field  private static  class [System]System.Text.RegularExpressions.Regex _classNameRegex
     .field  private static  class [System]System.Text.RegularExpressions.Regex _namespaceRegex
 
-    // method line 642
+    // method line 660
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xc611
-	// Code size 25 (0x19)
+        // Method begins at RVA 0xbf98
+	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VbcTask::_debugOutput
+	IL_0002:  stfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.CscTask::_debugOutput
 	IL_0007:  ldarg.0 
-	IL_0008:  newobj instance void class NAnt.DotNet.Types.NamespaceImportCollection::'.ctor'()
-	IL_000d:  stfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.VbcTask::_imports
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance void class NAnt.DotNet.Tasks.CompilerBase::'.ctor'()
-	IL_0018:  ret 
-    } // end of method VbcTask::.ctor
+	IL_0008:  ldc.i4.1 
+	IL_0009:  stfld bool NAnt.DotNet.Tasks.CscTask::_supportsDocGeneration
+	IL_000e:  ldarg.0 
+	IL_000f:  call instance void class NAnt.DotNet.Tasks.CompilerBase::'.ctor'()
+	IL_0014:  ret 
+    } // end of method CscTask::.ctor
 
-    // method line 643
+    // method line 661
     .method public hidebysig specialname 
            instance default string get_BaseAddress ()  cil managed 
     {
-        // Method begins at RVA 0xc62c
+        // Method begins at RVA 0xbfb0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.VbcTask::_baseAddress
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.CscTask::_baseAddress
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_BaseAddress
+    } // end of method CscTask::get_BaseAddress
 
-    // method line 644
+    // method line 662
     .method public hidebysig specialname 
            instance default void set_BaseAddress (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc647
+        // Method begins at RVA 0xbfcb
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
 	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.VbcTask::_baseAddress
+	IL_0008:  stfld string NAnt.DotNet.Tasks.CscTask::_baseAddress
 	IL_000d:  ret 
-    } // end of method VbcTask::set_BaseAddress
+    } // end of method CscTask::set_BaseAddress
 
-    // method line 645
+    // method line 663
     .method public hidebysig specialname 
            instance default valuetype NAnt.DotNet.Types.DebugOutput get_DebugOutput ()  cil managed 
     {
-        // Method begins at RVA 0xc658
+        // Method begins at RVA 0xbfdc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		valuetype NAnt.DotNet.Types.DebugOutput	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VbcTask::_debugOutput
+	IL_0002:  ldfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.CscTask::_debugOutput
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_DebugOutput
+    } // end of method CscTask::get_DebugOutput
 
-    // method line 646
+    // method line 664
     .method public hidebysig specialname 
            instance default void set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value')  cil managed 
     {
-        // Method begins at RVA 0xc673
+        // Method begins at RVA 0xbff7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VbcTask::_debugOutput
+	IL_0003:  stfld valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.CscTask::_debugOutput
 	IL_0008:  ret 
-    } // end of method VbcTask::set_DebugOutput
+    } // end of method CscTask::set_DebugOutput
 
-    // method line 647
+    // method line 665
     .method public virtual hidebysig specialname 
            instance default bool get_Debug ()  cil managed 
     {
-        // Method begins at RVA 0xc680
+        // Method begins at RVA 0xc004
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.VbcTask::get_DebugOutput()
+	IL_0002:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.CscTask::get_DebugOutput()
 	IL_0007:  ldc.i4.0 
 	IL_0008:  ceq 
 	IL_000a:  ldc.i4.0 
@@ -23451,939 +23071,798 @@
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method VbcTask::get_Debug
+    } // end of method CscTask::get_Debug
 
-    // method line 648
+    // method line 666
     .method public virtual hidebysig specialname 
            instance default void set_Debug (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xc6a1
+        // Method begins at RVA 0xc025
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldc.i4.1 
-	IL_0003:  call instance void class NAnt.DotNet.Tasks.VbcTask::set_DebugOutput(valuetype NAnt.DotNet.Types.DebugOutput)
+	IL_0003:  call instance void class NAnt.DotNet.Tasks.CscTask::set_DebugOutput(valuetype NAnt.DotNet.Types.DebugOutput)
 	IL_0008:  ret 
-    } // end of method VbcTask::set_Debug
+    } // end of method CscTask::set_Debug
 
-    // method line 649
+    // method line 667
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_DocFile ()  cil managed 
     {
-        // Method begins at RVA 0xc6ac
+        // Method begins at RVA 0xc030
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.VbcTask::_docFile
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CscTask::_docFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_DocFile
+    } // end of method CscTask::get_DocFile
 
-    // method line 650
+    // method line 668
     .method public hidebysig specialname 
            instance default void set_DocFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xc6c7
+        // Method begins at RVA 0xc04b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.VbcTask::_docFile
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CscTask::_docFile
 	IL_0008:  ret 
-    } // end of method VbcTask::set_DocFile
+    } // end of method CscTask::set_DocFile
 
-    // method line 651
+    // method line 669
     .method public hidebysig specialname 
-           instance default void set_ImportsString (string 'value')  cil managed 
+           instance default int32 get_FileAlign ()  cil managed 
     {
-        // Method begins at RVA 0xc6d4
-	// Code size 72 (0x48)
-	.maxstack 3
+        // Method begins at RVA 0xc058
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string[]	V_0,
-		string	V_1,
-		string[]	V_2,
-		int32	V_3)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call bool string::IsNullOrEmpty(string)
-	IL_0007:  brtrue IL_0047
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.1 
-	IL_000e:  ldc.i4.s 0x2c
-	IL_0010:  ldc.i4.0 
-	IL_0011:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	IL_0016:  stloc.0 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  stloc.2 
-	IL_001a:  ldc.i4.0 
-	IL_001b:  stloc.3 
-	IL_001c:  br IL_003d
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld int32 NAnt.DotNet.Tasks.CscTask::_fileAlign
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0021:  ldloc.2 
-	IL_0022:  ldloc.3 
-	IL_0023:  ldelem.ref 
-	IL_0024:  stloc.1 
-	IL_0025:  nop 
-	IL_0026:  ldarg.0 
-	IL_0027:  call instance class NAnt.DotNet.Types.NamespaceImportCollection class NAnt.DotNet.Tasks.VbcTask::get_Imports()
-	IL_002c:  ldloc.1 
-	IL_002d:  newobj instance void class NAnt.DotNet.Types.NamespaceImport::'.ctor'(string)
-	IL_0032:  callvirt instance int32 class NAnt.DotNet.Types.NamespaceImportCollection::Add(class NAnt.DotNet.Types.NamespaceImport)
-	IL_0037:  pop 
-	IL_0038:  nop 
-	IL_0039:  ldloc.3 
-	IL_003a:  ldc.i4.1 
-	IL_003b:  add 
-	IL_003c:  stloc.3 
-	IL_003d:  ldloc.3 
-	IL_003e:  ldloc.2 
-	IL_003f:  ldlen 
-	IL_0040:  conv.i4 
-	IL_0041:  blt IL_0021
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CscTask::get_FileAlign
 
-	IL_0046:  nop 
-	IL_0047:  ret 
-    } // end of method VbcTask::set_ImportsString
+    // method line 670
+    .method public hidebysig specialname 
+           instance default void set_FileAlign (int32 'value')  cil managed 
+    {
+        // Method begins at RVA 0xc073
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld int32 NAnt.DotNet.Tasks.CscTask::_fileAlign
+	IL_0008:  ret 
+    } // end of method CscTask::set_FileAlign
 
-    // method line 652
+    // method line 671
     .method public hidebysig specialname 
-           instance default class NAnt.DotNet.Types.NamespaceImportCollection get_Imports ()  cil managed 
+           instance default bool get_NoStdLib ()  cil managed 
     {
-        // Method begins at RVA 0xc728
+        // Method begins at RVA 0xc080
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.NamespaceImportCollection	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.VbcTask::_imports
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_nostdlib
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_Imports
+    } // end of method CscTask::get_NoStdLib
 
-    // method line 653
+    // method line 672
     .method public hidebysig specialname 
-           instance default void set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value')  cil managed 
+           instance default void set_NoStdLib (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xc743
+        // Method begins at RVA 0xc09b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.VbcTask::_imports
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_nostdlib
 	IL_0008:  ret 
-    } // end of method VbcTask::set_Imports
+    } // end of method CscTask::set_NoStdLib
 
-    // method line 654
+    // method line 673
     .method public hidebysig specialname 
-           instance default bool get_NoStdLib ()  cil managed 
+           instance default bool get_NoConfig ()  cil managed 
     {
-        // Method begins at RVA 0xc750
+        // Method begins at RVA 0xc0a8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_nostdlib
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_noconfig
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_NoStdLib
+    } // end of method CscTask::get_NoConfig
 
-    // method line 655
+    // method line 674
     .method public hidebysig specialname 
-           instance default void set_NoStdLib (bool 'value')  cil managed 
+           instance default void set_NoConfig (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xc76b
+        // Method begins at RVA 0xc0c3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_nostdlib
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_noconfig
 	IL_0008:  ret 
-    } // end of method VbcTask::set_NoStdLib
+    } // end of method CscTask::set_NoConfig
 
-    // method line 656
+    // method line 675
     .method public hidebysig specialname 
-           instance default string get_OptionCompare ()  cil managed 
+           instance default bool get_Checked ()  cil managed 
     {
-        // Method begins at RVA 0xc778
+        // Method begins at RVA 0xc0d0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.VbcTask::_optionCompare
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_checked
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_OptionCompare
+    } // end of method CscTask::get_Checked
 
-    // method line 657
+    // method line 676
     .method public hidebysig specialname 
-           instance default void set_OptionCompare (string 'value')  cil managed 
+           instance default void set_Checked (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xc793
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xc0eb
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.VbcTask::_optionCompare
-	IL_000d:  ret 
-    } // end of method VbcTask::set_OptionCompare
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_checked
+	IL_0008:  ret 
+    } // end of method CscTask::set_Checked
 
-    // method line 658
+    // method line 677
     .method public hidebysig specialname 
-           instance default bool get_OptionExplicit ()  cil managed 
+           instance default bool get_Unsafe ()  cil managed 
     {
-        // Method begins at RVA 0xc7a4
+        // Method begins at RVA 0xc0f8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_optionExplicit
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_unsafe
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_OptionExplicit
+    } // end of method CscTask::get_Unsafe
 
-    // method line 659
+    // method line 678
     .method public hidebysig specialname 
-           instance default void set_OptionExplicit (bool 'value')  cil managed 
+           instance default void set_Unsafe (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xc7bf
+        // Method begins at RVA 0xc113
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_optionExplicit
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_unsafe
 	IL_0008:  ret 
-    } // end of method VbcTask::set_OptionExplicit
+    } // end of method CscTask::set_Unsafe
 
-    // method line 660
+    // method line 679
     .method public hidebysig specialname 
-           instance default bool get_OptionOptimize ()  cil managed 
+           instance default string get_LangVersion ()  cil managed 
     {
-        // Method begins at RVA 0xc7cc
+        // Method begins at RVA 0xc120
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_optionOptimize
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.CscTask::_langVersion
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_OptionOptimize
+    } // end of method CscTask::get_LangVersion
 
-    // method line 661
+    // method line 680
     .method public hidebysig specialname 
-           instance default void set_OptionOptimize (bool 'value')  cil managed 
+           instance default void set_LangVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc7e7
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xc13b
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_optionOptimize
-	IL_0008:  ret 
-    } // end of method VbcTask::set_OptionOptimize
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.CscTask::_langVersion
+	IL_000d:  ret 
+    } // end of method CscTask::set_LangVersion
 
-    // method line 662
+    // method line 681
     .method public hidebysig specialname 
-           instance default bool get_OptionStrict ()  cil managed 
+           instance default bool get_Optimize ()  cil managed 
     {
-        // Method begins at RVA 0xc7f4
+        // Method begins at RVA 0xc14c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_optionStrict
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_optimize
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_OptionStrict
+    } // end of method CscTask::get_Optimize
 
-    // method line 663
+    // method line 682
     .method public hidebysig specialname 
-           instance default void set_OptionStrict (bool 'value')  cil managed 
+           instance default void set_Optimize (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xc80f
+        // Method begins at RVA 0xc167
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_optionStrict
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_optimize
 	IL_0008:  ret 
-    } // end of method VbcTask::set_OptionStrict
+    } // end of method CscTask::set_Optimize
 
-    // method line 664
+    // method line 683
     .method public hidebysig specialname 
            instance default string get_Platform ()  cil managed 
     {
-        // Method begins at RVA 0xc81c
+        // Method begins at RVA 0xc174
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.VbcTask::_platform
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.CscTask::_platform
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_Platform
+    } // end of method CscTask::get_Platform
 
-    // method line 665
+    // method line 684
     .method public hidebysig specialname 
            instance default void set_Platform (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc837
+        // Method begins at RVA 0xc18f
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
 	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.VbcTask::_platform
+	IL_0008:  stfld string NAnt.DotNet.Tasks.CscTask::_platform
 	IL_000d:  ret 
-    } // end of method VbcTask::set_Platform
+    } // end of method CscTask::set_Platform
 
-    // method line 666
+    // method line 685
     .method public hidebysig specialname 
-           instance default bool get_RemoveIntChecks ()  cil managed 
+           instance default string get_WarningLevel ()  cil managed 
     {
-        // Method begins at RVA 0xc848
+        // Method begins at RVA 0xc1a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_removeintchecks
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.CscTask::_warningLevel
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_RemoveIntChecks
+    } // end of method CscTask::get_WarningLevel
 
-    // method line 667
+    // method line 686
     .method public hidebysig specialname 
-           instance default void set_RemoveIntChecks (bool 'value')  cil managed 
+           instance default void set_WarningLevel (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc863
-	// Code size 9 (0x9)
+        // Method begins at RVA 0xc1bb
+	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_removeintchecks
-	IL_0008:  ret 
-    } // end of method VbcTask::set_RemoveIntChecks
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.DotNet.Tasks.CscTask::_warningLevel
+	IL_000d:  ret 
+    } // end of method CscTask::set_WarningLevel
 
-    // method line 668
+    // method line 687
     .method public hidebysig specialname 
-           instance default string get_RootNamespace ()  cil managed 
+           instance default string get_Codepage ()  cil managed 
     {
-        // Method begins at RVA 0xc870
+        // Method begins at RVA 0xc1cc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.VbcTask::_rootNamespace
+	IL_0002:  ldfld string NAnt.DotNet.Tasks.CscTask::_codepage
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_RootNamespace
+    } // end of method CscTask::get_Codepage
 
-    // method line 669
+    // method line 688
     .method public hidebysig specialname 
-           instance default void set_RootNamespace (string 'value')  cil managed 
+           instance default void set_Codepage (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xc88b
+        // Method begins at RVA 0xc1e7
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
 	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.VbcTask::_rootNamespace
+	IL_0008:  stfld string NAnt.DotNet.Tasks.CscTask::_codepage
 	IL_000d:  ret 
-    } // end of method VbcTask::set_RootNamespace
+    } // end of method CscTask::set_Codepage
 
-    // method line 670
+    // method line 689
     .method public hidebysig specialname 
            instance default bool get_SupportsDocGeneration ()  cil managed 
     {
-        // Method begins at RVA 0xc89c
+        // Method begins at RVA 0xc1f8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_supportsDocGeneration
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_supportsDocGeneration
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_SupportsDocGeneration
+    } // end of method CscTask::get_SupportsDocGeneration
 
-    // method line 671
+    // method line 690
     .method public hidebysig specialname 
            instance default void set_SupportsDocGeneration (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xc8b7
+        // Method begins at RVA 0xc213
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_supportsDocGeneration
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_supportsDocGeneration
 	IL_0008:  ret 
-    } // end of method VbcTask::set_SupportsDocGeneration
+    } // end of method CscTask::set_SupportsDocGeneration
 
-    // method line 672
+    // method line 691
     .method public hidebysig specialname 
-           instance default bool get_SupportsNoStdLib ()  cil managed 
+           instance default bool get_SupportsPlatform ()  cil managed 
     {
-        // Method begins at RVA 0xc8c4
+        // Method begins at RVA 0xc220
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_supportsNoStdLib
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_supportsPlatform
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_SupportsNoStdLib
+    } // end of method CscTask::get_SupportsPlatform
 
-    // method line 673
+    // method line 692
     .method public hidebysig specialname 
-           instance default void set_SupportsNoStdLib (bool 'value')  cil managed 
+           instance default void set_SupportsPlatform (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xc8df
+        // Method begins at RVA 0xc23b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_supportsNoStdLib
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_supportsPlatform
 	IL_0008:  ret 
-    } // end of method VbcTask::set_SupportsNoStdLib
+    } // end of method CscTask::set_SupportsPlatform
 
-    // method line 674
+    // method line 693
     .method public hidebysig specialname 
-           instance default bool get_SupportsPlatform ()  cil managed 
+           instance default bool get_SupportsLangVersion ()  cil managed 
     {
-        // Method begins at RVA 0xc8ec
+        // Method begins at RVA 0xc248
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.VbcTask::_supportsPlatform
+	IL_0002:  ldfld bool NAnt.DotNet.Tasks.CscTask::_supportsLangVersion
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VbcTask::get_SupportsPlatform
+    } // end of method CscTask::get_SupportsLangVersion
 
-    // method line 675
+    // method line 694
     .method public hidebysig specialname 
-           instance default void set_SupportsPlatform (bool 'value')  cil managed 
+           instance default void set_SupportsLangVersion (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xc907
+        // Method begins at RVA 0xc263
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.VbcTask::_supportsPlatform
+	IL_0003:  stfld bool NAnt.DotNet.Tasks.CscTask::_supportsLangVersion
 	IL_0008:  ret 
-    } // end of method VbcTask::set_SupportsPlatform
-
-    // method line 676
-    .method family virtual hidebysig 
-           instance default class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage GetResourceLinkage (string dependentFile, class [mscorlib]System.Globalization.CultureInfo resourceCulture)  cil managed 
-    {
-        // Method begins at RVA 0xc914
-	// Code size 105 (0x69)
-	.maxstack 4
-	.locals init (
-		class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage	V_0,
-		class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  call instance class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage class NAnt.DotNet.Tasks.CompilerBase::GetResourceLinkage(string, class [mscorlib]System.Globalization.CultureInfo)
-	IL_0009:  stloc.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  brfalse IL_0060
-
-	IL_0010:  nop 
-	IL_0011:  ldarg.0 
-	IL_0012:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_RootNamespace()
-	IL_0017:  call bool string::IsNullOrEmpty(string)
-	IL_001c:  brtrue IL_005f
-
-	IL_0021:  nop 
-	IL_0022:  ldloc.0 
-	IL_0023:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_HasNamespaceName()
-	IL_0028:  brfalse IL_0050
-
-	IL_002d:  nop 
-	IL_002e:  ldloc.0 
-	IL_002f:  ldarg.0 
-	IL_0030:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_RootNamespace()
-	IL_0035:  ldstr "."
-	IL_003a:  ldloc.0 
-	IL_003b:  callvirt instance string class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::get_NamespaceName()
-	IL_0040:  call string string::Concat(string, string, string)
-	IL_0045:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::set_NamespaceName(string)
-	IL_004a:  nop 
-	IL_004b:  br IL_005e
-
-	IL_0050:  nop 
-	IL_0051:  ldloc.0 
-	IL_0052:  ldarg.0 
-	IL_0053:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_RootNamespace()
-	IL_0058:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase/ResourceLinkage::set_NamespaceName(string)
-	IL_005d:  nop 
-	IL_005e:  nop 
-	IL_005f:  nop 
-	IL_0060:  ldloc.0 
-	IL_0061:  stloc.1 
-	IL_0062:  br IL_0067
-
-	IL_0067:  ldloc.1 
-	IL_0068:  ret 
-    } // end of method VbcTask::GetResourceLinkage
-
-    // method line 677
-    .method family virtual hidebysig 
-           instance default void WriteConditionalCompilationConstants (class [mscorlib]System.IO.TextWriter writer)  cil managed 
-    {
-        // Method begins at RVA 0xc98c
-	// Code size 72 (0x48)
-	.maxstack 4
-	.locals init (
-		string[]	V_0,
-		string	V_1,
-		string[]	V_2,
-		int32	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_Define()
-	IL_0007:  brfalse IL_0047
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_Define()
-	IL_0013:  ldc.i4.s 0x2c
-	IL_0015:  ldc.i4.0 
-	IL_0016:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	IL_001b:  stloc.0 
-	IL_001c:  nop 
-	IL_001d:  ldloc.0 
-	IL_001e:  stloc.2 
-	IL_001f:  ldc.i4.0 
-	IL_0020:  stloc.3 
-	IL_0021:  br IL_003d
-
-	IL_0026:  ldloc.2 
-	IL_0027:  ldloc.3 
-	IL_0028:  ldelem.ref 
-	IL_0029:  stloc.1 
-	IL_002a:  nop 
-	IL_002b:  ldarg.0 
-	IL_002c:  ldarg.1 
-	IL_002d:  ldstr "define"
-	IL_0032:  ldloc.1 
-	IL_0033:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_0038:  nop 
-	IL_0039:  ldloc.3 
-	IL_003a:  ldc.i4.1 
-	IL_003b:  add 
-	IL_003c:  stloc.3 
-	IL_003d:  ldloc.3 
-	IL_003e:  ldloc.2 
-	IL_003f:  ldlen 
-	IL_0040:  conv.i4 
-	IL_0041:  blt IL_0026
-
-	IL_0046:  nop 
-	IL_0047:  ret 
-    } // end of method VbcTask::WriteConditionalCompilationConstants
+    } // end of method CscTask::set_SupportsLangVersion
 
-    // method line 678
+    // method line 695
     .method family virtual hidebysig 
            instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0xc9e0
-	// Code size 840 (0x348)
+        // Method begins at RVA 0xc270
+	// Code size 812 (0x32c)
 	.maxstack 7
 	.locals init (
 		valuetype NAnt.DotNet.Types.DebugOutput	V_0,
-		string	V_1)
+		int32	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_BaseAddress()
-	IL_0007:  brfalse IL_0020
-
-	IL_000c:  nop 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldstr "fullpaths"
+	IL_0008:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
 	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.1 
-	IL_000f:  ldstr "baseaddress"
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_BaseAddress()
-	IL_001a:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_001f:  nop 
-	IL_0020:  ldarg.0 
-	IL_0021:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.VbcTask::get_DocFile()
-	IL_0026:  brfalse IL_0086
+	IL_000e:  call instance string class NAnt.DotNet.Tasks.CscTask::get_BaseAddress()
+	IL_0013:  brfalse IL_002c
 
+	IL_0018:  nop 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldarg.1 
+	IL_001b:  ldstr "baseaddress"
+	IL_0020:  ldarg.0 
+	IL_0021:  call instance string class NAnt.DotNet.Tasks.CscTask::get_BaseAddress()
+	IL_0026:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
 	IL_002b:  nop 
 	IL_002c:  ldarg.0 
-	IL_002d:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_SupportsDocGeneration()
-	IL_0032:  brfalse IL_0055
+	IL_002d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CscTask::get_DocFile()
+	IL_0032:  brfalse IL_0092
 
 	IL_0037:  nop 
 	IL_0038:  ldarg.0 
-	IL_0039:  ldarg.1 
-	IL_003a:  ldstr "doc"
-	IL_003f:  ldarg.0 
-	IL_0040:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.VbcTask::get_DocFile()
-	IL_0045:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_004a:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_004f:  nop 
-	IL_0050:  br IL_0085
+	IL_0039:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_SupportsDocGeneration()
+	IL_003e:  brfalse IL_0061
 
-	IL_0055:  nop 
-	IL_0056:  ldarg.0 
-	IL_0057:  ldc.i4 4000
-	IL_005c:  ldstr "String_CompilerDoesNotSupportXmlDoc"
-	IL_0061:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0066:  ldc.i4.1 
-	IL_0067:  newarr [mscorlib]System.Object
-	IL_006c:  dup 
-	IL_006d:  ldc.i4.0 
-	IL_006e:  ldarg.0 
-	IL_006f:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0074:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0079:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	IL_007e:  stelem.ref 
-	IL_007f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0084:  nop 
-	IL_0085:  nop 
-	IL_0086:  ldarg.0 
-	IL_0087:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_NoStdLib()
-	IL_008c:  brfalse IL_00e1
+	IL_0043:  nop 
+	IL_0044:  ldarg.0 
+	IL_0045:  ldarg.1 
+	IL_0046:  ldstr "doc"
+	IL_004b:  ldarg.0 
+	IL_004c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CscTask::get_DocFile()
+	IL_0051:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0056:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_005b:  nop 
+	IL_005c:  br IL_0091
 
+	IL_0061:  nop 
+	IL_0062:  ldarg.0 
+	IL_0063:  ldc.i4 4000
+	IL_0068:  ldstr "String_CompilerDoesNotSupportXmlDoc"
+	IL_006d:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0072:  ldc.i4.1 
+	IL_0073:  newarr [mscorlib]System.Object
+	IL_0078:  dup 
+	IL_0079:  ldc.i4.0 
+	IL_007a:  ldarg.0 
+	IL_007b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0080:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0085:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	IL_008a:  stelem.ref 
+	IL_008b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0090:  nop 
 	IL_0091:  nop 
 	IL_0092:  ldarg.0 
-	IL_0093:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_SupportsNoStdLib()
-	IL_0098:  brfalse IL_00b0
+	IL_0093:  call instance string class NAnt.DotNet.Tasks.CscTask::get_LangVersion()
+	IL_0098:  brfalse IL_00f3
 
 	IL_009d:  nop 
 	IL_009e:  ldarg.0 
-	IL_009f:  ldarg.1 
-	IL_00a0:  ldstr "nostdlib"
-	IL_00a5:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_00aa:  nop 
-	IL_00ab:  br IL_00e0
+	IL_009f:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_SupportsLangVersion()
+	IL_00a4:  brfalse IL_00c2
 
-	IL_00b0:  nop 
+	IL_00a9:  nop 
+	IL_00aa:  ldarg.0 
+	IL_00ab:  ldarg.1 
+	IL_00ac:  ldstr "langversion"
 	IL_00b1:  ldarg.0 
-	IL_00b2:  ldc.i4 4000
-	IL_00b7:  ldstr "String_CompilerDoesNotSupportNoStdLib"
-	IL_00bc:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00c1:  ldc.i4.1 
-	IL_00c2:  newarr [mscorlib]System.Object
-	IL_00c7:  dup 
-	IL_00c8:  ldc.i4.0 
-	IL_00c9:  ldarg.0 
-	IL_00ca:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_00cf:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_00d4:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	IL_00d9:  stelem.ref 
-	IL_00da:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00df:  nop 
-	IL_00e0:  nop 
-	IL_00e1:  ldarg.0 
-	IL_00e2:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_Platform()
-	IL_00e7:  brfalse IL_0142
+	IL_00b2:  call instance string class NAnt.DotNet.Tasks.CscTask::get_LangVersion()
+	IL_00b7:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_00bc:  nop 
+	IL_00bd:  br IL_00f2
 
-	IL_00ec:  nop 
-	IL_00ed:  ldarg.0 
-	IL_00ee:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_SupportsPlatform()
-	IL_00f3:  brfalse IL_0111
+	IL_00c2:  nop 
+	IL_00c3:  ldarg.0 
+	IL_00c4:  ldc.i4 4000
+	IL_00c9:  ldstr "String_CompilerDoesNotSupportLangVersion"
+	IL_00ce:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00d3:  ldc.i4.1 
+	IL_00d4:  newarr [mscorlib]System.Object
+	IL_00d9:  dup 
+	IL_00da:  ldc.i4.0 
+	IL_00db:  ldarg.0 
+	IL_00dc:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_00e1:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_00e6:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	IL_00eb:  stelem.ref 
+	IL_00ec:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00f1:  nop 
+	IL_00f2:  nop 
+	IL_00f3:  ldarg.0 
+	IL_00f4:  call instance string class NAnt.DotNet.Tasks.CscTask::get_Platform()
+	IL_00f9:  brfalse IL_0154
 
-	IL_00f8:  nop 
-	IL_00f9:  ldarg.0 
-	IL_00fa:  ldarg.1 
-	IL_00fb:  ldstr "platform"
-	IL_0100:  ldarg.0 
-	IL_0101:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_Platform()
-	IL_0106:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_010b:  nop 
-	IL_010c:  br IL_0141
+	IL_00fe:  nop 
+	IL_00ff:  ldarg.0 
+	IL_0100:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_SupportsPlatform()
+	IL_0105:  brfalse IL_0123
 
-	IL_0111:  nop 
+	IL_010a:  nop 
+	IL_010b:  ldarg.0 
+	IL_010c:  ldarg.1 
+	IL_010d:  ldstr "platform"
 	IL_0112:  ldarg.0 
-	IL_0113:  ldc.i4 4000
-	IL_0118:  ldstr "String_CompilerDoesNotSupportPlatform"
-	IL_011d:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0122:  ldc.i4.1 
-	IL_0123:  newarr [mscorlib]System.Object
-	IL_0128:  dup 
-	IL_0129:  ldc.i4.0 
-	IL_012a:  ldarg.0 
-	IL_012b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0130:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0135:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	IL_013a:  stelem.ref 
-	IL_013b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0140:  nop 
-	IL_0141:  nop 
-	IL_0142:  ldarg.0 
-	IL_0143:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
-	IL_0148:  brfalse IL_0166
+	IL_0113:  call instance string class NAnt.DotNet.Tasks.CscTask::get_Platform()
+	IL_0118:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_011d:  nop 
+	IL_011e:  br IL_0153
 
-	IL_014d:  nop 
-	IL_014e:  ldarg.0 
-	IL_014f:  ldarg.1 
-	IL_0150:  ldstr "win32resource"
-	IL_0155:  ldarg.0 
-	IL_0156:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
-	IL_015b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0160:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_0165:  nop 
-	IL_0166:  ldarg.0 
-	IL_0167:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.VbcTask::get_DebugOutput()
-	IL_016c:  stloc.0 
-	IL_016d:  ldloc.0 
-	IL_016e:  switch (
-	  IL_0188,
-	  IL_018d,
-	  IL_01c0,
-	  IL_01d1)
-	IL_0183:  br IL_01e7
+	IL_0123:  nop 
+	IL_0124:  ldarg.0 
+	IL_0125:  ldc.i4 4000
+	IL_012a:  ldstr "String_CompilerDoesNotSupportPlatform"
+	IL_012f:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0134:  ldc.i4.1 
+	IL_0135:  newarr [mscorlib]System.Object
+	IL_013a:  dup 
+	IL_013b:  ldc.i4.0 
+	IL_013c:  ldarg.0 
+	IL_013d:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0142:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0147:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	IL_014c:  stelem.ref 
+	IL_014d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0152:  nop 
+	IL_0153:  nop 
+	IL_0154:  ldarg.0 
+	IL_0155:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
+	IL_015a:  brfalse IL_0178
 
-	IL_0188:  br IL_0212
+	IL_015f:  nop 
+	IL_0160:  ldarg.0 
+	IL_0161:  ldarg.1 
+	IL_0162:  ldstr "win32res"
+	IL_0167:  ldarg.0 
+	IL_0168:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
+	IL_016d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0172:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_0177:  nop 
+	IL_0178:  ldarg.0 
+	IL_0179:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.CscTask::get_DebugOutput()
+	IL_017e:  stloc.0 
+	IL_017f:  ldloc.0 
+	IL_0180:  switch (
+	  IL_019a,
+	  IL_019f,
+	  IL_01d2,
+	  IL_01e3)
+	IL_0195:  br IL_01f9
 
-	IL_018d:  ldarg.0 
-	IL_018e:  ldarg.1 
-	IL_018f:  ldstr "debug"
-	IL_0194:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_0199:  ldarg.0 
-	IL_019a:  ldarg.1 
-	IL_019b:  ldstr "define"
-	IL_01a0:  ldstr "DEBUG=True"
-	IL_01a5:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_01aa:  ldarg.0 
-	IL_01ab:  ldarg.1 
-	IL_01ac:  ldstr "define"
-	IL_01b1:  ldstr "TRACE=True"
-	IL_01b6:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_01bb:  br IL_0212
+	IL_019a:  br IL_0224
 
-	IL_01c0:  ldarg.0 
-	IL_01c1:  ldarg.1 
-	IL_01c2:  ldstr "debug"
-	IL_01c7:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_01cc:  br IL_0212
+	IL_019f:  ldarg.0 
+	IL_01a0:  ldarg.1 
+	IL_01a1:  ldstr "debug"
+	IL_01a6:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_01ab:  ldarg.0 
+	IL_01ac:  ldarg.1 
+	IL_01ad:  ldstr "define"
+	IL_01b2:  ldstr "DEBUG"
+	IL_01b7:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_01bc:  ldarg.0 
+	IL_01bd:  ldarg.1 
+	IL_01be:  ldstr "define"
+	IL_01c3:  ldstr "TRACE"
+	IL_01c8:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_01cd:  br IL_0224
 
-	IL_01d1:  ldarg.0 
-	IL_01d2:  ldarg.1 
-	IL_01d3:  ldstr "debug"
-	IL_01d8:  ldstr "pdbonly"
-	IL_01dd:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_01e2:  br IL_0212
+	IL_01d2:  ldarg.0 
+	IL_01d3:  ldarg.1 
+	IL_01d4:  ldstr "debug"
+	IL_01d9:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_01de:  br IL_0224
 
-	IL_01e7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01ec:  ldstr "NA2011"
-	IL_01f1:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_01f6:  ldarg.0 
-	IL_01f7:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.VbcTask::get_DebugOutput()
-	IL_01fc:  box NAnt.DotNet.Types.DebugOutput
-	IL_0201:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0206:  ldarg.0 
-	IL_0207:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_020c:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0211:  throw 
-	IL_0212:  ldarg.0 
-	IL_0213:  call instance class NAnt.DotNet.Types.NamespaceImportCollection class NAnt.DotNet.Tasks.VbcTask::get_Imports()
-	IL_0218:  callvirt instance string object::ToString()
-	IL_021d:  stloc.1 
-	IL_021e:  ldloc.1 
-	IL_021f:  call bool string::IsNullOrEmpty(string)
-	IL_0224:  brtrue IL_0238
+	IL_01e3:  ldarg.0 
+	IL_01e4:  ldarg.1 
+	IL_01e5:  ldstr "debug"
+	IL_01ea:  ldstr "pdbonly"
+	IL_01ef:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_01f4:  br IL_0224
 
-	IL_0229:  nop 
-	IL_022a:  ldarg.0 
-	IL_022b:  ldarg.1 
-	IL_022c:  ldstr "imports"
-	IL_0231:  ldloc.1 
-	IL_0232:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_0237:  nop 
-	IL_0238:  ldarg.0 
-	IL_0239:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_OptionCompare()
-	IL_023e:  brfalse IL_0276
+	IL_01f9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01fe:  ldstr "NA2011"
+	IL_0203:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0208:  ldarg.0 
+	IL_0209:  call instance valuetype NAnt.DotNet.Types.DebugOutput class NAnt.DotNet.Tasks.CscTask::get_DebugOutput()
+	IL_020e:  box NAnt.DotNet.Types.DebugOutput
+	IL_0213:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0218:  ldarg.0 
+	IL_0219:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_021e:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0223:  throw 
+	IL_0224:  ldarg.0 
+	IL_0225:  call instance int32 class NAnt.DotNet.Tasks.CscTask::get_FileAlign()
+	IL_022a:  ldc.i4.0 
+	IL_022b:  ble IL_0251
 
-	IL_0243:  ldarg.0 
-	IL_0244:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_OptionCompare()
-	IL_0249:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_024e:  callvirt instance string string::ToUpper(class [mscorlib]System.Globalization.CultureInfo)
-	IL_0253:  ldstr "FALSE"
-	IL_0258:  call bool string::op_Inequality(string, string)
-	IL_025d:  brfalse IL_0276
+	IL_0230:  nop 
+	IL_0231:  ldarg.0 
+	IL_0232:  ldarg.1 
+	IL_0233:  ldstr "filealign"
+	IL_0238:  ldarg.0 
+	IL_0239:  call instance int32 class NAnt.DotNet.Tasks.CscTask::get_FileAlign()
+	IL_023e:  stloc.1 
+	IL_023f:  ldloca.s 1
+	IL_0241:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0246:  call instance string int32::ToString(class [mscorlib]System.IFormatProvider)
+	IL_024b:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_0250:  nop 
+	IL_0251:  ldarg.0 
+	IL_0252:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_NoStdLib()
+	IL_0257:  brfalse IL_026a
 
-	IL_0262:  nop 
-	IL_0263:  ldarg.0 
-	IL_0264:  ldarg.1 
-	IL_0265:  ldstr "optioncompare"
+	IL_025c:  nop 
+	IL_025d:  ldarg.0 
+	IL_025e:  ldarg.1 
+	IL_025f:  ldstr "nostdlib"
+	IL_0264:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_0269:  nop 
 	IL_026a:  ldarg.0 
-	IL_026b:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_OptionCompare()
-	IL_0270:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_026b:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_Checked()
+	IL_0270:  brfalse IL_0283
+
 	IL_0275:  nop 
 	IL_0276:  ldarg.0 
-	IL_0277:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_OptionExplicit()
-	IL_027c:  brfalse IL_028f
+	IL_0277:  ldarg.1 
+	IL_0278:  ldstr "checked"
+	IL_027d:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_0282:  nop 
+	IL_0283:  ldarg.0 
+	IL_0284:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_Unsafe()
+	IL_0289:  brfalse IL_029c
 
-	IL_0281:  nop 
-	IL_0282:  ldarg.0 
-	IL_0283:  ldarg.1 
-	IL_0284:  ldstr "optionexplicit"
-	IL_0289:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
 	IL_028e:  nop 
 	IL_028f:  ldarg.0 
-	IL_0290:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_OptionStrict()
-	IL_0295:  brfalse IL_02a8
+	IL_0290:  ldarg.1 
+	IL_0291:  ldstr "unsafe"
+	IL_0296:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_029b:  nop 
+	IL_029c:  ldarg.0 
+	IL_029d:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_Optimize()
+	IL_02a2:  brfalse IL_02b5
 
-	IL_029a:  nop 
-	IL_029b:  ldarg.0 
-	IL_029c:  ldarg.1 
-	IL_029d:  ldstr "optionstrict"
-	IL_02a2:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
 	IL_02a7:  nop 
 	IL_02a8:  ldarg.0 
-	IL_02a9:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_RemoveIntChecks()
-	IL_02ae:  brfalse IL_02c1
+	IL_02a9:  ldarg.1 
+	IL_02aa:  ldstr "optimize"
+	IL_02af:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
+	IL_02b4:  nop 
+	IL_02b5:  ldarg.0 
+	IL_02b6:  call instance string class NAnt.DotNet.Tasks.CscTask::get_WarningLevel()
+	IL_02bb:  brfalse IL_02d4
 
-	IL_02b3:  nop 
-	IL_02b4:  ldarg.0 
-	IL_02b5:  ldarg.1 
-	IL_02b6:  ldstr "removeintchecks"
-	IL_02bb:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
 	IL_02c0:  nop 
 	IL_02c1:  ldarg.0 
-	IL_02c2:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_OptionOptimize()
-	IL_02c7:  brfalse IL_02da
+	IL_02c2:  ldarg.1 
+	IL_02c3:  ldstr "warn"
+	IL_02c8:  ldarg.0 
+	IL_02c9:  call instance string class NAnt.DotNet.Tasks.CscTask::get_WarningLevel()
+	IL_02ce:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_02d3:  nop 
+	IL_02d4:  ldarg.0 
+	IL_02d5:  call instance string class NAnt.DotNet.Tasks.CscTask::get_Codepage()
+	IL_02da:  brfalse IL_02f3
 
-	IL_02cc:  nop 
-	IL_02cd:  ldarg.0 
-	IL_02ce:  ldarg.1 
-	IL_02cf:  ldstr "optimize"
-	IL_02d4:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_02d9:  nop 
-	IL_02da:  ldarg.0 
-	IL_02db:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_RootNamespace()
-	IL_02e0:  brfalse IL_02f9
+	IL_02df:  nop 
+	IL_02e0:  ldarg.0 
+	IL_02e1:  ldarg.1 
+	IL_02e2:  ldstr "codepage"
+	IL_02e7:  ldarg.0 
+	IL_02e8:  call instance string class NAnt.DotNet.Tasks.CscTask::get_Codepage()
+	IL_02ed:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
+	IL_02f2:  nop 
+	IL_02f3:  ldarg.0 
+	IL_02f4:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_NoConfig()
+	IL_02f9:  brfalse IL_032b
 
-	IL_02e5:  nop 
-	IL_02e6:  ldarg.0 
-	IL_02e7:  ldarg.1 
-	IL_02e8:  ldstr "rootnamespace"
-	IL_02ed:  ldarg.0 
-	IL_02ee:  call instance string class NAnt.DotNet.Tasks.VbcTask::get_RootNamespace()
-	IL_02f3:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_02f8:  nop 
-	IL_02f9:  ldarg.0 
-	IL_02fa:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_02ff:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0304:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Family()
-	IL_0309:  ldstr "netcf"
-	IL_030e:  call bool string::op_Equality(string, string)
-	IL_0313:  brfalse IL_0347
+	IL_02fe:  ldarg.0 
+	IL_02ff:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_0304:  ldstr "/noconfig"
+	IL_0309:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Contains(string)
+	IL_030e:  brtrue IL_032b
 
-	IL_0318:  nop 
-	IL_0319:  ldarg.0 
-	IL_031a:  ldarg.1 
-	IL_031b:  ldstr "netcf"
-	IL_0320:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_0325:  ldarg.0 
-	IL_0326:  ldarg.1 
-	IL_0327:  ldstr "sdkpath"
-	IL_032c:  ldarg.0 
-	IL_032d:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0332:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0337:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory()
-	IL_033c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0341:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_0346:  nop 
-	IL_0347:  ret 
-    } // end of method VbcTask::WriteOptions
+	IL_0313:  nop 
+	IL_0314:  ldarg.0 
+	IL_0315:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_031a:  ldstr "/noconfig"
+	IL_031f:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0324:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	IL_0329:  pop 
+	IL_032a:  nop 
+	IL_032b:  ret 
+    } // end of method CscTask::WriteOptions
 
-    // method line 679
+    // method line 696
     .method family virtual hidebysig 
            instance default bool NeedsCompiling ()  cil managed 
     {
-        // Method begins at RVA 0xcd34
-	// Code size 123 (0x7b)
+        // Method begins at RVA 0xc5a8
+	// Code size 118 (0x76)
 	.maxstack 7
 	.locals init (
 		bool	V_0)
@@ -24395,19 +23874,19 @@
 	IL_000c:  nop 
 	IL_000d:  ldc.i4.1 
 	IL_000e:  stloc.0 
-	IL_000f:  br IL_0079
+	IL_000f:  br IL_0074
 
 	IL_0014:  ldarg.0 
-	IL_0015:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.VbcTask::get_DocFile()
+	IL_0015:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CscTask::get_DocFile()
 	IL_001a:  brfalse IL_006d
 
 	IL_001f:  ldarg.0 
-	IL_0020:  call instance bool class NAnt.DotNet.Tasks.VbcTask::get_SupportsDocGeneration()
+	IL_0020:  call instance bool class NAnt.DotNet.Tasks.CscTask::get_SupportsDocGeneration()
 	IL_0025:  brfalse IL_006d
 
 	IL_002a:  nop 
 	IL_002b:  ldarg.0 
-	IL_002c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.VbcTask::get_DocFile()
+	IL_002c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CscTask::get_DocFile()
 	IL_0031:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
 	IL_0036:  brtrue IL_006c
 
@@ -24421,138 +23900,128 @@
 	IL_0052:  dup 
 	IL_0053:  ldc.i4.0 
 	IL_0054:  ldarg.0 
-	IL_0055:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.VbcTask::get_DocFile()
+	IL_0055:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CscTask::get_DocFile()
 	IL_005a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
 	IL_005f:  stelem.ref 
 	IL_0060:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
 	IL_0065:  ldc.i4.1 
 	IL_0066:  stloc.0 
-	IL_0067:  br IL_0079
+	IL_0067:  br IL_0074
 
 	IL_006c:  nop 
-	IL_006d:  ldarg.0 
-	IL_006e:  call instance bool class NAnt.DotNet.Tasks.CompilerBase::NeedsCompiling()
-	IL_0073:  stloc.0 
-	IL_0074:  br IL_0079
+	IL_006d:  ldc.i4.0 
+	IL_006e:  stloc.0 
+	IL_006f:  br IL_0074
 
-	IL_0079:  ldloc.0 
-	IL_007a:  ret 
-    } // end of method VbcTask::NeedsCompiling
+	IL_0074:  ldloc.0 
+	IL_0075:  ret 
+    } // end of method CscTask::NeedsCompiling
 
-    // method line 680
+    // method line 697
     .method public virtual hidebysig specialname 
            instance default string get_Extension ()  cil managed 
     {
-        // Method begins at RVA 0xcdbc
+        // Method begins at RVA 0xc62c
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldstr "vb"
+	IL_0001:  ldstr "cs"
 	IL_0006:  stloc.0 
 	IL_0007:  br IL_000c
 
 	IL_000c:  ldloc.0 
 	IL_000d:  ret 
-    } // end of method VbcTask::get_Extension
+    } // end of method CscTask::get_Extension
 
-    // method line 681
+    // method line 698
     .method family virtual hidebysig specialname 
            instance default class [System]System.Text.RegularExpressions.Regex get_ClassNameRegex ()  cil managed 
     {
-        // Method begins at RVA 0xcdd8
+        // Method begins at RVA 0xc648
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
 		class [System]System.Text.RegularExpressions.Regex	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VbcTask::_classNameRegex
+	IL_0001:  ldsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::_classNameRegex
 	IL_0006:  stloc.0 
 	IL_0007:  br IL_000c
 
 	IL_000c:  ldloc.0 
 	IL_000d:  ret 
-    } // end of method VbcTask::get_ClassNameRegex
+    } // end of method CscTask::get_ClassNameRegex
 
-    // method line 682
+    // method line 699
     .method family virtual hidebysig specialname 
            instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
     {
-        // Method begins at RVA 0xcdf4
+        // Method begins at RVA 0xc664
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
 		class [System]System.Text.RegularExpressions.Regex	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VbcTask::_namespaceRegex
+	IL_0001:  ldsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::_namespaceRegex
 	IL_0006:  stloc.0 
 	IL_0007:  br IL_000c
 
 	IL_000c:  ldloc.0 
 	IL_000d:  ret 
-    } // end of method VbcTask::get_NamespaceRegex
+    } // end of method CscTask::get_NamespaceRegex
 
-    // method line 683
+    // method line 700
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0xce0e
+        // Method begins at RVA 0xc67e
 	// Code size 31 (0x1f)
 	.maxstack 8
-	IL_0000:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.]+|Class\\s+(?<class>\\w+)|(?<keyword>\\w+))*"
+	IL_0000:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.\\{]+|class\\s+(?<class>\\w+)|(?<keyword>\\w+))*"
 	IL_0005:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
-	IL_000a:  stsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VbcTask::_classNameRegex
-	IL_000f:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.]+|Namespace\\s+(?<namespace>(\\w+(\\.\\w+)*)+)|(?<keyword>\\w+))*"
+	IL_000a:  stsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::_classNameRegex
+	IL_000f:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.\\{]+|namespace\\s+(?<namespace>(\\w+(\\.\\w+)*)+)|(?<keyword>\\w+))*"
 	IL_0014:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
-	IL_0019:  stsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VbcTask::_namespaceRegex
+	IL_0019:  stsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::_namespaceRegex
 	IL_001e:  ret 
-    } // end of method VbcTask::.cctor
+    } // end of method CscTask::.cctor
 
 	.property instance string BaseAddress ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
 		01 00 0B 62 61 73 65 61 64 64 72 65 73 73 00 00 ) // ...baseaddress..
 
-		.get instance default string NAnt.DotNet.Tasks.VbcTask::get_BaseAddress () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_BaseAddress (string 'value') 
+		.get instance default string NAnt.DotNet.Tasks.CscTask::get_BaseAddress () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_BaseAddress (string 'value') 
 	}
 	.property instance valuetype NAnt.DotNet.Types.DebugOutput DebugOutput ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 64 65 62 75 67 00 00 ) // ...debug..
 
-		.get instance default valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.VbcTask::get_DebugOutput () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value') 
+		.get instance default valuetype NAnt.DotNet.Types.DebugOutput NAnt.DotNet.Tasks.CscTask::get_DebugOutput () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_DebugOutput (valuetype NAnt.DotNet.Types.DebugOutput 'value') 
 	}
 	.property instance bool Debug ()
 	{
-		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_Debug () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_Debug (bool 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_Debug () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_Debug (bool 'value') 
 	}
 	.property instance class [mscorlib]System.IO.FileInfo DocFile ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 64 6F 63 00 00 ) // ...doc..
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.VbcTask::get_DocFile () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_DocFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.CscTask::get_DocFile () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_DocFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance string ImportsString ()
+	.property instance int32 FileAlign ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 69 6D 70 6F 72 74 73 00 00 ) // ...imports..
-
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 22 55 73 65 20 74 68 65 20 3C 69 6D 70 6F   // .."Use the <impo
-		72 74 73 3E 20 65 6C 65 6D 65 6E 74 20 69 6E 73   // rts> element ins
-		74 65 61 64 2E 00 00 00                         ) // tead....
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 66 69 6C 65 61 6C 69 67 6E 00 00 ) // ...filealign..
 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_ImportsString (string 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.NamespaceImportCollection Imports ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 69 6D 70 6F 72 74 73 00 00 ) // ...imports..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 02 00 00 00 20 00 00 00 00 ) // ....... ....
 
-		.get instance default class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.VbcTask::get_Imports () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value') 
+		.get instance default int32 NAnt.DotNet.Tasks.CscTask::get_FileAlign () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_FileAlign (int32 'value') 
 	}
 	.property instance bool NoStdLib ()
 	{
@@ -24562,77 +24031,79 @@
 
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_NoStdLib () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_NoStdLib (bool 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_NoStdLib () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_NoStdLib (bool 'value') 
 	}
-	.property instance string OptionCompare ()
+	.property instance bool NoConfig ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 6F 70 74 69 6F 6E 63 6F 6D 70 61 72 65   // ...optioncompare
-		00 00                                           ) // ..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (01 00 08 6E 6F 63 6F 6E 66 69 67 00 00 ) // ...noconfig..
 
-		.get instance default string NAnt.DotNet.Tasks.VbcTask::get_OptionCompare () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionCompare (string 'value') 
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 6E 6F 63 6F 6E 66 69 67 00 00 ) // ...noconfig..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_NoConfig () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_NoConfig (bool 'value') 
 	}
-	.property instance bool OptionExplicit ()
+	.property instance bool Checked ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0E 6F 70 74 69 6F 6E 65 78 70 6C 69 63 69   // ...optionexplici
-		74 00 00                                        ) // t..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 63 68 65 63 6B 65 64 00 00 ) // ...checked..
 
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_OptionExplicit () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionExplicit (bool 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_Checked () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_Checked (bool 'value') 
 	}
-	.property instance bool OptionOptimize ()
+	.property instance bool Unsafe ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0E 6F 70 74 69 6F 6E 6F 70 74 69 6D 69 7A   // ...optionoptimiz
-		65 00 00                                        ) // e..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 73 61 66 65 00 00 ) // ...unsafe..
 
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_OptionOptimize () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionOptimize (bool 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_Unsafe () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_Unsafe (bool 'value') 
 	}
-	.property instance bool OptionStrict ()
+	.property instance string LangVersion ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 6F 70 74 69 6F 6E 73 74 72 69 63 74 00   // ...optionstrict.
-		00                                              ) // .
+		01 00 0B 6C 61 6E 67 76 65 72 73 69 6F 6E 00 00 ) // ...langversion..
+
+		.get instance default string NAnt.DotNet.Tasks.CscTask::get_LangVersion () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_LangVersion (string 'value') 
+	}
+	.property instance bool Optimize ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 6F 70 74 69 6D 69 7A 65 00 00 ) // ...optimize..
 
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_OptionStrict () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_OptionStrict (bool 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_Optimize () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_Optimize (bool 'value') 
 	}
 	.property instance string Platform ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 70 6C 61 74 66 6F 72 6D 00 00 ) // ...platform..
 
-		.get instance default string NAnt.DotNet.Tasks.VbcTask::get_Platform () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_Platform (string 'value') 
+		.get instance default string NAnt.DotNet.Tasks.CscTask::get_Platform () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_Platform (string 'value') 
 	}
-	.property instance bool RemoveIntChecks ()
+	.property instance string WarningLevel ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0F 72 65 6D 6F 76 65 69 6E 74 63 68 65 63   // ...removeintchec
-		6B 73 00 00                                     ) // ks..
+		01 00 0C 77 61 72 6E 69 6E 67 6C 65 76 65 6C 00   // ...warninglevel.
+		00                                              ) // .
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 04 00 00 00 00 00 ) // ............
 
-		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_RemoveIntChecks () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_RemoveIntChecks (bool 'value') 
+		.get instance default string NAnt.DotNet.Tasks.CscTask::get_WarningLevel () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_WarningLevel (string 'value') 
 	}
-	.property instance string RootNamespace ()
+	.property instance string Codepage ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 72 6F 6F 74 6E 61 6D 65 73 70 61 63 65   // ...rootnamespace
-		00 00                                           ) // ..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 63 6F 64 65 70 61 67 65 00 00 ) // ...codepage..
 
-		.get instance default string NAnt.DotNet.Tasks.VbcTask::get_RootNamespace () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_RootNamespace (string 'value') 
+		.get instance default string NAnt.DotNet.Tasks.CscTask::get_Codepage () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_Codepage (string 'value') 
 	}
 	.property instance bool SupportsDocGeneration ()
 	{
@@ -24640,40 +24111,40 @@
 		01 00 15 73 75 70 70 6F 72 74 73 64 6F 63 67 65   // ...supportsdocge
 		6E 65 72 61 74 69 6F 6E 00 00                   ) // neration..
 
-		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_SupportsDocGeneration () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_SupportsDocGeneration (bool 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_SupportsDocGeneration () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_SupportsDocGeneration (bool 'value') 
 	}
-	.property instance bool SupportsNoStdLib ()
+	.property instance bool SupportsPlatform ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 10 73 75 70 70 6F 72 74 73 6E 6F 73 74 64   // ...supportsnostd
-		6C 69 62 00 00                                  ) // lib..
+		01 00 10 73 75 70 70 6F 72 74 73 70 6C 61 74 66   // ...supportsplatf
+		6F 72 6D 00 00                                  ) // orm..
 
-		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_SupportsNoStdLib () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_SupportsNoStdLib (bool 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_SupportsPlatform () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_SupportsPlatform (bool 'value') 
 	}
-	.property instance bool SupportsPlatform ()
+	.property instance bool SupportsLangVersion ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 10 73 75 70 70 6F 72 74 73 70 6C 61 74 66   // ...supportsplatf
-		6F 72 6D 00 00                                  ) // orm..
+		01 00 13 73 75 70 70 6F 72 74 73 6C 61 6E 67 76   // ...supportslangv
+		65 72 73 69 6F 6E 00 00                         ) // ersion..
 
-		.get instance default bool NAnt.DotNet.Tasks.VbcTask::get_SupportsPlatform () 
-		.set instance default void NAnt.DotNet.Tasks.VbcTask::set_SupportsPlatform (bool 'value') 
+		.get instance default bool NAnt.DotNet.Tasks.CscTask::get_SupportsLangVersion () 
+		.set instance default void NAnt.DotNet.Tasks.CscTask::set_SupportsLangVersion (bool 'value') 
 	}
 	.property instance string Extension ()
 	{
-		.get instance default string NAnt.DotNet.Tasks.VbcTask::get_Extension () 
+		.get instance default string NAnt.DotNet.Tasks.CscTask::get_Extension () 
 	}
 	.property instance class [System]System.Text.RegularExpressions.Regex ClassNameRegex ()
 	{
-		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VbcTask::get_ClassNameRegex () 
+		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::get_ClassNameRegex () 
 	}
 	.property instance class [System]System.Text.RegularExpressions.Regex NamespaceRegex ()
 	{
-		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.VbcTask::get_NamespaceRegex () 
+		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.CscTask::get_NamespaceRegex () 
 	}
-  } // end of class NAnt.DotNet.Tasks.VbcTask
+  } // end of class NAnt.DotNet.Tasks.CscTask
 }
 
 .namespace NAnt.DotNet.Tasks
@@ -24694,11 +24165,11 @@
     .field  private  bool _supportsAssemblyReferences
     .field  private  bool _hasCommandLineCompiler
 
-    // method line 684
+    // method line 701
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xce2e
+        // Method begins at RVA 0xc69e
 	// Code size 25 (0x19)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -24712,11 +24183,11 @@
 	IL_0018:  ret 
     } // end of method LicenseTask::.ctor
 
-    // method line 685
+    // method line 702
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_InputFile ()  cil managed 
     {
-        // Method begins at RVA 0xce48
+        // Method begins at RVA 0xc6b8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -24731,11 +24202,11 @@
 	IL_000e:  ret 
     } // end of method LicenseTask::get_InputFile
 
-    // method line 686
+    // method line 703
     .method public hidebysig specialname 
            instance default void set_InputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xce63
+        // Method begins at RVA 0xc6d3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -24745,11 +24216,11 @@
 	IL_0008:  ret 
     } // end of method LicenseTask::set_InputFile
 
-    // method line 687
+    // method line 704
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0xce70
+        // Method begins at RVA 0xc6e0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -24764,11 +24235,11 @@
 	IL_000e:  ret 
     } // end of method LicenseTask::get_OutputFile
 
-    // method line 688
+    // method line 705
     .method public hidebysig specialname 
            instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xce8b
+        // Method begins at RVA 0xc6fb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -24778,11 +24249,11 @@
 	IL_0008:  ret 
     } // end of method LicenseTask::set_OutputFile
 
-    // method line 689
+    // method line 706
     .method public hidebysig specialname 
            instance default class NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
     {
-        // Method begins at RVA 0xce98
+        // Method begins at RVA 0xc708
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -24797,11 +24268,11 @@
 	IL_000e:  ret 
     } // end of method LicenseTask::get_Assemblies
 
-    // method line 690
+    // method line 707
     .method public hidebysig specialname 
            instance default void set_Assemblies (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xceb3
+        // Method begins at RVA 0xc723
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -24811,11 +24282,11 @@
 	IL_0008:  ret 
     } // end of method LicenseTask::set_Assemblies
 
-    // method line 691
+    // method line 708
     .method public hidebysig specialname 
            instance default string get_LicenseTarget ()  cil managed 
     {
-        // Method begins at RVA 0xcec0
+        // Method begins at RVA 0xc730
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -24830,11 +24301,11 @@
 	IL_000e:  ret 
     } // end of method LicenseTask::get_LicenseTarget
 
-    // method line 692
+    // method line 709
     .method public hidebysig specialname 
            instance default void set_LicenseTarget (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xcedb
+        // Method begins at RVA 0xc74b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -24844,11 +24315,11 @@
 	IL_0008:  ret 
     } // end of method LicenseTask::set_LicenseTarget
 
-    // method line 693
+    // method line 710
     .method public hidebysig specialname 
            instance default string get_Target ()  cil managed 
     {
-        // Method begins at RVA 0xcee8
+        // Method begins at RVA 0xc758
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -24863,11 +24334,11 @@
 	IL_000e:  ret 
     } // end of method LicenseTask::get_Target
 
-    // method line 694
+    // method line 711
     .method public hidebysig specialname 
            instance default void set_Target (string 'value')  cil managed 
     {
-        // Method begins at RVA 0xcf03
+        // Method begins at RVA 0xc773
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -24878,11 +24349,11 @@
 	IL_000d:  ret 
     } // end of method LicenseTask::set_Target
 
-    // method line 695
+    // method line 712
     .method public hidebysig specialname 
            instance default bool get_SupportsAssemblyReferences ()  cil managed 
     {
-        // Method begins at RVA 0xcf14
+        // Method begins at RVA 0xc784
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -24897,11 +24368,11 @@
 	IL_000e:  ret 
     } // end of method LicenseTask::get_SupportsAssemblyReferences
 
-    // method line 696
+    // method line 713
     .method public hidebysig specialname 
            instance default void set_SupportsAssemblyReferences (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xcf2f
+        // Method begins at RVA 0xc79f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -24911,11 +24382,11 @@
 	IL_0008:  ret 
     } // end of method LicenseTask::set_SupportsAssemblyReferences
 
-    // method line 697
+    // method line 714
     .method public hidebysig specialname 
            instance default bool get_HasCommandLineCompiler ()  cil managed 
     {
-        // Method begins at RVA 0xcf3c
+        // Method begins at RVA 0xc7ac
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -24930,11 +24401,11 @@
 	IL_000e:  ret 
     } // end of method LicenseTask::get_HasCommandLineCompiler
 
-    // method line 698
+    // method line 715
     .method public hidebysig specialname 
            instance default void set_HasCommandLineCompiler (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0xcf57
+        // Method begins at RVA 0xc7c7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -24944,11 +24415,11 @@
 	IL_0008:  ret 
     } // end of method LicenseTask::set_HasCommandLineCompiler
 
-    // method line 699
+    // method line 716
     .method family virtual hidebysig 
            instance default void Initialize ()  cil managed 
     {
-        // Method begins at RVA 0xcf64
+        // Method begins at RVA 0xc7d4
 	// Code size 112 (0x70)
 	.maxstack 3
 	IL_0000:  nop 
@@ -24987,11 +24458,11 @@
 	IL_006f:  ret 
     } // end of method LicenseTask::Initialize
 
-    // method line 700
+    // method line 717
     .method public virtual hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0xcfe0
+        // Method begins at RVA 0xc850
 	// Code size 39 (0x27)
 	.maxstack 1
 	.locals init (
@@ -25016,11 +24487,11 @@
 	IL_0026:  ret 
     } // end of method LicenseTask::get_BaseDirectory
 
-    // method line 701
+    // method line 718
     .method public virtual hidebysig specialname 
            instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xd013
+        // Method begins at RVA 0xc883
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -25030,11 +24501,11 @@
 	IL_0008:  ret 
     } // end of method LicenseTask::set_BaseDirectory
 
-    // method line 702
+    // method line 719
     .method public virtual hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.ArgumentCollection get_Arguments ()  cil managed 
     {
-        // Method begins at RVA 0xd020
+        // Method begins at RVA 0xc890
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -25049,11 +24520,11 @@
 	IL_000e:  ret 
     } // end of method LicenseTask::get_Arguments
 
-    // method line 703
+    // method line 720
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0xd03c
+        // Method begins at RVA 0xc8ac
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
@@ -25067,11 +24538,11 @@
 	IL_000d:  ret 
     } // end of method LicenseTask::get_ProgramArguments
 
-    // method line 704
+    // method line 721
     .method public virtual hidebysig specialname 
            instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0xd058
+        // Method begins at RVA 0xc8c8
 	// Code size 40 (0x28)
 	.maxstack 2
 	.locals init (
@@ -25096,11 +24567,11 @@
 	IL_0027:  ret 
     } // end of method LicenseTask::get_ProgramFileName
 
-    // method line 705
+    // method line 722
     .method family virtual hidebysig 
            instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
     {
-        // Method begins at RVA 0xd08c
+        // Method begins at RVA 0xc8fc
 	// Code size 547 (0x223)
 	.maxstack 4
 	.locals init (
@@ -25319,11 +24790,11 @@
 	IL_0222:  ret 
     } // end of method LicenseTask::PrepareProcess
 
-    // method line 706
+    // method line 723
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0xd2e4
+        // Method begins at RVA 0xcb54
 	// Code size 724 (0x2d4)
 	.maxstack 9
 	.locals init (
@@ -25583,11 +25054,11 @@
 	IL_02d3:  ret 
     } // end of method LicenseTask::ExecuteTask
 
-    // method line 707
+    // method line 724
     .method private hidebysig 
            instance default bool NeedsCompiling (class [mscorlib]System.IO.FileInfo licensesFile)  cil managed 
     {
-        // Method begins at RVA 0xd5f8
+        // Method begins at RVA 0xce68
 	// Code size 214 (0xd6)
 	.maxstack 7
 	.locals init (
@@ -25776,11 +25247,11 @@
   	extends [mscorlib]System.MarshalByRefObject
   {
 
-    // method line 708
+    // method line 725
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xd6da
+        // Method begins at RVA 0xcf4a
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -25788,11 +25259,11 @@
 	IL_0006:  ret 
     } // end of method LicenseGatherer::.ctor
 
-    // method line 709
+    // method line 726
     .method public virtual hidebysig 
            instance default object InitializeLifetimeService ()  cil managed 
     {
-        // Method begins at RVA 0xd6e4
+        // Method begins at RVA 0xcf54
 	// Code size 47 (0x2f)
 	.maxstack 2
 	.locals init (
@@ -25821,11 +25292,11 @@
 	IL_002e:  ret 
     } // end of method LicenseGatherer::InitializeLifetimeService
 
-    // method line 710
+    // method line 727
     .method public hidebysig 
            instance default void CreateLicenseFile (class NAnt.DotNet.Tasks.LicenseTask licenseTask, string licensesFile)  cil managed 
     {
-        // Method begins at RVA 0xd720
+        // Method begins at RVA 0xcf90
 	// Code size 1071 (0x42f)
 	.maxstack 7
 	.locals init (
@@ -26279,11 +25750,11 @@
 	IL_042e:  ret 
     } // end of method LicenseGatherer::CreateLicenseFile
 
-    // method line 711
+    // method line 728
     .method private hidebysig 
            instance default bool IsSerializable (object 'value')  cil managed 
     {
-        // Method begins at RVA 0xdc38
+        // Method begins at RVA 0xd4a8
 	// Code size 49 (0x31)
 	.maxstack 3
 	.locals init (
@@ -26334,917 +25805,1446 @@
 
 .namespace NAnt.DotNet.Tasks
 {
-  .class public auto ansi beforefieldinit JscTask
-  	extends NAnt.DotNet.Tasks.CompilerBase
+  .class public auto ansi serializable beforefieldinit AssemblyInfoTask
+  	extends [NAnt.Core]NAnt.Core.Task
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 6A 73 63 00 00 ) // ...jsc..
-
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 00 00 00 00 00 00 ) // ........
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 61 73 6D 69 6E 66 6F 00 00 ) // ...asminfo..
 
-    .field  private  bool _autoRef
-    .field  private  bool _nostdlib
-    .field  private  string _warningLevel
-    .field  private  string _codepage
-    .field  private  string _platform
-    .field  private  bool _versionSafe
-    .field  private  bool _supportsPlatform
-    .field  private static  class [System]System.Text.RegularExpressions.Regex _classNameRegex
-    .field  private static  class [System]System.Text.RegularExpressions.Regex _namespaceRegex
+    .field  private  class [mscorlib]System.IO.FileInfo _output
+    .field  private  valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage _language
+    .field  private  class NAnt.DotNet.Types.AssemblyAttributeCollection _attributes
+    .field  private  class NAnt.DotNet.Types.NamespaceImportCollection _imports
+    .field  private  class NAnt.DotNet.Types.AssemblyFileSet _references
 
-    // method line 712
+    // method line 729
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0xdc94
-	// Code size 7 (0x7)
+        // Method begins at RVA 0xd504
+	// Code size 47 (0x2f)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.DotNet.Tasks.CompilerBase::'.ctor'()
-	IL_0006:  ret 
-    } // end of method JscTask::.ctor
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage NAnt.DotNet.Tasks.AssemblyInfoTask::_language
+	IL_0007:  ldarg.0 
+	IL_0008:  newobj instance void class NAnt.DotNet.Types.AssemblyAttributeCollection::'.ctor'()
+	IL_000d:  stfld class NAnt.DotNet.Types.AssemblyAttributeCollection NAnt.DotNet.Tasks.AssemblyInfoTask::_attributes
+	IL_0012:  ldarg.0 
+	IL_0013:  newobj instance void class NAnt.DotNet.Types.NamespaceImportCollection::'.ctor'()
+	IL_0018:  stfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.AssemblyInfoTask::_imports
+	IL_001d:  ldarg.0 
+	IL_001e:  newobj instance void class NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
+	IL_0023:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.AssemblyInfoTask::_references
+	IL_0028:  ldarg.0 
+	IL_0029:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
+	IL_002e:  ret 
+    } // end of method AssemblyInfoTask::.ctor
 
-    // method line 713
+    // method line 730
     .method public hidebysig specialname 
-           instance default bool get_AutoRef ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_Output ()  cil managed 
     {
-        // Method begins at RVA 0xdc9c
+        // Method begins at RVA 0xd534
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.JscTask::_autoRef
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyInfoTask::_output
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JscTask::get_AutoRef
+    } // end of method AssemblyInfoTask::get_Output
 
-    // method line 714
+    // method line 731
     .method public hidebysig specialname 
-           instance default void set_AutoRef (bool 'value')  cil managed 
+           instance default void set_Output (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0xdcb7
+        // Method begins at RVA 0xd54f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.JscTask::_autoRef
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyInfoTask::_output
 	IL_0008:  ret 
-    } // end of method JscTask::set_AutoRef
+    } // end of method AssemblyInfoTask::set_Output
 
-    // method line 715
+    // method line 732
     .method public hidebysig specialname 
-           instance default bool get_NoStdLib ()  cil managed 
+           instance default valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage get_Language ()  cil managed 
     {
-        // Method begins at RVA 0xdcc4
+        // Method begins at RVA 0xd55c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.JscTask::_nostdlib
+	IL_0002:  ldfld valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage NAnt.DotNet.Tasks.AssemblyInfoTask::_language
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JscTask::get_NoStdLib
+    } // end of method AssemblyInfoTask::get_Language
 
-    // method line 716
+    // method line 733
     .method public hidebysig specialname 
-           instance default void set_NoStdLib (bool 'value')  cil managed 
+           instance default void set_Language (valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage 'value')  cil managed 
     {
-        // Method begins at RVA 0xdcdf
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0xd578
+	// Code size 70 (0x46)
+	.maxstack 3
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.JscTask::_nostdlib
-	IL_0008:  ret 
-    } // end of method JscTask::set_NoStdLib
+	IL_0001:  ldtoken NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage
+	IL_0006:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000b:  ldarg.1 
+	IL_000c:  box NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage
+	IL_0011:  call bool class [mscorlib]System.Enum::IsDefined(class [mscorlib]System.Type, object)
+	IL_0016:  brtrue IL_003c
 
-    // method line 717
+	IL_001b:  nop 
+	IL_001c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0021:  ldstr "NA2002"
+	IL_0026:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_002b:  ldarg.1 
+	IL_002c:  box NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage
+	IL_0031:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0036:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_003b:  throw 
+	IL_003c:  nop 
+	IL_003d:  ldarg.0 
+	IL_003e:  ldarg.1 
+	IL_003f:  stfld valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage NAnt.DotNet.Tasks.AssemblyInfoTask::_language
+	IL_0044:  nop 
+	IL_0045:  ret 
+    } // end of method AssemblyInfoTask::set_Language
+
+    // method line 734
     .method public hidebysig specialname 
-           instance default string get_Platform ()  cil managed 
+           instance default class NAnt.DotNet.Types.AssemblyAttributeCollection get_AssemblyAttributes ()  cil managed 
     {
-        // Method begins at RVA 0xdcec
+        // Method begins at RVA 0xd5cc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.DotNet.Types.AssemblyAttributeCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.JscTask::_platform
+	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyAttributeCollection NAnt.DotNet.Tasks.AssemblyInfoTask::_attributes
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JscTask::get_Platform
-
-    // method line 718
-    .method public hidebysig specialname 
-           instance default void set_Platform (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xdd07
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.JscTask::_platform
-	IL_000d:  ret 
-    } // end of method JscTask::set_Platform
+    } // end of method AssemblyInfoTask::get_AssemblyAttributes
 
-    // method line 719
+    // method line 735
     .method public hidebysig specialname 
-           instance default bool get_VersionSafe ()  cil managed 
+           instance default class NAnt.DotNet.Types.NamespaceImportCollection get_Imports ()  cil managed 
     {
-        // Method begins at RVA 0xdd18
+        // Method begins at RVA 0xd5e8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.DotNet.Types.NamespaceImportCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.JscTask::_versionSafe
+	IL_0002:  ldfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.AssemblyInfoTask::_imports
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JscTask::get_VersionSafe
+    } // end of method AssemblyInfoTask::get_Imports
 
-    // method line 720
+    // method line 736
     .method public hidebysig specialname 
-           instance default void set_VersionSafe (bool 'value')  cil managed 
+           instance default void set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0xdd33
+        // Method begins at RVA 0xd603
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.JscTask::_versionSafe
+	IL_0003:  stfld class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.AssemblyInfoTask::_imports
 	IL_0008:  ret 
-    } // end of method JscTask::set_VersionSafe
+    } // end of method AssemblyInfoTask::set_Imports
 
-    // method line 721
+    // method line 737
     .method public hidebysig specialname 
-           instance default string get_WarningLevel ()  cil managed 
+           instance default class NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
     {
-        // Method begins at RVA 0xdd40
+        // Method begins at RVA 0xd610
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.DotNet.Types.AssemblyFileSet	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.JscTask::_warningLevel
+	IL_0002:  ldfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.AssemblyInfoTask::_references
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JscTask::get_WarningLevel
+    } // end of method AssemblyInfoTask::get_References
 
-    // method line 722
+    // method line 738
     .method public hidebysig specialname 
-           instance default void set_WarningLevel (string 'value')  cil managed 
+           instance default void set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0xdd5b
-	// Code size 14 (0xe)
+        // Method begins at RVA 0xd62b
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.JscTask::_warningLevel
-	IL_000d:  ret 
-    } // end of method JscTask::set_WarningLevel
+	IL_0003:  stfld class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.AssemblyInfoTask::_references
+	IL_0008:  ret 
+    } // end of method AssemblyInfoTask::set_References
 
-    // method line 723
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.DotNet.Types.WarningAsError get_WarningAsError ()  cil managed 
+    // method line 739
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0xdd6c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xd638
+	// Code size 512 (0x200)
+	.maxstack 7
 	.locals init (
-		class NAnt.DotNet.Types.WarningAsError	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		class NAnt.DotNet.Types.NamespaceImport	V_1,
+		class NAnt.DotNet.Types.NamespaceImportEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		class [mscorlib]System.IO.MemoryStream	V_4,
+		class [mscorlib]System.IO.StreamWriter	V_5,
+		class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider	V_6,
+		class [mscorlib]System.IO.FileStream	V_7,
+		unsigned int8[]	V_8,
+		class [mscorlib]System.Exception	V_9)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.DotNet.Types.WarningAsError class NAnt.DotNet.Tasks.CompilerBase::get_WarningAsError()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	.try { // 3
+	  IL_0001:  nop 
+	  IL_0002:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	  IL_0007:  stloc.0 
+	  IL_0008:  nop 
+	  IL_0009:  ldarg.0 
+	  IL_000a:  call instance class NAnt.DotNet.Types.NamespaceImportCollection class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Imports()
+	  IL_000f:  callvirt instance class NAnt.DotNet.Types.NamespaceImportEnumerator class NAnt.DotNet.Types.NamespaceImportCollection::GetEnumerator()
+	  IL_0014:  stloc.2 
+	  .try { // 0
+	    IL_0015:  br IL_0048
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method JscTask::get_WarningAsError
+	    IL_001a:  ldloc.2 
+	    IL_001b:  callvirt instance class NAnt.DotNet.Types.NamespaceImport class NAnt.DotNet.Types.NamespaceImportEnumerator::get_Current()
+	    IL_0020:  stloc.1 
+	    IL_0021:  nop 
+	    IL_0022:  ldloc.1 
+	    IL_0023:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImport::get_IfDefined()
+	    IL_0028:  brfalse IL_0047
 
-    // method line 724
-    .method public virtual hidebysig specialname 
-           instance default string get_NoWarn ()  cil managed 
-    {
-        // Method begins at RVA 0xdd88
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_NoWarn()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	    IL_002d:  ldloc.1 
+	    IL_002e:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImport::get_UnlessDefined()
+	    IL_0033:  brtrue IL_0047
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method JscTask::get_NoWarn
+	    IL_0038:  nop 
+	    IL_0039:  ldloc.0 
+	    IL_003a:  ldloc.1 
+	    IL_003b:  callvirt instance string class NAnt.DotNet.Types.NamespaceImport::get_Namespace()
+	    IL_0040:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_0045:  pop 
+	    IL_0046:  nop 
+	    IL_0047:  nop 
+	    IL_0048:  ldloc.2 
+	    IL_0049:  callvirt instance bool class NAnt.DotNet.Types.NamespaceImportEnumerator::MoveNext()
+	    IL_004e:  brtrue IL_001a
 
-    // method line 725
-    .method public virtual hidebysig specialname 
-           instance default void set_NoWarn (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xdda3
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Tasks.CompilerBase::set_NoWarn(string)
-	IL_0008:  ret 
-    } // end of method JscTask::set_NoWarn
+	    IL_0053:  leave IL_006c
 
-    // method line 726
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.DotNet.Types.CompilerWarningCollection get_SuppressWarnings ()  cil managed 
-    {
-        // Method begins at RVA 0xddb0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.DotNet.Types.CompilerWarningCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.DotNet.Types.CompilerWarningCollection class NAnt.DotNet.Tasks.CompilerBase::get_SuppressWarnings()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  } // end .try 0
+	  finally  { // 0
+	    IL_0058:  ldloc.2 
+	    IL_0059:  isinst [mscorlib]System.IDisposable
+	    IL_005e:  dup 
+	    IL_005f:  stloc.3 
+	    IL_0060:  brfalse IL_006b
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method JscTask::get_SuppressWarnings
+	    IL_0065:  ldloc.3 
+	    IL_0066:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_006b:  endfinally 
+	  } // end handler 0
+	  IL_006c:  ldarg.0 
+	  IL_006d:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.AssemblyInfoTask::get_References()
+	  IL_0072:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	  IL_0077:  brtrue IL_0099
 
-    // method line 727
-    .method public hidebysig specialname 
-           instance default string get_Codepage ()  cil managed 
-    {
-        // Method begins at RVA 0xddcc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.DotNet.Tasks.JscTask::_codepage
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_007c:  nop 
+	  IL_007d:  ldarg.0 
+	  IL_007e:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.AssemblyInfoTask::get_References()
+	  IL_0083:  ldarg.0 
+	  IL_0084:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_0089:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	  IL_008e:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	  IL_0093:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	  IL_0098:  nop 
+	  IL_0099:  newobj instance void class [mscorlib]System.IO.MemoryStream::'.ctor'()
+	  IL_009e:  stloc.s 4
+	  IL_00a0:  ldloc.s 4
+	  IL_00a2:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
+	  IL_00a7:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(class [mscorlib]System.IO.Stream, class [mscorlib]System.Text.Encoding)
+	  IL_00ac:  stloc.s 5
+	  .try { // 2
+	    IL_00ae:  nop 
+	    IL_00af:  ldarg.0 
+	    IL_00b0:  ldarg.0 
+	    IL_00b1:  call instance valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Language()
+	    IL_00b6:  newobj instance void class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::'.ctor'(class NAnt.DotNet.Tasks.AssemblyInfoTask, valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage)
+	    IL_00bb:  stloc.s 6
+	    IL_00bd:  ldarg.0 
+	    IL_00be:  call instance valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Language()
+	    IL_00c3:  brtrue IL_00d4
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method JscTask::get_Codepage
+	    IL_00c8:  nop 
+	    IL_00c9:  ldloc.s 6
+	    IL_00cb:  ldloc.0 
+	    IL_00cc:  ldloc.s 5
+	    IL_00ce:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::GenerateImportCode(class [System]System.Collections.Specialized.StringCollection, class [mscorlib]System.IO.TextWriter)
+	    IL_00d3:  nop 
+	    IL_00d4:  ldloc.s 6
+	    IL_00d6:  ldarg.0 
+	    IL_00d7:  call instance class NAnt.DotNet.Types.AssemblyAttributeCollection class NAnt.DotNet.Tasks.AssemblyInfoTask::get_AssemblyAttributes()
+	    IL_00dc:  ldloc.0 
+	    IL_00dd:  ldarg.0 
+	    IL_00de:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.AssemblyInfoTask::get_References()
+	    IL_00e3:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	    IL_00e8:  ldloc.s 5
+	    IL_00ea:  callvirt instance void class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::GenerateAssemblyAttributesCode(class NAnt.DotNet.Types.AssemblyAttributeCollection, class [System]System.Collections.Specialized.StringCollection, class [System]System.Collections.Specialized.StringCollection, class [mscorlib]System.IO.TextWriter)
+	    IL_00ef:  ldloc.s 5
+	    IL_00f1:  callvirt instance void class [mscorlib]System.IO.TextWriter::Flush()
+	    IL_00f6:  ldarg.0 
+	    IL_00f7:  ldloc.s 4
+	    IL_00f9:  call instance bool class NAnt.DotNet.Tasks.AssemblyInfoTask::NeedsPersisting(class [mscorlib]System.IO.Stream)
+	    IL_00fe:  brfalse IL_0189
 
-    // method line 728
-    .method public hidebysig specialname 
-           instance default void set_Codepage (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xdde7
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.DotNet.Tasks.JscTask::_codepage
-	IL_000d:  ret 
-    } // end of method JscTask::set_Codepage
+	    IL_0103:  nop 
+	    IL_0104:  ldarg.0 
+	    IL_0105:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
+	    IL_010a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	    IL_010f:  ldc.i4.2 
+	    IL_0110:  ldc.i4.2 
+	    IL_0111:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode, valuetype [mscorlib]System.IO.FileAccess)
+	    IL_0116:  stloc.s 7
+	    .try { // 1
+	      IL_0118:  nop 
+	      IL_0119:  ldloc.s 4
+	      IL_011b:  callvirt instance unsigned int8[] class [mscorlib]System.IO.MemoryStream::ToArray()
+	      IL_0120:  stloc.s 8
+	      IL_0122:  ldloc.s 7
+	      IL_0124:  ldloc.s 8
+	      IL_0126:  ldc.i4.0 
+	      IL_0127:  ldloc.s 8
+	      IL_0129:  ldlen 
+	      IL_012a:  conv.i4 
+	      IL_012b:  callvirt instance void class [mscorlib]System.IO.Stream::Write(unsigned int8[], int32, int32)
+	      IL_0130:  ldloc.s 7
+	      IL_0132:  callvirt instance void class [mscorlib]System.IO.Stream::Flush()
+	      IL_0137:  ldloc.s 7
+	      IL_0139:  callvirt instance void class [mscorlib]System.IO.Stream::Close()
+	      IL_013e:  ldloc.s 4
+	      IL_0140:  callvirt instance void class [mscorlib]System.IO.Stream::Close()
+	      IL_0145:  nop 
+	      IL_0146:  leave IL_015a
 
-    // method line 729
-    .method public virtual hidebysig specialname 
-           instance default string get_KeyContainer ()  cil managed 
-    {
-        // Method begins at RVA 0xddf8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.DotNet.Tasks.CompilerBase::get_KeyContainer()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	    } // end .try 1
+	    finally  { // 1
+	      IL_014b:  ldloc.s 7
+	      IL_014d:  brfalse IL_0159
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method JscTask::get_KeyContainer
+	      IL_0152:  ldloc.s 7
+	      IL_0154:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	      IL_0159:  endfinally 
+	    } // end handler 1
+	    IL_015a:  ldarg.0 
+	    IL_015b:  ldc.i4 3000
+	    IL_0160:  ldstr "String_GeneratedFile"
+	    IL_0165:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_016a:  ldc.i4.1 
+	    IL_016b:  newarr [mscorlib]System.Object
+	    IL_0170:  dup 
+	    IL_0171:  ldc.i4.0 
+	    IL_0172:  ldarg.0 
+	    IL_0173:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
+	    IL_0178:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	    IL_017d:  stelem.ref 
+	    IL_017e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	    IL_0183:  nop 
+	    IL_0184:  br IL_01b4
 
-    // method line 730
-    .method public virtual hidebysig specialname 
-           instance default void set_KeyContainer (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xde13
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Tasks.CompilerBase::set_KeyContainer(string)
-	IL_0008:  ret 
-    } // end of method JscTask::set_KeyContainer
+	    IL_0189:  nop 
+	    IL_018a:  ldarg.0 
+	    IL_018b:  ldc.i4 2000
+	    IL_0190:  ldstr "String_FileUpToDate"
+	    IL_0195:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_019a:  ldc.i4.1 
+	    IL_019b:  newarr [mscorlib]System.Object
+	    IL_01a0:  dup 
+	    IL_01a1:  ldc.i4.0 
+	    IL_01a2:  ldarg.0 
+	    IL_01a3:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
+	    IL_01a8:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	    IL_01ad:  stelem.ref 
+	    IL_01ae:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	    IL_01b3:  nop 
+	    IL_01b4:  nop 
+	    IL_01b5:  leave IL_01c9
 
-    // method line 731
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
-    {
-        // Method begins at RVA 0xde20
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_KeyFile()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  } // end .try 2
+	  finally  { // 2
+	    IL_01ba:  ldloc.s 5
+	    IL_01bc:  brfalse IL_01c8
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method JscTask::get_KeyFile
+	    IL_01c1:  ldloc.s 5
+	    IL_01c3:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_01c8:  endfinally 
+	  } // end handler 2
+	  IL_01c9:  nop 
+	  IL_01ca:  leave IL_01ff
 
-    // method line 732
-    .method public virtual hidebysig specialname 
-           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0xde3b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Tasks.CompilerBase::set_KeyFile(class [mscorlib]System.IO.FileInfo)
-	IL_0008:  ret 
-    } // end of method JscTask::set_KeyFile
+	} // end .try 3
+	catch class [mscorlib]System.Exception { // 3
+	  IL_01cf:  stloc.s 9
+	  IL_01d1:  nop 
+	  IL_01d2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_01d7:  ldstr "NA2004"
+	  IL_01dc:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_01e1:  ldarg.0 
+	  IL_01e2:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
+	  IL_01e7:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_01ec:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_01f1:  ldarg.0 
+	  IL_01f2:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	  IL_01f7:  ldloc.s 9
+	  IL_01f9:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_01fe:  throw 
+	} // end handler 3
+	IL_01ff:  ret 
+    } // end of method AssemblyInfoTask::ExecuteTask
 
-    // method line 733
-    .method public virtual hidebysig specialname 
-           instance default valuetype NAnt.DotNet.Types.DelaySign get_DelaySign ()  cil managed 
+    // method line 740
+    .method private hidebysig 
+           instance default bool NeedsPersisting (class [mscorlib]System.IO.Stream generatedAsmInfoStream)  cil managed 
     {
-        // Method begins at RVA 0xde48
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xd8a8
+	// Code size 230 (0xe6)
+	.maxstack 7
 	.locals init (
-		valuetype NAnt.DotNet.Types.DelaySign	V_0)
+		bool	V_0,
+		unsigned int8[]	V_1,
+		unsigned int8[]	V_2,
+		class [mscorlib]System.Security.Cryptography.SHA1	V_3,
+		class [mscorlib]System.IO.FileStream	V_4)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance valuetype NAnt.DotNet.Types.DelaySign class NAnt.DotNet.Tasks.CompilerBase::get_DelaySign()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
+	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_000c:  brtrue IL_0042
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method JscTask::get_DelaySign
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  ldc.i4 2000
+	IL_0018:  ldstr "String_OutputFileDoesNotExist"
+	IL_001d:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0022:  ldc.i4.1 
+	IL_0023:  newarr [mscorlib]System.Object
+	IL_0028:  dup 
+	IL_0029:  ldc.i4.0 
+	IL_002a:  ldarg.0 
+	IL_002b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
+	IL_0030:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0035:  stelem.ref 
+	IL_0036:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_003b:  ldc.i4.1 
+	IL_003c:  stloc.0 
+	IL_003d:  br IL_00e4
 
-    // method line 734
-    .method public virtual hidebysig specialname 
-           instance default void set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value')  cil managed 
-    {
-        // Method begins at RVA 0xde63
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Tasks.CompilerBase::set_DelaySign(valuetype NAnt.DotNet.Types.DelaySign)
-	IL_0008:  ret 
-    } // end of method JscTask::set_DelaySign
+	IL_0042:  ldnull 
+	IL_0043:  stloc.1 
+	IL_0044:  ldnull 
+	IL_0045:  stloc.2 
+	IL_0046:  newobj instance void class [mscorlib]System.Security.Cryptography.SHA1CryptoServiceProvider::'.ctor'()
+	IL_004b:  stloc.3 
+	IL_004c:  ldarg.0 
+	IL_004d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
+	IL_0052:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0057:  ldc.i4.3 
+	IL_0058:  ldc.i4.1 
+	IL_0059:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode, valuetype [mscorlib]System.IO.FileAccess)
+	IL_005e:  stloc.s 4
+	.try { // 0
+	  IL_0060:  nop 
+	  IL_0061:  ldloc.3 
+	  IL_0062:  ldloc.s 4
+	  IL_0064:  callvirt instance unsigned int8[] class [mscorlib]System.Security.Cryptography.HashAlgorithm::ComputeHash(class [mscorlib]System.IO.Stream)
+	  IL_0069:  stloc.1 
+	  IL_006a:  nop 
+	  IL_006b:  leave IL_007f
 
-    // method line 735
-    .method public virtual hidebysig specialname 
-           instance default bool get_SupportsKeyContainer ()  cil managed 
-    {
-        // Method begins at RVA 0xde70
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	} // end .try 0
+	finally  { // 0
+	  IL_0070:  ldloc.s 4
+	  IL_0072:  brfalse IL_007e
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method JscTask::get_SupportsKeyContainer
+	  IL_0077:  ldloc.s 4
+	  IL_0079:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_007e:  endfinally 
+	} // end handler 0
+	IL_007f:  ldarg.1 
+	IL_0080:  ldc.i4.0 
+	IL_0081:  conv.i8 
+	IL_0082:  callvirt instance void class [mscorlib]System.IO.Stream::set_Position(int64)
+	IL_0087:  ldloc.3 
+	IL_0088:  ldarg.1 
+	IL_0089:  callvirt instance unsigned int8[] class [mscorlib]System.Security.Cryptography.HashAlgorithm::ComputeHash(class [mscorlib]System.IO.Stream)
+	IL_008e:  stloc.2 
+	IL_008f:  ldloc.3 
+	IL_0090:  callvirt instance void class [mscorlib]System.Security.Cryptography.HashAlgorithm::Clear()
+	IL_0095:  ldloc.2 
+	IL_0096:  call string class [mscorlib]System.Convert::ToBase64String(unsigned int8[])
+	IL_009b:  ldloc.1 
+	IL_009c:  call string class [mscorlib]System.Convert::ToBase64String(unsigned int8[])
+	IL_00a1:  call bool string::op_Inequality(string, string)
+	IL_00a6:  brfalse IL_00dc
 
-    // method line 736
-    .method public virtual hidebysig specialname 
-           instance default void set_SupportsKeyContainer (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xde86
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method JscTask::set_SupportsKeyContainer
+	IL_00ab:  nop 
+	IL_00ac:  ldarg.0 
+	IL_00ad:  ldc.i4 2000
+	IL_00b2:  ldstr "String_OutputFileNotUpToDate"
+	IL_00b7:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_00bc:  ldc.i4.1 
+	IL_00bd:  newarr [mscorlib]System.Object
+	IL_00c2:  dup 
+	IL_00c3:  ldc.i4.0 
+	IL_00c4:  ldarg.0 
+	IL_00c5:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output()
+	IL_00ca:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00cf:  stelem.ref 
+	IL_00d0:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00d5:  ldc.i4.1 
+	IL_00d6:  stloc.0 
+	IL_00d7:  br IL_00e4
 
-    // method line 737
-    .method public virtual hidebysig specialname 
-           instance default bool get_SupportsKeyFile ()  cil managed 
-    {
-        // Method begins at RVA 0xde8c
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_00dc:  nop 
+	IL_00dd:  ldc.i4.0 
+	IL_00de:  stloc.0 
+	IL_00df:  br IL_00e4
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method JscTask::get_SupportsKeyFile
+	IL_00e4:  ldloc.0 
+	IL_00e5:  ret 
+    } // end of method AssemblyInfoTask::NeedsPersisting
 
-    // method line 738
-    .method public virtual hidebysig specialname 
-           instance default void set_SupportsKeyFile (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xdea2
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method JscTask::set_SupportsKeyFile
+	.property instance class [mscorlib]System.IO.FileInfo Output ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 6F 75 74 70 75 74 01 00 54 02 08 52 65   // ...output..T..Re
+		71 75 69 72 65 64 01                            ) // quired.
 
-    // method line 739
-    .method public virtual hidebysig specialname 
-           instance default bool get_SupportsDelaySign ()  cil managed 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.AssemblyInfoTask::get_Output () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyInfoTask::set_Output (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage Language ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 6C 61 6E 67 75 61 67 65 01 00 54 02 08   // ...language..T..
+		52 65 71 75 69 72 65 64 01                      ) // Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage NAnt.DotNet.Tasks.AssemblyInfoTask::get_Language () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyInfoTask::set_Language (valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage 'value') 
+	}
+	.property instance class NAnt.DotNet.Types.AssemblyAttributeCollection AssemblyAttributes ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
+		01 00 0A 61 74 74 72 69 62 75 74 65 73 09 61 74   // ...attributes.at
+		74 72 69 62 75 74 65 00 00                      ) // tribute..
+
+		.get instance default class NAnt.DotNet.Types.AssemblyAttributeCollection NAnt.DotNet.Tasks.AssemblyInfoTask::get_AssemblyAttributes () 
+	}
+	.property instance class NAnt.DotNet.Types.NamespaceImportCollection Imports ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 07 69 6D 70 6F 72 74 73 00 00 ) // ...imports..
+
+		.get instance default class NAnt.DotNet.Types.NamespaceImportCollection NAnt.DotNet.Tasks.AssemblyInfoTask::get_Imports () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyInfoTask::set_Imports (class NAnt.DotNet.Types.NamespaceImportCollection 'value') 
+	}
+	.property instance class NAnt.DotNet.Types.AssemblyFileSet References ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 0A 72 65 66 65 72 65 6E 63 65 73 00 00 ) // ...references..
+
+		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.AssemblyInfoTask::get_References () 
+		.set instance default void NAnt.DotNet.Tasks.AssemblyInfoTask::set_References (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
+	}
+  .class nested public auto ansi sealed CodeLanguage
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage CSharp = int32(0x00000000)
+    .field public static literal  valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage JScript = int32(0x00000001)
+    .field public static literal  valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage VB = int32(0x00000002)
+
+  } // end of class CodeLanguage
+
+  .class nested assembly auto ansi beforefieldinit CodeProvider
+  	extends [mscorlib]System.Object
+  {
+    .field  private initonly  valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage _language
+    .field  private initonly  class [System]System.CodeDom.Compiler.ICodeGenerator _generator
+
+    // method line 741
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.DotNet.Tasks.AssemblyInfoTask assemblyInfoTask, valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage codeLanguage)  cil managed 
     {
-        // Method begins at RVA 0xdea8
-	// Code size 10 (0xa)
-	.maxstack 1
+        // Method begins at RVA 0xd9ac
+	// Code size 106 (0x6a)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+		class [System]System.CodeDom.Compiler.CodeDomProvider	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldnull 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.2 
+	IL_000a:  switch (
+	  IL_0020,
+	  IL_002b,
+	  IL_003b)
+	IL_001b:  br IL_0046
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method JscTask::get_SupportsDelaySign
+	IL_0020:  newobj instance void class [System]Microsoft.CSharp.CSharpCodeProvider::'.ctor'()
+	IL_0025:  stloc.0 
+	IL_0026:  br IL_0056
 
-    // method line 740
-    .method public virtual hidebysig specialname 
-           instance default void set_SupportsDelaySign (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xdebe
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method JscTask::set_SupportsDelaySign
+	IL_002b:  ldstr "NA2008"
+	IL_0030:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0035:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
+	IL_003a:  throw 
+	IL_003b:  newobj instance void class [System]Microsoft.VisualBasic.VBCodeProvider::'.ctor'()
+	IL_0040:  stloc.0 
+	IL_0041:  br IL_0056
 
-    // method line 741
-    .method public hidebysig specialname 
-           instance default bool get_SupportsPlatform ()  cil managed 
+	IL_0046:  ldstr "NA2007"
+	IL_004b:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	IL_0050:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
+	IL_0055:  throw 
+	IL_0056:  ldarg.0 
+	IL_0057:  ldloc.0 
+	IL_0058:  callvirt instance class [System]System.CodeDom.Compiler.ICodeGenerator class [System]System.CodeDom.Compiler.CodeDomProvider::CreateGenerator()
+	IL_005d:  stfld class [System]System.CodeDom.Compiler.ICodeGenerator NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::_generator
+	IL_0062:  ldarg.0 
+	IL_0063:  ldarg.2 
+	IL_0064:  stfld valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::_language
+	IL_0069:  ret 
+    } // end of method CodeProvider::.ctor
+
+    // method line 742
+    .method private hidebysig specialname 
+           instance default valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage get_Language ()  cil managed 
     {
-        // Method begins at RVA 0xdec4
+        // Method begins at RVA 0xda24
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.DotNet.Tasks.JscTask::_supportsPlatform
+	IL_0002:  ldfld valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::_language
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JscTask::get_SupportsPlatform
-
-    // method line 742
-    .method public hidebysig specialname 
-           instance default void set_SupportsPlatform (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0xdedf
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.DotNet.Tasks.JscTask::_supportsPlatform
-	IL_0008:  ret 
-    } // end of method JscTask::set_SupportsPlatform
+    } // end of method CodeProvider::get_Language
 
     // method line 743
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.DotNet.Types.AssemblyFileSet get_Modules ()  cil managed 
+    .method private hidebysig specialname 
+           instance default class [System]System.CodeDom.Compiler.ICodeGenerator get_Generator ()  cil managed 
     {
-        // Method begins at RVA 0xdeec
+        // Method begins at RVA 0xda40
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.DotNet.Types.AssemblyFileSet	V_0)
+		class [System]System.CodeDom.Compiler.ICodeGenerator	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
+	IL_0002:  ldfld class [System]System.CodeDom.Compiler.ICodeGenerator NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::_generator
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JscTask::get_Modules
+    } // end of method CodeProvider::get_Generator
 
     // method line 744
-    .method public virtual hidebysig specialname 
-           instance default void set_Modules (class NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
+    .method public hidebysig 
+           instance default void GenerateImportCode (class [System]System.Collections.Specialized.StringCollection imports, class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0xdf07
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0xda5c
+	// Code size 101 (0x65)
+	.maxstack 4
+	.locals init (
+		class [System]System.CodeDom.CodeNamespace	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance void class NAnt.DotNet.Tasks.CompilerBase::set_Modules(class NAnt.DotNet.Types.AssemblyFileSet)
-	IL_0008:  ret 
-    } // end of method JscTask::set_Modules
+	IL_0001:  newobj instance void class [System]System.CodeDom.CodeNamespace::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  nop 
+	IL_0008:  ldarg.1 
+	IL_0009:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_000e:  stloc.2 
+	.try { // 0
+	  IL_000f:  br IL_002e
+
+	  IL_0014:  ldloc.2 
+	  IL_0015:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_001a:  stloc.1 
+	  IL_001b:  nop 
+	  IL_001c:  ldloc.0 
+	  IL_001d:  callvirt instance class [System]System.CodeDom.CodeNamespaceImportCollection class [System]System.CodeDom.CodeNamespace::get_Imports()
+	  IL_0022:  ldloc.1 
+	  IL_0023:  newobj instance void class [System]System.CodeDom.CodeNamespaceImport::'.ctor'(string)
+	  IL_0028:  callvirt instance void class [System]System.CodeDom.CodeNamespaceImportCollection::Add(class [System]System.CodeDom.CodeNamespaceImport)
+	  IL_002d:  nop 
+	  IL_002e:  ldloc.2 
+	  IL_002f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0034:  brtrue IL_0014
+
+	  IL_0039:  leave IL_0052
+
+	} // end .try 0
+	finally  { // 0
+	  IL_003e:  ldloc.2 
+	  IL_003f:  isinst [mscorlib]System.IDisposable
+	  IL_0044:  dup 
+	  IL_0045:  stloc.3 
+	  IL_0046:  brfalse IL_0051
+
+	  IL_004b:  ldloc.3 
+	  IL_004c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0051:  endfinally 
+	} // end handler 0
+	IL_0052:  ldarg.0 
+	IL_0053:  call instance class [System]System.CodeDom.Compiler.ICodeGenerator class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::get_Generator()
+	IL_0058:  ldloc.0 
+	IL_0059:  ldarg.2 
+	IL_005a:  newobj instance void class [System]System.CodeDom.Compiler.CodeGeneratorOptions::'.ctor'()
+	IL_005f:  callvirt instance void class [System]System.CodeDom.Compiler.ICodeGenerator::GenerateCodeFromNamespace(class [System]System.CodeDom.CodeNamespace, class [mscorlib]System.IO.TextWriter, class [System]System.CodeDom.Compiler.CodeGeneratorOptions)
+	IL_0064:  ret 
+    } // end of method CodeProvider::GenerateImportCode
 
     // method line 745
-    .method family virtual hidebysig 
-           instance default void WriteModuleReferences (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    .method public hidebysig 
+           instance default void GenerateAssemblyAttributesCode (class NAnt.DotNet.Types.AssemblyAttributeCollection assemblyAttributes, class [System]System.Collections.Specialized.StringCollection imports, class [System]System.Collections.Specialized.StringCollection assemblies, class [mscorlib]System.IO.TextWriter writer)  cil managed 
     {
-        // Method begins at RVA 0xdf11
-	// Code size 47 (0x2f)
-	.maxstack 8
+        // Method begins at RVA 0xdae0
+	// Code size 353 (0x161)
+	.maxstack 4
+	.locals init (
+		class [System]System.CodeDom.CodeCompileUnit	V_0,
+		class [System]System.CodeDom.CodeNamespace	V_1,
+		string	V_2,
+		class [System]System.Collections.Specialized.StringEnumerator	V_3,
+		class [mscorlib]System.IDisposable	V_4,
+		class NAnt.DotNet.Types.AssemblyAttribute	V_5,
+		class NAnt.DotNet.Types.AssemblyAttributeEnumerator	V_6,
+		class [System]System.CodeDom.CodeAttributeDeclaration	V_7,
+		object	V_8,
+		class [mscorlib]System.IDisposable	V_9)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.DotNet.Types.AssemblyFileSet class NAnt.DotNet.Tasks.CompilerBase::get_Modules()
-	IL_0007:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_000c:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::get_Count()
-	IL_0011:  ldc.i4.0 
-	IL_0012:  ble IL_002e
+	IL_0001:  newobj instance void class [System]System.CodeDom.CodeCompileUnit::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::get_Language()
+	IL_000d:  ldc.i4.2 
+	IL_000e:  bne.un IL_0075
 
-	IL_0017:  nop 
-	IL_0018:  ldarg.0 
-	IL_0019:  ldc.i4 4000
-	IL_001e:  ldstr "String_JscDoesNotSupportLinkingModules"
-	IL_0023:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_0028:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_002d:  nop 
-	IL_002e:  ret 
-    } // end of method JscTask::WriteModuleReferences
+	IL_0013:  nop 
+	IL_0014:  newobj instance void class [System]System.CodeDom.CodeNamespace::'.ctor'()
+	IL_0019:  stloc.1 
+	IL_001a:  nop 
+	IL_001b:  ldarg.2 
+	IL_001c:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0021:  stloc.3 
+	.try { // 0
+	  IL_0022:  br IL_0041
 
-    // method line 746
-    .method family virtual hidebysig 
-           instance default void WriteOptions (class [mscorlib]System.IO.TextWriter writer)  cil managed 
-    {
-        // Method begins at RVA 0xdf44
-	// Code size 336 (0x150)
-	.maxstack 7
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance bool class NAnt.DotNet.Tasks.CompilerBase::get_Debug()
-	IL_0007:  brfalse IL_003c
+	  IL_0027:  ldloc.3 
+	  IL_0028:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_002d:  stloc.2 
+	  IL_002e:  nop 
+	  IL_002f:  ldloc.1 
+	  IL_0030:  callvirt instance class [System]System.CodeDom.CodeNamespaceImportCollection class [System]System.CodeDom.CodeNamespace::get_Imports()
+	  IL_0035:  ldloc.2 
+	  IL_0036:  newobj instance void class [System]System.CodeDom.CodeNamespaceImport::'.ctor'(string)
+	  IL_003b:  callvirt instance void class [System]System.CodeDom.CodeNamespaceImportCollection::Add(class [System]System.CodeDom.CodeNamespaceImport)
+	  IL_0040:  nop 
+	  IL_0041:  ldloc.3 
+	  IL_0042:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0047:  brtrue IL_0027
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldarg.1 
-	IL_000f:  ldstr "debug"
-	IL_0014:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_0019:  ldarg.0 
-	IL_001a:  ldarg.1 
-	IL_001b:  ldstr "define"
-	IL_0020:  ldstr "DEBUG"
-	IL_0025:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_002a:  ldarg.0 
-	IL_002b:  ldarg.1 
-	IL_002c:  ldstr "define"
-	IL_0031:  ldstr "TRACE"
-	IL_0036:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_003b:  nop 
-	IL_003c:  ldarg.0 
-	IL_003d:  call instance bool class NAnt.DotNet.Tasks.JscTask::get_NoStdLib()
-	IL_0042:  brfalse IL_005a
+	  IL_004c:  leave IL_0067
 
-	IL_0047:  nop 
-	IL_0048:  ldarg.0 
-	IL_0049:  ldarg.1 
-	IL_004a:  ldstr "nostdlib"
-	IL_004f:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_0054:  nop 
-	IL_0055:  br IL_0073
+	} // end .try 0
+	finally  { // 0
+	  IL_0051:  ldloc.3 
+	  IL_0052:  isinst [mscorlib]System.IDisposable
+	  IL_0057:  dup 
+	  IL_0058:  stloc.s 4
+	  IL_005a:  brfalse IL_0066
 
-	IL_005a:  ldarg.0 
-	IL_005b:  call instance bool class NAnt.DotNet.Tasks.JscTask::get_AutoRef()
-	IL_0060:  brfalse IL_0073
+	  IL_005f:  ldloc.s 4
+	  IL_0061:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0066:  endfinally 
+	} // end handler 0
+	IL_0067:  ldloc.0 
+	IL_0068:  callvirt instance class [System]System.CodeDom.CodeNamespaceCollection class [System]System.CodeDom.CodeCompileUnit::get_Namespaces()
+	IL_006d:  ldloc.1 
+	IL_006e:  callvirt instance int32 class [System]System.CodeDom.CodeNamespaceCollection::Add(class [System]System.CodeDom.CodeNamespace)
+	IL_0073:  pop 
+	IL_0074:  nop 
+	IL_0075:  nop 
+	IL_0076:  ldarg.1 
+	IL_0077:  callvirt instance class NAnt.DotNet.Types.AssemblyAttributeEnumerator class NAnt.DotNet.Types.AssemblyAttributeCollection::GetEnumerator()
+	IL_007c:  stloc.s 6
+	.try { // 1
+	  IL_007e:  br IL_0125
 
-	IL_0065:  nop 
-	IL_0066:  ldarg.0 
-	IL_0067:  ldarg.1 
-	IL_0068:  ldstr "autoref"
-	IL_006d:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_0072:  nop 
-	IL_0073:  ldarg.0 
-	IL_0074:  call instance string class NAnt.DotNet.Tasks.JscTask::get_WarningLevel()
-	IL_0079:  brfalse IL_0092
+	  IL_0083:  ldloc.s 6
+	  IL_0085:  callvirt instance class NAnt.DotNet.Types.AssemblyAttribute class NAnt.DotNet.Types.AssemblyAttributeEnumerator::get_Current()
+	  IL_008a:  stloc.s 5
+	  IL_008c:  nop 
+	  IL_008d:  ldloc.s 5
+	  IL_008f:  callvirt instance bool class NAnt.DotNet.Types.AssemblyAttribute::get_IfDefined()
+	  IL_0094:  brfalse IL_0124
 
-	IL_007e:  nop 
-	IL_007f:  ldarg.0 
-	IL_0080:  ldarg.1 
-	IL_0081:  ldstr "warn"
-	IL_0086:  ldarg.0 
-	IL_0087:  call instance string class NAnt.DotNet.Tasks.JscTask::get_WarningLevel()
-	IL_008c:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_0091:  nop 
-	IL_0092:  ldarg.0 
-	IL_0093:  call instance string class NAnt.DotNet.Tasks.JscTask::get_Codepage()
-	IL_0098:  brfalse IL_00b1
+	  IL_0099:  ldloc.s 5
+	  IL_009b:  callvirt instance bool class NAnt.DotNet.Types.AssemblyAttribute::get_UnlessDefined()
+	  IL_00a0:  brtrue IL_0124
 
-	IL_009d:  nop 
-	IL_009e:  ldarg.0 
-	IL_009f:  ldarg.1 
-	IL_00a0:  ldstr "codepage"
-	IL_00a5:  ldarg.0 
-	IL_00a6:  call instance string class NAnt.DotNet.Tasks.JscTask::get_Codepage()
-	IL_00ab:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_00b0:  nop 
-	IL_00b1:  ldarg.0 
-	IL_00b2:  call instance string class NAnt.DotNet.Tasks.JscTask::get_Platform()
-	IL_00b7:  brfalse IL_0112
+	  IL_00a5:  nop 
+	  IL_00a6:  ldloc.s 5
+	  IL_00a8:  callvirt instance string class NAnt.DotNet.Types.AssemblyAttribute::get_TypeName()
+	  IL_00ad:  newobj instance void class [System]System.CodeDom.CodeAttributeDeclaration::'.ctor'(string)
+	  IL_00b2:  stloc.s 7
+	  IL_00b4:  ldloc.s 5
+	  IL_00b6:  callvirt instance bool class NAnt.DotNet.Types.AssemblyAttribute::get_AsIs()
+	  IL_00bb:  brfalse IL_00e5
 
-	IL_00bc:  nop 
-	IL_00bd:  ldarg.0 
-	IL_00be:  call instance bool class NAnt.DotNet.Tasks.JscTask::get_SupportsPlatform()
-	IL_00c3:  brfalse IL_00e1
+	  IL_00c0:  nop 
+	  IL_00c1:  ldloc.s 7
+	  IL_00c3:  callvirt instance class [System]System.CodeDom.CodeAttributeArgumentCollection class [System]System.CodeDom.CodeAttributeDeclaration::get_Arguments()
+	  IL_00c8:  ldloc.s 5
+	  IL_00ca:  callvirt instance string class NAnt.DotNet.Types.AssemblyAttribute::get_Value()
+	  IL_00cf:  newobj instance void class [System]System.CodeDom.CodeSnippetExpression::'.ctor'(string)
+	  IL_00d4:  newobj instance void class [System]System.CodeDom.CodeAttributeArgument::'.ctor'(class [System]System.CodeDom.CodeExpression)
+	  IL_00d9:  callvirt instance int32 class [System]System.CodeDom.CodeAttributeArgumentCollection::Add(class [System]System.CodeDom.CodeAttributeArgument)
+	  IL_00de:  pop 
+	  IL_00df:  nop 
+	  IL_00e0:  br IL_0115
 
-	IL_00c8:  nop 
-	IL_00c9:  ldarg.0 
-	IL_00ca:  ldarg.1 
-	IL_00cb:  ldstr "platform"
-	IL_00d0:  ldarg.0 
-	IL_00d1:  call instance string class NAnt.DotNet.Tasks.JscTask::get_Platform()
-	IL_00d6:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_00db:  nop 
-	IL_00dc:  br IL_0111
+	  IL_00e5:  nop 
+	  IL_00e6:  ldarg.0 
+	  IL_00e7:  ldloc.s 5
+	  IL_00e9:  ldarg.3 
+	  IL_00ea:  ldarg.2 
+	  IL_00eb:  call instance object class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::GetTypedValue(class NAnt.DotNet.Types.AssemblyAttribute, class [System]System.Collections.Specialized.StringCollection, class [System]System.Collections.Specialized.StringCollection)
+	  IL_00f0:  stloc.s 8
+	  IL_00f2:  ldloc.s 8
+	  IL_00f4:  brfalse IL_0114
 
-	IL_00e1:  nop 
-	IL_00e2:  ldarg.0 
-	IL_00e3:  ldc.i4 4000
-	IL_00e8:  ldstr "String_CompilerDoesNotSupportPlatform"
-	IL_00ed:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
-	IL_00f2:  ldc.i4.1 
-	IL_00f3:  newarr [mscorlib]System.Object
-	IL_00f8:  dup 
-	IL_00f9:  ldc.i4.0 
-	IL_00fa:  ldarg.0 
-	IL_00fb:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0100:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0105:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	IL_010a:  stelem.ref 
-	IL_010b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0110:  nop 
-	IL_0111:  nop 
-	IL_0112:  ldarg.0 
-	IL_0113:  call instance bool class NAnt.DotNet.Tasks.JscTask::get_VersionSafe()
-	IL_0118:  brfalse IL_012b
+	  IL_00f9:  nop 
+	  IL_00fa:  ldloc.s 7
+	  IL_00fc:  callvirt instance class [System]System.CodeDom.CodeAttributeArgumentCollection class [System]System.CodeDom.CodeAttributeDeclaration::get_Arguments()
+	  IL_0101:  ldloc.s 8
+	  IL_0103:  newobj instance void class [System]System.CodeDom.CodePrimitiveExpression::'.ctor'(object)
+	  IL_0108:  newobj instance void class [System]System.CodeDom.CodeAttributeArgument::'.ctor'(class [System]System.CodeDom.CodeExpression)
+	  IL_010d:  callvirt instance int32 class [System]System.CodeDom.CodeAttributeArgumentCollection::Add(class [System]System.CodeDom.CodeAttributeArgument)
+	  IL_0112:  pop 
+	  IL_0113:  nop 
+	  IL_0114:  nop 
+	  IL_0115:  ldloc.0 
+	  IL_0116:  callvirt instance class [System]System.CodeDom.CodeAttributeDeclarationCollection class [System]System.CodeDom.CodeCompileUnit::get_AssemblyCustomAttributes()
+	  IL_011b:  ldloc.s 7
+	  IL_011d:  callvirt instance int32 class [System]System.CodeDom.CodeAttributeDeclarationCollection::Add(class [System]System.CodeDom.CodeAttributeDeclaration)
+	  IL_0122:  pop 
+	  IL_0123:  nop 
+	  IL_0124:  nop 
+	  IL_0125:  ldloc.s 6
+	  IL_0127:  callvirt instance bool class NAnt.DotNet.Types.AssemblyAttributeEnumerator::MoveNext()
+	  IL_012c:  brtrue IL_0083
 
-	IL_011d:  nop 
-	IL_011e:  ldarg.0 
-	IL_011f:  ldarg.1 
-	IL_0120:  ldstr "versionsafe"
-	IL_0125:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string)
-	IL_012a:  nop 
-	IL_012b:  ldarg.0 
-	IL_012c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
-	IL_0131:  brfalse IL_014f
+	  IL_0131:  leave IL_014d
 
-	IL_0136:  nop 
-	IL_0137:  ldarg.0 
-	IL_0138:  ldarg.1 
-	IL_0139:  ldstr "win32res"
-	IL_013e:  ldarg.0 
-	IL_013f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.DotNet.Tasks.CompilerBase::get_Win32Res()
-	IL_0144:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0149:  callvirt instance void class NAnt.DotNet.Tasks.CompilerBase::WriteOption(class [mscorlib]System.IO.TextWriter, string, string)
-	IL_014e:  nop 
-	IL_014f:  ret 
-    } // end of method JscTask::WriteOptions
+	} // end .try 1
+	finally  { // 1
+	  IL_0136:  ldloc.s 6
+	  IL_0138:  isinst [mscorlib]System.IDisposable
+	  IL_013d:  dup 
+	  IL_013e:  stloc.s 9
+	  IL_0140:  brfalse IL_014c
 
-    // method line 747
-    .method public virtual hidebysig specialname 
-           instance default string get_Extension ()  cil managed 
+	  IL_0145:  ldloc.s 9
+	  IL_0147:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_014c:  endfinally 
+	} // end handler 1
+	IL_014d:  ldarg.0 
+	IL_014e:  call instance class [System]System.CodeDom.Compiler.ICodeGenerator class NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::get_Generator()
+	IL_0153:  ldloc.0 
+	IL_0154:  ldarg.s 4
+	IL_0156:  newobj instance void class [System]System.CodeDom.Compiler.CodeGeneratorOptions::'.ctor'()
+	IL_015b:  callvirt instance void class [System]System.CodeDom.Compiler.ICodeGenerator::GenerateCodeFromCompileUnit(class [System]System.CodeDom.CodeCompileUnit, class [mscorlib]System.IO.TextWriter, class [System]System.CodeDom.Compiler.CodeGeneratorOptions)
+	IL_0160:  ret 
+    } // end of method CodeProvider::GenerateAssemblyAttributesCode
+
+    // method line 746
+    .method private hidebysig 
+           instance default object GetTypedValue (class NAnt.DotNet.Types.AssemblyAttribute attribute, class [System]System.Collections.Specialized.StringCollection assemblies, class [System]System.Collections.Specialized.StringCollection imports)  cil managed 
     {
-        // Method begins at RVA 0xe0a0
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0xdc6c
+	// Code size 151 (0x97)
+	.maxstack 9
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Security.PermissionSet	V_0,
+		class [mscorlib]System.AppDomain	V_1,
+		class NAnt.DotNet.Tasks.AssemblyInfoTask/TypedValueGatherer	V_2,
+		object	V_3,
+		object	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldstr "js"
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldc.i4.1 
+	IL_0002:  newobj instance void class [mscorlib]System.Security.PermissionSet::'.ctor'(valuetype [mscorlib]System.Security.Permissions.PermissionState)
+	IL_0007:  stloc.0 
+	IL_0008:  ldstr "TypeGatheringDomain"
+	IL_000d:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_0012:  callvirt instance class [mscorlib]System.Security.Policy.Evidence class [mscorlib]System.AppDomain::get_Evidence()
+	IL_0017:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::get_CurrentDomain()
+	IL_001c:  callvirt instance class [mscorlib]System.AppDomainSetup class [mscorlib]System.AppDomain::get_SetupInformation()
+	IL_0021:  ldloc.0 
+	IL_0022:  call !!0[] class [mscorlib]System.Array::Empty<class [mscorlib]System.Security.Policy.StrongName> ()
+	IL_0027:  call class [mscorlib]System.AppDomain class [mscorlib]System.AppDomain::CreateDomain(string, class [mscorlib]System.Security.Policy.Evidence, class [mscorlib]System.AppDomainSetup, class [mscorlib]System.Security.PermissionSet, class [mscorlib]System.Security.Policy.StrongName[])
+	IL_002c:  stloc.1 
+	IL_002d:  ldloc.1 
+	IL_002e:  ldtoken NAnt.DotNet.Tasks.AssemblyInfoTask/TypedValueGatherer
+	IL_0033:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0038:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Type::get_Assembly()
+	IL_003d:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_FullName()
+	IL_0042:  ldtoken NAnt.DotNet.Tasks.AssemblyInfoTask/TypedValueGatherer
+	IL_0047:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_004c:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	IL_0051:  ldc.i4.0 
+	IL_0052:  ldc.i4.s 0x14
+	IL_0054:  ldnull 
+	IL_0055:  ldc.i4.0 
+	IL_0056:  newarr [mscorlib]System.Object
+	IL_005b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0060:  ldc.i4.0 
+	IL_0061:  newarr [mscorlib]System.Object
+	IL_0066:  callvirt instance object class [mscorlib]System.AppDomain::CreateInstanceAndUnwrap(string, string, bool, valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, object[], class [mscorlib]System.Globalization.CultureInfo, object[])
+	IL_006b:  castclass NAnt.DotNet.Tasks.AssemblyInfoTask/TypedValueGatherer
+	IL_0070:  stloc.2 
+	IL_0071:  ldloc.2 
+	IL_0072:  ldarg.2 
+	IL_0073:  ldarg.3 
+	IL_0074:  ldarg.1 
+	IL_0075:  callvirt instance string class NAnt.DotNet.Types.AssemblyAttribute::get_TypeName()
+	IL_007a:  ldarg.1 
+	IL_007b:  callvirt instance string class NAnt.DotNet.Types.AssemblyAttribute::get_Value()
+	IL_0080:  callvirt instance object class NAnt.DotNet.Tasks.AssemblyInfoTask/TypedValueGatherer::GetTypedValue(class [System]System.Collections.Specialized.StringCollection, class [System]System.Collections.Specialized.StringCollection, string, string)
+	IL_0085:  stloc.3 
+	IL_0086:  ldloc.1 
+	IL_0087:  call void class [mscorlib]System.AppDomain::Unload(class [mscorlib]System.AppDomain)
+	IL_008c:  ldloc.3 
+	IL_008d:  stloc.s 4
+	IL_008f:  br IL_0094
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method JscTask::get_Extension
+	IL_0094:  ldloc.s 4
+	IL_0096:  ret 
+    } // end of method CodeProvider::GetTypedValue
+
+	.property instance valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage Language ()
+	{
+		.get instance default valuetype NAnt.DotNet.Tasks.AssemblyInfoTask/CodeLanguage NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::get_Language () 
+	}
+	.property instance class [System]System.CodeDom.Compiler.ICodeGenerator Generator ()
+	{
+		.get instance default class [System]System.CodeDom.Compiler.ICodeGenerator NAnt.DotNet.Tasks.AssemblyInfoTask/CodeProvider::get_Generator () 
+	}
+  } // end of class CodeProvider
+
+  .class nested private auto ansi beforefieldinit TypedValueGatherer
+  	extends [mscorlib]System.MarshalByRefObject
+  {
+
+    // method line 747
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0xdd0f
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.MarshalByRefObject::'.ctor'()
+	IL_0006:  ret 
+    } // end of method TypedValueGatherer::.ctor
 
     // method line 748
-    .method family virtual hidebysig specialname 
-           instance default class [System]System.Text.RegularExpressions.Regex get_ClassNameRegex ()  cil managed 
+    .method public virtual hidebysig 
+           instance default object InitializeLifetimeService ()  cil managed 
     {
-        // Method begins at RVA 0xe0bc
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0xdd18
+	// Code size 47 (0x2f)
+	.maxstack 2
 	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0)
+		class [mscorlib]System.Runtime.Remoting.Lifetime.ILease	V_0,
+		object	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::_classNameRegex
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance object class [mscorlib]System.MarshalByRefObject::InitializeLifetimeService()
+	IL_0007:  castclass [mscorlib]System.Runtime.Remoting.Lifetime.ILease
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  callvirt instance valuetype [mscorlib]System.Runtime.Remoting.Lifetime.LeaseState class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::get_CurrentState()
+	IL_0013:  ldc.i4.1 
+	IL_0014:  bne.un IL_0026
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method JscTask::get_ClassNameRegex
+	IL_0019:  nop 
+	IL_001a:  ldloc.0 
+	IL_001b:  ldsfld valuetype [mscorlib]System.TimeSpan [mscorlib]System.TimeSpan::Zero
+	IL_0020:  callvirt instance void class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::set_InitialLeaseTime(valuetype [mscorlib]System.TimeSpan)
+	IL_0025:  nop 
+	IL_0026:  ldloc.0 
+	IL_0027:  stloc.1 
+	IL_0028:  br IL_002d
+
+	IL_002d:  ldloc.1 
+	IL_002e:  ret 
+    } // end of method TypedValueGatherer::InitializeLifetimeService
 
     // method line 749
-    .method family virtual hidebysig specialname 
-           instance default class [System]System.Text.RegularExpressions.Regex get_NamespaceRegex ()  cil managed 
+    .method public hidebysig 
+           instance default object GetTypedValue (class [System]System.Collections.Specialized.StringCollection assemblies, class [System]System.Collections.Specialized.StringCollection imports, string typename, string 'value')  cil managed 
     {
-        // Method begins at RVA 0xe0d8
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0xdd54
+	// Code size 467 (0x1d3)
+	.maxstack 5
 	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0)
+		class [NAnt.Core]NAnt.Core.Util.AssemblyResolver	V_0,
+		class [mscorlib]System.Type	V_1,
+		object	V_2,
+		class [mscorlib]System.Reflection.ConstructorInfo	V_3,
+		class [mscorlib]System.Reflection.ConstructorInfo[]	V_4,
+		int32	V_5,
+		class [mscorlib]System.Reflection.ParameterInfo[]	V_6,
+		class [mscorlib]System.Exception	V_7,
+		object	V_8)
 	IL_0000:  nop 
-	IL_0001:  ldsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::_namespaceRegex
+	IL_0001:  newobj instance void class [NAnt.Core]NAnt.Core.Util.AssemblyResolver::'.ctor'()
 	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0007:  ldloc.0 
+	IL_0008:  callvirt instance void class [NAnt.Core]NAnt.Core.Util.AssemblyResolver::Attach()
+	.try { // 1
+	  IL_000d:  nop 
+	  IL_000e:  ldarg.0 
+	  IL_000f:  ldarg.1 
+	  IL_0010:  ldarg.2 
+	  IL_0011:  ldarg.3 
+	  IL_0012:  call instance class [mscorlib]System.Type class NAnt.DotNet.Tasks.AssemblyInfoTask/TypedValueGatherer::FindType(class [System]System.Collections.Specialized.StringCollection, class [System]System.Collections.Specialized.StringCollection, string)
+	  IL_0017:  stloc.1 
+	  IL_0018:  ldloc.1 
+	  IL_0019:  ldnull 
+	  IL_001a:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_001f:  brfalse IL_0174
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method JscTask::get_NamespaceRegex
+	  IL_0024:  nop 
+	  IL_0025:  ldnull 
+	  IL_0026:  stloc.2 
+	  IL_0027:  ldarg.s 4
+	  IL_0029:  brtrue IL_007f
+
+	  IL_002e:  nop 
+	  IL_002f:  ldloc.1 
+	  IL_0030:  ldc.i4.s 0x14
+	  IL_0032:  ldnull 
+	  IL_0033:  ldc.i4.0 
+	  IL_0034:  newarr [mscorlib]System.Type
+	  IL_0039:  ldc.i4.0 
+	  IL_003a:  newarr [mscorlib]System.Reflection.ParameterModifier
+	  IL_003f:  callvirt instance class [mscorlib]System.Reflection.ConstructorInfo class [mscorlib]System.Type::GetConstructor(valuetype [mscorlib]System.Reflection.BindingFlags, class [mscorlib]System.Reflection.Binder, class [mscorlib]System.Type[], valuetype [mscorlib]System.Reflection.ParameterModifier[])
+	  IL_0044:  stloc.3 
+	  IL_0045:  ldloc.3 
+	  IL_0046:  ldnull 
+	  IL_0047:  call bool class [mscorlib]System.Reflection.ConstructorInfo::op_Equality(class [mscorlib]System.Reflection.ConstructorInfo, class [mscorlib]System.Reflection.ConstructorInfo)
+	  IL_004c:  brfalse IL_0077
+
+	  IL_0051:  nop 
+	  IL_0052:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0057:  ldstr "NA2005"
+	  IL_005c:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0061:  ldloc.1 
+	  IL_0062:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	  IL_0067:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_006c:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	  IL_0071:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	  IL_0076:  throw 
+	  IL_0077:  ldnull 
+	  IL_0078:  stloc.2 
+	  IL_0079:  nop 
+	  IL_007a:  br IL_016c
+
+	  IL_007f:  nop 
+	  IL_0080:  ldloc.1 
+	  IL_0081:  ldc.i4.s 0x14
+	  IL_0083:  callvirt instance class [mscorlib]System.Reflection.ConstructorInfo[] class [mscorlib]System.Type::GetConstructors(valuetype [mscorlib]System.Reflection.BindingFlags)
+	  IL_0088:  stloc.s 4
+	  IL_008a:  ldc.i4.0 
+	  IL_008b:  stloc.s 5
+	  IL_008d:  br IL_0139
+
+	  IL_0092:  nop 
+	  IL_0093:  ldloc.s 4
+	  IL_0095:  ldloc.s 5
+	  IL_0097:  ldelem.ref 
+	  IL_0098:  callvirt instance class [mscorlib]System.Reflection.ParameterInfo[] class [mscorlib]System.Reflection.MethodBase::GetParameters()
+	  IL_009d:  stloc.s 6
+	  IL_009f:  ldloc.s 6
+	  IL_00a1:  ldlen 
+	  IL_00a2:  conv.i4 
+	  IL_00a3:  ldc.i4.1 
+	  IL_00a4:  bne.un IL_0132
+
+	  IL_00a9:  nop 
+	  IL_00aa:  ldloc.s 6
+	  IL_00ac:  ldc.i4.0 
+	  IL_00ad:  ldelem.ref 
+	  IL_00ae:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	  IL_00b3:  callvirt instance bool class [mscorlib]System.Type::get_IsPrimitive()
+	  IL_00b8:  brtrue IL_00da
+
+	  IL_00bd:  ldloc.s 6
+	  IL_00bf:  ldc.i4.0 
+	  IL_00c0:  ldelem.ref 
+	  IL_00c1:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	  IL_00c6:  ldtoken [mscorlib]System.String
+	  IL_00cb:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_00d0:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_00d5:  brfalse IL_0131
+
+	  IL_00da:  nop 
+	  .try { // 0
+	    IL_00db:  nop 
+	    IL_00dc:  ldarg.s 4
+	    IL_00de:  ldloc.s 6
+	    IL_00e0:  ldc.i4.0 
+	    IL_00e1:  ldelem.ref 
+	    IL_00e2:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	    IL_00e7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_00ec:  call object class [mscorlib]System.Convert::ChangeType(object, class [mscorlib]System.Type, class [mscorlib]System.IFormatProvider)
+	    IL_00f1:  stloc.2 
+	    IL_00f2:  leave IL_0144
+
+	  } // end .try 0
+	  catch class [mscorlib]System.Exception { // 0
+	    IL_00f7:  stloc.s 7
+	    IL_00f9:  nop 
+	    IL_00fa:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_00ff:  ldstr "NA2006"
+	    IL_0104:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	    IL_0109:  ldarg.s 4
+	    IL_010b:  ldloc.s 6
+	    IL_010d:  ldc.i4.0 
+	    IL_010e:  ldelem.ref 
+	    IL_010f:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.ParameterInfo::get_ParameterType()
+	    IL_0114:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	    IL_0119:  ldloc.1 
+	    IL_011a:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	    IL_011f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	    IL_0124:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	    IL_0129:  ldloc.s 7
+	    IL_012b:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	    IL_0130:  throw 
+	  } // end handler 0
+	  IL_0131:  nop 
+	  IL_0132:  nop 
+	  IL_0133:  ldloc.s 5
+	  IL_0135:  ldc.i4.1 
+	  IL_0136:  add 
+	  IL_0137:  stloc.s 5
+	  IL_0139:  ldloc.s 5
+	  IL_013b:  ldloc.s 4
+	  IL_013d:  ldlen 
+	  IL_013e:  conv.i4 
+	  IL_013f:  blt IL_0092
+
+	  IL_0144:  ldloc.2 
+	  IL_0145:  brtrue IL_016b
+
+	  IL_014a:  nop 
+	  IL_014b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0150:  ldstr "NA2003"
+	  IL_0155:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_015a:  ldarg.3 
+	  IL_015b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0160:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	  IL_0165:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	  IL_016a:  throw 
+	  IL_016b:  nop 
+	  IL_016c:  ldloc.2 
+	  IL_016d:  stloc.s 8
+	  IL_016f:  leave IL_01d0
+
+	  IL_0174:  nop 
+	  IL_0175:  ldarg.3 
+	  IL_0176:  ldstr "Attribute"
+	  IL_017b:  callvirt instance bool string::EndsWith(string)
+	  IL_0180:  brtrue IL_01a6
+
+	  IL_0185:  nop 
+	  IL_0186:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_018b:  ldstr "NA2039"
+	  IL_0190:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_0195:  ldarg.3 
+	  IL_0196:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_019b:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	  IL_01a0:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	  IL_01a5:  throw 
+	  IL_01a6:  nop 
+	  IL_01a7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_01ac:  ldstr "NA2001"
+	  IL_01b1:  call string class [NAnt.Core]NAnt.Core.Util.ResourceUtils::GetString(string)
+	  IL_01b6:  ldarg.3 
+	  IL_01b7:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_01bc:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	  IL_01c1:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	  IL_01c6:  throw 
+	} // end .try 1
+	finally  { // 1
+	  IL_01c7:  nop 
+	  IL_01c8:  ldloc.0 
+	  IL_01c9:  callvirt instance void class [NAnt.Core]NAnt.Core.Util.AssemblyResolver::Detach()
+	  IL_01ce:  nop 
+	  IL_01cf:  endfinally 
+	} // end handler 1
+	IL_01d0:  ldloc.s 8
+	IL_01d2:  ret 
+    } // end of method TypedValueGatherer::GetTypedValue
 
     // method line 750
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+    .method private hidebysig 
+           instance default class [mscorlib]System.Type FindType (class [System]System.Collections.Specialized.StringCollection assemblies, class [System]System.Collections.Specialized.StringCollection imports, string typename)  cil managed 
     {
-        // Method begins at RVA 0xe0f2
-	// Code size 31 (0x1f)
-	.maxstack 8
-	IL_0000:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.\\{]+|class\\s+(?<class>\\w+)|(?<keyword>\\w+))*"
-	IL_0005:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
-	IL_000a:  stsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::_classNameRegex
-	IL_000f:  ldstr "^((?<comment>/\\*.*?(\\*/|$))|[\\s\\.\\{]+|namespace\\s+(?<namespace>(\\w+(\\.\\w+)*)+)|(?<keyword>\\w+))*"
-	IL_0014:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
-	IL_0019:  stsfld class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::_namespaceRegex
-	IL_001e:  ret 
-    } // end of method JscTask::.cctor
+        // Method begins at RVA 0xdf68
+	// Code size 369 (0x171)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Type	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringEnumerator	V_2,
+		class [mscorlib]System.Reflection.Assembly	V_3,
+		string	V_4,
+		class [System]System.Collections.Specialized.StringEnumerator	V_5,
+		class [mscorlib]System.IDisposable	V_6,
+		class [mscorlib]System.IDisposable	V_7,
+		string	V_8,
+		class [System]System.Collections.Specialized.StringEnumerator	V_9,
+		class [mscorlib]System.IDisposable	V_10,
+		class [mscorlib]System.Type	V_11)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  nop 
+	IL_0004:  ldarg.1 
+	IL_0005:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_000a:  stloc.2 
+	.try { // 1
+	  IL_000b:  br IL_00b3
 
-	.property instance bool AutoRef ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 61 75 74 6F 72 65 66 00 00 ) // ...autoref..
+	  IL_0010:  ldloc.2 
+	  IL_0011:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0016:  stloc.1 
+	  IL_0017:  nop 
+	  IL_0018:  ldloc.1 
+	  IL_0019:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFrom(string)
+	  IL_001e:  stloc.3 
+	  IL_001f:  ldloc.3 
+	  IL_0020:  ldarg.3 
+	  IL_0021:  ldc.i4.0 
+	  IL_0022:  ldc.i4.0 
+	  IL_0023:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool, bool)
+	  IL_0028:  stloc.0 
+	  IL_0029:  ldloc.0 
+	  IL_002a:  ldnull 
+	  IL_002b:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_0030:  brfalse IL_00a0
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	  IL_0035:  nop 
+	  IL_0036:  nop 
+	  IL_0037:  ldarg.2 
+	  IL_0038:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_003d:  stloc.s 5
+	  .try { // 0
+	    IL_003f:  br IL_0077
 
-		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_AutoRef () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_AutoRef (bool 'value') 
-	}
-	.property instance bool NoStdLib ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 6E 6F 73 74 64 6C 69 62 00 00 ) // ...nostdlib..
+	    IL_0044:  ldloc.s 5
+	    IL_0046:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_004b:  stloc.s 4
+	    IL_004d:  nop 
+	    IL_004e:  ldloc.3 
+	    IL_004f:  ldloc.s 4
+	    IL_0051:  ldstr "."
+	    IL_0056:  ldarg.3 
+	    IL_0057:  call string string::Concat(string, string, string)
+	    IL_005c:  ldc.i4.0 
+	    IL_005d:  ldc.i4.0 
+	    IL_005e:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string, bool, bool)
+	    IL_0063:  stloc.0 
+	    IL_0064:  ldloc.0 
+	    IL_0065:  ldnull 
+	    IL_0066:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	    IL_006b:  brfalse IL_0076
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	    IL_0070:  nop 
+	    IL_0071:  leave IL_0083
 
-		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_NoStdLib () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_NoStdLib (bool 'value') 
-	}
-	.property instance string Platform ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 70 6C 61 74 66 6F 72 6D 00 00 ) // ...platform..
+	    IL_0076:  nop 
+	    IL_0077:  ldloc.s 5
+	    IL_0079:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_007e:  brtrue IL_0044
 
-		.get instance default string NAnt.DotNet.Tasks.JscTask::get_Platform () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_Platform (string 'value') 
-	}
-	.property instance bool VersionSafe ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 76 65 72 73 69 6F 6E 73 61 66 65 00 00 ) // ...versionsafe..
+	    IL_0083:  leave IL_009f
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	  } // end .try 0
+	  finally  { // 0
+	    IL_0088:  ldloc.s 5
+	    IL_008a:  isinst [mscorlib]System.IDisposable
+	    IL_008f:  dup 
+	    IL_0090:  stloc.s 6
+	    IL_0092:  brfalse IL_009e
 
-		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_VersionSafe () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_VersionSafe (bool 'value') 
-	}
-	.property instance string WarningLevel ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 77 61 72 6E 69 6E 67 6C 65 76 65 6C 00   // ...warninglevel.
-		00                                              ) // .
+	    IL_0097:  ldloc.s 6
+	    IL_0099:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_009e:  endfinally 
+	  } // end handler 0
+	  IL_009f:  nop 
+	  IL_00a0:  ldloc.0 
+	  IL_00a1:  ldnull 
+	  IL_00a2:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_00a7:  brfalse IL_00b2
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.Int32ValidatorAttribute::'.ctor'(int32, int32) =  (01 00 00 00 00 00 04 00 00 00 00 00 ) // ............
+	  IL_00ac:  nop 
+	  IL_00ad:  leave IL_00be
 
-		.get instance default string NAnt.DotNet.Tasks.JscTask::get_WarningLevel () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_WarningLevel (string 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.WarningAsError WarningAsError ()
-	{
-		.get instance default class NAnt.DotNet.Types.WarningAsError NAnt.DotNet.Tasks.JscTask::get_WarningAsError () 
-	}
-	.property instance string NoWarn ()
-	{
-		.custom instance void class [mscorlib]System.ObsoleteAttribute::'.ctor'(string, bool) =  (
-		01 00 21 55 73 65 20 74 68 65 20 3C 6E 6F 77 61   // ..!Use the <nowa
-		72 6E 3E 20 65 6C 65 6D 65 6E 74 20 69 6E 73 74   // rn> element inst
-		65 61 64 2E 00 00 00                            ) // ead....
+	  IL_00b2:  nop 
+	  IL_00b3:  ldloc.2 
+	  IL_00b4:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_00b9:  brtrue IL_0010
 
-		.get instance default string NAnt.DotNet.Tasks.JscTask::get_NoWarn () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_NoWarn (string 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.CompilerWarningCollection SuppressWarnings ()
-	{
-		.get instance default class NAnt.DotNet.Types.CompilerWarningCollection NAnt.DotNet.Tasks.JscTask::get_SuppressWarnings () 
-	}
-	.property instance string Codepage ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 63 6F 64 65 70 61 67 65 00 00 ) // ...codepage..
+	  IL_00be:  leave IL_00d9
 
-		.get instance default string NAnt.DotNet.Tasks.JscTask::get_Codepage () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_Codepage (string 'value') 
-	}
-	.property instance string KeyContainer ()
-	{
-		.get instance default string NAnt.DotNet.Tasks.JscTask::get_KeyContainer () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_KeyContainer (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo KeyFile ()
-	{
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.DotNet.Tasks.JscTask::get_KeyFile () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_KeyFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance valuetype NAnt.DotNet.Types.DelaySign DelaySign ()
-	{
-		.get instance default valuetype NAnt.DotNet.Types.DelaySign NAnt.DotNet.Tasks.JscTask::get_DelaySign () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_DelaySign (valuetype NAnt.DotNet.Types.DelaySign 'value') 
-	}
-	.property instance bool SupportsKeyContainer ()
-	{
-		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_SupportsKeyContainer () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_SupportsKeyContainer (bool 'value') 
-	}
-	.property instance bool SupportsKeyFile ()
-	{
-		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_SupportsKeyFile () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_SupportsKeyFile (bool 'value') 
-	}
-	.property instance bool SupportsDelaySign ()
-	{
-		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_SupportsDelaySign () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_SupportsDelaySign (bool 'value') 
-	}
-	.property instance bool SupportsPlatform ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 10 73 75 70 70 6F 72 74 73 70 6C 61 74 66   // ...supportsplatf
-		6F 72 6D 00 00                                  ) // orm..
+	} // end .try 1
+	finally  { // 1
+	  IL_00c3:  ldloc.2 
+	  IL_00c4:  isinst [mscorlib]System.IDisposable
+	  IL_00c9:  dup 
+	  IL_00ca:  stloc.s 7
+	  IL_00cc:  brfalse IL_00d8
 
-		.get instance default bool NAnt.DotNet.Tasks.JscTask::get_SupportsPlatform () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_SupportsPlatform (bool 'value') 
-	}
-	.property instance class NAnt.DotNet.Types.AssemblyFileSet Modules ()
-	{
-		.get instance default class NAnt.DotNet.Types.AssemblyFileSet NAnt.DotNet.Tasks.JscTask::get_Modules () 
-		.set instance default void NAnt.DotNet.Tasks.JscTask::set_Modules (class NAnt.DotNet.Types.AssemblyFileSet 'value') 
-	}
-	.property instance string Extension ()
-	{
-		.get instance default string NAnt.DotNet.Tasks.JscTask::get_Extension () 
-	}
-	.property instance class [System]System.Text.RegularExpressions.Regex ClassNameRegex ()
-	{
-		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::get_ClassNameRegex () 
-	}
-	.property instance class [System]System.Text.RegularExpressions.Regex NamespaceRegex ()
-	{
-		.get instance default class [System]System.Text.RegularExpressions.Regex NAnt.DotNet.Tasks.JscTask::get_NamespaceRegex () 
-	}
-  } // end of class NAnt.DotNet.Tasks.JscTask
+	  IL_00d1:  ldloc.s 7
+	  IL_00d3:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00d8:  endfinally 
+	} // end handler 1
+	IL_00d9:  ldloc.0 
+	IL_00da:  ldnull 
+	IL_00db:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_00e0:  brfalse IL_0166
+
+	IL_00e5:  nop 
+	IL_00e6:  ldarg.3 
+	IL_00e7:  ldc.i4.0 
+	IL_00e8:  ldc.i4.0 
+	IL_00e9:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool, bool)
+	IL_00ee:  stloc.0 
+	IL_00ef:  ldloc.0 
+	IL_00f0:  ldnull 
+	IL_00f1:  call bool class [mscorlib]System.Type::op_Equality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	IL_00f6:  brfalse IL_0165
+
+	IL_00fb:  nop 
+	IL_00fc:  nop 
+	IL_00fd:  ldarg.2 
+	IL_00fe:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0103:  stloc.s 9
+	.try { // 2
+	  IL_0105:  br IL_013c
+
+	  IL_010a:  ldloc.s 9
+	  IL_010c:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0111:  stloc.s 8
+	  IL_0113:  nop 
+	  IL_0114:  ldloc.s 8
+	  IL_0116:  ldstr "."
+	  IL_011b:  ldarg.3 
+	  IL_011c:  call string string::Concat(string, string, string)
+	  IL_0121:  ldc.i4.0 
+	  IL_0122:  ldc.i4.0 
+	  IL_0123:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetType(string, bool, bool)
+	  IL_0128:  stloc.0 
+	  IL_0129:  ldloc.0 
+	  IL_012a:  ldnull 
+	  IL_012b:  call bool class [mscorlib]System.Type::op_Inequality(class [mscorlib]System.Type, class [mscorlib]System.Type)
+	  IL_0130:  brfalse IL_013b
+
+	  IL_0135:  nop 
+	  IL_0136:  leave IL_0148
+
+	  IL_013b:  nop 
+	  IL_013c:  ldloc.s 9
+	  IL_013e:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0143:  brtrue IL_010a
+
+	  IL_0148:  leave IL_0164
+
+	} // end .try 2
+	finally  { // 2
+	  IL_014d:  ldloc.s 9
+	  IL_014f:  isinst [mscorlib]System.IDisposable
+	  IL_0154:  dup 
+	  IL_0155:  stloc.s 10
+	  IL_0157:  brfalse IL_0163
+
+	  IL_015c:  ldloc.s 10
+	  IL_015e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0163:  endfinally 
+	} // end handler 2
+	IL_0164:  nop 
+	IL_0165:  nop 
+	IL_0166:  ldloc.0 
+	IL_0167:  stloc.s 11
+	IL_0169:  br IL_016e
+
+	IL_016e:  ldloc.s 11
+	IL_0170:  ret 
+    } // end of method TypedValueGatherer::FindType
+
+  } // end of class TypedValueGatherer
+
+  } // end of class NAnt.DotNet.Tasks.AssemblyInfoTask
 }
 
/usr/share/NAnt/bin/NAnt.DotNetTasks.xml differs (XML 1.0 document, ASCII text, with very long lines)
--- old//usr/share/NAnt/bin/NAnt.DotNetTasks.xml	2018-06-14 00:00:00.000000000 +0000
+++ new//usr/share/NAnt/bin/NAnt.DotNetTasks.xml	2018-06-14 00:00:00.000000000 +0000
@@ -4,529 +4,340 @@
         <name>NAnt.DotNetTasks</name>
     </assembly>
     <members>
-        <member name="T:NAnt.DotNet.Types.CompilerWarning">
-             <summary>
-             Represents a compiler warning.
-             </summary>
-            </member>
-        <member name="P:NAnt.DotNet.Types.CompilerWarning.Number">
-             <summary>
-             A warning number, or comma-separated list of warnings, that you want 
-             the compiler to suppress or report.
-             </summary>
-            </member>
-        <member name="P:NAnt.DotNet.Types.CompilerWarning.IfDefined">
-             <summary>
-             If <see langword="true" /> then the element will be processed;
-             otherwise, skipped. The default is <see langword="true" />.
-             </summary>
-            </member>
-        <member name="P:NAnt.DotNet.Types.CompilerWarning.UnlessDefined">
-             <summary>
-             If <see langword="true" /> then the element will be skipped;
-             otherwise, processed. The default is <see langword="false" />.
-             </summary>
-            </member>
-        <member name="T:NAnt.DotNet.Types.Package">
-             <summary>
-             Represents a package.
-             </summary>
-            </member>
-        <member name="P:NAnt.DotNet.Types.Package.PackageName">
-             <summary>
-             Name of the package to reference. Multiple package can be specified
-             with a single element as a semi-colon separated list of 
-             package names.
-             </summary>
-            </member>
-        <member name="P:NAnt.DotNet.Types.Package.IfDefined">
-             <summary>
-             Indicates if the package should be passed to the task. 
-             If <see langword="true" /> then the package will be passed; 
-             otherwise, skipped. The default is <see langword="true" />.
-             </summary>
-            </member>
-        <member name="P:NAnt.DotNet.Types.Package.UnlessDefined">
-             <summary>
-             Indicates if the package should not be passed to the task.
-             If <see langword="false" /> then the package will be passed; 
-             otherwise, skipped. The default is <see langword="false" />.
-             </summary>
-            </member>
-        <member name="T:NAnt.DotNet.Types.DelaySign">
+        <member name="T:NAnt.DotNet.Types.DataTypeCollectionBase">
              <summary>
-             Specifies whether the generated assembly is strongly named and will
-             be signed later.
+             Base class for collections that needs to be globally referencable.
              </summary>
-             <remarks>
-               <para>
-               For backward compatibility, the following string values can also be
-               used in build files:
-               </para>
-               <list type="table">
-                 <listheader>
-                   <term>Value</term>
-                   <description>Corresponding field</description>
-                 </listheader>
-                 <item>
-                   <term>"true"</term>
-                   <description><see cref="F:NAnt.DotNet.Types.DelaySign.Yes" /></description>
-                 </item>
-                 <item>
-                   <term>"false"</term>
-                   <description><see cref="F:NAnt.DotNet.Types.DelaySign.No" /></description>
-                 </item>
-               </list>
-             </remarks>
             </member>
-        <member name="F:NAnt.DotNet.Types.DelaySign.NotSet">
+        <member name="M:NAnt.DotNet.Types.DataTypeCollectionBase.#ctor">
              <summary>
-             Not specified.
+             Initializes a new instance of the <see cref="T:NAnt.DotNet.Types.DataTypeCollectionBase" />
+             class.
              </summary>
             </member>
-        <member name="F:NAnt.DotNet.Types.DelaySign.No">
+        <member name="P:NAnt.DotNet.Types.DataTypeCollectionBase.System#Collections#ICollection#IsSynchronized">
              <summary>
-             Fully sign the assembly.
+             Gets a value indicating whether access to the collection is 
+             synchronized (thread-safe).
              </summary>
+             <value>
+             <see langword="false" />.
+             </value>
             </member>
-        <member name="F:NAnt.DotNet.Types.DelaySign.Yes">
+        <member name="P:NAnt.DotNet.Types.DataTypeCollectionBase.Count">
              <summary>
-             Only place the public key in the assembly, allowing the signature
-             to be added later.
+             Gets the number of items in the collection.
              </summary>
+             <value>
+             The number of items in the collection.
+             </value>
             </member>
-        <member name="T:NAnt.DotNet.Types.DelaySignConverter">
+        <member name="M:NAnt.DotNet.Types.DataTypeCollectionBase.CopyTo(System.Array,System.Int32)">
              <summary>
-             Specialized <see cref="T:System.ComponentModel.EnumConverter" /> that also supports 
-             case-insensitive conversion of "true" to 
-             <see cref="F:NAnt.DotNet.Types.DelaySign.Yes" /> and "false" to
-             <see cref="F:NAnt.DotNet.Types.DelaySign.No" />.
+             Copies the items of the collection to an <see cref="T:System.Array" />,
+             starting at a particular index.
              </summary>
+             <param name="array">The one-dimensional <see cref="T:System.Array" /> that is the destination of the items copied from the collection. The <see cref="T:System.Array" /> must have zero-based indexing.</param>
+             <param name="index">The zero-based index in <paramref name="array" /> at which copying begins.</param>
             </member>
-        <member name="M:NAnt.DotNet.Types.DelaySignConverter.#ctor">
+        <member name="P:NAnt.DotNet.Types.DataTypeCollectionBase.System#Collections#ICollection#SyncRoot">
              <summary>
-             Initializes a new instance of the <see cref="T:NAnt.DotNet.Types.DelaySignConverter" />
-             class.
+             Gets an object that can be used to synchronize access to the 
+             collection.
              </summary>
+             <value>
+             An object that can be used to synchronize access to the collection.
+             </value>
             </member>
-        <member name="M:NAnt.DotNet.Types.DelaySignConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
+        <member name="M:NAnt.DotNet.Types.DataTypeCollectionBase.System#Collections#IEnumerable#GetEnumerator">
              <summary>
-             Converts the given object to the type of this converter, using the 
-             specified context and culture information.
+             Returns an enumerator that can iterate through a collection.
              </summary>
-             <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext" /> that provides a format context.</param>
-             <param name="culture">A <see cref="T:System.Globalization.CultureInfo" /> object. If a <see langword="null" /> is passed, the current culture is assumed.</param>
-             <param name="value">The <see cref="T:System.Object" /> to convert.</param>
              <returns>
-             An <see cref="T:System.Object" /> that represents the converted value.
+             An <see cref="T:System.Collections.IEnumerator" /> that can be used to iterate through 
+             the collection.
              </returns>
             </member>
-        <member name="T:NAnt.DotNet.Types.ResourceFileSet">
-             <summary>
-             Specialized <see cref="T:NAnt.Core.Types.FileSet" /> class for managing resource files.
-             </summary>
-            </member>
-        <member name="M:NAnt.DotNet.Types.ResourceFileSet.#ctor">
+        <member name="P:NAnt.DotNet.Types.DataTypeCollectionBase.IsFixedSize">
              <summary>
-             Initializes a new instance of the <see cref="T:NAnt.DotNet.Types.ResourceFileSet" /> class.
+             Gets a value indicating whether the collection has a fixed size.
              </summary>
+             <value>
+             <see langword="false" />.
+             </value>
             </member>
-        <member name="M:NAnt.DotNet.Types.ResourceFileSet.#ctor(NAnt.Core.Types.FileSet)">
+        <member name="P:NAnt.DotNet.Types.DataTypeCollectionBase.IsReadOnly">
              <summary>
-             copy constructor for FileSet. Required in order to 
-             assign references of FileSet type where 
-             ResourceFileSet are used
+             Gets a value indicating whether the collection has a fixed size.
              </summary>
-             <param name="fs"></param>
+             <value>
+             <see langword="false" />.
+             </value>
             </member>
-        <member name="P:NAnt.DotNet.Types.ResourceFileSet.Prefix">
+        <member name="M:NAnt.DotNet.Types.DataTypeCollectionBase.RemoveAt(System.Int32)">
              <summary>
-             Indicates the prefix to prepend to the actual resource. 
-             This is usually the default namspace of the assembly.
+             Removes an item at a specific index.
              </summary>
+             <param name="index">The zero-based index of the item to remove.</param>
             </member>
-        <member name="P:NAnt.DotNet.Types.ResourceFileSet.DynamicPrefix">
+        <member name="M:NAnt.DotNet.Types.DataTypeCollectionBase.Clear">
              <summary>
-             Indicates whether prefixes should be dynamically generated by taking 
-             the path of the resource relative to the basedir and appending it 
-             to the specified prefix. The default is <see langword="false" />.
+             Removes all items from the collection.
              </summary>
             </member>
PE32 Mono/.Net assembly: /usr/share/NAnt/bin/NAnt.NUnit.dll
/usr/share/NAnt/bin/NAnt.NUnit.dll differs (PE32 executable (DLL) (console) Intel 80386, Mono/.Net assembly, for MS Windows)
--- old /usr/share/NAnt/bin/NAnt.NUnit.dll (monodis)
+++ new /usr/share/NAnt/bin/NAnt.NUnit.dll (monodis)
@@ -54,247 +54,6 @@
 
 .namespace NAnt.NUnit.Types
 {
-  .class public auto ansi sealed FormatterType
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.NUnit.Types.FormatterType Plain = int32(0x00000000)
-    .field public static literal  valuetype NAnt.NUnit.Types.FormatterType Xml = int32(0x00000001)
-
-  } // end of class NAnt.NUnit.Types.FormatterType
-}
-
-.namespace NAnt.NUnit.Types
-{
-  .class public auto ansi beforefieldinit FormatterElement
-  	extends [NAnt.Core]NAnt.Core.Element
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 09 66 6F 72 6D 61 74 74 65 72 00 00 ) // ...formatter..
-
-    .field  private  class NAnt.NUnit.Types.FormatterData _data
-
-    // method line 1
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2050
-	// Code size 18 (0x12)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.NUnit.Types.FormatterData::'.ctor'()
-	IL_0006:  stfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_0011:  ret 
-    } // end of method FormatterElement::.ctor
-
-    // method line 2
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.NUnit.Types.FormatterType get_Type ()  cil managed 
-    {
-        // Method begins at RVA 0x2064
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.NUnit.Types.FormatterType	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
-	IL_0007:  callvirt instance valuetype NAnt.NUnit.Types.FormatterType class NAnt.NUnit.Types.FormatterData::get_Type()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FormatterElement::get_Type
-
-    // method line 3
-    .method public hidebysig specialname 
-           instance default void set_Type (valuetype NAnt.NUnit.Types.FormatterType 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2084
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class NAnt.NUnit.Types.FormatterData::set_Type(valuetype NAnt.NUnit.Types.FormatterType)
-	IL_000d:  ret 
-    } // end of method FormatterElement::set_Type
-
-    // method line 4
-    .method public hidebysig specialname 
-           instance default string get_Extension ()  cil managed 
-    {
-        // Method begins at RVA 0x2094
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
-	IL_0007:  callvirt instance string class NAnt.NUnit.Types.FormatterData::get_Extension()
-	IL_000c:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method FormatterElement::get_Extension
-
-    // method line 5
-    .method public hidebysig specialname 
-           instance default void set_Extension (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x20b9
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class NAnt.NUnit.Types.FormatterData::set_Extension(string)
-	IL_000d:  ret 
-    } // end of method FormatterElement::set_Extension
-
-    // method line 6
-    .method public hidebysig specialname 
-           instance default bool get_UseFile ()  cil managed 
-    {
-        // Method begins at RVA 0x20c8
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
-	IL_0007:  callvirt instance bool class NAnt.NUnit.Types.FormatterData::get_UseFile()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FormatterElement::get_UseFile
-
-    // method line 7
-    .method public hidebysig specialname 
-           instance default void set_UseFile (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x20e8
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class NAnt.NUnit.Types.FormatterData::set_UseFile(bool)
-	IL_000d:  ret 
-    } // end of method FormatterElement::set_UseFile
-
-    // method line 8
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x20f8
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
-	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.NUnit.Types.FormatterData::get_OutputDirectory()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method FormatterElement::get_OutputDirectory
-
-    // method line 9
-    .method public hidebysig specialname 
-           instance default void set_OutputDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2118
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class NAnt.NUnit.Types.FormatterData::set_OutputDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_000d:  ret 
-    } // end of method FormatterElement::set_OutputDirectory
-
-    // method line 10
-    .method public hidebysig specialname 
-           instance default class NAnt.NUnit.Types.FormatterData get_Data ()  cil managed 
-    {
-        // Method begins at RVA 0x2128
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.NUnit.Types.FormatterData	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method FormatterElement::get_Data
-
-	.property instance valuetype NAnt.NUnit.Types.FormatterType Type ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 74 79 70 65 01 00 54 02 08 52 65 71 75   // ...type..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.get instance default valuetype NAnt.NUnit.Types.FormatterType NAnt.NUnit.Types.FormatterElement::get_Type () 
-		.set instance default void NAnt.NUnit.Types.FormatterElement::set_Type (valuetype NAnt.NUnit.Types.FormatterType 'value') 
-	}
-	.property instance string Extension ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 65 78 74 65 6E 73 69 6F 6E 01 00 54 02   // ...extension..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
-
-		.get instance default string NAnt.NUnit.Types.FormatterElement::get_Extension () 
-		.set instance default void NAnt.NUnit.Types.FormatterElement::set_Extension (string 'value') 
-	}
-	.property instance bool UseFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 75 73 65 66 69 6C 65 01 00 54 02 08 52   // ...usefile..T..R
-		65 71 75 69 72 65 64 00                         ) // equired.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.NUnit.Types.FormatterElement::get_UseFile () 
-		.set instance default void NAnt.NUnit.Types.FormatterElement::set_UseFile (bool 'value') 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo OutputDirectory ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 6F 75 74 70 75 74 64 69 72 01 00 54 02   // ...outputdir..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
-
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.NUnit.Types.FormatterElement::get_OutputDirectory () 
-		.set instance default void NAnt.NUnit.Types.FormatterElement::set_OutputDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance class NAnt.NUnit.Types.FormatterData Data ()
-	{
-		.get instance default class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::get_Data () 
-	}
-  } // end of class NAnt.NUnit.Types.FormatterElement
-}
-
-.namespace NAnt.NUnit.Types
-{
   .class public auto ansi serializable beforefieldinit FormatterData
   	extends [mscorlib]System.Object
   {
@@ -303,11 +62,11 @@
     .field  private  valuetype NAnt.NUnit.Types.FormatterType _formatterType
     .field  private  class [mscorlib]System.IO.DirectoryInfo _outputDirectory
 
-    // method line 11
+    // method line 1
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2143
+        // Method begins at RVA 0x2050
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -318,11 +77,11 @@
 	IL_000d:  ret 
     } // end of method FormatterData::.ctor
 
-    // method line 12
+    // method line 2
     .method public hidebysig specialname 
            instance default valuetype NAnt.NUnit.Types.FormatterType get_Type ()  cil managed 
     {
-        // Method begins at RVA 0x2154
+        // Method begins at RVA 0x2060
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -337,11 +96,11 @@
 	IL_000e:  ret 
     } // end of method FormatterData::get_Type
 
-    // method line 13
+    // method line 3
     .method public hidebysig specialname 
            instance default void set_Type (valuetype NAnt.NUnit.Types.FormatterType 'value')  cil managed 
     {
-        // Method begins at RVA 0x216f
+        // Method begins at RVA 0x207b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -351,11 +110,11 @@
 	IL_0008:  ret 
     } // end of method FormatterData::set_Type
 
-    // method line 14
+    // method line 4
     .method public hidebysig specialname 
            instance default bool get_UseFile ()  cil managed 
     {
-        // Method begins at RVA 0x217c
+        // Method begins at RVA 0x2088
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -370,11 +129,11 @@
 	IL_000e:  ret 
     } // end of method FormatterData::get_UseFile
 
-    // method line 15
+    // method line 5
     .method public hidebysig specialname 
            instance default void set_UseFile (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2197
+        // Method begins at RVA 0x20a3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -384,11 +143,11 @@
 	IL_0008:  ret 
     } // end of method FormatterData::set_UseFile
 
-    // method line 16
+    // method line 6
     .method public hidebysig specialname 
            instance default string get_Extension ()  cil managed 
     {
-        // Method begins at RVA 0x21a4
+        // Method begins at RVA 0x20b0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -403,11 +162,11 @@
 	IL_000e:  ret 
     } // end of method FormatterData::get_Extension
 
-    // method line 17
+    // method line 7
     .method public hidebysig specialname 
            instance default void set_Extension (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x21bf
+        // Method begins at RVA 0x20cb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -417,11 +176,11 @@
 	IL_0008:  ret 
     } // end of method FormatterData::set_Extension
 
-    // method line 18
+    // method line 8
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x21cc
+        // Method begins at RVA 0x20d8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -436,11 +195,11 @@
 	IL_000e:  ret 
     } // end of method FormatterData::get_OutputDirectory
 
-    // method line 19
+    // method line 9
     .method public hidebysig specialname 
            instance default void set_OutputDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x21e7
+        // Method begins at RVA 0x20f3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -481,11 +240,11 @@
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 20
+    // method line 10
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x21f1
+        // Method begins at RVA 0x20fd
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -494,11 +253,11 @@
 	IL_0007:  ret 
     } // end of method FormatterDataCollection::.ctor
 
-    // method line 21
+    // method line 11
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.NUnit.Types.FormatterDataCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x21fa
+        // Method begins at RVA 0x2106
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -510,11 +269,11 @@
 	IL_000e:  ret 
     } // end of method FormatterDataCollection::.ctor
 
-    // method line 22
+    // method line 12
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.NUnit.Types.FormatterData[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x220a
+        // Method begins at RVA 0x2116
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -526,11 +285,11 @@
 	IL_000e:  ret 
     } // end of method FormatterDataCollection::.ctor
 
-    // method line 23
+    // method line 13
     .method public hidebysig specialname 
            instance default class NAnt.NUnit.Types.FormatterData get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x221c
+        // Method begins at RVA 0x2128
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -548,11 +307,11 @@
 	IL_0019:  ret 
     } // end of method FormatterDataCollection::get_Item
 
-    // method line 24
+    // method line 14
     .method public hidebysig specialname 
            instance default void set_Item (int32 index, class NAnt.NUnit.Types.FormatterData 'value')  cil managed 
     {
-        // Method begins at RVA 0x2242
+        // Method begins at RVA 0x214e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -564,11 +323,11 @@
 	IL_000e:  ret 
     } // end of method FormatterDataCollection::set_Item
 
-    // method line 25
+    // method line 15
     .method public hidebysig 
            instance default int32 Add (class NAnt.NUnit.Types.FormatterData item)  cil managed 
     {
-        // Method begins at RVA 0x2254
+        // Method begins at RVA 0x2160
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -585,11 +344,11 @@
 	IL_0014:  ret 
     } // end of method FormatterDataCollection::Add
 
-    // method line 26
+    // method line 16
     .method public hidebysig 
            instance default void AddRange (class NAnt.NUnit.Types.FormatterData[] items)  cil managed 
     {
-        // Method begins at RVA 0x2278
+        // Method begins at RVA 0x2184
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -620,11 +379,11 @@
 	IL_0021:  ret 
     } // end of method FormatterDataCollection::AddRange
 
-    // method line 27
+    // method line 17
     .method public hidebysig 
            instance default void AddRange (class NAnt.NUnit.Types.FormatterDataCollection items)  cil managed 
     {
-        // Method begins at RVA 0x22a8
+        // Method begins at RVA 0x21b4
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -654,11 +413,11 @@
 	IL_0028:  ret 
     } // end of method FormatterDataCollection::AddRange
 
-    // method line 28
+    // method line 18
     .method public hidebysig 
            instance default bool Contains (class NAnt.NUnit.Types.FormatterData item)  cil managed 
     {
-        // Method begins at RVA 0x22e0
+        // Method begins at RVA 0x21ec
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -675,11 +434,11 @@
 	IL_0014:  ret 
     } // end of method FormatterDataCollection::Contains
 
-    // method line 29
+    // method line 19
     .method public hidebysig 
            instance default void CopyTo (class NAnt.NUnit.Types.FormatterData[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x2301
+        // Method begins at RVA 0x220d
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -691,11 +450,11 @@
 	IL_000e:  ret 
     } // end of method FormatterDataCollection::CopyTo
 
-    // method line 30
+    // method line 20
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.NUnit.Types.FormatterData item)  cil managed 
     {
-        // Method begins at RVA 0x2314
+        // Method begins at RVA 0x2220
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -712,11 +471,11 @@
 	IL_0014:  ret 
     } // end of method FormatterDataCollection::IndexOf
 
-    // method line 31
+    // method line 21
     .method public hidebysig 
            instance default void Insert (int32 index, class NAnt.NUnit.Types.FormatterData item)  cil managed 
     {
-        // Method begins at RVA 0x2335
+        // Method begins at RVA 0x2241
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -728,11 +487,11 @@
 	IL_000e:  ret 
     } // end of method FormatterDataCollection::Insert
 
-    // method line 32
+    // method line 22
     .method public hidebysig 
            instance default class NAnt.NUnit.Types.FormatterDataEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x2348
+        // Method begins at RVA 0x2254
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -747,11 +506,11 @@
 	IL_000e:  ret 
     } // end of method FormatterDataCollection::GetEnumerator
 
-    // method line 33
+    // method line 23
     .method public hidebysig 
            instance default void Remove (class NAnt.NUnit.Types.FormatterData item)  cil managed 
     {
-        // Method begins at RVA 0x2363
+        // Method begins at RVA 0x226f
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -777,11 +536,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 34
+    // method line 24
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.NUnit.Types.FormatterDataCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x2374
+        // Method begins at RVA 0x2280
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -798,11 +557,11 @@
 	IL_0015:  ret 
     } // end of method FormatterDataEnumerator::.ctor
 
-    // method line 35
+    // method line 25
     .method public hidebysig specialname 
            instance default class NAnt.NUnit.Types.FormatterData get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2398
+        // Method begins at RVA 0x22a4
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -819,11 +578,11 @@
 	IL_0018:  ret 
     } // end of method FormatterDataEnumerator::get_Current
 
-    // method line 36
+    // method line 26
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x23c0
+        // Method begins at RVA 0x22cc
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -840,11 +599,11 @@
 	IL_0013:  ret 
     } // end of method FormatterDataEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 37
+    // method line 27
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x23e0
+        // Method begins at RVA 0x22ec
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -860,11 +619,11 @@
 	IL_0013:  ret 
     } // end of method FormatterDataEnumerator::MoveNext
 
-    // method line 38
+    // method line 28
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x2400
+        // Method begins at RVA 0x230c
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -881,11 +640,11 @@
 	IL_0013:  ret 
     } // end of method FormatterDataEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 39
+    // method line 29
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x2420
+        // Method begins at RVA 0x232c
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -895,11 +654,11 @@
 	IL_000c:  ret 
     } // end of method FormatterDataEnumerator::Reset
 
-    // method line 40
+    // method line 30
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x242e
+        // Method begins at RVA 0x233a
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
@@ -929,11 +688,11 @@
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 41
+    // method line 31
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x243c
+        // Method begins at RVA 0x2348
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -942,11 +701,11 @@
 	IL_0007:  ret 
     } // end of method FormatterElementCollection::.ctor
 
-    // method line 42
+    // method line 32
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.NUnit.Types.FormatterElementCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x2445
+        // Method begins at RVA 0x2351
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -958,11 +717,11 @@
 	IL_000e:  ret 
     } // end of method FormatterElementCollection::.ctor
 
-    // method line 43
+    // method line 33
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.NUnit.Types.FormatterElement[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x2455
+        // Method begins at RVA 0x2361
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -974,11 +733,11 @@
 	IL_000e:  ret 
     } // end of method FormatterElementCollection::.ctor
 
-    // method line 44
+    // method line 34
     .method public hidebysig specialname 
            instance default class NAnt.NUnit.Types.FormatterElement get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x2468
+        // Method begins at RVA 0x2374
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -996,11 +755,11 @@
 	IL_0019:  ret 
     } // end of method FormatterElementCollection::get_Item
 
-    // method line 45
+    // method line 35
     .method public hidebysig specialname 
            instance default void set_Item (int32 index, class NAnt.NUnit.Types.FormatterElement 'value')  cil managed 
     {
-        // Method begins at RVA 0x248e
+        // Method begins at RVA 0x239a
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1012,11 +771,11 @@
 	IL_000e:  ret 
     } // end of method FormatterElementCollection::set_Item
 
-    // method line 46
+    // method line 36
     .method public hidebysig 
            instance default int32 Add (class NAnt.NUnit.Types.FormatterElement item)  cil managed 
     {
-        // Method begins at RVA 0x24a0
+        // Method begins at RVA 0x23ac
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1033,11 +792,11 @@
 	IL_0014:  ret 
     } // end of method FormatterElementCollection::Add
 
-    // method line 47
+    // method line 37
     .method public hidebysig 
            instance default void AddRange (class NAnt.NUnit.Types.FormatterElement[] items)  cil managed 
     {
-        // Method begins at RVA 0x24c4
+        // Method begins at RVA 0x23d0
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -1068,11 +827,11 @@
 	IL_0021:  ret 
     } // end of method FormatterElementCollection::AddRange
 
-    // method line 48
+    // method line 38
     .method public hidebysig 
            instance default void AddRange (class NAnt.NUnit.Types.FormatterElementCollection items)  cil managed 
     {
-        // Method begins at RVA 0x24f4
+        // Method begins at RVA 0x2400
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -1102,11 +861,11 @@
 	IL_0028:  ret 
     } // end of method FormatterElementCollection::AddRange
 
-    // method line 49
+    // method line 39
     .method public hidebysig 
            instance default bool Contains (class NAnt.NUnit.Types.FormatterElement item)  cil managed 
     {
-        // Method begins at RVA 0x252c
+        // Method begins at RVA 0x2438
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1123,11 +882,11 @@
 	IL_0014:  ret 
     } // end of method FormatterElementCollection::Contains
 
-    // method line 50
+    // method line 40
     .method public hidebysig 
            instance default void CopyTo (class NAnt.NUnit.Types.FormatterElement[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x254d
+        // Method begins at RVA 0x2459
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1139,11 +898,11 @@
 	IL_000e:  ret 
     } // end of method FormatterElementCollection::CopyTo
 
-    // method line 51
+    // method line 41
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.NUnit.Types.FormatterElement item)  cil managed 
     {
-        // Method begins at RVA 0x2560
+        // Method begins at RVA 0x246c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1160,11 +919,11 @@
 	IL_0014:  ret 
     } // end of method FormatterElementCollection::IndexOf
 
-    // method line 52
+    // method line 42
     .method public hidebysig 
            instance default void Insert (int32 index, class NAnt.NUnit.Types.FormatterElement item)  cil managed 
     {
-        // Method begins at RVA 0x2581
+        // Method begins at RVA 0x248d
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1176,11 +935,11 @@
 	IL_000e:  ret 
     } // end of method FormatterElementCollection::Insert
 
-    // method line 53
+    // method line 43
     .method public hidebysig 
            instance default class NAnt.NUnit.Types.FormatterElementEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x2594
+        // Method begins at RVA 0x24a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1195,11 +954,11 @@
 	IL_000e:  ret 
     } // end of method FormatterElementCollection::GetEnumerator
 
-    // method line 54
+    // method line 44
     .method public hidebysig 
            instance default void Remove (class NAnt.NUnit.Types.FormatterElement item)  cil managed 
     {
-        // Method begins at RVA 0x25af
+        // Method begins at RVA 0x24bb
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1225,11 +984,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 55
+    // method line 45
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.NUnit.Types.FormatterElementCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x25c0
+        // Method begins at RVA 0x24cc
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -1246,11 +1005,11 @@
 	IL_0015:  ret 
     } // end of method FormatterElementEnumerator::.ctor
 
-    // method line 56
+    // method line 46
     .method public hidebysig specialname 
            instance default class NAnt.NUnit.Types.FormatterElement get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x25e4
+        // Method begins at RVA 0x24f0
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -1267,11 +1026,11 @@
 	IL_0018:  ret 
     } // end of method FormatterElementEnumerator::get_Current
 
-    // method line 57
+    // method line 47
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x260c
+        // Method begins at RVA 0x2518
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -1288,11 +1047,11 @@
 	IL_0013:  ret 
     } // end of method FormatterElementEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 58
+    // method line 48
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x262c
+        // Method begins at RVA 0x2538
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -1308,11 +1067,11 @@
 	IL_0013:  ret 
     } // end of method FormatterElementEnumerator::MoveNext
 
-    // method line 59
+    // method line 49
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x264c
+        // Method begins at RVA 0x2558
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -1329,11 +1088,11 @@
 	IL_0013:  ret 
     } // end of method FormatterElementEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 60
+    // method line 50
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x266c
+        // Method begins at RVA 0x2578
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1343,11 +1102,11 @@
 	IL_000c:  ret 
     } // end of method FormatterElementEnumerator::Reset
 
-    // method line 61
+    // method line 51
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x267a
+        // Method begins at RVA 0x2586
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
@@ -1369,3 +1128,244 @@
   } // end of class NAnt.NUnit.Types.FormatterElementEnumerator
 }
 
+.namespace NAnt.NUnit.Types
+{
+  .class public auto ansi sealed FormatterType
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.NUnit.Types.FormatterType Plain = int32(0x00000000)
+    .field public static literal  valuetype NAnt.NUnit.Types.FormatterType Xml = int32(0x00000001)
+
+  } // end of class NAnt.NUnit.Types.FormatterType
+}
+
+.namespace NAnt.NUnit.Types
+{
+  .class public auto ansi beforefieldinit FormatterElement
+  	extends [NAnt.Core]NAnt.Core.Element
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 09 66 6F 72 6D 61 74 74 65 72 00 00 ) // ...formatter..
+
+    .field  private  class NAnt.NUnit.Types.FormatterData _data
+
+    // method line 52
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2594
+	// Code size 18 (0x12)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class NAnt.NUnit.Types.FormatterData::'.ctor'()
+	IL_0006:  stfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_0011:  ret 
+    } // end of method FormatterElement::.ctor
+
+    // method line 53
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.NUnit.Types.FormatterType get_Type ()  cil managed 
+    {
+        // Method begins at RVA 0x25a8
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.NUnit.Types.FormatterType	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
+	IL_0007:  callvirt instance valuetype NAnt.NUnit.Types.FormatterType class NAnt.NUnit.Types.FormatterData::get_Type()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FormatterElement::get_Type
+
+    // method line 54
+    .method public hidebysig specialname 
+           instance default void set_Type (valuetype NAnt.NUnit.Types.FormatterType 'value')  cil managed 
+    {
+        // Method begins at RVA 0x25c8
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class NAnt.NUnit.Types.FormatterData::set_Type(valuetype NAnt.NUnit.Types.FormatterType)
+	IL_000d:  ret 
+    } // end of method FormatterElement::set_Type
+
+    // method line 55
+    .method public hidebysig specialname 
+           instance default string get_Extension ()  cil managed 
+    {
+        // Method begins at RVA 0x25d8
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
+	IL_0007:  callvirt instance string class NAnt.NUnit.Types.FormatterData::get_Extension()
+	IL_000c:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertNullToEmpty(string)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method FormatterElement::get_Extension
+
+    // method line 56
+    .method public hidebysig specialname 
+           instance default void set_Extension (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x25fd
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class NAnt.NUnit.Types.FormatterData::set_Extension(string)
+	IL_000d:  ret 
+    } // end of method FormatterElement::set_Extension
+
+    // method line 57
+    .method public hidebysig specialname 
+           instance default bool get_UseFile ()  cil managed 
+    {
+        // Method begins at RVA 0x260c
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
+	IL_0007:  callvirt instance bool class NAnt.NUnit.Types.FormatterData::get_UseFile()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FormatterElement::get_UseFile
+
+    // method line 58
+    .method public hidebysig specialname 
+           instance default void set_UseFile (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x262c
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class NAnt.NUnit.Types.FormatterData::set_UseFile(bool)
+	IL_000d:  ret 
+    } // end of method FormatterElement::set_UseFile
+
+    // method line 59
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x263c
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
+	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.NUnit.Types.FormatterData::get_OutputDirectory()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method FormatterElement::get_OutputDirectory
+
+    // method line 60
+    .method public hidebysig specialname 
+           instance default void set_OutputDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x265c
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class NAnt.NUnit.Types.FormatterData::set_OutputDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_000d:  ret 
+    } // end of method FormatterElement::set_OutputDirectory
+
+    // method line 61
+    .method public hidebysig specialname 
+           instance default class NAnt.NUnit.Types.FormatterData get_Data ()  cil managed 
+    {
+        // Method begins at RVA 0x266c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.NUnit.Types.FormatterData	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::_data
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FormatterElement::get_Data
+
+	.property instance valuetype NAnt.NUnit.Types.FormatterType Type ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 74 79 70 65 01 00 54 02 08 52 65 71 75   // ...type..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.get instance default valuetype NAnt.NUnit.Types.FormatterType NAnt.NUnit.Types.FormatterElement::get_Type () 
+		.set instance default void NAnt.NUnit.Types.FormatterElement::set_Type (valuetype NAnt.NUnit.Types.FormatterType 'value') 
+	}
+	.property instance string Extension ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 09 65 78 74 65 6E 73 69 6F 6E 01 00 54 02   // ...extension..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+
+		.get instance default string NAnt.NUnit.Types.FormatterElement::get_Extension () 
+		.set instance default void NAnt.NUnit.Types.FormatterElement::set_Extension (string 'value') 
+	}
+	.property instance bool UseFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 75 73 65 66 69 6C 65 01 00 54 02 08 52   // ...usefile..T..R
+		65 71 75 69 72 65 64 00                         ) // equired.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.NUnit.Types.FormatterElement::get_UseFile () 
+		.set instance default void NAnt.NUnit.Types.FormatterElement::set_UseFile (bool 'value') 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo OutputDirectory ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 09 6F 75 74 70 75 74 64 69 72 01 00 54 02   // ...outputdir..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.NUnit.Types.FormatterElement::get_OutputDirectory () 
+		.set instance default void NAnt.NUnit.Types.FormatterElement::set_OutputDirectory (class [mscorlib]System.IO.DirectoryInfo 'value') 
+	}
+	.property instance class NAnt.NUnit.Types.FormatterData Data ()
+	{
+		.get instance default class NAnt.NUnit.Types.FormatterData NAnt.NUnit.Types.FormatterElement::get_Data () 
+	}
+  } // end of class NAnt.NUnit.Types.FormatterElement
+}
+
/usr/share/NAnt/bin/NAnt.NUnit.xml differs (XML 1.0 document, ASCII text)
--- old//usr/share/NAnt/bin/NAnt.NUnit.xml	2018-06-14 00:00:00.000000000 +0000
+++ new//usr/share/NAnt/bin/NAnt.NUnit.xml	2018-06-14 00:00:00.000000000 +0000
@@ -4,55 +4,6 @@
         <name>NAnt.NUnit</name>
     </assembly>
     <members>
-        <member name="T:NAnt.NUnit.Types.FormatterType">
-             <summary>
-             The built-in formatter types.
-             </summary>
-            </member>
-        <member name="F:NAnt.NUnit.Types.FormatterType.Plain">
-             <summary>
-             A plaintext formatter.
-             </summary>
-            </member>
-        <member name="F:NAnt.NUnit.Types.FormatterType.Xml">
-             <summary>
-             An XML formatter.
-             </summary>
-            </member>
-        <member name="T:NAnt.NUnit.Types.FormatterElement">
-             <summary>
-             Represents the FormatterElement of the NUnit task.
-             </summary>
-            </member>
-        <member name="P:NAnt.NUnit.Types.FormatterElement.Type">
-             <summary>
-             Type of formatter.
-             </summary>
-            </member>
-        <member name="P:NAnt.NUnit.Types.FormatterElement.Extension">
-             <summary>
-             Extension to append to the output filename.
-             </summary> 
-            </member>
-        <member name="P:NAnt.NUnit.Types.FormatterElement.UseFile">
-             <summary>
-             Determines whether output should be persisted to a file. The default 
-             is <see langword="false" />.
-             </summary> 
-            </member>
-        <member name="P:NAnt.NUnit.Types.FormatterElement.OutputDirectory">
-             <summary>
-             Specifies the directory where the output file should be written to,
-             if <see cref="P:NAnt.NUnit.Types.FormatterElement.UseFile" /> is <see langword="true" />.  If not 
-             specified, the output file will be written to the directory where
-             the test module is located.
-             </summary> 
-            </member>
-        <member name="P:NAnt.NUnit.Types.FormatterElement.Data">
-             <summary>
-             Gets the underlying <see cref="T:NAnt.NUnit.Types.FormatterData" /> for the element.
-             </summary>
-            </member>
         <member name="T:NAnt.NUnit.Types.FormatterData">
              <summary>
              Carries data specified through the formatter element.
@@ -349,5 +300,54 @@
              first element in the collection.
              </summary>
             </member>
+        <member name="T:NAnt.NUnit.Types.FormatterType">
+             <summary>
+             The built-in formatter types.
+             </summary>
+            </member>
+        <member name="F:NAnt.NUnit.Types.FormatterType.Plain">
+             <summary>
+             A plaintext formatter.
+             </summary>
+            </member>
+        <member name="F:NAnt.NUnit.Types.FormatterType.Xml">
+             <summary>
+             An XML formatter.
+             </summary>
+            </member>
+        <member name="T:NAnt.NUnit.Types.FormatterElement">
+             <summary>
+             Represents the FormatterElement of the NUnit task.
+             </summary>
+            </member>
+        <member name="P:NAnt.NUnit.Types.FormatterElement.Type">
+             <summary>
+             Type of formatter.
+             </summary>
+            </member>
+        <member name="P:NAnt.NUnit.Types.FormatterElement.Extension">
+             <summary>
+             Extension to append to the output filename.
+             </summary> 
+            </member>
+        <member name="P:NAnt.NUnit.Types.FormatterElement.UseFile">
+             <summary>
+             Determines whether output should be persisted to a file. The default 
+             is <see langword="false" />.
+             </summary> 
+            </member>
+        <member name="P:NAnt.NUnit.Types.FormatterElement.OutputDirectory">
+             <summary>
+             Specifies the directory where the output file should be written to,
+             if <see cref="P:NAnt.NUnit.Types.FormatterElement.UseFile" /> is <see langword="true" />.  If not 
+             specified, the output file will be written to the directory where
+             the test module is located.
+             </summary> 
+            </member>
+        <member name="P:NAnt.NUnit.Types.FormatterElement.Data">
+             <summary>
+             Gets the underlying <see cref="T:NAnt.NUnit.Types.FormatterData" /> for the element.
+             </summary>
+            </member>
     </members>
 </doc>
PE32 Mono/.Net assembly: /usr/share/NAnt/bin/NAnt.NUnit1Tasks.dll
/usr/share/NAnt/bin/NAnt.NUnit1Tasks.dll differs (PE32 executable (DLL) (console) Intel 80386, Mono/.Net assembly, for MS Windows)
--- old /usr/share/NAnt/bin/NAnt.NUnit1Tasks.dll (monodis)
+++ new /usr/share/NAnt/bin/NAnt.NUnit1Tasks.dll (monodis)
@@ -1,13 +1,13 @@
-.assembly extern NUnitCore
-{
-  .ver 1:11:786:40392
-  .publickeytoken = (1F D1 55 8A EB FB 1C 04 ) // ..U.....
-}
 .assembly extern mscorlib
 {
   .ver 4:0:0:0
   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
 }
+.assembly extern NUnitCore
+{
+  .ver 1:11:786:40392
+  .publickeytoken = (1F D1 55 8A EB FB 1C 04 ) // ..U.....
+}
 .assembly extern System.Xml
 {
   .ver 4:0:0:0
@@ -17,15 +17,15 @@
 {
   .ver 0:93:1:0
 }
-.assembly extern NAnt.Core
-{
-  .ver 0:93:1:0
-}
 .assembly extern System
 {
   .ver 4:0:0:0
   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
 }
+.assembly extern NAnt.Core
+{
+  .ver 0:93:1:0
+}
 .assembly 'NAnt.NUnit1Tasks'
 {
   .custom instance void class [mscorlib]System.Reflection.AssemblyDelaySignAttribute::'.ctor'(bool) =  (01 00 00 00 00 ) // .....
@@ -73,6 +73,545 @@
 
 .namespace NAnt.NUnit1.Tasks
 {
+  .class public auto ansi beforefieldinit RemoteNUnitTestRunner
+  	extends [mscorlib]System.MarshalByRefObject
+  {
+    .field  private  <BROKEN CLASS token_ 2000006 due to Could not load file or assembly 'NUnitCore, Version=1.11.786.40392, Culture=neutral, PublicKeyToken=1fd1558aebfb1c04' or one of its dependencies.> _runner
+
+    // method line 1
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.NUnit1.Types.NUnitTestData testData)  cil managed 
+    {
+        // Method begins at RVA 0x2050
+	// Code size 20 (0x14)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.MarshalByRefObject::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  newobj instance void class NAnt.NUnit1.Tasks.NUnitTestRunner::'.ctor'(class NAnt.NUnit1.Types.NUnitTestData)
+	IL_000e:  stfld class NAnt.NUnit1.Tasks.NUnitTestRunner NAnt.NUnit1.Tasks.RemoteNUnitTestRunner::_runner
+	IL_0013:  ret 
+    } // end of method RemoteNUnitTestRunner::.ctor
+
+    // method line 2
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.NUnit1.Tasks.RunnerResult get_ResultCode ()  cil managed 
+    {
+        // Method begins at RVA 0x2068
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.NUnit1.Tasks.RunnerResult	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit1.Tasks.NUnitTestRunner NAnt.NUnit1.Tasks.RemoteNUnitTestRunner::_runner
+	IL_0007:  callvirt instance valuetype NAnt.NUnit1.Tasks.RunnerResult class NAnt.NUnit1.Tasks.NUnitTestRunner::get_ResultCode()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method RemoteNUnitTestRunner::get_ResultCode
+
+    // method line 3
+    .method public hidebysig specialname 
+           instance default class NAnt.NUnit1.Types.IResultFormatterCollection get_Formatters ()  cil managed 
+    {
+        // Method begins at RVA 0x2088
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class NAnt.NUnit1.Types.IResultFormatterCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit1.Tasks.NUnitTestRunner NAnt.NUnit1.Tasks.RemoteNUnitTestRunner::_runner
+	IL_0007:  callvirt instance class NAnt.NUnit1.Types.IResultFormatterCollection class NAnt.NUnit1.Tasks.NUnitTestRunner::get_Formatters()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method RemoteNUnitTestRunner::get_Formatters
+
+    // method line 4
+    .method public hidebysig 
+           instance default void Run (string logPrefix, bool verbose)  cil managed 
+    {
+        // Method begins at RVA 0x20a8
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit1.Tasks.NUnitTestRunner NAnt.NUnit1.Tasks.RemoteNUnitTestRunner::_runner
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class NAnt.NUnit1.Tasks.NUnitTestRunner::Run(string, bool)
+	IL_000e:  ret 
+    } // end of method RemoteNUnitTestRunner::Run
+
+	.property instance valuetype NAnt.NUnit1.Tasks.RunnerResult ResultCode ()
+	{
+		.get instance default valuetype NAnt.NUnit1.Tasks.RunnerResult NAnt.NUnit1.Tasks.RemoteNUnitTestRunner::get_ResultCode () 
+	}
+	.property instance class NAnt.NUnit1.Types.IResultFormatterCollection Formatters ()
+	{
+		.get instance default class NAnt.NUnit1.Types.IResultFormatterCollection NAnt.NUnit1.Tasks.RemoteNUnitTestRunner::get_Formatters () 
+	}
+  } // end of class NAnt.NUnit1.Tasks.RemoteNUnitTestRunner
+}
+
+.namespace NAnt.NUnit1.Types
+{
+  .class public auto ansi serializable beforefieldinit IResultFormatterCollection
+  	extends [mscorlib]System.Collections.CollectionBase
+  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+
+
+    // method line 5
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x20b8
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method IResultFormatterCollection::.ctor
+
+    // method line 6
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.NUnit1.Types.IResultFormatterCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x20c1
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.NUnit1.Types.IResultFormatterCollection::AddRange(class NAnt.NUnit1.Types.IResultFormatterCollection)
+	IL_000e:  ret 
+    } // end of method IResultFormatterCollection::.ctor
+
+    // method line 7
+    .method public hidebysig specialname rtspecialname 
+           (null) cil managed 
+    {
+        // Method begins at RVA 0x20d1
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.NUnit1.Types.IResultFormatterCollection::AddRange(class NAnt.NUnit1.Types.IResultFormatter[])
+	IL_000e:  ret 
+    } // end of method IResultFormatterCollection::<NULL METHOD SIGNATURE>
+
+    // method line 8
+    .method public hidebysig specialname 
+           instance default class NAnt.NUnit1.Types.IResultFormatter get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x20e4
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.NUnit1.Types.IResultFormatter	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.NUnit1.Types.IResultFormatter
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method IResultFormatterCollection::get_Item
+
+    // method line 9
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.NUnit1.Types.IResultFormatter 'value')  cil managed 
+    {
+        // Method begins at RVA 0x210a
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method IResultFormatterCollection::set_Item
+
+    // method line 10
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.NUnit1.Types.IResultFormatter item)  cil managed 
+    {
+        // Method begins at RVA 0x211c
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method IResultFormatterCollection::Add
+
+    // method line 11
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.NUnit1.Types.IResultFormatter[] items)  cil managed 
+    {
+        // Method begins at RVA 0x2140
+	// Code size 34 (0x22)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.NUnit1.Types.IResultFormatterCollection::Add(class NAnt.NUnit1.Types.IResultFormatter)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
+
+	IL_0021:  ret 
+    } // end of method IResultFormatterCollection::AddRange
+
+    // method line 12
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.NUnit1.Types.IResultFormatterCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x2170
+	// Code size 41 (0x29)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.NUnit1.Types.IResultFormatter class NAnt.NUnit1.Types.IResultFormatterCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.NUnit1.Types.IResultFormatterCollection::Add(class NAnt.NUnit1.Types.IResultFormatter)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
+
+	IL_0028:  ret 
+    } // end of method IResultFormatterCollection::AddRange
+
+    // method line 13
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.NUnit1.Types.IResultFormatter item)  cil managed 
+    {
+        // Method begins at RVA 0x21a8
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method IResultFormatterCollection::Contains
+
+    // method line 14
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.NUnit1.Types.IResultFormatter[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x21c9
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method IResultFormatterCollection::CopyTo
+
+    // method line 15
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.NUnit1.Types.IResultFormatter item)  cil managed 
+    {
+        // Method begins at RVA 0x21dc
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method IResultFormatterCollection::IndexOf
+
+    // method line 16
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.NUnit1.Types.IResultFormatter item)  cil managed 
+    {
+        // Method begins at RVA 0x21fd
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method IResultFormatterCollection::Insert
+
+    // method line 17
+    .method public hidebysig 
+           instance default class NAnt.NUnit1.Types.IResultFormatterEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x2210
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.NUnit1.Types.IResultFormatterEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.NUnit1.Types.IResultFormatterEnumerator::'.ctor'(class NAnt.NUnit1.Types.IResultFormatterCollection)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method IResultFormatterCollection::GetEnumerator
+
+    // method line 18
+    .method public hidebysig 
+           instance default void Remove (class NAnt.NUnit1.Types.IResultFormatter item)  cil managed 
+    {
+        // Method begins at RVA 0x222b
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
+	IL_000d:  ret 
+    } // end of method IResultFormatterCollection::Remove
+
+	.property instance class NAnt.NUnit1.Types.IResultFormatter Item (int32)
+	{
+		.get instance default class NAnt.NUnit1.Types.IResultFormatter NAnt.NUnit1.Types.IResultFormatterCollection::get_Item (int32 index) 
+		.set instance default void NAnt.NUnit1.Types.IResultFormatterCollection::set_Item (int32 index, class NAnt.NUnit1.Types.IResultFormatter 'value') 
+	}
+  } // end of class NAnt.NUnit1.Types.IResultFormatterCollection
+}
+
+.namespace NAnt.NUnit1.Types
+{
+  .class public auto ansi beforefieldinit IResultFormatterEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+
+    // method line 19
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.NUnit1.Types.IResultFormatterCollection arguments)  cil managed 
+    {
+        // Method begins at RVA 0x223c
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.IResultFormatterEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method IResultFormatterEnumerator::.ctor
+
+    // method line 20
+    .method public hidebysig specialname 
+           instance default class NAnt.NUnit1.Types.IResultFormatter get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x2260
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.NUnit1.Types.IResultFormatter	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.IResultFormatterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.NUnit1.Types.IResultFormatter
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method IResultFormatterEnumerator::get_Current
+
+    // method line 21
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x2288
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.IResultFormatterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method IResultFormatterEnumerator::System.Collections.IEnumerator.get_Current
+
+    // method line 22
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x22a8
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.IResultFormatterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method IResultFormatterEnumerator::MoveNext
+
+    // method line 23
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x22c8
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.IResultFormatterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method IResultFormatterEnumerator::System.Collections.IEnumerator.MoveNext
+
+    // method line 24
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x22e8
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.IResultFormatterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method IResultFormatterEnumerator::Reset
+
+    // method line 25
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x22f6
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit1.Types.IResultFormatterEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method IResultFormatterEnumerator::System.Collections.IEnumerator.Reset
+
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.NUnit1.Types.IResultFormatterEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.NUnit1.Types.IResultFormatter Current ()
+	{
+		.get instance default class NAnt.NUnit1.Types.IResultFormatter NAnt.NUnit1.Types.IResultFormatterEnumerator::get_Current () 
+	}
+  } // end of class NAnt.NUnit1.Types.IResultFormatterEnumerator
+}
+
+.namespace NAnt.NUnit1.Tasks
+{
   .class public auto ansi sealed RunnerResult
   	extends [mscorlib]System.Enum
   {
@@ -91,15 +630,15 @@
   {
     .field  private  class NAnt.NUnit1.Types.IResultFormatterCollection _formatters
     .field  private  class NAnt.NUnit1.Types.NUnitTestData _nunittest
-    .field  private  <BROKEN CLASS token_ 1000001 due to Could not load file or assembly 'NUnitCore, Version=1.11.786.40392, Culture=neutral, PublicKeyToken=1fd1558aebfb1c04' or one of its dependencies.> _suite
-    .field  private  <BROKEN CLASS token_ 2000010 due to Could not load file or assembly 'NUnitCore, Version=1.11.786.40392, Culture=neutral, PublicKeyToken=1fd1558aebfb1c04' or one of its dependencies.> _result
+    .field  private  <BROKEN CLASS token_ 1000002 due to Could not load file or assembly 'NUnitCore, Version=1.11.786.40392, Culture=neutral, PublicKeyToken=1fd1558aebfb1c04' or one of its dependencies.> _suite
+    .field  private  <BROKEN CLASS token_ 200000d due to Could not load file or assembly 'NUnitCore, Version=1.11.786.40392, Culture=neutral, PublicKeyToken=1fd1558aebfb1c04' or one of its dependencies.> _result
     .field  private  valuetype NAnt.NUnit1.Tasks.RunnerResult _resultCode
 
-    // method line 1
+    // method line 26
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.NUnit1.Types.NUnitTestData testData)  cil managed 
     {
-        // Method begins at RVA 0x2050
+        // Method begins at RVA 0x2304
 	// Code size 102 (0x66)
 	.maxstack 3
 	.locals init (
@@ -112,7 +651,7 @@
 	IL_000d:  stfld class NAnt.NUnit1.Types.NUnitTestData NAnt.NUnit1.Tasks.NUnitTestRunner::_nunittest
 	IL_0012:  ldarg.0 
 	IL_0013:  ldnull 
-	IL_0014:  stfld <BROKEN CLASS token_ 1000001 due to Could not load file or assembly 'NUnitCore, Version=1.11.786.40392, Culture=neutral, PublicKeyToken=1fd1558aebfb1c04' or one of its dependencies.> NAnt.NUnit1.Tasks.NUnitTestRunner::_suite
+	IL_0014:  stfld <BROKEN CLASS token_ 1000002 due to Could not load file or assembly 'NUnitCore, Version=1.11.786.40392, Culture=neutral, PublicKeyToken=1fd1558aebfb1c04' or one of its dependencies.> NAnt.NUnit1.Tasks.NUnitTestRunner::_suite
 	IL_0019:  ldarg.0 
 	IL_001a:  ldnull 
 	IL_001b:  stfld class NAnt.NUnit1.Types.TestResultExtra NAnt.NUnit1.Tasks.NUnitTestRunner::_result
@@ -135,9 +674,4 @@
 	IL_004c:  ldarg.0 
 	IL_004d:  ldarg.0 
 	IL_004e:  ldloc.0 
-	IL_004f:  call instance <BROKEN CLASS token_ 1000001 due to Could not load file or assembly 'NUnitCore, Version=1.11.786.40392, Culture=neutral, PublicKeyToken=1fd1558aebfb1c04' or one of its dependencies.>(string)
-	IL_0054:  stfld <BROKEN CLASS token_ 1000001 due to Could not load file or assembly 'NUnitCore, Version=1.11.786.40392, Culture=neutral, PublicKeyToken=1fd1558aebfb1c04' or one of its dependencies.> NAnt.NUnit1.Tasks.NUnitTestRunner::_suite
-	IL_0059:  ldarg.1 
-	IL_005a:  ldarg.0 
-	IL_005b:  ldfld <BROKEN CLASS token_ 1000001 due to Could not load file or assembly 'NUnitCore, Version=1.11.786.40392, Culture=neutral, PublicKeyToken=1fd1558aebfb1c04' or one of its dependencies.> NAnt.NUnit1.Tasks.NUnitTestRunner::_suite
-	IL_0060:  callvirt Could not load signature of NAnt.NUnit1.Types.NUnitTestData:set_Suite due to: Could not load file or assembly 'NUnitCore, Version=1.11.786.40392, Culture=neutral, PublicKeyToken=1fd1558aebfb1c04' or one of its dependencies.
+	IL_004f:  call Could not load signature of NAnt.NUnit1.Tasks.NUnitTestRunner:GetSuite due to: Could not load file or assembly 'NUnitCore, Version=1.11.786.40392, Culture=neutral, PublicKeyToken=1fd1558aebfb1c04' or one of its dependencies.
/usr/share/NAnt/bin/NAnt.NUnit1Tasks.xml differs (XML 1.0 document, ASCII text)
--- old//usr/share/NAnt/bin/NAnt.NUnit1Tasks.xml	2018-06-14 00:00:00.000000000 +0000
+++ new//usr/share/NAnt/bin/NAnt.NUnit1Tasks.xml	2018-06-14 00:00:00.000000000 +0000
@@ -4,6 +4,136 @@
         <name>NAnt.NUnit1Tasks</name>
     </assembly>
     <members>
+        <member name="T:NAnt.NUnit1.Types.IResultFormatterCollection">
+             <summary>
+             Contains a strongly typed collection of <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> objects.
+             </summary>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.#ctor">
+             <summary>
+             Initializes a new instance of the <see cref="T:NAnt.NUnit1.Types.IResultFormatterCollection" /> class.
+             </summary>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.#ctor(NAnt.NUnit1.Types.IResultFormatterCollection)">
+             <summary>
+             Initializes a new instance of the <see cref="T:NAnt.NUnit1.Types.IResultFormatterCollection" /> class
+             with the specified <see cref="T:NAnt.NUnit1.Types.IResultFormatterCollection" /> instance.
+             </summary>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.#ctor(NAnt.NUnit1.Types.IResultFormatter[])">
+             <summary>
+             Initializes a new instance of the <see cref="T:NAnt.NUnit1.Types.IResultFormatterCollection" /> class
+             with the specified array of <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> instances.
+             </summary>
+            </member>
+        <member name="P:NAnt.NUnit1.Types.IResultFormatterCollection.Item(System.Int32)">
+             <summary>
+             Gets or sets the element at the specified index.
+             </summary>
+             <param name="index">The zero-based index of the element to get or set.</param>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.Add(NAnt.NUnit1.Types.IResultFormatter)">
+             <summary>
+             Adds a <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> to the end of the collection.
+             </summary>
+             <param name="item">The <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> to be added to the end of the collection.</param> 
+             <returns>The position into which the new element was inserted.</returns>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.AddRange(NAnt.NUnit1.Types.IResultFormatter[])">
+             <summary>
+             Adds the elements of a <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> array to the end of the collection.
+             </summary>
+             <param name="items">The array of <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> elements to be added to the end of the collection.</param> 
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.AddRange(NAnt.NUnit1.Types.IResultFormatterCollection)">
+             <summary>
+             Adds the elements of a <see cref="T:NAnt.NUnit1.Types.IResultFormatterCollection" /> to the end of the collection.
+             </summary>
+             <param name="items">The <see cref="T:NAnt.NUnit1.Types.IResultFormatterCollection" /> to be added to the end of the collection.</param> 
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.Contains(NAnt.NUnit1.Types.IResultFormatter)">
+             <summary>
+             Determines whether a <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> is in the collection.
+             </summary>
+             <param name="item">The <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> to locate in the collection.</param> 
+             <returns>
+             <see langword="true" /> if <paramref name="item" /> is found in the 
+             collection; otherwise, <see langword="false" />.
+             </returns>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.CopyTo(NAnt.NUnit1.Types.IResultFormatter[],System.Int32)">
+             <summary>
+             Copies the entire collection to a compatible one-dimensional array, starting at the specified index of the target array.        
+             </summary>
+             <param name="array">The one-dimensional array that is the destination of the elements copied from the collection. The array must have zero-based indexing.</param> 
+             <param name="index">The zero-based index in <paramref name="array" /> at which copying begins.</param>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.IndexOf(NAnt.NUnit1.Types.IResultFormatter)">
+             <summary>
+             Retrieves the index of a specified <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> object in the collection.
+             </summary>
+             <param name="item">The <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> object for which the index is returned.</param> 
+             <returns>
+             The index of the specified <see cref="T:NAnt.NUnit1.Types.IResultFormatter" />. If the <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> is not currently a member of the collection, it returns -1.
+             </returns>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.Insert(System.Int32,NAnt.NUnit1.Types.IResultFormatter)">
+             <summary>
+             Inserts a <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> into the collection at the specified index.
+             </summary>
+             <param name="index">The zero-based index at which <paramref name="item" /> should be inserted.</param>
+             <param name="item">The <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> to insert.</param>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.GetEnumerator">
+             <summary>
+             Returns an enumerator that can iterate through the collection.
+             </summary>
+             <returns>
+             A <see cref="T:NAnt.NUnit1.Types.IResultFormatterEnumerator" /> for the entire collection.
+             </returns>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterCollection.Remove(NAnt.NUnit1.Types.IResultFormatter)">
+             <summary>
+             Removes a member from the collection.
+             </summary>
+             <param name="item">The <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> to remove from the collection.</param>
+            </member>
+        <member name="T:NAnt.NUnit1.Types.IResultFormatterEnumerator">
+             <summary>
+             Enumerates the <see cref="T:NAnt.NUnit1.Types.IResultFormatter" /> elements of a <see cref="T:NAnt.NUnit1.Types.IResultFormatterCollection" />.
+             </summary>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterEnumerator.#ctor(NAnt.NUnit1.Types.IResultFormatterCollection)">
+             <summary>
+             Initializes a new instance of the <see cref="T:NAnt.NUnit1.Types.IResultFormatterEnumerator" /> class
+             with the specified <see cref="T:NAnt.NUnit1.Types.IResultFormatterCollection" />.
+             </summary>
+             <param name="arguments">The collection that should be enumerated.</param>
+            </member>
+        <member name="P:NAnt.NUnit1.Types.IResultFormatterEnumerator.Current">
+             <summary>
+             Gets the current element in the collection.
+             </summary>
+             <returns>
+             The current element in the collection.
+             </returns>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterEnumerator.MoveNext">
+             <summary>
+             Advances the enumerator to the next element of the collection.
+             </summary>
+             <returns>
+             <see langword="true" /> if the enumerator was successfully advanced 
+             to the next element; <see langword="false" /> if the enumerator has 
+             passed the end of the collection.
+             </returns>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.IResultFormatterEnumerator.Reset">
+             <summary>
+             Sets the enumerator to its initial position, which is before the 
+             first element in the collection.
+             </summary>
+            </member>
         <member name="P:NAnt.NUnit1.Tasks.NUnitTestRunner.Formatters">
              <summary>
              Gets the collection of registered formatters.
@@ -71,33 +201,44 @@
              its results to.
              </summary>
             </member>
-        <member name="T:NAnt.NUnit1.Types.XmlResultFormatter">
+        <member name="T:NAnt.NUnit1.Types.PlainTextFormatter">
              <summary>
-             Prints detailed information about running tests in XML format.
+             Prints information about running tests in plain text.
              </summary>
             </member>
-        <member name="M:NAnt.NUnit1.Types.XmlResultFormatter.#ctor">
-             <summary>
-             Initializes a new instance of the <see cref="T:NAnt.NUnit1.Types.XmlResultFormatter" />
-             class.
-             </summary>
+        <member name="M:NAnt.NUnit1.Types.PlainTextFormatter.SetOutput(System.IO.TextWriter)">
+             <summary>Sets the Writer the formatter is supposed to write its results to.</summary>
             </member>
-        <member name="M:NAnt.NUnit1.Types.XmlResultFormatter.SetOutput(System.IO.TextWriter)">
-             <summary>
-             Sets the <see cref="T:System.IO.TextWriter" /> the formatter is supposed to 
-             write its results to.
-             </summary>
+        <member name="M:NAnt.NUnit1.Types.PlainTextFormatter.StartTestSuite(NAnt.NUnit1.Types.NUnitTestData)">
+             <summary>Called when the whole test suite has started.</summary>
             </member>
-        <member name="M:NAnt.NUnit1.Types.XmlResultFormatter.StartTestSuite(NAnt.NUnit1.Types.NUnitTestData)">
-             <summary>
-             Called when the whole test suite has started.
-             </summary>
+        <member name="M:NAnt.NUnit1.Types.PlainTextFormatter.EndTestSuite(NAnt.NUnit1.Types.TestResultExtra)">
+             <summary>Called when the whole test suite has ended.</summary>
             </member>
-        <member name="M:NAnt.NUnit1.Types.XmlResultFormatter.EndTestSuite(NAnt.NUnit1.Types.TestResultExtra)">
+        <member name="M:NAnt.NUnit1.Types.PlainTextFormatter.FormatError(System.String,System.String)">
+             <summary>Convert a stack trace line into something that can be clicked on in an IDE output window.</summary>
+             <param name="trace">The StackTrace string, see <see cref="P:System.Exception.StackTrace" />.</param>
+             <param name="message">The string that gets appended to the end of file(line): portion.</param>
+            </member>
+        <member name="T:NAnt.NUnit1.Types.LogFormatter">
              <summary>
-             Called when the whole test suite has ended.
+             Prints information about running tests directly to the build log.
              </summary>
             </member>
+        <member name="M:NAnt.NUnit1.Types.LogFormatter.SetOutput(System.IO.TextWriter)">
+             <summary>Not used, all output goes to Log class.</summary>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.LogFormatter.StartTestSuite(NAnt.NUnit1.Types.NUnitTestData)">
+             <summary>Called when the whole test suite has started.</summary>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.LogFormatter.EndTestSuite(NAnt.NUnit1.Types.TestResultExtra)">
+             <summary>Called when the whole test suite has ended.</summary>
+            </member>
+        <member name="M:NAnt.NUnit1.Types.LogFormatter.FormatError(System.String,System.String)">
+             <summary>Convert a stack trace line into something that can be clicked on in an IDE output window.</summary>
+             <param name="trace">The StackTrace string, see <see cref="P:System.Exception.StackTrace" />.</param>
+             <param name="message">The string that gets appended to the end of file(line): portion.</param>
+            </member>
         <member name="T:NAnt.NUnit1.Types.NUnitTestCollection">
PE32 Mono/.Net assembly: /usr/share/NAnt/bin/NAnt.NUnit2Tasks.dll
/usr/share/NAnt/bin/NAnt.NUnit2Tasks.dll differs (PE32 executable (DLL) (console) Intel 80386, Mono/.Net assembly, for MS Windows)
--- old /usr/share/NAnt/bin/NAnt.NUnit2Tasks.dll (monodis)
+++ new /usr/share/NAnt/bin/NAnt.NUnit2Tasks.dll (monodis)
@@ -87,87 +87,6 @@
 
 .namespace NAnt.NUnit2.Types
 {
-  .class public auto ansi beforefieldinit Categories
-  	extends [NAnt.Core]NAnt.Core.DataTypeBase
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 0A 63 61 74 65 67 6F 72 69 65 73 00 00 ) // ...categories..
-
-    .field  private  class NAnt.NUnit2.Types.CategoryCollection _includes
-    .field  private  class NAnt.NUnit2.Types.CategoryCollection _excludes
-
-    // method line 1
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2050
-	// Code size 29 (0x1d)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.NUnit2.Types.CategoryCollection::'.ctor'()
-	IL_0006:  stfld class NAnt.NUnit2.Types.CategoryCollection NAnt.NUnit2.Types.Categories::_includes
-	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class NAnt.NUnit2.Types.CategoryCollection::'.ctor'()
-	IL_0011:  stfld class NAnt.NUnit2.Types.CategoryCollection NAnt.NUnit2.Types.Categories::_excludes
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance void class [NAnt.Core]NAnt.Core.DataTypeBase::'.ctor'()
-	IL_001c:  ret 
-    } // end of method Categories::.ctor
-
-    // method line 2
-    .method public hidebysig specialname 
-           instance default class NAnt.NUnit2.Types.CategoryCollection get_Includes ()  cil managed 
-    {
-        // Method begins at RVA 0x2070
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.NUnit2.Types.CategoryCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.NUnit2.Types.CategoryCollection NAnt.NUnit2.Types.Categories::_includes
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Categories::get_Includes
-
-    // method line 3
-    .method public hidebysig specialname 
-           instance default class NAnt.NUnit2.Types.CategoryCollection get_Excludes ()  cil managed 
-    {
-        // Method begins at RVA 0x208c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.NUnit2.Types.CategoryCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.NUnit2.Types.CategoryCollection NAnt.NUnit2.Types.Categories::_excludes
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Categories::get_Excludes
-
-	.property instance class NAnt.NUnit2.Types.CategoryCollection Includes ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 69 6E 63 6C 75 64 65 00 00 ) // ...include..
-
-		.get instance default class NAnt.NUnit2.Types.CategoryCollection NAnt.NUnit2.Types.Categories::get_Includes () 
-	}
-	.property instance class NAnt.NUnit2.Types.CategoryCollection Excludes ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 65 78 63 6C 75 64 65 00 00 ) // ...exclude..
-
-		.get instance default class NAnt.NUnit2.Types.CategoryCollection NAnt.NUnit2.Types.Categories::get_Excludes () 
-	}
-  } // end of class NAnt.NUnit2.Types.Categories
-}
-
-.namespace NAnt.NUnit2.Types
-{
   .class public auto ansi beforefieldinit Category
   	extends [NAnt.Core]NAnt.Core.Element
   {
@@ -175,11 +94,11 @@
     .field  private  bool _ifDefined
     .field  private  bool _unlessDefined
 
-    // method line 4
+    // method line 1
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x20a7
+        // Method begins at RVA 0x2050
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -190,11 +109,11 @@
 	IL_000d:  ret 
     } // end of method Category::.ctor
 
-    // method line 5
+    // method line 2
     .method public hidebysig specialname 
            instance default string get_CategoryName ()  cil managed 
     {
-        // Method begins at RVA 0x20b8
+        // Method begins at RVA 0x2060
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -209,11 +128,11 @@
 	IL_000e:  ret 
     } // end of method Category::get_CategoryName
 
-    // method line 6
+    // method line 3
     .method public hidebysig specialname 
            instance default void set_CategoryName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x20d3
+        // Method begins at RVA 0x207b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -224,11 +143,11 @@
 	IL_000d:  ret 
     } // end of method Category::set_CategoryName
 
-    // method line 7
+    // method line 4
     .method public hidebysig specialname 
            instance default bool get_IfDefined ()  cil managed 
     {
-        // Method begins at RVA 0x20e4
+        // Method begins at RVA 0x208c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -243,11 +162,11 @@
 	IL_000e:  ret 
     } // end of method Category::get_IfDefined
 
-    // method line 8
+    // method line 5
     .method public hidebysig specialname 
            instance default void set_IfDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x20ff
+        // Method begins at RVA 0x20a7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -257,11 +176,11 @@
 	IL_0008:  ret 
     } // end of method Category::set_IfDefined
 
-    // method line 9
+    // method line 6
     .method public hidebysig specialname 
            instance default bool get_UnlessDefined ()  cil managed 
     {
-        // Method begins at RVA 0x210c
+        // Method begins at RVA 0x20b4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -276,11 +195,11 @@
 	IL_000e:  ret 
     } // end of method Category::get_UnlessDefined
 
-    // method line 10
+    // method line 7
     .method public hidebysig specialname 
            instance default void set_UnlessDefined (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2127
+        // Method begins at RVA 0x20cf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -322,6 +241,87 @@
 
 .namespace NAnt.NUnit2.Types
 {
+  .class public auto ansi beforefieldinit Categories
+  	extends [NAnt.Core]NAnt.Core.DataTypeBase
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ElementNameAttribute::'.ctor'(string) =  (01 00 0A 63 61 74 65 67 6F 72 69 65 73 00 00 ) // ...categories..
+
+    .field  private  class NAnt.NUnit2.Types.CategoryCollection _includes
+    .field  private  class NAnt.NUnit2.Types.CategoryCollection _excludes
+
+    // method line 8
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x20d9
+	// Code size 29 (0x1d)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class NAnt.NUnit2.Types.CategoryCollection::'.ctor'()
+	IL_0006:  stfld class NAnt.NUnit2.Types.CategoryCollection NAnt.NUnit2.Types.Categories::_includes
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class NAnt.NUnit2.Types.CategoryCollection::'.ctor'()
+	IL_0011:  stfld class NAnt.NUnit2.Types.CategoryCollection NAnt.NUnit2.Types.Categories::_excludes
+	IL_0016:  ldarg.0 
+	IL_0017:  call instance void class [NAnt.Core]NAnt.Core.DataTypeBase::'.ctor'()
+	IL_001c:  ret 
+    } // end of method Categories::.ctor
+
+    // method line 9
+    .method public hidebysig specialname 
+           instance default class NAnt.NUnit2.Types.CategoryCollection get_Includes ()  cil managed 
+    {
+        // Method begins at RVA 0x20f8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.NUnit2.Types.CategoryCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit2.Types.CategoryCollection NAnt.NUnit2.Types.Categories::_includes
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Categories::get_Includes
+
+    // method line 10
+    .method public hidebysig specialname 
+           instance default class NAnt.NUnit2.Types.CategoryCollection get_Excludes ()  cil managed 
+    {
+        // Method begins at RVA 0x2114
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.NUnit2.Types.CategoryCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.NUnit2.Types.CategoryCollection NAnt.NUnit2.Types.Categories::_excludes
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Categories::get_Excludes
+
+	.property instance class NAnt.NUnit2.Types.CategoryCollection Includes ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 69 6E 63 6C 75 64 65 00 00 ) // ...include..
+
+		.get instance default class NAnt.NUnit2.Types.CategoryCollection NAnt.NUnit2.Types.Categories::get_Includes () 
+	}
+	.property instance class NAnt.NUnit2.Types.CategoryCollection Excludes ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute::'.ctor'(string) =  (01 00 07 65 78 63 6C 75 64 65 00 00 ) // ...exclude..
+
+		.get instance default class NAnt.NUnit2.Types.CategoryCollection NAnt.NUnit2.Types.Categories::get_Excludes () 
+	}
+  } // end of class NAnt.NUnit2.Types.Categories
+}
+
+.namespace NAnt.NUnit2.Types
+{
   .class public auto ansi serializable beforefieldinit CategoryCollection
   	extends class [mscorlib]System.Collections.ObjectModel.Collection`1<class NAnt.NUnit2.Types.Category>
   {
@@ -332,7 +332,7 @@
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2131
+        // Method begins at RVA 0x212f
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -345,7 +345,7 @@
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.Collections.Generic.IList`1<class NAnt.NUnit2.Types.Category> 'value')  cil managed 
     {
-        // Method begins at RVA 0x213a
+        // Method begins at RVA 0x2138
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -359,7 +359,7 @@
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.NUnit2.Types.CategoryCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x2144
+        // Method begins at RVA 0x2142
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -373,7 +373,7 @@
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.NUnit2.Types.Category[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x214e
+        // Method begins at RVA 0x214c
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -389,7 +389,7 @@
     .method public virtual hidebysig 
            instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0x2160
+        // Method begins at RVA 0x215c
 	// Code size 124 (0x7c)
 	.maxstack 2
 	.locals init (
@@ -458,7 +458,7 @@
     .method public hidebysig specialname 
            instance default class NAnt.NUnit2.Types.Category get_Item (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x21f8
+        // Method begins at RVA 0x21f4
 	// Code size 94 (0x5e)
 	.maxstack 2
 	.locals init (
@@ -521,7 +521,7 @@
     .method public hidebysig 
            instance default void AddRange (class [mscorlib]System.Collections.Generic.IEnumerable`1<class NAnt.NUnit2.Types.Category> items)  cil managed 
     {
-        // Method begins at RVA 0x2274
+        // Method begins at RVA 0x2270
 	// Code size 60 (0x3c)
 	.maxstack 2
 	.locals init (
@@ -568,454 +568,6 @@
   } // end of class NAnt.NUnit2.Types.CategoryCollection
 }
 
-.namespace NAnt.NUnit2.Types
-{
-  .class public auto ansi serializable beforefieldinit NUnit2TestCollection
-  	extends [mscorlib]System.Collections.CollectionBase
-  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
-
-
-    // method line 18
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x22cc
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method NUnit2TestCollection::.ctor
-
-    // method line 19
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.NUnit2.Types.NUnit2TestCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0x22d5
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.NUnit2.Types.NUnit2TestCollection::AddRange(class NAnt.NUnit2.Types.NUnit2TestCollection)
-	IL_000e:  ret 
-    } // end of method NUnit2TestCollection::.ctor
-
-    // method line 20
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.NUnit2.Types.NUnit2Test[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0x22e5
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.NUnit2.Types.NUnit2TestCollection::AddRange(class NAnt.NUnit2.Types.NUnit2Test[])
-	IL_000e:  ret 
-    } // end of method NUnit2TestCollection::.ctor
-
-    // method line 21
-    .method public hidebysig specialname 
-           instance default class NAnt.NUnit2.Types.NUnit2Test get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x22f8
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class NAnt.NUnit2.Types.NUnit2Test	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.NUnit2.Types.NUnit2Test
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
-
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method NUnit2TestCollection::get_Item
-
-    // method line 22
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.NUnit2.Types.NUnit2Test 'value')  cil managed 
-    {
-        // Method begins at RVA 0x231e
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method NUnit2TestCollection::set_Item
-
-    // method line 23
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
-    {
-        // Method begins at RVA 0x2330
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method NUnit2TestCollection::Add
-
-    // method line 24
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.NUnit2.Types.NUnit2Test[] items)  cil managed 
-    {
-        // Method begins at RVA 0x2354
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.NUnit2.Types.NUnit2TestCollection::Add(class NAnt.NUnit2.Types.NUnit2Test)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
-
-	IL_0021:  ret 
-    } // end of method NUnit2TestCollection::AddRange
-
-    // method line 25
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.NUnit2.Types.NUnit2TestCollection items)  cil managed 
-    {
-        // Method begins at RVA 0x2384
-	// Code size 41 (0x29)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.NUnit2.Types.NUnit2Test class NAnt.NUnit2.Types.NUnit2TestCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.NUnit2.Types.NUnit2TestCollection::Add(class NAnt.NUnit2.Types.NUnit2Test)
-	IL_0016:  pop 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0023:  blt IL_0008
-
-	IL_0028:  ret 
-    } // end of method NUnit2TestCollection::AddRange
-
-    // method line 26
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
-    {
-        // Method begins at RVA 0x23bc
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method NUnit2TestCollection::Contains
-
-    // method line 27
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.NUnit2.Types.NUnit2Test[] 'array', int32 index)  cil managed 
-    {
-        // Method begins at RVA 0x23dd
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method NUnit2TestCollection::CopyTo
-
-    // method line 28
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
-    {
-        // Method begins at RVA 0x23f0
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method NUnit2TestCollection::IndexOf
-
-    // method line 29
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
-    {
-        // Method begins at RVA 0x2411
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method NUnit2TestCollection::Insert
-
-    // method line 30
-    .method public hidebysig 
-           instance default class NAnt.NUnit2.Types.NUnit2TestEnumerator GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x2424
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.NUnit2.Types.NUnit2TestEnumerator	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.NUnit2.Types.NUnit2TestEnumerator::'.ctor'(class NAnt.NUnit2.Types.NUnit2TestCollection)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NUnit2TestCollection::GetEnumerator
-
-    // method line 31
-    .method public hidebysig 
-           instance default void Remove (class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
-    {
-        // Method begins at RVA 0x243f
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method NUnit2TestCollection::Remove
-
-	.property instance class NAnt.NUnit2.Types.NUnit2Test Item (int32)
-	{
-		.get instance default class NAnt.NUnit2.Types.NUnit2Test NAnt.NUnit2.Types.NUnit2TestCollection::get_Item (int32 index) 
-		.set instance default void NAnt.NUnit2.Types.NUnit2TestCollection::set_Item (int32 index, class NAnt.NUnit2.Types.NUnit2Test 'value') 
-	}
-  } // end of class NAnt.NUnit2.Types.NUnit2TestCollection
-}
-
-.namespace NAnt.NUnit2.Types
-{
-  .class public auto ansi beforefieldinit NUnit2TestEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
-
-    // method line 32
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.NUnit2.Types.NUnit2TestCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0x2450
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit2.Types.NUnit2TestEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method NUnit2TestEnumerator::.ctor
-
-    // method line 33
-    .method public hidebysig specialname 
-           instance default class NAnt.NUnit2.Types.NUnit2Test get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x2474
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.NUnit2.Types.NUnit2Test	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit2.Types.NUnit2TestEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.NUnit2.Types.NUnit2Test
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method NUnit2TestEnumerator::get_Current
-
-    // method line 34
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x249c
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		object	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit2.Types.NUnit2TestEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method NUnit2TestEnumerator::System.Collections.IEnumerator.get_Current
-
-    // method line 35
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x24bc
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit2.Types.NUnit2TestEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method NUnit2TestEnumerator::MoveNext
-
-    // method line 36
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0x24dc
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit2.Types.NUnit2TestEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method NUnit2TestEnumerator::System.Collections.IEnumerator.MoveNext
-
-    // method line 37
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x24fc
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit2.Types.NUnit2TestEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method NUnit2TestEnumerator::Reset
-
-    // method line 38
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x250a
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit2.Types.NUnit2TestEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method NUnit2TestEnumerator::System.Collections.IEnumerator.Reset
-
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.NUnit2.Types.NUnit2TestEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.NUnit2.Types.NUnit2Test Current ()
-	{
-		.get instance default class NAnt.NUnit2.Types.NUnit2Test NAnt.NUnit2.Types.NUnit2TestEnumerator::get_Current () 
-	}
-  } // end of class NAnt.NUnit2.Types.NUnit2TestEnumerator
-}
-
 .namespace NAnt.NUnit2.Tasks
 {
   .class public auto ansi beforefieldinit NUnit2Task
@@ -1028,11 +580,11 @@
     .field  private  class [mscorlib]System.Collections.Generic.List`1<class NAnt.NUnit2.Types.NUnit2Test> _tests
     .field  private  class [mscorlib]System.Collections.Generic.List`1<class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElement> _formatterElements
 
-    // method line 39
+    // method line 18
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2518
+        // Method begins at RVA 0x22c8
 	// Code size 43 (0x2b)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1052,11 +604,11 @@
 	IL_002a:  ret 
     } // end of method NUnit2Task::.ctor
 
-    // method line 40
+    // method line 19
     .method public hidebysig specialname 
            instance default bool get_HaltOnFailure ()  cil managed 
     {
-        // Method begins at RVA 0x2544
+        // Method begins at RVA 0x22f4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1071,11 +623,11 @@
 	IL_000e:  ret 
     } // end of method NUnit2Task::get_HaltOnFailure
 
-    // method line 41
+    // method line 20
     .method public hidebysig specialname 
            instance default void set_HaltOnFailure (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x255f
+        // Method begins at RVA 0x230f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1085,11 +637,11 @@
 	IL_0008:  ret 
     } // end of method NUnit2Task::set_HaltOnFailure
 
-    // method line 42
+    // method line 21
     .method public hidebysig specialname 
            instance default bool get_Labels ()  cil managed 
     {
-        // Method begins at RVA 0x256c
+        // Method begins at RVA 0x231c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1104,11 +656,11 @@
 	IL_000e:  ret 
     } // end of method NUnit2Task::get_Labels
 
-    // method line 43
+    // method line 22
     .method public hidebysig specialname 
            instance default void set_Labels (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2587
+        // Method begins at RVA 0x2337
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1118,11 +670,11 @@
 	IL_0008:  ret 
     } // end of method NUnit2Task::set_Labels
 
-    // method line 44
+    // method line 23
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Collections.Generic.List`1<class NAnt.NUnit2.Types.NUnit2Test> get_Tests ()  cil managed 
     {
-        // Method begins at RVA 0x2594
+        // Method begins at RVA 0x2344
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1137,11 +689,11 @@
 	IL_000e:  ret 
     } // end of method NUnit2Task::get_Tests
 
-    // method line 45
+    // method line 24
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Collections.Generic.List`1<class [NAnt.NUnit]NAnt.NUnit.Types.FormatterElement> get_FormatterElements ()  cil managed 
     {
-        // Method begins at RVA 0x25b0
+        // Method begins at RVA 0x2360
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1156,39 +708,39 @@
 	IL_000e:  ret 
     } // end of method NUnit2Task::get_FormatterElements
 
-    // method line 46
+    // method line 25
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x25cc
+        // Method begins at RVA 0x237c
     } // end of method NUnit2Task::ExecuteTask
 
-    // method line 47
+    // method line 26
     .method family virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2980
+        // Method begins at RVA 0x2730
     } // end of method NUnit2Task::<NULL METHOD SIGNATURE>
 
-    // method line 48
+    // method line 27
     .method private hidebysig 
            (null) cil managed 
     {
-        // Method begins at RVA 0x29a4
+        // Method begins at RVA 0x2754
     } // end of method NUnit2Task::<NULL METHOD SIGNATURE>
 
-    // method line 49
+    // method line 28
     .method private hidebysig 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2a3c
+        // Method begins at RVA 0x27ec
     } // end of method NUnit2Task::<NULL METHOD SIGNATURE>
 
-    // method line 50
+    // method line 29
     .method private hidebysig 
            instance default void CreateSummaryDocument (string resultFile, class [mscorlib]System.IO.TextWriter writer, class NAnt.NUnit2.Types.NUnit2Test test)  cil managed 
     {
-        // Method begins at RVA 0x2cb0
+        // Method begins at RVA 0x2a60
 	// Code size 39 (0x27)
 	.maxstack 4
 	.locals init (
@@ -1216,11 +768,11 @@
 	IL_0026:  ret 
     } // end of method NUnit2Task::CreateSummaryDocument
 
-    // method line 51
+    // method line 30
     .method private hidebysig 
            instance default class [System.Xml]System.Xml.XmlTextReader GetTransformReader (class NAnt.NUnit2.Types.NUnit2Test test)  cil managed 
     {
-        // Method begins at RVA 0x2ce4
+        // Method begins at RVA 0x2a94
 	// Code size 166 (0xa6)
 	.maxstack 3
 	.locals init (
@@ -1327,11 +879,11 @@
     .field  private  string currentTestName
     .field  private  bool _printLabel
 
-    // method line 52
+    // method line 31
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.IO.TextWriter outWriter, class [mscorlib]System.IO.TextWriter errorWriter)  cil managed 
     {
-        // Method begins at RVA 0x2d96
+        // Method begins at RVA 0x2b46
 	// Code size 11 (0xb)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1343,11 +895,11 @@
 	IL_000a:  ret 
     } // end of method EventCollector::.ctor
 
-    // method line 53
+    // method line 32
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [mscorlib]System.IO.TextWriter outWriter, class [mscorlib]System.IO.TextWriter errorWriter, bool labels)  cil managed 
     {
-        // Method begins at RVA 0x2da2
+        // Method begins at RVA 0x2b52
 	// Code size 40 (0x28)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1368,44 +920,44 @@
 	IL_0027:  ret 
     } // end of method EventCollector::.ctor
 
-    // method line 54
+    // method line 33
     .method public final virtual hidebysig newslot 
            instance default void RunStarted (string name, int32 testCount)  cil managed 
     {
-        // Method begins at RVA 0x2dcb
+        // Method begins at RVA 0x2b7b
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method EventCollector::RunStarted
 
-    // method line 55
+    // method line 34
     .method public final virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2dce
+        // Method begins at RVA 0x2b7e
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method EventCollector::<NULL METHOD SIGNATURE>
 
-    // method line 56
+    // method line 35
     .method public final virtual hidebysig newslot 
            instance default void RunFinished (class [mscorlib]System.Exception exception)  cil managed 
     {
-        // Method begins at RVA 0x2dd1
+        // Method begins at RVA 0x2b81
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method EventCollector::RunFinished
 
-    // method line 57
+    // method line 36
     .method public final virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2dd4
+        // Method begins at RVA 0x2b84
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1415,11 +967,11 @@
 	IL_000c:  ret 
     } // end of method EventCollector::<NULL METHOD SIGNATURE>
 
-    // method line 58
+    // method line 37
     .method public final virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2de2
+        // Method begins at RVA 0x2b92
 	// Code size 49 (0x31)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1442,33 +994,33 @@
 	IL_0030:  ret 
     } // end of method EventCollector::<NULL METHOD SIGNATURE>
 
-    // method line 59
+    // method line 38
     .method public final virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2e14
+        // Method begins at RVA 0x2bc4
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method EventCollector::<NULL METHOD SIGNATURE>
 
-    // method line 60
+    // method line 39
     .method public final virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2e17
+        // Method begins at RVA 0x2bc7
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method EventCollector::<NULL METHOD SIGNATURE>
 
-    // method line 61
+    // method line 40
     .method public final virtual hidebysig newslot 
            instance default void UnhandledException (class [mscorlib]System.Exception exception)  cil managed 
     {
-        // Method begins at RVA 0x2e1c
+        // Method begins at RVA 0x2bcc
 	// Code size 48 (0x30)
 	.maxstack 2
 	.locals init (
@@ -1491,18 +1043,18 @@
 	IL_002f:  ret 
     } // end of method EventCollector::UnhandledException
 
-    // method line 62
+    // method line 41
     .method public final virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2e58
+        // Method begins at RVA 0x2c08
     } // end of method EventCollector::<NULL METHOD SIGNATURE>
 
-    // method line 63
+    // method line 42
     .method public virtual hidebysig 
            instance default object InitializeLifetimeService ()  cil managed 
     {
-        // Method begins at RVA 0x2eac
+        // Method begins at RVA 0x2c5c
 	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
@@ -1523,6 +1075,454 @@
 
 .namespace NAnt.NUnit2.Types
 {
+  .class public auto ansi serializable beforefieldinit NUnit2TestCollection
+  	extends [mscorlib]System.Collections.CollectionBase
+  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+
+
+    // method line 43
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2c72
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method NUnit2TestCollection::.ctor
+
+    // method line 44
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.NUnit2.Types.NUnit2TestCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2c7b
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.NUnit2.Types.NUnit2TestCollection::AddRange(class NAnt.NUnit2.Types.NUnit2TestCollection)
+	IL_000e:  ret 
+    } // end of method NUnit2TestCollection::.ctor
+
+    // method line 45
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.NUnit2.Types.NUnit2Test[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2c8b
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.NUnit2.Types.NUnit2TestCollection::AddRange(class NAnt.NUnit2.Types.NUnit2Test[])
+	IL_000e:  ret 
+    } // end of method NUnit2TestCollection::.ctor
+
+    // method line 46
+    .method public hidebysig specialname 
+           instance default class NAnt.NUnit2.Types.NUnit2Test get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x2c9c
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.NUnit2.Types.NUnit2Test	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.NUnit2.Types.NUnit2Test
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method NUnit2TestCollection::get_Item
+
+    // method line 47
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.NUnit2.Types.NUnit2Test 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2cc2
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method NUnit2TestCollection::set_Item
+
+    // method line 48
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
+    {
+        // Method begins at RVA 0x2cd4
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method NUnit2TestCollection::Add
+
+    // method line 49
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.NUnit2.Types.NUnit2Test[] items)  cil managed 
+    {
+        // Method begins at RVA 0x2cf8
+	// Code size 34 (0x22)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.NUnit2.Types.NUnit2TestCollection::Add(class NAnt.NUnit2.Types.NUnit2Test)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
+
+	IL_0021:  ret 
+    } // end of method NUnit2TestCollection::AddRange
+
+    // method line 50
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.NUnit2.Types.NUnit2TestCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x2d28
+	// Code size 41 (0x29)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
+
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.NUnit2.Types.NUnit2Test class NAnt.NUnit2.Types.NUnit2TestCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.NUnit2.Types.NUnit2TestCollection::Add(class NAnt.NUnit2.Types.NUnit2Test)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
+
+	IL_0028:  ret 
+    } // end of method NUnit2TestCollection::AddRange
+
+    // method line 51
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
+    {
+        // Method begins at RVA 0x2d60
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method NUnit2TestCollection::Contains
+
+    // method line 52
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.NUnit2.Types.NUnit2Test[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x2d81
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method NUnit2TestCollection::CopyTo
+
+    // method line 53
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
+    {
+        // Method begins at RVA 0x2d94
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method NUnit2TestCollection::IndexOf
+
+    // method line 54
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
+    {
+        // Method begins at RVA 0x2db5
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method NUnit2TestCollection::Insert
+
+    // method line 55
+    .method public hidebysig 
+           instance default class NAnt.NUnit2.Types.NUnit2TestEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x2dc8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.NUnit2.Types.NUnit2TestEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.NUnit2.Types.NUnit2TestEnumerator::'.ctor'(class NAnt.NUnit2.Types.NUnit2TestCollection)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NUnit2TestCollection::GetEnumerator
+
+    // method line 56
+    .method public hidebysig 
+           instance default void Remove (class NAnt.NUnit2.Types.NUnit2Test item)  cil managed 
+    {
+        // Method begins at RVA 0x2de3
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
+	IL_000d:  ret 
+    } // end of method NUnit2TestCollection::Remove
+
+	.property instance class NAnt.NUnit2.Types.NUnit2Test Item (int32)
+	{
+		.get instance default class NAnt.NUnit2.Types.NUnit2Test NAnt.NUnit2.Types.NUnit2TestCollection::get_Item (int32 index) 
+		.set instance default void NAnt.NUnit2.Types.NUnit2TestCollection::set_Item (int32 index, class NAnt.NUnit2.Types.NUnit2Test 'value') 
+	}
+  } // end of class NAnt.NUnit2.Types.NUnit2TestCollection
+}
+
+.namespace NAnt.NUnit2.Types
+{
+  .class public auto ansi beforefieldinit NUnit2TestEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
+
+    // method line 57
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.NUnit2.Types.NUnit2TestCollection arguments)  cil managed 
+    {
+        // Method begins at RVA 0x2df4
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit2.Types.NUnit2TestEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method NUnit2TestEnumerator::.ctor
+
+    // method line 58
+    .method public hidebysig specialname 
+           instance default class NAnt.NUnit2.Types.NUnit2Test get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x2e18
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.NUnit2.Types.NUnit2Test	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit2.Types.NUnit2TestEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.NUnit2.Types.NUnit2Test
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method NUnit2TestEnumerator::get_Current
+
+    // method line 59
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x2e40
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit2.Types.NUnit2TestEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method NUnit2TestEnumerator::System.Collections.IEnumerator.get_Current
+
+    // method line 60
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x2e60
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit2.Types.NUnit2TestEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method NUnit2TestEnumerator::MoveNext
+
+    // method line 61
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x2e80
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit2.Types.NUnit2TestEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method NUnit2TestEnumerator::System.Collections.IEnumerator.MoveNext
+
+    // method line 62
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x2ea0
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit2.Types.NUnit2TestEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method NUnit2TestEnumerator::Reset
+
+    // method line 63
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x2eae
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.NUnit2.Types.NUnit2TestEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method NUnit2TestEnumerator::System.Collections.IEnumerator.Reset
+
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.NUnit2.Types.NUnit2TestEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.NUnit2.Types.NUnit2Test Current ()
+	{
+		.get instance default class NAnt.NUnit2.Types.NUnit2Test NAnt.NUnit2.Types.NUnit2TestEnumerator::get_Current () 
+	}
+  } // end of class NAnt.NUnit2.Types.NUnit2TestEnumerator
+}
+
+.namespace NAnt.NUnit2.Types
+{
   .class public auto ansi beforefieldinit NUnit2Test
   	extends [NAnt.Core]NAnt.Core.Element
   {
@@ -1541,7 +1541,7 @@
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2ec2
+        // Method begins at RVA 0x2ebc
 	// Code size 47 (0x2f)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1565,7 +1565,7 @@
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_AssemblyFile ()  cil managed 
     {
-        // Method begins at RVA 0x2ef4
+        // Method begins at RVA 0x2eec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1584,7 +1584,7 @@
     .method public hidebysig specialname 
            instance default void set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2f0f
+        // Method begins at RVA 0x2f07
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1598,7 +1598,7 @@
     .method public hidebysig specialname 
            instance default string get_TestName ()  cil managed 
     {
-        // Method begins at RVA 0x2f1c
+        // Method begins at RVA 0x2f14
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1617,7 +1617,7 @@
     .method public hidebysig specialname 
            instance default void set_TestName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2f37
+        // Method begins at RVA 0x2f2f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1631,7 +1631,7 @@
     .method public hidebysig specialname 
            instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
     {
-        // Method begins at RVA 0x2f44
+        // Method begins at RVA 0x2f3c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1650,7 +1650,7 @@
     .method public hidebysig specialname 
            instance default void set_Assemblies (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x2f5f
+        // Method begins at RVA 0x2f57
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1664,7 +1664,7 @@
     .method public hidebysig specialname 
            instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
     {
-        // Method begins at RVA 0x2f6c
+        // Method begins at RVA 0x2f64
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1683,7 +1683,7 @@
     .method public hidebysig specialname 
            instance default void set_References (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x2f87
+        // Method begins at RVA 0x2f7f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1697,7 +1697,7 @@
     .method public hidebysig specialname 
            instance default class NAnt.NUnit2.Types.Categories get_Categories ()  cil managed 
     {
-        // Method begins at RVA 0x2f94
+        // Method begins at RVA 0x2f8c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1716,7 +1716,7 @@
     .method public hidebysig specialname 
            instance default void set_Categories (class NAnt.NUnit2.Types.Categories 'value')  cil managed 
     {
-        // Method begins at RVA 0x2faf
+        // Method begins at RVA 0x2fa7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1730,7 +1730,7 @@
     .method public hidebysig specialname 
            instance default bool get_HaltOnFailure ()  cil managed 
     {
-        // Method begins at RVA 0x2fbc
+        // Method begins at RVA 0x2fb4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1749,7 +1749,7 @@
     .method public hidebysig specialname 
            instance default void set_HaltOnFailure (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2fd7
+        // Method begins at RVA 0x2fcf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1763,7 +1763,7 @@
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_XsltFile ()  cil managed 
     {
-        // Method begins at RVA 0x2fe4
+        // Method begins at RVA 0x2fdc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1782,7 +1782,7 @@
     .method public hidebysig specialname 
            instance default void set_XsltFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2fff
+        // Method begins at RVA 0x2ff7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1796,7 +1796,7 @@
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_AppConfigFile ()  cil managed 
     {
-        // Method begins at RVA 0x300c
+        // Method begins at RVA 0x3004
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1815,7 +1815,7 @@
     .method public hidebysig specialname 
            instance default void set_AppConfigFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3027
+        // Method begins at RVA 0x301f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1829,7 +1829,7 @@
     .method public hidebysig specialname 
            instance default class [System]System.Collections.Specialized.StringCollection get_TestAssemblies ()  cil managed 
     {
-        // Method begins at RVA 0x3034
+        // Method begins at RVA 0x302c
 	// Code size 66 (0x42)
 	.maxstack 2
 	.locals init (
@@ -1948,7 +1948,7 @@
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3082
+        // Method begins at RVA 0x307a
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1961,14 +1961,14 @@
     .method public hidebysig 
            (null) cil managed 
     {
-        // Method begins at RVA 0x308c
+        // Method begins at RVA 0x3084
     } // end of method NUnit2TestDomain::<NULL METHOD SIGNATURE>
 
     // method line 84
     .method public hidebysig 
            instance default void Unload ()  cil managed 
     {
-        // Method begins at RVA 0x319c
+        // Method begins at RVA 0x3194
 	// Code size 51 (0x33)
 	.maxstack 2
 	IL_0000:  nop 
@@ -2011,7 +2011,7 @@
     .method private hidebysig 
            instance default class [mscorlib]System.AppDomain CreateDomain (class [mscorlib]System.IO.DirectoryInfo basedir, class [mscorlib]System.IO.FileInfo assemblyFile, class [mscorlib]System.IO.FileInfo configFile)  cil managed 
     {
-        // Method begins at RVA 0x31f8
+        // Method begins at RVA 0x31f0
 	// Code size 122 (0x7a)
 	.maxstack 5
 	.locals init (
@@ -2069,7 +2069,7 @@
     .method private hidebysig 
            (null) cil managed 
     {
-        // Method begins at RVA 0x3280
+        // Method begins at RVA 0x3278
     } // end of method NUnit2TestDomain::<NULL METHOD SIGNATURE>
 
   .class nested private auto ansi serializable beforefieldinit AssemblyResolveHandler
@@ -2083,7 +2083,7 @@
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string[] probePaths, string[] referenceAssemblies)  cil managed 
     {
-        // Method begins at RVA 0x32d0
+        // Method begins at RVA 0x32c8
 	// Code size 77 (0x4d)
 	.maxstack 3
 	IL_0000:  ldarg.0 
@@ -2115,7 +2115,7 @@
     .method public hidebysig 
            instance default class [mscorlib]System.Reflection.Assembly ResolveAssembly (object sender, class [mscorlib]System.ResolveEventArgs args)  cil managed 
     {
-        // Method begins at RVA 0x332c
+        // Method begins at RVA 0x3324
 	// Code size 441 (0x1b9)
 	.maxstack 3
 	.locals init (
@@ -2343,7 +2343,7 @@
     .method private static hidebysig 
            default class [mscorlib]System.Reflection.Assembly TryLoad (string assemblyFile, string name, bool isFullName)  cil managed 
     {
-        // Method begins at RVA 0x3504
+        // Method begins at RVA 0x34fc
 	// Code size 101 (0x65)
 	.maxstack 2
 	.locals init (
@@ -2412,7 +2412,7 @@
     .method private hidebysig 
            instance default void AssemblyLoad (object sender, class [mscorlib]System.AssemblyLoadEventArgs args)  cil managed 
     {
-        // Method begins at RVA 0x3588
+        // Method begins at RVA 0x3580
 	// Code size 30 (0x1e)
 	.maxstack 8
 	IL_0000:  nop 
/usr/share/NAnt/bin/NAnt.NUnit2Tasks.xml differs (XML 1.0 document, ASCII text)
--- old//usr/share/NAnt/bin/NAnt.NUnit2Tasks.xml	2018-06-14 00:00:00.000000000 +0000
+++ new//usr/share/NAnt/bin/NAnt.NUnit2Tasks.xml	2018-06-14 00:00:00.000000000 +0000
@@ -4,6 +4,28 @@
         <name>NAnt.NUnit2Tasks</name>
     </assembly>
     <members>
+        <member name="T:NAnt.NUnit2.Types.Category">
+             <summary>
+             Represents a certain group of test cases or fixtures.
+             </summary>
+            </member>
+        <member name="P:NAnt.NUnit2.Types.Category.CategoryName">
+             <summary>
+             A name of a category, or comma-separated list of names.
+             </summary>
+            </member>
+        <member name="P:NAnt.NUnit2.Types.Category.IfDefined">
+             <summary>
+             If <see langword="true" /> then the category will be processed;
+             otherwise, skipped. The default is <see langword="true" />.
+             </summary>
+            </member>
+        <member name="P:NAnt.NUnit2.Types.Category.UnlessDefined">
+             <summary>
+             If <see langword="true" /> then the category will be skipped;
+             otherwise, processed. The default is <see langword="false" />.
+             </summary>
+            </member>
         <member name="T:NAnt.NUnit2.Types.Categories">
              <summary>
              Controls the categories of tests to execute using the <see cref="T:NAnt.NUnit2.Tasks.NUnit2Task" />.
@@ -43,28 +65,6 @@
              Specifies a list of categories to exclude.
              </summary>
             </member>
-        <member name="T:NAnt.NUnit2.Types.Category">
-             <summary>
-             Represents a certain group of test cases or fixtures.
-             </summary>
-            </member>
-        <member name="P:NAnt.NUnit2.Types.Category.CategoryName">
-             <summary>
-             A name of a category, or comma-separated list of names.
-             </summary>
-            </member>
-        <member name="P:NAnt.NUnit2.Types.Category.IfDefined">
-             <summary>
-             If <see langword="true" /> then the category will be processed;
-             otherwise, skipped. The default is <see langword="true" />.
-             </summary>
-            </member>
-        <member name="P:NAnt.NUnit2.Types.Category.UnlessDefined">
-             <summary>
-             If <see langword="true" /> then the category will be skipped;
-             otherwise, processed. The default is <see langword="false" />.
-             </summary>
-            </member>
         <member name="T:NAnt.NUnit2.Types.CategoryCollection">
              <summary>
              Contains a collection of <see cref="T:NAnt.NUnit2.Types.Category" /> elements.
@@ -128,6 +128,132 @@
              the collection.
              </param>
             </member>
+        <member name="T:NAnt.NUnit2.Tasks.NUnit2Task">
+             <summary>
+             Runs tests using the NUnit V2.6 framework.
+             </summary>
+             <remarks>
+               <para>
+               The <see cref="P:NAnt.NUnit2.Tasks.NUnit2Task.HaltOnFailure" /> attribute is only useful when more 
+               than one test suite is used, and you want to continue running other 
+               test suites although a test failed.
+               </para>
+               <para>
+               Set <see cref="P:NAnt.Core.Task.FailOnError" /> to <see langword="false" /> to 
+               ignore any errors and continue the build.
+               </para>
+               <para>
+               In order to run a test assembly built with NUnit 2.0 or 2.1 using 
+               <see cref="T:NAnt.NUnit2.Tasks.NUnit2Task" />, you must add the following node to your
+               test config file :
+               </para>
+               <code>
+                 <![CDATA[
+             <configuration>
+                 ...
+                 <runtime>
+                     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+                         <dependentAssembly>
+                             <assemblyIdentity name="nunit.framework" publicKeyToken="96d09a1eb7f44a77" culture="Neutral" /> 
+                             <bindingRedirect oldVersion="2.0.6.0" newVersion="2.2.8.0" /> 
+                             <bindingRedirect oldVersion="2.1.4.0" newVersion="2.2.8.0" /> 
+                         </dependentAssembly>
+                     </assemblyBinding>
+                 </runtime>
+                 ...
+             </configuration>
+                 ]]>
+               </code>
+               <para>
+               See the <see href="http://nunit.sf.net">NUnit home page</see> for more 
+               information.
+               </para>
+             </remarks>
+             <example>
+               <para>
+               Run tests in the <c>MyProject.Tests.dll</c> assembly.
+               </para>
+               <code>
+                 <![CDATA[
+             <nunit2>
+                 <formatter type="Plain" />
+                 <test assemblyname="MyProject.Tests.dll" appconfig="MyProject.Tests.dll.config" />
+             </nunit2>
+                 ]]>
+               </code>
+             </example>
+             <example>
+               <para>
+               Only run tests that are not known to fail in files listed in the <c>tests.txt</c>
+               file.
+               </para>
+               <code>
+                 <![CDATA[
+             <nunit2>
+                 <formatter type="Xml" usefile="true" extension=".xml" outputdir="${build.dir}/results" />
+                 <test>
+                     <assemblies>
+                         <includesfile name="tests.txt" />
+                     </assemblies>
+                     <categories>
+                         <exclude name="NotWorking" />
+                     </categories>
+                     <references basedir="build">
+                         <include name="Cegeka.Income.Services.dll" />
+                         <include name="Cegeka.Util.dll" />
+                     </references>
+                 </test>
+             </nunit2>
+                 ]]>
+               </code>
+             </example>
+            </member>
+        <member name="P:NAnt.NUnit2.Tasks.NUnit2Task.HaltOnFailure">
+             <summary>
+             Stop the test run if a test fails. The default is <see langword="false" />.
+             </summary>
+            </member>
+        <member name="P:NAnt.NUnit2.Tasks.NUnit2Task.Labels">
+             <summary>
+             Indicate whether or not to label the text output as the tests run.
+             </summary>
+            </member>
+        <member name="P:NAnt.NUnit2.Tasks.NUnit2Task.Tests">
+             <summary>
+             Tests to run.
+             </summary>
+            </member>
+        <member name="P:NAnt.NUnit2.Tasks.NUnit2Task.FormatterElements">
+             <summary>
+             Formatters to output results of unit tests.
+             </summary>
+            </member>
+        <member name="M:NAnt.NUnit2.Tasks.NUnit2Task.ExecuteTask">
+             <summary>
+             Runs the tests and sets up the formatters.
+             </summary>
+            </member>
+        <member name="M:NAnt.NUnit2.Tasks.NUnit2Task.GetListener(NAnt.Core.LogWriter)">
+             <summary>
+             Gets a new EventListener to use for the unit tests.
+             </summary>
+             <returns>
+             A new EventListener created with a new EventCollector that
+             is initialized with <paramref name="logWriter" />.
+             </returns>
+             <param name="logWriter">
+             Log writer to send test output to.
+             </param>
+            </member>
+        <member name="M:NAnt.NUnit2.Tasks.NUnit2Task.GetLoggingThreshold">
+             <summary>
+             Gets the logging threshold to use for a test runner based on
+             the current threshold of this task.
+             </summary>
+             <returns>
+             The logging threshold to use when running a test runner.
+             </returns>
+            </member>
         <member name="T:NAnt.NUnit2.Types.NUnit2TestCollection">
              <summary>
              Contains a strongly typed collection of <see cref="T:NAnt.NUnit2.Types.NUnit2Test" /> objects.
@@ -258,132 +384,6 @@
              first element in the collection.
              </summary>
             </member>
-        <member name="T:NAnt.NUnit2.Tasks.NUnit2Task">
-             <summary>
-             Runs tests using the NUnit V2.6 framework.
PE32 Mono/.Net assembly: /usr/share/NAnt/bin/NAnt.SourceControlTasks.dll
/usr/share/NAnt/bin/NAnt.SourceControlTasks.dll differs (PE32 executable (DLL) (console) Intel 80386, Mono/.Net assembly, for MS Windows)
--- old /usr/share/NAnt/bin/NAnt.SourceControlTasks.dll (monodis)
+++ new /usr/share/NAnt/bin/NAnt.SourceControlTasks.dll (monodis)
@@ -348,6 +348,658 @@
 
 .namespace NAnt.SourceControl.Tasks
 {
+  .class public auto ansi beforefieldinit CvsPass
+  	extends [NAnt.Core]NAnt.Core.Task
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 08 63 76 73 2D 70 61 73 73 00 00 ) // ...cvs-pass..
+
+    .field  private  string _password
+    .field  private  class [mscorlib]System.IO.FileInfo _passFile
+    .field  private  string _cvsRoot
+
+    // method line 7
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2224
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
+	IL_0006:  ret 
+    } // end of method CvsPass::.ctor
+
+    // method line 8
+    .method public hidebysig specialname 
+           instance default string get_Password ()  cil managed 
+    {
+        // Method begins at RVA 0x222c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.SourceControl.Tasks.CvsPass::_password
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CvsPass::get_Password
+
+    // method line 9
+    .method public hidebysig specialname 
+           instance default void set_Password (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2247
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.SourceControl.Tasks.CvsPass::_password
+	IL_0008:  ret 
+    } // end of method CvsPass::set_Password
+
+    // method line 10
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_PassFile ()  cil managed 
+    {
+        // Method begins at RVA 0x2254
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.CvsPass::_passFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CvsPass::get_PassFile
+
+    // method line 11
+    .method public hidebysig specialname 
+           instance default void set_PassFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x226f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.CvsPass::_passFile
+	IL_0008:  ret 
+    } // end of method CvsPass::set_PassFile
+
+    // method line 12
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_DestinationDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x227c
+	// Code size 19 (0x13)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  call string class [mscorlib]System.Environment::get_CurrentDirectory()
+	IL_0006:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_000b:  stloc.0 
+	IL_000c:  br IL_0011
+
+	IL_0011:  ldloc.0 
+	IL_0012:  ret 
+    } // end of method CvsPass::get_DestinationDirectory
+
+    // method line 13
+    .method public hidebysig specialname 
+           instance default string get_Root ()  cil managed 
+    {
+        // Method begins at RVA 0x229c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.SourceControl.Tasks.CvsPass::_cvsRoot
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CvsPass::get_Root
+
+    // method line 14
+    .method public hidebysig specialname 
+           instance default void set_Root (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x22b7
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.SourceControl.Tasks.CvsPass::_cvsRoot
+	IL_0008:  ret 
+    } // end of method CvsPass::set_Root
+
+    // method line 15
+    .method family virtual hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0x22c1
+	// Code size 31 (0x1f)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.CvsPass::get_PassFile()
+	IL_0007:  brtrue IL_001e
+
+	IL_000c:  nop 
+	IL_000d:  ldstr "'passfile' was not explicitly specified and could not be determined from environment, or found in home directory."
+	IL_0012:  ldarg.0 
+	IL_0013:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	IL_0018:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_001d:  throw 
+	IL_001e:  ret 
+    } // end of method CvsPass::Initialize
+
+    // method line 16
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x22e4
+    } // end of method CvsPass::ExecuteTask
+
+	.property instance string Password ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 70 61 73 73 77 6F 72 64 01 00 54 02 08   // ...password..T..
+		52 65 71 75 69 72 65 64 01                      ) // Required.
+
+		.get instance default string NAnt.SourceControl.Tasks.CvsPass::get_Password () 
+		.set instance default void NAnt.SourceControl.Tasks.CvsPass::set_Password (string 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo PassFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 70 61 73 73 66 69 6C 65 01 00 54 02 08   // ...passfile..T..
+		52 65 71 75 69 72 65 64 00                      ) // Required.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.CvsPass::get_PassFile () 
+		.set instance default void NAnt.SourceControl.Tasks.CvsPass::set_PassFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo DestinationDirectory ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.SourceControl.Tasks.CvsPass::get_DestinationDirectory () 
+	}
+	.property instance string Root ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 63 76 73 72 6F 6F 74 01 00 54 02 08 52   // ...cvsroot..T..R
+		65 71 75 69 72 65 64 00                         ) // equired.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.SourceControl.Tasks.CvsPass::get_Root () 
+		.set instance default void NAnt.SourceControl.Tasks.CvsPass::set_Root (string 'value') 
+	}
+  } // end of class NAnt.SourceControl.Tasks.CvsPass
+}
+
+.namespace NAnt.SourceControl.Tasks
+{
+  .class public auto ansi beforefieldinit RTagTask
+  	extends NAnt.SourceControl.Tasks.AbstractCvsTask
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 08 63 76 73 2D 72 74 61 67 00 00 ) // ...cvs-rtag..
+
+    .field  private  string _tag
+    .field private static literal  string CvsCommandName = "rtag"
+
+    // method line 17
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x35c0
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method RTagTask::.ctor
+
+    // method line 18
+    .method public hidebysig specialname 
+           instance default string get_Tag ()  cil managed 
+    {
+        // Method begins at RVA 0x35cc
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.SourceControl.Tasks.RTagTask::_tag
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method RTagTask::get_Tag
+
+    // method line 19
+    .method public hidebysig specialname 
+           instance default void set_Tag (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x35e7
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.SourceControl.Tasks.RTagTask::_tag
+	IL_0008:  ret 
+    } // end of method RTagTask::set_Tag
+
+    // method line 20
+    .method public hidebysig specialname 
+           instance default bool get_Remove ()  cil managed 
+    {
+        // Method begins at RVA 0x35f4
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "remove"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method RTagTask::get_Remove
+
+    // method line 21
+    .method public hidebysig specialname 
+           instance default void set_Remove (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3623
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "remove"
+	IL_0007:  ldstr "-d"
+	IL_000c:  ldarg.1 
+	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0012:  ret 
+    } // end of method RTagTask::set_Remove
+
+    // method line 22
+    .method public hidebysig specialname 
+           instance default bool get_MoveIfExists ()  cil managed 
+    {
+        // Method begins at RVA 0x3638
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "move-if-exists"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method RTagTask::get_MoveIfExists
+
+    // method line 23
+    .method public hidebysig specialname 
+           instance default void set_MoveIfExists (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3667
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "move-if-exists"
+	IL_0007:  ldstr "-F"
+	IL_000c:  ldarg.1 
+	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0012:  ret 
+    } // end of method RTagTask::set_MoveIfExists
+
+    // method line 24
+    .method public hidebysig specialname 
+           instance default bool get_Recursive ()  cil managed 
+    {
+        // Method begins at RVA 0x367c
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "recursive"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method RTagTask::get_Recursive
+
+    // method line 25
+    .method public hidebysig specialname 
+           instance default void set_Recursive (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x36ab
+	// Code size 39 (0x27)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "recursive"
+	IL_0007:  ldstr "-R"
+	IL_000c:  ldarg.1 
+	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0012:  ldarg.0 
+	IL_0013:  ldstr "local-only"
+	IL_0018:  ldstr "-l"
+	IL_001d:  ldarg.1 
+	IL_001e:  ldc.i4.0 
+	IL_001f:  ceq 
+	IL_0021:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0026:  ret 
+    } // end of method RTagTask::set_Recursive
+
+    // method line 26
+    .method public hidebysig specialname 
+           instance default string get_ActOnTag ()  cil managed 
+    {
+        // Method begins at RVA 0x36d4
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "act-on-tag"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method RTagTask::get_ActOnTag
+
+    // method line 27
+    .method public hidebysig specialname 
+           instance default void set_ActOnTag (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3703
+	// Code size 30 (0x1e)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "act-on-tag"
+	IL_0007:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_000c:  ldstr "-r {0}"
+	IL_0011:  ldarg.1 
+	IL_0012:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0017:  ldc.i4.1 
+	IL_0018:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_001d:  ret 
+    } // end of method RTagTask::set_ActOnTag
+
+    // method line 28
+    .method public hidebysig specialname 
+           instance default valuetype [mscorlib]System.DateTime get_ActOnDate ()  cil managed 
+    {
+        // Method begins at RVA 0x3724
+	// Code size 40 (0x28)
+	.maxstack 2
+	.locals init (
+		valuetype [mscorlib]System.DateTime	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "act-on-date"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
+	IL_001b:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.Convert::ToDateTime(string)
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
+
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method RTagTask::get_ActOnDate
+
+    // method line 29
+    .method public hidebysig specialname 
+           instance default void set_ActOnDate (valuetype [mscorlib]System.DateTime 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3758
+	// Code size 36 (0x24)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "act-on-date"
+	IL_0007:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_000c:  ldstr "-D {0}"
+	IL_0011:  ldarg.0 
+	IL_0012:  ldarg.1 
+	IL_0013:  call instance string class NAnt.SourceControl.Tasks.AbstractCvsTask::ToCvsDateTimeString(valuetype [mscorlib]System.DateTime)
+	IL_0018:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_001d:  ldc.i4.1 
+	IL_001e:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0023:  ret 
+    } // end of method RTagTask::set_ActOnDate
+
+    // method line 30
+    .method public hidebysig specialname 
+           instance default bool get_ForceHead ()  cil managed 
+    {
+        // Method begins at RVA 0x3780
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "force-head"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method RTagTask::get_ForceHead
+
+    // method line 31
+    .method public hidebysig specialname 
+           instance default void set_ForceHead (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x37af
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "force-head"
+	IL_0007:  ldstr "-f"
+	IL_000c:  ldarg.1 
+	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0012:  ret 
+    } // end of method RTagTask::set_ForceHead
+
+    // method line 32
+    .method public virtual hidebysig specialname 
+           instance default string get_CommandName ()  cil managed 
+    {
+        // Method begins at RVA 0x37c4
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldstr "rtag"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method RTagTask::get_CommandName
+
+    // method line 33
+    .method family virtual hidebysig 
+           instance default void AppendSubCommandArgs ()  cil managed 
+    {
+        // Method begins at RVA 0x37de
+	// Code size 54 (0x36)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::AppendSubCommandArgs()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance string class NAnt.SourceControl.Tasks.RTagTask::get_Tag()
+	IL_000d:  brfalse IL_0035
+
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance string class NAnt.SourceControl.Tasks.RTagTask::get_Tag()
+	IL_0018:  ldsfld string [mscorlib]System.String::Empty
+	IL_001d:  call bool string::op_Inequality(string, string)
+	IL_0022:  brfalse IL_0035
+
+	IL_0027:  nop 
+	IL_0028:  ldarg.0 
+	IL_0029:  ldarg.0 
+	IL_002a:  call instance string class NAnt.SourceControl.Tasks.RTagTask::get_Tag()
+	IL_002f:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::AddArg(string)
+	IL_0034:  nop 
+	IL_0035:  ret 
+    } // end of method RTagTask::AppendSubCommandArgs
+
+	.property instance string Tag ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 03 74 61 67 01 00 54 02 08 52 65 71 75 69   // ...tag..T..Requi
+		72 65 64 01                                     ) // red.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 02 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00 54 0E 0A 45 78 70 72 65 73 73 69 6F 6E 1D   // y.T..Expression.
+		5E 5B 41 2D 5A 61 2D 7A 30 2D 39 5D 5B 41 2D 5A   // ^[A-Za-z0-9][A-Z
+		61 2D 7A 30 2D 39 2E 5F 5C 2D 5D 2A 24          ) // a-z0-9._\-]*$
+
+		.get instance default string NAnt.SourceControl.Tasks.RTagTask::get_Tag () 
+		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_Tag (string 'value') 
+	}
+	.property instance bool Remove ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 72 65 6D 6F 76 65 01 00 54 02 08 52 65   // ...remove..T..Re
+		71 75 69 72 65 64 00                            ) // quired.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.SourceControl.Tasks.RTagTask::get_Remove () 
+		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_Remove (bool 'value') 
+	}
+	.property instance bool MoveIfExists ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0E 6D 6F 76 65 2D 69 66 2D 65 78 69 73 74   // ...move-if-exist
+		73 01 00 54 02 08 52 65 71 75 69 72 65 64 00    ) // s..T..Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.SourceControl.Tasks.RTagTask::get_MoveIfExists () 
+		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_MoveIfExists (bool 'value') 
+	}
+	.property instance bool Recursive ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 09 72 65 63 75 72 73 69 76 65 01 00 54 02   // ...recursive..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.SourceControl.Tasks.RTagTask::get_Recursive () 
+		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_Recursive (bool 'value') 
+	}
+	.property instance string ActOnTag ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0A 61 63 74 2D 6F 6E 2D 74 61 67 01 00 54   // ...act-on-tag..T
+		02 08 52 65 71 75 69 72 65 64 00                ) // ..Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 02 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00 54 0E 0A 45 78 70 72 65 73 73 69 6F 6E 1D   // y.T..Expression.
+		5E 5B 41 2D 5A 61 2D 7A 30 2D 39 5D 5B 41 2D 5A   // ^[A-Za-z0-9][A-Z
+		61 2D 7A 30 2D 39 2E 5F 5C 2D 5D 2A 24          ) // a-z0-9._\-]*$
+
+		.get instance default string NAnt.SourceControl.Tasks.RTagTask::get_ActOnTag () 
+		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_ActOnTag (string 'value') 
+	}
+	.property instance valuetype [mscorlib]System.DateTime ActOnDate ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 61 63 74 2D 6F 6E 2D 64 61 74 65 01 00   // ...act-on-date..
+		54 02 08 52 65 71 75 69 72 65 64 00             ) // T..Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.DateTimeValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default valuetype [mscorlib]System.DateTime NAnt.SourceControl.Tasks.RTagTask::get_ActOnDate () 
+		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_ActOnDate (valuetype [mscorlib]System.DateTime 'value') 
+	}
+	.property instance bool ForceHead ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0A 66 6F 72 63 65 2D 68 65 61 64 01 00 54   // ...force-head..T
+		02 08 52 65 71 75 69 72 65 64 00                ) // ..Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.SourceControl.Tasks.RTagTask::get_ForceHead () 
+		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_ForceHead (bool 'value') 
+	}
+	.property instance string CommandName ()
+	{
+		.get instance default string NAnt.SourceControl.Tasks.RTagTask::get_CommandName () 
+	}
+  } // end of class NAnt.SourceControl.Tasks.RTagTask
+}
+
+.namespace NAnt.SourceControl.Tasks
+{
   .class public auto ansi beforefieldinit CheckoutTask
   	extends NAnt.SourceControl.Tasks.AbstractCvsTask
   {
@@ -357,11 +1009,11 @@
 
     .field assembly static literal  string CvsCommandName = "checkout"
 
-    // method line 7
+    // method line 34
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x347c
+        // Method begins at RVA 0x3815
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -370,11 +1022,11 @@
 	IL_0007:  ret 
     } // end of method CheckoutTask::.ctor
 
-    // method line 8
+    // method line 35
     .method public hidebysig specialname 
            instance default string get_Revision ()  cil managed 
     {
-        // Method begins at RVA 0x3488
+        // Method begins at RVA 0x3820
 	// Code size 64 (0x40)
 	.maxstack 2
 	.locals init (
@@ -404,11 +1056,11 @@
 	IL_003f:  ret 
     } // end of method CheckoutTask::get_Revision
 
-    // method line 9
+    // method line 36
     .method public hidebysig specialname 
            instance default void set_Revision (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x34d4
+        // Method begins at RVA 0x386c
 	// Code size 66 (0x42)
 	.maxstack 5
 	IL_0000:  nop 
@@ -437,11 +1089,11 @@
 	IL_0041:  ret 
     } // end of method CheckoutTask::set_Revision
 
-    // method line 10
+    // method line 37
     .method public hidebysig specialname 
            instance default string get_StickyTag ()  cil managed 
     {
-        // Method begins at RVA 0x3524
+        // Method begins at RVA 0x38bc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -456,11 +1108,11 @@
 	IL_000e:  ret 
     } // end of method CheckoutTask::get_StickyTag
 
-    // method line 11
+    // method line 38
     .method public hidebysig specialname 
            instance default void set_StickyTag (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x353f
+        // Method begins at RVA 0x38d7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -470,11 +1122,11 @@
 	IL_0008:  ret 
     } // end of method CheckoutTask::set_StickyTag
 
-    // method line 12
+    // method line 39
     .method public hidebysig specialname 
            instance default valuetype [mscorlib]System.DateTime get_Date ()  cil managed 
     {
-        // Method begins at RVA 0x354c
+        // Method begins at RVA 0x38e4
 	// Code size 40 (0x28)
 	.maxstack 2
 	.locals init (
@@ -494,11 +1146,11 @@
 	IL_0027:  ret 
     } // end of method CheckoutTask::get_Date
 
-    // method line 13
+    // method line 40
     .method public hidebysig specialname 
            instance default void set_Date (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x3580
+        // Method begins at RVA 0x3918
 	// Code size 36 (0x24)
 	.maxstack 8
 	IL_0000:  nop 
@@ -515,11 +1167,11 @@
 	IL_0023:  ret 
     } // end of method CheckoutTask::set_Date
 
-    // method line 14
+    // method line 41
     .method public hidebysig specialname 
            instance default string get_OverrideDir ()  cil managed 
     {
-        // Method begins at RVA 0x35a8
+        // Method begins at RVA 0x3940
 	// Code size 35 (0x23)
 	.maxstack 2
 	.locals init (
@@ -538,11 +1190,11 @@
 	IL_0022:  ret 
     } // end of method CheckoutTask::get_OverrideDir
 
-    // method line 15
+    // method line 42
     .method public hidebysig specialname 
            instance default void set_OverrideDir (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x35d7
+        // Method begins at RVA 0x396f
 	// Code size 30 (0x1e)
 	.maxstack 8
 	IL_0000:  nop 
@@ -557,11 +1209,11 @@
 	IL_001d:  ret 
     } // end of method CheckoutTask::set_OverrideDir
 
-    // method line 16
+    // method line 43
     .method public hidebysig specialname 
            instance default string get_OverrideDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x35f8
+        // Method begins at RVA 0x3990
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -576,11 +1228,11 @@
 	IL_000e:  ret 
     } // end of method CheckoutTask::get_OverrideDirectory
 
-    // method line 17
+    // method line 44
     .method public hidebysig specialname 
            instance default void set_OverrideDirectory (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3613
+        // Method begins at RVA 0x39ab
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -590,11 +1242,11 @@
 	IL_0008:  ret 
     } // end of method CheckoutTask::set_OverrideDirectory
 
-    // method line 18
+    // method line 45
     .method public virtual hidebysig specialname 
            instance default string get_CommandName ()  cil managed 
     {
-        // Method begins at RVA 0x3620
+        // Method begins at RVA 0x39b8
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
@@ -681,6 +1333,546 @@
 
 .namespace NAnt.SourceControl.Tasks
 {
+  .class public auto ansi beforefieldinit ExportTask
+  	extends NAnt.SourceControl.Tasks.AbstractCvsTask
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 0A 63 76 73 2D 65 78 70 6F 72 74 00 00 ) // ...cvs-export..
+
+    .field private static literal  string CvsCommandName = "export"
+
+    // method line 46
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x39d2
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldc.i4.1 
+	IL_0009:  call instance void class NAnt.SourceControl.Tasks.ExportTask::set_Recursive(bool)
+	IL_000e:  ret 
+    } // end of method ExportTask::.ctor
+
+    // method line 47
+    .method public hidebysig specialname 
+           instance default bool get_NoShortening ()  cil managed 
+    {
+        // Method begins at RVA 0x39e4
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "no-shortening"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method ExportTask::get_NoShortening
+
+    // method line 48
+    .method public hidebysig specialname 
+           instance default void set_NoShortening (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3a13
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "no-shortening"
+	IL_0007:  ldstr "-N"
+	IL_000c:  ldarg.1 
+	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0012:  ret 
+    } // end of method ExportTask::set_NoShortening
+
+    // method line 49
+    .method public hidebysig specialname 
+           instance default bool get_ForceHead ()  cil managed 
+    {
+        // Method begins at RVA 0x3a28
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "force-head"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method ExportTask::get_ForceHead
+
+    // method line 50
+    .method public hidebysig specialname 
+           instance default void set_ForceHead (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3a57
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "force-head"
+	IL_0007:  ldstr "-f"
+	IL_000c:  ldarg.1 
+	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0012:  ret 
+    } // end of method ExportTask::set_ForceHead
+
+    // method line 51
+    .method public hidebysig specialname 
+           instance default bool get_Recursive ()  cil managed 
+    {
+        // Method begins at RVA 0x3a6c
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "recursive"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method ExportTask::get_Recursive
+
+    // method line 52
+    .method public hidebysig specialname 
+           instance default void set_Recursive (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3a9b
+	// Code size 39 (0x27)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "recursive"
+	IL_0007:  ldstr "-R"
+	IL_000c:  ldarg.1 
+	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0012:  ldarg.0 
+	IL_0013:  ldstr "local-only"
+	IL_0018:  ldstr "-l"
+	IL_001d:  ldarg.1 
+	IL_001e:  ldc.i4.0 
+	IL_001f:  ceq 
+	IL_0021:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0026:  ret 
+    } // end of method ExportTask::set_Recursive
+
+    // method line 53
+    .method public hidebysig specialname 
+           instance default string get_Revision ()  cil managed 
+    {
+        // Method begins at RVA 0x3ac4
+	// Code size 64 (0x40)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "revision"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  brtrue IL_001e
+
+	IL_0016:  nop 
+	IL_0017:  ldnull 
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_003e
+
+	IL_001e:  ldarg.0 
+	IL_001f:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0024:  ldstr "revision"
+	IL_0029:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_002e:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0033:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
+	IL_0038:  stloc.0 
+	IL_0039:  br IL_003e
+
+	IL_003e:  ldloc.0 
+	IL_003f:  ret 
+    } // end of method ExportTask::get_Revision
+
+    // method line 54
+    .method public hidebysig specialname 
+           instance default void set_Revision (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3b10
+	// Code size 66 (0x42)
+	.maxstack 5
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call bool string::IsNullOrEmpty(string)
+	IL_0007:  brfalse IL_0023
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0013:  ldstr "revision"
+	IL_0018:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
+	IL_001d:  nop 
+	IL_001e:  br IL_0041
+
+	IL_0023:  nop 
+	IL_0024:  ldarg.0 
+	IL_0025:  ldstr "revision"
+	IL_002a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_002f:  ldstr "-r {0}"
+	IL_0034:  ldarg.1 
+	IL_0035:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_003a:  ldc.i4.1 
+	IL_003b:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0040:  nop 
+	IL_0041:  ret 
+    } // end of method ExportTask::set_Revision
+
+    // method line 55
+    .method public hidebysig specialname 
+           instance default valuetype [mscorlib]System.DateTime get_Date ()  cil managed 
+    {
+        // Method begins at RVA 0x3b60
+	// Code size 40 (0x28)
+	.maxstack 2
+	.locals init (
+		valuetype [mscorlib]System.DateTime	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "date"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
+	IL_001b:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.Convert::ToDateTime(string)
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
+
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method ExportTask::get_Date
+
+    // method line 56
+    .method public hidebysig specialname 
+           instance default void set_Date (valuetype [mscorlib]System.DateTime 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3b94
+	// Code size 36 (0x24)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "date"
+	IL_0007:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_000c:  ldstr "\"-D {0}\""
+	IL_0011:  ldarg.0 
+	IL_0012:  ldarg.1 
+	IL_0013:  call instance string class NAnt.SourceControl.Tasks.AbstractCvsTask::ToCvsDateTimeString(valuetype [mscorlib]System.DateTime)
+	IL_0018:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_001d:  ldc.i4.1 
+	IL_001e:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0023:  ret 
+    } // end of method ExportTask::set_Date
+
+    // method line 57
+    .method public hidebysig specialname 
+           instance default string get_OverrideDir ()  cil managed 
+    {
+        // Method begins at RVA 0x3bbc
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "overridedir"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method ExportTask::get_OverrideDir
+
+    // method line 58
+    .method public hidebysig specialname 
+           instance default void set_OverrideDir (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3beb
+	// Code size 30 (0x1e)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "overridedir"
+	IL_0007:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_000c:  ldstr "-d{0}"
+	IL_0011:  ldarg.1 
+	IL_0012:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0017:  ldc.i4.1 
+	IL_0018:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_001d:  ret 
+    } // end of method ExportTask::set_OverrideDir
+
+    // method line 59
+    .method public virtual hidebysig specialname 
+           instance default string get_CommandName ()  cil managed 
+    {
+        // Method begins at RVA 0x3c0c
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldstr "export"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method ExportTask::get_CommandName
+
+	.property instance bool NoShortening ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 6E 6F 2D 73 68 6F 72 74 65 6E 69 6E 67   // ...no-shortening
+		01 00 54 02 08 52 65 71 75 69 72 65 64 00       ) // ..T..Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.SourceControl.Tasks.ExportTask::get_NoShortening () 
+		.set instance default void NAnt.SourceControl.Tasks.ExportTask::set_NoShortening (bool 'value') 
+	}
+	.property instance bool ForceHead ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0A 66 6F 72 63 65 2D 68 65 61 64 01 00 54   // ...force-head..T
+		02 08 52 65 71 75 69 72 65 64 00                ) // ..Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.SourceControl.Tasks.ExportTask::get_ForceHead () 
+		.set instance default void NAnt.SourceControl.Tasks.ExportTask::set_ForceHead (bool 'value') 
+	}
+	.property instance bool Recursive ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 09 72 65 63 75 72 73 69 76 65 01 00 54 02   // ...recursive..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.SourceControl.Tasks.ExportTask::get_Recursive () 
+		.set instance default void NAnt.SourceControl.Tasks.ExportTask::set_Recursive (bool 'value') 
+	}
+	.property instance string Revision ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 72 65 76 69 73 69 6F 6E 01 00 54 02 08   // ...revision..T..
+		52 65 71 75 69 72 65 64 00                      ) // Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 02 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 01 54 0E 0A 45 78 70 72 65 73 73 69 6F 6E 1D   // y.T..Expression.
+		5E 5B 41 2D 5A 61 2D 7A 30 2D 39 5D 5B 41 2D 5A   // ^[A-Za-z0-9][A-Z
+		61 2D 7A 30 2D 39 2E 5F 5C 2D 5D 2A 24          ) // a-z0-9._\-]*$
+
+		.get instance default string NAnt.SourceControl.Tasks.ExportTask::get_Revision () 
+		.set instance default void NAnt.SourceControl.Tasks.ExportTask::set_Revision (string 'value') 
+	}
+	.property instance valuetype [mscorlib]System.DateTime Date ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 64 61 74 65 01 00 54 02 08 52 65 71 75   // ...date..T..Requ
+		69 72 65 64 00                                  ) // ired.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.DateTimeValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default valuetype [mscorlib]System.DateTime NAnt.SourceControl.Tasks.ExportTask::get_Date () 
+		.set instance default void NAnt.SourceControl.Tasks.ExportTask::set_Date (valuetype [mscorlib]System.DateTime 'value') 
+	}
+	.property instance string OverrideDir ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 6F 76 65 72 72 69 64 65 64 69 72 01 00   // ...overridedir..
+		54 02 08 52 65 71 75 69 72 65 64 00             ) // T..Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 02 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00 54 0E 0A 45 78 70 72 65 73 73 69 6F 6E 1D   // y.T..Expression.
+		5E 5B 41 2D 5A 61 2D 7A 30 2D 39 5D 5B 41 2D 5A   // ^[A-Za-z0-9][A-Z
+		61 2D 7A 30 2D 39 2E 5F 5C 2D 5D 2A 24          ) // a-z0-9._\-]*$
+
+		.get instance default string NAnt.SourceControl.Tasks.ExportTask::get_OverrideDir () 
+		.set instance default void NAnt.SourceControl.Tasks.ExportTask::set_OverrideDir (string 'value') 
+	}
+	.property instance string CommandName ()
+	{
+		.get instance default string NAnt.SourceControl.Tasks.ExportTask::get_CommandName () 
+	}
+  } // end of class NAnt.SourceControl.Tasks.ExportTask
+}
+
+.namespace NAnt.SourceControl.Tasks
+{
+  .class public auto ansi beforefieldinit CvsTask
+  	extends NAnt.SourceControl.Tasks.AbstractCvsTask
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 63 76 73 00 00 ) // ...cvs..
+
+    .field  private  string _commandName
+
+    // method line 60
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x3c26
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::'.ctor'()
+	IL_0006:  ret 
+    } // end of method CvsTask::.ctor
+
+    // method line 61
+    .method public virtual hidebysig specialname 
+           instance default string get_CommandName ()  cil managed 
+    {
+        // Method begins at RVA 0x3c30
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.SourceControl.Tasks.CvsTask::_commandName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CvsTask::get_CommandName
+
+    // method line 62
+    .method public virtual hidebysig specialname 
+           instance default void set_CommandName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3c4b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.SourceControl.Tasks.CvsTask::_commandName
+	IL_0008:  ret 
+    } // end of method CvsTask::set_CommandName
+
+    // method line 63
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsModuleNeeded ()  cil managed 
+    {
+        // Method begins at RVA 0x3c58
+	// Code size 127 (0x7f)
+	.maxstack 2
+	.locals init (
+		bool	V_0,
+		string	V_1,
+		bool	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance string class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandName()
+	IL_0007:  stloc.1 
+	IL_0008:  ldloc.1 
+	IL_0009:  brfalse IL_006f
+
+	IL_000e:  ldloc.1 
+	IL_000f:  ldstr "checkout"
+	IL_0014:  call bool string::op_Equality(string, string)
+	IL_0019:  brtrue IL_0053
+
+	IL_001e:  ldloc.1 
+	IL_001f:  ldstr "update"
+	IL_0024:  call bool string::op_Equality(string, string)
+	IL_0029:  brtrue IL_005a
+
+	IL_002e:  ldloc.1 
+	IL_002f:  ldstr "commit"
+	IL_0034:  call bool string::op_Equality(string, string)
+	IL_0039:  brtrue IL_0061
+
+	IL_003e:  ldloc.1 
+	IL_003f:  ldstr "tag"
+	IL_0044:  call bool string::op_Equality(string, string)
+	IL_0049:  brtrue IL_0068
+
+	IL_004e:  br IL_006f
+
+	IL_0053:  ldc.i4.1 
+	IL_0054:  stloc.0 
+	IL_0055:  br IL_0076
+
+	IL_005a:  ldc.i4.0 
+	IL_005b:  stloc.0 
+	IL_005c:  br IL_0076
+
+	IL_0061:  ldc.i4.0 
+	IL_0062:  stloc.0 
+	IL_0063:  br IL_0076
+
+	IL_0068:  ldc.i4.0 
+	IL_0069:  stloc.0 
+	IL_006a:  br IL_0076
+
+	IL_006f:  ldc.i4.1 
+	IL_0070:  stloc.0 
+	IL_0071:  br IL_0076
+
+	IL_0076:  ldloc.0 
+	IL_0077:  stloc.2 
+	IL_0078:  br IL_007d
+
+	IL_007d:  ldloc.2 
+	IL_007e:  ret 
+    } // end of method CvsTask::get_IsModuleNeeded
+
+	.property instance string CommandName ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 63 6F 6D 6D 61 6E 64 01 00 54 02 08 52   // ...command..T..R
+		65 71 75 69 72 65 64 01                         ) // equired.
+
+		.get instance default string NAnt.SourceControl.Tasks.CvsTask::get_CommandName () 
+		.set instance default void NAnt.SourceControl.Tasks.CvsTask::set_CommandName (string 'value') 
+	}
+	.property instance bool IsModuleNeeded ()
+	{
+		.get instance default bool NAnt.SourceControl.Tasks.CvsTask::get_IsModuleNeeded () 
+	}
+  } // end of class NAnt.SourceControl.Tasks.CvsTask
+}
+
+.namespace NAnt.SourceControl.Tasks
+{
   .class public auto ansi abstract beforefieldinit AbstractSourceControlTask
   	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
   {
@@ -703,11 +1895,11 @@
     .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _fileset
     .field  private static initonly  class [log4net]log4net.ILog Logger
 
-    // method line 19
+    // method line 64
     .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2224
+        // Method begins at RVA 0x236a
 	// Code size 48 (0x30)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -728,18 +1920,18 @@
 	IL_002f:  ret 
     } // end of method AbstractSourceControlTask::.ctor
 
-    // method line 20
+    // method line 65
     .method family virtual hidebysig newslot abstract specialname 
            instance default string get_PassFileName ()  cil managed 
     {
         // Method begins at RVA 0x0
     } // end of method AbstractSourceControlTask::get_PassFileName
 
-    // method line 21
+    // method line 66
     .method family hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_VcsHome ()  cil managed 
     {
-        // Method begins at RVA 0x2258
+        // Method begins at RVA 0x239c
 	// Code size 54 (0x36)
 	.maxstack 1
 	.locals init (
@@ -773,25 +1965,25 @@
 	IL_0035:  ret 
     } // end of method AbstractSourceControlTask::get_VcsHome
 
-    // method line 22
+    // method line 67
     .method family virtual hidebysig newslot abstract specialname 
            instance default string get_VcsHomeEnv ()  cil managed 
     {
         // Method begins at RVA 0x0
     } // end of method AbstractSourceControlTask::get_VcsHomeEnv
 
-    // method line 23
+    // method line 68
     .method family virtual hidebysig newslot abstract specialname 
            instance default string get_VcsExeName ()  cil managed 
     {
         // Method begins at RVA 0x0
     } // end of method AbstractSourceControlTask::get_VcsExeName
 
-    // method line 24
+    // method line 69
     .method public virtual hidebysig newslot specialname 
            instance default string get_Root ()  cil managed 
     {
-        // Method begins at RVA 0x229c
+        // Method begins at RVA 0x23e0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -806,11 +1998,11 @@
 	IL_000e:  ret 
     } // end of method AbstractSourceControlTask::get_Root
 
-    // method line 25
+    // method line 70
     .method public virtual hidebysig newslot specialname 
            instance default void set_Root (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x22b7
+        // Method begins at RVA 0x23fb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -820,11 +2012,11 @@
 	IL_0008:  ret 
     } // end of method AbstractSourceControlTask::set_Root
 
-    // method line 26
+    // method line 71
     .method public virtual hidebysig newslot specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_DestinationDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x22c4
+        // Method begins at RVA 0x2408
 	// Code size 44 (0x2c)
 	.maxstack 2
 	.locals init (
@@ -849,11 +2041,11 @@
 	IL_002b:  ret 
     } // end of method AbstractSourceControlTask::get_DestinationDirectory
 
-    // method line 27
+    // method line 72
     .method public virtual hidebysig newslot specialname 
            instance default void set_DestinationDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x22fc
+        // Method begins at RVA 0x2440
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -863,11 +2055,11 @@
 	IL_0008:  ret 
     } // end of method AbstractSourceControlTask::set_DestinationDirectory
 
-    // method line 28
+    // method line 73
     .method public virtual hidebysig newslot specialname 
            instance default string get_Password ()  cil managed 
     {
-        // Method begins at RVA 0x2308
+        // Method begins at RVA 0x244c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -882,11 +2074,11 @@
 	IL_000e:  ret 
     } // end of method AbstractSourceControlTask::get_Password
 
-    // method line 29
+    // method line 74
     .method public virtual hidebysig newslot specialname 
            instance default void set_Password (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2323
+        // Method begins at RVA 0x2467
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -897,11 +2089,11 @@
 	IL_000d:  ret 
     } // end of method AbstractSourceControlTask::set_Password
 
-    // method line 30
+    // method line 75
     .method public virtual hidebysig newslot specialname 
            instance default class [mscorlib]System.IO.FileInfo get_PassFile ()  cil managed 
     {
-        // Method begins at RVA 0x2334
+        // Method begins at RVA 0x2478
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -916,11 +2108,11 @@
 	IL_000e:  ret 
     } // end of method AbstractSourceControlTask::get_PassFile
 
-    // method line 31
+    // method line 76
     .method public virtual hidebysig newslot specialname 
            instance default void set_PassFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x234f
+        // Method begins at RVA 0x2493
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -930,11 +2122,11 @@
 	IL_0008:  ret 
     } // end of method AbstractSourceControlTask::set_PassFile
 
-    // method line 32
+    // method line 77
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Collections.Hashtable get_GlobalOptions ()  cil managed 
     {
-        // Method begins at RVA 0x235c
+        // Method begins at RVA 0x24a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -949,11 +2141,11 @@
 	IL_000e:  ret 
     } // end of method AbstractSourceControlTask::get_GlobalOptions
 
-    // method line 33
+    // method line 78
     .method public hidebysig specialname 
            instance default void set_GlobalOptions (class [mscorlib]System.Collections.Hashtable 'value')  cil managed 
     {
-        // Method begins at RVA 0x2377
+        // Method begins at RVA 0x24bb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -963,11 +2155,11 @@
 	IL_0008:  ret 
     } // end of method AbstractSourceControlTask::set_GlobalOptions
 
-    // method line 34
+    // method line 79
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Collections.Hashtable get_CommandOptions ()  cil managed 
     {
-        // Method begins at RVA 0x2384
+        // Method begins at RVA 0x24c8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -982,11 +2174,11 @@
 	IL_000e:  ret 
     } // end of method AbstractSourceControlTask::get_CommandOptions
 
-    // method line 35
+    // method line 80
     .method public hidebysig specialname 
            instance default void set_CommandOptions (class [mscorlib]System.Collections.Hashtable 'value')  cil managed 
     {
-        // Method begins at RVA 0x239f
+        // Method begins at RVA 0x24e3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -996,11 +2188,11 @@
 	IL_0008:  ret 
     } // end of method AbstractSourceControlTask::set_CommandOptions
 
-    // method line 36
+    // method line 81
     .method public hidebysig specialname 
            instance default string get_CommandLineArguments ()  cil managed 
     {
-        // Method begins at RVA 0x23ac
+        // Method begins at RVA 0x24f0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1015,11 +2207,11 @@
 	IL_000e:  ret 
     } // end of method AbstractSourceControlTask::get_CommandLineArguments
 
-    // method line 37
+    // method line 82
     .method public hidebysig specialname 
            instance default void set_CommandLineArguments (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x23c7
+        // Method begins at RVA 0x250b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1030,11 +2222,11 @@
 	IL_000d:  ret 
     } // end of method AbstractSourceControlTask::set_CommandLineArguments
 
-    // method line 38
+    // method line 83
     .method public virtual hidebysig newslot specialname 
            instance default string get_CommandName ()  cil managed 
     {
-        // Method begins at RVA 0x23d8
+        // Method begins at RVA 0x251c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1049,11 +2241,11 @@
 	IL_000e:  ret 
     } // end of method AbstractSourceControlTask::get_CommandName
 
-    // method line 39
+    // method line 84
     .method public virtual hidebysig newslot specialname 
            instance default void set_CommandName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x23f3
+        // Method begins at RVA 0x2537
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1063,11 +2255,11 @@
 	IL_0008:  ret 
     } // end of method AbstractSourceControlTask::set_CommandName
 
-    // method line 40
+    // method line 85
     .method public virtual hidebysig newslot specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_VcsFileSet ()  cil managed 
     {
-        // Method begins at RVA 0x2400
+        // Method begins at RVA 0x2544
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1082,11 +2274,11 @@
 	IL_000e:  ret 
     } // end of method AbstractSourceControlTask::get_VcsFileSet
 
-    // method line 41
+    // method line 86
     .method public virtual hidebysig newslot specialname 
            instance default void set_VcsFileSet (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x241b
+        // Method begins at RVA 0x255f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1096,11 +2288,11 @@
 	IL_0008:  ret 
     } // end of method AbstractSourceControlTask::set_VcsFileSet
 
-    // method line 42
+    // method line 87
     .method public virtual hidebysig newslot specialname 
            instance default class [mscorlib]System.IO.FileInfo get_Ssh ()  cil managed 
     {
-        // Method begins at RVA 0x2428
+        // Method begins at RVA 0x256c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1115,11 +2307,11 @@
 	IL_000e:  ret 
     } // end of method AbstractSourceControlTask::get_Ssh
 
-    // method line 43
+    // method line 88
     .method public virtual hidebysig newslot specialname 
            instance default void set_Ssh (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2443
+        // Method begins at RVA 0x2587
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1129,18 +2321,18 @@
 	IL_0008:  ret 
     } // end of method AbstractSourceControlTask::set_Ssh
 
-    // method line 44
+    // method line 89
     .method family virtual hidebysig newslot abstract specialname 
            instance default string get_SshEnv ()  cil managed 
     {
         // Method begins at RVA 0x0
     } // end of method AbstractSourceControlTask::get_SshEnv
 
-    // method line 45
+    // method line 90
     .method public virtual hidebysig specialname 
            instance default string get_ExeName ()  cil managed 
     {
-        // Method begins at RVA 0x2450
+        // Method begins at RVA 0x2594
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1155,11 +2347,11 @@
 	IL_000e:  ret 
     } // end of method AbstractSourceControlTask::get_ExeName
 
-    // method line 46
+    // method line 91
     .method public virtual hidebysig specialname 
            instance default void set_ExeName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x246b
+        // Method begins at RVA 0x25af
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1169,11 +2361,11 @@
 	IL_0008:  ret 
     } // end of method AbstractSourceControlTask::set_ExeName
 
-    // method line 47
+    // method line 92
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x2478
+        // Method begins at RVA 0x25bc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1188,11 +2380,11 @@
 	IL_000e:  ret 
     } // end of method AbstractSourceControlTask::get_ProgramArguments
 
-    // method line 48
+    // method line 93
     .method family virtual hidebysig 
            instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
     {
-        // Method begins at RVA 0x2493
+        // Method begins at RVA 0x25d7
 	// Code size 16 (0x10)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1205,11 +2397,11 @@
 	IL_000f:  ret 
     } // end of method AbstractSourceControlTask::PrepareProcess
 
-    // method line 49
+    // method line 94
     .method family hidebysig 
            instance default void SetGlobalOption (string name, string 'value', bool 'on')  cil managed 
     {
-        // Method begins at RVA 0x24a4
+        // Method begins at RVA 0x25e8
 	// Code size 174 (0xae)
 	.maxstack 7
 	.locals init (
@@ -1284,11 +2476,11 @@
 	IL_00ad:  ret 
     } // end of method AbstractSourceControlTask::SetGlobalOption
 
-    // method line 50
+    // method line 95
     .method family hidebysig 
            instance default void SetCommandOption (string name, string 'value', bool 'on')  cil managed 
     {
-        // Method begins at RVA 0x2560
+        // Method begins at RVA 0x26a4
 	// Code size 86 (0x56)
 	.maxstack 3
 	.locals init (
@@ -1331,11 +2523,11 @@
 	IL_0055:  ret 
     } // end of method AbstractSourceControlTask::SetCommandOption
 
-    // method line 51
+    // method line 96
     .method family virtual hidebysig newslot 
            instance default void SetEnvironment (class [System]System.Diagnostics.Process process)  cil managed 
     {
-        // Method begins at RVA 0x25c4
+        // Method begins at RVA 0x2708
 	// Code size 392 (0x188)
 	.maxstack 8
 	.locals init (
@@ -1481,11 +2673,11 @@
 	IL_0187:  ret 
     } // end of method AbstractSourceControlTask::SetEnvironment
 
-    // method line 52
+    // method line 97
     .method family hidebysig 
            instance default void AppendFiles ()  cil managed 
     {
-        // Method begins at RVA 0x2768
+        // Method begins at RVA 0x28ac
 	// Code size 187 (0xbb)
 	.maxstack 4
 	.locals init (
@@ -1570,11 +2762,11 @@
 	IL_00ba:  ret 
     } // end of method AbstractSourceControlTask::AppendFiles
 
-    // method line 53
+    // method line 98
     .method family hidebysig 
            instance default class [mscorlib]System.IO.FileInfo DeriveVcsFromEnvironment ()  cil managed 
     {
-        // Method begins at RVA 0x2840
+        // Method begins at RVA 0x2984
 	// Code size 55 (0x37)
 	.maxstack 3
 	.locals init (
@@ -1607,11 +2799,11 @@
 	IL_0036:  ret 
     } // end of method AbstractSourceControlTask::DeriveVcsFromEnvironment
 
-    // method line 54
+    // method line 99
     .method private hidebysig 
            instance default class [mscorlib]System.IO.FileInfo DeriveFullPathFromEnv (string environmentVar, string fileName)  cil managed 
     {
-        // Method begins at RVA 0x2884
+        // Method begins at RVA 0x29c8
 	// Code size 391 (0x187)
 	.maxstack 7
 	.locals init (
@@ -1787,11 +2979,11 @@
 	IL_0186:  ret 
     } // end of method AbstractSourceControlTask::DeriveFullPathFromEnv
 
-    // method line 55
+    // method line 100
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2a17
+        // Method begins at RVA 0x2b5b
 	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
@@ -1913,6 +3105,558 @@
 
 .namespace NAnt.SourceControl.Tasks
 {
+  .class public auto ansi beforefieldinit TagTask
+  	extends NAnt.SourceControl.Tasks.AbstractCvsTask
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 63 76 73 2D 74 61 67 00 00 ) // ...cvs-tag..
+
+    .field  private  string _tag
+    .field assembly static literal  string CvsCommandName = "tag"
+
+    // method line 101
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x3ce3
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method TagTask::.ctor
+
+    // method line 102
+    .method public hidebysig specialname 
+           instance default string get_Tag ()  cil managed 
+    {
+        // Method begins at RVA 0x3cec
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.SourceControl.Tasks.TagTask::_tag
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TagTask::get_Tag
+
+    // method line 103
+    .method public hidebysig specialname 
+           instance default void set_Tag (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3d07
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.SourceControl.Tasks.TagTask::_tag
+	IL_0008:  ret 
+    } // end of method TagTask::set_Tag
+
+    // method line 104
+    .method public hidebysig specialname 
+           instance default bool get_Remove ()  cil managed 
+    {
+        // Method begins at RVA 0x3d14
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "remove"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method TagTask::get_Remove
+
+    // method line 105
+    .method public hidebysig specialname 
+           instance default void set_Remove (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3d43
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "remove"
+	IL_0007:  ldstr "-d"
+	IL_000c:  ldarg.1 
+	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0012:  ret 
+    } // end of method TagTask::set_Remove
+
+    // method line 106
+    .method public hidebysig specialname 
+           instance default bool get_MoveIfExists ()  cil managed 
+    {
+        // Method begins at RVA 0x3d58
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "move-if-exists"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method TagTask::get_MoveIfExists
+
+    // method line 107
+    .method public hidebysig specialname 
+           instance default void set_MoveIfExists (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3d87
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "move-if-exists"
+	IL_0007:  ldstr "-F"
+	IL_000c:  ldarg.1 
+	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0012:  ret 
+    } // end of method TagTask::set_MoveIfExists
+
+    // method line 108
+    .method public hidebysig specialname 
+           instance default bool get_Recursive ()  cil managed 
+    {
+        // Method begins at RVA 0x3d9c
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "recursive"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method TagTask::get_Recursive
+
+    // method line 109
+    .method public hidebysig specialname 
+           instance default void set_Recursive (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3dcb
+	// Code size 39 (0x27)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "recursive"
+	IL_0007:  ldstr "-R"
+	IL_000c:  ldarg.1 
+	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0012:  ldarg.0 
+	IL_0013:  ldstr "local-only"
+	IL_0018:  ldstr "-l"
+	IL_001d:  ldarg.1 
+	IL_001e:  ldc.i4.0 
+	IL_001f:  ceq 
+	IL_0021:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0026:  ret 
+    } // end of method TagTask::set_Recursive
+
+    // method line 110
+    .method public hidebysig specialname 
+           instance default string get_ActOnTag ()  cil managed 
+    {
+        // Method begins at RVA 0x3df4
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "act-on-tag"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method TagTask::get_ActOnTag
+
+    // method line 111
+    .method public hidebysig specialname 
+           instance default void set_ActOnTag (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3e23
+	// Code size 30 (0x1e)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "act-on-tag"
+	IL_0007:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_000c:  ldstr "-r {0}"
+	IL_0011:  ldarg.1 
+	IL_0012:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0017:  ldc.i4.1 
+	IL_0018:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_001d:  ret 
+    } // end of method TagTask::set_ActOnTag
+
+    // method line 112
+    .method public hidebysig specialname 
+           instance default valuetype [mscorlib]System.DateTime get_ActOnDate ()  cil managed 
+    {
+        // Method begins at RVA 0x3e44
+	// Code size 40 (0x28)
+	.maxstack 2
+	.locals init (
+		valuetype [mscorlib]System.DateTime	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "act-on-date"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
+	IL_001b:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.Convert::ToDateTime(string)
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
+
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method TagTask::get_ActOnDate
+
+    // method line 113
+    .method public hidebysig specialname 
+           instance default void set_ActOnDate (valuetype [mscorlib]System.DateTime 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3e78
+	// Code size 36 (0x24)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "act-on-date"
+	IL_0007:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_000c:  ldstr "-D {0}"
+	IL_0011:  ldarg.0 
+	IL_0012:  ldarg.1 
+	IL_0013:  call instance string class NAnt.SourceControl.Tasks.AbstractCvsTask::ToCvsDateTimeString(valuetype [mscorlib]System.DateTime)
+	IL_0018:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_001d:  ldc.i4.1 
+	IL_001e:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0023:  ret 
+    } // end of method TagTask::set_ActOnDate
+
+    // method line 114
+    .method public hidebysig specialname 
+           instance default bool get_ForceHead ()  cil managed 
+    {
+        // Method begins at RVA 0x3ea0
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "force-head"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method TagTask::get_ForceHead
+
+    // method line 115
+    .method public hidebysig specialname 
+           instance default void set_ForceHead (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3ecf
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "force-head"
+	IL_0007:  ldstr "-f"
+	IL_000c:  ldarg.1 
+	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0012:  ret 
+    } // end of method TagTask::set_ForceHead
+
+    // method line 116
+    .method public hidebysig specialname 
+           instance default bool get_FailIfModified ()  cil managed 
+    {
+        // Method begins at RVA 0x3ee4
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
+	IL_0007:  ldstr "fail-if-modified"
+	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
+	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
+
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method TagTask::get_FailIfModified
+
+    // method line 117
+    .method public hidebysig specialname 
+           instance default void set_FailIfModified (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3f13
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "fail-if-modified"
+	IL_0007:  ldstr "-c"
+	IL_000c:  ldarg.1 
+	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
+	IL_0012:  ret 
+    } // end of method TagTask::set_FailIfModified
+
+    // method line 118
+    .method public virtual hidebysig specialname 
+           instance default string get_CommandName ()  cil managed 
+    {
+        // Method begins at RVA 0x3f28
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldstr "tag"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method TagTask::get_CommandName
+
+    // method line 119
+    .method public virtual hidebysig specialname 
+           instance default string get_Module ()  cil managed 
+    {
+        // Method begins at RVA 0x3f44
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
+
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method TagTask::get_Module
+
+    // method line 120
+    .method public virtual hidebysig specialname 
+           instance default void set_Module (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3f5a
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method TagTask::set_Module
+
+    // method line 121
+    .method family virtual hidebysig 
+           instance default void AppendSubCommandArgs ()  cil managed 
+    {
+        // Method begins at RVA 0x3f5d
+	// Code size 54 (0x36)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::AppendSubCommandArgs()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance string class NAnt.SourceControl.Tasks.TagTask::get_Tag()
+	IL_000d:  brfalse IL_0035
+
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance string class NAnt.SourceControl.Tasks.TagTask::get_Tag()
+	IL_0018:  ldsfld string [mscorlib]System.String::Empty
+	IL_001d:  call bool string::op_Inequality(string, string)
+	IL_0022:  brfalse IL_0035
+
+	IL_0027:  nop 
+	IL_0028:  ldarg.0 
+	IL_0029:  ldarg.0 
+	IL_002a:  call instance string class NAnt.SourceControl.Tasks.TagTask::get_Tag()
+	IL_002f:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::AddArg(string)
+	IL_0034:  nop 
+	IL_0035:  ret 
+    } // end of method TagTask::AppendSubCommandArgs
+
+    // method line 122
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsModuleNeeded ()  cil managed 
+    {
+        // Method begins at RVA 0x3f94
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
+
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method TagTask::get_IsModuleNeeded
+
+	.property instance string Tag ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 03 74 61 67 01 00 54 02 08 52 65 71 75 69   // ...tag..T..Requi
+		72 65 64 01                                     ) // red.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 02 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00 54 0E 0A 45 78 70 72 65 73 73 69 6F 6E 1D   // y.T..Expression.
+		5E 5B 41 2D 5A 61 2D 7A 30 2D 39 5D 5B 41 2D 5A   // ^[A-Za-z0-9][A-Z
+		61 2D 7A 30 2D 39 2E 5F 5C 2D 5D 2A 24          ) // a-z0-9._\-]*$
+
+		.get instance default string NAnt.SourceControl.Tasks.TagTask::get_Tag () 
+		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_Tag (string 'value') 
+	}
+	.property instance bool Remove ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 72 65 6D 6F 76 65 01 00 54 02 08 52 65   // ...remove..T..Re
+		71 75 69 72 65 64 00                            ) // quired.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_Remove () 
+		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_Remove (bool 'value') 
+	}
+	.property instance bool MoveIfExists ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0E 6D 6F 76 65 2D 69 66 2D 65 78 69 73 74   // ...move-if-exist
+		73 01 00 54 02 08 52 65 71 75 69 72 65 64 00    ) // s..T..Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_MoveIfExists () 
+		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_MoveIfExists (bool 'value') 
+	}
+	.property instance bool Recursive ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 09 72 65 63 75 72 73 69 76 65 01 00 54 02   // ...recursive..T.
+		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_Recursive () 
+		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_Recursive (bool 'value') 
+	}
+	.property instance string ActOnTag ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0A 61 63 74 2D 6F 6E 2D 74 61 67 01 00 54   // ...act-on-tag..T
+		02 08 52 65 71 75 69 72 65 64 00                ) // ..Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 02 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00 54 0E 0A 45 78 70 72 65 73 73 69 6F 6E 1D   // y.T..Expression.
+		5E 5B 41 2D 5A 61 2D 7A 30 2D 39 5D 5B 41 2D 5A   // ^[A-Za-z0-9][A-Z
+		61 2D 7A 30 2D 39 2E 5F 5C 2D 5D 2A 24          ) // a-z0-9._\-]*$
+
+		.get instance default string NAnt.SourceControl.Tasks.TagTask::get_ActOnTag () 
+		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_ActOnTag (string 'value') 
+	}
+	.property instance valuetype [mscorlib]System.DateTime ActOnDate ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0B 61 63 74 2D 6F 6E 2D 64 61 74 65 01 00   // ...act-on-date..
+		54 02 08 52 65 71 75 69 72 65 64 00             ) // T..Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.DateTimeValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default valuetype [mscorlib]System.DateTime NAnt.SourceControl.Tasks.TagTask::get_ActOnDate () 
+		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_ActOnDate (valuetype [mscorlib]System.DateTime 'value') 
+	}
+	.property instance bool ForceHead ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0A 66 6F 72 63 65 2D 68 65 61 64 01 00 54   // ...force-head..T
+		02 08 52 65 71 75 69 72 65 64 00                ) // ..Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_ForceHead () 
+		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_ForceHead (bool 'value') 
+	}
+	.property instance bool FailIfModified ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 10 66 61 69 6C 2D 69 66 2D 6D 6F 64 69 66   // ...fail-if-modif
+		69 65 64 01 00 54 02 08 52 65 71 75 69 72 65 64   // ied..T..Required
+		00                                              ) // .
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_FailIfModified () 
+		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_FailIfModified (bool 'value') 
+	}
+	.property instance string CommandName ()
+	{
+		.get instance default string NAnt.SourceControl.Tasks.TagTask::get_CommandName () 
+	}
+	.property instance string Module ()
+	{
+		.get instance default string NAnt.SourceControl.Tasks.TagTask::get_Module () 
+		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_Module (string 'value') 
+	}
+	.property instance bool IsModuleNeeded ()
+	{
+		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_IsModuleNeeded () 
+	}
+  } // end of class NAnt.SourceControl.Tasks.TagTask
+}
+
+.namespace NAnt.SourceControl.Tasks
+{
   .class public auto ansi beforefieldinit ChangeLogTask
   	extends NAnt.SourceControl.Tasks.AbstractCvsTask
   {
@@ -1922,11 +3666,11 @@
 
     .field private static literal  string CvsCommandName = "xml"
 
-    // method line 56
+    // method line 123
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x363a
+        // Method begins at RVA 0x3faa
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1934,11 +3678,11 @@
 	IL_0006:  ret 
     } // end of method ChangeLogTask::.ctor
 
-    // method line 57
+    // method line 124
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_DestFile ()  cil managed 
     {
-        // Method begins at RVA 0x3644
+        // Method begins at RVA 0x3fb4
 	// Code size 69 (0x45)
 	.maxstack 2
 	.locals init (
@@ -1969,11 +3713,11 @@
 	IL_0044:  ret 
     } // end of method ChangeLogTask::get_DestFile
 
-    // method line 58
+    // method line 125
     .method public hidebysig specialname 
            instance default void set_DestFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3698
+        // Method begins at RVA 0x4008
 	// Code size 65 (0x41)
 	.maxstack 5
 	IL_0000:  nop 
@@ -2000,11 +3744,11 @@
 	IL_0040:  ret 
     } // end of method ChangeLogTask::set_DestFile
 
-    // method line 59
+    // method line 126
     .method public hidebysig specialname 
            instance default valuetype [mscorlib]System.DateTime get_StartDate ()  cil managed 
     {
-        // Method begins at RVA 0x36e8
+        // Method begins at RVA 0x4058
 	// Code size 40 (0x28)
 	.maxstack 2
 	.locals init (
@@ -2024,11 +3768,11 @@
 	IL_0027:  ret 
     } // end of method ChangeLogTask::get_StartDate
 
-    // method line 60
+    // method line 127
     .method public hidebysig specialname 
            instance default void set_StartDate (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x371c
+        // Method begins at RVA 0x408c
 	// Code size 36 (0x24)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2045,11 +3789,11 @@
 	IL_0023:  ret 
     } // end of method ChangeLogTask::set_StartDate
 
-    // method line 61
+    // method line 128
     .method public hidebysig specialname 
            instance default valuetype [mscorlib]System.DateTime get_EndDate ()  cil managed 
     {
-        // Method begins at RVA 0x3744
+        // Method begins at RVA 0x40b4
 	// Code size 40 (0x28)
 	.maxstack 2
 	.locals init (
@@ -2069,11 +3813,11 @@
 	IL_0027:  ret 
     } // end of method ChangeLogTask::get_EndDate
 
-    // method line 62
+    // method line 129
     .method public hidebysig specialname 
            instance default void set_EndDate (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x3778
+        // Method begins at RVA 0x40e8
 	// Code size 36 (0x24)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2090,11 +3834,11 @@
 	IL_0023:  ret 
     } // end of method ChangeLogTask::set_EndDate
 
-    // method line 63
+    // method line 130
     .method public virtual hidebysig specialname 
            instance default string get_CommandName ()  cil managed 
     {
-        // Method begins at RVA 0x37a0
+        // Method begins at RVA 0x4110
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
@@ -2108,11 +3852,11 @@
 	IL_000d:  ret 
     } // end of method ChangeLogTask::get_CommandName
 
-    // method line 64
+    // method line 131
     .method public virtual hidebysig specialname 
            instance default bool get_UseSharpCvsLib ()  cil managed 
     {
-        // Method begins at RVA 0x37bc
+        // Method begins at RVA 0x412c
 	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
@@ -2126,29 +3870,29 @@
 	IL_0009:  ret 
     } // end of method ChangeLogTask::get_UseSharpCvsLib
 
-    // method line 65
+    // method line 132
     .method public virtual hidebysig specialname 
            instance default void set_UseSharpCvsLib (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x37d2
+        // Method begins at RVA 0x4142
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method ChangeLogTask::set_UseSharpCvsLib
 
-    // method line 66
+    // method line 133
     .method public virtual hidebysig specialname 
            instance default string get_Root ()  cil managed 
     {
-        // Method begins at RVA 0x37d8
+        // Method begins at RVA 0x4148
     } // end of method ChangeLogTask::get_Root
 
-    // method line 67
+    // method line 134
     .method public virtual hidebysig specialname 
            instance default void set_Root (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3864
+        // Method begins at RVA 0x41d4
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2219,11 +3963,11 @@
 
     .field assembly static literal  string CvsCommandName = "update"
 
-    // method line 68
+    // method line 135
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x386e
+        // Method begins at RVA 0x41de
 	// Code size 22 (0x16)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2238,11 +3982,11 @@
 	IL_0015:  ret 
     } // end of method UpdateTask::.ctor
 
-    // method line 69
+    // method line 136
     .method public hidebysig specialname 
            instance default bool get_BuildDirs ()  cil managed 
     {
-        // Method begins at RVA 0x3888
+        // Method begins at RVA 0x41f8
 	// Code size 35 (0x23)
 	.maxstack 2
 	.locals init (
@@ -2261,11 +4005,11 @@
 	IL_0022:  ret 
     } // end of method UpdateTask::get_BuildDirs
 
-    // method line 70
+    // method line 137
     .method public hidebysig specialname 
            instance default void set_BuildDirs (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x38b7
+        // Method begins at RVA 0x4227
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2277,11 +4021,11 @@
 	IL_0012:  ret 
     } // end of method UpdateTask::set_BuildDirs
 
-    // method line 71
+    // method line 138
     .method public hidebysig specialname 
            instance default bool get_PruneEmpty ()  cil managed 
     {
-        // Method begins at RVA 0x38cc
+        // Method begins at RVA 0x423c
 	// Code size 35 (0x23)
 	.maxstack 2
 	.locals init (
@@ -2300,11 +4044,11 @@
 	IL_0022:  ret 
     } // end of method UpdateTask::get_PruneEmpty
 
-    // method line 72
+    // method line 139
     .method public hidebysig specialname 
            instance default void set_PruneEmpty (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x38fb
+        // Method begins at RVA 0x426b
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2316,11 +4060,11 @@
 	IL_0012:  ret 
     } // end of method UpdateTask::set_PruneEmpty
 
-    // method line 73
+    // method line 140
     .method public hidebysig specialname 
            instance default bool get_OverwriteLocal ()  cil managed 
     {
-        // Method begins at RVA 0x3910
+        // Method begins at RVA 0x4280
 	// Code size 35 (0x23)
 	.maxstack 2
 	.locals init (
@@ -2339,11 +4083,11 @@
 	IL_0022:  ret 
     } // end of method UpdateTask::get_OverwriteLocal
 
-    // method line 74
+    // method line 141
     .method public hidebysig specialname 
            instance default void set_OverwriteLocal (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x393f
+        // Method begins at RVA 0x42af
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2355,11 +4099,11 @@
 	IL_0012:  ret 
     } // end of method UpdateTask::set_OverwriteLocal
 
-    // method line 75
+    // method line 142
     .method public hidebysig specialname 
            instance default bool get_Recursive ()  cil managed 
     {
-        // Method begins at RVA 0x3954
+        // Method begins at RVA 0x42c4
 	// Code size 67 (0x43)
 	.maxstack 2
 	.locals init (
@@ -2394,11 +4138,11 @@
 	IL_0042:  ret 
     } // end of method UpdateTask::get_Recursive
 
-    // method line 76
+    // method line 143
     .method public hidebysig specialname 
            instance default void set_Recursive (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x39a3
+        // Method begins at RVA 0x4313
 	// Code size 51 (0x33)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2424,11 +4168,11 @@
 	IL_0032:  ret 
     } // end of method UpdateTask::set_Recursive
 
-    // method line 77
+    // method line 144
     .method public hidebysig specialname 
            instance default string get_Revision ()  cil managed 
     {
-        // Method begins at RVA 0x39d8
+        // Method begins at RVA 0x4348
 	// Code size 64 (0x40)
 	.maxstack 2
 	.locals init (
@@ -2458,11 +4202,11 @@
 	IL_003f:  ret 
     } // end of method UpdateTask::get_Revision
 
-    // method line 78
+    // method line 145
     .method public hidebysig specialname 
            instance default void set_Revision (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3a24
+        // Method begins at RVA 0x4394
 	// Code size 66 (0x42)
 	.maxstack 5
 	IL_0000:  nop 
@@ -2491,11 +4235,11 @@
 	IL_0041:  ret 
     } // end of method UpdateTask::set_Revision
 
-    // method line 79
+    // method line 146
     .method public hidebysig specialname 
            instance default string get_StickyTag ()  cil managed 
     {
-        // Method begins at RVA 0x3a74
+        // Method begins at RVA 0x43e4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2510,11 +4254,11 @@
 	IL_000e:  ret 
     } // end of method UpdateTask::get_StickyTag
 
-    // method line 80
+    // method line 147
     .method public hidebysig specialname 
            instance default void set_StickyTag (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3a8f
+        // Method begins at RVA 0x43ff
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2524,11 +4268,11 @@
 	IL_0008:  ret 
     } // end of method UpdateTask::set_StickyTag
 
-    // method line 81
+    // method line 148
     .method public hidebysig specialname 
            instance default valuetype [mscorlib]System.DateTime get_Date ()  cil managed 
     {
-        // Method begins at RVA 0x3a9c
+        // Method begins at RVA 0x440c
 	// Code size 40 (0x28)
 	.maxstack 2
 	.locals init (
@@ -2548,11 +4292,11 @@
 	IL_0027:  ret 
     } // end of method UpdateTask::get_Date
 
-    // method line 82
+    // method line 149
     .method public hidebysig specialname 
            instance default void set_Date (valuetype [mscorlib]System.DateTime 'value')  cil managed 
     {
-        // Method begins at RVA 0x3ad0
+        // Method begins at RVA 0x4440
 	// Code size 36 (0x24)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2569,11 +4313,11 @@
 	IL_0023:  ret 
     } // end of method UpdateTask::set_Date
 
-    // method line 83
+    // method line 150
     .method family virtual hidebysig specialname 
            instance default bool get_IsModuleNeeded ()  cil managed 
     {
-        // Method begins at RVA 0x3af8
+        // Method begins at RVA 0x4468
 	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
@@ -2587,11 +4331,11 @@
 	IL_0009:  ret 
     } // end of method UpdateTask::get_IsModuleNeeded
 
-    // method line 84
+    // method line 151
     .method public virtual hidebysig specialname 
            instance default string get_CommandName ()  cil managed 
     {
-        // Method begins at RVA 0x3b10
+        // Method begins at RVA 0x4480
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
@@ -2697,991 +4441,6 @@
 
 .namespace NAnt.SourceControl.Tasks
 {
-  .class public auto ansi beforefieldinit CvsTask
-  	extends NAnt.SourceControl.Tasks.AbstractCvsTask
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 03 63 76 73 00 00 ) // ...cvs..
-
-    .field  private  string _commandName
-
-    // method line 85
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x3b2a
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::'.ctor'()
-	IL_0006:  ret 
-    } // end of method CvsTask::.ctor
-
-    // method line 86
-    .method public virtual hidebysig specialname 
-           instance default string get_CommandName ()  cil managed 
-    {
-        // Method begins at RVA 0x3b34
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.SourceControl.Tasks.CvsTask::_commandName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CvsTask::get_CommandName
-
-    // method line 87
-    .method public virtual hidebysig specialname 
-           instance default void set_CommandName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3b4f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.SourceControl.Tasks.CvsTask::_commandName
-	IL_0008:  ret 
-    } // end of method CvsTask::set_CommandName
-
-    // method line 88
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsModuleNeeded ()  cil managed 
-    {
-        // Method begins at RVA 0x3b5c
-	// Code size 127 (0x7f)
-	.maxstack 2
-	.locals init (
-		bool	V_0,
-		string	V_1,
-		bool	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandName()
-	IL_0007:  stloc.1 
-	IL_0008:  ldloc.1 
-	IL_0009:  brfalse IL_006f
-
-	IL_000e:  ldloc.1 
-	IL_000f:  ldstr "checkout"
-	IL_0014:  call bool string::op_Equality(string, string)
-	IL_0019:  brtrue IL_0053
-
-	IL_001e:  ldloc.1 
-	IL_001f:  ldstr "update"
-	IL_0024:  call bool string::op_Equality(string, string)
-	IL_0029:  brtrue IL_005a
-
-	IL_002e:  ldloc.1 
-	IL_002f:  ldstr "commit"
-	IL_0034:  call bool string::op_Equality(string, string)
-	IL_0039:  brtrue IL_0061
-
-	IL_003e:  ldloc.1 
-	IL_003f:  ldstr "tag"
-	IL_0044:  call bool string::op_Equality(string, string)
-	IL_0049:  brtrue IL_0068
-
-	IL_004e:  br IL_006f
-
-	IL_0053:  ldc.i4.1 
-	IL_0054:  stloc.0 
-	IL_0055:  br IL_0076
-
-	IL_005a:  ldc.i4.0 
-	IL_005b:  stloc.0 
-	IL_005c:  br IL_0076
-
-	IL_0061:  ldc.i4.0 
-	IL_0062:  stloc.0 
-	IL_0063:  br IL_0076
-
-	IL_0068:  ldc.i4.0 
-	IL_0069:  stloc.0 
-	IL_006a:  br IL_0076
-
-	IL_006f:  ldc.i4.1 
-	IL_0070:  stloc.0 
-	IL_0071:  br IL_0076
-
-	IL_0076:  ldloc.0 
-	IL_0077:  stloc.2 
-	IL_0078:  br IL_007d
-
-	IL_007d:  ldloc.2 
-	IL_007e:  ret 
-    } // end of method CvsTask::get_IsModuleNeeded
-
-	.property instance string CommandName ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 63 6F 6D 6D 61 6E 64 01 00 54 02 08 52   // ...command..T..R
-		65 71 75 69 72 65 64 01                         ) // equired.
-
-		.get instance default string NAnt.SourceControl.Tasks.CvsTask::get_CommandName () 
-		.set instance default void NAnt.SourceControl.Tasks.CvsTask::set_CommandName (string 'value') 
-	}
-	.property instance bool IsModuleNeeded ()
-	{
-		.get instance default bool NAnt.SourceControl.Tasks.CvsTask::get_IsModuleNeeded () 
-	}
-  } // end of class NAnt.SourceControl.Tasks.CvsTask
-}
-
-.namespace NAnt.SourceControl.Tasks
-{
-  .class public auto ansi beforefieldinit RTagTask
-  	extends NAnt.SourceControl.Tasks.AbstractCvsTask
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 08 63 76 73 2D 72 74 61 67 00 00 ) // ...cvs-rtag..
-
-    .field  private  string _tag
-    .field private static literal  string CvsCommandName = "rtag"
-
-    // method line 89
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x3be7
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method RTagTask::.ctor
-
-    // method line 90
-    .method public hidebysig specialname 
-           instance default string get_Tag ()  cil managed 
-    {
-        // Method begins at RVA 0x3bf0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.SourceControl.Tasks.RTagTask::_tag
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method RTagTask::get_Tag
-
-    // method line 91
-    .method public hidebysig specialname 
-           instance default void set_Tag (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3c0b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.SourceControl.Tasks.RTagTask::_tag
-	IL_0008:  ret 
-    } // end of method RTagTask::set_Tag
-
-    // method line 92
-    .method public hidebysig specialname 
-           instance default bool get_Remove ()  cil managed 
-    {
-        // Method begins at RVA 0x3c18
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "remove"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method RTagTask::get_Remove
-
-    // method line 93
-    .method public hidebysig specialname 
-           instance default void set_Remove (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3c47
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "remove"
-	IL_0007:  ldstr "-d"
-	IL_000c:  ldarg.1 
-	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0012:  ret 
-    } // end of method RTagTask::set_Remove
-
-    // method line 94
-    .method public hidebysig specialname 
-           instance default bool get_MoveIfExists ()  cil managed 
-    {
-        // Method begins at RVA 0x3c5c
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "move-if-exists"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method RTagTask::get_MoveIfExists
-
-    // method line 95
-    .method public hidebysig specialname 
-           instance default void set_MoveIfExists (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3c8b
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "move-if-exists"
-	IL_0007:  ldstr "-F"
-	IL_000c:  ldarg.1 
-	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0012:  ret 
-    } // end of method RTagTask::set_MoveIfExists
-
-    // method line 96
-    .method public hidebysig specialname 
-           instance default bool get_Recursive ()  cil managed 
-    {
-        // Method begins at RVA 0x3ca0
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "recursive"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method RTagTask::get_Recursive
-
-    // method line 97
-    .method public hidebysig specialname 
-           instance default void set_Recursive (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3ccf
-	// Code size 39 (0x27)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "recursive"
-	IL_0007:  ldstr "-R"
-	IL_000c:  ldarg.1 
-	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0012:  ldarg.0 
-	IL_0013:  ldstr "local-only"
-	IL_0018:  ldstr "-l"
-	IL_001d:  ldarg.1 
-	IL_001e:  ldc.i4.0 
-	IL_001f:  ceq 
-	IL_0021:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0026:  ret 
-    } // end of method RTagTask::set_Recursive
-
-    // method line 98
-    .method public hidebysig specialname 
-           instance default string get_ActOnTag ()  cil managed 
-    {
-        // Method begins at RVA 0x3cf8
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "act-on-tag"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method RTagTask::get_ActOnTag
-
-    // method line 99
-    .method public hidebysig specialname 
-           instance default void set_ActOnTag (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3d27
-	// Code size 30 (0x1e)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "act-on-tag"
-	IL_0007:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_000c:  ldstr "-r {0}"
-	IL_0011:  ldarg.1 
-	IL_0012:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0017:  ldc.i4.1 
-	IL_0018:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_001d:  ret 
-    } // end of method RTagTask::set_ActOnTag
-
-    // method line 100
-    .method public hidebysig specialname 
-           instance default valuetype [mscorlib]System.DateTime get_ActOnDate ()  cil managed 
-    {
-        // Method begins at RVA 0x3d48
-	// Code size 40 (0x28)
-	.maxstack 2
-	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "act-on-date"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
-	IL_001b:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.Convert::ToDateTime(string)
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
-
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method RTagTask::get_ActOnDate
-
-    // method line 101
-    .method public hidebysig specialname 
-           instance default void set_ActOnDate (valuetype [mscorlib]System.DateTime 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3d7c
-	// Code size 36 (0x24)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "act-on-date"
-	IL_0007:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_000c:  ldstr "-D {0}"
-	IL_0011:  ldarg.0 
-	IL_0012:  ldarg.1 
-	IL_0013:  call instance string class NAnt.SourceControl.Tasks.AbstractCvsTask::ToCvsDateTimeString(valuetype [mscorlib]System.DateTime)
-	IL_0018:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_001d:  ldc.i4.1 
-	IL_001e:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0023:  ret 
-    } // end of method RTagTask::set_ActOnDate
-
-    // method line 102
-    .method public hidebysig specialname 
-           instance default bool get_ForceHead ()  cil managed 
-    {
-        // Method begins at RVA 0x3da4
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "force-head"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method RTagTask::get_ForceHead
-
-    // method line 103
-    .method public hidebysig specialname 
-           instance default void set_ForceHead (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3dd3
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "force-head"
-	IL_0007:  ldstr "-f"
-	IL_000c:  ldarg.1 
-	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0012:  ret 
-    } // end of method RTagTask::set_ForceHead
-
-    // method line 104
-    .method public virtual hidebysig specialname 
-           instance default string get_CommandName ()  cil managed 
-    {
-        // Method begins at RVA 0x3de8
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldstr "rtag"
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method RTagTask::get_CommandName
-
-    // method line 105
-    .method family virtual hidebysig 
-           instance default void AppendSubCommandArgs ()  cil managed 
-    {
-        // Method begins at RVA 0x3e02
-	// Code size 54 (0x36)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::AppendSubCommandArgs()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance string class NAnt.SourceControl.Tasks.RTagTask::get_Tag()
-	IL_000d:  brfalse IL_0035
-
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance string class NAnt.SourceControl.Tasks.RTagTask::get_Tag()
-	IL_0018:  ldsfld string [mscorlib]System.String::Empty
-	IL_001d:  call bool string::op_Inequality(string, string)
-	IL_0022:  brfalse IL_0035
-
-	IL_0027:  nop 
-	IL_0028:  ldarg.0 
-	IL_0029:  ldarg.0 
-	IL_002a:  call instance string class NAnt.SourceControl.Tasks.RTagTask::get_Tag()
-	IL_002f:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::AddArg(string)
-	IL_0034:  nop 
-	IL_0035:  ret 
-    } // end of method RTagTask::AppendSubCommandArgs
-
-	.property instance string Tag ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 03 74 61 67 01 00 54 02 08 52 65 71 75 69   // ...tag..T..Requi
-		72 65 64 01                                     ) // red.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 02 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00 54 0E 0A 45 78 70 72 65 73 73 69 6F 6E 1D   // y.T..Expression.
-		5E 5B 41 2D 5A 61 2D 7A 30 2D 39 5D 5B 41 2D 5A   // ^[A-Za-z0-9][A-Z
-		61 2D 7A 30 2D 39 2E 5F 5C 2D 5D 2A 24          ) // a-z0-9._\-]*$
-
-		.get instance default string NAnt.SourceControl.Tasks.RTagTask::get_Tag () 
-		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_Tag (string 'value') 
-	}
-	.property instance bool Remove ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 72 65 6D 6F 76 65 01 00 54 02 08 52 65   // ...remove..T..Re
-		71 75 69 72 65 64 00                            ) // quired.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.SourceControl.Tasks.RTagTask::get_Remove () 
-		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_Remove (bool 'value') 
-	}
-	.property instance bool MoveIfExists ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0E 6D 6F 76 65 2D 69 66 2D 65 78 69 73 74   // ...move-if-exist
-		73 01 00 54 02 08 52 65 71 75 69 72 65 64 00    ) // s..T..Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.SourceControl.Tasks.RTagTask::get_MoveIfExists () 
-		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_MoveIfExists (bool 'value') 
-	}
-	.property instance bool Recursive ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 72 65 63 75 72 73 69 76 65 01 00 54 02   // ...recursive..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.SourceControl.Tasks.RTagTask::get_Recursive () 
-		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_Recursive (bool 'value') 
-	}
-	.property instance string ActOnTag ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0A 61 63 74 2D 6F 6E 2D 74 61 67 01 00 54   // ...act-on-tag..T
-		02 08 52 65 71 75 69 72 65 64 00                ) // ..Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 02 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00 54 0E 0A 45 78 70 72 65 73 73 69 6F 6E 1D   // y.T..Expression.
-		5E 5B 41 2D 5A 61 2D 7A 30 2D 39 5D 5B 41 2D 5A   // ^[A-Za-z0-9][A-Z
-		61 2D 7A 30 2D 39 2E 5F 5C 2D 5D 2A 24          ) // a-z0-9._\-]*$
-
-		.get instance default string NAnt.SourceControl.Tasks.RTagTask::get_ActOnTag () 
-		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_ActOnTag (string 'value') 
-	}
-	.property instance valuetype [mscorlib]System.DateTime ActOnDate ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 61 63 74 2D 6F 6E 2D 64 61 74 65 01 00   // ...act-on-date..
-		54 02 08 52 65 71 75 69 72 65 64 00             ) // T..Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.DateTimeValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default valuetype [mscorlib]System.DateTime NAnt.SourceControl.Tasks.RTagTask::get_ActOnDate () 
-		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_ActOnDate (valuetype [mscorlib]System.DateTime 'value') 
-	}
-	.property instance bool ForceHead ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0A 66 6F 72 63 65 2D 68 65 61 64 01 00 54   // ...force-head..T
-		02 08 52 65 71 75 69 72 65 64 00                ) // ..Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.SourceControl.Tasks.RTagTask::get_ForceHead () 
-		.set instance default void NAnt.SourceControl.Tasks.RTagTask::set_ForceHead (bool 'value') 
-	}
-	.property instance string CommandName ()
-	{
-		.get instance default string NAnt.SourceControl.Tasks.RTagTask::get_CommandName () 
-	}
-  } // end of class NAnt.SourceControl.Tasks.RTagTask
-}
-
-.namespace NAnt.SourceControl.Tasks
-{
-  .class public auto ansi beforefieldinit ExportTask
-  	extends NAnt.SourceControl.Tasks.AbstractCvsTask
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 0A 63 76 73 2D 65 78 70 6F 72 74 00 00 ) // ...cvs-export..
-
-    .field private static literal  string CvsCommandName = "export"
-
-    // method line 106
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x3e39
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4.1 
-	IL_0009:  call instance void class NAnt.SourceControl.Tasks.ExportTask::set_Recursive(bool)
-	IL_000e:  ret 
-    } // end of method ExportTask::.ctor
-
-    // method line 107
-    .method public hidebysig specialname 
-           instance default bool get_NoShortening ()  cil managed 
-    {
-        // Method begins at RVA 0x3e4c
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "no-shortening"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method ExportTask::get_NoShortening
-
-    // method line 108
-    .method public hidebysig specialname 
-           instance default void set_NoShortening (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3e7b
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "no-shortening"
-	IL_0007:  ldstr "-N"
-	IL_000c:  ldarg.1 
-	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0012:  ret 
-    } // end of method ExportTask::set_NoShortening
-
-    // method line 109
-    .method public hidebysig specialname 
-           instance default bool get_ForceHead ()  cil managed 
-    {
-        // Method begins at RVA 0x3e90
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "force-head"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method ExportTask::get_ForceHead
-
-    // method line 110
-    .method public hidebysig specialname 
-           instance default void set_ForceHead (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3ebf
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "force-head"
-	IL_0007:  ldstr "-f"
-	IL_000c:  ldarg.1 
-	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0012:  ret 
-    } // end of method ExportTask::set_ForceHead
-
-    // method line 111
-    .method public hidebysig specialname 
-           instance default bool get_Recursive ()  cil managed 
-    {
-        // Method begins at RVA 0x3ed4
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "recursive"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method ExportTask::get_Recursive
-
-    // method line 112
-    .method public hidebysig specialname 
-           instance default void set_Recursive (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3f03
-	// Code size 39 (0x27)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "recursive"
-	IL_0007:  ldstr "-R"
-	IL_000c:  ldarg.1 
-	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0012:  ldarg.0 
-	IL_0013:  ldstr "local-only"
-	IL_0018:  ldstr "-l"
-	IL_001d:  ldarg.1 
-	IL_001e:  ldc.i4.0 
-	IL_001f:  ceq 
-	IL_0021:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0026:  ret 
-    } // end of method ExportTask::set_Recursive
-
-    // method line 113
-    .method public hidebysig specialname 
-           instance default string get_Revision ()  cil managed 
-    {
-        // Method begins at RVA 0x3f2c
-	// Code size 64 (0x40)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "revision"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  brtrue IL_001e
-
-	IL_0016:  nop 
-	IL_0017:  ldnull 
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_003e
-
-	IL_001e:  ldarg.0 
-	IL_001f:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0024:  ldstr "revision"
-	IL_0029:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_002e:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0033:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
-	IL_0038:  stloc.0 
-	IL_0039:  br IL_003e
-
-	IL_003e:  ldloc.0 
-	IL_003f:  ret 
-    } // end of method ExportTask::get_Revision
-
-    // method line 114
-    .method public hidebysig specialname 
-           instance default void set_Revision (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3f78
-	// Code size 66 (0x42)
-	.maxstack 5
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call bool string::IsNullOrEmpty(string)
-	IL_0007:  brfalse IL_0023
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0013:  ldstr "revision"
-	IL_0018:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
-	IL_001d:  nop 
-	IL_001e:  br IL_0041
-
-	IL_0023:  nop 
-	IL_0024:  ldarg.0 
-	IL_0025:  ldstr "revision"
-	IL_002a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_002f:  ldstr "-r {0}"
-	IL_0034:  ldarg.1 
-	IL_0035:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_003a:  ldc.i4.1 
-	IL_003b:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0040:  nop 
-	IL_0041:  ret 
-    } // end of method ExportTask::set_Revision
-
-    // method line 115
-    .method public hidebysig specialname 
-           instance default valuetype [mscorlib]System.DateTime get_Date ()  cil managed 
-    {
-        // Method begins at RVA 0x3fc8
-	// Code size 40 (0x28)
-	.maxstack 2
-	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "date"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
-	IL_001b:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.Convert::ToDateTime(string)
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
-
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method ExportTask::get_Date
-
-    // method line 116
-    .method public hidebysig specialname 
-           instance default void set_Date (valuetype [mscorlib]System.DateTime 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3ffc
-	// Code size 36 (0x24)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "date"
-	IL_0007:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_000c:  ldstr "\"-D {0}\""
-	IL_0011:  ldarg.0 
-	IL_0012:  ldarg.1 
-	IL_0013:  call instance string class NAnt.SourceControl.Tasks.AbstractCvsTask::ToCvsDateTimeString(valuetype [mscorlib]System.DateTime)
-	IL_0018:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_001d:  ldc.i4.1 
-	IL_001e:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0023:  ret 
-    } // end of method ExportTask::set_Date
-
-    // method line 117
-    .method public hidebysig specialname 
-           instance default string get_OverrideDir ()  cil managed 
-    {
-        // Method begins at RVA 0x4024
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "overridedir"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method ExportTask::get_OverrideDir
-
-    // method line 118
-    .method public hidebysig specialname 
-           instance default void set_OverrideDir (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4053
-	// Code size 30 (0x1e)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "overridedir"
-	IL_0007:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_000c:  ldstr "-d{0}"
-	IL_0011:  ldarg.1 
-	IL_0012:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0017:  ldc.i4.1 
-	IL_0018:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_001d:  ret 
-    } // end of method ExportTask::set_OverrideDir
-
-    // method line 119
-    .method public virtual hidebysig specialname 
-           instance default string get_CommandName ()  cil managed 
-    {
-        // Method begins at RVA 0x4074
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldstr "export"
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method ExportTask::get_CommandName
-
-	.property instance bool NoShortening ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 6E 6F 2D 73 68 6F 72 74 65 6E 69 6E 67   // ...no-shortening
-		01 00 54 02 08 52 65 71 75 69 72 65 64 00       ) // ..T..Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.SourceControl.Tasks.ExportTask::get_NoShortening () 
-		.set instance default void NAnt.SourceControl.Tasks.ExportTask::set_NoShortening (bool 'value') 
-	}
-	.property instance bool ForceHead ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0A 66 6F 72 63 65 2D 68 65 61 64 01 00 54   // ...force-head..T
-		02 08 52 65 71 75 69 72 65 64 00                ) // ..Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.SourceControl.Tasks.ExportTask::get_ForceHead () 
-		.set instance default void NAnt.SourceControl.Tasks.ExportTask::set_ForceHead (bool 'value') 
-	}
-	.property instance bool Recursive ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 72 65 63 75 72 73 69 76 65 01 00 54 02   // ...recursive..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.SourceControl.Tasks.ExportTask::get_Recursive () 
-		.set instance default void NAnt.SourceControl.Tasks.ExportTask::set_Recursive (bool 'value') 
-	}
-	.property instance string Revision ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 72 65 76 69 73 69 6F 6E 01 00 54 02 08   // ...revision..T..
-		52 65 71 75 69 72 65 64 00                      ) // Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 02 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 01 54 0E 0A 45 78 70 72 65 73 73 69 6F 6E 1D   // y.T..Expression.
-		5E 5B 41 2D 5A 61 2D 7A 30 2D 39 5D 5B 41 2D 5A   // ^[A-Za-z0-9][A-Z
-		61 2D 7A 30 2D 39 2E 5F 5C 2D 5D 2A 24          ) // a-z0-9._\-]*$
-
-		.get instance default string NAnt.SourceControl.Tasks.ExportTask::get_Revision () 
-		.set instance default void NAnt.SourceControl.Tasks.ExportTask::set_Revision (string 'value') 
-	}
-	.property instance valuetype [mscorlib]System.DateTime Date ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 64 61 74 65 01 00 54 02 08 52 65 71 75   // ...date..T..Requ
-		69 72 65 64 00                                  ) // ired.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.DateTimeValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default valuetype [mscorlib]System.DateTime NAnt.SourceControl.Tasks.ExportTask::get_Date () 
-		.set instance default void NAnt.SourceControl.Tasks.ExportTask::set_Date (valuetype [mscorlib]System.DateTime 'value') 
-	}
-	.property instance string OverrideDir ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 6F 76 65 72 72 69 64 65 64 69 72 01 00   // ...overridedir..
-		54 02 08 52 65 71 75 69 72 65 64 00             ) // T..Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 02 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00 54 0E 0A 45 78 70 72 65 73 73 69 6F 6E 1D   // y.T..Expression.
-		5E 5B 41 2D 5A 61 2D 7A 30 2D 39 5D 5B 41 2D 5A   // ^[A-Za-z0-9][A-Z
-		61 2D 7A 30 2D 39 2E 5F 5C 2D 5D 2A 24          ) // a-z0-9._\-]*$
-
-		.get instance default string NAnt.SourceControl.Tasks.ExportTask::get_OverrideDir () 
-		.set instance default void NAnt.SourceControl.Tasks.ExportTask::set_OverrideDir (string 'value') 
-	}
-	.property instance string CommandName ()
-	{
-		.get instance default string NAnt.SourceControl.Tasks.ExportTask::get_CommandName () 
-	}
-  } // end of class NAnt.SourceControl.Tasks.ExportTask
-}
-
-.namespace NAnt.SourceControl.Tasks
-{
   .class public auto ansi abstract beforefieldinit AbstractCvsTask
   	extends NAnt.SourceControl.Tasks.AbstractSourceControlTask
   {
@@ -3704,11 +4463,11 @@
     .field  private  string _sharpcvslibExeName
     .field  private  class NAnt.SourceControl.Types.CvsFileSet _cvsFileSet
 
-    // method line 120
+    // method line 152
     .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2a2d
+        // Method begins at RVA 0x2b71
 	// Code size 59 (0x3b)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -3732,11 +4491,11 @@
 	IL_003a:  ret 
     } // end of method AbstractCvsTask::.ctor
 
-    // method line 121
+    // method line 153
     .method family virtual hidebysig specialname 
            instance default string get_SshEnv ()  cil managed 
     {
-        // Method begins at RVA 0x2a6c
+        // Method begins at RVA 0x2bb0
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
@@ -3750,11 +4509,11 @@
 	IL_000d:  ret 
     } // end of method AbstractCvsTask::get_SshEnv
 
-    // method line 122
+    // method line 154
     .method family virtual hidebysig specialname 
            instance default string get_VcsExeName ()  cil managed 
     {
-        // Method begins at RVA 0x2a88
+        // Method begins at RVA 0x2bcc
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
@@ -3768,11 +4527,11 @@
 	IL_000d:  ret 
     } // end of method AbstractCvsTask::get_VcsExeName
 
-    // method line 123
+    // method line 155
     .method family virtual hidebysig specialname 
            instance default string get_PassFileName ()  cil managed 
     {
-        // Method begins at RVA 0x2aa4
+        // Method begins at RVA 0x2be8
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
@@ -3786,11 +4545,11 @@
 	IL_000d:  ret 
     } // end of method AbstractCvsTask::get_PassFileName
 
-    // method line 124
+    // method line 156
     .method family virtual hidebysig specialname 
            instance default string get_VcsHomeEnv ()  cil managed 
     {
-        // Method begins at RVA 0x2ac0
+        // Method begins at RVA 0x2c04
 	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
@@ -3804,11 +4563,11 @@
 	IL_000d:  ret 
     } // end of method AbstractCvsTask::get_VcsHomeEnv
 
-    // method line 125
+    // method line 157
     .method family virtual hidebysig newslot specialname 
            instance default bool get_IsModuleNeeded ()  cil managed 
     {
-        // Method begins at RVA 0x2adc
+        // Method begins at RVA 0x2c20
 	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
@@ -3822,11 +4581,11 @@
 	IL_0009:  ret 
     } // end of method AbstractCvsTask::get_IsModuleNeeded
 
-    // method line 126
+    // method line 158
     .method family hidebysig 
            instance default string ToCvsDateTimeString (valuetype [mscorlib]System.DateTime item)  cil managed 
     {
-        // Method begins at RVA 0x2af4
+        // Method begins at RVA 0x2c38
 	// Code size 64 (0x40)
 	.maxstack 5
 	.locals init (
@@ -3854,11 +4613,11 @@
 	IL_003f:  ret 
     } // end of method AbstractCvsTask::ToCvsDateTimeString
 
-    // method line 127
+    // method line 159
     .method public hidebysig specialname 
            instance default class NAnt.SourceControl.Types.CvsFileSet get_CvsFileSet ()  cil managed 
     {
-        // Method begins at RVA 0x2b40
+        // Method begins at RVA 0x2c84
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3873,11 +4632,11 @@
 	IL_000e:  ret 
     } // end of method AbstractCvsTask::get_CvsFileSet
 
-    // method line 128
+    // method line 160
     .method public hidebysig specialname 
            instance default void set_CvsFileSet (class NAnt.SourceControl.Types.CvsFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b5b
+        // Method begins at RVA 0x2c9f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3887,11 +4646,11 @@
 	IL_0008:  ret 
     } // end of method AbstractCvsTask::set_CvsFileSet
 
-    // method line 129
+    // method line 161
     .method public virtual hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_VcsFileSet ()  cil managed 
     {
-        // Method begins at RVA 0x2b68
+        // Method begins at RVA 0x2cac
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3906,11 +4665,11 @@
 	IL_000e:  ret 
     } // end of method AbstractCvsTask::get_VcsFileSet
 
-    // method line 130
+    // method line 162
     .method public virtual hidebysig specialname 
            instance default string get_ExeName ()  cil managed 
     {
-        // Method begins at RVA 0x2b84
+        // Method begins at RVA 0x2cc8
 	// Code size 184 (0xb8)
 	.maxstack 3
 	.locals init (
@@ -3985,11 +4744,11 @@
 	IL_00b7:  ret 
     } // end of method AbstractCvsTask::get_ExeName
 
-    // method line 131
+    // method line 163
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_CvsFullPath ()  cil managed 
     {
-        // Method begins at RVA 0x2c48
+        // Method begins at RVA 0x2d8c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4004,11 +4763,11 @@
 	IL_000e:  ret 
     } // end of method AbstractCvsTask::get_CvsFullPath
 
-    // method line 132
+    // method line 164
     .method public hidebysig specialname 
            instance default void set_CvsFullPath (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2c63
+        // Method begins at RVA 0x2da7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4018,18 +4777,18 @@
 	IL_0008:  ret 
     } // end of method AbstractCvsTask::set_CvsFullPath
 
-    // method line 133
+    // method line 165
     .method public virtual hidebysig specialname 
            instance default string get_Root ()  cil managed 
     {
-        // Method begins at RVA 0x2c70
+        // Method begins at RVA 0x2db4
     } // end of method AbstractCvsTask::get_Root
 
-    // method line 134
+    // method line 166
     .method public virtual hidebysig specialname 
            instance default void set_Root (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2ce4
+        // Method begins at RVA 0x2e28
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4040,18 +4799,18 @@
 	IL_000d:  ret 
     } // end of method AbstractCvsTask::set_Root
 
-    // method line 135
+    // method line 167
     .method public virtual hidebysig newslot specialname 
            instance default string get_Module ()  cil managed 
     {
-        // Method begins at RVA 0x2cf4
+        // Method begins at RVA 0x2e38
     } // end of method AbstractCvsTask::get_Module
 
-    // method line 136
+    // method line 168
     .method public virtual hidebysig newslot specialname 
            instance default void set_Module (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2d68
+        // Method begins at RVA 0x2eac
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4062,11 +4821,11 @@
 	IL_000d:  ret 
     } // end of method AbstractCvsTask::set_Module
 
-    // method line 137
+    // method line 169
     .method public virtual hidebysig newslot specialname 
            instance default bool get_UseSharpCvsLib ()  cil managed 
     {
-        // Method begins at RVA 0x2d78
+        // Method begins at RVA 0x2ebc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4081,11 +4840,11 @@
 	IL_000e:  ret 
     } // end of method AbstractCvsTask::get_UseSharpCvsLib
 
-    // method line 138
+    // method line 170
     .method public virtual hidebysig newslot specialname 
            instance default void set_UseSharpCvsLib (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2d93
+        // Method begins at RVA 0x2ed7
 	// Code size 16 (0x10)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4098,11 +4857,11 @@
 	IL_000f:  ret 
     } // end of method AbstractCvsTask::set_UseSharpCvsLib
 
-    // method line 139
+    // method line 171
     .method public virtual hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_Ssh ()  cil managed 
     {
-        // Method begins at RVA 0x2da4
+        // Method begins at RVA 0x2ee8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4117,11 +4876,11 @@
 	IL_000e:  ret 
     } // end of method AbstractCvsTask::get_Ssh
 
-    // method line 140
+    // method line 172
     .method public virtual hidebysig specialname 
            instance default void set_Ssh (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2dbf
+        // Method begins at RVA 0x2f03
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4131,11 +4890,11 @@
 	IL_0008:  ret 
     } // end of method AbstractCvsTask::set_Ssh
 
-    // method line 141
+    // method line 173
     .method public hidebysig specialname 
            instance default bool get_Quiet ()  cil managed 
     {
-        // Method begins at RVA 0x2dcc
+        // Method begins at RVA 0x2f10
 	// Code size 49 (0x31)
 	.maxstack 2
 	.locals init (
@@ -4163,11 +4922,11 @@
 	IL_0030:  ret 
     } // end of method AbstractCvsTask::get_Quiet
 
-    // method line 142
+    // method line 174
     .method public hidebysig specialname 
            instance default void set_Quiet (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2e09
+        // Method begins at RVA 0x2f4d
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4179,11 +4938,11 @@
 	IL_0012:  ret 
     } // end of method AbstractCvsTask::set_Quiet
 
-    // method line 143
+    // method line 175
     .method public hidebysig specialname 
            instance default bool get_ReallyQuiet ()  cil managed 
     {
-        // Method begins at RVA 0x2e20
+        // Method begins at RVA 0x2f64
 	// Code size 49 (0x31)
 	.maxstack 2
 	.locals init (
@@ -4211,11 +4970,11 @@
 	IL_0030:  ret 
     } // end of method AbstractCvsTask::get_ReallyQuiet
 
-    // method line 144
+    // method line 176
     .method public hidebysig specialname 
            instance default void set_ReallyQuiet (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2e5d
+        // Method begins at RVA 0x2fa1
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4227,11 +4986,11 @@
 	IL_0012:  ret 
     } // end of method AbstractCvsTask::set_ReallyQuiet
 
-    // method line 145
+    // method line 177
     .method public hidebysig specialname 
            instance default bool get_ReadOnly ()  cil managed 
     {
-        // Method begins at RVA 0x2e74
+        // Method begins at RVA 0x2fb8
 	// Code size 49 (0x31)
 	.maxstack 2
 	.locals init (
@@ -4259,11 +5018,11 @@
 	IL_0030:  ret 
     } // end of method AbstractCvsTask::get_ReadOnly
 
-    // method line 146
+    // method line 178
     .method public hidebysig specialname 
            instance default void set_ReadOnly (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2eb1
+        // Method begins at RVA 0x2ff5
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4275,11 +5034,11 @@
 	IL_0012:  ret 
     } // end of method AbstractCvsTask::set_ReadOnly
 
-    // method line 147
+    // method line 179
     .method public hidebysig specialname 
            instance default bool get_ReadWrite ()  cil managed 
     {
-        // Method begins at RVA 0x2ec8
+        // Method begins at RVA 0x300c
 	// Code size 49 (0x31)
 	.maxstack 2
 	.locals init (
@@ -4307,11 +5066,11 @@
 	IL_0030:  ret 
     } // end of method AbstractCvsTask::get_ReadWrite
 
-    // method line 148
+    // method line 180
     .method public hidebysig specialname 
            instance default void set_ReadWrite (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2f05
+        // Method begins at RVA 0x3049
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4323,11 +5082,11 @@
 	IL_0012:  ret 
     } // end of method AbstractCvsTask::set_ReadWrite
 
-    // method line 149
+    // method line 181
     .method public hidebysig specialname 
            instance default int32 get_CompressionLevel ()  cil managed 
     {
-        // Method begins at RVA 0x2f1c
+        // Method begins at RVA 0x3060
 	// Code size 54 (0x36)
 	.maxstack 2
 	.locals init (
@@ -4356,11 +5115,11 @@
 	IL_0035:  ret 
     } // end of method AbstractCvsTask::get_CompressionLevel
 
-    // method line 150
+    // method line 182
     .method public hidebysig specialname 
            instance default void set_CompressionLevel (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x2f5e
+        // Method begins at RVA 0x30a2
 	// Code size 30 (0x1e)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4375,11 +5134,11 @@
 	IL_001d:  ret 
     } // end of method AbstractCvsTask::set_CompressionLevel
 
-    // method line 151
+    // method line 183
     .method family virtual hidebysig 
            instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
     {
-        // Method begins at RVA 0x2f80
+        // Method begins at RVA 0x30c4
 	// Code size 769 (0x301)
 	.maxstack 7
 	IL_0000:  nop 
@@ -4643,22 +5402,22 @@
 	IL_0300:  ret 
     } // end of method AbstractCvsTask::PrepareProcess
 
-    // method line 152
+    // method line 184
     .method family virtual hidebysig newslot 
            instance default void AppendSubCommandArgs ()  cil managed 
     {
-        // Method begins at RVA 0x32a0
+        // Method begins at RVA 0x33e4
 	// Code size 2 (0x2)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ret 
     } // end of method AbstractCvsTask::AppendSubCommandArgs
 
-    // method line 153
+    // method line 185
     .method private hidebysig 
            instance default void AppendGlobalOptions ()  cil managed 
     {
-        // Method begins at RVA 0x32a4
+        // Method begins at RVA 0x33e8
 	// Code size 115 (0x73)
 	.maxstack 2
 	.locals init (
@@ -4717,11 +5476,11 @@
 	IL_0072:  ret 
     } // end of method AbstractCvsTask::AppendGlobalOptions
 
-    // method line 154
+    // method line 186
     .method private hidebysig 
            instance default void AppendCommandOptions ()  cil managed 
     {
-        // Method begins at RVA 0x3334
+        // Method begins at RVA 0x3478
 	// Code size 115 (0x73)
 	.maxstack 2
 	.locals init (
@@ -4780,11 +5539,11 @@
 	IL_0072:  ret 
     } // end of method AbstractCvsTask::AppendCommandOptions
 
-    // method line 155
+    // method line 187
     .method family hidebysig 
            instance default void AddArg (string arg)  cil managed 
     {
-        // Method begins at RVA 0x33c4
+        // Method begins at RVA 0x3508
 	// Code size 150 (0x96)
 	.maxstack 4
 	.locals init (
@@ -4860,11 +5619,11 @@
 	IL_0095:  ret 
     } // end of method AbstractCvsTask::AddArg
 
-    // method line 156
+    // method line 188
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3466
+        // Method begins at RVA 0x35aa
 	// Code size 21 (0x15)
 	.maxstack 8
 	IL_0000:  call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetCurrentMethod()
@@ -5018,762 +5777,3 @@
   } // end of class NAnt.SourceControl.Tasks.AbstractCvsTask
 }
 
-.namespace NAnt.SourceControl.Tasks
-{
-  .class public auto ansi beforefieldinit CvsPass
-  	extends [NAnt.Core]NAnt.Core.Task
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 08 63 76 73 2D 70 61 73 73 00 00 ) // ...cvs-pass..
-
-    .field  private  string _password
-    .field  private  class [mscorlib]System.IO.FileInfo _passFile
-    .field  private  string _cvsRoot
-
-    // method line 157
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x408e
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
-	IL_0006:  ret 
-    } // end of method CvsPass::.ctor
-
-    // method line 158
-    .method public hidebysig specialname 
-           instance default string get_Password ()  cil managed 
-    {
-        // Method begins at RVA 0x4098
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.SourceControl.Tasks.CvsPass::_password
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CvsPass::get_Password
-
-    // method line 159
-    .method public hidebysig specialname 
-           instance default void set_Password (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x40b3
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.SourceControl.Tasks.CvsPass::_password
-	IL_0008:  ret 
-    } // end of method CvsPass::set_Password
-
-    // method line 160
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_PassFile ()  cil managed 
-    {
-        // Method begins at RVA 0x40c0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.CvsPass::_passFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CvsPass::get_PassFile
-
-    // method line 161
-    .method public hidebysig specialname 
-           instance default void set_PassFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x40db
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.CvsPass::_passFile
-	IL_0008:  ret 
-    } // end of method CvsPass::set_PassFile
-
-    // method line 162
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_DestinationDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x40e8
-	// Code size 19 (0x13)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  call string class [mscorlib]System.Environment::get_CurrentDirectory()
-	IL_0006:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_000b:  stloc.0 
-	IL_000c:  br IL_0011
-
-	IL_0011:  ldloc.0 
-	IL_0012:  ret 
-    } // end of method CvsPass::get_DestinationDirectory
-
-    // method line 163
-    .method public hidebysig specialname 
-           instance default string get_Root ()  cil managed 
-    {
-        // Method begins at RVA 0x4108
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.SourceControl.Tasks.CvsPass::_cvsRoot
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method CvsPass::get_Root
-
-    // method line 164
-    .method public hidebysig specialname 
-           instance default void set_Root (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4123
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.SourceControl.Tasks.CvsPass::_cvsRoot
-	IL_0008:  ret 
-    } // end of method CvsPass::set_Root
-
-    // method line 165
-    .method family virtual hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0x412d
-	// Code size 31 (0x1f)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.SourceControl.Tasks.CvsPass::get_PassFile()
-	IL_0007:  brtrue IL_001e
-
-	IL_000c:  nop 
-	IL_000d:  ldstr "'passfile' was not explicitly specified and could not be determined from environment, or found in home directory."
-	IL_0012:  ldarg.0 
-	IL_0013:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	IL_0018:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_001d:  throw 
-	IL_001e:  ret 
-    } // end of method CvsPass::Initialize
-
-    // method line 166
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x4150
-    } // end of method CvsPass::ExecuteTask
-
-	.property instance string Password ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 70 61 73 73 77 6F 72 64 01 00 54 02 08   // ...password..T..
-		52 65 71 75 69 72 65 64 01                      ) // Required.
-
-		.get instance default string NAnt.SourceControl.Tasks.CvsPass::get_Password () 
-		.set instance default void NAnt.SourceControl.Tasks.CvsPass::set_Password (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo PassFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 70 61 73 73 66 69 6C 65 01 00 54 02 08   // ...passfile..T..
-		52 65 71 75 69 72 65 64 00                      ) // Required.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.SourceControl.Tasks.CvsPass::get_PassFile () 
-		.set instance default void NAnt.SourceControl.Tasks.CvsPass::set_PassFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo DestinationDirectory ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.SourceControl.Tasks.CvsPass::get_DestinationDirectory () 
-	}
-	.property instance string Root ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 63 76 73 72 6F 6F 74 01 00 54 02 08 52   // ...cvsroot..T..R
-		65 71 75 69 72 65 64 00                         ) // equired.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.SourceControl.Tasks.CvsPass::get_Root () 
-		.set instance default void NAnt.SourceControl.Tasks.CvsPass::set_Root (string 'value') 
-	}
-  } // end of class NAnt.SourceControl.Tasks.CvsPass
-}
-
-.namespace NAnt.SourceControl.Tasks
-{
-  .class public auto ansi beforefieldinit TagTask
-  	extends NAnt.SourceControl.Tasks.AbstractCvsTask
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 07 63 76 73 2D 74 61 67 00 00 ) // ...cvs-tag..
-
-    .field  private  string _tag
-    .field assembly static literal  string CvsCommandName = "tag"
-
-    // method line 167
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x41d6
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method TagTask::.ctor
-
-    // method line 168
-    .method public hidebysig specialname 
-           instance default string get_Tag ()  cil managed 
-    {
-        // Method begins at RVA 0x41e0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.SourceControl.Tasks.TagTask::_tag
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TagTask::get_Tag
-
-    // method line 169
-    .method public hidebysig specialname 
-           instance default void set_Tag (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x41fb
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.SourceControl.Tasks.TagTask::_tag
-	IL_0008:  ret 
-    } // end of method TagTask::set_Tag
-
-    // method line 170
-    .method public hidebysig specialname 
-           instance default bool get_Remove ()  cil managed 
-    {
-        // Method begins at RVA 0x4208
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "remove"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method TagTask::get_Remove
-
-    // method line 171
-    .method public hidebysig specialname 
-           instance default void set_Remove (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4237
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "remove"
-	IL_0007:  ldstr "-d"
-	IL_000c:  ldarg.1 
-	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0012:  ret 
-    } // end of method TagTask::set_Remove
-
-    // method line 172
-    .method public hidebysig specialname 
-           instance default bool get_MoveIfExists ()  cil managed 
-    {
-        // Method begins at RVA 0x424c
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "move-if-exists"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method TagTask::get_MoveIfExists
-
-    // method line 173
-    .method public hidebysig specialname 
-           instance default void set_MoveIfExists (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x427b
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "move-if-exists"
-	IL_0007:  ldstr "-F"
-	IL_000c:  ldarg.1 
-	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0012:  ret 
-    } // end of method TagTask::set_MoveIfExists
-
-    // method line 174
-    .method public hidebysig specialname 
-           instance default bool get_Recursive ()  cil managed 
-    {
-        // Method begins at RVA 0x4290
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "recursive"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method TagTask::get_Recursive
-
-    // method line 175
-    .method public hidebysig specialname 
-           instance default void set_Recursive (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x42bf
-	// Code size 39 (0x27)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "recursive"
-	IL_0007:  ldstr "-R"
-	IL_000c:  ldarg.1 
-	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0012:  ldarg.0 
-	IL_0013:  ldstr "local-only"
-	IL_0018:  ldstr "-l"
-	IL_001d:  ldarg.1 
-	IL_001e:  ldc.i4.0 
-	IL_001f:  ceq 
-	IL_0021:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0026:  ret 
-    } // end of method TagTask::set_Recursive
-
-    // method line 176
-    .method public hidebysig specialname 
-           instance default string get_ActOnTag ()  cil managed 
-    {
-        // Method begins at RVA 0x42e8
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "act-on-tag"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method TagTask::get_ActOnTag
-
-    // method line 177
-    .method public hidebysig specialname 
-           instance default void set_ActOnTag (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4317
-	// Code size 30 (0x1e)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "act-on-tag"
-	IL_0007:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_000c:  ldstr "-r {0}"
-	IL_0011:  ldarg.1 
-	IL_0012:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0017:  ldc.i4.1 
-	IL_0018:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_001d:  ret 
-    } // end of method TagTask::set_ActOnTag
-
-    // method line 178
-    .method public hidebysig specialname 
-           instance default valuetype [mscorlib]System.DateTime get_ActOnDate ()  cil managed 
-    {
-        // Method begins at RVA 0x4338
-	// Code size 40 (0x28)
-	.maxstack 2
-	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "act-on-date"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
-	IL_001b:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.Convert::ToDateTime(string)
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
-
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method TagTask::get_ActOnDate
-
-    // method line 179
-    .method public hidebysig specialname 
-           instance default void set_ActOnDate (valuetype [mscorlib]System.DateTime 'value')  cil managed 
-    {
-        // Method begins at RVA 0x436c
-	// Code size 36 (0x24)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "act-on-date"
-	IL_0007:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_000c:  ldstr "-D {0}"
-	IL_0011:  ldarg.0 
-	IL_0012:  ldarg.1 
-	IL_0013:  call instance string class NAnt.SourceControl.Tasks.AbstractCvsTask::ToCvsDateTimeString(valuetype [mscorlib]System.DateTime)
-	IL_0018:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_001d:  ldc.i4.1 
-	IL_001e:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0023:  ret 
-    } // end of method TagTask::set_ActOnDate
-
-    // method line 180
-    .method public hidebysig specialname 
-           instance default bool get_ForceHead ()  cil managed 
-    {
-        // Method begins at RVA 0x4394
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "force-head"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method TagTask::get_ForceHead
-
-    // method line 181
-    .method public hidebysig specialname 
-           instance default void set_ForceHead (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x43c3
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "force-head"
-	IL_0007:  ldstr "-f"
-	IL_000c:  ldarg.1 
-	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0012:  ret 
-    } // end of method TagTask::set_ForceHead
-
-    // method line 182
-    .method public hidebysig specialname 
-           instance default bool get_FailIfModified ()  cil managed 
-    {
-        // Method begins at RVA 0x43d8
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.SourceControl.Tasks.AbstractSourceControlTask::get_CommandOptions()
-	IL_0007:  ldstr "fail-if-modified"
-	IL_000c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0011:  castclass [NAnt.Core]NAnt.Core.Types.Option
-	IL_0016:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method TagTask::get_FailIfModified
-
-    // method line 183
-    .method public hidebysig specialname 
-           instance default void set_FailIfModified (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x4407
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "fail-if-modified"
-	IL_0007:  ldstr "-c"
-	IL_000c:  ldarg.1 
-	IL_000d:  call instance void class NAnt.SourceControl.Tasks.AbstractSourceControlTask::SetCommandOption(string, string, bool)
-	IL_0012:  ret 
-    } // end of method TagTask::set_FailIfModified
-
-    // method line 184
-    .method public virtual hidebysig specialname 
-           instance default string get_CommandName ()  cil managed 
-    {
-        // Method begins at RVA 0x441c
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldstr "tag"
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method TagTask::get_CommandName
-
-    // method line 185
-    .method public virtual hidebysig specialname 
-           instance default string get_Module ()  cil managed 
-    {
-        // Method begins at RVA 0x4438
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method TagTask::get_Module
-
-    // method line 186
-    .method public virtual hidebysig specialname 
-           instance default void set_Module (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x444e
-	// Code size 2 (0x2)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method TagTask::set_Module
-
-    // method line 187
-    .method family virtual hidebysig 
-           instance default void AppendSubCommandArgs ()  cil managed 
-    {
-        // Method begins at RVA 0x4451
-	// Code size 54 (0x36)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::AppendSubCommandArgs()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance string class NAnt.SourceControl.Tasks.TagTask::get_Tag()
-	IL_000d:  brfalse IL_0035
-
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance string class NAnt.SourceControl.Tasks.TagTask::get_Tag()
-	IL_0018:  ldsfld string [mscorlib]System.String::Empty
-	IL_001d:  call bool string::op_Inequality(string, string)
-	IL_0022:  brfalse IL_0035
-
-	IL_0027:  nop 
-	IL_0028:  ldarg.0 
-	IL_0029:  ldarg.0 
-	IL_002a:  call instance string class NAnt.SourceControl.Tasks.TagTask::get_Tag()
-	IL_002f:  call instance void class NAnt.SourceControl.Tasks.AbstractCvsTask::AddArg(string)
-	IL_0034:  nop 
-	IL_0035:  ret 
-    } // end of method TagTask::AppendSubCommandArgs
-
-    // method line 188
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsModuleNeeded ()  cil managed 
-    {
-        // Method begins at RVA 0x4488
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method TagTask::get_IsModuleNeeded
-
-	.property instance string Tag ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 03 74 61 67 01 00 54 02 08 52 65 71 75 69   // ...tag..T..Requi
-		72 65 64 01                                     ) // red.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 02 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00 54 0E 0A 45 78 70 72 65 73 73 69 6F 6E 1D   // y.T..Expression.
-		5E 5B 41 2D 5A 61 2D 7A 30 2D 39 5D 5B 41 2D 5A   // ^[A-Za-z0-9][A-Z
-		61 2D 7A 30 2D 39 2E 5F 5C 2D 5D 2A 24          ) // a-z0-9._\-]*$
-
-		.get instance default string NAnt.SourceControl.Tasks.TagTask::get_Tag () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_Tag (string 'value') 
-	}
-	.property instance bool Remove ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 72 65 6D 6F 76 65 01 00 54 02 08 52 65   // ...remove..T..Re
-		71 75 69 72 65 64 00                            ) // quired.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_Remove () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_Remove (bool 'value') 
-	}
-	.property instance bool MoveIfExists ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0E 6D 6F 76 65 2D 69 66 2D 65 78 69 73 74   // ...move-if-exist
-		73 01 00 54 02 08 52 65 71 75 69 72 65 64 00    ) // s..T..Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_MoveIfExists () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_MoveIfExists (bool 'value') 
-	}
-	.property instance bool Recursive ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 09 72 65 63 75 72 73 69 76 65 01 00 54 02   // ...recursive..T.
-		08 52 65 71 75 69 72 65 64 00                   ) // .Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_Recursive () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_Recursive (bool 'value') 
-	}
-	.property instance string ActOnTag ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0A 61 63 74 2D 6F 6E 2D 74 61 67 01 00 54   // ...act-on-tag..T
-		02 08 52 65 71 75 69 72 65 64 00                ) // ..Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 02 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00 54 0E 0A 45 78 70 72 65 73 73 69 6F 6E 1D   // y.T..Expression.
-		5E 5B 41 2D 5A 61 2D 7A 30 2D 39 5D 5B 41 2D 5A   // ^[A-Za-z0-9][A-Z
-		61 2D 7A 30 2D 39 2E 5F 5C 2D 5D 2A 24          ) // a-z0-9._\-]*$
-
-		.get instance default string NAnt.SourceControl.Tasks.TagTask::get_ActOnTag () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_ActOnTag (string 'value') 
-	}
-	.property instance valuetype [mscorlib]System.DateTime ActOnDate ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0B 61 63 74 2D 6F 6E 2D 64 61 74 65 01 00   // ...act-on-date..
-		54 02 08 52 65 71 75 69 72 65 64 00             ) // T..Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.DateTimeValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default valuetype [mscorlib]System.DateTime NAnt.SourceControl.Tasks.TagTask::get_ActOnDate () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_ActOnDate (valuetype [mscorlib]System.DateTime 'value') 
-	}
-	.property instance bool ForceHead ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0A 66 6F 72 63 65 2D 68 65 61 64 01 00 54   // ...force-head..T
-		02 08 52 65 71 75 69 72 65 64 00                ) // ..Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_ForceHead () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_ForceHead (bool 'value') 
-	}
-	.property instance bool FailIfModified ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 10 66 61 69 6C 2D 69 66 2D 6D 6F 64 69 66   // ...fail-if-modif
-		69 65 64 01 00 54 02 08 52 65 71 75 69 72 65 64   // ied..T..Required
-		00                                              ) // .
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_FailIfModified () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_FailIfModified (bool 'value') 
-	}
-	.property instance string CommandName ()
-	{
-		.get instance default string NAnt.SourceControl.Tasks.TagTask::get_CommandName () 
-	}
-	.property instance string Module ()
-	{
-		.get instance default string NAnt.SourceControl.Tasks.TagTask::get_Module () 
-		.set instance default void NAnt.SourceControl.Tasks.TagTask::set_Module (string 'value') 
-	}
-	.property instance bool IsModuleNeeded ()
-	{
-		.get instance default bool NAnt.SourceControl.Tasks.TagTask::get_IsModuleNeeded () 
-	}
-  } // end of class NAnt.SourceControl.Tasks.TagTask
-}
-
/usr/share/NAnt/bin/NAnt.SourceControlTasks.xml differs (XML 1.0 document, ASCII text)
--- old//usr/share/NAnt/bin/NAnt.SourceControlTasks.xml	2018-06-14 00:00:00.000000000 +0000
+++ new//usr/share/NAnt/bin/NAnt.SourceControlTasks.xml	2018-06-14 00:00:00.000000000 +0000
@@ -23,6 +23,189 @@
              files to add to the exclude list.
              </summary>
             </member>
+        <member name="T:NAnt.SourceControl.Tasks.CvsPass">
+             <summary>
+             Executes the cvs login command which appends or updates an entry to the
+             specified .cvspass file.
+             </summary>
+             <example>
+               <para>Update .cvspass file to include the NAnt anonymous login.</para>
+               <code>
+                 <![CDATA[
+             <cvs-pass cvsroot=":pserver:anonymous@cvs.sourceforge.net:/cvsroot/nant" 
+                  password="anonymous"
+                  passfile="C:\.cvspass" />
+                 ]]>
+               </code>
+             </example>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.CvsPass.Password">
+             <summary>
+             Password to append or update to the .cvspass file.
+             </summary>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.CvsPass.PassFile">
+             <summary>
+             The full path to the .cvspass file.  The default is ~/.cvspass.
+             </summary>
+             <value></value>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.CvsPass.DestinationDirectory">
+             <summary>
+             The current working directory.
+             </summary>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.CvsPass.Root">
+             <summary>
+             The repository root string.
+             </summary>
+            </member>
+        <member name="M:NAnt.SourceControl.Tasks.CvsPass.Initialize">
+             <summary>
+             Ensures all information is available to execute the <see cref="T:NAnt.Core.Task" />.
+             </summary>
+            </member>
+        <member name="M:NAnt.SourceControl.Tasks.CvsPass.ExecuteTask">
+             <summary>
+             Update the .cvspass file with the given password.  If the passfile
+             is not specified then the default search locations are used:
+             <list type="list">
+                 <item>CVS_PASSFILE/.cvspass</item>
+                 <item>HOME/.cvspass</item>
+                 <item>USERPROFILE/.cvspass  TODO: Confirm that this is valid
+                     behavior or if it is going to give problems with the
+                     cvsnt implementation.</item>
+             </list>
+             </summary>
+            </member>
+        <member name="T:NAnt.SourceControl.Tasks.RTagTask">
+             <summary>
+             Tags all sources in the remote repository with a given tag.
+             </summary>
+             <remarks>
+             <para>
+             Unlike tag, the rtag command acts only on sources that are in the repository.  
+             Any modified sources on the local file system will NOT be tagged with this
+             command, so a commit should be performed before an rtag is done.
+             </para>
+             <para>
+             NOTE: Although a working directory is not necessary to perform the command 
+             one must be specified in order to remain in compliance with the cvs library.
+             </para>
+             </remarks>
+             <example>
+               <para>Tag NAnt sources remotely.</para>
+               <code>
+                 <![CDATA[
+             <cvs-rtag 
+                 cvsroot=":pserver:anonymous@cvs.sourceforge.net:/cvsroot/nant" 
+                 destination="."
+                 tag="v0_8_4"
+                  />
+                 ]]>
+               </code>
+             </example>
+             <example>
+               <para>Remove a tag from the remote repository.</para>
+               <code>
+                 <![CDATA[
+             <cvs-rtag 
+                 cvsroot=":pserver:anonymous@cvs.sourceforge.net:/cvsroot/nant" 
+                 destination="."
+                 tag="v0_8_4"
+                 remove="true"
+                  />
+                 ]]>
+               </code>
+             </example>
+            </member>
+        <member name="M:NAnt.SourceControl.Tasks.RTagTask.#ctor">
+             <summary>
+             Initializes a new instance of the <see cref="T:NAnt.SourceControl.Tasks.RTagTask" /> 
+             class.
+             </summary>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.RTagTask.Tag">
+             <summary>
+             The name of the tag to assign or remove.
+             </summary>
+             <value>
+             The name of the tag to assign or remove.
+             </value>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.RTagTask.Remove">
+             <summary>
+             Indicates whether the tag specified in <see cref="P:NAnt.SourceControl.Tasks.RTagTask.Tag" /> should
+             be removed or not. 
+             </summary>
+             <value>
+             <see langword="true" /> if the specified tag should be removed; 
+             otherwise, <see langword="false" />.  The default is <see langword="false" />.
+             </value>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.RTagTask.MoveIfExists">
+             <summary>
+             Indicates whether the tag specified in <see cref="P:NAnt.SourceControl.Tasks.RTagTask.Tag" /> should
+             be moved to the current file revision.  If the tag does not exist
+             then it is created. 
+             </summary>
+             <value>
+             <see langword="true" /> if the specified tag should be moved; 
+             otherwise, <see langword="false" />.  The default is <see langword="false" />.
+             </value>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.RTagTask.Recursive">
+             <summary>
+             If a directory is specified indicates whether sub-directories should
+             also be processed.
+             </summary>
+             <value>
+             <see langword="true" /> if the sub-directories should be tagged;
+             otherwise, <see langword="false" />.  The default is <see langword="true" />.
+             </value>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.RTagTask.ActOnTag">
+             <summary>
+             Indicates the repository <see cref="P:NAnt.SourceControl.Tasks.RTagTask.Tag" /> that is acted on
+             for the tag command.  Note if <see cref="P:NAnt.SourceControl.Tasks.RTagTask.MoveIfExists" /> is 
+             <see langword="true" /> then the tag specified is moved to the revision
+             of the file on the HEAD of the branch specified.
+             </summary>
+             <value>
+             The tag (or more likely) branch that should be used to apply the new tag.
+             </value>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.RTagTask.ActOnDate">
+             <summary>
+             Indicates the revision date of the file that the tag should be 
+             applied to.
+             </summary>
+             <value>
+             A valid date which specifies the revision point that the tag will
+             be applied to.
+             </value>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.RTagTask.ForceHead">
+             <summary>
+             Indicates whether the head revision should be used if the 
+             <see cref="P:NAnt.SourceControl.Tasks.RTagTask.ActOnTag" /> or the <see cref="P:NAnt.SourceControl.Tasks.RTagTask.ActOnDate" /> tags are not
+             found. 
+             </summary>
+             <value>
+             <see langword="true" /> if the specified tag should be moved; 
+             otherwise, <see langword="false" />.  The default is <see langword="false" />.
+             </value>
+            </member>
+        <member name="P:NAnt.SourceControl.Tasks.RTagTask.CommandName">
+             <summary>
+             The name of the cvs command that is going to be executed.
+             </summary>
+            </member>
+        <member name="M:NAnt.SourceControl.Tasks.RTagTask.AppendSubCommandArgs">
+             <summary>
+             Append the tag information to the commandline.
+             </summary>
+            </member>
         <member name="T:NAnt.SourceControl.Tasks.CheckoutTask">
              <summary>
              Checks out a CVS module to the required directory.
@@ -120,6 +303,143 @@
              The name of the cvs command that is going to be executed.
              </summary>
             </member>
+        <member name="T:NAnt.SourceControl.Tasks.ExportTask">
+             <summary>
+             Exports a cvs module in preperation for a release (i.e. the CVS version
+             folders are not exported).
PE32 Mono/.Net assembly: /usr/share/NAnt/bin/NAnt.VSNetTasks.dll
/usr/share/NAnt/bin/NAnt.VSNetTasks.dll differs (PE32 executable (DLL) (console) Intel 80386, Mono/.Net assembly, for MS Windows)
--- old /usr/share/NAnt/bin/NAnt.VSNetTasks.dll (monodis)
+++ new /usr/share/NAnt/bin/NAnt.VSNetTasks.dll (monodis)
@@ -75,727 +75,6 @@
 
 .module extern 'oleaut32.dll'
 
-.namespace NAnt.VSNet.Extensibility
-{
-  .class interface public auto ansi abstract ISolutionBuildProvider
-  	implements [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
-
-    // method line 1
-    .method public virtual hidebysig newslot abstract 
-           instance default int32 IsSupported (string fileContents)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ISolutionBuildProvider::IsSupported
-
-    // method line 2
-    .method public virtual hidebysig newslot abstract 
-           instance default class NAnt.VSNet.SolutionBase GetInstance (string solutionContent, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ISolutionBuildProvider::GetInstance
-
-  } // end of class NAnt.VSNet.Extensibility.ISolutionBuildProvider
-}
-
-.namespace NAnt.VSNet.Extensibility
-{
-  .class interface public auto ansi abstract IProjectBuildProvider
-  	implements [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
-
-    // method line 3
-    .method public virtual hidebysig newslot abstract 
-           instance default int32 IsSupported (string projectExt, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IProjectBuildProvider::IsSupported
-
-    // method line 4
-    .method public virtual hidebysig newslot abstract 
-           instance default class NAnt.VSNet.ProjectBase GetInstance (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IProjectBuildProvider::GetInstance
-
-    // method line 5
-    .method public virtual hidebysig newslot abstract 
-           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method IProjectBuildProvider::LoadGuid
-
-  } // end of class NAnt.VSNet.Extensibility.IProjectBuildProvider
-}
-
-.namespace NAnt.VSNet.Everett
-{
-  .class private auto ansi beforefieldinit Solution
-  	extends NAnt.VSNet.SolutionBase
-  {
-
-    // method line 6
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string solutionContent, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver)  cil managed 
-    {
-        // Method begins at RVA 0x36ac
-	// Code size 775 (0x307)
-	.maxstack 5
-	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0,
-		class [System]System.Text.RegularExpressions.MatchCollection	V_1,
-		class [mscorlib]System.Collections.Hashtable	V_2,
-		class [System]System.Text.RegularExpressions.Match	V_3,
-		class [mscorlib]System.Collections.IEnumerator	V_4,
-		string	V_5,
-		string	V_6,
-		string	V_7,
-		bool	V_8,
-		class [System]System.Text.RegularExpressions.Regex	V_9,
-		class [System]System.Text.RegularExpressions.MatchCollection	V_10,
-		class [System]System.Text.RegularExpressions.Match	V_11,
-		class [mscorlib]System.Collections.IEnumerator	V_12,
-		string	V_13,
-		string	V_14,
-		class [mscorlib]System.IDisposable	V_15,
-		class [System]System.Text.RegularExpressions.Regex	V_16,
-		class [System]System.Text.RegularExpressions.MatchCollection	V_17,
-		class NAnt.VSNet.ProjectEntry	V_18,
-		class NAnt.VSNet.ConfigurationMap	V_19,
-		int32	V_20,
-		class [System]System.Text.RegularExpressions.Match	V_21,
-		string	V_22,
-		string	V_23,
-		string	V_24,
-		string	V_25,
-		class NAnt.VSNet.Configuration	V_26,
-		class NAnt.VSNet.Configuration	V_27,
-		class [mscorlib]System.IDisposable	V_28)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.2 
-	IL_0002:  ldarg.3 
-	IL_0003:  ldarg.s 4
-	IL_0005:  ldarg.s 5
-	IL_0007:  call instance void class NAnt.VSNet.SolutionBase::'.ctor'(class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver)
-	IL_000c:  nop 
-	IL_000d:  ldstr "Project\\(\\\"(?<package>\\{.*?\\})\\\".*?\\\"(?<name>.*?)\\\".*?\\\"(?<project>.*?)\\\".*?\\\"(?<guid>.*?)\\\"(?<all>[\\s\\S]*?)EndProject"
-	IL_0012:  ldc.i4.2 
-	IL_0013:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
-	IL_0018:  stloc.0 
-	IL_0019:  ldloc.0 
-	IL_001a:  ldarg.1 
-	IL_001b:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
-	IL_0020:  stloc.1 
-	IL_0021:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_0026:  stloc.2 
-	IL_0027:  nop 
-	IL_0028:  ldloc.1 
-	IL_0029:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System]System.Text.RegularExpressions.MatchCollection::GetEnumerator()
-	IL_002e:  stloc.s 4
-	.try { // 1
-	  IL_0030:  br IL_02a5
-
-	  IL_0035:  ldloc.s 4
-	  IL_0037:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_003c:  castclass [System]System.Text.RegularExpressions.Match
-	  IL_0041:  stloc.3 
-	  IL_0042:  nop 
-	  IL_0043:  ldloc.3 
-	  IL_0044:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_0049:  ldstr "project"
-	  IL_004e:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	  IL_0053:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_0058:  stloc.s 5
-	  IL_005a:  ldloc.3 
-	  IL_005b:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_0060:  ldstr "guid"
-	  IL_0065:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	  IL_006a:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_006f:  stloc.s 6
-	  IL_0071:  ldarg.0 
-	  IL_0072:  ldarg.2 
-	  IL_0073:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
-	  IL_0078:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
-	  IL_007d:  ldloc.s 5
-	  IL_007f:  call instance string class NAnt.VSNet.SolutionBase::TranslateProjectPath(string, string)
-	  IL_0084:  stloc.s 7
-	  IL_0086:  ldloc.s 7
-	  IL_0088:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_008d:  brtrue IL_009c
-
-	  IL_0092:  nop 
-	  IL_0093:  ldarg.0 
-	  IL_0094:  ldloc.s 7
-	  IL_0096:  call instance class [NAnt.Core]NAnt.Core.BuildException class NAnt.VSNet.SolutionBase::CreateProjectDoesNotExistException(string)
-	  IL_009b:  throw 
-	  IL_009c:  ldloc.s 7
-	  IL_009e:  call bool class NAnt.VSNet.ManagedProjectBase::IsEnterpriseTemplateProject(string)
-	  IL_00a3:  stloc.s 8
-	  IL_00a5:  ldloc.s 8
-	  IL_00a7:  brfalse IL_00bb
-
-	  IL_00ac:  nop 
-	  IL_00ad:  ldarg.0 
-	  IL_00ae:  ldloc.s 7
-	  IL_00b0:  call instance void class NAnt.VSNet.SolutionBase::RecursiveLoadTemplateProject(string)
-	  IL_00b5:  nop 
-	  IL_00b6:  br IL_00d2
-
-	  IL_00bb:  nop 
-	  IL_00bc:  ldarg.0 
-	  IL_00bd:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	  IL_00c2:  ldloc.s 6
-	  IL_00c4:  ldloc.s 7
-	  IL_00c6:  newobj instance void class NAnt.VSNet.ProjectEntry::'.ctor'(string, string)
-	  IL_00cb:  callvirt instance int32 class NAnt.VSNet.ProjectEntryCollection::Add(class NAnt.VSNet.ProjectEntry)
-	  IL_00d0:  pop 
-	  IL_00d1:  nop 
-	  IL_00d2:  ldstr "^\\s+(?<guid>\\{[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}\\})\\s+=\\s+(?<dep>\\{[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}\\})"
-	  IL_00d7:  ldc.i4.2 
-	  IL_00d8:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
-	  IL_00dd:  stloc.s 9
-	  IL_00df:  ldloc.s 9
-	  IL_00e1:  ldloc.3 
-	  IL_00e2:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_00e7:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
-	  IL_00ec:  stloc.s 10
-	  IL_00ee:  nop 
-	  IL_00ef:  ldloc.s 10
-	  IL_00f1:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System]System.Text.RegularExpressions.MatchCollection::GetEnumerator()
-	  IL_00f6:  stloc.s 12
-	  .try { // 0
-	    IL_00f8:  br IL_017c
-
-	    IL_00fd:  ldloc.s 12
-	    IL_00ff:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_0104:  castclass [System]System.Text.RegularExpressions.Match
-	    IL_0109:  stloc.s 11
-	    IL_010b:  nop 
-	    IL_010c:  ldloc.s 11
-	    IL_010e:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	    IL_0113:  ldstr "dep"
-	    IL_0118:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	    IL_011d:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	    IL_0122:  stloc.s 13
-	    IL_0124:  ldloc.s 8
-	    IL_0126:  brfalse IL_0146
-
-	    IL_012b:  ldloc.s 11
-	    IL_012d:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	    IL_0132:  ldstr "guid"
-	    IL_0137:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	    IL_013c:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	    IL_0141:  br IL_0148
-
-	    IL_0146:  ldloc.s 6
-	    IL_0148:  stloc.s 14
-	    IL_014a:  ldloc.2 
-	    IL_014b:  ldloc.s 14
-	    IL_014d:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	    IL_0152:  brtrue IL_0166
-
-	    IL_0157:  nop 
-	    IL_0158:  ldloc.2 
-	    IL_0159:  ldloc.s 14
-	    IL_015b:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	    IL_0160:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	    IL_0165:  nop 
-	    IL_0166:  ldloc.2 
-	    IL_0167:  ldloc.s 14
-	    IL_0169:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	    IL_016e:  castclass [mscorlib]System.Collections.Hashtable
-	    IL_0173:  ldloc.s 13
-	    IL_0175:  ldnull 
-	    IL_0176:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	    IL_017b:  nop 
-	    IL_017c:  ldloc.s 12
-	    IL_017e:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_0183:  brtrue IL_00fd
-
-	    IL_0188:  leave IL_01a4
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_018d:  ldloc.s 12
-	    IL_018f:  isinst [mscorlib]System.IDisposable
-	    IL_0194:  dup 
-	    IL_0195:  stloc.s 15
-	    IL_0197:  brfalse IL_01a3
-
-	    IL_019c:  ldloc.s 15
-	    IL_019e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_01a3:  endfinally 
-	  } // end handler 0
-	  IL_01a4:  ldstr "^\\s+"
-	  IL_01a9:  ldloc.s 6
-	  IL_01ab:  ldstr "\\.(?<solutionConfiguration>[^|]+)\\|?(?<solutionPlatform>[^\\.]?)\\.Build\\.0\\s*=\\s* (?<projectConfiguration>[^|]+)\\|(?<projectPlatform>[\\.\\w ]+)\\s*"
-	  IL_01b0:  call string string::Concat(string, string, string)
-	  IL_01b5:  ldc.i4.2 
-	  IL_01b6:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
-	  IL_01bb:  stloc.s 16
-	  IL_01bd:  ldloc.s 16
-	  IL_01bf:  ldarg.1 
-	  IL_01c0:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
-	  IL_01c5:  stloc.s 17
-	  IL_01c7:  ldarg.0 
-	  IL_01c8:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	  IL_01cd:  ldloc.s 6
-	  IL_01cf:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
-	  IL_01d4:  stloc.s 18
-	  IL_01d6:  ldloc.s 18
-	  IL_01d8:  brtrue IL_01e3
-
-	  IL_01dd:  nop 
-	  IL_01de:  leave IL_02a5
-
-	  IL_01e3:  ldloc.s 17
-	  IL_01e5:  callvirt instance int32 class [System]System.Text.RegularExpressions.MatchCollection::get_Count()
-	  IL_01ea:  newobj instance void class NAnt.VSNet.ConfigurationMap::'.ctor'(int32)
-	  IL_01ef:  stloc.s 19
-	  IL_01f1:  ldc.i4.0 
-	  IL_01f2:  stloc.s 20
-	  IL_01f4:  br IL_028d
-
-	  IL_01f9:  nop 
-	  IL_01fa:  ldloc.s 17
-	  IL_01fc:  ldloc.s 20
-	  IL_01fe:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.MatchCollection::get_Item(int32)
-	  IL_0203:  stloc.s 21
-	  IL_0205:  ldloc.s 21
-	  IL_0207:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_020c:  ldstr "solutionConfiguration"
-	  IL_0211:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	  IL_0216:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_021b:  stloc.s 22
-	  IL_021d:  ldloc.s 21
-	  IL_021f:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_0224:  ldstr "solutionPlatform"
-	  IL_0229:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	  IL_022e:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_0233:  stloc.s 23
-	  IL_0235:  ldloc.s 21
-	  IL_0237:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_023c:  ldstr "projectConfiguration"
-	  IL_0241:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	  IL_0246:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_024b:  stloc.s 24
-	  IL_024d:  ldloc.s 21
-	  IL_024f:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_0254:  ldstr "projectPlatform"
-	  IL_0259:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	  IL_025e:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_0263:  stloc.s 25
-	  IL_0265:  ldloc.s 22
-	  IL_0267:  ldloc.s 23
-	  IL_0269:  newobj instance void class NAnt.VSNet.Configuration::'.ctor'(string, string)
-	  IL_026e:  stloc.s 26
-	  IL_0270:  ldloc.s 24
-	  IL_0272:  ldloc.s 25
-	  IL_0274:  newobj instance void class NAnt.VSNet.Configuration::'.ctor'(string, string)
-	  IL_0279:  stloc.s 27
-	  IL_027b:  ldloc.s 19
-	  IL_027d:  ldloc.s 26
-	  IL_027f:  ldloc.s 27
-	  IL_0281:  callvirt instance void class NAnt.VSNet.ConfigurationMap::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.Configuration)
-	  IL_0286:  nop 
-	  IL_0287:  ldloc.s 20
-	  IL_0289:  ldc.i4.1 
-	  IL_028a:  add 
-	  IL_028b:  stloc.s 20
-	  IL_028d:  ldloc.s 20
-	  IL_028f:  ldloc.s 17
-	  IL_0291:  callvirt instance int32 class [System]System.Text.RegularExpressions.MatchCollection::get_Count()
-	  IL_0296:  blt IL_01f9
-
-	  IL_029b:  ldloc.s 18
-	  IL_029d:  ldloc.s 19
-	  IL_029f:  callvirt instance void class NAnt.VSNet.ProjectEntry::set_BuildConfigurations(class NAnt.VSNet.ConfigurationMap)
-	  IL_02a4:  nop 
-	  IL_02a5:  ldloc.s 4
-	  IL_02a7:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_02ac:  brtrue IL_0035
-
-	  IL_02b1:  leave IL_02cd
-
-	} // end .try 1
-	finally  { // 1
-	  IL_02b6:  ldloc.s 4
-	  IL_02b8:  isinst [mscorlib]System.IDisposable
-	  IL_02bd:  dup 
-	  IL_02be:  stloc.s 28
-	  IL_02c0:  brfalse IL_02cc
-
-	  IL_02c5:  ldloc.s 28
-	  IL_02c7:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_02cc:  endfinally 
-	} // end handler 1
-	IL_02cd:  ldarg.0 
-	IL_02ce:  ldarg.2 
-	IL_02cf:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VSNet.Tasks.SolutionTask::get_Projects()
-	IL_02d4:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_02d9:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(class [mscorlib]System.Collections.ICollection)
-	IL_02de:  ldc.i4.0 
-	IL_02df:  call instance void class NAnt.VSNet.SolutionBase::LoadProjectGuids(class [mscorlib]System.Collections.ArrayList, bool)
-	IL_02e4:  ldarg.0 
-	IL_02e5:  ldarg.2 
-	IL_02e6:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VSNet.Tasks.SolutionTask::get_ReferenceProjects()
-	IL_02eb:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_02f0:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(class [mscorlib]System.Collections.ICollection)
-	IL_02f5:  ldc.i4.1 
-	IL_02f6:  call instance void class NAnt.VSNet.SolutionBase::LoadProjectGuids(class [mscorlib]System.Collections.ArrayList, bool)
-	IL_02fb:  ldarg.0 
-	IL_02fc:  ldarg.s 4
-	IL_02fe:  ldarg.s 5
-	IL_0300:  ldloc.2 
-	IL_0301:  call instance void class NAnt.VSNet.SolutionBase::LoadProjects(class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.Collections.Hashtable)
-	IL_0306:  ret 
-    } // end of method Solution::.ctor
-
-  } // end of class NAnt.VSNet.Everett.Solution
-}
-
-.namespace NAnt.VSNet.Everett
-{
-  .class private auto ansi beforefieldinit SolutionProvider
-  	extends [mscorlib]System.Object
-  	implements NAnt.VSNet.Extensibility.ISolutionBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
-
-    // method line 7
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x39f4
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method SolutionProvider::.ctor
-
-    // method line 8
-    .method public final virtual hidebysig newslot 
-           instance default int32 IsSupported (string fileContents)  cil managed 
-    {
-        // Method begins at RVA 0x39fc
-	// Code size 101 (0x65)
-	.maxstack 2
-	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0,
-		class [System]System.Text.RegularExpressions.MatchCollection	V_1,
-		int32	V_2,
-		string	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldstr "^\\s*Microsoft Visual Studio Solution File, Format Version\\s+(?<formatVersion>[0-9]+\\.[0-9]+)"
-	IL_0006:  ldc.i4.s 0x10
-	IL_0008:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
-	IL_0015:  stloc.1 
-	IL_0016:  ldloc.1 
-	IL_0017:  callvirt instance int32 class [System]System.Text.RegularExpressions.MatchCollection::get_Count()
-	IL_001c:  brtrue IL_0028
-
-	IL_0021:  ldc.i4.0 
-	IL_0022:  stloc.2 
-	IL_0023:  br IL_0063
-
-	IL_0028:  ldloc.1 
-	IL_0029:  ldc.i4.0 
-	IL_002a:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.MatchCollection::get_Item(int32)
-	IL_002f:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	IL_0034:  ldstr "formatVersion"
-	IL_0039:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	IL_003e:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	IL_0043:  stloc.3 
-	IL_0044:  ldloc.3 
-	IL_0045:  ldstr "8.00"
-	IL_004a:  call bool string::op_Equality(string, string)
-	IL_004f:  brfalse IL_005c
-
-	IL_0054:  ldc.i4.s 0x0a
-	IL_0056:  stloc.2 
-	IL_0057:  br IL_0063
-
-	IL_005c:  ldc.i4.0 
-	IL_005d:  stloc.2 
-	IL_005e:  br IL_0063
-
-	IL_0063:  ldloc.2 
-	IL_0064:  ret 
-    } // end of method SolutionProvider::IsSupported
-
-    // method line 9
-    .method public final virtual hidebysig newslot 
-           instance default class NAnt.VSNet.SolutionBase GetInstance (string solutionContent, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver)  cil managed 
-    {
-        // Method begins at RVA 0x3a70
-	// Code size 21 (0x15)
-	.maxstack 5
-	.locals init (
-		class NAnt.VSNet.SolutionBase	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  ldarg.s 4
-	IL_0006:  ldarg.s 5
-	IL_0008:  newobj instance void class NAnt.VSNet.Everett.Solution::'.ctor'(string, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method SolutionProvider::GetInstance
-
-  } // end of class NAnt.VSNet.Everett.SolutionProvider
-}
-
-.namespace NAnt.VSNet.Types
-{
-  .class public auto ansi serializable beforefieldinit WebMap
-  	extends [NAnt.Core]NAnt.Core.Element
-  {
-    .field  private  string _url
-    .field  private  class [mscorlib]System.IO.FileInfo _path
-    .field  private  bool _caseSensitive
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
-
-    // method line 10
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x3a91
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.VSNet.Types.WebMap::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_000d:  ret 
-    } // end of method WebMap::.ctor
-
-    // method line 11
-    .method public hidebysig specialname 
-           instance default string get_Url ()  cil managed 
-    {
-        // Method begins at RVA 0x3aa0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.Types.WebMap::_url
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method WebMap::get_Url
-
-    // method line 12
-    .method public hidebysig specialname 
-           instance default void set_Url (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3abb
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.VSNet.Types.WebMap::_url
-	IL_000d:  ret 
-    } // end of method WebMap::set_Url
-
-    // method line 13
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Path ()  cil managed 
-    {
-        // Method begins at RVA 0x3acc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.Types.WebMap::_path
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method WebMap::get_Path
-
-    // method line 14
-    .method public hidebysig specialname 
-           instance default void set_Path (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3ae7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.Types.WebMap::_path
-	IL_0008:  ret 
-    } // end of method WebMap::set_Path
-
-    // method line 15
-    .method public hidebysig specialname 
-           instance default bool get_CaseSensitive ()  cil managed 
-    {
-        // Method begins at RVA 0x3af4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.Types.WebMap::_caseSensitive
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method WebMap::get_CaseSensitive
-
-    // method line 16
-    .method public hidebysig specialname 
-           instance default void set_CaseSensitive (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3b0f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.VSNet.Types.WebMap::_caseSensitive
-	IL_0008:  ret 
-    } // end of method WebMap::set_CaseSensitive
-
-    // method line 17
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x3b1c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.Types.WebMap::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method WebMap::get_IfDefined
-
-    // method line 18
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3b37
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.VSNet.Types.WebMap::_ifDefined
-	IL_0008:  ret 
-    } // end of method WebMap::set_IfDefined
-
-    // method line 19
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x3b44
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.Types.WebMap::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method WebMap::get_UnlessDefined
-
-    // method line 20
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3b5f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.VSNet.Types.WebMap::_unlessDefined
-	IL_0008:  ret 
-    } // end of method WebMap::set_UnlessDefined
-
-	.property instance string Url ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 03 75 72 6C 01 00 54 02 08 52 65 71 75 69   // ...url..T..Requi
-		72 65 64 01                                     ) // red.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.VSNet.Types.WebMap::get_Url () 
-		.set instance default void NAnt.VSNet.Types.WebMap::set_Url (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo Path ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 70 61 74 68 01 00 54 02 08 52 65 71 75   // ...path..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VSNet.Types.WebMap::get_Path () 
-		.set instance default void NAnt.VSNet.Types.WebMap::set_Path (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance bool CaseSensitive ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0D 63 61 73 65 73 65 6E 73 69 74 69 76 65   // ...casesensitive
-		01 00 54 02 08 52 65 71 75 69 72 65 64 00       ) // ..T..Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.VSNet.Types.WebMap::get_CaseSensitive () 
-		.set instance default void NAnt.VSNet.Types.WebMap::set_CaseSensitive (bool 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.VSNet.Types.WebMap::get_IfDefined () 
-		.set instance default void NAnt.VSNet.Types.WebMap::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.VSNet.Types.WebMap::get_UnlessDefined () 
-		.set instance default void NAnt.VSNet.Types.WebMap::set_UnlessDefined (bool 'value') 
-	}
-  } // end of class NAnt.VSNet.Types.WebMap
-}
-
 .namespace NAnt.VSNet.Types
 {
   .class public auto ansi sealed UsePrecompiledHeader
@@ -826,30 +105,17 @@
 
 .namespace NAnt.VSNet.Types
 {
-  .class public auto ansi sealed UseOfMFC
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.VSNet.Types.UseOfMFC NotUsing = int32(0x00000000)
-    .field public static literal  valuetype NAnt.VSNet.Types.UseOfMFC Static = int32(0x00000001)
-    .field public static literal  valuetype NAnt.VSNet.Types.UseOfMFC Shared = int32(0x00000002)
-
-  } // end of class NAnt.VSNet.Types.UseOfMFC
-}
-
-.namespace NAnt.VSNet.Types
-{
   .class public auto ansi serializable beforefieldinit WebMapCollection
   	extends [mscorlib]System.Collections.CollectionBase
   {
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 21
+    // method line 1
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3b69
+        // Method begins at RVA 0x2050
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -858,11 +124,11 @@
 	IL_0007:  ret 
     } // end of method WebMapCollection::.ctor
 
-    // method line 22
+    // method line 2
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.Types.WebMapCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x3b72
+        // Method begins at RVA 0x2059
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -874,11 +140,11 @@
 	IL_000e:  ret 
     } // end of method WebMapCollection::.ctor
 
-    // method line 23
+    // method line 3
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.Types.WebMap[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x3b82
+        // Method begins at RVA 0x2069
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -890,11 +156,11 @@
 	IL_000e:  ret 
     } // end of method WebMapCollection::.ctor
 
-    // method line 24
+    // method line 4
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.Types.WebMap get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x3b94
+        // Method begins at RVA 0x207c
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -912,11 +178,11 @@
 	IL_0019:  ret 
     } // end of method WebMapCollection::get_Item
 
-    // method line 25
+    // method line 5
     .method public hidebysig specialname 
            instance default void set_Item (int32 index, class NAnt.VSNet.Types.WebMap 'value')  cil managed 
     {
-        // Method begins at RVA 0x3bba
+        // Method begins at RVA 0x20a2
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -928,11 +194,11 @@
 	IL_000e:  ret 
     } // end of method WebMapCollection::set_Item
 
-    // method line 26
+    // method line 6
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.Types.WebMap get_Item (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3bcc
+        // Method begins at RVA 0x20b4
 	// Code size 125 (0x7d)
 	.maxstack 4
 	.locals init (
@@ -1002,11 +268,11 @@
 	IL_007c:  ret 
     } // end of method WebMapCollection::get_Item
 
-    // method line 27
+    // method line 7
     .method public hidebysig 
            instance default string FindBestMatch (string uri)  cil managed 
     {
-        // Method begins at RVA 0x3c68
+        // Method begins at RVA 0x2150
 	// Code size 254 (0xfe)
 	.maxstack 3
 	.locals init (
@@ -1121,11 +387,11 @@
 	IL_00fd:  ret 
     } // end of method WebMapCollection::FindBestMatch
 
-    // method line 28
+    // method line 8
     .method public hidebysig 
            instance default int32 Add (class NAnt.VSNet.Types.WebMap item)  cil managed 
     {
-        // Method begins at RVA 0x3d84
+        // Method begins at RVA 0x226c
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1142,11 +408,11 @@
 	IL_0014:  ret 
     } // end of method WebMapCollection::Add
 
-    // method line 29
+    // method line 9
     .method public hidebysig 
            instance default void AddRange (class NAnt.VSNet.Types.WebMap[] items)  cil managed 
     {
-        // Method begins at RVA 0x3da8
+        // Method begins at RVA 0x2290
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -1177,11 +443,11 @@
 	IL_0021:  ret 
     } // end of method WebMapCollection::AddRange
 
-    // method line 30
+    // method line 10
     .method public hidebysig 
            instance default void AddRange (class NAnt.VSNet.Types.WebMapCollection items)  cil managed 
     {
-        // Method begins at RVA 0x3dd8
+        // Method begins at RVA 0x22c0
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -1211,11 +477,11 @@
 	IL_0028:  ret 
     } // end of method WebMapCollection::AddRange
 
-    // method line 31
+    // method line 11
     .method public hidebysig 
            instance default bool Contains (class NAnt.VSNet.Types.WebMap item)  cil managed 
     {
-        // Method begins at RVA 0x3e10
+        // Method begins at RVA 0x22f8
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1232,11 +498,11 @@
 	IL_0014:  ret 
     } // end of method WebMapCollection::Contains
 
-    // method line 32
+    // method line 12
     .method public hidebysig 
            instance default bool Contains (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3e34
+        // Method begins at RVA 0x231c
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -1256,11 +522,11 @@
 	IL_0015:  ret 
     } // end of method WebMapCollection::Contains
 
-    // method line 33
+    // method line 13
     .method public hidebysig 
            instance default void CopyTo (class NAnt.VSNet.Types.WebMap[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x3e56
+        // Method begins at RVA 0x233e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1272,11 +538,11 @@
 	IL_000e:  ret 
     } // end of method WebMapCollection::CopyTo
 
-    // method line 34
+    // method line 14
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.VSNet.Types.WebMap item)  cil managed 
     {
-        // Method begins at RVA 0x3e68
+        // Method begins at RVA 0x2350
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1293,11 +559,11 @@
 	IL_0014:  ret 
     } // end of method WebMapCollection::IndexOf
 
-    // method line 35
+    // method line 15
     .method public hidebysig 
            instance default void Insert (int32 index, class NAnt.VSNet.Types.WebMap item)  cil managed 
     {
-        // Method begins at RVA 0x3e89
+        // Method begins at RVA 0x2371
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1309,11 +575,11 @@
 	IL_000e:  ret 
     } // end of method WebMapCollection::Insert
 
-    // method line 36
+    // method line 16
     .method public hidebysig 
            instance default class NAnt.VSNet.Types.WebMapEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x3e9c
+        // Method begins at RVA 0x2384
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1328,11 +594,11 @@
 	IL_000e:  ret 
     } // end of method WebMapCollection::GetEnumerator
 
-    // method line 37
+    // method line 17
     .method public hidebysig 
            instance default void Remove (class NAnt.VSNet.Types.WebMap item)  cil managed 
     {
-        // Method begins at RVA 0x3eb7
+        // Method begins at RVA 0x239f
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1362,11 +628,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 38
+    // method line 18
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.Types.WebMapCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x3ec8
+        // Method begins at RVA 0x23b0
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -1383,11 +649,11 @@
 	IL_0015:  ret 
     } // end of method WebMapEnumerator::.ctor
 
-    // method line 39
+    // method line 19
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.Types.WebMap get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x3eec
+        // Method begins at RVA 0x23d4
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -1404,11 +670,11 @@
 	IL_0018:  ret 
     } // end of method WebMapEnumerator::get_Current
 
-    // method line 40
+    // method line 20
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x3f14
+        // Method begins at RVA 0x23fc
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -1425,11 +691,11 @@
 	IL_0013:  ret 
     } // end of method WebMapEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 41
+    // method line 21
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x3f34
+        // Method begins at RVA 0x241c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -1445,11 +711,11 @@
 	IL_0013:  ret 
     } // end of method WebMapEnumerator::MoveNext
 
-    // method line 42
+    // method line 22
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x3f54
+        // Method begins at RVA 0x243c
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -1466,11 +732,11 @@
 	IL_0013:  ret 
     } // end of method WebMapEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 43
+    // method line 23
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x3f74
+        // Method begins at RVA 0x245c
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1480,11 +746,11 @@
 	IL_000c:  ret 
     } // end of method WebMapEnumerator::Reset
 
-    // method line 44
+    // method line 24
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x3f82
+        // Method begins at RVA 0x246a
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
@@ -1506,6 +772,728 @@
   } // end of class NAnt.VSNet.Types.WebMapEnumerator
 }
 
+.namespace NAnt.VSNet.Types
+{
+  .class public auto ansi serializable beforefieldinit WebMap
+  	extends [NAnt.Core]NAnt.Core.Element
+  {
+    .field  private  string _url
+    .field  private  class [mscorlib]System.IO.FileInfo _path
+    .field  private  bool _caseSensitive
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
+
+    // method line 25
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2478
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.VSNet.Types.WebMap::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_000d:  ret 
+    } // end of method WebMap::.ctor
+
+    // method line 26
+    .method public hidebysig specialname 
+           instance default string get_Url ()  cil managed 
+    {
+        // Method begins at RVA 0x2488
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.Types.WebMap::_url
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method WebMap::get_Url
+
+    // method line 27
+    .method public hidebysig specialname 
+           instance default void set_Url (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x24a3
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.VSNet.Types.WebMap::_url
+	IL_000d:  ret 
+    } // end of method WebMap::set_Url
+
+    // method line 28
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Path ()  cil managed 
+    {
+        // Method begins at RVA 0x24b4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.Types.WebMap::_path
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method WebMap::get_Path
+
+    // method line 29
+    .method public hidebysig specialname 
+           instance default void set_Path (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x24cf
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.Types.WebMap::_path
+	IL_0008:  ret 
+    } // end of method WebMap::set_Path
+
+    // method line 30
+    .method public hidebysig specialname 
+           instance default bool get_CaseSensitive ()  cil managed 
+    {
+        // Method begins at RVA 0x24dc
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.Types.WebMap::_caseSensitive
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method WebMap::get_CaseSensitive
+
+    // method line 31
+    .method public hidebysig specialname 
+           instance default void set_CaseSensitive (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x24f7
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.VSNet.Types.WebMap::_caseSensitive
+	IL_0008:  ret 
+    } // end of method WebMap::set_CaseSensitive
+
+    // method line 32
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x2504
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.Types.WebMap::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method WebMap::get_IfDefined
+
+    // method line 33
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x251f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.VSNet.Types.WebMap::_ifDefined
+	IL_0008:  ret 
+    } // end of method WebMap::set_IfDefined
+
+    // method line 34
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x252c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.Types.WebMap::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method WebMap::get_UnlessDefined
+
+    // method line 35
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2547
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.VSNet.Types.WebMap::_unlessDefined
+	IL_0008:  ret 
+    } // end of method WebMap::set_UnlessDefined
+
+	.property instance string Url ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 03 75 72 6C 01 00 54 02 08 52 65 71 75 69   // ...url..T..Requi
+		72 65 64 01                                     ) // red.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.VSNet.Types.WebMap::get_Url () 
+		.set instance default void NAnt.VSNet.Types.WebMap::set_Url (string 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo Path ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 70 61 74 68 01 00 54 02 08 52 65 71 75   // ...path..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VSNet.Types.WebMap::get_Path () 
+		.set instance default void NAnt.VSNet.Types.WebMap::set_Path (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance bool CaseSensitive ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0D 63 61 73 65 73 65 6E 73 69 74 69 76 65   // ...casesensitive
+		01 00 54 02 08 52 65 71 75 69 72 65 64 00       ) // ..T..Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.VSNet.Types.WebMap::get_CaseSensitive () 
+		.set instance default void NAnt.VSNet.Types.WebMap::set_CaseSensitive (bool 'value') 
+	}
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.VSNet.Types.WebMap::get_IfDefined () 
+		.set instance default void NAnt.VSNet.Types.WebMap::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.VSNet.Types.WebMap::get_UnlessDefined () 
+		.set instance default void NAnt.VSNet.Types.WebMap::set_UnlessDefined (bool 'value') 
+	}
+  } // end of class NAnt.VSNet.Types.WebMap
+}
+
+.namespace NAnt.VSNet.Types
+{
+  .class public auto ansi sealed UseOfMFC
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.VSNet.Types.UseOfMFC NotUsing = int32(0x00000000)
+    .field public static literal  valuetype NAnt.VSNet.Types.UseOfMFC Static = int32(0x00000001)
+    .field public static literal  valuetype NAnt.VSNet.Types.UseOfMFC Shared = int32(0x00000002)
+
+  } // end of class NAnt.VSNet.Types.UseOfMFC
+}
+
+.namespace NAnt.VSNet.Extensibility
+{
+  .class interface public auto ansi abstract ISolutionBuildProvider
+  	implements [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+
+    // method line 36
+    .method public virtual hidebysig newslot abstract 
+           instance default int32 IsSupported (string fileContents)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ISolutionBuildProvider::IsSupported
+
+    // method line 37
+    .method public virtual hidebysig newslot abstract 
+           instance default class NAnt.VSNet.SolutionBase GetInstance (string solutionContent, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ISolutionBuildProvider::GetInstance
+
+  } // end of class NAnt.VSNet.Extensibility.ISolutionBuildProvider
+}
+
+.namespace NAnt.VSNet.Extensibility
+{
+  .class interface public auto ansi abstract IProjectBuildProvider
+  	implements [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+
+    // method line 38
+    .method public virtual hidebysig newslot abstract 
+           instance default int32 IsSupported (string projectExt, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IProjectBuildProvider::IsSupported
+
+    // method line 39
+    .method public virtual hidebysig newslot abstract 
+           instance default class NAnt.VSNet.ProjectBase GetInstance (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IProjectBuildProvider::GetInstance
+
+    // method line 40
+    .method public virtual hidebysig newslot abstract 
+           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method IProjectBuildProvider::LoadGuid
+
+  } // end of class NAnt.VSNet.Extensibility.IProjectBuildProvider
+}
+
+.namespace NAnt.VSNet.Rainier
+{
+  .class private auto ansi beforefieldinit SolutionProvider
+  	extends [mscorlib]System.Object
+  	implements NAnt.VSNet.Extensibility.ISolutionBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+
+    // method line 41
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2551
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method SolutionProvider::.ctor
+
+    // method line 42
+    .method public final virtual hidebysig newslot 
+           instance default int32 IsSupported (string fileContents)  cil managed 
+    {
+        // Method begins at RVA 0x255c
+	// Code size 103 (0x67)
+	.maxstack 2
+	.locals init (
+		class [System]System.Text.RegularExpressions.Regex	V_0,
+		class [System]System.Text.RegularExpressions.MatchCollection	V_1,
+		int32	V_2,
+		string	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldstr "^\\s*Microsoft Visual Studio Solution File, Format Version\\s+(?<formatVersion>[0-9]+\\.[0-9]+)"
+	IL_0006:  ldc.i4.s 0x10
+	IL_0008:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
+	IL_0015:  stloc.1 
+	IL_0016:  ldloc.1 
+	IL_0017:  callvirt instance int32 class [System]System.Text.RegularExpressions.MatchCollection::get_Count()
+	IL_001c:  brtrue IL_0029
+
+	IL_0021:  nop 
+	IL_0022:  ldc.i4.0 
+	IL_0023:  stloc.2 
+	IL_0024:  br IL_0065
+
+	IL_0029:  ldloc.1 
+	IL_002a:  ldc.i4.0 
+	IL_002b:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.MatchCollection::get_Item(int32)
+	IL_0030:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	IL_0035:  ldstr "formatVersion"
+	IL_003a:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	IL_003f:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	IL_0044:  stloc.3 
+	IL_0045:  ldloc.3 
+	IL_0046:  ldstr "7.00"
+	IL_004b:  call bool string::op_Equality(string, string)
+	IL_0050:  brfalse IL_005e
+
+	IL_0055:  nop 
+	IL_0056:  ldc.i4.s 0x0a
+	IL_0058:  stloc.2 
+	IL_0059:  br IL_0065
+
+	IL_005e:  ldc.i4.0 
+	IL_005f:  stloc.2 
+	IL_0060:  br IL_0065
+
+	IL_0065:  ldloc.2 
+	IL_0066:  ret 
+    } // end of method SolutionProvider::IsSupported
+
+    // method line 43
+    .method public final virtual hidebysig newslot 
+           instance default class NAnt.VSNet.SolutionBase GetInstance (string solutionContent, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver)  cil managed 
+    {
+        // Method begins at RVA 0x25d0
+	// Code size 21 (0x15)
+	.maxstack 5
+	.locals init (
+		class NAnt.VSNet.SolutionBase	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  ldarg.s 4
+	IL_0006:  ldarg.s 5
+	IL_0008:  newobj instance void class NAnt.VSNet.Rainier.Solution::'.ctor'(string, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method SolutionProvider::GetInstance
+
+  } // end of class NAnt.VSNet.Rainier.SolutionProvider
+}
+
+.namespace NAnt.VSNet.Rainier
+{
+  .class private auto ansi beforefieldinit Solution
+  	extends NAnt.VSNet.SolutionBase
+  {
+
+    // method line 44
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string solutionContent, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver)  cil managed 
+    {
+        // Method begins at RVA 0x3c50
+	// Code size 740 (0x2e4)
+	.maxstack 5
+	.locals init (
+		class [System]System.Text.RegularExpressions.Regex	V_0,
+		class [System]System.Text.RegularExpressions.MatchCollection	V_1,
+		class [mscorlib]System.Collections.Hashtable	V_2,
+		class [System]System.Text.RegularExpressions.Match	V_3,
+		class [mscorlib]System.Collections.IEnumerator	V_4,
+		string	V_5,
+		string	V_6,
+		string	V_7,
+		class [System]System.Text.RegularExpressions.Regex	V_8,
+		class [System]System.Text.RegularExpressions.MatchCollection	V_9,
+		class [System]System.Text.RegularExpressions.Match	V_10,
+		class [mscorlib]System.Collections.IEnumerator	V_11,
+		string	V_12,
+		class [mscorlib]System.IDisposable	V_13,
+		class [System]System.Text.RegularExpressions.Regex	V_14,
+		class [System]System.Text.RegularExpressions.MatchCollection	V_15,
+		class NAnt.VSNet.ProjectEntry	V_16,
+		class NAnt.VSNet.ConfigurationMap	V_17,
+		int32	V_18,
+		class [System]System.Text.RegularExpressions.Match	V_19,
+		string	V_20,
+		string	V_21,
+		string	V_22,
+		string	V_23,
+		class NAnt.VSNet.Configuration	V_24,
+		class NAnt.VSNet.Configuration	V_25,
+		class [mscorlib]System.IDisposable	V_26)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.2 
+	IL_0002:  ldarg.3 
+	IL_0003:  ldarg.s 4
+	IL_0005:  ldarg.s 5
+	IL_0007:  call instance void class NAnt.VSNet.SolutionBase::'.ctor'(class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver)
+	IL_000c:  nop 
+	IL_000d:  ldstr "Project\\(\\\"(?<package>\\{.*?\\})\\\".*?\\\"(?<name>.*?)\\\".*?\\\"(?<project>.*?)\\\".*?\\\"(?<guid>.*?)\\\"(?<all>[\\s\\S]*?)EndProject"
+	IL_0012:  ldc.i4.2 
+	IL_0013:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
+	IL_0018:  stloc.0 
+	IL_0019:  ldloc.0 
+	IL_001a:  ldarg.1 
+	IL_001b:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
+	IL_0020:  stloc.1 
+	IL_0021:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_0026:  stloc.2 
+	IL_0027:  nop 
+	IL_0028:  ldloc.1 
+	IL_0029:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System]System.Text.RegularExpressions.MatchCollection::GetEnumerator()
+	IL_002e:  stloc.s 4
+	.try { // 1
+	  IL_0030:  br IL_0282
+
+	  IL_0035:  ldloc.s 4
+	  IL_0037:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_003c:  castclass [System]System.Text.RegularExpressions.Match
+	  IL_0041:  stloc.3 
+	  IL_0042:  nop 
+	  IL_0043:  ldloc.3 
+	  IL_0044:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_0049:  ldstr "project"
+	  IL_004e:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	  IL_0053:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_0058:  stloc.s 5
+	  IL_005a:  ldloc.3 
+	  IL_005b:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_0060:  ldstr "guid"
+	  IL_0065:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	  IL_006a:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_006f:  stloc.s 6
+	  IL_0071:  ldarg.0 
+	  IL_0072:  ldarg.2 
+	  IL_0073:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
+	  IL_0078:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
+	  IL_007d:  ldloc.s 5
+	  IL_007f:  call instance string class NAnt.VSNet.SolutionBase::TranslateProjectPath(string, string)
+	  IL_0084:  stloc.s 7
+	  IL_0086:  ldloc.s 7
+	  IL_0088:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_008d:  brtrue IL_009c
+
+	  IL_0092:  nop 
+	  IL_0093:  ldarg.0 
+	  IL_0094:  ldloc.s 7
+	  IL_0096:  call instance class [NAnt.Core]NAnt.Core.BuildException class NAnt.VSNet.SolutionBase::CreateProjectDoesNotExistException(string)
+	  IL_009b:  throw 
+	  IL_009c:  ldloc.s 7
+	  IL_009e:  call bool class NAnt.VSNet.ManagedProjectBase::IsEnterpriseTemplateProject(string)
+	  IL_00a3:  brfalse IL_00b7
+
+	  IL_00a8:  nop 
+	  IL_00a9:  ldarg.0 
+	  IL_00aa:  ldloc.s 7
+	  IL_00ac:  call instance void class NAnt.VSNet.SolutionBase::RecursiveLoadTemplateProject(string)
+	  IL_00b1:  nop 
+	  IL_00b2:  br IL_00ce
+
+	  IL_00b7:  nop 
+	  IL_00b8:  ldarg.0 
+	  IL_00b9:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	  IL_00be:  ldloc.s 6
+	  IL_00c0:  ldloc.s 7
+	  IL_00c2:  newobj instance void class NAnt.VSNet.ProjectEntry::'.ctor'(string, string)
+	  IL_00c7:  callvirt instance int32 class NAnt.VSNet.ProjectEntryCollection::Add(class NAnt.VSNet.ProjectEntry)
+	  IL_00cc:  pop 
+	  IL_00cd:  nop 
+	  IL_00ce:  ldstr "^\\s+"
+	  IL_00d3:  ldloc.s 6
+	  IL_00d5:  ldstr "\\.[0-9]+ = (?<dep>\\{\\S*\\}?)\\s*$"
+	  IL_00da:  call string string::Concat(string, string, string)
+	  IL_00df:  ldc.i4.2 
+	  IL_00e0:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
+	  IL_00e5:  stloc.s 8
+	  IL_00e7:  ldloc.s 8
+	  IL_00e9:  ldarg.1 
+	  IL_00ea:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
+	  IL_00ef:  stloc.s 9
+	  IL_00f1:  nop 
+	  IL_00f2:  ldloc.s 9
+	  IL_00f4:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System]System.Text.RegularExpressions.MatchCollection::GetEnumerator()
+	  IL_00f9:  stloc.s 11
+	  .try { // 0
+	    IL_00fb:  br IL_0159
+
+	    IL_0100:  ldloc.s 11
+	    IL_0102:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_0107:  castclass [System]System.Text.RegularExpressions.Match
+	    IL_010c:  stloc.s 10
+	    IL_010e:  nop 
+	    IL_010f:  ldloc.s 10
+	    IL_0111:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	    IL_0116:  ldstr "dep"
+	    IL_011b:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	    IL_0120:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	    IL_0125:  stloc.s 12
+	    IL_0127:  ldloc.2 
+	    IL_0128:  ldloc.s 6
+	    IL_012a:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	    IL_012f:  brtrue IL_0143
+
+	    IL_0134:  nop 
+	    IL_0135:  ldloc.2 
+	    IL_0136:  ldloc.s 6
+	    IL_0138:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	    IL_013d:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	    IL_0142:  nop 
+	    IL_0143:  ldloc.2 
+	    IL_0144:  ldloc.s 6
+	    IL_0146:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	    IL_014b:  castclass [mscorlib]System.Collections.Hashtable
+	    IL_0150:  ldloc.s 12
+	    IL_0152:  ldnull 
+	    IL_0153:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	    IL_0158:  nop 
+	    IL_0159:  ldloc.s 11
+	    IL_015b:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_0160:  brtrue IL_0100
+
+	    IL_0165:  leave IL_0181
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_016a:  ldloc.s 11
+	    IL_016c:  isinst [mscorlib]System.IDisposable
+	    IL_0171:  dup 
+	    IL_0172:  stloc.s 13
+	    IL_0174:  brfalse IL_0180
+
+	    IL_0179:  ldloc.s 13
+	    IL_017b:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0180:  endfinally 
+	  } // end handler 0
+	  IL_0181:  ldstr "^\\s+"
+	  IL_0186:  ldloc.s 6
+	  IL_0188:  ldstr "\\.(?<solutionConfiguration>[^|]+)\\|?(?<solutionPlatform>[^\\.]?)\\.Build\\.0\\s*=\\s*(?<projectConfiguration>[^|]+)\\|(?<projectPlatform>[\\.\\w ]+)\\s*"
+	  IL_018d:  call string string::Concat(string, string, string)
+	  IL_0192:  ldc.i4.2 
+	  IL_0193:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
+	  IL_0198:  stloc.s 14
+	  IL_019a:  ldloc.s 14
+	  IL_019c:  ldarg.1 
+	  IL_019d:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
+	  IL_01a2:  stloc.s 15
+	  IL_01a4:  ldarg.0 
+	  IL_01a5:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	  IL_01aa:  ldloc.s 6
+	  IL_01ac:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
+	  IL_01b1:  stloc.s 16
+	  IL_01b3:  ldloc.s 16
+	  IL_01b5:  brtrue IL_01c0
+
+	  IL_01ba:  nop 
+	  IL_01bb:  leave IL_0282
+
+	  IL_01c0:  ldloc.s 15
+	  IL_01c2:  callvirt instance int32 class [System]System.Text.RegularExpressions.MatchCollection::get_Count()
+	  IL_01c7:  newobj instance void class NAnt.VSNet.ConfigurationMap::'.ctor'(int32)
+	  IL_01cc:  stloc.s 17
+	  IL_01ce:  ldc.i4.0 
+	  IL_01cf:  stloc.s 18
+	  IL_01d1:  br IL_026a
+
+	  IL_01d6:  nop 
+	  IL_01d7:  ldloc.s 15
+	  IL_01d9:  ldloc.s 18
+	  IL_01db:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.MatchCollection::get_Item(int32)
+	  IL_01e0:  stloc.s 19
+	  IL_01e2:  ldloc.s 19
+	  IL_01e4:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_01e9:  ldstr "solutionConfiguration"
+	  IL_01ee:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	  IL_01f3:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_01f8:  stloc.s 20
+	  IL_01fa:  ldloc.s 19
+	  IL_01fc:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_0201:  ldstr "solutionPlatform"
+	  IL_0206:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	  IL_020b:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_0210:  stloc.s 21
+	  IL_0212:  ldloc.s 19
+	  IL_0214:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_0219:  ldstr "projectConfiguration"
+	  IL_021e:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	  IL_0223:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_0228:  stloc.s 22
+	  IL_022a:  ldloc.s 19
+	  IL_022c:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_0231:  ldstr "projectPlatform"
+	  IL_0236:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	  IL_023b:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_0240:  stloc.s 23
+	  IL_0242:  ldloc.s 20
+	  IL_0244:  ldloc.s 21
+	  IL_0246:  newobj instance void class NAnt.VSNet.Configuration::'.ctor'(string, string)
+	  IL_024b:  stloc.s 24
+	  IL_024d:  ldloc.s 22
+	  IL_024f:  ldloc.s 23
+	  IL_0251:  newobj instance void class NAnt.VSNet.Configuration::'.ctor'(string, string)
+	  IL_0256:  stloc.s 25
+	  IL_0258:  ldloc.s 17
+	  IL_025a:  ldloc.s 24
+	  IL_025c:  ldloc.s 25
+	  IL_025e:  callvirt instance void class NAnt.VSNet.ConfigurationMap::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.Configuration)
+	  IL_0263:  nop 
+	  IL_0264:  ldloc.s 18
+	  IL_0266:  ldc.i4.1 
+	  IL_0267:  add 
+	  IL_0268:  stloc.s 18
+	  IL_026a:  ldloc.s 18
+	  IL_026c:  ldloc.s 15
+	  IL_026e:  callvirt instance int32 class [System]System.Text.RegularExpressions.MatchCollection::get_Count()
+	  IL_0273:  blt IL_01d6
+
+	  IL_0278:  ldloc.s 16
+	  IL_027a:  ldloc.s 17
+	  IL_027c:  callvirt instance void class NAnt.VSNet.ProjectEntry::set_BuildConfigurations(class NAnt.VSNet.ConfigurationMap)
+	  IL_0281:  nop 
+	  IL_0282:  ldloc.s 4
+	  IL_0284:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0289:  brtrue IL_0035
+
+	  IL_028e:  leave IL_02aa
+
+	} // end .try 1
+	finally  { // 1
+	  IL_0293:  ldloc.s 4
+	  IL_0295:  isinst [mscorlib]System.IDisposable
+	  IL_029a:  dup 
+	  IL_029b:  stloc.s 26
+	  IL_029d:  brfalse IL_02a9
+
+	  IL_02a2:  ldloc.s 26
+	  IL_02a4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_02a9:  endfinally 
+	} // end handler 1
+	IL_02aa:  ldarg.0 
+	IL_02ab:  ldarg.2 
+	IL_02ac:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VSNet.Tasks.SolutionTask::get_Projects()
+	IL_02b1:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_02b6:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(class [mscorlib]System.Collections.ICollection)
+	IL_02bb:  ldc.i4.0 
+	IL_02bc:  call instance void class NAnt.VSNet.SolutionBase::LoadProjectGuids(class [mscorlib]System.Collections.ArrayList, bool)
+	IL_02c1:  ldarg.0 
+	IL_02c2:  ldarg.2 
+	IL_02c3:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VSNet.Tasks.SolutionTask::get_ReferenceProjects()
+	IL_02c8:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_02cd:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(class [mscorlib]System.Collections.ICollection)
+	IL_02d2:  ldc.i4.1 
+	IL_02d3:  call instance void class NAnt.VSNet.SolutionBase::LoadProjectGuids(class [mscorlib]System.Collections.ArrayList, bool)
+	IL_02d8:  ldarg.0 
+	IL_02d9:  ldarg.s 4
+	IL_02db:  ldarg.s 5
+	IL_02dd:  ldloc.2 
+	IL_02de:  call instance void class NAnt.VSNet.SolutionBase::LoadProjects(class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.Collections.Hashtable)
+	IL_02e3:  ret 
+    } // end of method Solution::.ctor
+
+  } // end of class NAnt.VSNet.Rainier.Solution
+}
+
 .namespace NAnt.VSNet.Tasks
 {
   .class public auto ansi serializable beforefieldinit SolutionTask
@@ -1544,7 +1532,7 @@
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3f90
+        // Method begins at RVA 0x3f74
 	// Code size 115 (0x73)
 	.maxstack 2
 	IL_0000:  ldarg.0 
@@ -1588,7 +1576,7 @@
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Projects ()  cil managed 
     {
-        // Method begins at RVA 0x4010
+        // Method begins at RVA 0x3ff4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1607,7 +1595,7 @@
     .method public hidebysig specialname 
            instance default void set_Projects (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x402b
+        // Method begins at RVA 0x400f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1621,7 +1609,7 @@
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_ReferenceProjects ()  cil managed 
     {
-        // Method begins at RVA 0x4038
+        // Method begins at RVA 0x401c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1640,7 +1628,7 @@
     .method public hidebysig specialname 
            instance default void set_ReferenceProjects (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x4053
+        // Method begins at RVA 0x4037
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1654,7 +1642,7 @@
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_SolutionFile ()  cil managed 
     {
-        // Method begins at RVA 0x4060
+        // Method begins at RVA 0x4044
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1673,7 +1661,7 @@
     .method public hidebysig specialname 
            instance default void set_SolutionFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x407b
+        // Method begins at RVA 0x405f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1687,7 +1675,7 @@
     .method public hidebysig specialname 
            instance default string get_Configuration ()  cil managed 
     {
-        // Method begins at RVA 0x4088
+        // Method begins at RVA 0x406c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -1707,7 +1695,7 @@
     .method public hidebysig specialname 
            instance default void set_Configuration (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x40a8
+        // Method begins at RVA 0x408c
 	// Code size 19 (0x13)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1723,7 +1711,7 @@
     .method public hidebysig specialname 
            instance default string get_Platform ()  cil managed 
     {
-        // Method begins at RVA 0x40bc
+        // Method begins at RVA 0x40a0
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -1743,7 +1731,7 @@
     .method public hidebysig specialname 
            instance default void set_Platform (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x40dc
+        // Method begins at RVA 0x40c0
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1758,7 +1746,7 @@
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.Configuration get_SolutionConfig ()  cil managed 
     {
-        // Method begins at RVA 0x40ec
+        // Method begins at RVA 0x40d0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1777,7 +1765,7 @@
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
     {
-        // Method begins at RVA 0x4108
+        // Method begins at RVA 0x40ec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1796,7 +1784,7 @@
     .method public hidebysig specialname 
            instance default void set_OutputDir (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x4123
+        // Method begins at RVA 0x4107
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1810,7 +1798,7 @@
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.Types.WebMapCollection get_WebMaps ()  cil managed 
     {
-        // Method begins at RVA 0x4130
+        // Method begins at RVA 0x4114
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1829,7 +1817,7 @@
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_ExcludeProjects ()  cil managed 
     {
-        // Method begins at RVA 0x414c
+        // Method begins at RVA 0x4130
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1848,7 +1836,7 @@
     .method public hidebysig specialname 
            instance default void set_ExcludeProjects (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x4167
+        // Method begins at RVA 0x414b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1862,7 +1850,7 @@
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_AssemblyFolders ()  cil managed 
     {
-        // Method begins at RVA 0x4174
+        // Method begins at RVA 0x4158
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1881,7 +1869,7 @@
     .method public hidebysig specialname 
            instance default void set_AssemblyFolders (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x418f
+        // Method begins at RVA 0x4173
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1895,7 +1883,7 @@
     .method public hidebysig specialname 
            instance default bool get_IncludeVSFolders ()  cil managed 
     {
-        // Method begins at RVA 0x419c
+        // Method begins at RVA 0x4180
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1914,7 +1902,7 @@
     .method public hidebysig specialname 
            instance default void set_IncludeVSFolders (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x41b7
+        // Method begins at RVA 0x419b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1928,7 +1916,7 @@
     .method public hidebysig specialname 
            instance default bool get_EnableWebDav ()  cil managed 
     {
-        // Method begins at RVA 0x41c4
+        // Method begins at RVA 0x41a8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1947,7 +1935,7 @@
     .method public hidebysig specialname 
            instance default void set_EnableWebDav (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x41df
+        // Method begins at RVA 0x41c3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1961,7 +1949,7 @@
     .method public hidebysig specialname 
            instance default class [mscorlib]System.Collections.ArrayList get_CustomProperties ()  cil managed 
     {
-        // Method begins at RVA 0x41ec
+        // Method begins at RVA 0x41d0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1980,7 +1968,7 @@
     .method public hidebysig specialname 
            instance default class [System]System.Collections.Specialized.StringCollection get_AssemblyFolderList ()  cil managed 
     {
-        // Method begins at RVA 0x4208
+        // Method begins at RVA 0x41ec
 	// Code size 313 (0x139)
 	.maxstack 7
 	.locals init (
@@ -2132,7 +2120,7 @@
     .method assembly hidebysig specialname 
            instance default class NAnt.VSNet.ProjectFactory get_ProjectFactory ()  cil managed 
     {
-        // Method begins at RVA 0x436c
+        // Method begins at RVA 0x4350
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2151,7 +2139,7 @@
     .method assembly hidebysig specialname 
            instance default class NAnt.VSNet.SolutionFactory get_SolutionFactory ()  cil managed 
     {
-        // Method begins at RVA 0x4388
+        // Method begins at RVA 0x436c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2170,7 +2158,7 @@
     .method private final virtual hidebysig newslot 
            instance default void NAnt.Core.Extensibility.IPluginConsumer.ConsumePlugin (class [NAnt.Core]NAnt.Core.Extensibility.IPlugin plugin)  cil managed 
     {
-        // Method begins at RVA 0x43a3
+        // Method begins at RVA 0x4387
 	.override class [NAnt.Core]NAnt.Core.Extensibility.IPluginConsumer::ConsumePlugin
 	// Code size 58 (0x3a)
 	.maxstack 8
@@ -2200,7 +2188,7 @@
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x43e0
+        // Method begins at RVA 0x43c4
 	// Code size 750 (0x2ee)
 	.maxstack 7
 	.locals init (
@@ -2509,7 +2497,7 @@
     .method assembly hidebysig 
            instance default string ExpandMacro (string macro)  cil managed 
     {
-        // Method begins at RVA 0x4770
+        // Method begins at RVA 0x4754
 	// Code size 433 (0x1b1)
 	.maxstack 3
 	.locals init (
@@ -2664,7 +2652,7 @@
     .method private hidebysig 
            instance default class [System]System.Collections.Specialized.StringCollection BuildAssemblyFolders ()  cil managed 
     {
-        // Method begins at RVA 0x4930
+        // Method begins at RVA 0x4914
 	// Code size 95 (0x5f)
 	.maxstack 5
 	.locals init (
@@ -2713,7 +2701,7 @@
     .method private hidebysig 
            instance default void BuildVisualStudioAssemblyFolders (class [System]System.Collections.Specialized.StringCollection folderList, class [mscorlib]Microsoft.Win32.RegistryKey hive, string visualStudioVersion)  cil managed 
     {
-        // Method begins at RVA 0x499c
+        // Method begins at RVA 0x4980
 	// Code size 137 (0x89)
 	.maxstack 4
 	.locals init (
@@ -2794,7 +2782,7 @@
     .method private hidebysig 
            instance default void BuildDotNetAssemblyFolders (class [System]System.Collections.Specialized.StringCollection folderList, class [mscorlib]Microsoft.Win32.RegistryKey hive)  cil managed 
     {
-        // Method begins at RVA 0x4a34
+        // Method begins at RVA 0x4a18
 	// Code size 126 (0x7e)
 	.maxstack 2
 	.locals init (
@@ -3010,18 +2998,116 @@
   } // end of class NAnt.VSNet.Tasks.SolutionTask
 }
 
-.namespace NAnt.VSNet.Rainier
+.namespace NAnt.VSNet.Everett
+{
+  .class private auto ansi beforefieldinit SolutionProvider
+  	extends [mscorlib]System.Object
+  	implements NAnt.VSNet.Extensibility.ISolutionBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+
+    // method line 78
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x4aa2
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method SolutionProvider::.ctor
+
+    // method line 79
+    .method public final virtual hidebysig newslot 
+           instance default int32 IsSupported (string fileContents)  cil managed 
+    {
+        // Method begins at RVA 0x4aac
+	// Code size 101 (0x65)
+	.maxstack 2
+	.locals init (
+		class [System]System.Text.RegularExpressions.Regex	V_0,
+		class [System]System.Text.RegularExpressions.MatchCollection	V_1,
+		int32	V_2,
+		string	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldstr "^\\s*Microsoft Visual Studio Solution File, Format Version\\s+(?<formatVersion>[0-9]+\\.[0-9]+)"
+	IL_0006:  ldc.i4.s 0x10
+	IL_0008:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
+	IL_0015:  stloc.1 
+	IL_0016:  ldloc.1 
+	IL_0017:  callvirt instance int32 class [System]System.Text.RegularExpressions.MatchCollection::get_Count()
+	IL_001c:  brtrue IL_0028
+
+	IL_0021:  ldc.i4.0 
+	IL_0022:  stloc.2 
+	IL_0023:  br IL_0063
+
+	IL_0028:  ldloc.1 
+	IL_0029:  ldc.i4.0 
+	IL_002a:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.MatchCollection::get_Item(int32)
+	IL_002f:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	IL_0034:  ldstr "formatVersion"
+	IL_0039:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	IL_003e:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	IL_0043:  stloc.3 
+	IL_0044:  ldloc.3 
+	IL_0045:  ldstr "8.00"
+	IL_004a:  call bool string::op_Equality(string, string)
+	IL_004f:  brfalse IL_005c
+
+	IL_0054:  ldc.i4.s 0x0a
+	IL_0056:  stloc.2 
+	IL_0057:  br IL_0063
+
+	IL_005c:  ldc.i4.0 
+	IL_005d:  stloc.2 
+	IL_005e:  br IL_0063
+
+	IL_0063:  ldloc.2 
+	IL_0064:  ret 
+    } // end of method SolutionProvider::IsSupported
+
+    // method line 80
+    .method public final virtual hidebysig newslot 
+           instance default class NAnt.VSNet.SolutionBase GetInstance (string solutionContent, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver)  cil managed 
+    {
+        // Method begins at RVA 0x4b20
+	// Code size 21 (0x15)
+	.maxstack 5
+	.locals init (
+		class NAnt.VSNet.SolutionBase	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  ldarg.s 4
+	IL_0006:  ldarg.s 5
+	IL_0008:  newobj instance void class NAnt.VSNet.Everett.Solution::'.ctor'(string, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method SolutionProvider::GetInstance
+
+  } // end of class NAnt.VSNet.Everett.SolutionProvider
+}
+
+.namespace NAnt.VSNet.Everett
 {
   .class private auto ansi beforefieldinit Solution
   	extends NAnt.VSNet.SolutionBase
   {
 
-    // method line 78
+    // method line 81
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string solutionContent, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver)  cil managed 
     {
-        // Method begins at RVA 0x4ac0
-	// Code size 740 (0x2e4)
+        // Method begins at RVA 0x4b44
+	// Code size 775 (0x307)
 	.maxstack 5
 	.locals init (
 		class [System]System.Text.RegularExpressions.Regex	V_0,
@@ -3032,25 +3118,27 @@
 		string	V_5,
 		string	V_6,
 		string	V_7,
-		class [System]System.Text.RegularExpressions.Regex	V_8,
-		class [System]System.Text.RegularExpressions.MatchCollection	V_9,
-		class [System]System.Text.RegularExpressions.Match	V_10,
-		class [mscorlib]System.Collections.IEnumerator	V_11,
-		string	V_12,
-		class [mscorlib]System.IDisposable	V_13,
-		class [System]System.Text.RegularExpressions.Regex	V_14,
-		class [System]System.Text.RegularExpressions.MatchCollection	V_15,
-		class NAnt.VSNet.ProjectEntry	V_16,
-		class NAnt.VSNet.ConfigurationMap	V_17,
-		int32	V_18,
-		class [System]System.Text.RegularExpressions.Match	V_19,
-		string	V_20,
-		string	V_21,
+		bool	V_8,
+		class [System]System.Text.RegularExpressions.Regex	V_9,
+		class [System]System.Text.RegularExpressions.MatchCollection	V_10,
+		class [System]System.Text.RegularExpressions.Match	V_11,
+		class [mscorlib]System.Collections.IEnumerator	V_12,
+		string	V_13,
+		string	V_14,
+		class [mscorlib]System.IDisposable	V_15,
+		class [System]System.Text.RegularExpressions.Regex	V_16,
+		class [System]System.Text.RegularExpressions.MatchCollection	V_17,
+		class NAnt.VSNet.ProjectEntry	V_18,
+		class NAnt.VSNet.ConfigurationMap	V_19,
+		int32	V_20,
+		class [System]System.Text.RegularExpressions.Match	V_21,
 		string	V_22,
 		string	V_23,
-		class NAnt.VSNet.Configuration	V_24,
-		class NAnt.VSNet.Configuration	V_25,
-		class [mscorlib]System.IDisposable	V_26)
+		string	V_24,
+		string	V_25,
+		class NAnt.VSNet.Configuration	V_26,
+		class NAnt.VSNet.Configuration	V_27,
+		class [mscorlib]System.IDisposable	V_28)
 	IL_0000:  ldarg.0 
 	IL_0001:  ldarg.2 
 	IL_0002:  ldarg.3 
@@ -3073,7 +3161,7 @@
 	IL_0029:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System]System.Text.RegularExpressions.MatchCollection::GetEnumerator()
 	IL_002e:  stloc.s 4
 	.try { // 1
-	  IL_0030:  br IL_0282
+	  IL_0030:  br IL_02a5
 
 	  IL_0035:  ldloc.s 4
 	  IL_0037:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
@@ -3110,986 +3198,997 @@
 	  IL_009b:  throw 
 	  IL_009c:  ldloc.s 7
 	  IL_009e:  call bool class NAnt.VSNet.ManagedProjectBase::IsEnterpriseTemplateProject(string)
-	  IL_00a3:  brfalse IL_00b7
+	  IL_00a3:  stloc.s 8
+	  IL_00a5:  ldloc.s 8
+	  IL_00a7:  brfalse IL_00bb
 
-	  IL_00a8:  nop 
-	  IL_00a9:  ldarg.0 
-	  IL_00aa:  ldloc.s 7
-	  IL_00ac:  call instance void class NAnt.VSNet.SolutionBase::RecursiveLoadTemplateProject(string)
-	  IL_00b1:  nop 
-	  IL_00b2:  br IL_00ce
+	  IL_00ac:  nop 
+	  IL_00ad:  ldarg.0 
+	  IL_00ae:  ldloc.s 7
+	  IL_00b0:  call instance void class NAnt.VSNet.SolutionBase::RecursiveLoadTemplateProject(string)
+	  IL_00b5:  nop 
+	  IL_00b6:  br IL_00d2
 
-	  IL_00b7:  nop 
-	  IL_00b8:  ldarg.0 
-	  IL_00b9:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	  IL_00be:  ldloc.s 6
-	  IL_00c0:  ldloc.s 7
-	  IL_00c2:  newobj instance void class NAnt.VSNet.ProjectEntry::'.ctor'(string, string)
-	  IL_00c7:  callvirt instance int32 class NAnt.VSNet.ProjectEntryCollection::Add(class NAnt.VSNet.ProjectEntry)
-	  IL_00cc:  pop 
-	  IL_00cd:  nop 
-	  IL_00ce:  ldstr "^\\s+"
-	  IL_00d3:  ldloc.s 6
-	  IL_00d5:  ldstr "\\.[0-9]+ = (?<dep>\\{\\S*\\}?)\\s*$"
-	  IL_00da:  call string string::Concat(string, string, string)
-	  IL_00df:  ldc.i4.2 
-	  IL_00e0:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
-	  IL_00e5:  stloc.s 8
-	  IL_00e7:  ldloc.s 8
-	  IL_00e9:  ldarg.1 
-	  IL_00ea:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
-	  IL_00ef:  stloc.s 9
-	  IL_00f1:  nop 
-	  IL_00f2:  ldloc.s 9
-	  IL_00f4:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System]System.Text.RegularExpressions.MatchCollection::GetEnumerator()
-	  IL_00f9:  stloc.s 11
+	  IL_00bb:  nop 
+	  IL_00bc:  ldarg.0 
+	  IL_00bd:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	  IL_00c2:  ldloc.s 6
+	  IL_00c4:  ldloc.s 7
+	  IL_00c6:  newobj instance void class NAnt.VSNet.ProjectEntry::'.ctor'(string, string)
+	  IL_00cb:  callvirt instance int32 class NAnt.VSNet.ProjectEntryCollection::Add(class NAnt.VSNet.ProjectEntry)
+	  IL_00d0:  pop 
+	  IL_00d1:  nop 
+	  IL_00d2:  ldstr "^\\s+(?<guid>\\{[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}\\})\\s+=\\s+(?<dep>\\{[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}\\})"
+	  IL_00d7:  ldc.i4.2 
+	  IL_00d8:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
+	  IL_00dd:  stloc.s 9
+	  IL_00df:  ldloc.s 9
+	  IL_00e1:  ldloc.3 
+	  IL_00e2:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_00e7:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
+	  IL_00ec:  stloc.s 10
+	  IL_00ee:  nop 
+	  IL_00ef:  ldloc.s 10
+	  IL_00f1:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System]System.Text.RegularExpressions.MatchCollection::GetEnumerator()
+	  IL_00f6:  stloc.s 12
 	  .try { // 0
-	    IL_00fb:  br IL_0159
+	    IL_00f8:  br IL_017c
 
-	    IL_0100:  ldloc.s 11
-	    IL_0102:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_0107:  castclass [System]System.Text.RegularExpressions.Match
-	    IL_010c:  stloc.s 10
-	    IL_010e:  nop 
-	    IL_010f:  ldloc.s 10
-	    IL_0111:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	    IL_0116:  ldstr "dep"
-	    IL_011b:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	    IL_0120:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	    IL_0125:  stloc.s 12
-	    IL_0127:  ldloc.2 
-	    IL_0128:  ldloc.s 6
-	    IL_012a:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	    IL_012f:  brtrue IL_0143
+	    IL_00fd:  ldloc.s 12
+	    IL_00ff:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_0104:  castclass [System]System.Text.RegularExpressions.Match
+	    IL_0109:  stloc.s 11
+	    IL_010b:  nop 
+	    IL_010c:  ldloc.s 11
+	    IL_010e:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	    IL_0113:  ldstr "dep"
+	    IL_0118:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	    IL_011d:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	    IL_0122:  stloc.s 13
+	    IL_0124:  ldloc.s 8
+	    IL_0126:  brfalse IL_0146
 
-	    IL_0134:  nop 
-	    IL_0135:  ldloc.2 
-	    IL_0136:  ldloc.s 6
-	    IL_0138:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	    IL_013d:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	    IL_0142:  nop 
-	    IL_0143:  ldloc.2 
-	    IL_0144:  ldloc.s 6
-	    IL_0146:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	    IL_014b:  castclass [mscorlib]System.Collections.Hashtable
-	    IL_0150:  ldloc.s 12
-	    IL_0152:  ldnull 
-	    IL_0153:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	    IL_0158:  nop 
-	    IL_0159:  ldloc.s 11
-	    IL_015b:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_0160:  brtrue IL_0100
+	    IL_012b:  ldloc.s 11
+	    IL_012d:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	    IL_0132:  ldstr "guid"
+	    IL_0137:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	    IL_013c:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	    IL_0141:  br IL_0148
 
-	    IL_0165:  leave IL_0181
+	    IL_0146:  ldloc.s 6
+	    IL_0148:  stloc.s 14
+	    IL_014a:  ldloc.2 
+	    IL_014b:  ldloc.s 14
+	    IL_014d:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	    IL_0152:  brtrue IL_0166
+
+	    IL_0157:  nop 
+	    IL_0158:  ldloc.2 
+	    IL_0159:  ldloc.s 14
+	    IL_015b:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	    IL_0160:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	    IL_0165:  nop 
+	    IL_0166:  ldloc.2 
+	    IL_0167:  ldloc.s 14
+	    IL_0169:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	    IL_016e:  castclass [mscorlib]System.Collections.Hashtable
+	    IL_0173:  ldloc.s 13
+	    IL_0175:  ldnull 
+	    IL_0176:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	    IL_017b:  nop 
+	    IL_017c:  ldloc.s 12
+	    IL_017e:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_0183:  brtrue IL_00fd
+
+	    IL_0188:  leave IL_01a4
 
 	  } // end .try 0
 	  finally  { // 0
-	    IL_016a:  ldloc.s 11
-	    IL_016c:  isinst [mscorlib]System.IDisposable
-	    IL_0171:  dup 
-	    IL_0172:  stloc.s 13
-	    IL_0174:  brfalse IL_0180
+	    IL_018d:  ldloc.s 12
+	    IL_018f:  isinst [mscorlib]System.IDisposable
+	    IL_0194:  dup 
+	    IL_0195:  stloc.s 15
+	    IL_0197:  brfalse IL_01a3
 
-	    IL_0179:  ldloc.s 13
-	    IL_017b:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0180:  endfinally 
+	    IL_019c:  ldloc.s 15
+	    IL_019e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_01a3:  endfinally 
 	  } // end handler 0
-	  IL_0181:  ldstr "^\\s+"
-	  IL_0186:  ldloc.s 6
-	  IL_0188:  ldstr "\\.(?<solutionConfiguration>[^|]+)\\|?(?<solutionPlatform>[^\\.]?)\\.Build\\.0\\s*=\\s*(?<projectConfiguration>[^|]+)\\|(?<projectPlatform>[\\.\\w ]+)\\s*"
-	  IL_018d:  call string string::Concat(string, string, string)
-	  IL_0192:  ldc.i4.2 
-	  IL_0193:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
-	  IL_0198:  stloc.s 14
-	  IL_019a:  ldloc.s 14
-	  IL_019c:  ldarg.1 
-	  IL_019d:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
-	  IL_01a2:  stloc.s 15
-	  IL_01a4:  ldarg.0 
-	  IL_01a5:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
-	  IL_01aa:  ldloc.s 6
-	  IL_01ac:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
-	  IL_01b1:  stloc.s 16
-	  IL_01b3:  ldloc.s 16
-	  IL_01b5:  brtrue IL_01c0
+	  IL_01a4:  ldstr "^\\s+"
+	  IL_01a9:  ldloc.s 6
+	  IL_01ab:  ldstr "\\.(?<solutionConfiguration>[^|]+)\\|?(?<solutionPlatform>[^\\.]?)\\.Build\\.0\\s*=\\s* (?<projectConfiguration>[^|]+)\\|(?<projectPlatform>[\\.\\w ]+)\\s*"
+	  IL_01b0:  call string string::Concat(string, string, string)
+	  IL_01b5:  ldc.i4.2 
+	  IL_01b6:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
+	  IL_01bb:  stloc.s 16
+	  IL_01bd:  ldloc.s 16
+	  IL_01bf:  ldarg.1 
+	  IL_01c0:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
+	  IL_01c5:  stloc.s 17
+	  IL_01c7:  ldarg.0 
+	  IL_01c8:  call instance class NAnt.VSNet.ProjectEntryCollection class NAnt.VSNet.SolutionBase::get_ProjectEntries()
+	  IL_01cd:  ldloc.s 6
+	  IL_01cf:  callvirt instance class NAnt.VSNet.ProjectEntry class NAnt.VSNet.ProjectEntryCollection::get_Item(string)
+	  IL_01d4:  stloc.s 18
+	  IL_01d6:  ldloc.s 18
+	  IL_01d8:  brtrue IL_01e3
 
-	  IL_01ba:  nop 
-	  IL_01bb:  leave IL_0282
+	  IL_01dd:  nop 
+	  IL_01de:  leave IL_02a5
 
-	  IL_01c0:  ldloc.s 15
-	  IL_01c2:  callvirt instance int32 class [System]System.Text.RegularExpressions.MatchCollection::get_Count()
-	  IL_01c7:  newobj instance void class NAnt.VSNet.ConfigurationMap::'.ctor'(int32)
-	  IL_01cc:  stloc.s 17
-	  IL_01ce:  ldc.i4.0 
-	  IL_01cf:  stloc.s 18
-	  IL_01d1:  br IL_026a
+	  IL_01e3:  ldloc.s 17
+	  IL_01e5:  callvirt instance int32 class [System]System.Text.RegularExpressions.MatchCollection::get_Count()
+	  IL_01ea:  newobj instance void class NAnt.VSNet.ConfigurationMap::'.ctor'(int32)
+	  IL_01ef:  stloc.s 19
+	  IL_01f1:  ldc.i4.0 
+	  IL_01f2:  stloc.s 20
+	  IL_01f4:  br IL_028d
 
-	  IL_01d6:  nop 
-	  IL_01d7:  ldloc.s 15
-	  IL_01d9:  ldloc.s 18
-	  IL_01db:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.MatchCollection::get_Item(int32)
-	  IL_01e0:  stloc.s 19
-	  IL_01e2:  ldloc.s 19
-	  IL_01e4:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_01e9:  ldstr "solutionConfiguration"
-	  IL_01ee:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	  IL_01f3:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_01f8:  stloc.s 20
-	  IL_01fa:  ldloc.s 19
-	  IL_01fc:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_0201:  ldstr "solutionPlatform"
-	  IL_0206:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	  IL_020b:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_0210:  stloc.s 21
-	  IL_0212:  ldloc.s 19
-	  IL_0214:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_0219:  ldstr "projectConfiguration"
-	  IL_021e:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	  IL_0223:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_0228:  stloc.s 22
-	  IL_022a:  ldloc.s 19
-	  IL_022c:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	  IL_0231:  ldstr "projectPlatform"
-	  IL_0236:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	  IL_023b:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	  IL_0240:  stloc.s 23
-	  IL_0242:  ldloc.s 20
-	  IL_0244:  ldloc.s 21
-	  IL_0246:  newobj instance void class NAnt.VSNet.Configuration::'.ctor'(string, string)
+	  IL_01f9:  nop 
+	  IL_01fa:  ldloc.s 17
+	  IL_01fc:  ldloc.s 20
+	  IL_01fe:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.MatchCollection::get_Item(int32)
+	  IL_0203:  stloc.s 21
+	  IL_0205:  ldloc.s 21
+	  IL_0207:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_020c:  ldstr "solutionConfiguration"
+	  IL_0211:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	  IL_0216:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_021b:  stloc.s 22
+	  IL_021d:  ldloc.s 21
+	  IL_021f:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_0224:  ldstr "solutionPlatform"
+	  IL_0229:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	  IL_022e:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_0233:  stloc.s 23
+	  IL_0235:  ldloc.s 21
+	  IL_0237:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_023c:  ldstr "projectConfiguration"
+	  IL_0241:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	  IL_0246:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
 	  IL_024b:  stloc.s 24
-	  IL_024d:  ldloc.s 22
-	  IL_024f:  ldloc.s 23
-	  IL_0251:  newobj instance void class NAnt.VSNet.Configuration::'.ctor'(string, string)
-	  IL_0256:  stloc.s 25
-	  IL_0258:  ldloc.s 17
-	  IL_025a:  ldloc.s 24
-	  IL_025c:  ldloc.s 25
-	  IL_025e:  callvirt instance void class NAnt.VSNet.ConfigurationMap::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.Configuration)
-	  IL_0263:  nop 
-	  IL_0264:  ldloc.s 18
-	  IL_0266:  ldc.i4.1 
-	  IL_0267:  add 
-	  IL_0268:  stloc.s 18
-	  IL_026a:  ldloc.s 18
-	  IL_026c:  ldloc.s 15
-	  IL_026e:  callvirt instance int32 class [System]System.Text.RegularExpressions.MatchCollection::get_Count()
-	  IL_0273:  blt IL_01d6
+	  IL_024d:  ldloc.s 21
+	  IL_024f:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	  IL_0254:  ldstr "projectPlatform"
+	  IL_0259:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	  IL_025e:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	  IL_0263:  stloc.s 25
+	  IL_0265:  ldloc.s 22
+	  IL_0267:  ldloc.s 23
+	  IL_0269:  newobj instance void class NAnt.VSNet.Configuration::'.ctor'(string, string)
+	  IL_026e:  stloc.s 26
+	  IL_0270:  ldloc.s 24
+	  IL_0272:  ldloc.s 25
+	  IL_0274:  newobj instance void class NAnt.VSNet.Configuration::'.ctor'(string, string)
+	  IL_0279:  stloc.s 27
+	  IL_027b:  ldloc.s 19
+	  IL_027d:  ldloc.s 26
+	  IL_027f:  ldloc.s 27
+	  IL_0281:  callvirt instance void class NAnt.VSNet.ConfigurationMap::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.Configuration)
+	  IL_0286:  nop 
+	  IL_0287:  ldloc.s 20
+	  IL_0289:  ldc.i4.1 
+	  IL_028a:  add 
+	  IL_028b:  stloc.s 20
+	  IL_028d:  ldloc.s 20
+	  IL_028f:  ldloc.s 17
+	  IL_0291:  callvirt instance int32 class [System]System.Text.RegularExpressions.MatchCollection::get_Count()
+	  IL_0296:  blt IL_01f9
 
-	  IL_0278:  ldloc.s 16
-	  IL_027a:  ldloc.s 17
-	  IL_027c:  callvirt instance void class NAnt.VSNet.ProjectEntry::set_BuildConfigurations(class NAnt.VSNet.ConfigurationMap)
-	  IL_0281:  nop 
-	  IL_0282:  ldloc.s 4
-	  IL_0284:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0289:  brtrue IL_0035
+	  IL_029b:  ldloc.s 18
+	  IL_029d:  ldloc.s 19
+	  IL_029f:  callvirt instance void class NAnt.VSNet.ProjectEntry::set_BuildConfigurations(class NAnt.VSNet.ConfigurationMap)
+	  IL_02a4:  nop 
+	  IL_02a5:  ldloc.s 4
+	  IL_02a7:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_02ac:  brtrue IL_0035
 
-	  IL_028e:  leave IL_02aa
+	  IL_02b1:  leave IL_02cd
 
 	} // end .try 1
 	finally  { // 1
-	  IL_0293:  ldloc.s 4
-	  IL_0295:  isinst [mscorlib]System.IDisposable
-	  IL_029a:  dup 
-	  IL_029b:  stloc.s 26
-	  IL_029d:  brfalse IL_02a9
+	  IL_02b6:  ldloc.s 4
+	  IL_02b8:  isinst [mscorlib]System.IDisposable
+	  IL_02bd:  dup 
+	  IL_02be:  stloc.s 28
+	  IL_02c0:  brfalse IL_02cc
 
-	  IL_02a2:  ldloc.s 26
-	  IL_02a4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_02a9:  endfinally 
+	  IL_02c5:  ldloc.s 28
+	  IL_02c7:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_02cc:  endfinally 
 	} // end handler 1
-	IL_02aa:  ldarg.0 
-	IL_02ab:  ldarg.2 
-	IL_02ac:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VSNet.Tasks.SolutionTask::get_Projects()
-	IL_02b1:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_02b6:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(class [mscorlib]System.Collections.ICollection)
-	IL_02bb:  ldc.i4.0 
-	IL_02bc:  call instance void class NAnt.VSNet.SolutionBase::LoadProjectGuids(class [mscorlib]System.Collections.ArrayList, bool)
-	IL_02c1:  ldarg.0 
-	IL_02c2:  ldarg.2 
-	IL_02c3:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VSNet.Tasks.SolutionTask::get_ReferenceProjects()
-	IL_02c8:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_02cd:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(class [mscorlib]System.Collections.ICollection)
-	IL_02d2:  ldc.i4.1 
-	IL_02d3:  call instance void class NAnt.VSNet.SolutionBase::LoadProjectGuids(class [mscorlib]System.Collections.ArrayList, bool)
-	IL_02d8:  ldarg.0 
-	IL_02d9:  ldarg.s 4
-	IL_02db:  ldarg.s 5
-	IL_02dd:  ldloc.2 
-	IL_02de:  call instance void class NAnt.VSNet.SolutionBase::LoadProjects(class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.Collections.Hashtable)
-	IL_02e3:  ret 
+	IL_02cd:  ldarg.0 
+	IL_02ce:  ldarg.2 
+	IL_02cf:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VSNet.Tasks.SolutionTask::get_Projects()
+	IL_02d4:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_02d9:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(class [mscorlib]System.Collections.ICollection)
+	IL_02de:  ldc.i4.0 
+	IL_02df:  call instance void class NAnt.VSNet.SolutionBase::LoadProjectGuids(class [mscorlib]System.Collections.ArrayList, bool)
+	IL_02e4:  ldarg.0 
+	IL_02e5:  ldarg.2 
+	IL_02e6:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VSNet.Tasks.SolutionTask::get_ReferenceProjects()
+	IL_02eb:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_02f0:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(class [mscorlib]System.Collections.ICollection)
+	IL_02f5:  ldc.i4.1 
+	IL_02f6:  call instance void class NAnt.VSNet.SolutionBase::LoadProjectGuids(class [mscorlib]System.Collections.ArrayList, bool)
+	IL_02fb:  ldarg.0 
+	IL_02fc:  ldarg.s 4
+	IL_02fe:  ldarg.s 5
+	IL_0300:  ldloc.2 
+	IL_0301:  call instance void class NAnt.VSNet.SolutionBase::LoadProjects(class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.Collections.Hashtable)
+	IL_0306:  ret 
     } // end of method Solution::.ctor
 
-  } // end of class NAnt.VSNet.Rainier.Solution
-}
-
-.namespace NAnt.VSNet.Rainier
-{
-  .class private auto ansi beforefieldinit SolutionProvider
-  	extends [mscorlib]System.Object
-  	implements NAnt.VSNet.Extensibility.ISolutionBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
-
-    // method line 79
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x4de4
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method SolutionProvider::.ctor
-
-    // method line 80
-    .method public final virtual hidebysig newslot 
-           instance default int32 IsSupported (string fileContents)  cil managed 
-    {
-        // Method begins at RVA 0x4dec
-	// Code size 103 (0x67)
-	.maxstack 2
-	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0,
-		class [System]System.Text.RegularExpressions.MatchCollection	V_1,
-		int32	V_2,
-		string	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldstr "^\\s*Microsoft Visual Studio Solution File, Format Version\\s+(?<formatVersion>[0-9]+\\.[0-9]+)"
-	IL_0006:  ldc.i4.s 0x10
-	IL_0008:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
-	IL_0015:  stloc.1 
-	IL_0016:  ldloc.1 
-	IL_0017:  callvirt instance int32 class [System]System.Text.RegularExpressions.MatchCollection::get_Count()
-	IL_001c:  brtrue IL_0029
-
-	IL_0021:  nop 
-	IL_0022:  ldc.i4.0 
-	IL_0023:  stloc.2 
-	IL_0024:  br IL_0065
-
-	IL_0029:  ldloc.1 
-	IL_002a:  ldc.i4.0 
-	IL_002b:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.MatchCollection::get_Item(int32)
-	IL_0030:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	IL_0035:  ldstr "formatVersion"
-	IL_003a:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
-	IL_003f:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	IL_0044:  stloc.3 
-	IL_0045:  ldloc.3 
-	IL_0046:  ldstr "7.00"
-	IL_004b:  call bool string::op_Equality(string, string)
-	IL_0050:  brfalse IL_005e
-
-	IL_0055:  nop 
-	IL_0056:  ldc.i4.s 0x0a
-	IL_0058:  stloc.2 
-	IL_0059:  br IL_0065
-
-	IL_005e:  ldc.i4.0 
-	IL_005f:  stloc.2 
-	IL_0060:  br IL_0065
-
-	IL_0065:  ldloc.2 
-	IL_0066:  ret 
-    } // end of method SolutionProvider::IsSupported
-
-    // method line 81
-    .method public final virtual hidebysig newslot 
-           instance default class NAnt.VSNet.SolutionBase GetInstance (string solutionContent, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver)  cil managed 
-    {
-        // Method begins at RVA 0x4e60
-	// Code size 21 (0x15)
-	.maxstack 5
-	.locals init (
-		class NAnt.VSNet.SolutionBase	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  ldarg.s 4
-	IL_0006:  ldarg.s 5
-	IL_0008:  newobj instance void class NAnt.VSNet.Rainier.Solution::'.ctor'(string, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method SolutionProvider::GetInstance
-
-  } // end of class NAnt.VSNet.Rainier.SolutionProvider
+  } // end of class NAnt.VSNet.Everett.Solution
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi abstract beforefieldinit ReferenceBase
-  	extends [mscorlib]System.Object
+  .class public auto ansi beforefieldinit ConfigurationSettings
+  	extends NAnt.VSNet.ConfigurationBase
   {
-    .field  private  class NAnt.VSNet.ProjectBase _parent
-    .field  private  class NAnt.VSNet.ReferencesResolver _referencesResolver
+    .field  private initonly  class [mscorlib]System.Collections.ArrayList _settings
+    .field  private initonly  string _relativeOutputDir
+    .field  private initonly  class [mscorlib]System.IO.DirectoryInfo _outputDir
+    .field  private initonly  string _name
+    .field  private initonly  bool _registerForComInterop
 
     // method line 82
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent)  cil managed 
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ManagedProjectBase project, class [System.Xml]System.Xml.XmlElement elemConfig, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
     {
-        // Method begins at RVA 0x4e81
-	// Code size 22 (0x16)
-	.maxstack 8
+        // Method begins at RVA 0x51b8
+	// Code size 1409 (0x581)
+	.maxstack 7
+	.locals init (
+		char	V_0,
+		char	V_1,
+		string	V_2,
+		string	V_3,
+		class [mscorlib]System.Collections.Hashtable	V_4,
+		class [mscorlib]System.Collections.Hashtable	V_5,
+		valuetype NAnt.VSNet.ProjectType	V_6,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_7,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_8,
+		string	V_9,
+		string	V_10,
+		unsigned int32	V_11,
+		class [mscorlib]System.IDisposable	V_12,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_13,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_14,
+		string	V_15,
+		string	V_16,
+		class [mscorlib]System.IDisposable	V_17)
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld class NAnt.VSNet.ReferencesResolver NAnt.VSNet.ReferenceBase::_referencesResolver
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.2 
-	IL_0010:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ReferenceBase::_parent
-	IL_0015:  ret 
-    } // end of method ReferenceBase::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  call instance void class NAnt.VSNet.ConfigurationBase::'.ctor'(class NAnt.VSNet.ProjectBase)
+	IL_0007:  nop 
+	IL_0008:  ldarg.0 
+	IL_0009:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_000e:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ConfigurationSettings::_settings
+	IL_0013:  ldarg.3 
+	IL_0014:  brtrue IL_009b
 
-    // method line 83
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default bool get_CopyLocal ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ReferenceBase::get_CopyLocal
+	IL_0019:  nop 
+	IL_001a:  ldarg.0 
+	IL_001b:  ldarg.2 
+	IL_001c:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0021:  ldstr "OutputPath"
+	IL_0026:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_002b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_0030:  stfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
+	IL_0035:  ldarg.0 
+	IL_0036:  ldfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
+	IL_003b:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_0040:  stloc.0 
+	IL_0041:  ldloca.s 0
+	IL_0043:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0048:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
+	IL_004d:  callvirt instance bool string::EndsWith(string)
+	IL_0052:  brtrue IL_0074
 
-    // method line 84
-    .method family virtual hidebysig newslot abstract specialname 
-           instance default bool get_IsSystem ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ReferenceBase::get_IsSystem
+	IL_0057:  nop 
+	IL_0058:  ldarg.0 
+	IL_0059:  ldarg.0 
+	IL_005a:  ldfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
+	IL_005f:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_0064:  box [mscorlib]System.Char
+	IL_0069:  call string string::Concat(object, object)
+	IL_006e:  stfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
+	IL_0073:  nop 
+	IL_0074:  ldarg.0 
+	IL_0075:  ldarg.1 
+	IL_0076:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_007b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0080:  ldarg.0 
+	IL_0081:  ldfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
+	IL_0086:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_008b:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0090:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ConfigurationSettings::_outputDir
+	IL_0095:  nop 
+	IL_0096:  br IL_00ef
 
-    // method line 85
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ReferenceBase::get_Name
+	IL_009b:  nop 
+	IL_009c:  ldarg.0 
+	IL_009d:  ldarg.3 
+	IL_009e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00a3:  stfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
+	IL_00a8:  ldarg.0 
+	IL_00a9:  ldfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
+	IL_00ae:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_00b3:  stloc.1 
+	IL_00b4:  ldloca.s 1
+	IL_00b6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00bb:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
+	IL_00c0:  callvirt instance bool string::EndsWith(string)
+	IL_00c5:  brtrue IL_00e7
 
-    // method line 86
-    .method family hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectBase get_Parent ()  cil managed 
-    {
-        // Method begins at RVA 0x4e98
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ReferenceBase::_parent
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_00ca:  nop 
+	IL_00cb:  ldarg.0 
+	IL_00cc:  ldarg.0 
+	IL_00cd:  ldfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
+	IL_00d2:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_00d7:  box [mscorlib]System.Char
+	IL_00dc:  call string string::Concat(object, object)
+	IL_00e1:  stfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
+	IL_00e6:  nop 
+	IL_00e7:  ldarg.0 
+	IL_00e8:  ldarg.3 
+	IL_00e9:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ConfigurationSettings::_outputDir
+	IL_00ee:  nop 
+	IL_00ef:  ldarg.0 
+	IL_00f0:  ldarg.2 
+	IL_00f1:  ldstr "Name"
+	IL_00f6:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_00fb:  stfld string NAnt.VSNet.ConfigurationSettings::_name
+	IL_0100:  ldarg.2 
+	IL_0101:  ldstr "DocumentationFile"
+	IL_0106:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_010b:  stloc.2 
+	IL_010c:  ldloc.2 
+	IL_010d:  call bool string::IsNullOrEmpty(string)
+	IL_0112:  brtrue IL_0177
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ReferenceBase::get_Parent
+	IL_0117:  nop 
+	IL_0118:  ldarg.1 
+	IL_0119:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_011e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0123:  ldloc.2 
+	IL_0124:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0129:  stloc.3 
+	IL_012a:  ldarg.0 
+	IL_012b:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ConfigurationSettings::_settings
+	IL_0130:  ldstr "/doc:\""
+	IL_0135:  ldloc.3 
+	IL_0136:  ldstr "\""
+	IL_013b:  call string string::Concat(string, string, string)
+	IL_0140:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_0145:  pop 
+	IL_0146:  ldloc.3 
+	IL_0147:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_014c:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0151:  brtrue IL_0164
 
-    // method line 87
-    .method family hidebysig specialname 
-           instance default class NAnt.VSNet.Tasks.SolutionTask get_SolutionTask ()  cil managed 
-    {
-        // Method begins at RVA 0x4eb4
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.Tasks.SolutionTask	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0007:  callvirt instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0156:  nop 
+	IL_0157:  ldloc.3 
+	IL_0158:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_015d:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	IL_0162:  pop 
+	IL_0163:  nop 
+	IL_0164:  ldarg.0 
+	IL_0165:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ConfigurationBase::get_ExtraOutputFiles()
+	IL_016a:  ldloc.3 
+	IL_016b:  ldloc.3 
+	IL_016c:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_0171:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0176:  nop 
+	IL_0177:  ldarg.0 
+	IL_0178:  ldarg.2 
+	IL_0179:  ldstr "RegisterForComInterop"
+	IL_017e:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_0183:  ldstr "true"
+	IL_0188:  ldc.i4.1 
+	IL_0189:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_018e:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_0193:  ldc.i4.0 
+	IL_0194:  ceq 
+	IL_0196:  stfld bool NAnt.VSNet.ConfigurationSettings::_registerForComInterop
+	IL_019b:  ldarg.0 
+	IL_019c:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
+	IL_01a1:  ldc.i4 1000
+	IL_01a6:  ldstr "Project: {0} Relative Output Path: {1} Output Path: {2} Documentation Path: {3}"
+	IL_01ab:  ldc.i4.4 
+	IL_01ac:  newarr [mscorlib]System.Object
+	IL_01b1:  dup 
+	IL_01b2:  ldc.i4.0 
+	IL_01b3:  ldarg.0 
+	IL_01b4:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_01b9:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_01be:  stelem.ref 
+	IL_01bf:  dup 
+	IL_01c0:  ldc.i4.1 
+	IL_01c1:  ldarg.0 
+	IL_01c2:  ldfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
+	IL_01c7:  stelem.ref 
+	IL_01c8:  dup 
+	IL_01c9:  ldc.i4.2 
+	IL_01ca:  ldarg.0 
+	IL_01cb:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ConfigurationSettings::_outputDir
+	IL_01d0:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_01d5:  stelem.ref 
+	IL_01d6:  dup 
+	IL_01d7:  ldc.i4.3 
+	IL_01d8:  ldloc.2 
+	IL_01d9:  stelem.ref 
+	IL_01da:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_01df:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_01e4:  stloc.s 4
+	IL_01e6:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_01eb:  stloc.s 5
+	IL_01ed:  ldloc.s 4
+	IL_01ef:  ldstr "BaseAddress"
+	IL_01f4:  ldstr "/baseaddress:{0}"
+	IL_01f9:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_01fe:  ldloc.s 4
+	IL_0200:  ldstr "FileAlignment"
+	IL_0205:  ldstr "/filealign:{0}"
+	IL_020a:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_020f:  ldloc.s 4
+	IL_0211:  ldstr "DefineConstants"
+	IL_0216:  ldstr "/define:{0}"
+	IL_021b:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0220:  ldarg.1 
+	IL_0221:  callvirt instance valuetype NAnt.VSNet.ProjectType class NAnt.VSNet.ProjectBase::get_Type()
+	IL_0226:  stloc.s 6
+	IL_0228:  ldloc.s 6
+	IL_022a:  ldc.i4.1 
+	IL_022b:  beq IL_0244
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ReferenceBase::get_SolutionTask
+	IL_0230:  ldloc.s 6
+	IL_0232:  ldc.i4.3 
+	IL_0233:  beq IL_029e
 
-    // method line 88
-    .method family hidebysig specialname 
-           instance default class NAnt.VSNet.ReferencesResolver get_ReferencesResolver ()  cil managed 
-    {
-        // Method begins at RVA 0x4ed4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.ReferencesResolver	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ReferencesResolver NAnt.VSNet.ReferenceBase::_referencesResolver
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0238:  ldloc.s 6
+	IL_023a:  brfalse IL_02d6
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ReferenceBase::get_ReferencesResolver
+	IL_023f:  br IL_030e
 
-    // method line 89
-    .method public virtual hidebysig newslot abstract 
-           instance default string GetPrimaryOutputFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ReferenceBase::GetPrimaryOutputFile
+	IL_0244:  ldloc.s 4
+	IL_0246:  ldstr "WarningLevel"
+	IL_024b:  ldstr "/warn:{0}"
+	IL_0250:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0255:  ldloc.s 4
+	IL_0257:  ldstr "NoWarn"
+	IL_025c:  ldstr "/nowarn:{0}"
+	IL_0261:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0266:  ldloc.s 5
+	IL_0268:  ldstr "IncrementalBuild"
+	IL_026d:  ldstr "/incremental"
+	IL_0272:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0277:  ldloc.s 5
+	IL_0279:  ldstr "AllowUnsafeBlocks"
+	IL_027e:  ldstr "/unsafe"
+	IL_0283:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0288:  ldloc.s 5
+	IL_028a:  ldstr "CheckForOverflowUnderflow"
+	IL_028f:  ldstr "/checked"
+	IL_0294:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0299:  br IL_030e
 
-    // method line 90
-    .method public virtual hidebysig newslot abstract 
-           instance default void GetOutputFiles (class NAnt.VSNet.Configuration solutionConfiguration, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ReferenceBase::GetOutputFiles
+	IL_029e:  ldloc.s 4
+	IL_02a0:  ldstr "WarningLevel"
+	IL_02a5:  ldstr "/warn:{0}"
+	IL_02aa:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_02af:  ldloc.s 4
+	IL_02b1:  ldstr "NoWarn"
+	IL_02b6:  ldstr "/nowarn:{0}"
+	IL_02bb:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_02c0:  ldloc.s 5
+	IL_02c2:  ldstr "IncrementalBuild"
+	IL_02c7:  ldstr "/incremental"
+	IL_02cc:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_02d1:  br IL_030e
 
-    // method line 91
-    .method public virtual hidebysig newslot abstract 
-           instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ReferenceBase::GetAssemblyReferences
+	IL_02d6:  ldloc.s 4
+	IL_02d8:  ldstr "DefineDebug"
+	IL_02dd:  ldstr "/d:DEBUG={0}"
+	IL_02e2:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_02e7:  ldloc.s 4
+	IL_02e9:  ldstr "DefineTrace"
+	IL_02ee:  ldstr "/d:TRACE={0}"
+	IL_02f3:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_02f8:  ldloc.s 5
+	IL_02fa:  ldstr "RemoveIntegerChecks"
+	IL_02ff:  ldstr "/removeintchecks"
+	IL_0304:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0309:  br IL_030e
 
-    // method line 92
-    .method public virtual hidebysig newslot abstract 
-           instance default valuetype [mscorlib]System.DateTime GetTimestamp (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ReferenceBase::GetTimestamp
+	IL_030e:  ldloc.s 5
+	IL_0310:  ldstr "DebugSymbols"
+	IL_0315:  ldstr "/debug"
+	IL_031a:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_031f:  ldloc.s 5
+	IL_0321:  ldstr "TreatWarningsAsErrors"
+	IL_0326:  ldstr "/warnaserror"
+	IL_032b:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0330:  ldloc.s 5
+	IL_0332:  ldstr "Optimize"
+	IL_0337:  ldstr "/optimize"
+	IL_033c:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0341:  nop 
+	IL_0342:  ldloc.s 4
+	IL_0344:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_0349:  stloc.s 8
+	.try { // 0
+	  IL_034b:  br IL_042a
 
-    // method line 93
-    .method public virtual hidebysig newslot abstract 
-           instance default bool IsManaged (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ReferenceBase::IsManaged
+	  IL_0350:  ldloc.s 8
+	  IL_0352:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0357:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_035c:  stloc.s 7
+	  IL_035e:  nop 
+	  IL_035f:  ldloca.s 7
+	  IL_0361:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_0366:  callvirt instance string object::ToString()
+	  IL_036b:  stloc.s 9
+	  IL_036d:  ldarg.2 
+	  IL_036e:  ldloca.s 7
+	  IL_0370:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_0375:  callvirt instance string object::ToString()
+	  IL_037a:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	  IL_037f:  stloc.s 10
+	  IL_0381:  ldloc.s 10
+	  IL_0383:  call bool string::IsNullOrEmpty(string)
+	  IL_0388:  brtrue IL_0429
 
-    // method line 94
-    .method family hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetFileTimestamp (string fileName)  cil managed 
-    {
-        // Method begins at RVA 0x4ef0
-	// Code size 38 (0x26)
-	.maxstack 1
-	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0007:  brtrue IL_0018
+	  IL_038d:  nop 
+	  IL_038e:  ldloc.s 9
+	  IL_0390:  brfalse IL_0404
 
-	IL_000c:  nop 
-	IL_000d:  ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MaxValue
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0024
+	  IL_0395:  ldloc.s 9
+	  IL_0397:  ldstr "BaseAddress"
+	  IL_039c:  call bool string::op_Equality(string, string)
+	  IL_03a1:  brtrue IL_03bc
 
-	IL_0018:  ldarg.1 
-	IL_0019:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.File::GetLastWriteTime(string)
-	IL_001e:  stloc.0 
-	IL_001f:  br IL_0024
+	  IL_03a6:  ldloc.s 9
+	  IL_03a8:  ldstr "DefineConstants"
+	  IL_03ad:  call bool string::op_Equality(string, string)
+	  IL_03b2:  brtrue IL_03ec
 
-	IL_0024:  ldloc.0 
-	IL_0025:  ret 
-    } // end of method ReferenceBase::GetFileTimestamp
+	  IL_03b7:  br IL_0404
 
-    // method line 95
-    .method family hidebysig 
-           instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message)  cil managed 
-    {
-        // Method begins at RVA 0x4f22
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_000e:  ret 
-    } // end of method ReferenceBase::Log
+	  IL_03bc:  ldloc.s 10
+	  IL_03be:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_03c3:  call unsigned int32 class [mscorlib]System.Convert::ToUInt32(string, class [mscorlib]System.IFormatProvider)
+	  IL_03c8:  stloc.s 11
+	  IL_03ca:  ldstr "0x"
+	  IL_03cf:  ldloca.s 11
+	  IL_03d1:  ldstr "x"
+	  IL_03d6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_03db:  call instance string unsigned int32::ToString(string, class [mscorlib]System.IFormatProvider)
+	  IL_03e0:  call string string::Concat(string, string)
+	  IL_03e5:  stloc.s 10
+	  IL_03e7:  leave IL_0404
 
-    // method line 96
-    .method family hidebysig 
-           instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
-    {
-	.param [3]
-	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	  IL_03ec:  ldloc.s 10
+	  IL_03ee:  ldstr " "
+	  IL_03f3:  ldsfld string [mscorlib]System.String::Empty
+	  IL_03f8:  callvirt instance string string::Replace(string, string)
+	  IL_03fd:  stloc.s 10
+	  IL_03ff:  leave IL_0404
 
-        // Method begins at RVA 0x4f32
-	// Code size 16 (0x10)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  ldarg.3 
-	IL_000a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_000f:  ret 
-    } // end of method ReferenceBase::Log
+	  IL_0404:  ldarg.0 
+	  IL_0405:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ConfigurationSettings::_settings
+	  IL_040a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_040f:  ldloca.s 7
+	  IL_0411:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_0416:  callvirt instance string object::ToString()
+	  IL_041b:  ldloc.s 10
+	  IL_041d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0422:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0427:  pop 
+	  IL_0428:  nop 
+	  IL_0429:  nop 
+	  IL_042a:  ldloc.s 8
+	  IL_042c:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0431:  brtrue IL_0350
 
-    // method line 97
-    .method public static hidebysig 
-           default void GetRelatedFiles (string file, class [mscorlib]System.Collections.Hashtable relatedFiles)  cil managed 
-    {
-        // Method begins at RVA 0x4f44
-	// Code size 251 (0xfb)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		string	V_1,
-		string	V_2,
-		string[]	V_3,
-		int32	V_4,
-		string	V_5)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_000e:  brfalse IL_001e
+	  IL_0436:  leave IL_0452
 
-	IL_0013:  ldloc.0 
-	IL_0014:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0019:  brtrue IL_0024
+	} // end .try 0
+	finally  { // 0
+	  IL_043b:  ldloc.s 8
+	  IL_043d:  isinst [mscorlib]System.IDisposable
+	  IL_0442:  dup 
+	  IL_0443:  stloc.s 12
+	  IL_0445:  brfalse IL_0451
 
-	IL_001e:  nop 
-	IL_001f:  br IL_00fa
+	  IL_044a:  ldloc.s 12
+	  IL_044c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0451:  endfinally 
+	} // end handler 0
+	IL_0452:  nop 
+	IL_0453:  ldloc.s 5
+	IL_0455:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_045a:  stloc.s 14
+	.try { // 1
+	  IL_045c:  br IL_0537
 
-	IL_0024:  ldarg.1 
-	IL_0025:  ldarg.0 
-	IL_0026:  ldarg.0 
-	IL_0027:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_002c:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0031:  ldarg.0 
-	IL_0032:  ldstr ".*"
-	IL_0037:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
-	IL_003c:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_0041:  stloc.1 
-	IL_0042:  nop 
-	IL_0043:  ldarg.0 
-	IL_0044:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_0049:  ldloc.1 
-	IL_004a:  call string[] class [mscorlib]System.IO.Directory::GetFiles(string, string)
-	IL_004f:  stloc.3 
-	IL_0050:  ldc.i4.0 
-	IL_0051:  stloc.s 4
-	IL_0053:  br IL_00f0
+	  IL_0461:  ldloc.s 14
+	  IL_0463:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0468:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_046d:  stloc.s 13
+	  IL_046f:  nop 
+	  IL_0470:  ldloca.s 13
+	  IL_0472:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_0477:  callvirt instance string object::ToString()
+	  IL_047c:  stloc.s 15
+	  IL_047e:  ldloc.s 15
+	  IL_0480:  brfalse IL_04b1
 
-	IL_0058:  ldloc.3 
-	IL_0059:  ldloc.s 4
-	IL_005b:  ldelem.ref 
-	IL_005c:  stloc.2 
-	IL_005d:  nop 
-	IL_005e:  ldloc.2 
-	IL_005f:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_0064:  ldarg.0 
-	IL_0065:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_006a:  ldc.i4.1 
-	IL_006b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0070:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_0075:  brfalse IL_0080
+	  IL_0485:  ldloc.s 15
+	  IL_0487:  ldstr "IncrementalBuild"
+	  IL_048c:  call bool string::op_Equality(string, string)
+	  IL_0491:  brtrue IL_049b
 
-	IL_007a:  nop 
-	IL_007b:  br IL_00ea
+	  IL_0496:  br IL_04b1
 
-	IL_0080:  ldloc.2 
-	IL_0081:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	IL_0086:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_008b:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_0090:  stloc.s 5
-	IL_0092:  ldloc.s 5
-	IL_0094:  ldstr ".dll"
-	IL_0099:  call bool string::op_Inequality(string, string)
-	IL_009e:  brfalse IL_00dc
+	  IL_049b:  ldarg.0 
+	  IL_049c:  call instance bool class NAnt.VSNet.ConfigurationSettings::get_IncrementalBuildSupported()
+	  IL_04a1:  brtrue IL_04ac
 
-	IL_00a3:  ldloc.s 5
-	IL_00a5:  ldstr ".xml"
-	IL_00aa:  call bool string::op_Inequality(string, string)
-	IL_00af:  brfalse IL_00dc
+	  IL_04a6:  nop 
+	  IL_04a7:  leave IL_0537
 
-	IL_00b4:  ldloc.s 5
-	IL_00b6:  ldstr ".pdb"
-	IL_00bb:  call bool string::op_Inequality(string, string)
-	IL_00c0:  brfalse IL_00dc
+	  IL_04ac:  leave IL_04b1
 
-	IL_00c5:  ldloc.s 5
-	IL_00c7:  ldstr ".mdb"
-	IL_00cc:  call bool string::op_Inequality(string, string)
-	IL_00d1:  brfalse IL_00dc
+	  IL_04b1:  ldarg.2 
+	  IL_04b2:  ldloc.s 15
+	  IL_04b4:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	  IL_04b9:  stloc.s 16
+	  IL_04bb:  ldloc.s 16
+	  IL_04bd:  ldstr "true"
+	  IL_04c2:  ldc.i4.1 
+	  IL_04c3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_04c8:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	  IL_04cd:  brtrue IL_04fb
 
-	IL_00d6:  nop 
-	IL_00d7:  br IL_00ea
+	  IL_04d2:  nop 
+	  IL_04d3:  ldarg.0 
+	  IL_04d4:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ConfigurationSettings::_settings
+	  IL_04d9:  ldloca.s 13
+	  IL_04db:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_04e0:  callvirt instance string object::ToString()
+	  IL_04e5:  ldstr "+"
+	  IL_04ea:  call string string::Concat(string, string)
+	  IL_04ef:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_04f4:  pop 
+	  IL_04f5:  nop 
+	  IL_04f6:  br IL_0536
 
-	IL_00dc:  ldarg.1 
-	IL_00dd:  ldloc.2 
-	IL_00de:  ldloc.2 
-	IL_00df:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_00e4:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_00e9:  nop 
-	IL_00ea:  ldloc.s 4
-	IL_00ec:  ldc.i4.1 
-	IL_00ed:  add 
-	IL_00ee:  stloc.s 4
-	IL_00f0:  ldloc.s 4
-	IL_00f2:  ldloc.3 
-	IL_00f3:  ldlen 
-	IL_00f4:  conv.i4 
-	IL_00f5:  blt IL_0058
+	  IL_04fb:  ldloc.s 16
+	  IL_04fd:  ldstr "false"
+	  IL_0502:  ldc.i4.1 
+	  IL_0503:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0508:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	  IL_050d:  brtrue IL_0536
 
-	IL_00fa:  ret 
-    } // end of method ReferenceBase::GetRelatedFiles
+	  IL_0512:  nop 
+	  IL_0513:  ldarg.0 
+	  IL_0514:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ConfigurationSettings::_settings
+	  IL_0519:  ldloca.s 13
+	  IL_051b:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_0520:  callvirt instance string object::ToString()
+	  IL_0525:  ldstr "-"
+	  IL_052a:  call string string::Concat(string, string)
+	  IL_052f:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0534:  pop 
+	  IL_0535:  nop 
+	  IL_0536:  nop 
+	  IL_0537:  ldloc.s 14
+	  IL_0539:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_053e:  brtrue IL_0461
 
-	.property instance bool CopyLocal ()
-	{
-		.get instance default bool NAnt.VSNet.ReferenceBase::get_CopyLocal () 
-	}
-	.property instance bool IsSystem ()
-	{
-		.get instance default bool NAnt.VSNet.ReferenceBase::get_IsSystem () 
-	}
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.VSNet.ReferenceBase::get_Name () 
-	}
-	.property instance class NAnt.VSNet.ProjectBase Parent ()
-	{
-		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ReferenceBase::get_Parent () 
-	}
-	.property instance class NAnt.VSNet.Tasks.SolutionTask SolutionTask ()
-	{
-		.get instance default class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.ReferenceBase::get_SolutionTask () 
-	}
-	.property instance class NAnt.VSNet.ReferencesResolver ReferencesResolver ()
-	{
-		.get instance default class NAnt.VSNet.ReferencesResolver NAnt.VSNet.ReferenceBase::get_ReferencesResolver () 
-	}
-  } // end of class NAnt.VSNet.ReferenceBase
-}
+	  IL_0543:  leave IL_055f
 
-.namespace NAnt.VSNet
-{
-  .class public auto ansi abstract beforefieldinit FileReferenceBase
-  	extends NAnt.VSNet.ReferenceBase
-  {
-    .field  private initonly  class [System.Xml]System.Xml.XmlElement _xmlDefinition
-    .field  private initonly  class [NAnt.Core]NAnt.Core.Util.GacCache _gacCache
+	} // end .try 1
+	finally  { // 1
+	  IL_0548:  ldloc.s 14
+	  IL_054a:  isinst [mscorlib]System.IDisposable
+	  IL_054f:  dup 
+	  IL_0550:  stloc.s 17
+	  IL_0552:  brfalse IL_055e
 
-    // method line 98
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache)  cil managed 
-    {
-        // Method begins at RVA 0x504b
-	// Code size 62 (0x3e)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.2 
-	IL_0002:  ldarg.3 
-	IL_0003:  call instance void class NAnt.VSNet.ReferenceBase::'.ctor'(class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase)
-	IL_0008:  nop 
-	IL_0009:  ldarg.1 
-	IL_000a:  brtrue IL_001b
+	  IL_0557:  ldloc.s 17
+	  IL_0559:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_055e:  endfinally 
+	} // end handler 1
+	IL_055f:  ldarg.0 
+	IL_0560:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ConfigurationSettings::_settings
+	IL_0565:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_056a:  ldstr "/out:\"{0}\""
+	IL_056f:  ldarg.0 
+	IL_0570:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
+	IL_0575:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_057a:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_057f:  pop 
+	IL_0580:  ret 
+    } // end of method ConfigurationSettings::.ctor
 
-	IL_000f:  nop 
-	IL_0010:  ldstr "xmlDefinition"
-	IL_0015:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_001a:  throw 
-	IL_001b:  ldarg.s 4
-	IL_001d:  brtrue IL_002e
+    // method line 83
+    .method public virtual hidebysig specialname 
+           instance default string get_PlatformName ()  cil managed 
+    {
+        // Method begins at RVA 0x5764
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldstr ".NET"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0022:  nop 
-	IL_0023:  ldstr "gacCache"
-	IL_0028:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_002d:  throw 
-	IL_002e:  ldarg.0 
-	IL_002f:  ldarg.1 
-	IL_0030:  stfld class [System.Xml]System.Xml.XmlElement NAnt.VSNet.FileReferenceBase::_xmlDefinition
-	IL_0035:  ldarg.0 
-	IL_0036:  ldarg.s 4
-	IL_0038:  stfld class [NAnt.Core]NAnt.Core.Util.GacCache NAnt.VSNet.FileReferenceBase::_gacCache
-	IL_003d:  ret 
-    } // end of method FileReferenceBase::.ctor
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method ConfigurationSettings::get_PlatformName
 
-    // method line 99
-    .method family hidebysig specialname 
-           instance default class [System.Xml]System.Xml.XmlElement get_XmlDefinition ()  cil managed 
+    // method line 84
+    .method public virtual hidebysig specialname 
+           instance default string get_RelativeOutputDir ()  cil managed 
     {
-        // Method begins at RVA 0x508c
+        // Method begins at RVA 0x5780
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [System.Xml]System.Xml.XmlElement	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System.Xml]System.Xml.XmlElement NAnt.VSNet.FileReferenceBase::_xmlDefinition
+	IL_0002:  ldfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FileReferenceBase::get_XmlDefinition
+    } // end of method ConfigurationSettings::get_RelativeOutputDir
 
-    // method line 100
-    .method family hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Util.GacCache get_GacCache ()  cil managed 
+    // method line 85
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
     {
-        // Method begins at RVA 0x50a8
+        // Method begins at RVA 0x579c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [NAnt.Core]NAnt.Core.Util.GacCache	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Util.GacCache NAnt.VSNet.FileReferenceBase::_gacCache
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ConfigurationSettings::_outputDir
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method FileReferenceBase::get_GacCache
+    } // end of method ConfigurationSettings::get_OutputDir
 
-    // method line 101
-    .method public virtual hidebysig 
-           instance default bool IsManaged (class NAnt.VSNet.Configuration config)  cil managed 
+    // method line 86
+    .method public virtual hidebysig specialname 
+           instance default string get_OutputPath ()  cil managed 
     {
-        // Method begins at RVA 0x50c4
-	// Code size 10 (0xa)
-	.maxstack 1
+        // Method begins at RVA 0x57b8
+	// Code size 46 (0x2e)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_0012:  castclass NAnt.VSNet.ManagedProjectBase
+	IL_0017:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_001c:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_OutputFileName()
+	IL_0021:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0026:  stloc.0 
+	IL_0027:  br IL_002c
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method FileReferenceBase::IsManaged
+	IL_002c:  ldloc.0 
+	IL_002d:  ret 
+    } // end of method ConfigurationSettings::get_OutputPath
 
-    // method line 102
-    .method family hidebysig 
-           instance default void GetAssemblyOutputFiles (string assemblyFile, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
+    // method line 87
+    .method public virtual hidebysig specialname 
+           instance default string get_BuildPath ()  cil managed 
     {
-        // Method begins at RVA 0x50dc
-	// Code size 131 (0x83)
-	.maxstack 4
+        // Method begins at RVA 0x57f4
+	// Code size 36 (0x24)
+	.maxstack 2
 	.locals init (
-		string[]	V_0,
-		string	V_1,
-		string[]	V_2,
-		int32	V_3)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0007:  brtrue IL_0012
-
-	IL_000c:  nop 
-	IL_000d:  br IL_0082
-
-	IL_0012:  ldarg.2 
-	IL_0013:  ldarg.1 
-	IL_0014:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	IL_0019:  brtrue IL_0082
-
-	IL_001e:  nop 
-	IL_001f:  ldarg.0 
-	IL_0020:  ldarg.1 
-	IL_0021:  call instance string[] class NAnt.VSNet.FileReferenceBase::GetAllReferencedModules(string)
-	IL_0026:  stloc.0 
-	IL_0027:  nop 
-	IL_0028:  ldloc.0 
-	IL_0029:  stloc.2 
-	IL_002a:  ldc.i4.0 
-	IL_002b:  stloc.3 
-	IL_002c:  br IL_0078
-
-	IL_0031:  ldloc.2 
-	IL_0032:  ldloc.3 
-	IL_0033:  ldelem.ref 
-	IL_0034:  stloc.1 
-	IL_0035:  nop 
-	IL_0036:  ldloc.1 
-	IL_0037:  ldarg.1 
-	IL_0038:  ldc.i4.1 
-	IL_0039:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_003e:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_0043:  brfalse IL_006c
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
+	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_000c:  ldarg.0 
+	IL_000d:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
+	IL_0012:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_0017:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_001c:  stloc.0 
+	IL_001d:  br IL_0022
 
-	IL_0048:  nop 
-	IL_0049:  ldarg.0 
-	IL_004a:  callvirt instance bool class NAnt.VSNet.ReferenceBase::get_IsSystem()
-	IL_004f:  brtrue IL_0065
+	IL_0022:  ldloc.0 
+	IL_0023:  ret 
+    } // end of method ConfigurationSettings::get_BuildPath
 
-	IL_0054:  ldarg.0 
-	IL_0055:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.FileReferenceBase::get_GacCache()
-	IL_005a:  ldloc.1 
-	IL_005b:  callvirt instance bool class [NAnt.Core]NAnt.Core.Util.GacCache::IsAssemblyInGac(string)
-	IL_0060:  brfalse IL_006b
+    // method line 88
+    .method public hidebysig specialname 
+           instance default string[] get_Settings ()  cil managed 
+    {
+        // Method begins at RVA 0x5824
+	// Code size 35 (0x23)
+	.maxstack 2
+	.locals init (
+		string[]	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ConfigurationSettings::_settings
+	IL_0007:  ldtoken [mscorlib]System.String
+	IL_000c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0011:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
+	IL_0016:  castclass string[]
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
 
-	IL_0065:  nop 
-	IL_0066:  br IL_0074
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method ConfigurationSettings::get_Settings
 
-	IL_006b:  nop 
-	IL_006c:  ldloc.1 
-	IL_006d:  ldarg.2 
-	IL_006e:  call void class NAnt.VSNet.ReferenceBase::GetRelatedFiles(string, class [mscorlib]System.Collections.Hashtable)
-	IL_0073:  nop 
-	IL_0074:  ldloc.3 
-	IL_0075:  ldc.i4.1 
-	IL_0076:  add 
-	IL_0077:  stloc.3 
-	IL_0078:  ldloc.3 
-	IL_0079:  ldloc.2 
-	IL_007a:  ldlen 
-	IL_007b:  conv.i4 
-	IL_007c:  blt IL_0031
+    // method line 89
+    .method public virtual hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x5854
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.ConfigurationSettings::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0081:  nop 
-	IL_0082:  ret 
-    } // end of method FileReferenceBase::GetAssemblyOutputFiles
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationSettings::get_Name
 
-    // method line 103
-    .method private hidebysig 
-           instance default string[] GetAllReferencedModules (string module)  cil managed 
+    // method line 90
+    .method public hidebysig specialname 
+           instance default bool get_RegisterForComInterop ()  cil managed 
     {
-        // Method begins at RVA 0x516c
-	// Code size 201 (0xc9)
-	.maxstack 5
+        // Method begins at RVA 0x5870
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		string	V_1,
-		class [mscorlib]System.Collections.Hashtable	V_2,
-		class [mscorlib]System.Collections.Hashtable	V_3,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_4,
-		string	V_5,
-		class [mscorlib]System.Exception	V_6,
-		string[]	V_7,
-		string[]	V_8)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.ConfigurationSettings::_registerForComInterop
 	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_000e:  stloc.1 
-	IL_000f:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0014:  stloc.2 
-	IL_0015:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_001a:  stloc.3 
-	.try { // 0
-	  IL_001b:  nop 
-	  IL_001c:  ldloc.2 
-	  IL_001d:  ldloc.0 
-	  IL_001e:  ldnull 
-	  IL_001f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	  IL_0024:  ldloc.3 
-	  IL_0025:  ldloc.0 
-	  IL_0026:  ldnull 
-	  IL_0027:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	  IL_002c:  br IL_006b
+	IL_0008:  br IL_000d
 
-	  IL_0031:  nop 
-	  IL_0032:  ldloc.3 
-	  IL_0033:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	  IL_0038:  stloc.s 4
-	  IL_003a:  ldloc.s 4
-	  IL_003c:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0041:  pop 
-	  IL_0042:  ldloc.s 4
-	  IL_0044:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key()
-	  IL_0049:  castclass [mscorlib]System.String
-	  IL_004e:  stloc.s 5
-	  IL_0050:  ldloc.3 
-	  IL_0051:  ldloc.s 5
-	  IL_0053:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
-	  IL_0058:  ldarg.0 
-	  IL_0059:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ReferenceBase::get_ReferencesResolver()
-	  IL_005e:  ldloc.1 
-	  IL_005f:  ldloc.s 5
-	  IL_0061:  ldloca.s 2
-	  IL_0063:  ldloca.s 3
-	  IL_0065:  callvirt instance void class NAnt.VSNet.ReferencesResolver::AppendReferencedModulesLocatedInGivenDirectory(string, string, [out] class [mscorlib]System.Collections.Hashtable&, [out] class [mscorlib]System.Collections.Hashtable&)
-	  IL_006a:  nop 
-	  IL_006b:  ldloc.3 
-	  IL_006c:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
-	  IL_0071:  ldc.i4.0 
-	  IL_0072:  bgt IL_0031
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationSettings::get_RegisterForComInterop
 
-	  IL_0077:  nop 
-	  IL_0078:  leave IL_009d
+    // method line 91
+    .method private hidebysig specialname 
+           instance default bool get_IncrementalBuildSupported ()  cil managed 
+    {
+        // Method begins at RVA 0x588c
+	// Code size 68 (0x44)
+	.maxstack 3
+	.locals init (
+		class [NAnt.Core]NAnt.Core.FrameworkInfo	V_0,
+		bool	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
+	IL_0007:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_000c:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0011:  stloc.0 
+	IL_0012:  ldloc.0 
+	IL_0013:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Family()
+	IL_0018:  ldstr "net"
+	IL_001d:  call bool string::op_Equality(string, string)
+	IL_0022:  brfalse IL_003b
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_007d:  stloc.s 6
-	  IL_007f:  nop 
-	  IL_0080:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0085:  ldstr "Error resolving module references of '{0}'."
-	  IL_008a:  ldloc.0 
-	  IL_008b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0090:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	  IL_0095:  ldloc.s 6
-	  IL_0097:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_009c:  throw 
-	} // end handler 0
-	IL_009d:  ldloc.2 
-	IL_009e:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
-	IL_00a3:  callvirt instance int32 class [mscorlib]System.Collections.ICollection::get_Count()
-	IL_00a8:  newarr [mscorlib]System.String
-	IL_00ad:  stloc.s 7
-	IL_00af:  ldloc.2 
-	IL_00b0:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
-	IL_00b5:  ldloc.s 7
-	IL_00b7:  ldc.i4.0 
-	IL_00b8:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_00bd:  ldloc.s 7
-	IL_00bf:  stloc.s 8
-	IL_00c1:  br IL_00c6
+	IL_0027:  ldloc.0 
+	IL_0028:  callvirt instance class [mscorlib]System.Version class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Version()
+	IL_002d:  ldc.i4.2 
+	IL_002e:  ldc.i4.0 
+	IL_002f:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32)
+	IL_0034:  call bool class [mscorlib]System.Version::op_LessThanOrEqual(class [mscorlib]System.Version, class [mscorlib]System.Version)
+	IL_0039:  br.s IL_003c
 
-	IL_00c6:  ldloc.s 8
-	IL_00c8:  ret 
-    } // end of method FileReferenceBase::GetAllReferencedModules
+	IL_003b:  ldc.i4.0 
+	IL_003c:  stloc.1 
+	IL_003d:  br IL_0042
 
-	.property instance class [System.Xml]System.Xml.XmlElement XmlDefinition ()
+	IL_0042:  ldloc.1 
+	IL_0043:  ret 
+    } // end of method ConfigurationSettings::get_IncrementalBuildSupported
+
+	.property instance string PlatformName ()
 	{
-		.get instance default class [System.Xml]System.Xml.XmlElement NAnt.VSNet.FileReferenceBase::get_XmlDefinition () 
+		.get instance default string NAnt.VSNet.ConfigurationSettings::get_PlatformName () 
 	}
-	.property instance class [NAnt.Core]NAnt.Core.Util.GacCache GacCache ()
+	.property instance string RelativeOutputDir ()
 	{
-		.get instance default class [NAnt.Core]NAnt.Core.Util.GacCache NAnt.VSNet.FileReferenceBase::get_GacCache () 
+		.get instance default string NAnt.VSNet.ConfigurationSettings::get_RelativeOutputDir () 
 	}
-  } // end of class NAnt.VSNet.FileReferenceBase
+	.property instance class [mscorlib]System.IO.DirectoryInfo OutputDir ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ConfigurationSettings::get_OutputDir () 
+	}
+	.property instance string OutputPath ()
+	{
+		.get instance default string NAnt.VSNet.ConfigurationSettings::get_OutputPath () 
+	}
+	.property instance string BuildPath ()
+	{
+		.get instance default string NAnt.VSNet.ConfigurationSettings::get_BuildPath () 
+	}
+	.property instance string[] Settings ()
+	{
+		.get instance default string[] NAnt.VSNet.ConfigurationSettings::get_Settings () 
+	}
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.VSNet.ConfigurationSettings::get_Name () 
+	}
+	.property instance bool RegisterForComInterop ()
+	{
+		.get instance default bool NAnt.VSNet.ConfigurationSettings::get_RegisterForComInterop () 
+	}
+	.property instance bool IncrementalBuildSupported ()
+	{
+		.get instance default bool NAnt.VSNet.ConfigurationSettings::get_IncrementalBuildSupported () 
+	}
+  } // end of class NAnt.VSNet.ConfigurationSettings
 }
 
 .namespace NAnt.VSNet
 {
-  .class private auto ansi beforefieldinit CSharpProjectProvider
+  .class private auto ansi beforefieldinit VCProjectProvider
   	extends [mscorlib]System.Object
   	implements NAnt.VSNet.Extensibility.IProjectBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
 
-    // method line 104
+    // method line 92
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x5254
+        // Method begins at RVA 0x58dc
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void object::'.ctor'()
 	IL_0006:  ret 
-    } // end of method CSharpProjectProvider::.ctor
+    } // end of method VCProjectProvider::.ctor
 
-    // method line 105
+    // method line 93
     .method public final virtual hidebysig newslot 
            instance default int32 IsSupported (string projectExt, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
     {
-        // Method begins at RVA 0x525c
+        // Method begins at RVA 0x58e4
 	// Code size 52 (0x34)
 	.maxstack 2
 	.locals init (
 		int32	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  ldstr ".csproj"
+	IL_0002:  ldstr ".vcproj"
 	IL_0007:  call bool string::op_Equality(string, string)
 	IL_000c:  brfalse IL_0018
 
@@ -4098,7 +4197,7 @@
 	IL_0013:  br IL_0032
 
 	IL_0018:  ldarg.2 
-	IL_0019:  call bool class NAnt.VSNet.CSharpProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
+	IL_0019:  call bool class NAnt.VSNet.VcProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
 	IL_001e:  brfalse IL_002b
 
 	IL_0023:  ldc.i4.s 0x0a
@@ -4111,13 +4210,13 @@
 
 	IL_0032:  ldloc.0 
 	IL_0033:  ret 
-    } // end of method CSharpProjectProvider::IsSupported
+    } // end of method VCProjectProvider::IsSupported
 
-    // method line 106
+    // method line 94
     .method public final virtual hidebysig newslot 
            instance default class NAnt.VSNet.ProjectBase GetInstance (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
     {
-        // Method begins at RVA 0x529c
+        // Method begins at RVA 0x5924
 	// Code size 27 (0x1b)
 	.maxstack 8
 	.locals init (
@@ -4131,13032 +4230,8118 @@
 	IL_0008:  ldarg.s 6
 	IL_000a:  ldarg.s 7
 	IL_000c:  ldarg.s 8
-	IL_000e:  newobj instance void class NAnt.VSNet.CSharpProject::'.ctor'(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
+	IL_000e:  newobj instance void class NAnt.VSNet.VcProject::'.ctor'(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
 	IL_0013:  stloc.0 
 	IL_0014:  br IL_0019
 
 	IL_0019:  ldloc.0 
 	IL_001a:  ret 
-    } // end of method CSharpProjectProvider::GetInstance
+    } // end of method VCProjectProvider::GetInstance
 
-    // method line 107
+    // method line 95
     .method public final virtual hidebysig newslot 
            instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
     {
-        // Method begins at RVA 0x52c4
+        // Method begins at RVA 0x594c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  call string class NAnt.VSNet.ManagedProjectBase::LoadGuid(class [System.Xml]System.Xml.XmlElement)
+	IL_0002:  call string class NAnt.VSNet.VcProject::LoadGuid(class [System.Xml]System.Xml.XmlElement)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method CSharpProjectProvider::LoadGuid
+    } // end of method VCProjectProvider::LoadGuid
 
-  } // end of class NAnt.VSNet.CSharpProjectProvider
+  } // end of class NAnt.VSNet.VCProjectProvider
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi beforefieldinit VcProjectConfiguration
-  	extends NAnt.VSNet.VcConfigurationBase
+  .class public auto ansi beforefieldinit ManagedWrapperReference
+  	extends NAnt.VSNet.WrapperReferenceBase
   {
-    .field  private initonly  string _rawRelativeOutputDir
-    .field  private initonly  string _rawIntermediateDir
-    .field  private initonly  string _rawReferencesPath
-    .field  private initonly  valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType _type
-    .field  private initonly  bool _wholeProgramOptimization
-    .field  private initonly  bool _managedExtensions
-    .field  private initonly  valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet _characterSet
-    .field  private initonly  valuetype NAnt.VSNet.Types.UseOfMFC _useOfMFC
-    .field  private initonly  valuetype NAnt.VSNet.Types.UseOfATL _useOfATL
-    .field  private initonly  class NAnt.VSNet.VcProjectConfiguration/LinkerConfig _linkerConfiguration
-    .field  private  bool _initialized
-    .field  private  string _outputPath
-    .field  private initonly  class [mscorlib]System.Collections.ArrayList _objFiles
-    .field  private initonly  class [mscorlib]System.Collections.Hashtable _sourceConfigs
-    .field  private initonly  class [mscorlib]System.Collections.Hashtable _rcConfigs
-    .field  private initonly  class [mscorlib]System.Collections.Hashtable _idlConfigs
+    .field  private  string _name
+    .field  private initonly  string _wrapperTool
+    .field  private initonly  string _wrapperAssembly
+    .field  private initonly  class NAnt.VSNet.ProjectSettings _projectSettings
+    .field  private  string _primaryInteropAssembly
 
-    // method line 108
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement elem, class NAnt.VSNet.VcProject parentProject, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
+    // method line 96
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ProjectSettings projectSettings)  cil managed 
     {
-        // Method begins at RVA 0x5bb8
-	// Code size 647 (0x287)
+        // Method begins at RVA 0x6568
+	// Code size 190 (0xbe)
 	.maxstack 5
 	.locals init (
 		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		class [System.Xml]System.Xml.XmlAttribute	V_1,
-		class [System.Xml]System.Xml.XmlAttribute	V_2,
-		string	V_3,
-		string	V_4,
-		string	V_5,
-		string	V_6,
-		string	V_7,
-		string	V_8,
-		string	V_9)
+		class [System.Xml]System.Xml.XmlAttribute	V_1)
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stfld valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet NAnt.VSNet.VcProjectConfiguration::_characterSet
-	IL_0007:  ldarg.0 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  stfld valuetype NAnt.VSNet.Types.UseOfMFC NAnt.VSNet.VcProjectConfiguration::_useOfMFC
-	IL_000e:  ldarg.0 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  stfld valuetype NAnt.VSNet.Types.UseOfATL NAnt.VSNet.VcProjectConfiguration::_useOfATL
-	IL_0015:  ldarg.0 
-	IL_0016:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_001b:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
-	IL_0020:  ldarg.0 
-	IL_0021:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0026:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_sourceConfigs
-	IL_002b:  ldarg.0 
-	IL_002c:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0031:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_rcConfigs
-	IL_0036:  ldarg.0 
-	IL_0037:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_003c:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_idlConfigs
-	IL_0041:  ldarg.0 
-	IL_0042:  ldarg.1 
-	IL_0043:  ldarg.2 
-	IL_0044:  ldarg.3 
-	IL_0045:  call instance void class NAnt.VSNet.VcConfigurationBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ProjectBase, class [mscorlib]System.IO.DirectoryInfo)
-	IL_004a:  nop 
-	IL_004b:  ldarg.1 
-	IL_004c:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0051:  ldstr "OutputDirectory"
-	IL_0056:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_005b:  stloc.0 
-	IL_005c:  ldloc.0 
-	IL_005d:  brfalse IL_0070
-
-	IL_0062:  nop 
-	IL_0063:  ldarg.0 
-	IL_0064:  ldloc.0 
-	IL_0065:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_006a:  stfld string NAnt.VSNet.VcProjectConfiguration::_rawRelativeOutputDir
-	IL_006f:  nop 
-	IL_0070:  ldarg.1 
-	IL_0071:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0076:  ldstr "IntermediateDirectory"
-	IL_007b:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0080:  stloc.1 
-	IL_0081:  ldloc.1 
-	IL_0082:  brfalse IL_0095
-
-	IL_0087:  nop 
-	IL_0088:  ldarg.0 
-	IL_0089:  ldloc.1 
-	IL_008a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_008f:  stfld string NAnt.VSNet.VcProjectConfiguration::_rawIntermediateDir
-	IL_0094:  nop 
-	IL_0095:  ldarg.1 
-	IL_0096:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_009b:  ldstr "ReferencesPath"
-	IL_00a0:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_00a5:  stloc.2 
-	IL_00a6:  ldloc.2 
-	IL_00a7:  brfalse IL_00bf
-
-	IL_00ac:  nop 
-	IL_00ad:  ldarg.0 
-	IL_00ae:  ldloc.2 
-	IL_00af:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_00b4:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_00b9:  stfld string NAnt.VSNet.VcProjectConfiguration::_rawReferencesPath
-	IL_00be:  nop 
-	IL_00bf:  ldarg.1 
-	IL_00c0:  ldstr "ManagedExtensions"
-	IL_00c5:  call string class NAnt.VSNet.VcProjectConfiguration::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_00ca:  stloc.3 
-	IL_00cb:  ldloc.3 
-	IL_00cc:  brfalse IL_0154
-
-	IL_00d1:  nop 
-	IL_00d2:  ldloc.3 
-	IL_00d3:  callvirt instance string string::ToLower()
-	IL_00d8:  stloc.s 4
-	IL_00da:  ldloc.s 4
-	IL_00dc:  brfalse IL_0142
-
-	IL_00e1:  ldloc.s 4
-	IL_00e3:  ldstr "false"
-	IL_00e8:  call bool string::op_Equality(string, string)
-	IL_00ed:  brtrue IL_012a
-
-	IL_00f2:  ldloc.s 4
-	IL_00f4:  ldstr "0"
-	IL_00f9:  call bool string::op_Equality(string, string)
-	IL_00fe:  brtrue IL_012a
-
-	IL_0103:  ldloc.s 4
-	IL_0105:  ldstr "true"
-	IL_010a:  call bool string::op_Equality(string, string)
-	IL_010f:  brtrue IL_0136
-
-	IL_0114:  ldloc.s 4
-	IL_0116:  ldstr "1"
-	IL_011b:  call bool string::op_Equality(string, string)
-	IL_0120:  brtrue IL_0136
-
-	IL_0125:  br IL_0142
-
-	IL_012a:  ldarg.0 
-	IL_012b:  ldc.i4.0 
-	IL_012c:  stfld bool NAnt.VSNet.VcProjectConfiguration::_managedExtensions
-	IL_0131:  br IL_0153
-
-	IL_0136:  ldarg.0 
-	IL_0137:  ldc.i4.1 
-	IL_0138:  stfld bool NAnt.VSNet.VcProjectConfiguration::_managedExtensions
-	IL_013d:  br IL_0153
-
-	IL_0142:  ldstr "ManagedExtensions '{0}' is not supported yet."
-	IL_0147:  ldloc.3 
-	IL_0148:  call string string::Format(string, object)
-	IL_014d:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	IL_0152:  throw 
-	IL_0153:  nop 
-	IL_0154:  ldarg.1 
-	IL_0155:  ldstr "ConfigurationType"
-	IL_015a:  call string class NAnt.VSNet.VcProjectConfiguration::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_015f:  stloc.s 5
-	IL_0161:  ldloc.s 5
-	IL_0163:  brfalse IL_0190
-
-	IL_0168:  nop 
-	IL_0169:  ldarg.0 
-	IL_016a:  ldtoken NAnt.VSNet.VcProjectConfiguration/ConfigurationType
-	IL_016f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0174:  ldloc.s 5
-	IL_0176:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_017b:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
-	IL_0180:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, int32)
-	IL_0185:  unbox.any NAnt.VSNet.VcProjectConfiguration/ConfigurationType
-	IL_018a:  stfld valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType NAnt.VSNet.VcProjectConfiguration::_type
-	IL_018f:  nop 
-	IL_0190:  ldarg.1 
-	IL_0191:  ldstr "WholeProgramOptimization"
-	IL_0196:  call string class NAnt.VSNet.VcProjectConfiguration::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_019b:  stloc.s 6
-	IL_019d:  ldloc.s 6
-	IL_019f:  brfalse IL_01c6
-
-	IL_01a4:  nop 
-	IL_01a5:  ldarg.0 
-	IL_01a6:  ldloc.s 6
-	IL_01a8:  callvirt instance string string::Trim()
-	IL_01ad:  ldstr "true"
-	IL_01b2:  ldc.i4.1 
-	IL_01b3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01b8:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_01bd:  ldc.i4.0 
-	IL_01be:  ceq 
-	IL_01c0:  stfld bool NAnt.VSNet.VcProjectConfiguration::_wholeProgramOptimization
-	IL_01c5:  nop 
-	IL_01c6:  ldarg.1 
-	IL_01c7:  ldstr "CharacterSet"
-	IL_01cc:  call string class NAnt.VSNet.VcProjectConfiguration::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_01d1:  stloc.s 7
-	IL_01d3:  ldloc.s 7
-	IL_01d5:  brfalse IL_0202
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  ldarg.s 4
+	IL_0006:  call instance void class NAnt.VSNet.WrapperReferenceBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
+	IL_000b:  nop 
+	IL_000c:  ldarg.s 5
+	IL_000e:  brtrue IL_001f
 
-	IL_01da:  nop 
-	IL_01db:  ldarg.0 
-	IL_01dc:  ldtoken [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet
-	IL_01e1:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_01e6:  ldloc.s 7
-	IL_01e8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01ed:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
-	IL_01f2:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, int32)
-	IL_01f7:  unbox.any [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet
-	IL_01fc:  stfld valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet NAnt.VSNet.VcProjectConfiguration::_characterSet
-	IL_0201:  nop 
-	IL_0202:  ldarg.1 
-	IL_0203:  ldstr "UseOfMFC"
-	IL_0208:  call string class NAnt.VSNet.VcProjectConfiguration::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_020d:  stloc.s 8
-	IL_020f:  ldloc.s 8
-	IL_0211:  brfalse IL_023e
+	IL_0013:  nop 
+	IL_0014:  ldstr "projectSettings"
+	IL_0019:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_001e:  throw 
+	IL_001f:  ldarg.0 
+	IL_0020:  ldarg.s 5
+	IL_0022:  stfld class NAnt.VSNet.ProjectSettings NAnt.VSNet.ManagedWrapperReference::_projectSettings
+	IL_0027:  ldarg.0 
+	IL_0028:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
+	IL_002d:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0032:  ldstr "Name"
+	IL_0037:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_003c:  stloc.0 
+	IL_003d:  ldloc.0 
+	IL_003e:  brfalse IL_0051
 
-	IL_0216:  nop 
-	IL_0217:  ldarg.0 
-	IL_0218:  ldtoken NAnt.VSNet.Types.UseOfMFC
-	IL_021d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0222:  ldloc.s 8
-	IL_0224:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0229:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
-	IL_022e:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, int32)
-	IL_0233:  unbox.any NAnt.VSNet.Types.UseOfMFC
-	IL_0238:  stfld valuetype NAnt.VSNet.Types.UseOfMFC NAnt.VSNet.VcProjectConfiguration::_useOfMFC
-	IL_023d:  nop 
-	IL_023e:  ldarg.1 
-	IL_023f:  ldstr "UseOfATL"
-	IL_0244:  call string class NAnt.VSNet.VcProjectConfiguration::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
-	IL_0249:  stloc.s 9
-	IL_024b:  ldloc.s 9
-	IL_024d:  brfalse IL_027a
+	IL_0043:  nop 
+	IL_0044:  ldarg.0 
+	IL_0045:  ldloc.0 
+	IL_0046:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_004b:  stfld string NAnt.VSNet.ManagedWrapperReference::_name
+	IL_0050:  nop 
+	IL_0051:  ldarg.0 
+	IL_0052:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
+	IL_0057:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_005c:  ldstr "WrapperTool"
+	IL_0061:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0066:  stloc.1 
+	IL_0067:  ldloc.1 
+	IL_0068:  brtrue IL_0099
 
-	IL_0252:  nop 
-	IL_0253:  ldarg.0 
-	IL_0254:  ldtoken NAnt.VSNet.Types.UseOfATL
-	IL_0259:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_025e:  ldloc.s 9
-	IL_0260:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0265:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
-	IL_026a:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, int32)
-	IL_026f:  unbox.any NAnt.VSNet.Types.UseOfATL
-	IL_0274:  stfld valuetype NAnt.VSNet.Types.UseOfATL NAnt.VSNet.VcProjectConfiguration::_useOfATL
-	IL_0279:  nop 
-	IL_027a:  ldarg.0 
-	IL_027b:  ldarg.0 
-	IL_027c:  newobj instance void class NAnt.VSNet.VcProjectConfiguration/LinkerConfig::'.ctor'(class NAnt.VSNet.VcProjectConfiguration)
-	IL_0281:  stfld class NAnt.VSNet.VcProjectConfiguration/LinkerConfig NAnt.VSNet.VcProjectConfiguration::_linkerConfiguration
-	IL_0286:  ret 
-    } // end of method VcProjectConfiguration::.ctor
+	IL_006d:  nop 
+	IL_006e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0073:  ldstr "Wrapper tool for reference \"{0}\" in project \"{1}\" could not be determined."
+	IL_0078:  ldarg.0 
+	IL_0079:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_007e:  ldarg.0 
+	IL_007f:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0084:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_0089:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_008e:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0093:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0098:  throw 
+	IL_0099:  ldarg.0 
+	IL_009a:  ldloc.1 
+	IL_009b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_00a0:  stfld string NAnt.VSNet.ManagedWrapperReference::_wrapperTool
+	IL_00a5:  ldarg.0 
+	IL_00a6:  ldarg.0 
+	IL_00a7:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetPrimaryInteropAssembly()
+	IL_00ac:  stfld string NAnt.VSNet.ManagedWrapperReference::_primaryInteropAssembly
+	IL_00b1:  ldarg.0 
+	IL_00b2:  ldarg.0 
+	IL_00b3:  call instance string class NAnt.VSNet.WrapperReferenceBase::ResolveWrapperAssembly()
+	IL_00b8:  stfld string NAnt.VSNet.ManagedWrapperReference::_wrapperAssembly
+	IL_00bd:  ret 
+    } // end of method ManagedWrapperReference::.ctor
 
-    // method line 109
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType get_Type ()  cil managed 
+    // method line 97
+    .method public virtual hidebysig specialname 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x5e4c
+        // Method begins at RVA 0x6634
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType NAnt.VSNet.VcProjectConfiguration::_type
+	IL_0002:  ldfld string NAnt.VSNet.ManagedWrapperReference::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VcProjectConfiguration::get_Type
+    } // end of method ManagedWrapperReference::get_Name
 
-    // method line 110
-    .method public hidebysig specialname 
-           instance default bool get_WholeProgramOptimization ()  cil managed 
+    // method line 98
+    .method public virtual hidebysig specialname 
+           instance default string get_WrapperTool ()  cil managed 
     {
-        // Method begins at RVA 0x5e68
+        // Method begins at RVA 0x6650
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_wholeProgramOptimization
+	IL_0002:  ldfld string NAnt.VSNet.ManagedWrapperReference::_wrapperTool
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VcProjectConfiguration::get_WholeProgramOptimization
+    } // end of method ManagedWrapperReference::get_WrapperTool
 
-    // method line 111
-    .method public hidebysig specialname 
-           instance default valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet get_CharacterSet ()  cil managed 
+    // method line 99
+    .method public virtual hidebysig specialname 
+           instance default string get_WrapperAssembly ()  cil managed 
     {
-        // Method begins at RVA 0x5e84
+        // Method begins at RVA 0x666c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet NAnt.VSNet.VcProjectConfiguration::_characterSet
+	IL_0002:  ldfld string NAnt.VSNet.ManagedWrapperReference::_wrapperAssembly
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VcProjectConfiguration::get_CharacterSet
+    } // end of method ManagedWrapperReference::get_WrapperAssembly
 
-    // method line 112
-    .method public hidebysig specialname 
-           instance default bool get_ManagedExtensions ()  cil managed 
+    // method line 100
+    .method family virtual hidebysig specialname 
+           instance default string get_PrimaryInteropAssembly ()  cil managed 
     {
-        // Method begins at RVA 0x5ea0
+        // Method begins at RVA 0x6688
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_managedExtensions
+	IL_0002:  ldfld string NAnt.VSNet.ManagedWrapperReference::_primaryInteropAssembly
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VcProjectConfiguration::get_ManagedExtensions
+    } // end of method ManagedWrapperReference::get_PrimaryInteropAssembly
 
-    // method line 113
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.VSNet.Types.UseOfMFC get_UseOfMFC ()  cil managed 
+    // method line 101
+    .method family virtual hidebysig specialname 
+           instance default string get_TypeLibVersion ()  cil managed 
     {
-        // Method begins at RVA 0x5ebc
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x66a4
+	// Code size 176 (0xb0)
+	.maxstack 3
 	.locals init (
-		valuetype NAnt.VSNet.Types.UseOfMFC	V_0)
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		class [System.Xml]System.Xml.XmlAttribute	V_1,
+		string	V_2,
+		int32	V_3,
+		string	V_4,
+		int32	V_5,
+		string	V_6)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.VSNet.Types.UseOfMFC NAnt.VSNet.VcProjectConfiguration::_useOfMFC
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_000c:  ldstr "VersionMajor"
+	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0016:  stloc.0 
+	IL_0017:  ldloc.0 
+	IL_0018:  brtrue IL_0029
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProjectConfiguration::get_UseOfMFC
+	IL_001d:  nop 
+	IL_001e:  ldstr "The definition of the reference does not contain a \"VersionMajor\" attribute."
+	IL_0023:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	IL_0028:  throw 
+	IL_0029:  ldarg.0 
+	IL_002a:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
+	IL_002f:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0034:  ldstr "VersionMinor"
+	IL_0039:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_003e:  stloc.1 
+	IL_003f:  ldloc.1 
+	IL_0040:  brtrue IL_0051
 
-    // method line 114
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.VSNet.Types.UseOfATL get_UseOfATL ()  cil managed 
-    {
-        // Method begins at RVA 0x5ed8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.VSNet.Types.UseOfATL	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.VSNet.Types.UseOfATL NAnt.VSNet.VcProjectConfiguration::_useOfATL
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0045:  nop 
+	IL_0046:  ldstr "The definition of the reference does not contain a \"VersionMinor\" attribute."
+	IL_004b:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	IL_0050:  throw 
+	IL_0051:  ldloc.0 
+	IL_0052:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_0057:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_005c:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
+	IL_0061:  stloc.3 
+	IL_0062:  ldloca.s 3
+	IL_0064:  ldstr "x"
+	IL_0069:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_006e:  call instance string int32::ToString(string, class [mscorlib]System.IFormatProvider)
+	IL_0073:  stloc.2 
+	IL_0074:  ldloc.1 
+	IL_0075:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_007a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_007f:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
+	IL_0084:  stloc.s 5
+	IL_0086:  ldloca.s 5
+	IL_0088:  ldstr "x"
+	IL_008d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0092:  call instance string int32::ToString(string, class [mscorlib]System.IFormatProvider)
+	IL_0097:  stloc.s 4
+	IL_0099:  ldloc.2 
+	IL_009a:  ldstr "."
+	IL_009f:  ldloc.s 4
+	IL_00a1:  call string string::Concat(string, string, string)
+	IL_00a6:  stloc.s 6
+	IL_00a8:  br IL_00ad
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProjectConfiguration::get_UseOfATL
+	IL_00ad:  ldloc.s 6
+	IL_00af:  ret 
+    } // end of method ManagedWrapperReference::get_TypeLibVersion
 
-    // method line 115
-    .method assembly hidebysig specialname 
-           instance default string get_RawRelativeOutputDir ()  cil managed 
+    // method line 102
+    .method family virtual hidebysig specialname 
+           instance default string get_TypeLibGuid ()  cil managed 
     {
-        // Method begins at RVA 0x5ef4
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x6760
+	// Code size 55 (0x37)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcProjectConfiguration::_rawRelativeOutputDir
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_000c:  ldstr "Guid"
+	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0016:  stloc.0 
+	IL_0017:  ldloc.0 
+	IL_0018:  brtrue IL_0029
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProjectConfiguration::get_RawRelativeOutputDir
+	IL_001d:  nop 
+	IL_001e:  ldstr "The definition of the reference does not contain a \"Guid\" attribute."
+	IL_0023:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	IL_0028:  throw 
+	IL_0029:  ldloc.0 
+	IL_002a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_002f:  stloc.1 
+	IL_0030:  br IL_0035
 
-    // method line 116
-    .method assembly hidebysig specialname 
-           instance default string get_RawIntermediateDir ()  cil managed 
+	IL_0035:  ldloc.1 
+	IL_0036:  ret 
+    } // end of method ManagedWrapperReference::get_TypeLibGuid
+
+    // method line 103
+    .method family virtual hidebysig specialname 
+           instance default string get_TypeLibLocale ()  cil managed 
     {
-        // Method begins at RVA 0x5f10
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x67a4
+	// Code size 73 (0x49)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		int32	V_1,
+		string	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcProjectConfiguration::_rawIntermediateDir
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_000c:  ldstr "Lcid"
+	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0016:  stloc.0 
+	IL_0017:  ldloc.0 
+	IL_0018:  brtrue IL_0029
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProjectConfiguration::get_RawIntermediateDir
+	IL_001d:  nop 
+	IL_001e:  ldstr "The definition of the reference does not contain a \"Lcid\" attribute."
+	IL_0023:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	IL_0028:  throw 
+	IL_0029:  ldloc.0 
+	IL_002a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_002f:  call int32 int32::Parse(string)
+	IL_0034:  stloc.1 
+	IL_0035:  ldloca.s 1
+	IL_0037:  ldstr "x"
+	IL_003c:  call instance string int32::ToString(string)
+	IL_0041:  stloc.2 
+	IL_0042:  br IL_0047
 
-    // method line 117
-    .method assembly hidebysig specialname 
-           instance default string get_RawReferencesPath ()  cil managed 
+	IL_0047:  ldloc.2 
+	IL_0048:  ret 
+    } // end of method ManagedWrapperReference::get_TypeLibLocale
+
+    // method line 104
+    .method private hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectSettings get_ProjectSettings ()  cil managed 
     {
-        // Method begins at RVA 0x5f2c
+        // Method begins at RVA 0x67fc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.VSNet.ProjectSettings	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcProjectConfiguration::_rawReferencesPath
+	IL_0002:  ldfld class NAnt.VSNet.ProjectSettings NAnt.VSNet.ManagedWrapperReference::_projectSettings
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VcProjectConfiguration::get_RawReferencesPath
+    } // end of method ManagedWrapperReference::get_ProjectSettings
 
-    // method line 118
-    .method assembly hidebysig specialname 
-           instance default class NAnt.VSNet.VcProjectConfiguration/LinkerConfig get_LinkerConfiguration ()  cil managed 
+    // method line 105
+    .method family virtual hidebysig 
+           instance default void ImportTypeLibrary ()  cil managed 
     {
-        // Method begins at RVA 0x5f48
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x6818
+	// Code size 424 (0x1a8)
+	.maxstack 3
 	.locals init (
-		class NAnt.VSNet.VcProjectConfiguration/LinkerConfig	V_0)
+		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask	V_0,
+		class NAnt.VSNet.ReferenceBase	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class NAnt.VSNet.WrapperReferenceBase	V_3,
+		class [mscorlib]System.IDisposable	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.VcProjectConfiguration/LinkerConfig NAnt.VSNet.VcProjectConfiguration::_linkerConfiguration
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  newobj instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_000e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0013:  ldloc.0 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_001a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_001f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0024:  ldloc.0 
+	IL_0025:  ldarg.0 
+	IL_0026:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_002b:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0035:  ldloc.0 
+	IL_0036:  ldarg.0 
+	IL_0037:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_003c:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_0041:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
+	IL_0046:  ldloc.0 
+	IL_0047:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	IL_004c:  ldloc.0 
+	IL_004d:  ldarg.0 
+	IL_004e:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibrary()
+	IL_0053:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0058:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_TypeLib(class [mscorlib]System.IO.FileInfo)
+	IL_005d:  ldloc.0 
+	IL_005e:  ldarg.0 
+	IL_005f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
+	IL_0064:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0069:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_OutputFile(class [mscorlib]System.IO.FileInfo)
+	IL_006e:  ldloc.0 
+	IL_006f:  ldarg.0 
+	IL_0070:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibraryName()
+	IL_0075:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_Namespace(string)
+	IL_007a:  ldloc.0 
+	IL_007b:  ldc.i4.1 
+	IL_007c:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_SysArray(bool)
+	IL_0081:  ldloc.0 
+	IL_0082:  ldstr "dispret"
+	IL_0087:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_Transform(string)
+	IL_008c:  nop 
+	IL_008d:  ldarg.0 
+	IL_008e:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0093:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
+	IL_0098:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_009d:  stloc.2 
+	.try { // 0
+	  IL_009e:  br IL_00fb
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProjectConfiguration::get_LinkerConfiguration
+	  IL_00a3:  ldloc.2 
+	  IL_00a4:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_00a9:  castclass NAnt.VSNet.ReferenceBase
+	  IL_00ae:  stloc.1 
+	  IL_00af:  nop 
+	  IL_00b0:  ldloc.1 
+	  IL_00b1:  isinst NAnt.VSNet.WrapperReferenceBase
+	  IL_00b6:  stloc.3 
+	  IL_00b7:  ldloc.3 
+	  IL_00b8:  brfalse IL_00dd
 
-    // method line 119
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_ObjFiles ()  cil managed 
-    {
-        // Method begins at RVA 0x5f64
-	// Code size 34 (0x22)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
-	IL_0007:  brtrue IL_0014
+	  IL_00bd:  ldloc.3 
+	  IL_00be:  callvirt instance bool class NAnt.VSNet.WrapperReferenceBase::get_IsCreated()
+	  IL_00c3:  brfalse IL_00dd
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance void class NAnt.VSNet.VcProjectConfiguration::Initialize()
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
-	IL_001a:  stloc.0 
-	IL_001b:  br IL_0020
+	  IL_00c8:  ldloc.3 
+	  IL_00c9:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperTool()
+	  IL_00ce:  ldstr "tlbimp"
+	  IL_00d3:  call bool string::op_Inequality(string, string)
+	  IL_00d8:  brfalse IL_00e3
 
-	IL_0020:  ldloc.0 
-	IL_0021:  ret 
-    } // end of method VcProjectConfiguration::get_ObjFiles
+	  IL_00dd:  nop 
+	  IL_00de:  leave IL_00fb
 
-    // method line 120
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_SourceConfigs ()  cil managed 
-    {
-        // Method begins at RVA 0x5f94
-	// Code size 34 (0x22)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
-	IL_0007:  brtrue IL_0014
+	  IL_00e3:  ldloc.0 
+	  IL_00e4:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::get_References()
+	  IL_00e9:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	  IL_00ee:  ldloc.3 
+	  IL_00ef:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
+	  IL_00f4:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_00f9:  pop 
+	  IL_00fa:  nop 
+	  IL_00fb:  ldloc.2 
+	  IL_00fc:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0101:  brtrue IL_00a3
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance void class NAnt.VSNet.VcProjectConfiguration::Initialize()
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_sourceConfigs
-	IL_001a:  stloc.0 
-	IL_001b:  br IL_0020
+	  IL_0106:  leave IL_0121
 
-	IL_0020:  ldloc.0 
-	IL_0021:  ret 
-    } // end of method VcProjectConfiguration::get_SourceConfigs
+	} // end .try 0
+	finally  { // 0
+	  IL_010b:  ldloc.2 
+	  IL_010c:  isinst [mscorlib]System.IDisposable
+	  IL_0111:  dup 
+	  IL_0112:  stloc.s 4
+	  IL_0114:  brfalse IL_0120
 
-    // method line 121
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_RcConfigs ()  cil managed 
-    {
-        // Method begins at RVA 0x5fc4
-	// Code size 34 (0x22)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
-	IL_0007:  brtrue IL_0014
+	  IL_0119:  ldloc.s 4
+	  IL_011b:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0120:  endfinally 
+	} // end handler 0
+	IL_0121:  ldarg.0 
+	IL_0122:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
+	IL_0127:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyOriginatorKeyFile()
+	IL_012c:  brfalse IL_015e
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance void class NAnt.VSNet.VcProjectConfiguration::Initialize()
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_rcConfigs
-	IL_001a:  stloc.0 
-	IL_001b:  br IL_0020
+	IL_0131:  nop 
+	IL_0132:  ldloc.0 
+	IL_0133:  ldarg.0 
+	IL_0134:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0139:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_013e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0143:  ldarg.0 
+	IL_0144:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
+	IL_0149:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyOriginatorKeyFile()
+	IL_014e:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0153:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0158:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_KeyFile(class [mscorlib]System.IO.FileInfo)
+	IL_015d:  nop 
+	IL_015e:  ldarg.0 
+	IL_015f:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
+	IL_0164:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyKeyContainerName()
+	IL_0169:  brfalse IL_0181
 
-	IL_0020:  ldloc.0 
-	IL_0021:  ret 
-    } // end of method VcProjectConfiguration::get_RcConfigs
+	IL_016e:  nop 
+	IL_016f:  ldloc.0 
+	IL_0170:  ldarg.0 
+	IL_0171:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
+	IL_0176:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyKeyContainerName()
+	IL_017b:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_KeyContainer(string)
+	IL_0180:  nop 
+	IL_0181:  ldloc.0 
+	IL_0182:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0187:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	.try { // 1
+	  IL_018c:  nop 
+	  IL_018d:  ldloc.0 
+	  IL_018e:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_0193:  nop 
+	  IL_0194:  leave IL_01a7
 
-    // method line 122
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_IdlConfigs ()  cil managed 
+	} // end .try 1
+	finally  { // 1
+	  IL_0199:  nop 
+	  IL_019a:  ldloc.0 
+	  IL_019b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_01a0:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	  IL_01a5:  nop 
+	  IL_01a6:  endfinally 
+	} // end handler 1
+	IL_01a7:  ret 
+    } // end of method ManagedWrapperReference::ImportTypeLibrary
+
+    // method line 106
+    .method family virtual hidebysig 
+           instance default void ImportActiveXLibrary ()  cil managed 
     {
-        // Method begins at RVA 0x5ff4
-	// Code size 34 (0x22)
-	.maxstack 1
+        // Method begins at RVA 0x69e8
+	// Code size 328 (0x148)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0)
+		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
-	IL_0007:  brtrue IL_0014
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance void class NAnt.VSNet.VcProjectConfiguration::Initialize()
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_idlConfigs
-	IL_001a:  stloc.0 
-	IL_001b:  br IL_0020
+	IL_0001:  newobj instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_000e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0013:  ldloc.0 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_001a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_001f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0024:  ldloc.0 
+	IL_0025:  ldarg.0 
+	IL_0026:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_002b:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0035:  ldloc.0 
+	IL_0036:  ldarg.0 
+	IL_0037:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_003c:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_0041:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
+	IL_0046:  ldloc.0 
+	IL_0047:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	IL_004c:  ldloc.0 
+	IL_004d:  ldarg.0 
+	IL_004e:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibrary()
+	IL_0053:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0058:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_OcxFile(class [mscorlib]System.IO.FileInfo)
+	IL_005d:  ldloc.0 
+	IL_005e:  ldarg.0 
+	IL_005f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
+	IL_0064:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0069:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_OutputFile(class [mscorlib]System.IO.FileInfo)
+	IL_006e:  ldarg.0 
+	IL_006f:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
+	IL_0074:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyOriginatorKeyFile()
+	IL_0079:  brfalse IL_00ab
 
-	IL_0020:  ldloc.0 
-	IL_0021:  ret 
-    } // end of method VcProjectConfiguration::get_IdlConfigs
+	IL_007e:  nop 
+	IL_007f:  ldloc.0 
+	IL_0080:  ldarg.0 
+	IL_0081:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0086:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_008b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0090:  ldarg.0 
+	IL_0091:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
+	IL_0096:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyOriginatorKeyFile()
+	IL_009b:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_00a0:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_00a5:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_KeyFile(class [mscorlib]System.IO.FileInfo)
+	IL_00aa:  nop 
+	IL_00ab:  ldarg.0 
+	IL_00ac:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
+	IL_00b1:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyKeyContainerName()
+	IL_00b6:  brfalse IL_00ce
 
-    // method line 123
-    .method private hidebysig specialname 
-           instance default string get_TargetPath ()  cil managed 
+	IL_00bb:  nop 
+	IL_00bc:  ldloc.0 
+	IL_00bd:  ldarg.0 
+	IL_00be:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
+	IL_00c3:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyKeyContainerName()
+	IL_00c8:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_KeyContainer(string)
+	IL_00cd:  nop 
+	IL_00ce:  ldarg.0 
+	IL_00cf:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_PrimaryInteropAssembly()
+	IL_00d4:  stloc.1 
+	IL_00d5:  ldloc.1 
+	IL_00d6:  brtrue IL_0108
+
+	IL_00db:  nop 
+	IL_00dc:  ldarg.0 
+	IL_00dd:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_00e2:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ObjectDir()
+	IL_00e7:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00ec:  ldstr "Interop."
+	IL_00f1:  ldarg.0 
+	IL_00f2:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibraryName()
+	IL_00f7:  ldstr ".dll"
+	IL_00fc:  call string string::Concat(string, string, string)
+	IL_0101:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0106:  stloc.1 
+	IL_0107:  nop 
+	IL_0108:  ldloc.1 
+	IL_0109:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_010e:  brfalse IL_0121
+
+	IL_0113:  nop 
+	IL_0114:  ldloc.0 
+	IL_0115:  ldloc.1 
+	IL_0116:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_011b:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_RcwFile(class [mscorlib]System.IO.FileInfo)
+	IL_0120:  nop 
+	IL_0121:  ldloc.0 
+	IL_0122:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0127:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	.try { // 0
+	  IL_012c:  nop 
+	  IL_012d:  ldloc.0 
+	  IL_012e:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_0133:  nop 
+	  IL_0134:  leave IL_0147
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0139:  nop 
+	  IL_013a:  ldloc.0 
+	  IL_013b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_0140:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	  IL_0145:  nop 
+	  IL_0146:  endfinally 
+	} // end handler 0
+	IL_0147:  ret 
+    } // end of method ManagedWrapperReference::ImportActiveXLibrary
+
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.VSNet.ManagedWrapperReference::get_Name () 
+	}
+	.property instance string WrapperTool ()
+	{
+		.get instance default string NAnt.VSNet.ManagedWrapperReference::get_WrapperTool () 
+	}
+	.property instance string WrapperAssembly ()
+	{
+		.get instance default string NAnt.VSNet.ManagedWrapperReference::get_WrapperAssembly () 
+	}
+	.property instance string PrimaryInteropAssembly ()
+	{
+		.get instance default string NAnt.VSNet.ManagedWrapperReference::get_PrimaryInteropAssembly () 
+	}
+	.property instance string TypeLibVersion ()
+	{
+		.get instance default string NAnt.VSNet.ManagedWrapperReference::get_TypeLibVersion () 
+	}
+	.property instance string TypeLibGuid ()
+	{
+		.get instance default string NAnt.VSNet.ManagedWrapperReference::get_TypeLibGuid () 
+	}
+	.property instance string TypeLibLocale ()
+	{
+		.get instance default string NAnt.VSNet.ManagedWrapperReference::get_TypeLibLocale () 
+	}
+	.property instance class NAnt.VSNet.ProjectSettings ProjectSettings ()
+	{
+		.get instance default class NAnt.VSNet.ProjectSettings NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings () 
+	}
+  } // end of class NAnt.VSNet.ManagedWrapperReference
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi abstract beforefieldinit ManagedProjectBase
+  	extends NAnt.VSNet.ProjectBase
+  {
+    .field  private  class [mscorlib]System.Collections.ArrayList _references
+    .field  private initonly  class [mscorlib]System.Collections.Hashtable _sourceFiles
+    .field  private initonly  class [mscorlib]System.Collections.ArrayList _neutralResources
+    .field  private initonly  class [mscorlib]System.Collections.ArrayList _localizedResources
+    .field  private initonly  string _projectPath
+    .field  private initonly  class [mscorlib]System.IO.DirectoryInfo _projectDirectory
+    .field  private initonly  string _webProjectBaseUrl
+    .field  private initonly  class NAnt.VSNet.ProjectSettings _projectSettings
+    .field  private initonly  valuetype NAnt.VSNet.ProjectLocation _projectLocation
+    .field private static literal  string CommandFile = "compile-commands.txt"
+
+    // method line 107
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
     {
-        // Method begins at RVA 0x6024
-	// Code size 344 (0x158)
-	.maxstack 3
+        // Method begins at RVA 0x7850
+	// Code size 1192 (0x4a8)
+	.maxstack 7
 	.locals init (
 		string	V_0,
-		valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType	V_1,
-		string	V_2,
-		string	V_3,
-		string	V_4,
-		string	V_5,
-		string	V_6)
-	IL_0000:  nop 
-	IL_0001:  ldsfld string [mscorlib]System.String::Empty
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType class NAnt.VSNet.VcProjectConfiguration::get_Type()
-	IL_000d:  stloc.1 
-	IL_000e:  ldloc.1 
-	IL_000f:  switch (
-	  IL_010b,
-	  IL_0035,
-	  IL_007b,
-	  IL_0028,
-	  IL_00c1)
-	IL_0028:  ldloc.1 
-	IL_0029:  ldc.i4.s 0x0a
-	IL_002b:  beq IL_0148
-
-	IL_0030:  br IL_014d
+		class [System.Xml]System.Xml.XmlNodeList	V_1,
+		class [System.Xml]System.Xml.XmlElement	V_2,
+		class [mscorlib]System.Collections.IEnumerator	V_3,
+		class NAnt.VSNet.ConfigurationSettings	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		class [System.Xml]System.Xml.XmlNodeList	V_6,
+		class [System.Xml]System.Xml.XmlElement	V_7,
+		class [mscorlib]System.Collections.IEnumerator	V_8,
+		class NAnt.VSNet.ReferenceBase	V_9,
+		class [mscorlib]System.IDisposable	V_10,
+		class [System.Xml]System.Xml.XmlNodeList	V_11,
+		class [System.Xml]System.Xml.XmlElement	V_12,
+		class [mscorlib]System.Collections.IEnumerator	V_13,
+		string	V_14,
+		string	V_15,
+		class NAnt.VSNet.WebDavClient	V_16,
+		class [mscorlib]System.IDisposable	V_17)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.3 
+	IL_0002:  ldarg.s 4
+	IL_0004:  ldarg.s 5
+	IL_0006:  ldarg.s 6
+	IL_0008:  ldarg.s 7
+	IL_000a:  ldarg.s 8
+	IL_000c:  call instance void class NAnt.VSNet.ProjectBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0011:  nop 
+	IL_0012:  ldarg.2 
+	IL_0013:  brtrue IL_0024
 
-	IL_0035:  ldarg.0 
-	IL_0036:  ldstr "VCLinkerTool"
-	IL_003b:  ldstr "OutputFile"
-	IL_0040:  call instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
-	IL_0045:  stloc.2 
-	IL_0046:  ldloc.2 
-	IL_0047:  call bool string::IsNullOrEmpty(string)
-	IL_004c:  brfalse IL_005f
+	IL_0018:  nop 
+	IL_0019:  ldstr "projectPath"
+	IL_001e:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0023:  throw 
+	IL_0024:  ldarg.3 
+	IL_0025:  brtrue IL_0036
 
-	IL_0051:  nop 
-	IL_0052:  ldarg.0 
-	IL_0053:  ldstr "$(OutDir)/$(ProjectName).exe"
-	IL_0058:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	IL_005d:  stloc.2 
-	IL_005e:  nop 
-	IL_005f:  ldarg.0 
-	IL_0060:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_0065:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_006a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_006f:  ldloc.2 
-	IL_0070:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0075:  stloc.0 
-	IL_0076:  br IL_014d
+	IL_002a:  nop 
+	IL_002b:  ldstr "xmlDefinition"
+	IL_0030:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0035:  throw 
+	IL_0036:  ldarg.0 
+	IL_0037:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_003c:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_references
+	IL_0041:  ldarg.0 
+	IL_0042:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0047:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_neutralResources
+	IL_004c:  ldarg.0 
+	IL_004d:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0052:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_localizedResources
+	IL_0057:  ldarg.0 
+	IL_0058:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_005d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
+	IL_0062:  ldarg.0 
+	IL_0063:  ldarg.2 
+	IL_0064:  stfld string NAnt.VSNet.ManagedProjectBase::_projectPath
+	IL_0069:  ldarg.0 
+	IL_006a:  ldarg.0 
+	IL_006b:  ldarg.3 
+	IL_006c:  callvirt instance valuetype NAnt.VSNet.ProjectLocation class NAnt.VSNet.ManagedProjectBase::DetermineProjectLocation(class [System.Xml]System.Xml.XmlElement)
+	IL_0071:  stfld valuetype NAnt.VSNet.ProjectLocation NAnt.VSNet.ManagedProjectBase::_projectLocation
+	IL_0076:  ldarg.0 
+	IL_0077:  call instance bool class NAnt.VSNet.ManagedProjectBase::get_IsWebProject()
+	IL_007c:  brtrue IL_0099
 
-	IL_007b:  ldarg.0 
-	IL_007c:  ldstr "VCLinkerTool"
-	IL_0081:  ldstr "OutputFile"
-	IL_0086:  call instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
-	IL_008b:  stloc.3 
-	IL_008c:  ldloc.3 
-	IL_008d:  call bool string::IsNullOrEmpty(string)
-	IL_0092:  brfalse IL_00a5
+	IL_0081:  nop 
+	IL_0082:  ldarg.0 
+	IL_0083:  ldarg.2 
+	IL_0084:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0089:  call instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
+	IL_008e:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ManagedProjectBase::_projectDirectory
+	IL_0093:  nop 
+	IL_0094:  br IL_012a
 
-	IL_0097:  nop 
-	IL_0098:  ldarg.0 
-	IL_0099:  ldstr "$(OutDir)/$(ProjectName).dll"
-	IL_009e:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	IL_00a3:  stloc.3 
-	IL_00a4:  nop 
-	IL_00a5:  ldarg.0 
-	IL_00a6:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_00ab:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_00b0:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00b5:  ldloc.3 
-	IL_00b6:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0099:  nop 
+	IL_009a:  ldarg.2 
+	IL_009b:  ldstr ":"
+	IL_00a0:  ldstr "_"
+	IL_00a5:  callvirt instance string string::Replace(string, string)
+	IL_00aa:  stloc.0 
+	IL_00ab:  ldloc.0 
+	IL_00ac:  ldstr "/"
+	IL_00b1:  ldstr "_"
+	IL_00b6:  callvirt instance string string::Replace(string, string)
 	IL_00bb:  stloc.0 
-	IL_00bc:  br IL_014d
+	IL_00bc:  ldloc.0 
+	IL_00bd:  ldstr "\\"
+	IL_00c2:  ldstr "_"
+	IL_00c7:  callvirt instance string string::Replace(string, string)
+	IL_00cc:  stloc.0 
+	IL_00cd:  ldarg.0 
+	IL_00ce:  ldarg.0 
+	IL_00cf:  call instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.ProjectBase::get_TemporaryFiles()
+	IL_00d4:  callvirt instance string class [System]System.CodeDom.Compiler.TempFileCollection::get_BasePath()
+	IL_00d9:  ldloc.0 
+	IL_00da:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_00df:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_00e4:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ManagedProjectBase::_projectDirectory
+	IL_00e9:  ldarg.0 
+	IL_00ea:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ManagedProjectBase::_projectDirectory
+	IL_00ef:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_00f4:  brtrue IL_0111
 
-	IL_00c1:  ldarg.0 
-	IL_00c2:  ldstr "VCLibrarianTool"
-	IL_00c7:  ldstr "OutputFile"
-	IL_00cc:  call instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
-	IL_00d1:  stloc.s 4
-	IL_00d3:  ldloc.s 4
-	IL_00d5:  call bool string::IsNullOrEmpty(string)
-	IL_00da:  brfalse IL_00ee
+	IL_00f9:  nop 
+	IL_00fa:  ldarg.0 
+	IL_00fb:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ManagedProjectBase::_projectDirectory
+	IL_0100:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
+	IL_0105:  ldarg.0 
+	IL_0106:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ManagedProjectBase::_projectDirectory
+	IL_010b:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Refresh()
+	IL_0110:  nop 
+	IL_0111:  ldarg.0 
+	IL_0112:  ldarg.2 
+	IL_0113:  ldc.i4.0 
+	IL_0114:  ldarg.2 
+	IL_0115:  ldstr "/"
+	IL_011a:  callvirt instance int32 string::LastIndexOf(string)
+	IL_011f:  callvirt instance string string::Substring(int32, int32)
+	IL_0124:  stfld string NAnt.VSNet.ManagedProjectBase::_webProjectBaseUrl
+	IL_0129:  nop 
+	IL_012a:  ldarg.0 
+	IL_012b:  ldarg.3 
+	IL_012c:  ldarg.3 
+	IL_012d:  ldstr "//Build/Settings"
+	IL_0132:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	IL_0137:  castclass [System.Xml]System.Xml.XmlElement
+	IL_013c:  ldarg.0 
+	IL_013d:  newobj instance void class NAnt.VSNet.ProjectSettings::'.ctor'(class [System.Xml]System.Xml.XmlElement, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ManagedProjectBase)
+	IL_0142:  stfld class NAnt.VSNet.ProjectSettings NAnt.VSNet.ManagedProjectBase::_projectSettings
+	IL_0147:  ldarg.3 
+	IL_0148:  ldstr "//Config"
+	IL_014d:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
+	IL_0152:  stloc.1 
+	IL_0153:  nop 
+	IL_0154:  ldloc.1 
+	IL_0155:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_015a:  stloc.3 
+	.try { // 0
+	  IL_015b:  br IL_0196
 
-	IL_00df:  nop 
-	IL_00e0:  ldarg.0 
-	IL_00e1:  ldstr "$(OutDir)/$(ProjectName).lib"
-	IL_00e6:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	IL_00eb:  stloc.s 4
-	IL_00ed:  nop 
-	IL_00ee:  ldarg.0 
-	IL_00ef:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_00f4:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_00f9:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00fe:  ldloc.s 4
-	IL_0100:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0105:  stloc.0 
-	IL_0106:  br IL_014d
+	  IL_0160:  ldloc.3 
+	  IL_0161:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0166:  castclass [System.Xml]System.Xml.XmlElement
+	  IL_016b:  stloc.2 
+	  IL_016c:  nop 
+	  IL_016d:  ldarg.0 
+	  IL_016e:  ldloc.2 
+	  IL_016f:  ldarg.0 
+	  IL_0170:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_OutputDir()
+	  IL_0175:  newobj instance void class NAnt.VSNet.ConfigurationSettings::'.ctor'(class NAnt.VSNet.ManagedProjectBase, class [System.Xml]System.Xml.XmlElement, class [mscorlib]System.IO.DirectoryInfo)
+	  IL_017a:  stloc.s 4
+	  IL_017c:  ldarg.0 
+	  IL_017d:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_ProjectConfigurations()
+	  IL_0182:  ldloc.s 4
+	  IL_0184:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
+	  IL_0189:  call class NAnt.VSNet.Configuration class NAnt.VSNet.Configuration::Parse(string)
+	  IL_018e:  ldloc.s 4
+	  IL_0190:  callvirt instance void class NAnt.VSNet.ConfigurationDictionary::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.ConfigurationBase)
+	  IL_0195:  nop 
+	  IL_0196:  ldloc.3 
+	  IL_0197:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_019c:  brtrue IL_0160
 
-	IL_010b:  ldarg.0 
-	IL_010c:  ldstr "VCNMakeTool"
-	IL_0111:  ldstr "Output"
-	IL_0116:  call instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
-	IL_011b:  stloc.s 5
-	IL_011d:  ldloc.s 5
-	IL_011f:  call bool string::IsNullOrEmpty(string)
-	IL_0124:  brtrue IL_0143
+	  IL_01a1:  leave IL_01bc
 
-	IL_0129:  nop 
-	IL_012a:  ldarg.0 
-	IL_012b:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_0130:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0135:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_013a:  ldloc.s 5
-	IL_013c:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0141:  stloc.0 
-	IL_0142:  nop 
-	IL_0143:  br IL_014d
+	} // end .try 0
+	finally  { // 0
+	  IL_01a6:  ldloc.3 
+	  IL_01a7:  isinst [mscorlib]System.IDisposable
+	  IL_01ac:  dup 
+	  IL_01ad:  stloc.s 5
+	  IL_01af:  brfalse IL_01bb
 
-	IL_0148:  br IL_014d
+	  IL_01b4:  ldloc.s 5
+	  IL_01b6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01bb:  endfinally 
+	} // end handler 0
+	IL_01bc:  ldarg.3 
+	IL_01bd:  ldstr "//References/Reference"
+	IL_01c2:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
+	IL_01c7:  stloc.s 6
+	IL_01c9:  nop 
+	IL_01ca:  ldloc.s 6
+	IL_01cc:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_01d1:  stloc.s 8
+	.try { // 1
+	  IL_01d3:  br IL_0201
 
-	IL_014d:  ldloc.0 
-	IL_014e:  stloc.s 6
-	IL_0150:  br IL_0155
+	  IL_01d8:  ldloc.s 8
+	  IL_01da:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_01df:  castclass [System.Xml]System.Xml.XmlElement
+	  IL_01e4:  stloc.s 7
+	  IL_01e6:  nop 
+	  IL_01e7:  ldarg.0 
+	  IL_01e8:  ldarg.1 
+	  IL_01e9:  ldloc.s 7
+	  IL_01eb:  callvirt instance class NAnt.VSNet.ReferenceBase class NAnt.VSNet.ManagedProjectBase::CreateReference(class NAnt.VSNet.SolutionBase, class [System.Xml]System.Xml.XmlElement)
+	  IL_01f0:  stloc.s 9
+	  IL_01f2:  ldarg.0 
+	  IL_01f3:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_references
+	  IL_01f8:  ldloc.s 9
+	  IL_01fa:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_01ff:  pop 
+	  IL_0200:  nop 
+	  IL_0201:  ldloc.s 8
+	  IL_0203:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0208:  brtrue IL_01d8
 
-	IL_0155:  ldloc.s 6
-	IL_0157:  ret 
-    } // end of method VcProjectConfiguration::get_TargetPath
+	  IL_020d:  leave IL_0229
 
-    // method line 124
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
+	} // end .try 1
+	finally  { // 1
+	  IL_0212:  ldloc.s 8
+	  IL_0214:  isinst [mscorlib]System.IDisposable
+	  IL_0219:  dup 
+	  IL_021a:  stloc.s 10
+	  IL_021c:  brfalse IL_0228
+
+	  IL_0221:  ldloc.s 10
+	  IL_0223:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0228:  endfinally 
+	} // end handler 1
+	IL_0229:  ldarg.3 
+	IL_022a:  ldstr "//Files/Include/File"
+	IL_022f:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
+	IL_0234:  stloc.s 11
+	IL_0236:  nop 
+	IL_0237:  ldloc.s 11
+	IL_0239:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_023e:  stloc.s 13
+	.try { // 2
+	  IL_0240:  br IL_047f
+
+	  IL_0245:  ldloc.s 13
+	  IL_0247:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_024c:  castclass [System.Xml]System.Xml.XmlElement
+	  IL_0251:  stloc.s 12
+	  IL_0253:  nop 
+	  IL_0254:  ldloc.s 12
+	  IL_0256:  ldstr "BuildAction"
+	  IL_025b:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	  IL_0260:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	  IL_0265:  stloc.s 14
+	  IL_0267:  ldloc.s 12
+	  IL_0269:  ldstr "Link"
+	  IL_026e:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	  IL_0273:  call bool string::IsNullOrEmpty(string)
+	  IL_0278:  brtrue IL_02a7
+
+	  IL_027d:  nop 
+	  IL_027e:  ldarg.0 
+	  IL_027f:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	  IL_0284:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0289:  ldloc.s 12
+	  IL_028b:  ldstr "Link"
+	  IL_0290:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	  IL_0295:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	  IL_029a:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
+	  IL_029f:  stloc.s 15
+	  IL_02a1:  nop 
+	  IL_02a2:  br IL_02cc
+
+	  IL_02a7:  nop 
+	  IL_02a8:  ldarg.0 
+	  IL_02a9:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	  IL_02ae:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_02b3:  ldloc.s 12
+	  IL_02b5:  ldstr "RelPath"
+	  IL_02ba:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	  IL_02bf:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	  IL_02c4:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
+	  IL_02c9:  stloc.s 15
+	  IL_02cb:  nop 
+	  IL_02cc:  ldarg.0 
+	  IL_02cd:  call instance bool class NAnt.VSNet.ManagedProjectBase::get_IsWebProject()
+	  IL_02d2:  brfalse IL_0391
+
+	  IL_02d7:  nop 
+	  IL_02d8:  ldarg.0 
+	  IL_02d9:  ldfld string NAnt.VSNet.ManagedProjectBase::_webProjectBaseUrl
+	  IL_02de:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	  IL_02e3:  newobj instance void class NAnt.VSNet.WebDavClient::'.ctor'(class [System]System.Uri)
+	  IL_02e8:  stloc.s 16
+	  IL_02ea:  ldloc.s 16
+	  IL_02ec:  ldloc.s 15
+	  IL_02ee:  ldloc.s 12
+	  IL_02f0:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	  IL_02f5:  ldstr "RelPath"
+	  IL_02fa:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	  IL_02ff:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	  IL_0304:  callvirt instance void class NAnt.VSNet.WebDavClient::DownloadFile(string, string)
+	  IL_0309:  ldloc.s 14
+	  IL_030b:  brfalse IL_0359
+
+	  IL_0310:  ldloc.s 14
+	  IL_0312:  ldstr "Compile"
+	  IL_0317:  call bool string::op_Equality(string, string)
+	  IL_031c:  brtrue IL_0337
+
+	  IL_0321:  ldloc.s 14
+	  IL_0323:  ldstr "EmbeddedResource"
+	  IL_0328:  call bool string::op_Equality(string, string)
+	  IL_032d:  brtrue IL_034a
+
+	  IL_0332:  br IL_038b
+
+	  IL_0337:  ldarg.0 
+	  IL_0338:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
+	  IL_033d:  ldloc.s 15
+	  IL_033f:  ldnull 
+	  IL_0340:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_0345:  leave IL_038b
+
+	  IL_034a:  ldarg.0 
+	  IL_034b:  ldloc.s 15
+	  IL_034d:  ldloc.s 12
+	  IL_034f:  call instance void class NAnt.VSNet.ManagedProjectBase::RegisterEmbeddedResource(string, class [System.Xml]System.Xml.XmlElement)
+	  IL_0354:  leave IL_038b
+
+	  IL_0359:  ldloc.s 15
+	  IL_035b:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	  IL_0360:  ldarg.0 
+	  IL_0361:  callvirt instance string class NAnt.VSNet.ManagedProjectBase::get_FileExtension()
+	  IL_0366:  ldc.i4.1 
+	  IL_0367:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_036c:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	  IL_0371:  brtrue IL_0386
+
+	  IL_0376:  nop 
+	  IL_0377:  ldarg.0 
+	  IL_0378:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
+	  IL_037d:  ldloc.s 15
+	  IL_037f:  ldnull 
+	  IL_0380:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_0385:  nop 
+	  IL_0386:  leave IL_038b
+
+	  IL_038b:  nop 
+	  IL_038c:  br IL_047e
+
+	  IL_0391:  nop 
+	  IL_0392:  ldloc.s 14
+	  IL_0394:  brfalse IL_03e2
+
+	  IL_0399:  ldloc.s 14
+	  IL_039b:  ldstr "Compile"
+	  IL_03a0:  call bool string::op_Equality(string, string)
+	  IL_03a5:  brtrue IL_03c0
+
+	  IL_03aa:  ldloc.s 14
+	  IL_03ac:  ldstr "EmbeddedResource"
+	  IL_03b1:  call bool string::op_Equality(string, string)
+	  IL_03b6:  brtrue IL_03d3
+
+	  IL_03bb:  br IL_0414
+
+	  IL_03c0:  ldarg.0 
+	  IL_03c1:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
+	  IL_03c6:  ldloc.s 15
+	  IL_03c8:  ldnull 
+	  IL_03c9:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_03ce:  leave IL_0414
+
+	  IL_03d3:  ldarg.0 
+	  IL_03d4:  ldloc.s 15
+	  IL_03d6:  ldloc.s 12
+	  IL_03d8:  call instance void class NAnt.VSNet.ManagedProjectBase::RegisterEmbeddedResource(string, class [System.Xml]System.Xml.XmlElement)
+	  IL_03dd:  leave IL_0414
+
+	  IL_03e2:  ldloc.s 15
+	  IL_03e4:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	  IL_03e9:  ldarg.0 
+	  IL_03ea:  callvirt instance string class NAnt.VSNet.ManagedProjectBase::get_FileExtension()
+	  IL_03ef:  ldc.i4.1 
+	  IL_03f0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_03f5:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	  IL_03fa:  brtrue IL_040f
+
+	  IL_03ff:  nop 
+	  IL_0400:  ldarg.0 
+	  IL_0401:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
+	  IL_0406:  ldloc.s 15
+	  IL_0408:  ldnull 
+	  IL_0409:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_040e:  nop 
+	  IL_040f:  leave IL_0414
+
+	  IL_0414:  ldstr "App.config"
+	  IL_0419:  ldloc.s 12
+	  IL_041b:  ldstr "RelPath"
+	  IL_0420:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	  IL_0425:  ldc.i4.1 
+	  IL_0426:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_042b:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	  IL_0430:  brtrue IL_047d
+
+	  IL_0435:  nop 
+	  IL_0436:  ldarg.0 
+	  IL_0437:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	  IL_043c:  callvirt instance valuetype NAnt.VSNet.ManagedOutputType class NAnt.VSNet.ProjectSettings::get_OutputType()
+	  IL_0441:  ldc.i4.2 
+	  IL_0442:  beq IL_0458
+
+	  IL_0447:  ldarg.0 
+	  IL_0448:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	  IL_044d:  callvirt instance valuetype NAnt.VSNet.ManagedOutputType class NAnt.VSNet.ProjectSettings::get_OutputType()
+	  IL_0452:  ldc.i4.3 
+	  IL_0453:  bne.un IL_047c
+
+	  IL_0458:  nop 
+	  IL_0459:  ldarg.0 
+	  IL_045a:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ProjectBase::get_ExtraOutputFiles()
+	  IL_045f:  ldloc.s 15
+	  IL_0461:  ldarg.0 
+	  IL_0462:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	  IL_0467:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_OutputFileName()
+	  IL_046c:  ldstr ".config"
+	  IL_0471:  call string string::Concat(string, string)
+	  IL_0476:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_047b:  nop 
+	  IL_047c:  nop 
+	  IL_047d:  nop 
+	  IL_047e:  nop 
+	  IL_047f:  ldloc.s 13
+	  IL_0481:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0486:  brtrue IL_0245
+
+	  IL_048b:  leave IL_04a7
+
+	} // end .try 2
+	finally  { // 2
+	  IL_0490:  ldloc.s 13
+	  IL_0492:  isinst [mscorlib]System.IDisposable
+	  IL_0497:  dup 
+	  IL_0498:  stloc.s 17
+	  IL_049a:  brfalse IL_04a6
+
+	  IL_049f:  ldloc.s 17
+	  IL_04a1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_04a6:  endfinally 
+	} // end handler 2
+	IL_04a7:  ret 
+    } // end of method ManagedProjectBase::.ctor
+
+    // method line 108
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectSettings get_ProjectSettings ()  cil managed 
     {
-        // Method begins at RVA 0x6188
-	// Code size 41 (0x29)
-	.maxstack 2
+        // Method begins at RVA 0x7d50
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		class NAnt.VSNet.ProjectSettings	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_000c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0011:  ldarg.0 
-	IL_0012:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::get_IntermediateDir()
-	IL_0017:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_001c:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0021:  stloc.0 
-	IL_0022:  br IL_0027
+	IL_0002:  ldfld class NAnt.VSNet.ProjectSettings NAnt.VSNet.ManagedProjectBase::_projectSettings
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0027:  ldloc.0 
-	IL_0028:  ret 
-    } // end of method VcProjectConfiguration::get_ObjectDir
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedProjectBase::get_ProjectSettings
 
-    // method line 125
-    .method public virtual hidebysig specialname 
-           instance default string get_RelativeOutputDir ()  cil managed 
+    // method line 109
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default string get_FileExtension ()  cil managed 
     {
-        // Method begins at RVA 0x61c0
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x0
+    } // end of method ManagedProjectBase::get_FileExtension
+
+    // method line 110
+    .method private hidebysig specialname 
+           instance default bool get_IsWebProject ()  cil managed 
+    {
+        // Method begins at RVA 0x7d6c
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_RawRelativeOutputDir()
-	IL_0008:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  ldfld string NAnt.VSNet.ManagedProjectBase::_projectPath
+	IL_0007:  call bool class NAnt.VSNet.ProjectFactory::IsUrl(string)
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method VcProjectConfiguration::get_RelativeOutputDir
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ManagedProjectBase::get_IsWebProject
 
-    // method line 126
+    // method line 111
     .method public virtual hidebysig specialname 
-           instance default string get_IntermediateDir ()  cil managed 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x61e4
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x7d8c
+	// Code size 66 (0x42)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		string	V_0,
+		class [System]System.Uri	V_1,
+		string	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_RawIntermediateDir()
-	IL_0008:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  ldfld string NAnt.VSNet.ManagedProjectBase::_projectPath
+	IL_0007:  call bool class NAnt.VSNet.ProjectFactory::IsUrl(string)
+	IL_000c:  brfalse IL_002b
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method VcProjectConfiguration::get_IntermediateDir
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  ldfld string NAnt.VSNet.ManagedProjectBase::_projectPath
+	IL_0018:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	IL_001d:  stloc.1 
+	IL_001e:  ldloc.1 
+	IL_001f:  callvirt instance string class [System]System.Uri::get_LocalPath()
+	IL_0024:  stloc.0 
+	IL_0025:  nop 
+	IL_0026:  br IL_0034
 
-    // method line 127
+	IL_002b:  nop 
+	IL_002c:  ldarg.0 
+	IL_002d:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_0032:  stloc.0 
+	IL_0033:  nop 
+	IL_0034:  ldloc.0 
+	IL_0035:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_003a:  stloc.2 
+	IL_003b:  br IL_0040
+
+	IL_0040:  ldloc.2 
+	IL_0041:  ret 
+    } // end of method ManagedProjectBase::get_Name
+
+    // method line 112
     .method public virtual hidebysig specialname 
-           instance default string get_OutputPath ()  cil managed 
+           instance default string get_ProjectPath ()  cil managed 
     {
-        // Method begins at RVA 0x6208
-	// Code size 34 (0x22)
+        // Method begins at RVA 0x7ddc
+	// Code size 50 (0x32)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
-	IL_0007:  brtrue IL_0014
+	IL_0002:  ldfld string NAnt.VSNet.ManagedProjectBase::_projectPath
+	IL_0007:  call bool class NAnt.VSNet.ProjectFactory::IsUrl(string)
+	IL_000c:  brfalse IL_001e
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance void class NAnt.VSNet.VcProjectConfiguration::Initialize()
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld string NAnt.VSNet.VcProjectConfiguration::_outputPath
-	IL_001a:  stloc.0 
-	IL_001b:  br IL_0020
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  ldfld string NAnt.VSNet.ManagedProjectBase::_projectPath
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_0030
 
-	IL_0020:  ldloc.0 
-	IL_0021:  ret 
-    } // end of method VcProjectConfiguration::get_OutputPath
+	IL_001e:  nop 
+	IL_001f:  ldarg.0 
+	IL_0020:  ldfld string NAnt.VSNet.ManagedProjectBase::_projectPath
+	IL_0025:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
+	IL_002a:  stloc.0 
+	IL_002b:  br IL_0030
 
-    // method line 128
+	IL_0030:  ldloc.0 
+	IL_0031:  ret 
+    } // end of method ManagedProjectBase::get_ProjectPath
+
+    // method line 113
     .method public virtual hidebysig specialname 
-           instance default string get_ReferencesPath ()  cil managed 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ProjectDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x6238
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x7e1c
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_RawReferencesPath()
-	IL_0008:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ManagedProjectBase::_projectDirectory
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method VcProjectConfiguration::get_ReferencesPath
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedProjectBase::get_ProjectDirectory
 
-    // method line 129
-    .method assembly hidebysig 
-           instance default string GetToolSetting (string toolName, string settingName, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler expander)  cil managed 
+    // method line 114
+    .method public virtual hidebysig specialname 
+           instance default valuetype NAnt.VSNet.ProjectLocation get_ProjectLocation ()  cil managed 
     {
-        // Method begins at RVA 0x625c
-	// Code size 19 (0x13)
-	.maxstack 5
+        // Method begins at RVA 0x7e38
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		valuetype NAnt.VSNet.ProjectLocation	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  ldnull 
-	IL_0005:  ldarg.3 
-	IL_0006:  call instance string class NAnt.VSNet.VcProjectConfiguration::GetToolSetting(string, string, string, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler)
-	IL_000b:  stloc.0 
-	IL_000c:  br IL_0011
+	IL_0002:  ldfld valuetype NAnt.VSNet.ProjectLocation NAnt.VSNet.ManagedProjectBase::_projectLocation
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0011:  ldloc.0 
-	IL_0012:  ret 
-    } // end of method VcProjectConfiguration::GetToolSetting
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedProjectBase::get_ProjectLocation
 
-    // method line 130
-    .method public virtual hidebysig 
-           instance default string GetToolSetting (string toolName, string settingName, string defaultValue)  cil managed 
+    // method line 115
+    .method public virtual hidebysig specialname 
+           instance default string get_Guid ()  cil managed 
     {
-        // Method begins at RVA 0x627c
-	// Code size 30 (0x1e)
-	.maxstack 6
+        // Method begins at RVA 0x7e54
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  ldarg.3 
-	IL_0005:  ldarg.0 
-	IL_0006:  ldftn instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	IL_000c:  newobj instance void class NAnt.VSNet.VcConfigurationBase/ExpansionHandler::'.ctor'(object, native int)
-	IL_0011:  call instance string class NAnt.VSNet.VcProjectConfiguration::GetToolSetting(string, string, string, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler)
-	IL_0016:  stloc.0 
-	IL_0017:  br IL_001c
+	IL_0002:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_0007:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_Guid()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_001c:  ldloc.0 
-	IL_001d:  ret 
-    } // end of method VcProjectConfiguration::GetToolSetting
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ManagedProjectBase::get_Guid
 
-    // method line 131
-    .method assembly hidebysig 
-           instance default string GetToolSetting (string toolName, string settingName, string defaultValue, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler expander)  cil managed 
+    // method line 116
+    .method public virtual hidebysig specialname 
+           instance default void set_Guid (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x62a8
-	// Code size 99 (0x63)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.Collections.Hashtable	V_1,
-		string	V_2)
+        // Method begins at RVA 0x7e74
+	// Code size 12 (0xc)
+	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcConfigurationBase::Tools
-	IL_0009:  ldarg.1 
-	IL_000a:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_000f:  castclass [mscorlib]System.Collections.Hashtable
-	IL_0014:  stloc.1 
-	IL_0015:  ldloc.1 
-	IL_0016:  brfalse IL_003f
-
-	IL_001b:  nop 
-	IL_001c:  ldloc.1 
-	IL_001d:  ldarg.2 
-	IL_001e:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0023:  castclass [mscorlib]System.String
-	IL_0028:  stloc.0 
-	IL_0029:  ldloc.0 
-	IL_002a:  brfalse IL_003e
+	IL_0001:  ldstr "It is not allowed to change the GUID of a C#/VB.NET project"
+	IL_0006:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
+	IL_000b:  throw 
+    } // end of method ManagedProjectBase::set_Guid
 
-	IL_002f:  nop 
-	IL_0030:  ldarg.s 4
-	IL_0032:  ldloc.0 
-	IL_0033:  callvirt instance string class NAnt.VSNet.VcConfigurationBase/ExpansionHandler::Invoke(string)
-	IL_0038:  stloc.2 
-	IL_0039:  br IL_0061
+    // method line 117
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.Collections.ArrayList get_References ()  cil managed 
+    {
+        // Method begins at RVA 0x7e84
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.ArrayList	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_references
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_003e:  nop 
-	IL_003f:  ldloc.0 
-	IL_0040:  brtrue IL_005a
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedProjectBase::get_References
 
-	IL_0045:  ldarg.3 
-	IL_0046:  brfalse IL_005a
+    // method line 118
+    .method public virtual hidebysig 
+           instance default bool IsManaged (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x7ea0
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_004b:  nop 
-	IL_004c:  ldarg.s 4
-	IL_004e:  ldarg.3 
-	IL_004f:  callvirt instance string class NAnt.VSNet.VcConfigurationBase/ExpansionHandler::Invoke(string)
-	IL_0054:  stloc.2 
-	IL_0055:  br IL_0061
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ManagedProjectBase::IsManaged
 
-	IL_005a:  ldloc.0 
-	IL_005b:  stloc.2 
-	IL_005c:  br IL_0061
+    // method line 119
+    .method family virtual hidebysig 
+           instance default void Prepare (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x7eb8
+	// Code size 62 (0x3e)
+	.maxstack 2
+	.locals init (
+		class NAnt.VSNet.ConfigurationBase	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
+	IL_0014:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0019:  brtrue IL_0036
 
-	IL_0061:  ldloc.2 
-	IL_0062:  ret 
-    } // end of method VcProjectConfiguration::GetToolSetting
+	IL_001e:  nop 
+	IL_001f:  ldloc.0 
+	IL_0020:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
+	IL_0025:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
+	IL_002a:  ldloc.0 
+	IL_002b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
+	IL_0030:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Refresh()
+	IL_0035:  nop 
+	IL_0036:  ldarg.0 
+	IL_0037:  ldarg.1 
+	IL_0038:  call instance void class NAnt.VSNet.ProjectBase::Prepare(class NAnt.VSNet.Configuration)
+	IL_003d:  ret 
+    } // end of method ManagedProjectBase::Prepare
 
-    // method line 132
+    // method line 120
     .method public virtual hidebysig 
-           instance default class [mscorlib]System.Collections.Hashtable GetToolArguments (string toolName, class NAnt.VSNet.VcArgumentMap argMap, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup ignoreGroup)  cil managed 
+           instance default void GetOutputFiles (class NAnt.VSNet.Configuration solutionConfiguration, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
     {
-        // Method begins at RVA 0x6318
-	// Code size 30 (0x1e)
-	.maxstack 6
+        // Method begins at RVA 0x7f04
+	// Code size 245 (0xf5)
+	.maxstack 3
 	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0)
+		class NAnt.VSNet.ConfigurationSettings	V_0,
+		string	V_1,
+		class [mscorlib]System.Collections.Hashtable	V_2,
+		class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet	V_3,
+		class [mscorlib]System.Collections.IEnumerator	V_4,
+		class [mscorlib]System.IO.FileInfo	V_5,
+		string	V_6,
+		class [mscorlib]System.IDisposable	V_7)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
 	IL_0003:  ldarg.2 
-	IL_0004:  ldarg.3 
-	IL_0005:  ldarg.0 
-	IL_0006:  ldftn instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	IL_000c:  newobj instance void class NAnt.VSNet.VcConfigurationBase/ExpansionHandler::'.ctor'(object, native int)
-	IL_0011:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::GetToolArguments(string, class NAnt.VSNet.VcArgumentMap, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler)
-	IL_0016:  stloc.0 
-	IL_0017:  br IL_001c
+	IL_0004:  call instance void class NAnt.VSNet.ProjectBase::GetOutputFiles(class NAnt.VSNet.Configuration, class [mscorlib]System.Collections.Hashtable)
+	IL_0009:  ldarg.0 
+	IL_000a:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_000f:  ldarg.1 
+	IL_0010:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_0015:  castclass NAnt.VSNet.ConfigurationSettings
+	IL_001a:  stloc.0 
+	IL_001b:  ldloc.0 
+	IL_001c:  brtrue IL_0027
 
-	IL_001c:  ldloc.0 
-	IL_001d:  ret 
-    } // end of method VcProjectConfiguration::GetToolArguments
+	IL_0021:  nop 
+	IL_0022:  br IL_00f4
 
-    // method line 133
-    .method assembly hidebysig 
-           instance default class [mscorlib]System.Collections.Hashtable GetToolArguments (string toolName, class NAnt.VSNet.VcArgumentMap argMap, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup ignoreGroup, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler expander)  cil managed 
-    {
-        // Method begins at RVA 0x6344
-	// Code size 178 (0xb2)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0,
-		class [mscorlib]System.Collections.Hashtable	V_1,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_2,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_3,
-		string	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		class [mscorlib]System.Collections.Hashtable	V_6)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcConfigurationBase::Tools
-	IL_000d:  ldarg.1 
-	IL_000e:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0013:  castclass [mscorlib]System.Collections.Hashtable
-	IL_0018:  stloc.1 
-	IL_0019:  ldloc.1 
-	IL_001a:  brfalse IL_00a7
+	IL_0027:  ldloc.0 
+	IL_0028:  callvirt instance bool class NAnt.VSNet.ConfigurationSettings::get_RegisterForComInterop()
+	IL_002d:  brfalse IL_0057
 
-	IL_001f:  nop 
-	IL_0020:  nop 
-	IL_0021:  ldloc.1 
-	IL_0022:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_0027:  stloc.3 
-	.try { // 0
-	  IL_0028:  br IL_0080
+	IL_0032:  nop 
+	IL_0033:  ldarg.0 
+	IL_0034:  ldloc.0 
+	IL_0035:  call instance string class NAnt.VSNet.ManagedProjectBase::GetTypeLibraryPath(class NAnt.VSNet.ConfigurationSettings)
+	IL_003a:  stloc.1 
+	IL_003b:  ldarg.2 
+	IL_003c:  ldloc.1 
+	IL_003d:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	IL_0042:  brtrue IL_0056
 
-	  IL_002d:  ldloc.3 
-	  IL_002e:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0033:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_0038:  stloc.2 
-	  IL_0039:  nop 
-	  IL_003a:  ldarg.2 
-	  IL_003b:  ldloca.s 2
-	  IL_003d:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_0042:  castclass [mscorlib]System.String
-	  IL_0047:  ldarg.s 4
-	  IL_0049:  ldloca.s 2
-	  IL_004b:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_0050:  castclass [mscorlib]System.String
-	  IL_0055:  callvirt instance string class NAnt.VSNet.VcConfigurationBase/ExpansionHandler::Invoke(string)
-	  IL_005a:  ldarg.3 
-	  IL_005b:  callvirt instance string class NAnt.VSNet.VcArgumentMap::GetArgument(string, string, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup)
-	  IL_0060:  stloc.s 4
-	  IL_0062:  ldloc.s 4
-	  IL_0064:  brfalse IL_007f
+	IL_0047:  nop 
+	IL_0048:  ldarg.2 
+	IL_0049:  ldloc.1 
+	IL_004a:  ldloc.1 
+	IL_004b:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_0050:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_0055:  nop 
+	IL_0056:  nop 
+	IL_0057:  ldarg.0 
+	IL_0058:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ManagedProjectBase::GetLocalizedResources()
+	IL_005d:  stloc.2 
+	IL_005e:  nop 
+	IL_005f:  ldloc.2 
+	IL_0060:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Values()
+	IL_0065:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_006a:  stloc.s 4
+	.try { // 0
+	  IL_006c:  br IL_00cc
 
-	  IL_0069:  nop 
-	  IL_006a:  ldloc.0 
-	  IL_006b:  ldloca.s 2
-	  IL_006d:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_0072:  castclass [mscorlib]System.String
-	  IL_0077:  ldloc.s 4
-	  IL_0079:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_0071:  ldloc.s 4
+	  IL_0073:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0078:  castclass NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet
+	  IL_007d:  stloc.3 
 	  IL_007e:  nop 
-	  IL_007f:  nop 
-	  IL_0080:  ldloc.3 
-	  IL_0081:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0086:  brtrue IL_002d
+	  IL_007f:  ldloc.3 
+	  IL_0080:  ldloc.0 
+	  IL_0081:  ldarg.0 
+	  IL_0082:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	  IL_0087:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::GetSatelliteAssemblyPath(class NAnt.VSNet.ConfigurationSettings, class NAnt.VSNet.ProjectSettings)
+	  IL_008c:  stloc.s 5
+	  IL_008e:  ldloc.s 5
+	  IL_0090:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_0095:  brfalse IL_00cb
 
-	  IL_008b:  leave IL_00a6
+	  IL_009a:  ldarg.2 
+	  IL_009b:  ldloc.s 5
+	  IL_009d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_00a2:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	  IL_00a7:  brtrue IL_00cb
+
+	  IL_00ac:  nop 
+	  IL_00ad:  ldloc.3 
+	  IL_00ae:  ldarg.0 
+	  IL_00af:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	  IL_00b4:  callvirt instance string class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::GetRelativePath(class NAnt.VSNet.ProjectSettings)
+	  IL_00b9:  stloc.s 6
+	  IL_00bb:  ldarg.2 
+	  IL_00bc:  ldloc.s 5
+	  IL_00be:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_00c3:  ldloc.s 6
+	  IL_00c5:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	  IL_00ca:  nop 
+	  IL_00cb:  nop 
+	  IL_00cc:  ldloc.s 4
+	  IL_00ce:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00d3:  brtrue IL_0071
+
+	  IL_00d8:  leave IL_00f4
 
 	} // end .try 0
 	finally  { // 0
-	  IL_0090:  ldloc.3 
-	  IL_0091:  isinst [mscorlib]System.IDisposable
-	  IL_0096:  dup 
-	  IL_0097:  stloc.s 5
-	  IL_0099:  brfalse IL_00a5
+	  IL_00dd:  ldloc.s 4
+	  IL_00df:  isinst [mscorlib]System.IDisposable
+	  IL_00e4:  dup 
+	  IL_00e5:  stloc.s 7
+	  IL_00e7:  brfalse IL_00f3
 
-	  IL_009e:  ldloc.s 5
-	  IL_00a0:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00a5:  endfinally 
+	  IL_00ec:  ldloc.s 7
+	  IL_00ee:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00f3:  endfinally 
 	} // end handler 0
-	IL_00a6:  nop 
-	IL_00a7:  ldloc.0 
-	IL_00a8:  stloc.s 6
-	IL_00aa:  br IL_00af
-
-	IL_00af:  ldloc.s 6
-	IL_00b1:  ret 
-    } // end of method VcProjectConfiguration::GetToolArguments
+	IL_00f4:  ret 
+    } // end of method ManagedProjectBase::GetOutputFiles
 
-    // method line 134
-    .method famorassem virtual hidebysig 
-           instance default string ExpandMacro (string macro)  cil managed 
+    // method line 121
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.BuildResult Build (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x6414
-	// Code size 271 (0x10f)
-	.maxstack 4
+        // Method begins at RVA 0x8018
+	// Code size 1547 (0x60b)
+	.maxstack 7
 	.locals init (
-		string	V_0,
-		string	V_1,
-		char	V_2,
-		char	V_3)
+		bool	V_0,
+		bool	V_1,
+		string	V_2,
+		class NAnt.VSNet.ConfigurationSettings	V_3,
+		valuetype NAnt.VSNet.BuildResult	V_4,
+		string	V_5,
+		class [mscorlib]System.IO.StreamWriter	V_6,
+		class [mscorlib]System.IO.StreamReader	V_7,
+		string	V_8,
+		class [System]System.Diagnostics.ProcessStartInfo	V_9,
+		class [System]System.Diagnostics.Process	V_10,
+		string	V_11,
+		int32	V_12,
+		class [mscorlib]System.Collections.Hashtable	V_13,
+		class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet	V_14,
+		class [mscorlib]System.Collections.IEnumerator	V_15,
+		class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask	V_16,
+		class [mscorlib]System.IO.DirectoryInfo	V_17,
+		class NAnt.VSNet.Resource	V_18,
+		class [mscorlib]System.Collections.IEnumerator	V_19,
+		class [mscorlib]System.IO.FileInfo	V_20,
+		class [NAnt.DotNetTasks]NAnt.DotNet.Types.EmbeddedResource	V_21,
+		class [mscorlib]System.IDisposable	V_22,
+		class [mscorlib]System.IDisposable	V_23,
+		string	V_24,
+		string	V_25,
+		class [mscorlib]System.Collections.Hashtable	V_26,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_27,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_28,
+		string	V_29,
+		string	V_30,
+		class NAnt.VSNet.WebDavClient	V_31,
+		class [mscorlib]System.IO.FileInfo	V_32,
+		class [mscorlib]System.IDisposable	V_33)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0007:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  brfalse IL_0100
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stloc.0 
+	IL_0003:  ldnull 
+	IL_0004:  stloc.2 
+	IL_0005:  ldarg.0 
+	IL_0006:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
+	IL_000b:  callvirt instance void class [NAnt.Core]NAnt.Core.Util.GacCache::RecreateDomain()
+	.try { // 7
+	  IL_0010:  nop 
+	  IL_0011:  ldarg.0 
+	  IL_0012:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	  IL_0017:  ldarg.1 
+	  IL_0018:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	  IL_001d:  castclass NAnt.VSNet.ConfigurationSettings
+	  IL_0022:  stloc.3 
+	  IL_0023:  ldarg.0 
+	  IL_0024:  ldloc.3 
+	  IL_0025:  call instance bool class NAnt.VSNet.ManagedProjectBase::PreBuild(class NAnt.VSNet.ConfigurationSettings)
+	  IL_002a:  brtrue IL_0038
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ldstr "targetname"
-	IL_0019:  call bool string::op_Equality(string, string)
-	IL_001e:  brtrue IL_0068
+	  IL_002f:  nop 
+	  IL_0030:  ldc.i4.0 
+	  IL_0031:  stloc.s 4
+	  IL_0033:  leave IL_0608
 
-	IL_0023:  ldloc.0 
-	IL_0024:  ldstr "targetpath"
-	IL_0029:  call bool string::op_Equality(string, string)
-	IL_002e:  brtrue IL_007e
+	  IL_0038:  ldarg.0 
+	  IL_0039:  ldloc.3 
+	  IL_003a:  ldarg.1 
+	  IL_003b:  call instance void class NAnt.VSNet.ManagedProjectBase::UnregisterForComInterop(class NAnt.VSNet.ConfigurationSettings, class NAnt.VSNet.Configuration)
+	  IL_0040:  ldarg.0 
+	  IL_0041:  call instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.ProjectBase::get_TemporaryFiles()
+	  IL_0046:  callvirt instance string class [System]System.CodeDom.Compiler.TempFileCollection::get_BasePath()
+	  IL_004b:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	  IL_0050:  brtrue IL_0068
 
-	IL_0033:  ldloc.0 
-	IL_0034:  ldstr "targetext"
-	IL_0039:  call bool string::op_Equality(string, string)
-	IL_003e:  brtrue IL_008a
+	  IL_0055:  nop 
+	  IL_0056:  ldarg.0 
+	  IL_0057:  call instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.ProjectBase::get_TemporaryFiles()
+	  IL_005c:  callvirt instance string class [System]System.CodeDom.Compiler.TempFileCollection::get_BasePath()
+	  IL_0061:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	  IL_0066:  pop 
+	  IL_0067:  nop 
+	  IL_0068:  ldarg.0 
+	  IL_0069:  ldarg.1 
+	  IL_006a:  call instance void class NAnt.VSNet.ManagedProjectBase::CompileResXFiles(class NAnt.VSNet.Configuration)
+	  IL_006f:  ldarg.0 
+	  IL_0070:  ldarg.1 
+	  IL_0071:  call instance bool class NAnt.VSNet.ManagedProjectBase::CheckUpToDate(class NAnt.VSNet.Configuration)
+	  IL_0076:  brfalse IL_0094
 
-	IL_0043:  ldloc.0 
-	IL_0044:  ldstr "targetfilename"
-	IL_0049:  call bool string::op_Equality(string, string)
-	IL_004e:  brtrue IL_009b
+	  IL_007b:  nop 
+	  IL_007c:  ldarg.0 
+	  IL_007d:  ldc.i4 2000
+	  IL_0082:  ldstr "Project is up-to-date."
+	  IL_0087:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	  IL_008c:  ldc.i4.0 
+	  IL_008d:  stloc.1 
+	  IL_008e:  nop 
+	  IL_008f:  br IL_025c
 
-	IL_0053:  ldloc.0 
-	IL_0054:  ldstr "targetdir"
-	IL_0059:  call bool string::op_Equality(string, string)
-	IL_005e:  brtrue IL_00ac
+	  IL_0094:  nop 
+	  IL_0095:  ldarg.0 
+	  IL_0096:  ldarg.1 
+	  IL_0097:  callvirt instance void class NAnt.VSNet.ProjectBase::Prepare(class NAnt.VSNet.Configuration)
+	  IL_009c:  ldarg.0 
+	  IL_009d:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
+	  IL_00a2:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
+	  IL_00a7:  brtrue IL_00c1
 
-	IL_0063:  br IL_0100
+	  IL_00ac:  nop 
+	  IL_00ad:  call string class [mscorlib]System.IO.Path::GetTempFileName()
+	  IL_00b2:  stloc.2 
+	  IL_00b3:  ldarg.0 
+	  IL_00b4:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
+	  IL_00b9:  ldloc.2 
+	  IL_00ba:  ldnull 
+	  IL_00bb:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_00c0:  nop 
+	  IL_00c1:  ldarg.0 
+	  IL_00c2:  call instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.ProjectBase::get_TemporaryFiles()
+	  IL_00c7:  callvirt instance string class [System]System.CodeDom.Compiler.TempFileCollection::get_BasePath()
+	  IL_00cc:  ldstr "compile-commands.txt"
+	  IL_00d1:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	  IL_00d6:  stloc.s 5
+	  IL_00d8:  ldloc.s 5
+	  IL_00da:  call class [mscorlib]System.IO.StreamWriter class [mscorlib]System.IO.File::CreateText(string)
+	  IL_00df:  stloc.s 6
+	  .try { // 0
+	    IL_00e1:  nop 
+	    IL_00e2:  ldarg.0 
+	    IL_00e3:  ldloc.s 6
+	    IL_00e5:  ldarg.1 
+	    IL_00e6:  callvirt instance void class NAnt.VSNet.ManagedProjectBase::WriteCompilerOptions(class [mscorlib]System.IO.StreamWriter, class NAnt.VSNet.Configuration)
+	    IL_00eb:  nop 
+	    IL_00ec:  leave IL_0100
 
-	IL_0068:  ldarg.0 
-	IL_0069:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_TargetPath()
-	IL_006e:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_0073:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_0078:  stloc.1 
-	IL_0079:  br IL_010d
+	  } // end .try 0
+	  finally  { // 0
+	    IL_00f1:  ldloc.s 6
+	    IL_00f3:  brfalse IL_00ff
 
-	IL_007e:  ldarg.0 
-	IL_007f:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_TargetPath()
-	IL_0084:  stloc.1 
-	IL_0085:  br IL_010d
+	    IL_00f8:  ldloc.s 6
+	    IL_00fa:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_00ff:  endfinally 
+	  } // end handler 0
+	  IL_0100:  ldarg.0 
+	  IL_0101:  ldc.i4 2000
+	  IL_0106:  ldstr "Starting compiler..."
+	  IL_010b:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	  IL_0110:  ldarg.0 
+	  IL_0111:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	  IL_0116:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	  IL_011b:  brfalse IL_01b0
 
-	IL_008a:  ldarg.0 
-	IL_008b:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_TargetPath()
-	IL_0090:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	IL_0095:  stloc.1 
-	IL_0096:  br IL_010d
+	  IL_0120:  nop 
+	  IL_0121:  ldloc.s 5
+	  IL_0123:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string)
+	  IL_0128:  stloc.s 7
+	  .try { // 2
+	    IL_012a:  nop 
+	    IL_012b:  ldarg.0 
+	    IL_012c:  ldc.i4 2000
+	    IL_0131:  ldstr "Commands:"
+	    IL_0136:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	    IL_013b:  ldarg.0 
+	    IL_013c:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	    IL_0141:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	    IL_0146:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	    .try { // 1
+	      IL_014b:  nop 
+	      IL_014c:  nop 
+	      IL_014d:  nop 
+	      IL_014e:  ldloc.s 7
+	      IL_0150:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	      IL_0155:  stloc.s 8
+	      IL_0157:  ldloc.s 8
+	      IL_0159:  brtrue IL_0164
 
-	IL_009b:  ldarg.0 
-	IL_009c:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_TargetPath()
-	IL_00a1:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_00a6:  stloc.1 
-	IL_00a7:  br IL_010d
+	      IL_015e:  nop 
+	      IL_015f:  leave IL_0181
 
-	IL_00ac:  ldarg.0 
-	IL_00ad:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_TargetPath()
-	IL_00b2:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_00b7:  ldarg.0 
-	IL_00b8:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_TargetPath()
-	IL_00bd:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_00c2:  stloc.2 
-	IL_00c3:  ldloca.s 2
-	IL_00c5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00ca:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
-	IL_00cf:  callvirt instance bool string::EndsWith(string)
-	IL_00d4:  brfalse IL_00e3
+	      IL_0164:  ldarg.0 
+	      IL_0165:  ldc.i4 2000
+	      IL_016a:  ldstr "    "
+	      IL_016f:  ldloc.s 8
+	      IL_0171:  call string string::Concat(string, string)
+	      IL_0176:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	      IL_017b:  nop 
+	      IL_017c:  br IL_014c
 
-	IL_00d9:  ldsfld string [mscorlib]System.String::Empty
-	IL_00de:  br IL_00f5
+	      IL_0181:  nop 
+	      IL_0182:  leave IL_019a
 
-	IL_00e3:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_00e8:  stloc.3 
-	IL_00e9:  ldloca.s 3
-	IL_00eb:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00f0:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
-	IL_00f5:  call string string::Concat(string, string)
-	IL_00fa:  stloc.1 
-	IL_00fb:  br IL_010d
+	    } // end .try 1
+	    finally  { // 1
+	      IL_0187:  nop 
+	      IL_0188:  ldarg.0 
+	      IL_0189:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	      IL_018e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	      IL_0193:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	      IL_0198:  nop 
+	      IL_0199:  endfinally 
+	    } // end handler 1
+	    IL_019a:  nop 
+	    IL_019b:  leave IL_01af
 
-	IL_0100:  ldarg.0 
-	IL_0101:  ldarg.1 
-	IL_0102:  call instance string class NAnt.VSNet.VcConfigurationBase::ExpandMacro(string)
-	IL_0107:  stloc.1 
-	IL_0108:  br IL_010d
+	  } // end .try 2
+	  finally  { // 2
+	    IL_01a0:  ldloc.s 7
+	    IL_01a2:  brfalse IL_01ae
 
-	IL_010d:  ldloc.1 
-	IL_010e:  ret 
-    } // end of method VcProjectConfiguration::ExpandMacro
+	    IL_01a7:  ldloc.s 7
+	    IL_01a9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_01ae:  endfinally 
+	  } // end handler 2
+	  IL_01af:  nop 
+	  IL_01b0:  ldarg.0 
+	  IL_01b1:  ldloc.3 
+	  IL_01b2:  ldloc.s 5
+	  IL_01b4:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class NAnt.VSNet.ManagedProjectBase::GetProcessStartInfo(class NAnt.VSNet.ConfigurationBase, string)
+	  IL_01b9:  stloc.s 9
+	  IL_01bb:  ldloc.s 9
+	  IL_01bd:  ldc.i4.0 
+	  IL_01be:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_UseShellExecute(bool)
+	  IL_01c3:  ldloc.s 9
+	  IL_01c5:  ldc.i4.1 
+	  IL_01c6:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(bool)
+	  IL_01cb:  ldloc.s 9
+	  IL_01cd:  call class [System]System.Diagnostics.Process class [System]System.Diagnostics.Process::Start(class [System]System.Diagnostics.ProcessStartInfo)
+	  IL_01d2:  stloc.s 10
+	  IL_01d4:  nop 
+	  IL_01d5:  nop 
+	  IL_01d6:  ldloc.s 10
+	  IL_01d8:  callvirt instance class [mscorlib]System.IO.StreamReader class [System]System.Diagnostics.Process::get_StandardOutput()
+	  IL_01dd:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	  IL_01e2:  stloc.s 11
+	  IL_01e4:  ldloc.s 11
+	  IL_01e6:  brtrue IL_01f1
 
-    // method line 135
-    .method private hidebysig 
-           instance default void Initialize ()  cil managed 
-    {
-        // Method begins at RVA 0x6530
-	// Code size 831 (0x33f)
-	.maxstack 5
-	.locals init (
-		class NAnt.VSNet.VcProject	V_0,
-		string	V_1,
-		object	V_2,
-		class [mscorlib]System.Collections.IEnumerator	V_3,
-		string	V_4,
-		class NAnt.VSNet.VcConfigurationBase	V_5,
-		class [mscorlib]System.Collections.Hashtable	V_6,
-		class NAnt.VSNet.VcFileConfiguration	V_7,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_8,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_9,
-		class [mscorlib]System.IDisposable	V_10,
-		string	V_11,
-		class [mscorlib]System.IDisposable	V_12,
-		valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType	V_13,
-		string	V_14)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_0007:  castclass NAnt.VSNet.VcProject
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0013:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0018:  ldarg.0 
-	IL_0019:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::get_IntermediateDir()
-	IL_001e:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0023:  stloc.1 
-	IL_0024:  nop 
-	IL_0025:  ldloc.0 
-	IL_0026:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.VcProject::get_ProjectFiles()
-	IL_002b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0030:  stloc.3 
-	.try { // 1
-	  IL_0031:  br IL_0284
+	  IL_01eb:  nop 
+	  IL_01ec:  leave IL_0204
 
-	  IL_0036:  ldloc.3 
-	  IL_0037:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_003c:  stloc.2 
-	  IL_003d:  nop 
-	  IL_003e:  ldnull 
-	  IL_003f:  stloc.s 4
-	  IL_0041:  ldnull 
-	  IL_0042:  stloc.s 5
-	  IL_0044:  ldloc.2 
-	  IL_0045:  isinst [mscorlib]System.String
-	  IL_004a:  brfalse IL_005e
+	  IL_01f1:  ldarg.0 
+	  IL_01f2:  ldc.i4 3000
+	  IL_01f7:  ldloc.s 11
+	  IL_01f9:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	  IL_01fe:  nop 
+	  IL_01ff:  br IL_01d4
 
-	  IL_004f:  nop 
-	  IL_0050:  ldloc.2 
-	  IL_0051:  castclass [mscorlib]System.String
-	  IL_0056:  stloc.s 4
-	  IL_0058:  nop 
-	  IL_0059:  br IL_0104
+	  IL_0204:  ldloc.s 10
+	  IL_0206:  callvirt instance void class [System]System.Diagnostics.Process::WaitForExit()
+	  IL_020b:  ldloc.s 10
+	  IL_020d:  callvirt instance int32 class [System]System.Diagnostics.Process::get_ExitCode()
+	  IL_0212:  stloc.s 12
+	  IL_0214:  ldarg.0 
+	  IL_0215:  ldc.i4 2000
+	  IL_021a:  ldstr "{0}! (exit code = {1})"
+	  IL_021f:  ldc.i4.2 
+	  IL_0220:  newarr [mscorlib]System.Object
+	  IL_0225:  dup 
+	  IL_0226:  ldc.i4.0 
+	  IL_0227:  ldloc.s 12
+	  IL_0229:  brtrue IL_0238
 
-	  IL_005e:  nop 
-	  IL_005f:  ldloc.2 
-	  IL_0060:  castclass [mscorlib]System.Collections.Hashtable
-	  IL_0065:  stloc.s 6
-	  IL_0067:  ldloc.s 6
-	  IL_0069:  ldarg.0 
-	  IL_006a:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
-	  IL_006f:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_0074:  castclass NAnt.VSNet.VcFileConfiguration
-	  IL_0079:  stloc.s 7
-	  IL_007b:  ldloc.s 7
-	  IL_007d:  brfalse IL_0094
+	  IL_022e:  ldstr "Success"
+	  IL_0233:  br IL_023d
 
-	  IL_0082:  ldloc.s 7
-	  IL_0084:  callvirt instance bool class NAnt.VSNet.VcFileConfiguration::get_ExcludeFromBuild()
-	  IL_0089:  brfalse IL_0094
+	  IL_0238:  ldstr "Failure"
+	  IL_023d:  stelem.ref 
+	  IL_023e:  dup 
+	  IL_023f:  ldc.i4.1 
+	  IL_0240:  ldloc.s 12
+	  IL_0242:  box [mscorlib]System.Int32
+	  IL_0247:  stelem.ref 
+	  IL_0248:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_024d:  ldloc.s 12
+	  IL_024f:  ldc.i4.0 
+	  IL_0250:  ble IL_0259
 
-	  IL_008e:  nop 
-	  IL_008f:  leave IL_0284
+	  IL_0255:  nop 
+	  IL_0256:  ldc.i4.0 
+	  IL_0257:  stloc.0 
+	  IL_0258:  nop 
+	  IL_0259:  ldc.i4.1 
+	  IL_025a:  stloc.1 
+	  IL_025b:  nop 
+	  IL_025c:  ldarg.0 
+	  IL_025d:  ldc.i4 2000
+	  IL_0262:  ldstr "Building satellite assemblies..."
+	  IL_0267:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	  IL_026c:  ldarg.0 
+	  IL_026d:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ManagedProjectBase::GetLocalizedResources()
+	  IL_0272:  stloc.s 13
+	  IL_0274:  nop 
+	  IL_0275:  ldloc.s 13
+	  IL_0277:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Values()
+	  IL_027c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	  IL_0281:  stloc.s 15
+	  .try { // 5
+	    IL_0283:  br IL_0437
 
-	  IL_0094:  ldloc.s 7
-	  IL_0096:  stloc.s 5
-	  IL_0098:  ldloc.s 7
-	  IL_009a:  brtrue IL_00fa
+	    IL_0288:  ldloc.s 15
+	    IL_028a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_028f:  castclass NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet
+	    IL_0294:  stloc.s 14
+	    IL_0296:  nop 
+	    IL_0297:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask::'.ctor'()
+	    IL_029c:  stloc.s 16
+	    IL_029e:  ldloc.s 16
+	    IL_02a0:  ldarg.0 
+	    IL_02a1:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	    IL_02a6:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	    IL_02ab:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	    IL_02b0:  ldloc.s 16
+	    IL_02b2:  ldarg.0 
+	    IL_02b3:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	    IL_02b8:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	    IL_02bd:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	    IL_02c2:  ldloc.s 16
+	    IL_02c4:  ldarg.0 
+	    IL_02c5:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	    IL_02ca:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	    IL_02cf:  ldloc.s 16
+	    IL_02d1:  ldloc.3 
+	    IL_02d2:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	    IL_02d7:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	    IL_02dc:  ldloc.s 16
+	    IL_02de:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	    IL_02e3:  ldloc.s 14
+	    IL_02e5:  ldloc.3 
+	    IL_02e6:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::GetBuildDirectory(class NAnt.VSNet.ConfigurationSettings)
+	    IL_02eb:  stloc.s 17
+	    IL_02ed:  ldloc.s 17
+	    IL_02ef:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	    IL_02f4:  brtrue IL_0302
 
-	  IL_009f:  nop 
-	  IL_00a0:  nop 
-	  IL_00a1:  ldloc.s 6
-	  IL_00a3:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	  IL_00a8:  stloc.s 9
-	  .try { // 0
-	    IL_00aa:  br IL_00d1
+	    IL_02f9:  nop 
+	    IL_02fa:  ldloc.s 17
+	    IL_02fc:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
+	    IL_0301:  nop 
+	    IL_0302:  ldloc.s 16
+	    IL_0304:  ldloc.s 14
+	    IL_0306:  ldloc.3 
+	    IL_0307:  ldarg.0 
+	    IL_0308:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	    IL_030d:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::GetSatelliteAssemblyPath(class NAnt.VSNet.ConfigurationSettings, class NAnt.VSNet.ProjectSettings)
+	    IL_0312:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask::set_OutputFile(class [mscorlib]System.IO.FileInfo)
+	    IL_0317:  ldloc.s 16
+	    IL_0319:  ldstr "lib"
+	    IL_031e:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask::set_OutputTarget(string)
+	    IL_0323:  ldloc.s 16
+	    IL_0325:  ldloc.s 14
+	    IL_0327:  callvirt instance class [mscorlib]System.Globalization.CultureInfo class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::get_Culture()
+	    IL_032c:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	    IL_0331:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Culture(string)
+	    IL_0336:  ldloc.s 16
+	    IL_0338:  ldloc.3 
+	    IL_0339:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
+	    IL_033e:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	    IL_0343:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask::set_TemplateFile(class [mscorlib]System.IO.FileInfo)
+	    IL_0348:  nop 
+	    IL_0349:  ldloc.s 14
+	    IL_034b:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::get_Resources()
+	    IL_0350:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	    IL_0355:  stloc.s 19
+	    .try { // 3
+	      IL_0357:  br IL_03bd
 
-	    IL_00af:  ldloc.s 9
-	    IL_00b1:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_00b6:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	    IL_00bb:  stloc.s 8
-	    IL_00bd:  nop 
-	    IL_00be:  ldloca.s 8
-	    IL_00c0:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	    IL_00c5:  castclass NAnt.VSNet.VcFileConfiguration
-	    IL_00ca:  stloc.s 7
-	    IL_00cc:  leave IL_00dd
+	      IL_035c:  ldloc.s 19
+	      IL_035e:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	      IL_0363:  castclass NAnt.VSNet.Resource
+	      IL_0368:  stloc.s 18
+	      IL_036a:  nop 
+	      IL_036b:  ldnull 
+	      IL_036c:  stloc.s 20
+	      IL_036e:  ldloc.s 18
+	      IL_0370:  callvirt instance bool class NAnt.VSNet.Resource::get_IsResX()
+	      IL_0375:  brfalse IL_038b
 
-	    IL_00d1:  ldloc.s 9
-	    IL_00d3:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_00d8:  brtrue IL_00af
+	      IL_037a:  nop 
+	      IL_037b:  ldloc.s 18
+	      IL_037d:  ldarg.1 
+	      IL_037e:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::GetCompiledResourceFile(class NAnt.VSNet.Configuration)
+	      IL_0383:  stloc.s 20
+	      IL_0385:  nop 
+	      IL_0386:  br IL_0397
 
-	    IL_00dd:  leave IL_00f9
+	      IL_038b:  nop 
+	      IL_038c:  ldloc.s 18
+	      IL_038e:  ldarg.1 
+	      IL_038f:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::Compile(class NAnt.VSNet.Configuration)
+	      IL_0394:  stloc.s 20
+	      IL_0396:  nop 
+	      IL_0397:  ldloc.s 20
+	      IL_0399:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	      IL_039e:  ldloc.s 18
+	      IL_03a0:  ldarg.1 
+	      IL_03a1:  callvirt instance string class NAnt.VSNet.Resource::GetManifestResourceName(class NAnt.VSNet.Configuration)
+	      IL_03a6:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.EmbeddedResource::'.ctor'(string, string)
+	      IL_03ab:  stloc.s 21
+	      IL_03ad:  ldloc.s 16
+	      IL_03af:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.EmbeddedResourceCollection class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EmbeddedResources()
+	      IL_03b4:  ldloc.s 21
+	      IL_03b6:  callvirt instance int32 class [NAnt.DotNetTasks]NAnt.DotNet.Types.EmbeddedResourceCollection::Add(class [NAnt.DotNetTasks]NAnt.DotNet.Types.EmbeddedResource)
+	      IL_03bb:  pop 
+	      IL_03bc:  nop 
+	      IL_03bd:  ldloc.s 19
+	      IL_03bf:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	      IL_03c4:  brtrue IL_035c
 
-	  } // end .try 0
-	  finally  { // 0
-	    IL_00e2:  ldloc.s 9
-	    IL_00e4:  isinst [mscorlib]System.IDisposable
-	    IL_00e9:  dup 
-	    IL_00ea:  stloc.s 10
-	    IL_00ec:  brfalse IL_00f8
+	      IL_03c9:  leave IL_03e5
 
-	    IL_00f1:  ldloc.s 10
-	    IL_00f3:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_00f8:  endfinally 
-	  } // end handler 0
-	  IL_00f9:  nop 
-	  IL_00fa:  ldloc.s 7
-	  IL_00fc:  callvirt instance string class NAnt.VSNet.VcFileConfiguration::get_RelativePath()
-	  IL_0101:  stloc.s 4
-	  IL_0103:  nop 
-	  IL_0104:  ldloc.s 4
-	  IL_0106:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	  IL_010b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0110:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	  IL_0115:  stloc.s 11
-	  IL_0117:  ldloc.s 5
-	  IL_0119:  brtrue IL_0123
+	    } // end .try 3
+	    finally  { // 3
+	      IL_03ce:  ldloc.s 19
+	      IL_03d0:  isinst [mscorlib]System.IDisposable
+	      IL_03d5:  dup 
+	      IL_03d6:  stloc.s 22
+	      IL_03d8:  brfalse IL_03e4
 
-	  IL_011e:  nop 
-	  IL_011f:  ldarg.0 
-	  IL_0120:  stloc.s 5
-	  IL_0122:  nop 
-	  IL_0123:  ldloc.s 11
-	  IL_0125:  brfalse IL_0283
+	      IL_03dd:  ldloc.s 22
+	      IL_03df:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	      IL_03e4:  endfinally 
+	    } // end handler 3
+	    IL_03e5:  ldarg.0 
+	    IL_03e6:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	    IL_03eb:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	    IL_03f0:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	    .try { // 4
+	      IL_03f5:  nop 
+	      IL_03f6:  ldarg.0 
+	      IL_03f7:  ldc.i4 2000
+	      IL_03fc:  ldstr " - {0}"
+	      IL_0401:  ldc.i4.1 
+	      IL_0402:  newarr [mscorlib]System.Object
+	      IL_0407:  dup 
+	      IL_0408:  ldc.i4.0 
+	      IL_0409:  ldloc.s 16
+	      IL_040b:  callvirt instance string class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Culture()
+	      IL_0410:  stelem.ref 
+	      IL_0411:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	      IL_0416:  ldloc.s 16
+	      IL_0418:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	      IL_041d:  nop 
+	      IL_041e:  leave IL_0436
 
-	  IL_012a:  ldloc.s 11
-	  IL_012c:  ldstr ".cpp"
-	  IL_0131:  call bool string::op_Equality(string, string)
-	  IL_0136:  brtrue IL_0184
+	    } // end .try 4
+	    finally  { // 4
+	      IL_0423:  nop 
+	      IL_0424:  ldarg.0 
+	      IL_0425:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	      IL_042a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	      IL_042f:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	      IL_0434:  nop 
+	      IL_0435:  endfinally 
+	    } // end handler 4
+	    IL_0436:  nop 
+	    IL_0437:  ldloc.s 15
+	    IL_0439:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_043e:  brtrue IL_0288
 
-	  IL_013b:  ldloc.s 11
-	  IL_013d:  ldstr ".c"
-	  IL_0142:  call bool string::op_Equality(string, string)
-	  IL_0147:  brtrue IL_0184
+	    IL_0443:  leave IL_045f
 
-	  IL_014c:  ldloc.s 11
-	  IL_014e:  ldstr ".rc"
-	  IL_0153:  call bool string::op_Equality(string, string)
-	  IL_0158:  brtrue IL_01e1
+	  } // end .try 5
+	  finally  { // 5
+	    IL_0448:  ldloc.s 15
+	    IL_044a:  isinst [mscorlib]System.IDisposable
+	    IL_044f:  dup 
+	    IL_0450:  stloc.s 23
+	    IL_0452:  brfalse IL_045e
 
-	  IL_015d:  ldloc.s 11
-	  IL_015f:  ldstr ".idl"
-	  IL_0164:  call bool string::op_Equality(string, string)
-	  IL_0169:  brtrue IL_023d
+	    IL_0457:  ldloc.s 23
+	    IL_0459:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_045e:  endfinally 
+	  } // end handler 5
+	  IL_045f:  ldloc.3 
+	  IL_0460:  callvirt instance bool class NAnt.VSNet.ConfigurationSettings::get_RegisterForComInterop()
+	  IL_0465:  brfalse IL_04ab
 
-	  IL_016e:  ldloc.s 11
-	  IL_0170:  ldstr ".odl"
-	  IL_0175:  call bool string::op_Equality(string, string)
-	  IL_017a:  brtrue IL_023d
+	  IL_046a:  nop 
+	  IL_046b:  ldarg.0 
+	  IL_046c:  ldloc.3 
+	  IL_046d:  call instance string class NAnt.VSNet.ManagedProjectBase::GetTypeLibraryPath(class NAnt.VSNet.ConfigurationSettings)
+	  IL_0472:  stloc.s 24
+	  IL_0474:  ldarg.0 
+	  IL_0475:  ldloc.3 
+	  IL_0476:  ldarg.1 
+	  IL_0477:  ldloc.s 24
+	  IL_0479:  call instance void class NAnt.VSNet.ManagedProjectBase::RegisterForComInterop(class NAnt.VSNet.ConfigurationSettings, class NAnt.VSNet.Configuration, string)
+	  IL_047e:  ldloc.3 
+	  IL_047f:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
+	  IL_0484:  ldstr ".tlb"
+	  IL_0489:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
+	  IL_048e:  stloc.s 25
+	  IL_0490:  ldarg.0 
+	  IL_0491:  ldloc.s 24
+	  IL_0493:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_0498:  ldloc.s 25
+	  IL_049a:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	  IL_049f:  ldarg.0 
+	  IL_04a0:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	  IL_04a5:  call instance void class NAnt.VSNet.ProjectBase::CopyFile(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo, class [NAnt.Core]NAnt.Core.Task)
+	  IL_04aa:  nop 
+	  IL_04ab:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	  IL_04b0:  stloc.s 26
+	  IL_04b2:  ldarg.0 
+	  IL_04b3:  ldarg.1 
+	  IL_04b4:  ldloc.s 26
+	  IL_04b6:  callvirt instance void class NAnt.VSNet.ProjectBase::GetOutputFiles(class NAnt.VSNet.Configuration, class [mscorlib]System.Collections.Hashtable)
+	  IL_04bb:  nop 
+	  IL_04bc:  ldloc.s 26
+	  IL_04be:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	  IL_04c3:  stloc.s 28
+	  .try { // 6
+	    IL_04c5:  br IL_056f
 
-	  IL_017f:  br IL_0283
+	    IL_04ca:  ldloc.s 28
+	    IL_04cc:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_04d1:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	    IL_04d6:  stloc.s 27
+	    IL_04d8:  nop 
+	    IL_04d9:  ldloca.s 27
+	    IL_04db:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	    IL_04e0:  castclass [mscorlib]System.String
+	    IL_04e5:  stloc.s 29
+	    IL_04e7:  ldloca.s 27
+	    IL_04e9:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	    IL_04ee:  castclass [mscorlib]System.String
+	    IL_04f3:  stloc.s 30
+	    IL_04f5:  ldarg.0 
+	    IL_04f6:  call instance bool class NAnt.VSNet.ManagedProjectBase::get_IsWebProject()
+	    IL_04fb:  brfalse IL_053e
 
-	  IL_0184:  ldarg.0 
-	  IL_0185:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_sourceConfigs
-	  IL_018a:  ldloc.s 5
-	  IL_018c:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	  IL_0191:  brtrue IL_01ab
+	    IL_0500:  nop 
+	    IL_0501:  ldarg.0 
+	    IL_0502:  ldfld string NAnt.VSNet.ManagedProjectBase::_webProjectBaseUrl
+	    IL_0507:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	    IL_050c:  newobj instance void class NAnt.VSNet.WebDavClient::'.ctor'(class [System]System.Uri)
+	    IL_0511:  stloc.s 31
+	    IL_0513:  ldloc.s 31
+	    IL_0515:  ldloc.s 29
+	    IL_0517:  ldloc.3 
+	    IL_0518:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_RelativeOutputDir()
+	    IL_051d:  ldloc.s 30
+	    IL_051f:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	    IL_0524:  ldstr "\\"
+	    IL_0529:  ldstr "/"
+	    IL_052e:  callvirt instance string string::Replace(string, string)
+	    IL_0533:  callvirt instance void class NAnt.VSNet.WebDavClient::UploadFile(string, string)
+	    IL_0538:  nop 
+	    IL_0539:  br IL_056e
 
-	  IL_0196:  nop 
-	  IL_0197:  ldarg.0 
-	  IL_0198:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_sourceConfigs
-	  IL_019d:  ldloc.s 5
-	  IL_019f:  ldc.i4.1 
-	  IL_01a0:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
-	  IL_01a5:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_01aa:  nop 
-	  IL_01ab:  ldarg.0 
-	  IL_01ac:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_sourceConfigs
-	  IL_01b1:  ldloc.s 5
-	  IL_01b3:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_01b8:  castclass [mscorlib]System.Collections.ArrayList
-	  IL_01bd:  ldloc.s 4
-	  IL_01bf:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_01c4:  pop 
-	  IL_01c5:  ldarg.0 
-	  IL_01c6:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
-	  IL_01cb:  ldloc.0 
-	  IL_01cc:  ldloc.s 4
-	  IL_01ce:  ldloc.s 5
-	  IL_01d0:  ldloc.1 
-	  IL_01d1:  callvirt instance string class NAnt.VSNet.VcProject::GetObjOutputFile(string, class NAnt.VSNet.VcConfigurationBase, string)
-	  IL_01d6:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_01db:  pop 
-	  IL_01dc:  leave IL_0283
+	    IL_053e:  nop 
+	    IL_053f:  ldloc.3 
+	    IL_0540:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	    IL_0545:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	    IL_054a:  ldloc.s 30
+	    IL_054c:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	    IL_0551:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	    IL_0556:  stloc.s 32
+	    IL_0558:  ldarg.0 
+	    IL_0559:  ldloc.s 29
+	    IL_055b:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	    IL_0560:  ldloc.s 32
+	    IL_0562:  ldarg.0 
+	    IL_0563:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	    IL_0568:  call instance void class NAnt.VSNet.ProjectBase::CopyFile(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo, class [NAnt.Core]NAnt.Core.Task)
+	    IL_056d:  nop 
+	    IL_056e:  nop 
+	    IL_056f:  ldloc.s 28
+	    IL_0571:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_0576:  brtrue IL_04ca
 
-	  IL_01e1:  ldarg.0 
-	  IL_01e2:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_rcConfigs
-	  IL_01e7:  ldloc.s 5
-	  IL_01e9:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	  IL_01ee:  brtrue IL_0208
+	    IL_057b:  leave IL_0597
 
-	  IL_01f3:  nop 
-	  IL_01f4:  ldarg.0 
-	  IL_01f5:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_rcConfigs
-	  IL_01fa:  ldloc.s 5
-	  IL_01fc:  ldc.i4.1 
-	  IL_01fd:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
-	  IL_0202:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_0207:  nop 
-	  IL_0208:  ldarg.0 
-	  IL_0209:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_rcConfigs
-	  IL_020e:  ldloc.s 5
-	  IL_0210:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_0215:  castclass [mscorlib]System.Collections.ArrayList
-	  IL_021a:  ldloc.s 4
-	  IL_021c:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0221:  pop 
-	  IL_0222:  ldarg.0 
-	  IL_0223:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
-	  IL_0228:  ldloc.0 
-	  IL_0229:  ldloc.s 4
-	  IL_022b:  ldloc.s 5
-	  IL_022d:  callvirt instance string class NAnt.VSNet.VcProject::GetResourceOutputFile(string, class NAnt.VSNet.VcConfigurationBase)
-	  IL_0232:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0237:  pop 
-	  IL_0238:  leave IL_0283
+	  } // end .try 6
+	  finally  { // 6
+	    IL_0580:  ldloc.s 28
+	    IL_0582:  isinst [mscorlib]System.IDisposable
+	    IL_0587:  dup 
+	    IL_0588:  stloc.s 33
+	    IL_058a:  brfalse IL_0596
 
-	  IL_023d:  ldarg.0 
-	  IL_023e:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_idlConfigs
-	  IL_0243:  ldloc.s 5
-	  IL_0245:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	  IL_024a:  brtrue IL_0264
+	    IL_058f:  ldloc.s 33
+	    IL_0591:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0596:  endfinally 
+	  } // end handler 6
+	  IL_0597:  ldarg.0 
+	  IL_0598:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	  IL_059d:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_RunPostBuildEvent()
+	  IL_05a2:  brfalse IL_05c4
 
-	  IL_024f:  nop 
-	  IL_0250:  ldarg.0 
-	  IL_0251:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_idlConfigs
-	  IL_0256:  ldloc.s 5
-	  IL_0258:  ldc.i4.1 
-	  IL_0259:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
-	  IL_025e:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_0263:  nop 
-	  IL_0264:  ldarg.0 
-	  IL_0265:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_idlConfigs
-	  IL_026a:  ldloc.s 5
-	  IL_026c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_0271:  castclass [mscorlib]System.Collections.ArrayList
-	  IL_0276:  ldloc.s 4
-	  IL_0278:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_027d:  pop 
-	  IL_027e:  leave IL_0283
+	  IL_05a7:  nop 
+	  IL_05a8:  ldarg.0 
+	  IL_05a9:  ldloc.3 
+	  IL_05aa:  ldloc.1 
+	  IL_05ab:  brfalse IL_05b3
 
-	  IL_0283:  nop 
-	  IL_0284:  ldloc.3 
-	  IL_0285:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_028a:  brtrue IL_0036
+	  IL_05b0:  ldloc.0 
+	  IL_05b1:  br.s IL_05b4
 
-	  IL_028f:  leave IL_02aa
+	  IL_05b3:  ldc.i4.1 
+	  IL_05b4:  ldloc.1 
+	  IL_05b5:  call instance bool class NAnt.VSNet.ManagedProjectBase::PostBuild(class NAnt.VSNet.ConfigurationSettings, bool, bool)
+	  IL_05ba:  brtrue IL_05c3
 
-	} // end .try 1
-	finally  { // 1
-	  IL_0294:  ldloc.3 
-	  IL_0295:  isinst [mscorlib]System.IDisposable
-	  IL_029a:  dup 
-	  IL_029b:  stloc.s 12
-	  IL_029d:  brfalse IL_02a9
+	  IL_05bf:  nop 
+	  IL_05c0:  ldc.i4.0 
+	  IL_05c1:  stloc.0 
+	  IL_05c2:  nop 
+	  IL_05c3:  nop 
+	  IL_05c4:  ldloc.0 
+	  IL_05c5:  brtrue IL_05e3
 
-	  IL_02a2:  ldloc.s 12
-	  IL_02a4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_02a9:  endfinally 
-	} // end handler 1
-	IL_02aa:  ldarg.0 
-	IL_02ab:  call instance valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType class NAnt.VSNet.VcProjectConfiguration::get_Type()
-	IL_02b0:  stloc.s 13
-	IL_02b2:  ldloc.s 13
-	IL_02b4:  switch (
-	  IL_02f5,
-	  IL_02e4,
-	  IL_02e4,
-	  IL_0337,
-	  IL_02d2)
-	IL_02cd:  br IL_0337
+	  IL_05ca:  nop 
+	  IL_05cb:  ldarg.0 
+	  IL_05cc:  ldc.i4 5000
+	  IL_05d1:  ldstr "Build failed."
+	  IL_05d6:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	  IL_05db:  ldc.i4.0 
+	  IL_05dc:  stloc.s 4
+	  IL_05de:  leave IL_0608
 
-	IL_02d2:  ldarg.0 
-	IL_02d3:  ldarg.0 
-	IL_02d4:  ldloc.1 
-	IL_02d5:  call instance string class NAnt.VSNet.VcProjectConfiguration::GetLibrarianOutputFile(string)
-	IL_02da:  stfld string NAnt.VSNet.VcProjectConfiguration::_outputPath
-	IL_02df:  br IL_0337
+	  IL_05e3:  ldloc.1 
+	  IL_05e4:  brfalse IL_05ef
 
-	IL_02e4:  ldarg.0 
-	IL_02e5:  ldarg.0 
-	IL_02e6:  call instance string class NAnt.VSNet.VcProjectConfiguration::GetLinkerOutputFile()
-	IL_02eb:  stfld string NAnt.VSNet.VcProjectConfiguration::_outputPath
-	IL_02f0:  br IL_0337
+	  IL_05e9:  ldc.i4.2 
+	  IL_05ea:  br IL_05f0
 
-	IL_02f5:  ldarg.0 
-	IL_02f6:  ldstr "VCNMakeTool"
-	IL_02fb:  ldstr "Output"
-	IL_0300:  call instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
-	IL_0305:  stloc.s 14
-	IL_0307:  ldloc.s 14
-	IL_0309:  call bool string::IsNullOrEmpty(string)
-	IL_030e:  brtrue IL_0332
+	  IL_05ef:  ldc.i4.1 
+	  IL_05f0:  stloc.s 4
+	  IL_05f2:  leave IL_0608
 
-	IL_0313:  nop 
-	IL_0314:  ldarg.0 
-	IL_0315:  ldarg.0 
-	IL_0316:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_031b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0320:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0325:  ldloc.s 14
-	IL_0327:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_032c:  stfld string NAnt.VSNet.VcProjectConfiguration::_outputPath
-	IL_0331:  nop 
-	IL_0332:  br IL_0337
+	} // end .try 7
+	finally  { // 7
+	  IL_05f7:  nop 
+	  IL_05f8:  ldloc.2 
+	  IL_05f9:  brfalse IL_0606
 
-	IL_0337:  ldarg.0 
-	IL_0338:  ldc.i4.1 
-	IL_0339:  stfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
-	IL_033e:  ret 
-    } // end of method VcProjectConfiguration::Initialize
+	  IL_05fe:  nop 
+	  IL_05ff:  ldloc.2 
+	  IL_0600:  call void class [mscorlib]System.IO.File::Delete(string)
+	  IL_0605:  nop 
+	  IL_0606:  nop 
+	  IL_0607:  endfinally 
+	} // end handler 7
+	IL_0608:  ldloc.s 4
+	IL_060a:  ret 
+    } // end of method ManagedProjectBase::Build
 
-    // method line 136
-    .method private hidebysig 
-           instance default string GetLibrarianOutputFile (string intermediateDir)  cil managed 
+    // method line 122
+    .method family virtual hidebysig newslot abstract 
+           instance default class [System]System.Diagnostics.ProcessStartInfo GetProcessStartInfo (class NAnt.VSNet.ConfigurationBase config, string responseFile)  cil managed 
     {
-        // Method begins at RVA 0x68b0
-	// Code size 138 (0x8a)
-	.maxstack 4
+        // Method begins at RVA 0x0
+    } // end of method ManagedProjectBase::GetProcessStartInfo
+
+    // method line 123
+    .method family virtual hidebysig newslot 
+           instance default class NAnt.VSNet.ReferenceBase CreateReference (class NAnt.VSNet.SolutionBase solution, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    {
+        // Method begins at RVA 0x86f4
+	// Code size 183 (0xb7)
+	.maxstack 7
 	.locals init (
-		string	V_0,
-		string	V_1)
+		class NAnt.VSNet.ReferenceBase	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
-	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_000c:  brtrue IL_0019
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-	IL_0011:  nop 
-	IL_0012:  ldnull 
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0088
+	IL_0007:  nop 
+	IL_0008:  ldstr "solution"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.2 
+	IL_0014:  brtrue IL_0025
 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldstr "VCLibrarianTool"
-	IL_001f:  ldstr "OutputFile"
-	IL_0024:  ldstr "$(OutDir)/$(ProjectName).lib"
-	IL_0029:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string, string)
-	IL_002e:  stloc.1 
-	IL_002f:  ldloc.1 
-	IL_0030:  call bool string::IsNullOrEmpty(string)
-	IL_0035:  brfalse IL_0068
+	IL_0019:  nop 
+	IL_001a:  ldstr "xmlDefinition"
+	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0024:  throw 
+	IL_0025:  ldarg.2 
+	IL_0026:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_002b:  ldstr "Project"
+	IL_0030:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0035:  brfalse IL_0066
 
 	IL_003a:  nop 
-	IL_003b:  ldarg.1 
+	IL_003b:  ldarg.2 
 	IL_003c:  ldarg.0 
-	IL_003d:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
-	IL_0042:  ldc.i4.0 
-	IL_0043:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	IL_0048:  castclass [mscorlib]System.String
-	IL_004d:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_0052:  ldstr ".lib"
-	IL_0057:  call string string::Concat(string, string)
-	IL_005c:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0061:  stloc.1 
-	IL_0062:  nop 
-	IL_0063:  br IL_0081
-
-	IL_0068:  nop 
-	IL_0069:  ldarg.0 
-	IL_006a:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_006f:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0074:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0079:  ldloc.1 
-	IL_007a:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_007f:  stloc.1 
-	IL_0080:  nop 
-	IL_0081:  ldloc.1 
-	IL_0082:  stloc.0 
-	IL_0083:  br IL_0088
-
-	IL_0088:  ldloc.0 
-	IL_0089:  ret 
-    } // end of method VcProjectConfiguration::GetLibrarianOutputFile
-
-    // method line 137
-    .method private hidebysig 
-           instance default string GetLinkerOutputFile ()  cil managed 
-    {
-        // Method begins at RVA 0x6948
-	// Code size 443 (0x1bb)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		string[]	V_1,
-		int32	V_2,
-		string	V_3,
-		string	V_4,
-		string	V_5,
-		valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType	V_6,
-		string	V_7)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "VCLinkerTool"
-	IL_0007:  ldstr "AdditionalDependencies"
-	IL_000c:  call instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
-	IL_0011:  stloc.0 
-	IL_0012:  ldloc.0 
-	IL_0013:  call bool string::IsNullOrEmpty(string)
-	IL_0018:  brtrue IL_00aa
-
-	IL_001d:  nop 
-	IL_001e:  ldloc.0 
-	IL_001f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0024:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_0029:  ldstr "$(noinherit)"
-	IL_002e:  callvirt instance int32 string::IndexOf(string)
-	IL_0033:  ldc.i4.m1 
-	IL_0034:  beq IL_0061
+	IL_003d:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
+	IL_0042:  ldarg.0 
+	IL_0043:  ldarg.1 
+	IL_0044:  ldarg.0 
+	IL_0045:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_004a:  callvirt instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.ProjectSettings::get_TemporaryFiles()
+	IL_004f:  ldarg.0 
+	IL_0050:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
+	IL_0055:  ldarg.0 
+	IL_0056:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_OutputDir()
+	IL_005b:  newobj instance void class NAnt.VSNet.ManagedProjectReference::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class NAnt.VSNet.SolutionBase, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0060:  stloc.0 
+	IL_0061:  br IL_00b5
 
-	IL_0039:  nop 
-	IL_003a:  ldloc.0 
-	IL_003b:  ldloc.0 
-	IL_003c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0041:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_0046:  ldstr "$(noinherit)"
-	IL_004b:  callvirt instance int32 string::IndexOf(string)
-	IL_0050:  ldstr "$(noinherit)"
-	IL_0055:  call instance int32 string::get_Length()
-	IL_005a:  callvirt instance string string::Remove(int32, int32)
-	IL_005f:  stloc.0 
-	IL_0060:  nop 
-	IL_0061:  ldloc.0 
-	IL_0062:  ldc.i4.s 0x20
-	IL_0064:  ldc.i4.0 
-	IL_0065:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	IL_006a:  stloc.1 
-	IL_006b:  ldc.i4.0 
-	IL_006c:  stloc.2 
-	IL_006d:  br IL_00a0
+	IL_0066:  ldarg.2 
+	IL_0067:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_006c:  ldstr "WrapperTool"
+	IL_0071:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0076:  brfalse IL_009b
 
-	IL_0072:  nop 
-	IL_0073:  ldloc.1 
-	IL_0074:  ldloc.2 
-	IL_0075:  ldelem.ref 
-	IL_0076:  stloc.3 
-	IL_0077:  ldloc.3 
-	IL_0078:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	IL_007d:  ldstr ".obj"
-	IL_0082:  call bool string::op_Equality(string, string)
-	IL_0087:  brfalse IL_009b
+	IL_007b:  nop 
+	IL_007c:  ldarg.2 
+	IL_007d:  ldarg.0 
+	IL_007e:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
+	IL_0083:  ldarg.0 
+	IL_0084:  ldarg.0 
+	IL_0085:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
+	IL_008a:  ldarg.0 
+	IL_008b:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_0090:  newobj instance void class NAnt.VSNet.ManagedWrapperReference::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ProjectSettings)
+	IL_0095:  stloc.0 
+	IL_0096:  br IL_00b5
 
-	IL_008c:  nop 
-	IL_008d:  ldarg.0 
-	IL_008e:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
-	IL_0093:  ldloc.2 
-	IL_0094:  ldloc.3 
-	IL_0095:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Insert(int32, object)
-	IL_009a:  nop 
 	IL_009b:  nop 
-	IL_009c:  ldloc.2 
-	IL_009d:  ldc.i4.1 
-	IL_009e:  add 
-	IL_009f:  stloc.2 
-	IL_00a0:  ldloc.2 
-	IL_00a1:  ldloc.1 
-	IL_00a2:  ldlen 
-	IL_00a3:  conv.i4 
-	IL_00a4:  blt IL_0072
-
-	IL_00a9:  nop 
-	IL_00aa:  ldarg.0 
-	IL_00ab:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
-	IL_00b0:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_00b5:  brtrue IL_00c3
+	IL_009c:  ldarg.2 
+	IL_009d:  ldarg.0 
+	IL_009e:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
+	IL_00a3:  ldarg.0 
+	IL_00a4:  ldarg.0 
+	IL_00a5:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
+	IL_00aa:  newobj instance void class NAnt.VSNet.ManagedAssemblyReference::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
+	IL_00af:  stloc.0 
+	IL_00b0:  br IL_00b5
 
-	IL_00ba:  nop 
-	IL_00bb:  ldnull 
-	IL_00bc:  stloc.s 4
-	IL_00be:  br IL_01b8
+	IL_00b5:  ldloc.0 
+	IL_00b6:  ret 
+    } // end of method ManagedProjectBase::CreateReference
 
-	IL_00c3:  ldsfld string [mscorlib]System.String::Empty
-	IL_00c8:  stloc.s 5
-	IL_00ca:  ldarg.0 
-	IL_00cb:  call instance valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType class NAnt.VSNet.VcProjectConfiguration::get_Type()
-	IL_00d0:  stloc.s 6
-	IL_00d2:  ldloc.s 6
-	IL_00d4:  ldc.i4.1 
-	IL_00d5:  beq IL_00e7
+    // method line 124
+    .method public virtual hidebysig 
+           instance default class NAnt.VSNet.ProjectReferenceBase CreateProjectReference (class NAnt.VSNet.ProjectBase project, bool isPrivateSpecified, bool isPrivate)  cil managed 
+    {
+        // Method begins at RVA 0x87b8
+	// Code size 18 (0x12)
+	.maxstack 4
+	.locals init (
+		class NAnt.VSNet.ProjectReferenceBase	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldarg.2 
+	IL_0004:  ldarg.3 
+	IL_0005:  newobj instance void class NAnt.VSNet.ManagedProjectReference::'.ctor'(class NAnt.VSNet.ProjectBase, class NAnt.VSNet.ProjectBase, bool, bool)
+	IL_000a:  stloc.0 
+	IL_000b:  br IL_0010
 
-	IL_00da:  ldloc.s 6
-	IL_00dc:  ldc.i4.2 
-	IL_00dd:  beq IL_00f3
+	IL_0010:  ldloc.0 
+	IL_0011:  ret 
+    } // end of method ManagedProjectBase::CreateProjectReference
 
-	IL_00e2:  br IL_00ff
+    // method line 125
+    .method family virtual hidebysig newslot 
+           instance default void WriteCompilerOptions (class [mscorlib]System.IO.StreamWriter sw, class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x87d8
+	// Code size 383 (0x17f)
+	.maxstack 4
+	.locals init (
+		class NAnt.VSNet.ConfigurationSettings	V_0,
+		string	V_1,
+		string[]	V_2,
+		int32	V_3,
+		string	V_4,
+		string[]	V_5,
+		int32	V_6,
+		string	V_7,
+		class [System]System.Collections.Specialized.StringEnumerator	V_8,
+		class [mscorlib]System.IDisposable	V_9,
+		string	V_10,
+		class [mscorlib]System.Collections.IEnumerator	V_11,
+		class [mscorlib]System.IDisposable	V_12)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_0007:  ldarg.2 
+	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_000d:  castclass NAnt.VSNet.ConfigurationSettings
+	IL_0012:  stloc.0 
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_001a:  callvirt instance string[] class NAnt.VSNet.ProjectSettings::get_Settings()
+	IL_001f:  stloc.2 
+	IL_0020:  ldc.i4.0 
+	IL_0021:  stloc.3 
+	IL_0022:  br IL_0038
 
-	IL_00e7:  ldstr ".exe"
-	IL_00ec:  stloc.s 5
-	IL_00ee:  br IL_00ff
+	IL_0027:  ldloc.2 
+	IL_0028:  ldloc.3 
+	IL_0029:  ldelem.ref 
+	IL_002a:  stloc.1 
+	IL_002b:  nop 
+	IL_002c:  ldarg.1 
+	IL_002d:  ldloc.1 
+	IL_002e:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	IL_0033:  nop 
+	IL_0034:  ldloc.3 
+	IL_0035:  ldc.i4.1 
+	IL_0036:  add 
+	IL_0037:  stloc.3 
+	IL_0038:  ldloc.3 
+	IL_0039:  ldloc.2 
+	IL_003a:  ldlen 
+	IL_003b:  conv.i4 
+	IL_003c:  blt IL_0027
 
-	IL_00f3:  ldstr ".dll"
-	IL_00f8:  stloc.s 5
-	IL_00fa:  br IL_00ff
+	IL_0041:  nop 
+	IL_0042:  ldloc.0 
+	IL_0043:  callvirt instance string[] class NAnt.VSNet.ConfigurationSettings::get_Settings()
+	IL_0048:  stloc.s 5
+	IL_004a:  ldc.i4.0 
+	IL_004b:  stloc.s 6
+	IL_004d:  br IL_0069
 
-	IL_00ff:  ldarg.0 
-	IL_0100:  ldstr "VCLinkerTool"
-	IL_0105:  ldstr "OutputFile"
-	IL_010a:  ldstr "$(OutDir)/$(ProjectName)"
-	IL_010f:  ldloc.s 5
-	IL_0111:  call string string::Concat(string, string)
-	IL_0116:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string, string)
-	IL_011b:  stloc.s 7
-	IL_011d:  ldloc.s 7
-	IL_011f:  call bool string::IsNullOrEmpty(string)
-	IL_0124:  brfalse IL_015f
+	IL_0052:  ldloc.s 5
+	IL_0054:  ldloc.s 6
+	IL_0056:  ldelem.ref 
+	IL_0057:  stloc.s 4
+	IL_0059:  nop 
+	IL_005a:  ldarg.1 
+	IL_005b:  ldloc.s 4
+	IL_005d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	IL_0062:  nop 
+	IL_0063:  ldloc.s 6
+	IL_0065:  ldc.i4.1 
+	IL_0066:  add 
+	IL_0067:  stloc.s 6
+	IL_0069:  ldloc.s 6
+	IL_006b:  ldloc.s 5
+	IL_006d:  ldlen 
+	IL_006e:  conv.i4 
+	IL_006f:  blt IL_0052
 
-	IL_0129:  nop 
-	IL_012a:  ldarg.0 
-	IL_012b:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_0130:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0135:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_013a:  ldarg.0 
-	IL_013b:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
-	IL_0140:  ldc.i4.0 
-	IL_0141:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
-	IL_0146:  castclass [mscorlib]System.String
-	IL_014b:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_0150:  ldloc.s 5
-	IL_0152:  call string string::Concat(string, string)
-	IL_0157:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_015c:  stloc.s 7
-	IL_015e:  nop 
-	IL_015f:  ldarg.0 
-	IL_0160:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
-	IL_0165:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.Tasks.SolutionTask::get_OutputDir()
-	IL_016a:  brfalse IL_0194
+	IL_0074:  nop 
+	IL_0075:  ldarg.0 
+	IL_0076:  ldarg.2 
+	IL_0077:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.ProjectBase::GetAssemblyReferences(class NAnt.VSNet.Configuration)
+	IL_007c:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0081:  stloc.s 8
+	.try { // 0
+	  IL_0083:  br IL_00a0
 
-	IL_016f:  nop 
-	IL_0170:  ldarg.0 
-	IL_0171:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
-	IL_0176:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.Tasks.SolutionTask::get_OutputDir()
-	IL_017b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0180:  ldloc.s 7
-	IL_0182:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_0187:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_018c:  stloc.s 7
-	IL_018e:  nop 
-	IL_018f:  br IL_01af
+	  IL_0088:  ldloc.s 8
+	  IL_008a:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_008f:  stloc.s 7
+	  IL_0091:  nop 
+	  IL_0092:  ldarg.1 
+	  IL_0093:  ldstr "/r:\"{0}\""
+	  IL_0098:  ldloc.s 7
+	  IL_009a:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_009f:  nop 
+	  IL_00a0:  ldloc.s 8
+	  IL_00a2:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_00a7:  brtrue IL_0088
 
-	IL_0194:  nop 
-	IL_0195:  ldarg.0 
-	IL_0196:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_019b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_01a0:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_01a5:  ldloc.s 7
-	IL_01a7:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_01ac:  stloc.s 7
-	IL_01ae:  nop 
-	IL_01af:  ldloc.s 7
-	IL_01b1:  stloc.s 4
-	IL_01b3:  br IL_01b8
+	  IL_00ac:  leave IL_00c8
 
-	IL_01b8:  ldloc.s 4
-	IL_01ba:  ret 
-    } // end of method VcProjectConfiguration::GetLinkerOutputFile
+	} // end .try 0
+	finally  { // 0
+	  IL_00b1:  ldloc.s 8
+	  IL_00b3:  isinst [mscorlib]System.IDisposable
+	  IL_00b8:  dup 
+	  IL_00b9:  stloc.s 9
+	  IL_00bb:  brfalse IL_00c7
 
-    // method line 138
-    .method private static hidebysig 
-           default string GetXmlAttributeValue (class [System.Xml]System.Xml.XmlNode xmlNode, string attributeName)  cil managed 
-    {
-        // Method begins at RVA 0x6b10
-	// Code size 58 (0x3a)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		class [System.Xml]System.Xml.XmlAttribute	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  brfalse IL_0031
+	  IL_00c0:  ldloc.s 9
+	  IL_00c2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00c7:  endfinally 
+	} // end handler 0
+	IL_00c8:  ldarg.0 
+	IL_00c9:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_00ce:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.ProjectSettings::get_ApplicationIcon()
+	IL_00d3:  brfalse IL_00f5
 
-	IL_0009:  nop 
-	IL_000a:  ldarg.0 
-	IL_000b:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0010:  ldarg.1 
-	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNamedNodeMap::GetNamedItem(string)
-	IL_0016:  castclass [System.Xml]System.Xml.XmlAttribute
-	IL_001b:  stloc.1 
-	IL_001c:  ldloc.1 
-	IL_001d:  brfalse IL_0030
+	IL_00d8:  nop 
+	IL_00d9:  ldarg.1 
+	IL_00da:  ldstr "/win32icon:\"{0}\""
+	IL_00df:  ldarg.0 
+	IL_00e0:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_00e5:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.ProjectSettings::get_ApplicationIcon()
+	IL_00ea:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00ef:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	IL_00f4:  nop 
+	IL_00f5:  ldarg.0 
+	IL_00f6:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_neutralResources
+	IL_00fb:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_0100:  ldc.i4.0 
+	IL_0101:  ble IL_0110
 
-	IL_0022:  nop 
-	IL_0023:  ldloc.1 
-	IL_0024:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_0029:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_002e:  stloc.0 
-	IL_002f:  nop 
-	IL_0030:  nop 
-	IL_0031:  ldloc.0 
-	IL_0032:  stloc.2 
-	IL_0033:  br IL_0038
+	IL_0106:  nop 
+	IL_0107:  ldarg.0 
+	IL_0108:  ldarg.1 
+	IL_0109:  ldarg.2 
+	IL_010a:  call instance void class NAnt.VSNet.ManagedProjectBase::WriteNeutralResourceOptions(class [mscorlib]System.IO.StreamWriter, class NAnt.VSNet.Configuration)
+	IL_010f:  nop 
+	IL_0110:  ldarg.0 
+	IL_0111:  ldarg.1 
+	IL_0112:  callvirt instance void class NAnt.VSNet.ManagedProjectBase::WriteProjectOptions(class [mscorlib]System.IO.StreamWriter)
+	IL_0117:  nop 
+	IL_0118:  ldarg.0 
+	IL_0119:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
+	IL_011e:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
+	IL_0123:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0128:  stloc.s 11
+	.try { // 1
+	  IL_012a:  br IL_0156
 
-	IL_0038:  ldloc.2 
-	IL_0039:  ret 
-    } // end of method VcProjectConfiguration::GetXmlAttributeValue
+	  IL_012f:  ldloc.s 11
+	  IL_0131:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0136:  castclass [mscorlib]System.String
+	  IL_013b:  stloc.s 10
+	  IL_013d:  nop 
+	  IL_013e:  ldarg.1 
+	  IL_013f:  ldstr "\""
+	  IL_0144:  ldloc.s 10
+	  IL_0146:  ldstr "\""
+	  IL_014b:  call string string::Concat(string, string, string)
+	  IL_0150:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_0155:  nop 
+	  IL_0156:  ldloc.s 11
+	  IL_0158:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_015d:  brtrue IL_012f
 
-	.property instance valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType Type ()
-	{
-		.get instance default valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType NAnt.VSNet.VcProjectConfiguration::get_Type () 
-	}
-	.property instance bool WholeProgramOptimization ()
-	{
-		.get instance default bool NAnt.VSNet.VcProjectConfiguration::get_WholeProgramOptimization () 
-	}
-	.property instance valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet CharacterSet ()
-	{
-		.get instance default valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet NAnt.VSNet.VcProjectConfiguration::get_CharacterSet () 
-	}
-	.property instance bool ManagedExtensions ()
-	{
-		.get instance default bool NAnt.VSNet.VcProjectConfiguration::get_ManagedExtensions () 
-	}
-	.property instance valuetype NAnt.VSNet.Types.UseOfMFC UseOfMFC ()
-	{
-		.get instance default valuetype NAnt.VSNet.Types.UseOfMFC NAnt.VSNet.VcProjectConfiguration::get_UseOfMFC () 
-	}
-	.property instance valuetype NAnt.VSNet.Types.UseOfATL UseOfATL ()
-	{
-		.get instance default valuetype NAnt.VSNet.Types.UseOfATL NAnt.VSNet.VcProjectConfiguration::get_UseOfATL () 
-	}
-	.property instance string RawRelativeOutputDir ()
-	{
-		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_RawRelativeOutputDir () 
-	}
-	.property instance string RawIntermediateDir ()
-	{
-		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_RawIntermediateDir () 
-	}
-	.property instance string RawReferencesPath ()
-	{
-		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_RawReferencesPath () 
-	}
-	.property instance class NAnt.VSNet.VcProjectConfiguration/LinkerConfig LinkerConfiguration ()
-	{
-		.get instance default class NAnt.VSNet.VcProjectConfiguration/LinkerConfig NAnt.VSNet.VcProjectConfiguration::get_LinkerConfiguration () 
-	}
-	.property instance class [mscorlib]System.Collections.ArrayList ObjFiles ()
-	{
-		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::get_ObjFiles () 
-	}
-	.property instance class [mscorlib]System.Collections.Hashtable SourceConfigs ()
-	{
-		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::get_SourceConfigs () 
-	}
-	.property instance class [mscorlib]System.Collections.Hashtable RcConfigs ()
-	{
-		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::get_RcConfigs () 
-	}
-	.property instance class [mscorlib]System.Collections.Hashtable IdlConfigs ()
-	{
-		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::get_IdlConfigs () 
-	}
-	.property instance string TargetPath ()
-	{
-		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_TargetPath () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo ObjectDir ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcProjectConfiguration::get_ObjectDir () 
-	}
-	.property instance string RelativeOutputDir ()
-	{
-		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_RelativeOutputDir () 
-	}
-	.property instance string IntermediateDir ()
-	{
-		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_IntermediateDir () 
-	}
-	.property instance string OutputPath ()
-	{
-		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_OutputPath () 
-	}
-	.property instance string ReferencesPath ()
-	{
-		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_ReferencesPath () 
-	}
-  .class nested public auto ansi sealed ConfigurationType
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType Makefile = int32(0x00000000)
-    .field public static literal  valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType Application = int32(0x00000001)
-    .field public static literal  valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType DynamicLibrary = int32(0x00000002)
-    .field public static literal  valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType StaticLibrary = int32(0x00000004)
-    .field public static literal  valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType Utility = int32(0x0000000a)
+	  IL_0162:  leave IL_017e
 
-  } // end of class ConfigurationType
+	} // end .try 1
+	finally  { // 1
+	  IL_0167:  ldloc.s 11
+	  IL_0169:  isinst [mscorlib]System.IDisposable
+	  IL_016e:  dup 
+	  IL_016f:  stloc.s 12
+	  IL_0171:  brfalse IL_017d
 
-  .class nested assembly auto ansi beforefieldinit LinkerConfig
-  	extends [mscorlib]System.Object
-  {
-    .field  private initonly  class NAnt.VSNet.VcProjectConfiguration _projectConfig
+	  IL_0176:  ldloc.s 12
+	  IL_0178:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_017d:  endfinally 
+	} // end handler 1
+	IL_017e:  ret 
+    } // end of method ManagedProjectBase::WriteCompilerOptions
 
-    // method line 139
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.VcProjectConfiguration projectConfig)  cil managed 
+    // method line 126
+    .method family virtual hidebysig newslot 
+           instance default void WriteProjectOptions (class [mscorlib]System.IO.StreamWriter sw)  cil managed 
     {
-        // Method begins at RVA 0x6b56
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x8980
+	// Code size 2 (0x2)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcProjectConfiguration/LinkerConfig::_projectConfig
-	IL_000e:  ret 
-    } // end of method LinkerConfig::.ctor
-
-    // method line 140
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_ImportLibrary ()  cil managed 
-    {
-        // Method begins at RVA 0x6b68
-	// Code size 185 (0xb9)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		string	V_1,
-		class [mscorlib]System.IO.FileInfo	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  call instance class NAnt.VSNet.VcProject class NAnt.VSNet.VcProjectConfiguration/LinkerConfig::get_Project()
-	IL_0009:  ldarg.0 
-	IL_000a:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcProjectConfiguration/LinkerConfig::_projectConfig
-	IL_000f:  callvirt instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
-	IL_0014:  callvirt instance class NAnt.VSNet.Configuration class NAnt.VSNet.Tasks.SolutionTask::get_SolutionConfig()
-	IL_0019:  callvirt instance bool class NAnt.VSNet.ProjectBase::IsManaged(class NAnt.VSNet.Configuration)
-	IL_001e:  brtrue IL_002b
-
-	IL_0023:  nop 
-	IL_0024:  ldstr "$(OutDir)/$(TargetName).lib"
-	IL_0029:  stloc.0 
-	IL_002a:  nop 
-	IL_002b:  ldarg.0 
-	IL_002c:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcProjectConfiguration/LinkerConfig::_projectConfig
-	IL_0031:  ldstr "VCLinkerTool"
-	IL_0036:  ldstr "ImportLibrary"
-	IL_003b:  ldloc.0 
-	IL_003c:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string, string)
-	IL_0041:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0046:  stloc.1 
-	IL_0047:  ldloc.1 
-	IL_0048:  brtrue IL_0055
-
-	IL_004d:  nop 
-	IL_004e:  ldnull 
-	IL_004f:  stloc.2 
-	IL_0050:  br IL_00b7
-
-	IL_0055:  ldarg.0 
-	IL_0056:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcProjectConfiguration/LinkerConfig::_projectConfig
-	IL_005b:  callvirt instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
-	IL_0060:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.Tasks.SolutionTask::get_OutputDir()
-	IL_0065:  brfalse IL_0092
-
-	IL_006a:  nop 
-	IL_006b:  ldarg.0 
-	IL_006c:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcProjectConfiguration/LinkerConfig::_projectConfig
-	IL_0071:  callvirt instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
-	IL_0076:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.Tasks.SolutionTask::get_OutputDir()
-	IL_007b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0080:  ldloc.1 
-	IL_0081:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_0086:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_008b:  stloc.1 
-	IL_008c:  nop 
-	IL_008d:  br IL_00ab
-
-	IL_0092:  nop 
-	IL_0093:  ldarg.0 
-	IL_0094:  call instance class NAnt.VSNet.VcProject class NAnt.VSNet.VcProjectConfiguration/LinkerConfig::get_Project()
-	IL_0099:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_009e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00a3:  ldloc.1 
-	IL_00a4:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_00a9:  stloc.1 
-	IL_00aa:  nop 
-	IL_00ab:  ldloc.1 
-	IL_00ac:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_00b1:  stloc.2 
-	IL_00b2:  br IL_00b7
+	IL_0001:  ret 
+    } // end of method ManagedProjectBase::WriteProjectOptions
 
-	IL_00b7:  ldloc.2 
-	IL_00b8:  ret 
-    } // end of method LinkerConfig::get_ImportLibrary
+    // method line 127
+    .method family virtual hidebysig newslot abstract 
+           instance default valuetype NAnt.VSNet.ProjectLocation DetermineProjectLocation (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ManagedProjectBase::DetermineProjectLocation
 
-    // method line 141
-    .method private hidebysig specialname 
-           instance default class NAnt.VSNet.VcProject get_Project ()  cil managed 
+    // method line 128
+    .method private hidebysig 
+           instance default string GetTypeLibraryPath (class NAnt.VSNet.ConfigurationSettings config)  cil managed 
     {
-        // Method begins at RVA 0x6c30
-	// Code size 25 (0x19)
-	.maxstack 1
+        // Method begins at RVA 0x8984
+	// Code size 43 (0x2b)
+	.maxstack 2
 	.locals init (
-		class NAnt.VSNet.VcProject	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcProjectConfiguration/LinkerConfig::_projectConfig
-	IL_0007:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_000c:  castclass NAnt.VSNet.VcProject
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method LinkerConfig::get_Project
-
-	.property instance class [mscorlib]System.IO.FileInfo ImportLibrary ()
-	{
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VSNet.VcProjectConfiguration/LinkerConfig::get_ImportLibrary () 
-	}
-	.property instance class NAnt.VSNet.VcProject Project ()
-	{
-		.get instance default class NAnt.VSNet.VcProject NAnt.VSNet.VcProjectConfiguration/LinkerConfig::get_Project () 
-	}
-  } // end of class LinkerConfig
-
-  } // end of class NAnt.VSNet.VcProjectConfiguration
-}
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit WebDavClient
-  	extends [mscorlib]System.Object
-  {
-    .field  private  string _webProjectBaseUrl
+	IL_0007:  nop 
+	IL_0008:  ldstr "config"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.1 
+	IL_0014:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
+	IL_0019:  ldstr ".tlb"
+	IL_001e:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
+	IL_0023:  stloc.0 
+	IL_0024:  br IL_0029
 
-    // method line 142
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System]System.Uri uriBase)  cil managed 
-    {
-        // Method begins at RVA 0x6c55
-	// Code size 20 (0x14)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  callvirt instance string object::ToString()
-	IL_000e:  stfld string NAnt.VSNet.WebDavClient::_webProjectBaseUrl
-	IL_0013:  ret 
-    } // end of method WebDavClient::.ctor
+	IL_0029:  ldloc.0 
+	IL_002a:  ret 
+    } // end of method ManagedProjectBase::GetTypeLibraryPath
 
-    // method line 143
-    .method public hidebysig 
-           instance default void UploadFile (string localFileName, string remoteFileName)  cil managed 
+    // method line 129
+    .method private hidebysig 
+           instance default void RegisterForComInterop (class NAnt.VSNet.ConfigurationSettings config, class NAnt.VSNet.Configuration solutionConfiguration, string typelibPath)  cil managed 
     {
-        // Method begins at RVA 0x6c6c
-	// Code size 276 (0x114)
-	.maxstack 4
+        // Method begins at RVA 0x89bc
+	// Code size 254 (0xfe)
+	.maxstack 3
 	.locals init (
-		class [System]System.Net.WebRequest	V_0,
-		class [mscorlib]System.IO.FileInfo	V_1,
-		int32	V_2,
-		unsigned int8[]	V_3,
-		class [mscorlib]System.IO.FileStream	V_4,
-		class [mscorlib]System.IO.Stream	V_5,
-		int32	V_6,
-		class [System]System.Net.WebResponse	V_7,
-		class [System]System.Net.WebException	V_8,
-		class [System]System.Net.HttpWebResponse	V_9)
+		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask	V_0,
+		class NAnt.VSNet.ReferenceBase	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class [System]System.Collections.Specialized.StringCollection	V_3,
+		string	V_4,
+		class [System]System.Collections.Specialized.StringEnumerator	V_5,
+		class [mscorlib]System.IDisposable	V_6,
+		class [mscorlib]System.IDisposable	V_7)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.WebDavClient::_webProjectBaseUrl
-	IL_0007:  ldstr "/"
-	IL_000c:  ldarg.2 
-	IL_000d:  call string string::Concat(string, string, string)
-	IL_0012:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(string)
+	IL_0002:  ldc.i4 2000
+	IL_0007:  ldstr "Registering project output for COM Interop..."
+	IL_000c:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0011:  ldarg.0 
+	IL_0012:  call instance class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask class NAnt.VSNet.ManagedProjectBase::CreateRegAsmTask()
 	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldstr "PUT"
-	IL_001e:  callvirt instance void class [System]System.Net.WebRequest::set_Method(string)
-	IL_0023:  ldloc.0 
-	IL_0024:  callvirt instance class [System]System.Net.WebHeaderCollection class [System]System.Net.WebRequest::get_Headers()
-	IL_0029:  ldstr "Translate: f"
-	IL_002e:  callvirt instance void class [System]System.Net.WebHeaderCollection::Add(string)
-	IL_0033:  ldloc.0 
-	IL_0034:  call class [System]System.Net.ICredentials class [System]System.Net.CredentialCache::get_DefaultCredentials()
-	IL_0039:  callvirt instance void class [System]System.Net.WebRequest::set_Credentials(class [System]System.Net.ICredentials)
-	IL_003e:  ldarg.1 
-	IL_003f:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0044:  stloc.1 
-	IL_0045:  ldloc.0 
-	IL_0046:  ldloc.1 
-	IL_0047:  callvirt instance int64 class [mscorlib]System.IO.FileInfo::get_Length()
-	IL_004c:  callvirt instance void class [System]System.Net.WebRequest::set_ContentLength(int64)
-	IL_0051:  ldc.i4 102400
-	IL_0056:  stloc.2 
-	IL_0057:  ldloc.2 
-	IL_0058:  newarr [mscorlib]System.Byte
-	IL_005d:  stloc.3 
-	IL_005e:  ldloc.1 
-	IL_005f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0064:  ldc.i4.3 
-	IL_0065:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode)
-	IL_006a:  stloc.s 4
+	IL_0018:  nop 
+	IL_0019:  ldarg.0 
+	IL_001a:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
+	IL_001f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0024:  stloc.2 
 	.try { // 1
-	  IL_006c:  nop 
-	  IL_006d:  ldloc.0 
-	  IL_006e:  callvirt instance class [mscorlib]System.IO.Stream class [System]System.Net.WebRequest::GetRequestStream()
-	  IL_0073:  stloc.s 5
+	  IL_0025:  br IL_0094
+
+	  IL_002a:  ldloc.2 
+	  IL_002b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0030:  castclass NAnt.VSNet.ReferenceBase
+	  IL_0035:  stloc.1 
+	  IL_0036:  nop 
+	  IL_0037:  ldloc.1 
+	  IL_0038:  ldarg.2 
+	  IL_0039:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.ReferenceBase::GetAssemblyReferences(class NAnt.VSNet.Configuration)
+	  IL_003e:  stloc.3 
+	  IL_003f:  nop 
+	  IL_0040:  ldloc.3 
+	  IL_0041:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_0046:  stloc.s 5
 	  .try { // 0
-	    IL_0075:  nop 
-	    IL_0076:  nop 
-	    IL_0077:  ldloc.s 4
-	    IL_0079:  ldloc.3 
-	    IL_007a:  ldc.i4.0 
-	    IL_007b:  ldloc.2 
-	    IL_007c:  callvirt instance int32 class [mscorlib]System.IO.Stream::Read(unsigned int8[], int32, int32)
-	    IL_0081:  stloc.s 6
-	    IL_0083:  ldloc.s 5
-	    IL_0085:  ldloc.3 
-	    IL_0086:  ldc.i4.0 
-	    IL_0087:  ldloc.s 6
-	    IL_0089:  callvirt instance void class [mscorlib]System.IO.Stream::Write(unsigned int8[], int32, int32)
-	    IL_008e:  nop 
-	    IL_008f:  ldloc.s 6
-	    IL_0091:  ldc.i4.0 
-	    IL_0092:  bgt IL_0076
+	    IL_0048:  br IL_006b
 
-	    IL_0097:  nop 
-	    IL_0098:  leave IL_00ac
+	    IL_004d:  ldloc.s 5
+	    IL_004f:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_0054:  stloc.s 4
+	    IL_0056:  nop 
+	    IL_0057:  ldloc.0 
+	    IL_0058:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_References()
+	    IL_005d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	    IL_0062:  ldloc.s 4
+	    IL_0064:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_0069:  pop 
+	    IL_006a:  nop 
+	    IL_006b:  ldloc.s 5
+	    IL_006d:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_0072:  brtrue IL_004d
+
+	    IL_0077:  leave IL_0093
 
 	  } // end .try 0
 	  finally  { // 0
-	    IL_009d:  ldloc.s 5
-	    IL_009f:  brfalse IL_00ab
+	    IL_007c:  ldloc.s 5
+	    IL_007e:  isinst [mscorlib]System.IDisposable
+	    IL_0083:  dup 
+	    IL_0084:  stloc.s 6
+	    IL_0086:  brfalse IL_0092
 
-	    IL_00a4:  ldloc.s 5
-	    IL_00a6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_00ab:  endfinally 
+	    IL_008b:  ldloc.s 6
+	    IL_008d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0092:  endfinally 
 	  } // end handler 0
-	  IL_00ac:  nop 
-	  IL_00ad:  leave IL_00c1
+	  IL_0093:  nop 
+	  IL_0094:  ldloc.2 
+	  IL_0095:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_009a:  brtrue IL_002a
+
+	  IL_009f:  leave IL_00ba
 
 	} // end .try 1
 	finally  { // 1
-	  IL_00b2:  ldloc.s 4
-	  IL_00b4:  brfalse IL_00c0
+	  IL_00a4:  ldloc.2 
+	  IL_00a5:  isinst [mscorlib]System.IDisposable
+	  IL_00aa:  dup 
+	  IL_00ab:  stloc.s 7
+	  IL_00ad:  brfalse IL_00b9
 
-	  IL_00b9:  ldloc.s 4
-	  IL_00bb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00c0:  endfinally 
+	  IL_00b2:  ldloc.s 7
+	  IL_00b4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00b9:  endfinally 
 	} // end handler 1
-	IL_00c1:  ldnull 
-	IL_00c2:  stloc.3 
-	.try { // 3
-	  IL_00c3:  nop 
-	  IL_00c4:  ldloc.0 
-	  IL_00c5:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
-	  IL_00ca:  stloc.s 7
-	  .try { // 2
-	    IL_00cc:  nop 
-	    IL_00cd:  nop 
-	    IL_00ce:  leave IL_00e2
-
-	  } // end .try 2
-	  finally  { // 2
-	    IL_00d3:  ldloc.s 7
-	    IL_00d5:  brfalse IL_00e1
-
-	    IL_00da:  ldloc.s 7
-	    IL_00dc:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_00e1:  endfinally 
-	  } // end handler 2
+	IL_00ba:  ldloc.0 
+	IL_00bb:  ldarg.1 
+	IL_00bc:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
+	IL_00c1:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_00c6:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::set_AssemblyFile(class [mscorlib]System.IO.FileInfo)
+	IL_00cb:  ldloc.0 
+	IL_00cc:  ldarg.3 
+	IL_00cd:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_00d2:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::set_TypeLib(class [mscorlib]System.IO.FileInfo)
+	IL_00d7:  ldloc.0 
+	IL_00d8:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_00dd:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	.try { // 2
 	  IL_00e2:  nop 
-	  IL_00e3:  leave IL_0113
-
-	} // end .try 3
-	catch class [System]System.Net.WebException { // 3
-	  IL_00e8:  stloc.s 8
-	  IL_00ea:  nop 
-	  IL_00eb:  ldloc.s 8
-	  IL_00ed:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebException::get_Response()
-	  IL_00f2:  castclass [System]System.Net.HttpWebResponse
-	  IL_00f7:  stloc.s 9
-	  IL_00f9:  ldloc.s 9
-	  IL_00fb:  callvirt instance valuetype [System]System.Net.HttpStatusCode class [System]System.Net.HttpWebResponse::get_StatusCode()
-	  IL_0100:  ldc.i4 423
-	  IL_0105:  beq IL_010d
-
-	  IL_010a:  nop 
-	  IL_010b:  rethrow 
-	  IL_010d:  nop 
-	  IL_010e:  leave IL_0113
+	  IL_00e3:  ldloc.0 
+	  IL_00e4:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_00e9:  nop 
+	  IL_00ea:  leave IL_00fd
 
-	} // end handler 3
-	IL_0113:  ret 
-    } // end of method WebDavClient::UploadFile
+	} // end .try 2
+	finally  { // 2
+	  IL_00ef:  nop 
+	  IL_00f0:  ldloc.0 
+	  IL_00f1:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_00f6:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	  IL_00fb:  nop 
+	  IL_00fc:  endfinally 
+	} // end handler 2
+	IL_00fd:  ret 
+    } // end of method ManagedProjectBase::RegisterForComInterop
 
-    // method line 144
-    .method public hidebysig 
-           instance default void DeleteFile (string localFileName, string remoteFileName)  cil managed 
+    // method line 130
+    .method private hidebysig 
+           instance default void UnregisterForComInterop (class NAnt.VSNet.ConfigurationSettings config, class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x6dc0
-	// Code size 90 (0x5a)
+        // Method begins at RVA 0x8af0
+	// Code size 318 (0x13e)
 	.maxstack 3
 	.locals init (
-		class [System]System.Net.WebRequest	V_0,
-		class [System]System.Net.WebResponse	V_1)
+		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask	V_0,
+		class NAnt.VSNet.ReferenceBase	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class [System]System.Collections.Specialized.StringCollection	V_3,
+		string	V_4,
+		class [System]System.Collections.Specialized.StringEnumerator	V_5,
+		class [mscorlib]System.IDisposable	V_6,
+		class [mscorlib]System.IDisposable	V_7,
+		string	V_8)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.WebDavClient::_webProjectBaseUrl
-	IL_0007:  ldstr "/"
-	IL_000c:  ldarg.2 
-	IL_000d:  call string string::Concat(string, string, string)
-	IL_0012:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(string)
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldstr "DELETE"
-	IL_001e:  callvirt instance void class [System]System.Net.WebRequest::set_Method(string)
-	IL_0023:  ldloc.0 
-	IL_0024:  callvirt instance class [System]System.Net.WebHeaderCollection class [System]System.Net.WebRequest::get_Headers()
-	IL_0029:  ldstr "Translate: f"
-	IL_002e:  callvirt instance void class [System]System.Net.WebHeaderCollection::Add(string)
-	IL_0033:  ldloc.0 
-	IL_0034:  call class [System]System.Net.ICredentials class [System]System.Net.CredentialCache::get_DefaultCredentials()
-	IL_0039:  callvirt instance void class [System]System.Net.WebRequest::set_Credentials(class [System]System.Net.ICredentials)
-	IL_003e:  ldloc.0 
-	IL_003f:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
-	IL_0044:  stloc.1 
-	.try { // 0
-	  IL_0045:  nop 
-	  IL_0046:  nop 
-	  IL_0047:  leave IL_0059
-
-	} // end .try 0
-	finally  { // 0
-	  IL_004c:  ldloc.1 
-	  IL_004d:  brfalse IL_0058
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance bool class NAnt.VSNet.ConfigurationSettings::get_RegisterForComInterop()
+	IL_0007:  brfalse IL_001c
 
-	  IL_0052:  ldloc.1 
-	  IL_0053:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0058:  endfinally 
-	} // end handler 0
-	IL_0059:  ret 
-    } // end of method WebDavClient::DeleteFile
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
+	IL_0012:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0017:  brtrue IL_0022
 
-    // method line 145
-    .method public hidebysig 
-           instance default void DownloadFile (string localFileName, string remoteFileName)  cil managed 
-    {
-        // Method begins at RVA 0x6e38
-	// Code size 219 (0xdb)
-	.maxstack 4
-	.locals init (
-		class [System]System.Net.WebRequest	V_0,
-		class [mscorlib]System.IO.FileInfo	V_1,
-		int32	V_2,
-		unsigned int8[]	V_3,
-		class [mscorlib]System.IO.FileStream	V_4,
-		class [mscorlib]System.IO.Stream	V_5,
-		int32	V_6)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.WebDavClient::_webProjectBaseUrl
-	IL_0007:  ldstr "/"
-	IL_000c:  ldarg.2 
-	IL_000d:  call string string::Concat(string, string, string)
-	IL_0012:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(string)
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldstr "GET"
-	IL_001e:  callvirt instance void class [System]System.Net.WebRequest::set_Method(string)
-	IL_0023:  ldloc.0 
-	IL_0024:  callvirt instance class [System]System.Net.WebHeaderCollection class [System]System.Net.WebRequest::get_Headers()
-	IL_0029:  ldstr "Translate: f"
-	IL_002e:  callvirt instance void class [System]System.Net.WebHeaderCollection::Add(string)
-	IL_0033:  ldloc.0 
-	IL_0034:  call class [System]System.Net.ICredentials class [System]System.Net.CredentialCache::get_DefaultCredentials()
-	IL_0039:  callvirt instance void class [System]System.Net.WebRequest::set_Credentials(class [System]System.Net.ICredentials)
-	IL_003e:  ldarg.1 
-	IL_003f:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0044:  stloc.1 
-	IL_0045:  ldloc.1 
-	IL_0046:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
-	IL_004b:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0050:  brtrue IL_0063
+	IL_001c:  nop 
+	IL_001d:  br IL_013d
 
-	IL_0055:  nop 
-	IL_0056:  ldloc.1 
-	IL_0057:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
-	IL_005c:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	IL_0061:  pop 
-	IL_0062:  nop 
-	IL_0063:  ldc.i4 102400
-	IL_0068:  stloc.2 
-	IL_0069:  ldloc.2 
-	IL_006a:  newarr [mscorlib]System.Byte
-	IL_006f:  stloc.3 
-	IL_0070:  ldloc.1 
-	IL_0071:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0076:  ldc.i4.4 
-	IL_0077:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode)
-	IL_007c:  stloc.s 4
+	IL_0022:  ldarg.0 
+	IL_0023:  ldc.i4 2000
+	IL_0028:  ldstr "Unregistering project output for COM Interop..."
+	IL_002d:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0032:  ldarg.0 
+	IL_0033:  call instance class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask class NAnt.VSNet.ManagedProjectBase::CreateRegAsmTask()
+	IL_0038:  stloc.0 
+	IL_0039:  nop 
+	IL_003a:  ldarg.0 
+	IL_003b:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
+	IL_0040:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0045:  stloc.2 
 	.try { // 1
-	  IL_007e:  nop 
-	  IL_007f:  ldloc.0 
-	  IL_0080:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
-	  IL_0085:  callvirt instance class [mscorlib]System.IO.Stream class [System]System.Net.WebResponse::GetResponseStream()
-	  IL_008a:  stloc.s 5
+	  IL_0046:  br IL_00b5
+
+	  IL_004b:  ldloc.2 
+	  IL_004c:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0051:  castclass NAnt.VSNet.ReferenceBase
+	  IL_0056:  stloc.1 
+	  IL_0057:  nop 
+	  IL_0058:  ldloc.1 
+	  IL_0059:  ldarg.2 
+	  IL_005a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.ReferenceBase::GetAssemblyReferences(class NAnt.VSNet.Configuration)
+	  IL_005f:  stloc.3 
+	  IL_0060:  nop 
+	  IL_0061:  ldloc.3 
+	  IL_0062:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_0067:  stloc.s 5
 	  .try { // 0
-	    IL_008c:  nop 
-	    IL_008d:  nop 
-	    IL_008e:  ldloc.s 5
-	    IL_0090:  ldloc.3 
-	    IL_0091:  ldc.i4.0 
-	    IL_0092:  ldloc.2 
-	    IL_0093:  callvirt instance int32 class [mscorlib]System.IO.Stream::Read(unsigned int8[], int32, int32)
-	    IL_0098:  stloc.s 6
-	    IL_009a:  ldloc.s 4
-	    IL_009c:  ldloc.3 
-	    IL_009d:  ldc.i4.0 
-	    IL_009e:  ldloc.s 6
-	    IL_00a0:  callvirt instance void class [mscorlib]System.IO.Stream::Write(unsigned int8[], int32, int32)
-	    IL_00a5:  nop 
-	    IL_00a6:  ldloc.s 6
-	    IL_00a8:  ldc.i4.0 
-	    IL_00a9:  bgt IL_008d
+	    IL_0069:  br IL_008c
 
-	    IL_00ae:  nop 
-	    IL_00af:  leave IL_00c3
+	    IL_006e:  ldloc.s 5
+	    IL_0070:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_0075:  stloc.s 4
+	    IL_0077:  nop 
+	    IL_0078:  ldloc.0 
+	    IL_0079:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_References()
+	    IL_007e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	    IL_0083:  ldloc.s 4
+	    IL_0085:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_008a:  pop 
+	    IL_008b:  nop 
+	    IL_008c:  ldloc.s 5
+	    IL_008e:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_0093:  brtrue IL_006e
+
+	    IL_0098:  leave IL_00b4
 
 	  } // end .try 0
 	  finally  { // 0
-	    IL_00b4:  ldloc.s 5
-	    IL_00b6:  brfalse IL_00c2
+	    IL_009d:  ldloc.s 5
+	    IL_009f:  isinst [mscorlib]System.IDisposable
+	    IL_00a4:  dup 
+	    IL_00a5:  stloc.s 6
+	    IL_00a7:  brfalse IL_00b3
 
-	    IL_00bb:  ldloc.s 5
-	    IL_00bd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_00c2:  endfinally 
+	    IL_00ac:  ldloc.s 6
+	    IL_00ae:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_00b3:  endfinally 
 	  } // end handler 0
-	  IL_00c3:  nop 
-	  IL_00c4:  leave IL_00d8
+	  IL_00b4:  nop 
+	  IL_00b5:  ldloc.2 
+	  IL_00b6:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00bb:  brtrue IL_004b
+
+	  IL_00c0:  leave IL_00db
 
 	} // end .try 1
 	finally  { // 1
-	  IL_00c9:  ldloc.s 4
-	  IL_00cb:  brfalse IL_00d7
+	  IL_00c5:  ldloc.2 
+	  IL_00c6:  isinst [mscorlib]System.IDisposable
+	  IL_00cb:  dup 
+	  IL_00cc:  stloc.s 7
+	  IL_00ce:  brfalse IL_00da
 
-	  IL_00d0:  ldloc.s 4
-	  IL_00d2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00d7:  endfinally 
+	  IL_00d3:  ldloc.s 7
+	  IL_00d5:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00da:  endfinally 
 	} // end handler 1
-	IL_00d8:  ldnull 
-	IL_00d9:  stloc.3 
-	IL_00da:  ret 
-    } // end of method WebDavClient::DownloadFile
-
-    // method line 146
-    .method public hidebysig 
-           instance default string GetFileContents (string remoteFileName)  cil managed 
-    {
-        // Method begins at RVA 0x6f3c
-	// Code size 107 (0x6b)
-	.maxstack 3
-	.locals init (
-		class [System]System.Net.WebRequest	V_0,
-		class [mscorlib]System.IO.StreamReader	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.WebDavClient::_webProjectBaseUrl
-	IL_0007:  ldstr "/"
-	IL_000c:  ldarg.1 
-	IL_000d:  call string string::Concat(string, string, string)
-	IL_0012:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(string)
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldstr "GET"
-	IL_001e:  callvirt instance void class [System]System.Net.WebRequest::set_Method(string)
-	IL_0023:  ldloc.0 
-	IL_0024:  callvirt instance class [System]System.Net.WebHeaderCollection class [System]System.Net.WebRequest::get_Headers()
-	IL_0029:  ldstr "Translate: f"
-	IL_002e:  callvirt instance void class [System]System.Net.WebHeaderCollection::Add(string)
-	IL_0033:  ldloc.0 
-	IL_0034:  call class [System]System.Net.ICredentials class [System]System.Net.CredentialCache::get_DefaultCredentials()
-	IL_0039:  callvirt instance void class [System]System.Net.WebRequest::set_Credentials(class [System]System.Net.ICredentials)
-	IL_003e:  ldloc.0 
-	IL_003f:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
-	IL_0044:  callvirt instance class [mscorlib]System.IO.Stream class [System]System.Net.WebResponse::GetResponseStream()
-	IL_0049:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(class [mscorlib]System.IO.Stream)
-	IL_004e:  stloc.1 
-	.try { // 0
-	  IL_004f:  nop 
-	  IL_0050:  ldloc.1 
-	  IL_0051:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
-	  IL_0056:  stloc.2 
-	  IL_0057:  leave IL_0069
+	IL_00db:  ldloc.0 
+	IL_00dc:  ldc.i4.1 
+	IL_00dd:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::set_Unregister(bool)
+	IL_00e2:  ldloc.0 
+	IL_00e3:  ldarg.1 
+	IL_00e4:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
+	IL_00e9:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_00ee:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::set_AssemblyFile(class [mscorlib]System.IO.FileInfo)
+	IL_00f3:  ldarg.0 
+	IL_00f4:  ldarg.1 
+	IL_00f5:  call instance string class NAnt.VSNet.ManagedProjectBase::GetTypeLibraryPath(class NAnt.VSNet.ConfigurationSettings)
+	IL_00fa:  stloc.s 8
+	IL_00fc:  ldloc.s 8
+	IL_00fe:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0103:  brfalse IL_0117
 
-	} // end .try 0
-	finally  { // 0
-	  IL_005c:  ldloc.1 
-	  IL_005d:  brfalse IL_0068
+	IL_0108:  nop 
+	IL_0109:  ldloc.0 
+	IL_010a:  ldloc.s 8
+	IL_010c:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0111:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::set_TypeLib(class [mscorlib]System.IO.FileInfo)
+	IL_0116:  nop 
+	IL_0117:  ldloc.0 
+	IL_0118:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_011d:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	.try { // 2
+	  IL_0122:  nop 
+	  IL_0123:  ldloc.0 
+	  IL_0124:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_0129:  nop 
+	  IL_012a:  leave IL_013d
 
-	  IL_0062:  ldloc.1 
-	  IL_0063:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0068:  endfinally 
-	} // end handler 0
-	IL_0069:  ldloc.2 
-	IL_006a:  ret 
-    } // end of method WebDavClient::GetFileContents
+	} // end .try 2
+	finally  { // 2
+	  IL_012f:  nop 
+	  IL_0130:  ldloc.0 
+	  IL_0131:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_0136:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	  IL_013b:  nop 
+	  IL_013c:  endfinally 
+	} // end handler 2
+	IL_013d:  ret 
+    } // end of method ManagedProjectBase::UnregisterForComInterop
 
-    // method line 147
-    .method public static hidebysig 
-           default string GetFileContentsStatic (string remoteFileName)  cil managed 
+    // method line 131
+    .method private hidebysig 
+           instance default void RegisterEmbeddedResource (string resourceFile, class [System.Xml]System.Xml.XmlElement elemFile)  cil managed 
     {
-        // Method begins at RVA 0x6fc4
-	// Code size 91 (0x5b)
-	.maxstack 2
+        // Method begins at RVA 0x8c64
+	// Code size 243 (0xf3)
+	.maxstack 7
 	.locals init (
-		class [System]System.Net.WebRequest	V_0,
-		class [mscorlib]System.IO.StreamReader	V_1,
-		string	V_2)
+		class [mscorlib]System.IO.FileInfo	V_0,
+		string	V_1,
+		class NAnt.VSNet.Resource	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(string)
+	IL_0001:  ldarg.1 
+	IL_0002:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
 	IL_0007:  stloc.0 
 	IL_0008:  ldloc.0 
-	IL_0009:  ldstr "GET"
-	IL_000e:  callvirt instance void class [System]System.Net.WebRequest::set_Method(string)
-	IL_0013:  ldloc.0 
-	IL_0014:  callvirt instance class [System]System.Net.WebHeaderCollection class [System]System.Net.WebRequest::get_Headers()
-	IL_0019:  ldstr "Translate: f"
-	IL_001e:  callvirt instance void class [System]System.Net.WebHeaderCollection::Add(string)
-	IL_0023:  ldloc.0 
-	IL_0024:  call class [System]System.Net.ICredentials class [System]System.Net.CredentialCache::get_DefaultCredentials()
-	IL_0029:  callvirt instance void class [System]System.Net.WebRequest::set_Credentials(class [System]System.Net.ICredentials)
-	IL_002e:  ldloc.0 
-	IL_002f:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
-	IL_0034:  callvirt instance class [mscorlib]System.IO.Stream class [System]System.Net.WebResponse::GetResponseStream()
-	IL_0039:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(class [mscorlib]System.IO.Stream)
-	IL_003e:  stloc.1 
-	.try { // 0
-	  IL_003f:  nop 
-	  IL_0040:  ldloc.1 
-	  IL_0041:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
-	  IL_0046:  stloc.2 
-	  IL_0047:  leave IL_0059
-
-	} // end .try 0
-	finally  { // 0
-	  IL_004c:  ldloc.1 
-	  IL_004d:  brfalse IL_0058
-
-	  IL_0052:  ldloc.1 
-	  IL_0053:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0058:  endfinally 
-	} // end handler 0
-	IL_0059:  ldloc.2 
-	IL_005a:  ret 
-    } // end of method WebDavClient::GetFileContentsStatic
-
-  } // end of class NAnt.VSNet.WebDavClient
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit GenericSolution
-  	extends NAnt.VSNet.SolutionBase
-  {
+	IL_0009:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_000e:  brfalse IL_005c
 
-    // method line 148
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver)  cil managed 
-    {
-        // Method begins at RVA 0x703c
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  ldarg.s 4
-	IL_0006:  call instance void class NAnt.VSNet.SolutionBase::'.ctor'(class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver)
-	IL_000b:  nop 
-	IL_000c:  ret 
-    } // end of method GenericSolution::.ctor
+	IL_0013:  ldstr ".resx"
+	IL_0018:  ldloc.0 
+	IL_0019:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Extension()
+	IL_001e:  ldc.i4.1 
+	IL_001f:  call int32 string::Compare(string, string, bool)
+	IL_0024:  brtrue IL_005c
 
-  } // end of class NAnt.VSNet.GenericSolution
-}
+	IL_0029:  ldloc.0 
+	IL_002a:  callvirt instance int64 class [mscorlib]System.IO.FileInfo::get_Length()
+	IL_002f:  ldc.i4.0 
+	IL_0030:  conv.i8 
+	IL_0031:  bne.un IL_005c
 
-.namespace NAnt.VSNet
-{
-  .class public auto ansi sealed beforefieldinit ConfigurationMap
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IDictionary, [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+	IL_0036:  nop 
+	IL_0037:  ldarg.0 
+	IL_0038:  ldc.i4 2000
+	IL_003d:  ldstr "Skipping zero-byte embedded resource '{0}'."
+	IL_0042:  ldc.i4.1 
+	IL_0043:  newarr [mscorlib]System.Object
+	IL_0048:  dup 
+	IL_0049:  ldc.i4.0 
+	IL_004a:  ldloc.0 
+	IL_004b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0050:  stelem.ref 
+	IL_0051:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0056:  nop 
+	IL_0057:  br IL_00f2
 
-    .field  private initonly  class [mscorlib]System.Collections.Hashtable _innerHash
+	IL_005c:  nop 
+	IL_005d:  ldarg.2 
+	IL_005e:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0063:  ldstr "DependentUpon"
+	IL_0068:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_006d:  brfalse IL_0097
 
-    // method line 149
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x704a
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0012:  ret 
-    } // end of method ConfigurationMap::.ctor
+	IL_0072:  ldloc.0 
+	IL_0073:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
+	IL_0078:  ldarg.2 
+	IL_0079:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_007e:  ldstr "DependentUpon"
+	IL_0083:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0088:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_008d:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0092:  br IL_0098
 
-    // method line 150
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (int32 capacity)  cil managed 
-    {
-        // Method begins at RVA 0x705e
-	// Code size 20 (0x14)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable(int32)
-	IL_000e:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::.ctor
+	IL_0097:  ldnull 
+	IL_0098:  stloc.1 
+	IL_0099:  ldarg.0 
+	IL_009a:  ldloc.0 
+	IL_009b:  ldarg.2 
+	IL_009c:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_00a1:  ldstr "RelPath"
+	IL_00a6:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_00ab:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_00b0:  ldloc.1 
+	IL_00b1:  ldarg.0 
+	IL_00b2:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_00b7:  ldarg.0 
+	IL_00b8:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
+	IL_00bd:  newobj instance void class NAnt.VSNet.Resource::'.ctor'(class NAnt.VSNet.ManagedProjectBase, class [mscorlib]System.IO.FileInfo, string, string, class NAnt.VSNet.Tasks.SolutionTask, class [NAnt.Core]NAnt.Core.Util.GacCache)
+	IL_00c2:  stloc.2 
+	IL_00c3:  ldloc.2 
+	IL_00c4:  callvirt instance class [mscorlib]System.Globalization.CultureInfo class NAnt.VSNet.Resource::get_Culture()
+	IL_00c9:  brfalse IL_00e2
 
-    // method line 151
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_InnerHash ()  cil managed 
-    {
-        // Method begins at RVA 0x7074
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_00ce:  nop 
+	IL_00cf:  ldarg.0 
+	IL_00d0:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_localizedResources
+	IL_00d5:  ldloc.2 
+	IL_00d6:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_00db:  pop 
+	IL_00dc:  nop 
+	IL_00dd:  br IL_00f1
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationMap::get_InnerHash
+	IL_00e2:  nop 
+	IL_00e3:  ldarg.0 
+	IL_00e4:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_neutralResources
+	IL_00e9:  ldloc.2 
+	IL_00ea:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_00ef:  pop 
+	IL_00f0:  nop 
+	IL_00f1:  nop 
+	IL_00f2:  ret 
+    } // end of method ManagedProjectBase::RegisterEmbeddedResource
 
-    // method line 152
-    .method public hidebysig 
-           instance default class NAnt.VSNet.ConfigurationMapEnumerator GetEnumerator ()  cil managed 
+    // method line 132
+    .method private hidebysig 
+           instance default void CompileResXFiles (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x7090
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x8d64
+	// Code size 812 (0x32c)
+	.maxstack 7
 	.locals init (
-		class NAnt.VSNet.ConfigurationMapEnumerator	V_0)
+		class [mscorlib]System.Collections.Hashtable	V_0,
+		class NAnt.VSNet.Resource	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class [mscorlib]System.IO.FileInfo	V_3,
+		class [mscorlib]System.IDisposable	V_4,
+		class NAnt.VSNet.Resource	V_5,
+		class [mscorlib]System.Collections.IEnumerator	V_6,
+		class [mscorlib]System.IO.FileInfo	V_7,
+		class [mscorlib]System.IDisposable	V_8,
+		class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask	V_9,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_10,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_11,
+		class NAnt.VSNet.Resource	V_12,
+		class [mscorlib]System.IO.FileInfo	V_13,
+		class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.QualifiedResource	V_14,
+		class [mscorlib]System.IDisposable	V_15,
+		class NAnt.VSNet.ReferenceBase	V_16,
+		class [mscorlib]System.Collections.IEnumerator	V_17,
+		class [System]System.Collections.Specialized.StringCollection	V_18,
+		string	V_19,
+		class [System]System.Collections.Specialized.StringEnumerator	V_20,
+		class [mscorlib]System.IDisposable	V_21,
+		class [mscorlib]System.IDisposable	V_22)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.VSNet.ConfigurationMapEnumerator::'.ctor'(class NAnt.VSNet.ConfigurationMap)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationMap::GetEnumerator
+	IL_0002:  ldc.i4 2000
+	IL_0007:  ldstr "Compiling resources:"
+	IL_000c:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0011:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0016:  stloc.0 
+	IL_0017:  nop 
+	IL_0018:  ldarg.0 
+	IL_0019:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_neutralResources
+	IL_001e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0023:  stloc.2 
+	.try { // 0
+	  IL_0024:  br IL_0077
 
-    // method line 153
-    .method private final virtual hidebysig newslot 
-           instance default class [mscorlib]System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x70ac
-	.override class [mscorlib]System.Collections.IDictionary::GetEnumerator
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationMapEnumerator class NAnt.VSNet.ConfigurationMap::GetEnumerator()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0029:  ldloc.2 
+	  IL_002a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_002f:  castclass NAnt.VSNet.Resource
+	  IL_0034:  stloc.1 
+	  IL_0035:  nop 
+	  IL_0036:  ldloc.1 
+	  IL_0037:  callvirt instance bool class NAnt.VSNet.Resource::get_IsResX()
+	  IL_003c:  brtrue IL_0047
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationMap::System.Collections.IDictionary.GetEnumerator
+	  IL_0041:  nop 
+	  IL_0042:  leave IL_0077
 
-    // method line 154
-    .method private final virtual hidebysig newslot 
-           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0x70c8
-	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerator	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationMapEnumerator class NAnt.VSNet.ConfigurationMap::GetEnumerator()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0047:  ldarg.0 
+	  IL_0048:  ldc.i4 2000
+	  IL_004d:  ldstr " - {0}"
+	  IL_0052:  ldc.i4.1 
+	  IL_0053:  newarr [mscorlib]System.Object
+	  IL_0058:  dup 
+	  IL_0059:  ldc.i4.0 
+	  IL_005a:  ldloc.1 
+	  IL_005b:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
+	  IL_0060:  stelem.ref 
+	  IL_0061:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_0066:  ldloc.1 
+	  IL_0067:  ldarg.1 
+	  IL_0068:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::GetCompiledResourceFile(class NAnt.VSNet.Configuration)
+	  IL_006d:  stloc.3 
+	  IL_006e:  ldloc.0 
+	  IL_006f:  ldloc.1 
+	  IL_0070:  ldloc.3 
+	  IL_0071:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	  IL_0076:  nop 
+	  IL_0077:  ldloc.2 
+	  IL_0078:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_007d:  brtrue IL_0029
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationMap::System.Collections.IEnumerable.GetEnumerator
+	  IL_0082:  leave IL_009d
 
-    // method line 155
-    .method public hidebysig 
-           instance default void Remove (class NAnt.VSNet.Configuration configuration)  cil managed 
-    {
-        // Method begins at RVA 0x70e3
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
-	IL_000d:  ret 
-    } // end of method ConfigurationMap::Remove
+	} // end .try 0
+	finally  { // 0
+	  IL_0087:  ldloc.2 
+	  IL_0088:  isinst [mscorlib]System.IDisposable
+	  IL_008d:  dup 
+	  IL_008e:  stloc.s 4
+	  IL_0090:  brfalse IL_009c
 
-    // method line 156
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IDictionary.Remove (object key)  cil managed 
-    {
-        // Method begins at RVA 0x70f2
-	.override class [mscorlib]System.Collections.IDictionary::Remove
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  castclass NAnt.VSNet.Configuration
-	IL_0008:  call instance void class NAnt.VSNet.ConfigurationMap::Remove(class NAnt.VSNet.Configuration)
-	IL_000d:  ret 
-    } // end of method ConfigurationMap::System.Collections.IDictionary.Remove
+	  IL_0095:  ldloc.s 4
+	  IL_0097:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_009c:  endfinally 
+	} // end handler 0
+	IL_009d:  nop 
+	IL_009e:  ldarg.0 
+	IL_009f:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_localizedResources
+	IL_00a4:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_00a9:  stloc.s 6
+	.try { // 1
+	  IL_00ab:  br IL_0106
 
-    // method line 157
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.VSNet.Configuration key)  cil managed 
-    {
-        // Method begins at RVA 0x7104
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	  IL_00b0:  ldloc.s 6
+	  IL_00b2:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_00b7:  castclass NAnt.VSNet.Resource
+	  IL_00bc:  stloc.s 5
+	  IL_00be:  nop 
+	  IL_00bf:  ldloc.s 5
+	  IL_00c1:  callvirt instance bool class NAnt.VSNet.Resource::get_IsResX()
+	  IL_00c6:  brtrue IL_00d1
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ConfigurationMap::Contains
+	  IL_00cb:  nop 
+	  IL_00cc:  leave IL_0106
 
-    // method line 158
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IDictionary.Contains (object key)  cil managed 
-    {
-        // Method begins at RVA 0x7128
-	.override class [mscorlib]System.Collections.IDictionary::Contains
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  castclass NAnt.VSNet.Configuration
-	IL_0008:  call instance bool class NAnt.VSNet.ConfigurationMap::Contains(class NAnt.VSNet.Configuration)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	  IL_00d1:  ldarg.0 
+	  IL_00d2:  ldc.i4 2000
+	  IL_00d7:  ldstr " - {0}"
+	  IL_00dc:  ldc.i4.1 
+	  IL_00dd:  newarr [mscorlib]System.Object
+	  IL_00e2:  dup 
+	  IL_00e3:  ldc.i4.0 
+	  IL_00e4:  ldloc.s 5
+	  IL_00e6:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
+	  IL_00eb:  stelem.ref 
+	  IL_00ec:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_00f1:  ldloc.s 5
+	  IL_00f3:  ldarg.1 
+	  IL_00f4:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::GetCompiledResourceFile(class NAnt.VSNet.Configuration)
+	  IL_00f9:  stloc.s 7
+	  IL_00fb:  ldloc.0 
+	  IL_00fc:  ldloc.s 5
+	  IL_00fe:  ldloc.s 7
+	  IL_0100:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	  IL_0105:  nop 
+	  IL_0106:  ldloc.s 6
+	  IL_0108:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_010d:  brtrue IL_00b0
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ConfigurationMap::System.Collections.IDictionary.Contains
+	  IL_0112:  leave IL_012e
 
-    // method line 159
-    .method public final virtual hidebysig newslot 
-           instance default void Clear ()  cil managed 
-    {
-        // Method begins at RVA 0x7149
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Clear()
-	IL_000c:  ret 
-    } // end of method ConfigurationMap::Clear
+	} // end .try 1
+	finally  { // 1
+	  IL_0117:  ldloc.s 6
+	  IL_0119:  isinst [mscorlib]System.IDisposable
+	  IL_011e:  dup 
+	  IL_011f:  stloc.s 8
+	  IL_0121:  brfalse IL_012d
 
-    // method line 160
-    .method public hidebysig 
-           instance default void Add (class NAnt.VSNet.Configuration key, class NAnt.VSNet.Configuration 'value')  cil managed 
-    {
-        // Method begins at RVA 0x7157
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_000e:  ret 
-    } // end of method ConfigurationMap::Add
+	  IL_0126:  ldloc.s 8
+	  IL_0128:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_012d:  endfinally 
+	} // end handler 1
+	IL_012e:  ldloc.0 
+	IL_012f:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
+	IL_0134:  brtrue IL_013f
 
-    // method line 161
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IDictionary.Add (object key, object 'value')  cil managed 
-    {
-        // Method begins at RVA 0x7167
-	.override class [mscorlib]System.Collections.IDictionary::Add
-	// Code size 20 (0x14)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  castclass NAnt.VSNet.Configuration
-	IL_0008:  ldarg.2 
-	IL_0009:  castclass NAnt.VSNet.Configuration
-	IL_000e:  call instance void class NAnt.VSNet.ConfigurationMap::Add(class NAnt.VSNet.Configuration, class NAnt.VSNet.Configuration)
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::System.Collections.IDictionary.Add
+	IL_0139:  nop 
+	IL_013a:  br IL_032b
 
-    // method line 162
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsReadOnly ()  cil managed 
-    {
-        // Method begins at RVA 0x717c
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsReadOnly()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_013f:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask::'.ctor'()
+	IL_0144:  stloc.s 9
+	IL_0146:  ldloc.s 9
+	IL_0148:  ldarg.0 
+	IL_0149:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_014e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0153:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0158:  ldloc.s 9
+	IL_015a:  ldarg.0 
+	IL_015b:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0160:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0165:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_016a:  ldloc.s 9
+	IL_016c:  ldarg.0 
+	IL_016d:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0172:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0177:  ldloc.s 9
+	IL_0179:  ldarg.0 
+	IL_017a:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_017f:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_0184:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
+	IL_0189:  ldloc.s 9
+	IL_018b:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	IL_0190:  ldloc.s 9
+	IL_0192:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	IL_0197:  ldloc.s 9
+	IL_0199:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_019e:  ldloc.s 9
+	IL_01a0:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	IL_01a5:  ldloc.s 9
+	IL_01a7:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_01ac:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_01b1:  ldloc.s 9
+	IL_01b3:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	IL_01b8:  ldloc.s 9
+	IL_01ba:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_01bf:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_01c4:  ldloc.s 9
+	IL_01c6:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	IL_01cb:  ldarg.0 
+	IL_01cc:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_01d1:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_01d6:  nop 
+	IL_01d7:  ldloc.0 
+	IL_01d8:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_01dd:  stloc.s 11
+	.try { // 2
+	  IL_01df:  br IL_022f
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::get_IsReadOnly
+	  IL_01e4:  ldloc.s 11
+	  IL_01e6:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_01eb:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_01f0:  stloc.s 10
+	  IL_01f2:  nop 
+	  IL_01f3:  ldloca.s 10
+	  IL_01f5:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_01fa:  castclass NAnt.VSNet.Resource
+	  IL_01ff:  stloc.s 12
+	  IL_0201:  ldloca.s 10
+	  IL_0203:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_0208:  castclass [mscorlib]System.IO.FileInfo
+	  IL_020d:  stloc.s 13
+	  IL_020f:  ldloc.s 12
+	  IL_0211:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
+	  IL_0216:  ldloc.s 13
+	  IL_0218:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.QualifiedResource::'.ctor'(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo)
+	  IL_021d:  stloc.s 14
+	  IL_021f:  ldloc.s 9
+	  IL_0221:  callvirt instance class [mscorlib]System.Collections.ArrayList class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask::get_QualifiedResources()
+	  IL_0226:  ldloc.s 14
+	  IL_0228:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_022d:  pop 
+	  IL_022e:  nop 
+	  IL_022f:  ldloc.s 11
+	  IL_0231:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0236:  brtrue IL_01e4
 
-    // method line 163
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.Configuration get_Item (class NAnt.VSNet.Configuration key)  cil managed 
+	  IL_023b:  leave IL_0257
+
+	} // end .try 2
+	finally  { // 2
+	  IL_0240:  ldloc.s 11
+	  IL_0242:  isinst [mscorlib]System.IDisposable
+	  IL_0247:  dup 
+	  IL_0248:  stloc.s 15
+	  IL_024a:  brfalse IL_0256
+
+	  IL_024f:  ldloc.s 15
+	  IL_0251:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0256:  endfinally 
+	} // end handler 2
+	IL_0257:  nop 
+	IL_0258:  ldarg.0 
+	IL_0259:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
+	IL_025e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0263:  stloc.s 17
+	.try { // 4
+	  IL_0265:  br IL_02da
+
+	  IL_026a:  ldloc.s 17
+	  IL_026c:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0271:  castclass NAnt.VSNet.ReferenceBase
+	  IL_0276:  stloc.s 16
+	  IL_0278:  nop 
+	  IL_0279:  ldloc.s 16
+	  IL_027b:  ldarg.1 
+	  IL_027c:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.ReferenceBase::GetAssemblyReferences(class NAnt.VSNet.Configuration)
+	  IL_0281:  stloc.s 18
+	  IL_0283:  nop 
+	  IL_0284:  ldloc.s 18
+	  IL_0286:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_028b:  stloc.s 20
+	  .try { // 3
+	    IL_028d:  br IL_02b1
+
+	    IL_0292:  ldloc.s 20
+	    IL_0294:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_0299:  stloc.s 19
+	    IL_029b:  nop 
+	    IL_029c:  ldloc.s 9
+	    IL_029e:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
+	    IL_02a3:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	    IL_02a8:  ldloc.s 19
+	    IL_02aa:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_02af:  pop 
+	    IL_02b0:  nop 
+	    IL_02b1:  ldloc.s 20
+	    IL_02b3:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_02b8:  brtrue IL_0292
+
+	    IL_02bd:  leave IL_02d9
+
+	  } // end .try 3
+	  finally  { // 3
+	    IL_02c2:  ldloc.s 20
+	    IL_02c4:  isinst [mscorlib]System.IDisposable
+	    IL_02c9:  dup 
+	    IL_02ca:  stloc.s 21
+	    IL_02cc:  brfalse IL_02d8
+
+	    IL_02d1:  ldloc.s 21
+	    IL_02d3:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_02d8:  endfinally 
+	  } // end handler 3
+	  IL_02d9:  nop 
+	  IL_02da:  ldloc.s 17
+	  IL_02dc:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_02e1:  brtrue IL_026a
+
+	  IL_02e6:  leave IL_0302
+
+	} // end .try 4
+	finally  { // 4
+	  IL_02eb:  ldloc.s 17
+	  IL_02ed:  isinst [mscorlib]System.IDisposable
+	  IL_02f2:  dup 
+	  IL_02f3:  stloc.s 22
+	  IL_02f5:  brfalse IL_0301
+
+	  IL_02fa:  ldloc.s 22
+	  IL_02fc:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0301:  endfinally 
+	} // end handler 4
+	IL_0302:  ldloc.s 9
+	IL_0304:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0309:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	.try { // 5
+	  IL_030e:  nop 
+	  IL_030f:  ldloc.s 9
+	  IL_0311:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_0316:  nop 
+	  IL_0317:  leave IL_032b
+
+	} // end .try 5
+	finally  { // 5
+	  IL_031c:  nop 
+	  IL_031d:  ldloc.s 9
+	  IL_031f:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_0324:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	  IL_0329:  nop 
+	  IL_032a:  endfinally 
+	} // end handler 5
+	IL_032b:  ret 
+    } // end of method ManagedProjectBase::CompileResXFiles
+
+    // method line 133
+    .method private hidebysig 
+           instance default void WriteNeutralResourceOptions (class [mscorlib]System.IO.StreamWriter sw, class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x719c
-	// Code size 26 (0x1a)
-	.maxstack 2
+        // Method begins at RVA 0x90e8
+	// Code size 233 (0xe9)
+	.maxstack 7
 	.locals init (
-		class NAnt.VSNet.Configuration	V_0)
+		class NAnt.VSNet.Resource	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class [mscorlib]System.IO.FileInfo	V_2,
+		string	V_3,
+		class [mscorlib]System.IO.FileInfo	V_4,
+		class [mscorlib]System.IDisposable	V_5)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_000d:  castclass NAnt.VSNet.Configuration
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_neutralResources
+	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_000c:  brtrue IL_0017
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ConfigurationMap::get_Item
+	IL_0011:  nop 
+	IL_0012:  br IL_00e8
 
-    // method line 164
-    .method public hidebysig specialname 
-           instance default void set_Item (class NAnt.VSNet.Configuration key, class NAnt.VSNet.Configuration 'value')  cil managed 
+	IL_0017:  nop 
+	IL_0018:  ldarg.0 
+	IL_0019:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_neutralResources
+	IL_001e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0023:  stloc.1 
+	.try { // 0
+	  IL_0024:  br IL_00c2
+
+	  IL_0029:  ldloc.1 
+	  IL_002a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_002f:  castclass NAnt.VSNet.Resource
+	  IL_0034:  stloc.0 
+	  IL_0035:  nop 
+	  IL_0036:  ldarg.0 
+	  IL_0037:  ldc.i4 2000
+	  IL_003c:  ldstr " - {0}"
+	  IL_0041:  ldc.i4.1 
+	  IL_0042:  newarr [mscorlib]System.Object
+	  IL_0047:  dup 
+	  IL_0048:  ldc.i4.0 
+	  IL_0049:  ldloc.0 
+	  IL_004a:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
+	  IL_004f:  stelem.ref 
+	  IL_0050:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_0055:  ldloc.0 
+	  IL_0056:  callvirt instance bool class NAnt.VSNet.Resource::get_IsResX()
+	  IL_005b:  brfalse IL_0093
+
+	  IL_0060:  nop 
+	  IL_0061:  ldloc.0 
+	  IL_0062:  ldarg.2 
+	  IL_0063:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::GetCompiledResourceFile(class NAnt.VSNet.Configuration)
+	  IL_0068:  stloc.2 
+	  IL_0069:  ldloc.0 
+	  IL_006a:  ldarg.2 
+	  IL_006b:  callvirt instance string class NAnt.VSNet.Resource::GetManifestResourceName(class NAnt.VSNet.Configuration)
+	  IL_0070:  stloc.3 
+	  IL_0071:  ldarg.1 
+	  IL_0072:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0077:  ldstr "/res:\"{0}\",\"{1}\""
+	  IL_007c:  ldloc.2 
+	  IL_007d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0082:  ldloc.3 
+	  IL_0083:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_0088:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_008d:  nop 
+	  IL_008e:  br IL_00c1
+
+	  IL_0093:  nop 
+	  IL_0094:  ldloc.0 
+	  IL_0095:  ldarg.2 
+	  IL_0096:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::Compile(class NAnt.VSNet.Configuration)
+	  IL_009b:  stloc.s 4
+	  IL_009d:  ldarg.1 
+	  IL_009e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_00a3:  ldstr "/res:\"{0}\",\"{1}\""
+	  IL_00a8:  ldloc.s 4
+	  IL_00aa:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_00af:  ldloc.0 
+	  IL_00b0:  ldarg.2 
+	  IL_00b1:  callvirt instance string class NAnt.VSNet.Resource::GetManifestResourceName(class NAnt.VSNet.Configuration)
+	  IL_00b6:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	  IL_00bb:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_00c0:  nop 
+	  IL_00c1:  nop 
+	  IL_00c2:  ldloc.1 
+	  IL_00c3:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00c8:  brtrue IL_0029
+
+	  IL_00cd:  leave IL_00e8
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00d2:  ldloc.1 
+	  IL_00d3:  isinst [mscorlib]System.IDisposable
+	  IL_00d8:  dup 
+	  IL_00d9:  stloc.s 5
+	  IL_00db:  brfalse IL_00e7
+
+	  IL_00e0:  ldloc.s 5
+	  IL_00e2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00e7:  endfinally 
+	} // end handler 0
+	IL_00e8:  ret 
+    } // end of method ManagedProjectBase::WriteNeutralResourceOptions
+
+    // method line 134
+    .method private hidebysig 
+           instance default bool PreBuild (class NAnt.VSNet.ConfigurationSettings cs)  cil managed 
     {
-        // Method begins at RVA 0x71c2
-	// Code size 15 (0xf)
-	.maxstack 8
+        // Method begins at RVA 0x91f0
+	// Code size 84 (0x54)
+	.maxstack 6
+	.locals init (
+		string	V_0,
+		string	V_1,
+		string	V_2,
+		bool	V_3)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_000e:  ret 
-    } // end of method ConfigurationMap::set_Item
+	IL_0002:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_0007:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_PreBuildEvent()
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  brfalse IL_004b
 
-    // method line 165
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionary.get_Item (object key)  cil managed 
+	IL_0013:  nop 
+	IL_0014:  ldarg.1 
+	IL_0015:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	IL_001a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001f:  ldstr "PreBuildEvent.bat"
+	IL_0024:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0029:  stloc.1 
+	IL_002a:  ldarg.1 
+	IL_002b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	IL_0030:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0035:  stloc.2 
+	IL_0036:  ldarg.0 
+	IL_0037:  ldstr "PreBuildEvent"
+	IL_003c:  ldloc.0 
+	IL_003d:  ldloc.1 
+	IL_003e:  ldloc.2 
+	IL_003f:  ldarg.1 
+	IL_0040:  call instance bool class NAnt.VSNet.ProjectBase::ExecuteBuildEvent(string, string, string, string, class NAnt.VSNet.ConfigurationBase)
+	IL_0045:  stloc.3 
+	IL_0046:  br IL_0052
+
+	IL_004b:  ldc.i4.1 
+	IL_004c:  stloc.3 
+	IL_004d:  br IL_0052
+
+	IL_0052:  ldloc.3 
+	IL_0053:  ret 
+    } // end of method ManagedProjectBase::PreBuild
+
+    // method line 135
+    .method private hidebysig 
+           instance default bool PostBuild (class NAnt.VSNet.ConfigurationSettings cs, bool bCompileSuccess, bool bOutputUpdated)  cil managed 
     {
-        // Method begins at RVA 0x71d4
-	.override class [mscorlib]System.Collections.IDictionary::get_Item
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x9250
+	// Code size 359 (0x167)
+	.maxstack 7
 	.locals init (
-		object	V_0)
+		string	V_0,
+		string	V_1,
+		string	V_2,
+		bool	V_3,
+		string	V_4,
+		bool	V_5)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  castclass NAnt.VSNet.Configuration
-	IL_0008:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMap::get_Item(class NAnt.VSNet.Configuration)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_0007:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_PostBuildEvent()
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  brfalse IL_015c
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ConfigurationMap::System.Collections.IDictionary.get_Item
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldc.i4 1000
+	IL_001a:  ldstr "PostBuild commandline: {0}"
+	IL_001f:  ldc.i4.1 
+	IL_0020:  newarr [mscorlib]System.Object
+	IL_0025:  dup 
+	IL_0026:  ldc.i4.0 
+	IL_0027:  ldloc.0 
+	IL_0028:  stelem.ref 
+	IL_0029:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_002e:  ldarg.1 
+	IL_002f:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	IL_0034:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0039:  ldstr "PostBuildEvent.bat"
+	IL_003e:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0043:  stloc.1 
+	IL_0044:  ldarg.1 
+	IL_0045:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	IL_004a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_004f:  stloc.2 
+	IL_0050:  ldarg.0 
+	IL_0051:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_0056:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_RunPostBuildEvent()
+	IL_005b:  stloc.s 4
+	IL_005d:  ldloc.s 4
+	IL_005f:  brfalse IL_014d
 
-    // method line 166
-    .method private final virtual hidebysig newslot specialname 
-           instance default void System.Collections.IDictionary.set_Item (object key, object 'value')  cil managed 
+	IL_0064:  ldloc.s 4
+	IL_0066:  ldstr "OnBuildSuccess"
+	IL_006b:  call bool string::op_Equality(string, string)
+	IL_0070:  brtrue IL_009c
+
+	IL_0075:  ldloc.s 4
+	IL_0077:  ldstr "Always"
+	IL_007c:  call bool string::op_Equality(string, string)
+	IL_0081:  brtrue IL_00e2
+
+	IL_0086:  ldloc.s 4
+	IL_0088:  ldstr "OnOutputUpdated"
+	IL_008d:  call bool string::op_Equality(string, string)
+	IL_0092:  brtrue IL_0107
+
+	IL_0097:  br IL_014d
+
+	IL_009c:  ldarg.2 
+	IL_009d:  brfalse IL_00c9
+
+	IL_00a2:  nop 
+	IL_00a3:  ldarg.0 
+	IL_00a4:  ldc.i4 1000
+	IL_00a9:  ldstr "PostBuild+OnBuildSuccess+bCompileSuccess"
+	IL_00ae:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_00b3:  ldarg.0 
+	IL_00b4:  ldstr "PostBuildEvent"
+	IL_00b9:  ldloc.0 
+	IL_00ba:  ldloc.1 
+	IL_00bb:  ldloc.2 
+	IL_00bc:  ldarg.1 
+	IL_00bd:  call instance bool class NAnt.VSNet.ProjectBase::ExecuteBuildEvent(string, string, string, string, class NAnt.VSNet.ConfigurationBase)
+	IL_00c2:  stloc.3 
+	IL_00c3:  nop 
+	IL_00c4:  br IL_00dd
+
+	IL_00c9:  nop 
+	IL_00ca:  ldarg.0 
+	IL_00cb:  ldc.i4 1000
+	IL_00d0:  ldstr "PostBuild+OnBuildSuccess"
+	IL_00d5:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_00da:  ldc.i4.1 
+	IL_00db:  stloc.3 
+	IL_00dc:  nop 
+	IL_00dd:  br IL_0154
+
+	IL_00e2:  ldarg.0 
+	IL_00e3:  ldc.i4 1000
+	IL_00e8:  ldstr "PostBuild+Always"
+	IL_00ed:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_00f2:  ldarg.0 
+	IL_00f3:  ldstr "PostBuildEvent"
+	IL_00f8:  ldloc.0 
+	IL_00f9:  ldloc.1 
+	IL_00fa:  ldloc.2 
+	IL_00fb:  ldarg.1 
+	IL_00fc:  call instance bool class NAnt.VSNet.ProjectBase::ExecuteBuildEvent(string, string, string, string, class NAnt.VSNet.ConfigurationBase)
+	IL_0101:  stloc.3 
+	IL_0102:  br IL_0154
+
+	IL_0107:  ldarg.3 
+	IL_0108:  brfalse IL_0134
+
+	IL_010d:  nop 
+	IL_010e:  ldarg.0 
+	IL_010f:  ldc.i4 1000
+	IL_0114:  ldstr "PostBuild+OnOutputUpdated+bOutputUpdated"
+	IL_0119:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_011e:  ldarg.0 
+	IL_011f:  ldstr "PostBuildEvent"
+	IL_0124:  ldloc.0 
+	IL_0125:  ldloc.1 
+	IL_0126:  ldloc.2 
+	IL_0127:  ldarg.1 
+	IL_0128:  call instance bool class NAnt.VSNet.ProjectBase::ExecuteBuildEvent(string, string, string, string, class NAnt.VSNet.ConfigurationBase)
+	IL_012d:  stloc.3 
+	IL_012e:  nop 
+	IL_012f:  br IL_0148
+
+	IL_0134:  nop 
+	IL_0135:  ldarg.0 
+	IL_0136:  ldc.i4 1000
+	IL_013b:  ldstr "PostBuild+OnOutputUpdated"
+	IL_0140:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0145:  ldc.i4.1 
+	IL_0146:  stloc.3 
+	IL_0147:  nop 
+	IL_0148:  br IL_0154
+
+	IL_014d:  ldc.i4.0 
+	IL_014e:  stloc.3 
+	IL_014f:  br IL_0154
+
+	IL_0154:  ldloc.3 
+	IL_0155:  stloc.s 5
+	IL_0157:  br IL_0164
+
+	IL_015c:  ldc.i4.1 
+	IL_015d:  stloc.s 5
+	IL_015f:  br IL_0164
+
+	IL_0164:  ldloc.s 5
+	IL_0166:  ret 
+    } // end of method ManagedProjectBase::PostBuild
+
+    // method line 136
+    .method private hidebysig 
+           instance default bool CheckUpToDate (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x71f5
-	.override class [mscorlib]System.Collections.IDictionary::set_Item
-	// Code size 20 (0x14)
-	.maxstack 8
+        // Method begins at RVA 0x93c4
+	// Code size 603 (0x25b)
+	.maxstack 7
+	.locals init (
+		valuetype [mscorlib]System.DateTime	V_0,
+		class NAnt.VSNet.ConfigurationSettings	V_1,
+		bool	V_2,
+		string	V_3,
+		string	V_4,
+		class [mscorlib]System.Collections.IEnumerator	V_5,
+		class [mscorlib]System.IDisposable	V_6,
+		class NAnt.VSNet.Resource	V_7,
+		class [mscorlib]System.Collections.IEnumerator	V_8,
+		class [mscorlib]System.IO.FileInfo	V_9,
+		class [mscorlib]System.IDisposable	V_10,
+		class NAnt.VSNet.ReferenceBase	V_11,
+		class [mscorlib]System.Collections.IEnumerator	V_12,
+		class [mscorlib]System.IDisposable	V_13,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_14,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_15,
+		string	V_16,
+		class [mscorlib]System.IDisposable	V_17)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  castclass NAnt.VSNet.Configuration
-	IL_0008:  ldarg.2 
-	IL_0009:  castclass NAnt.VSNet.Configuration
-	IL_000e:  call instance void class NAnt.VSNet.ConfigurationMap::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.Configuration)
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::System.Collections.IDictionary.set_Item
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_000d:  castclass NAnt.VSNet.ConfigurationSettings
+	IL_0012:  stloc.1 
+	IL_0013:  ldloc.1 
+	IL_0014:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
+	IL_0019:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_001e:  brfalse IL_0036
 
-    // method line 167
-    .method public final virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.Collections.ICollection get_Values ()  cil managed 
+	IL_0023:  nop 
+	IL_0024:  ldloc.1 
+	IL_0025:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
+	IL_002a:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.File::GetLastWriteTime(string)
+	IL_002f:  stloc.0 
+	IL_0030:  nop 
+	IL_0031:  br IL_003e
+
+	IL_0036:  nop 
+	IL_0037:  ldc.i4.0 
+	IL_0038:  stloc.2 
+	IL_0039:  br IL_0259
+
+	IL_003e:  ldarg.0 
+	IL_003f:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_0044:  ldloc.0 
+	IL_0045:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_004a:  stloc.3 
+	IL_004b:  ldloc.3 
+	IL_004c:  brfalse IL_0073
+
+	IL_0051:  nop 
+	IL_0052:  ldarg.0 
+	IL_0053:  ldc.i4 1000
+	IL_0058:  ldstr "Project file \"0\" has been updated, recompiling."
+	IL_005d:  ldc.i4.1 
+	IL_005e:  newarr [mscorlib]System.Object
+	IL_0063:  dup 
+	IL_0064:  ldc.i4.0 
+	IL_0065:  ldloc.3 
+	IL_0066:  stelem.ref 
+	IL_0067:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_006c:  ldc.i4.0 
+	IL_006d:  stloc.2 
+	IL_006e:  br IL_0259
+
+	IL_0073:  nop 
+	IL_0074:  ldarg.0 
+	IL_0075:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
+	IL_007a:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
+	IL_007f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0084:  stloc.s 5
+	.try { // 0
+	  IL_0086:  br IL_00b5
+
+	  IL_008b:  ldloc.s 5
+	  IL_008d:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0092:  castclass [mscorlib]System.String
+	  IL_0097:  stloc.s 4
+	  IL_0099:  nop 
+	  IL_009a:  ldloc.0 
+	  IL_009b:  ldloc.s 4
+	  IL_009d:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.File::GetLastWriteTime(string)
+	  IL_00a2:  call bool valuetype [mscorlib]System.DateTime::op_LessThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	  IL_00a7:  brfalse IL_00b4
+
+	  IL_00ac:  nop 
+	  IL_00ad:  ldc.i4.0 
+	  IL_00ae:  stloc.2 
+	  IL_00af:  leave IL_0259
+
+	  IL_00b4:  nop 
+	  IL_00b5:  ldloc.s 5
+	  IL_00b7:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00bc:  brtrue IL_008b
+
+	  IL_00c1:  leave IL_00dd
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00c6:  ldloc.s 5
+	  IL_00c8:  isinst [mscorlib]System.IDisposable
+	  IL_00cd:  dup 
+	  IL_00ce:  stloc.s 6
+	  IL_00d0:  brfalse IL_00dc
+
+	  IL_00d5:  ldloc.s 6
+	  IL_00d7:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00dc:  endfinally 
+	} // end handler 0
+	IL_00dd:  nop 
+	IL_00de:  ldarg.0 
+	IL_00df:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_neutralResources
+	IL_00e4:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_00e9:  stloc.s 8
+	.try { // 1
+	  IL_00eb:  br IL_0157
+
+	  IL_00f0:  ldloc.s 8
+	  IL_00f2:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_00f7:  castclass NAnt.VSNet.Resource
+	  IL_00fc:  stloc.s 7
+	  IL_00fe:  nop 
+	  IL_00ff:  ldloc.0 
+	  IL_0100:  ldloc.s 7
+	  IL_0102:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
+	  IL_0107:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	  IL_010c:  call bool valuetype [mscorlib]System.DateTime::op_LessThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	  IL_0111:  brfalse IL_011e
+
+	  IL_0116:  nop 
+	  IL_0117:  ldc.i4.0 
+	  IL_0118:  stloc.2 
+	  IL_0119:  leave IL_0259
+
+	  IL_011e:  ldloc.s 7
+	  IL_0120:  ldarg.1 
+	  IL_0121:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::GetCompiledResourceFile(class NAnt.VSNet.Configuration)
+	  IL_0126:  stloc.s 9
+	  IL_0128:  ldloc.s 9
+	  IL_012a:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	  IL_012f:  brtrue IL_013c
+
+	  IL_0134:  nop 
+	  IL_0135:  ldc.i4.0 
+	  IL_0136:  stloc.2 
+	  IL_0137:  leave IL_0259
+
+	  IL_013c:  ldloc.0 
+	  IL_013d:  ldloc.s 9
+	  IL_013f:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	  IL_0144:  call bool valuetype [mscorlib]System.DateTime::op_LessThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	  IL_0149:  brfalse IL_0156
+
+	  IL_014e:  nop 
+	  IL_014f:  ldc.i4.0 
+	  IL_0150:  stloc.2 
+	  IL_0151:  leave IL_0259
+
+	  IL_0156:  nop 
+	  IL_0157:  ldloc.s 8
+	  IL_0159:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_015e:  brtrue IL_00f0
+
+	  IL_0163:  leave IL_017f
+
+	} // end .try 1
+	finally  { // 1
+	  IL_0168:  ldloc.s 8
+	  IL_016a:  isinst [mscorlib]System.IDisposable
+	  IL_016f:  dup 
+	  IL_0170:  stloc.s 10
+	  IL_0172:  brfalse IL_017e
+
+	  IL_0177:  ldloc.s 10
+	  IL_0179:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_017e:  endfinally 
+	} // end handler 1
+	IL_017f:  nop 
+	IL_0180:  ldarg.0 
+	IL_0181:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_references
+	IL_0186:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_018b:  stloc.s 12
+	.try { // 2
+	  IL_018d:  br IL_01bd
+
+	  IL_0192:  ldloc.s 12
+	  IL_0194:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0199:  castclass NAnt.VSNet.ReferenceBase
+	  IL_019e:  stloc.s 11
+	  IL_01a0:  nop 
+	  IL_01a1:  ldloc.0 
+	  IL_01a2:  ldloc.s 11
+	  IL_01a4:  ldarg.1 
+	  IL_01a5:  callvirt instance valuetype [mscorlib]System.DateTime class NAnt.VSNet.ReferenceBase::GetTimestamp(class NAnt.VSNet.Configuration)
+	  IL_01aa:  call bool valuetype [mscorlib]System.DateTime::op_LessThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	  IL_01af:  brfalse IL_01bc
+
+	  IL_01b4:  nop 
+	  IL_01b5:  ldc.i4.0 
+	  IL_01b6:  stloc.2 
+	  IL_01b7:  leave IL_0259
+
+	  IL_01bc:  nop 
+	  IL_01bd:  ldloc.s 12
+	  IL_01bf:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_01c4:  brtrue IL_0192
+
+	  IL_01c9:  leave IL_01e5
+
+	} // end .try 2
+	finally  { // 2
+	  IL_01ce:  ldloc.s 12
+	  IL_01d0:  isinst [mscorlib]System.IDisposable
+	  IL_01d5:  dup 
+	  IL_01d6:  stloc.s 13
+	  IL_01d8:  brfalse IL_01e4
+
+	  IL_01dd:  ldloc.s 13
+	  IL_01df:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01e4:  endfinally 
+	} // end handler 2
+	IL_01e5:  nop 
+	IL_01e6:  ldloc.1 
+	IL_01e7:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ConfigurationBase::get_ExtraOutputFiles()
+	IL_01ec:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_01f1:  stloc.s 15
+	.try { // 3
+	  IL_01f3:  br IL_022a
+
+	  IL_01f8:  ldloc.s 15
+	  IL_01fa:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_01ff:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_0204:  stloc.s 14
+	  IL_0206:  nop 
+	  IL_0207:  ldloca.s 14
+	  IL_0209:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_020e:  castclass [mscorlib]System.String
+	  IL_0213:  stloc.s 16
+	  IL_0215:  ldloc.s 16
+	  IL_0217:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_021c:  brtrue IL_0229
+
+	  IL_0221:  nop 
+	  IL_0222:  ldc.i4.0 
+	  IL_0223:  stloc.2 
+	  IL_0224:  leave IL_0259
+
+	  IL_0229:  nop 
+	  IL_022a:  ldloc.s 15
+	  IL_022c:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0231:  brtrue IL_01f8
+
+	  IL_0236:  leave IL_0252
+
+	} // end .try 3
+	finally  { // 3
+	  IL_023b:  ldloc.s 15
+	  IL_023d:  isinst [mscorlib]System.IDisposable
+	  IL_0242:  dup 
+	  IL_0243:  stloc.s 17
+	  IL_0245:  brfalse IL_0251
+
+	  IL_024a:  ldloc.s 17
+	  IL_024c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0251:  endfinally 
+	} // end handler 3
+	IL_0252:  ldc.i4.1 
+	IL_0253:  stloc.2 
+	IL_0254:  br IL_0259
+
+	IL_0259:  ldloc.2 
+	IL_025a:  ret 
+    } // end of method ManagedProjectBase::CheckUpToDate
+
+    // method line 137
+    .method private hidebysig 
+           instance default class [mscorlib]System.Collections.Hashtable GetLocalizedResources ()  cil managed 
     {
-        // Method begins at RVA 0x720c
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x9660
+	// Code size 149 (0x95)
+	.maxstack 3
 	.locals init (
-		class [mscorlib]System.Collections.ICollection	V_0)
+		class [mscorlib]System.Collections.Hashtable	V_0,
+		class NAnt.VSNet.Resource	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class [mscorlib]System.Globalization.CultureInfo	V_3,
+		class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		class [mscorlib]System.Collections.Hashtable	V_6)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Values()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  nop 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_localizedResources
+	IL_000e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0013:  stloc.2 
+	.try { // 0
+	  IL_0014:  br IL_0064
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::get_Values
+	  IL_0019:  ldloc.2 
+	  IL_001a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_001f:  castclass NAnt.VSNet.Resource
+	  IL_0024:  stloc.1 
+	  IL_0025:  nop 
+	  IL_0026:  ldloc.1 
+	  IL_0027:  callvirt instance class [mscorlib]System.Globalization.CultureInfo class NAnt.VSNet.Resource::get_Culture()
+	  IL_002c:  stloc.3 
+	  IL_002d:  ldloc.0 
+	  IL_002e:  ldloc.3 
+	  IL_002f:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_0034:  castclass NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet
+	  IL_0039:  stloc.s 4
+	  IL_003b:  ldloc.s 4
+	  IL_003d:  brtrue IL_0055
 
-    // method line 168
-    .method public final virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.Collections.ICollection get_Keys ()  cil managed 
+	  IL_0042:  nop 
+	  IL_0043:  ldloc.3 
+	  IL_0044:  newobj instance void class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::'.ctor'(class [mscorlib]System.Globalization.CultureInfo)
+	  IL_0049:  stloc.s 4
+	  IL_004b:  ldloc.0 
+	  IL_004c:  ldloc.3 
+	  IL_004d:  ldloc.s 4
+	  IL_004f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	  IL_0054:  nop 
+	  IL_0055:  ldloc.s 4
+	  IL_0057:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::get_Resources()
+	  IL_005c:  ldloc.1 
+	  IL_005d:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0062:  pop 
+	  IL_0063:  nop 
+	  IL_0064:  ldloc.2 
+	  IL_0065:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_006a:  brtrue IL_0019
+
+	  IL_006f:  leave IL_008a
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0074:  ldloc.2 
+	  IL_0075:  isinst [mscorlib]System.IDisposable
+	  IL_007a:  dup 
+	  IL_007b:  stloc.s 5
+	  IL_007d:  brfalse IL_0089
+
+	  IL_0082:  ldloc.s 5
+	  IL_0084:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0089:  endfinally 
+	} // end handler 0
+	IL_008a:  ldloc.0 
+	IL_008b:  stloc.s 6
+	IL_008d:  br IL_0092
+
+	IL_0092:  ldloc.s 6
+	IL_0094:  ret 
+    } // end of method ManagedProjectBase::GetLocalizedResources
+
+    // method line 138
+    .method private hidebysig 
+           instance default class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask CreateRegAsmTask ()  cil managed 
     {
-        // Method begins at RVA 0x722c
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x9714
+	// Code size 244 (0xf4)
+	.maxstack 3
 	.locals init (
-		class [mscorlib]System.Collections.ICollection	V_0)
+		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask	V_0,
+		class [NAnt.Core]NAnt.Core.Project	V_1,
+		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  newobj instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_000e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0013:  ldloc.0 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_001a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_001f:  stloc.1 
+	IL_0020:  ldloc.0 
+	IL_0021:  ldloc.1 
+	IL_0022:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0027:  ldloc.1 
+	IL_0028:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_002d:  ldloc.0 
+	IL_002e:  ldarg.0 
+	IL_002f:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0034:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_0039:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
+	IL_003e:  ldloc.0 
+	IL_003f:  ldarg.0 
+	IL_0040:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0045:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_004a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_004f:  ldloc.0 
+	IL_0050:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	IL_0055:  ldloc.0 
+	IL_0056:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_Assemblies()
+	IL_005b:  ldloc.0 
+	IL_005c:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0061:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0066:  ldloc.0 
+	IL_0067:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_Assemblies()
+	IL_006c:  ldloc.0 
+	IL_006d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0072:  ldloc.0 
+	IL_0073:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_Assemblies()
+	IL_0078:  ldloc.0 
+	IL_0079:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_007e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0083:  ldloc.0 
+	IL_0084:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_Assemblies()
+	IL_0089:  ldarg.0 
+	IL_008a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_008f:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_0094:  ldloc.0 
+	IL_0095:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_References()
+	IL_009a:  ldloc.0 
+	IL_009b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_00a0:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_00a5:  ldloc.0 
+	IL_00a6:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_References()
+	IL_00ab:  ldloc.0 
+	IL_00ac:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_00b1:  ldloc.0 
+	IL_00b2:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_References()
+	IL_00b7:  ldloc.0 
+	IL_00b8:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_00bd:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_00c2:  ldloc.0 
+	IL_00c3:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_References()
+	IL_00c8:  ldarg.0 
+	IL_00c9:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_00ce:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_00d3:  ldloc.0 
+	IL_00d4:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_00d9:  brtrue IL_00eb
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::get_Keys
+	IL_00de:  nop 
+	IL_00df:  ldloc.0 
+	IL_00e0:  ldc.i4 4000
+	IL_00e5:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
+	IL_00ea:  nop 
+	IL_00eb:  ldloc.0 
+	IL_00ec:  stloc.2 
+	IL_00ed:  br IL_00f2
 
-    // method line 169
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsFixedSize ()  cil managed 
+	IL_00f2:  ldloc.2 
+	IL_00f3:  ret 
+    } // end of method ManagedProjectBase::CreateRegAsmTask
+
+    // method line 139
+    .method public static hidebysig 
+           default bool IsEnterpriseTemplateProject (string fileName)  cil managed 
     {
-        // Method begins at RVA 0x724c
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x9814
+	// Code size 138 (0x8a)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.IO.StreamReader	V_0,
+		class [System.Xml]System.Xml.XmlTextReader	V_1,
+		bool	V_2,
+		class [mscorlib]System.Exception	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsFixedSize()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	.try { // 1
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.0 
+	  IL_0003:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
+	  IL_0008:  ldc.i4.1 
+	  IL_0009:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
+	  IL_000e:  stloc.0 
+	  .try { // 0
+	    IL_000f:  nop 
+	    IL_0010:  ldloc.0 
+	    IL_0011:  newobj instance void class [System.Xml]System.Xml.XmlTextReader::'.ctor'(class [mscorlib]System.IO.TextReader)
+	    IL_0016:  stloc.1 
+	    IL_0017:  ldloc.1 
+	    IL_0018:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::MoveToContent()
+	    IL_001d:  pop 
+	    IL_001e:  ldloc.1 
+	    IL_001f:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
+	    IL_0024:  ldc.i4.1 
+	    IL_0025:  bne.un IL_0047
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::get_IsFixedSize
+	    IL_002a:  ldloc.1 
+	    IL_002b:  callvirt instance string class [System.Xml]System.Xml.XmlReader::get_LocalName()
+	    IL_0030:  ldstr "EFPROJECT"
+	    IL_0035:  call bool string::op_Equality(string, string)
+	    IL_003a:  brfalse IL_0047
 
-    // method line 170
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.ICollection.CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
+	    IL_003f:  nop 
+	    IL_0040:  ldc.i4.1 
+	    IL_0041:  stloc.2 
+	    IL_0042:  leave IL_0088
+
+	    IL_0047:  nop 
+	    IL_0048:  leave IL_005a
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_004d:  ldloc.0 
+	    IL_004e:  brfalse IL_0059
+
+	    IL_0053:  ldloc.0 
+	    IL_0054:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0059:  endfinally 
+	  } // end handler 0
+	  IL_005a:  ldc.i4.0 
+	  IL_005b:  stloc.2 
+	  IL_005c:  leave IL_0088
+
+	} // end .try 1
+	catch class [System.Xml]System.Xml.XmlException { // 1
+	  IL_0061:  pop 
+	  IL_0062:  nop 
+	  IL_0063:  ldc.i4.0 
+	  IL_0064:  stloc.2 
+	  IL_0065:  leave IL_0088
+
+	} // end handler 1
+	catch class [mscorlib]System.Exception { // 2
+	  IL_006a:  stloc.3 
+	  IL_006b:  nop 
+	  IL_006c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0071:  ldstr "Error checking whether '{0}' is an enterprise template project."
+	  IL_0076:  ldarg.0 
+	  IL_0077:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_007c:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	  IL_0081:  ldloc.3 
+	  IL_0082:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0087:  throw 
+	} // end handler 2
+	IL_0088:  ldloc.2 
+	IL_0089:  ret 
+    } // end of method ManagedProjectBase::IsEnterpriseTemplateProject
+
+    // method line 140
+    .method public static hidebysig 
+           default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
     {
-        // Method begins at RVA 0x726c
-	.override class [mscorlib]System.Collections.ICollection::CopyTo
-	// Code size 15 (0xf)
-	.maxstack 8
+        // Method begins at RVA 0x98d4
+	// Code size 22 (0x16)
+	.maxstack 1
+	.locals init (
+		class [System.Xml]System.Xml.XmlReader	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method ConfigurationMap::System.Collections.ICollection.CopyTo
+	IL_0002:  newobj instance void class [System.Xml]System.Xml.XmlNodeReader::'.ctor'(class [System.Xml]System.Xml.XmlNode)
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  call string class NAnt.VSNet.ManagedProjectBase::LoadGuid(class [System.Xml]System.Xml.XmlReader)
+	IL_000e:  stloc.1 
+	IL_000f:  br IL_0014
 
-    // method line 171
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsSynchronized ()  cil managed 
+	IL_0014:  ldloc.1 
+	IL_0015:  ret 
+    } // end of method ManagedProjectBase::LoadGuid
+
+    // method line 141
+    .method private static hidebysig 
+           default string LoadGuid (class [System.Xml]System.Xml.XmlReader guidReader)  cil managed 
     {
-        // Method begins at RVA 0x727c
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x98f8
+	// Code size 111 (0x6f)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsSynchronized()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  br IL_0052
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::get_IsSynchronized
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
+	IL_000d:  ldc.i4.1 
+	IL_000e:  bne.un IL_0051
 
-    // method line 172
-    .method public final virtual hidebysig newslot specialname 
-           instance default int32 get_Count ()  cil managed 
+	IL_0013:  nop 
+	IL_0014:  br IL_0045
+
+	IL_0019:  nop 
+	IL_001a:  ldarg.0 
+	IL_001b:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
+	IL_0020:  ldc.i4.1 
+	IL_0021:  bne.un IL_0044
+
+	IL_0026:  nop 
+	IL_0027:  ldarg.0 
+	IL_0028:  ldstr "ProjectGuid"
+	IL_002d:  callvirt instance bool class [System.Xml]System.Xml.XmlReader::MoveToAttribute(string)
+	IL_0032:  brfalse IL_0043
+
+	IL_0037:  ldarg.0 
+	IL_0038:  callvirt instance string class [System.Xml]System.Xml.XmlReader::get_Value()
+	IL_003d:  stloc.0 
+	IL_003e:  br IL_006d
+
+	IL_0043:  nop 
+	IL_0044:  nop 
+	IL_0045:  ldarg.0 
+	IL_0046:  callvirt instance bool class [System.Xml]System.Xml.XmlReader::Read()
+	IL_004b:  brtrue IL_0019
+
+	IL_0050:  nop 
+	IL_0051:  nop 
+	IL_0052:  ldarg.0 
+	IL_0053:  callvirt instance bool class [System.Xml]System.Xml.XmlReader::Read()
+	IL_0058:  brtrue IL_0006
+
+	IL_005d:  ldstr "Couldn't locate project GUID."
+	IL_0062:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0067:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_006c:  throw 
+	IL_006d:  ldloc.0 
+	IL_006e:  ret 
+    } // end of method ManagedProjectBase::LoadGuid
+
+    // method line 142
+    .method family static hidebysig 
+           default valuetype NAnt.VSNet.ProductVersion GetProductVersion (class [System.Xml]System.Xml.XmlNode projectNode)  cil managed 
     {
-        // Method begins at RVA 0x729c
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x9974
+	// Code size 208 (0xd0)
+	.maxstack 3
 	.locals init (
-		int32	V_0)
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		class [mscorlib]System.Version	V_1,
+		class [mscorlib]System.Exception	V_2,
+		int32	V_3,
+		valuetype NAnt.VSNet.ProductVersion	V_4)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  brtrue IL_0013
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::get_Count
+	IL_0007:  nop 
+	IL_0008:  ldstr "projectNode"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.0 
+	IL_0014:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0019:  ldstr "ProductVersion"
+	IL_001e:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0023:  stloc.0 
+	IL_0024:  ldloc.0 
+	IL_0025:  brtrue IL_003b
 
-    // method line 173
-    .method public final virtual hidebysig newslot specialname 
-           instance default object get_SyncRoot ()  cil managed 
+	IL_002a:  nop 
+	IL_002b:  ldstr "The \"ProductVersion\" attribute is missing from the project node."
+	IL_0030:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0035:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_003a:  throw 
+	IL_003b:  ldnull 
+	IL_003c:  stloc.1 
+	.try { // 0
+	  IL_003d:  nop 
+	  IL_003e:  ldloc.0 
+	  IL_003f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	  IL_0044:  newobj instance void class [mscorlib]System.Version::'.ctor'(string)
+	  IL_0049:  stloc.1 
+	  IL_004a:  nop 
+	  IL_004b:  leave IL_0073
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0050:  stloc.2 
+	  IL_0051:  nop 
+	  IL_0052:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0057:  ldstr "The value of the \"Version\" attribute ({0}) is not a valid version string."
+	  IL_005c:  ldloc.0 
+	  IL_005d:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	  IL_0062:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0067:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	  IL_006c:  ldloc.2 
+	  IL_006d:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_0072:  throw 
+	} // end handler 0
+	IL_0073:  ldloc.1 
+	IL_0074:  callvirt instance int32 class [mscorlib]System.Version::get_Major()
+	IL_0079:  ldc.i4.7 
+	IL_007a:  bne.un IL_00ad
+
+	IL_007f:  nop 
+	IL_0080:  ldloc.1 
+	IL_0081:  callvirt instance int32 class [mscorlib]System.Version::get_Minor()
+	IL_0086:  stloc.3 
+	IL_0087:  ldloc.3 
+	IL_0088:  brfalse IL_009a
+
+	IL_008d:  ldloc.3 
+	IL_008e:  ldc.i4.s 0x0a
+	IL_0090:  beq IL_00a3
+
+	IL_0095:  br IL_00ac
+
+	IL_009a:  ldc.i4.s 0x46
+	IL_009c:  stloc.s 4
+	IL_009e:  br IL_00cd
+
+	IL_00a3:  ldc.i4.s 0x47
+	IL_00a5:  stloc.s 4
+	IL_00a7:  br IL_00cd
+
+	IL_00ac:  nop 
+	IL_00ad:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00b2:  ldstr "Visual Studio version \"{0\" is not supported."
+	IL_00b7:  ldloc.1 
+	IL_00b8:  callvirt instance string object::ToString()
+	IL_00bd:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00c2:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_00c7:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_00cc:  throw 
+	IL_00cd:  ldloc.s 4
+	IL_00cf:  ret 
+    } // end of method ManagedProjectBase::GetProductVersion
+
+    // method line 143
+    .method family static hidebysig 
+           default valuetype NAnt.VSNet.ProjectLocation GetProjectLocation (class [System.Xml]System.Xml.XmlNode projectNode)  cil managed 
     {
-        // Method begins at RVA 0x72bc
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x9a60
+	// Code size 130 (0x82)
+	.maxstack 3
 	.locals init (
-		object	V_0)
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		valuetype NAnt.VSNet.ProjectLocation	V_1,
+		class [mscorlib]System.Exception	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_SyncRoot()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  brtrue IL_0013
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationMap::get_SyncRoot
+	IL_0007:  nop 
+	IL_0008:  ldstr "projectNode"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.0 
+	IL_0014:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0019:  ldstr "ProjectType"
+	IL_001e:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0023:  stloc.0 
+	IL_0024:  ldloc.0 
+	IL_0025:  brtrue IL_003b
 
-	.property instance object System.Collections.IDictionary.Item (object)
-	{
-		.get instance default object NAnt.VSNet.ConfigurationMap::System.Collections.IDictionary.get_Item (object key) 
-		.set instance default void NAnt.VSNet.ConfigurationMap::System.Collections.IDictionary.set_Item (object key, object 'value') 
-	}
-	.property instance class [mscorlib]System.Collections.Hashtable InnerHash ()
+	IL_002a:  nop 
+	IL_002b:  ldstr "The \"ProjectType\" attribute is missing from the project node."
+	IL_0030:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0035:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_003a:  throw 
+	.try { // 0
+	  IL_003b:  nop 
+	  IL_003c:  ldtoken NAnt.VSNet.ProjectLocation
+	  IL_0041:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_0046:  ldloc.0 
+	  IL_0047:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	  IL_004c:  ldc.i4.1 
+	  IL_004d:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	  IL_0052:  unbox.any NAnt.VSNet.ProjectLocation
+	  IL_0057:  stloc.1 
+	  IL_0058:  leave IL_0080
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_005d:  stloc.2 
+	  IL_005e:  nop 
+	  IL_005f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0064:  ldstr "The value of the \"ProjectType\" attribute ({0}) is not a valid location string."
+	  IL_0069:  ldloc.0 
+	  IL_006a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	  IL_006f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0074:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	  IL_0079:  ldloc.2 
+	  IL_007a:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_007f:  throw 
+	} // end handler 0
+	IL_0080:  ldloc.1 
+	IL_0081:  ret 
+    } // end of method ManagedProjectBase::GetProjectLocation
+
+	.property instance class NAnt.VSNet.ProjectSettings ProjectSettings ()
 	{
-		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::get_InnerHash () 
+		.get instance default class NAnt.VSNet.ProjectSettings NAnt.VSNet.ManagedProjectBase::get_ProjectSettings () 
 	}
-	.property instance bool IsReadOnly ()
+	.property instance string FileExtension ()
 	{
-		.get instance default bool NAnt.VSNet.ConfigurationMap::get_IsReadOnly () 
+		.get instance default string NAnt.VSNet.ManagedProjectBase::get_FileExtension () 
 	}
-	.property instance class NAnt.VSNet.Configuration Item (class NAnt.VSNet.Configuration)
+	.property instance bool IsWebProject ()
 	{
-		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMap::get_Item (class NAnt.VSNet.Configuration key) 
-		.set instance default void NAnt.VSNet.ConfigurationMap::set_Item (class NAnt.VSNet.Configuration key, class NAnt.VSNet.Configuration 'value') 
+		.get instance default bool NAnt.VSNet.ManagedProjectBase::get_IsWebProject () 
 	}
-	.property instance class [mscorlib]System.Collections.ICollection Values ()
+	.property instance string Name ()
 	{
-		.get instance default class [mscorlib]System.Collections.ICollection NAnt.VSNet.ConfigurationMap::get_Values () 
+		.get instance default string NAnt.VSNet.ManagedProjectBase::get_Name () 
 	}
-	.property instance class [mscorlib]System.Collections.ICollection Keys ()
+	.property instance string ProjectPath ()
 	{
-		.get instance default class [mscorlib]System.Collections.ICollection NAnt.VSNet.ConfigurationMap::get_Keys () 
+		.get instance default string NAnt.VSNet.ManagedProjectBase::get_ProjectPath () 
 	}
-	.property instance bool IsFixedSize ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo ProjectDirectory ()
 	{
-		.get instance default bool NAnt.VSNet.ConfigurationMap::get_IsFixedSize () 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ManagedProjectBase::get_ProjectDirectory () 
 	}
-	.property instance bool IsSynchronized ()
+	.property instance valuetype NAnt.VSNet.ProjectLocation ProjectLocation ()
 	{
-		.get instance default bool NAnt.VSNet.ConfigurationMap::get_IsSynchronized () 
+		.get instance default valuetype NAnt.VSNet.ProjectLocation NAnt.VSNet.ManagedProjectBase::get_ProjectLocation () 
 	}
-	.property instance int32 Count ()
+	.property instance string Guid ()
 	{
-		.get instance default int32 NAnt.VSNet.ConfigurationMap::get_Count () 
+		.get instance default string NAnt.VSNet.ManagedProjectBase::get_Guid () 
+		.set instance default void NAnt.VSNet.ManagedProjectBase::set_Guid (string 'value') 
 	}
-	.property instance object SyncRoot ()
+	.property instance class [mscorlib]System.Collections.ArrayList References ()
 	{
-		.get instance default object NAnt.VSNet.ConfigurationMap::get_SyncRoot () 
+		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::get_References () 
 	}
-  } // end of class NAnt.VSNet.ConfigurationMap
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit ConfigurationMapEnumerator
+  .class nested private auto ansi beforefieldinit LocalizedResourceSet
   	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IDictionaryEnumerator, [mscorlib]System.Collections.IEnumerator  {
-    .field  private initonly  class [mscorlib]System.Collections.IDictionaryEnumerator _innerEnumerator
+  {
+    .field  private initonly  class [mscorlib]System.Globalization.CultureInfo _culture
+    .field  private initonly  class [mscorlib]System.Collections.ArrayList _resources
 
-    // method line 174
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ConfigurationMap enumerable)  cil managed 
+    // method line 144
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Globalization.CultureInfo culture)  cil managed 
     {
-        // Method begins at RVA 0x72dc
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x9b00
+	// Code size 44 (0x2c)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void object::'.ctor'()
 	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ConfigurationMap::get_InnerHash()
-	IL_000e:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_0013:  stfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationMapEnumerator::_innerEnumerator
-	IL_0018:  ret 
-    } // end of method ConfigurationMapEnumerator::.ctor
+	IL_0007:  ldarg.1 
+	IL_0008:  brtrue IL_0019
 
-    // method line 175
+	IL_000d:  nop 
+	IL_000e:  ldstr "culture"
+	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0018:  throw 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldarg.1 
+	IL_001b:  stfld class [mscorlib]System.Globalization.CultureInfo NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::_culture
+	IL_0020:  ldarg.0 
+	IL_0021:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0026:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::_resources
+	IL_002b:  ret 
+    } // end of method LocalizedResourceSet::.ctor
+
+    // method line 145
     .method public hidebysig specialname 
-           instance default class NAnt.VSNet.Configuration get_Key ()  cil managed 
+           instance default class [mscorlib]System.Globalization.CultureInfo get_Culture ()  cil managed 
     {
-        // Method begins at RVA 0x72f8
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x9b30
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.Configuration	V_0)
+		class [mscorlib]System.Globalization.CultureInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationMapEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key()
-	IL_000c:  castclass NAnt.VSNet.Configuration
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0002:  ldfld class [mscorlib]System.Globalization.CultureInfo NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::_culture
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ConfigurationMapEnumerator::get_Key
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method LocalizedResourceSet::get_Culture
 
-    // method line 176
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionaryEnumerator.get_Key ()  cil managed 
+    // method line 146
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Collections.ArrayList get_Resources ()  cil managed 
     {
-        // Method begins at RVA 0x7320
-	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key
+        // Method begins at RVA 0x9b4c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		class [mscorlib]System.Collections.ArrayList	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEnumerator::get_Key()
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::_resources
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ConfigurationMapEnumerator::System.Collections.IDictionaryEnumerator.get_Key
+    } // end of method LocalizedResourceSet::get_Resources
 
-    // method line 177
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.Configuration get_Value ()  cil managed 
+    // method line 147
+    .method public hidebysig 
+           instance default class [mscorlib]System.IO.DirectoryInfo GetBuildDirectory (class NAnt.VSNet.ConfigurationSettings projectConfig)  cil managed 
     {
-        // Method begins at RVA 0x733c
-	// Code size 25 (0x19)
-	.maxstack 1
+        // Method begins at RVA 0x9b68
+	// Code size 41 (0x29)
+	.maxstack 2
 	.locals init (
-		class NAnt.VSNet.Configuration	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
+	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance class [mscorlib]System.Globalization.CultureInfo class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::get_Culture()
+	IL_0012:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	IL_0017:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_001c:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0021:  stloc.0 
+	IL_0022:  br IL_0027
+
+	IL_0027:  ldloc.0 
+	IL_0028:  ret 
+    } // end of method LocalizedResourceSet::GetBuildDirectory
+
+    // method line 148
+    .method public hidebysig 
+           instance default class [mscorlib]System.IO.FileInfo GetSatelliteAssemblyPath (class NAnt.VSNet.ConfigurationSettings projectConfig, class NAnt.VSNet.ProjectSettings projectSettings)  cil managed 
+    {
+        // Method begins at RVA 0x9ba0
+	// Code size 40 (0x28)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.IO.DirectoryInfo	V_0,
+		class [mscorlib]System.IO.FileInfo	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationMapEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value()
-	IL_000c:  castclass NAnt.VSNet.Configuration
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::GetBuildDirectory(class NAnt.VSNet.ConfigurationSettings)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_000f:  ldarg.0 
+	IL_0010:  ldarg.2 
+	IL_0011:  call instance string class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::GetSatelliteFileName(class NAnt.VSNet.ProjectSettings)
+	IL_0016:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_001b:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0020:  stloc.1 
+	IL_0021:  br IL_0026
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ConfigurationMapEnumerator::get_Value
+	IL_0026:  ldloc.1 
+	IL_0027:  ret 
+    } // end of method LocalizedResourceSet::GetSatelliteAssemblyPath
 
-    // method line 178
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionaryEnumerator.get_Value ()  cil managed 
+    // method line 149
+    .method public hidebysig 
+           instance default string GetRelativePath (class NAnt.VSNet.ProjectSettings projectSettings)  cil managed 
     {
-        // Method begins at RVA 0x7364
-	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value
+        // Method begins at RVA 0x9bd4
+	// Code size 32 (0x20)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Globalization.CultureInfo class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::get_Culture()
+	IL_0007:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
+	IL_000c:  ldarg.0 
+	IL_000d:  ldarg.1 
+	IL_000e:  call instance string class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::GetSatelliteFileName(class NAnt.VSNet.ProjectSettings)
+	IL_0013:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_001e
+
+	IL_001e:  ldloc.0 
+	IL_001f:  ret 
+    } // end of method LocalizedResourceSet::GetRelativePath
+
+    // method line 150
+    .method private hidebysig 
+           instance default string GetSatelliteFileName (class NAnt.VSNet.ProjectSettings projectSettings)  cil managed 
+    {
+        // Method begins at RVA 0x9c00
+	// Code size 30 (0x1e)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0006:  ldstr "{0}.resources.dll"
+	IL_000b:  ldarg.1 
+	IL_000c:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyName()
+	IL_0011:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0016:  stloc.0 
+	IL_0017:  br IL_001c
+
+	IL_001c:  ldloc.0 
+	IL_001d:  ret 
+    } // end of method LocalizedResourceSet::GetSatelliteFileName
+
+	.property instance class [mscorlib]System.Globalization.CultureInfo Culture ()
+	{
+		.get instance default class [mscorlib]System.Globalization.CultureInfo NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::get_Culture () 
+	}
+	.property instance class [mscorlib]System.Collections.ArrayList Resources ()
+	{
+		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::get_Resources () 
+	}
+  } // end of class LocalizedResourceSet
+
+  } // end of class NAnt.VSNet.ManagedProjectBase
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi sealed ManagedOutputType
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.VSNet.ManagedOutputType Library = int32(0x00000001)
+    .field public static literal  valuetype NAnt.VSNet.ManagedOutputType Executable = int32(0x00000002)
+    .field public static literal  valuetype NAnt.VSNet.ManagedOutputType WindowsExecutable = int32(0x00000003)
+
+  } // end of class NAnt.VSNet.ManagedOutputType
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi abstract beforefieldinit ConfigurationBase
+  	extends [mscorlib]System.Object
+  {
+    .field  private initonly  class NAnt.VSNet.ProjectBase _project
+    .field  private initonly  class [System]System.Text.RegularExpressions.Regex _rxMacro
+    .field  private  class [mscorlib]System.Collections.Hashtable _extraOutputFiles
+    .field  private static  class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> '<>f__switch$map0'
+    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+
+    // method line 151
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ProjectBase project)  cil managed 
+    {
+        // Method begins at RVA 0x4e8c
+	// Code size 60 (0x3c)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldstr "\\$\\((\\w+)\\)"
+	IL_0006:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
+	IL_000b:  stfld class [System]System.Text.RegularExpressions.Regex NAnt.VSNet.ConfigurationBase::_rxMacro
+	IL_0010:  ldarg.0 
+	IL_0011:  call instance void object::'.ctor'()
+	IL_0016:  nop 
+	IL_0017:  ldarg.1 
+	IL_0018:  brtrue IL_0029
+
+	IL_001d:  nop 
+	IL_001e:  ldstr "project"
+	IL_0023:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0028:  throw 
+	IL_0029:  ldarg.0 
+	IL_002a:  ldarg.1 
+	IL_002b:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ConfigurationBase::_project
+	IL_0030:  ldarg.0 
+	IL_0031:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_0036:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationBase::_extraOutputFiles
+	IL_003b:  ret 
+    } // end of method ConfigurationBase::.ctor
+
+    // method line 152
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x4ecc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		class NAnt.VSNet.ProjectBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEnumerator::get_Value()
+	IL_0002:  ldfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ConfigurationBase::_project
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ConfigurationMapEnumerator::System.Collections.IDictionaryEnumerator.get_Value
+    } // end of method ConfigurationBase::get_Project
 
-    // method line 179
-    .method public final virtual hidebysig newslot specialname 
-           instance default valuetype [mscorlib]System.Collections.DictionaryEntry get_Entry ()  cil managed 
+    // method line 153
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x7380
-	// Code size 26 (0x1a)
+        // Method begins at RVA 0x0
+    } // end of method ConfigurationBase::get_Name
+
+    // method line 154
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
+    {
+        // Method begins at RVA 0x4ee8
+	// Code size 41 (0x29)
 	.maxstack 2
 	.locals init (
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEnumerator::get_Key()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEnumerator::get_Value()
-	IL_000d:  newobj instance void valuetype [mscorlib]System.Collections.DictionaryEntry::'.ctor'(object, object)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ObjectDir()
+	IL_000c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0011:  ldarg.0 
+	IL_0012:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
+	IL_0017:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_001c:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0021:  stloc.0 
+	IL_0022:  br IL_0027
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ConfigurationMapEnumerator::get_Entry
+	IL_0027:  ldloc.0 
+	IL_0028:  ret 
+    } // end of method ConfigurationBase::get_ObjectDir
 
-    // method line 180
-    .method public final virtual hidebysig newslot 
-           instance default void Reset ()  cil managed 
+    // method line 155
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
     {
-        // Method begins at RVA 0x73a6
-	// Code size 13 (0xd)
-	.maxstack 8
+        // Method begins at RVA 0x0
+    } // end of method ConfigurationBase::get_OutputDir
+
+    // method line 156
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_OutputPath ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ConfigurationBase::get_OutputPath
+
+    // method line 157
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_BuildPath ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ConfigurationBase::get_BuildPath
+
+    // method line 158
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_RelativeOutputDir ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ConfigurationBase::get_RelativeOutputDir
+
+    // method line 159
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_PlatformName ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ConfigurationBase::get_PlatformName
+
+    // method line 160
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_ExtraOutputFiles ()  cil managed 
+    {
+        // Method begins at RVA 0x4f20
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.Hashtable	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationMapEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method ConfigurationMapEnumerator::Reset
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationBase::_extraOutputFiles
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 181
-    .method public final virtual hidebysig newslot 
-           instance default bool MoveNext ()  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationBase::get_ExtraOutputFiles
+
+    // method line 161
+    .method family hidebysig specialname 
+           instance default class NAnt.VSNet.Tasks.SolutionTask get_SolutionTask ()  cil managed 
     {
-        // Method begins at RVA 0x73b4
+        // Method begins at RVA 0x4f3c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.VSNet.Tasks.SolutionTask	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationMapEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_0007:  callvirt instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method ConfigurationMapEnumerator::MoveNext
+    } // end of method ConfigurationBase::get_SolutionTask
 
-    // method line 182
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    // method line 162
+    .method public hidebysig 
+           instance default string ExpandMacros (string s)  cil managed 
     {
-        // Method begins at RVA 0x73d4
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x4f5c
+	// Code size 47 (0x2f)
+	.maxstack 4
 	.locals init (
-		object	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationMapEntry class NAnt.VSNet.ConfigurationMapEnumerator::get_Current()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_000f
+
+	IL_0007:  nop 
+	IL_0008:  ldarg.1 
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_002d
+
+	IL_000f:  ldarg.0 
+	IL_0010:  ldfld class [System]System.Text.RegularExpressions.Regex NAnt.VSNet.ConfigurationBase::_rxMacro
+	IL_0015:  ldarg.1 
+	IL_0016:  ldarg.0 
+	IL_0017:  ldftn instance string class NAnt.VSNet.ConfigurationBase::EvaluateMacro(class [System]System.Text.RegularExpressions.Match)
+	IL_001d:  newobj instance void class [System]System.Text.RegularExpressions.MatchEvaluator::'.ctor'(object, native int)
+	IL_0022:  callvirt instance string class [System]System.Text.RegularExpressions.Regex::Replace(string, class [System]System.Text.RegularExpressions.MatchEvaluator)
+	IL_0027:  stloc.0 
+	IL_0028:  br IL_002d
+
+	IL_002d:  ldloc.0 
+	IL_002e:  ret 
+    } // end of method ConfigurationBase::ExpandMacros
 
+    // method line 163
+    .method famorassem virtual hidebysig newslot 
+           instance default string ExpandMacro (string macro)  cil managed 
+    {
+        // Method begins at RVA 0x4f98
+	// Code size 488 (0x1e8)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>	V_1,
+		int32	V_2,
+		string	V_3,
+		char	V_4,
+		char	V_5,
+		string	V_6)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0007:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_000c:  stloc.0 
 	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationMapEnumerator::System.Collections.IEnumerator.get_Current
+	IL_000e:  brfalse IL_018a
 
-    // method line 183
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ConfigurationMapEntry get_Current ()  cil managed 
+	IL_0013:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.ConfigurationBase::'<>f__switch$map0'
+	IL_0018:  brtrue IL_008a
+
+	IL_001d:  ldc.i4.8 
+	IL_001e:  newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::'.ctor'(int32)
+	IL_0023:  stloc.1 
+	IL_0024:  ldloc.1 
+	IL_0025:  ldstr "outdir"
+	IL_002a:  ldc.i4.0 
+	IL_002b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0030:  ldloc.1 
+	IL_0031:  ldstr "configurationname"
+	IL_0036:  ldc.i4.1 
+	IL_0037:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_003c:  ldloc.1 
+	IL_003d:  ldstr "targetname"
+	IL_0042:  ldc.i4.2 
+	IL_0043:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0048:  ldloc.1 
+	IL_0049:  ldstr "targetpath"
+	IL_004e:  ldc.i4.3 
+	IL_004f:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0054:  ldloc.1 
+	IL_0055:  ldstr "targetext"
+	IL_005a:  ldc.i4.4 
+	IL_005b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0060:  ldloc.1 
+	IL_0061:  ldstr "targetfilename"
+	IL_0066:  ldc.i4.5 
+	IL_0067:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_006c:  ldloc.1 
+	IL_006d:  ldstr "targetdir"
+	IL_0072:  ldc.i4.6 
+	IL_0073:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0078:  ldloc.1 
+	IL_0079:  ldstr "platformname"
+	IL_007e:  ldc.i4.7 
+	IL_007f:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0084:  ldloc.1 
+	IL_0085:  stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.ConfigurationBase::'<>f__switch$map0'
+	IL_008a:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.ConfigurationBase::'<>f__switch$map0'
+	IL_008f:  ldloc.0 
+	IL_0090:  ldloca.s 2
+	IL_0092:  callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::TryGetValue(!0, [out] !1&)
+	IL_0097:  brfalse IL_018a
+
+	IL_009c:  ldloc.2 
+	IL_009d:  switch (
+	  IL_00c7,
+	  IL_00d3,
+	  IL_00df,
+	  IL_00f5,
+	  IL_0101,
+	  IL_0112,
+	  IL_0123,
+	  IL_017e)
+	IL_00c2:  br IL_018a
+
+	IL_00c7:  ldarg.0 
+	IL_00c8:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_RelativeOutputDir()
+	IL_00cd:  stloc.3 
+	IL_00ce:  br IL_01e6
+
+	IL_00d3:  ldarg.0 
+	IL_00d4:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
+	IL_00d9:  stloc.3 
+	IL_00da:  br IL_01e6
+
+	IL_00df:  ldarg.0 
+	IL_00e0:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
+	IL_00e5:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_00ea:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_00ef:  stloc.3 
+	IL_00f0:  br IL_01e6
+
+	IL_00f5:  ldarg.0 
+	IL_00f6:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
+	IL_00fb:  stloc.3 
+	IL_00fc:  br IL_01e6
+
+	IL_0101:  ldarg.0 
+	IL_0102:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
+	IL_0107:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_010c:  stloc.3 
+	IL_010d:  br IL_01e6
+
+	IL_0112:  ldarg.0 
+	IL_0113:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
+	IL_0118:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_011d:  stloc.3 
+	IL_011e:  br IL_01e6
+
+	IL_0123:  ldarg.0 
+	IL_0124:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	IL_0129:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_012e:  ldarg.0 
+	IL_012f:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	IL_0134:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0139:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_013e:  stloc.s 4
+	IL_0140:  ldloca.s 4
+	IL_0142:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0147:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
+	IL_014c:  callvirt instance bool string::EndsWith(string)
+	IL_0151:  brfalse IL_0160
+
+	IL_0156:  ldsfld string [mscorlib]System.String::Empty
+	IL_015b:  br IL_0173
+
+	IL_0160:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_0165:  stloc.s 5
+	IL_0167:  ldloca.s 5
+	IL_0169:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_016e:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
+	IL_0173:  call string string::Concat(string, string)
+	IL_0178:  stloc.3 
+	IL_0179:  br IL_01e6
+
+	IL_017e:  ldarg.0 
+	IL_017f:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_PlatformName()
+	IL_0184:  stloc.3 
+	IL_0185:  br IL_01e6
+
+	IL_018a:  ldarg.0 
+	IL_018b:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_0190:  callvirt instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0195:  ldarg.1 
+	IL_0196:  callvirt instance string class NAnt.VSNet.Tasks.SolutionTask::ExpandMacro(string)
+	IL_019b:  stloc.s 6
+	IL_019d:  ldloc.s 6
+	IL_019f:  brfalse IL_01ad
+
+	IL_01a4:  nop 
+	IL_01a5:  ldloc.s 6
+	IL_01a7:  stloc.3 
+	IL_01a8:  br IL_01e6
+
+	IL_01ad:  ldarg.0 
+	IL_01ae:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_01b3:  ldarg.1 
+	IL_01b4:  callvirt instance string class NAnt.VSNet.ProjectBase::ExpandMacro(string)
+	IL_01b9:  stloc.s 6
+	IL_01bb:  ldloc.s 6
+	IL_01bd:  brfalse IL_01cb
+
+	IL_01c2:  nop 
+	IL_01c3:  ldloc.s 6
+	IL_01c5:  stloc.3 
+	IL_01c6:  br IL_01e6
+
+	IL_01cb:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01d0:  ldstr "Macro \"{0}\" is not supported."
+	IL_01d5:  ldarg.1 
+	IL_01d6:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_01db:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_01e0:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_01e5:  throw 
+	IL_01e6:  ldloc.3 
+	IL_01e7:  ret 
+    } // end of method ConfigurationBase::ExpandMacro
+
+    // method line 164
+    .method private hidebysig 
+           instance default string EvaluateMacro (class [System]System.Text.RegularExpressions.Match m)  cil managed 
     {
-        // Method begins at RVA 0x73f0
-	// Code size 26 (0x1a)
-	.maxstack 2
+        // Method begins at RVA 0x518c
+	// Code size 32 (0x20)
+	.maxstack 3
 	.locals init (
-		class NAnt.VSNet.ConfigurationMapEntry	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEnumerator::get_Key()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEnumerator::get_Value()
-	IL_000d:  newobj instance void class NAnt.VSNet.ConfigurationMapEntry::'.ctor'(class NAnt.VSNet.Configuration, class NAnt.VSNet.Configuration)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	IL_0008:  ldc.i4.1 
+	IL_0009:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(int32)
+	IL_000e:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	IL_0013:  callvirt instance string class NAnt.VSNet.ConfigurationBase::ExpandMacro(string)
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_001e
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ConfigurationMapEnumerator::get_Current
+	IL_001e:  ldloc.0 
+	IL_001f:  ret 
+    } // end of method ConfigurationBase::EvaluateMacro
 
-	.property instance object System.Collections.IDictionaryEnumerator.Key ()
+	.property instance class NAnt.VSNet.ProjectBase Project ()
 	{
-		.get instance default object NAnt.VSNet.ConfigurationMapEnumerator::System.Collections.IDictionaryEnumerator.get_Key () 
+		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ConfigurationBase::get_Project () 
 	}
-	.property instance object System.Collections.IDictionaryEnumerator.Value ()
+	.property instance string Name ()
 	{
-		.get instance default object NAnt.VSNet.ConfigurationMapEnumerator::System.Collections.IDictionaryEnumerator.get_Value () 
+		.get instance default string NAnt.VSNet.ConfigurationBase::get_Name () 
 	}
-	.property instance object System.Collections.IEnumerator.Current ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo ObjectDir ()
 	{
-		.get instance default object NAnt.VSNet.ConfigurationMapEnumerator::System.Collections.IEnumerator.get_Current () 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ConfigurationBase::get_ObjectDir () 
 	}
-	.property instance class NAnt.VSNet.Configuration Key ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo OutputDir ()
 	{
-		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEnumerator::get_Key () 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ConfigurationBase::get_OutputDir () 
 	}
-	.property instance class NAnt.VSNet.Configuration Value ()
+	.property instance string OutputPath ()
 	{
-		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEnumerator::get_Value () 
+		.get instance default string NAnt.VSNet.ConfigurationBase::get_OutputPath () 
 	}
-	.property instance valuetype [mscorlib]System.Collections.DictionaryEntry Entry ()
+	.property instance string BuildPath ()
 	{
-		.get instance default valuetype [mscorlib]System.Collections.DictionaryEntry NAnt.VSNet.ConfigurationMapEnumerator::get_Entry () 
+		.get instance default string NAnt.VSNet.ConfigurationBase::get_BuildPath () 
 	}
-	.property instance class NAnt.VSNet.ConfigurationMapEntry Current ()
+	.property instance string RelativeOutputDir ()
 	{
-		.get instance default class NAnt.VSNet.ConfigurationMapEntry NAnt.VSNet.ConfigurationMapEnumerator::get_Current () 
+		.get instance default string NAnt.VSNet.ConfigurationBase::get_RelativeOutputDir () 
 	}
-  } // end of class NAnt.VSNet.ConfigurationMapEnumerator
+	.property instance string PlatformName ()
+	{
+		.get instance default string NAnt.VSNet.ConfigurationBase::get_PlatformName () 
+	}
+	.property instance class [mscorlib]System.Collections.Hashtable ExtraOutputFiles ()
+	{
+		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationBase::get_ExtraOutputFiles () 
+	}
+	.property instance class NAnt.VSNet.Tasks.SolutionTask SolutionTask ()
+	{
+		.get instance default class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.ConfigurationBase::get_SolutionTask () 
+	}
+  } // end of class NAnt.VSNet.ConfigurationBase
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi sealed beforefieldinit ConfigurationMapEntry
-  	extends [mscorlib]System.Object
+  .class public auto ansi abstract beforefieldinit VcConfigurationBase
+  	extends NAnt.VSNet.ConfigurationBase
   {
-    .field  private initonly  class NAnt.VSNet.Configuration _key
-    .field  private initonly  class NAnt.VSNet.Configuration _value
+    .field  family initonly  class [mscorlib]System.Collections.Hashtable Tools
+    .field  private initonly  string _name
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _outputDir
+    .field assembly static literal  string CLCompilerTool = "VCCLCompilerTool"
+    .field assembly static literal  string CustomBuildTool = "VCCustomBuildTool"
+    .field assembly static literal  string LinkerTool = "VCLinkerTool"
+    .field assembly static literal  string LibTool = "VCLibrarianTool"
+    .field assembly static literal  string ResourceCompilerTool = "VCResourceCompilerTool"
+    .field assembly static literal  string MIDLTool = "VCMIDLTool"
+    .field assembly static literal  string PreBuildEventTool = "VCPreBuildEventTool"
+    .field assembly static literal  string PostBuildEventTool = "VCPostBuildEventTool"
+    .field assembly static literal  string PreLinkEventTool = "VCPreLinkEventTool"
+    .field assembly static literal  string NMakeTool = "VCNMakeTool"
+    .field  private static  class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> '<>f__switch$map1'
+    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-    // method line 184
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.Configuration key, class NAnt.VSNet.Configuration 'value')  cil managed 
+
+    // method line 165
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement elem, class NAnt.VSNet.ProjectBase parentProject, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
     {
-        // Method begins at RVA 0x7416
-	// Code size 22 (0x16)
+        // Method begins at RVA 0x9c2c
+	// Code size 292 (0x124)
+	.maxstack 3
+	.locals init (
+		class [System.Xml]System.Xml.XmlNodeList	V_0,
+		class [System.Xml]System.Xml.XmlElement	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		string	V_3,
+		class [mscorlib]System.Collections.Hashtable	V_4,
+		class [System.Xml]System.Xml.XmlAttribute	V_5,
+		class [mscorlib]System.Collections.IEnumerator	V_6,
+		class [mscorlib]System.IDisposable	V_7,
+		class [mscorlib]System.IDisposable	V_8)
+	IL_0000:  ldarg.0 
+	IL_0001:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_0006:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcConfigurationBase::Tools
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.2 
+	IL_000d:  call instance void class NAnt.VSNet.ConfigurationBase::'.ctor'(class NAnt.VSNet.ProjectBase)
+	IL_0012:  nop 
+	IL_0013:  ldarg.1 
+	IL_0014:  brtrue IL_0025
+
+	IL_0019:  nop 
+	IL_001a:  ldstr "elem"
+	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0024:  throw 
+	IL_0025:  ldarg.0 
+	IL_0026:  ldarg.3 
+	IL_0027:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcConfigurationBase::_outputDir
+	IL_002c:  ldarg.0 
+	IL_002d:  ldarg.1 
+	IL_002e:  ldstr "Name"
+	IL_0033:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_0038:  stfld string NAnt.VSNet.VcConfigurationBase::_name
+	IL_003d:  ldarg.1 
+	IL_003e:  ldstr "Tool"
+	IL_0043:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlElement::GetElementsByTagName(string)
+	IL_0048:  stloc.0 
+	IL_0049:  nop 
+	IL_004a:  ldloc.0 
+	IL_004b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_0050:  stloc.2 
+	.try { // 1
+	  IL_0051:  br IL_00fd
+
+	  IL_0056:  ldloc.2 
+	  IL_0057:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_005c:  castclass [System.Xml]System.Xml.XmlElement
+	  IL_0061:  stloc.1 
+	  IL_0062:  nop 
+	  IL_0063:  ldloc.1 
+	  IL_0064:  ldstr "Name"
+	  IL_0069:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	  IL_006e:  stloc.3 
+	  IL_006f:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	  IL_0074:  stloc.s 4
+	  IL_0076:  nop 
+	  IL_0077:  ldloc.1 
+	  IL_0078:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	  IL_007d:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNamedNodeMap::GetEnumerator()
+	  IL_0082:  stloc.s 6
+	  .try { // 0
+	    IL_0084:  br IL_00c6
+
+	    IL_0089:  ldloc.s 6
+	    IL_008b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_0090:  castclass [System.Xml]System.Xml.XmlAttribute
+	    IL_0095:  stloc.s 5
+	    IL_0097:  nop 
+	    IL_0098:  ldloc.s 5
+	    IL_009a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	    IL_009f:  ldstr "Name"
+	    IL_00a4:  call bool string::op_Inequality(string, string)
+	    IL_00a9:  brfalse IL_00c5
+
+	    IL_00ae:  nop 
+	    IL_00af:  ldloc.s 4
+	    IL_00b1:  ldloc.s 5
+	    IL_00b3:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	    IL_00b8:  ldloc.s 5
+	    IL_00ba:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	    IL_00bf:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	    IL_00c4:  nop 
+	    IL_00c5:  nop 
+	    IL_00c6:  ldloc.s 6
+	    IL_00c8:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_00cd:  brtrue IL_0089
+
+	    IL_00d2:  leave IL_00ee
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_00d7:  ldloc.s 6
+	    IL_00d9:  isinst [mscorlib]System.IDisposable
+	    IL_00de:  dup 
+	    IL_00df:  stloc.s 7
+	    IL_00e1:  brfalse IL_00ed
+
+	    IL_00e6:  ldloc.s 7
+	    IL_00e8:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_00ed:  endfinally 
+	  } // end handler 0
+	  IL_00ee:  ldarg.0 
+	  IL_00ef:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcConfigurationBase::Tools
+	  IL_00f4:  ldloc.3 
+	  IL_00f5:  ldloc.s 4
+	  IL_00f7:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_00fc:  nop 
+	  IL_00fd:  ldloc.2 
+	  IL_00fe:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0103:  brtrue IL_0056
+
+	  IL_0108:  leave IL_0123
+
+	} // end .try 1
+	finally  { // 1
+	  IL_010d:  ldloc.2 
+	  IL_010e:  isinst [mscorlib]System.IDisposable
+	  IL_0113:  dup 
+	  IL_0114:  stloc.s 8
+	  IL_0116:  brfalse IL_0122
+
+	  IL_011b:  ldloc.s 8
+	  IL_011d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0122:  endfinally 
+	} // end handler 1
+	IL_0123:  ret 
+    } // end of method VcConfigurationBase::.ctor
+
+    // method line 166
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string configName, class NAnt.VSNet.ProjectBase parentProject, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
+    {
+        // Method begins at RVA 0x9d78
+	// Code size 34 (0x22)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEntry::_key
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.2 
-	IL_0010:  stfld class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEntry::_value
-	IL_0015:  ret 
-    } // end of method ConfigurationMapEntry::.ctor
+	IL_0001:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_0006:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcConfigurationBase::Tools
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.2 
+	IL_000d:  call instance void class NAnt.VSNet.ConfigurationBase::'.ctor'(class NAnt.VSNet.ProjectBase)
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldarg.1 
+	IL_0015:  stfld string NAnt.VSNet.VcConfigurationBase::_name
+	IL_001a:  ldarg.0 
+	IL_001b:  ldarg.3 
+	IL_001c:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcConfigurationBase::_outputDir
+	IL_0021:  ret 
+    } // end of method VcConfigurationBase::.ctor
 
-    // method line 185
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.Configuration get_Key ()  cil managed 
+    // method line 167
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_IntermediateDir ()  cil managed 
     {
-        // Method begins at RVA 0x7430
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.Configuration	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEntry::_key
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+        // Method begins at RVA 0x0
+    } // end of method VcConfigurationBase::get_IntermediateDir
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationMapEntry::get_Key
+    // method line 168
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_ReferencesPath ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method VcConfigurationBase::get_ReferencesPath
 
-    // method line 186
+    // method line 169
     .method public hidebysig specialname 
-           instance default class NAnt.VSNet.Configuration get_Value ()  cil managed 
+           instance default valuetype NAnt.VSNet.Types.UsePrecompiledHeader get_UsePrecompiledHeader ()  cil managed 
     {
-        // Method begins at RVA 0x744c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x9d9c
+	// Code size 139 (0x8b)
+	.maxstack 3
 	.locals init (
-		class NAnt.VSNet.Configuration	V_0)
+		string	V_0,
+		valuetype NAnt.VSNet.Types.UsePrecompiledHeader	V_1,
+		int32	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEntry::_value
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldstr "VCCLCompilerTool"
+	IL_0007:  ldstr "UsePrecompiledHeader"
+	IL_000c:  call instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
+	IL_0011:  stloc.0 
+	IL_0012:  ldloc.0 
+	IL_0013:  brtrue IL_0020
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationMapEntry::get_Value
+	IL_0018:  nop 
+	IL_0019:  ldc.i4.m1 
+	IL_001a:  stloc.1 
+	IL_001b:  br IL_0089
 
-	.property instance class NAnt.VSNet.Configuration Key ()
-	{
-		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEntry::get_Key () 
-	}
-	.property instance class NAnt.VSNet.Configuration Value ()
-	{
-		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEntry::get_Value () 
-	}
-  } // end of class NAnt.VSNet.ConfigurationMapEntry
-}
+	IL_0020:  ldloc.0 
+	IL_0021:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0026:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
+	IL_002b:  stloc.2 
+	IL_002c:  ldarg.0 
+	IL_002d:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_0032:  callvirt instance valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ProjectBase::get_ProductVersion()
+	IL_0037:  ldc.i4.s 0x50
+	IL_0039:  blt IL_006e
 
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit ManagedWrapperReference
-  	extends NAnt.VSNet.WrapperReferenceBase
-  {
-    .field  private  string _name
-    .field  private initonly  string _wrapperTool
-    .field  private initonly  string _wrapperAssembly
-    .field  private initonly  class NAnt.VSNet.ProjectSettings _projectSettings
-    .field  private  string _primaryInteropAssembly
+	IL_003e:  nop 
+	IL_003f:  ldloc.2 
+	IL_0040:  brfalse IL_0058
 
-    // method line 187
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ProjectSettings projectSettings)  cil managed 
-    {
-        // Method begins at RVA 0x7c94
-	// Code size 190 (0xbe)
-	.maxstack 5
-	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		class [System.Xml]System.Xml.XmlAttribute	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  ldarg.s 4
-	IL_0006:  call instance void class NAnt.VSNet.WrapperReferenceBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
-	IL_000b:  nop 
-	IL_000c:  ldarg.s 5
-	IL_000e:  brtrue IL_001f
+	IL_0045:  ldloc.2 
+	IL_0046:  ldc.i4.1 
+	IL_0047:  beq IL_005f
 
-	IL_0013:  nop 
-	IL_0014:  ldstr "projectSettings"
-	IL_0019:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_001e:  throw 
-	IL_001f:  ldarg.0 
-	IL_0020:  ldarg.s 5
-	IL_0022:  stfld class NAnt.VSNet.ProjectSettings NAnt.VSNet.ManagedWrapperReference::_projectSettings
-	IL_0027:  ldarg.0 
-	IL_0028:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
-	IL_002d:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0032:  ldstr "Name"
-	IL_0037:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_003c:  stloc.0 
-	IL_003d:  ldloc.0 
-	IL_003e:  brfalse IL_0051
+	IL_004c:  ldloc.2 
+	IL_004d:  ldc.i4.2 
+	IL_004e:  beq IL_0066
 
-	IL_0043:  nop 
-	IL_0044:  ldarg.0 
-	IL_0045:  ldloc.0 
-	IL_0046:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_004b:  stfld string NAnt.VSNet.ManagedWrapperReference::_name
-	IL_0050:  nop 
-	IL_0051:  ldarg.0 
-	IL_0052:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
-	IL_0057:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_005c:  ldstr "WrapperTool"
-	IL_0061:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0066:  stloc.1 
-	IL_0067:  ldloc.1 
-	IL_0068:  brtrue IL_0099
+	IL_0053:  br IL_006d
+
+	IL_0058:  ldc.i4.0 
+	IL_0059:  stloc.1 
+	IL_005a:  br IL_0089
+
+	IL_005f:  ldc.i4.1 
+	IL_0060:  stloc.1 
+	IL_0061:  br IL_0089
+
+	IL_0066:  ldc.i4.3 
+	IL_0067:  stloc.1 
+	IL_0068:  br IL_0089
 
 	IL_006d:  nop 
-	IL_006e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0073:  ldstr "Wrapper tool for reference \"{0}\" in project \"{1}\" could not be determined."
-	IL_0078:  ldarg.0 
-	IL_0079:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_007e:  ldarg.0 
-	IL_007f:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0084:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_0089:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_008e:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0093:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0098:  throw 
-	IL_0099:  ldarg.0 
-	IL_009a:  ldloc.1 
-	IL_009b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_00a0:  stfld string NAnt.VSNet.ManagedWrapperReference::_wrapperTool
-	IL_00a5:  ldarg.0 
-	IL_00a6:  ldarg.0 
-	IL_00a7:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetPrimaryInteropAssembly()
-	IL_00ac:  stfld string NAnt.VSNet.ManagedWrapperReference::_primaryInteropAssembly
-	IL_00b1:  ldarg.0 
-	IL_00b2:  ldarg.0 
-	IL_00b3:  call instance string class NAnt.VSNet.WrapperReferenceBase::ResolveWrapperAssembly()
-	IL_00b8:  stfld string NAnt.VSNet.ManagedWrapperReference::_wrapperAssembly
-	IL_00bd:  ret 
-    } // end of method ManagedWrapperReference::.ctor
+	IL_006e:  ldtoken NAnt.VSNet.Types.UsePrecompiledHeader
+	IL_0073:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0078:  ldloc.2 
+	IL_0079:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, int32)
+	IL_007e:  unbox.any NAnt.VSNet.Types.UsePrecompiledHeader
+	IL_0083:  stloc.1 
+	IL_0084:  br IL_0089
 
-    // method line 188
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+	IL_0089:  ldloc.1 
+	IL_008a:  ret 
+    } // end of method VcConfigurationBase::get_UsePrecompiledHeader
+
+    // method line 170
+    .method assembly hidebysig specialname 
+           instance default string get_FullName ()  cil managed 
     {
-        // Method begins at RVA 0x7d60
+        // Method begins at RVA 0x9e34
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ManagedWrapperReference::_name
+	IL_0002:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ManagedWrapperReference::get_Name
+    } // end of method VcConfigurationBase::get_FullName
 
-    // method line 189
+    // method line 171
     .method public virtual hidebysig specialname 
-           instance default string get_WrapperTool ()  cil managed 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
     {
-        // Method begins at RVA 0x7d7c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x9e50
+	// Code size 101 (0x65)
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ManagedWrapperReference::_wrapperTool
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcConfigurationBase::_outputDir
+	IL_0007:  brtrue IL_0057
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedWrapperReference::get_WrapperTool
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_RelativeOutputDir()
+	IL_0013:  brfalse IL_0045
 
-    // method line 190
-    .method public virtual hidebysig specialname 
-           instance default string get_WrapperAssembly ()  cil managed 
-    {
-        // Method begins at RVA 0x7d98
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ManagedWrapperReference::_wrapperAssembly
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0018:  nop 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldarg.0 
+	IL_001b:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_0020:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0025:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_002a:  ldarg.0 
+	IL_002b:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_RelativeOutputDir()
+	IL_0030:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0035:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_003a:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcConfigurationBase::_outputDir
+	IL_003f:  nop 
+	IL_0040:  br IL_0056
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedWrapperReference::get_WrapperAssembly
+	IL_0045:  nop 
+	IL_0046:  ldstr "The output directory could not be determined."
+	IL_004b:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0050:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0055:  throw 
+	IL_0056:  nop 
+	IL_0057:  ldarg.0 
+	IL_0058:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcConfigurationBase::_outputDir
+	IL_005d:  stloc.0 
+	IL_005e:  br IL_0063
 
-    // method line 191
-    .method family virtual hidebysig specialname 
-           instance default string get_PrimaryInteropAssembly ()  cil managed 
+	IL_0063:  ldloc.0 
+	IL_0064:  ret 
+    } // end of method VcConfigurationBase::get_OutputDir
+
+    // method line 172
+    .method public virtual hidebysig specialname 
+           instance default string get_BuildPath ()  cil managed 
     {
-        // Method begins at RVA 0x7db4
+        // Method begins at RVA 0x9ec4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ManagedWrapperReference::_primaryInteropAssembly
+	IL_0002:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ManagedWrapperReference::get_PrimaryInteropAssembly
+    } // end of method VcConfigurationBase::get_BuildPath
 
-    // method line 192
-    .method family virtual hidebysig specialname 
-           instance default string get_TypeLibVersion ()  cil managed 
+    // method line 173
+    .method public virtual hidebysig specialname 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x7dd0
-	// Code size 176 (0xb0)
+        // Method begins at RVA 0x9ee0
+	// Code size 60 (0x3c)
 	.maxstack 3
 	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		class [System.Xml]System.Xml.XmlAttribute	V_1,
-		string	V_2,
-		int32	V_3,
-		string	V_4,
-		int32	V_5,
-		string	V_6)
+		int32	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_000c:  ldstr "VersionMajor"
-	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0016:  stloc.0 
-	IL_0017:  ldloc.0 
-	IL_0018:  brtrue IL_0029
+	IL_0002:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
+	IL_0007:  ldstr "|"
+	IL_000c:  callvirt instance int32 string::IndexOf(string)
+	IL_0011:  stloc.0 
+	IL_0012:  ldloc.0 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  blt IL_002d
 
-	IL_001d:  nop 
-	IL_001e:  ldstr "The definition of the reference does not contain a \"VersionMajor\" attribute."
-	IL_0023:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	IL_0028:  throw 
-	IL_0029:  ldarg.0 
-	IL_002a:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
-	IL_002f:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0034:  ldstr "VersionMinor"
-	IL_0039:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_003e:  stloc.1 
-	IL_003f:  ldloc.1 
-	IL_0040:  brtrue IL_0051
+	IL_0019:  nop 
+	IL_001a:  ldarg.0 
+	IL_001b:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
+	IL_0020:  ldc.i4.0 
+	IL_0021:  ldloc.0 
+	IL_0022:  callvirt instance string string::Substring(int32, int32)
+	IL_0027:  stloc.1 
+	IL_0028:  br IL_003a
 
-	IL_0045:  nop 
-	IL_0046:  ldstr "The definition of the reference does not contain a \"VersionMinor\" attribute."
-	IL_004b:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	IL_0050:  throw 
-	IL_0051:  ldloc.0 
-	IL_0052:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_0057:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_005c:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
-	IL_0061:  stloc.3 
-	IL_0062:  ldloca.s 3
-	IL_0064:  ldstr "x"
-	IL_0069:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_006e:  call instance string int32::ToString(string, class [mscorlib]System.IFormatProvider)
-	IL_0073:  stloc.2 
-	IL_0074:  ldloc.1 
-	IL_0075:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_007a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_007f:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
-	IL_0084:  stloc.s 5
-	IL_0086:  ldloca.s 5
-	IL_0088:  ldstr "x"
-	IL_008d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0092:  call instance string int32::ToString(string, class [mscorlib]System.IFormatProvider)
-	IL_0097:  stloc.s 4
-	IL_0099:  ldloc.2 
-	IL_009a:  ldstr "."
-	IL_009f:  ldloc.s 4
-	IL_00a1:  call string string::Concat(string, string, string)
-	IL_00a6:  stloc.s 6
-	IL_00a8:  br IL_00ad
+	IL_002d:  nop 
+	IL_002e:  ldarg.0 
+	IL_002f:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
+	IL_0034:  stloc.1 
+	IL_0035:  br IL_003a
 
-	IL_00ad:  ldloc.s 6
-	IL_00af:  ret 
-    } // end of method ManagedWrapperReference::get_TypeLibVersion
+	IL_003a:  ldloc.1 
+	IL_003b:  ret 
+    } // end of method VcConfigurationBase::get_Name
 
-    // method line 193
-    .method family virtual hidebysig specialname 
-           instance default string get_TypeLibGuid ()  cil managed 
+    // method line 174
+    .method public virtual hidebysig specialname 
+           instance default string get_PlatformName ()  cil managed 
     {
-        // Method begins at RVA 0x7e8c
-	// Code size 55 (0x37)
-	.maxstack 2
+        // Method begins at RVA 0x9f28
+	// Code size 105 (0x69)
+	.maxstack 4
 	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		int32	V_0,
 		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_000c:  ldstr "Guid"
-	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0016:  stloc.0 
-	IL_0017:  ldloc.0 
-	IL_0018:  brtrue IL_0029
+	IL_0002:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
+	IL_0007:  ldstr "|"
+	IL_000c:  callvirt instance int32 string::IndexOf(string)
+	IL_0011:  stloc.0 
+	IL_0012:  ldloc.0 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  blt IL_005b
 
-	IL_001d:  nop 
-	IL_001e:  ldstr "The definition of the reference does not contain a \"Guid\" attribute."
-	IL_0023:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	IL_0028:  throw 
-	IL_0029:  ldloc.0 
-	IL_002a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_002f:  stloc.1 
-	IL_0030:  br IL_0035
+	IL_0019:  nop 
+	IL_001a:  ldloc.0 
+	IL_001b:  ldarg.0 
+	IL_001c:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
+	IL_0021:  callvirt instance int32 string::get_Length()
+	IL_0026:  bge IL_004f
 
-	IL_0035:  ldloc.1 
-	IL_0036:  ret 
-    } // end of method ManagedWrapperReference::get_TypeLibGuid
+	IL_002b:  nop 
+	IL_002c:  ldarg.0 
+	IL_002d:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
+	IL_0032:  ldloc.0 
+	IL_0033:  ldc.i4.1 
+	IL_0034:  add 
+	IL_0035:  ldarg.0 
+	IL_0036:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
+	IL_003b:  callvirt instance int32 string::get_Length()
+	IL_0040:  ldc.i4.1 
+	IL_0041:  sub 
+	IL_0042:  ldloc.0 
+	IL_0043:  sub 
+	IL_0044:  callvirt instance string string::Substring(int32, int32)
+	IL_0049:  stloc.1 
+	IL_004a:  br IL_0067
 
-    // method line 194
-    .method family virtual hidebysig specialname 
-           instance default string get_TypeLibLocale ()  cil managed 
-    {
-        // Method begins at RVA 0x7ed0
-	// Code size 73 (0x49)
-	.maxstack 2
-	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		int32	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_000c:  ldstr "Lcid"
-	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0016:  stloc.0 
-	IL_0017:  ldloc.0 
-	IL_0018:  brtrue IL_0029
+	IL_004f:  nop 
+	IL_0050:  ldsfld string [mscorlib]System.String::Empty
+	IL_0055:  stloc.1 
+	IL_0056:  br IL_0067
 
-	IL_001d:  nop 
-	IL_001e:  ldstr "The definition of the reference does not contain a \"Lcid\" attribute."
-	IL_0023:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	IL_0028:  throw 
-	IL_0029:  ldloc.0 
-	IL_002a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_002f:  call int32 int32::Parse(string)
-	IL_0034:  stloc.1 
-	IL_0035:  ldloca.s 1
-	IL_0037:  ldstr "x"
-	IL_003c:  call instance string int32::ToString(string)
-	IL_0041:  stloc.2 
-	IL_0042:  br IL_0047
+	IL_005b:  nop 
+	IL_005c:  ldsfld string [mscorlib]System.String::Empty
+	IL_0061:  stloc.1 
+	IL_0062:  br IL_0067
 
-	IL_0047:  ldloc.2 
-	IL_0048:  ret 
-    } // end of method ManagedWrapperReference::get_TypeLibLocale
+	IL_0067:  ldloc.1 
+	IL_0068:  ret 
+    } // end of method VcConfigurationBase::get_PlatformName
 
-    // method line 195
-    .method private hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectSettings get_ProjectSettings ()  cil managed 
+    // method line 175
+    .method famorassem virtual hidebysig 
+           instance default string ExpandMacro (string macro)  cil managed 
     {
-        // Method begins at RVA 0x7f28
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x9fa0
+	// Code size 480 (0x1e0)
+	.maxstack 3
 	.locals init (
-		class NAnt.VSNet.ProjectSettings	V_0)
+		string	V_0,
+		class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>	V_1,
+		int32	V_2,
+		string	V_3,
+		string	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ProjectSettings NAnt.VSNet.ManagedWrapperReference::_projectSettings
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
+	IL_0001:  ldarg.1 
+	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0007:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_000c:  stloc.0 
 	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedWrapperReference::get_ProjectSettings
+	IL_000e:  brfalse IL_01b3
 
-    // method line 196
-    .method family virtual hidebysig 
-           instance default void ImportTypeLibrary ()  cil managed 
-    {
-        // Method begins at RVA 0x7f44
-	// Code size 424 (0x1a8)
-	.maxstack 3
-	.locals init (
-		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask	V_0,
-		class NAnt.VSNet.ReferenceBase	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class NAnt.VSNet.WrapperReferenceBase	V_3,
-		class [mscorlib]System.IDisposable	V_4)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_000e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0013:  ldloc.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_001a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_001f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0024:  ldloc.0 
-	IL_0025:  ldarg.0 
-	IL_0026:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_002b:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0035:  ldloc.0 
-	IL_0036:  ldarg.0 
-	IL_0037:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_003c:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_0041:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
-	IL_0046:  ldloc.0 
-	IL_0047:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	IL_004c:  ldloc.0 
-	IL_004d:  ldarg.0 
-	IL_004e:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibrary()
-	IL_0053:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0058:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_TypeLib(class [mscorlib]System.IO.FileInfo)
-	IL_005d:  ldloc.0 
-	IL_005e:  ldarg.0 
-	IL_005f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
-	IL_0064:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0069:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_OutputFile(class [mscorlib]System.IO.FileInfo)
-	IL_006e:  ldloc.0 
-	IL_006f:  ldarg.0 
-	IL_0070:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibraryName()
-	IL_0075:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_Namespace(string)
-	IL_007a:  ldloc.0 
-	IL_007b:  ldc.i4.1 
-	IL_007c:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_SysArray(bool)
-	IL_0081:  ldloc.0 
-	IL_0082:  ldstr "dispret"
-	IL_0087:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_Transform(string)
-	IL_008c:  nop 
-	IL_008d:  ldarg.0 
-	IL_008e:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0093:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
-	IL_0098:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_009d:  stloc.2 
-	.try { // 0
-	  IL_009e:  br IL_00fb
+	IL_0013:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcConfigurationBase::'<>f__switch$map1'
+	IL_0018:  brtrue IL_007e
 
-	  IL_00a3:  ldloc.2 
-	  IL_00a4:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_00a9:  castclass NAnt.VSNet.ReferenceBase
-	  IL_00ae:  stloc.1 
-	  IL_00af:  nop 
-	  IL_00b0:  ldloc.1 
-	  IL_00b1:  isinst NAnt.VSNet.WrapperReferenceBase
-	  IL_00b6:  stloc.3 
-	  IL_00b7:  ldloc.3 
-	  IL_00b8:  brfalse IL_00dd
+	IL_001d:  ldc.i4.7 
+	IL_001e:  newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::'.ctor'(int32)
+	IL_0023:  stloc.1 
+	IL_0024:  ldloc.1 
+	IL_0025:  ldstr "noinherit"
+	IL_002a:  ldc.i4.0 
+	IL_002b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0030:  ldloc.1 
+	IL_0031:  ldstr "intdir"
+	IL_0036:  ldc.i4.1 
+	IL_0037:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_003c:  ldloc.1 
+	IL_003d:  ldstr "vcinstalldir"
+	IL_0042:  ldc.i4.2 
+	IL_0043:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0048:  ldloc.1 
+	IL_0049:  ldstr "vsinstalldir"
+	IL_004e:  ldc.i4.3 
+	IL_004f:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0054:  ldloc.1 
+	IL_0055:  ldstr "frameworkdir"
+	IL_005a:  ldc.i4.4 
+	IL_005b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0060:  ldloc.1 
+	IL_0061:  ldstr "frameworkversion"
+	IL_0066:  ldc.i4.5 
+	IL_0067:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_006c:  ldloc.1 
+	IL_006d:  ldstr "frameworksdkdir"
+	IL_0072:  ldc.i4.6 
+	IL_0073:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
+	IL_0078:  ldloc.1 
+	IL_0079:  stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcConfigurationBase::'<>f__switch$map1'
+	IL_007e:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcConfigurationBase::'<>f__switch$map1'
+	IL_0083:  ldloc.0 
+	IL_0084:  ldloca.s 2
+	IL_0086:  callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::TryGetValue(!0, [out] !1&)
+	IL_008b:  brfalse IL_01b3
 
-	  IL_00bd:  ldloc.3 
-	  IL_00be:  callvirt instance bool class NAnt.VSNet.WrapperReferenceBase::get_IsCreated()
-	  IL_00c3:  brfalse IL_00dd
+	IL_0090:  ldloc.2 
+	IL_0091:  switch (
+	  IL_00bb,
+	  IL_00c6,
+	  IL_00d2,
+	  IL_00e8,
+	  IL_00fe,
+	  IL_0123,
+	  IL_0148,
+	  IL_01b3)
+	IL_00b6:  br IL_01b3
 
-	  IL_00c8:  ldloc.3 
-	  IL_00c9:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperTool()
-	  IL_00ce:  ldstr "tlbimp"
-	  IL_00d3:  call bool string::op_Inequality(string, string)
-	  IL_00d8:  brfalse IL_00e3
+	IL_00bb:  ldstr "$(noinherit)"
+	IL_00c0:  stloc.3 
+	IL_00c1:  br IL_01de
 
-	  IL_00dd:  nop 
-	  IL_00de:  leave IL_00fb
+	IL_00c6:  ldarg.0 
+	IL_00c7:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::get_IntermediateDir()
+	IL_00cc:  stloc.3 
+	IL_00cd:  br IL_01de
 
-	  IL_00e3:  ldloc.0 
-	  IL_00e4:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::get_References()
-	  IL_00e9:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	  IL_00ee:  ldloc.3 
-	  IL_00ef:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
-	  IL_00f4:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_00f9:  pop 
-	  IL_00fa:  nop 
-	  IL_00fb:  ldloc.2 
-	  IL_00fc:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0101:  brtrue IL_00a3
+	IL_00d2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00d7:  ldstr "\"{0}\" macro is not yet implemented."
+	IL_00dc:  ldarg.1 
+	IL_00dd:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00e2:  newobj instance void class [mscorlib]System.NotImplementedException::'.ctor'(string)
+	IL_00e7:  throw 
+	IL_00e8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00ed:  ldstr "\"{0}\" macro is not yet implemented."
+	IL_00f2:  ldarg.1 
+	IL_00f3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00f8:  newobj instance void class [mscorlib]System.NotImplementedException::'.ctor'(string)
+	IL_00fd:  throw 
+	IL_00fe:  ldarg.0 
+	IL_00ff:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
+	IL_0104:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0109:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_010e:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
+	IL_0113:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.DirectoryInfo::get_Parent()
+	IL_0118:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_011d:  stloc.3 
+	IL_011e:  br IL_01de
 
-	  IL_0106:  leave IL_0121
+	IL_0123:  ldstr "v"
+	IL_0128:  ldarg.0 
+	IL_0129:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
+	IL_012e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0133:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0138:  callvirt instance class [mscorlib]System.Version class [NAnt.Core]NAnt.Core.FrameworkInfo::get_ClrVersion()
+	IL_013d:  call string string::Concat(object, object)
+	IL_0142:  stloc.3 
+	IL_0143:  br IL_01de
 
-	} // end .try 0
-	finally  { // 0
-	  IL_010b:  ldloc.2 
-	  IL_010c:  isinst [mscorlib]System.IDisposable
-	  IL_0111:  dup 
-	  IL_0112:  stloc.s 4
-	  IL_0114:  brfalse IL_0120
+	IL_0148:  ldarg.0 
+	IL_0149:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
+	IL_014e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0153:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0158:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_SdkDirectory()
+	IL_015d:  brfalse IL_0183
 
-	  IL_0119:  ldloc.s 4
-	  IL_011b:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0120:  endfinally 
-	} // end handler 0
-	IL_0121:  ldarg.0 
-	IL_0122:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
-	IL_0127:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyOriginatorKeyFile()
-	IL_012c:  brfalse IL_015e
+	IL_0162:  nop 
+	IL_0163:  ldarg.0 
+	IL_0164:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
+	IL_0169:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_016e:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0173:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_SdkDirectory()
+	IL_0178:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_017d:  stloc.3 
+	IL_017e:  br IL_01de
 
-	IL_0131:  nop 
-	IL_0132:  ldloc.0 
-	IL_0133:  ldarg.0 
-	IL_0134:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0139:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_013e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0143:  ldarg.0 
-	IL_0144:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
-	IL_0149:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyOriginatorKeyFile()
-	IL_014e:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0153:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0158:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_KeyFile(class [mscorlib]System.IO.FileInfo)
-	IL_015d:  nop 
-	IL_015e:  ldarg.0 
-	IL_015f:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
-	IL_0164:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyKeyContainerName()
-	IL_0169:  brfalse IL_0181
+	IL_0183:  nop 
+	IL_0184:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0189:  ldstr "Macro \"{0}\" cannot be expanded: the SDK for {0} is not installed."
+	IL_018e:  ldarg.0 
+	IL_018f:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
+	IL_0194:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0199:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_019e:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
+	IL_01a3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_01a8:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_01ad:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_01b2:  throw 
+	.try { // 0
+	  IL_01b3:  nop 
+	  IL_01b4:  ldarg.0 
+	  IL_01b5:  ldarg.1 
+	  IL_01b6:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacro(string)
+	  IL_01bb:  stloc.3 
+	  IL_01bc:  leave IL_01de
 
-	IL_016e:  nop 
-	IL_016f:  ldloc.0 
-	IL_0170:  ldarg.0 
-	IL_0171:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
-	IL_0176:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyKeyContainerName()
-	IL_017b:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_KeyContainer(string)
-	IL_0180:  nop 
-	IL_0181:  ldloc.0 
-	IL_0182:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0187:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	.try { // 1
-	  IL_018c:  nop 
-	  IL_018d:  ldloc.0 
-	  IL_018e:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_0193:  nop 
-	  IL_0194:  leave IL_01a7
+	} // end .try 0
+	catch class [NAnt.Core]NAnt.Core.BuildException { // 0
+	  IL_01c1:  pop 
+	  IL_01c2:  nop 
+	  IL_01c3:  ldarg.1 
+	  IL_01c4:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
+	  IL_01c9:  stloc.s 4
+	  IL_01cb:  ldloc.s 4
+	  IL_01cd:  brfalse IL_01db
 
-	} // end .try 1
-	finally  { // 1
-	  IL_0199:  nop 
-	  IL_019a:  ldloc.0 
-	  IL_019b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_01a0:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	  IL_01a5:  nop 
-	  IL_01a6:  endfinally 
-	} // end handler 1
-	IL_01a7:  ret 
-    } // end of method ManagedWrapperReference::ImportTypeLibrary
+	  IL_01d2:  nop 
+	  IL_01d3:  ldloc.s 4
+	  IL_01d5:  stloc.3 
+	  IL_01d6:  leave IL_01de
 
-    // method line 197
-    .method family virtual hidebysig 
-           instance default void ImportActiveXLibrary ()  cil managed 
+	  IL_01db:  nop 
+	  IL_01dc:  rethrow 
+	} // end handler 0
+	IL_01de:  ldloc.3 
+	IL_01df:  ret 
+    } // end of method VcConfigurationBase::ExpandMacro
+
+    // method line 176
+    .method public hidebysig 
+           instance default string GetToolSetting (string toolName, string settingName)  cil managed 
     {
-        // Method begins at RVA 0x8114
-	// Code size 328 (0x148)
+        // Method begins at RVA 0xa19c
+	// Code size 18 (0x12)
 	.maxstack 4
 	.locals init (
-		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask	V_0,
-		string	V_1)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_000e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0013:  ldloc.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_001a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_001f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0024:  ldloc.0 
-	IL_0025:  ldarg.0 
-	IL_0026:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_002b:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0035:  ldloc.0 
-	IL_0036:  ldarg.0 
-	IL_0037:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_003c:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_0041:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
-	IL_0046:  ldloc.0 
-	IL_0047:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	IL_004c:  ldloc.0 
-	IL_004d:  ldarg.0 
-	IL_004e:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibrary()
-	IL_0053:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0058:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_OcxFile(class [mscorlib]System.IO.FileInfo)
-	IL_005d:  ldloc.0 
-	IL_005e:  ldarg.0 
-	IL_005f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
-	IL_0064:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0069:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_OutputFile(class [mscorlib]System.IO.FileInfo)
-	IL_006e:  ldarg.0 
-	IL_006f:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
-	IL_0074:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyOriginatorKeyFile()
-	IL_0079:  brfalse IL_00ab
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  ldnull 
+	IL_0005:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string, string)
+	IL_000a:  stloc.0 
+	IL_000b:  br IL_0010
 
-	IL_007e:  nop 
-	IL_007f:  ldloc.0 
-	IL_0080:  ldarg.0 
-	IL_0081:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0086:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_008b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0090:  ldarg.0 
-	IL_0091:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
-	IL_0096:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyOriginatorKeyFile()
-	IL_009b:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_00a0:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_00a5:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_KeyFile(class [mscorlib]System.IO.FileInfo)
-	IL_00aa:  nop 
-	IL_00ab:  ldarg.0 
-	IL_00ac:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
-	IL_00b1:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyKeyContainerName()
-	IL_00b6:  brfalse IL_00ce
+	IL_0010:  ldloc.0 
+	IL_0011:  ret 
+    } // end of method VcConfigurationBase::GetToolSetting
 
-	IL_00bb:  nop 
-	IL_00bc:  ldloc.0 
-	IL_00bd:  ldarg.0 
-	IL_00be:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings()
-	IL_00c3:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyKeyContainerName()
-	IL_00c8:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_KeyContainer(string)
-	IL_00cd:  nop 
-	IL_00ce:  ldarg.0 
-	IL_00cf:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_PrimaryInteropAssembly()
-	IL_00d4:  stloc.1 
-	IL_00d5:  ldloc.1 
-	IL_00d6:  brtrue IL_0108
+    // method line 177
+    .method public virtual hidebysig newslot abstract 
+           instance default string GetToolSetting (string toolName, string settingName, string defaultValue)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method VcConfigurationBase::GetToolSetting
 
-	IL_00db:  nop 
-	IL_00dc:  ldarg.0 
-	IL_00dd:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_00e2:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ObjectDir()
-	IL_00e7:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00ec:  ldstr "Interop."
-	IL_00f1:  ldarg.0 
-	IL_00f2:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibraryName()
-	IL_00f7:  ldstr ".dll"
-	IL_00fc:  call string string::Concat(string, string, string)
-	IL_0101:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0106:  stloc.1 
-	IL_0107:  nop 
-	IL_0108:  ldloc.1 
-	IL_0109:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_010e:  brfalse IL_0121
+    // method line 178
+    .method public hidebysig 
+           instance default class [mscorlib]System.Collections.Hashtable GetToolArguments (string toolName, class NAnt.VSNet.VcArgumentMap argMap)  cil managed 
+    {
+        // Method begins at RVA 0xa1bc
+	// Code size 18 (0x12)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Collections.Hashtable	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  ldc.i4.0 
+	IL_0005:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcConfigurationBase::GetToolArguments(string, class NAnt.VSNet.VcArgumentMap, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup)
+	IL_000a:  stloc.0 
+	IL_000b:  br IL_0010
 
-	IL_0113:  nop 
-	IL_0114:  ldloc.0 
-	IL_0115:  ldloc.1 
-	IL_0116:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_011b:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_RcwFile(class [mscorlib]System.IO.FileInfo)
-	IL_0120:  nop 
-	IL_0121:  ldloc.0 
-	IL_0122:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0127:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	.try { // 0
-	  IL_012c:  nop 
-	  IL_012d:  ldloc.0 
-	  IL_012e:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_0133:  nop 
-	  IL_0134:  leave IL_0147
+	IL_0010:  ldloc.0 
+	IL_0011:  ret 
+    } // end of method VcConfigurationBase::GetToolArguments
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0139:  nop 
-	  IL_013a:  ldloc.0 
-	  IL_013b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_0140:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	  IL_0145:  nop 
-	  IL_0146:  endfinally 
-	} // end handler 0
-	IL_0147:  ret 
-    } // end of method ManagedWrapperReference::ImportActiveXLibrary
+    // method line 179
+    .method public virtual hidebysig newslot abstract 
+           instance default class [mscorlib]System.Collections.Hashtable GetToolArguments (string toolName, class NAnt.VSNet.VcArgumentMap argMap, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup ignoreGroup)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method VcConfigurationBase::GetToolArguments
 
-	.property instance string Name ()
+	.property instance string IntermediateDir ()
 	{
-		.get instance default string NAnt.VSNet.ManagedWrapperReference::get_Name () 
+		.get instance default string NAnt.VSNet.VcConfigurationBase::get_IntermediateDir () 
 	}
-	.property instance string WrapperTool ()
+	.property instance string ReferencesPath ()
 	{
-		.get instance default string NAnt.VSNet.ManagedWrapperReference::get_WrapperTool () 
+		.get instance default string NAnt.VSNet.VcConfigurationBase::get_ReferencesPath () 
 	}
-	.property instance string WrapperAssembly ()
+	.property instance valuetype NAnt.VSNet.Types.UsePrecompiledHeader UsePrecompiledHeader ()
 	{
-		.get instance default string NAnt.VSNet.ManagedWrapperReference::get_WrapperAssembly () 
+		.get instance default valuetype NAnt.VSNet.Types.UsePrecompiledHeader NAnt.VSNet.VcConfigurationBase::get_UsePrecompiledHeader () 
 	}
-	.property instance string PrimaryInteropAssembly ()
+	.property instance string FullName ()
 	{
-		.get instance default string NAnt.VSNet.ManagedWrapperReference::get_PrimaryInteropAssembly () 
+		.get instance default string NAnt.VSNet.VcConfigurationBase::get_FullName () 
 	}
-	.property instance string TypeLibVersion ()
+	.property instance class [mscorlib]System.IO.DirectoryInfo OutputDir ()
 	{
-		.get instance default string NAnt.VSNet.ManagedWrapperReference::get_TypeLibVersion () 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcConfigurationBase::get_OutputDir () 
 	}
-	.property instance string TypeLibGuid ()
+	.property instance string BuildPath ()
 	{
-		.get instance default string NAnt.VSNet.ManagedWrapperReference::get_TypeLibGuid () 
+		.get instance default string NAnt.VSNet.VcConfigurationBase::get_BuildPath () 
 	}
-	.property instance string TypeLibLocale ()
+	.property instance string Name ()
 	{
-		.get instance default string NAnt.VSNet.ManagedWrapperReference::get_TypeLibLocale () 
+		.get instance default string NAnt.VSNet.VcConfigurationBase::get_Name () 
 	}
-	.property instance class NAnt.VSNet.ProjectSettings ProjectSettings ()
+	.property instance string PlatformName ()
 	{
-		.get instance default class NAnt.VSNet.ProjectSettings NAnt.VSNet.ManagedWrapperReference::get_ProjectSettings () 
+		.get instance default string NAnt.VSNet.VcConfigurationBase::get_PlatformName () 
 	}
-  } // end of class NAnt.VSNet.ManagedWrapperReference
+  .class nested public auto ansi sealed ExpansionHandler
+  	extends [mscorlib]System.MulticastDelegate
+  {
+
+    // method line 180
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method ExpansionHandler::.ctor
+
+    // method line 181
+    .method public virtual hidebysig newslot 
+           instance default string Invoke (string 'value')  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method ExpansionHandler::Invoke
+
+    // method line 182
+    .method public virtual hidebysig newslot 
+           instance default class [mscorlib]System.IAsyncResult BeginInvoke (string 'value', class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method ExpansionHandler::BeginInvoke
+
+    // method line 183
+    .method public virtual hidebysig newslot 
+           instance default string EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
+    {
+        // Method begins at RVA 0x0
+          // Disassembly of native methods is not supported
+    } // end of method ExpansionHandler::EndInvoke
+
+  } // end of class ExpansionHandler
+
+  } // end of class NAnt.VSNet.VcConfigurationBase
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi beforefieldinit VcArgumentMap
-  	extends [mscorlib]System.Object
+  .class public auto ansi beforefieldinit ReferencesResolver
+  	extends [mscorlib]System.MarshalByRefObject
   {
-    .field  private  class [mscorlib]System.Collections.Hashtable _htArgs
 
-    // method line 198
+    // method line 184
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x8278
-	// Code size 19 (0x13)
+        // Method begins at RVA 0xa1da
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
-	IL_0012:  ret 
-    } // end of method VcArgumentMap::.ctor
+	IL_0001:  call instance void class [mscorlib]System.MarshalByRefObject::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ReferencesResolver::.ctor
 
-    // method line 199
-    .method public hidebysig 
-           instance default void AddString (string propName, string argName)  cil managed 
+    // method line 185
+    .method public virtual hidebysig 
+           instance default object InitializeLifetimeService ()  cil managed 
     {
-        // Method begins at RVA 0x828c
-	// Code size 11 (0xb)
-	.maxstack 8
+        // Method begins at RVA 0xa1e4
+	// Code size 47 (0x2f)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Runtime.Remoting.Lifetime.ILease	V_0,
+		object	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  ldarg.2 
-	IL_0005:  call instance void class NAnt.VSNet.VcArgumentMap::AddString(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
-	IL_000a:  ret 
-    } // end of method VcArgumentMap::AddString
+	IL_0002:  call instance object class [mscorlib]System.MarshalByRefObject::InitializeLifetimeService()
+	IL_0007:  castclass [mscorlib]System.Runtime.Remoting.Lifetime.ILease
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  callvirt instance valuetype [mscorlib]System.Runtime.Remoting.Lifetime.LeaseState class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::get_CurrentState()
+	IL_0013:  ldc.i4.1 
+	IL_0014:  bne.un IL_0026
 
-    // method line 200
-    .method public hidebysig 
-           instance default void AddString (string propName, string argName, bool ignoreEmptyValue)  cil managed 
-    {
-        // Method begins at RVA 0x8298
-	// Code size 12 (0xc)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  ldarg.2 
-	IL_0005:  ldarg.3 
-	IL_0006:  call instance void class NAnt.VSNet.VcArgumentMap::AddString(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string, bool)
-	IL_000b:  ret 
-    } // end of method VcArgumentMap::AddString
+	IL_0019:  nop 
+	IL_001a:  ldloc.0 
+	IL_001b:  ldsfld valuetype [mscorlib]System.TimeSpan [mscorlib]System.TimeSpan::Zero
+	IL_0020:  callvirt instance void class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::set_InitialLeaseTime(valuetype [mscorlib]System.TimeSpan)
+	IL_0025:  nop 
+	IL_0026:  ldloc.0 
+	IL_0027:  stloc.1 
+	IL_0028:  br IL_002d
 
-    // method line 201
-    .method public hidebysig 
-           instance default void AddString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
-    {
-        // Method begins at RVA 0x82a5
-	// Code size 21 (0x15)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
-	IL_0007:  ldarg.2 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.3 
-	IL_000a:  newobj instance void class NAnt.VSNet.VcArgumentMap/VcStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string)
-	IL_000f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0014:  ret 
-    } // end of method VcArgumentMap::AddString
+	IL_002d:  ldloc.1 
+	IL_002e:  ret 
+    } // end of method ReferencesResolver::InitializeLifetimeService
 
-    // method line 202
+    // method line 186
     .method public hidebysig 
-           instance default void AddString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName, bool ignoreEmptyValue)  cil managed 
+           instance default void AppendReferencedModulesLocatedInGivenDirectory (string moduleDirectory, string moduleName, class [mscorlib]System.Collections.Hashtable& allReferences, class [mscorlib]System.Collections.Hashtable& unresolvedReferences)  cil managed 
     {
-        // Method begins at RVA 0x82bb
-	// Code size 23 (0x17)
-	.maxstack 8
+        // Method begins at RVA 0xa220
+	// Code size 139 (0x8b)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.Reflection.Assembly	V_0,
+		class [mscorlib]System.Reflection.AssemblyName[]	V_1,
+		class [mscorlib]System.Reflection.AssemblyName	V_2,
+		class [mscorlib]System.Reflection.AssemblyName[]	V_3,
+		int32	V_4,
+		string	V_5)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
-	IL_0007:  ldarg.2 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.3 
-	IL_000a:  ldarg.s 4
-	IL_000c:  newobj instance void class NAnt.VSNet.VcArgumentMap/VcStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
-	IL_0011:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0016:  ret 
-    } // end of method VcArgumentMap::AddString
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	.try { // 0
+	  IL_0003:  nop 
+	  IL_0004:  ldarg.2 
+	  IL_0005:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFrom(string)
+	  IL_000a:  stloc.0 
+	  IL_000b:  nop 
+	  IL_000c:  leave IL_0018
 
-    // method line 203
-    .method public hidebysig 
-           instance default void AddLinkerString (string propName, string argName)  cil managed 
-    {
-        // Method begins at RVA 0x82d3
-	// Code size 11 (0xb)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  ldarg.2 
-	IL_0005:  call instance void class NAnt.VSNet.VcArgumentMap::AddLinkerString(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
-	IL_000a:  ret 
-    } // end of method VcArgumentMap::AddLinkerString
+	} // end .try 0
+	catch class [mscorlib]System.IO.FileLoadException { // 0
+	  IL_0011:  pop 
+	  IL_0012:  nop 
+	  IL_0013:  leave IL_008a
 
-    // method line 204
-    .method public hidebysig 
-           instance default void AddLinkerString (string propName, string argName, bool ignoreEmptyValue)  cil managed 
-    {
-        // Method begins at RVA 0x82df
-	// Code size 12 (0xc)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  ldarg.2 
-	IL_0005:  ldarg.3 
-	IL_0006:  call instance void class NAnt.VSNet.VcArgumentMap::AddLinkerString(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string, bool)
-	IL_000b:  ret 
-    } // end of method VcArgumentMap::AddLinkerString
+	} // end handler 0
+	IL_0018:  ldloc.0 
+	IL_0019:  callvirt instance class [mscorlib]System.Reflection.AssemblyName[] class [mscorlib]System.Reflection.Assembly::GetReferencedAssemblies()
+	IL_001e:  stloc.1 
+	IL_001f:  nop 
+	IL_0020:  ldloc.1 
+	IL_0021:  stloc.3 
+	IL_0022:  ldc.i4.0 
+	IL_0023:  stloc.s 4
+	IL_0025:  br IL_0080
 
-    // method line 205
-    .method public hidebysig 
-           instance default void AddLinkerString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
-    {
-        // Method begins at RVA 0x82ec
-	// Code size 21 (0x15)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
-	IL_0007:  ldarg.2 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.3 
-	IL_000a:  newobj instance void class NAnt.VSNet.VcArgumentMap/LinkerStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string)
-	IL_000f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0014:  ret 
-    } // end of method VcArgumentMap::AddLinkerString
+	IL_002a:  ldloc.3 
+	IL_002b:  ldloc.s 4
+	IL_002d:  ldelem.ref 
+	IL_002e:  stloc.2 
+	IL_002f:  nop 
+	IL_0030:  ldarg.1 
+	IL_0031:  ldloc.2 
+	IL_0032:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
+	IL_0037:  ldstr ".dll"
+	IL_003c:  call string string::Concat(string, string)
+	IL_0041:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0046:  stloc.s 5
+	IL_0048:  ldloc.s 5
+	IL_004a:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_004f:  brfalse IL_0079
 
-    // method line 206
-    .method public hidebysig 
-           instance default void AddLinkerString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName, bool ignoreEmptyValue)  cil managed 
-    {
-        // Method begins at RVA 0x8302
-	// Code size 23 (0x17)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
-	IL_0007:  ldarg.2 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.3 
-	IL_000a:  ldarg.s 4
-	IL_000c:  newobj instance void class NAnt.VSNet.VcArgumentMap/LinkerStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
-	IL_0011:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0016:  ret 
-    } // end of method VcArgumentMap::AddLinkerString
+	IL_0054:  ldarg.3 
+	IL_0055:  ldind.ref 
+	IL_0056:  ldloc.s 5
+	IL_0058:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	IL_005d:  brtrue IL_0079
 
-    // method line 207
-    .method public hidebysig 
-           instance default void AddQuotedLinkerString (string propName, string argName)  cil managed 
-    {
-        // Method begins at RVA 0x831a
-	// Code size 11 (0xb)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  ldarg.2 
-	IL_0005:  call instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
-	IL_000a:  ret 
-    } // end of method VcArgumentMap::AddQuotedLinkerString
+	IL_0062:  nop 
+	IL_0063:  ldarg.3 
+	IL_0064:  ldind.ref 
+	IL_0065:  ldloc.s 5
+	IL_0067:  ldnull 
+	IL_0068:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_006d:  ldarg.s 4
+	IL_006f:  ldind.ref 
+	IL_0070:  ldloc.s 5
+	IL_0072:  ldnull 
+	IL_0073:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_0078:  nop 
+	IL_0079:  nop 
+	IL_007a:  ldloc.s 4
+	IL_007c:  ldc.i4.1 
+	IL_007d:  add 
+	IL_007e:  stloc.s 4
+	IL_0080:  ldloc.s 4
+	IL_0082:  ldloc.3 
+	IL_0083:  ldlen 
+	IL_0084:  conv.i4 
+	IL_0085:  blt IL_002a
 
-    // method line 208
-    .method public hidebysig 
-           instance default void AddQuotedLinkerString (string propName, string argName, bool ignoreEmptyValue)  cil managed 
-    {
-        // Method begins at RVA 0x8326
-	// Code size 12 (0xc)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  ldarg.2 
-	IL_0005:  ldarg.3 
-	IL_0006:  call instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string, bool)
-	IL_000b:  ret 
-    } // end of method VcArgumentMap::AddQuotedLinkerString
+	IL_008a:  ret 
+    } // end of method ReferencesResolver::AppendReferencedModulesLocatedInGivenDirectory
 
-    // method line 209
+    // method line 187
     .method public hidebysig 
-           instance default void AddQuotedLinkerString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
+           instance default string GetAssemblyFileName (string assemblyName)  cil managed 
     {
-        // Method begins at RVA 0x8333
-	// Code size 21 (0x15)
-	.maxstack 8
+        // Method begins at RVA 0xa2c8
+	// Code size 32 (0x20)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Reflection.Assembly	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
-	IL_0007:  ldarg.2 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.3 
-	IL_000a:  newobj instance void class NAnt.VSNet.VcArgumentMap/QuotedLinkerStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string)
-	IL_000f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0014:  ret 
-    } // end of method VcArgumentMap::AddQuotedLinkerString
+	IL_0001:  ldarg.1 
+	IL_0002:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::Load(string)
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_CodeBase()
+	IL_000e:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	IL_0013:  call instance string class [System]System.Uri::get_LocalPath()
+	IL_0018:  stloc.1 
+	IL_0019:  br IL_001e
 
-    // method line 210
-    .method public hidebysig 
-           instance default void AddQuotedLinkerString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName, bool ignoreEmptyValue)  cil managed 
+	IL_001e:  ldloc.1 
+	IL_001f:  ret 
+    } // end of method ReferencesResolver::GetAssemblyFileName
+
+  } // end of class NAnt.VSNet.ReferencesResolver
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit WebDavClient
+  	extends [mscorlib]System.Object
+  {
+    .field  private  string _webProjectBaseUrl
+
+    // method line 188
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System]System.Uri uriBase)  cil managed 
     {
-        // Method begins at RVA 0x8349
-	// Code size 23 (0x17)
+        // Method begins at RVA 0xa2f4
+	// Code size 20 (0x14)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
-	IL_0007:  ldarg.2 
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.3 
-	IL_000a:  ldarg.s 4
-	IL_000c:  newobj instance void class NAnt.VSNet.VcArgumentMap/QuotedLinkerStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
-	IL_0011:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0016:  ret 
-    } // end of method VcArgumentMap::AddQuotedLinkerString
+	IL_0009:  callvirt instance string object::ToString()
+	IL_000e:  stfld string NAnt.VSNet.WebDavClient::_webProjectBaseUrl
+	IL_0013:  ret 
+    } // end of method WebDavClient::.ctor
 
-    // method line 211
+    // method line 189
     .method public hidebysig 
-           instance default void AddBool (string propName, string argName)  cil managed 
+           instance default void UploadFile (string localFileName, string remoteFileName)  cil managed 
     {
-        // Method begins at RVA 0x8361
-	// Code size 11 (0xb)
-	.maxstack 8
+        // Method begins at RVA 0xa30c
+	// Code size 276 (0x114)
+	.maxstack 4
+	.locals init (
+		class [System]System.Net.WebRequest	V_0,
+		class [mscorlib]System.IO.FileInfo	V_1,
+		int32	V_2,
+		unsigned int8[]	V_3,
+		class [mscorlib]System.IO.FileStream	V_4,
+		class [mscorlib]System.IO.Stream	V_5,
+		int32	V_6,
+		class [System]System.Net.WebResponse	V_7,
+		class [System]System.Net.WebException	V_8,
+		class [System]System.Net.HttpWebResponse	V_9)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  ldarg.2 
-	IL_0005:  call instance void class NAnt.VSNet.VcArgumentMap::AddBool(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
-	IL_000a:  ret 
-    } // end of method VcArgumentMap::AddBool
+	IL_0002:  ldfld string NAnt.VSNet.WebDavClient::_webProjectBaseUrl
+	IL_0007:  ldstr "/"
+	IL_000c:  ldarg.2 
+	IL_000d:  call string string::Concat(string, string, string)
+	IL_0012:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(string)
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldstr "PUT"
+	IL_001e:  callvirt instance void class [System]System.Net.WebRequest::set_Method(string)
+	IL_0023:  ldloc.0 
+	IL_0024:  callvirt instance class [System]System.Net.WebHeaderCollection class [System]System.Net.WebRequest::get_Headers()
+	IL_0029:  ldstr "Translate: f"
+	IL_002e:  callvirt instance void class [System]System.Net.WebHeaderCollection::Add(string)
+	IL_0033:  ldloc.0 
+	IL_0034:  call class [System]System.Net.ICredentials class [System]System.Net.CredentialCache::get_DefaultCredentials()
+	IL_0039:  callvirt instance void class [System]System.Net.WebRequest::set_Credentials(class [System]System.Net.ICredentials)
+	IL_003e:  ldarg.1 
+	IL_003f:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0044:  stloc.1 
+	IL_0045:  ldloc.0 
+	IL_0046:  ldloc.1 
+	IL_0047:  callvirt instance int64 class [mscorlib]System.IO.FileInfo::get_Length()
+	IL_004c:  callvirt instance void class [System]System.Net.WebRequest::set_ContentLength(int64)
+	IL_0051:  ldc.i4 102400
+	IL_0056:  stloc.2 
+	IL_0057:  ldloc.2 
+	IL_0058:  newarr [mscorlib]System.Byte
+	IL_005d:  stloc.3 
+	IL_005e:  ldloc.1 
+	IL_005f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0064:  ldc.i4.3 
+	IL_0065:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode)
+	IL_006a:  stloc.s 4
+	.try { // 1
+	  IL_006c:  nop 
+	  IL_006d:  ldloc.0 
+	  IL_006e:  callvirt instance class [mscorlib]System.IO.Stream class [System]System.Net.WebRequest::GetRequestStream()
+	  IL_0073:  stloc.s 5
+	  .try { // 0
+	    IL_0075:  nop 
+	    IL_0076:  nop 
+	    IL_0077:  ldloc.s 4
+	    IL_0079:  ldloc.3 
+	    IL_007a:  ldc.i4.0 
+	    IL_007b:  ldloc.2 
+	    IL_007c:  callvirt instance int32 class [mscorlib]System.IO.Stream::Read(unsigned int8[], int32, int32)
+	    IL_0081:  stloc.s 6
+	    IL_0083:  ldloc.s 5
+	    IL_0085:  ldloc.3 
+	    IL_0086:  ldc.i4.0 
+	    IL_0087:  ldloc.s 6
+	    IL_0089:  callvirt instance void class [mscorlib]System.IO.Stream::Write(unsigned int8[], int32, int32)
+	    IL_008e:  nop 
+	    IL_008f:  ldloc.s 6
+	    IL_0091:  ldc.i4.0 
+	    IL_0092:  bgt IL_0076
 
-    // method line 212
-    .method public hidebysig 
-           instance default void AddBool (string propName, string argName, string match)  cil managed 
-    {
-        // Method begins at RVA 0x836d
-	// Code size 12 (0xc)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  ldarg.2 
-	IL_0005:  ldarg.3 
-	IL_0006:  call instance void class NAnt.VSNet.VcArgumentMap::AddBool(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string, string)
-	IL_000b:  ret 
-    } // end of method VcArgumentMap::AddBool
+	    IL_0097:  nop 
+	    IL_0098:  leave IL_00ac
 
-    // method line 213
+	  } // end .try 0
+	  finally  { // 0
+	    IL_009d:  ldloc.s 5
+	    IL_009f:  brfalse IL_00ab
+
+	    IL_00a4:  ldloc.s 5
+	    IL_00a6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_00ab:  endfinally 
+	  } // end handler 0
+	  IL_00ac:  nop 
+	  IL_00ad:  leave IL_00c1
+
+	} // end .try 1
+	finally  { // 1
+	  IL_00b2:  ldloc.s 4
+	  IL_00b4:  brfalse IL_00c0
+
+	  IL_00b9:  ldloc.s 4
+	  IL_00bb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00c0:  endfinally 
+	} // end handler 1
+	IL_00c1:  ldnull 
+	IL_00c2:  stloc.3 
+	.try { // 3
+	  IL_00c3:  nop 
+	  IL_00c4:  ldloc.0 
+	  IL_00c5:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
+	  IL_00ca:  stloc.s 7
+	  .try { // 2
+	    IL_00cc:  nop 
+	    IL_00cd:  nop 
+	    IL_00ce:  leave IL_00e2
+
+	  } // end .try 2
+	  finally  { // 2
+	    IL_00d3:  ldloc.s 7
+	    IL_00d5:  brfalse IL_00e1
+
+	    IL_00da:  ldloc.s 7
+	    IL_00dc:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_00e1:  endfinally 
+	  } // end handler 2
+	  IL_00e2:  nop 
+	  IL_00e3:  leave IL_0113
+
+	} // end .try 3
+	catch class [System]System.Net.WebException { // 3
+	  IL_00e8:  stloc.s 8
+	  IL_00ea:  nop 
+	  IL_00eb:  ldloc.s 8
+	  IL_00ed:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebException::get_Response()
+	  IL_00f2:  castclass [System]System.Net.HttpWebResponse
+	  IL_00f7:  stloc.s 9
+	  IL_00f9:  ldloc.s 9
+	  IL_00fb:  callvirt instance valuetype [System]System.Net.HttpStatusCode class [System]System.Net.HttpWebResponse::get_StatusCode()
+	  IL_0100:  ldc.i4 423
+	  IL_0105:  beq IL_010d
+
+	  IL_010a:  nop 
+	  IL_010b:  rethrow 
+	  IL_010d:  nop 
+	  IL_010e:  leave IL_0113
+
+	} // end handler 3
+	IL_0113:  ret 
+    } // end of method WebDavClient::UploadFile
+
+    // method line 190
     .method public hidebysig 
-           instance default void AddBool (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
+           instance default void DeleteFile (string localFileName, string remoteFileName)  cil managed 
     {
-        // Method begins at RVA 0x837a
-	// Code size 21 (0x15)
-	.maxstack 8
+        // Method begins at RVA 0xa460
+	// Code size 90 (0x5a)
+	.maxstack 3
+	.locals init (
+		class [System]System.Net.WebRequest	V_0,
+		class [System]System.Net.WebResponse	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
-	IL_0007:  ldarg.2 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.3 
-	IL_000a:  newobj instance void class NAnt.VSNet.VcArgumentMap/VcBoolArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string)
-	IL_000f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0014:  ret 
-    } // end of method VcArgumentMap::AddBool
+	IL_0002:  ldfld string NAnt.VSNet.WebDavClient::_webProjectBaseUrl
+	IL_0007:  ldstr "/"
+	IL_000c:  ldarg.2 
+	IL_000d:  call string string::Concat(string, string, string)
+	IL_0012:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(string)
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldstr "DELETE"
+	IL_001e:  callvirt instance void class [System]System.Net.WebRequest::set_Method(string)
+	IL_0023:  ldloc.0 
+	IL_0024:  callvirt instance class [System]System.Net.WebHeaderCollection class [System]System.Net.WebRequest::get_Headers()
+	IL_0029:  ldstr "Translate: f"
+	IL_002e:  callvirt instance void class [System]System.Net.WebHeaderCollection::Add(string)
+	IL_0033:  ldloc.0 
+	IL_0034:  call class [System]System.Net.ICredentials class [System]System.Net.CredentialCache::get_DefaultCredentials()
+	IL_0039:  callvirt instance void class [System]System.Net.WebRequest::set_Credentials(class [System]System.Net.ICredentials)
+	IL_003e:  ldloc.0 
+	IL_003f:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
+	IL_0044:  stloc.1 
+	.try { // 0
+	  IL_0045:  nop 
+	  IL_0046:  nop 
+	  IL_0047:  leave IL_0059
 
-    // method line 214
+	} // end .try 0
+	finally  { // 0
+	  IL_004c:  ldloc.1 
+	  IL_004d:  brfalse IL_0058
+
+	  IL_0052:  ldloc.1 
+	  IL_0053:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0058:  endfinally 
+	} // end handler 0
+	IL_0059:  ret 
+    } // end of method WebDavClient::DeleteFile
+
+    // method line 191
     .method public hidebysig 
-           instance default void AddBool (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName, string match)  cil managed 
+           instance default void DownloadFile (string localFileName, string remoteFileName)  cil managed 
     {
-        // Method begins at RVA 0x8390
-	// Code size 23 (0x17)
-	.maxstack 8
+        // Method begins at RVA 0xa4d8
+	// Code size 219 (0xdb)
+	.maxstack 4
+	.locals init (
+		class [System]System.Net.WebRequest	V_0,
+		class [mscorlib]System.IO.FileInfo	V_1,
+		int32	V_2,
+		unsigned int8[]	V_3,
+		class [mscorlib]System.IO.FileStream	V_4,
+		class [mscorlib]System.IO.Stream	V_5,
+		int32	V_6)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
-	IL_0007:  ldarg.2 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.3 
-	IL_000a:  ldarg.s 4
-	IL_000c:  newobj instance void class NAnt.VSNet.VcArgumentMap/VcBoolArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
-	IL_0011:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0016:  ret 
-    } // end of method VcArgumentMap::AddBool
+	IL_0002:  ldfld string NAnt.VSNet.WebDavClient::_webProjectBaseUrl
+	IL_0007:  ldstr "/"
+	IL_000c:  ldarg.2 
+	IL_000d:  call string string::Concat(string, string, string)
+	IL_0012:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(string)
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldstr "GET"
+	IL_001e:  callvirt instance void class [System]System.Net.WebRequest::set_Method(string)
+	IL_0023:  ldloc.0 
+	IL_0024:  callvirt instance class [System]System.Net.WebHeaderCollection class [System]System.Net.WebRequest::get_Headers()
+	IL_0029:  ldstr "Translate: f"
+	IL_002e:  callvirt instance void class [System]System.Net.WebHeaderCollection::Add(string)
+	IL_0033:  ldloc.0 
+	IL_0034:  call class [System]System.Net.ICredentials class [System]System.Net.CredentialCache::get_DefaultCredentials()
+	IL_0039:  callvirt instance void class [System]System.Net.WebRequest::set_Credentials(class [System]System.Net.ICredentials)
+	IL_003e:  ldarg.1 
+	IL_003f:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0044:  stloc.1 
+	IL_0045:  ldloc.1 
+	IL_0046:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
+	IL_004b:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0050:  brtrue IL_0063
 
-    // method line 215
-    .method public hidebysig 
-           instance default void AddEnum (string propName, string argName, string[] values)  cil managed 
-    {
-	.param [3]
-	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0055:  nop 
+	IL_0056:  ldloc.1 
+	IL_0057:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
+	IL_005c:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	IL_0061:  pop 
+	IL_0062:  nop 
+	IL_0063:  ldc.i4 102400
+	IL_0068:  stloc.2 
+	IL_0069:  ldloc.2 
+	IL_006a:  newarr [mscorlib]System.Byte
+	IL_006f:  stloc.3 
+	IL_0070:  ldloc.1 
+	IL_0071:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0076:  ldc.i4.4 
+	IL_0077:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode)
+	IL_007c:  stloc.s 4
+	.try { // 1
+	  IL_007e:  nop 
+	  IL_007f:  ldloc.0 
+	  IL_0080:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
+	  IL_0085:  callvirt instance class [mscorlib]System.IO.Stream class [System]System.Net.WebResponse::GetResponseStream()
+	  IL_008a:  stloc.s 5
+	  .try { // 0
+	    IL_008c:  nop 
+	    IL_008d:  nop 
+	    IL_008e:  ldloc.s 5
+	    IL_0090:  ldloc.3 
+	    IL_0091:  ldc.i4.0 
+	    IL_0092:  ldloc.2 
+	    IL_0093:  callvirt instance int32 class [mscorlib]System.IO.Stream::Read(unsigned int8[], int32, int32)
+	    IL_0098:  stloc.s 6
+	    IL_009a:  ldloc.s 4
+	    IL_009c:  ldloc.3 
+	    IL_009d:  ldc.i4.0 
+	    IL_009e:  ldloc.s 6
+	    IL_00a0:  callvirt instance void class [mscorlib]System.IO.Stream::Write(unsigned int8[], int32, int32)
+	    IL_00a5:  nop 
+	    IL_00a6:  ldloc.s 6
+	    IL_00a8:  ldc.i4.0 
+	    IL_00a9:  bgt IL_008d
 
-        // Method begins at RVA 0x83a8
-	// Code size 12 (0xc)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  ldarg.2 
-	IL_0005:  ldarg.3 
-	IL_0006:  call instance void class NAnt.VSNet.VcArgumentMap::AddEnum(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string, string[])
-	IL_000b:  ret 
-    } // end of method VcArgumentMap::AddEnum
+	    IL_00ae:  nop 
+	    IL_00af:  leave IL_00c3
 
-    // method line 216
-    .method public hidebysig 
-           instance default void AddEnum (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName, string[] values)  cil managed 
-    {
-	.param [4]
-	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	  } // end .try 0
+	  finally  { // 0
+	    IL_00b4:  ldloc.s 5
+	    IL_00b6:  brfalse IL_00c2
 
-        // Method begins at RVA 0x83b5
-	// Code size 23 (0x17)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
-	IL_0007:  ldarg.2 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldarg.3 
-	IL_000a:  ldarg.s 4
-	IL_000c:  newobj instance void class NAnt.VSNet.VcArgumentMap/VcEnumArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string[])
-	IL_0011:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0016:  ret 
-    } // end of method VcArgumentMap::AddEnum
+	    IL_00bb:  ldloc.s 5
+	    IL_00bd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_00c2:  endfinally 
+	  } // end handler 0
+	  IL_00c3:  nop 
+	  IL_00c4:  leave IL_00d8
 
-    // method line 217
+	} // end .try 1
+	finally  { // 1
+	  IL_00c9:  ldloc.s 4
+	  IL_00cb:  brfalse IL_00d7
+
+	  IL_00d0:  ldloc.s 4
+	  IL_00d2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00d7:  endfinally 
+	} // end handler 1
+	IL_00d8:  ldnull 
+	IL_00d9:  stloc.3 
+	IL_00da:  ret 
+    } // end of method WebDavClient::DownloadFile
+
+    // method line 192
     .method public hidebysig 
-           instance default string GetArgument (string propName, string propValue, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup useIgnoreGroup)  cil managed 
+           instance default string GetFileContents (string remoteFileName)  cil managed 
     {
-        // Method begins at RVA 0x83d0
-	// Code size 80 (0x50)
-	.maxstack 2
+        // Method begins at RVA 0xa5dc
+	// Code size 107 (0x6b)
+	.maxstack 3
 	.locals init (
-		class NAnt.VSNet.VcArgumentMap/VcArgument	V_0,
-		string	V_1)
+		class [System]System.Net.WebRequest	V_0,
+		class [mscorlib]System.IO.StreamReader	V_1,
+		string	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_000d:  castclass NAnt.VSNet.VcArgumentMap/VcArgument
-	IL_0012:  stloc.0 
-	IL_0013:  ldloc.0 
-	IL_0014:  brtrue IL_0021
-
-	IL_0019:  nop 
-	IL_001a:  ldnull 
-	IL_001b:  stloc.1 
-	IL_001c:  br IL_004e
-
-	IL_0021:  ldloc.0 
-	IL_0022:  callvirt instance valuetype NAnt.VSNet.VcArgumentMap/ArgGroup class NAnt.VSNet.VcArgumentMap/VcArgument::get_Group()
-	IL_0027:  brfalse IL_0041
-
-	IL_002c:  ldloc.0 
-	IL_002d:  callvirt instance valuetype NAnt.VSNet.VcArgumentMap/ArgGroup class NAnt.VSNet.VcArgumentMap/VcArgument::get_Group()
-	IL_0032:  ldarg.3 
-	IL_0033:  and 
-	IL_0034:  brfalse IL_0041
-
-	IL_0039:  nop 
-	IL_003a:  ldnull 
-	IL_003b:  stloc.1 
-	IL_003c:  br IL_004e
+	IL_0002:  ldfld string NAnt.VSNet.WebDavClient::_webProjectBaseUrl
+	IL_0007:  ldstr "/"
+	IL_000c:  ldarg.1 
+	IL_000d:  call string string::Concat(string, string, string)
+	IL_0012:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(string)
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldstr "GET"
+	IL_001e:  callvirt instance void class [System]System.Net.WebRequest::set_Method(string)
+	IL_0023:  ldloc.0 
+	IL_0024:  callvirt instance class [System]System.Net.WebHeaderCollection class [System]System.Net.WebRequest::get_Headers()
+	IL_0029:  ldstr "Translate: f"
+	IL_002e:  callvirt instance void class [System]System.Net.WebHeaderCollection::Add(string)
+	IL_0033:  ldloc.0 
+	IL_0034:  call class [System]System.Net.ICredentials class [System]System.Net.CredentialCache::get_DefaultCredentials()
+	IL_0039:  callvirt instance void class [System]System.Net.WebRequest::set_Credentials(class [System]System.Net.ICredentials)
+	IL_003e:  ldloc.0 
+	IL_003f:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
+	IL_0044:  callvirt instance class [mscorlib]System.IO.Stream class [System]System.Net.WebResponse::GetResponseStream()
+	IL_0049:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(class [mscorlib]System.IO.Stream)
+	IL_004e:  stloc.1 
+	.try { // 0
+	  IL_004f:  nop 
+	  IL_0050:  ldloc.1 
+	  IL_0051:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
+	  IL_0056:  stloc.2 
+	  IL_0057:  leave IL_0069
 
-	IL_0041:  ldloc.0 
-	IL_0042:  ldarg.2 
-	IL_0043:  callvirt instance string class NAnt.VSNet.VcArgumentMap/VcArgument::MapValue(string)
-	IL_0048:  stloc.1 
-	IL_0049:  br IL_004e
+	} // end .try 0
+	finally  { // 0
+	  IL_005c:  ldloc.1 
+	  IL_005d:  brfalse IL_0068
 
-	IL_004e:  ldloc.1 
-	IL_004f:  ret 
-    } // end of method VcArgumentMap::GetArgument
+	  IL_0062:  ldloc.1 
+	  IL_0063:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0068:  endfinally 
+	} // end handler 0
+	IL_0069:  ldloc.2 
+	IL_006a:  ret 
+    } // end of method WebDavClient::GetFileContents
 
-    // method line 218
+    // method line 193
     .method public static hidebysig 
-           default class NAnt.VSNet.VcArgumentMap CreateCLArgumentMap ()  cil managed 
+           default string GetFileContentsStatic (string remoteFileName)  cil managed 
     {
-        // Method begins at RVA 0x842c
-	// Code size 1044 (0x414)
-	.maxstack 8
+        // Method begins at RVA 0xa664
+	// Code size 91 (0x5b)
+	.maxstack 2
 	.locals init (
-		class NAnt.VSNet.VcArgumentMap	V_0,
-		class NAnt.VSNet.VcArgumentMap	V_1)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.VSNet.VcArgumentMap::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldstr "DebugInformationFormat"
-	IL_000d:  ldnull 
-	IL_000e:  ldc.i4.5 
-	IL_000f:  newarr [mscorlib]System.String
-	IL_0014:  dup 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  ldstr "/Z7"
-	IL_001b:  stelem.ref 
-	IL_001c:  dup 
-	IL_001d:  ldc.i4.2 
-	IL_001e:  ldstr "/Zd"
-	IL_0023:  stelem.ref 
-	IL_0024:  dup 
-	IL_0025:  ldc.i4.3 
-	IL_0026:  ldstr "/Zi"
-	IL_002b:  stelem.ref 
-	IL_002c:  dup 
-	IL_002d:  ldc.i4.4 
-	IL_002e:  ldstr "/ZI"
-	IL_0033:  stelem.ref 
-	IL_0034:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_0039:  ldloc.0 
-	IL_003a:  ldstr "CompileAsManaged"
-	IL_003f:  ldnull 
-	IL_0040:  ldc.i4.3 
-	IL_0041:  newarr [mscorlib]System.String
-	IL_0046:  dup 
-	IL_0047:  ldc.i4.2 
-	IL_0048:  ldstr "/clr"
-	IL_004d:  stelem.ref 
-	IL_004e:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_0053:  ldloc.0 
-	IL_0054:  ldstr "WarningLevel"
-	IL_0059:  ldnull 
-	IL_005a:  ldc.i4.5 
-	IL_005b:  newarr [mscorlib]System.String
-	IL_0060:  dup 
-	IL_0061:  ldc.i4.0 
-	IL_0062:  ldstr "/W0"
-	IL_0067:  stelem.ref 
-	IL_0068:  dup 
-	IL_0069:  ldc.i4.1 
-	IL_006a:  ldstr "/W1"
-	IL_006f:  stelem.ref 
-	IL_0070:  dup 
-	IL_0071:  ldc.i4.2 
-	IL_0072:  ldstr "/W2"
-	IL_0077:  stelem.ref 
-	IL_0078:  dup 
-	IL_0079:  ldc.i4.3 
-	IL_007a:  ldstr "/W3"
-	IL_007f:  stelem.ref 
-	IL_0080:  dup 
-	IL_0081:  ldc.i4.4 
-	IL_0082:  ldstr "/W4"
-	IL_0087:  stelem.ref 
-	IL_0088:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_008d:  ldloc.0 
-	IL_008e:  ldstr "Detect64BitPortabilityProblems"
-	IL_0093:  ldstr "/Wp64"
-	IL_0098:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_009d:  ldloc.0 
-	IL_009e:  ldstr "WarnAsError"
-	IL_00a3:  ldstr "/WX"
-	IL_00a8:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_00ad:  ldloc.0 
-	IL_00ae:  ldstr "Optimization"
-	IL_00b3:  ldnull 
-	IL_00b4:  ldc.i4.4 
-	IL_00b5:  newarr [mscorlib]System.String
-	IL_00ba:  dup 
-	IL_00bb:  ldc.i4.0 
-	IL_00bc:  ldstr "/Od"
-	IL_00c1:  stelem.ref 
-	IL_00c2:  dup 
-	IL_00c3:  ldc.i4.1 
-	IL_00c4:  ldstr "/O1"
-	IL_00c9:  stelem.ref 
-	IL_00ca:  dup 
-	IL_00cb:  ldc.i4.2 
-	IL_00cc:  ldstr "/O2"
-	IL_00d1:  stelem.ref 
-	IL_00d2:  dup 
-	IL_00d3:  ldc.i4.3 
-	IL_00d4:  ldstr "/Ox"
-	IL_00d9:  stelem.ref 
-	IL_00da:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_00df:  ldloc.0 
-	IL_00e0:  ldc.i4.1 
-	IL_00e1:  ldstr "GlobalOptimizations"
-	IL_00e6:  ldstr "/Og"
-	IL_00eb:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
-	IL_00f0:  ldloc.0 
-	IL_00f1:  ldc.i4.1 
-	IL_00f2:  ldstr "InlineFunctionExpansion"
-	IL_00f7:  ldnull 
-	IL_00f8:  ldc.i4.3 
-	IL_00f9:  newarr [mscorlib]System.String
-	IL_00fe:  dup 
-	IL_00ff:  ldc.i4.0 
-	IL_0100:  ldstr "/Ob0"
-	IL_0105:  stelem.ref 
-	IL_0106:  dup 
-	IL_0107:  ldc.i4.1 
-	IL_0108:  ldstr "/Ob1"
-	IL_010d:  stelem.ref 
-	IL_010e:  dup 
-	IL_010f:  ldc.i4.2 
-	IL_0110:  ldstr "/Ob2"
-	IL_0115:  stelem.ref 
-	IL_0116:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string, string[])
-	IL_011b:  ldloc.0 
-	IL_011c:  ldc.i4.1 
-	IL_011d:  ldstr "EnableIntrinsicFunctions"
-	IL_0122:  ldstr "/Oi"
-	IL_0127:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
-	IL_012c:  ldloc.0 
-	IL_012d:  ldstr "ImproveFloatingPointConsistency"
-	IL_0132:  ldstr "/Op"
-	IL_0137:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_013c:  ldloc.0 
-	IL_013d:  ldstr "FavorSizeOrSpeed"
-	IL_0142:  ldnull 
-	IL_0143:  ldc.i4.3 
-	IL_0144:  newarr [mscorlib]System.String
-	IL_0149:  dup 
-	IL_014a:  ldc.i4.1 
-	IL_014b:  ldstr "/Ot"
-	IL_0150:  stelem.ref 
-	IL_0151:  dup 
-	IL_0152:  ldc.i4.2 
-	IL_0153:  ldstr "/Os"
-	IL_0158:  stelem.ref 
-	IL_0159:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_015e:  ldloc.0 
-	IL_015f:  ldc.i4.1 
-	IL_0160:  ldstr "OmitFramePointers"
-	IL_0165:  ldstr "/Oy"
-	IL_016a:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
-	IL_016f:  ldloc.0 
-	IL_0170:  ldstr "EnableFiberSafeOptimizations"
-	IL_0175:  ldstr "/GT"
-	IL_017a:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_017f:  ldloc.0 
-	IL_0180:  ldstr "OptimizeForProcessor"
-	IL_0185:  ldnull 
-	IL_0186:  ldc.i4.4 
-	IL_0187:  newarr [mscorlib]System.String
-	IL_018c:  dup 
-	IL_018d:  ldc.i4.1 
-	IL_018e:  ldstr "/G5"
-	IL_0193:  stelem.ref 
-	IL_0194:  dup 
-	IL_0195:  ldc.i4.2 
-	IL_0196:  ldstr "/G6"
-	IL_019b:  stelem.ref 
-	IL_019c:  dup 
-	IL_019d:  ldc.i4.3 
-	IL_019e:  ldstr "/G7"
-	IL_01a3:  stelem.ref 
-	IL_01a4:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_01a9:  ldloc.0 
-	IL_01aa:  ldstr "OptimizeForWindowsApplication"
-	IL_01af:  ldstr "/GA"
-	IL_01b4:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_01b9:  ldloc.0 
-	IL_01ba:  ldstr "IgnoreStandardIncludePath"
-	IL_01bf:  ldstr "/X"
-	IL_01c4:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_01c9:  ldloc.0 
-	IL_01ca:  ldstr "GeneratePreprocessedFile"
-	IL_01cf:  ldnull 
-	IL_01d0:  ldc.i4.3 
-	IL_01d1:  newarr [mscorlib]System.String
-	IL_01d6:  dup 
-	IL_01d7:  ldc.i4.1 
-	IL_01d8:  ldstr "/P"
-	IL_01dd:  stelem.ref 
-	IL_01de:  dup 
-	IL_01df:  ldc.i4.2 
-	IL_01e0:  ldstr "/EP /P"
-	IL_01e5:  stelem.ref 
-	IL_01e6:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_01eb:  ldloc.0 
-	IL_01ec:  ldstr "KeepComments"
-	IL_01f1:  ldstr "/C"
-	IL_01f6:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_01fb:  ldloc.0 
-	IL_01fc:  ldc.i4.1 
-	IL_01fd:  ldstr "StringPooling"
-	IL_0202:  ldstr "/GF"
-	IL_0207:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
-	IL_020c:  ldloc.0 
-	IL_020d:  ldstr "MinimalRebuild"
-	IL_0212:  ldstr "/Gm"
-	IL_0217:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_021c:  ldloc.0 
-	IL_021d:  ldstr "SmallerTypeCheck"
-	IL_0222:  ldstr "/RTCc"
-	IL_0227:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_022c:  ldloc.0 
-	IL_022d:  ldstr "BasicRuntimeChecks"
-	IL_0232:  ldnull 
-	IL_0233:  ldc.i4.4 
-	IL_0234:  newarr [mscorlib]System.String
-	IL_0239:  dup 
-	IL_023a:  ldc.i4.1 
-	IL_023b:  ldstr "/RTCs"
-	IL_0240:  stelem.ref 
-	IL_0241:  dup 
-	IL_0242:  ldc.i4.2 
-	IL_0243:  ldstr "/RTCu"
-	IL_0248:  stelem.ref 
-	IL_0249:  dup 
-	IL_024a:  ldc.i4.3 
-	IL_024b:  ldstr "/RTC1"
-	IL_0250:  stelem.ref 
-	IL_0251:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_0256:  ldloc.0 
-	IL_0257:  ldstr "RuntimeLibrary"
-	IL_025c:  ldnull 
-	IL_025d:  ldc.i4.6 
-	IL_025e:  newarr [mscorlib]System.String
-	IL_0263:  dup 
-	IL_0264:  ldc.i4.0 
-	IL_0265:  ldstr "/MT"
-	IL_026a:  stelem.ref 
-	IL_026b:  dup 
-	IL_026c:  ldc.i4.1 
-	IL_026d:  ldstr "/MTd"
-	IL_0272:  stelem.ref 
-	IL_0273:  dup 
-	IL_0274:  ldc.i4.2 
-	IL_0275:  ldstr "/MD"
-	IL_027a:  stelem.ref 
-	IL_027b:  dup 
-	IL_027c:  ldc.i4.3 
-	IL_027d:  ldstr "/MDd"
-	IL_0282:  stelem.ref 
-	IL_0283:  dup 
-	IL_0284:  ldc.i4.4 
-	IL_0285:  ldstr "/ML"
-	IL_028a:  stelem.ref 
-	IL_028b:  dup 
-	IL_028c:  ldc.i4.5 
-	IL_028d:  ldstr "/MLd"
-	IL_0292:  stelem.ref 
-	IL_0293:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_0298:  ldloc.0 
-	IL_0299:  ldstr "StructMemberAlignment"
-	IL_029e:  ldnull 
-	IL_029f:  ldc.i4.6 
-	IL_02a0:  newarr [mscorlib]System.String
-	IL_02a5:  dup 
-	IL_02a6:  ldc.i4.1 
-	IL_02a7:  ldstr "/Zp1"
-	IL_02ac:  stelem.ref 
-	IL_02ad:  dup 
-	IL_02ae:  ldc.i4.2 
-	IL_02af:  ldstr "/Zp2"
-	IL_02b4:  stelem.ref 
-	IL_02b5:  dup 
-	IL_02b6:  ldc.i4.3 
-	IL_02b7:  ldstr "/Zp4"
-	IL_02bc:  stelem.ref 
-	IL_02bd:  dup 
-	IL_02be:  ldc.i4.4 
-	IL_02bf:  ldstr "/Zp8"
-	IL_02c4:  stelem.ref 
-	IL_02c5:  dup 
-	IL_02c6:  ldc.i4.5 
-	IL_02c7:  ldstr "/Zp16"
-	IL_02cc:  stelem.ref 
-	IL_02cd:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_02d2:  ldloc.0 
-	IL_02d3:  ldstr "BufferSecurityCheck"
-	IL_02d8:  ldstr "/GS"
-	IL_02dd:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_02e2:  ldloc.0 
-	IL_02e3:  ldc.i4.1 
-	IL_02e4:  ldstr "EnableFunctionLevelLinking"
-	IL_02e9:  ldstr "/Gy"
-	IL_02ee:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
-	IL_02f3:  ldloc.0 
-	IL_02f4:  ldstr "EnableEnhancedInstructionSet"
-	IL_02f9:  ldnull 
-	IL_02fa:  ldc.i4.3 
-	IL_02fb:  newarr [mscorlib]System.String
-	IL_0300:  dup 
-	IL_0301:  ldc.i4.1 
-	IL_0302:  ldstr "/arch:SSE"
-	IL_0307:  stelem.ref 
-	IL_0308:  dup 
-	IL_0309:  ldc.i4.2 
-	IL_030a:  ldstr "/arch:SSE2"
-	IL_030f:  stelem.ref 
-	IL_0310:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_0315:  ldloc.0 
-	IL_0316:  ldstr "DisableLanguageExtensions"
-	IL_031b:  ldstr "/Za"
-	IL_0320:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0325:  ldloc.0 
-	IL_0326:  ldstr "DefaultCharIsUnsigned"
-	IL_032b:  ldstr "/J"
-	IL_0330:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0335:  ldloc.0 
-	IL_0336:  ldstr "TreatWChar_tAsBuiltInType"
-	IL_033b:  ldstr "/Zc:wchar_t"
-	IL_0340:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0345:  ldloc.0 
-	IL_0346:  ldstr "ForceConformanceInForLoopScope"
-	IL_034b:  ldstr "/Zc:forScope"
-	IL_0350:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0355:  ldloc.0 
-	IL_0356:  ldstr "RuntimeTypeInfo"
-	IL_035b:  ldstr "/GR"
-	IL_0360:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0365:  ldloc.0 
-	IL_0366:  ldstr "ExpandAttributedSource"
-	IL_036b:  ldstr "/Fx"
-	IL_0370:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0375:  ldloc.0 
-	IL_0376:  ldstr "AssemblerOutput"
-	IL_037b:  ldnull 
-	IL_037c:  ldc.i4.5 
-	IL_037d:  newarr [mscorlib]System.String
-	IL_0382:  dup 
-	IL_0383:  ldc.i4.1 
-	IL_0384:  ldstr "/FA"
-	IL_0389:  stelem.ref 
-	IL_038a:  dup 
-	IL_038b:  ldc.i4.2 
-	IL_038c:  ldstr "/FAcs"
-	IL_0391:  stelem.ref 
-	IL_0392:  dup 
-	IL_0393:  ldc.i4.3 
-	IL_0394:  ldstr "/FAc"
-	IL_0399:  stelem.ref 
-	IL_039a:  dup 
-	IL_039b:  ldc.i4.4 
-	IL_039c:  ldstr "/FAs"
-	IL_03a1:  stelem.ref 
-	IL_03a2:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_03a7:  ldloc.0 
-	IL_03a8:  ldstr "CallingConvention"
-	IL_03ad:  ldnull 
-	IL_03ae:  ldc.i4.3 
-	IL_03af:  newarr [mscorlib]System.String
-	IL_03b4:  dup 
-	IL_03b5:  ldc.i4.1 
-	IL_03b6:  ldstr "/Gr"
-	IL_03bb:  stelem.ref 
-	IL_03bc:  dup 
-	IL_03bd:  ldc.i4.2 
-	IL_03be:  ldstr "/Gz"
-	IL_03c3:  stelem.ref 
-	IL_03c4:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_03c9:  ldloc.0 
-	IL_03ca:  ldstr "CompileAs"
-	IL_03cf:  ldnull 
-	IL_03d0:  ldc.i4.3 
-	IL_03d1:  newarr [mscorlib]System.String
-	IL_03d6:  dup 
-	IL_03d7:  ldc.i4.1 
-	IL_03d8:  ldstr "/TC"
-	IL_03dd:  stelem.ref 
-	IL_03de:  dup 
-	IL_03df:  ldc.i4.2 
-	IL_03e0:  ldstr "/TP"
-	IL_03e5:  stelem.ref 
-	IL_03e6:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_03eb:  ldloc.0 
-	IL_03ec:  ldstr "ShowIncludes"
-	IL_03f1:  ldstr "/showIncludes"
-	IL_03f6:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_03fb:  ldloc.0 
-	IL_03fc:  ldstr "UndefineAllPreprocessorDefinitions"
-	IL_0401:  ldstr "/u"
-	IL_0406:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_040b:  ldloc.0 
-	IL_040c:  stloc.1 
-	IL_040d:  br IL_0412
-
-	IL_0412:  ldloc.1 
-	IL_0413:  ret 
-    } // end of method VcArgumentMap::CreateCLArgumentMap
-
-    // method line 219
-    .method public static hidebysig 
-           default class NAnt.VSNet.VcArgumentMap CreateLinkerArgumentMap ()  cil managed 
-    {
-        // Method begins at RVA 0x884c
-	// Code size 693 (0x2b5)
-	.maxstack 7
-	.locals init (
-		class NAnt.VSNet.VcArgumentMap	V_0,
-		class NAnt.VSNet.VcArgumentMap	V_1)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.VSNet.VcArgumentMap::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldstr "LinkIncremental"
-	IL_000d:  ldnull 
-	IL_000e:  ldc.i4.3 
-	IL_000f:  newarr [mscorlib]System.String
-	IL_0014:  dup 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  ldstr "/INCREMENTAL:NO"
-	IL_001b:  stelem.ref 
-	IL_001c:  dup 
-	IL_001d:  ldc.i4.2 
-	IL_001e:  ldstr "/INCREMENTAL"
-	IL_0023:  stelem.ref 
-	IL_0024:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_0029:  ldloc.0 
-	IL_002a:  ldstr "Version"
-	IL_002f:  ldstr "/VERSION:"
-	IL_0034:  ldc.i4.1 
-	IL_0035:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddLinkerString(string, string, bool)
-	IL_003a:  ldloc.0 
-	IL_003b:  ldstr "IgnoreAllDefaultLibraries"
-	IL_0040:  ldstr "/NODEFAULTLIB"
-	IL_0045:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_004a:  ldloc.0 
-	IL_004b:  ldstr "ModuleDefinitionFile"
-	IL_0050:  ldstr "/DEF:"
-	IL_0055:  ldc.i4.1 
-	IL_0056:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
-	IL_005b:  ldloc.0 
-	IL_005c:  ldstr "StripPrivateSymbols"
-	IL_0061:  ldstr "/PDBSTRIPPED:"
-	IL_0066:  ldc.i4.1 
-	IL_0067:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
-	IL_006c:  ldloc.0 
-	IL_006d:  ldstr "MapExports"
-	IL_0072:  ldstr "/MAPINFO:EXPORTS"
-	IL_0077:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_007c:  ldloc.0 
-	IL_007d:  ldstr "MapLines"
-	IL_0082:  ldstr "/MAPINFO:LINES"
-	IL_0087:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_008c:  ldloc.0 
-	IL_008d:  ldstr "AssemblyDebug"
-	IL_0092:  ldnull 
-	IL_0093:  ldc.i4.3 
-	IL_0094:  newarr [mscorlib]System.String
-	IL_0099:  dup 
-	IL_009a:  ldc.i4.1 
-	IL_009b:  ldstr "/ASSEMBLYDEBUG"
-	IL_00a0:  stelem.ref 
-	IL_00a1:  dup 
-	IL_00a2:  ldc.i4.2 
-	IL_00a3:  ldstr "/ASSEMBLYDEBUG:DISABLE"
-	IL_00a8:  stelem.ref 
-	IL_00a9:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_00ae:  ldloc.0 
-	IL_00af:  ldstr "SubSystem"
-	IL_00b4:  ldstr "/SUBSYSTEM:"
-	IL_00b9:  ldc.i4.3 
-	IL_00ba:  newarr [mscorlib]System.String
-	IL_00bf:  dup 
-	IL_00c0:  ldc.i4.1 
-	IL_00c1:  ldstr "CONSOLE"
-	IL_00c6:  stelem.ref 
-	IL_00c7:  dup 
-	IL_00c8:  ldc.i4.2 
-	IL_00c9:  ldstr "WINDOWS"
-	IL_00ce:  stelem.ref 
-	IL_00cf:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_00d4:  ldloc.0 
-	IL_00d5:  ldstr "LargeAddressAware"
-	IL_00da:  ldnull 
-	IL_00db:  ldc.i4.3 
-	IL_00dc:  newarr [mscorlib]System.String
-	IL_00e1:  dup 
-	IL_00e2:  ldc.i4.1 
-	IL_00e3:  ldstr "/LARGEADDRESSAWARE:NO"
-	IL_00e8:  stelem.ref 
-	IL_00e9:  dup 
-	IL_00ea:  ldc.i4.2 
-	IL_00eb:  ldstr "/LARGEADDRESSAWARE"
-	IL_00f0:  stelem.ref 
-	IL_00f1:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_00f6:  ldloc.0 
-	IL_00f7:  ldstr "TerminalServerAware"
-	IL_00fc:  ldnull 
-	IL_00fd:  ldc.i4.3 
-	IL_00fe:  newarr [mscorlib]System.String
-	IL_0103:  dup 
-	IL_0104:  ldc.i4.1 
-	IL_0105:  ldstr "/TSAWARE:NO"
-	IL_010a:  stelem.ref 
-	IL_010b:  dup 
-	IL_010c:  ldc.i4.2 
-	IL_010d:  ldstr "/TSAWARE"
-	IL_0112:  stelem.ref 
-	IL_0113:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_0118:  ldloc.0 
-	IL_0119:  ldstr "SwapRunFromCD"
-	IL_011e:  ldstr "/SWAPRUN:CD"
-	IL_0123:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0128:  ldloc.0 
-	IL_0129:  ldstr "SwapRunFromNet"
-	IL_012e:  ldstr "/SWAPRUN:NET"
-	IL_0133:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0138:  ldloc.0 
-	IL_0139:  ldstr "OptimizeReferences"
-	IL_013e:  ldstr "/OPT:"
-	IL_0143:  ldc.i4.3 
-	IL_0144:  newarr [mscorlib]System.String
-	IL_0149:  dup 
-	IL_014a:  ldc.i4.1 
-	IL_014b:  ldstr "NOREF"
-	IL_0150:  stelem.ref 
-	IL_0151:  dup 
-	IL_0152:  ldc.i4.2 
-	IL_0153:  ldstr "REF"
-	IL_0158:  stelem.ref 
-	IL_0159:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_015e:  ldloc.0 
-	IL_015f:  ldstr "EnableCOMDATFolding"
-	IL_0164:  ldstr "/OPT:"
-	IL_0169:  ldc.i4.3 
-	IL_016a:  newarr [mscorlib]System.String
-	IL_016f:  dup 
-	IL_0170:  ldc.i4.1 
-	IL_0171:  ldstr "NOICF"
-	IL_0176:  stelem.ref 
-	IL_0177:  dup 
-	IL_0178:  ldc.i4.2 
-	IL_0179:  ldstr "ICF"
-	IL_017e:  stelem.ref 
-	IL_017f:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_0184:  ldloc.0 
-	IL_0185:  ldstr "OptimizeForWindows98"
-	IL_018a:  ldstr "/OPT:"
-	IL_018f:  ldc.i4.3 
-	IL_0190:  newarr [mscorlib]System.String
-	IL_0195:  dup 
-	IL_0196:  ldc.i4.1 
-	IL_0197:  ldstr "NOWIN98"
-	IL_019c:  stelem.ref 
-	IL_019d:  dup 
-	IL_019e:  ldc.i4.2 
-	IL_019f:  ldstr "WIN98"
-	IL_01a4:  stelem.ref 
-	IL_01a5:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_01aa:  ldloc.0 
-	IL_01ab:  ldstr "FunctionOrder"
-	IL_01b0:  ldstr "/ORDER:"
-	IL_01b5:  ldc.i4.1 
-	IL_01b6:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
-	IL_01bb:  ldloc.0 
-	IL_01bc:  ldstr "IgnoreEmbeddedIDL"
-	IL_01c1:  ldstr "/IGNOREIDL"
-	IL_01c6:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_01cb:  ldloc.0 
-	IL_01cc:  ldstr "MergedIDLBaseFileName"
-	IL_01d1:  ldstr "/IDLOUT:"
-	IL_01d6:  ldc.i4.1 
-	IL_01d7:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
-	IL_01dc:  ldloc.0 
-	IL_01dd:  ldstr "TypeLibraryFile"
-	IL_01e2:  ldstr "/TLBOUT:"
-	IL_01e7:  ldc.i4.1 
-	IL_01e8:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
-	IL_01ed:  ldloc.0 
-	IL_01ee:  ldstr "TypeLibraryResourceID"
-	IL_01f3:  ldstr "/TLBID:"
-	IL_01f8:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddLinkerString(string, string)
-	IL_01fd:  ldloc.0 
-	IL_01fe:  ldstr "EntryPointSymbol"
-	IL_0203:  ldstr "/ENTRY:"
-	IL_0208:  ldc.i4.1 
-	IL_0209:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
-	IL_020e:  ldloc.0 
-	IL_020f:  ldstr "ResourceOnlyDLL"
-	IL_0214:  ldstr "/NOENTRY"
-	IL_0219:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_021e:  ldloc.0 
-	IL_021f:  ldstr "SetChecksum"
-	IL_0224:  ldstr "/RELEASE"
-	IL_0229:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_022e:  ldloc.0 
-	IL_022f:  ldstr "BaseAddress"
-	IL_0234:  ldstr "/BASE:"
-	IL_0239:  ldc.i4.1 
-	IL_023a:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
-	IL_023f:  ldloc.0 
-	IL_0240:  ldstr "FixedBaseAddress"
-	IL_0245:  ldnull 
-	IL_0246:  ldc.i4.3 
-	IL_0247:  newarr [mscorlib]System.String
-	IL_024c:  dup 
-	IL_024d:  ldc.i4.1 
-	IL_024e:  ldstr "/FIXED:NO"
-	IL_0253:  stelem.ref 
-	IL_0254:  dup 
-	IL_0255:  ldc.i4.2 
-	IL_0256:  ldstr "/FIXED"
-	IL_025b:  stelem.ref 
-	IL_025c:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_0261:  ldloc.0 
-	IL_0262:  ldstr "TurnOffAssemblyGeneration"
-	IL_0267:  ldstr "/NOASSEMBLY"
-	IL_026c:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0271:  ldloc.0 
-	IL_0272:  ldstr "SupportUnloadOfDelayLoadedDLL"
-	IL_0277:  ldstr "/DELAY:UNLOAD"
-	IL_027c:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0281:  ldloc.0 
-	IL_0282:  ldstr "MergeSections"
-	IL_0287:  ldstr "/MERGE:"
-	IL_028c:  ldc.i4.1 
-	IL_028d:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
-	IL_0292:  ldloc.0 
-	IL_0293:  ldstr "TargetMachine"
-	IL_0298:  ldnull 
-	IL_0299:  ldc.i4.2 
-	IL_029a:  newarr [mscorlib]System.String
-	IL_029f:  dup 
-	IL_02a0:  ldc.i4.1 
-	IL_02a1:  ldstr "/MACHINE:X86"
-	IL_02a6:  stelem.ref 
-	IL_02a7:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_02ac:  ldloc.0 
-	IL_02ad:  stloc.1 
-	IL_02ae:  br IL_02b3
-
-	IL_02b3:  ldloc.1 
-	IL_02b4:  ret 
-    } // end of method VcArgumentMap::CreateLinkerArgumentMap
-
-    // method line 220
-    .method public static hidebysig 
-           default class NAnt.VSNet.VcArgumentMap CreateMidlArgumentMap ()  cil managed 
-    {
-        // Method begins at RVA 0x8b10
-	// Code size 419 (0x1a3)
-	.maxstack 7
-	.locals init (
-		class NAnt.VSNet.VcArgumentMap	V_0,
-		class NAnt.VSNet.VcArgumentMap	V_1)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.VSNet.VcArgumentMap::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldstr "IgnoreStandardIncludePath"
-	IL_000d:  ldstr "/no_def_idir"
-	IL_0012:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0017:  ldloc.0 
-	IL_0018:  ldstr "MkTypLibCompatible"
-	IL_001d:  ldstr "/mktyplib203"
-	IL_0022:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0027:  ldloc.0 
-	IL_0028:  ldstr "WarningLevel"
-	IL_002d:  ldnull 
-	IL_002e:  ldc.i4.5 
-	IL_002f:  newarr [mscorlib]System.String
-	IL_0034:  dup 
-	IL_0035:  ldc.i4.0 
-	IL_0036:  ldstr "/W0"
-	IL_003b:  stelem.ref 
-	IL_003c:  dup 
-	IL_003d:  ldc.i4.1 
-	IL_003e:  ldstr "/W1"
-	IL_0043:  stelem.ref 
-	IL_0044:  dup 
-	IL_0045:  ldc.i4.2 
-	IL_0046:  ldstr "/W2"
-	IL_004b:  stelem.ref 
-	IL_004c:  dup 
-	IL_004d:  ldc.i4.3 
-	IL_004e:  ldstr "/W3"
-	IL_0053:  stelem.ref 
-	IL_0054:  dup 
-	IL_0055:  ldc.i4.4 
-	IL_0056:  ldstr "/W4"
-	IL_005b:  stelem.ref 
-	IL_005c:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_0061:  ldloc.0 
-	IL_0062:  ldstr "WarnAsError"
-	IL_0067:  ldstr "/WX"
-	IL_006c:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0071:  ldloc.0 
-	IL_0072:  ldstr "DefaultCharType"
-	IL_0077:  ldnull 
-	IL_0078:  ldc.i4.3 
-	IL_0079:  newarr [mscorlib]System.String
-	IL_007e:  dup 
-	IL_007f:  ldc.i4.0 
-	IL_0080:  ldstr "unsigned"
-	IL_0085:  stelem.ref 
-	IL_0086:  dup 
-	IL_0087:  ldc.i4.1 
-	IL_0088:  ldstr "signed"
-	IL_008d:  stelem.ref 
-	IL_008e:  dup 
-	IL_008f:  ldc.i4.2 
-	IL_0090:  ldstr "ascii7"
-	IL_0095:  stelem.ref 
-	IL_0096:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_009b:  ldloc.0 
-	IL_009c:  ldstr "TargetEnvironment"
-	IL_00a1:  ldnull 
-	IL_00a2:  ldc.i4.3 
-	IL_00a3:  newarr [mscorlib]System.String
-	IL_00a8:  dup 
-	IL_00a9:  ldc.i4.1 
-	IL_00aa:  ldstr "win32"
-	IL_00af:  stelem.ref 
-	IL_00b0:  dup 
-	IL_00b1:  ldc.i4.2 
-	IL_00b2:  ldstr "win64"
-	IL_00b7:  stelem.ref 
-	IL_00b8:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_00bd:  ldloc.0 
-	IL_00be:  ldstr "GenerateStublessProxies"
-	IL_00c3:  ldstr "/Oicf"
-	IL_00c8:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_00cd:  ldloc.0 
-	IL_00ce:  ldstr "GenerateTypeLibrary"
-	IL_00d3:  ldstr "/notlb"
-	IL_00d8:  ldstr "false"
-	IL_00dd:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string, string)
-	IL_00e2:  ldloc.0 
-	IL_00e3:  ldstr "EnableErrorChecks"
-	IL_00e8:  ldstr "/error "
-	IL_00ed:  ldc.i4.3 
-	IL_00ee:  newarr [mscorlib]System.String
-	IL_00f3:  dup 
-	IL_00f4:  ldc.i4.1 
-	IL_00f5:  ldstr "none"
-	IL_00fa:  stelem.ref 
-	IL_00fb:  dup 
-	IL_00fc:  ldc.i4.2 
-	IL_00fd:  ldstr "all"
-	IL_0102:  stelem.ref 
-	IL_0103:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_0108:  ldloc.0 
-	IL_0109:  ldstr "ErrorCheckAllocations"
-	IL_010e:  ldstr "/error allocation"
-	IL_0113:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0118:  ldloc.0 
-	IL_0119:  ldstr "ErrorCheckBounds"
-	IL_011e:  ldstr "/error bounds_check"
-	IL_0123:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0128:  ldloc.0 
-	IL_0129:  ldstr "ErrorCheckEnumRange"
-	IL_012e:  ldstr "/error enum"
-	IL_0133:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0138:  ldloc.0 
-	IL_0139:  ldstr "ErrorCheckRefPointers"
-	IL_013e:  ldstr "/error ref"
-	IL_0143:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0148:  ldloc.0 
-	IL_0149:  ldstr "ErrorCheckStubData"
-	IL_014e:  ldstr "/error stub_data"
-	IL_0153:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0158:  ldloc.0 
-	IL_0159:  ldstr "ValidateParameters"
-	IL_015e:  ldstr "/robust"
-	IL_0163:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
-	IL_0168:  ldloc.0 
-	IL_0169:  ldstr "StructMemberAlignment"
-	IL_016e:  ldnull 
-	IL_016f:  ldc.i4.5 
-	IL_0170:  newarr [mscorlib]System.String
-	IL_0175:  dup 
-	IL_0176:  ldc.i4.1 
-	IL_0177:  ldstr "/Zp1"
-	IL_017c:  stelem.ref 
-	IL_017d:  dup 
-	IL_017e:  ldc.i4.2 
-	IL_017f:  ldstr "/Zp2"
-	IL_0184:  stelem.ref 
-	IL_0185:  dup 
-	IL_0186:  ldc.i4.3 
-	IL_0187:  ldstr "/Zp4"
-	IL_018c:  stelem.ref 
-	IL_018d:  dup 
-	IL_018e:  ldc.i4.4 
-	IL_018f:  ldstr "/Zp8"
-	IL_0194:  stelem.ref 
-	IL_0195:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
-	IL_019a:  ldloc.0 
-	IL_019b:  stloc.1 
-	IL_019c:  br IL_01a1
-
-	IL_01a1:  ldloc.1 
-	IL_01a2:  ret 
-    } // end of method VcArgumentMap::CreateMidlArgumentMap
-
-  .class nested private auto ansi abstract beforefieldinit VcArgument
-  	extends [mscorlib]System.Object
-  {
-    .field  private  string _name
-    .field  private  valuetype NAnt.VSNet.VcArgumentMap/ArgGroup _group
-
-    // method line 221
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
-    {
-        // Method begins at RVA 0x8cbf
-	// Code size 22 (0x16)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.2 
-	IL_0009:  stfld string NAnt.VSNet.VcArgumentMap/VcArgument::_name
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  stfld valuetype NAnt.VSNet.VcArgumentMap/ArgGroup NAnt.VSNet.VcArgumentMap/VcArgument::_group
-	IL_0015:  ret 
-    } // end of method VcArgument::.ctor
-
-    // method line 222
-    .method public hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x8cd8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
+		class [System]System.Net.WebRequest	V_0,
+		class [mscorlib]System.IO.StreamReader	V_1,
+		string	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcArgumentMap/VcArgument::_name
+	IL_0002:  call class [System]System.Net.WebRequest class [System]System.Net.WebRequest::Create(string)
 	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0008:  ldloc.0 
+	IL_0009:  ldstr "GET"
+	IL_000e:  callvirt instance void class [System]System.Net.WebRequest::set_Method(string)
+	IL_0013:  ldloc.0 
+	IL_0014:  callvirt instance class [System]System.Net.WebHeaderCollection class [System]System.Net.WebRequest::get_Headers()
+	IL_0019:  ldstr "Translate: f"
+	IL_001e:  callvirt instance void class [System]System.Net.WebHeaderCollection::Add(string)
+	IL_0023:  ldloc.0 
+	IL_0024:  call class [System]System.Net.ICredentials class [System]System.Net.CredentialCache::get_DefaultCredentials()
+	IL_0029:  callvirt instance void class [System]System.Net.WebRequest::set_Credentials(class [System]System.Net.ICredentials)
+	IL_002e:  ldloc.0 
+	IL_002f:  callvirt instance class [System]System.Net.WebResponse class [System]System.Net.WebRequest::GetResponse()
+	IL_0034:  callvirt instance class [mscorlib]System.IO.Stream class [System]System.Net.WebResponse::GetResponseStream()
+	IL_0039:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(class [mscorlib]System.IO.Stream)
+	IL_003e:  stloc.1 
+	.try { // 0
+	  IL_003f:  nop 
+	  IL_0040:  ldloc.1 
+	  IL_0041:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
+	  IL_0046:  stloc.2 
+	  IL_0047:  leave IL_0059
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcArgument::get_Name
+	} // end .try 0
+	finally  { // 0
+	  IL_004c:  ldloc.1 
+	  IL_004d:  brfalse IL_0058
 
-    // method line 223
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.VSNet.VcArgumentMap/ArgGroup get_Group ()  cil managed 
-    {
-        // Method begins at RVA 0x8cf4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.VSNet.VcArgumentMap/ArgGroup	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.VSNet.VcArgumentMap/ArgGroup NAnt.VSNet.VcArgumentMap/VcArgument::_group
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_0052:  ldloc.1 
+	  IL_0053:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0058:  endfinally 
+	} // end handler 0
+	IL_0059:  ldloc.2 
+	IL_005a:  ret 
+    } // end of method WebDavClient::GetFileContentsStatic
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcArgument::get_Group
+  } // end of class NAnt.VSNet.WebDavClient
+}
 
-    // method line 224
-    .method assembly virtual hidebysig newslot abstract 
-           instance default string MapValue (string propValue)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method VcArgument::MapValue
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit VcProject
+  	extends NAnt.VSNet.ProjectBase
+  {
+    .field  private initonly  string _name
+    .field  private initonly  string _projectPath
+    .field  private  string _guid
+    .field  private initonly  class [mscorlib]System.Collections.ArrayList _references
+    .field  private initonly  class NAnt.VSNet.VcArgumentMap _clArgMap
+    .field  private initonly  class NAnt.VSNet.VcArgumentMap _linkerArgMap
+    .field  private initonly  class NAnt.VSNet.VcArgumentMap _midlArgMap
+    .field  private initonly  class [mscorlib]System.Collections.ArrayList _projectFiles
+    .field  private static  string[] _defaultLibraries
+    .field  private static  class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> '<>f__switch$map2'
+    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-    // method line 225
-    .method family hidebysig 
-           instance default string FormatOption (string 'value')  cil managed 
+
+    // method line 194
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
     {
-        // Method begins at RVA 0x8d10
-	// Code size 40 (0x28)
-	.maxstack 2
+        // Method begins at RVA 0xa6dc
+	// Code size 1034 (0x40a)
+	.maxstack 7
 	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcArgumentMap/VcArgument::_name
-	IL_0007:  brtrue IL_0014
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.1 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0026
-
-	IL_0014:  ldarg.0 
-	IL_0015:  ldfld string NAnt.VSNet.VcArgumentMap/VcArgument::_name
-	IL_001a:  ldarg.1 
-	IL_001b:  call string string::Concat(string, string)
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
-
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method VcArgument::FormatOption
+		class [System.Xml]System.Xml.XmlNodeList	V_0,
+		class [System.Xml]System.Xml.XmlElement	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class NAnt.VSNet.VcProjectConfiguration	V_3,
+		class [mscorlib]System.IDisposable	V_4,
+		class [System.Xml]System.Xml.XmlNodeList	V_5,
+		class [System.Xml]System.Xml.XmlElement	V_6,
+		class [mscorlib]System.Collections.IEnumerator	V_7,
+		class NAnt.VSNet.ReferenceBase	V_8,
+		class [mscorlib]System.IDisposable	V_9,
+		class [System.Xml]System.Xml.XmlNodeList	V_10,
+		class [System.Xml]System.Xml.XmlElement	V_11,
+		class [mscorlib]System.Collections.IEnumerator	V_12,
+		string	V_13,
+		class [System.Xml]System.Xml.XmlNode	V_14,
+		string	V_15,
+		class [mscorlib]System.Collections.Hashtable	V_16,
+		class [System.Xml]System.Xml.XmlNodeList	V_17,
+		class [System.Xml]System.Xml.XmlElement	V_18,
+		class [mscorlib]System.Collections.IEnumerator	V_19,
+		class NAnt.VSNet.Configuration	V_20,
+		class NAnt.VSNet.VcProjectConfiguration	V_21,
+		class [mscorlib]System.IDisposable	V_22,
+		string	V_23,
+		class NAnt.VSNet.VcProjectConfiguration	V_24,
+		class [mscorlib]System.Collections.IEnumerator	V_25,
+		class [mscorlib]System.IDisposable	V_26,
+		class [mscorlib]System.IDisposable	V_27)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.3 
+	IL_0002:  ldarg.s 4
+	IL_0004:  ldarg.s 5
+	IL_0006:  ldarg.s 6
+	IL_0008:  ldarg.s 7
+	IL_000a:  ldarg.s 8
+	IL_000c:  call instance void class NAnt.VSNet.ProjectBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0011:  nop 
+	IL_0012:  ldarg.2 
+	IL_0013:  brtrue IL_0024
 
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.VSNet.VcArgumentMap/VcArgument::get_Name () 
-	}
-	.property instance valuetype NAnt.VSNet.VcArgumentMap/ArgGroup Group ()
-	{
-		.get instance default valuetype NAnt.VSNet.VcArgumentMap/ArgGroup NAnt.VSNet.VcArgumentMap/VcArgument::get_Group () 
-	}
-  } // end of class VcArgument
+	IL_0018:  nop 
+	IL_0019:  ldstr "projectPath"
+	IL_001e:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0023:  throw 
+	IL_0024:  ldarg.0 
+	IL_0025:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_002a:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_references
+	IL_002f:  ldarg.0 
+	IL_0030:  call class NAnt.VSNet.VcArgumentMap class NAnt.VSNet.VcArgumentMap::CreateCLArgumentMap()
+	IL_0035:  stfld class NAnt.VSNet.VcArgumentMap NAnt.VSNet.VcProject::_clArgMap
+	IL_003a:  ldarg.0 
+	IL_003b:  call class NAnt.VSNet.VcArgumentMap class NAnt.VSNet.VcArgumentMap::CreateLinkerArgumentMap()
+	IL_0040:  stfld class NAnt.VSNet.VcArgumentMap NAnt.VSNet.VcProject::_linkerArgMap
+	IL_0045:  ldarg.0 
+	IL_0046:  call class NAnt.VSNet.VcArgumentMap class NAnt.VSNet.VcArgumentMap::CreateMidlArgumentMap()
+	IL_004b:  stfld class NAnt.VSNet.VcArgumentMap NAnt.VSNet.VcProject::_midlArgMap
+	IL_0050:  ldarg.0 
+	IL_0051:  ldarg.2 
+	IL_0052:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
+	IL_0057:  stfld string NAnt.VSNet.VcProject::_projectPath
+	IL_005c:  ldarg.0 
+	IL_005d:  ldarg.3 
+	IL_005e:  ldstr "Name"
+	IL_0063:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_0068:  stfld string NAnt.VSNet.VcProject::_name
+	IL_006d:  ldarg.0 
+	IL_006e:  ldarg.3 
+	IL_006f:  ldstr "ProjectGUID"
+	IL_0074:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_0079:  stfld string NAnt.VSNet.VcProject::_guid
+	IL_007e:  ldarg.3 
+	IL_007f:  ldstr "//Configurations/Configuration"
+	IL_0084:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
+	IL_0089:  stloc.0 
+	IL_008a:  nop 
+	IL_008b:  ldloc.0 
+	IL_008c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_0091:  stloc.2 
+	.try { // 0
+	  IL_0092:  br IL_00d0
 
-  .class nested private auto ansi beforefieldinit VcStringArgument
-  	extends NAnt.VSNet.VcArgumentMap/VcArgument
-  {
-    .field  private  bool _ignoreEmptyValue
+	  IL_0097:  ldloc.2 
+	  IL_0098:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_009d:  castclass [System.Xml]System.Xml.XmlElement
+	  IL_00a2:  stloc.1 
+	  IL_00a3:  nop 
+	  IL_00a4:  ldloc.1 
+	  IL_00a5:  ldarg.0 
+	  IL_00a6:  ldarg.0 
+	  IL_00a7:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_OutputDir()
+	  IL_00ac:  newobj instance void class NAnt.VSNet.VcProjectConfiguration::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.VcProject, class [mscorlib]System.IO.DirectoryInfo)
+	  IL_00b1:  stloc.3 
+	  IL_00b2:  ldarg.0 
+	  IL_00b3:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_ProjectConfigurations()
+	  IL_00b8:  ldloc.3 
+	  IL_00b9:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
+	  IL_00be:  ldloc.3 
+	  IL_00bf:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_PlatformName()
+	  IL_00c4:  newobj instance void class NAnt.VSNet.Configuration::'.ctor'(string, string)
+	  IL_00c9:  ldloc.3 
+	  IL_00ca:  callvirt instance void class NAnt.VSNet.ConfigurationDictionary::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.ConfigurationBase)
+	  IL_00cf:  nop 
+	  IL_00d0:  ldloc.2 
+	  IL_00d1:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00d6:  brtrue IL_0097
 
-    // method line 226
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
-    {
-        // Method begins at RVA 0x8d44
-	// Code size 11 (0xb)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldc.i4.0 
-	IL_0004:  call instance void class NAnt.VSNet.VcArgumentMap/VcStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
-	IL_0009:  nop 
-	IL_000a:  ret 
-    } // end of method VcStringArgument::.ctor
+	  IL_00db:  leave IL_00f6
 
-    // method line 227
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name, bool ignoreEmptyValue)  cil managed 
-    {
-        // Method begins at RVA 0x8d50
-	// Code size 17 (0x11)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.VSNet.VcArgumentMap/VcArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string)
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.3 
-	IL_000b:  stfld bool NAnt.VSNet.VcArgumentMap/VcStringArgument::_ignoreEmptyValue
-	IL_0010:  ret 
-    } // end of method VcStringArgument::.ctor
+	} // end .try 0
+	finally  { // 0
+	  IL_00e0:  ldloc.2 
+	  IL_00e1:  isinst [mscorlib]System.IDisposable
+	  IL_00e6:  dup 
+	  IL_00e7:  stloc.s 4
+	  IL_00e9:  brfalse IL_00f5
 
-    // method line 228
-    .method family hidebysig specialname 
-           instance default bool get_IgnoreEmptyValue ()  cil managed 
-    {
-        // Method begins at RVA 0x8d64
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcArgumentMap/VcStringArgument::_ignoreEmptyValue
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	  IL_00ee:  ldloc.s 4
+	  IL_00f0:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00f5:  endfinally 
+	} // end handler 0
+	IL_00f6:  ldarg.3 
+	IL_00f7:  ldstr "//References/child::*"
+	IL_00fc:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
+	IL_0101:  stloc.s 5
+	IL_0103:  nop 
+	IL_0104:  ldloc.s 5
+	IL_0106:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_010b:  stloc.s 7
+	.try { // 1
+	  IL_010d:  br IL_013b
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcStringArgument::get_IgnoreEmptyValue
+	  IL_0112:  ldloc.s 7
+	  IL_0114:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0119:  castclass [System.Xml]System.Xml.XmlElement
+	  IL_011e:  stloc.s 6
+	  IL_0120:  nop 
+	  IL_0121:  ldarg.0 
+	  IL_0122:  ldarg.1 
+	  IL_0123:  ldloc.s 6
+	  IL_0125:  callvirt instance class NAnt.VSNet.ReferenceBase class NAnt.VSNet.VcProject::CreateReference(class NAnt.VSNet.SolutionBase, class [System.Xml]System.Xml.XmlElement)
+	  IL_012a:  stloc.s 8
+	  IL_012c:  ldarg.0 
+	  IL_012d:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_references
+	  IL_0132:  ldloc.s 8
+	  IL_0134:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0139:  pop 
+	  IL_013a:  nop 
+	  IL_013b:  ldloc.s 7
+	  IL_013d:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0142:  brtrue IL_0112
 
-    // method line 229
-    .method assembly virtual hidebysig 
-           instance default string MapValue (string propValue)  cil managed 
-    {
-        // Method begins at RVA 0x8d80
-	// Code size 46 (0x2e)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.VSNet.VcArgumentMap/VcStringArgument::get_IgnoreEmptyValue()
-	IL_0007:  brfalse IL_001f
+	  IL_0147:  leave IL_0163
 
-	IL_000c:  ldarg.1 
-	IL_000d:  call bool string::IsNullOrEmpty(string)
-	IL_0012:  brfalse IL_001f
+	} // end .try 1
+	finally  { // 1
+	  IL_014c:  ldloc.s 7
+	  IL_014e:  isinst [mscorlib]System.IDisposable
+	  IL_0153:  dup 
+	  IL_0154:  stloc.s 9
+	  IL_0156:  brfalse IL_0162
 
-	IL_0017:  nop 
-	IL_0018:  ldnull 
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_002c
+	  IL_015b:  ldloc.s 9
+	  IL_015d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0162:  endfinally 
+	} // end handler 1
+	IL_0163:  ldarg.3 
+	IL_0164:  ldstr "//File"
+	IL_0169:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
+	IL_016e:  stloc.s 10
+	IL_0170:  ldarg.0 
+	IL_0171:  ldloc.s 10
+	IL_0173:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	IL_0178:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
+	IL_017d:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_projectFiles
+	IL_0182:  nop 
+	IL_0183:  ldloc.s 10
+	IL_0185:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_018a:  stloc.s 12
+	.try { // 4
+	  IL_018c:  br IL_03e1
 
-	IL_001f:  ldarg.0 
-	IL_0020:  ldarg.1 
-	IL_0021:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::FormatOption(string)
-	IL_0026:  stloc.0 
-	IL_0027:  br IL_002c
+	  IL_0191:  ldloc.s 12
+	  IL_0193:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0198:  castclass [System.Xml]System.Xml.XmlElement
+	  IL_019d:  stloc.s 11
+	  IL_019f:  nop 
+	  IL_01a0:  ldarg.0 
+	  IL_01a1:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	  IL_01a6:  stloc.s 13
+	  IL_01a8:  ldloc.s 11
+	  IL_01aa:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::get_ParentNode()
+	  IL_01af:  brfalse IL_01fb
 
-	IL_002c:  ldloc.0 
-	IL_002d:  ret 
-    } // end of method VcStringArgument::MapValue
+	  IL_01b4:  ldloc.s 11
+	  IL_01b6:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::get_ParentNode()
+	  IL_01bb:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	  IL_01c0:  ldstr "Filter"
+	  IL_01c5:  call bool string::op_Equality(string, string)
+	  IL_01ca:  brfalse IL_01fb
 
-	.property instance bool IgnoreEmptyValue ()
-	{
-		.get instance default bool NAnt.VSNet.VcArgumentMap/VcStringArgument::get_IgnoreEmptyValue () 
-	}
-  } // end of class VcStringArgument
+	  IL_01cf:  nop 
+	  IL_01d0:  ldloc.s 11
+	  IL_01d2:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::get_ParentNode()
+	  IL_01d7:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	  IL_01dc:  ldstr "Name"
+	  IL_01e1:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNamedNodeMap::GetNamedItem(string)
+	  IL_01e6:  stloc.s 14
+	  IL_01e8:  ldloc.s 14
+	  IL_01ea:  brfalse IL_01fa
 
-  .class nested private auto ansi beforefieldinit LinkerStringArgument
-  	extends NAnt.VSNet.VcArgumentMap/VcStringArgument
-  {
+	  IL_01ef:  nop 
+	  IL_01f0:  ldloc.s 14
+	  IL_01f2:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	  IL_01f7:  stloc.s 13
+	  IL_01f9:  nop 
+	  IL_01fa:  nop 
+	  IL_01fb:  ldloc.s 11
+	  IL_01fd:  ldstr "RelativePath"
+	  IL_0202:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	  IL_0207:  stloc.s 15
+	  IL_0209:  ldnull 
+	  IL_020a:  stloc.s 16
+	  IL_020c:  ldloc.s 11
+	  IL_020e:  ldstr "FileConfiguration"
+	  IL_0213:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlElement::GetElementsByTagName(string)
+	  IL_0218:  stloc.s 17
+	  IL_021a:  ldloc.s 17
+	  IL_021c:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	  IL_0221:  ldc.i4.0 
+	  IL_0222:  ble IL_02c2
 
-    // method line 230
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
-    {
-        // Method begins at RVA 0x8dba
-	// Code size 11 (0xb)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldc.i4.0 
-	IL_0004:  call instance void class NAnt.VSNet.VcArgumentMap/LinkerStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
-	IL_0009:  nop 
-	IL_000a:  ret 
-    } // end of method LinkerStringArgument::.ctor
+	  IL_0227:  nop 
+	  IL_0228:  ldloc.s 17
+	  IL_022a:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
+	  IL_022f:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable(int32)
+	  IL_0234:  stloc.s 16
+	  IL_0236:  nop 
+	  IL_0237:  ldloc.s 17
+	  IL_0239:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	  IL_023e:  stloc.s 19
+	  .try { // 2
+	    IL_0240:  br IL_0299
 
-    // method line 231
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name, bool ignoreEmptyValue)  cil managed 
-    {
-        // Method begins at RVA 0x8dc6
-	// Code size 11 (0xb)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  call instance void class NAnt.VSNet.VcArgumentMap/VcStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
-	IL_0009:  nop 
-	IL_000a:  ret 
-    } // end of method LinkerStringArgument::.ctor
+	    IL_0245:  ldloc.s 19
+	    IL_0247:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_024c:  castclass [System.Xml]System.Xml.XmlElement
+	    IL_0251:  stloc.s 18
+	    IL_0253:  nop 
+	    IL_0254:  ldloc.s 18
+	    IL_0256:  ldstr "Name"
+	    IL_025b:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	    IL_0260:  call class NAnt.VSNet.Configuration class NAnt.VSNet.Configuration::Parse(string)
+	    IL_0265:  stloc.s 20
+	    IL_0267:  ldarg.0 
+	    IL_0268:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_ProjectConfigurations()
+	    IL_026d:  ldloc.s 20
+	    IL_026f:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	    IL_0274:  castclass NAnt.VSNet.VcProjectConfiguration
+	    IL_0279:  stloc.s 21
+	    IL_027b:  ldloc.s 16
+	    IL_027d:  ldloc.s 21
+	    IL_027f:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
+	    IL_0284:  ldloc.s 15
+	    IL_0286:  ldloc.s 13
+	    IL_0288:  ldloc.s 18
+	    IL_028a:  ldloc.s 21
+	    IL_028c:  ldarg.s 8
+	    IL_028e:  newobj instance void class NAnt.VSNet.VcFileConfiguration::'.ctor'(string, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.VcProjectConfiguration, class [mscorlib]System.IO.DirectoryInfo)
+	    IL_0293:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	    IL_0298:  nop 
+	    IL_0299:  ldloc.s 19
+	    IL_029b:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_02a0:  brtrue IL_0245
 
-    // method line 232
-    .method assembly virtual hidebysig 
-           instance default string MapValue (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x8dd4
-	// Code size 80 (0x50)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.VSNet.VcArgumentMap/VcStringArgument::get_IgnoreEmptyValue()
-	IL_0007:  brfalse IL_001f
+	    IL_02a5:  leave IL_02c1
 
-	IL_000c:  ldarg.1 
-	IL_000d:  call bool string::IsNullOrEmpty(string)
-	IL_0012:  brfalse IL_001f
+	  } // end .try 2
+	  finally  { // 2
+	    IL_02aa:  ldloc.s 19
+	    IL_02ac:  isinst [mscorlib]System.IDisposable
+	    IL_02b1:  dup 
+	    IL_02b2:  stloc.s 22
+	    IL_02b4:  brfalse IL_02c0
 
-	IL_0017:  nop 
-	IL_0018:  ldnull 
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_004e
+	    IL_02b9:  ldloc.s 22
+	    IL_02bb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_02c0:  endfinally 
+	  } // end handler 2
+	  IL_02c1:  nop 
+	  IL_02c2:  ldloc.s 15
+	  IL_02c4:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	  IL_02c9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_02ce:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	  IL_02d3:  stloc.s 23
+	  IL_02d5:  ldloc.s 23
+	  IL_02d7:  brfalse IL_03b4
 
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::get_Name()
-	IL_0025:  brtrue IL_0037
+	  IL_02dc:  ldloc.s 23
+	  IL_02de:  ldstr ".idl"
+	  IL_02e3:  call bool string::op_Equality(string, string)
+	  IL_02e8:  brtrue IL_0314
 
-	IL_002a:  nop 
-	IL_002b:  ldarg.1 
-	IL_002c:  call string class [NAnt.VisualCppTasks]NAnt.VisualCpp.Util.ArgumentUtils::DuplicateTrailingBackslash(string)
-	IL_0031:  stloc.0 
-	IL_0032:  br IL_004e
+	  IL_02ed:  ldloc.s 23
+	  IL_02ef:  ldstr ".odl"
+	  IL_02f4:  call bool string::op_Equality(string, string)
+	  IL_02f9:  brtrue IL_0314
 
-	IL_0037:  ldarg.0 
-	IL_0038:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::get_Name()
-	IL_003d:  ldarg.1 
-	IL_003e:  call string class [NAnt.VisualCppTasks]NAnt.VisualCpp.Util.ArgumentUtils::DuplicateTrailingBackslash(string)
-	IL_0043:  call string string::Concat(string, string)
-	IL_0048:  stloc.0 
-	IL_0049:  br IL_004e
+	  IL_02fe:  ldloc.s 23
+	  IL_0300:  ldstr ".rc"
+	  IL_0305:  call bool string::op_Equality(string, string)
+	  IL_030a:  brtrue IL_0314
 
-	IL_004e:  ldloc.0 
-	IL_004f:  ret 
-    } // end of method LinkerStringArgument::MapValue
+	  IL_030f:  br IL_03b4
 
-  } // end of class LinkerStringArgument
+	  IL_0314:  nop 
+	  IL_0315:  ldarg.0 
+	  IL_0316:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_ProjectConfigurations()
+	  IL_031b:  callvirt instance class [mscorlib]System.Collections.ICollection class NAnt.VSNet.ConfigurationDictionary::get_Values()
+	  IL_0320:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	  IL_0325:  stloc.s 25
+	  .try { // 3
+	    IL_0327:  br IL_0387
 
-  .class nested private auto ansi beforefieldinit QuotedLinkerStringArgument
-  	extends NAnt.VSNet.VcArgumentMap/VcStringArgument
-  {
+	    IL_032c:  ldloc.s 25
+	    IL_032e:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_0333:  castclass NAnt.VSNet.VcProjectConfiguration
+	    IL_0338:  stloc.s 24
+	    IL_033a:  nop 
+	    IL_033b:  ldloc.s 16
+	    IL_033d:  brfalse IL_035b
 
-    // method line 233
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
-    {
-        // Method begins at RVA 0x8e30
-	// Code size 11 (0xb)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldc.i4.0 
-	IL_0004:  call instance void class NAnt.VSNet.VcArgumentMap/QuotedLinkerStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
-	IL_0009:  nop 
-	IL_000a:  ret 
-    } // end of method QuotedLinkerStringArgument::.ctor
+	    IL_0342:  ldloc.s 16
+	    IL_0344:  ldloc.s 24
+	    IL_0346:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
+	    IL_034b:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	    IL_0350:  brfalse IL_035b
 
-    // method line 234
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name, bool ignoreEmptyValue)  cil managed 
-    {
-        // Method begins at RVA 0x8e3c
-	// Code size 11 (0xb)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  call instance void class NAnt.VSNet.VcArgumentMap/VcStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
-	IL_0009:  nop 
-	IL_000a:  ret 
-    } // end of method QuotedLinkerStringArgument::.ctor
+	    IL_0355:  nop 
+	    IL_0356:  leave IL_0387
 
-    // method line 235
-    .method assembly virtual hidebysig 
-           instance default string MapValue (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x8e48
-	// Code size 80 (0x50)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.VSNet.VcArgumentMap/VcStringArgument::get_IgnoreEmptyValue()
-	IL_0007:  brfalse IL_001f
+	    IL_035b:  ldloc.s 16
+	    IL_035d:  brtrue IL_036b
 
-	IL_000c:  ldarg.1 
-	IL_000d:  call bool string::IsNullOrEmpty(string)
-	IL_0012:  brfalse IL_001f
+	    IL_0362:  nop 
+	    IL_0363:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	    IL_0368:  stloc.s 16
+	    IL_036a:  nop 
+	    IL_036b:  ldloc.s 16
+	    IL_036d:  ldloc.s 24
+	    IL_036f:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
+	    IL_0374:  ldloc.s 15
+	    IL_0376:  ldloc.s 13
+	    IL_0378:  ldloc.s 24
+	    IL_037a:  ldarg.s 8
+	    IL_037c:  newobj instance void class NAnt.VSNet.VcFileConfiguration::'.ctor'(string, string, class NAnt.VSNet.VcProjectConfiguration, class [mscorlib]System.IO.DirectoryInfo)
+	    IL_0381:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	    IL_0386:  nop 
+	    IL_0387:  ldloc.s 25
+	    IL_0389:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_038e:  brtrue IL_032c
 
-	IL_0017:  nop 
-	IL_0018:  ldnull 
-	IL_0019:  stloc.0 
-	IL_001a:  br IL_004e
+	    IL_0393:  leave IL_03af
 
-	IL_001f:  ldarg.0 
-	IL_0020:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::get_Name()
-	IL_0025:  brtrue IL_0037
+	  } // end .try 3
+	  finally  { // 3
+	    IL_0398:  ldloc.s 25
+	    IL_039a:  isinst [mscorlib]System.IDisposable
+	    IL_039f:  dup 
+	    IL_03a0:  stloc.s 26
+	    IL_03a2:  brfalse IL_03ae
 
-	IL_002a:  nop 
-	IL_002b:  ldarg.1 
-	IL_002c:  call string class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.LinkTask::QuoteArgumentValue(string)
-	IL_0031:  stloc.0 
-	IL_0032:  br IL_004e
+	    IL_03a7:  ldloc.s 26
+	    IL_03a9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_03ae:  endfinally 
+	  } // end handler 3
+	  IL_03af:  leave IL_03b4
 
-	IL_0037:  ldarg.0 
-	IL_0038:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::get_Name()
-	IL_003d:  ldarg.1 
-	IL_003e:  call string class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.LinkTask::QuoteArgumentValue(string)
-	IL_0043:  call string string::Concat(string, string)
-	IL_0048:  stloc.0 
-	IL_0049:  br IL_004e
+	  IL_03b4:  ldloc.s 16
+	  IL_03b6:  brfalse IL_03d0
 
-	IL_004e:  ldloc.0 
-	IL_004f:  ret 
-    } // end of method QuotedLinkerStringArgument::MapValue
+	  IL_03bb:  nop 
+	  IL_03bc:  ldarg.0 
+	  IL_03bd:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_projectFiles
+	  IL_03c2:  ldloc.s 16
+	  IL_03c4:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_03c9:  pop 
+	  IL_03ca:  nop 
+	  IL_03cb:  br IL_03e0
 
-  } // end of class QuotedLinkerStringArgument
+	  IL_03d0:  nop 
+	  IL_03d1:  ldarg.0 
+	  IL_03d2:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_projectFiles
+	  IL_03d7:  ldloc.s 15
+	  IL_03d9:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_03de:  pop 
+	  IL_03df:  nop 
+	  IL_03e0:  nop 
+	  IL_03e1:  ldloc.s 12
+	  IL_03e3:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_03e8:  brtrue IL_0191
 
-  .class nested private auto ansi beforefieldinit VcBoolArgument
-  	extends NAnt.VSNet.VcArgumentMap/VcArgument
-  {
-    .field  private  string _match
+	  IL_03ed:  leave IL_0409
 
-    // method line 236
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
-    {
-        // Method begins at RVA 0x8ea4
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldstr "true"
-	IL_0008:  call instance void class NAnt.VSNet.VcArgumentMap/VcBoolArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method VcBoolArgument::.ctor
+	} // end .try 4
+	finally  { // 4
+	  IL_03f2:  ldloc.s 12
+	  IL_03f4:  isinst [mscorlib]System.IDisposable
+	  IL_03f9:  dup 
+	  IL_03fa:  stloc.s 27
+	  IL_03fc:  brfalse IL_0408
 
-    // method line 237
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name, string match)  cil managed 
-    {
-        // Method begins at RVA 0x8eb4
-	// Code size 28 (0x1c)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldstr "true"
-	IL_0006:  stfld string NAnt.VSNet.VcArgumentMap/VcBoolArgument::_match
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.1 
-	IL_000d:  ldarg.2 
-	IL_000e:  call instance void class NAnt.VSNet.VcArgumentMap/VcArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string)
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldarg.3 
-	IL_0016:  stfld string NAnt.VSNet.VcArgumentMap/VcBoolArgument::_match
-	IL_001b:  ret 
-    } // end of method VcBoolArgument::.ctor
+	  IL_0401:  ldloc.s 27
+	  IL_0403:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0408:  endfinally 
+	} // end handler 4
+	IL_0409:  ret 
+    } // end of method VcProject::.ctor
 
-    // method line 238
-    .method public hidebysig specialname 
-           instance default string get_Match ()  cil managed 
+    // method line 195
+    .method public virtual hidebysig specialname 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x8ed4
+        // Method begins at RVA 0xab70
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcArgumentMap/VcBoolArgument::_match
+	IL_0002:  ldfld string NAnt.VSNet.VcProject::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VcBoolArgument::get_Match
-
-    // method line 239
-    .method assembly virtual hidebysig 
-           instance default string MapValue (string propValue)  cil managed 
-    {
-        // Method begins at RVA 0x8ef0
-	// Code size 51 (0x33)
-	.maxstack 4
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance string class NAnt.VSNet.VcArgumentMap/VcBoolArgument::get_Match()
-	IL_0008:  ldc.i4.1 
-	IL_0009:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_000e:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_0013:  brtrue IL_002a
-
-	IL_0018:  nop 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldsfld string [mscorlib]System.String::Empty
-	IL_001f:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::FormatOption(string)
-	IL_0024:  stloc.0 
-	IL_0025:  br IL_0031
-
-	IL_002a:  ldnull 
-	IL_002b:  stloc.0 
-	IL_002c:  br IL_0031
-
-	IL_0031:  ldloc.0 
-	IL_0032:  ret 
-    } // end of method VcBoolArgument::MapValue
-
-	.property instance string Match ()
-	{
-		.get instance default string NAnt.VSNet.VcArgumentMap/VcBoolArgument::get_Match () 
-	}
-  } // end of class VcBoolArgument
-
-  .class nested private auto ansi beforefieldinit VcEnumArgument
-  	extends NAnt.VSNet.VcArgumentMap/VcArgument
-  {
-    .field  private  string[] _values
-
-    // method line 240
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name, string[] values)  cil managed 
-    {
-        // Method begins at RVA 0x8f2f
-	// Code size 17 (0x11)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.VSNet.VcArgumentMap/VcArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string)
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.3 
-	IL_000b:  stfld string[] NAnt.VSNet.VcArgumentMap/VcEnumArgument::_values
-	IL_0010:  ret 
-    } // end of method VcEnumArgument::.ctor
-
-    // method line 241
-    .method assembly virtual hidebysig 
-           instance default string MapValue (string propValue)  cil managed 
-    {
-        // Method begins at RVA 0x8f44
-	// Code size 90 (0x5a)
-	.maxstack 3
-	.locals init (
-		int32	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.m1 
-	IL_0002:  stloc.0 
-	.try { // 0
-	  IL_0003:  nop 
-	  IL_0004:  ldarg.1 
-	  IL_0005:  call int32 int32::Parse(string)
-	  IL_000a:  stloc.0 
-	  IL_000b:  nop 
-	  IL_000c:  leave IL_001a
-
-	} // end .try 0
-	catch class [mscorlib]System.FormatException { // 0
-	  IL_0011:  pop 
-	  IL_0012:  nop 
-	  IL_0013:  ldnull 
-	  IL_0014:  stloc.1 
-	  IL_0015:  leave IL_0058
-
-	} // end handler 0
-	IL_001a:  ldloc.0 
-	IL_001b:  ldc.i4.0 
-	IL_001c:  blt IL_003c
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ldarg.0 
-	IL_0023:  ldfld string[] NAnt.VSNet.VcArgumentMap/VcEnumArgument::_values
-	IL_0028:  ldlen 
-	IL_0029:  conv.i4 
-	IL_002a:  bge IL_003c
-
-	IL_002f:  ldarg.0 
-	IL_0030:  ldfld string[] NAnt.VSNet.VcArgumentMap/VcEnumArgument::_values
-	IL_0035:  ldloc.0 
-	IL_0036:  ldelem.ref 
-	IL_0037:  brtrue IL_0044
-
-	IL_003c:  nop 
-	IL_003d:  ldnull 
-	IL_003e:  stloc.1 
-	IL_003f:  br IL_0058
-
-	IL_0044:  ldarg.0 
-	IL_0045:  ldarg.0 
-	IL_0046:  ldfld string[] NAnt.VSNet.VcArgumentMap/VcEnumArgument::_values
-	IL_004b:  ldloc.0 
-	IL_004c:  ldelem.ref 
-	IL_004d:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::FormatOption(string)
-	IL_0052:  stloc.1 
-	IL_0053:  br IL_0058
-
-	IL_0058:  ldloc.1 
-	IL_0059:  ret 
-    } // end of method VcEnumArgument::MapValue
-
-  } // end of class VcEnumArgument
-
-  .class nested public auto ansi sealed ArgGroup
-  	extends [mscorlib]System.Enum
-  {
-    .custom instance void class [mscorlib]System.FlagsAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.VSNet.VcArgumentMap/ArgGroup Unassigned = int32(0x00000000)
-    .field public static literal  valuetype NAnt.VSNet.VcArgumentMap/ArgGroup OptiIgnoreGroup = int32(0x00000001)
-
-  } // end of class ArgGroup
-
-  } // end of class NAnt.VSNet.VcArgumentMap
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi abstract beforefieldinit AssemblyReferenceBase
-  	extends NAnt.VSNet.FileReferenceBase
-  {
-
-    // method line 242
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache)  cil managed 
-    {
-        // Method begins at RVA 0x8fbc
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  ldarg.s 4
-	IL_0006:  call instance void class NAnt.VSNet.FileReferenceBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
-	IL_000b:  nop 
-	IL_000c:  ret 
-    } // end of method AssemblyReferenceBase::.ctor
-
-    // method line 243
-    .method family virtual hidebysig newslot abstract specialname 
-           instance default bool get_IsPrivate ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method AssemblyReferenceBase::get_IsPrivate
-
-    // method line 244
-    .method family virtual hidebysig newslot abstract specialname 
-           instance default bool get_IsPrivateSpecified ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method AssemblyReferenceBase::get_IsPrivateSpecified
+    } // end of method VcProject::get_Name
 
-    // method line 245
+    // method line 196
     .method public virtual hidebysig specialname 
-           instance default bool get_CopyLocal ()  cil managed 
+           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
     {
-        // Method begins at RVA 0x8fcc
-	// Code size 76 (0x4c)
-	.maxstack 2
+        // Method begins at RVA 0xab8c
+	// Code size 10 (0xa)
+	.maxstack 1
 	.locals init (
-		bool	V_0,
-		string	V_1)
+		valuetype NAnt.VSNet.ProjectType	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance bool class NAnt.VSNet.AssemblyReferenceBase::get_IsPrivateSpecified()
-	IL_0007:  brfalse IL_0019
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance bool class NAnt.VSNet.AssemblyReferenceBase::get_IsPrivate()
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_004a
-
-	IL_0019:  nop 
-	IL_001a:  ldarg.0 
-	IL_001b:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
-	IL_0020:  stloc.1 
-	IL_0021:  ldloc.1 
-	IL_0022:  brfalse IL_0043
-
-	IL_0027:  ldarg.0 
-	IL_0028:  callvirt instance bool class NAnt.VSNet.ReferenceBase::get_IsSystem()
-	IL_002d:  brtrue IL_0043
-
-	IL_0032:  ldarg.0 
-	IL_0033:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.FileReferenceBase::get_GacCache()
-	IL_0038:  ldloc.1 
-	IL_0039:  callvirt instance bool class [NAnt.Core]NAnt.Core.Util.GacCache::IsAssemblyInGac(string)
-	IL_003e:  ldc.i4.0 
-	IL_003f:  ceq 
-	IL_0041:  br.s IL_0044
-
-	IL_0043:  ldc.i4.0 
-	IL_0044:  stloc.0 
-	IL_0045:  br IL_004a
-
-	IL_004a:  ldloc.0 
-	IL_004b:  ret 
-    } // end of method AssemblyReferenceBase::get_CopyLocal
+	IL_0001:  ldc.i4.2 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-    // method line 246
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsSystem ()  cil managed 
-    {
-        // Method begins at RVA 0x9024
-	// Code size 76 (0x4c)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		bool	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
-	IL_0007:  stloc.0 
 	IL_0008:  ldloc.0 
-	IL_0009:  brtrue IL_0016
-
-	IL_000e:  nop 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  stloc.1 
-	IL_0011:  br IL_004a
-
-	IL_0016:  ldloc.0 
-	IL_0017:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_001c:  ldarg.0 
-	IL_001d:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_0022:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0027:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_002c:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory()
-	IL_0031:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0036:  ldc.i4.1 
-	IL_0037:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_003c:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_0041:  ldc.i4.0 
-	IL_0042:  ceq 
-	IL_0044:  stloc.1 
-	IL_0045:  br IL_004a
-
-	IL_004a:  ldloc.1 
-	IL_004b:  ret 
-    } // end of method AssemblyReferenceBase::get_IsSystem
+	IL_0009:  ret 
+    } // end of method VcProject::get_Type
 
-    // method line 247
-    .method public virtual hidebysig 
-           instance default string GetPrimaryOutputFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    // method line 197
+    .method public virtual hidebysig specialname 
+           instance default string get_ProjectPath ()  cil managed 
     {
-        // Method begins at RVA 0x907c
+        // Method begins at RVA 0xaba4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
+	IL_0002:  ldfld string NAnt.VSNet.VcProject::_projectPath
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method AssemblyReferenceBase::GetPrimaryOutputFile
+    } // end of method VcProject::get_ProjectPath
 
-    // method line 248
-    .method public virtual hidebysig 
-           instance default void GetOutputFiles (class NAnt.VSNet.Configuration solutionConfiguration, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
+    // method line 198
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ProjectDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x9098
+        // Method begins at RVA 0xabc0
 	// Code size 25 (0x19)
-	.maxstack 3
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  brfalse IL_0018
+	IL_0002:  ldfld string NAnt.VSNet.VcProject::_projectPath
+	IL_0007:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_000c:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_000e:  nop 
-	IL_000f:  ldarg.0 
-	IL_0010:  ldloc.0 
-	IL_0011:  ldarg.2 
-	IL_0012:  call instance void class NAnt.VSNet.FileReferenceBase::GetAssemblyOutputFiles(string, class [mscorlib]System.Collections.Hashtable)
-	IL_0017:  nop 
+	IL_0017:  ldloc.0 
 	IL_0018:  ret 
-    } // end of method AssemblyReferenceBase::GetOutputFiles
+    } // end of method VcProject::get_ProjectDirectory
 
-    // method line 249
-    .method public virtual hidebysig 
-           instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    // method line 199
+    .method public virtual hidebysig specialname 
+           instance default valuetype NAnt.VSNet.ProjectLocation get_ProjectLocation ()  cil managed 
     {
-        // Method begins at RVA 0x90c0
-	// Code size 149 (0x95)
-	.maxstack 7
+        // Method begins at RVA 0xabe8
+	// Code size 10 (0xa)
+	.maxstack 1
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringCollection	V_2)
+		valuetype NAnt.VSNet.ProjectLocation	V_0)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
-	IL_000d:  stloc.1 
-	IL_000e:  ldloc.1 
-	IL_000f:  brtrue IL_0049
-
-	IL_0014:  nop 
-	IL_0015:  ldarg.0 
-	IL_0016:  ldc.i4 4000
-	IL_001b:  ldstr "Assembly \"{0}\", referenced by project \"{1}\", could not be resolved."
-	IL_0020:  ldc.i4.2 
-	IL_0021:  newarr [mscorlib]System.Object
-	IL_0026:  dup 
-	IL_0027:  ldc.i4.0 
-	IL_0028:  ldarg.0 
-	IL_0029:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_002e:  stelem.ref 
-	IL_002f:  dup 
-	IL_0030:  ldc.i4.1 
-	IL_0031:  ldarg.0 
-	IL_0032:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0037:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_003c:  stelem.ref 
-	IL_003d:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0042:  ldloc.0 
-	IL_0043:  stloc.2 
-	IL_0044:  br IL_0093
-
-	IL_0049:  ldloc.1 
-	IL_004a:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_004f:  brtrue IL_0084
-
-	IL_0054:  nop 
-	IL_0055:  ldarg.0 
-	IL_0056:  ldc.i4 4000
-	IL_005b:  ldstr "Assembly \"{0}\", referenced by project \"{1}\", does not exist."
-	IL_0060:  ldc.i4.2 
-	IL_0061:  newarr [mscorlib]System.Object
-	IL_0066:  dup 
-	IL_0067:  ldc.i4.0 
-	IL_0068:  ldloc.1 
-	IL_0069:  stelem.ref 
-	IL_006a:  dup 
-	IL_006b:  ldc.i4.1 
-	IL_006c:  ldarg.0 
-	IL_006d:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0072:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_0077:  stelem.ref 
-	IL_0078:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_007d:  ldloc.0 
-	IL_007e:  stloc.2 
-	IL_007f:  br IL_0093
-
-	IL_0084:  ldloc.0 
-	IL_0085:  ldloc.1 
-	IL_0086:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_008b:  pop 
-	IL_008c:  ldloc.0 
-	IL_008d:  stloc.2 
-	IL_008e:  br IL_0093
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_0093:  ldloc.2 
-	IL_0094:  ret 
-    } // end of method AssemblyReferenceBase::GetAssemblyReferences
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method VcProject::get_ProjectLocation
 
-    // method line 250
-    .method public virtual hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetTimestamp (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    // method line 200
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
     {
-        // Method begins at RVA 0x9164
-	// Code size 41 (0x29)
+        // Method begins at RVA 0xac00
+	// Code size 35 (0x23)
 	.maxstack 2
 	.locals init (
-		string	V_0,
-		valuetype [mscorlib]System.DateTime	V_1)
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  brtrue IL_001a
-
-	IL_000e:  nop 
-	IL_000f:  ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MaxValue
-	IL_0014:  stloc.1 
-	IL_0015:  br IL_0027
-
-	IL_001a:  ldarg.0 
-	IL_001b:  ldloc.0 
-	IL_001c:  call instance valuetype [mscorlib]System.DateTime class NAnt.VSNet.ReferenceBase::GetFileTimestamp(string)
-	IL_0021:  stloc.1 
-	IL_0022:  br IL_0027
+	IL_0002:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_000c:  ldstr "temp"
+	IL_0011:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0016:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
 
-	IL_0027:  ldloc.1 
-	IL_0028:  ret 
-    } // end of method AssemblyReferenceBase::GetTimestamp
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method VcProject::get_ObjectDir
 
-    // method line 251
-    .method public hidebysig 
-           instance default class NAnt.VSNet.ProjectReferenceBase CreateProjectReference (class NAnt.VSNet.ProjectBase project)  cil managed 
+    // method line 201
+    .method public virtual hidebysig specialname 
+           instance default string get_Guid ()  cil managed 
     {
-        // Method begins at RVA 0x919c
-	// Code size 28 (0x1c)
-	.maxstack 4
+        // Method begins at RVA 0xac30
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.ProjectReferenceBase	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.0 
-	IL_0004:  callvirt instance bool class NAnt.VSNet.AssemblyReferenceBase::get_IsPrivateSpecified()
-	IL_0009:  ldarg.0 
-	IL_000a:  callvirt instance bool class NAnt.VSNet.AssemblyReferenceBase::get_IsPrivate()
-	IL_000f:  callvirt instance class NAnt.VSNet.ProjectReferenceBase class NAnt.VSNet.ProjectBase::CreateProjectReference(class NAnt.VSNet.ProjectBase, bool, bool)
-	IL_0014:  stloc.0 
-	IL_0015:  br IL_001a
-
-	IL_001a:  ldloc.0 
-	IL_001b:  ret 
-    } // end of method AssemblyReferenceBase::CreateProjectReference
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.VcProject::_guid
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 252
-    .method family virtual hidebysig newslot abstract 
-           instance default string ResolveAssemblyReference ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method AssemblyReferenceBase::ResolveAssemblyReference
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProject::get_Guid
 
-    // method line 253
-    .method family hidebysig 
-           instance default string ResolveFromFolderList (class [System]System.Collections.Specialized.StringCollection folderList, string fileName)  cil managed 
+    // method line 202
+    .method public virtual hidebysig specialname 
+           instance default void set_Guid (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x91c4
-	// Code size 267 (0x10b)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		class [System]System.Collections.Specialized.StringEnumerator	V_1,
-		string	V_2,
-		string	V_3,
-		class [mscorlib]System.Exception	V_4,
-		class [mscorlib]System.IDisposable	V_5)
+        // Method begins at RVA 0xac4b
+	// Code size 9 (0x9)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 1000
-	IL_0007:  ldstr "Attempting to resolve \"{0}\" in AssemblyFolders..."
-	IL_000c:  ldc.i4.1 
-	IL_000d:  newarr [mscorlib]System.Object
-	IL_0012:  dup 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  ldarg.2 
-	IL_0015:  stelem.ref 
-	IL_0016:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_001b:  nop 
-	IL_001c:  ldarg.1 
-	IL_001d:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0022:  stloc.1 
-	.try { // 1
-	  IL_0023:  br IL_00dc
-
-	  IL_0028:  ldloc.1 
-	  IL_0029:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_002e:  stloc.0 
-	  IL_002f:  nop 
-	  IL_0030:  ldarg.0 
-	  IL_0031:  ldc.i4 1000
-	  IL_0036:  ldstr "Checking \"{0}\"..."
-	  IL_003b:  ldc.i4.1 
-	  IL_003c:  newarr [mscorlib]System.Object
-	  IL_0041:  dup 
-	  IL_0042:  ldc.i4.0 
-	  IL_0043:  ldloc.0 
-	  IL_0044:  stelem.ref 
-	  IL_0045:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  .try { // 0
-	    IL_004a:  nop 
-	    IL_004b:  ldloc.0 
-	    IL_004c:  ldarg.2 
-	    IL_004d:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	    IL_0052:  stloc.2 
-	    IL_0053:  ldloc.2 
-	    IL_0054:  call bool class [mscorlib]System.IO.File::Exists(string)
-	    IL_0059:  brfalse IL_0080
-
-	    IL_005e:  nop 
-	    IL_005f:  ldarg.0 
-	    IL_0060:  ldc.i4 1000
-	    IL_0065:  ldstr "Assembly found in \"{0}\"."
-	    IL_006a:  ldc.i4.1 
-	    IL_006b:  newarr [mscorlib]System.Object
-	    IL_0070:  dup 
-	    IL_0071:  ldc.i4.0 
-	    IL_0072:  ldloc.0 
-	    IL_0073:  stelem.ref 
-	    IL_0074:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	    IL_0079:  ldloc.2 
-	    IL_007a:  stloc.3 
-	    IL_007b:  leave IL_0109
-
-	    IL_0080:  nop 
-	    IL_0081:  ldarg.0 
-	    IL_0082:  ldc.i4 1000
-	    IL_0087:  ldstr "Assembly not found in \"{0}\"."
-	    IL_008c:  ldc.i4.1 
-	    IL_008d:  newarr [mscorlib]System.Object
-	    IL_0092:  dup 
-	    IL_0093:  ldc.i4.0 
-	    IL_0094:  ldloc.0 
-	    IL_0095:  stelem.ref 
-	    IL_0096:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	    IL_009b:  nop 
-	    IL_009c:  nop 
-	    IL_009d:  leave IL_00db
-
-	  } // end .try 0
-	  catch class [mscorlib]System.Exception { // 0
-	    IL_00a2:  stloc.s 4
-	    IL_00a4:  nop 
-	    IL_00a5:  ldarg.0 
-	    IL_00a6:  ldc.i4 2000
-	    IL_00ab:  ldstr "Error resolving reference to \"{0}\" in directory \"{1}\"."
-	    IL_00b0:  ldc.i4.2 
-	    IL_00b1:  newarr [mscorlib]System.Object
-	    IL_00b6:  dup 
-	    IL_00b7:  ldc.i4.0 
-	    IL_00b8:  ldarg.2 
-	    IL_00b9:  stelem.ref 
-	    IL_00ba:  dup 
-	    IL_00bb:  ldc.i4.1 
-	    IL_00bc:  ldloc.0 
-	    IL_00bd:  stelem.ref 
-	    IL_00be:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	    IL_00c3:  ldarg.0 
-	    IL_00c4:  ldc.i4 1000
-	    IL_00c9:  ldloc.s 4
-	    IL_00cb:  callvirt instance string object::ToString()
-	    IL_00d0:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	    IL_00d5:  nop 
-	    IL_00d6:  leave IL_00db
-
-	  } // end handler 0
-	  IL_00db:  nop 
-	  IL_00dc:  ldloc.1 
-	  IL_00dd:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_00e2:  brtrue IL_0028
-
-	  IL_00e7:  leave IL_0102
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00ec:  ldloc.1 
-	  IL_00ed:  isinst [mscorlib]System.IDisposable
-	  IL_00f2:  dup 
-	  IL_00f3:  stloc.s 5
-	  IL_00f5:  brfalse IL_0101
-
-	  IL_00fa:  ldloc.s 5
-	  IL_00fc:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0101:  endfinally 
-	} // end handler 1
-	IL_0102:  ldnull 
-	IL_0103:  stloc.3 
-	IL_0104:  br IL_0109
-
-	IL_0109:  ldloc.3 
-	IL_010a:  ret 
-    } // end of method AssemblyReferenceBase::ResolveFromFolderList
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.VSNet.VcProject::_guid
+	IL_0008:  ret 
+    } // end of method VcProject::set_Guid
 
-    // method line 254
-    .method family hidebysig 
-           instance default string ResolveFromFramework (string fileName)  cil managed 
+    // method line 203
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.Collections.ArrayList get_References ()  cil managed 
     {
-        // Method begins at RVA 0x92f8
-	// Code size 52 (0x34)
-	.maxstack 2
+        // Method begins at RVA 0xac58
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		string	V_1)
+		class [mscorlib]System.Collections.ArrayList	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_0007:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_000c:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0011:  ldarg.1 
-	IL_0012:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::ResolveAssembly(string)
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_001e:  brfalse IL_002b
-
-	IL_0023:  nop 
-	IL_0024:  ldloc.0 
-	IL_0025:  stloc.1 
-	IL_0026:  br IL_0032
-
-	IL_002b:  ldnull 
-	IL_002c:  stloc.1 
-	IL_002d:  br IL_0032
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_references
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0032:  ldloc.1 
-	IL_0033:  ret 
-    } // end of method AssemblyReferenceBase::ResolveFromFramework
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProject::get_References
 
-    // method line 255
-    .method family hidebysig 
-           instance default string ResolveFromRelativePath (string relativePath)  cil managed 
+    // method line 204
+    .method public virtual hidebysig 
+           instance default class NAnt.VSNet.ProjectReferenceBase CreateProjectReference (class NAnt.VSNet.ProjectBase project, bool isPrivateSpecified, bool isPrivate)  cil managed 
     {
-        // Method begins at RVA 0x9338
-	// Code size 105 (0x69)
-	.maxstack 5
+        // Method begins at RVA 0xac74
+	// Code size 18 (0x12)
+	.maxstack 4
 	.locals init (
-		string	V_0,
-		string	V_1,
-		class [mscorlib]System.IO.PathTooLongException	V_2)
+		class NAnt.VSNet.ProjectReferenceBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  call bool string::IsNullOrEmpty(string)
-	IL_0007:  brtrue IL_0060
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0013:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0018:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001d:  ldarg.1 
-	IL_001e:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0023:  stloc.0 
-	.try { // 0
-	  IL_0024:  nop 
-	  IL_0025:  ldloc.0 
-	  IL_0026:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
-	  IL_002b:  stloc.1 
-	  IL_002c:  leave IL_0067
-
-	} // end .try 0
-	catch class [mscorlib]System.IO.PathTooLongException { // 0
-	  IL_0031:  stloc.2 
-	  IL_0032:  nop 
-	  IL_0033:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0038:  ldstr "Assembly \"{0}\", referenced by project \"{1}\", could not be resolved using path \"{2}\"."
-	  IL_003d:  ldarg.0 
-	  IL_003e:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	  IL_0043:  ldarg.0 
-	  IL_0044:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	  IL_0049:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	  IL_004e:  ldloc.0 
-	  IL_004f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	  IL_0054:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	  IL_0059:  ldloc.2 
-	  IL_005a:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_005f:  throw 
-	} // end handler 0
-	IL_0060:  ldnull 
-	IL_0061:  stloc.1 
-	IL_0062:  br IL_0067
+	IL_0002:  ldarg.0 
+	IL_0003:  ldarg.2 
+	IL_0004:  ldarg.3 
+	IL_0005:  newobj instance void class NAnt.VSNet.VcProjectReference::'.ctor'(class NAnt.VSNet.ProjectBase, class NAnt.VSNet.ProjectBase, bool, bool)
+	IL_000a:  stloc.0 
+	IL_000b:  br IL_0010
 
-	IL_0067:  ldloc.1 
-	IL_0068:  ret 
-    } // end of method AssemblyReferenceBase::ResolveFromRelativePath
+	IL_0010:  ldloc.0 
+	IL_0011:  ret 
+    } // end of method VcProject::CreateProjectReference
 
-    // method line 256
-    .method family virtual hidebysig newslot 
-           instance default string ResolveFromAssemblyFolders (class [System.Xml]System.Xml.XmlElement referenceElement, string fileName)  cil managed 
+    // method line 205
+    .method public virtual hidebysig 
+           instance default bool IsManaged (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x93c0
-	// Code size 27 (0x1b)
-	.maxstack 3
+        // Method begins at RVA 0xac94
+	// Code size 60 (0x3c)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		class NAnt.VSNet.VcProjectConfiguration	V_0,
+		bool	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_0008:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.Tasks.SolutionTask::get_AssemblyFolderList()
-	IL_000d:  ldarg.2 
-	IL_000e:  call instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromFolderList(class [System]System.Collections.Specialized.StringCollection, string)
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0019
-
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method AssemblyReferenceBase::ResolveFromAssemblyFolders
-
-	.property instance bool IsPrivate ()
-	{
-		.get instance default bool NAnt.VSNet.AssemblyReferenceBase::get_IsPrivate () 
-	}
-	.property instance bool IsPrivateSpecified ()
-	{
-		.get instance default bool NAnt.VSNet.AssemblyReferenceBase::get_IsPrivateSpecified () 
-	}
-	.property instance bool CopyLocal ()
-	{
-		.get instance default bool NAnt.VSNet.AssemblyReferenceBase::get_CopyLocal () 
-	}
-	.property instance bool IsSystem ()
-	{
-		.get instance default bool NAnt.VSNet.AssemblyReferenceBase::get_IsSystem () 
-	}
-  } // end of class NAnt.VSNet.AssemblyReferenceBase
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit ManagedProjectReference
-  	extends NAnt.VSNet.ProjectReferenceBase
-  {
-    .field  private initonly  class NAnt.VSNet.ProjectBase _project
-    .field  private initonly  bool _isPrivateSpecified
-    .field  private initonly  bool _isPrivate
-
-    // method line 257
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class NAnt.VSNet.SolutionBase solution, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
-    {
-        // Method begins at RVA 0x961c
-	// Code size 174 (0xae)
-	.maxstack 7
-	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		string	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.2 
-	IL_0002:  ldarg.3 
-	IL_0003:  call instance void class NAnt.VSNet.ProjectReferenceBase::'.ctor'(class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase)
-	IL_0008:  nop 
-	IL_0009:  ldarg.1 
-	IL_000a:  brtrue IL_001b
-
-	IL_000f:  nop 
-	IL_0010:  ldstr "xmlDefinition"
-	IL_0015:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_001a:  throw 
-	IL_001b:  ldarg.s 4
-	IL_001d:  brtrue IL_002e
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_000d:  castclass NAnt.VSNet.VcProjectConfiguration
+	IL_0012:  stloc.0 
+	IL_0013:  ldloc.0 
+	IL_0014:  callvirt instance valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType class NAnt.VSNet.VcProjectConfiguration::get_Type()
+	IL_0019:  ldc.i4.2 
+	IL_001a:  beq IL_002b
 
-	IL_0022:  nop 
-	IL_0023:  ldstr "solution"
-	IL_0028:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_002d:  throw 
-	IL_002e:  ldarg.s 5
-	IL_0030:  brtrue IL_0041
+	IL_001f:  ldloc.0 
+	IL_0020:  callvirt instance valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType class NAnt.VSNet.VcProjectConfiguration::get_Type()
+	IL_0025:  ldc.i4.1 
+	IL_0026:  bne.un IL_0033
 
-	IL_0035:  nop 
-	IL_0036:  ldstr "tfc"
-	IL_003b:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0040:  throw 
-	IL_0041:  ldarg.s 6
-	IL_0043:  brtrue IL_0054
+	IL_002b:  ldloc.0 
+	IL_002c:  callvirt instance bool class NAnt.VSNet.VcProjectConfiguration::get_ManagedExtensions()
+	IL_0031:  br.s IL_0034
 
-	IL_0048:  nop 
-	IL_0049:  ldstr "gacCache"
-	IL_004e:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0053:  throw 
-	IL_0054:  ldarg.1 
-	IL_0055:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_005a:  ldstr "Private"
-	IL_005f:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0064:  stloc.0 
-	IL_0065:  ldloc.0 
-	IL_0066:  brfalse IL_0085
+	IL_0033:  ldc.i4.0 
+	IL_0034:  stloc.1 
+	IL_0035:  br IL_003a
 
-	IL_006b:  nop 
-	IL_006c:  ldarg.0 
-	IL_006d:  ldc.i4.1 
-	IL_006e:  stfld bool NAnt.VSNet.ManagedProjectReference::_isPrivateSpecified
-	IL_0073:  ldarg.0 
-	IL_0074:  ldloc.0 
-	IL_0075:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_007a:  call bool bool::Parse(string)
-	IL_007f:  stfld bool NAnt.VSNet.ManagedProjectReference::_isPrivate
-	IL_0084:  nop 
-	IL_0085:  ldarg.s 4
-	IL_0087:  ldarg.1 
-	IL_0088:  ldstr "Project"
-	IL_008d:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_0092:  callvirt instance string class NAnt.VSNet.SolutionBase::GetProjectFileFromGuid(string)
-	IL_0097:  stloc.1 
-	IL_0098:  ldarg.0 
-	IL_0099:  ldarg.0 
-	IL_009a:  ldarg.s 4
-	IL_009c:  ldarg.s 5
-	IL_009e:  ldarg.s 6
-	IL_00a0:  ldarg.s 7
-	IL_00a2:  ldloc.1 
-	IL_00a3:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::LoadProject(class NAnt.VSNet.SolutionBase, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class [mscorlib]System.IO.DirectoryInfo, string)
-	IL_00a8:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ManagedProjectReference::_project
-	IL_00ad:  ret 
-    } // end of method ManagedProjectReference::.ctor
+	IL_003a:  ldloc.1 
+	IL_003b:  ret 
+    } // end of method VcProject::IsManaged
 
-    // method line 258
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ProjectBase project, class NAnt.VSNet.ProjectBase parent, bool isPrivateSpecified, bool isPrivate)  cil managed 
+    // method line 206
+    .method family virtual hidebysig 
+           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0x96d6
-	// Code size 37 (0x25)
+        // Method begins at RVA 0xacdc
+	// Code size 46 (0x2e)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
-	IL_0007:  ldarg.2 
-	IL_0008:  call instance void class NAnt.VSNet.ProjectReferenceBase::'.ctor'(class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase)
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ManagedProjectReference::_project
-	IL_0015:  ldarg.0 
-	IL_0016:  ldarg.3 
-	IL_0017:  stfld bool NAnt.VSNet.ManagedProjectReference::_isPrivateSpecified
-	IL_001c:  ldarg.0 
-	IL_001d:  ldarg.s 4
-	IL_001f:  stfld bool NAnt.VSNet.ManagedProjectReference::_isPrivate
-	IL_0024:  ret 
-    } // end of method ManagedProjectReference::.ctor
-
-    // method line 259
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
-    {
-        // Method begins at RVA 0x96fc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ManagedProjectReference::_project
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldarg.1 
+	IL_0002:  call bool class NAnt.VSNet.VcProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
+	IL_0007:  brtrue IL_002d
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedProjectReference::get_Project
+	IL_000c:  nop 
+	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0012:  ldstr "Project '{0}' is not a valid Visual C++ project."
+	IL_0017:  ldarg.0 
+	IL_0018:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_001d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0022:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0027:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_002c:  throw 
+	IL_002d:  ret 
+    } // end of method VcProject::VerifyProjectXml
 
-    // method line 260
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsPrivate ()  cil managed 
+    // method line 207
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0x9718
+        // Method begins at RVA 0xad0c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype NAnt.VSNet.ProductVersion	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.ManagedProjectReference::_isPrivate
+	IL_0001:  ldarg.1 
+	IL_0002:  call valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.VcProject::GetProductVersion(class [System.Xml]System.Xml.XmlElement)
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ManagedProjectReference::get_IsPrivate
+    } // end of method VcProject::DetermineProductVersion
 
-    // method line 261
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsPrivateSpecified ()  cil managed 
+    // method line 208
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.BuildResult Build (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x9734
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xad28
+	// Code size 969 (0x3c9)
+	.maxstack 4
 	.locals init (
-		bool	V_0)
+		class NAnt.VSNet.VcProjectConfiguration	V_0,
+		valuetype NAnt.VSNet.BuildResult	V_1,
+		string	V_2,
+		class NAnt.VSNet.VcConfigurationBase	V_3,
+		class NAnt.VSNet.VcConfigurationBase	V_4,
+		class [mscorlib]System.Collections.IEnumerator	V_5,
+		class [mscorlib]System.IDisposable	V_6,
+		class NAnt.VSNet.VcConfigurationBase	V_7,
+		class [mscorlib]System.Collections.IEnumerator	V_8,
+		class [mscorlib]System.IDisposable	V_9,
+		class NAnt.VSNet.VcConfigurationBase	V_10,
+		class [mscorlib]System.Collections.IEnumerator	V_11,
+		class [mscorlib]System.IDisposable	V_12,
+		class NAnt.VSNet.VcConfigurationBase	V_13,
+		class [mscorlib]System.Collections.IEnumerator	V_14,
+		class [mscorlib]System.IDisposable	V_15,
+		valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType	V_16,
+		class NAnt.VSNet.ReferenceBase	V_17,
+		class [mscorlib]System.Collections.IEnumerator	V_18,
+		class [mscorlib]System.Collections.Hashtable	V_19,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_20,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_21,
+		class [mscorlib]System.IO.FileInfo	V_22,
+		class [mscorlib]System.IO.FileInfo	V_23,
+		class [mscorlib]System.IDisposable	V_24,
+		class [mscorlib]System.IDisposable	V_25)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.ManagedProjectReference::_isPrivateSpecified
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldarg.1 
+	IL_0003:  callvirt instance void class NAnt.VSNet.ProjectBase::Prepare(class NAnt.VSNet.Configuration)
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_000e:  ldarg.1 
+	IL_000f:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_0014:  castclass NAnt.VSNet.VcProjectConfiguration
+	IL_0019:  stloc.0 
+	IL_001a:  ldarg.0 
+	IL_001b:  ldloc.0 
+	IL_001c:  call instance bool class NAnt.VSNet.VcProject::PreBuild(class NAnt.VSNet.VcProjectConfiguration)
+	IL_0021:  brtrue IL_002e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedProjectReference::get_IsPrivateSpecified
+	IL_0026:  nop 
+	IL_0027:  ldc.i4.0 
+	IL_0028:  stloc.1 
+	IL_0029:  br IL_03c7
 
-    // method line 262
-    .method public virtual hidebysig 
-           instance default bool IsManaged (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x9750
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_002e:  ldloc.0 
+	IL_002f:  ldstr "VCNMakeTool"
+	IL_0034:  ldstr "BuildCommandLine"
+	IL_0039:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
+	IL_003e:  stloc.2 
+	IL_003f:  ldloc.2 
+	IL_0040:  call bool string::IsNullOrEmpty(string)
+	IL_0045:  brtrue IL_0059
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ManagedProjectReference::IsManaged
+	IL_004a:  nop 
+	IL_004b:  ldarg.0 
+	IL_004c:  ldloc.2 
+	IL_004d:  call instance void class NAnt.VSNet.VcProject::RunNMake(string)
+	IL_0052:  ldc.i4.1 
+	IL_0053:  stloc.1 
+	IL_0054:  br IL_03c7
 
-	.property instance class NAnt.VSNet.ProjectBase Project ()
-	{
-		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ManagedProjectReference::get_Project () 
-	}
-	.property instance bool IsPrivate ()
-	{
-		.get instance default bool NAnt.VSNet.ManagedProjectReference::get_IsPrivate () 
-	}
-	.property instance bool IsPrivateSpecified ()
-	{
-		.get instance default bool NAnt.VSNet.ManagedProjectReference::get_IsPrivateSpecified () 
-	}
-  } // end of class NAnt.VSNet.ManagedProjectReference
-}
+	IL_0059:  ldnull 
+	IL_005a:  stloc.3 
+	IL_005b:  nop 
+	IL_005c:  ldloc.0 
+	IL_005d:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_IdlConfigs()
+	IL_0062:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
+	IL_0067:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_006c:  stloc.s 5
+	.try { // 0
+	  IL_006e:  br IL_009e
 
-.namespace NAnt.VSNet
-{
-  .class public auto ansi abstract beforefieldinit VcConfigurationBase
-  	extends NAnt.VSNet.ConfigurationBase
-  {
-    .field  family initonly  class [mscorlib]System.Collections.Hashtable Tools
-    .field  private initonly  string _name
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _outputDir
-    .field assembly static literal  string CLCompilerTool = "VCCLCompilerTool"
-    .field assembly static literal  string CustomBuildTool = "VCCustomBuildTool"
-    .field assembly static literal  string LinkerTool = "VCLinkerTool"
-    .field assembly static literal  string LibTool = "VCLibrarianTool"
-    .field assembly static literal  string ResourceCompilerTool = "VCResourceCompilerTool"
-    .field assembly static literal  string MIDLTool = "VCMIDLTool"
-    .field assembly static literal  string PreBuildEventTool = "VCPreBuildEventTool"
-    .field assembly static literal  string PostBuildEventTool = "VCPostBuildEventTool"
-    .field assembly static literal  string PreLinkEventTool = "VCPreLinkEventTool"
-    .field assembly static literal  string NMakeTool = "VCNMakeTool"
-    .field  private static  class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> '<>f__switch$map0'
-    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	  IL_0073:  ldloc.s 5
+	  IL_0075:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_007a:  castclass NAnt.VSNet.VcConfigurationBase
+	  IL_007f:  stloc.s 4
+	  IL_0081:  nop 
+	  IL_0082:  ldarg.0 
+	  IL_0083:  ldloc.0 
+	  IL_0084:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_IdlConfigs()
+	  IL_0089:  ldloc.s 4
+	  IL_008b:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_0090:  castclass [mscorlib]System.Collections.ArrayList
+	  IL_0095:  ldloc.0 
+	  IL_0096:  ldloc.s 4
+	  IL_0098:  call instance void class NAnt.VSNet.VcProject::BuildIDLFiles(class [mscorlib]System.Collections.ArrayList, class NAnt.VSNet.VcProjectConfiguration, class NAnt.VSNet.VcConfigurationBase)
+	  IL_009d:  nop 
+	  IL_009e:  ldloc.s 5
+	  IL_00a0:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00a5:  brtrue IL_0073
 
+	  IL_00aa:  leave IL_00c6
 
-    // method line 263
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement elem, class NAnt.VSNet.ProjectBase parentProject, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
-    {
-        // Method begins at RVA 0x5608
-	// Code size 292 (0x124)
-	.maxstack 3
-	.locals init (
-		class [System.Xml]System.Xml.XmlNodeList	V_0,
-		class [System.Xml]System.Xml.XmlElement	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		string	V_3,
-		class [mscorlib]System.Collections.Hashtable	V_4,
-		class [System.Xml]System.Xml.XmlAttribute	V_5,
-		class [mscorlib]System.Collections.IEnumerator	V_6,
-		class [mscorlib]System.IDisposable	V_7,
-		class [mscorlib]System.IDisposable	V_8)
-	IL_0000:  ldarg.0 
-	IL_0001:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_0006:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcConfigurationBase::Tools
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.2 
-	IL_000d:  call instance void class NAnt.VSNet.ConfigurationBase::'.ctor'(class NAnt.VSNet.ProjectBase)
-	IL_0012:  nop 
-	IL_0013:  ldarg.1 
-	IL_0014:  brtrue IL_0025
+	} // end .try 0
+	finally  { // 0
+	  IL_00af:  ldloc.s 5
+	  IL_00b1:  isinst [mscorlib]System.IDisposable
+	  IL_00b6:  dup 
+	  IL_00b7:  stloc.s 6
+	  IL_00b9:  brfalse IL_00c5
 
-	IL_0019:  nop 
-	IL_001a:  ldstr "elem"
-	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0024:  throw 
-	IL_0025:  ldarg.0 
-	IL_0026:  ldarg.3 
-	IL_0027:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcConfigurationBase::_outputDir
-	IL_002c:  ldarg.0 
-	IL_002d:  ldarg.1 
-	IL_002e:  ldstr "Name"
-	IL_0033:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_0038:  stfld string NAnt.VSNet.VcConfigurationBase::_name
-	IL_003d:  ldarg.1 
-	IL_003e:  ldstr "Tool"
-	IL_0043:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlElement::GetElementsByTagName(string)
-	IL_0048:  stloc.0 
-	IL_0049:  nop 
-	IL_004a:  ldloc.0 
-	IL_004b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_0050:  stloc.2 
+	  IL_00be:  ldloc.s 6
+	  IL_00c0:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00c5:  endfinally 
+	} // end handler 0
+	IL_00c6:  nop 
+	IL_00c7:  ldloc.0 
+	IL_00c8:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_SourceConfigs()
+	IL_00cd:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
+	IL_00d2:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_00d7:  stloc.s 8
 	.try { // 1
-	  IL_0051:  br IL_00fd
+	  IL_00d9:  br IL_011b
 
-	  IL_0056:  ldloc.2 
-	  IL_0057:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_005c:  castclass [System.Xml]System.Xml.XmlElement
-	  IL_0061:  stloc.1 
-	  IL_0062:  nop 
-	  IL_0063:  ldloc.1 
-	  IL_0064:  ldstr "Name"
-	  IL_0069:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	  IL_006e:  stloc.3 
-	  IL_006f:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	  IL_0074:  stloc.s 4
-	  IL_0076:  nop 
-	  IL_0077:  ldloc.1 
-	  IL_0078:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	  IL_007d:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNamedNodeMap::GetEnumerator()
-	  IL_0082:  stloc.s 6
-	  .try { // 0
-	    IL_0084:  br IL_00c6
+	  IL_00de:  ldloc.s 8
+	  IL_00e0:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_00e5:  castclass NAnt.VSNet.VcConfigurationBase
+	  IL_00ea:  stloc.s 7
+	  IL_00ec:  nop 
+	  IL_00ed:  ldloc.s 7
+	  IL_00ef:  callvirt instance valuetype NAnt.VSNet.Types.UsePrecompiledHeader class NAnt.VSNet.VcConfigurationBase::get_UsePrecompiledHeader()
+	  IL_00f4:  ldc.i4.1 
+	  IL_00f5:  bne.un IL_011a
 
-	    IL_0089:  ldloc.s 6
-	    IL_008b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_0090:  castclass [System.Xml]System.Xml.XmlAttribute
-	    IL_0095:  stloc.s 5
-	    IL_0097:  nop 
-	    IL_0098:  ldloc.s 5
-	    IL_009a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	    IL_009f:  ldstr "Name"
-	    IL_00a4:  call bool string::op_Inequality(string, string)
-	    IL_00a9:  brfalse IL_00c5
+	  IL_00fa:  nop 
+	  IL_00fb:  ldarg.0 
+	  IL_00fc:  ldloc.0 
+	  IL_00fd:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_SourceConfigs()
+	  IL_0102:  ldloc.s 7
+	  IL_0104:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_0109:  castclass [mscorlib]System.Collections.ArrayList
+	  IL_010e:  ldarg.1 
+	  IL_010f:  ldloc.s 7
+	  IL_0111:  call instance void class NAnt.VSNet.VcProject::BuildCPPFiles(class [mscorlib]System.Collections.ArrayList, class NAnt.VSNet.Configuration, class NAnt.VSNet.VcConfigurationBase)
+	  IL_0116:  ldloc.s 7
+	  IL_0118:  stloc.3 
+	  IL_0119:  nop 
+	  IL_011a:  nop 
+	  IL_011b:  ldloc.s 8
+	  IL_011d:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0122:  brtrue IL_00de
 
-	    IL_00ae:  nop 
-	    IL_00af:  ldloc.s 4
-	    IL_00b1:  ldloc.s 5
-	    IL_00b3:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	    IL_00b8:  ldloc.s 5
-	    IL_00ba:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	    IL_00bf:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	    IL_00c4:  nop 
-	    IL_00c5:  nop 
-	    IL_00c6:  ldloc.s 6
-	    IL_00c8:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_00cd:  brtrue IL_0089
+	  IL_0127:  leave IL_0143
 
-	    IL_00d2:  leave IL_00ee
+	} // end .try 1
+	finally  { // 1
+	  IL_012c:  ldloc.s 8
+	  IL_012e:  isinst [mscorlib]System.IDisposable
+	  IL_0133:  dup 
+	  IL_0134:  stloc.s 9
+	  IL_0136:  brfalse IL_0142
 
-	  } // end .try 0
-	  finally  { // 0
-	    IL_00d7:  ldloc.s 6
-	    IL_00d9:  isinst [mscorlib]System.IDisposable
-	    IL_00de:  dup 
-	    IL_00df:  stloc.s 7
-	    IL_00e1:  brfalse IL_00ed
+	  IL_013b:  ldloc.s 9
+	  IL_013d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0142:  endfinally 
+	} // end handler 1
+	IL_0143:  nop 
+	IL_0144:  ldloc.0 
+	IL_0145:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_SourceConfigs()
+	IL_014a:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
+	IL_014f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0154:  stloc.s 11
+	.try { // 2
+	  IL_0156:  br IL_0190
 
-	    IL_00e6:  ldloc.s 7
-	    IL_00e8:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_00ed:  endfinally 
-	  } // end handler 0
-	  IL_00ee:  ldarg.0 
-	  IL_00ef:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcConfigurationBase::Tools
-	  IL_00f4:  ldloc.3 
-	  IL_00f5:  ldloc.s 4
-	  IL_00f7:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_00fc:  nop 
-	  IL_00fd:  ldloc.2 
-	  IL_00fe:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0103:  brtrue IL_0056
+	  IL_015b:  ldloc.s 11
+	  IL_015d:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0162:  castclass NAnt.VSNet.VcConfigurationBase
+	  IL_0167:  stloc.s 10
+	  IL_0169:  nop 
+	  IL_016a:  ldloc.s 10
+	  IL_016c:  ldloc.3 
+	  IL_016d:  beq IL_018f
 
-	  IL_0108:  leave IL_0123
+	  IL_0172:  nop 
+	  IL_0173:  ldarg.0 
+	  IL_0174:  ldloc.0 
+	  IL_0175:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_SourceConfigs()
+	  IL_017a:  ldloc.s 10
+	  IL_017c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_0181:  castclass [mscorlib]System.Collections.ArrayList
+	  IL_0186:  ldarg.1 
+	  IL_0187:  ldloc.s 10
+	  IL_0189:  call instance void class NAnt.VSNet.VcProject::BuildCPPFiles(class [mscorlib]System.Collections.ArrayList, class NAnt.VSNet.Configuration, class NAnt.VSNet.VcConfigurationBase)
+	  IL_018e:  nop 
+	  IL_018f:  nop 
+	  IL_0190:  ldloc.s 11
+	  IL_0192:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0197:  brtrue IL_015b
 
-	} // end .try 1
-	finally  { // 1
-	  IL_010d:  ldloc.2 
-	  IL_010e:  isinst [mscorlib]System.IDisposable
-	  IL_0113:  dup 
-	  IL_0114:  stloc.s 8
-	  IL_0116:  brfalse IL_0122
+	  IL_019c:  leave IL_01b8
 
-	  IL_011b:  ldloc.s 8
-	  IL_011d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0122:  endfinally 
-	} // end handler 1
-	IL_0123:  ret 
-    } // end of method VcConfigurationBase::.ctor
+	} // end .try 2
+	finally  { // 2
+	  IL_01a1:  ldloc.s 11
+	  IL_01a3:  isinst [mscorlib]System.IDisposable
+	  IL_01a8:  dup 
+	  IL_01a9:  stloc.s 12
+	  IL_01ab:  brfalse IL_01b7
 
-    // method line 264
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string configName, class NAnt.VSNet.ProjectBase parentProject, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
-    {
-        // Method begins at RVA 0x5754
-	// Code size 34 (0x22)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_0006:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcConfigurationBase::Tools
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.2 
-	IL_000d:  call instance void class NAnt.VSNet.ConfigurationBase::'.ctor'(class NAnt.VSNet.ProjectBase)
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.1 
-	IL_0015:  stfld string NAnt.VSNet.VcConfigurationBase::_name
-	IL_001a:  ldarg.0 
-	IL_001b:  ldarg.3 
-	IL_001c:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcConfigurationBase::_outputDir
-	IL_0021:  ret 
-    } // end of method VcConfigurationBase::.ctor
+	  IL_01b0:  ldloc.s 12
+	  IL_01b2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_01b7:  endfinally 
+	} // end handler 2
+	IL_01b8:  nop 
+	IL_01b9:  ldloc.0 
+	IL_01ba:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_RcConfigs()
+	IL_01bf:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
+	IL_01c4:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_01c9:  stloc.s 14
+	.try { // 3
+	  IL_01cb:  br IL_01fb
 
-    // method line 265
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_IntermediateDir ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method VcConfigurationBase::get_IntermediateDir
+	  IL_01d0:  ldloc.s 14
+	  IL_01d2:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_01d7:  castclass NAnt.VSNet.VcConfigurationBase
+	  IL_01dc:  stloc.s 13
+	  IL_01de:  nop 
+	  IL_01df:  ldarg.0 
+	  IL_01e0:  ldloc.0 
+	  IL_01e1:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_RcConfigs()
+	  IL_01e6:  ldloc.s 13
+	  IL_01e8:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_01ed:  castclass [mscorlib]System.Collections.ArrayList
+	  IL_01f2:  ldloc.0 
+	  IL_01f3:  ldloc.s 13
+	  IL_01f5:  call instance void class NAnt.VSNet.VcProject::BuildResourceFiles(class [mscorlib]System.Collections.ArrayList, class NAnt.VSNet.VcProjectConfiguration, class NAnt.VSNet.VcConfigurationBase)
+	  IL_01fa:  nop 
+	  IL_01fb:  ldloc.s 14
+	  IL_01fd:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0202:  brtrue IL_01d0
 
-    // method line 266
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_ReferencesPath ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method VcConfigurationBase::get_ReferencesPath
+	  IL_0207:  leave IL_0223
 
-    // method line 267
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.VSNet.Types.UsePrecompiledHeader get_UsePrecompiledHeader ()  cil managed 
-    {
-        // Method begins at RVA 0x5778
-	// Code size 139 (0x8b)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		valuetype NAnt.VSNet.Types.UsePrecompiledHeader	V_1,
-		int32	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldstr "VCCLCompilerTool"
-	IL_0007:  ldstr "UsePrecompiledHeader"
-	IL_000c:  call instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
-	IL_0011:  stloc.0 
-	IL_0012:  ldloc.0 
-	IL_0013:  brtrue IL_0020
+	} // end .try 3
+	finally  { // 3
+	  IL_020c:  ldloc.s 14
+	  IL_020e:  isinst [mscorlib]System.IDisposable
+	  IL_0213:  dup 
+	  IL_0214:  stloc.s 15
+	  IL_0216:  brfalse IL_0222
 
-	IL_0018:  nop 
-	IL_0019:  ldc.i4.m1 
-	IL_001a:  stloc.1 
-	IL_001b:  br IL_0089
+	  IL_021b:  ldloc.s 15
+	  IL_021d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0222:  endfinally 
+	} // end handler 3
+	IL_0223:  ldloc.0 
+	IL_0224:  callvirt instance valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType class NAnt.VSNet.VcProjectConfiguration::get_Type()
+	IL_0229:  stloc.s 16
+	IL_022b:  ldloc.s 16
+	IL_022d:  ldc.i4.4 
+	IL_022e:  beq IL_0248
 
-	IL_0020:  ldloc.0 
-	IL_0021:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0026:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
-	IL_002b:  stloc.2 
-	IL_002c:  ldarg.0 
-	IL_002d:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_0032:  callvirt instance valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ProjectBase::get_ProductVersion()
-	IL_0037:  ldc.i4.s 0x50
-	IL_0039:  blt IL_006e
+	IL_0233:  ldloc.s 16
+	IL_0235:  ldc.i4.1 
+	IL_0236:  beq IL_0254
 
-	IL_003e:  nop 
-	IL_003f:  ldloc.2 
-	IL_0040:  brfalse IL_0058
+	IL_023b:  ldloc.s 16
+	IL_023d:  ldc.i4.2 
+	IL_023e:  beq IL_0254
 
-	IL_0045:  ldloc.2 
-	IL_0046:  ldc.i4.1 
-	IL_0047:  beq IL_005f
+	IL_0243:  br IL_0274
 
-	IL_004c:  ldloc.2 
-	IL_004d:  ldc.i4.2 
-	IL_004e:  beq IL_0066
+	IL_0248:  ldarg.0 
+	IL_0249:  ldloc.0 
+	IL_024a:  call instance void class NAnt.VSNet.VcProject::RunLibrarian(class NAnt.VSNet.VcProjectConfiguration)
+	IL_024f:  br IL_0274
 
-	IL_0053:  br IL_006d
+	IL_0254:  ldarg.0 
+	IL_0255:  ldloc.0 
+	IL_0256:  call instance bool class NAnt.VSNet.VcProject::PreLink(class NAnt.VSNet.VcProjectConfiguration)
+	IL_025b:  brtrue IL_0268
 
-	IL_0058:  ldc.i4.0 
-	IL_0059:  stloc.1 
-	IL_005a:  br IL_0089
+	IL_0260:  nop 
+	IL_0261:  ldc.i4.0 
+	IL_0262:  stloc.1 
+	IL_0263:  br IL_03c7
 
-	IL_005f:  ldc.i4.1 
-	IL_0060:  stloc.1 
-	IL_0061:  br IL_0089
+	IL_0268:  ldarg.0 
+	IL_0269:  ldarg.1 
+	IL_026a:  call instance void class NAnt.VSNet.VcProject::RunLinker(class NAnt.VSNet.Configuration)
+	IL_026f:  br IL_0274
 
-	IL_0066:  ldc.i4.3 
-	IL_0067:  stloc.1 
-	IL_0068:  br IL_0089
+	IL_0274:  ldarg.0 
+	IL_0275:  ldc.i4 2000
+	IL_027a:  ldstr "Copying references:"
+	IL_027f:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0284:  nop 
+	IL_0285:  ldarg.0 
+	IL_0286:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_references
+	IL_028b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0290:  stloc.s 18
+	.try { // 5
+	  IL_0292:  br IL_036f
 
-	IL_006d:  nop 
-	IL_006e:  ldtoken NAnt.VSNet.Types.UsePrecompiledHeader
-	IL_0073:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0078:  ldloc.2 
-	IL_0079:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, int32)
-	IL_007e:  unbox.any NAnt.VSNet.Types.UsePrecompiledHeader
-	IL_0083:  stloc.1 
-	IL_0084:  br IL_0089
+	  IL_0297:  ldloc.s 18
+	  IL_0299:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_029e:  castclass NAnt.VSNet.ReferenceBase
+	  IL_02a3:  stloc.s 17
+	  IL_02a5:  nop 
+	  IL_02a6:  ldloc.s 17
+	  IL_02a8:  callvirt instance bool class NAnt.VSNet.ReferenceBase::get_CopyLocal()
+	  IL_02ad:  brfalse IL_036e
 
-	IL_0089:  ldloc.1 
-	IL_008a:  ret 
-    } // end of method VcConfigurationBase::get_UsePrecompiledHeader
+	  IL_02b2:  nop 
+	  IL_02b3:  ldarg.0 
+	  IL_02b4:  ldc.i4 2000
+	  IL_02b9:  ldstr " - "
+	  IL_02be:  ldloc.s 17
+	  IL_02c0:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	  IL_02c5:  call string string::Concat(string, string)
+	  IL_02ca:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	  IL_02cf:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	  IL_02d4:  stloc.s 19
+	  IL_02d6:  ldloc.s 17
+	  IL_02d8:  ldarg.1 
+	  IL_02d9:  ldloc.s 19
+	  IL_02db:  callvirt instance void class NAnt.VSNet.ReferenceBase::GetOutputFiles(class NAnt.VSNet.Configuration, class [mscorlib]System.Collections.Hashtable)
+	  IL_02e0:  nop 
+	  IL_02e1:  ldloc.s 19
+	  IL_02e3:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	  IL_02e8:  stloc.s 21
+	  .try { // 4
+	    IL_02ea:  br IL_0345
 
-    // method line 268
-    .method assembly hidebysig specialname 
-           instance default string get_FullName ()  cil managed 
-    {
-        // Method begins at RVA 0x5810
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	    IL_02ef:  ldloc.s 21
+	    IL_02f1:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_02f6:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	    IL_02fb:  stloc.s 20
+	    IL_02fd:  nop 
+	    IL_02fe:  ldloca.s 20
+	    IL_0300:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	    IL_0305:  castclass [mscorlib]System.String
+	    IL_030a:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	    IL_030f:  stloc.s 22
+	    IL_0311:  ldloc.0 
+	    IL_0312:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	    IL_0317:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	    IL_031c:  ldloca.s 20
+	    IL_031e:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	    IL_0323:  castclass [mscorlib]System.String
+	    IL_0328:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	    IL_032d:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	    IL_0332:  stloc.s 23
+	    IL_0334:  ldarg.0 
+	    IL_0335:  ldloc.s 22
+	    IL_0337:  ldloc.s 23
+	    IL_0339:  ldarg.0 
+	    IL_033a:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	    IL_033f:  call instance void class NAnt.VSNet.ProjectBase::CopyFile(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo, class [NAnt.Core]NAnt.Core.Task)
+	    IL_0344:  nop 
+	    IL_0345:  ldloc.s 21
+	    IL_0347:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_034c:  brtrue IL_02ef
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcConfigurationBase::get_FullName
+	    IL_0351:  leave IL_036d
 
-    // method line 269
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
-    {
-        // Method begins at RVA 0x582c
-	// Code size 101 (0x65)
-	.maxstack 3
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcConfigurationBase::_outputDir
-	IL_0007:  brtrue IL_0057
+	  } // end .try 4
+	  finally  { // 4
+	    IL_0356:  ldloc.s 21
+	    IL_0358:  isinst [mscorlib]System.IDisposable
+	    IL_035d:  dup 
+	    IL_035e:  stloc.s 24
+	    IL_0360:  brfalse IL_036c
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_RelativeOutputDir()
-	IL_0013:  brfalse IL_0045
+	    IL_0365:  ldloc.s 24
+	    IL_0367:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_036c:  endfinally 
+	  } // end handler 4
+	  IL_036d:  nop 
+	  IL_036e:  nop 
+	  IL_036f:  ldloc.s 18
+	  IL_0371:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0376:  brtrue IL_0297
 
-	IL_0018:  nop 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldarg.0 
-	IL_001b:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_0020:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0025:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_002a:  ldarg.0 
-	IL_002b:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_RelativeOutputDir()
-	IL_0030:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0035:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_003a:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcConfigurationBase::_outputDir
-	IL_003f:  nop 
-	IL_0040:  br IL_0056
+	  IL_037b:  leave IL_0397
 
-	IL_0045:  nop 
-	IL_0046:  ldstr "The output directory could not be determined."
-	IL_004b:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0050:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0055:  throw 
-	IL_0056:  nop 
-	IL_0057:  ldarg.0 
-	IL_0058:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcConfigurationBase::_outputDir
-	IL_005d:  stloc.0 
-	IL_005e:  br IL_0063
+	} // end .try 5
+	finally  { // 5
+	  IL_0380:  ldloc.s 18
+	  IL_0382:  isinst [mscorlib]System.IDisposable
+	  IL_0387:  dup 
+	  IL_0388:  stloc.s 25
+	  IL_038a:  brfalse IL_0396
 
-	IL_0063:  ldloc.0 
-	IL_0064:  ret 
-    } // end of method VcConfigurationBase::get_OutputDir
+	  IL_038f:  ldloc.s 25
+	  IL_0391:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0396:  endfinally 
+	} // end handler 5
+	IL_0397:  ldarg.0 
+	IL_0398:  ldarg.1 
+	IL_0399:  ldloc.0 
+	IL_039a:  call instance bool class NAnt.VSNet.VcProject::RunCustomBuildStep(class NAnt.VSNet.Configuration, class NAnt.VSNet.VcProjectConfiguration)
+	IL_039f:  brtrue IL_03ac
 
-    // method line 270
-    .method public virtual hidebysig specialname 
-           instance default string get_BuildPath ()  cil managed 
+	IL_03a4:  nop 
+	IL_03a5:  ldc.i4.0 
+	IL_03a6:  stloc.1 
+	IL_03a7:  br IL_03c7
+
+	IL_03ac:  ldarg.0 
+	IL_03ad:  ldloc.0 
+	IL_03ae:  call instance bool class NAnt.VSNet.VcProject::PostBuild(class NAnt.VSNet.VcProjectConfiguration)
+	IL_03b3:  brtrue IL_03c0
+
+	IL_03b8:  nop 
+	IL_03b9:  ldc.i4.0 
+	IL_03ba:  stloc.1 
+	IL_03bb:  br IL_03c7
+
+	IL_03c0:  ldc.i4.1 
+	IL_03c1:  stloc.1 
+	IL_03c2:  br IL_03c7
+
+	IL_03c7:  ldloc.1 
+	IL_03c8:  ret 
+    } // end of method VcProject::Build
+
+    // method line 209
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.ArrayList get_ProjectFiles ()  cil managed 
     {
-        // Method begins at RVA 0x58a0
+        // Method begins at RVA 0xb14c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Collections.ArrayList	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_projectFiles
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VcConfigurationBase::get_BuildPath
-
-    // method line 271
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x58bc
-	// Code size 60 (0x3c)
-	.maxstack 3
-	.locals init (
-		int32	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
-	IL_0007:  ldstr "|"
-	IL_000c:  callvirt instance int32 string::IndexOf(string)
-	IL_0011:  stloc.0 
-	IL_0012:  ldloc.0 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  blt IL_002d
-
-	IL_0019:  nop 
-	IL_001a:  ldarg.0 
-	IL_001b:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
-	IL_0020:  ldc.i4.0 
-	IL_0021:  ldloc.0 
-	IL_0022:  callvirt instance string string::Substring(int32, int32)
-	IL_0027:  stloc.1 
-	IL_0028:  br IL_003a
-
-	IL_002d:  nop 
-	IL_002e:  ldarg.0 
-	IL_002f:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
-	IL_0034:  stloc.1 
-	IL_0035:  br IL_003a
-
-	IL_003a:  ldloc.1 
-	IL_003b:  ret 
-    } // end of method VcConfigurationBase::get_Name
-
-    // method line 272
-    .method public virtual hidebysig specialname 
-           instance default string get_PlatformName ()  cil managed 
-    {
-        // Method begins at RVA 0x5904
-	// Code size 105 (0x69)
-	.maxstack 4
-	.locals init (
-		int32	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
-	IL_0007:  ldstr "|"
-	IL_000c:  callvirt instance int32 string::IndexOf(string)
-	IL_0011:  stloc.0 
-	IL_0012:  ldloc.0 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  blt IL_005b
-
-	IL_0019:  nop 
-	IL_001a:  ldloc.0 
-	IL_001b:  ldarg.0 
-	IL_001c:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
-	IL_0021:  callvirt instance int32 string::get_Length()
-	IL_0026:  bge IL_004f
-
-	IL_002b:  nop 
-	IL_002c:  ldarg.0 
-	IL_002d:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
-	IL_0032:  ldloc.0 
-	IL_0033:  ldc.i4.1 
-	IL_0034:  add 
-	IL_0035:  ldarg.0 
-	IL_0036:  ldfld string NAnt.VSNet.VcConfigurationBase::_name
-	IL_003b:  callvirt instance int32 string::get_Length()
-	IL_0040:  ldc.i4.1 
-	IL_0041:  sub 
-	IL_0042:  ldloc.0 
-	IL_0043:  sub 
-	IL_0044:  callvirt instance string string::Substring(int32, int32)
-	IL_0049:  stloc.1 
-	IL_004a:  br IL_0067
-
-	IL_004f:  nop 
-	IL_0050:  ldsfld string [mscorlib]System.String::Empty
-	IL_0055:  stloc.1 
-	IL_0056:  br IL_0067
-
-	IL_005b:  nop 
-	IL_005c:  ldsfld string [mscorlib]System.String::Empty
-	IL_0061:  stloc.1 
-	IL_0062:  br IL_0067
-
-	IL_0067:  ldloc.1 
-	IL_0068:  ret 
-    } // end of method VcConfigurationBase::get_PlatformName
+    } // end of method VcProject::get_ProjectFiles
 
-    // method line 273
+    // method line 210
     .method famorassem virtual hidebysig 
            instance default string ExpandMacro (string macro)  cil managed 
     {
-        // Method begins at RVA 0x597c
-	// Code size 480 (0x1e0)
+        // Method begins at RVA 0xb168
+	// Code size 326 (0x146)
 	.maxstack 3
 	.locals init (
 		string	V_0,
 		class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>	V_1,
 		int32	V_2,
-		string	V_3,
-		string	V_4)
+		string	V_3)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
 	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
 	IL_0007:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
 	IL_000c:  stloc.0 
 	IL_000d:  ldloc.0 
-	IL_000e:  brfalse IL_01b3
+	IL_000e:  brfalse IL_0137
 
-	IL_0013:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcConfigurationBase::'<>f__switch$map0'
+	IL_0013:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcProject::'<>f__switch$map2'
 	IL_0018:  brtrue IL_007e
 
 	IL_001d:  ldc.i4.7 
 	IL_001e:  newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::'.ctor'(int32)
 	IL_0023:  stloc.1 
 	IL_0024:  ldloc.1 
-	IL_0025:  ldstr "noinherit"
+	IL_0025:  ldstr "inputdir"
 	IL_002a:  ldc.i4.0 
 	IL_002b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
 	IL_0030:  ldloc.1 
-	IL_0031:  ldstr "intdir"
+	IL_0031:  ldstr "inputname"
 	IL_0036:  ldc.i4.1 
 	IL_0037:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
 	IL_003c:  ldloc.1 
-	IL_003d:  ldstr "vcinstalldir"
+	IL_003d:  ldstr "inputpath"
 	IL_0042:  ldc.i4.2 
 	IL_0043:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
 	IL_0048:  ldloc.1 
-	IL_0049:  ldstr "vsinstalldir"
+	IL_0049:  ldstr "inputfilename"
 	IL_004e:  ldc.i4.3 
 	IL_004f:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
 	IL_0054:  ldloc.1 
-	IL_0055:  ldstr "frameworkdir"
+	IL_0055:  ldstr "inputext"
 	IL_005a:  ldc.i4.4 
 	IL_005b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
 	IL_0060:  ldloc.1 
-	IL_0061:  ldstr "frameworkversion"
+	IL_0061:  ldstr "safeparentname"
 	IL_0066:  ldc.i4.5 
 	IL_0067:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
 	IL_006c:  ldloc.1 
-	IL_006d:  ldstr "frameworksdkdir"
+	IL_006d:  ldstr "safeinputname"
 	IL_0072:  ldc.i4.6 
 	IL_0073:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
 	IL_0078:  ldloc.1 
-	IL_0079:  stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcConfigurationBase::'<>f__switch$map0'
-	IL_007e:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcConfigurationBase::'<>f__switch$map0'
+	IL_0079:  stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcProject::'<>f__switch$map2'
+	IL_007e:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcProject::'<>f__switch$map2'
 	IL_0083:  ldloc.0 
 	IL_0084:  ldloca.s 2
 	IL_0086:  callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::TryGetValue(!0, [out] !1&)
-	IL_008b:  brfalse IL_01b3
+	IL_008b:  brfalse IL_0137
 
 	IL_0090:  ldloc.2 
 	IL_0091:  switch (
 	  IL_00bb,
-	  IL_00c6,
-	  IL_00d2,
-	  IL_00e8,
-	  IL_00fe,
-	  IL_0123,
-	  IL_0148,
-	  IL_01b3)
-	IL_00b6:  br IL_01b3
-
-	IL_00bb:  ldstr "$(noinherit)"
-	IL_00c0:  stloc.3 
-	IL_00c1:  br IL_01de
+	  IL_00db,
+	  IL_00ec,
+	  IL_00f8,
+	  IL_0109,
+	  IL_011a,
+	  IL_0126,
+	  IL_0137)
+	IL_00b6:  br IL_0137
 
-	IL_00c6:  ldarg.0 
-	IL_00c7:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::get_IntermediateDir()
-	IL_00cc:  stloc.3 
-	IL_00cd:  br IL_01de
+	IL_00bb:  ldarg.0 
+	IL_00bc:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_00c1:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_00c6:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_00cb:  box [mscorlib]System.Char
+	IL_00d0:  call string string::Concat(object, object)
+	IL_00d5:  stloc.3 
+	IL_00d6:  br IL_0144
 
-	IL_00d2:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00d7:  ldstr "\"{0}\" macro is not yet implemented."
-	IL_00dc:  ldarg.1 
-	IL_00dd:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00e2:  newobj instance void class [mscorlib]System.NotImplementedException::'.ctor'(string)
-	IL_00e7:  throw 
-	IL_00e8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00ed:  ldstr "\"{0}\" macro is not yet implemented."
-	IL_00f2:  ldarg.1 
-	IL_00f3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00f8:  newobj instance void class [mscorlib]System.NotImplementedException::'.ctor'(string)
-	IL_00fd:  throw 
-	IL_00fe:  ldarg.0 
-	IL_00ff:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
-	IL_0104:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0109:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_010e:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
-	IL_0113:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.DirectoryInfo::get_Parent()
-	IL_0118:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_011d:  stloc.3 
-	IL_011e:  br IL_01de
+	IL_00db:  ldarg.0 
+	IL_00dc:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_00e1:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_00e6:  stloc.3 
+	IL_00e7:  br IL_0144
 
-	IL_0123:  ldstr "v"
-	IL_0128:  ldarg.0 
-	IL_0129:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
-	IL_012e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0133:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0138:  callvirt instance class [mscorlib]System.Version class [NAnt.Core]NAnt.Core.FrameworkInfo::get_ClrVersion()
-	IL_013d:  call string string::Concat(object, object)
-	IL_0142:  stloc.3 
-	IL_0143:  br IL_01de
+	IL_00ec:  ldarg.0 
+	IL_00ed:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_00f2:  stloc.3 
+	IL_00f3:  br IL_0144
 
-	IL_0148:  ldarg.0 
-	IL_0149:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
-	IL_014e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0153:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0158:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_SdkDirectory()
-	IL_015d:  brfalse IL_0183
+	IL_00f8:  ldarg.0 
+	IL_00f9:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_00fe:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_0103:  stloc.3 
+	IL_0104:  br IL_0144
 
-	IL_0162:  nop 
-	IL_0163:  ldarg.0 
-	IL_0164:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
-	IL_0169:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_016e:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0173:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_SdkDirectory()
-	IL_0178:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_017d:  stloc.3 
-	IL_017e:  br IL_01de
+	IL_0109:  ldarg.0 
+	IL_010a:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_010f:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_0114:  stloc.3 
+	IL_0115:  br IL_0144
 
-	IL_0183:  nop 
-	IL_0184:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0189:  ldstr "Macro \"{0}\" cannot be expanded: the SDK for {0} is not installed."
-	IL_018e:  ldarg.0 
-	IL_018f:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
-	IL_0194:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0199:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_019e:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Description()
-	IL_01a3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_01a8:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_01ad:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_01b2:  throw 
-	.try { // 0
-	  IL_01b3:  nop 
-	  IL_01b4:  ldarg.0 
-	  IL_01b5:  ldarg.1 
-	  IL_01b6:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacro(string)
-	  IL_01bb:  stloc.3 
-	  IL_01bc:  leave IL_01de
+	IL_011a:  ldarg.0 
+	IL_011b:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_0120:  stloc.3 
+	IL_0121:  br IL_0144
 
-	} // end .try 0
-	catch class [NAnt.Core]NAnt.Core.BuildException { // 0
-	  IL_01c1:  pop 
-	  IL_01c2:  nop 
-	  IL_01c3:  ldarg.1 
-	  IL_01c4:  call string class [mscorlib]System.Environment::GetEnvironmentVariable(string)
-	  IL_01c9:  stloc.s 4
-	  IL_01cb:  ldloc.s 4
-	  IL_01cd:  brfalse IL_01db
+	IL_0126:  ldarg.0 
+	IL_0127:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_012c:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_0131:  stloc.3 
+	IL_0132:  br IL_0144
 
-	  IL_01d2:  nop 
-	  IL_01d3:  ldloc.s 4
-	  IL_01d5:  stloc.3 
-	  IL_01d6:  leave IL_01de
+	IL_0137:  ldarg.0 
+	IL_0138:  ldarg.1 
+	IL_0139:  call instance string class NAnt.VSNet.ProjectBase::ExpandMacro(string)
+	IL_013e:  stloc.3 
+	IL_013f:  br IL_0144
 
-	  IL_01db:  nop 
-	  IL_01dc:  rethrow 
-	} // end handler 0
-	IL_01de:  ldloc.3 
-	IL_01df:  ret 
-    } // end of method VcConfigurationBase::ExpandMacro
+	IL_0144:  ldloc.3 
+	IL_0145:  ret 
+    } // end of method VcProject::ExpandMacro
 
-    // method line 274
-    .method public hidebysig 
-           instance default string GetToolSetting (string toolName, string settingName)  cil managed 
+    // method line 211
+    .method assembly hidebysig 
+           instance default string GetObjOutputFile (string fileName, class NAnt.VSNet.VcConfigurationBase fileConfig, string intermediateDir)  cil managed 
     {
-        // Method begins at RVA 0x5b78
-	// Code size 18 (0x12)
-	.maxstack 4
+        // Method begins at RVA 0xb2bc
+	// Code size 34 (0x22)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		string	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  ldnull 
-	IL_0005:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string, string)
-	IL_000a:  stloc.0 
-	IL_000b:  br IL_0010
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance string class NAnt.VSNet.VcProject::GetObjectFile(class NAnt.VSNet.VcConfigurationBase)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  brtrue IL_0013
 
-	IL_0010:  ldloc.0 
-	IL_0011:  ret 
-    } // end of method VcConfigurationBase::GetToolSetting
+	IL_000f:  nop 
+	IL_0010:  ldarg.3 
+	IL_0011:  stloc.0 
+	IL_0012:  nop 
+	IL_0013:  ldarg.1 
+	IL_0014:  ldloc.0 
+	IL_0015:  call string class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::GetObjOutputFile(string, string)
+	IL_001a:  stloc.1 
+	IL_001b:  br IL_0020
 
-    // method line 275
-    .method public virtual hidebysig newslot abstract 
-           instance default string GetToolSetting (string toolName, string settingName, string defaultValue)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method VcConfigurationBase::GetToolSetting
+	IL_0020:  ldloc.1 
+	IL_0021:  ret 
+    } // end of method VcProject::GetObjOutputFile
 
-    // method line 276
-    .method public hidebysig 
-           instance default class [mscorlib]System.Collections.Hashtable GetToolArguments (string toolName, class NAnt.VSNet.VcArgumentMap argMap)  cil managed 
+    // method line 212
+    .method assembly hidebysig 
+           instance default string GetResourceOutputFile (string fileName, class NAnt.VSNet.VcConfigurationBase fileConfig)  cil managed 
     {
-        // Method begins at RVA 0x5b98
-	// Code size 18 (0x12)
-	.maxstack 4
+        // Method begins at RVA 0xb2ec
+	// Code size 46 (0x2e)
+	.maxstack 5
 	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  ldc.i4.0 
-	IL_0005:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcConfigurationBase::GetToolArguments(string, class NAnt.VSNet.VcArgumentMap, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup)
-	IL_000a:  stloc.0 
-	IL_000b:  br IL_0010
+	IL_0002:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_000c:  ldarg.2 
+	IL_000d:  ldstr "VCResourceCompilerTool"
+	IL_0012:  ldstr "ResourceOutputFileName"
+	IL_0017:  ldstr "$(IntDir)/$(InputName).res"
+	IL_001c:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string, string)
+	IL_0021:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0026:  stloc.0 
+	IL_0027:  br IL_002c
 
-	IL_0010:  ldloc.0 
-	IL_0011:  ret 
-    } // end of method VcConfigurationBase::GetToolArguments
+	IL_002c:  ldloc.0 
+	IL_002d:  ret 
+    } // end of method VcProject::GetResourceOutputFile
 
-    // method line 277
-    .method public virtual hidebysig newslot abstract 
-           instance default class [mscorlib]System.Collections.Hashtable GetToolArguments (string toolName, class NAnt.VSNet.VcArgumentMap argMap, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup ignoreGroup)  cil managed 
+    // method line 213
+    .method family virtual hidebysig newslot 
+           instance default class NAnt.VSNet.ReferenceBase CreateReference (class NAnt.VSNet.SolutionBase solution, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method VcConfigurationBase::GetToolArguments
-
-	.property instance string IntermediateDir ()
-	{
-		.get instance default string NAnt.VSNet.VcConfigurationBase::get_IntermediateDir () 
-	}
-	.property instance string ReferencesPath ()
-	{
-		.get instance default string NAnt.VSNet.VcConfigurationBase::get_ReferencesPath () 
-	}
-	.property instance valuetype NAnt.VSNet.Types.UsePrecompiledHeader UsePrecompiledHeader ()
-	{
-		.get instance default valuetype NAnt.VSNet.Types.UsePrecompiledHeader NAnt.VSNet.VcConfigurationBase::get_UsePrecompiledHeader () 
-	}
-	.property instance string FullName ()
-	{
-		.get instance default string NAnt.VSNet.VcConfigurationBase::get_FullName () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo OutputDir ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcConfigurationBase::get_OutputDir () 
-	}
-	.property instance string BuildPath ()
-	{
-		.get instance default string NAnt.VSNet.VcConfigurationBase::get_BuildPath () 
-	}
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.VSNet.VcConfigurationBase::get_Name () 
-	}
-	.property instance string PlatformName ()
-	{
-		.get instance default string NAnt.VSNet.VcConfigurationBase::get_PlatformName () 
-	}
-  .class nested public auto ansi sealed ExpansionHandler
-  	extends [mscorlib]System.MulticastDelegate
-  {
+        // Method begins at RVA 0xb328
+	// Code size 225 (0xe1)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		class NAnt.VSNet.ReferenceBase	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
 
-    // method line 278
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method ExpansionHandler::.ctor
+	IL_0007:  nop 
+	IL_0008:  ldstr "solution"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.2 
+	IL_0014:  brtrue IL_0025
 
-    // method line 279
-    .method public virtual hidebysig newslot 
-           instance default string Invoke (string 'value')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method ExpansionHandler::Invoke
+	IL_0019:  nop 
+	IL_001a:  ldstr "xmlDefinition"
+	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0024:  throw 
+	IL_0025:  ldarg.2 
+	IL_0026:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_002b:  stloc.0 
+	IL_002c:  ldloc.0 
+	IL_002d:  brfalse IL_00bf
 
-    // method line 280
-    .method public virtual hidebysig newslot 
-           instance default class [mscorlib]System.IAsyncResult BeginInvoke (string 'value', class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method ExpansionHandler::BeginInvoke
+	IL_0032:  ldloc.0 
+	IL_0033:  ldstr "ProjectReference"
+	IL_0038:  call bool string::op_Equality(string, string)
+	IL_003d:  brtrue IL_0067
 
-    // method line 281
-    .method public virtual hidebysig newslot 
-           instance default string EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
-    {
-        // Method begins at RVA 0x0
-          // Disassembly of native methods is not supported
-    } // end of method ExpansionHandler::EndInvoke
+	IL_0042:  ldloc.0 
+	IL_0043:  ldstr "AssemblyReference"
+	IL_0048:  call bool string::op_Equality(string, string)
+	IL_004d:  brtrue IL_008d
 
-  } // end of class ExpansionHandler
+	IL_0052:  ldloc.0 
+	IL_0053:  ldstr "ActiveXReference"
+	IL_0058:  call bool string::op_Equality(string, string)
+	IL_005d:  brtrue IL_00a6
 
-  } // end of class NAnt.VSNet.VcConfigurationBase
-}
+	IL_0062:  br IL_00bf
 
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit Resource
-  	extends [mscorlib]System.Object
-  {
-    .field  private initonly  class [mscorlib]System.Globalization.CultureInfo _culture
-    .field  private initonly  class [mscorlib]System.IO.FileInfo _resourceSourceFile
-    .field  private initonly  string _dependentFile
-    .field  private initonly  string _resourceSourceFileRelativePath
-    .field  private initonly  class NAnt.VSNet.ManagedProjectBase _project
-    .field  private initonly  class NAnt.VSNet.Tasks.SolutionTask _solutionTask
+	IL_0067:  ldarg.2 
+	IL_0068:  ldarg.0 
+	IL_0069:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
+	IL_006e:  ldarg.0 
+	IL_006f:  ldarg.1 
+	IL_0070:  ldarg.1 
+	IL_0071:  callvirt instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.SolutionBase::get_TemporaryFiles()
+	IL_0076:  ldarg.0 
+	IL_0077:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
+	IL_007c:  ldarg.0 
+	IL_007d:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_OutputDir()
+	IL_0082:  newobj instance void class NAnt.VSNet.VcProjectReference::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class NAnt.VSNet.SolutionBase, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0087:  stloc.1 
+	IL_0088:  br IL_00df
 
-    // method line 282
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ManagedProjectBase project, class [mscorlib]System.IO.FileInfo resourceSourceFile, string resourceSourceFileRelativePath, string dependentFile, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache)  cil managed 
-    {
-        // Method begins at RVA 0x9768
-	// Code size 64 (0x40)
-	.maxstack 3
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld class NAnt.VSNet.ManagedProjectBase NAnt.VSNet.Resource::_project
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.2 
-	IL_0010:  stfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.Resource::_resourceSourceFile
-	IL_0015:  ldarg.0 
-	IL_0016:  ldarg.3 
-	IL_0017:  stfld string NAnt.VSNet.Resource::_resourceSourceFileRelativePath
-	IL_001c:  ldarg.0 
-	IL_001d:  ldarg.s 4
-	IL_001f:  stfld string NAnt.VSNet.Resource::_dependentFile
-	IL_0024:  ldarg.0 
-	IL_0025:  ldarg.s 5
-	IL_0027:  stfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_002c:  ldarg.0 
-	IL_002d:  ldarg.2 
-	IL_002e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0033:  ldarg.s 4
-	IL_0035:  call class [mscorlib]System.Globalization.CultureInfo class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CompilerBase::GetResourceCulture(string, string)
-	IL_003a:  stfld class [mscorlib]System.Globalization.CultureInfo NAnt.VSNet.Resource::_culture
-	IL_003f:  ret 
-    } // end of method Resource::.ctor
+	IL_008d:  ldarg.2 
+	IL_008e:  ldarg.0 
+	IL_008f:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
+	IL_0094:  ldarg.0 
+	IL_0095:  ldarg.0 
+	IL_0096:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
+	IL_009b:  newobj instance void class NAnt.VSNet.VcAssemblyReference::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
+	IL_00a0:  stloc.1 
+	IL_00a1:  br IL_00df
 
-    // method line 283
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Globalization.CultureInfo get_Culture ()  cil managed 
-    {
-        // Method begins at RVA 0x97b4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Globalization.CultureInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Globalization.CultureInfo NAnt.VSNet.Resource::_culture
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_00a6:  ldarg.2 
+	IL_00a7:  ldarg.0 
+	IL_00a8:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
+	IL_00ad:  ldarg.0 
+	IL_00ae:  ldarg.0 
+	IL_00af:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
+	IL_00b4:  newobj instance void class NAnt.VSNet.VcWrapperReference::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
+	IL_00b9:  stloc.1 
+	IL_00ba:  br IL_00df
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Resource::get_Culture
+	IL_00bf:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00c4:  ldstr "\"{0}\" reference not supported."
+	IL_00c9:  ldarg.2 
+	IL_00ca:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_00cf:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00d4:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_00d9:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_00de:  throw 
+	IL_00df:  ldloc.1 
+	IL_00e0:  ret 
+    } // end of method VcProject::CreateReference
 
-    // method line 284
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_InputFile ()  cil managed 
+    // method line 214
+    .method private hidebysig 
+           instance default void RunNMake (string nmakeCommand)  cil managed 
     {
-        // Method begins at RVA 0x97d0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xb418
+	// Code size 132 (0x84)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		string	V_0,
+		class [NAnt.Core]NAnt.Core.Tasks.ExecTask	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.Resource::_resourceSourceFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  call string class [mscorlib]System.IO.Directory::GetCurrentDirectory()
+	IL_0006:  stloc.0 
+	.try { // 0
+	  IL_0007:  nop 
+	  IL_0008:  ldarg.0 
+	  IL_0009:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	  IL_000e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_0013:  call void class [mscorlib]System.IO.Directory::SetCurrentDirectory(string)
+	  IL_0018:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.ExecTask::'.ctor'()
+	  IL_001d:  stloc.1 
+	  IL_001e:  ldloc.1 
+	  IL_001f:  ldarg.0 
+	  IL_0020:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	  IL_0025:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_002a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	  IL_002f:  ldloc.1 
+	  IL_0030:  ldarg.0 
+	  IL_0031:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	  IL_0036:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	  IL_003b:  ldloc.1 
+	  IL_003c:  ldarg.0 
+	  IL_003d:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	  IL_0042:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	  IL_0047:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
+	  IL_004c:  ldloc.1 
+	  IL_004d:  ldstr "/c \""
+	  IL_0052:  ldarg.1 
+	  IL_0053:  ldstr "\""
+	  IL_0058:  call string string::Concat(string, string, string)
+	  IL_005d:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.ExecTask::set_CommandLineArguments(string)
+	  IL_0062:  ldloc.1 
+	  IL_0063:  ldstr "cmd.exe"
+	  IL_0068:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.ExecTask::set_FileName(string)
+	  IL_006d:  ldarg.0 
+	  IL_006e:  ldloc.1 
+	  IL_006f:  call instance void class NAnt.VSNet.VcProject::ExecuteInProjectDirectory(class [NAnt.Core]NAnt.Core.Task)
+	  IL_0074:  nop 
+	  IL_0075:  leave IL_0083
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Resource::get_InputFile
+	} // end .try 0
+	finally  { // 0
+	  IL_007a:  nop 
+	  IL_007b:  ldloc.0 
+	  IL_007c:  call void class [mscorlib]System.IO.Directory::SetCurrentDirectory(string)
+	  IL_0081:  nop 
+	  IL_0082:  endfinally 
+	} // end handler 0
+	IL_0083:  ret 
+    } // end of method VcProject::RunNMake
 
-    // method line 285
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ManagedProjectBase get_Project ()  cil managed 
+    // method line 215
+    .method private hidebysig 
+           instance default void BuildCPPFiles (class [mscorlib]System.Collections.ArrayList fileNames, class NAnt.VSNet.Configuration solutionConfiguration, class NAnt.VSNet.VcConfigurationBase fileConfig)  cil managed 
     {
-        // Method begins at RVA 0x97ec
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0xb4b8
+	// Code size 3078 (0xc06)
+	.maxstack 5
 	.locals init (
-		class NAnt.VSNet.ManagedProjectBase	V_0)
+		class NAnt.VSNet.VcProjectConfiguration	V_0,
+		string	V_1,
+		class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask	V_2,
+		string	V_3,
+		string	V_4,
+		valuetype NAnt.VSNet.Types.UsePrecompiledHeader	V_5,
+		string	V_6,
+		string	V_7,
+		string[]	V_8,
+		int32	V_9,
+		string	V_10,
+		string	V_11,
+		string[]	V_12,
+		int32	V_13,
+		string	V_14,
+		string	V_15,
+		string[]	V_16,
+		int32	V_17,
+		class NAnt.VSNet.ReferenceBase	V_18,
+		class [mscorlib]System.Collections.IEnumerator	V_19,
+		class [System]System.Collections.Specialized.StringCollection	V_20,
+		string	V_21,
+		class [System]System.Collections.Specialized.StringEnumerator	V_22,
+		class [mscorlib]System.IDisposable	V_23,
+		class [mscorlib]System.IDisposable	V_24,
+		string	V_25,
+		valuetype NAnt.VSNet.ProductVersion	V_26,
+		string	V_27,
+		string	V_28,
+		string	V_29,
+		string	V_30,
+		class [mscorlib]System.Collections.IEnumerator	V_31,
+		class [mscorlib]System.IDisposable	V_32,
+		string	V_33,
+		string	V_34,
+		string[]	V_35,
+		int32	V_36,
+		class [NAnt.Core]NAnt.Core.Types.Option	V_37,
+		string	V_38,
+		string	V_39,
+		string[]	V_40,
+		int32	V_41,
+		class [NAnt.Core]NAnt.Core.Types.Option	V_42,
+		string	V_43,
+		class [mscorlib]System.IO.StringReader	V_44,
+		string	V_45,
+		string	V_46,
+		string[]	V_47,
+		int32	V_48,
+		string	V_49,
+		string	V_50,
+		string	V_51,
+		valuetype NAnt.VSNet.VcArgumentMap/ArgGroup	V_52,
+		string	V_53,
+		int32	V_54,
+		class [mscorlib]System.Collections.Hashtable	V_55,
+		string	V_56,
+		class [mscorlib]System.Collections.IEnumerator	V_57,
+		class [NAnt.Core]NAnt.Core.Types.Argument	V_58,
+		class [mscorlib]System.IDisposable	V_59,
+		valuetype NAnt.VSNet.Types.UseOfATL	V_60)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ManagedProjectBase NAnt.VSNet.Resource::_project
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_0007:  ldarg.2 
+	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_000d:  castclass NAnt.VSNet.VcProjectConfiguration
+	IL_0012:  stloc.0 
+	IL_0013:  ldarg.0 
+	IL_0014:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0019:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001e:  ldloc.0 
+	IL_001f:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::get_IntermediateDir()
+	IL_0024:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0029:  stloc.1 
+	IL_002a:  newobj instance void class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::'.ctor'()
+	IL_002f:  stloc.2 
+	IL_0030:  ldloc.2 
+	IL_0031:  ldarg.0 
+	IL_0032:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0037:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_003c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0041:  ldloc.2 
+	IL_0042:  ldarg.0 
+	IL_0043:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0048:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_004d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0052:  ldloc.2 
+	IL_0053:  ldarg.0 
+	IL_0054:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0059:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_005e:  ldloc.2 
+	IL_005f:  ldarg.0 
+	IL_0060:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0065:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_006a:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
+	IL_006f:  ldloc.2 
+	IL_0070:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	IL_0075:  ldloc.2 
+	IL_0076:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_IncludeDirs()
+	IL_007b:  ldloc.2 
+	IL_007c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0081:  ldloc.2 
+	IL_0082:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_Sources()
+	IL_0087:  ldloc.2 
+	IL_0088:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_008d:  ldloc.2 
+	IL_008e:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_MetaDataIncludeDirs()
+	IL_0093:  ldloc.2 
+	IL_0094:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0099:  ldloc.2 
+	IL_009a:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_ForcedUsingFiles()
+	IL_009f:  ldloc.2 
+	IL_00a0:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_00a5:  ldloc.2 
+	IL_00a6:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_IncludeDirs()
+	IL_00ab:  ldloc.2 
+	IL_00ac:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_00b1:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_00b6:  ldloc.2 
+	IL_00b7:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_Sources()
+	IL_00bc:  ldloc.2 
+	IL_00bd:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_00c2:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_00c7:  ldloc.2 
+	IL_00c8:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_MetaDataIncludeDirs()
+	IL_00cd:  ldloc.2 
+	IL_00ce:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_00d3:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_00d8:  ldloc.2 
+	IL_00d9:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_ForcedUsingFiles()
+	IL_00de:  ldloc.2 
+	IL_00df:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_00e4:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_00e9:  ldloc.2 
+	IL_00ea:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_IncludeDirs()
+	IL_00ef:  ldloc.2 
+	IL_00f0:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_00f5:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_00fa:  ldloc.2 
+	IL_00fb:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_Sources()
+	IL_0100:  ldloc.2 
+	IL_0101:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0106:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_010b:  ldloc.2 
+	IL_010c:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_MetaDataIncludeDirs()
+	IL_0111:  ldloc.2 
+	IL_0112:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0117:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_011c:  ldloc.2 
+	IL_011d:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_ForcedUsingFiles()
+	IL_0122:  ldloc.2 
+	IL_0123:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0128:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_012d:  ldloc.2 
+	IL_012e:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_IncludeDirs()
+	IL_0133:  ldarg.0 
+	IL_0134:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0139:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_013e:  ldloc.2 
+	IL_013f:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_Sources()
+	IL_0144:  ldarg.0 
+	IL_0145:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_014a:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_014f:  ldloc.2 
+	IL_0150:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_MetaDataIncludeDirs()
+	IL_0155:  ldarg.0 
+	IL_0156:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_015b:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_0160:  ldloc.2 
+	IL_0161:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_ForcedUsingFiles()
+	IL_0166:  ldarg.0 
+	IL_0167:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_016c:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_0171:  ldloc.2 
+	IL_0172:  ldloc.1 
+	IL_0173:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0178:  callvirt instance void class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::set_OutputDir(class [mscorlib]System.IO.DirectoryInfo)
+	IL_017d:  ldarg.3 
+	IL_017e:  callvirt instance valuetype NAnt.VSNet.Types.UsePrecompiledHeader class NAnt.VSNet.VcConfigurationBase::get_UsePrecompiledHeader()
+	IL_0183:  brfalse IL_0246
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Resource::get_Project
-
-    // method line 286
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_LogicalFile ()  cil managed 
-    {
-        // Method begins at RVA 0x9808
-	// Code size 41 (0x29)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_0007:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_000c:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_0011:  ldarg.0 
-	IL_0012:  ldfld string NAnt.VSNet.Resource::_resourceSourceFileRelativePath
-	IL_0017:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_001c:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0021:  stloc.0 
-	IL_0022:  br IL_0027
-
-	IL_0027:  ldloc.0 
-	IL_0028:  ret 
-    } // end of method Resource::get_LogicalFile
-
-    // method line 287
-    .method public hidebysig specialname 
-           instance default bool get_IsResX ()  cil managed 
-    {
-        // Method begins at RVA 0x9840
-	// Code size 40 (0x28)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
-	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Extension()
-	IL_000c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0011:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_0016:  ldstr ".resx"
-	IL_001b:  call bool string::op_Equality(string, string)
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
-
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method Resource::get_IsResX
-
-    // method line 288
-    .method public hidebysig 
-           instance default class [mscorlib]System.IO.FileInfo Compile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x9874
-	// Code size 116 (0x74)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0,
-		string	V_1,
-		class [mscorlib]System.IO.FileInfo	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
-	IL_0009:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Extension()
-	IL_000e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0013:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_0018:  stloc.1 
-	IL_0019:  ldloc.1 
-	IL_001a:  brfalse IL_005e
-
-	IL_001f:  ldloc.1 
-	IL_0020:  ldstr ".resx"
-	IL_0025:  call bool string::op_Equality(string, string)
-	IL_002a:  brtrue IL_0044
-
-	IL_002f:  ldloc.1 
-	IL_0030:  ldstr ".licx"
-	IL_0035:  call bool string::op_Equality(string, string)
-	IL_003a:  brtrue IL_0051
-
-	IL_003f:  br IL_005e
-
-	IL_0044:  ldarg.0 
-	IL_0045:  ldarg.1 
-	IL_0046:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::CompileResx(class NAnt.VSNet.Configuration)
-	IL_004b:  stloc.0 
-	IL_004c:  br IL_006b
-
-	IL_0051:  ldarg.0 
-	IL_0052:  ldarg.1 
-	IL_0053:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::CompileLicx(class NAnt.VSNet.Configuration)
-	IL_0058:  stloc.0 
-	IL_0059:  br IL_006b
-
-	IL_005e:  ldarg.0 
-	IL_005f:  ldarg.1 
-	IL_0060:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::CompileResource(class NAnt.VSNet.Configuration)
-	IL_0065:  stloc.0 
-	IL_0066:  br IL_006b
-
-	IL_006b:  ldloc.0 
-	IL_006c:  stloc.2 
-	IL_006d:  br IL_0072
-
-	IL_0072:  ldloc.2 
-	IL_0073:  ret 
-    } // end of method Resource::Compile
-
-    // method line 289
-    .method public hidebysig 
-           instance default class [mscorlib]System.IO.FileInfo GetCompiledResourceFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x98f4
-	// Code size 199 (0xc7)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		class NAnt.VSNet.ConfigurationSettings	V_1,
-		string	V_2,
-		class [mscorlib]System.IO.FileInfo	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_0009:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_000e:  ldarg.1 
-	IL_000f:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_0014:  castclass NAnt.VSNet.ConfigurationSettings
-	IL_0019:  stloc.1 
-	IL_001a:  ldarg.0 
-	IL_001b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
-	IL_0020:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Extension()
-	IL_0025:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_002a:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_002f:  stloc.2 
-	IL_0030:  ldloc.2 
-	IL_0031:  brfalse IL_00a8
-
-	IL_0036:  ldloc.2 
-	IL_0037:  ldstr ".resx"
-	IL_003c:  call bool string::op_Equality(string, string)
-	IL_0041:  brtrue IL_005b
-
-	IL_0046:  ldloc.2 
-	IL_0047:  ldstr ".licx"
-	IL_004c:  call bool string::op_Equality(string, string)
-	IL_0051:  brtrue IL_0078
-
-	IL_0056:  br IL_00a8
-
-	IL_005b:  ldloc.1 
-	IL_005c:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
-	IL_0061:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0066:  ldarg.0 
-	IL_0067:  ldarg.1 
-	IL_0068:  call instance string class NAnt.VSNet.Resource::GetManifestResourceName(class NAnt.VSNet.Configuration)
-	IL_006d:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0072:  stloc.0 
-	IL_0073:  br IL_00b9
-
-	IL_0078:  ldloc.1 
-	IL_0079:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
-	IL_007e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0083:  ldarg.0 
-	IL_0084:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_0089:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_008e:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_OutputFileName()
-	IL_0093:  ldstr ".licenses"
-	IL_0098:  call string string::Concat(string, string)
-	IL_009d:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_00a2:  stloc.0 
-	IL_00a3:  br IL_00b9
-
-	IL_00a8:  ldarg.0 
-	IL_00a9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
-	IL_00ae:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00b3:  stloc.0 
-	IL_00b4:  br IL_00b9
-
-	IL_00b9:  ldloc.0 
-	IL_00ba:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_00bf:  stloc.3 
-	IL_00c0:  br IL_00c5
-
-	IL_00c5:  ldloc.3 
-	IL_00c6:  ret 
-    } // end of method Resource::GetCompiledResourceFile
-
-    // method line 290
-    .method public hidebysig 
-           instance default string GetManifestResourceName (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x99c8
-	// Code size 159 (0x9f)
-	.maxstack 3
-	.locals init (
-		class NAnt.VSNet.ConfigurationSettings	V_0,
-		valuetype NAnt.VSNet.ProjectType	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_0007:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_0012:  castclass NAnt.VSNet.ConfigurationSettings
-	IL_0017:  stloc.0 
-	IL_0018:  ldarg.0 
-	IL_0019:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_001e:  callvirt instance valuetype NAnt.VSNet.ProjectType class NAnt.VSNet.ProjectBase::get_Type()
-	IL_0023:  stloc.1 
-	IL_0024:  ldloc.1 
-	IL_0025:  switch (
-	  IL_0052,
-	  IL_003f,
-	  IL_0078,
-	  IL_0065)
-	IL_003a:  br IL_0078
-
-	IL_003f:  ldarg.0 
-	IL_0040:  ldloc.0 
-	IL_0041:  ldarg.0 
-	IL_0042:  ldfld string NAnt.VSNet.Resource::_dependentFile
-	IL_0047:  call instance string class NAnt.VSNet.Resource::GetManifestResourceNameCSharp(class NAnt.VSNet.ConfigurationSettings, string)
-	IL_004c:  stloc.2 
-	IL_004d:  br IL_009d
-
-	IL_0052:  ldarg.0 
-	IL_0053:  ldloc.0 
-	IL_0054:  ldarg.0 
-	IL_0055:  ldfld string NAnt.VSNet.Resource::_dependentFile
-	IL_005a:  call instance string class NAnt.VSNet.Resource::GetManifestResourceNameVB(class NAnt.VSNet.ConfigurationSettings, string)
-	IL_005f:  stloc.2 
-	IL_0060:  br IL_009d
-
-	IL_0065:  ldarg.0 
-	IL_0066:  ldloc.0 
-	IL_0067:  ldarg.0 
-	IL_0068:  ldfld string NAnt.VSNet.Resource::_dependentFile
-	IL_006d:  call instance string class NAnt.VSNet.Resource::GetManifestResourceNameJSharp(class NAnt.VSNet.ConfigurationSettings, string)
-	IL_0072:  stloc.2 
-	IL_0073:  br IL_009d
-
-	IL_0078:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_007d:  ldstr "Unsupported project type '{0}'."
-	IL_0082:  ldarg.0 
-	IL_0083:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_0088:  callvirt instance valuetype NAnt.VSNet.ProjectType class NAnt.VSNet.ProjectBase::get_Type()
-	IL_008d:  box NAnt.VSNet.ProjectType
-	IL_0092:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0097:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
-	IL_009c:  throw 
-	IL_009d:  ldloc.2 
-	IL_009e:  ret 
-    } // end of method Resource::GetManifestResourceName
-
-    // method line 291
-    .method private hidebysig 
-           instance default string GetManifestResourceNameCSharp (class NAnt.VSNet.ConfigurationSettings configSetting, string dependentFile)  cil managed 
-    {
-        // Method begins at RVA 0x9a74
-	// Code size 225 (0xe1)
-	.maxstack 5
-	.locals init (
-		class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CscTask	V_0,
-		class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CscTask::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0013:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_001f:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0024:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0029:  ldloc.0 
-	IL_002a:  ldarg.1 
-	IL_002b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	IL_0030:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0035:  ldarg.0 
-	IL_0036:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_003b:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_0040:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_OutputFileName()
-	IL_0045:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_004a:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_004f:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CompilerBase::set_OutputFile(class [mscorlib]System.IO.FileInfo)
-	IL_0054:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::'.ctor'()
-	IL_0059:  stloc.1 
-	IL_005a:  ldloc.1 
-	IL_005b:  ldarg.0 
-	IL_005c:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_0061:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0066:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_006b:  ldloc.1 
-	IL_006c:  ldarg.0 
-	IL_006d:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_0072:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0077:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_007c:  ldloc.1 
-	IL_007d:  ldloc.0 
-	IL_007e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0083:  ldloc.1 
-	IL_0084:  ldarg.0 
-	IL_0085:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_008a:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_008f:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_0094:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0099:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_009e:  ldloc.1 
-	IL_009f:  ldarg.0 
-	IL_00a0:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_00a5:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_00aa:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_RootNamespace()
-	IL_00af:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::set_Prefix(string)
-	IL_00b4:  ldloc.1 
-	IL_00b5:  ldc.i4.1 
-	IL_00b6:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::set_DynamicPrefix(bool)
-	IL_00bb:  ldloc.0 
-	IL_00bc:  ldloc.1 
-	IL_00bd:  ldarg.0 
-	IL_00be:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
-	IL_00c3:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00c8:  ldarg.0 
-	IL_00c9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_LogicalFile()
-	IL_00ce:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00d3:  ldarg.2 
-	IL_00d4:  callvirt instance string class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CompilerBase::GetManifestResourceName(class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet, string, string, string)
-	IL_00d9:  stloc.2 
-	IL_00da:  br IL_00df
-
-	IL_00df:  ldloc.2 
-	IL_00e0:  ret 
-    } // end of method Resource::GetManifestResourceNameCSharp
-
-    // method line 292
-    .method private hidebysig 
-           instance default string GetManifestResourceNameVB (class NAnt.VSNet.ConfigurationSettings configSetting, string dependentFile)  cil managed 
-    {
-        // Method begins at RVA 0x9b64
-	// Code size 247 (0xf7)
-	.maxstack 5
-	.locals init (
-		class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.VbcTask	V_0,
-		class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.VbcTask::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0013:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_001f:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0024:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0029:  ldloc.0 
-	IL_002a:  ldarg.1 
-	IL_002b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	IL_0030:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0035:  ldarg.0 
-	IL_0036:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_003b:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_0040:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_OutputFileName()
-	IL_0045:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_004a:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_004f:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CompilerBase::set_OutputFile(class [mscorlib]System.IO.FileInfo)
-	IL_0054:  ldloc.0 
-	IL_0055:  ldarg.0 
-	IL_0056:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_005b:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_0060:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_RootNamespace()
-	IL_0065:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.VbcTask::set_RootNamespace(string)
-	IL_006a:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::'.ctor'()
-	IL_006f:  stloc.1 
-	IL_0070:  ldloc.1 
-	IL_0071:  ldarg.0 
-	IL_0072:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_0077:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_007c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0081:  ldloc.1 
-	IL_0082:  ldarg.0 
-	IL_0083:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_0088:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_008d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0092:  ldloc.1 
-	IL_0093:  ldloc.0 
-	IL_0094:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0099:  ldloc.1 
-	IL_009a:  ldarg.0 
-	IL_009b:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_00a0:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_00a5:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_00aa:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_00af:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_00b4:  ldloc.1 
-	IL_00b5:  ldarg.0 
-	IL_00b6:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_00bb:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_00c0:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_RootNamespace()
-	IL_00c5:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::set_Prefix(string)
-	IL_00ca:  ldloc.1 
-	IL_00cb:  ldc.i4.0 
-	IL_00cc:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::set_DynamicPrefix(bool)
-	IL_00d1:  ldloc.0 
-	IL_00d2:  ldloc.1 
-	IL_00d3:  ldarg.0 
-	IL_00d4:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
-	IL_00d9:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00de:  ldarg.0 
-	IL_00df:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_LogicalFile()
-	IL_00e4:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00e9:  ldarg.2 
-	IL_00ea:  callvirt instance string class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CompilerBase::GetManifestResourceName(class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet, string, string, string)
-	IL_00ef:  stloc.2 
-	IL_00f0:  br IL_00f5
-
-	IL_00f5:  ldloc.2 
-	IL_00f6:  ret 
-    } // end of method Resource::GetManifestResourceNameVB
-
-    // method line 293
-    .method private hidebysig 
-           instance default string GetManifestResourceNameJSharp (class NAnt.VSNet.ConfigurationSettings configSetting, string dependentFile)  cil managed 
-    {
-        // Method begins at RVA 0x9c68
-	// Code size 225 (0xe1)
-	.maxstack 5
-	.locals init (
-		class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.VjcTask	V_0,
-		class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.VjcTask::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0013:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_001f:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0024:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0029:  ldloc.0 
-	IL_002a:  ldarg.1 
-	IL_002b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	IL_0030:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0035:  ldarg.0 
-	IL_0036:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_003b:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_0040:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_OutputFileName()
-	IL_0045:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_004a:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_004f:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CompilerBase::set_OutputFile(class [mscorlib]System.IO.FileInfo)
-	IL_0054:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::'.ctor'()
-	IL_0059:  stloc.1 
-	IL_005a:  ldloc.1 
-	IL_005b:  ldarg.0 
-	IL_005c:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_0061:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0066:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_006b:  ldloc.1 
-	IL_006c:  ldarg.0 
-	IL_006d:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_0072:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0077:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_007c:  ldloc.1 
-	IL_007d:  ldloc.0 
-	IL_007e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0083:  ldloc.1 
-	IL_0084:  ldarg.0 
-	IL_0085:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_008a:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_008f:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_0094:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0099:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_009e:  ldloc.1 
-	IL_009f:  ldarg.0 
-	IL_00a0:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_00a5:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_00aa:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_RootNamespace()
-	IL_00af:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::set_Prefix(string)
-	IL_00b4:  ldloc.1 
-	IL_00b5:  ldc.i4.1 
-	IL_00b6:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::set_DynamicPrefix(bool)
-	IL_00bb:  ldloc.0 
-	IL_00bc:  ldloc.1 
-	IL_00bd:  ldarg.0 
-	IL_00be:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
-	IL_00c3:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00c8:  ldarg.0 
-	IL_00c9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_LogicalFile()
-	IL_00ce:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00d3:  ldarg.2 
-	IL_00d4:  callvirt instance string class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CompilerBase::GetManifestResourceName(class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet, string, string, string)
-	IL_00d9:  stloc.2 
-	IL_00da:  br IL_00df
-
-	IL_00df:  ldloc.2 
-	IL_00e0:  ret 
-    } // end of method Resource::GetManifestResourceNameJSharp
-
-    // method line 294
-    .method private hidebysig 
-           instance default class [mscorlib]System.IO.FileInfo CompileResource (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x9d58
-	// Code size 16 (0x10)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::GetCompiledResourceFile(class NAnt.VSNet.Configuration)
-	IL_0008:  stloc.0 
-	IL_0009:  br IL_000e
-
-	IL_000e:  ldloc.0 
-	IL_000f:  ret 
-    } // end of method Resource::CompileResource
-
-    // method line 295
-    .method private hidebysig 
-           instance default class [mscorlib]System.IO.FileInfo CompileLicx (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x9d74
-	// Code size 437 (0x1b5)
-	.maxstack 3
-	.locals init (
-		class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask	V_0,
-		class NAnt.VSNet.ReferenceBase	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class [System]System.Collections.Specialized.StringCollection	V_3,
-		string	V_4,
-		class [System]System.Collections.Specialized.StringEnumerator	V_5,
-		class [mscorlib]System.IDisposable	V_6,
-		class [mscorlib]System.IDisposable	V_7,
-		class [mscorlib]System.IO.FileInfo	V_8)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0013:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_001f:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0024:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0029:  ldloc.0 
-	IL_002a:  ldarg.0 
-	IL_002b:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0035:  ldloc.0 
-	IL_0036:  ldarg.0 
-	IL_0037:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
-	IL_003c:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_0041:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
-	IL_0046:  ldloc.0 
-	IL_0047:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	IL_004c:  ldloc.0 
-	IL_004d:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
-	IL_0052:  ldloc.0 
-	IL_0053:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0058:  ldloc.0 
-	IL_0059:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
-	IL_005e:  ldloc.0 
-	IL_005f:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0064:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0069:  ldloc.0 
-	IL_006a:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
-	IL_006f:  ldloc.0 
-	IL_0070:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0075:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_007a:  ldloc.0 
-	IL_007b:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
-	IL_0080:  ldarg.0 
-	IL_0081:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_0086:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_008b:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_0090:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0095:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_009a:  ldloc.0 
-	IL_009b:  ldarg.0 
-	IL_009c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
-	IL_00a1:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::set_InputFile(class [mscorlib]System.IO.FileInfo)
-	IL_00a6:  ldloc.0 
-	IL_00a7:  ldarg.0 
-	IL_00a8:  ldarg.1 
-	IL_00a9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::GetCompiledResourceFile(class NAnt.VSNet.Configuration)
-	IL_00ae:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::set_OutputFile(class [mscorlib]System.IO.FileInfo)
-	IL_00b3:  ldloc.0 
-	IL_00b4:  ldarg.0 
-	IL_00b5:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_00ba:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_00bf:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_OutputFileName()
-	IL_00c4:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_00c9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00ce:  callvirt instance string string::ToUpper(class [mscorlib]System.Globalization.CultureInfo)
-	IL_00d3:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::set_Target(string)
-	IL_00d8:  nop 
-	IL_00d9:  ldarg.0 
-	IL_00da:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
-	IL_00df:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
-	IL_00e4:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_00e9:  stloc.2 
-	.try { // 1
-	  IL_00ea:  br IL_0159
-
-	  IL_00ef:  ldloc.2 
-	  IL_00f0:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_00f5:  castclass NAnt.VSNet.ReferenceBase
-	  IL_00fa:  stloc.1 
-	  IL_00fb:  nop 
-	  IL_00fc:  ldloc.1 
-	  IL_00fd:  ldarg.1 
-	  IL_00fe:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.ReferenceBase::GetAssemblyReferences(class NAnt.VSNet.Configuration)
-	  IL_0103:  stloc.3 
-	  IL_0104:  nop 
-	  IL_0105:  ldloc.3 
-	  IL_0106:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_010b:  stloc.s 5
-	  .try { // 0
-	    IL_010d:  br IL_0130
-
-	    IL_0112:  ldloc.s 5
-	    IL_0114:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_0119:  stloc.s 4
-	    IL_011b:  nop 
-	    IL_011c:  ldloc.0 
-	    IL_011d:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
-	    IL_0122:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	    IL_0127:  ldloc.s 4
-	    IL_0129:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_012e:  pop 
-	    IL_012f:  nop 
-	    IL_0130:  ldloc.s 5
-	    IL_0132:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_0137:  brtrue IL_0112
-
-	    IL_013c:  leave IL_0158
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_0141:  ldloc.s 5
-	    IL_0143:  isinst [mscorlib]System.IDisposable
-	    IL_0148:  dup 
-	    IL_0149:  stloc.s 6
-	    IL_014b:  brfalse IL_0157
-
-	    IL_0150:  ldloc.s 6
-	    IL_0152:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0157:  endfinally 
-	  } // end handler 0
-	  IL_0158:  nop 
-	  IL_0159:  ldloc.2 
-	  IL_015a:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_015f:  brtrue IL_00ef
-
-	  IL_0164:  leave IL_017f
-
-	} // end .try 1
-	finally  { // 1
-	  IL_0169:  ldloc.2 
-	  IL_016a:  isinst [mscorlib]System.IDisposable
-	  IL_016f:  dup 
-	  IL_0170:  stloc.s 7
-	  IL_0172:  brfalse IL_017e
-
-	  IL_0177:  ldloc.s 7
-	  IL_0179:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_017e:  endfinally 
-	} // end handler 1
-	IL_017f:  ldloc.0 
-	IL_0180:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0185:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	.try { // 2
-	  IL_018a:  nop 
-	  IL_018b:  ldloc.0 
-	  IL_018c:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_0191:  nop 
-	  IL_0192:  leave IL_01a5
-
-	} // end .try 2
-	finally  { // 2
-	  IL_0197:  nop 
-	  IL_0198:  ldloc.0 
-	  IL_0199:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_019e:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	  IL_01a3:  nop 
-	  IL_01a4:  endfinally 
-	} // end handler 2
-	IL_01a5:  ldloc.0 
-	IL_01a6:  callvirt instance class [mscorlib]System.IO.FileInfo class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::get_OutputFile()
-	IL_01ab:  stloc.s 8
-	IL_01ad:  br IL_01b2
-
-	IL_01b2:  ldloc.s 8
-	IL_01b4:  ret 
-    } // end of method Resource::CompileLicx
-
-    // method line 296
-    .method private hidebysig 
-           instance default class [mscorlib]System.IO.FileInfo CompileResx (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x9f60
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'()
-	IL_0006:  throw 
-    } // end of method Resource::CompileResx
-
-	.property instance class [mscorlib]System.Globalization.CultureInfo Culture ()
-	{
-		.get instance default class [mscorlib]System.Globalization.CultureInfo NAnt.VSNet.Resource::get_Culture () 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo InputFile ()
-	{
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VSNet.Resource::get_InputFile () 
-	}
-	.property instance class NAnt.VSNet.ManagedProjectBase Project ()
-	{
-		.get instance default class NAnt.VSNet.ManagedProjectBase NAnt.VSNet.Resource::get_Project () 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo LogicalFile ()
-	{
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VSNet.Resource::get_LogicalFile () 
-	}
-	.property instance bool IsResX ()
-	{
-		.get instance default bool NAnt.VSNet.Resource::get_IsResX () 
-	}
-  } // end of class NAnt.VSNet.Resource
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi abstract beforefieldinit ProjectBase
-  	extends [mscorlib]System.Object
-  {
-    .field  private initonly  valuetype NAnt.VSNet.ProductVersion _productVersion
-    .field  private initonly  class NAnt.VSNet.Tasks.SolutionTask _solutionTask
-    .field  private initonly  class [System]System.CodeDom.Compiler.TempFileCollection _temporaryFiles
-    .field  private initonly  class [mscorlib]System.IO.DirectoryInfo _outputDir
-    .field  private initonly  class NAnt.VSNet.ConfigurationDictionary _projectConfigurations
-    .field  private initonly  class NAnt.VSNet.ConfigurationDictionary _buildConfigurations
-    .field  private initonly  class [NAnt.Core]NAnt.Core.Util.GacCache _gacCache
-    .field  private initonly  class NAnt.VSNet.ReferencesResolver _refResolver
-    .field  private initonly  class [mscorlib]System.Collections.Hashtable _extraOutputFiles
-    .field  private initonly  class NAnt.VSNet.ProjectBaseCollection _projectDependencies
-
-    // method line 297
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection temporaryFiles, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver referencesResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
-    {
-        // Method begins at RVA 0x9f68
-	// Code size 202 (0xca)
-	.maxstack 3
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class NAnt.VSNet.ProjectBaseCollection::'.ctor'()
-	IL_0006:  stfld class NAnt.VSNet.ProjectBaseCollection NAnt.VSNet.ProjectBase::_projectDependencies
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void object::'.ctor'()
-	IL_0011:  nop 
-	IL_0012:  ldarg.1 
-	IL_0013:  brtrue IL_0024
-
-	IL_0018:  nop 
-	IL_0019:  ldstr "xmlDefinition"
-	IL_001e:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0023:  throw 
-	IL_0024:  ldarg.2 
-	IL_0025:  brtrue IL_0036
-
-	IL_002a:  nop 
-	IL_002b:  ldstr "solutionTask"
-	IL_0030:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0035:  throw 
-	IL_0036:  ldarg.3 
-	IL_0037:  brtrue IL_0048
-
-	IL_003c:  nop 
-	IL_003d:  ldstr "temporaryFiles"
-	IL_0042:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0047:  throw 
-	IL_0048:  ldarg.s 4
-	IL_004a:  brtrue IL_005b
-
-	IL_004f:  nop 
-	IL_0050:  ldstr "gacCache"
-	IL_0055:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_005a:  throw 
-	IL_005b:  ldarg.s 5
-	IL_005d:  brtrue IL_006e
-
-	IL_0062:  nop 
-	IL_0063:  ldstr "referencesResolver"
-	IL_0068:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_006d:  throw 
-	IL_006e:  ldarg.0 
-	IL_006f:  newobj instance void class NAnt.VSNet.ConfigurationDictionary::'.ctor'()
-	IL_0074:  stfld class NAnt.VSNet.ConfigurationDictionary NAnt.VSNet.ProjectBase::_projectConfigurations
-	IL_0079:  ldarg.0 
-	IL_007a:  newobj instance void class NAnt.VSNet.ConfigurationDictionary::'.ctor'()
-	IL_007f:  stfld class NAnt.VSNet.ConfigurationDictionary NAnt.VSNet.ProjectBase::_buildConfigurations
-	IL_0084:  ldarg.0 
-	IL_0085:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_008a:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectBase::_extraOutputFiles
-	IL_008f:  ldarg.0 
-	IL_0090:  ldarg.1 
-	IL_0091:  callvirt instance void class NAnt.VSNet.ProjectBase::VerifyProjectXml(class [System.Xml]System.Xml.XmlElement)
-	IL_0096:  ldarg.0 
-	IL_0097:  ldarg.2 
-	IL_0098:  stfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.ProjectBase::_solutionTask
-	IL_009d:  ldarg.0 
-	IL_009e:  ldarg.3 
-	IL_009f:  stfld class [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.ProjectBase::_temporaryFiles
-	IL_00a4:  ldarg.0 
-	IL_00a5:  ldarg.s 6
-	IL_00a7:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ProjectBase::_outputDir
-	IL_00ac:  ldarg.0 
-	IL_00ad:  ldarg.s 4
-	IL_00af:  stfld class [NAnt.Core]NAnt.Core.Util.GacCache NAnt.VSNet.ProjectBase::_gacCache
-	IL_00b4:  ldarg.0 
-	IL_00b5:  ldarg.s 5
-	IL_00b7:  stfld class NAnt.VSNet.ReferencesResolver NAnt.VSNet.ProjectBase::_refResolver
-	IL_00bc:  ldarg.0 
-	IL_00bd:  ldarg.0 
-	IL_00be:  ldarg.1 
-	IL_00bf:  callvirt instance valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ProjectBase::DetermineProductVersion(class [System.Xml]System.Xml.XmlElement)
-	IL_00c4:  stfld valuetype NAnt.VSNet.ProductVersion NAnt.VSNet.ProjectBase::_productVersion
-	IL_00c9:  ret 
-    } // end of method ProjectBase::.ctor
-
-    // method line 298
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.VSNet.ProductVersion get_ProductVersion ()  cil managed 
-    {
-        // Method begins at RVA 0xa040
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.VSNet.ProductVersion	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.VSNet.ProductVersion NAnt.VSNet.ProjectBase::_productVersion
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectBase::get_ProductVersion
-
-    // method line 299
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectBase::get_Name
-
-    // method line 300
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectBase::get_Type
-
-    // method line 301
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_ProjectPath ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectBase::get_ProjectPath
-
-    // method line 302
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ProjectDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectBase::get_ProjectDirectory
-
-    // method line 303
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default valuetype NAnt.VSNet.ProjectLocation get_ProjectLocation ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectBase::get_ProjectLocation
-
-    // method line 304
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
-    {
-        // Method begins at RVA 0xa05c
-	// Code size 154 (0x9a)
-	.maxstack 2
-	.locals init (
-		valuetype NAnt.VSNet.ProjectLocation	V_0,
-		string	V_1,
-		string	V_2,
-		string	V_3,
-		class [mscorlib]System.IO.DirectoryInfo	V_4,
-		valuetype NAnt.VSNet.ProjectLocation	V_5)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance valuetype NAnt.VSNet.ProjectLocation class NAnt.VSNet.ProjectBase::get_ProjectLocation()
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  ldc.i4.2 
-	IL_000a:  beq IL_001b
-
-	IL_000f:  ldloc.0 
-	IL_0010:  ldc.i4.1 
-	IL_0011:  beq IL_005b
-
-	IL_0016:  br IL_007c
-
-	IL_001b:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetHomeDirectory()
-	IL_0020:  ldstr "VSWebCache"
-	IL_0025:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_002a:  stloc.1 
-	IL_002b:  ldloc.1 
-	IL_002c:  call string class [mscorlib]System.Environment::get_MachineName()
-	IL_0031:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0036:  stloc.2 
-	IL_0037:  ldloc.2 
-	IL_0038:  ldarg.0 
-	IL_0039:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_003e:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0043:  stloc.3 
-	IL_0044:  ldloc.3 
-	IL_0045:  ldstr "obj"
-	IL_004a:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_004f:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0054:  stloc.s 4
-	IL_0056:  br IL_0097
-
-	IL_005b:  ldarg.0 
-	IL_005c:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0061:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0066:  ldstr "obj"
-	IL_006b:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0070:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0075:  stloc.s 4
-	IL_0077:  br IL_0097
-
-	IL_007c:  ldarg.0 
-	IL_007d:  callvirt instance valuetype NAnt.VSNet.ProjectLocation class NAnt.VSNet.ProjectBase::get_ProjectLocation()
-	IL_0082:  stloc.s 5
-	IL_0084:  ldloca.s 5
-	IL_0086:  constrained. NAnt.VSNet.ProjectLocation
-	IL_008c:  callvirt instance string object::ToString()
-	IL_0091:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
-	IL_0096:  throw 
-	IL_0097:  ldloc.s 4
-	IL_0099:  ret 
-    } // end of method ProjectBase::get_ObjectDir
-
-    // method line 305
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_Guid ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectBase::get_Guid
-
-    // method line 306
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default void set_Guid (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectBase::set_Guid
-
-    // method line 307
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ConfigurationDictionary get_ProjectConfigurations ()  cil managed 
-    {
-        // Method begins at RVA 0xa104
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.ConfigurationDictionary	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ConfigurationDictionary NAnt.VSNet.ProjectBase::_projectConfigurations
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectBase::get_ProjectConfigurations
-
-    // method line 308
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ConfigurationDictionary get_BuildConfigurations ()  cil managed 
-    {
-        // Method begins at RVA 0xa120
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.ConfigurationDictionary	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ConfigurationDictionary NAnt.VSNet.ProjectBase::_buildConfigurations
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectBase::get_BuildConfigurations
-
-    // method line 309
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_References ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectBase::get_References
-
-    // method line 310
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.Tasks.SolutionTask get_SolutionTask ()  cil managed 
-    {
-        // Method begins at RVA 0xa13c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.Tasks.SolutionTask	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.ProjectBase::_solutionTask
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectBase::get_SolutionTask
-
-    // method line 311
-    .method public hidebysig specialname 
-           instance default class [System]System.CodeDom.Compiler.TempFileCollection get_TemporaryFiles ()  cil managed 
-    {
-        // Method begins at RVA 0xa158
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [System]System.CodeDom.Compiler.TempFileCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.ProjectBase::_temporaryFiles
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectBase::get_TemporaryFiles
-
-    // method line 312
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_ExtraOutputFiles ()  cil managed 
-    {
-        // Method begins at RVA 0xa174
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectBase::_extraOutputFiles
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectBase::get_ExtraOutputFiles
-
-    // method line 313
-    .method family hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
-    {
-        // Method begins at RVA 0xa190
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ProjectBase::_outputDir
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectBase::get_OutputDir
-
-    // method line 314
-    .method family hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Util.GacCache get_GacCache ()  cil managed 
-    {
-        // Method begins at RVA 0xa1ac
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [NAnt.Core]NAnt.Core.Util.GacCache	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Util.GacCache NAnt.VSNet.ProjectBase::_gacCache
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectBase::get_GacCache
-
-    // method line 315
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ReferencesResolver get_ReferencesResolver ()  cil managed 
-    {
-        // Method begins at RVA 0xa1c8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.ReferencesResolver	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ReferencesResolver NAnt.VSNet.ProjectBase::_refResolver
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectBase::get_ReferencesResolver
-
-    // method line 316
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectBaseCollection get_ProjectDependencies ()  cil managed 
-    {
-        // Method begins at RVA 0xa1e4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.ProjectBaseCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ProjectBaseCollection NAnt.VSNet.ProjectBase::_projectDependencies
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectBase::get_ProjectDependencies
-
-    // method line 317
-    .method family virtual hidebysig newslot specialname 
-           instance default string get_DevEnvDir ()  cil managed 
-    {
-        // Method begins at RVA 0xa200
-	// Code size 139 (0x8b)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		class [mscorlib]Microsoft.Win32.RegistryKey	V_1,
-		string	V_2,
-		string	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldstr "SOFTWARE\\Microsoft\\VisualStudio\\"
-	IL_0006:  ldarg.0 
-	IL_0007:  call instance class [mscorlib]System.Version class NAnt.VSNet.ProjectBase::get_ProductVersionNumber()
-	IL_000c:  ldstr "\\Setup\\VS"
-	IL_0011:  call string string::Concat(object, object, object)
-	IL_0016:  stloc.0 
-	IL_0017:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::LocalMachine
-	IL_001c:  ldloc.0 
-	IL_001d:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string)
-	IL_0022:  stloc.1 
-	IL_0023:  ldloc.1 
-	IL_0024:  brtrue IL_0045
-
-	IL_0029:  nop 
-	IL_002a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_002f:  ldstr "Registry key \"{0}\" could not be found."
-	IL_0034:  ldloc.0 
-	IL_0035:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_003a:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_003f:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0044:  throw 
-	IL_0045:  ldloc.1 
-	IL_0046:  ldstr "VS7CommonDir"
-	IL_004b:  callvirt instance object class [mscorlib]Microsoft.Win32.RegistryKey::GetValue(string)
-	IL_0050:  isinst [mscorlib]System.String
-	IL_0055:  stloc.2 
-	IL_0056:  ldloc.2 
-	IL_0057:  brtrue IL_0078
-
-	IL_005c:  nop 
-	IL_005d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0062:  ldstr "Value \"VS7CommonDir\" does not exist in registry key \"{0}\"."
-	IL_0067:  ldloc.0 
-	IL_0068:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_006d:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0072:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0077:  throw 
-	IL_0078:  ldloc.2 
-	IL_0079:  ldstr "IDE\\"
-	IL_007e:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0083:  stloc.3 
-	IL_0084:  br IL_0089
-
-	IL_0089:  ldloc.3 
-	IL_008a:  ret 
-    } // end of method ProjectBase::get_DevEnvDir
-
-    // method line 318
-    .method private hidebysig specialname 
-           instance default class [mscorlib]System.Version get_ProductVersionNumber ()  cil managed 
-    {
-        // Method begins at RVA 0xa298
-	// Code size 89 (0x59)
-	.maxstack 3
-	.locals init (
-		valuetype NAnt.VSNet.ProductVersion	V_0,
-		class [mscorlib]System.Version	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ProjectBase::get_ProductVersion()
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  ldc.i4.s 0x46
-	IL_000b:  beq IL_001d
-
-	IL_0010:  ldloc.0 
-	IL_0011:  ldc.i4.s 0x47
-	IL_0013:  beq IL_002a
-
-	IL_0018:  br IL_0037
-
-	IL_001d:  ldc.i4.7 
-	IL_001e:  ldc.i4.0 
-	IL_001f:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32)
-	IL_0024:  stloc.1 
-	IL_0025:  br IL_0057
-
-	IL_002a:  ldc.i4.7 
-	IL_002b:  ldc.i4.1 
-	IL_002c:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32)
-	IL_0031:  stloc.1 
-	IL_0032:  br IL_0057
-
-	IL_0037:  ldstr "Invalid product version \""
-	IL_003c:  ldarg.0 
-	IL_003d:  call instance valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ProjectBase::get_ProductVersion()
-	IL_0042:  box NAnt.VSNet.ProductVersion
-	IL_0047:  ldstr "\"."
-	IL_004c:  call string string::Concat(object, object, object)
-	IL_0051:  newobj instance void class [mscorlib]System.Exception::'.ctor'(string)
-	IL_0056:  throw 
-	IL_0057:  ldloc.1 
-	IL_0058:  ret 
-    } // end of method ProjectBase::get_ProductVersionNumber
-
-    // method line 319
-    .method public virtual hidebysig newslot abstract 
-           instance default class NAnt.VSNet.ProjectReferenceBase CreateProjectReference (class NAnt.VSNet.ProjectBase project, bool isPrivateSpecified, bool isPrivate)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectBase::CreateProjectReference
-
-    // method line 320
-    .method public hidebysig 
-           instance default bool Compile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0xa300
-	// Code size 166 (0xa6)
-	.maxstack 7
-	.locals init (
-		class NAnt.VSNet.ConfigurationBase	V_0,
-		bool	V_1,
-		valuetype NAnt.VSNet.BuildResult	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  brtrue IL_003f
-
-	IL_0014:  nop 
-	IL_0015:  ldarg.0 
-	IL_0016:  ldc.i4 3000
-	IL_001b:  ldstr "Skipping '{0}' [{1}] ..."
-	IL_0020:  ldc.i4.2 
-	IL_0021:  newarr [mscorlib]System.Object
-	IL_0026:  dup 
-	IL_0027:  ldc.i4.0 
-	IL_0028:  ldarg.0 
-	IL_0029:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_002e:  stelem.ref 
-	IL_002f:  dup 
-	IL_0030:  ldc.i4.1 
-	IL_0031:  ldarg.1 
-	IL_0032:  stelem.ref 
-	IL_0033:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0038:  ldc.i4.1 
-	IL_0039:  stloc.1 
-	IL_003a:  br IL_00a4
-
-	IL_003f:  ldarg.0 
-	IL_0040:  ldc.i4 3000
-	IL_0045:  ldstr "Building '{0}' [{1}] ..."
-	IL_004a:  ldc.i4.2 
-	IL_004b:  newarr [mscorlib]System.Object
-	IL_0050:  dup 
-	IL_0051:  ldc.i4.0 
-	IL_0052:  ldarg.0 
-	IL_0053:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_0058:  stelem.ref 
-	IL_0059:  dup 
-	IL_005a:  ldc.i4.1 
-	IL_005b:  ldloc.0 
-	IL_005c:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
-	IL_0061:  stelem.ref 
-	IL_0062:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0067:  ldarg.0 
-	IL_0068:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ObjectDir()
-	IL_006d:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0072:  brtrue IL_008f
-
-	IL_0077:  nop 
-	IL_0078:  ldarg.0 
-	IL_0079:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ObjectDir()
-	IL_007e:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
-	IL_0083:  ldarg.0 
-	IL_0084:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ObjectDir()
-	IL_0089:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Refresh()
-	IL_008e:  nop 
-	IL_008f:  ldarg.0 
-	IL_0090:  ldarg.1 
-	IL_0091:  callvirt instance valuetype NAnt.VSNet.BuildResult class NAnt.VSNet.ProjectBase::Build(class NAnt.VSNet.Configuration)
-	IL_0096:  stloc.2 
-	IL_0097:  ldloc.2 
-	IL_0098:  ldc.i4.0 
-	IL_0099:  ceq 
-	IL_009b:  ldc.i4.0 
-	IL_009c:  ceq 
-	IL_009e:  stloc.1 
-	IL_009f:  br IL_00a4
-
-	IL_00a4:  ldloc.1 
-	IL_00a5:  ret 
-    } // end of method ProjectBase::Compile
-
-    // method line 321
-    .method public hidebysig 
-           instance default string GetOutputPath (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0xa3b4
-	// Code size 42 (0x2a)
-	.maxstack 2
-	.locals init (
-		class NAnt.VSNet.ConfigurationBase	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  brtrue IL_001c
-
-	IL_0014:  nop 
-	IL_0015:  ldnull 
-	IL_0016:  stloc.1 
-	IL_0017:  br IL_0028
-
-	IL_001c:  ldloc.0 
-	IL_001d:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
-	IL_0022:  stloc.1 
-	IL_0023:  br IL_0028
-
-	IL_0028:  ldloc.1 
-	IL_0029:  ret 
-    } // end of method ProjectBase::GetOutputPath
-
-    // method line 322
-    .method public hidebysig 
-           instance default class NAnt.VSNet.ConfigurationBase GetConfiguration (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0xa3ec
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		class NAnt.VSNet.ConfigurationBase	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ProjectBase::GetConfiguration
-
-    // method line 323
-    .method public hidebysig 
-           instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0xa410
-	// Code size 356 (0x164)
-	.maxstack 7
-	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0,
-		class NAnt.VSNet.ReferenceBase	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class [System]System.Collections.Specialized.StringCollection	V_3,
-		string	V_4,
-		class [System]System.Collections.Specialized.StringEnumerator	V_5,
-		class [mscorlib]System.Reflection.AssemblyName	V_6,
-		class [mscorlib]System.Exception	V_7,
-		class [mscorlib]System.IDisposable	V_8,
-		class [mscorlib]System.IDisposable	V_9,
-		class [System]System.Collections.Specialized.StringCollection	V_10,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_11,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_12,
-		class [mscorlib]System.IDisposable	V_13,
-		class [System]System.Collections.Specialized.StringCollection	V_14)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_0006:  stloc.0 
-	IL_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
-	IL_000e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0013:  stloc.2 
-	.try { // 2
-	  IL_0014:  br IL_00d1
-
-	  IL_0019:  ldloc.2 
-	  IL_001a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_001f:  castclass NAnt.VSNet.ReferenceBase
-	  IL_0024:  stloc.1 
-	  IL_0025:  nop 
-	  IL_0026:  ldloc.1 
-	  IL_0027:  ldarg.1 
-	  IL_0028:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.ReferenceBase::GetAssemblyReferences(class NAnt.VSNet.Configuration)
-	  IL_002d:  stloc.3 
-	  IL_002e:  nop 
-	  IL_002f:  ldloc.3 
-	  IL_0030:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_0035:  stloc.s 5
-	  .try { // 1
-	    IL_0037:  br IL_00a8
-
-	    IL_003c:  ldloc.s 5
-	    IL_003e:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_0043:  stloc.s 4
-	    IL_0045:  nop 
-	    .try { // 0
-	      IL_0046:  nop 
-	      IL_0047:  ldloc.s 4
-	      IL_0049:  call class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.AssemblyName::GetAssemblyName(string)
-	      IL_004e:  stloc.s 6
-	      IL_0050:  ldloc.0 
-	      IL_0051:  ldloc.s 6
-	      IL_0053:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_FullName()
-	      IL_0058:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	      IL_005d:  brtrue IL_0073
-
-	      IL_0062:  nop 
-	      IL_0063:  ldloc.0 
-	      IL_0064:  ldloc.s 6
-	      IL_0066:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_FullName()
-	      IL_006b:  ldloc.s 4
-	      IL_006d:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	      IL_0072:  nop 
-	      IL_0073:  nop 
-	      IL_0074:  leave IL_00a7
-
-	    } // end .try 0
-	    catch class [mscorlib]System.Exception { // 0
-	      IL_0079:  stloc.s 7
-	      IL_007b:  nop 
-	      IL_007c:  ldarg.0 
-	      IL_007d:  ldc.i4 4000
-	      IL_0082:  ldstr "Referenced assembly \"{0}\" could not be loaded: {1}"
-	      IL_0087:  ldc.i4.2 
-	      IL_0088:  newarr [mscorlib]System.Object
-	      IL_008d:  dup 
-	      IL_008e:  ldc.i4.0 
-	      IL_008f:  ldloc.s 4
-	      IL_0091:  stelem.ref 
-	      IL_0092:  dup 
-	      IL_0093:  ldc.i4.1 
-	      IL_0094:  ldloc.s 7
-	      IL_0096:  callvirt instance string class [mscorlib]System.Exception::get_Message()
-	      IL_009b:  stelem.ref 
-	      IL_009c:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	      IL_00a1:  nop 
-	      IL_00a2:  leave IL_00a7
-
-	    } // end handler 0
-	    IL_00a7:  nop 
-	    IL_00a8:  ldloc.s 5
-	    IL_00aa:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_00af:  brtrue IL_003c
-
-	    IL_00b4:  leave IL_00d0
-
-	  } // end .try 1
-	  finally  { // 1
-	    IL_00b9:  ldloc.s 5
-	    IL_00bb:  isinst [mscorlib]System.IDisposable
-	    IL_00c0:  dup 
-	    IL_00c1:  stloc.s 8
-	    IL_00c3:  brfalse IL_00cf
-
-	    IL_00c8:  ldloc.s 8
-	    IL_00ca:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_00cf:  endfinally 
-	  } // end handler 1
-	  IL_00d0:  nop 
-	  IL_00d1:  ldloc.2 
-	  IL_00d2:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00d7:  brtrue IL_0019
-
-	  IL_00dc:  leave IL_00f7
-
-	} // end .try 2
-	finally  { // 2
-	  IL_00e1:  ldloc.2 
-	  IL_00e2:  isinst [mscorlib]System.IDisposable
-	  IL_00e7:  dup 
-	  IL_00e8:  stloc.s 9
-	  IL_00ea:  brfalse IL_00f6
-
-	  IL_00ef:  ldloc.s 9
-	  IL_00f1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00f6:  endfinally 
-	} // end handler 2
-	IL_00f7:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_00fc:  stloc.s 10
-	IL_00fe:  nop 
-	IL_00ff:  ldloc.0 
-	IL_0100:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_0105:  stloc.s 12
-	.try { // 3
-	  IL_0107:  br IL_0130
-
-	  IL_010c:  ldloc.s 12
-	  IL_010e:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0113:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_0118:  stloc.s 11
-	  IL_011a:  nop 
-	  IL_011b:  ldloc.s 10
-	  IL_011d:  ldloca.s 11
-	  IL_011f:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_0124:  castclass [mscorlib]System.String
-	  IL_0129:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_012e:  pop 
-	  IL_012f:  nop 
-	  IL_0130:  ldloc.s 12
-	  IL_0132:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0137:  brtrue IL_010c
-
-	  IL_013c:  leave IL_0158
-
-	} // end .try 3
-	finally  { // 3
-	  IL_0141:  ldloc.s 12
-	  IL_0143:  isinst [mscorlib]System.IDisposable
-	  IL_0148:  dup 
-	  IL_0149:  stloc.s 13
-	  IL_014b:  brfalse IL_0157
-
-	  IL_0150:  ldloc.s 13
-	  IL_0152:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0157:  endfinally 
-	} // end handler 3
-	IL_0158:  ldloc.s 10
-	IL_015a:  stloc.s 14
-	IL_015c:  br IL_0161
-
-	IL_0161:  ldloc.s 14
-	IL_0163:  ret 
-    } // end of method ProjectBase::GetAssemblyReferences
-
-    // method line 324
-    .method public virtual hidebysig newslot 
-           instance default void GetOutputFiles (class NAnt.VSNet.Configuration solutionConfiguration, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
-    {
-        // Method begins at RVA 0xa5b4
-	// Code size 386 (0x182)
-	.maxstack 3
-	.locals init (
-		class NAnt.VSNet.ConfigurationBase	V_0,
-		class NAnt.VSNet.ReferenceBase	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3,
-		string	V_4,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_5,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_6,
-		class [mscorlib]System.IDisposable	V_7,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_8,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_9,
-		class [mscorlib]System.IDisposable	V_10)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  brtrue IL_001a
-
-	IL_0014:  nop 
-	IL_0015:  br IL_0181
-
-	IL_001a:  nop 
-	IL_001b:  ldarg.0 
-	IL_001c:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
-	IL_0021:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0026:  stloc.2 
-	.try { // 0
-	  IL_0027:  br IL_0066
-
-	  IL_002c:  ldloc.2 
-	  IL_002d:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0032:  castclass NAnt.VSNet.ReferenceBase
-	  IL_0037:  stloc.1 
-	  IL_0038:  nop 
-	  IL_0039:  ldloc.1 
-	  IL_003a:  callvirt instance bool class NAnt.VSNet.ReferenceBase::get_CopyLocal()
-	  IL_003f:  brtrue IL_004a
-
-	  IL_0044:  nop 
-	  IL_0045:  leave IL_0066
-
-	  IL_004a:  ldarg.2 
-	  IL_004b:  ldloc.0 
-	  IL_004c:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
-	  IL_0051:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	  IL_0056:  brtrue IL_0065
-
-	  IL_005b:  nop 
-	  IL_005c:  ldloc.1 
-	  IL_005d:  ldarg.1 
-	  IL_005e:  ldarg.2 
-	  IL_005f:  callvirt instance void class NAnt.VSNet.ReferenceBase::GetOutputFiles(class NAnt.VSNet.Configuration, class [mscorlib]System.Collections.Hashtable)
-	  IL_0064:  nop 
-	  IL_0065:  nop 
-	  IL_0066:  ldloc.2 
-	  IL_0067:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_006c:  brtrue IL_002c
-
-	  IL_0071:  leave IL_008a
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0076:  ldloc.2 
-	  IL_0077:  isinst [mscorlib]System.IDisposable
-	  IL_007c:  dup 
-	  IL_007d:  stloc.3 
-	  IL_007e:  brfalse IL_0089
-
-	  IL_0083:  ldloc.3 
-	  IL_0084:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0089:  endfinally 
-	} // end handler 0
-	IL_008a:  ldloc.0 
-	IL_008b:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
-	IL_0090:  stloc.s 4
-	IL_0092:  ldloc.s 4
-	IL_0094:  brfalse IL_0181
-
-	IL_0099:  ldloc.s 4
-	IL_009b:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_00a0:  brfalse IL_0181
-
-	IL_00a5:  nop 
-	IL_00a6:  ldloc.s 4
-	IL_00a8:  ldarg.2 
-	IL_00a9:  call void class NAnt.VSNet.ReferenceBase::GetRelatedFiles(string, class [mscorlib]System.Collections.Hashtable)
-	IL_00ae:  nop 
-	IL_00af:  ldarg.0 
-	IL_00b0:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ProjectBase::get_ExtraOutputFiles()
-	IL_00b5:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_00ba:  stloc.s 6
-	.try { // 1
-	  IL_00bc:  br IL_00ef
-
-	  IL_00c1:  ldloc.s 6
-	  IL_00c3:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_00c8:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_00cd:  stloc.s 5
-	  IL_00cf:  nop 
-	  IL_00d0:  ldarg.2 
-	  IL_00d1:  ldloca.s 5
-	  IL_00d3:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_00d8:  castclass [mscorlib]System.String
-	  IL_00dd:  ldloca.s 5
-	  IL_00df:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_00e4:  castclass [mscorlib]System.String
-	  IL_00e9:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_00ee:  nop 
-	  IL_00ef:  ldloc.s 6
-	  IL_00f1:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00f6:  brtrue IL_00c1
-
-	  IL_00fb:  leave IL_0117
-
-	} // end .try 1
-	finally  { // 1
-	  IL_0100:  ldloc.s 6
-	  IL_0102:  isinst [mscorlib]System.IDisposable
-	  IL_0107:  dup 
-	  IL_0108:  stloc.s 7
-	  IL_010a:  brfalse IL_0116
-
-	  IL_010f:  ldloc.s 7
-	  IL_0111:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0116:  endfinally 
-	} // end handler 1
-	IL_0117:  nop 
-	IL_0118:  ldloc.0 
-	IL_0119:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ConfigurationBase::get_ExtraOutputFiles()
-	IL_011e:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_0123:  stloc.s 9
-	.try { // 2
-	  IL_0125:  br IL_0158
-
-	  IL_012a:  ldloc.s 9
-	  IL_012c:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0131:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_0136:  stloc.s 8
-	  IL_0138:  nop 
-	  IL_0139:  ldarg.2 
-	  IL_013a:  ldloca.s 8
-	  IL_013c:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_0141:  castclass [mscorlib]System.String
-	  IL_0146:  ldloca.s 8
-	  IL_0148:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_014d:  castclass [mscorlib]System.String
-	  IL_0152:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_0157:  nop 
-	  IL_0158:  ldloc.s 9
-	  IL_015a:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_015f:  brtrue IL_012a
-
-	  IL_0164:  leave IL_0180
-
-	} // end .try 2
-	finally  { // 2
-	  IL_0169:  ldloc.s 9
-	  IL_016b:  isinst [mscorlib]System.IDisposable
-	  IL_0170:  dup 
-	  IL_0171:  stloc.s 10
-	  IL_0173:  brfalse IL_017f
-
-	  IL_0178:  ldloc.s 10
-	  IL_017a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_017f:  endfinally 
-	} // end handler 2
-	IL_0180:  nop 
-	IL_0181:  ret 
-    } // end of method ProjectBase::GetOutputFiles
-
-    // method line 325
-    .method public virtual hidebysig newslot abstract 
-           instance default bool IsManaged (class NAnt.VSNet.Configuration configuration)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectBase::IsManaged
-
-    // method line 326
-    .method famorassem virtual hidebysig newslot 
-           instance default string ExpandMacro (string macro)  cil managed 
-    {
-        // Method begins at RVA 0xa76c
-	// Code size 231 (0xe7)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0007:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  brfalse IL_00de
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ldstr "projectname"
-	IL_0019:  call bool string::op_Equality(string, string)
-	IL_001e:  brtrue IL_0078
-
-	IL_0023:  ldloc.0 
-	IL_0024:  ldstr "projectpath"
-	IL_0029:  call bool string::op_Equality(string, string)
-	IL_002e:  brtrue IL_0084
-
-	IL_0033:  ldloc.0 
-	IL_0034:  ldstr "projectfilename"
-	IL_0039:  call bool string::op_Equality(string, string)
-	IL_003e:  brtrue IL_0090
-
-	IL_0043:  ldloc.0 
-	IL_0044:  ldstr "projectext"
-	IL_0049:  call bool string::op_Equality(string, string)
-	IL_004e:  brtrue IL_00a1
-
-	IL_0053:  ldloc.0 
-	IL_0054:  ldstr "projectdir"
-	IL_0059:  call bool string::op_Equality(string, string)
-	IL_005e:  brtrue IL_00b2
-
-	IL_0063:  ldloc.0 
-	IL_0064:  ldstr "devenvdir"
-	IL_0069:  call bool string::op_Equality(string, string)
-	IL_006e:  brtrue IL_00d2
-
-	IL_0073:  br IL_00de
-
-	IL_0078:  ldarg.0 
-	IL_0079:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_007e:  stloc.1 
-	IL_007f:  br IL_00e5
-
-	IL_0084:  ldarg.0 
-	IL_0085:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_008a:  stloc.1 
-	IL_008b:  br IL_00e5
-
-	IL_0090:  ldarg.0 
-	IL_0091:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_0096:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_009b:  stloc.1 
-	IL_009c:  br IL_00e5
-
-	IL_00a1:  ldarg.0 
-	IL_00a2:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_00a7:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	IL_00ac:  stloc.1 
-	IL_00ad:  br IL_00e5
-
-	IL_00b2:  ldarg.0 
-	IL_00b3:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_00b8:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_00bd:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_00c2:  box [mscorlib]System.Char
-	IL_00c7:  call string string::Concat(object, object)
-	IL_00cc:  stloc.1 
-	IL_00cd:  br IL_00e5
-
-	IL_00d2:  ldarg.0 
-	IL_00d3:  callvirt instance string class NAnt.VSNet.ProjectBase::get_DevEnvDir()
-	IL_00d8:  stloc.1 
-	IL_00d9:  br IL_00e5
-
-	IL_00de:  ldnull 
-	IL_00df:  stloc.1 
-	IL_00e0:  br IL_00e5
-
-	IL_00e5:  ldloc.1 
-	IL_00e6:  ret 
-    } // end of method ProjectBase::ExpandMacro
-
-    // method line 327
-    .method family virtual hidebysig newslot abstract 
-           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectBase::DetermineProductVersion
-
-    // method line 328
-    .method family virtual hidebysig newslot abstract 
-           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectBase::VerifyProjectXml
-
-    // method line 329
-    .method family virtual hidebysig newslot 
-           instance default void Prepare (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0xa860
-	// Code size 333 (0x14d)
-	.maxstack 3
-	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0,
-		class [NAnt.Core]NAnt.Core.Tasks.AttribTask	V_1,
-		class NAnt.VSNet.ConfigurationBase	V_2,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_3,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_4,
-		class [mscorlib]System.IDisposable	V_5)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  ldloc.0 
-	IL_000a:  callvirt instance void class NAnt.VSNet.ProjectBase::GetOutputFiles(class NAnt.VSNet.Configuration, class [mscorlib]System.Collections.Hashtable)
-	IL_000f:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.AttribTask::'.ctor'()
-	IL_0014:  stloc.1 
-	IL_0015:  ldloc.1 
-	IL_0016:  ldarg.0 
-	IL_0017:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_001c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0021:  ldloc.1 
-	IL_0022:  ldarg.0 
-	IL_0023:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0028:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_002d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0032:  ldloc.1 
-	IL_0033:  ldarg.0 
-	IL_0034:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0039:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_003e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0043:  ldloc.1 
-	IL_0044:  ldarg.0 
-	IL_0045:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_004a:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_004f:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
-	IL_0054:  ldloc.1 
-	IL_0055:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_005a:  brtrue IL_006c
-
-	IL_005f:  nop 
-	IL_0060:  ldloc.1 
-	IL_0061:  ldc.i4 4000
-	IL_0066:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
-	IL_006b:  nop 
-	IL_006c:  ldloc.1 
-	IL_006d:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	IL_0072:  ldloc.1 
-	IL_0073:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	IL_0078:  ldloc.1 
-	IL_0079:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_007e:  ldloc.1 
-	IL_007f:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	IL_0084:  ldloc.1 
-	IL_0085:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_008a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_008f:  ldloc.1 
-	IL_0090:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	IL_0095:  ldloc.1 
-	IL_0096:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_009b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_00a0:  ldloc.1 
-	IL_00a1:  ldc.i4.0 
-	IL_00a2:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.AttribTask::set_ReadOnlyAttrib(bool)
-	IL_00a7:  ldarg.0 
-	IL_00a8:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_00ad:  ldarg.1 
-	IL_00ae:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_00b3:  stloc.2 
-	IL_00b4:  nop 
-	IL_00b5:  ldloc.0 
-	IL_00b6:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_00bb:  stloc.s 4
-	.try { // 0
-	  IL_00bd:  br IL_00fe
-
-	  IL_00c2:  ldloc.s 4
-	  IL_00c4:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_00c9:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_00ce:  stloc.3 
-	  IL_00cf:  nop 
-	  IL_00d0:  ldloc.1 
-	  IL_00d1:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
-	  IL_00d6:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	  IL_00db:  ldloc.2 
-	  IL_00dc:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	  IL_00e1:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_00e6:  ldloca.s 3
-	  IL_00e8:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_00ed:  castclass [mscorlib]System.String
-	  IL_00f2:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	  IL_00f7:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_00fc:  pop 
-	  IL_00fd:  nop 
-	  IL_00fe:  ldloc.s 4
-	  IL_0100:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0105:  brtrue IL_00c2
-
-	  IL_010a:  leave IL_0126
-
-	} // end .try 0
-	finally  { // 0
-	  IL_010f:  ldloc.s 4
-	  IL_0111:  isinst [mscorlib]System.IDisposable
-	  IL_0116:  dup 
-	  IL_0117:  stloc.s 5
-	  IL_0119:  brfalse IL_0125
-
-	  IL_011e:  ldloc.s 5
-	  IL_0120:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0125:  endfinally 
-	} // end handler 0
-	IL_0126:  ldloc.1 
-	IL_0127:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_012c:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	.try { // 1
-	  IL_0131:  nop 
-	  IL_0132:  ldloc.1 
-	  IL_0133:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_0138:  nop 
-	  IL_0139:  leave IL_014c
-
-	} // end .try 1
-	finally  { // 1
-	  IL_013e:  nop 
-	  IL_013f:  ldloc.1 
-	  IL_0140:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_0145:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	  IL_014a:  nop 
-	  IL_014b:  endfinally 
-	} // end handler 1
-	IL_014c:  ret 
-    } // end of method ProjectBase::Prepare
-
-    // method line 330
-    .method family virtual hidebysig newslot abstract 
-           instance default valuetype NAnt.VSNet.BuildResult Build (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectBase::Build
-
-    // method line 331
-    .method family hidebysig 
-           instance default void CopyFile (class [mscorlib]System.IO.FileInfo srcFile, class [mscorlib]System.IO.FileInfo destFile, class [NAnt.Core]NAnt.Core.Task parent)  cil managed 
-    {
-        // Method begins at RVA 0xa9d8
-	// Code size 179 (0xb3)
-	.maxstack 2
-	.locals init (
-		class [NAnt.Core]NAnt.Core.Tasks.CopyTask	V_0)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.3 
-	IL_0009:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_000e:  ldloc.0 
-	IL_000f:  ldarg.3 
-	IL_0010:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0015:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_001a:  ldloc.0 
-	IL_001b:  ldarg.3 
-	IL_001c:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0021:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0026:  ldloc.0 
-	IL_0027:  ldarg.3 
-	IL_0028:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_002d:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
-	IL_0032:  ldloc.0 
-	IL_0033:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_0038:  brtrue IL_004a
-
-	IL_003d:  nop 
-	IL_003e:  ldloc.0 
-	IL_003f:  ldc.i4 4000
-	IL_0044:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
-	IL_0049:  nop 
-	IL_004a:  ldloc.0 
-	IL_004b:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	IL_0050:  ldloc.0 
-	IL_0051:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0056:  ldloc.0 
-	IL_0057:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_005c:  ldloc.0 
-	IL_005d:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0062:  ldloc.0 
-	IL_0063:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0068:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_006d:  ldloc.0 
-	IL_006e:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
-	IL_0073:  ldloc.0 
-	IL_0074:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0079:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_007e:  ldloc.0 
-	IL_007f:  ldarg.1 
-	IL_0080:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::set_SourceFile(class [mscorlib]System.IO.FileInfo)
-	IL_0085:  ldloc.0 
-	IL_0086:  ldarg.2 
-	IL_0087:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::set_ToFile(class [mscorlib]System.IO.FileInfo)
-	IL_008c:  ldloc.0 
-	IL_008d:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0092:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	.try { // 0
-	  IL_0097:  nop 
-	  IL_0098:  ldloc.0 
-	  IL_0099:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_009e:  nop 
-	  IL_009f:  leave IL_00b2
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00a4:  nop 
-	  IL_00a5:  ldloc.0 
-	  IL_00a6:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_00ab:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	  IL_00b0:  nop 
-	  IL_00b1:  endfinally 
-	} // end handler 0
-	IL_00b2:  ret 
-    } // end of method ProjectBase::CopyFile
-
-    // method line 332
-    .method family hidebysig 
-           instance default bool ExecuteBuildEvent (string buildEvent, string buildCommandLine, string batchFile, string workingDirectory, class NAnt.VSNet.ConfigurationBase config)  cil managed 
-    {
-        // Method begins at RVA 0xaaa8
-	// Code size 362 (0x16a)
-	.maxstack 7
-	.locals init (
-		class [mscorlib]System.IO.StreamWriter	V_0,
-		class [System]System.Diagnostics.ProcessStartInfo	V_1,
-		class [System]System.Diagnostics.Process	V_2,
-		string	V_3,
-		int32	V_4,
-		bool	V_5)
-	IL_0000:  nop 
-	IL_0001:  ldarg.3 
-	IL_0002:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string)
-	IL_0007:  stloc.0 
-	.try { // 0
-	  IL_0008:  nop 
-	  IL_0009:  ldloc.0 
-	  IL_000a:  ldstr "@echo off"
-	  IL_000f:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_0014:  ldarg.s 5
-	  IL_0016:  ldarg.2 
-	  IL_0017:  callvirt instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
-	  IL_001c:  starg.s 2
-	  IL_001e:  ldarg.2 
-	  IL_001f:  ldstr "&#xd;&#xa;"
-	  IL_0024:  ldstr "\n"
-	  IL_0029:  callvirt instance string string::Replace(string, string)
-	  IL_002e:  starg.s 2
-	  IL_0030:  ldloc.0 
-	  IL_0031:  ldarg.2 
-	  IL_0032:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_0037:  ldloc.0 
-	  IL_0038:  ldstr "if errorlevel 1 goto EventReportError"
-	  IL_003d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_0042:  ldloc.0 
-	  IL_0043:  ldstr "goto EventEnd"
-	  IL_0048:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_004d:  ldloc.0 
-	  IL_004e:  ldstr ":EventReportError"
-	  IL_0053:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_0058:  ldloc.0 
-	  IL_0059:  ldstr "echo Project error: A tool returned an error code from the build event"
-	  IL_005e:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_0063:  ldloc.0 
-	  IL_0064:  ldstr "exit 1"
-	  IL_0069:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_006e:  ldloc.0 
-	  IL_006f:  ldstr ":EventEnd"
-	  IL_0074:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_0079:  nop 
-	  IL_007a:  leave IL_008c
-
-	} // end .try 0
-	finally  { // 0
-	  IL_007f:  ldloc.0 
-	  IL_0080:  brfalse IL_008b
-
-	  IL_0085:  ldloc.0 
-	  IL_0086:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_008b:  endfinally 
-	} // end handler 0
-	IL_008c:  ldarg.3 
-	IL_008d:  newobj instance void class [System]System.Diagnostics.ProcessStartInfo::'.ctor'(string)
-	IL_0092:  stloc.1 
-	IL_0093:  ldloc.1 
-	IL_0094:  ldc.i4.0 
-	IL_0095:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_UseShellExecute(bool)
-	IL_009a:  ldloc.1 
-	IL_009b:  ldc.i4.1 
-	IL_009c:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(bool)
-	IL_00a1:  ldloc.1 
-	IL_00a2:  ldarg.s 4
-	IL_00a4:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
-	IL_00a9:  ldloc.1 
-	IL_00aa:  call class [System]System.Diagnostics.Process class [System]System.Diagnostics.Process::Start(class [System]System.Diagnostics.ProcessStartInfo)
-	IL_00af:  stloc.2 
-	IL_00b0:  nop 
-	IL_00b1:  nop 
-	IL_00b2:  ldloc.2 
-	IL_00b3:  callvirt instance class [mscorlib]System.IO.StreamReader class [System]System.Diagnostics.Process::get_StandardOutput()
-	IL_00b8:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	IL_00bd:  stloc.3 
-	IL_00be:  ldloc.3 
-	IL_00bf:  brtrue IL_00ca
-
-	IL_00c4:  nop 
-	IL_00c5:  br IL_00f6
-
-	IL_00ca:  ldarg.0 
-	IL_00cb:  ldc.i4 2000
-	IL_00d0:  ldstr "      ["
-	IL_00d5:  ldarg.1 
-	IL_00d6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00db:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_00e0:  ldstr "] "
-	IL_00e5:  ldloc.3 
-	IL_00e6:  call string string::Concat(string, string, string, string)
-	IL_00eb:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_00f0:  nop 
-	IL_00f1:  br IL_00b0
-
-	IL_00f6:  ldloc.2 
-	IL_00f7:  callvirt instance void class [System]System.Diagnostics.Process::WaitForExit()
-	IL_00fc:  ldloc.2 
-	IL_00fd:  callvirt instance int32 class [System]System.Diagnostics.Process::get_ExitCode()
-	IL_0102:  stloc.s 4
-	IL_0104:  ldloc.s 4
-	IL_0106:  brtrue IL_012c
-
-	IL_010b:  nop 
-	IL_010c:  ldarg.0 
-	IL_010d:  ldc.i4 2000
-	IL_0112:  ldstr "{0} succeeded (exit code = 0)"
-	IL_0117:  ldc.i4.1 
-	IL_0118:  newarr [mscorlib]System.Object
-	IL_011d:  dup 
-	IL_011e:  ldc.i4.0 
-	IL_011f:  ldarg.1 
-	IL_0120:  stelem.ref 
-	IL_0121:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0126:  nop 
-	IL_0127:  br IL_0152
-
-	IL_012c:  nop 
-	IL_012d:  ldarg.0 
-	IL_012e:  ldc.i4 5000
-	IL_0133:  ldstr "{0} failed with exit code = {1}"
-	IL_0138:  ldc.i4.2 
-	IL_0139:  newarr [mscorlib]System.Object
-	IL_013e:  dup 
-	IL_013f:  ldc.i4.0 
-	IL_0140:  ldarg.1 
-	IL_0141:  stelem.ref 
-	IL_0142:  dup 
-	IL_0143:  ldc.i4.1 
-	IL_0144:  ldloc.s 4
-	IL_0146:  box [mscorlib]System.Int32
-	IL_014b:  stelem.ref 
-	IL_014c:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0151:  nop 
-	IL_0152:  ldloc.s 4
-	IL_0154:  brtrue IL_015f
-
-	IL_0159:  ldc.i4.1 
-	IL_015a:  br IL_0160
-
-	IL_015f:  ldc.i4.0 
-	IL_0160:  stloc.s 5
-	IL_0162:  br IL_0167
-
-	IL_0167:  ldloc.s 5
-	IL_0169:  ret 
-    } // end of method ProjectBase::ExecuteBuildEvent
-
-    // method line 333
-    .method family hidebysig 
-           instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message)  cil managed 
-    {
-        // Method begins at RVA 0xac30
-	// Code size 28 (0x1c)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0007:  brfalse IL_001b
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0013:  ldarg.1 
-	IL_0014:  ldarg.2 
-	IL_0015:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_001a:  nop 
-	IL_001b:  ret 
-    } // end of method ProjectBase::Log
-
-    // method line 334
-    .method family hidebysig 
-           instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
-    {
-	.param [3]
-	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-        // Method begins at RVA 0xac4d
-	// Code size 29 (0x1d)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0007:  brfalse IL_001c
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0013:  ldarg.1 
-	IL_0014:  ldarg.2 
-	IL_0015:  ldarg.3 
-	IL_0016:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_001b:  nop 
-	IL_001c:  ret 
-    } // end of method ProjectBase::Log
-
-	.property instance valuetype NAnt.VSNet.ProductVersion ProductVersion ()
-	{
-		.get instance default valuetype NAnt.VSNet.ProductVersion NAnt.VSNet.ProjectBase::get_ProductVersion () 
-	}
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.VSNet.ProjectBase::get_Name () 
-	}
-	.property instance valuetype NAnt.VSNet.ProjectType Type ()
-	{
-		.get instance default valuetype NAnt.VSNet.ProjectType NAnt.VSNet.ProjectBase::get_Type () 
-	}
-	.property instance string ProjectPath ()
-	{
-		.get instance default string NAnt.VSNet.ProjectBase::get_ProjectPath () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo ProjectDirectory ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ProjectBase::get_ProjectDirectory () 
-	}
-	.property instance valuetype NAnt.VSNet.ProjectLocation ProjectLocation ()
-	{
-		.get instance default valuetype NAnt.VSNet.ProjectLocation NAnt.VSNet.ProjectBase::get_ProjectLocation () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo ObjectDir ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ProjectBase::get_ObjectDir () 
-	}
-	.property instance string Guid ()
-	{
-		.get instance default string NAnt.VSNet.ProjectBase::get_Guid () 
-		.set instance default void NAnt.VSNet.ProjectBase::set_Guid (string 'value') 
-	}
-	.property instance class NAnt.VSNet.ConfigurationDictionary ProjectConfigurations ()
-	{
-		.get instance default class NAnt.VSNet.ConfigurationDictionary NAnt.VSNet.ProjectBase::get_ProjectConfigurations () 
-	}
-	.property instance class NAnt.VSNet.ConfigurationDictionary BuildConfigurations ()
-	{
-		.get instance default class NAnt.VSNet.ConfigurationDictionary NAnt.VSNet.ProjectBase::get_BuildConfigurations () 
-	}
-	.property instance class [mscorlib]System.Collections.ArrayList References ()
-	{
-		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectBase::get_References () 
-	}
-	.property instance class NAnt.VSNet.Tasks.SolutionTask SolutionTask ()
-	{
-		.get instance default class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.ProjectBase::get_SolutionTask () 
-	}
-	.property instance class [System]System.CodeDom.Compiler.TempFileCollection TemporaryFiles ()
-	{
-		.get instance default class [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.ProjectBase::get_TemporaryFiles () 
-	}
-	.property instance class [mscorlib]System.Collections.Hashtable ExtraOutputFiles ()
-	{
-		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectBase::get_ExtraOutputFiles () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo OutputDir ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ProjectBase::get_OutputDir () 
-	}
-	.property instance class [NAnt.Core]NAnt.Core.Util.GacCache GacCache ()
-	{
-		.get instance default class [NAnt.Core]NAnt.Core.Util.GacCache NAnt.VSNet.ProjectBase::get_GacCache () 
-	}
-	.property instance class NAnt.VSNet.ReferencesResolver ReferencesResolver ()
-	{
-		.get instance default class NAnt.VSNet.ReferencesResolver NAnt.VSNet.ProjectBase::get_ReferencesResolver () 
-	}
-	.property instance class NAnt.VSNet.ProjectBaseCollection ProjectDependencies ()
-	{
-		.get instance default class NAnt.VSNet.ProjectBaseCollection NAnt.VSNet.ProjectBase::get_ProjectDependencies () 
-	}
-	.property instance string DevEnvDir ()
-	{
-		.get instance default string NAnt.VSNet.ProjectBase::get_DevEnvDir () 
-	}
-	.property instance class [mscorlib]System.Version ProductVersionNumber ()
-	{
-		.get instance default class [mscorlib]System.Version NAnt.VSNet.ProjectBase::get_ProductVersionNumber () 
-	}
-  } // end of class NAnt.VSNet.ProjectBase
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi sealed ProjectType
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.VSNet.ProjectType VB = int32(0x00000000)
-    .field public static literal  valuetype NAnt.VSNet.ProjectType CSharp = int32(0x00000001)
-    .field public static literal  valuetype NAnt.VSNet.ProjectType VisualC = int32(0x00000002)
-    .field public static literal  valuetype NAnt.VSNet.ProjectType JSharp = int32(0x00000003)
-    .field public static literal  valuetype NAnt.VSNet.ProjectType MSBuild = int32(0x00000004)
-
-  } // end of class NAnt.VSNet.ProjectType
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi sealed BuildResult
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.VSNet.BuildResult Failed = int32(0x00000000)
-    .field public static literal  valuetype NAnt.VSNet.BuildResult Success = int32(0x00000001)
-    .field public static literal  valuetype NAnt.VSNet.BuildResult SuccessOutputUpdated = int32(0x00000002)
-
-  } // end of class NAnt.VSNet.BuildResult
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi sealed ProductVersion
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.VSNet.ProductVersion Rainier = int32(0x00000046)
-    .field public static literal  valuetype NAnt.VSNet.ProductVersion Everett = int32(0x00000047)
-    .field public static literal  valuetype NAnt.VSNet.ProductVersion Whidbey = int32(0x00000050)
-    .field public static literal  valuetype NAnt.VSNet.ProductVersion Orcas = int32(0x0000005a)
-    .field public static literal  valuetype NAnt.VSNet.ProductVersion Rosario = int32(0x00000064)
-
-  } // end of class NAnt.VSNet.ProductVersion
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi sealed ProjectLocation
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.VSNet.ProjectLocation Local = int32(0x00000001)
-    .field public static literal  valuetype NAnt.VSNet.ProjectLocation Web = int32(0x00000002)
-
-  } // end of class NAnt.VSNet.ProjectLocation
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi serializable beforefieldinit ProjectBaseCollection
-  	extends [mscorlib]System.Collections.CollectionBase
-  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
-
-
-    // method line 335
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0xac6b
-	// Code size 8 (0x8)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ret 
-    } // end of method ProjectBaseCollection::.ctor
-
-    // method line 336
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ProjectBaseCollection 'value')  cil managed 
-    {
-        // Method begins at RVA 0xac74
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.VSNet.ProjectBaseCollection::AddRange(class NAnt.VSNet.ProjectBaseCollection)
-	IL_000e:  ret 
-    } // end of method ProjectBaseCollection::.ctor
-
-    // method line 337
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ProjectBase[] 'value')  cil managed 
-    {
-        // Method begins at RVA 0xac84
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  call instance void class NAnt.VSNet.ProjectBaseCollection::AddRange(class NAnt.VSNet.ProjectBase[])
-	IL_000e:  ret 
-    } // end of method ProjectBaseCollection::.ctor
-
-    // method line 338
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectBase get_Item (int32 index)  cil managed 
-    {
-        // Method begins at RVA 0xac94
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
-	IL_000d:  castclass NAnt.VSNet.ProjectBase
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
-
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ProjectBaseCollection::get_Item
-
-    // method line 339
-    .method public hidebysig specialname 
-           instance default void set_Item (int32 index, class NAnt.VSNet.ProjectBase 'value')  cil managed 
-    {
-        // Method begins at RVA 0xacba
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
-	IL_000e:  ret 
-    } // end of method ProjectBaseCollection::set_Item
-
-    // method line 340
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectBase get_Item (string guid)  cil managed 
-    {
-        // Method begins at RVA 0xaccc
-	// Code size 127 (0x7f)
-	.maxstack 4
-	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class NAnt.VSNet.ProjectBase	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "guid"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_001a:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_001f:  stloc.1 
-	.try { // 0
-	  IL_0020:  br IL_0052
-
-	  IL_0025:  ldloc.1 
-	  IL_0026:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_002b:  castclass NAnt.VSNet.ProjectBase
-	  IL_0030:  stloc.0 
-	  IL_0031:  nop 
-	  IL_0032:  ldloc.0 
-	  IL_0033:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	  IL_0038:  ldarg.1 
-	  IL_0039:  ldc.i4.1 
-	  IL_003a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_003f:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	  IL_0044:  brtrue IL_0051
-
-	  IL_0049:  nop 
-	  IL_004a:  ldloc.0 
-	  IL_004b:  stloc.2 
-	  IL_004c:  leave IL_007d
-
-	  IL_0051:  nop 
-	  IL_0052:  ldloc.1 
-	  IL_0053:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0058:  brtrue IL_0025
-
-	  IL_005d:  leave IL_0076
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0062:  ldloc.1 
-	  IL_0063:  isinst [mscorlib]System.IDisposable
-	  IL_0068:  dup 
-	  IL_0069:  stloc.3 
-	  IL_006a:  brfalse IL_0075
-
-	  IL_006f:  ldloc.3 
-	  IL_0070:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0075:  endfinally 
-	} // end handler 0
-	IL_0076:  ldnull 
-	IL_0077:  stloc.2 
-	IL_0078:  br IL_007d
-
-	IL_007d:  ldloc.2 
-	IL_007e:  ret 
-    } // end of method ProjectBaseCollection::get_Item
-
-    // method line 341
-    .method public hidebysig 
-           instance default int32 Add (class NAnt.VSNet.ProjectBase item)  cil managed 
-    {
-        // Method begins at RVA 0xad68
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ProjectBaseCollection::Add
-
-    // method line 342
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.VSNet.ProjectBase[] items)  cil managed 
-    {
-        // Method begins at RVA 0xad8c
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0018
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  ldelem.ref 
-	IL_000d:  call instance int32 class NAnt.VSNet.ProjectBaseCollection::Add(class NAnt.VSNet.ProjectBase)
-	IL_0012:  pop 
-	IL_0013:  nop 
-	IL_0014:  ldloc.0 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  add 
-	IL_0017:  stloc.0 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldarg.1 
-	IL_001a:  ldlen 
-	IL_001b:  conv.i4 
-	IL_001c:  blt IL_0008
-
-	IL_0021:  ret 
-    } // end of method ProjectBaseCollection::AddRange
-
-    // method line 343
-    .method public hidebysig 
-           instance default void AddRange (class NAnt.VSNet.ProjectBaseCollection items)  cil managed 
-    {
-        // Method begins at RVA 0xadbc
-	// Code size 41 (0x29)
-	.maxstack 3
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_001c
-
-	IL_0008:  nop 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldarg.1 
-	IL_000b:  ldloc.0 
-	IL_000c:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectBaseCollection::get_Item(int32)
-	IL_0011:  call instance int32 class NAnt.VSNet.ProjectBaseCollection::Add(class NAnt.VSNet.ProjectBase)
-	IL_0016:  pop 
-	IL_0017:  nop 
-	IL_0018:  ldloc.0 
-	IL_0019:  ldc.i4.1 
-	IL_001a:  add 
-	IL_001b:  stloc.0 
-	IL_001c:  ldloc.0 
-	IL_001d:  ldarg.1 
-	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
-	IL_0023:  blt IL_0008
-
-	IL_0028:  ret 
-    } // end of method ProjectBaseCollection::AddRange
-
-    // method line 344
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.VSNet.ProjectBase item)  cil managed 
-    {
-        // Method begins at RVA 0xadf4
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ProjectBaseCollection::Contains
-
-    // method line 345
-    .method public hidebysig 
-           instance default bool Contains (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xae18
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectBaseCollection::get_Item(string)
-	IL_0008:  ldnull 
-	IL_0009:  ceq 
-	IL_000b:  ldc.i4.0 
-	IL_000c:  ceq 
-	IL_000e:  stloc.0 
-	IL_000f:  br IL_0014
-
-	IL_0014:  ldloc.0 
-	IL_0015:  ret 
-    } // end of method ProjectBaseCollection::Contains
-
-    // method line 346
-    .method public hidebysig 
-           instance default void CopyTo (class NAnt.VSNet.ProjectBase[] 'array', int32 index)  cil managed 
-    {
-        // Method begins at RVA 0xae3a
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method ProjectBaseCollection::CopyTo
-
-    // method line 347
-    .method public hidebysig 
-           instance default int32 IndexOf (class NAnt.VSNet.ProjectBase item)  cil managed 
-    {
-        // Method begins at RVA 0xae4c
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ProjectBaseCollection::IndexOf
-
-    // method line 348
-    .method public hidebysig 
-           instance default void Insert (int32 index, class NAnt.VSNet.ProjectBase item)  cil managed 
-    {
-        // Method begins at RVA 0xae6d
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
-	IL_000e:  ret 
-    } // end of method ProjectBaseCollection::Insert
-
-    // method line 349
-    .method public hidebysig 
-           instance default class NAnt.VSNet.ProjectBaseEnumerator GetEnumerator ()  cil managed 
-    {
-        // Method begins at RVA 0xae80
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.ProjectBaseEnumerator	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.VSNet.ProjectBaseEnumerator::'.ctor'(class NAnt.VSNet.ProjectBaseCollection)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectBaseCollection::GetEnumerator
-
-    // method line 350
-    .method public hidebysig 
-           instance default void Remove (class NAnt.VSNet.ProjectBase item)  cil managed 
-    {
-        // Method begins at RVA 0xae9b
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
-	IL_000d:  ret 
-    } // end of method ProjectBaseCollection::Remove
-
-    // method line 351
-    .method public hidebysig 
-           instance default void Remove (string guid)  cil managed 
-    {
-        // Method begins at RVA 0xaeac
-	// Code size 123 (0x7b)
-	.maxstack 4
-	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0,
-		class NAnt.VSNet.ProjectBase	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class [mscorlib]System.IDisposable	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  nop 
-	IL_0004:  ldarg.0 
-	IL_0005:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
-	IL_000a:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_000f:  stloc.2 
-	.try { // 0
-	  IL_0010:  br IL_0042
-
-	  IL_0015:  ldloc.2 
-	  IL_0016:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_001b:  castclass NAnt.VSNet.ProjectBase
-	  IL_0020:  stloc.1 
-	  IL_0021:  nop 
-	  IL_0022:  ldloc.1 
-	  IL_0023:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	  IL_0028:  ldarg.1 
-	  IL_0029:  ldc.i4.1 
-	  IL_002a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_002f:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	  IL_0034:  brtrue IL_0041
-
-	  IL_0039:  nop 
-	  IL_003a:  ldloc.1 
-	  IL_003b:  stloc.0 
-	  IL_003c:  leave IL_004d
-
-	  IL_0041:  nop 
-	  IL_0042:  ldloc.2 
-	  IL_0043:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0048:  brtrue IL_0015
-
-	  IL_004d:  leave IL_0066
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0052:  ldloc.2 
-	  IL_0053:  isinst [mscorlib]System.IDisposable
-	  IL_0058:  dup 
-	  IL_0059:  stloc.3 
-	  IL_005a:  brfalse IL_0065
-
-	  IL_005f:  ldloc.3 
-	  IL_0060:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0065:  endfinally 
-	} // end handler 0
-	IL_0066:  ldloc.0 
-	IL_0067:  brfalse IL_007a
-
-	IL_006c:  nop 
-	IL_006d:  ldarg.0 
-	IL_006e:  call instance class [mscorlib]System.Collections.ArrayList class [mscorlib]System.Collections.CollectionBase::get_InnerList()
-	IL_0073:  ldloc.0 
-	IL_0074:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Remove(object)
-	IL_0079:  nop 
-	IL_007a:  ret 
-    } // end of method ProjectBaseCollection::Remove
-
-	.property instance class NAnt.VSNet.ProjectBase Item (int32)
-	{
-		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ProjectBaseCollection::get_Item (int32 index) 
-		.set instance default void NAnt.VSNet.ProjectBaseCollection::set_Item (int32 index, class NAnt.VSNet.ProjectBase 'value') 
-	}
-	.property instance class NAnt.VSNet.ProjectBase Item (string)
-	{
-		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ProjectBaseCollection::get_Item (string guid) 
-	}
-  } // end of class NAnt.VSNet.ProjectBaseCollection
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit ProjectBaseEnumerator
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IEnumerator  {
-    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
-
-    // method line 352
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ProjectBaseCollection arguments)  cil managed 
-    {
-        // Method begins at RVA 0xaf44
-	// Code size 22 (0x16)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.Collections.IEnumerable	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldloc.0 
-	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectBaseEnumerator::_baseEnumerator
-	IL_0015:  ret 
-    } // end of method ProjectBaseEnumerator::.ctor
-
-    // method line 353
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectBase get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0xaf68
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectBaseEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  castclass NAnt.VSNet.ProjectBase
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ProjectBaseEnumerator::get_Current
-
-    // method line 354
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0xaf90
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		object	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectBaseEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ProjectBaseEnumerator::System.Collections.IEnumerator.get_Current
-
-    // method line 355
-    .method public hidebysig 
-           instance default bool MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0xafb0
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectBaseEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ProjectBaseEnumerator::MoveNext
-
-    // method line 356
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
-    {
-        // Method begins at RVA 0xafd0
-	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectBaseEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ProjectBaseEnumerator::System.Collections.IEnumerator.MoveNext
-
-    // method line 357
-    .method public hidebysig 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0xaff0
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectBaseEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method ProjectBaseEnumerator::Reset
-
-    // method line 358
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
-    {
-        // Method begins at RVA 0xaffe
-	.override class [mscorlib]System.Collections.IEnumerator::Reset
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectBaseEnumerator::_baseEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method ProjectBaseEnumerator::System.Collections.IEnumerator.Reset
-
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.VSNet.ProjectBaseEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.VSNet.ProjectBase Current ()
-	{
-		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ProjectBaseEnumerator::get_Current () 
-	}
-  } // end of class NAnt.VSNet.ProjectBaseEnumerator
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit VcAssemblyReference
-  	extends NAnt.VSNet.AssemblyReferenceBase
-  {
-    .field  private  string _assemblyFile
-    .field  private initonly  bool _isPrivateSpecified
-    .field  private initonly  bool _isPrivate
-    .field  private initonly  string _name
-    .field  private initonly  class [System]System.Text.RegularExpressions.Regex _rxMacro
-
-    // method line 359
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache)  cil managed 
-    {
-        // Method begins at RVA 0xb00c
-	// Code size 148 (0x94)
-	.maxstack 5
-	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		class [System.Xml]System.Xml.XmlAttribute	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld string [mscorlib]System.String::Empty
-	IL_0006:  stfld string NAnt.VSNet.VcAssemblyReference::_name
-	IL_000b:  ldarg.0 
-	IL_000c:  ldstr "\\$\\((\\w+)\\)"
-	IL_0011:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
-	IL_0016:  stfld class [System]System.Text.RegularExpressions.Regex NAnt.VSNet.VcAssemblyReference::_rxMacro
-	IL_001b:  ldarg.0 
-	IL_001c:  ldarg.1 
-	IL_001d:  ldarg.2 
-	IL_001e:  ldarg.3 
-	IL_001f:  ldarg.s 4
-	IL_0021:  call instance void class NAnt.VSNet.AssemblyReferenceBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
-	IL_0026:  nop 
-	IL_0027:  ldarg.1 
-	IL_0028:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_002d:  ldstr "CopyLocal"
-	IL_0032:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0037:  stloc.0 
-	IL_0038:  ldloc.0 
-	IL_0039:  brfalse IL_0058
-
-	IL_003e:  nop 
-	IL_003f:  ldarg.0 
-	IL_0040:  ldc.i4.1 
-	IL_0041:  stfld bool NAnt.VSNet.VcAssemblyReference::_isPrivateSpecified
-	IL_0046:  ldarg.0 
-	IL_0047:  ldloc.0 
-	IL_0048:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_004d:  call bool bool::Parse(string)
-	IL_0052:  stfld bool NAnt.VSNet.VcAssemblyReference::_isPrivate
-	IL_0057:  nop 
-	IL_0058:  ldarg.0 
-	IL_0059:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
-	IL_005e:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0063:  ldstr "RelativePath"
-	IL_0068:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_006d:  stloc.1 
-	IL_006e:  ldloc.1 
-	IL_006f:  brfalse IL_0087
-
-	IL_0074:  nop 
-	IL_0075:  ldarg.0 
-	IL_0076:  ldloc.1 
-	IL_0077:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_007c:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_0081:  stfld string NAnt.VSNet.VcAssemblyReference::_name
-	IL_0086:  nop 
-	IL_0087:  ldarg.0 
-	IL_0088:  ldarg.0 
-	IL_0089:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
-	IL_008e:  stfld string NAnt.VSNet.VcAssemblyReference::_assemblyFile
-	IL_0093:  ret 
-    } // end of method VcAssemblyReference::.ctor
-
-    // method line 360
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsPrivate ()  cil managed 
-    {
-        // Method begins at RVA 0xb0ac
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcAssemblyReference::_isPrivate
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcAssemblyReference::get_IsPrivate
-
-    // method line 361
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsPrivateSpecified ()  cil managed 
-    {
-        // Method begins at RVA 0xb0c8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcAssemblyReference::_isPrivateSpecified
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcAssemblyReference::get_IsPrivateSpecified
-
-    // method line 362
-    .method family virtual hidebysig 
-           instance default string ResolveAssemblyReference ()  cil managed 
-    {
-        // Method begins at RVA 0xb0e4
-	// Code size 215 (0xd7)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		class [System.Xml]System.Xml.XmlElement	V_1,
-		string	V_2,
-		string	V_3,
-		string	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcAssemblyReference::_assemblyFile
-	IL_0007:  brfalse IL_002b
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld string NAnt.VSNet.VcAssemblyReference::_assemblyFile
-	IL_0013:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0018:  brfalse IL_002a
-
-	IL_001d:  nop 
-	IL_001e:  ldarg.0 
-	IL_001f:  ldfld string NAnt.VSNet.VcAssemblyReference::_assemblyFile
-	IL_0024:  stloc.0 
-	IL_0025:  br IL_00d5
-
-	IL_002a:  nop 
-	IL_002b:  ldarg.0 
-	IL_002c:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
-	IL_0031:  stloc.1 
-	IL_0032:  ldnull 
-	IL_0033:  stloc.2 
-	IL_0034:  ldloc.1 
-	IL_0035:  ldstr "RelativePath"
-	IL_003a:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_003f:  stloc.3 
-	IL_0040:  ldloc.3 
-	IL_0041:  brtrue IL_0057
-
-	IL_0046:  nop 
-	IL_0047:  ldstr "For Visual C++ projects only assembly references using relative paths are supported."
-	IL_004c:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0051:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0056:  throw 
-	IL_0057:  nop 
-	IL_0058:  ldarg.0 
-	IL_0059:  ldfld class [System]System.Text.RegularExpressions.Regex NAnt.VSNet.VcAssemblyReference::_rxMacro
-	IL_005e:  ldloc.3 
-	IL_005f:  ldarg.0 
-	IL_0060:  ldftn instance string class NAnt.VSNet.VcAssemblyReference::EvaluateMacro(class [System]System.Text.RegularExpressions.Match)
-	IL_0066:  newobj instance void class [System]System.Text.RegularExpressions.MatchEvaluator::'.ctor'(object, native int)
-	IL_006b:  callvirt instance string class [System]System.Text.RegularExpressions.Regex::Replace(string, class [System]System.Text.RegularExpressions.MatchEvaluator)
-	IL_0070:  stloc.2 
-	IL_0071:  ldloc.2 
-	IL_0072:  ldstr "{ReferencesPath}\\"
-	IL_0077:  ldsfld string [mscorlib]System.String::Empty
-	IL_007c:  callvirt instance string string::Replace(string, string)
-	IL_0081:  stloc.2 
-	IL_0082:  nop 
-	IL_0083:  ldloc.2 
-	IL_0084:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
-	IL_0089:  brfalse IL_0096
-
-	IL_008e:  nop 
-	IL_008f:  ldloc.2 
-	IL_0090:  stloc.0 
-	IL_0091:  br IL_00d5
-
-	IL_0096:  ldarg.0 
-	IL_0097:  ldloc.2 
-	IL_0098:  call instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromFramework(string)
-	IL_009d:  stloc.s 4
-	IL_009f:  ldloc.s 4
-	IL_00a1:  brfalse IL_00af
-
-	IL_00a6:  nop 
-	IL_00a7:  ldloc.s 4
-	IL_00a9:  stloc.0 
-	IL_00aa:  br IL_00d5
-
-	IL_00af:  ldarg.0 
-	IL_00b0:  ldloc.1 
-	IL_00b1:  ldloc.2 
-	IL_00b2:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_00b7:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromAssemblyFolders(class [System.Xml]System.Xml.XmlElement, string)
-	IL_00bc:  stloc.s 4
-	IL_00be:  ldloc.s 4
-	IL_00c0:  brfalse IL_00ce
-
-	IL_00c5:  nop 
-	IL_00c6:  ldloc.s 4
-	IL_00c8:  stloc.0 
-	IL_00c9:  br IL_00d5
-
-	IL_00ce:  ldnull 
-	IL_00cf:  stloc.0 
-	IL_00d0:  br IL_00d5
-
-	IL_00d5:  ldloc.0 
-	IL_00d6:  ret 
-    } // end of method VcAssemblyReference::ResolveAssemblyReference
-
-    // method line 363
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0xb1c8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcAssemblyReference::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcAssemblyReference::get_Name
-
-    // method line 364
-    .method private hidebysig 
-           instance default string EvaluateMacro (class [System]System.Text.RegularExpressions.Match m)  cil managed 
-    {
-        // Method begins at RVA 0xb1e4
-	// Code size 119 (0x77)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		string	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	IL_0007:  ldc.i4.1 
-	IL_0008:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(int32)
-	IL_000d:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	IL_0012:  stloc.0 
-	IL_0013:  ldarg.0 
-	IL_0014:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_0019:  ldloc.0 
-	IL_001a:  callvirt instance string class NAnt.VSNet.Tasks.SolutionTask::ExpandMacro(string)
-	IL_001f:  stloc.1 
-	IL_0020:  ldloc.1 
-	IL_0021:  brfalse IL_002e
-
-	IL_0026:  nop 
-	IL_0027:  ldloc.1 
-	IL_0028:  stloc.2 
-	IL_0029:  br IL_0075
-
-	IL_002e:  ldarg.0 
-	IL_002f:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0034:  ldloc.0 
-	IL_0035:  callvirt instance string class NAnt.VSNet.ProjectBase::ExpandMacro(string)
-	IL_003a:  stloc.1 
-	IL_003b:  ldloc.1 
-	IL_003c:  brfalse IL_0049
-
-	IL_0041:  nop 
-	IL_0042:  ldloc.1 
-	IL_0043:  stloc.2 
-	IL_0044:  br IL_0075
-
-	IL_0049:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_004e:  ldstr "Macro \"{0}\", used by assembly reference \"{1}\" in project \"{2}\" is not supported in assembly references."
-	IL_0053:  ldloc.0 
-	IL_0054:  ldarg.0 
-	IL_0055:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_005a:  ldarg.0 
-	IL_005b:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0060:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_0065:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_006a:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_006f:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0074:  throw 
-	IL_0075:  ldloc.2 
-	IL_0076:  ret 
-    } // end of method VcAssemblyReference::EvaluateMacro
-
-	.property instance bool IsPrivate ()
-	{
-		.get instance default bool NAnt.VSNet.VcAssemblyReference::get_IsPrivate () 
-	}
-	.property instance bool IsPrivateSpecified ()
-	{
-		.get instance default bool NAnt.VSNet.VcAssemblyReference::get_IsPrivateSpecified () 
-	}
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.VSNet.VcAssemblyReference::get_Name () 
-	}
-  } // end of class NAnt.VSNet.VcAssemblyReference
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit VcWrapperReference
-  	extends NAnt.VSNet.WrapperReferenceBase
-  {
-    .field  private initonly  string _name
-    .field  private initonly  string _wrapperTool
-    .field  private initonly  string _wrapperAssembly
-    .field  private initonly  string _primaryInteropAssembly
-
-    // method line 365
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache)  cil managed 
-    {
-        // Method begins at RVA 0xb268
-	// Code size 150 (0x96)
-	.maxstack 5
-	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld string [mscorlib]System.String::Empty
-	IL_0006:  stfld string NAnt.VSNet.VcWrapperReference::_name
-	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.1 
-	IL_000d:  ldarg.2 
-	IL_000e:  ldarg.3 
-	IL_000f:  ldarg.s 4
-	IL_0011:  call instance void class NAnt.VSNet.WrapperReferenceBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
-	IL_0016:  nop 
-	IL_0017:  ldarg.0 
-	IL_0018:  ldarg.0 
-	IL_0019:  ldarg.0 
-	IL_001a:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibrary()
-	IL_001f:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibraryName(string)
-	IL_0024:  stfld string NAnt.VSNet.VcWrapperReference::_name
-	IL_0029:  ldarg.0 
-	IL_002a:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
-	IL_002f:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0034:  ldstr "WrapperTool"
-	IL_0039:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_003e:  stloc.0 
-	IL_003f:  ldloc.0 
-	IL_0040:  brtrue IL_0071
-
-	IL_0045:  nop 
-	IL_0046:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_004b:  ldstr "Wrapper tool for reference \"{0}\" in project \"{1}\" could not be determined."
-	IL_0050:  ldarg.0 
-	IL_0051:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_0056:  ldarg.0 
-	IL_0057:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_005c:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_0061:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0066:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_006b:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0070:  throw 
-	IL_0071:  ldarg.0 
-	IL_0072:  ldloc.0 
-	IL_0073:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_0078:  stfld string NAnt.VSNet.VcWrapperReference::_wrapperTool
-	IL_007d:  ldarg.0 
-	IL_007e:  ldarg.0 
-	IL_007f:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetPrimaryInteropAssembly()
-	IL_0084:  stfld string NAnt.VSNet.VcWrapperReference::_primaryInteropAssembly
-	IL_0089:  ldarg.0 
-	IL_008a:  ldarg.0 
-	IL_008b:  call instance string class NAnt.VSNet.WrapperReferenceBase::ResolveWrapperAssembly()
-	IL_0090:  stfld string NAnt.VSNet.VcWrapperReference::_wrapperAssembly
-	IL_0095:  ret 
-    } // end of method VcWrapperReference::.ctor
-
-    // method line 366
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0xb30c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcWrapperReference::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcWrapperReference::get_Name
-
-    // method line 367
-    .method public virtual hidebysig specialname 
-           instance default string get_WrapperTool ()  cil managed 
-    {
-        // Method begins at RVA 0xb328
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcWrapperReference::_wrapperTool
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcWrapperReference::get_WrapperTool
-
-    // method line 368
-    .method public virtual hidebysig specialname 
-           instance default string get_WrapperAssembly ()  cil managed 
-    {
-        // Method begins at RVA 0xb344
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcWrapperReference::_wrapperAssembly
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcWrapperReference::get_WrapperAssembly
-
-    // method line 369
-    .method family virtual hidebysig specialname 
-           instance default string get_PrimaryInteropAssembly ()  cil managed 
-    {
-        // Method begins at RVA 0xb360
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcWrapperReference::_primaryInteropAssembly
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcWrapperReference::get_PrimaryInteropAssembly
-
-    // method line 370
-    .method family virtual hidebysig specialname 
-           instance default string get_TypeLibVersion ()  cil managed 
-    {
-        // Method begins at RVA 0xb37c
-	// Code size 111 (0x6f)
-	.maxstack 4
-	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		class [mscorlib]System.Version	V_1,
-		int32	V_2,
-		int32	V_3,
-		string	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_000c:  ldstr "ControlVersion"
-	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0016:  stloc.0 
-	IL_0017:  ldloc.0 
-	IL_0018:  brtrue IL_0029
-
-	IL_001d:  nop 
-	IL_001e:  ldstr "The definition of the reference does not contain a \"ControlVersion\" attribute."
-	IL_0023:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	IL_0028:  throw 
-	IL_0029:  ldloc.0 
-	IL_002a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_002f:  newobj instance void class [mscorlib]System.Version::'.ctor'(string)
-	IL_0034:  stloc.1 
-	IL_0035:  ldloc.1 
-	IL_0036:  callvirt instance int32 class [mscorlib]System.Version::get_Major()
-	IL_003b:  stloc.2 
-	IL_003c:  ldloca.s 2
-	IL_003e:  ldstr "x"
-	IL_0043:  call instance string int32::ToString(string)
-	IL_0048:  ldstr "."
-	IL_004d:  ldloc.1 
-	IL_004e:  callvirt instance int32 class [mscorlib]System.Version::get_Minor()
-	IL_0053:  stloc.3 
-	IL_0054:  ldloca.s 3
-	IL_0056:  ldstr "x"
-	IL_005b:  call instance string int32::ToString(string)
-	IL_0060:  call string string::Concat(string, string, string)
-	IL_0065:  stloc.s 4
-	IL_0067:  br IL_006c
-
-	IL_006c:  ldloc.s 4
-	IL_006e:  ret 
-    } // end of method VcWrapperReference::get_TypeLibVersion
-
-    // method line 371
-    .method family virtual hidebysig specialname 
-           instance default string get_TypeLibGuid ()  cil managed 
-    {
-        // Method begins at RVA 0xb3f8
-	// Code size 55 (0x37)
-	.maxstack 2
-	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_000c:  ldstr "ControlGUID"
-	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0016:  stloc.0 
-	IL_0017:  ldloc.0 
-	IL_0018:  brtrue IL_0029
-
-	IL_001d:  nop 
-	IL_001e:  ldstr "The definition of the reference does not contain a \"ControlGUID\" attribute."
-	IL_0023:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	IL_0028:  throw 
-	IL_0029:  ldloc.0 
-	IL_002a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_002f:  stloc.1 
-	IL_0030:  br IL_0035
-
-	IL_0035:  ldloc.1 
-	IL_0036:  ret 
-    } // end of method VcWrapperReference::get_TypeLibGuid
-
-    // method line 372
-    .method family virtual hidebysig specialname 
-           instance default string get_TypeLibLocale ()  cil managed 
-    {
-        // Method begins at RVA 0xb43c
-	// Code size 73 (0x49)
-	.maxstack 2
-	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		int32	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_000c:  ldstr "ControlLocale"
-	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0016:  stloc.0 
-	IL_0017:  ldloc.0 
-	IL_0018:  brfalse IL_003c
-
-	IL_001d:  nop 
-	IL_001e:  ldloc.0 
-	IL_001f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_0024:  call int32 int32::Parse(string)
-	IL_0029:  stloc.1 
-	IL_002a:  ldloca.s 1
-	IL_002c:  ldstr "x"
-	IL_0031:  call instance string int32::ToString(string)
-	IL_0036:  stloc.2 
-	IL_0037:  br IL_0047
-
-	IL_003c:  ldstr "0"
-	IL_0041:  stloc.2 
-	IL_0042:  br IL_0047
-
-	IL_0047:  ldloc.2 
-	IL_0048:  ret 
-    } // end of method VcWrapperReference::get_TypeLibLocale
-
-    // method line 373
-    .method family virtual hidebysig 
-           instance default void ImportTypeLibrary ()  cil managed 
-    {
-        // Method begins at RVA 0xb494
-	// Code size 298 (0x12a)
-	.maxstack 2
-	.locals init (
-		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask	V_0,
-		class NAnt.VSNet.ReferenceBase	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class NAnt.VSNet.WrapperReferenceBase	V_3,
-		class [mscorlib]System.IDisposable	V_4)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_000e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0013:  ldloc.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_001a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_001f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0024:  ldloc.0 
-	IL_0025:  ldarg.0 
-	IL_0026:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_002b:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0035:  ldloc.0 
-	IL_0036:  ldarg.0 
-	IL_0037:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_003c:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_0041:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
-	IL_0046:  ldloc.0 
-	IL_0047:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	IL_004c:  ldloc.0 
-	IL_004d:  ldarg.0 
-	IL_004e:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibrary()
-	IL_0053:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0058:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_TypeLib(class [mscorlib]System.IO.FileInfo)
-	IL_005d:  ldloc.0 
-	IL_005e:  ldarg.0 
-	IL_005f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
-	IL_0064:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0069:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_OutputFile(class [mscorlib]System.IO.FileInfo)
-	IL_006e:  nop 
-	IL_006f:  ldarg.0 
-	IL_0070:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0075:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
-	IL_007a:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_007f:  stloc.2 
-	.try { // 0
-	  IL_0080:  br IL_00dd
-
-	  IL_0085:  ldloc.2 
-	  IL_0086:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_008b:  castclass NAnt.VSNet.ReferenceBase
-	  IL_0090:  stloc.1 
-	  IL_0091:  nop 
-	  IL_0092:  ldloc.1 
-	  IL_0093:  isinst NAnt.VSNet.WrapperReferenceBase
-	  IL_0098:  stloc.3 
-	  IL_0099:  ldloc.3 
-	  IL_009a:  brfalse IL_00bf
-
-	  IL_009f:  ldloc.3 
-	  IL_00a0:  callvirt instance bool class NAnt.VSNet.WrapperReferenceBase::get_IsCreated()
-	  IL_00a5:  brfalse IL_00bf
-
-	  IL_00aa:  ldloc.3 
-	  IL_00ab:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperTool()
-	  IL_00b0:  ldstr "tlbimp"
-	  IL_00b5:  call bool string::op_Inequality(string, string)
-	  IL_00ba:  brfalse IL_00c5
-
-	  IL_00bf:  nop 
-	  IL_00c0:  leave IL_00dd
-
-	  IL_00c5:  ldloc.0 
-	  IL_00c6:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::get_References()
-	  IL_00cb:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	  IL_00d0:  ldloc.3 
-	  IL_00d1:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
-	  IL_00d6:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	  IL_00db:  pop 
-	  IL_00dc:  nop 
-	  IL_00dd:  ldloc.2 
-	  IL_00de:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00e3:  brtrue IL_0085
-
-	  IL_00e8:  leave IL_0103
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00ed:  ldloc.2 
-	  IL_00ee:  isinst [mscorlib]System.IDisposable
-	  IL_00f3:  dup 
-	  IL_00f4:  stloc.s 4
-	  IL_00f6:  brfalse IL_0102
-
-	  IL_00fb:  ldloc.s 4
-	  IL_00fd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0102:  endfinally 
-	} // end handler 0
-	IL_0103:  ldloc.0 
-	IL_0104:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0109:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	.try { // 1
-	  IL_010e:  nop 
-	  IL_010f:  ldloc.0 
-	  IL_0110:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_0115:  nop 
-	  IL_0116:  leave IL_0129
-
-	} // end .try 1
-	finally  { // 1
-	  IL_011b:  nop 
-	  IL_011c:  ldloc.0 
-	  IL_011d:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_0122:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	  IL_0127:  nop 
-	  IL_0128:  endfinally 
-	} // end handler 1
-	IL_0129:  ret 
-    } // end of method VcWrapperReference::ImportTypeLibrary
-
-    // method line 374
-    .method family virtual hidebysig 
-           instance default void ImportActiveXLibrary ()  cil managed 
-    {
-        // Method begins at RVA 0xb5e8
-	// Code size 232 (0xe8)
-	.maxstack 4
-	.locals init (
-		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_000e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0013:  ldloc.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_001a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_001f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0024:  ldloc.0 
-	IL_0025:  ldarg.0 
-	IL_0026:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_002b:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0035:  ldloc.0 
-	IL_0036:  ldarg.0 
-	IL_0037:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_003c:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_0041:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
-	IL_0046:  ldloc.0 
-	IL_0047:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	IL_004c:  ldloc.0 
-	IL_004d:  ldarg.0 
-	IL_004e:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibrary()
-	IL_0053:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0058:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_OcxFile(class [mscorlib]System.IO.FileInfo)
-	IL_005d:  ldloc.0 
-	IL_005e:  ldarg.0 
-	IL_005f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
-	IL_0064:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0069:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_OutputFile(class [mscorlib]System.IO.FileInfo)
-	IL_006e:  ldarg.0 
-	IL_006f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_PrimaryInteropAssembly()
-	IL_0074:  stloc.1 
-	IL_0075:  ldloc.1 
-	IL_0076:  brtrue IL_00a8
-
-	IL_007b:  nop 
-	IL_007c:  ldarg.0 
-	IL_007d:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0082:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ObjectDir()
-	IL_0087:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_008c:  ldstr "Interop."
-	IL_0091:  ldarg.0 
-	IL_0092:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibraryName()
-	IL_0097:  ldstr ".dll"
-	IL_009c:  call string string::Concat(string, string, string)
-	IL_00a1:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_00a6:  stloc.1 
-	IL_00a7:  nop 
-	IL_00a8:  ldloc.1 
-	IL_00a9:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_00ae:  brfalse IL_00c1
-
-	IL_00b3:  nop 
-	IL_00b4:  ldloc.0 
-	IL_00b5:  ldloc.1 
-	IL_00b6:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_00bb:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_RcwFile(class [mscorlib]System.IO.FileInfo)
-	IL_00c0:  nop 
-	IL_00c1:  ldloc.0 
-	IL_00c2:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_00c7:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	.try { // 0
-	  IL_00cc:  nop 
-	  IL_00cd:  ldloc.0 
-	  IL_00ce:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_00d3:  nop 
-	  IL_00d4:  leave IL_00e7
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00d9:  nop 
-	  IL_00da:  ldloc.0 
-	  IL_00db:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_00e0:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	  IL_00e5:  nop 
-	  IL_00e6:  endfinally 
-	} // end handler 0
-	IL_00e7:  ret 
-    } // end of method VcWrapperReference::ImportActiveXLibrary
-
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.VSNet.VcWrapperReference::get_Name () 
-	}
-	.property instance string WrapperTool ()
-	{
-		.get instance default string NAnt.VSNet.VcWrapperReference::get_WrapperTool () 
-	}
-	.property instance string WrapperAssembly ()
-	{
-		.get instance default string NAnt.VSNet.VcWrapperReference::get_WrapperAssembly () 
-	}
-	.property instance string PrimaryInteropAssembly ()
-	{
-		.get instance default string NAnt.VSNet.VcWrapperReference::get_PrimaryInteropAssembly () 
-	}
-	.property instance string TypeLibVersion ()
-	{
-		.get instance default string NAnt.VSNet.VcWrapperReference::get_TypeLibVersion () 
-	}
-	.property instance string TypeLibGuid ()
-	{
-		.get instance default string NAnt.VSNet.VcWrapperReference::get_TypeLibGuid () 
-	}
-	.property instance string TypeLibLocale ()
-	{
-		.get instance default string NAnt.VSNet.VcWrapperReference::get_TypeLibLocale () 
-	}
-  } // end of class NAnt.VSNet.VcWrapperReference
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit VcProject
-  	extends NAnt.VSNet.ProjectBase
-  {
-    .field  private initonly  string _name
-    .field  private initonly  string _projectPath
-    .field  private  string _guid
-    .field  private initonly  class [mscorlib]System.Collections.ArrayList _references
-    .field  private initonly  class NAnt.VSNet.VcArgumentMap _clArgMap
-    .field  private initonly  class NAnt.VSNet.VcArgumentMap _linkerArgMap
-    .field  private initonly  class NAnt.VSNet.VcArgumentMap _midlArgMap
-    .field  private initonly  class [mscorlib]System.Collections.ArrayList _projectFiles
-    .field  private static  string[] _defaultLibraries
-    .field  private static  class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> '<>f__switch$map1'
-    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-
-    // method line 375
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
-    {
-        // Method begins at RVA 0xb6ec
-	// Code size 1034 (0x40a)
-	.maxstack 7
-	.locals init (
-		class [System.Xml]System.Xml.XmlNodeList	V_0,
-		class [System.Xml]System.Xml.XmlElement	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class NAnt.VSNet.VcProjectConfiguration	V_3,
-		class [mscorlib]System.IDisposable	V_4,
-		class [System.Xml]System.Xml.XmlNodeList	V_5,
-		class [System.Xml]System.Xml.XmlElement	V_6,
-		class [mscorlib]System.Collections.IEnumerator	V_7,
-		class NAnt.VSNet.ReferenceBase	V_8,
-		class [mscorlib]System.IDisposable	V_9,
-		class [System.Xml]System.Xml.XmlNodeList	V_10,
-		class [System.Xml]System.Xml.XmlElement	V_11,
-		class [mscorlib]System.Collections.IEnumerator	V_12,
-		string	V_13,
-		class [System.Xml]System.Xml.XmlNode	V_14,
-		string	V_15,
-		class [mscorlib]System.Collections.Hashtable	V_16,
-		class [System.Xml]System.Xml.XmlNodeList	V_17,
-		class [System.Xml]System.Xml.XmlElement	V_18,
-		class [mscorlib]System.Collections.IEnumerator	V_19,
-		class NAnt.VSNet.Configuration	V_20,
-		class NAnt.VSNet.VcProjectConfiguration	V_21,
-		class [mscorlib]System.IDisposable	V_22,
-		string	V_23,
-		class NAnt.VSNet.VcProjectConfiguration	V_24,
-		class [mscorlib]System.Collections.IEnumerator	V_25,
-		class [mscorlib]System.IDisposable	V_26,
-		class [mscorlib]System.IDisposable	V_27)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.3 
-	IL_0002:  ldarg.s 4
-	IL_0004:  ldarg.s 5
-	IL_0006:  ldarg.s 6
-	IL_0008:  ldarg.s 7
-	IL_000a:  ldarg.s 8
-	IL_000c:  call instance void class NAnt.VSNet.ProjectBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
-	IL_0011:  nop 
-	IL_0012:  ldarg.2 
-	IL_0013:  brtrue IL_0024
-
-	IL_0018:  nop 
-	IL_0019:  ldstr "projectPath"
-	IL_001e:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0023:  throw 
-	IL_0024:  ldarg.0 
-	IL_0025:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_002a:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_references
-	IL_002f:  ldarg.0 
-	IL_0030:  call class NAnt.VSNet.VcArgumentMap class NAnt.VSNet.VcArgumentMap::CreateCLArgumentMap()
-	IL_0035:  stfld class NAnt.VSNet.VcArgumentMap NAnt.VSNet.VcProject::_clArgMap
-	IL_003a:  ldarg.0 
-	IL_003b:  call class NAnt.VSNet.VcArgumentMap class NAnt.VSNet.VcArgumentMap::CreateLinkerArgumentMap()
-	IL_0040:  stfld class NAnt.VSNet.VcArgumentMap NAnt.VSNet.VcProject::_linkerArgMap
-	IL_0045:  ldarg.0 
-	IL_0046:  call class NAnt.VSNet.VcArgumentMap class NAnt.VSNet.VcArgumentMap::CreateMidlArgumentMap()
-	IL_004b:  stfld class NAnt.VSNet.VcArgumentMap NAnt.VSNet.VcProject::_midlArgMap
-	IL_0050:  ldarg.0 
-	IL_0051:  ldarg.2 
-	IL_0052:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
-	IL_0057:  stfld string NAnt.VSNet.VcProject::_projectPath
-	IL_005c:  ldarg.0 
-	IL_005d:  ldarg.3 
-	IL_005e:  ldstr "Name"
-	IL_0063:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_0068:  stfld string NAnt.VSNet.VcProject::_name
-	IL_006d:  ldarg.0 
-	IL_006e:  ldarg.3 
-	IL_006f:  ldstr "ProjectGUID"
-	IL_0074:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_0079:  stfld string NAnt.VSNet.VcProject::_guid
-	IL_007e:  ldarg.3 
-	IL_007f:  ldstr "//Configurations/Configuration"
-	IL_0084:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
-	IL_0089:  stloc.0 
-	IL_008a:  nop 
-	IL_008b:  ldloc.0 
-	IL_008c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_0091:  stloc.2 
-	.try { // 0
-	  IL_0092:  br IL_00d0
-
-	  IL_0097:  ldloc.2 
-	  IL_0098:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_009d:  castclass [System.Xml]System.Xml.XmlElement
-	  IL_00a2:  stloc.1 
-	  IL_00a3:  nop 
-	  IL_00a4:  ldloc.1 
-	  IL_00a5:  ldarg.0 
-	  IL_00a6:  ldarg.0 
-	  IL_00a7:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_OutputDir()
-	  IL_00ac:  newobj instance void class NAnt.VSNet.VcProjectConfiguration::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.VcProject, class [mscorlib]System.IO.DirectoryInfo)
-	  IL_00b1:  stloc.3 
-	  IL_00b2:  ldarg.0 
-	  IL_00b3:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_ProjectConfigurations()
-	  IL_00b8:  ldloc.3 
-	  IL_00b9:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
-	  IL_00be:  ldloc.3 
-	  IL_00bf:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_PlatformName()
-	  IL_00c4:  newobj instance void class NAnt.VSNet.Configuration::'.ctor'(string, string)
-	  IL_00c9:  ldloc.3 
-	  IL_00ca:  callvirt instance void class NAnt.VSNet.ConfigurationDictionary::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.ConfigurationBase)
-	  IL_00cf:  nop 
-	  IL_00d0:  ldloc.2 
-	  IL_00d1:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00d6:  brtrue IL_0097
-
-	  IL_00db:  leave IL_00f6
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00e0:  ldloc.2 
-	  IL_00e1:  isinst [mscorlib]System.IDisposable
-	  IL_00e6:  dup 
-	  IL_00e7:  stloc.s 4
-	  IL_00e9:  brfalse IL_00f5
-
-	  IL_00ee:  ldloc.s 4
-	  IL_00f0:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00f5:  endfinally 
-	} // end handler 0
-	IL_00f6:  ldarg.3 
-	IL_00f7:  ldstr "//References/child::*"
-	IL_00fc:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
-	IL_0101:  stloc.s 5
-	IL_0103:  nop 
-	IL_0104:  ldloc.s 5
-	IL_0106:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_010b:  stloc.s 7
-	.try { // 1
-	  IL_010d:  br IL_013b
-
-	  IL_0112:  ldloc.s 7
-	  IL_0114:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0119:  castclass [System.Xml]System.Xml.XmlElement
-	  IL_011e:  stloc.s 6
-	  IL_0120:  nop 
-	  IL_0121:  ldarg.0 
-	  IL_0122:  ldarg.1 
-	  IL_0123:  ldloc.s 6
-	  IL_0125:  callvirt instance class NAnt.VSNet.ReferenceBase class NAnt.VSNet.VcProject::CreateReference(class NAnt.VSNet.SolutionBase, class [System.Xml]System.Xml.XmlElement)
-	  IL_012a:  stloc.s 8
-	  IL_012c:  ldarg.0 
-	  IL_012d:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_references
-	  IL_0132:  ldloc.s 8
-	  IL_0134:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0139:  pop 
-	  IL_013a:  nop 
-	  IL_013b:  ldloc.s 7
-	  IL_013d:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0142:  brtrue IL_0112
-
-	  IL_0147:  leave IL_0163
-
-	} // end .try 1
-	finally  { // 1
-	  IL_014c:  ldloc.s 7
-	  IL_014e:  isinst [mscorlib]System.IDisposable
-	  IL_0153:  dup 
-	  IL_0154:  stloc.s 9
-	  IL_0156:  brfalse IL_0162
-
-	  IL_015b:  ldloc.s 9
-	  IL_015d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0162:  endfinally 
-	} // end handler 1
-	IL_0163:  ldarg.3 
-	IL_0164:  ldstr "//File"
-	IL_0169:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
-	IL_016e:  stloc.s 10
-	IL_0170:  ldarg.0 
-	IL_0171:  ldloc.s 10
-	IL_0173:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	IL_0178:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
-	IL_017d:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_projectFiles
-	IL_0182:  nop 
-	IL_0183:  ldloc.s 10
-	IL_0185:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_018a:  stloc.s 12
-	.try { // 4
-	  IL_018c:  br IL_03e1
-
-	  IL_0191:  ldloc.s 12
-	  IL_0193:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0198:  castclass [System.Xml]System.Xml.XmlElement
-	  IL_019d:  stloc.s 11
-	  IL_019f:  nop 
-	  IL_01a0:  ldarg.0 
-	  IL_01a1:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	  IL_01a6:  stloc.s 13
-	  IL_01a8:  ldloc.s 11
-	  IL_01aa:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::get_ParentNode()
-	  IL_01af:  brfalse IL_01fb
-
-	  IL_01b4:  ldloc.s 11
-	  IL_01b6:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::get_ParentNode()
-	  IL_01bb:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	  IL_01c0:  ldstr "Filter"
-	  IL_01c5:  call bool string::op_Equality(string, string)
-	  IL_01ca:  brfalse IL_01fb
-
-	  IL_01cf:  nop 
-	  IL_01d0:  ldloc.s 11
-	  IL_01d2:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::get_ParentNode()
-	  IL_01d7:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	  IL_01dc:  ldstr "Name"
-	  IL_01e1:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNamedNodeMap::GetNamedItem(string)
-	  IL_01e6:  stloc.s 14
-	  IL_01e8:  ldloc.s 14
-	  IL_01ea:  brfalse IL_01fa
-
-	  IL_01ef:  nop 
-	  IL_01f0:  ldloc.s 14
-	  IL_01f2:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	  IL_01f7:  stloc.s 13
-	  IL_01f9:  nop 
-	  IL_01fa:  nop 
-	  IL_01fb:  ldloc.s 11
-	  IL_01fd:  ldstr "RelativePath"
-	  IL_0202:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	  IL_0207:  stloc.s 15
-	  IL_0209:  ldnull 
-	  IL_020a:  stloc.s 16
-	  IL_020c:  ldloc.s 11
-	  IL_020e:  ldstr "FileConfiguration"
-	  IL_0213:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlElement::GetElementsByTagName(string)
-	  IL_0218:  stloc.s 17
-	  IL_021a:  ldloc.s 17
-	  IL_021c:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	  IL_0221:  ldc.i4.0 
-	  IL_0222:  ble IL_02c2
-
-	  IL_0227:  nop 
-	  IL_0228:  ldloc.s 17
-	  IL_022a:  callvirt instance int32 class [System.Xml]System.Xml.XmlNodeList::get_Count()
-	  IL_022f:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable(int32)
-	  IL_0234:  stloc.s 16
-	  IL_0236:  nop 
-	  IL_0237:  ldloc.s 17
-	  IL_0239:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	  IL_023e:  stloc.s 19
-	  .try { // 2
-	    IL_0240:  br IL_0299
-
-	    IL_0245:  ldloc.s 19
-	    IL_0247:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_024c:  castclass [System.Xml]System.Xml.XmlElement
-	    IL_0251:  stloc.s 18
-	    IL_0253:  nop 
-	    IL_0254:  ldloc.s 18
-	    IL_0256:  ldstr "Name"
-	    IL_025b:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	    IL_0260:  call class NAnt.VSNet.Configuration class NAnt.VSNet.Configuration::Parse(string)
-	    IL_0265:  stloc.s 20
-	    IL_0267:  ldarg.0 
-	    IL_0268:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_ProjectConfigurations()
-	    IL_026d:  ldloc.s 20
-	    IL_026f:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	    IL_0274:  castclass NAnt.VSNet.VcProjectConfiguration
-	    IL_0279:  stloc.s 21
-	    IL_027b:  ldloc.s 16
-	    IL_027d:  ldloc.s 21
-	    IL_027f:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
-	    IL_0284:  ldloc.s 15
-	    IL_0286:  ldloc.s 13
-	    IL_0288:  ldloc.s 18
-	    IL_028a:  ldloc.s 21
-	    IL_028c:  ldarg.s 8
-	    IL_028e:  newobj instance void class NAnt.VSNet.VcFileConfiguration::'.ctor'(string, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.VcProjectConfiguration, class [mscorlib]System.IO.DirectoryInfo)
-	    IL_0293:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	    IL_0298:  nop 
-	    IL_0299:  ldloc.s 19
-	    IL_029b:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_02a0:  brtrue IL_0245
-
-	    IL_02a5:  leave IL_02c1
-
-	  } // end .try 2
-	  finally  { // 2
-	    IL_02aa:  ldloc.s 19
-	    IL_02ac:  isinst [mscorlib]System.IDisposable
-	    IL_02b1:  dup 
-	    IL_02b2:  stloc.s 22
-	    IL_02b4:  brfalse IL_02c0
-
-	    IL_02b9:  ldloc.s 22
-	    IL_02bb:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_02c0:  endfinally 
-	  } // end handler 2
-	  IL_02c1:  nop 
-	  IL_02c2:  ldloc.s 15
-	  IL_02c4:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	  IL_02c9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_02ce:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	  IL_02d3:  stloc.s 23
-	  IL_02d5:  ldloc.s 23
-	  IL_02d7:  brfalse IL_03b4
-
-	  IL_02dc:  ldloc.s 23
-	  IL_02de:  ldstr ".idl"
-	  IL_02e3:  call bool string::op_Equality(string, string)
-	  IL_02e8:  brtrue IL_0314
-
-	  IL_02ed:  ldloc.s 23
-	  IL_02ef:  ldstr ".odl"
-	  IL_02f4:  call bool string::op_Equality(string, string)
-	  IL_02f9:  brtrue IL_0314
-
-	  IL_02fe:  ldloc.s 23
-	  IL_0300:  ldstr ".rc"
-	  IL_0305:  call bool string::op_Equality(string, string)
-	  IL_030a:  brtrue IL_0314
-
-	  IL_030f:  br IL_03b4
-
-	  IL_0314:  nop 
-	  IL_0315:  ldarg.0 
-	  IL_0316:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_ProjectConfigurations()
-	  IL_031b:  callvirt instance class [mscorlib]System.Collections.ICollection class NAnt.VSNet.ConfigurationDictionary::get_Values()
-	  IL_0320:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	  IL_0325:  stloc.s 25
-	  .try { // 3
-	    IL_0327:  br IL_0387
-
-	    IL_032c:  ldloc.s 25
-	    IL_032e:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_0333:  castclass NAnt.VSNet.VcProjectConfiguration
-	    IL_0338:  stloc.s 24
-	    IL_033a:  nop 
-	    IL_033b:  ldloc.s 16
-	    IL_033d:  brfalse IL_035b
-
-	    IL_0342:  ldloc.s 16
-	    IL_0344:  ldloc.s 24
-	    IL_0346:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
-	    IL_034b:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	    IL_0350:  brfalse IL_035b
-
-	    IL_0355:  nop 
-	    IL_0356:  leave IL_0387
-
-	    IL_035b:  ldloc.s 16
-	    IL_035d:  brtrue IL_036b
-
-	    IL_0362:  nop 
-	    IL_0363:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	    IL_0368:  stloc.s 16
-	    IL_036a:  nop 
-	    IL_036b:  ldloc.s 16
-	    IL_036d:  ldloc.s 24
-	    IL_036f:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
-	    IL_0374:  ldloc.s 15
-	    IL_0376:  ldloc.s 13
-	    IL_0378:  ldloc.s 24
-	    IL_037a:  ldarg.s 8
-	    IL_037c:  newobj instance void class NAnt.VSNet.VcFileConfiguration::'.ctor'(string, string, class NAnt.VSNet.VcProjectConfiguration, class [mscorlib]System.IO.DirectoryInfo)
-	    IL_0381:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	    IL_0386:  nop 
-	    IL_0387:  ldloc.s 25
-	    IL_0389:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_038e:  brtrue IL_032c
-
-	    IL_0393:  leave IL_03af
-
-	  } // end .try 3
-	  finally  { // 3
-	    IL_0398:  ldloc.s 25
-	    IL_039a:  isinst [mscorlib]System.IDisposable
-	    IL_039f:  dup 
-	    IL_03a0:  stloc.s 26
-	    IL_03a2:  brfalse IL_03ae
-
-	    IL_03a7:  ldloc.s 26
-	    IL_03a9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_03ae:  endfinally 
-	  } // end handler 3
-	  IL_03af:  leave IL_03b4
-
-	  IL_03b4:  ldloc.s 16
-	  IL_03b6:  brfalse IL_03d0
-
-	  IL_03bb:  nop 
-	  IL_03bc:  ldarg.0 
-	  IL_03bd:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_projectFiles
-	  IL_03c2:  ldloc.s 16
-	  IL_03c4:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_03c9:  pop 
-	  IL_03ca:  nop 
-	  IL_03cb:  br IL_03e0
-
-	  IL_03d0:  nop 
-	  IL_03d1:  ldarg.0 
-	  IL_03d2:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_projectFiles
-	  IL_03d7:  ldloc.s 15
-	  IL_03d9:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_03de:  pop 
-	  IL_03df:  nop 
-	  IL_03e0:  nop 
-	  IL_03e1:  ldloc.s 12
-	  IL_03e3:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_03e8:  brtrue IL_0191
-
-	  IL_03ed:  leave IL_0409
-
-	} // end .try 4
-	finally  { // 4
-	  IL_03f2:  ldloc.s 12
-	  IL_03f4:  isinst [mscorlib]System.IDisposable
-	  IL_03f9:  dup 
-	  IL_03fa:  stloc.s 27
-	  IL_03fc:  brfalse IL_0408
-
-	  IL_0401:  ldloc.s 27
-	  IL_0403:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0408:  endfinally 
-	} // end handler 4
-	IL_0409:  ret 
-    } // end of method VcProject::.ctor
-
-    // method line 376
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0xbb80
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcProject::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProject::get_Name
-
-    // method line 377
-    .method public virtual hidebysig specialname 
-           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
-    {
-        // Method begins at RVA 0xbb9c
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.VSNet.ProjectType	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.2 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method VcProject::get_Type
-
-    // method line 378
-    .method public virtual hidebysig specialname 
-           instance default string get_ProjectPath ()  cil managed 
-    {
-        // Method begins at RVA 0xbbb4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcProject::_projectPath
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProject::get_ProjectPath
-
-    // method line 379
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ProjectDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0xbbd0
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcProject::_projectPath
-	IL_0007:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_000c:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method VcProject::get_ProjectDirectory
-
-    // method line 380
-    .method public virtual hidebysig specialname 
-           instance default valuetype NAnt.VSNet.ProjectLocation get_ProjectLocation ()  cil managed 
-    {
-        // Method begins at RVA 0xbbf8
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.VSNet.ProjectLocation	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method VcProject::get_ProjectLocation
-
-    // method line 381
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
-    {
-        // Method begins at RVA 0xbc10
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_000c:  ldstr "temp"
-	IL_0011:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0016:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method VcProject::get_ObjectDir
-
-    // method line 382
-    .method public virtual hidebysig specialname 
-           instance default string get_Guid ()  cil managed 
-    {
-        // Method begins at RVA 0xbc40
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.VcProject::_guid
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProject::get_Guid
-
-    // method line 383
-    .method public virtual hidebysig specialname 
-           instance default void set_Guid (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xbc5b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.VSNet.VcProject::_guid
-	IL_0008:  ret 
-    } // end of method VcProject::set_Guid
-
-    // method line 384
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_References ()  cil managed 
-    {
-        // Method begins at RVA 0xbc68
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_references
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProject::get_References
-
-    // method line 385
-    .method public virtual hidebysig 
-           instance default class NAnt.VSNet.ProjectReferenceBase CreateProjectReference (class NAnt.VSNet.ProjectBase project, bool isPrivateSpecified, bool isPrivate)  cil managed 
-    {
-        // Method begins at RVA 0xbc84
-	// Code size 18 (0x12)
-	.maxstack 4
-	.locals init (
-		class NAnt.VSNet.ProjectReferenceBase	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldarg.2 
-	IL_0004:  ldarg.3 
-	IL_0005:  newobj instance void class NAnt.VSNet.VcProjectReference::'.ctor'(class NAnt.VSNet.ProjectBase, class NAnt.VSNet.ProjectBase, bool, bool)
-	IL_000a:  stloc.0 
-	IL_000b:  br IL_0010
-
-	IL_0010:  ldloc.0 
-	IL_0011:  ret 
-    } // end of method VcProject::CreateProjectReference
-
-    // method line 386
-    .method public virtual hidebysig 
-           instance default bool IsManaged (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0xbca4
-	// Code size 60 (0x3c)
-	.maxstack 2
-	.locals init (
-		class NAnt.VSNet.VcProjectConfiguration	V_0,
-		bool	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_000d:  castclass NAnt.VSNet.VcProjectConfiguration
-	IL_0012:  stloc.0 
-	IL_0013:  ldloc.0 
-	IL_0014:  callvirt instance valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType class NAnt.VSNet.VcProjectConfiguration::get_Type()
-	IL_0019:  ldc.i4.2 
-	IL_001a:  beq IL_002b
-
-	IL_001f:  ldloc.0 
-	IL_0020:  callvirt instance valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType class NAnt.VSNet.VcProjectConfiguration::get_Type()
-	IL_0025:  ldc.i4.1 
-	IL_0026:  bne.un IL_0033
-
-	IL_002b:  ldloc.0 
-	IL_002c:  callvirt instance bool class NAnt.VSNet.VcProjectConfiguration::get_ManagedExtensions()
-	IL_0031:  br.s IL_0034
-
-	IL_0033:  ldc.i4.0 
-	IL_0034:  stloc.1 
-	IL_0035:  br IL_003a
-
-	IL_003a:  ldloc.1 
-	IL_003b:  ret 
-    } // end of method VcProject::IsManaged
-
-    // method line 387
-    .method family virtual hidebysig 
-           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0xbcec
-	// Code size 46 (0x2e)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call bool class NAnt.VSNet.VcProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
-	IL_0007:  brtrue IL_002d
-
-	IL_000c:  nop 
-	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0012:  ldstr "Project '{0}' is not a valid Visual C++ project."
-	IL_0017:  ldarg.0 
-	IL_0018:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_001d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0022:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0027:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_002c:  throw 
-	IL_002d:  ret 
-    } // end of method VcProject::VerifyProjectXml
-
-    // method line 388
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0xbd1c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.VSNet.ProductVersion	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.VcProject::GetProductVersion(class [System.Xml]System.Xml.XmlElement)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProject::DetermineProductVersion
-
-    // method line 389
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.BuildResult Build (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0xbd38
-	// Code size 969 (0x3c9)
-	.maxstack 4
-	.locals init (
-		class NAnt.VSNet.VcProjectConfiguration	V_0,
-		valuetype NAnt.VSNet.BuildResult	V_1,
-		string	V_2,
-		class NAnt.VSNet.VcConfigurationBase	V_3,
-		class NAnt.VSNet.VcConfigurationBase	V_4,
-		class [mscorlib]System.Collections.IEnumerator	V_5,
-		class [mscorlib]System.IDisposable	V_6,
-		class NAnt.VSNet.VcConfigurationBase	V_7,
-		class [mscorlib]System.Collections.IEnumerator	V_8,
-		class [mscorlib]System.IDisposable	V_9,
-		class NAnt.VSNet.VcConfigurationBase	V_10,
-		class [mscorlib]System.Collections.IEnumerator	V_11,
-		class [mscorlib]System.IDisposable	V_12,
-		class NAnt.VSNet.VcConfigurationBase	V_13,
-		class [mscorlib]System.Collections.IEnumerator	V_14,
-		class [mscorlib]System.IDisposable	V_15,
-		valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType	V_16,
-		class NAnt.VSNet.ReferenceBase	V_17,
-		class [mscorlib]System.Collections.IEnumerator	V_18,
-		class [mscorlib]System.Collections.Hashtable	V_19,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_20,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_21,
-		class [mscorlib]System.IO.FileInfo	V_22,
-		class [mscorlib]System.IO.FileInfo	V_23,
-		class [mscorlib]System.IDisposable	V_24,
-		class [mscorlib]System.IDisposable	V_25)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance void class NAnt.VSNet.ProjectBase::Prepare(class NAnt.VSNet.Configuration)
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_000e:  ldarg.1 
-	IL_000f:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_0014:  castclass NAnt.VSNet.VcProjectConfiguration
-	IL_0019:  stloc.0 
-	IL_001a:  ldarg.0 
-	IL_001b:  ldloc.0 
-	IL_001c:  call instance bool class NAnt.VSNet.VcProject::PreBuild(class NAnt.VSNet.VcProjectConfiguration)
-	IL_0021:  brtrue IL_002e
-
-	IL_0026:  nop 
-	IL_0027:  ldc.i4.0 
-	IL_0028:  stloc.1 
-	IL_0029:  br IL_03c7
-
-	IL_002e:  ldloc.0 
-	IL_002f:  ldstr "VCNMakeTool"
-	IL_0034:  ldstr "BuildCommandLine"
-	IL_0039:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
-	IL_003e:  stloc.2 
-	IL_003f:  ldloc.2 
-	IL_0040:  call bool string::IsNullOrEmpty(string)
-	IL_0045:  brtrue IL_0059
-
-	IL_004a:  nop 
-	IL_004b:  ldarg.0 
-	IL_004c:  ldloc.2 
-	IL_004d:  call instance void class NAnt.VSNet.VcProject::RunNMake(string)
-	IL_0052:  ldc.i4.1 
-	IL_0053:  stloc.1 
-	IL_0054:  br IL_03c7
-
-	IL_0059:  ldnull 
-	IL_005a:  stloc.3 
-	IL_005b:  nop 
-	IL_005c:  ldloc.0 
-	IL_005d:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_IdlConfigs()
-	IL_0062:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
-	IL_0067:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_006c:  stloc.s 5
-	.try { // 0
-	  IL_006e:  br IL_009e
-
-	  IL_0073:  ldloc.s 5
-	  IL_0075:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_007a:  castclass NAnt.VSNet.VcConfigurationBase
-	  IL_007f:  stloc.s 4
-	  IL_0081:  nop 
-	  IL_0082:  ldarg.0 
-	  IL_0083:  ldloc.0 
-	  IL_0084:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_IdlConfigs()
-	  IL_0089:  ldloc.s 4
-	  IL_008b:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_0090:  castclass [mscorlib]System.Collections.ArrayList
-	  IL_0095:  ldloc.0 
-	  IL_0096:  ldloc.s 4
-	  IL_0098:  call instance void class NAnt.VSNet.VcProject::BuildIDLFiles(class [mscorlib]System.Collections.ArrayList, class NAnt.VSNet.VcProjectConfiguration, class NAnt.VSNet.VcConfigurationBase)
-	  IL_009d:  nop 
-	  IL_009e:  ldloc.s 5
-	  IL_00a0:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00a5:  brtrue IL_0073
-
-	  IL_00aa:  leave IL_00c6
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00af:  ldloc.s 5
-	  IL_00b1:  isinst [mscorlib]System.IDisposable
-	  IL_00b6:  dup 
-	  IL_00b7:  stloc.s 6
-	  IL_00b9:  brfalse IL_00c5
-
-	  IL_00be:  ldloc.s 6
-	  IL_00c0:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00c5:  endfinally 
-	} // end handler 0
-	IL_00c6:  nop 
-	IL_00c7:  ldloc.0 
-	IL_00c8:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_SourceConfigs()
-	IL_00cd:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
-	IL_00d2:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_00d7:  stloc.s 8
-	.try { // 1
-	  IL_00d9:  br IL_011b
-
-	  IL_00de:  ldloc.s 8
-	  IL_00e0:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_00e5:  castclass NAnt.VSNet.VcConfigurationBase
-	  IL_00ea:  stloc.s 7
-	  IL_00ec:  nop 
-	  IL_00ed:  ldloc.s 7
-	  IL_00ef:  callvirt instance valuetype NAnt.VSNet.Types.UsePrecompiledHeader class NAnt.VSNet.VcConfigurationBase::get_UsePrecompiledHeader()
-	  IL_00f4:  ldc.i4.1 
-	  IL_00f5:  bne.un IL_011a
-
-	  IL_00fa:  nop 
-	  IL_00fb:  ldarg.0 
-	  IL_00fc:  ldloc.0 
-	  IL_00fd:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_SourceConfigs()
-	  IL_0102:  ldloc.s 7
-	  IL_0104:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_0109:  castclass [mscorlib]System.Collections.ArrayList
-	  IL_010e:  ldarg.1 
-	  IL_010f:  ldloc.s 7
-	  IL_0111:  call instance void class NAnt.VSNet.VcProject::BuildCPPFiles(class [mscorlib]System.Collections.ArrayList, class NAnt.VSNet.Configuration, class NAnt.VSNet.VcConfigurationBase)
-	  IL_0116:  ldloc.s 7
-	  IL_0118:  stloc.3 
-	  IL_0119:  nop 
-	  IL_011a:  nop 
-	  IL_011b:  ldloc.s 8
-	  IL_011d:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0122:  brtrue IL_00de
-
-	  IL_0127:  leave IL_0143
-
-	} // end .try 1
-	finally  { // 1
-	  IL_012c:  ldloc.s 8
-	  IL_012e:  isinst [mscorlib]System.IDisposable
-	  IL_0133:  dup 
-	  IL_0134:  stloc.s 9
-	  IL_0136:  brfalse IL_0142
-
-	  IL_013b:  ldloc.s 9
-	  IL_013d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0142:  endfinally 
-	} // end handler 1
-	IL_0143:  nop 
-	IL_0144:  ldloc.0 
-	IL_0145:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_SourceConfigs()
-	IL_014a:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
-	IL_014f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0154:  stloc.s 11
-	.try { // 2
-	  IL_0156:  br IL_0190
-
-	  IL_015b:  ldloc.s 11
-	  IL_015d:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0162:  castclass NAnt.VSNet.VcConfigurationBase
-	  IL_0167:  stloc.s 10
-	  IL_0169:  nop 
-	  IL_016a:  ldloc.s 10
-	  IL_016c:  ldloc.3 
-	  IL_016d:  beq IL_018f
-
-	  IL_0172:  nop 
-	  IL_0173:  ldarg.0 
-	  IL_0174:  ldloc.0 
-	  IL_0175:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_SourceConfigs()
-	  IL_017a:  ldloc.s 10
-	  IL_017c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_0181:  castclass [mscorlib]System.Collections.ArrayList
-	  IL_0186:  ldarg.1 
-	  IL_0187:  ldloc.s 10
-	  IL_0189:  call instance void class NAnt.VSNet.VcProject::BuildCPPFiles(class [mscorlib]System.Collections.ArrayList, class NAnt.VSNet.Configuration, class NAnt.VSNet.VcConfigurationBase)
-	  IL_018e:  nop 
-	  IL_018f:  nop 
-	  IL_0190:  ldloc.s 11
-	  IL_0192:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0197:  brtrue IL_015b
-
-	  IL_019c:  leave IL_01b8
-
-	} // end .try 2
-	finally  { // 2
-	  IL_01a1:  ldloc.s 11
-	  IL_01a3:  isinst [mscorlib]System.IDisposable
-	  IL_01a8:  dup 
-	  IL_01a9:  stloc.s 12
-	  IL_01ab:  brfalse IL_01b7
-
-	  IL_01b0:  ldloc.s 12
-	  IL_01b2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01b7:  endfinally 
-	} // end handler 2
-	IL_01b8:  nop 
-	IL_01b9:  ldloc.0 
-	IL_01ba:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_RcConfigs()
-	IL_01bf:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
-	IL_01c4:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_01c9:  stloc.s 14
-	.try { // 3
-	  IL_01cb:  br IL_01fb
-
-	  IL_01d0:  ldloc.s 14
-	  IL_01d2:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_01d7:  castclass NAnt.VSNet.VcConfigurationBase
-	  IL_01dc:  stloc.s 13
-	  IL_01de:  nop 
-	  IL_01df:  ldarg.0 
-	  IL_01e0:  ldloc.0 
-	  IL_01e1:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::get_RcConfigs()
-	  IL_01e6:  ldloc.s 13
-	  IL_01e8:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_01ed:  castclass [mscorlib]System.Collections.ArrayList
-	  IL_01f2:  ldloc.0 
-	  IL_01f3:  ldloc.s 13
-	  IL_01f5:  call instance void class NAnt.VSNet.VcProject::BuildResourceFiles(class [mscorlib]System.Collections.ArrayList, class NAnt.VSNet.VcProjectConfiguration, class NAnt.VSNet.VcConfigurationBase)
-	  IL_01fa:  nop 
-	  IL_01fb:  ldloc.s 14
-	  IL_01fd:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0202:  brtrue IL_01d0
-
-	  IL_0207:  leave IL_0223
-
-	} // end .try 3
-	finally  { // 3
-	  IL_020c:  ldloc.s 14
-	  IL_020e:  isinst [mscorlib]System.IDisposable
-	  IL_0213:  dup 
-	  IL_0214:  stloc.s 15
-	  IL_0216:  brfalse IL_0222
-
-	  IL_021b:  ldloc.s 15
-	  IL_021d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0222:  endfinally 
-	} // end handler 3
-	IL_0223:  ldloc.0 
-	IL_0224:  callvirt instance valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType class NAnt.VSNet.VcProjectConfiguration::get_Type()
-	IL_0229:  stloc.s 16
-	IL_022b:  ldloc.s 16
-	IL_022d:  ldc.i4.4 
-	IL_022e:  beq IL_0248
-
-	IL_0233:  ldloc.s 16
-	IL_0235:  ldc.i4.1 
-	IL_0236:  beq IL_0254
-
-	IL_023b:  ldloc.s 16
-	IL_023d:  ldc.i4.2 
-	IL_023e:  beq IL_0254
-
-	IL_0243:  br IL_0274
-
-	IL_0248:  ldarg.0 
-	IL_0249:  ldloc.0 
-	IL_024a:  call instance void class NAnt.VSNet.VcProject::RunLibrarian(class NAnt.VSNet.VcProjectConfiguration)
-	IL_024f:  br IL_0274
-
-	IL_0254:  ldarg.0 
-	IL_0255:  ldloc.0 
-	IL_0256:  call instance bool class NAnt.VSNet.VcProject::PreLink(class NAnt.VSNet.VcProjectConfiguration)
-	IL_025b:  brtrue IL_0268
-
-	IL_0260:  nop 
-	IL_0261:  ldc.i4.0 
-	IL_0262:  stloc.1 
-	IL_0263:  br IL_03c7
-
-	IL_0268:  ldarg.0 
-	IL_0269:  ldarg.1 
-	IL_026a:  call instance void class NAnt.VSNet.VcProject::RunLinker(class NAnt.VSNet.Configuration)
-	IL_026f:  br IL_0274
-
-	IL_0274:  ldarg.0 
-	IL_0275:  ldc.i4 2000
-	IL_027a:  ldstr "Copying references:"
-	IL_027f:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0284:  nop 
-	IL_0285:  ldarg.0 
-	IL_0286:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_references
-	IL_028b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0290:  stloc.s 18
-	.try { // 5
-	  IL_0292:  br IL_036f
-
-	  IL_0297:  ldloc.s 18
-	  IL_0299:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_029e:  castclass NAnt.VSNet.ReferenceBase
-	  IL_02a3:  stloc.s 17
-	  IL_02a5:  nop 
-	  IL_02a6:  ldloc.s 17
-	  IL_02a8:  callvirt instance bool class NAnt.VSNet.ReferenceBase::get_CopyLocal()
-	  IL_02ad:  brfalse IL_036e
-
-	  IL_02b2:  nop 
-	  IL_02b3:  ldarg.0 
-	  IL_02b4:  ldc.i4 2000
-	  IL_02b9:  ldstr " - "
-	  IL_02be:  ldloc.s 17
-	  IL_02c0:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	  IL_02c5:  call string string::Concat(string, string)
-	  IL_02ca:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	  IL_02cf:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	  IL_02d4:  stloc.s 19
-	  IL_02d6:  ldloc.s 17
-	  IL_02d8:  ldarg.1 
-	  IL_02d9:  ldloc.s 19
-	  IL_02db:  callvirt instance void class NAnt.VSNet.ReferenceBase::GetOutputFiles(class NAnt.VSNet.Configuration, class [mscorlib]System.Collections.Hashtable)
-	  IL_02e0:  nop 
-	  IL_02e1:  ldloc.s 19
-	  IL_02e3:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	  IL_02e8:  stloc.s 21
-	  .try { // 4
-	    IL_02ea:  br IL_0345
-
-	    IL_02ef:  ldloc.s 21
-	    IL_02f1:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_02f6:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	    IL_02fb:  stloc.s 20
-	    IL_02fd:  nop 
-	    IL_02fe:  ldloca.s 20
-	    IL_0300:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	    IL_0305:  castclass [mscorlib]System.String
-	    IL_030a:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	    IL_030f:  stloc.s 22
-	    IL_0311:  ldloc.0 
-	    IL_0312:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	    IL_0317:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	    IL_031c:  ldloca.s 20
-	    IL_031e:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	    IL_0323:  castclass [mscorlib]System.String
-	    IL_0328:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	    IL_032d:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	    IL_0332:  stloc.s 23
-	    IL_0334:  ldarg.0 
-	    IL_0335:  ldloc.s 22
-	    IL_0337:  ldloc.s 23
-	    IL_0339:  ldarg.0 
-	    IL_033a:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	    IL_033f:  call instance void class NAnt.VSNet.ProjectBase::CopyFile(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo, class [NAnt.Core]NAnt.Core.Task)
-	    IL_0344:  nop 
-	    IL_0345:  ldloc.s 21
-	    IL_0347:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_034c:  brtrue IL_02ef
-
-	    IL_0351:  leave IL_036d
-
-	  } // end .try 4
-	  finally  { // 4
-	    IL_0356:  ldloc.s 21
-	    IL_0358:  isinst [mscorlib]System.IDisposable
-	    IL_035d:  dup 
-	    IL_035e:  stloc.s 24
-	    IL_0360:  brfalse IL_036c
-
-	    IL_0365:  ldloc.s 24
-	    IL_0367:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_036c:  endfinally 
-	  } // end handler 4
-	  IL_036d:  nop 
-	  IL_036e:  nop 
-	  IL_036f:  ldloc.s 18
-	  IL_0371:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0376:  brtrue IL_0297
-
-	  IL_037b:  leave IL_0397
-
-	} // end .try 5
-	finally  { // 5
-	  IL_0380:  ldloc.s 18
-	  IL_0382:  isinst [mscorlib]System.IDisposable
-	  IL_0387:  dup 
-	  IL_0388:  stloc.s 25
-	  IL_038a:  brfalse IL_0396
-
-	  IL_038f:  ldloc.s 25
-	  IL_0391:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0396:  endfinally 
-	} // end handler 5
-	IL_0397:  ldarg.0 
-	IL_0398:  ldarg.1 
-	IL_0399:  ldloc.0 
-	IL_039a:  call instance bool class NAnt.VSNet.VcProject::RunCustomBuildStep(class NAnt.VSNet.Configuration, class NAnt.VSNet.VcProjectConfiguration)
-	IL_039f:  brtrue IL_03ac
-
-	IL_03a4:  nop 
-	IL_03a5:  ldc.i4.0 
-	IL_03a6:  stloc.1 
-	IL_03a7:  br IL_03c7
-
-	IL_03ac:  ldarg.0 
-	IL_03ad:  ldloc.0 
-	IL_03ae:  call instance bool class NAnt.VSNet.VcProject::PostBuild(class NAnt.VSNet.VcProjectConfiguration)
-	IL_03b3:  brtrue IL_03c0
-
-	IL_03b8:  nop 
-	IL_03b9:  ldc.i4.0 
-	IL_03ba:  stloc.1 
-	IL_03bb:  br IL_03c7
-
-	IL_03c0:  ldc.i4.1 
-	IL_03c1:  stloc.1 
-	IL_03c2:  br IL_03c7
-
-	IL_03c7:  ldloc.1 
-	IL_03c8:  ret 
-    } // end of method VcProject::Build
-
-    // method line 390
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_ProjectFiles ()  cil managed 
-    {
-        // Method begins at RVA 0xc15c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::_projectFiles
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProject::get_ProjectFiles
-
-    // method line 391
-    .method famorassem virtual hidebysig 
-           instance default string ExpandMacro (string macro)  cil managed 
-    {
-        // Method begins at RVA 0xc178
-	// Code size 326 (0x146)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>	V_1,
-		int32	V_2,
-		string	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0007:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  brfalse IL_0137
-
-	IL_0013:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcProject::'<>f__switch$map1'
-	IL_0018:  brtrue IL_007e
-
-	IL_001d:  ldc.i4.7 
-	IL_001e:  newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::'.ctor'(int32)
-	IL_0023:  stloc.1 
-	IL_0024:  ldloc.1 
-	IL_0025:  ldstr "inputdir"
-	IL_002a:  ldc.i4.0 
-	IL_002b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0030:  ldloc.1 
-	IL_0031:  ldstr "inputname"
-	IL_0036:  ldc.i4.1 
-	IL_0037:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_003c:  ldloc.1 
-	IL_003d:  ldstr "inputpath"
-	IL_0042:  ldc.i4.2 
-	IL_0043:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0048:  ldloc.1 
-	IL_0049:  ldstr "inputfilename"
-	IL_004e:  ldc.i4.3 
-	IL_004f:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0054:  ldloc.1 
-	IL_0055:  ldstr "inputext"
-	IL_005a:  ldc.i4.4 
-	IL_005b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0060:  ldloc.1 
-	IL_0061:  ldstr "safeparentname"
-	IL_0066:  ldc.i4.5 
-	IL_0067:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_006c:  ldloc.1 
-	IL_006d:  ldstr "safeinputname"
-	IL_0072:  ldc.i4.6 
-	IL_0073:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0078:  ldloc.1 
-	IL_0079:  stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcProject::'<>f__switch$map1'
-	IL_007e:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.VcProject::'<>f__switch$map1'
-	IL_0083:  ldloc.0 
-	IL_0084:  ldloca.s 2
-	IL_0086:  callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::TryGetValue(!0, [out] !1&)
-	IL_008b:  brfalse IL_0137
-
-	IL_0090:  ldloc.2 
-	IL_0091:  switch (
-	  IL_00bb,
-	  IL_00db,
-	  IL_00ec,
-	  IL_00f8,
-	  IL_0109,
-	  IL_011a,
-	  IL_0126,
-	  IL_0137)
-	IL_00b6:  br IL_0137
-
-	IL_00bb:  ldarg.0 
-	IL_00bc:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_00c1:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_00c6:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_00cb:  box [mscorlib]System.Char
-	IL_00d0:  call string string::Concat(object, object)
-	IL_00d5:  stloc.3 
-	IL_00d6:  br IL_0144
-
-	IL_00db:  ldarg.0 
-	IL_00dc:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_00e1:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_00e6:  stloc.3 
-	IL_00e7:  br IL_0144
-
-	IL_00ec:  ldarg.0 
-	IL_00ed:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_00f2:  stloc.3 
-	IL_00f3:  br IL_0144
-
-	IL_00f8:  ldarg.0 
-	IL_00f9:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_00fe:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_0103:  stloc.3 
-	IL_0104:  br IL_0144
-
-	IL_0109:  ldarg.0 
-	IL_010a:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_010f:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	IL_0114:  stloc.3 
-	IL_0115:  br IL_0144
-
-	IL_011a:  ldarg.0 
-	IL_011b:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_0120:  stloc.3 
-	IL_0121:  br IL_0144
-
-	IL_0126:  ldarg.0 
-	IL_0127:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_012c:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_0131:  stloc.3 
-	IL_0132:  br IL_0144
-
-	IL_0137:  ldarg.0 
-	IL_0138:  ldarg.1 
-	IL_0139:  call instance string class NAnt.VSNet.ProjectBase::ExpandMacro(string)
-	IL_013e:  stloc.3 
-	IL_013f:  br IL_0144
-
-	IL_0144:  ldloc.3 
-	IL_0145:  ret 
-    } // end of method VcProject::ExpandMacro
-
-    // method line 392
-    .method assembly hidebysig 
-           instance default string GetObjOutputFile (string fileName, class NAnt.VSNet.VcConfigurationBase fileConfig, string intermediateDir)  cil managed 
-    {
-        // Method begins at RVA 0xc2cc
-	// Code size 34 (0x22)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance string class NAnt.VSNet.VcProject::GetObjectFile(class NAnt.VSNet.VcConfigurationBase)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  brtrue IL_0013
-
-	IL_000f:  nop 
-	IL_0010:  ldarg.3 
-	IL_0011:  stloc.0 
-	IL_0012:  nop 
-	IL_0013:  ldarg.1 
-	IL_0014:  ldloc.0 
-	IL_0015:  call string class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::GetObjOutputFile(string, string)
-	IL_001a:  stloc.1 
-	IL_001b:  br IL_0020
-
-	IL_0020:  ldloc.1 
-	IL_0021:  ret 
-    } // end of method VcProject::GetObjOutputFile
-
-    // method line 393
-    .method assembly hidebysig 
-           instance default string GetResourceOutputFile (string fileName, class NAnt.VSNet.VcConfigurationBase fileConfig)  cil managed 
-    {
-        // Method begins at RVA 0xc2fc
-	// Code size 46 (0x2e)
-	.maxstack 5
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_000c:  ldarg.2 
-	IL_000d:  ldstr "VCResourceCompilerTool"
-	IL_0012:  ldstr "ResourceOutputFileName"
-	IL_0017:  ldstr "$(IntDir)/$(InputName).res"
-	IL_001c:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string, string)
-	IL_0021:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0026:  stloc.0 
-	IL_0027:  br IL_002c
-
-	IL_002c:  ldloc.0 
-	IL_002d:  ret 
-    } // end of method VcProject::GetResourceOutputFile
-
-    // method line 394
-    .method family virtual hidebysig newslot 
-           instance default class NAnt.VSNet.ReferenceBase CreateReference (class NAnt.VSNet.SolutionBase solution, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
-    {
-        // Method begins at RVA 0xc338
-	// Code size 225 (0xe1)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		class NAnt.VSNet.ReferenceBase	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "solution"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.2 
-	IL_0014:  brtrue IL_0025
-
-	IL_0019:  nop 
-	IL_001a:  ldstr "xmlDefinition"
-	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0024:  throw 
-	IL_0025:  ldarg.2 
-	IL_0026:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_002b:  stloc.0 
-	IL_002c:  ldloc.0 
-	IL_002d:  brfalse IL_00bf
-
-	IL_0032:  ldloc.0 
-	IL_0033:  ldstr "ProjectReference"
-	IL_0038:  call bool string::op_Equality(string, string)
-	IL_003d:  brtrue IL_0067
-
-	IL_0042:  ldloc.0 
-	IL_0043:  ldstr "AssemblyReference"
-	IL_0048:  call bool string::op_Equality(string, string)
-	IL_004d:  brtrue IL_008d
-
-	IL_0052:  ldloc.0 
-	IL_0053:  ldstr "ActiveXReference"
-	IL_0058:  call bool string::op_Equality(string, string)
-	IL_005d:  brtrue IL_00a6
-
-	IL_0062:  br IL_00bf
-
-	IL_0067:  ldarg.2 
-	IL_0068:  ldarg.0 
-	IL_0069:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
-	IL_006e:  ldarg.0 
-	IL_006f:  ldarg.1 
-	IL_0070:  ldarg.1 
-	IL_0071:  callvirt instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.SolutionBase::get_TemporaryFiles()
-	IL_0076:  ldarg.0 
-	IL_0077:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
-	IL_007c:  ldarg.0 
-	IL_007d:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_OutputDir()
-	IL_0082:  newobj instance void class NAnt.VSNet.VcProjectReference::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class NAnt.VSNet.SolutionBase, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class [mscorlib]System.IO.DirectoryInfo)
-	IL_0087:  stloc.1 
-	IL_0088:  br IL_00df
-
-	IL_008d:  ldarg.2 
-	IL_008e:  ldarg.0 
-	IL_008f:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
-	IL_0094:  ldarg.0 
-	IL_0095:  ldarg.0 
-	IL_0096:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
-	IL_009b:  newobj instance void class NAnt.VSNet.VcAssemblyReference::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
-	IL_00a0:  stloc.1 
-	IL_00a1:  br IL_00df
-
-	IL_00a6:  ldarg.2 
-	IL_00a7:  ldarg.0 
-	IL_00a8:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
-	IL_00ad:  ldarg.0 
-	IL_00ae:  ldarg.0 
-	IL_00af:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
-	IL_00b4:  newobj instance void class NAnt.VSNet.VcWrapperReference::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
-	IL_00b9:  stloc.1 
-	IL_00ba:  br IL_00df
-
-	IL_00bf:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00c4:  ldstr "\"{0}\" reference not supported."
-	IL_00c9:  ldarg.2 
-	IL_00ca:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_00cf:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00d4:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_00d9:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_00de:  throw 
-	IL_00df:  ldloc.1 
-	IL_00e0:  ret 
-    } // end of method VcProject::CreateReference
-
-    // method line 395
-    .method private hidebysig 
-           instance default void RunNMake (string nmakeCommand)  cil managed 
-    {
-        // Method begins at RVA 0xc428
-	// Code size 132 (0x84)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		class [NAnt.Core]NAnt.Core.Tasks.ExecTask	V_1)
-	IL_0000:  nop 
-	IL_0001:  call string class [mscorlib]System.IO.Directory::GetCurrentDirectory()
-	IL_0006:  stloc.0 
-	.try { // 0
-	  IL_0007:  nop 
-	  IL_0008:  ldarg.0 
-	  IL_0009:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	  IL_000e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0013:  call void class [mscorlib]System.IO.Directory::SetCurrentDirectory(string)
-	  IL_0018:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.ExecTask::'.ctor'()
-	  IL_001d:  stloc.1 
-	  IL_001e:  ldloc.1 
-	  IL_001f:  ldarg.0 
-	  IL_0020:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	  IL_0025:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_002a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	  IL_002f:  ldloc.1 
-	  IL_0030:  ldarg.0 
-	  IL_0031:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	  IL_0036:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	  IL_003b:  ldloc.1 
-	  IL_003c:  ldarg.0 
-	  IL_003d:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	  IL_0042:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	  IL_0047:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
-	  IL_004c:  ldloc.1 
-	  IL_004d:  ldstr "/c \""
-	  IL_0052:  ldarg.1 
-	  IL_0053:  ldstr "\""
-	  IL_0058:  call string string::Concat(string, string, string)
-	  IL_005d:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.ExecTask::set_CommandLineArguments(string)
-	  IL_0062:  ldloc.1 
-	  IL_0063:  ldstr "cmd.exe"
-	  IL_0068:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.ExecTask::set_FileName(string)
-	  IL_006d:  ldarg.0 
-	  IL_006e:  ldloc.1 
-	  IL_006f:  call instance void class NAnt.VSNet.VcProject::ExecuteInProjectDirectory(class [NAnt.Core]NAnt.Core.Task)
-	  IL_0074:  nop 
-	  IL_0075:  leave IL_0083
-
-	} // end .try 0
-	finally  { // 0
-	  IL_007a:  nop 
-	  IL_007b:  ldloc.0 
-	  IL_007c:  call void class [mscorlib]System.IO.Directory::SetCurrentDirectory(string)
-	  IL_0081:  nop 
-	  IL_0082:  endfinally 
-	} // end handler 0
-	IL_0083:  ret 
-    } // end of method VcProject::RunNMake
-
-    // method line 396
-    .method private hidebysig 
-           instance default void BuildCPPFiles (class [mscorlib]System.Collections.ArrayList fileNames, class NAnt.VSNet.Configuration solutionConfiguration, class NAnt.VSNet.VcConfigurationBase fileConfig)  cil managed 
-    {
-        // Method begins at RVA 0xc4c8
-	// Code size 3078 (0xc06)
-	.maxstack 5
-	.locals init (
-		class NAnt.VSNet.VcProjectConfiguration	V_0,
-		string	V_1,
-		class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask	V_2,
-		string	V_3,
-		string	V_4,
-		valuetype NAnt.VSNet.Types.UsePrecompiledHeader	V_5,
-		string	V_6,
-		string	V_7,
-		string[]	V_8,
-		int32	V_9,
-		string	V_10,
-		string	V_11,
-		string[]	V_12,
-		int32	V_13,
-		string	V_14,
-		string	V_15,
-		string[]	V_16,
-		int32	V_17,
-		class NAnt.VSNet.ReferenceBase	V_18,
-		class [mscorlib]System.Collections.IEnumerator	V_19,
-		class [System]System.Collections.Specialized.StringCollection	V_20,
-		string	V_21,
-		class [System]System.Collections.Specialized.StringEnumerator	V_22,
-		class [mscorlib]System.IDisposable	V_23,
-		class [mscorlib]System.IDisposable	V_24,
-		string	V_25,
-		valuetype NAnt.VSNet.ProductVersion	V_26,
-		string	V_27,
-		string	V_28,
-		string	V_29,
-		string	V_30,
-		class [mscorlib]System.Collections.IEnumerator	V_31,
-		class [mscorlib]System.IDisposable	V_32,
-		string	V_33,
-		string	V_34,
-		string[]	V_35,
-		int32	V_36,
-		class [NAnt.Core]NAnt.Core.Types.Option	V_37,
-		string	V_38,
-		string	V_39,
-		string[]	V_40,
-		int32	V_41,
-		class [NAnt.Core]NAnt.Core.Types.Option	V_42,
-		string	V_43,
-		class [mscorlib]System.IO.StringReader	V_44,
-		string	V_45,
-		string	V_46,
-		string[]	V_47,
-		int32	V_48,
-		string	V_49,
-		string	V_50,
-		string	V_51,
-		valuetype NAnt.VSNet.VcArgumentMap/ArgGroup	V_52,
-		string	V_53,
-		int32	V_54,
-		class [mscorlib]System.Collections.Hashtable	V_55,
-		string	V_56,
-		class [mscorlib]System.Collections.IEnumerator	V_57,
-		class [NAnt.Core]NAnt.Core.Types.Argument	V_58,
-		class [mscorlib]System.IDisposable	V_59,
-		valuetype NAnt.VSNet.Types.UseOfATL	V_60)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_0007:  ldarg.2 
-	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_000d:  castclass NAnt.VSNet.VcProjectConfiguration
-	IL_0012:  stloc.0 
-	IL_0013:  ldarg.0 
-	IL_0014:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0019:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001e:  ldloc.0 
-	IL_001f:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::get_IntermediateDir()
-	IL_0024:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0029:  stloc.1 
-	IL_002a:  newobj instance void class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::'.ctor'()
-	IL_002f:  stloc.2 
-	IL_0030:  ldloc.2 
-	IL_0031:  ldarg.0 
-	IL_0032:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0037:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_003c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0041:  ldloc.2 
-	IL_0042:  ldarg.0 
-	IL_0043:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0048:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_004d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0052:  ldloc.2 
-	IL_0053:  ldarg.0 
-	IL_0054:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0059:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_005e:  ldloc.2 
-	IL_005f:  ldarg.0 
-	IL_0060:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0065:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_006a:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
-	IL_006f:  ldloc.2 
-	IL_0070:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	IL_0075:  ldloc.2 
-	IL_0076:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_IncludeDirs()
-	IL_007b:  ldloc.2 
-	IL_007c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0081:  ldloc.2 
-	IL_0082:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_Sources()
-	IL_0087:  ldloc.2 
-	IL_0088:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_008d:  ldloc.2 
-	IL_008e:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_MetaDataIncludeDirs()
-	IL_0093:  ldloc.2 
-	IL_0094:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0099:  ldloc.2 
-	IL_009a:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_ForcedUsingFiles()
-	IL_009f:  ldloc.2 
-	IL_00a0:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_00a5:  ldloc.2 
-	IL_00a6:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_IncludeDirs()
-	IL_00ab:  ldloc.2 
-	IL_00ac:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_00b1:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_00b6:  ldloc.2 
-	IL_00b7:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_Sources()
-	IL_00bc:  ldloc.2 
-	IL_00bd:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_00c2:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_00c7:  ldloc.2 
-	IL_00c8:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_MetaDataIncludeDirs()
-	IL_00cd:  ldloc.2 
-	IL_00ce:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_00d3:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_00d8:  ldloc.2 
-	IL_00d9:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_ForcedUsingFiles()
-	IL_00de:  ldloc.2 
-	IL_00df:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_00e4:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_00e9:  ldloc.2 
-	IL_00ea:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_IncludeDirs()
-	IL_00ef:  ldloc.2 
-	IL_00f0:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_00f5:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_00fa:  ldloc.2 
-	IL_00fb:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_Sources()
-	IL_0100:  ldloc.2 
-	IL_0101:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0106:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_010b:  ldloc.2 
-	IL_010c:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_MetaDataIncludeDirs()
-	IL_0111:  ldloc.2 
-	IL_0112:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0117:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_011c:  ldloc.2 
-	IL_011d:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_ForcedUsingFiles()
-	IL_0122:  ldloc.2 
-	IL_0123:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0128:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_012d:  ldloc.2 
-	IL_012e:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_IncludeDirs()
-	IL_0133:  ldarg.0 
-	IL_0134:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0139:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_013e:  ldloc.2 
-	IL_013f:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_Sources()
-	IL_0144:  ldarg.0 
-	IL_0145:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_014a:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_014f:  ldloc.2 
-	IL_0150:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_MetaDataIncludeDirs()
-	IL_0155:  ldarg.0 
-	IL_0156:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_015b:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_0160:  ldloc.2 
-	IL_0161:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::get_ForcedUsingFiles()
-	IL_0166:  ldarg.0 
-	IL_0167:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_016c:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_0171:  ldloc.2 
-	IL_0172:  ldloc.1 
-	IL_0173:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0178:  callvirt instance void class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.ClTask::set_OutputDir(class [mscorlib]System.IO.DirectoryInfo)
-	IL_017d:  ldarg.3 
-	IL_017e:  callvirt instance valuetype NAnt.VSNet.Types.UsePrecompiledHeader class NAnt.VSNet.VcConfigurationBase::get_UsePrecompiledHeader()
-	IL_0183:  brfalse IL_0246
-
-	IL_0188:  ldarg.3 
-	IL_0189:  callvirt instance valuetype NAnt.VSNet.Types.UsePrecompiledHeader class NAnt.VSNet.VcConfigurationBase::get_UsePrecompiledHeader()
-	IL_018e:  ldc.i4.m1 
-	IL_018f:  beq IL_0246
+	IL_0188:  ldarg.3 
+	IL_0189:  callvirt instance valuetype NAnt.VSNet.Types.UsePrecompiledHeader class NAnt.VSNet.VcConfigurationBase::get_UsePrecompiledHeader()
+	IL_018e:  ldc.i4.m1 
+	IL_018f:  beq IL_0246
 
 	IL_0194:  nop 
 	IL_0195:  ldarg.3 
@@ -18183,11 +13368,11 @@
 	IL_0c05:  ret 
     } // end of method VcProject::BuildCPPFiles
 
-    // method line 397
+    // method line 216
     .method private hidebysig 
            instance default void BuildResourceFiles (class [mscorlib]System.Collections.ArrayList fileNames, class NAnt.VSNet.VcProjectConfiguration projectConfig, class NAnt.VSNet.VcConfigurationBase fileConfig)  cil managed 
     {
-        // Method begins at RVA 0xd11c
+        // Method begins at RVA 0xc10c
 	// Code size 769 (0x301)
 	.maxstack 5
 	.locals init (
@@ -18502,11 +13687,11 @@
 	IL_0300:  ret 
     } // end of method VcProject::BuildResourceFiles
 
-    // method line 398
+    // method line 217
     .method private hidebysig 
            instance default void BuildIDLFiles (class [mscorlib]System.Collections.ArrayList fileNames, class NAnt.VSNet.VcProjectConfiguration projectConfig, class NAnt.VSNet.VcConfigurationBase fileConfig)  cil managed 
     {
-        // Method begins at RVA 0xd43c
+        // Method begins at RVA 0xc42c
 	// Code size 1677 (0x68d)
 	.maxstack 5
 	.locals init (
@@ -19154,11 +14339,11 @@
 	IL_068c:  ret 
     } // end of method VcProject::BuildIDLFiles
 
-    // method line 399
+    // method line 218
     .method private hidebysig 
            instance default bool RunCustomBuildStep (class NAnt.VSNet.Configuration solutionConfiguration, class NAnt.VSNet.VcProjectConfiguration projectConfig)  cil managed 
     {
-        // Method begins at RVA 0xdaf4
+        // Method begins at RVA 0xcae4
 	// Code size 517 (0x205)
 	.maxstack 4
 	.locals init (
@@ -19402,11 +14587,11 @@
 	IL_0204:  ret 
     } // end of method VcProject::RunCustomBuildStep
 
-    // method line 400
+    // method line 219
     .method private hidebysig 
            instance default void RunLibrarian (class NAnt.VSNet.VcProjectConfiguration projectConfig)  cil managed 
     {
-        // Method begins at RVA 0xdd08
+        // Method begins at RVA 0xccf8
 	// Code size 862 (0x35e)
 	.maxstack 5
 	.locals init (
@@ -19778,11 +14963,11 @@
 	IL_035d:  ret 
     } // end of method VcProject::RunLibrarian
 
-    // method line 401
+    // method line 220
     .method private hidebysig 
            instance default void RunLinker (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xe084
+        // Method begins at RVA 0xd074
 	// Code size 2833 (0xb11)
 	.maxstack 5
 	.locals init (
@@ -20924,11 +16109,11 @@
 	IL_0b10:  ret 
     } // end of method VcProject::RunLinker
 
-    // method line 402
+    // method line 221
     .method private hidebysig 
            instance default void ExecuteInProjectDirectory (class [NAnt.Core]NAnt.Core.Task task)  cil managed 
     {
-        // Method begins at RVA 0xebd8
+        // Method begins at RVA 0xdbc8
 	// Code size 101 (0x65)
 	.maxstack 2
 	.locals init (
@@ -20973,11 +16158,11 @@
 	IL_0064:  ret 
     } // end of method VcProject::ExecuteInProjectDirectory
 
-    // method line 403
+    // method line 222
     .method private hidebysig 
            instance default string MergeToolSetting (class NAnt.VSNet.VcProjectConfiguration projectConfig, class NAnt.VSNet.VcConfigurationBase fileConfig, string tool, string setting)  cil managed 
     {
-        // Method begins at RVA 0xec5c
+        // Method begins at RVA 0xdc4c
 	// Code size 291 (0x123)
 	.maxstack 3
 	.locals init (
@@ -21123,11 +16308,11 @@
 	IL_0122:  ret 
     } // end of method VcProject::MergeToolSetting
 
-    // method line 404
+    // method line 223
     .method private hidebysig 
            instance default bool PreBuild (class NAnt.VSNet.VcProjectConfiguration projectConfig)  cil managed 
     {
-        // Method begins at RVA 0xed8c
+        // Method begins at RVA 0xdd7c
 	// Code size 134 (0x86)
 	.maxstack 4
 	.locals init (
@@ -21188,11 +16373,11 @@
 	IL_0085:  ret 
     } // end of method VcProject::PreBuild
 
-    // method line 405
+    // method line 224
     .method private hidebysig 
            instance default bool PostBuild (class NAnt.VSNet.VcProjectConfiguration projectConfig)  cil managed 
     {
-        // Method begins at RVA 0xee20
+        // Method begins at RVA 0xde10
 	// Code size 134 (0x86)
 	.maxstack 4
 	.locals init (
@@ -21253,11 +16438,11 @@
 	IL_0085:  ret 
     } // end of method VcProject::PostBuild
 
-    // method line 406
+    // method line 225
     .method private hidebysig 
            instance default bool PreLink (class NAnt.VSNet.VcProjectConfiguration projectConfig)  cil managed 
     {
-        // Method begins at RVA 0xeeb4
+        // Method begins at RVA 0xdea4
 	// Code size 134 (0x86)
 	.maxstack 4
 	.locals init (
@@ -21318,11 +16503,11 @@
 	IL_0085:  ret 
     } // end of method VcProject::PreLink
 
-    // method line 407
+    // method line 226
     .method private hidebysig 
            instance default bool ExecuteBuildEvent (string buildEvent, string buildCommandLine, class NAnt.VSNet.ConfigurationBase config)  cil managed 
     {
-        // Method begins at RVA 0xef48
+        // Method begins at RVA 0xdf38
 	// Code size 85 (0x55)
 	.maxstack 6
 	.locals init (
@@ -21374,11 +16559,11 @@
 	IL_0054:  ret 
     } // end of method VcProject::ExecuteBuildEvent
 
-    // method line 408
+    // method line 227
     .method private hidebysig 
            instance default string GetObjectFile (class NAnt.VSNet.VcConfigurationBase fileConfig)  cil managed 
     {
-        // Method begins at RVA 0xefbc
+        // Method begins at RVA 0xdfac
 	// Code size 67 (0x43)
 	.maxstack 4
 	.locals init (
@@ -21412,11 +16597,11 @@
 	IL_0042:  ret 
     } // end of method VcProject::GetObjectFile
 
-    // method line 409
+    // method line 228
     .method private hidebysig 
            instance default class NAnt.VSNet.ProjectBaseCollection GetVcProjectDependencies ()  cil managed 
     {
-        // Method begins at RVA 0xf00c
+        // Method begins at RVA 0xdffc
 	// Code size 254 (0xfe)
 	.maxstack 2
 	.locals init (
@@ -21545,11 +16730,11 @@
 	IL_00fd:  ret 
     } // end of method VcProject::GetVcProjectDependencies
 
-    // method line 410
+    // method line 229
     .method public static hidebysig 
            default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
     {
-        // Method begins at RVA 0xf134
+        // Method begins at RVA 0xe124
 	// Code size 20 (0x14)
 	.maxstack 2
 	.locals init (
@@ -21565,11 +16750,11 @@
 	IL_0013:  ret 
     } // end of method VcProject::LoadGuid
 
-    // method line 411
+    // method line 230
     .method public static hidebysig 
            default bool IsSupported (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0xf154
+        // Method begins at RVA 0xe144
 	// Code size 105 (0x69)
 	.maxstack 2
 	.locals init (
@@ -21622,11 +16807,11 @@
 	IL_0068:  ret 
     } // end of method VcProject::IsSupported
 
-    // method line 412
+    // method line 231
     .method private static hidebysig 
            default string CleanPath (string path)  cil managed 
     {
-        // Method begins at RVA 0xf1cc
+        // Method begins at RVA 0xe1bc
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -21647,11 +16832,11 @@
 	IL_0019:  ret 
     } // end of method VcProject::CleanPath
 
-    // method line 413
+    // method line 232
     .method private static hidebysig 
            default valuetype NAnt.VSNet.ProductVersion GetProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0xf1f4
+        // Method begins at RVA 0xe1e4
 	// Code size 271 (0x10f)
 	.maxstack 3
 	.locals init (
@@ -21774,11 +16959,11 @@
 	IL_010e:  ret 
     } // end of method VcProject::GetProductVersion
 
-    // method line 414
+    // method line 233
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0xf320
+        // Method begins at RVA 0xe310
 	// Code size 112 (0x70)
 	.maxstack 4
 	IL_0000:  ldc.i4.s 0x0c
@@ -21835,59 +17020,3735 @@
 	IL_006f:  ret 
     } // end of method VcProject::.cctor
 
-	.property instance string Name ()
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.VSNet.VcProject::get_Name () 
+	}
+	.property instance valuetype NAnt.VSNet.ProjectType Type ()
+	{
+		.get instance default valuetype NAnt.VSNet.ProjectType NAnt.VSNet.VcProject::get_Type () 
+	}
+	.property instance string ProjectPath ()
+	{
+		.get instance default string NAnt.VSNet.VcProject::get_ProjectPath () 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo ProjectDirectory ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcProject::get_ProjectDirectory () 
+	}
+	.property instance valuetype NAnt.VSNet.ProjectLocation ProjectLocation ()
+	{
+		.get instance default valuetype NAnt.VSNet.ProjectLocation NAnt.VSNet.VcProject::get_ProjectLocation () 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo ObjectDir ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcProject::get_ObjectDir () 
+	}
+	.property instance string Guid ()
+	{
+		.get instance default string NAnt.VSNet.VcProject::get_Guid () 
+		.set instance default void NAnt.VSNet.VcProject::set_Guid (string 'value') 
+	}
+	.property instance class [mscorlib]System.Collections.ArrayList References ()
+	{
+		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::get_References () 
+	}
+	.property instance class [mscorlib]System.Collections.ArrayList ProjectFiles ()
+	{
+		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::get_ProjectFiles () 
+	}
+  } // end of class NAnt.VSNet.VcProject
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit ManagedAssemblyReference
+  	extends NAnt.VSNet.AssemblyReferenceBase
+  {
+    .field  private initonly  string _assemblyFile
+    .field  private initonly  bool _isPrivateSpecified
+    .field  private initonly  bool _isPrivate
+    .field  private initonly  string _name
+
+    // method line 234
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache)  cil managed 
+    {
+        // Method begins at RVA 0xe7b8
+	// Code size 127 (0x7f)
+	.maxstack 5
+	.locals init (
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		class [System.Xml]System.Xml.XmlAttribute	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldsfld string [mscorlib]System.String::Empty
+	IL_0006:  stfld string NAnt.VSNet.ManagedAssemblyReference::_name
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.1 
+	IL_000d:  ldarg.2 
+	IL_000e:  ldarg.3 
+	IL_000f:  ldarg.s 4
+	IL_0011:  call instance void class NAnt.VSNet.AssemblyReferenceBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
+	IL_0016:  nop 
+	IL_0017:  ldarg.1 
+	IL_0018:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_001d:  ldstr "Private"
+	IL_0022:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0027:  stloc.0 
+	IL_0028:  ldloc.0 
+	IL_0029:  brfalse IL_0048
+
+	IL_002e:  nop 
+	IL_002f:  ldarg.0 
+	IL_0030:  ldc.i4.1 
+	IL_0031:  stfld bool NAnt.VSNet.ManagedAssemblyReference::_isPrivateSpecified
+	IL_0036:  ldarg.0 
+	IL_0037:  ldloc.0 
+	IL_0038:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_003d:  call bool bool::Parse(string)
+	IL_0042:  stfld bool NAnt.VSNet.ManagedAssemblyReference::_isPrivate
+	IL_0047:  nop 
+	IL_0048:  ldarg.0 
+	IL_0049:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
+	IL_004e:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0053:  ldstr "AssemblyName"
+	IL_0058:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_005d:  stloc.1 
+	IL_005e:  ldloc.1 
+	IL_005f:  brfalse IL_0072
+
+	IL_0064:  nop 
+	IL_0065:  ldarg.0 
+	IL_0066:  ldloc.1 
+	IL_0067:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_006c:  stfld string NAnt.VSNet.ManagedAssemblyReference::_name
+	IL_0071:  nop 
+	IL_0072:  ldarg.0 
+	IL_0073:  ldarg.0 
+	IL_0074:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
+	IL_0079:  stfld string NAnt.VSNet.ManagedAssemblyReference::_assemblyFile
+	IL_007e:  ret 
+    } // end of method ManagedAssemblyReference::.ctor
+
+    // method line 235
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsPrivate ()  cil managed 
+    {
+        // Method begins at RVA 0xe844
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.ManagedAssemblyReference::_isPrivate
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedAssemblyReference::get_IsPrivate
+
+    // method line 236
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsPrivateSpecified ()  cil managed 
+    {
+        // Method begins at RVA 0xe860
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.ManagedAssemblyReference::_isPrivateSpecified
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedAssemblyReference::get_IsPrivateSpecified
+
+    // method line 237
+    .method family virtual hidebysig 
+           instance default string ResolveAssemblyReference ()  cil managed 
+    {
+        // Method begins at RVA 0xe87c
+	// Code size 153 (0x99)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		class [System.Xml]System.Xml.XmlElement	V_1,
+		string	V_2,
+		string	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.ManagedAssemblyReference::_assemblyFile
+	IL_0007:  brfalse IL_002b
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld string NAnt.VSNet.ManagedAssemblyReference::_assemblyFile
+	IL_0013:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0018:  brfalse IL_002a
+
+	IL_001d:  nop 
+	IL_001e:  ldarg.0 
+	IL_001f:  ldfld string NAnt.VSNet.ManagedAssemblyReference::_assemblyFile
+	IL_0024:  stloc.0 
+	IL_0025:  br IL_0097
+
+	IL_002a:  nop 
+	IL_002b:  ldarg.0 
+	IL_002c:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
+	IL_0031:  stloc.1 
+	IL_0032:  ldarg.0 
+	IL_0033:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_0038:  ldstr ".dll"
+	IL_003d:  call string string::Concat(string, string)
+	IL_0042:  stloc.2 
+	IL_0043:  ldarg.0 
+	IL_0044:  ldloc.2 
+	IL_0045:  call instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromFramework(string)
+	IL_004a:  stloc.3 
+	IL_004b:  ldloc.3 
+	IL_004c:  brfalse IL_0059
+
+	IL_0051:  nop 
+	IL_0052:  ldloc.3 
+	IL_0053:  stloc.0 
+	IL_0054:  br IL_0097
+
+	IL_0059:  ldarg.0 
+	IL_005a:  ldloc.1 
+	IL_005b:  ldloc.2 
+	IL_005c:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromAssemblyFolders(class [System.Xml]System.Xml.XmlElement, string)
+	IL_0061:  stloc.3 
+	IL_0062:  ldloc.3 
+	IL_0063:  brfalse IL_0070
+
+	IL_0068:  nop 
+	IL_0069:  ldloc.3 
+	IL_006a:  stloc.0 
+	IL_006b:  br IL_0097
+
+	IL_0070:  ldarg.0 
+	IL_0071:  ldloc.1 
+	IL_0072:  ldstr "HintPath"
+	IL_0077:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_007c:  call instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromRelativePath(string)
+	IL_0081:  stloc.3 
+	IL_0082:  ldloc.3 
+	IL_0083:  brfalse IL_0090
+
+	IL_0088:  nop 
+	IL_0089:  ldloc.3 
+	IL_008a:  stloc.0 
+	IL_008b:  br IL_0097
+
+	IL_0090:  ldnull 
+	IL_0091:  stloc.0 
+	IL_0092:  br IL_0097
+
+	IL_0097:  ldloc.0 
+	IL_0098:  ret 
+    } // end of method ManagedAssemblyReference::ResolveAssemblyReference
+
+    // method line 238
+    .method public virtual hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0xe924
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.ManagedAssemblyReference::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedAssemblyReference::get_Name
+
+    // method line 239
+    .method private hidebysig specialname 
+           instance default string get_AssemblyFoldersKey ()  cil managed 
+    {
+        // Method begins at RVA 0xe940
+	// Code size 57 (0x39)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0007:  callvirt instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_000c:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0011:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0016:  callvirt instance class [mscorlib]System.Version class [NAnt.Core]NAnt.Core.FrameworkInfo::get_VisualStudioVersion()
+	IL_001b:  callvirt instance string object::ToString()
+	IL_0020:  stloc.0 
+	IL_0021:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0026:  ldstr "SOFTWARE\\Microsoft\\VisualStudio\\{0}\\AssemblyFolders"
+	IL_002b:  ldloc.0 
+	IL_002c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0031:  stloc.1 
+	IL_0032:  br IL_0037
+
+	IL_0037:  ldloc.1 
+	IL_0038:  ret 
+    } // end of method ManagedAssemblyReference::get_AssemblyFoldersKey
+
+    // method line 240
+    .method private hidebysig 
+           instance default string GetComponentAssemblyFolder (class [System.Xml]System.Xml.XmlElement referenceElement)  cil managed 
+    {
+        // Method begins at RVA 0xe988
+	// Code size 546 (0x222)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		string	V_1,
+		class [mscorlib]Microsoft.Win32.RegistryKey	V_2,
+		string[]	V_3,
+		string	V_4,
+		class [mscorlib]Microsoft.Win32.RegistryKey	V_5,
+		string	V_6,
+		class [mscorlib]Microsoft.Win32.RegistryKey	V_7,
+		string	V_8,
+		string	V_9)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0009:  ldstr "AssemblyFolderKey"
+	IL_000e:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0013:  brfalse IL_0217
+
+	IL_0018:  nop 
+	IL_0019:  ldarg.1 
+	IL_001a:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_001f:  ldstr "AssemblyFolderKey"
+	IL_0024:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0029:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_002e:  stloc.1 
+	IL_002f:  ldnull 
+	IL_0030:  stloc.2 
+	IL_0031:  ldloc.1 
+	IL_0032:  ldc.i4.s 0x5c
+	IL_0034:  ldc.i4.0 
+	IL_0035:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	IL_003a:  stloc.3 
+	IL_003b:  ldloc.3 
+	IL_003c:  ldlen 
+	IL_003d:  conv.i4 
+	IL_003e:  ldc.i4.2 
+	IL_003f:  blt IL_004d
+
+	IL_0044:  ldloc.3 
+	IL_0045:  ldlen 
+	IL_0046:  conv.i4 
+	IL_0047:  ldc.i4.3 
+	IL_0048:  ble IL_007a
+
+	IL_004d:  nop 
+	IL_004e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0053:  ldstr "Invalid AssemblyFolderKey \"{0}\" for assembly reference \"{1}\", referenced by project \"{2}\"."
+	IL_0058:  ldloc.1 
+	IL_0059:  ldarg.0 
+	IL_005a:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_005f:  ldarg.0 
+	IL_0060:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0065:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_006a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_006f:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0074:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0079:  throw 
+	IL_007a:  ldloc.3 
+	IL_007b:  ldc.i4.0 
+	IL_007c:  ldelem.ref 
+	IL_007d:  stloc.s 4
+	IL_007f:  ldloc.s 4
+	IL_0081:  brfalse IL_00c3
+
+	IL_0086:  ldloc.s 4
+	IL_0088:  ldstr "hklm"
+	IL_008d:  call bool string::op_Equality(string, string)
+	IL_0092:  brtrue IL_00ad
+
+	IL_0097:  ldloc.s 4
+	IL_0099:  ldstr "hkcu"
+	IL_009e:  call bool string::op_Equality(string, string)
+	IL_00a3:  brtrue IL_00b8
+
+	IL_00a8:  br IL_00c3
+
+	IL_00ad:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::LocalMachine
+	IL_00b2:  stloc.2 
+	IL_00b3:  br IL_00ef
+
+	IL_00b8:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::CurrentUser
+	IL_00bd:  stloc.2 
+	IL_00be:  br IL_00ef
+
+	IL_00c3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00c8:  ldstr "Invalid AssemblyFolderKey \"{0}\" for assembly reference \"{1}\", referenced by project \"{2}\"."
+	IL_00cd:  ldloc.1 
+	IL_00ce:  ldarg.0 
+	IL_00cf:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_00d4:  ldarg.0 
+	IL_00d5:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_00da:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_00df:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_00e4:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_00e9:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_00ee:  throw 
+	IL_00ef:  ldnull 
+	IL_00f0:  stloc.s 5
+	IL_00f2:  ldloc.3 
+	IL_00f3:  ldlen 
+	IL_00f4:  conv.i4 
+	IL_00f5:  ldc.i4.3 
+	IL_00f6:  bne.un IL_0162
+
+	IL_00fb:  nop 
+	IL_00fc:  ldloc.3 
+	IL_00fd:  ldc.i4.1 
+	IL_00fe:  ldelem.ref 
+	IL_00ff:  stloc.s 6
+	IL_0101:  ldloc.s 6
+	IL_0103:  brfalse IL_0130
+
+	IL_0108:  ldloc.s 6
+	IL_010a:  ldstr "dn"
+	IL_010f:  call bool string::op_Equality(string, string)
+	IL_0114:  brtrue IL_011e
+
+	IL_0119:  br IL_0130
+
+	IL_011e:  ldloc.2 
+	IL_011f:  ldstr "SOFTWARE\\Microsoft\\.NETFramework\\AssemblyFolders"
+	IL_0124:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string)
+	IL_0129:  stloc.s 5
+	IL_012b:  br IL_015c
+
+	IL_0130:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0135:  ldstr "Invalid AssemblyFolderKey \"{0}\" for assembly reference \"{1}\", referenced by project \"{2}\"."
+	IL_013a:  ldloc.1 
+	IL_013b:  ldarg.0 
+	IL_013c:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_0141:  ldarg.0 
+	IL_0142:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0147:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_014c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_0151:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0156:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_015b:  throw 
+	IL_015c:  nop 
+	IL_015d:  br IL_0172
+
+	IL_0162:  nop 
+	IL_0163:  ldloc.2 
+	IL_0164:  ldarg.0 
+	IL_0165:  call instance string class NAnt.VSNet.ManagedAssemblyReference::get_AssemblyFoldersKey()
+	IL_016a:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string)
+	IL_016f:  stloc.s 5
+	IL_0171:  nop 
+	IL_0172:  ldloc.s 5
+	IL_0174:  brfalse IL_01fa
+
+	IL_0179:  nop 
+	IL_017a:  ldloc.s 5
+	IL_017c:  ldloc.3 
+	IL_017d:  ldloc.3 
+	IL_017e:  ldlen 
+	IL_017f:  conv.i4 
+	IL_0180:  ldc.i4.1 
+	IL_0181:  sub 
+	IL_0182:  ldelem.ref 
+	IL_0183:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string)
+	IL_0188:  stloc.s 7
+	IL_018a:  ldloc.s 7
+	IL_018c:  brfalse IL_01d8
+
+	IL_0191:  nop 
+	IL_0192:  ldloc.s 7
+	IL_0194:  ldsfld string [mscorlib]System.String::Empty
+	IL_0199:  callvirt instance object class [mscorlib]Microsoft.Win32.RegistryKey::GetValue(string)
+	IL_019e:  isinst [mscorlib]System.String
+	IL_01a3:  stloc.s 8
+	IL_01a5:  ldloc.s 8
+	IL_01a7:  brfalse IL_01b6
+
+	IL_01ac:  nop 
+	IL_01ad:  ldloc.s 8
+	IL_01af:  stloc.0 
+	IL_01b0:  nop 
+	IL_01b1:  br IL_01d2
+
+	IL_01b6:  nop 
+	IL_01b7:  ldarg.0 
+	IL_01b8:  ldc.i4 1000
+	IL_01bd:  ldstr "Default value for AssemblyFolder \"{0}\" does not exist or is not a string value."
+	IL_01c2:  ldc.i4.1 
+	IL_01c3:  newarr [mscorlib]System.Object
+	IL_01c8:  dup 
+	IL_01c9:  ldc.i4.0 
+	IL_01ca:  ldloc.1 
+	IL_01cb:  stelem.ref 
+	IL_01cc:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_01d1:  nop 
+	IL_01d2:  nop 
+	IL_01d3:  br IL_01f4
+
+	IL_01d8:  nop 
+	IL_01d9:  ldarg.0 
+	IL_01da:  ldc.i4 1000
+	IL_01df:  ldstr "Component key for AssemblyFolder \"{0}\" does not exist."
+	IL_01e4:  ldc.i4.1 
+	IL_01e5:  newarr [mscorlib]System.Object
+	IL_01ea:  dup 
+	IL_01eb:  ldc.i4.0 
+	IL_01ec:  ldloc.1 
+	IL_01ed:  stelem.ref 
+	IL_01ee:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_01f3:  nop 
+	IL_01f4:  nop 
+	IL_01f5:  br IL_0216
+
+	IL_01fa:  nop 
+	IL_01fb:  ldarg.0 
+	IL_01fc:  ldc.i4 1000
+	IL_0201:  ldstr "Repository for AssemblyFolder \"{0}\" does not exist."
+	IL_0206:  ldc.i4.1 
+	IL_0207:  newarr [mscorlib]System.Object
+	IL_020c:  dup 
+	IL_020d:  ldc.i4.0 
+	IL_020e:  ldloc.1 
+	IL_020f:  stelem.ref 
+	IL_0210:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0215:  nop 
+	IL_0216:  nop 
+	IL_0217:  ldloc.0 
+	IL_0218:  stloc.s 9
+	IL_021a:  br IL_021f
+
+	IL_021f:  ldloc.s 9
+	IL_0221:  ret 
+    } // end of method ManagedAssemblyReference::GetComponentAssemblyFolder
+
+    // method line 241
+    .method family virtual hidebysig 
+           instance default string ResolveFromAssemblyFolders (class [System.Xml]System.Xml.XmlElement referenceElement, string fileName)  cil managed 
+    {
+        // Method begins at RVA 0xebb8
+	// Code size 68 (0x44)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringCollection	V_2,
+		string	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  ldarg.1 
+	IL_0005:  call instance string class NAnt.VSNet.ManagedAssemblyReference::GetComponentAssemblyFolder(class [System.Xml]System.Xml.XmlElement)
+	IL_000a:  stloc.1 
+	IL_000b:  ldloc.1 
+	IL_000c:  brfalse IL_002a
+
+	IL_0011:  nop 
+	IL_0012:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0017:  stloc.2 
+	IL_0018:  ldloc.2 
+	IL_0019:  ldloc.1 
+	IL_001a:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_001f:  pop 
+	IL_0020:  ldarg.0 
+	IL_0021:  ldloc.2 
+	IL_0022:  ldarg.2 
+	IL_0023:  call instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromFolderList(class [System]System.Collections.Specialized.StringCollection, string)
+	IL_0028:  stloc.0 
+	IL_0029:  nop 
+	IL_002a:  ldloc.0 
+	IL_002b:  brtrue IL_003b
+
+	IL_0030:  nop 
+	IL_0031:  ldarg.0 
+	IL_0032:  ldarg.1 
+	IL_0033:  ldarg.2 
+	IL_0034:  call instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromAssemblyFolders(class [System.Xml]System.Xml.XmlElement, string)
+	IL_0039:  stloc.0 
+	IL_003a:  nop 
+	IL_003b:  ldloc.0 
+	IL_003c:  stloc.3 
+	IL_003d:  br IL_0042
+
+	IL_0042:  ldloc.3 
+	IL_0043:  ret 
+    } // end of method ManagedAssemblyReference::ResolveFromAssemblyFolders
+
+	.property instance bool IsPrivate ()
+	{
+		.get instance default bool NAnt.VSNet.ManagedAssemblyReference::get_IsPrivate () 
+	}
+	.property instance bool IsPrivateSpecified ()
+	{
+		.get instance default bool NAnt.VSNet.ManagedAssemblyReference::get_IsPrivateSpecified () 
+	}
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.VSNet.ManagedAssemblyReference::get_Name () 
+	}
+	.property instance string AssemblyFoldersKey ()
+	{
+		.get instance default string NAnt.VSNet.ManagedAssemblyReference::get_AssemblyFoldersKey () 
+	}
+  } // end of class NAnt.VSNet.ManagedAssemblyReference
+}
+
+.namespace NAnt.VSNet
+{
+  .class private auto ansi sealed beforefieldinit ProjectFactory
+  	extends [mscorlib]System.Object
+  {
+    .field  private initonly  class [mscorlib]System.Collections.Hashtable _cachedProjects
+    .field  private initonly  class [mscorlib]System.Collections.Hashtable _cachedProjectGuids
+    .field  private initonly  class [mscorlib]System.Collections.Hashtable _cachedProjectXml
+    .field  private initonly  class [mscorlib]System.Collections.ArrayList _projectprovs
+
+    // method line 242
+    .method private hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.Tasks.SolutionTask solutionTask)  cil managed 
+    {
+        // Method begins at RVA 0xec08
+	// Code size 52 (0x34)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0006:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectFactory::_projectprovs
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void object::'.ctor'()
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_0018:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjects
+	IL_001d:  ldarg.0 
+	IL_001e:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_0023:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjectGuids
+	IL_0028:  ldarg.0 
+	IL_0029:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_002e:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjectXml
+	IL_0033:  ret 
+    } // end of method ProjectFactory::.ctor
+
+    // method line 243
+    .method public static hidebysig 
+           default class NAnt.VSNet.ProjectFactory Create (class NAnt.VSNet.Tasks.SolutionTask solutionTask)  cil managed 
+    {
+        // Method begins at RVA 0xec40
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.ProjectFactory	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.VSNet.ProjectFactory::'.ctor'(class NAnt.VSNet.Tasks.SolutionTask)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectFactory::Create
+
+    // method line 244
+    .method public static hidebysig 
+           default bool IsUrl (string fileName)  cil managed 
+    {
+        // Method begins at RVA 0xec5c
+	// Code size 66 (0x42)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldsfld string [System]System.Uri::UriSchemeFile
+	IL_0007:  callvirt instance bool string::StartsWith(string)
+	IL_000c:  brtrue IL_0031
+
+	IL_0011:  ldarg.0 
+	IL_0012:  ldsfld string [System]System.Uri::UriSchemeHttp
+	IL_0017:  callvirt instance bool string::StartsWith(string)
+	IL_001c:  brtrue IL_0031
+
+	IL_0021:  ldarg.0 
+	IL_0022:  ldsfld string [System]System.Uri::UriSchemeHttps
+	IL_0027:  callvirt instance bool string::StartsWith(string)
+	IL_002c:  brfalse IL_0039
+
+	IL_0031:  nop 
+	IL_0032:  ldc.i4.1 
+	IL_0033:  stloc.0 
+	IL_0034:  br IL_0040
+
+	IL_0039:  ldc.i4.0 
+	IL_003a:  stloc.0 
+	IL_003b:  br IL_0040
+
+	IL_0040:  ldloc.0 
+	IL_0041:  ret 
+    } // end of method ProjectFactory::IsUrl
+
+    // method line 245
+    .method public hidebysig 
+           instance default class [System.Xml]System.Xml.XmlDocument LoadProjectXml (string path)  cil managed 
+    {
+        // Method begins at RVA 0xecac
+	// Code size 220 (0xdc)
+	.maxstack 3
+	.locals init (
+		class [System.Xml]System.Xml.XmlDocument	V_0,
+		class [mscorlib]System.IO.StreamReader	V_1,
+		class [System]System.Uri	V_2,
+		class [mscorlib]System.IO.StreamReader	V_3,
+		class [System.Xml]System.Xml.XmlDocument	V_4)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjectXml
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	IL_000d:  brtrue IL_00c1
+
+	IL_0012:  nop 
+	IL_0013:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
+	IL_0018:  stloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  call bool class NAnt.VSNet.ProjectFactory::IsUrl(string)
+	IL_001f:  brtrue IL_0053
+
+	IL_0024:  nop 
+	IL_0025:  ldarg.1 
+	IL_0026:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
+	IL_002b:  ldc.i4.1 
+	IL_002c:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
+	IL_0031:  stloc.1 
+	.try { // 0
+	  IL_0032:  nop 
+	  IL_0033:  ldloc.0 
+	  IL_0034:  ldloc.1 
+	  IL_0035:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(class [mscorlib]System.IO.TextReader)
+	  IL_003a:  nop 
+	  IL_003b:  leave IL_004d
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0040:  ldloc.1 
+	  IL_0041:  brfalse IL_004c
+
+	  IL_0046:  ldloc.1 
+	  IL_0047:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_004c:  endfinally 
+	} // end handler 0
+	IL_004d:  nop 
+	IL_004e:  br IL_00b3
+
+	IL_0053:  nop 
+	IL_0054:  ldarg.1 
+	IL_0055:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	IL_005a:  stloc.2 
+	IL_005b:  ldloc.2 
+	IL_005c:  callvirt instance string class [System]System.Uri::get_Scheme()
+	IL_0061:  ldsfld string [System]System.Uri::UriSchemeFile
+	IL_0066:  call bool string::op_Equality(string, string)
+	IL_006b:  brfalse IL_00a4
+
+	IL_0070:  nop 
+	IL_0071:  ldloc.2 
+	IL_0072:  callvirt instance string class [System]System.Uri::get_LocalPath()
+	IL_0077:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
+	IL_007c:  ldc.i4.1 
+	IL_007d:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
+	IL_0082:  stloc.3 
+	.try { // 1
+	  IL_0083:  nop 
+	  IL_0084:  ldloc.0 
+	  IL_0085:  ldloc.3 
+	  IL_0086:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(class [mscorlib]System.IO.TextReader)
+	  IL_008b:  nop 
+	  IL_008c:  leave IL_009e
+
+	} // end .try 1
+	finally  { // 1
+	  IL_0091:  ldloc.3 
+	  IL_0092:  brfalse IL_009d
+
+	  IL_0097:  ldloc.3 
+	  IL_0098:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_009d:  endfinally 
+	} // end handler 1
+	IL_009e:  nop 
+	IL_009f:  br IL_00b2
+
+	IL_00a4:  nop 
+	IL_00a5:  ldloc.0 
+	IL_00a6:  ldarg.1 
+	IL_00a7:  call string class NAnt.VSNet.WebDavClient::GetFileContentsStatic(string)
+	IL_00ac:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::LoadXml(string)
+	IL_00b1:  nop 
+	IL_00b2:  nop 
+	IL_00b3:  ldarg.0 
+	IL_00b4:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjectXml
+	IL_00b9:  ldarg.1 
+	IL_00ba:  ldloc.0 
+	IL_00bb:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_00c0:  nop 
+	IL_00c1:  ldarg.0 
+	IL_00c2:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjectXml
+	IL_00c7:  ldarg.1 
+	IL_00c8:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_00cd:  castclass [System.Xml]System.Xml.XmlDocument
+	IL_00d2:  stloc.s 4
+	IL_00d4:  br IL_00d9
+
+	IL_00d9:  ldloc.s 4
+	IL_00db:  ret 
+    } // end of method ProjectFactory::LoadProjectXml
+
+    // method line 246
+    .method public hidebysig 
+           instance default class NAnt.VSNet.ProjectBase LoadProject (class NAnt.VSNet.SolutionBase solution, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver referencesResolver, class [mscorlib]System.IO.DirectoryInfo outputDir, string path)  cil managed 
+    {
+        // Method begins at RVA 0xedb0
+	// Code size 79 (0x4f)
+	.maxstack 8
+	.locals init (
+		class NAnt.VSNet.ProjectBase	V_0,
+		class NAnt.VSNet.ProjectBase	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjects
+	IL_0007:  ldarg.s 7
+	IL_0009:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	IL_000e:  brtrue IL_0035
+
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldarg.1 
+	IL_0016:  ldarg.2 
+	IL_0017:  ldarg.3 
+	IL_0018:  ldarg.s 4
+	IL_001a:  ldarg.s 5
+	IL_001c:  ldarg.s 6
+	IL_001e:  ldarg.s 7
+	IL_0020:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectFactory::CreateProject(class NAnt.VSNet.SolutionBase, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo, string)
+	IL_0025:  stloc.0 
+	IL_0026:  ldarg.0 
+	IL_0027:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjects
+	IL_002c:  ldarg.s 7
+	IL_002e:  ldloc.0 
+	IL_002f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0034:  nop 
+	IL_0035:  ldarg.0 
+	IL_0036:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjects
+	IL_003b:  ldarg.s 7
+	IL_003d:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0042:  castclass NAnt.VSNet.ProjectBase
+	IL_0047:  stloc.1 
+	IL_0048:  br IL_004d
+
+	IL_004d:  ldloc.1 
+	IL_004e:  ret 
+    } // end of method ProjectFactory::LoadProject
+
+    // method line 247
+    .method public hidebysig 
+           instance default string LoadGuid (string fileName)  cil managed 
+    {
+        // Method begins at RVA 0xee0c
+	// Code size 191 (0xbf)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		string	V_1,
+		string	V_2,
+		class [System.Xml]System.Xml.XmlElement	V_3,
+		class [System.Xml]System.Xml.XmlDocument	V_4,
+		class [mscorlib]System.Exception	V_5,
+		class NAnt.VSNet.Extensibility.IProjectBuildProvider	V_6)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjects
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	IL_000d:  brfalse IL_002f
+
+	IL_0012:  nop 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjects
+	IL_0019:  ldarg.1 
+	IL_001a:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_001f:  castclass NAnt.VSNet.ProjectBase
+	IL_0024:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	IL_0029:  stloc.0 
+	IL_002a:  br IL_00bd
+
+	IL_002f:  ldarg.1 
+	IL_0030:  call string class NAnt.VSNet.ProjectFactory::GetProjectFileName(string)
+	IL_0035:  stloc.1 
+	IL_0036:  ldloc.1 
+	IL_0037:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_003c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0041:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_0046:  stloc.2 
+	.try { // 0
+	  IL_0047:  nop 
+	  IL_0048:  ldarg.0 
+	  IL_0049:  ldarg.1 
+	  IL_004a:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.VSNet.ProjectFactory::LoadProjectXml(string)
+	  IL_004f:  stloc.s 4
+	  IL_0051:  ldloc.s 4
+	  IL_0053:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	  IL_0058:  stloc.3 
+	  IL_0059:  nop 
+	  IL_005a:  leave IL_007f
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_005f:  stloc.s 5
+	  IL_0061:  nop 
+	  IL_0062:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0067:  ldstr "Error loading project '{0}'."
+	  IL_006c:  ldarg.1 
+	  IL_006d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0072:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	  IL_0077:  ldloc.s 5
+	  IL_0079:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_007e:  throw 
+	} // end handler 0
+	IL_007f:  ldarg.0 
+	IL_0080:  ldloc.2 
+	IL_0081:  ldloc.3 
+	IL_0082:  call instance class NAnt.VSNet.Extensibility.IProjectBuildProvider class NAnt.VSNet.ProjectFactory::FindProvider(string, class [System.Xml]System.Xml.XmlElement)
+	IL_0087:  stloc.s 6
+	IL_0089:  ldloc.s 6
+	IL_008b:  brfalse IL_00a6
+
+	IL_0090:  nop 
+	IL_0091:  ldarg.0 
+	IL_0092:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjectGuids
+	IL_0097:  ldarg.1 
+	IL_0098:  ldloc.s 6
+	IL_009a:  ldloc.3 
+	IL_009b:  callvirt instance string class NAnt.VSNet.Extensibility.IProjectBuildProvider::LoadGuid(class [System.Xml]System.Xml.XmlElement)
+	IL_00a0:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_00a5:  nop 
+	IL_00a6:  ldarg.0 
+	IL_00a7:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjectGuids
+	IL_00ac:  ldarg.1 
+	IL_00ad:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_00b2:  castclass [mscorlib]System.String
+	IL_00b7:  stloc.0 
+	IL_00b8:  br IL_00bd
+
+	IL_00bd:  ldloc.0 
+	IL_00be:  ret 
+    } // end of method ProjectFactory::LoadGuid
+
+    // method line 248
+    .method public hidebysig 
+           instance default void RegisterProvider (class NAnt.VSNet.Extensibility.IProjectBuildProvider provider)  cil managed 
+    {
+        // Method begins at RVA 0xeee8
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectFactory::_projectprovs
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_000d:  pop 
+	IL_000e:  ret 
+    } // end of method ProjectFactory::RegisterProvider
+
+    // method line 249
+    .method private hidebysig 
+           instance default class NAnt.VSNet.ProjectBase CreateProject (class NAnt.VSNet.SolutionBase solution, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver referencesResolver, class [mscorlib]System.IO.DirectoryInfo outputDir, string projectPath)  cil managed 
+    {
+        // Method begins at RVA 0xeef8
+	// Code size 181 (0xb5)
+	.maxstack 9
+	.locals init (
+		string	V_0,
+		string	V_1,
+		class NAnt.VSNet.ProjectBase	V_2,
+		class [System.Xml]System.Xml.XmlElement	V_3,
+		class [System.Xml]System.Xml.XmlDocument	V_4,
+		class [mscorlib]System.Exception	V_5,
+		class NAnt.VSNet.Extensibility.IProjectBuildProvider	V_6)
+	IL_0000:  nop 
+	IL_0001:  ldarg.s 7
+	IL_0003:  call string class NAnt.VSNet.ProjectFactory::GetProjectFileName(string)
+	IL_0008:  stloc.0 
+	IL_0009:  ldloc.0 
+	IL_000a:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_000f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0014:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_0019:  stloc.1 
+	IL_001a:  ldloc.1 
+	IL_001b:  ldstr ".vdproj"
+	IL_0020:  call bool string::op_Equality(string, string)
+	IL_0025:  brfalse IL_0032
+
+	IL_002a:  nop 
+	IL_002b:  ldnull 
+	IL_002c:  stloc.2 
+	IL_002d:  br IL_00b3
+
+	.try { // 0
+	  IL_0032:  nop 
+	  IL_0033:  ldarg.0 
+	  IL_0034:  ldarg.s 7
+	  IL_0036:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.VSNet.ProjectFactory::LoadProjectXml(string)
+	  IL_003b:  stloc.s 4
+	  IL_003d:  ldloc.s 4
+	  IL_003f:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
+	  IL_0044:  stloc.3 
+	  IL_0045:  nop 
+	  IL_0046:  leave IL_006c
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_004b:  stloc.s 5
+	  IL_004d:  nop 
+	  IL_004e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0053:  ldstr "Error loading project '{0}'."
+	  IL_0058:  ldarg.s 7
+	  IL_005a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_005f:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	  IL_0064:  ldloc.s 5
+	  IL_0066:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_006b:  throw 
+	} // end handler 0
+	IL_006c:  ldarg.0 
+	IL_006d:  ldloc.1 
+	IL_006e:  ldloc.3 
+	IL_006f:  call instance class NAnt.VSNet.Extensibility.IProjectBuildProvider class NAnt.VSNet.ProjectFactory::FindProvider(string, class [System.Xml]System.Xml.XmlElement)
+	IL_0074:  stloc.s 6
+	IL_0076:  ldloc.s 6
+	IL_0078:  brfalse IL_0097
+
+	IL_007d:  nop 
+	IL_007e:  ldloc.s 6
+	IL_0080:  ldarg.1 
+	IL_0081:  ldarg.s 7
+	IL_0083:  ldloc.3 
+	IL_0084:  ldarg.2 
+	IL_0085:  ldarg.3 
+	IL_0086:  ldarg.s 4
+	IL_0088:  ldarg.s 5
+	IL_008a:  ldarg.s 6
+	IL_008c:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.Extensibility.IProjectBuildProvider::GetInstance(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0091:  stloc.2 
+	IL_0092:  br IL_00b3
+
+	IL_0097:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_009c:  ldstr "Project '{0}' is invalid or not supported (at this time)."
+	IL_00a1:  ldarg.s 7
+	IL_00a3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00a8:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_00ad:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_00b2:  throw 
+	IL_00b3:  ldloc.2 
+	IL_00b4:  ret 
+    } // end of method ProjectFactory::CreateProject
+
+    // method line 250
+    .method private hidebysig 
+           instance default class NAnt.VSNet.Extensibility.IProjectBuildProvider FindProvider (string projectExt, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    {
+        // Method begins at RVA 0xefcc
+	// Code size 111 (0x6f)
+	.maxstack 3
+	.locals init (
+		int32	V_0,
+		class NAnt.VSNet.Extensibility.IProjectBuildProvider	V_1,
+		class NAnt.VSNet.Extensibility.IProjectBuildProvider	V_2,
+		class [mscorlib]System.Collections.IEnumerator	V_3,
+		int32	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		class NAnt.VSNet.Extensibility.IProjectBuildProvider	V_6)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  ldnull 
+	IL_0004:  stloc.1 
+	IL_0005:  nop 
+	IL_0006:  ldarg.0 
+	IL_0007:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectFactory::_projectprovs
+	IL_000c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0011:  stloc.3 
+	.try { // 0
+	  IL_0012:  br IL_003e
+
+	  IL_0017:  ldloc.3 
+	  IL_0018:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_001d:  castclass NAnt.VSNet.Extensibility.IProjectBuildProvider
+	  IL_0022:  stloc.2 
+	  IL_0023:  nop 
+	  IL_0024:  ldloc.2 
+	  IL_0025:  ldarg.1 
+	  IL_0026:  ldarg.2 
+	  IL_0027:  callvirt instance int32 class NAnt.VSNet.Extensibility.IProjectBuildProvider::IsSupported(string, class [System.Xml]System.Xml.XmlElement)
+	  IL_002c:  stloc.s 4
+	  IL_002e:  ldloc.s 4
+	  IL_0030:  ldloc.0 
+	  IL_0031:  ble IL_003d
+
+	  IL_0036:  nop 
+	  IL_0037:  ldloc.s 4
+	  IL_0039:  stloc.0 
+	  IL_003a:  ldloc.2 
+	  IL_003b:  stloc.1 
+	  IL_003c:  nop 
+	  IL_003d:  nop 
+	  IL_003e:  ldloc.3 
+	  IL_003f:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0044:  brtrue IL_0017
+
+	  IL_0049:  leave IL_0064
+
+	} // end .try 0
+	finally  { // 0
+	  IL_004e:  ldloc.3 
+	  IL_004f:  isinst [mscorlib]System.IDisposable
+	  IL_0054:  dup 
+	  IL_0055:  stloc.s 5
+	  IL_0057:  brfalse IL_0063
+
+	  IL_005c:  ldloc.s 5
+	  IL_005e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0063:  endfinally 
+	} // end handler 0
+	IL_0064:  ldloc.1 
+	IL_0065:  stloc.s 6
+	IL_0067:  br IL_006c
+
+	IL_006c:  ldloc.s 6
+	IL_006e:  ret 
+    } // end of method ProjectFactory::FindProvider
+
+    // method line 251
+    .method private static hidebysig 
+           default string GetProjectFileName (string fileName)  cil managed 
+    {
+        // Method begins at RVA 0xf058
+	// Code size 53 (0x35)
+	.maxstack 1
+	.locals init (
+		string	V_0,
+		class [System]System.Uri	V_1,
+		string	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  call bool class NAnt.VSNet.ProjectFactory::IsUrl(string)
+	IL_0009:  brfalse IL_0023
+
+	IL_000e:  nop 
+	IL_000f:  ldarg.0 
+	IL_0010:  newobj instance void class [System]System.Uri::'.ctor'(string)
+	IL_0015:  stloc.1 
+	IL_0016:  ldloc.1 
+	IL_0017:  callvirt instance string class [System]System.Uri::get_LocalPath()
+	IL_001c:  stloc.0 
+	IL_001d:  nop 
+	IL_001e:  br IL_0027
+
+	IL_0023:  nop 
+	IL_0024:  ldarg.0 
+	IL_0025:  stloc.0 
+	IL_0026:  nop 
+	IL_0027:  ldloc.0 
+	IL_0028:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_002d:  stloc.2 
+	IL_002e:  br IL_0033
+
+	IL_0033:  ldloc.2 
+	IL_0034:  ret 
+    } // end of method ProjectFactory::GetProjectFileName
+
+  } // end of class NAnt.VSNet.ProjectFactory
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit CSharpProject
+  	extends NAnt.VSNet.ManagedProjectBase
+  {
+
+    // method line 252
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
+    {
+        // Method begins at RVA 0xf09c
+	// Code size 21 (0x15)
+	.maxstack 9
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  ldarg.s 4
+	IL_0006:  ldarg.s 5
+	IL_0008:  ldarg.s 6
+	IL_000a:  ldarg.s 7
+	IL_000c:  ldarg.s 8
+	IL_000e:  call instance void class NAnt.VSNet.ManagedProjectBase::'.ctor'(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0013:  nop 
+	IL_0014:  ret 
+    } // end of method CSharpProject::.ctor
+
+    // method line 253
+    .method public virtual hidebysig specialname 
+           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
+    {
+        // Method begins at RVA 0xf0c0
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.VSNet.ProjectType	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
+
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method CSharpProject::get_Type
+
+    // method line 254
+    .method family virtual hidebysig 
+           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0xf0d6
+	// Code size 46 (0x2e)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call bool class NAnt.VSNet.CSharpProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
+	IL_0007:  brtrue IL_002d
+
+	IL_000c:  nop 
+	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0012:  ldstr "Project '{0}' is not a valid C# project."
+	IL_0017:  ldarg.0 
+	IL_0018:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_001d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0022:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0027:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_002c:  throw 
+	IL_002d:  ret 
+    } // end of method CSharpProject::VerifyProjectXml
+
+    // method line 255
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0xf108
+	// Code size 25 (0x19)
+	.maxstack 2
+	.locals init (
+		valuetype NAnt.VSNet.ProductVersion	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr "./CSHARP"
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	IL_000c:  call valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ManagedProjectBase::GetProductVersion(class [System.Xml]System.Xml.XmlNode)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method CSharpProject::DetermineProductVersion
+
+    // method line 256
+    .method family virtual hidebysig 
+           instance default class [System]System.Diagnostics.ProcessStartInfo GetProcessStartInfo (class NAnt.VSNet.ConfigurationBase config, string responseFile)  cil managed 
+    {
+        // Method begins at RVA 0xf130
+	// Code size 137 (0x89)
+	.maxstack 4
+	.locals init (
+		class [System]System.Diagnostics.ProcessStartInfo	V_0,
+		class [System]System.Diagnostics.ProcessStartInfo	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0007:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_000c:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0011:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
+	IL_0016:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001b:  ldstr "csc.exe"
+	IL_0020:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0025:  ldstr "/noconfig @\""
+	IL_002a:  ldarg.2 
+	IL_002b:  ldstr "\""
+	IL_0030:  call string string::Concat(string, string, string)
+	IL_0035:  newobj instance void class [System]System.Diagnostics.ProcessStartInfo::'.ctor'(string, string)
+	IL_003a:  stloc.0 
+	IL_003b:  ldarg.0 
+	IL_003c:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0041:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
+	IL_0046:  brfalse IL_006d
+
+	IL_004b:  nop 
+	IL_004c:  ldloc.0 
+	IL_004d:  ldarg.0 
+	IL_004e:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0053:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
+	IL_0058:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_005d:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_0062:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
+	IL_0067:  nop 
+	IL_0068:  br IL_0080
+
+	IL_006d:  nop 
+	IL_006e:  ldloc.0 
+	IL_006f:  ldarg.0 
+	IL_0070:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0075:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_007a:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
+	IL_007f:  nop 
+	IL_0080:  ldloc.0 
+	IL_0081:  stloc.1 
+	IL_0082:  br IL_0087
+
+	IL_0087:  ldloc.1 
+	IL_0088:  ret 
+    } // end of method CSharpProject::GetProcessStartInfo
+
+    // method line 257
+    .method family virtual hidebysig specialname 
+           instance default string get_FileExtension ()  cil managed 
+    {
+        // Method begins at RVA 0xf1c8
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldstr ".cs"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method CSharpProject::get_FileExtension
+
+    // method line 258
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.ProjectLocation DetermineProjectLocation (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0xf1e4
+	// Code size 25 (0x19)
+	.maxstack 2
+	.locals init (
+		valuetype NAnt.VSNet.ProjectLocation	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr "./CSHARP"
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	IL_000c:  call valuetype NAnt.VSNet.ProjectLocation class NAnt.VSNet.ManagedProjectBase::GetProjectLocation(class [System.Xml]System.Xml.XmlNode)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method CSharpProject::DetermineProjectLocation
+
+    // method line 259
+    .method public static hidebysig 
+           default bool IsSupported (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0xf20c
+	// Code size 102 (0x66)
+	.maxstack 2
+	.locals init (
+		bool	V_0,
+		class [System.Xml]System.Xml.XmlNode	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  brtrue IL_000f
+
+	IL_0007:  nop 
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_0064
+
+	IL_000f:  ldarg.0 
+	IL_0010:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_0015:  ldstr "VisualStudioProject"
+	IL_001a:  call bool string::op_Inequality(string, string)
+	IL_001f:  brfalse IL_002c
+
+	IL_0024:  nop 
+	IL_0025:  ldc.i4.0 
+	IL_0026:  stloc.0 
+	IL_0027:  br IL_0064
+
+	IL_002c:  ldarg.0 
+	IL_002d:  ldstr "./CSHARP"
+	IL_0032:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	IL_0037:  stloc.1 
+	IL_0038:  ldloc.1 
+	IL_0039:  brtrue IL_0046
+
+	IL_003e:  nop 
+	IL_003f:  ldc.i4.0 
+	IL_0040:  stloc.0 
+	IL_0041:  br IL_0064
+
+	.try { // 0
+	  IL_0046:  nop 
+	  IL_0047:  ldloc.1 
+	  IL_0048:  call valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ManagedProjectBase::GetProductVersion(class [System.Xml]System.Xml.XmlNode)
+	  IL_004d:  pop 
+	  IL_004e:  nop 
+	  IL_004f:  leave IL_005d
+
+	} // end .try 0
+	catch class [mscorlib]System.Object { // 0
+	  IL_0054:  pop 
+	  IL_0055:  nop 
+	  IL_0056:  ldc.i4.0 
+	  IL_0057:  stloc.0 
+	  IL_0058:  leave IL_0064
+
+	} // end handler 0
+	IL_005d:  ldc.i4.1 
+	IL_005e:  stloc.0 
+	IL_005f:  br IL_0064
+
+	IL_0064:  ldloc.0 
+	IL_0065:  ret 
+    } // end of method CSharpProject::IsSupported
+
+	.property instance valuetype NAnt.VSNet.ProjectType Type ()
+	{
+		.get instance default valuetype NAnt.VSNet.ProjectType NAnt.VSNet.CSharpProject::get_Type () 
+	}
+	.property instance string FileExtension ()
+	{
+		.get instance default string NAnt.VSNet.CSharpProject::get_FileExtension () 
+	}
+  } // end of class NAnt.VSNet.CSharpProject
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit JSharpProject
+  	extends NAnt.VSNet.ManagedProjectBase
+  {
+
+    // method line 260
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
+    {
+        // Method begins at RVA 0xf290
+	// Code size 21 (0x15)
+	.maxstack 9
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  ldarg.s 4
+	IL_0006:  ldarg.s 5
+	IL_0008:  ldarg.s 6
+	IL_000a:  ldarg.s 7
+	IL_000c:  ldarg.s 8
+	IL_000e:  call instance void class NAnt.VSNet.ManagedProjectBase::'.ctor'(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0013:  nop 
+	IL_0014:  ret 
+    } // end of method JSharpProject::.ctor
+
+    // method line 261
+    .method public virtual hidebysig specialname 
+           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
+    {
+        // Method begins at RVA 0xf2b4
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.VSNet.ProjectType	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.3 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
+
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method JSharpProject::get_Type
+
+    // method line 262
+    .method family virtual hidebysig 
+           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0xf2ca
+	// Code size 46 (0x2e)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call bool class NAnt.VSNet.JSharpProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
+	IL_0007:  brtrue IL_002d
+
+	IL_000c:  nop 
+	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0012:  ldstr "Project '{0}' is not a valid J# project."
+	IL_0017:  ldarg.0 
+	IL_0018:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_001d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0022:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0027:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_002c:  throw 
+	IL_002d:  ret 
+    } // end of method JSharpProject::VerifyProjectXml
+
+    // method line 263
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0xf2fc
+	// Code size 25 (0x19)
+	.maxstack 2
+	.locals init (
+		valuetype NAnt.VSNet.ProductVersion	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr "./VISUALJSHARP"
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	IL_000c:  call valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ManagedProjectBase::GetProductVersion(class [System.Xml]System.Xml.XmlNode)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method JSharpProject::DetermineProductVersion
+
+    // method line 264
+    .method family virtual hidebysig 
+           instance default void Prepare (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0xf324
+	// Code size 55 (0x37)
+	.maxstack 2
+	.locals init (
+		class NAnt.VSNet.ConfigurationBase	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
+	IL_0014:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0019:  brtrue IL_0036
+
+	IL_001e:  nop 
+	IL_001f:  ldloc.0 
+	IL_0020:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
+	IL_0025:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
+	IL_002a:  ldloc.0 
+	IL_002b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
+	IL_0030:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Refresh()
+	IL_0035:  nop 
+	IL_0036:  ret 
+    } // end of method JSharpProject::Prepare
+
+    // method line 265
+    .method family virtual hidebysig 
+           instance default class [System]System.Diagnostics.ProcessStartInfo GetProcessStartInfo (class NAnt.VSNet.ConfigurationBase config, string responseFile)  cil managed 
+    {
+        // Method begins at RVA 0xf368
+	// Code size 137 (0x89)
+	.maxstack 4
+	.locals init (
+		class [System]System.Diagnostics.ProcessStartInfo	V_0,
+		class [System]System.Diagnostics.ProcessStartInfo	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0007:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_000c:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0011:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
+	IL_0016:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001b:  ldstr "vjc.exe"
+	IL_0020:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0025:  ldstr "@\""
+	IL_002a:  ldarg.2 
+	IL_002b:  ldstr "\""
+	IL_0030:  call string string::Concat(string, string, string)
+	IL_0035:  newobj instance void class [System]System.Diagnostics.ProcessStartInfo::'.ctor'(string, string)
+	IL_003a:  stloc.0 
+	IL_003b:  ldarg.0 
+	IL_003c:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0041:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
+	IL_0046:  brfalse IL_006d
+
+	IL_004b:  nop 
+	IL_004c:  ldloc.0 
+	IL_004d:  ldarg.0 
+	IL_004e:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0053:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
+	IL_0058:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_005d:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_0062:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
+	IL_0067:  nop 
+	IL_0068:  br IL_0080
+
+	IL_006d:  nop 
+	IL_006e:  ldloc.0 
+	IL_006f:  ldarg.0 
+	IL_0070:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0075:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_007a:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
+	IL_007f:  nop 
+	IL_0080:  ldloc.0 
+	IL_0081:  stloc.1 
+	IL_0082:  br IL_0087
+
+	IL_0087:  ldloc.1 
+	IL_0088:  ret 
+    } // end of method JSharpProject::GetProcessStartInfo
+
+    // method line 266
+    .method family virtual hidebysig specialname 
+           instance default string get_FileExtension ()  cil managed 
+    {
+        // Method begins at RVA 0xf400
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldstr ".jsl"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method JSharpProject::get_FileExtension
+
+    // method line 267
+    .method family virtual hidebysig 
+           instance default valuetype NAnt.VSNet.ProjectLocation DetermineProjectLocation (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0xf41c
+	// Code size 25 (0x19)
+	.maxstack 2
+	.locals init (
+		valuetype NAnt.VSNet.ProjectLocation	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr "./VISUALJSHARP"
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	IL_000c:  call valuetype NAnt.VSNet.ProjectLocation class NAnt.VSNet.ManagedProjectBase::GetProjectLocation(class [System.Xml]System.Xml.XmlNode)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method JSharpProject::DetermineProjectLocation
+
+    // method line 268
+    .method public static hidebysig 
+           default bool IsSupported (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0xf444
+	// Code size 102 (0x66)
+	.maxstack 2
+	.locals init (
+		bool	V_0,
+		class [System.Xml]System.Xml.XmlNode	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  brtrue IL_000f
+
+	IL_0007:  nop 
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stloc.0 
+	IL_000a:  br IL_0064
+
+	IL_000f:  ldarg.0 
+	IL_0010:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_0015:  ldstr "VisualStudioProject"
+	IL_001a:  call bool string::op_Inequality(string, string)
+	IL_001f:  brfalse IL_002c
+
+	IL_0024:  nop 
+	IL_0025:  ldc.i4.0 
+	IL_0026:  stloc.0 
+	IL_0027:  br IL_0064
+
+	IL_002c:  ldarg.0 
+	IL_002d:  ldstr "./VISUALJSHARP"
+	IL_0032:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	IL_0037:  stloc.1 
+	IL_0038:  ldloc.1 
+	IL_0039:  brtrue IL_0046
+
+	IL_003e:  nop 
+	IL_003f:  ldc.i4.0 
+	IL_0040:  stloc.0 
+	IL_0041:  br IL_0064
+
+	.try { // 0
+	  IL_0046:  nop 
+	  IL_0047:  ldloc.1 
+	  IL_0048:  call valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ManagedProjectBase::GetProductVersion(class [System.Xml]System.Xml.XmlNode)
+	  IL_004d:  pop 
+	  IL_004e:  nop 
+	  IL_004f:  leave IL_005d
+
+	} // end .try 0
+	catch class [mscorlib]System.Object { // 0
+	  IL_0054:  pop 
+	  IL_0055:  nop 
+	  IL_0056:  ldc.i4.0 
+	  IL_0057:  stloc.0 
+	  IL_0058:  leave IL_0064
+
+	} // end handler 0
+	IL_005d:  ldc.i4.1 
+	IL_005e:  stloc.0 
+	IL_005f:  br IL_0064
+
+	IL_0064:  ldloc.0 
+	IL_0065:  ret 
+    } // end of method JSharpProject::IsSupported
+
+	.property instance valuetype NAnt.VSNet.ProjectType Type ()
+	{
+		.get instance default valuetype NAnt.VSNet.ProjectType NAnt.VSNet.JSharpProject::get_Type () 
+	}
+	.property instance string FileExtension ()
+	{
+		.get instance default string NAnt.VSNet.JSharpProject::get_FileExtension () 
+	}
+  } // end of class NAnt.VSNet.JSharpProject
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit VcProjectConfiguration
+  	extends NAnt.VSNet.VcConfigurationBase
+  {
+    .field  private initonly  string _rawRelativeOutputDir
+    .field  private initonly  string _rawIntermediateDir
+    .field  private initonly  string _rawReferencesPath
+    .field  private initonly  valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType _type
+    .field  private initonly  bool _wholeProgramOptimization
+    .field  private initonly  bool _managedExtensions
+    .field  private initonly  valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet _characterSet
+    .field  private initonly  valuetype NAnt.VSNet.Types.UseOfMFC _useOfMFC
+    .field  private initonly  valuetype NAnt.VSNet.Types.UseOfATL _useOfATL
+    .field  private initonly  class NAnt.VSNet.VcProjectConfiguration/LinkerConfig _linkerConfiguration
+    .field  private  bool _initialized
+    .field  private  string _outputPath
+    .field  private initonly  class [mscorlib]System.Collections.ArrayList _objFiles
+    .field  private initonly  class [mscorlib]System.Collections.Hashtable _sourceConfigs
+    .field  private initonly  class [mscorlib]System.Collections.Hashtable _rcConfigs
+    .field  private initonly  class [mscorlib]System.Collections.Hashtable _idlConfigs
+
+    // method line 269
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement elem, class NAnt.VSNet.VcProject parentProject, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
+    {
+        // Method begins at RVA 0xf4c8
+	// Code size 647 (0x287)
+	.maxstack 5
+	.locals init (
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		class [System.Xml]System.Xml.XmlAttribute	V_1,
+		class [System.Xml]System.Xml.XmlAttribute	V_2,
+		string	V_3,
+		string	V_4,
+		string	V_5,
+		string	V_6,
+		string	V_7,
+		string	V_8,
+		string	V_9)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stfld valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet NAnt.VSNet.VcProjectConfiguration::_characterSet
+	IL_0007:  ldarg.0 
+	IL_0008:  ldc.i4.0 
+	IL_0009:  stfld valuetype NAnt.VSNet.Types.UseOfMFC NAnt.VSNet.VcProjectConfiguration::_useOfMFC
+	IL_000e:  ldarg.0 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  stfld valuetype NAnt.VSNet.Types.UseOfATL NAnt.VSNet.VcProjectConfiguration::_useOfATL
+	IL_0015:  ldarg.0 
+	IL_0016:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_001b:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
+	IL_0020:  ldarg.0 
+	IL_0021:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0026:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_sourceConfigs
+	IL_002b:  ldarg.0 
+	IL_002c:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0031:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_rcConfigs
+	IL_0036:  ldarg.0 
+	IL_0037:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_003c:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_idlConfigs
+	IL_0041:  ldarg.0 
+	IL_0042:  ldarg.1 
+	IL_0043:  ldarg.2 
+	IL_0044:  ldarg.3 
+	IL_0045:  call instance void class NAnt.VSNet.VcConfigurationBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ProjectBase, class [mscorlib]System.IO.DirectoryInfo)
+	IL_004a:  nop 
+	IL_004b:  ldarg.1 
+	IL_004c:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0051:  ldstr "OutputDirectory"
+	IL_0056:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_005b:  stloc.0 
+	IL_005c:  ldloc.0 
+	IL_005d:  brfalse IL_0070
+
+	IL_0062:  nop 
+	IL_0063:  ldarg.0 
+	IL_0064:  ldloc.0 
+	IL_0065:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_006a:  stfld string NAnt.VSNet.VcProjectConfiguration::_rawRelativeOutputDir
+	IL_006f:  nop 
+	IL_0070:  ldarg.1 
+	IL_0071:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0076:  ldstr "IntermediateDirectory"
+	IL_007b:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0080:  stloc.1 
+	IL_0081:  ldloc.1 
+	IL_0082:  brfalse IL_0095
+
+	IL_0087:  nop 
+	IL_0088:  ldarg.0 
+	IL_0089:  ldloc.1 
+	IL_008a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_008f:  stfld string NAnt.VSNet.VcProjectConfiguration::_rawIntermediateDir
+	IL_0094:  nop 
+	IL_0095:  ldarg.1 
+	IL_0096:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_009b:  ldstr "ReferencesPath"
+	IL_00a0:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_00a5:  stloc.2 
+	IL_00a6:  ldloc.2 
+	IL_00a7:  brfalse IL_00bf
+
+	IL_00ac:  nop 
+	IL_00ad:  ldarg.0 
+	IL_00ae:  ldloc.2 
+	IL_00af:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_00b4:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_00b9:  stfld string NAnt.VSNet.VcProjectConfiguration::_rawReferencesPath
+	IL_00be:  nop 
+	IL_00bf:  ldarg.1 
+	IL_00c0:  ldstr "ManagedExtensions"
+	IL_00c5:  call string class NAnt.VSNet.VcProjectConfiguration::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_00ca:  stloc.3 
+	IL_00cb:  ldloc.3 
+	IL_00cc:  brfalse IL_0154
+
+	IL_00d1:  nop 
+	IL_00d2:  ldloc.3 
+	IL_00d3:  callvirt instance string string::ToLower()
+	IL_00d8:  stloc.s 4
+	IL_00da:  ldloc.s 4
+	IL_00dc:  brfalse IL_0142
+
+	IL_00e1:  ldloc.s 4
+	IL_00e3:  ldstr "false"
+	IL_00e8:  call bool string::op_Equality(string, string)
+	IL_00ed:  brtrue IL_012a
+
+	IL_00f2:  ldloc.s 4
+	IL_00f4:  ldstr "0"
+	IL_00f9:  call bool string::op_Equality(string, string)
+	IL_00fe:  brtrue IL_012a
+
+	IL_0103:  ldloc.s 4
+	IL_0105:  ldstr "true"
+	IL_010a:  call bool string::op_Equality(string, string)
+	IL_010f:  brtrue IL_0136
+
+	IL_0114:  ldloc.s 4
+	IL_0116:  ldstr "1"
+	IL_011b:  call bool string::op_Equality(string, string)
+	IL_0120:  brtrue IL_0136
+
+	IL_0125:  br IL_0142
+
+	IL_012a:  ldarg.0 
+	IL_012b:  ldc.i4.0 
+	IL_012c:  stfld bool NAnt.VSNet.VcProjectConfiguration::_managedExtensions
+	IL_0131:  br IL_0153
+
+	IL_0136:  ldarg.0 
+	IL_0137:  ldc.i4.1 
+	IL_0138:  stfld bool NAnt.VSNet.VcProjectConfiguration::_managedExtensions
+	IL_013d:  br IL_0153
+
+	IL_0142:  ldstr "ManagedExtensions '{0}' is not supported yet."
+	IL_0147:  ldloc.3 
+	IL_0148:  call string string::Format(string, object)
+	IL_014d:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	IL_0152:  throw 
+	IL_0153:  nop 
+	IL_0154:  ldarg.1 
+	IL_0155:  ldstr "ConfigurationType"
+	IL_015a:  call string class NAnt.VSNet.VcProjectConfiguration::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_015f:  stloc.s 5
+	IL_0161:  ldloc.s 5
+	IL_0163:  brfalse IL_0190
+
+	IL_0168:  nop 
+	IL_0169:  ldarg.0 
+	IL_016a:  ldtoken NAnt.VSNet.VcProjectConfiguration/ConfigurationType
+	IL_016f:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0174:  ldloc.s 5
+	IL_0176:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_017b:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
+	IL_0180:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, int32)
+	IL_0185:  unbox.any NAnt.VSNet.VcProjectConfiguration/ConfigurationType
+	IL_018a:  stfld valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType NAnt.VSNet.VcProjectConfiguration::_type
+	IL_018f:  nop 
+	IL_0190:  ldarg.1 
+	IL_0191:  ldstr "WholeProgramOptimization"
+	IL_0196:  call string class NAnt.VSNet.VcProjectConfiguration::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_019b:  stloc.s 6
+	IL_019d:  ldloc.s 6
+	IL_019f:  brfalse IL_01c6
+
+	IL_01a4:  nop 
+	IL_01a5:  ldarg.0 
+	IL_01a6:  ldloc.s 6
+	IL_01a8:  callvirt instance string string::Trim()
+	IL_01ad:  ldstr "true"
+	IL_01b2:  ldc.i4.1 
+	IL_01b3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01b8:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_01bd:  ldc.i4.0 
+	IL_01be:  ceq 
+	IL_01c0:  stfld bool NAnt.VSNet.VcProjectConfiguration::_wholeProgramOptimization
+	IL_01c5:  nop 
+	IL_01c6:  ldarg.1 
+	IL_01c7:  ldstr "CharacterSet"
+	IL_01cc:  call string class NAnt.VSNet.VcProjectConfiguration::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_01d1:  stloc.s 7
+	IL_01d3:  ldloc.s 7
+	IL_01d5:  brfalse IL_0202
+
+	IL_01da:  nop 
+	IL_01db:  ldarg.0 
+	IL_01dc:  ldtoken [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet
+	IL_01e1:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_01e6:  ldloc.s 7
+	IL_01e8:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01ed:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
+	IL_01f2:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, int32)
+	IL_01f7:  unbox.any [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet
+	IL_01fc:  stfld valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet NAnt.VSNet.VcProjectConfiguration::_characterSet
+	IL_0201:  nop 
+	IL_0202:  ldarg.1 
+	IL_0203:  ldstr "UseOfMFC"
+	IL_0208:  call string class NAnt.VSNet.VcProjectConfiguration::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_020d:  stloc.s 8
+	IL_020f:  ldloc.s 8
+	IL_0211:  brfalse IL_023e
+
+	IL_0216:  nop 
+	IL_0217:  ldarg.0 
+	IL_0218:  ldtoken NAnt.VSNet.Types.UseOfMFC
+	IL_021d:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0222:  ldloc.s 8
+	IL_0224:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0229:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
+	IL_022e:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, int32)
+	IL_0233:  unbox.any NAnt.VSNet.Types.UseOfMFC
+	IL_0238:  stfld valuetype NAnt.VSNet.Types.UseOfMFC NAnt.VSNet.VcProjectConfiguration::_useOfMFC
+	IL_023d:  nop 
+	IL_023e:  ldarg.1 
+	IL_023f:  ldstr "UseOfATL"
+	IL_0244:  call string class NAnt.VSNet.VcProjectConfiguration::GetXmlAttributeValue(class [System.Xml]System.Xml.XmlNode, string)
+	IL_0249:  stloc.s 9
+	IL_024b:  ldloc.s 9
+	IL_024d:  brfalse IL_027a
+
+	IL_0252:  nop 
+	IL_0253:  ldarg.0 
+	IL_0254:  ldtoken NAnt.VSNet.Types.UseOfATL
+	IL_0259:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_025e:  ldloc.s 9
+	IL_0260:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0265:  call int32 int32::Parse(string, class [mscorlib]System.IFormatProvider)
+	IL_026a:  call object class [mscorlib]System.Enum::ToObject(class [mscorlib]System.Type, int32)
+	IL_026f:  unbox.any NAnt.VSNet.Types.UseOfATL
+	IL_0274:  stfld valuetype NAnt.VSNet.Types.UseOfATL NAnt.VSNet.VcProjectConfiguration::_useOfATL
+	IL_0279:  nop 
+	IL_027a:  ldarg.0 
+	IL_027b:  ldarg.0 
+	IL_027c:  newobj instance void class NAnt.VSNet.VcProjectConfiguration/LinkerConfig::'.ctor'(class NAnt.VSNet.VcProjectConfiguration)
+	IL_0281:  stfld class NAnt.VSNet.VcProjectConfiguration/LinkerConfig NAnt.VSNet.VcProjectConfiguration::_linkerConfiguration
+	IL_0286:  ret 
+    } // end of method VcProjectConfiguration::.ctor
+
+    // method line 270
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType get_Type ()  cil managed 
+    {
+        // Method begins at RVA 0xf75c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType NAnt.VSNet.VcProjectConfiguration::_type
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_Type
+
+    // method line 271
+    .method public hidebysig specialname 
+           instance default bool get_WholeProgramOptimization ()  cil managed 
+    {
+        // Method begins at RVA 0xf778
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_wholeProgramOptimization
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_WholeProgramOptimization
+
+    // method line 272
+    .method public hidebysig specialname 
+           instance default valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet get_CharacterSet ()  cil managed 
+    {
+        // Method begins at RVA 0xf794
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet NAnt.VSNet.VcProjectConfiguration::_characterSet
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_CharacterSet
+
+    // method line 273
+    .method public hidebysig specialname 
+           instance default bool get_ManagedExtensions ()  cil managed 
+    {
+        // Method begins at RVA 0xf7b0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_managedExtensions
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_ManagedExtensions
+
+    // method line 274
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.VSNet.Types.UseOfMFC get_UseOfMFC ()  cil managed 
+    {
+        // Method begins at RVA 0xf7cc
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.VSNet.Types.UseOfMFC	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.VSNet.Types.UseOfMFC NAnt.VSNet.VcProjectConfiguration::_useOfMFC
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_UseOfMFC
+
+    // method line 275
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.VSNet.Types.UseOfATL get_UseOfATL ()  cil managed 
+    {
+        // Method begins at RVA 0xf7e8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.VSNet.Types.UseOfATL	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.VSNet.Types.UseOfATL NAnt.VSNet.VcProjectConfiguration::_useOfATL
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_UseOfATL
+
+    // method line 276
+    .method assembly hidebysig specialname 
+           instance default string get_RawRelativeOutputDir ()  cil managed 
+    {
+        // Method begins at RVA 0xf804
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.VcProjectConfiguration::_rawRelativeOutputDir
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_RawRelativeOutputDir
+
+    // method line 277
+    .method assembly hidebysig specialname 
+           instance default string get_RawIntermediateDir ()  cil managed 
+    {
+        // Method begins at RVA 0xf820
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.VcProjectConfiguration::_rawIntermediateDir
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_RawIntermediateDir
+
+    // method line 278
+    .method assembly hidebysig specialname 
+           instance default string get_RawReferencesPath ()  cil managed 
+    {
+        // Method begins at RVA 0xf83c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.VcProjectConfiguration::_rawReferencesPath
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_RawReferencesPath
+
+    // method line 279
+    .method assembly hidebysig specialname 
+           instance default class NAnt.VSNet.VcProjectConfiguration/LinkerConfig get_LinkerConfiguration ()  cil managed 
+    {
+        // Method begins at RVA 0xf858
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.VcProjectConfiguration/LinkerConfig	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.VSNet.VcProjectConfiguration/LinkerConfig NAnt.VSNet.VcProjectConfiguration::_linkerConfiguration
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectConfiguration::get_LinkerConfiguration
+
+    // method line 280
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.ArrayList get_ObjFiles ()  cil managed 
+    {
+        // Method begins at RVA 0xf874
+	// Code size 34 (0x22)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.ArrayList	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
+	IL_0007:  brtrue IL_0014
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance void class NAnt.VSNet.VcProjectConfiguration::Initialize()
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
+	IL_001a:  stloc.0 
+	IL_001b:  br IL_0020
+
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method VcProjectConfiguration::get_ObjFiles
+
+    // method line 281
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_SourceConfigs ()  cil managed 
+    {
+        // Method begins at RVA 0xf8a4
+	// Code size 34 (0x22)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.Hashtable	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
+	IL_0007:  brtrue IL_0014
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance void class NAnt.VSNet.VcProjectConfiguration::Initialize()
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_sourceConfigs
+	IL_001a:  stloc.0 
+	IL_001b:  br IL_0020
+
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method VcProjectConfiguration::get_SourceConfigs
+
+    // method line 282
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_RcConfigs ()  cil managed 
+    {
+        // Method begins at RVA 0xf8d4
+	// Code size 34 (0x22)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.Hashtable	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
+	IL_0007:  brtrue IL_0014
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance void class NAnt.VSNet.VcProjectConfiguration::Initialize()
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_rcConfigs
+	IL_001a:  stloc.0 
+	IL_001b:  br IL_0020
+
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method VcProjectConfiguration::get_RcConfigs
+
+    // method line 283
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_IdlConfigs ()  cil managed 
+    {
+        // Method begins at RVA 0xf904
+	// Code size 34 (0x22)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.Hashtable	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
+	IL_0007:  brtrue IL_0014
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance void class NAnt.VSNet.VcProjectConfiguration::Initialize()
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_idlConfigs
+	IL_001a:  stloc.0 
+	IL_001b:  br IL_0020
+
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method VcProjectConfiguration::get_IdlConfigs
+
+    // method line 284
+    .method private hidebysig specialname 
+           instance default string get_TargetPath ()  cil managed 
+    {
+        // Method begins at RVA 0xf934
+	// Code size 344 (0x158)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType	V_1,
+		string	V_2,
+		string	V_3,
+		string	V_4,
+		string	V_5,
+		string	V_6)
+	IL_0000:  nop 
+	IL_0001:  ldsfld string [mscorlib]System.String::Empty
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType class NAnt.VSNet.VcProjectConfiguration::get_Type()
+	IL_000d:  stloc.1 
+	IL_000e:  ldloc.1 
+	IL_000f:  switch (
+	  IL_010b,
+	  IL_0035,
+	  IL_007b,
+	  IL_0028,
+	  IL_00c1)
+	IL_0028:  ldloc.1 
+	IL_0029:  ldc.i4.s 0x0a
+	IL_002b:  beq IL_0148
+
+	IL_0030:  br IL_014d
+
+	IL_0035:  ldarg.0 
+	IL_0036:  ldstr "VCLinkerTool"
+	IL_003b:  ldstr "OutputFile"
+	IL_0040:  call instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
+	IL_0045:  stloc.2 
+	IL_0046:  ldloc.2 
+	IL_0047:  call bool string::IsNullOrEmpty(string)
+	IL_004c:  brfalse IL_005f
+
+	IL_0051:  nop 
+	IL_0052:  ldarg.0 
+	IL_0053:  ldstr "$(OutDir)/$(ProjectName).exe"
+	IL_0058:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	IL_005d:  stloc.2 
+	IL_005e:  nop 
+	IL_005f:  ldarg.0 
+	IL_0060:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_0065:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_006a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_006f:  ldloc.2 
+	IL_0070:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0075:  stloc.0 
+	IL_0076:  br IL_014d
+
+	IL_007b:  ldarg.0 
+	IL_007c:  ldstr "VCLinkerTool"
+	IL_0081:  ldstr "OutputFile"
+	IL_0086:  call instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
+	IL_008b:  stloc.3 
+	IL_008c:  ldloc.3 
+	IL_008d:  call bool string::IsNullOrEmpty(string)
+	IL_0092:  brfalse IL_00a5
+
+	IL_0097:  nop 
+	IL_0098:  ldarg.0 
+	IL_0099:  ldstr "$(OutDir)/$(ProjectName).dll"
+	IL_009e:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	IL_00a3:  stloc.3 
+	IL_00a4:  nop 
+	IL_00a5:  ldarg.0 
+	IL_00a6:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_00ab:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_00b0:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00b5:  ldloc.3 
+	IL_00b6:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_00bb:  stloc.0 
+	IL_00bc:  br IL_014d
+
+	IL_00c1:  ldarg.0 
+	IL_00c2:  ldstr "VCLibrarianTool"
+	IL_00c7:  ldstr "OutputFile"
+	IL_00cc:  call instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
+	IL_00d1:  stloc.s 4
+	IL_00d3:  ldloc.s 4
+	IL_00d5:  call bool string::IsNullOrEmpty(string)
+	IL_00da:  brfalse IL_00ee
+
+	IL_00df:  nop 
+	IL_00e0:  ldarg.0 
+	IL_00e1:  ldstr "$(OutDir)/$(ProjectName).lib"
+	IL_00e6:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	IL_00eb:  stloc.s 4
+	IL_00ed:  nop 
+	IL_00ee:  ldarg.0 
+	IL_00ef:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_00f4:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_00f9:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00fe:  ldloc.s 4
+	IL_0100:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0105:  stloc.0 
+	IL_0106:  br IL_014d
+
+	IL_010b:  ldarg.0 
+	IL_010c:  ldstr "VCNMakeTool"
+	IL_0111:  ldstr "Output"
+	IL_0116:  call instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
+	IL_011b:  stloc.s 5
+	IL_011d:  ldloc.s 5
+	IL_011f:  call bool string::IsNullOrEmpty(string)
+	IL_0124:  brtrue IL_0143
+
+	IL_0129:  nop 
+	IL_012a:  ldarg.0 
+	IL_012b:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_0130:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0135:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_013a:  ldloc.s 5
+	IL_013c:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0141:  stloc.0 
+	IL_0142:  nop 
+	IL_0143:  br IL_014d
+
+	IL_0148:  br IL_014d
+
+	IL_014d:  ldloc.0 
+	IL_014e:  stloc.s 6
+	IL_0150:  br IL_0155
+
+	IL_0155:  ldloc.s 6
+	IL_0157:  ret 
+    } // end of method VcProjectConfiguration::get_TargetPath
+
+    // method line 285
+    .method public virtual hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
+    {
+        // Method begins at RVA 0xfa98
+	// Code size 41 (0x29)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_000c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0011:  ldarg.0 
+	IL_0012:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::get_IntermediateDir()
+	IL_0017:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_001c:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0021:  stloc.0 
+	IL_0022:  br IL_0027
+
+	IL_0027:  ldloc.0 
+	IL_0028:  ret 
+    } // end of method VcProjectConfiguration::get_ObjectDir
+
+    // method line 286
+    .method public virtual hidebysig specialname 
+           instance default string get_RelativeOutputDir ()  cil managed 
+    {
+        // Method begins at RVA 0xfad0
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_RawRelativeOutputDir()
+	IL_0008:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method VcProjectConfiguration::get_RelativeOutputDir
+
+    // method line 287
+    .method public virtual hidebysig specialname 
+           instance default string get_IntermediateDir ()  cil managed 
+    {
+        // Method begins at RVA 0xfaf4
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_RawIntermediateDir()
+	IL_0008:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method VcProjectConfiguration::get_IntermediateDir
+
+    // method line 288
+    .method public virtual hidebysig specialname 
+           instance default string get_OutputPath ()  cil managed 
+    {
+        // Method begins at RVA 0xfb18
+	// Code size 34 (0x22)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
+	IL_0007:  brtrue IL_0014
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance void class NAnt.VSNet.VcProjectConfiguration::Initialize()
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld string NAnt.VSNet.VcProjectConfiguration::_outputPath
+	IL_001a:  stloc.0 
+	IL_001b:  br IL_0020
+
+	IL_0020:  ldloc.0 
+	IL_0021:  ret 
+    } // end of method VcProjectConfiguration::get_OutputPath
+
+    // method line 289
+    .method public virtual hidebysig specialname 
+           instance default string get_ReferencesPath ()  cil managed 
+    {
+        // Method begins at RVA 0xfb48
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_RawReferencesPath()
+	IL_0008:  call instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method VcProjectConfiguration::get_ReferencesPath
+
+    // method line 290
+    .method assembly hidebysig 
+           instance default string GetToolSetting (string toolName, string settingName, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler expander)  cil managed 
+    {
+        // Method begins at RVA 0xfb6c
+	// Code size 19 (0x13)
+	.maxstack 5
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  ldnull 
+	IL_0005:  ldarg.3 
+	IL_0006:  call instance string class NAnt.VSNet.VcProjectConfiguration::GetToolSetting(string, string, string, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler)
+	IL_000b:  stloc.0 
+	IL_000c:  br IL_0011
+
+	IL_0011:  ldloc.0 
+	IL_0012:  ret 
+    } // end of method VcProjectConfiguration::GetToolSetting
+
+    // method line 291
+    .method public virtual hidebysig 
+           instance default string GetToolSetting (string toolName, string settingName, string defaultValue)  cil managed 
+    {
+        // Method begins at RVA 0xfb8c
+	// Code size 30 (0x1e)
+	.maxstack 6
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  ldarg.3 
+	IL_0005:  ldarg.0 
+	IL_0006:  ldftn instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	IL_000c:  newobj instance void class NAnt.VSNet.VcConfigurationBase/ExpansionHandler::'.ctor'(object, native int)
+	IL_0011:  call instance string class NAnt.VSNet.VcProjectConfiguration::GetToolSetting(string, string, string, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler)
+	IL_0016:  stloc.0 
+	IL_0017:  br IL_001c
+
+	IL_001c:  ldloc.0 
+	IL_001d:  ret 
+    } // end of method VcProjectConfiguration::GetToolSetting
+
+    // method line 292
+    .method assembly hidebysig 
+           instance default string GetToolSetting (string toolName, string settingName, string defaultValue, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler expander)  cil managed 
+    {
+        // Method begins at RVA 0xfbb8
+	// Code size 99 (0x63)
+	.maxstack 2
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Collections.Hashtable	V_1,
+		string	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcConfigurationBase::Tools
+	IL_0009:  ldarg.1 
+	IL_000a:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_000f:  castclass [mscorlib]System.Collections.Hashtable
+	IL_0014:  stloc.1 
+	IL_0015:  ldloc.1 
+	IL_0016:  brfalse IL_003f
+
+	IL_001b:  nop 
+	IL_001c:  ldloc.1 
+	IL_001d:  ldarg.2 
+	IL_001e:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0023:  castclass [mscorlib]System.String
+	IL_0028:  stloc.0 
+	IL_0029:  ldloc.0 
+	IL_002a:  brfalse IL_003e
+
+	IL_002f:  nop 
+	IL_0030:  ldarg.s 4
+	IL_0032:  ldloc.0 
+	IL_0033:  callvirt instance string class NAnt.VSNet.VcConfigurationBase/ExpansionHandler::Invoke(string)
+	IL_0038:  stloc.2 
+	IL_0039:  br IL_0061
+
+	IL_003e:  nop 
+	IL_003f:  ldloc.0 
+	IL_0040:  brtrue IL_005a
+
+	IL_0045:  ldarg.3 
+	IL_0046:  brfalse IL_005a
+
+	IL_004b:  nop 
+	IL_004c:  ldarg.s 4
+	IL_004e:  ldarg.3 
+	IL_004f:  callvirt instance string class NAnt.VSNet.VcConfigurationBase/ExpansionHandler::Invoke(string)
+	IL_0054:  stloc.2 
+	IL_0055:  br IL_0061
+
+	IL_005a:  ldloc.0 
+	IL_005b:  stloc.2 
+	IL_005c:  br IL_0061
+
+	IL_0061:  ldloc.2 
+	IL_0062:  ret 
+    } // end of method VcProjectConfiguration::GetToolSetting
+
+    // method line 293
+    .method public virtual hidebysig 
+           instance default class [mscorlib]System.Collections.Hashtable GetToolArguments (string toolName, class NAnt.VSNet.VcArgumentMap argMap, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup ignoreGroup)  cil managed 
+    {
+        // Method begins at RVA 0xfc28
+	// Code size 30 (0x1e)
+	.maxstack 6
+	.locals init (
+		class [mscorlib]System.Collections.Hashtable	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.2 
+	IL_0004:  ldarg.3 
+	IL_0005:  ldarg.0 
+	IL_0006:  ldftn instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	IL_000c:  newobj instance void class NAnt.VSNet.VcConfigurationBase/ExpansionHandler::'.ctor'(object, native int)
+	IL_0011:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.VcProjectConfiguration::GetToolArguments(string, class NAnt.VSNet.VcArgumentMap, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler)
+	IL_0016:  stloc.0 
+	IL_0017:  br IL_001c
+
+	IL_001c:  ldloc.0 
+	IL_001d:  ret 
+    } // end of method VcProjectConfiguration::GetToolArguments
+
+    // method line 294
+    .method assembly hidebysig 
+           instance default class [mscorlib]System.Collections.Hashtable GetToolArguments (string toolName, class NAnt.VSNet.VcArgumentMap argMap, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup ignoreGroup, class NAnt.VSNet.VcConfigurationBase/ExpansionHandler expander)  cil managed 
+    {
+        // Method begins at RVA 0xfc54
+	// Code size 178 (0xb2)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Collections.Hashtable	V_0,
+		class [mscorlib]System.Collections.Hashtable	V_1,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_2,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_3,
+		string	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		class [mscorlib]System.Collections.Hashtable	V_6)
+	IL_0000:  nop 
+	IL_0001:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcConfigurationBase::Tools
+	IL_000d:  ldarg.1 
+	IL_000e:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_0013:  castclass [mscorlib]System.Collections.Hashtable
+	IL_0018:  stloc.1 
+	IL_0019:  ldloc.1 
+	IL_001a:  brfalse IL_00a7
+
+	IL_001f:  nop 
+	IL_0020:  nop 
+	IL_0021:  ldloc.1 
+	IL_0022:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_0027:  stloc.3 
+	.try { // 0
+	  IL_0028:  br IL_0080
+
+	  IL_002d:  ldloc.3 
+	  IL_002e:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0033:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_0038:  stloc.2 
+	  IL_0039:  nop 
+	  IL_003a:  ldarg.2 
+	  IL_003b:  ldloca.s 2
+	  IL_003d:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_0042:  castclass [mscorlib]System.String
+	  IL_0047:  ldarg.s 4
+	  IL_0049:  ldloca.s 2
+	  IL_004b:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_0050:  castclass [mscorlib]System.String
+	  IL_0055:  callvirt instance string class NAnt.VSNet.VcConfigurationBase/ExpansionHandler::Invoke(string)
+	  IL_005a:  ldarg.3 
+	  IL_005b:  callvirt instance string class NAnt.VSNet.VcArgumentMap::GetArgument(string, string, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup)
+	  IL_0060:  stloc.s 4
+	  IL_0062:  ldloc.s 4
+	  IL_0064:  brfalse IL_007f
+
+	  IL_0069:  nop 
+	  IL_006a:  ldloc.0 
+	  IL_006b:  ldloca.s 2
+	  IL_006d:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_0072:  castclass [mscorlib]System.String
+	  IL_0077:  ldloc.s 4
+	  IL_0079:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_007e:  nop 
+	  IL_007f:  nop 
+	  IL_0080:  ldloc.3 
+	  IL_0081:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0086:  brtrue IL_002d
+
+	  IL_008b:  leave IL_00a6
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0090:  ldloc.3 
+	  IL_0091:  isinst [mscorlib]System.IDisposable
+	  IL_0096:  dup 
+	  IL_0097:  stloc.s 5
+	  IL_0099:  brfalse IL_00a5
+
+	  IL_009e:  ldloc.s 5
+	  IL_00a0:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00a5:  endfinally 
+	} // end handler 0
+	IL_00a6:  nop 
+	IL_00a7:  ldloc.0 
+	IL_00a8:  stloc.s 6
+	IL_00aa:  br IL_00af
+
+	IL_00af:  ldloc.s 6
+	IL_00b1:  ret 
+    } // end of method VcProjectConfiguration::GetToolArguments
+
+    // method line 295
+    .method famorassem virtual hidebysig 
+           instance default string ExpandMacro (string macro)  cil managed 
+    {
+        // Method begins at RVA 0xfd24
+	// Code size 271 (0x10f)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		string	V_1,
+		char	V_2,
+		char	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0007:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  brfalse IL_0100
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ldstr "targetname"
+	IL_0019:  call bool string::op_Equality(string, string)
+	IL_001e:  brtrue IL_0068
+
+	IL_0023:  ldloc.0 
+	IL_0024:  ldstr "targetpath"
+	IL_0029:  call bool string::op_Equality(string, string)
+	IL_002e:  brtrue IL_007e
+
+	IL_0033:  ldloc.0 
+	IL_0034:  ldstr "targetext"
+	IL_0039:  call bool string::op_Equality(string, string)
+	IL_003e:  brtrue IL_008a
+
+	IL_0043:  ldloc.0 
+	IL_0044:  ldstr "targetfilename"
+	IL_0049:  call bool string::op_Equality(string, string)
+	IL_004e:  brtrue IL_009b
+
+	IL_0053:  ldloc.0 
+	IL_0054:  ldstr "targetdir"
+	IL_0059:  call bool string::op_Equality(string, string)
+	IL_005e:  brtrue IL_00ac
+
+	IL_0063:  br IL_0100
+
+	IL_0068:  ldarg.0 
+	IL_0069:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_TargetPath()
+	IL_006e:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_0073:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_0078:  stloc.1 
+	IL_0079:  br IL_010d
+
+	IL_007e:  ldarg.0 
+	IL_007f:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_TargetPath()
+	IL_0084:  stloc.1 
+	IL_0085:  br IL_010d
+
+	IL_008a:  ldarg.0 
+	IL_008b:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_TargetPath()
+	IL_0090:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_0095:  stloc.1 
+	IL_0096:  br IL_010d
+
+	IL_009b:  ldarg.0 
+	IL_009c:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_TargetPath()
+	IL_00a1:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_00a6:  stloc.1 
+	IL_00a7:  br IL_010d
+
+	IL_00ac:  ldarg.0 
+	IL_00ad:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_TargetPath()
+	IL_00b2:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_00b7:  ldarg.0 
+	IL_00b8:  call instance string class NAnt.VSNet.VcProjectConfiguration::get_TargetPath()
+	IL_00bd:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_00c2:  stloc.2 
+	IL_00c3:  ldloca.s 2
+	IL_00c5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00ca:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
+	IL_00cf:  callvirt instance bool string::EndsWith(string)
+	IL_00d4:  brfalse IL_00e3
+
+	IL_00d9:  ldsfld string [mscorlib]System.String::Empty
+	IL_00de:  br IL_00f5
+
+	IL_00e3:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_00e8:  stloc.3 
+	IL_00e9:  ldloca.s 3
+	IL_00eb:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00f0:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
+	IL_00f5:  call string string::Concat(string, string)
+	IL_00fa:  stloc.1 
+	IL_00fb:  br IL_010d
+
+	IL_0100:  ldarg.0 
+	IL_0101:  ldarg.1 
+	IL_0102:  call instance string class NAnt.VSNet.VcConfigurationBase::ExpandMacro(string)
+	IL_0107:  stloc.1 
+	IL_0108:  br IL_010d
+
+	IL_010d:  ldloc.1 
+	IL_010e:  ret 
+    } // end of method VcProjectConfiguration::ExpandMacro
+
+    // method line 296
+    .method private hidebysig 
+           instance default void Initialize ()  cil managed 
+    {
+        // Method begins at RVA 0xfe40
+	// Code size 831 (0x33f)
+	.maxstack 5
+	.locals init (
+		class NAnt.VSNet.VcProject	V_0,
+		string	V_1,
+		object	V_2,
+		class [mscorlib]System.Collections.IEnumerator	V_3,
+		string	V_4,
+		class NAnt.VSNet.VcConfigurationBase	V_5,
+		class [mscorlib]System.Collections.Hashtable	V_6,
+		class NAnt.VSNet.VcFileConfiguration	V_7,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_8,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_9,
+		class [mscorlib]System.IDisposable	V_10,
+		string	V_11,
+		class [mscorlib]System.IDisposable	V_12,
+		valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType	V_13,
+		string	V_14)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_0007:  castclass NAnt.VSNet.VcProject
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0013:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0018:  ldarg.0 
+	IL_0019:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::get_IntermediateDir()
+	IL_001e:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0023:  stloc.1 
+	IL_0024:  nop 
+	IL_0025:  ldloc.0 
+	IL_0026:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.VcProject::get_ProjectFiles()
+	IL_002b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0030:  stloc.3 
+	.try { // 1
+	  IL_0031:  br IL_0284
+
+	  IL_0036:  ldloc.3 
+	  IL_0037:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_003c:  stloc.2 
+	  IL_003d:  nop 
+	  IL_003e:  ldnull 
+	  IL_003f:  stloc.s 4
+	  IL_0041:  ldnull 
+	  IL_0042:  stloc.s 5
+	  IL_0044:  ldloc.2 
+	  IL_0045:  isinst [mscorlib]System.String
+	  IL_004a:  brfalse IL_005e
+
+	  IL_004f:  nop 
+	  IL_0050:  ldloc.2 
+	  IL_0051:  castclass [mscorlib]System.String
+	  IL_0056:  stloc.s 4
+	  IL_0058:  nop 
+	  IL_0059:  br IL_0104
+
+	  IL_005e:  nop 
+	  IL_005f:  ldloc.2 
+	  IL_0060:  castclass [mscorlib]System.Collections.Hashtable
+	  IL_0065:  stloc.s 6
+	  IL_0067:  ldloc.s 6
+	  IL_0069:  ldarg.0 
+	  IL_006a:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
+	  IL_006f:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_0074:  castclass NAnt.VSNet.VcFileConfiguration
+	  IL_0079:  stloc.s 7
+	  IL_007b:  ldloc.s 7
+	  IL_007d:  brfalse IL_0094
+
+	  IL_0082:  ldloc.s 7
+	  IL_0084:  callvirt instance bool class NAnt.VSNet.VcFileConfiguration::get_ExcludeFromBuild()
+	  IL_0089:  brfalse IL_0094
+
+	  IL_008e:  nop 
+	  IL_008f:  leave IL_0284
+
+	  IL_0094:  ldloc.s 7
+	  IL_0096:  stloc.s 5
+	  IL_0098:  ldloc.s 7
+	  IL_009a:  brtrue IL_00fa
+
+	  IL_009f:  nop 
+	  IL_00a0:  nop 
+	  IL_00a1:  ldloc.s 6
+	  IL_00a3:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	  IL_00a8:  stloc.s 9
+	  .try { // 0
+	    IL_00aa:  br IL_00d1
+
+	    IL_00af:  ldloc.s 9
+	    IL_00b1:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	    IL_00b6:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	    IL_00bb:  stloc.s 8
+	    IL_00bd:  nop 
+	    IL_00be:  ldloca.s 8
+	    IL_00c0:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	    IL_00c5:  castclass NAnt.VSNet.VcFileConfiguration
+	    IL_00ca:  stloc.s 7
+	    IL_00cc:  leave IL_00dd
+
+	    IL_00d1:  ldloc.s 9
+	    IL_00d3:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	    IL_00d8:  brtrue IL_00af
+
+	    IL_00dd:  leave IL_00f9
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_00e2:  ldloc.s 9
+	    IL_00e4:  isinst [mscorlib]System.IDisposable
+	    IL_00e9:  dup 
+	    IL_00ea:  stloc.s 10
+	    IL_00ec:  brfalse IL_00f8
+
+	    IL_00f1:  ldloc.s 10
+	    IL_00f3:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_00f8:  endfinally 
+	  } // end handler 0
+	  IL_00f9:  nop 
+	  IL_00fa:  ldloc.s 7
+	  IL_00fc:  callvirt instance string class NAnt.VSNet.VcFileConfiguration::get_RelativePath()
+	  IL_0101:  stloc.s 4
+	  IL_0103:  nop 
+	  IL_0104:  ldloc.s 4
+	  IL_0106:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	  IL_010b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0110:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	  IL_0115:  stloc.s 11
+	  IL_0117:  ldloc.s 5
+	  IL_0119:  brtrue IL_0123
+
+	  IL_011e:  nop 
+	  IL_011f:  ldarg.0 
+	  IL_0120:  stloc.s 5
+	  IL_0122:  nop 
+	  IL_0123:  ldloc.s 11
+	  IL_0125:  brfalse IL_0283
+
+	  IL_012a:  ldloc.s 11
+	  IL_012c:  ldstr ".cpp"
+	  IL_0131:  call bool string::op_Equality(string, string)
+	  IL_0136:  brtrue IL_0184
+
+	  IL_013b:  ldloc.s 11
+	  IL_013d:  ldstr ".c"
+	  IL_0142:  call bool string::op_Equality(string, string)
+	  IL_0147:  brtrue IL_0184
+
+	  IL_014c:  ldloc.s 11
+	  IL_014e:  ldstr ".rc"
+	  IL_0153:  call bool string::op_Equality(string, string)
+	  IL_0158:  brtrue IL_01e1
+
+	  IL_015d:  ldloc.s 11
+	  IL_015f:  ldstr ".idl"
+	  IL_0164:  call bool string::op_Equality(string, string)
+	  IL_0169:  brtrue IL_023d
+
+	  IL_016e:  ldloc.s 11
+	  IL_0170:  ldstr ".odl"
+	  IL_0175:  call bool string::op_Equality(string, string)
+	  IL_017a:  brtrue IL_023d
+
+	  IL_017f:  br IL_0283
+
+	  IL_0184:  ldarg.0 
+	  IL_0185:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_sourceConfigs
+	  IL_018a:  ldloc.s 5
+	  IL_018c:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	  IL_0191:  brtrue IL_01ab
+
+	  IL_0196:  nop 
+	  IL_0197:  ldarg.0 
+	  IL_0198:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_sourceConfigs
+	  IL_019d:  ldloc.s 5
+	  IL_019f:  ldc.i4.1 
+	  IL_01a0:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
+	  IL_01a5:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_01aa:  nop 
+	  IL_01ab:  ldarg.0 
+	  IL_01ac:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_sourceConfigs
+	  IL_01b1:  ldloc.s 5
+	  IL_01b3:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_01b8:  castclass [mscorlib]System.Collections.ArrayList
+	  IL_01bd:  ldloc.s 4
+	  IL_01bf:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_01c4:  pop 
+	  IL_01c5:  ldarg.0 
+	  IL_01c6:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
+	  IL_01cb:  ldloc.0 
+	  IL_01cc:  ldloc.s 4
+	  IL_01ce:  ldloc.s 5
+	  IL_01d0:  ldloc.1 
+	  IL_01d1:  callvirt instance string class NAnt.VSNet.VcProject::GetObjOutputFile(string, class NAnt.VSNet.VcConfigurationBase, string)
+	  IL_01d6:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_01db:  pop 
+	  IL_01dc:  leave IL_0283
+
+	  IL_01e1:  ldarg.0 
+	  IL_01e2:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_rcConfigs
+	  IL_01e7:  ldloc.s 5
+	  IL_01e9:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	  IL_01ee:  brtrue IL_0208
+
+	  IL_01f3:  nop 
+	  IL_01f4:  ldarg.0 
+	  IL_01f5:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_rcConfigs
+	  IL_01fa:  ldloc.s 5
+	  IL_01fc:  ldc.i4.1 
+	  IL_01fd:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
+	  IL_0202:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_0207:  nop 
+	  IL_0208:  ldarg.0 
+	  IL_0209:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_rcConfigs
+	  IL_020e:  ldloc.s 5
+	  IL_0210:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_0215:  castclass [mscorlib]System.Collections.ArrayList
+	  IL_021a:  ldloc.s 4
+	  IL_021c:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0221:  pop 
+	  IL_0222:  ldarg.0 
+	  IL_0223:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
+	  IL_0228:  ldloc.0 
+	  IL_0229:  ldloc.s 4
+	  IL_022b:  ldloc.s 5
+	  IL_022d:  callvirt instance string class NAnt.VSNet.VcProject::GetResourceOutputFile(string, class NAnt.VSNet.VcConfigurationBase)
+	  IL_0232:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0237:  pop 
+	  IL_0238:  leave IL_0283
+
+	  IL_023d:  ldarg.0 
+	  IL_023e:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_idlConfigs
+	  IL_0243:  ldloc.s 5
+	  IL_0245:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	  IL_024a:  brtrue IL_0264
+
+	  IL_024f:  nop 
+	  IL_0250:  ldarg.0 
+	  IL_0251:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_idlConfigs
+	  IL_0256:  ldloc.s 5
+	  IL_0258:  ldc.i4.1 
+	  IL_0259:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'(int32)
+	  IL_025e:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_0263:  nop 
+	  IL_0264:  ldarg.0 
+	  IL_0265:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::_idlConfigs
+	  IL_026a:  ldloc.s 5
+	  IL_026c:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	  IL_0271:  castclass [mscorlib]System.Collections.ArrayList
+	  IL_0276:  ldloc.s 4
+	  IL_0278:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_027d:  pop 
+	  IL_027e:  leave IL_0283
+
+	  IL_0283:  nop 
+	  IL_0284:  ldloc.3 
+	  IL_0285:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_028a:  brtrue IL_0036
+
+	  IL_028f:  leave IL_02aa
+
+	} // end .try 1
+	finally  { // 1
+	  IL_0294:  ldloc.3 
+	  IL_0295:  isinst [mscorlib]System.IDisposable
+	  IL_029a:  dup 
+	  IL_029b:  stloc.s 12
+	  IL_029d:  brfalse IL_02a9
+
+	  IL_02a2:  ldloc.s 12
+	  IL_02a4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_02a9:  endfinally 
+	} // end handler 1
+	IL_02aa:  ldarg.0 
+	IL_02ab:  call instance valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType class NAnt.VSNet.VcProjectConfiguration::get_Type()
+	IL_02b0:  stloc.s 13
+	IL_02b2:  ldloc.s 13
+	IL_02b4:  switch (
+	  IL_02f5,
+	  IL_02e4,
+	  IL_02e4,
+	  IL_0337,
+	  IL_02d2)
+	IL_02cd:  br IL_0337
+
+	IL_02d2:  ldarg.0 
+	IL_02d3:  ldarg.0 
+	IL_02d4:  ldloc.1 
+	IL_02d5:  call instance string class NAnt.VSNet.VcProjectConfiguration::GetLibrarianOutputFile(string)
+	IL_02da:  stfld string NAnt.VSNet.VcProjectConfiguration::_outputPath
+	IL_02df:  br IL_0337
+
+	IL_02e4:  ldarg.0 
+	IL_02e5:  ldarg.0 
+	IL_02e6:  call instance string class NAnt.VSNet.VcProjectConfiguration::GetLinkerOutputFile()
+	IL_02eb:  stfld string NAnt.VSNet.VcProjectConfiguration::_outputPath
+	IL_02f0:  br IL_0337
+
+	IL_02f5:  ldarg.0 
+	IL_02f6:  ldstr "VCNMakeTool"
+	IL_02fb:  ldstr "Output"
+	IL_0300:  call instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
+	IL_0305:  stloc.s 14
+	IL_0307:  ldloc.s 14
+	IL_0309:  call bool string::IsNullOrEmpty(string)
+	IL_030e:  brtrue IL_0332
+
+	IL_0313:  nop 
+	IL_0314:  ldarg.0 
+	IL_0315:  ldarg.0 
+	IL_0316:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_031b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0320:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0325:  ldloc.s 14
+	IL_0327:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_032c:  stfld string NAnt.VSNet.VcProjectConfiguration::_outputPath
+	IL_0331:  nop 
+	IL_0332:  br IL_0337
+
+	IL_0337:  ldarg.0 
+	IL_0338:  ldc.i4.1 
+	IL_0339:  stfld bool NAnt.VSNet.VcProjectConfiguration::_initialized
+	IL_033e:  ret 
+    } // end of method VcProjectConfiguration::Initialize
+
+    // method line 297
+    .method private hidebysig 
+           instance default string GetLibrarianOutputFile (string intermediateDir)  cil managed 
+    {
+        // Method begins at RVA 0x101c0
+	// Code size 138 (0x8a)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
+	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_000c:  brtrue IL_0019
+
+	IL_0011:  nop 
+	IL_0012:  ldnull 
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0088
+
+	IL_0019:  ldarg.0 
+	IL_001a:  ldstr "VCLibrarianTool"
+	IL_001f:  ldstr "OutputFile"
+	IL_0024:  ldstr "$(OutDir)/$(ProjectName).lib"
+	IL_0029:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string, string)
+	IL_002e:  stloc.1 
+	IL_002f:  ldloc.1 
+	IL_0030:  call bool string::IsNullOrEmpty(string)
+	IL_0035:  brfalse IL_0068
+
+	IL_003a:  nop 
+	IL_003b:  ldarg.1 
+	IL_003c:  ldarg.0 
+	IL_003d:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
+	IL_0042:  ldc.i4.0 
+	IL_0043:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	IL_0048:  castclass [mscorlib]System.String
+	IL_004d:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_0052:  ldstr ".lib"
+	IL_0057:  call string string::Concat(string, string)
+	IL_005c:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0061:  stloc.1 
+	IL_0062:  nop 
+	IL_0063:  br IL_0081
+
+	IL_0068:  nop 
+	IL_0069:  ldarg.0 
+	IL_006a:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_006f:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0074:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0079:  ldloc.1 
+	IL_007a:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_007f:  stloc.1 
+	IL_0080:  nop 
+	IL_0081:  ldloc.1 
+	IL_0082:  stloc.0 
+	IL_0083:  br IL_0088
+
+	IL_0088:  ldloc.0 
+	IL_0089:  ret 
+    } // end of method VcProjectConfiguration::GetLibrarianOutputFile
+
+    // method line 298
+    .method private hidebysig 
+           instance default string GetLinkerOutputFile ()  cil managed 
+    {
+        // Method begins at RVA 0x10258
+	// Code size 443 (0x1bb)
+	.maxstack 5
+	.locals init (
+		string	V_0,
+		string[]	V_1,
+		int32	V_2,
+		string	V_3,
+		string	V_4,
+		string	V_5,
+		valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType	V_6,
+		string	V_7)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldstr "VCLinkerTool"
+	IL_0007:  ldstr "AdditionalDependencies"
+	IL_000c:  call instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string)
+	IL_0011:  stloc.0 
+	IL_0012:  ldloc.0 
+	IL_0013:  call bool string::IsNullOrEmpty(string)
+	IL_0018:  brtrue IL_00aa
+
+	IL_001d:  nop 
+	IL_001e:  ldloc.0 
+	IL_001f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0024:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_0029:  ldstr "$(noinherit)"
+	IL_002e:  callvirt instance int32 string::IndexOf(string)
+	IL_0033:  ldc.i4.m1 
+	IL_0034:  beq IL_0061
+
+	IL_0039:  nop 
+	IL_003a:  ldloc.0 
+	IL_003b:  ldloc.0 
+	IL_003c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0041:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_0046:  ldstr "$(noinherit)"
+	IL_004b:  callvirt instance int32 string::IndexOf(string)
+	IL_0050:  ldstr "$(noinherit)"
+	IL_0055:  call instance int32 string::get_Length()
+	IL_005a:  callvirt instance string string::Remove(int32, int32)
+	IL_005f:  stloc.0 
+	IL_0060:  nop 
+	IL_0061:  ldloc.0 
+	IL_0062:  ldc.i4.s 0x20
+	IL_0064:  ldc.i4.0 
+	IL_0065:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	IL_006a:  stloc.1 
+	IL_006b:  ldc.i4.0 
+	IL_006c:  stloc.2 
+	IL_006d:  br IL_00a0
+
+	IL_0072:  nop 
+	IL_0073:  ldloc.1 
+	IL_0074:  ldloc.2 
+	IL_0075:  ldelem.ref 
+	IL_0076:  stloc.3 
+	IL_0077:  ldloc.3 
+	IL_0078:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_007d:  ldstr ".obj"
+	IL_0082:  call bool string::op_Equality(string, string)
+	IL_0087:  brfalse IL_009b
+
+	IL_008c:  nop 
+	IL_008d:  ldarg.0 
+	IL_008e:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
+	IL_0093:  ldloc.2 
+	IL_0094:  ldloc.3 
+	IL_0095:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Insert(int32, object)
+	IL_009a:  nop 
+	IL_009b:  nop 
+	IL_009c:  ldloc.2 
+	IL_009d:  ldc.i4.1 
+	IL_009e:  add 
+	IL_009f:  stloc.2 
+	IL_00a0:  ldloc.2 
+	IL_00a1:  ldloc.1 
+	IL_00a2:  ldlen 
+	IL_00a3:  conv.i4 
+	IL_00a4:  blt IL_0072
+
+	IL_00a9:  nop 
+	IL_00aa:  ldarg.0 
+	IL_00ab:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
+	IL_00b0:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
+	IL_00b5:  brtrue IL_00c3
+
+	IL_00ba:  nop 
+	IL_00bb:  ldnull 
+	IL_00bc:  stloc.s 4
+	IL_00be:  br IL_01b8
+
+	IL_00c3:  ldsfld string [mscorlib]System.String::Empty
+	IL_00c8:  stloc.s 5
+	IL_00ca:  ldarg.0 
+	IL_00cb:  call instance valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType class NAnt.VSNet.VcProjectConfiguration::get_Type()
+	IL_00d0:  stloc.s 6
+	IL_00d2:  ldloc.s 6
+	IL_00d4:  ldc.i4.1 
+	IL_00d5:  beq IL_00e7
+
+	IL_00da:  ldloc.s 6
+	IL_00dc:  ldc.i4.2 
+	IL_00dd:  beq IL_00f3
+
+	IL_00e2:  br IL_00ff
+
+	IL_00e7:  ldstr ".exe"
+	IL_00ec:  stloc.s 5
+	IL_00ee:  br IL_00ff
+
+	IL_00f3:  ldstr ".dll"
+	IL_00f8:  stloc.s 5
+	IL_00fa:  br IL_00ff
+
+	IL_00ff:  ldarg.0 
+	IL_0100:  ldstr "VCLinkerTool"
+	IL_0105:  ldstr "OutputFile"
+	IL_010a:  ldstr "$(OutDir)/$(ProjectName)"
+	IL_010f:  ldloc.s 5
+	IL_0111:  call string string::Concat(string, string)
+	IL_0116:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string, string)
+	IL_011b:  stloc.s 7
+	IL_011d:  ldloc.s 7
+	IL_011f:  call bool string::IsNullOrEmpty(string)
+	IL_0124:  brfalse IL_015f
+
+	IL_0129:  nop 
+	IL_012a:  ldarg.0 
+	IL_012b:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_0130:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0135:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_013a:  ldarg.0 
+	IL_013b:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::_objFiles
+	IL_0140:  ldc.i4.0 
+	IL_0141:  callvirt instance object class [mscorlib]System.Collections.ArrayList::get_Item(int32)
+	IL_0146:  castclass [mscorlib]System.String
+	IL_014b:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_0150:  ldloc.s 5
+	IL_0152:  call string string::Concat(string, string)
+	IL_0157:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_015c:  stloc.s 7
+	IL_015e:  nop 
+	IL_015f:  ldarg.0 
+	IL_0160:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
+	IL_0165:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.Tasks.SolutionTask::get_OutputDir()
+	IL_016a:  brfalse IL_0194
+
+	IL_016f:  nop 
+	IL_0170:  ldarg.0 
+	IL_0171:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
+	IL_0176:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.Tasks.SolutionTask::get_OutputDir()
+	IL_017b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0180:  ldloc.s 7
+	IL_0182:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_0187:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_018c:  stloc.s 7
+	IL_018e:  nop 
+	IL_018f:  br IL_01af
+
+	IL_0194:  nop 
+	IL_0195:  ldarg.0 
+	IL_0196:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_019b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_01a0:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_01a5:  ldloc.s 7
+	IL_01a7:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_01ac:  stloc.s 7
+	IL_01ae:  nop 
+	IL_01af:  ldloc.s 7
+	IL_01b1:  stloc.s 4
+	IL_01b3:  br IL_01b8
+
+	IL_01b8:  ldloc.s 4
+	IL_01ba:  ret 
+    } // end of method VcProjectConfiguration::GetLinkerOutputFile
+
+    // method line 299
+    .method private static hidebysig 
+           default string GetXmlAttributeValue (class [System.Xml]System.Xml.XmlNode xmlNode, string attributeName)  cil managed 
+    {
+        // Method begins at RVA 0x10420
+	// Code size 58 (0x3a)
+	.maxstack 2
+	.locals init (
+		string	V_0,
+		class [System.Xml]System.Xml.XmlAttribute	V_1,
+		string	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  brfalse IL_0031
+
+	IL_0009:  nop 
+	IL_000a:  ldarg.0 
+	IL_000b:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0010:  ldarg.1 
+	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNamedNodeMap::GetNamedItem(string)
+	IL_0016:  castclass [System.Xml]System.Xml.XmlAttribute
+	IL_001b:  stloc.1 
+	IL_001c:  ldloc.1 
+	IL_001d:  brfalse IL_0030
+
+	IL_0022:  nop 
+	IL_0023:  ldloc.1 
+	IL_0024:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_0029:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_002e:  stloc.0 
+	IL_002f:  nop 
+	IL_0030:  nop 
+	IL_0031:  ldloc.0 
+	IL_0032:  stloc.2 
+	IL_0033:  br IL_0038
+
+	IL_0038:  ldloc.2 
+	IL_0039:  ret 
+    } // end of method VcProjectConfiguration::GetXmlAttributeValue
+
+	.property instance valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType Type ()
 	{
-		.get instance default string NAnt.VSNet.VcProject::get_Name () 
+		.get instance default valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType NAnt.VSNet.VcProjectConfiguration::get_Type () 
 	}
-	.property instance valuetype NAnt.VSNet.ProjectType Type ()
+	.property instance bool WholeProgramOptimization ()
 	{
-		.get instance default valuetype NAnt.VSNet.ProjectType NAnt.VSNet.VcProject::get_Type () 
+		.get instance default bool NAnt.VSNet.VcProjectConfiguration::get_WholeProgramOptimization () 
 	}
-	.property instance string ProjectPath ()
+	.property instance valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet CharacterSet ()
 	{
-		.get instance default string NAnt.VSNet.VcProject::get_ProjectPath () 
+		.get instance default valuetype [NAnt.VisualCppTasks]NAnt.VisualCpp.Types.CharacterSet NAnt.VSNet.VcProjectConfiguration::get_CharacterSet () 
 	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo ProjectDirectory ()
+	.property instance bool ManagedExtensions ()
 	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcProject::get_ProjectDirectory () 
+		.get instance default bool NAnt.VSNet.VcProjectConfiguration::get_ManagedExtensions () 
 	}
-	.property instance valuetype NAnt.VSNet.ProjectLocation ProjectLocation ()
+	.property instance valuetype NAnt.VSNet.Types.UseOfMFC UseOfMFC ()
 	{
-		.get instance default valuetype NAnt.VSNet.ProjectLocation NAnt.VSNet.VcProject::get_ProjectLocation () 
+		.get instance default valuetype NAnt.VSNet.Types.UseOfMFC NAnt.VSNet.VcProjectConfiguration::get_UseOfMFC () 
+	}
+	.property instance valuetype NAnt.VSNet.Types.UseOfATL UseOfATL ()
+	{
+		.get instance default valuetype NAnt.VSNet.Types.UseOfATL NAnt.VSNet.VcProjectConfiguration::get_UseOfATL () 
+	}
+	.property instance string RawRelativeOutputDir ()
+	{
+		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_RawRelativeOutputDir () 
+	}
+	.property instance string RawIntermediateDir ()
+	{
+		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_RawIntermediateDir () 
+	}
+	.property instance string RawReferencesPath ()
+	{
+		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_RawReferencesPath () 
+	}
+	.property instance class NAnt.VSNet.VcProjectConfiguration/LinkerConfig LinkerConfiguration ()
+	{
+		.get instance default class NAnt.VSNet.VcProjectConfiguration/LinkerConfig NAnt.VSNet.VcProjectConfiguration::get_LinkerConfiguration () 
+	}
+	.property instance class [mscorlib]System.Collections.ArrayList ObjFiles ()
+	{
+		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProjectConfiguration::get_ObjFiles () 
+	}
+	.property instance class [mscorlib]System.Collections.Hashtable SourceConfigs ()
+	{
+		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::get_SourceConfigs () 
+	}
+	.property instance class [mscorlib]System.Collections.Hashtable RcConfigs ()
+	{
+		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::get_RcConfigs () 
+	}
+	.property instance class [mscorlib]System.Collections.Hashtable IdlConfigs ()
+	{
+		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcProjectConfiguration::get_IdlConfigs () 
+	}
+	.property instance string TargetPath ()
+	{
+		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_TargetPath () 
 	}
 	.property instance class [mscorlib]System.IO.DirectoryInfo ObjectDir ()
 	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcProject::get_ObjectDir () 
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.VcProjectConfiguration::get_ObjectDir () 
 	}
-	.property instance string Guid ()
+	.property instance string RelativeOutputDir ()
 	{
-		.get instance default string NAnt.VSNet.VcProject::get_Guid () 
-		.set instance default void NAnt.VSNet.VcProject::set_Guid (string 'value') 
+		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_RelativeOutputDir () 
 	}
-	.property instance class [mscorlib]System.Collections.ArrayList References ()
+	.property instance string IntermediateDir ()
 	{
-		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::get_References () 
+		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_IntermediateDir () 
 	}
-	.property instance class [mscorlib]System.Collections.ArrayList ProjectFiles ()
+	.property instance string OutputPath ()
 	{
-		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.VSNet.VcProject::get_ProjectFiles () 
+		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_OutputPath () 
 	}
-  } // end of class NAnt.VSNet.VcProject
+	.property instance string ReferencesPath ()
+	{
+		.get instance default string NAnt.VSNet.VcProjectConfiguration::get_ReferencesPath () 
+	}
+  .class nested public auto ansi sealed ConfigurationType
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType Makefile = int32(0x00000000)
+    .field public static literal  valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType Application = int32(0x00000001)
+    .field public static literal  valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType DynamicLibrary = int32(0x00000002)
+    .field public static literal  valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType StaticLibrary = int32(0x00000004)
+    .field public static literal  valuetype NAnt.VSNet.VcProjectConfiguration/ConfigurationType Utility = int32(0x0000000a)
+
+  } // end of class ConfigurationType
+
+  .class nested assembly auto ansi beforefieldinit LinkerConfig
+  	extends [mscorlib]System.Object
+  {
+    .field  private initonly  class NAnt.VSNet.VcProjectConfiguration _projectConfig
+
+    // method line 300
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.VcProjectConfiguration projectConfig)  cil managed 
+    {
+        // Method begins at RVA 0x10466
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcProjectConfiguration/LinkerConfig::_projectConfig
+	IL_000e:  ret 
+    } // end of method LinkerConfig::.ctor
+
+    // method line 301
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_ImportLibrary ()  cil managed 
+    {
+        // Method begins at RVA 0x10478
+	// Code size 185 (0xb9)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		string	V_1,
+		class [mscorlib]System.IO.FileInfo	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  call instance class NAnt.VSNet.VcProject class NAnt.VSNet.VcProjectConfiguration/LinkerConfig::get_Project()
+	IL_0009:  ldarg.0 
+	IL_000a:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcProjectConfiguration/LinkerConfig::_projectConfig
+	IL_000f:  callvirt instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
+	IL_0014:  callvirt instance class NAnt.VSNet.Configuration class NAnt.VSNet.Tasks.SolutionTask::get_SolutionConfig()
+	IL_0019:  callvirt instance bool class NAnt.VSNet.ProjectBase::IsManaged(class NAnt.VSNet.Configuration)
+	IL_001e:  brtrue IL_002b
+
+	IL_0023:  nop 
+	IL_0024:  ldstr "$(OutDir)/$(TargetName).lib"
+	IL_0029:  stloc.0 
+	IL_002a:  nop 
+	IL_002b:  ldarg.0 
+	IL_002c:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcProjectConfiguration/LinkerConfig::_projectConfig
+	IL_0031:  ldstr "VCLinkerTool"
+	IL_0036:  ldstr "ImportLibrary"
+	IL_003b:  ldloc.0 
+	IL_003c:  callvirt instance string class NAnt.VSNet.VcConfigurationBase::GetToolSetting(string, string, string)
+	IL_0041:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0046:  stloc.1 
+	IL_0047:  ldloc.1 
+	IL_0048:  brtrue IL_0055
+
+	IL_004d:  nop 
+	IL_004e:  ldnull 
+	IL_004f:  stloc.2 
+	IL_0050:  br IL_00b7
+
+	IL_0055:  ldarg.0 
+	IL_0056:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcProjectConfiguration/LinkerConfig::_projectConfig
+	IL_005b:  callvirt instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
+	IL_0060:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.Tasks.SolutionTask::get_OutputDir()
+	IL_0065:  brfalse IL_0092
+
+	IL_006a:  nop 
+	IL_006b:  ldarg.0 
+	IL_006c:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcProjectConfiguration/LinkerConfig::_projectConfig
+	IL_0071:  callvirt instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
+	IL_0076:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.Tasks.SolutionTask::get_OutputDir()
+	IL_007b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0080:  ldloc.1 
+	IL_0081:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_0086:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_008b:  stloc.1 
+	IL_008c:  nop 
+	IL_008d:  br IL_00ab
+
+	IL_0092:  nop 
+	IL_0093:  ldarg.0 
+	IL_0094:  call instance class NAnt.VSNet.VcProject class NAnt.VSNet.VcProjectConfiguration/LinkerConfig::get_Project()
+	IL_0099:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_009e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00a3:  ldloc.1 
+	IL_00a4:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_00a9:  stloc.1 
+	IL_00aa:  nop 
+	IL_00ab:  ldloc.1 
+	IL_00ac:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_00b1:  stloc.2 
+	IL_00b2:  br IL_00b7
+
+	IL_00b7:  ldloc.2 
+	IL_00b8:  ret 
+    } // end of method LinkerConfig::get_ImportLibrary
+
+    // method line 302
+    .method private hidebysig specialname 
+           instance default class NAnt.VSNet.VcProject get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x10540
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.VcProject	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.VSNet.VcProjectConfiguration NAnt.VSNet.VcProjectConfiguration/LinkerConfig::_projectConfig
+	IL_0007:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_000c:  castclass NAnt.VSNet.VcProject
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method LinkerConfig::get_Project
+
+	.property instance class [mscorlib]System.IO.FileInfo ImportLibrary ()
+	{
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VSNet.VcProjectConfiguration/LinkerConfig::get_ImportLibrary () 
+	}
+	.property instance class NAnt.VSNet.VcProject Project ()
+	{
+		.get instance default class NAnt.VSNet.VcProject NAnt.VSNet.VcProjectConfiguration/LinkerConfig::get_Project () 
+	}
+  } // end of class LinkerConfig
+
+  } // end of class NAnt.VSNet.VcProjectConfiguration
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi beforefieldinit JSharpProject
+  .class public auto ansi beforefieldinit VBProject
   	extends NAnt.VSNet.ManagedProjectBase
   {
+    .field  private initonly  class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection _imports
 
-    // method line 415
+    // method line 303
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
     {
-        // Method begins at RVA 0x11778
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x10568
+	// Code size 171 (0xab)
 	.maxstack 9
+	.locals init (
+		class [System.Xml]System.Xml.XmlNodeList	V_0,
+		class [System.Xml]System.Xml.XmlElement	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class [System.Xml]System.Xml.XmlAttribute	V_3,
+		string	V_4,
+		class [mscorlib]System.IDisposable	V_5)
 	IL_0000:  ldarg.0 
 	IL_0001:  ldarg.1 
 	IL_0002:  ldarg.2 
@@ -21899,42 +20760,126 @@
 	IL_000c:  ldarg.s 8
 	IL_000e:  call instance void class NAnt.VSNet.ManagedProjectBase::'.ctor'(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
 	IL_0013:  nop 
-	IL_0014:  ret 
-    } // end of method JSharpProject::.ctor
+	IL_0014:  ldarg.0 
+	IL_0015:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection::'.ctor'()
+	IL_001a:  stfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection NAnt.VSNet.VBProject::_imports
+	IL_001f:  ldarg.3 
+	IL_0020:  ldstr "//Imports/Import"
+	IL_0025:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
+	IL_002a:  stloc.0 
+	IL_002b:  nop 
+	IL_002c:  ldloc.0 
+	IL_002d:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_0032:  stloc.2 
+	.try { // 0
+	  IL_0033:  br IL_0084
 
-    // method line 416
+	  IL_0038:  ldloc.2 
+	  IL_0039:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_003e:  castclass [System.Xml]System.Xml.XmlElement
+	  IL_0043:  stloc.1 
+	  IL_0044:  nop 
+	  IL_0045:  ldloc.1 
+	  IL_0046:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	  IL_004b:  ldstr "Namespace"
+	  IL_0050:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	  IL_0055:  stloc.3 
+	  IL_0056:  ldloc.3 
+	  IL_0057:  brfalse IL_0083
+
+	  IL_005c:  nop 
+	  IL_005d:  ldloc.3 
+	  IL_005e:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	  IL_0063:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0068:  callvirt instance string string::ToString(class [mscorlib]System.IFormatProvider)
+	  IL_006d:  stloc.s 4
+	  IL_006f:  ldarg.0 
+	  IL_0070:  ldfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection NAnt.VSNet.VBProject::_imports
+	  IL_0075:  ldloc.s 4
+	  IL_0077:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImport::'.ctor'(string)
+	  IL_007c:  callvirt instance int32 class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection::Add(class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImport)
+	  IL_0081:  pop 
+	  IL_0082:  nop 
+	  IL_0083:  nop 
+	  IL_0084:  ldloc.2 
+	  IL_0085:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_008a:  brtrue IL_0038
+
+	  IL_008f:  leave IL_00aa
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0094:  ldloc.2 
+	  IL_0095:  isinst [mscorlib]System.IDisposable
+	  IL_009a:  dup 
+	  IL_009b:  stloc.s 5
+	  IL_009d:  brfalse IL_00a9
+
+	  IL_00a2:  ldloc.s 5
+	  IL_00a4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00a9:  endfinally 
+	} // end handler 0
+	IL_00aa:  ret 
+    } // end of method VBProject::.ctor
+
+    // method line 304
+    .method family virtual hidebysig 
+           instance default void WriteProjectOptions (class [mscorlib]System.IO.StreamWriter sw)  cil managed 
+    {
+        // Method begins at RVA 0x10630
+	// Code size 43 (0x2b)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection NAnt.VSNet.VBProject::_imports
+	IL_0007:  callvirt instance int32 class [NAnt.DotNetTasks]NAnt.DotNet.Types.DataTypeCollectionBase::get_Count()
+	IL_000c:  ldc.i4.0 
+	IL_000d:  ble IL_002a
+
+	IL_0012:  nop 
+	IL_0013:  ldarg.1 
+	IL_0014:  ldstr "/imports:{0}"
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection NAnt.VSNet.VBProject::_imports
+	IL_001f:  callvirt instance string object::ToString()
+	IL_0024:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	IL_0029:  nop 
+	IL_002a:  ret 
+    } // end of method VBProject::WriteProjectOptions
+
+    // method line 305
     .method public virtual hidebysig specialname 
            instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
     {
-        // Method begins at RVA 0x1179c
+        // Method begins at RVA 0x1065c
 	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
 		valuetype NAnt.VSNet.ProjectType	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.3 
+	IL_0001:  ldc.i4.0 
 	IL_0002:  stloc.0 
 	IL_0003:  br IL_0008
 
 	IL_0008:  ldloc.0 
 	IL_0009:  ret 
-    } // end of method JSharpProject::get_Type
+    } // end of method VBProject::get_Type
 
-    // method line 417
+    // method line 306
     .method family virtual hidebysig 
            instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0x117b2
+        // Method begins at RVA 0x10672
 	// Code size 46 (0x2e)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  call bool class NAnt.VSNet.JSharpProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
+	IL_0002:  call bool class NAnt.VSNet.VBProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
 	IL_0007:  brtrue IL_002d
 
 	IL_000c:  nop 
 	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0012:  ldstr "Project '{0}' is not a valid J# project."
+	IL_0012:  ldstr "Project '{0}' is not a valid VB.NET project."
 	IL_0017:  ldarg.0 
 	IL_0018:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
 	IL_001d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
@@ -21942,66 +20887,81 @@
 	IL_0027:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
 	IL_002c:  throw 
 	IL_002d:  ret 
-    } // end of method JSharpProject::VerifyProjectXml
+    } // end of method VBProject::VerifyProjectXml
 
-    // method line 418
+    // method line 307
     .method family virtual hidebysig 
            instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0x117e4
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x106a4
+	// Code size 43 (0x2b)
 	.maxstack 2
 	.locals init (
 		valuetype NAnt.VSNet.ProductVersion	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "./VISUALJSHARP"
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	IL_000c:  call valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ManagedProjectBase::GetProductVersion(class [System.Xml]System.Xml.XmlNode)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0002:  brtrue IL_0013
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method JSharpProject::DetermineProductVersion
+	IL_0007:  nop 
+	IL_0008:  ldstr "docElement"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.1 
+	IL_0014:  ldstr "./VisualBasic"
+	IL_0019:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	IL_001e:  call valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ManagedProjectBase::GetProductVersion(class [System.Xml]System.Xml.XmlNode)
+	IL_0023:  stloc.0 
+	IL_0024:  br IL_0029
 
-    // method line 419
+	IL_0029:  ldloc.0 
+	IL_002a:  ret 
+    } // end of method VBProject::DetermineProductVersion
+
+    // method line 308
+    .method family virtual hidebysig specialname 
+           instance default string get_FileExtension ()  cil managed 
+    {
+        // Method begins at RVA 0x106dc
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldstr ".vb"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method VBProject::get_FileExtension
+
+    // method line 309
     .method family virtual hidebysig 
-           instance default void Prepare (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+           instance default valuetype NAnt.VSNet.ProjectLocation DetermineProjectLocation (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0x1180c
-	// Code size 55 (0x37)
+        // Method begins at RVA 0x106f8
+	// Code size 25 (0x19)
 	.maxstack 2
 	.locals init (
-		class NAnt.VSNet.ConfigurationBase	V_0)
+		valuetype NAnt.VSNet.ProjectLocation	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
-	IL_0014:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0019:  brtrue IL_0036
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr "./VisualBasic"
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	IL_000c:  call valuetype NAnt.VSNet.ProjectLocation class NAnt.VSNet.ManagedProjectBase::GetProjectLocation(class [System.Xml]System.Xml.XmlNode)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_001e:  nop 
-	IL_001f:  ldloc.0 
-	IL_0020:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
-	IL_0025:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
-	IL_002a:  ldloc.0 
-	IL_002b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
-	IL_0030:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Refresh()
-	IL_0035:  nop 
-	IL_0036:  ret 
-    } // end of method JSharpProject::Prepare
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method VBProject::DetermineProjectLocation
 
-    // method line 420
+    // method line 310
     .method family virtual hidebysig 
            instance default class [System]System.Diagnostics.ProcessStartInfo GetProcessStartInfo (class NAnt.VSNet.ConfigurationBase config, string responseFile)  cil managed 
     {
-        // Method begins at RVA 0x11850
-	// Code size 137 (0x89)
+        // Method begins at RVA 0x10720
+	// Code size 132 (0x84)
 	.maxstack 4
 	.locals init (
 		class [System]System.Diagnostics.ProcessStartInfo	V_0,
@@ -22013,7 +20973,7 @@
 	IL_000c:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
 	IL_0011:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
 	IL_0016:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001b:  ldstr "vjc.exe"
+	IL_001b:  ldstr "vbc.exe"
 	IL_0020:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
 	IL_0025:  ldstr "@\""
 	IL_002a:  ldarg.2 
@@ -22024,78 +20984,38 @@
 	IL_003b:  ldarg.0 
 	IL_003c:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
 	IL_0041:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
-	IL_0046:  brfalse IL_006d
+	IL_0046:  brfalse IL_0068
 
 	IL_004b:  nop 
 	IL_004c:  ldloc.0 
 	IL_004d:  ldarg.0 
 	IL_004e:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
 	IL_0053:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
-	IL_0058:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_005d:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_0062:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
-	IL_0067:  nop 
-	IL_0068:  br IL_0080
-
-	IL_006d:  nop 
-	IL_006e:  ldloc.0 
-	IL_006f:  ldarg.0 
-	IL_0070:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0075:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_007a:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
-	IL_007f:  nop 
-	IL_0080:  ldloc.0 
-	IL_0081:  stloc.1 
-	IL_0082:  br IL_0087
-
-	IL_0087:  ldloc.1 
-	IL_0088:  ret 
-    } // end of method JSharpProject::GetProcessStartInfo
-
-    // method line 421
-    .method family virtual hidebysig specialname 
-           instance default string get_FileExtension ()  cil managed 
-    {
-        // Method begins at RVA 0x118e8
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldstr ".jsl"
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method JSharpProject::get_FileExtension
+	IL_0058:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
+	IL_005d:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
+	IL_0062:  nop 
+	IL_0063:  br IL_007b
 
-    // method line 422
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.ProjectLocation DetermineProjectLocation (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x11904
-	// Code size 25 (0x19)
-	.maxstack 2
-	.locals init (
-		valuetype NAnt.VSNet.ProjectLocation	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "./VISUALJSHARP"
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	IL_000c:  call valuetype NAnt.VSNet.ProjectLocation class NAnt.VSNet.ManagedProjectBase::GetProjectLocation(class [System.Xml]System.Xml.XmlNode)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0068:  nop 
+	IL_0069:  ldloc.0 
+	IL_006a:  ldarg.0 
+	IL_006b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0070:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0075:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
+	IL_007a:  nop 
+	IL_007b:  ldloc.0 
+	IL_007c:  stloc.1 
+	IL_007d:  br IL_0082
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method JSharpProject::DetermineProjectLocation
+	IL_0082:  ldloc.1 
+	IL_0083:  ret 
+    } // end of method VBProject::GetProcessStartInfo
 
-    // method line 423
+    // method line 311
     .method public static hidebysig 
            default bool IsSupported (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
     {
-        // Method begins at RVA 0x1192c
+        // Method begins at RVA 0x107b0
 	// Code size 102 (0x66)
 	.maxstack 2
 	.locals init (
@@ -22122,7 +21042,7 @@
 	IL_0027:  br IL_0064
 
 	IL_002c:  ldarg.0 
-	IL_002d:  ldstr "./VISUALJSHARP"
+	IL_002d:  ldstr "./VisualBasic"
 	IL_0032:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
 	IL_0037:  stloc.1 
 	IL_0038:  ldloc.1 
@@ -22156,2412 +21076,3814 @@
 
 	IL_0064:  ldloc.0 
 	IL_0065:  ret 
-    } // end of method JSharpProject::IsSupported
+    } // end of method VBProject::IsSupported
 
 	.property instance valuetype NAnt.VSNet.ProjectType Type ()
 	{
-		.get instance default valuetype NAnt.VSNet.ProjectType NAnt.VSNet.JSharpProject::get_Type () 
+		.get instance default valuetype NAnt.VSNet.ProjectType NAnt.VSNet.VBProject::get_Type () 
 	}
 	.property instance string FileExtension ()
 	{
-		.get instance default string NAnt.VSNet.JSharpProject::get_FileExtension () 
+		.get instance default string NAnt.VSNet.VBProject::get_FileExtension () 
 	}
-  } // end of class NAnt.VSNet.JSharpProject
+  } // end of class NAnt.VSNet.VBProject
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi abstract beforefieldinit ConfigurationBase
-  	extends [mscorlib]System.Object
+  .class public auto ansi beforefieldinit VcProjectReference
+  	extends NAnt.VSNet.ProjectReferenceBase
   {
     .field  private initonly  class NAnt.VSNet.ProjectBase _project
-    .field  private initonly  class [System]System.Text.RegularExpressions.Regex _rxMacro
-    .field  private  class [mscorlib]System.Collections.Hashtable _extraOutputFiles
-    .field  private static  class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> '<>f__switch$map2'
-    .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+    .field  private initonly  bool _isPrivateSpecified
+    .field  private initonly  bool _isPrivate
 
+    // method line 312
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class NAnt.VSNet.SolutionBase solution, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
+    {
+        // Method begins at RVA 0x10a68
+	// Code size 174 (0xae)
+	.maxstack 7
+	.locals init (
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		string	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.2 
+	IL_0002:  ldarg.3 
+	IL_0003:  call instance void class NAnt.VSNet.ProjectReferenceBase::'.ctor'(class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase)
+	IL_0008:  nop 
+	IL_0009:  ldarg.1 
+	IL_000a:  brtrue IL_001b
 
-    // method line 424
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ProjectBase project)  cil managed 
+	IL_000f:  nop 
+	IL_0010:  ldstr "xmlDefinition"
+	IL_0015:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_001a:  throw 
+	IL_001b:  ldarg.s 4
+	IL_001d:  brtrue IL_002e
+
+	IL_0022:  nop 
+	IL_0023:  ldstr "solution"
+	IL_0028:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_002d:  throw 
+	IL_002e:  ldarg.s 5
+	IL_0030:  brtrue IL_0041
+
+	IL_0035:  nop 
+	IL_0036:  ldstr "tfc"
+	IL_003b:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0040:  throw 
+	IL_0041:  ldarg.s 6
+	IL_0043:  brtrue IL_0054
+
+	IL_0048:  nop 
+	IL_0049:  ldstr "gacCache"
+	IL_004e:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0053:  throw 
+	IL_0054:  ldarg.1 
+	IL_0055:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_005a:  ldstr "CopyLocal"
+	IL_005f:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0064:  stloc.0 
+	IL_0065:  ldloc.0 
+	IL_0066:  brfalse IL_0085
+
+	IL_006b:  nop 
+	IL_006c:  ldarg.0 
+	IL_006d:  ldc.i4.1 
+	IL_006e:  stfld bool NAnt.VSNet.VcProjectReference::_isPrivateSpecified
+	IL_0073:  ldarg.0 
+	IL_0074:  ldloc.0 
+	IL_0075:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_007a:  call bool bool::Parse(string)
+	IL_007f:  stfld bool NAnt.VSNet.VcProjectReference::_isPrivate
+	IL_0084:  nop 
+	IL_0085:  ldarg.s 4
+	IL_0087:  ldarg.1 
+	IL_0088:  ldstr "ReferencedProjectIdentifier"
+	IL_008d:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_0092:  callvirt instance string class NAnt.VSNet.SolutionBase::GetProjectFileFromGuid(string)
+	IL_0097:  stloc.1 
+	IL_0098:  ldarg.0 
+	IL_0099:  ldarg.0 
+	IL_009a:  ldarg.s 4
+	IL_009c:  ldarg.s 5
+	IL_009e:  ldarg.s 6
+	IL_00a0:  ldarg.s 7
+	IL_00a2:  ldloc.1 
+	IL_00a3:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::LoadProject(class NAnt.VSNet.SolutionBase, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class [mscorlib]System.IO.DirectoryInfo, string)
+	IL_00a8:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.VcProjectReference::_project
+	IL_00ad:  ret 
+    } // end of method VcProjectReference::.ctor
+
+    // method line 313
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ProjectBase project, class NAnt.VSNet.ProjectBase parent, bool isPrivateSpecified, bool isPrivate)  cil managed 
     {
-        // Method begins at RVA 0x52df
-	// Code size 60 (0x3c)
+        // Method begins at RVA 0x10b22
+	// Code size 37 (0x25)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldstr "\\$\\((\\w+)\\)"
-	IL_0006:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
-	IL_000b:  stfld class [System]System.Text.RegularExpressions.Regex NAnt.VSNet.ConfigurationBase::_rxMacro
-	IL_0010:  ldarg.0 
-	IL_0011:  call instance void object::'.ctor'()
-	IL_0016:  nop 
-	IL_0017:  ldarg.1 
-	IL_0018:  brtrue IL_0029
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
+	IL_0007:  ldarg.2 
+	IL_0008:  call instance void class NAnt.VSNet.ProjectReferenceBase::'.ctor'(class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase)
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.VcProjectReference::_project
+	IL_0015:  ldarg.0 
+	IL_0016:  ldarg.3 
+	IL_0017:  stfld bool NAnt.VSNet.VcProjectReference::_isPrivateSpecified
+	IL_001c:  ldarg.0 
+	IL_001d:  ldarg.s 4
+	IL_001f:  stfld bool NAnt.VSNet.VcProjectReference::_isPrivate
+	IL_0024:  ret 
+    } // end of method VcProjectReference::.ctor
 
-	IL_001d:  nop 
-	IL_001e:  ldstr "project"
-	IL_0023:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0028:  throw 
-	IL_0029:  ldarg.0 
-	IL_002a:  ldarg.1 
-	IL_002b:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ConfigurationBase::_project
-	IL_0030:  ldarg.0 
-	IL_0031:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_0036:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationBase::_extraOutputFiles
-	IL_003b:  ret 
-    } // end of method ConfigurationBase::.ctor
+    // method line 314
+    .method public virtual hidebysig 
+           instance default bool IsManaged (class NAnt.VSNet.Configuration config)  cil managed 
+    {
+        // Method begins at RVA 0x10b48
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class NAnt.VSNet.ProjectBase::IsManaged(class NAnt.VSNet.Configuration)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-    // method line 425
-    .method public hidebysig specialname 
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method VcProjectReference::IsManaged
+
+    // method line 315
+    .method public virtual hidebysig specialname 
            instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
     {
-        // Method begins at RVA 0x531c
+        // Method begins at RVA 0x10b6c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class NAnt.VSNet.ProjectBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ConfigurationBase::_project
+	IL_0002:  ldfld class NAnt.VSNet.ProjectBase NAnt.VSNet.VcProjectReference::_project
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ConfigurationBase::get_Project
+    } // end of method VcProjectReference::get_Project
 
-    // method line 426
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_Name ()  cil managed 
+    // method line 316
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsPrivate ()  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method ConfigurationBase::get_Name
+        // Method begins at RVA 0x10b88
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.VcProjectReference::_isPrivate
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 427
-    .method public virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectReference::get_IsPrivate
+
+    // method line 317
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsPrivateSpecified ()  cil managed 
     {
-        // Method begins at RVA 0x5338
-	// Code size 41 (0x29)
-	.maxstack 2
+        // Method begins at RVA 0x10ba4
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ObjectDir()
-	IL_000c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0011:  ldarg.0 
-	IL_0012:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
-	IL_0017:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_001c:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0021:  stloc.0 
-	IL_0022:  br IL_0027
+	IL_0002:  ldfld bool NAnt.VSNet.VcProjectReference::_isPrivateSpecified
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0027:  ldloc.0 
-	IL_0028:  ret 
-    } // end of method ConfigurationBase::get_ObjectDir
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcProjectReference::get_IsPrivateSpecified
 
-    // method line 428
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
+	.property instance class NAnt.VSNet.ProjectBase Project ()
+	{
+		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.VcProjectReference::get_Project () 
+	}
+	.property instance bool IsPrivate ()
+	{
+		.get instance default bool NAnt.VSNet.VcProjectReference::get_IsPrivate () 
+	}
+	.property instance bool IsPrivateSpecified ()
+	{
+		.get instance default bool NAnt.VSNet.VcProjectReference::get_IsPrivateSpecified () 
+	}
+  } // end of class NAnt.VSNet.VcProjectReference
+}
+
+.namespace NAnt.VSNet
+{
+  .class private auto ansi beforefieldinit CSharpProjectProvider
+  	extends [mscorlib]System.Object
+  	implements NAnt.VSNet.Extensibility.IProjectBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+
+    // method line 318
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method ConfigurationBase::get_OutputDir
+        // Method begins at RVA 0x10bbf
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method CSharpProjectProvider::.ctor
 
-    // method line 429
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_OutputPath ()  cil managed 
+    // method line 319
+    .method public final virtual hidebysig newslot 
+           instance default int32 IsSupported (string projectExt, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method ConfigurationBase::get_OutputPath
+        // Method begins at RVA 0x10bc8
+	// Code size 52 (0x34)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr ".csproj"
+	IL_0007:  call bool string::op_Equality(string, string)
+	IL_000c:  brfalse IL_0018
 
-    // method line 430
+	IL_0011:  ldc.i4.5 
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0032
+
+	IL_0018:  ldarg.2 
+	IL_0019:  call bool class NAnt.VSNet.CSharpProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
+	IL_001e:  brfalse IL_002b
+
+	IL_0023:  ldc.i4.s 0x0a
+	IL_0025:  stloc.0 
+	IL_0026:  br IL_0032
+
+	IL_002b:  ldc.i4.0 
+	IL_002c:  stloc.0 
+	IL_002d:  br IL_0032
+
+	IL_0032:  ldloc.0 
+	IL_0033:  ret 
+    } // end of method CSharpProjectProvider::IsSupported
+
+    // method line 320
+    .method public final virtual hidebysig newslot 
+           instance default class NAnt.VSNet.ProjectBase GetInstance (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
+    {
+        // Method begins at RVA 0x10c08
+	// Code size 27 (0x1b)
+	.maxstack 8
+	.locals init (
+		class NAnt.VSNet.ProjectBase	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  ldarg.s 4
+	IL_0006:  ldarg.s 5
+	IL_0008:  ldarg.s 6
+	IL_000a:  ldarg.s 7
+	IL_000c:  ldarg.s 8
+	IL_000e:  newobj instance void class NAnt.VSNet.CSharpProject::'.ctor'(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0019
+
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method CSharpProjectProvider::GetInstance
+
+    // method line 321
+    .method public final virtual hidebysig newslot 
+           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    {
+        // Method begins at RVA 0x10c30
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call string class NAnt.VSNet.ManagedProjectBase::LoadGuid(class [System.Xml]System.Xml.XmlElement)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method CSharpProjectProvider::LoadGuid
+
+  } // end of class NAnt.VSNet.CSharpProjectProvider
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi abstract beforefieldinit ReferenceBase
+  	extends [mscorlib]System.Object
+  {
+    .field  private  class NAnt.VSNet.ProjectBase _parent
+    .field  private  class NAnt.VSNet.ReferencesResolver _referencesResolver
+
+    // method line 322
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent)  cil managed 
+    {
+        // Method begins at RVA 0x5967
+	// Code size 22 (0x16)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld class NAnt.VSNet.ReferencesResolver NAnt.VSNet.ReferenceBase::_referencesResolver
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.2 
+	IL_0010:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ReferenceBase::_parent
+	IL_0015:  ret 
+    } // end of method ReferenceBase::.ctor
+
+    // method line 323
     .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_BuildPath ()  cil managed 
+           instance default bool get_CopyLocal ()  cil managed 
     {
         // Method begins at RVA 0x0
-    } // end of method ConfigurationBase::get_BuildPath
+    } // end of method ReferenceBase::get_CopyLocal
 
-    // method line 431
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_RelativeOutputDir ()  cil managed 
+    // method line 324
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default bool get_IsSystem ()  cil managed 
     {
         // Method begins at RVA 0x0
-    } // end of method ConfigurationBase::get_RelativeOutputDir
+    } // end of method ReferenceBase::get_IsSystem
 
-    // method line 432
+    // method line 325
     .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_PlatformName ()  cil managed 
+           instance default string get_Name ()  cil managed 
     {
         // Method begins at RVA 0x0
-    } // end of method ConfigurationBase::get_PlatformName
+    } // end of method ReferenceBase::get_Name
 
-    // method line 433
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_ExtraOutputFiles ()  cil managed 
+    // method line 326
+    .method family hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectBase get_Parent ()  cil managed 
     {
-        // Method begins at RVA 0x5370
+        // Method begins at RVA 0x5980
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0)
+		class NAnt.VSNet.ProjectBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationBase::_extraOutputFiles
+	IL_0002:  ldfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ReferenceBase::_parent
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ConfigurationBase::get_ExtraOutputFiles
+    } // end of method ReferenceBase::get_Parent
 
-    // method line 434
+    // method line 327
     .method family hidebysig specialname 
            instance default class NAnt.VSNet.Tasks.SolutionTask get_SolutionTask ()  cil managed 
     {
-        // Method begins at RVA 0x538c
+        // Method begins at RVA 0x599c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
 		class NAnt.VSNet.Tasks.SolutionTask	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
+	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
 	IL_0007:  callvirt instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method ConfigurationBase::get_SolutionTask
+    } // end of method ReferenceBase::get_SolutionTask
 
-    // method line 435
-    .method public hidebysig 
-           instance default string ExpandMacros (string s)  cil managed 
+    // method line 328
+    .method family hidebysig specialname 
+           instance default class NAnt.VSNet.ReferencesResolver get_ReferencesResolver ()  cil managed 
     {
-        // Method begins at RVA 0x53ac
-	// Code size 47 (0x2f)
-	.maxstack 4
+        // Method begins at RVA 0x59bc
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.VSNet.ReferencesResolver	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_000f
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.VSNet.ReferencesResolver NAnt.VSNet.ReferenceBase::_referencesResolver
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0007:  nop 
-	IL_0008:  ldarg.1 
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_002d
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ReferenceBase::get_ReferencesResolver
 
-	IL_000f:  ldarg.0 
-	IL_0010:  ldfld class [System]System.Text.RegularExpressions.Regex NAnt.VSNet.ConfigurationBase::_rxMacro
-	IL_0015:  ldarg.1 
-	IL_0016:  ldarg.0 
-	IL_0017:  ldftn instance string class NAnt.VSNet.ConfigurationBase::EvaluateMacro(class [System]System.Text.RegularExpressions.Match)
-	IL_001d:  newobj instance void class [System]System.Text.RegularExpressions.MatchEvaluator::'.ctor'(object, native int)
-	IL_0022:  callvirt instance string class [System]System.Text.RegularExpressions.Regex::Replace(string, class [System]System.Text.RegularExpressions.MatchEvaluator)
-	IL_0027:  stloc.0 
-	IL_0028:  br IL_002d
+    // method line 329
+    .method public virtual hidebysig newslot abstract 
+           instance default string GetPrimaryOutputFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ReferenceBase::GetPrimaryOutputFile
 
-	IL_002d:  ldloc.0 
-	IL_002e:  ret 
-    } // end of method ConfigurationBase::ExpandMacros
+    // method line 330
+    .method public virtual hidebysig newslot abstract 
+           instance default void GetOutputFiles (class NAnt.VSNet.Configuration solutionConfiguration, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ReferenceBase::GetOutputFiles
 
-    // method line 436
-    .method famorassem virtual hidebysig newslot 
-           instance default string ExpandMacro (string macro)  cil managed 
+    // method line 331
+    .method public virtual hidebysig newslot abstract 
+           instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x53e8
-	// Code size 488 (0x1e8)
-	.maxstack 4
+        // Method begins at RVA 0x0
+    } // end of method ReferenceBase::GetAssemblyReferences
+
+    // method line 332
+    .method public virtual hidebysig newslot abstract 
+           instance default valuetype [mscorlib]System.DateTime GetTimestamp (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ReferenceBase::GetTimestamp
+
+    // method line 333
+    .method public virtual hidebysig newslot abstract 
+           instance default bool IsManaged (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ReferenceBase::IsManaged
+
+    // method line 334
+    .method family hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetFileTimestamp (string fileName)  cil managed 
+    {
+        // Method begins at RVA 0x59d8
+	// Code size 38 (0x26)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>	V_1,
-		int32	V_2,
-		string	V_3,
-		char	V_4,
-		char	V_5,
-		string	V_6)
+		valuetype [mscorlib]System.DateTime	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0007:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  brfalse IL_018a
-
-	IL_0013:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.ConfigurationBase::'<>f__switch$map2'
-	IL_0018:  brtrue IL_008a
+	IL_0002:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0007:  brtrue IL_0018
 
-	IL_001d:  ldc.i4.8 
-	IL_001e:  newobj instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::'.ctor'(int32)
-	IL_0023:  stloc.1 
-	IL_0024:  ldloc.1 
-	IL_0025:  ldstr "outdir"
-	IL_002a:  ldc.i4.0 
-	IL_002b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0030:  ldloc.1 
-	IL_0031:  ldstr "configurationname"
-	IL_0036:  ldc.i4.1 
-	IL_0037:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_003c:  ldloc.1 
-	IL_003d:  ldstr "targetname"
-	IL_0042:  ldc.i4.2 
-	IL_0043:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0048:  ldloc.1 
-	IL_0049:  ldstr "targetpath"
-	IL_004e:  ldc.i4.3 
-	IL_004f:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0054:  ldloc.1 
-	IL_0055:  ldstr "targetext"
-	IL_005a:  ldc.i4.4 
-	IL_005b:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0060:  ldloc.1 
-	IL_0061:  ldstr "targetfilename"
-	IL_0066:  ldc.i4.5 
-	IL_0067:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_006c:  ldloc.1 
-	IL_006d:  ldstr "targetdir"
-	IL_0072:  ldc.i4.6 
-	IL_0073:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0078:  ldloc.1 
-	IL_0079:  ldstr "platformname"
-	IL_007e:  ldc.i4.7 
-	IL_007f:  callvirt instance void class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::Add(!0, !1)
-	IL_0084:  ldloc.1 
-	IL_0085:  stsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.ConfigurationBase::'<>f__switch$map2'
-	IL_008a:  ldsfld class [mscorlib]System.Collections.Generic.Dictionary`2<string,int32> NAnt.VSNet.ConfigurationBase::'<>f__switch$map2'
-	IL_008f:  ldloc.0 
-	IL_0090:  ldloca.s 2
-	IL_0092:  callvirt instance bool class [mscorlib]System.Collections.Generic.Dictionary`2<string, int32>::TryGetValue(!0, [out] !1&)
-	IL_0097:  brfalse IL_018a
+	IL_000c:  nop 
+	IL_000d:  ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MaxValue
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0024
 
-	IL_009c:  ldloc.2 
-	IL_009d:  switch (
-	  IL_00c7,
-	  IL_00d3,
-	  IL_00df,
-	  IL_00f5,
-	  IL_0101,
-	  IL_0112,
-	  IL_0123,
-	  IL_017e)
-	IL_00c2:  br IL_018a
+	IL_0018:  ldarg.1 
+	IL_0019:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.File::GetLastWriteTime(string)
+	IL_001e:  stloc.0 
+	IL_001f:  br IL_0024
 
-	IL_00c7:  ldarg.0 
-	IL_00c8:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_RelativeOutputDir()
-	IL_00cd:  stloc.3 
-	IL_00ce:  br IL_01e6
+	IL_0024:  ldloc.0 
+	IL_0025:  ret 
+    } // end of method ReferenceBase::GetFileTimestamp
 
-	IL_00d3:  ldarg.0 
-	IL_00d4:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
-	IL_00d9:  stloc.3 
-	IL_00da:  br IL_01e6
+    // method line 335
+    .method family hidebysig 
+           instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message)  cil managed 
+    {
+        // Method begins at RVA 0x5a0a
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_000e:  ret 
+    } // end of method ReferenceBase::Log
 
-	IL_00df:  ldarg.0 
-	IL_00e0:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
-	IL_00e5:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_00ea:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_00ef:  stloc.3 
-	IL_00f0:  br IL_01e6
+    // method line 336
+    .method family hidebysig 
+           instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
+    {
+	.param [3]
+	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	IL_00f5:  ldarg.0 
-	IL_00f6:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
-	IL_00fb:  stloc.3 
-	IL_00fc:  br IL_01e6
+        // Method begins at RVA 0x5a1a
+	// Code size 16 (0x10)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  ldarg.3 
+	IL_000a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_000f:  ret 
+    } // end of method ReferenceBase::Log
 
-	IL_0101:  ldarg.0 
-	IL_0102:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
-	IL_0107:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	IL_010c:  stloc.3 
-	IL_010d:  br IL_01e6
+    // method line 337
+    .method public static hidebysig 
+           default void GetRelatedFiles (string file, class [mscorlib]System.Collections.Hashtable relatedFiles)  cil managed 
+    {
+        // Method begins at RVA 0x5a2c
+	// Code size 251 (0xfb)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		string	V_1,
+		string	V_2,
+		string[]	V_3,
+		int32	V_4,
+		string	V_5)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_000e:  brfalse IL_001e
 
-	IL_0112:  ldarg.0 
-	IL_0113:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
-	IL_0118:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_011d:  stloc.3 
-	IL_011e:  br IL_01e6
+	IL_0013:  ldloc.0 
+	IL_0014:  call bool class [mscorlib]System.IO.Directory::Exists(string)
+	IL_0019:  brtrue IL_0024
 
-	IL_0123:  ldarg.0 
-	IL_0124:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	IL_0129:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_012e:  ldarg.0 
-	IL_012f:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	IL_0134:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0139:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_013e:  stloc.s 4
-	IL_0140:  ldloca.s 4
-	IL_0142:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0147:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
-	IL_014c:  callvirt instance bool string::EndsWith(string)
-	IL_0151:  brfalse IL_0160
+	IL_001e:  nop 
+	IL_001f:  br IL_00fa
 
-	IL_0156:  ldsfld string [mscorlib]System.String::Empty
-	IL_015b:  br IL_0173
+	IL_0024:  ldarg.1 
+	IL_0025:  ldarg.0 
+	IL_0026:  ldarg.0 
+	IL_0027:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_002c:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0031:  ldarg.0 
+	IL_0032:  ldstr ".*"
+	IL_0037:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
+	IL_003c:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_0041:  stloc.1 
+	IL_0042:  nop 
+	IL_0043:  ldarg.0 
+	IL_0044:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_0049:  ldloc.1 
+	IL_004a:  call string[] class [mscorlib]System.IO.Directory::GetFiles(string, string)
+	IL_004f:  stloc.3 
+	IL_0050:  ldc.i4.0 
+	IL_0051:  stloc.s 4
+	IL_0053:  br IL_00f0
 
-	IL_0160:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_0165:  stloc.s 5
-	IL_0167:  ldloca.s 5
-	IL_0169:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_016e:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
-	IL_0173:  call string string::Concat(string, string)
-	IL_0178:  stloc.3 
-	IL_0179:  br IL_01e6
+	IL_0058:  ldloc.3 
+	IL_0059:  ldloc.s 4
+	IL_005b:  ldelem.ref 
+	IL_005c:  stloc.2 
+	IL_005d:  nop 
+	IL_005e:  ldloc.2 
+	IL_005f:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_0064:  ldarg.0 
+	IL_0065:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_006a:  ldc.i4.1 
+	IL_006b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0070:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_0075:  brfalse IL_0080
 
-	IL_017e:  ldarg.0 
-	IL_017f:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_PlatformName()
-	IL_0184:  stloc.3 
-	IL_0185:  br IL_01e6
+	IL_007a:  nop 
+	IL_007b:  br IL_00ea
 
-	IL_018a:  ldarg.0 
-	IL_018b:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_0190:  callvirt instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0195:  ldarg.1 
-	IL_0196:  callvirt instance string class NAnt.VSNet.Tasks.SolutionTask::ExpandMacro(string)
-	IL_019b:  stloc.s 6
-	IL_019d:  ldloc.s 6
-	IL_019f:  brfalse IL_01ad
+	IL_0080:  ldloc.2 
+	IL_0081:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_0086:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_008b:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_0090:  stloc.s 5
+	IL_0092:  ldloc.s 5
+	IL_0094:  ldstr ".dll"
+	IL_0099:  call bool string::op_Inequality(string, string)
+	IL_009e:  brfalse IL_00dc
 
-	IL_01a4:  nop 
-	IL_01a5:  ldloc.s 6
-	IL_01a7:  stloc.3 
-	IL_01a8:  br IL_01e6
+	IL_00a3:  ldloc.s 5
+	IL_00a5:  ldstr ".xml"
+	IL_00aa:  call bool string::op_Inequality(string, string)
+	IL_00af:  brfalse IL_00dc
 
-	IL_01ad:  ldarg.0 
-	IL_01ae:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_01b3:  ldarg.1 
-	IL_01b4:  callvirt instance string class NAnt.VSNet.ProjectBase::ExpandMacro(string)
-	IL_01b9:  stloc.s 6
-	IL_01bb:  ldloc.s 6
-	IL_01bd:  brfalse IL_01cb
+	IL_00b4:  ldloc.s 5
+	IL_00b6:  ldstr ".pdb"
+	IL_00bb:  call bool string::op_Inequality(string, string)
+	IL_00c0:  brfalse IL_00dc
 
-	IL_01c2:  nop 
-	IL_01c3:  ldloc.s 6
-	IL_01c5:  stloc.3 
-	IL_01c6:  br IL_01e6
+	IL_00c5:  ldloc.s 5
+	IL_00c7:  ldstr ".mdb"
+	IL_00cc:  call bool string::op_Inequality(string, string)
+	IL_00d1:  brfalse IL_00dc
 
-	IL_01cb:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01d0:  ldstr "Macro \"{0}\" is not supported."
-	IL_01d5:  ldarg.1 
-	IL_01d6:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_01db:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_01e0:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_01e5:  throw 
-	IL_01e6:  ldloc.3 
-	IL_01e7:  ret 
-    } // end of method ConfigurationBase::ExpandMacro
+	IL_00d6:  nop 
+	IL_00d7:  br IL_00ea
 
-    // method line 437
-    .method private hidebysig 
-           instance default string EvaluateMacro (class [System]System.Text.RegularExpressions.Match m)  cil managed 
-    {
-        // Method begins at RVA 0x55dc
-	// Code size 32 (0x20)
-	.maxstack 3
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
-	IL_0008:  ldc.i4.1 
-	IL_0009:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(int32)
-	IL_000e:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
-	IL_0013:  callvirt instance string class NAnt.VSNet.ConfigurationBase::ExpandMacro(string)
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_001e
+	IL_00dc:  ldarg.1 
+	IL_00dd:  ldloc.2 
+	IL_00de:  ldloc.2 
+	IL_00df:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_00e4:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_00e9:  nop 
+	IL_00ea:  ldloc.s 4
+	IL_00ec:  ldc.i4.1 
+	IL_00ed:  add 
+	IL_00ee:  stloc.s 4
+	IL_00f0:  ldloc.s 4
+	IL_00f2:  ldloc.3 
+	IL_00f3:  ldlen 
+	IL_00f4:  conv.i4 
+	IL_00f5:  blt IL_0058
 
-	IL_001e:  ldloc.0 
-	IL_001f:  ret 
-    } // end of method ConfigurationBase::EvaluateMacro
+	IL_00fa:  ret 
+    } // end of method ReferenceBase::GetRelatedFiles
 
-	.property instance class NAnt.VSNet.ProjectBase Project ()
-	{
-		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ConfigurationBase::get_Project () 
-	}
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.VSNet.ConfigurationBase::get_Name () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo ObjectDir ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ConfigurationBase::get_ObjectDir () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo OutputDir ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ConfigurationBase::get_OutputDir () 
-	}
-	.property instance string OutputPath ()
+	.property instance bool CopyLocal ()
 	{
-		.get instance default string NAnt.VSNet.ConfigurationBase::get_OutputPath () 
+		.get instance default bool NAnt.VSNet.ReferenceBase::get_CopyLocal () 
 	}
-	.property instance string BuildPath ()
+	.property instance bool IsSystem ()
 	{
-		.get instance default string NAnt.VSNet.ConfigurationBase::get_BuildPath () 
+		.get instance default bool NAnt.VSNet.ReferenceBase::get_IsSystem () 
 	}
-	.property instance string RelativeOutputDir ()
+	.property instance string Name ()
 	{
-		.get instance default string NAnt.VSNet.ConfigurationBase::get_RelativeOutputDir () 
+		.get instance default string NAnt.VSNet.ReferenceBase::get_Name () 
 	}
-	.property instance string PlatformName ()
+	.property instance class NAnt.VSNet.ProjectBase Parent ()
 	{
-		.get instance default string NAnt.VSNet.ConfigurationBase::get_PlatformName () 
+		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ReferenceBase::get_Parent () 
 	}
-	.property instance class [mscorlib]System.Collections.Hashtable ExtraOutputFiles ()
+	.property instance class NAnt.VSNet.Tasks.SolutionTask SolutionTask ()
 	{
-		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationBase::get_ExtraOutputFiles () 
+		.get instance default class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.ReferenceBase::get_SolutionTask () 
 	}
-	.property instance class NAnt.VSNet.Tasks.SolutionTask SolutionTask ()
+	.property instance class NAnt.VSNet.ReferencesResolver ReferencesResolver ()
 	{
-		.get instance default class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.ConfigurationBase::get_SolutionTask () 
+		.get instance default class NAnt.VSNet.ReferencesResolver NAnt.VSNet.ReferenceBase::get_ReferencesResolver () 
 	}
-  } // end of class NAnt.VSNet.ConfigurationBase
+  } // end of class NAnt.VSNet.ReferenceBase
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi beforefieldinit ManagedAssemblyReference
-  	extends NAnt.VSNet.AssemblyReferenceBase
+  .class private auto ansi sealed beforefieldinit SolutionFactory
+  	extends [mscorlib]System.Object
   {
-    .field  private initonly  string _assemblyFile
-    .field  private initonly  bool _isPrivateSpecified
-    .field  private initonly  bool _isPrivate
-    .field  private initonly  string _name
+    .field  private initonly  class [mscorlib]System.Collections.ArrayList _projectProviders
 
-    // method line 438
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache)  cil managed 
+    // method line 338
+    .method private hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x119b0
-	// Code size 127 (0x7f)
-	.maxstack 5
-	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		class [System.Xml]System.Xml.XmlAttribute	V_1)
+        // Method begins at RVA 0x10c4b
+	// Code size 19 (0x13)
+	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldsfld string [mscorlib]System.String::Empty
-	IL_0006:  stfld string NAnt.VSNet.ManagedAssemblyReference::_name
+	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0006:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.SolutionFactory::_projectProviders
 	IL_000b:  ldarg.0 
-	IL_000c:  ldarg.1 
-	IL_000d:  ldarg.2 
-	IL_000e:  ldarg.3 
-	IL_000f:  ldarg.s 4
-	IL_0011:  call instance void class NAnt.VSNet.AssemblyReferenceBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
-	IL_0016:  nop 
-	IL_0017:  ldarg.1 
-	IL_0018:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_001d:  ldstr "Private"
-	IL_0022:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0027:  stloc.0 
-	IL_0028:  ldloc.0 
-	IL_0029:  brfalse IL_0048
+	IL_000c:  call instance void object::'.ctor'()
+	IL_0011:  nop 
+	IL_0012:  ret 
+    } // end of method SolutionFactory::.ctor
 
-	IL_002e:  nop 
-	IL_002f:  ldarg.0 
-	IL_0030:  ldc.i4.1 
-	IL_0031:  stfld bool NAnt.VSNet.ManagedAssemblyReference::_isPrivateSpecified
-	IL_0036:  ldarg.0 
-	IL_0037:  ldloc.0 
-	IL_0038:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_003d:  call bool bool::Parse(string)
-	IL_0042:  stfld bool NAnt.VSNet.ManagedAssemblyReference::_isPrivate
-	IL_0047:  nop 
-	IL_0048:  ldarg.0 
-	IL_0049:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
-	IL_004e:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0053:  ldstr "AssemblyName"
-	IL_0058:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_005d:  stloc.1 
-	IL_005e:  ldloc.1 
-	IL_005f:  brfalse IL_0072
+    // method line 339
+    .method assembly static hidebysig 
+           default class NAnt.VSNet.SolutionFactory Create ()  cil managed 
+    {
+        // Method begins at RVA 0x10c60
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.SolutionFactory	V_0)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.VSNet.SolutionFactory::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0064:  nop 
-	IL_0065:  ldarg.0 
-	IL_0066:  ldloc.1 
-	IL_0067:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_006c:  stfld string NAnt.VSNet.ManagedAssemblyReference::_name
-	IL_0071:  nop 
-	IL_0072:  ldarg.0 
-	IL_0073:  ldarg.0 
-	IL_0074:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
-	IL_0079:  stfld string NAnt.VSNet.ManagedAssemblyReference::_assemblyFile
-	IL_007e:  ret 
-    } // end of method ManagedAssemblyReference::.ctor
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method SolutionFactory::Create
 
-    // method line 439
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsPrivate ()  cil managed 
+    // method line 340
+    .method public hidebysig 
+           instance default class NAnt.VSNet.SolutionBase LoadSolution (class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver)  cil managed 
     {
-        // Method begins at RVA 0x11a3c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x10c7c
+	// Code size 147 (0x93)
+	.maxstack 6
 	.locals init (
-		bool	V_0)
+		class NAnt.VSNet.SolutionBase	V_0,
+		string	V_1,
+		class [mscorlib]System.IO.StreamReader	V_2,
+		class NAnt.VSNet.Extensibility.ISolutionBuildProvider	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.ManagedAssemblyReference::_isPrivate
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
+	IL_0007:  brtrue IL_001d
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ManagedAssemblyReference::get_IsPrivate
+	IL_000c:  nop 
+	IL_000d:  ldarg.1 
+	IL_000e:  ldarg.2 
+	IL_000f:  ldarg.3 
+	IL_0010:  ldarg.s 4
+	IL_0012:  newobj instance void class NAnt.VSNet.GenericSolution::'.ctor'(class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver)
+	IL_0017:  stloc.0 
+	IL_0018:  br IL_0091
 
-    // method line 440
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsPrivateSpecified ()  cil managed 
+	IL_001d:  nop 
+	IL_001e:  ldarg.1 
+	IL_001f:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
+	IL_0024:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0029:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
+	IL_002e:  ldc.i4.1 
+	IL_002f:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
+	IL_0034:  stloc.2 
+	.try { // 0
+	  IL_0035:  nop 
+	  IL_0036:  ldloc.2 
+	  IL_0037:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
+	  IL_003c:  stloc.1 
+	  IL_003d:  nop 
+	  IL_003e:  leave IL_0050
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0043:  ldloc.2 
+	  IL_0044:  brfalse IL_004f
+
+	  IL_0049:  ldloc.2 
+	  IL_004a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_004f:  endfinally 
+	} // end handler 0
+	IL_0050:  ldarg.0 
+	IL_0051:  ldloc.1 
+	IL_0052:  call instance class NAnt.VSNet.Extensibility.ISolutionBuildProvider class NAnt.VSNet.SolutionFactory::FindProvider(string)
+	IL_0057:  stloc.3 
+	IL_0058:  ldloc.3 
+	IL_0059:  brfalse IL_0071
+
+	IL_005e:  nop 
+	IL_005f:  ldloc.3 
+	IL_0060:  ldloc.1 
+	IL_0061:  ldarg.1 
+	IL_0062:  ldarg.2 
+	IL_0063:  ldarg.3 
+	IL_0064:  ldarg.s 4
+	IL_0066:  callvirt instance class NAnt.VSNet.SolutionBase class NAnt.VSNet.Extensibility.ISolutionBuildProvider::GetInstance(string, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver)
+	IL_006b:  stloc.0 
+	IL_006c:  br IL_0091
+
+	IL_0071:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0076:  ldstr "Solution format of file '{0}' is not supported."
+	IL_007b:  ldarg.1 
+	IL_007c:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
+	IL_0081:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0086:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_008b:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0090:  throw 
+	IL_0091:  ldloc.0 
+	IL_0092:  ret 
+    } // end of method SolutionFactory::LoadSolution
+
+    // method line 341
+    .method public hidebysig 
+           instance default void RegisterProvider (class NAnt.VSNet.Extensibility.ISolutionBuildProvider provider)  cil managed 
     {
-        // Method begins at RVA 0x11a58
+        // Method begins at RVA 0x10d2c
 	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.ManagedAssemblyReference::_isPrivateSpecified
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.SolutionFactory::_projectProviders
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_000d:  pop 
 	IL_000e:  ret 
-    } // end of method ManagedAssemblyReference::get_IsPrivateSpecified
+    } // end of method SolutionFactory::RegisterProvider
 
-    // method line 441
-    .method family virtual hidebysig 
-           instance default string ResolveAssemblyReference ()  cil managed 
+    // method line 342
+    .method private hidebysig 
+           instance default class NAnt.VSNet.Extensibility.ISolutionBuildProvider FindProvider (string fileContents)  cil managed 
     {
-        // Method begins at RVA 0x11a74
-	// Code size 153 (0x99)
-	.maxstack 3
+        // Method begins at RVA 0x10d3c
+	// Code size 110 (0x6e)
+	.maxstack 2
 	.locals init (
-		string	V_0,
-		class [System.Xml]System.Xml.XmlElement	V_1,
-		string	V_2,
-		string	V_3)
+		int32	V_0,
+		class NAnt.VSNet.Extensibility.ISolutionBuildProvider	V_1,
+		class NAnt.VSNet.Extensibility.ISolutionBuildProvider	V_2,
+		class [mscorlib]System.Collections.IEnumerator	V_3,
+		int32	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		class NAnt.VSNet.Extensibility.ISolutionBuildProvider	V_6)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ManagedAssemblyReference::_assemblyFile
-	IL_0007:  brfalse IL_002b
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  ldnull 
+	IL_0004:  stloc.1 
+	IL_0005:  nop 
+	IL_0006:  ldarg.0 
+	IL_0007:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.SolutionFactory::_projectProviders
+	IL_000c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0011:  stloc.3 
+	.try { // 0
+	  IL_0012:  br IL_003d
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld string NAnt.VSNet.ManagedAssemblyReference::_assemblyFile
-	IL_0013:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0018:  brfalse IL_002a
+	  IL_0017:  ldloc.3 
+	  IL_0018:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_001d:  castclass NAnt.VSNet.Extensibility.ISolutionBuildProvider
+	  IL_0022:  stloc.2 
+	  IL_0023:  nop 
+	  IL_0024:  ldloc.2 
+	  IL_0025:  ldarg.1 
+	  IL_0026:  callvirt instance int32 class NAnt.VSNet.Extensibility.ISolutionBuildProvider::IsSupported(string)
+	  IL_002b:  stloc.s 4
+	  IL_002d:  ldloc.s 4
+	  IL_002f:  ldloc.0 
+	  IL_0030:  ble IL_003c
 
-	IL_001d:  nop 
-	IL_001e:  ldarg.0 
-	IL_001f:  ldfld string NAnt.VSNet.ManagedAssemblyReference::_assemblyFile
-	IL_0024:  stloc.0 
-	IL_0025:  br IL_0097
+	  IL_0035:  nop 
+	  IL_0036:  ldloc.s 4
+	  IL_0038:  stloc.0 
+	  IL_0039:  ldloc.2 
+	  IL_003a:  stloc.1 
+	  IL_003b:  nop 
+	  IL_003c:  nop 
+	  IL_003d:  ldloc.3 
+	  IL_003e:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0043:  brtrue IL_0017
 
-	IL_002a:  nop 
-	IL_002b:  ldarg.0 
-	IL_002c:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
-	IL_0031:  stloc.1 
-	IL_0032:  ldarg.0 
-	IL_0033:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_0038:  ldstr ".dll"
-	IL_003d:  call string string::Concat(string, string)
-	IL_0042:  stloc.2 
-	IL_0043:  ldarg.0 
-	IL_0044:  ldloc.2 
-	IL_0045:  call instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromFramework(string)
-	IL_004a:  stloc.3 
-	IL_004b:  ldloc.3 
-	IL_004c:  brfalse IL_0059
+	  IL_0048:  leave IL_0063
 
-	IL_0051:  nop 
-	IL_0052:  ldloc.3 
-	IL_0053:  stloc.0 
-	IL_0054:  br IL_0097
+	} // end .try 0
+	finally  { // 0
+	  IL_004d:  ldloc.3 
+	  IL_004e:  isinst [mscorlib]System.IDisposable
+	  IL_0053:  dup 
+	  IL_0054:  stloc.s 5
+	  IL_0056:  brfalse IL_0062
 
-	IL_0059:  ldarg.0 
-	IL_005a:  ldloc.1 
-	IL_005b:  ldloc.2 
-	IL_005c:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromAssemblyFolders(class [System.Xml]System.Xml.XmlElement, string)
-	IL_0061:  stloc.3 
-	IL_0062:  ldloc.3 
-	IL_0063:  brfalse IL_0070
+	  IL_005b:  ldloc.s 5
+	  IL_005d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0062:  endfinally 
+	} // end handler 0
+	IL_0063:  ldloc.1 
+	IL_0064:  stloc.s 6
+	IL_0066:  br IL_006b
 
-	IL_0068:  nop 
-	IL_0069:  ldloc.3 
-	IL_006a:  stloc.0 
-	IL_006b:  br IL_0097
+	IL_006b:  ldloc.s 6
+	IL_006d:  ret 
+    } // end of method SolutionFactory::FindProvider
 
-	IL_0070:  ldarg.0 
-	IL_0071:  ldloc.1 
-	IL_0072:  ldstr "HintPath"
-	IL_0077:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_007c:  call instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromRelativePath(string)
-	IL_0081:  stloc.3 
-	IL_0082:  ldloc.3 
-	IL_0083:  brfalse IL_0090
+  } // end of class NAnt.VSNet.SolutionFactory
+}
 
-	IL_0088:  nop 
-	IL_0089:  ldloc.3 
-	IL_008a:  stloc.0 
-	IL_008b:  br IL_0097
+.namespace NAnt.VSNet
+{
+  .class public auto ansi abstract beforefieldinit FileReferenceBase
+  	extends NAnt.VSNet.ReferenceBase
+  {
+    .field  private initonly  class [System.Xml]System.Xml.XmlElement _xmlDefinition
+    .field  private initonly  class [NAnt.Core]NAnt.Core.Util.GacCache _gacCache
 
-	IL_0090:  ldnull 
-	IL_0091:  stloc.0 
-	IL_0092:  br IL_0097
+    // method line 343
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache)  cil managed 
+    {
+        // Method begins at RVA 0x5b33
+	// Code size 62 (0x3e)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.2 
+	IL_0002:  ldarg.3 
+	IL_0003:  call instance void class NAnt.VSNet.ReferenceBase::'.ctor'(class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase)
+	IL_0008:  nop 
+	IL_0009:  ldarg.1 
+	IL_000a:  brtrue IL_001b
 
-	IL_0097:  ldloc.0 
-	IL_0098:  ret 
-    } // end of method ManagedAssemblyReference::ResolveAssemblyReference
+	IL_000f:  nop 
+	IL_0010:  ldstr "xmlDefinition"
+	IL_0015:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_001a:  throw 
+	IL_001b:  ldarg.s 4
+	IL_001d:  brtrue IL_002e
 
-    // method line 442
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+	IL_0022:  nop 
+	IL_0023:  ldstr "gacCache"
+	IL_0028:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_002d:  throw 
+	IL_002e:  ldarg.0 
+	IL_002f:  ldarg.1 
+	IL_0030:  stfld class [System.Xml]System.Xml.XmlElement NAnt.VSNet.FileReferenceBase::_xmlDefinition
+	IL_0035:  ldarg.0 
+	IL_0036:  ldarg.s 4
+	IL_0038:  stfld class [NAnt.Core]NAnt.Core.Util.GacCache NAnt.VSNet.FileReferenceBase::_gacCache
+	IL_003d:  ret 
+    } // end of method FileReferenceBase::.ctor
+
+    // method line 344
+    .method family hidebysig specialname 
+           instance default class [System.Xml]System.Xml.XmlElement get_XmlDefinition ()  cil managed 
     {
-        // Method begins at RVA 0x11b1c
+        // Method begins at RVA 0x5b74
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [System.Xml]System.Xml.XmlElement	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ManagedAssemblyReference::_name
+	IL_0002:  ldfld class [System.Xml]System.Xml.XmlElement NAnt.VSNet.FileReferenceBase::_xmlDefinition
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ManagedAssemblyReference::get_Name
+    } // end of method FileReferenceBase::get_XmlDefinition
 
-    // method line 443
-    .method private hidebysig specialname 
-           instance default string get_AssemblyFoldersKey ()  cil managed 
+    // method line 345
+    .method family hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Util.GacCache get_GacCache ()  cil managed 
     {
-        // Method begins at RVA 0x11b38
-	// Code size 57 (0x39)
-	.maxstack 3
+        // Method begins at RVA 0x5b90
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		string	V_1)
+		class [NAnt.Core]NAnt.Core.Util.GacCache	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0007:  callvirt instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_000c:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0011:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0016:  callvirt instance class [mscorlib]System.Version class [NAnt.Core]NAnt.Core.FrameworkInfo::get_VisualStudioVersion()
-	IL_001b:  callvirt instance string object::ToString()
-	IL_0020:  stloc.0 
-	IL_0021:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0026:  ldstr "SOFTWARE\\Microsoft\\VisualStudio\\{0}\\AssemblyFolders"
-	IL_002b:  ldloc.0 
-	IL_002c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0031:  stloc.1 
-	IL_0032:  br IL_0037
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Util.GacCache NAnt.VSNet.FileReferenceBase::_gacCache
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0037:  ldloc.1 
-	IL_0038:  ret 
-    } // end of method ManagedAssemblyReference::get_AssemblyFoldersKey
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method FileReferenceBase::get_GacCache
 
-    // method line 444
-    .method private hidebysig 
-           instance default string GetComponentAssemblyFolder (class [System.Xml]System.Xml.XmlElement referenceElement)  cil managed 
+    // method line 346
+    .method public virtual hidebysig 
+           instance default bool IsManaged (class NAnt.VSNet.Configuration config)  cil managed 
     {
-        // Method begins at RVA 0x11b80
-	// Code size 546 (0x222)
-	.maxstack 7
+        // Method begins at RVA 0x5bac
+	// Code size 10 (0xa)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		string	V_1,
-		class [mscorlib]Microsoft.Win32.RegistryKey	V_2,
-		string[]	V_3,
-		string	V_4,
-		class [mscorlib]Microsoft.Win32.RegistryKey	V_5,
-		string	V_6,
-		class [mscorlib]Microsoft.Win32.RegistryKey	V_7,
-		string	V_8,
-		string	V_9)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
+	IL_0001:  ldc.i4.1 
 	IL_0002:  stloc.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0009:  ldstr "AssemblyFolderKey"
-	IL_000e:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0013:  brfalse IL_0217
-
-	IL_0018:  nop 
-	IL_0019:  ldarg.1 
-	IL_001a:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_001f:  ldstr "AssemblyFolderKey"
-	IL_0024:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0029:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_002e:  stloc.1 
-	IL_002f:  ldnull 
-	IL_0030:  stloc.2 
-	IL_0031:  ldloc.1 
-	IL_0032:  ldc.i4.s 0x5c
-	IL_0034:  ldc.i4.0 
-	IL_0035:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	IL_003a:  stloc.3 
-	IL_003b:  ldloc.3 
-	IL_003c:  ldlen 
-	IL_003d:  conv.i4 
-	IL_003e:  ldc.i4.2 
-	IL_003f:  blt IL_004d
-
-	IL_0044:  ldloc.3 
-	IL_0045:  ldlen 
-	IL_0046:  conv.i4 
-	IL_0047:  ldc.i4.3 
-	IL_0048:  ble IL_007a
-
-	IL_004d:  nop 
-	IL_004e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0053:  ldstr "Invalid AssemblyFolderKey \"{0}\" for assembly reference \"{1}\", referenced by project \"{2}\"."
-	IL_0058:  ldloc.1 
-	IL_0059:  ldarg.0 
-	IL_005a:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_005f:  ldarg.0 
-	IL_0060:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0065:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_006a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_006f:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0074:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0079:  throw 
-	IL_007a:  ldloc.3 
-	IL_007b:  ldc.i4.0 
-	IL_007c:  ldelem.ref 
-	IL_007d:  stloc.s 4
-	IL_007f:  ldloc.s 4
-	IL_0081:  brfalse IL_00c3
-
-	IL_0086:  ldloc.s 4
-	IL_0088:  ldstr "hklm"
-	IL_008d:  call bool string::op_Equality(string, string)
-	IL_0092:  brtrue IL_00ad
-
-	IL_0097:  ldloc.s 4
-	IL_0099:  ldstr "hkcu"
-	IL_009e:  call bool string::op_Equality(string, string)
-	IL_00a3:  brtrue IL_00b8
-
-	IL_00a8:  br IL_00c3
-
-	IL_00ad:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::LocalMachine
-	IL_00b2:  stloc.2 
-	IL_00b3:  br IL_00ef
-
-	IL_00b8:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::CurrentUser
-	IL_00bd:  stloc.2 
-	IL_00be:  br IL_00ef
-
-	IL_00c3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00c8:  ldstr "Invalid AssemblyFolderKey \"{0}\" for assembly reference \"{1}\", referenced by project \"{2}\"."
-	IL_00cd:  ldloc.1 
-	IL_00ce:  ldarg.0 
-	IL_00cf:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_00d4:  ldarg.0 
-	IL_00d5:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_00da:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_00df:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_00e4:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_00e9:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_00ee:  throw 
-	IL_00ef:  ldnull 
-	IL_00f0:  stloc.s 5
-	IL_00f2:  ldloc.3 
-	IL_00f3:  ldlen 
-	IL_00f4:  conv.i4 
-	IL_00f5:  ldc.i4.3 
-	IL_00f6:  bne.un IL_0162
-
-	IL_00fb:  nop 
-	IL_00fc:  ldloc.3 
-	IL_00fd:  ldc.i4.1 
-	IL_00fe:  ldelem.ref 
-	IL_00ff:  stloc.s 6
-	IL_0101:  ldloc.s 6
-	IL_0103:  brfalse IL_0130
-
-	IL_0108:  ldloc.s 6
-	IL_010a:  ldstr "dn"
-	IL_010f:  call bool string::op_Equality(string, string)
-	IL_0114:  brtrue IL_011e
+	IL_0003:  br IL_0008
 
-	IL_0119:  br IL_0130
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method FileReferenceBase::IsManaged
 
-	IL_011e:  ldloc.2 
-	IL_011f:  ldstr "SOFTWARE\\Microsoft\\.NETFramework\\AssemblyFolders"
-	IL_0124:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string)
-	IL_0129:  stloc.s 5
-	IL_012b:  br IL_015c
+    // method line 347
+    .method family hidebysig 
+           instance default void GetAssemblyOutputFiles (string assemblyFile, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
+    {
+        // Method begins at RVA 0x5bc4
+	// Code size 131 (0x83)
+	.maxstack 4
+	.locals init (
+		string[]	V_0,
+		string	V_1,
+		string[]	V_2,
+		int32	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0007:  brtrue IL_0012
 
-	IL_0130:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0135:  ldstr "Invalid AssemblyFolderKey \"{0}\" for assembly reference \"{1}\", referenced by project \"{2}\"."
-	IL_013a:  ldloc.1 
-	IL_013b:  ldarg.0 
-	IL_013c:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_0141:  ldarg.0 
-	IL_0142:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0147:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_014c:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_0151:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0156:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_015b:  throw 
-	IL_015c:  nop 
-	IL_015d:  br IL_0172
+	IL_000c:  nop 
+	IL_000d:  br IL_0082
 
-	IL_0162:  nop 
-	IL_0163:  ldloc.2 
-	IL_0164:  ldarg.0 
-	IL_0165:  call instance string class NAnt.VSNet.ManagedAssemblyReference::get_AssemblyFoldersKey()
-	IL_016a:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string)
-	IL_016f:  stloc.s 5
-	IL_0171:  nop 
-	IL_0172:  ldloc.s 5
-	IL_0174:  brfalse IL_01fa
+	IL_0012:  ldarg.2 
+	IL_0013:  ldarg.1 
+	IL_0014:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	IL_0019:  brtrue IL_0082
 
-	IL_0179:  nop 
-	IL_017a:  ldloc.s 5
-	IL_017c:  ldloc.3 
-	IL_017d:  ldloc.3 
-	IL_017e:  ldlen 
-	IL_017f:  conv.i4 
-	IL_0180:  ldc.i4.1 
-	IL_0181:  sub 
-	IL_0182:  ldelem.ref 
-	IL_0183:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string)
-	IL_0188:  stloc.s 7
-	IL_018a:  ldloc.s 7
-	IL_018c:  brfalse IL_01d8
+	IL_001e:  nop 
+	IL_001f:  ldarg.0 
+	IL_0020:  ldarg.1 
+	IL_0021:  call instance string[] class NAnt.VSNet.FileReferenceBase::GetAllReferencedModules(string)
+	IL_0026:  stloc.0 
+	IL_0027:  nop 
+	IL_0028:  ldloc.0 
+	IL_0029:  stloc.2 
+	IL_002a:  ldc.i4.0 
+	IL_002b:  stloc.3 
+	IL_002c:  br IL_0078
 
-	IL_0191:  nop 
-	IL_0192:  ldloc.s 7
-	IL_0194:  ldsfld string [mscorlib]System.String::Empty
-	IL_0199:  callvirt instance object class [mscorlib]Microsoft.Win32.RegistryKey::GetValue(string)
-	IL_019e:  isinst [mscorlib]System.String
-	IL_01a3:  stloc.s 8
-	IL_01a5:  ldloc.s 8
-	IL_01a7:  brfalse IL_01b6
+	IL_0031:  ldloc.2 
+	IL_0032:  ldloc.3 
+	IL_0033:  ldelem.ref 
+	IL_0034:  stloc.1 
+	IL_0035:  nop 
+	IL_0036:  ldloc.1 
+	IL_0037:  ldarg.1 
+	IL_0038:  ldc.i4.1 
+	IL_0039:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_003e:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_0043:  brfalse IL_006c
 
-	IL_01ac:  nop 
-	IL_01ad:  ldloc.s 8
-	IL_01af:  stloc.0 
-	IL_01b0:  nop 
-	IL_01b1:  br IL_01d2
+	IL_0048:  nop 
+	IL_0049:  ldarg.0 
+	IL_004a:  callvirt instance bool class NAnt.VSNet.ReferenceBase::get_IsSystem()
+	IL_004f:  brtrue IL_0065
 
-	IL_01b6:  nop 
-	IL_01b7:  ldarg.0 
-	IL_01b8:  ldc.i4 1000
-	IL_01bd:  ldstr "Default value for AssemblyFolder \"{0}\" does not exist or is not a string value."
-	IL_01c2:  ldc.i4.1 
-	IL_01c3:  newarr [mscorlib]System.Object
-	IL_01c8:  dup 
-	IL_01c9:  ldc.i4.0 
-	IL_01ca:  ldloc.1 
-	IL_01cb:  stelem.ref 
-	IL_01cc:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_01d1:  nop 
-	IL_01d2:  nop 
-	IL_01d3:  br IL_01f4
+	IL_0054:  ldarg.0 
+	IL_0055:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.FileReferenceBase::get_GacCache()
+	IL_005a:  ldloc.1 
+	IL_005b:  callvirt instance bool class [NAnt.Core]NAnt.Core.Util.GacCache::IsAssemblyInGac(string)
+	IL_0060:  brfalse IL_006b
 
-	IL_01d8:  nop 
-	IL_01d9:  ldarg.0 
-	IL_01da:  ldc.i4 1000
-	IL_01df:  ldstr "Component key for AssemblyFolder \"{0}\" does not exist."
-	IL_01e4:  ldc.i4.1 
-	IL_01e5:  newarr [mscorlib]System.Object
-	IL_01ea:  dup 
-	IL_01eb:  ldc.i4.0 
-	IL_01ec:  ldloc.1 
-	IL_01ed:  stelem.ref 
-	IL_01ee:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_01f3:  nop 
-	IL_01f4:  nop 
-	IL_01f5:  br IL_0216
+	IL_0065:  nop 
+	IL_0066:  br IL_0074
 
-	IL_01fa:  nop 
-	IL_01fb:  ldarg.0 
-	IL_01fc:  ldc.i4 1000
-	IL_0201:  ldstr "Repository for AssemblyFolder \"{0}\" does not exist."
-	IL_0206:  ldc.i4.1 
-	IL_0207:  newarr [mscorlib]System.Object
-	IL_020c:  dup 
-	IL_020d:  ldc.i4.0 
-	IL_020e:  ldloc.1 
-	IL_020f:  stelem.ref 
-	IL_0210:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0215:  nop 
-	IL_0216:  nop 
-	IL_0217:  ldloc.0 
-	IL_0218:  stloc.s 9
-	IL_021a:  br IL_021f
+	IL_006b:  nop 
+	IL_006c:  ldloc.1 
+	IL_006d:  ldarg.2 
+	IL_006e:  call void class NAnt.VSNet.ReferenceBase::GetRelatedFiles(string, class [mscorlib]System.Collections.Hashtable)
+	IL_0073:  nop 
+	IL_0074:  ldloc.3 
+	IL_0075:  ldc.i4.1 
+	IL_0076:  add 
+	IL_0077:  stloc.3 
+	IL_0078:  ldloc.3 
+	IL_0079:  ldloc.2 
+	IL_007a:  ldlen 
+	IL_007b:  conv.i4 
+	IL_007c:  blt IL_0031
 
-	IL_021f:  ldloc.s 9
-	IL_0221:  ret 
-    } // end of method ManagedAssemblyReference::GetComponentAssemblyFolder
+	IL_0081:  nop 
+	IL_0082:  ret 
+    } // end of method FileReferenceBase::GetAssemblyOutputFiles
 
-    // method line 445
-    .method family virtual hidebysig 
-           instance default string ResolveFromAssemblyFolders (class [System.Xml]System.Xml.XmlElement referenceElement, string fileName)  cil managed 
+    // method line 348
+    .method private hidebysig 
+           instance default string[] GetAllReferencedModules (string module)  cil managed 
     {
-        // Method begins at RVA 0x11db0
-	// Code size 68 (0x44)
-	.maxstack 3
+        // Method begins at RVA 0x5c54
+	// Code size 201 (0xc9)
+	.maxstack 5
 	.locals init (
 		string	V_0,
 		string	V_1,
-		class [System]System.Collections.Specialized.StringCollection	V_2,
-		string	V_3)
+		class [mscorlib]System.Collections.Hashtable	V_2,
+		class [mscorlib]System.Collections.Hashtable	V_3,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_4,
+		string	V_5,
+		class [mscorlib]System.Exception	V_6,
+		string[]	V_7,
+		string[]	V_8)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  ldarg.1 
-	IL_0005:  call instance string class NAnt.VSNet.ManagedAssemblyReference::GetComponentAssemblyFolder(class [System.Xml]System.Xml.XmlElement)
-	IL_000a:  stloc.1 
-	IL_000b:  ldloc.1 
-	IL_000c:  brfalse IL_002a
+	IL_0001:  ldarg.1 
+	IL_0002:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_000e:  stloc.1 
+	IL_000f:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_0014:  stloc.2 
+	IL_0015:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_001a:  stloc.3 
+	.try { // 0
+	  IL_001b:  nop 
+	  IL_001c:  ldloc.2 
+	  IL_001d:  ldloc.0 
+	  IL_001e:  ldnull 
+	  IL_001f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	  IL_0024:  ldloc.3 
+	  IL_0025:  ldloc.0 
+	  IL_0026:  ldnull 
+	  IL_0027:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	  IL_002c:  br IL_006b
 
-	IL_0011:  nop 
-	IL_0012:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0017:  stloc.2 
-	IL_0018:  ldloc.2 
-	IL_0019:  ldloc.1 
-	IL_001a:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_001f:  pop 
-	IL_0020:  ldarg.0 
-	IL_0021:  ldloc.2 
-	IL_0022:  ldarg.2 
-	IL_0023:  call instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromFolderList(class [System]System.Collections.Specialized.StringCollection, string)
-	IL_0028:  stloc.0 
-	IL_0029:  nop 
-	IL_002a:  ldloc.0 
-	IL_002b:  brtrue IL_003b
+	  IL_0031:  nop 
+	  IL_0032:  ldloc.3 
+	  IL_0033:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	  IL_0038:  stloc.s 4
+	  IL_003a:  ldloc.s 4
+	  IL_003c:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0041:  pop 
+	  IL_0042:  ldloc.s 4
+	  IL_0044:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key()
+	  IL_0049:  castclass [mscorlib]System.String
+	  IL_004e:  stloc.s 5
+	  IL_0050:  ldloc.3 
+	  IL_0051:  ldloc.s 5
+	  IL_0053:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
+	  IL_0058:  ldarg.0 
+	  IL_0059:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ReferenceBase::get_ReferencesResolver()
+	  IL_005e:  ldloc.1 
+	  IL_005f:  ldloc.s 5
+	  IL_0061:  ldloca.s 2
+	  IL_0063:  ldloca.s 3
+	  IL_0065:  callvirt instance void class NAnt.VSNet.ReferencesResolver::AppendReferencedModulesLocatedInGivenDirectory(string, string, [out] class [mscorlib]System.Collections.Hashtable&, [out] class [mscorlib]System.Collections.Hashtable&)
+	  IL_006a:  nop 
+	  IL_006b:  ldloc.3 
+	  IL_006c:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
+	  IL_0071:  ldc.i4.0 
+	  IL_0072:  bgt IL_0031
 
-	IL_0030:  nop 
-	IL_0031:  ldarg.0 
-	IL_0032:  ldarg.1 
-	IL_0033:  ldarg.2 
-	IL_0034:  call instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromAssemblyFolders(class [System.Xml]System.Xml.XmlElement, string)
-	IL_0039:  stloc.0 
-	IL_003a:  nop 
-	IL_003b:  ldloc.0 
-	IL_003c:  stloc.3 
-	IL_003d:  br IL_0042
+	  IL_0077:  nop 
+	  IL_0078:  leave IL_009d
 
-	IL_0042:  ldloc.3 
-	IL_0043:  ret 
-    } // end of method ManagedAssemblyReference::ResolveFromAssemblyFolders
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_007d:  stloc.s 6
+	  IL_007f:  nop 
+	  IL_0080:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0085:  ldstr "Error resolving module references of '{0}'."
+	  IL_008a:  ldloc.0 
+	  IL_008b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0090:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	  IL_0095:  ldloc.s 6
+	  IL_0097:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_009c:  throw 
+	} // end handler 0
+	IL_009d:  ldloc.2 
+	IL_009e:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
+	IL_00a3:  callvirt instance int32 class [mscorlib]System.Collections.ICollection::get_Count()
+	IL_00a8:  newarr [mscorlib]System.String
+	IL_00ad:  stloc.s 7
+	IL_00af:  ldloc.2 
+	IL_00b0:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
+	IL_00b5:  ldloc.s 7
+	IL_00b7:  ldc.i4.0 
+	IL_00b8:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_00bd:  ldloc.s 7
+	IL_00bf:  stloc.s 8
+	IL_00c1:  br IL_00c6
 
-	.property instance bool IsPrivate ()
-	{
-		.get instance default bool NAnt.VSNet.ManagedAssemblyReference::get_IsPrivate () 
-	}
-	.property instance bool IsPrivateSpecified ()
-	{
-		.get instance default bool NAnt.VSNet.ManagedAssemblyReference::get_IsPrivateSpecified () 
-	}
-	.property instance string Name ()
+	IL_00c6:  ldloc.s 8
+	IL_00c8:  ret 
+    } // end of method FileReferenceBase::GetAllReferencedModules
+
+	.property instance class [System.Xml]System.Xml.XmlElement XmlDefinition ()
 	{
-		.get instance default string NAnt.VSNet.ManagedAssemblyReference::get_Name () 
+		.get instance default class [System.Xml]System.Xml.XmlElement NAnt.VSNet.FileReferenceBase::get_XmlDefinition () 
 	}
-	.property instance string AssemblyFoldersKey ()
+	.property instance class [NAnt.Core]NAnt.Core.Util.GacCache GacCache ()
 	{
-		.get instance default string NAnt.VSNet.ManagedAssemblyReference::get_AssemblyFoldersKey () 
+		.get instance default class [NAnt.Core]NAnt.Core.Util.GacCache NAnt.VSNet.FileReferenceBase::get_GacCache () 
 	}
-  } // end of class NAnt.VSNet.ManagedAssemblyReference
+  } // end of class NAnt.VSNet.FileReferenceBase
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi beforefieldinit CSharpProject
-  	extends NAnt.VSNet.ManagedProjectBase
+  .class public auto ansi beforefieldinit ManagedProjectReference
+  	extends NAnt.VSNet.ProjectReferenceBase
   {
+    .field  private initonly  class NAnt.VSNet.ProjectBase _project
+    .field  private initonly  bool _isPrivateSpecified
+    .field  private initonly  bool _isPrivate
 
-    // method line 446
+    // method line 349
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class NAnt.VSNet.SolutionBase solution, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
     {
-        // Method begins at RVA 0x11e00
-	// Code size 21 (0x15)
-	.maxstack 9
+        // Method begins at RVA 0x10dc8
+	// Code size 174 (0xae)
+	.maxstack 7
+	.locals init (
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		string	V_1)
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  ldarg.s 4
-	IL_0006:  ldarg.s 5
-	IL_0008:  ldarg.s 6
-	IL_000a:  ldarg.s 7
-	IL_000c:  ldarg.s 8
-	IL_000e:  call instance void class NAnt.VSNet.ManagedProjectBase::'.ctor'(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
-	IL_0013:  nop 
-	IL_0014:  ret 
-    } // end of method CSharpProject::.ctor
+	IL_0001:  ldarg.2 
+	IL_0002:  ldarg.3 
+	IL_0003:  call instance void class NAnt.VSNet.ProjectReferenceBase::'.ctor'(class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase)
+	IL_0008:  nop 
+	IL_0009:  ldarg.1 
+	IL_000a:  brtrue IL_001b
 
-    // method line 447
-    .method public virtual hidebysig specialname 
-           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
-    {
-        // Method begins at RVA 0x11e24
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.VSNet.ProjectType	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_000f:  nop 
+	IL_0010:  ldstr "xmlDefinition"
+	IL_0015:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_001a:  throw 
+	IL_001b:  ldarg.s 4
+	IL_001d:  brtrue IL_002e
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method CSharpProject::get_Type
+	IL_0022:  nop 
+	IL_0023:  ldstr "solution"
+	IL_0028:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_002d:  throw 
+	IL_002e:  ldarg.s 5
+	IL_0030:  brtrue IL_0041
 
-    // method line 448
-    .method family virtual hidebysig 
-           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x11e3a
-	// Code size 46 (0x2e)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call bool class NAnt.VSNet.CSharpProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
-	IL_0007:  brtrue IL_002d
+	IL_0035:  nop 
+	IL_0036:  ldstr "tfc"
+	IL_003b:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0040:  throw 
+	IL_0041:  ldarg.s 6
+	IL_0043:  brtrue IL_0054
 
-	IL_000c:  nop 
-	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0012:  ldstr "Project '{0}' is not a valid C# project."
-	IL_0017:  ldarg.0 
-	IL_0018:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_001d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0022:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0027:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_002c:  throw 
-	IL_002d:  ret 
-    } // end of method CSharpProject::VerifyProjectXml
+	IL_0048:  nop 
+	IL_0049:  ldstr "gacCache"
+	IL_004e:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0053:  throw 
+	IL_0054:  ldarg.1 
+	IL_0055:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_005a:  ldstr "Private"
+	IL_005f:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0064:  stloc.0 
+	IL_0065:  ldloc.0 
+	IL_0066:  brfalse IL_0085
 
-    // method line 449
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+	IL_006b:  nop 
+	IL_006c:  ldarg.0 
+	IL_006d:  ldc.i4.1 
+	IL_006e:  stfld bool NAnt.VSNet.ManagedProjectReference::_isPrivateSpecified
+	IL_0073:  ldarg.0 
+	IL_0074:  ldloc.0 
+	IL_0075:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_007a:  call bool bool::Parse(string)
+	IL_007f:  stfld bool NAnt.VSNet.ManagedProjectReference::_isPrivate
+	IL_0084:  nop 
+	IL_0085:  ldarg.s 4
+	IL_0087:  ldarg.1 
+	IL_0088:  ldstr "Project"
+	IL_008d:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_0092:  callvirt instance string class NAnt.VSNet.SolutionBase::GetProjectFileFromGuid(string)
+	IL_0097:  stloc.1 
+	IL_0098:  ldarg.0 
+	IL_0099:  ldarg.0 
+	IL_009a:  ldarg.s 4
+	IL_009c:  ldarg.s 5
+	IL_009e:  ldarg.s 6
+	IL_00a0:  ldarg.s 7
+	IL_00a2:  ldloc.1 
+	IL_00a3:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::LoadProject(class NAnt.VSNet.SolutionBase, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class [mscorlib]System.IO.DirectoryInfo, string)
+	IL_00a8:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ManagedProjectReference::_project
+	IL_00ad:  ret 
+    } // end of method ManagedProjectReference::.ctor
+
+    // method line 350
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ProjectBase project, class NAnt.VSNet.ProjectBase parent, bool isPrivateSpecified, bool isPrivate)  cil managed 
     {
-        // Method begins at RVA 0x11e6c
-	// Code size 25 (0x19)
-	.maxstack 2
-	.locals init (
-		valuetype NAnt.VSNet.ProductVersion	V_0)
-	IL_0000:  nop 
+        // Method begins at RVA 0x10e82
+	// Code size 37 (0x25)
+	.maxstack 8
+	IL_0000:  ldarg.0 
 	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "./CSHARP"
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	IL_000c:  call valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ManagedProjectBase::GetProductVersion(class [System.Xml]System.Xml.XmlNode)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method CSharpProject::DetermineProductVersion
+	IL_0002:  callvirt instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
+	IL_0007:  ldarg.2 
+	IL_0008:  call instance void class NAnt.VSNet.ProjectReferenceBase::'.ctor'(class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase)
+	IL_000d:  nop 
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ManagedProjectReference::_project
+	IL_0015:  ldarg.0 
+	IL_0016:  ldarg.3 
+	IL_0017:  stfld bool NAnt.VSNet.ManagedProjectReference::_isPrivateSpecified
+	IL_001c:  ldarg.0 
+	IL_001d:  ldarg.s 4
+	IL_001f:  stfld bool NAnt.VSNet.ManagedProjectReference::_isPrivate
+	IL_0024:  ret 
+    } // end of method ManagedProjectReference::.ctor
 
-    // method line 450
-    .method family virtual hidebysig 
-           instance default class [System]System.Diagnostics.ProcessStartInfo GetProcessStartInfo (class NAnt.VSNet.ConfigurationBase config, string responseFile)  cil managed 
+    // method line 351
+    .method public virtual hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
     {
-        // Method begins at RVA 0x11e94
-	// Code size 137 (0x89)
-	.maxstack 4
+        // Method begins at RVA 0x10ea8
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [System]System.Diagnostics.ProcessStartInfo	V_0,
-		class [System]System.Diagnostics.ProcessStartInfo	V_1)
+		class NAnt.VSNet.ProjectBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0007:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_000c:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0011:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
-	IL_0016:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001b:  ldstr "csc.exe"
-	IL_0020:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0025:  ldstr "/noconfig @\""
-	IL_002a:  ldarg.2 
-	IL_002b:  ldstr "\""
-	IL_0030:  call string string::Concat(string, string, string)
-	IL_0035:  newobj instance void class [System]System.Diagnostics.ProcessStartInfo::'.ctor'(string, string)
-	IL_003a:  stloc.0 
-	IL_003b:  ldarg.0 
-	IL_003c:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0041:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
-	IL_0046:  brfalse IL_006d
-
-	IL_004b:  nop 
-	IL_004c:  ldloc.0 
-	IL_004d:  ldarg.0 
-	IL_004e:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0053:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
-	IL_0058:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_005d:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_0062:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
-	IL_0067:  nop 
-	IL_0068:  br IL_0080
-
-	IL_006d:  nop 
-	IL_006e:  ldloc.0 
-	IL_006f:  ldarg.0 
-	IL_0070:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0075:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_007a:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
-	IL_007f:  nop 
-	IL_0080:  ldloc.0 
-	IL_0081:  stloc.1 
-	IL_0082:  br IL_0087
+	IL_0002:  ldfld class NAnt.VSNet.ProjectBase NAnt.VSNet.ManagedProjectReference::_project
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0087:  ldloc.1 
-	IL_0088:  ret 
-    } // end of method CSharpProject::GetProcessStartInfo
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedProjectReference::get_Project
 
-    // method line 451
+    // method line 352
     .method family virtual hidebysig specialname 
-           instance default string get_FileExtension ()  cil managed 
+           instance default bool get_IsPrivate ()  cil managed 
     {
-        // Method begins at RVA 0x11f2c
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x10ec4
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldstr ".cs"
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.ManagedProjectReference::_isPrivate
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method CSharpProject::get_FileExtension
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedProjectReference::get_IsPrivate
 
-    // method line 452
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.ProjectLocation DetermineProjectLocation (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    // method line 353
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsPrivateSpecified ()  cil managed 
     {
-        // Method begins at RVA 0x11f48
-	// Code size 25 (0x19)
-	.maxstack 2
+        // Method begins at RVA 0x10ee0
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		valuetype NAnt.VSNet.ProjectLocation	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "./CSHARP"
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	IL_000c:  call valuetype NAnt.VSNet.ProjectLocation class NAnt.VSNet.ManagedProjectBase::GetProjectLocation(class [System.Xml]System.Xml.XmlNode)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.ManagedProjectReference::_isPrivateSpecified
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method CSharpProject::DetermineProjectLocation
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ManagedProjectReference::get_IsPrivateSpecified
 
-    // method line 453
-    .method public static hidebysig 
-           default bool IsSupported (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    // method line 354
+    .method public virtual hidebysig 
+           instance default bool IsManaged (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x11f70
-	// Code size 102 (0x66)
-	.maxstack 2
+        // Method begins at RVA 0x10efc
+	// Code size 10 (0xa)
+	.maxstack 1
 	.locals init (
-		bool	V_0,
-		class [System.Xml]System.Xml.XmlNode	V_1)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_000f
-
-	IL_0007:  nop 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_0064
-
-	IL_000f:  ldarg.0 
-	IL_0010:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_0015:  ldstr "VisualStudioProject"
-	IL_001a:  call bool string::op_Inequality(string, string)
-	IL_001f:  brfalse IL_002c
-
-	IL_0024:  nop 
-	IL_0025:  ldc.i4.0 
-	IL_0026:  stloc.0 
-	IL_0027:  br IL_0064
-
-	IL_002c:  ldarg.0 
-	IL_002d:  ldstr "./CSHARP"
-	IL_0032:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	IL_0037:  stloc.1 
-	IL_0038:  ldloc.1 
-	IL_0039:  brtrue IL_0046
-
-	IL_003e:  nop 
-	IL_003f:  ldc.i4.0 
-	IL_0040:  stloc.0 
-	IL_0041:  br IL_0064
-
-	.try { // 0
-	  IL_0046:  nop 
-	  IL_0047:  ldloc.1 
-	  IL_0048:  call valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ManagedProjectBase::GetProductVersion(class [System.Xml]System.Xml.XmlNode)
-	  IL_004d:  pop 
-	  IL_004e:  nop 
-	  IL_004f:  leave IL_005d
-
-	} // end .try 0
-	catch class [mscorlib]System.Object { // 0
-	  IL_0054:  pop 
-	  IL_0055:  nop 
-	  IL_0056:  ldc.i4.0 
-	  IL_0057:  stloc.0 
-	  IL_0058:  leave IL_0064
-
-	} // end handler 0
-	IL_005d:  ldc.i4.1 
-	IL_005e:  stloc.0 
-	IL_005f:  br IL_0064
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_0064:  ldloc.0 
-	IL_0065:  ret 
-    } // end of method CSharpProject::IsSupported
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ManagedProjectReference::IsManaged
 
-	.property instance valuetype NAnt.VSNet.ProjectType Type ()
+	.property instance class NAnt.VSNet.ProjectBase Project ()
 	{
-		.get instance default valuetype NAnt.VSNet.ProjectType NAnt.VSNet.CSharpProject::get_Type () 
+		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ManagedProjectReference::get_Project () 
 	}
-	.property instance string FileExtension ()
+	.property instance bool IsPrivate ()
 	{
-		.get instance default string NAnt.VSNet.CSharpProject::get_FileExtension () 
+		.get instance default bool NAnt.VSNet.ManagedProjectReference::get_IsPrivate () 
 	}
-  } // end of class NAnt.VSNet.CSharpProject
+	.property instance bool IsPrivateSpecified ()
+	{
+		.get instance default bool NAnt.VSNet.ManagedProjectReference::get_IsPrivateSpecified () 
+	}
+  } // end of class NAnt.VSNet.ManagedProjectReference
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi sealed beforefieldinit ConfigurationDictionary
-  	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IDictionary, [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable  {
-    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
-
-    .field  private initonly  class [mscorlib]System.Collections.Hashtable _innerHash
+  .class public auto ansi beforefieldinit VcWrapperReference
+  	extends NAnt.VSNet.WrapperReferenceBase
+  {
+    .field  private initonly  string _name
+    .field  private initonly  string _wrapperTool
+    .field  private initonly  string _wrapperAssembly
+    .field  private initonly  string _primaryInteropAssembly
 
-    // method line 454
+    // method line 355
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache)  cil managed 
     {
-        // Method begins at RVA 0x11ff4
-	// Code size 19 (0x13)
-	.maxstack 8
+        // Method begins at RVA 0x10f14
+	// Code size 150 (0x96)
+	.maxstack 5
+	.locals init (
+		class [System.Xml]System.Xml.XmlAttribute	V_0)
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0012:  ret 
-    } // end of method ConfigurationDictionary::.ctor
+	IL_0001:  ldsfld string [mscorlib]System.String::Empty
+	IL_0006:  stfld string NAnt.VSNet.VcWrapperReference::_name
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.1 
+	IL_000d:  ldarg.2 
+	IL_000e:  ldarg.3 
+	IL_000f:  ldarg.s 4
+	IL_0011:  call instance void class NAnt.VSNet.WrapperReferenceBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
+	IL_0016:  nop 
+	IL_0017:  ldarg.0 
+	IL_0018:  ldarg.0 
+	IL_0019:  ldarg.0 
+	IL_001a:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibrary()
+	IL_001f:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibraryName(string)
+	IL_0024:  stfld string NAnt.VSNet.VcWrapperReference::_name
+	IL_0029:  ldarg.0 
+	IL_002a:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
+	IL_002f:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0034:  ldstr "WrapperTool"
+	IL_0039:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_003e:  stloc.0 
+	IL_003f:  ldloc.0 
+	IL_0040:  brtrue IL_0071
 
-    // method line 455
-    .method assembly hidebysig specialname 
-           instance default class [mscorlib]System.Collections.Hashtable get_InnerHash ()  cil managed 
+	IL_0045:  nop 
+	IL_0046:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_004b:  ldstr "Wrapper tool for reference \"{0}\" in project \"{1}\" could not be determined."
+	IL_0050:  ldarg.0 
+	IL_0051:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_0056:  ldarg.0 
+	IL_0057:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_005c:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_0061:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0066:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_006b:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0070:  throw 
+	IL_0071:  ldarg.0 
+	IL_0072:  ldloc.0 
+	IL_0073:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_0078:  stfld string NAnt.VSNet.VcWrapperReference::_wrapperTool
+	IL_007d:  ldarg.0 
+	IL_007e:  ldarg.0 
+	IL_007f:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetPrimaryInteropAssembly()
+	IL_0084:  stfld string NAnt.VSNet.VcWrapperReference::_primaryInteropAssembly
+	IL_0089:  ldarg.0 
+	IL_008a:  ldarg.0 
+	IL_008b:  call instance string class NAnt.VSNet.WrapperReferenceBase::ResolveWrapperAssembly()
+	IL_0090:  stfld string NAnt.VSNet.VcWrapperReference::_wrapperAssembly
+	IL_0095:  ret 
+    } // end of method VcWrapperReference::.ctor
+
+    // method line 356
+    .method public virtual hidebysig specialname 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x12008
+        // Method begins at RVA 0x10fb8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0002:  ldfld string NAnt.VSNet.VcWrapperReference::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ConfigurationDictionary::get_InnerHash
+    } // end of method VcWrapperReference::get_Name
 
-    // method line 456
-    .method public hidebysig 
-           instance default class NAnt.VSNet.ConfigurationDictionaryEnumerator GetEnumerator ()  cil managed 
+    // method line 357
+    .method public virtual hidebysig specialname 
+           instance default string get_WrapperTool ()  cil managed 
     {
-        // Method begins at RVA 0x12024
+        // Method begins at RVA 0x10fd4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.ConfigurationDictionaryEnumerator	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.VSNet.ConfigurationDictionaryEnumerator::'.ctor'(class NAnt.VSNet.ConfigurationDictionary)
+	IL_0002:  ldfld string NAnt.VSNet.VcWrapperReference::_wrapperTool
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ConfigurationDictionary::GetEnumerator
+    } // end of method VcWrapperReference::get_WrapperTool
 
-    // method line 457
-    .method private final virtual hidebysig newslot 
-           instance default class [mscorlib]System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator ()  cil managed 
+    // method line 358
+    .method public virtual hidebysig specialname 
+           instance default string get_WrapperAssembly ()  cil managed 
     {
-        // Method begins at RVA 0x12040
-	.override class [mscorlib]System.Collections.IDictionary::GetEnumerator
+        // Method begins at RVA 0x10ff0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionaryEnumerator class NAnt.VSNet.ConfigurationDictionary::GetEnumerator()
+	IL_0002:  ldfld string NAnt.VSNet.VcWrapperReference::_wrapperAssembly
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ConfigurationDictionary::System.Collections.IDictionary.GetEnumerator
+    } // end of method VcWrapperReference::get_WrapperAssembly
 
-    // method line 458
-    .method private final virtual hidebysig newslot 
-           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
+    // method line 359
+    .method family virtual hidebysig specialname 
+           instance default string get_PrimaryInteropAssembly ()  cil managed 
     {
-        // Method begins at RVA 0x1205c
-	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
+        // Method begins at RVA 0x1100c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.IEnumerator	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionaryEnumerator class NAnt.VSNet.ConfigurationDictionary::GetEnumerator()
+	IL_0002:  ldfld string NAnt.VSNet.VcWrapperReference::_primaryInteropAssembly
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ConfigurationDictionary::System.Collections.IEnumerable.GetEnumerator
+    } // end of method VcWrapperReference::get_PrimaryInteropAssembly
 
-    // method line 459
-    .method public hidebysig 
-           instance default void Remove (class NAnt.VSNet.Configuration configuration)  cil managed 
+    // method line 360
+    .method family virtual hidebysig specialname 
+           instance default string get_TypeLibVersion ()  cil managed 
     {
-        // Method begins at RVA 0x12077
-	// Code size 14 (0xe)
-	.maxstack 8
+        // Method begins at RVA 0x11028
+	// Code size 111 (0x6f)
+	.maxstack 4
+	.locals init (
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		class [mscorlib]System.Version	V_1,
+		int32	V_2,
+		int32	V_3,
+		string	V_4)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
-	IL_000d:  ret 
-    } // end of method ConfigurationDictionary::Remove
+	IL_0002:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_000c:  ldstr "ControlVersion"
+	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0016:  stloc.0 
+	IL_0017:  ldloc.0 
+	IL_0018:  brtrue IL_0029
 
-    // method line 460
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IDictionary.Remove (object key)  cil managed 
+	IL_001d:  nop 
+	IL_001e:  ldstr "The definition of the reference does not contain a \"ControlVersion\" attribute."
+	IL_0023:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	IL_0028:  throw 
+	IL_0029:  ldloc.0 
+	IL_002a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_002f:  newobj instance void class [mscorlib]System.Version::'.ctor'(string)
+	IL_0034:  stloc.1 
+	IL_0035:  ldloc.1 
+	IL_0036:  callvirt instance int32 class [mscorlib]System.Version::get_Major()
+	IL_003b:  stloc.2 
+	IL_003c:  ldloca.s 2
+	IL_003e:  ldstr "x"
+	IL_0043:  call instance string int32::ToString(string)
+	IL_0048:  ldstr "."
+	IL_004d:  ldloc.1 
+	IL_004e:  callvirt instance int32 class [mscorlib]System.Version::get_Minor()
+	IL_0053:  stloc.3 
+	IL_0054:  ldloca.s 3
+	IL_0056:  ldstr "x"
+	IL_005b:  call instance string int32::ToString(string)
+	IL_0060:  call string string::Concat(string, string, string)
+	IL_0065:  stloc.s 4
+	IL_0067:  br IL_006c
+
+	IL_006c:  ldloc.s 4
+	IL_006e:  ret 
+    } // end of method VcWrapperReference::get_TypeLibVersion
+
+    // method line 361
+    .method family virtual hidebysig specialname 
+           instance default string get_TypeLibGuid ()  cil managed 
     {
-        // Method begins at RVA 0x12086
-	.override class [mscorlib]System.Collections.IDictionary::Remove
-	// Code size 14 (0xe)
-	.maxstack 8
+        // Method begins at RVA 0x110a4
+	// Code size 55 (0x37)
+	.maxstack 2
+	.locals init (
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  castclass NAnt.VSNet.Configuration
-	IL_0008:  call instance void class NAnt.VSNet.ConfigurationDictionary::Remove(class NAnt.VSNet.Configuration)
-	IL_000d:  ret 
-    } // end of method ConfigurationDictionary::System.Collections.IDictionary.Remove
+	IL_0002:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_000c:  ldstr "ControlGUID"
+	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0016:  stloc.0 
+	IL_0017:  ldloc.0 
+	IL_0018:  brtrue IL_0029
 
-    // method line 461
-    .method public hidebysig 
-           instance default bool Contains (class NAnt.VSNet.Configuration key)  cil managed 
+	IL_001d:  nop 
+	IL_001e:  ldstr "The definition of the reference does not contain a \"ControlGUID\" attribute."
+	IL_0023:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	IL_0028:  throw 
+	IL_0029:  ldloc.0 
+	IL_002a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_002f:  stloc.1 
+	IL_0030:  br IL_0035
+
+	IL_0035:  ldloc.1 
+	IL_0036:  ret 
+    } // end of method VcWrapperReference::get_TypeLibGuid
+
+    // method line 362
+    .method family virtual hidebysig specialname 
+           instance default string get_TypeLibLocale ()  cil managed 
     {
-        // Method begins at RVA 0x12098
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x110e8
+	// Code size 73 (0x49)
 	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		int32	V_1,
+		string	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_000c:  ldstr "ControlLocale"
+	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0016:  stloc.0 
+	IL_0017:  ldloc.0 
+	IL_0018:  brfalse IL_003c
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ConfigurationDictionary::Contains
+	IL_001d:  nop 
+	IL_001e:  ldloc.0 
+	IL_001f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_0024:  call int32 int32::Parse(string)
+	IL_0029:  stloc.1 
+	IL_002a:  ldloca.s 1
+	IL_002c:  ldstr "x"
+	IL_0031:  call instance string int32::ToString(string)
+	IL_0036:  stloc.2 
+	IL_0037:  br IL_0047
 
-    // method line 462
-    .method private final virtual hidebysig newslot 
-           instance default bool System.Collections.IDictionary.Contains (object key)  cil managed 
+	IL_003c:  ldstr "0"
+	IL_0041:  stloc.2 
+	IL_0042:  br IL_0047
+
+	IL_0047:  ldloc.2 
+	IL_0048:  ret 
+    } // end of method VcWrapperReference::get_TypeLibLocale
+
+    // method line 363
+    .method family virtual hidebysig 
+           instance default void ImportTypeLibrary ()  cil managed 
     {
-        // Method begins at RVA 0x120bc
-	.override class [mscorlib]System.Collections.IDictionary::Contains
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x11140
+	// Code size 298 (0x12a)
 	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask	V_0,
+		class NAnt.VSNet.ReferenceBase	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class NAnt.VSNet.WrapperReferenceBase	V_3,
+		class [mscorlib]System.IDisposable	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  castclass NAnt.VSNet.Configuration
-	IL_0008:  call instance bool class NAnt.VSNet.ConfigurationDictionary::Contains(class NAnt.VSNet.Configuration)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0001:  newobj instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_000e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0013:  ldloc.0 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_001a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_001f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0024:  ldloc.0 
+	IL_0025:  ldarg.0 
+	IL_0026:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_002b:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0035:  ldloc.0 
+	IL_0036:  ldarg.0 
+	IL_0037:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_003c:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_0041:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
+	IL_0046:  ldloc.0 
+	IL_0047:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	IL_004c:  ldloc.0 
+	IL_004d:  ldarg.0 
+	IL_004e:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibrary()
+	IL_0053:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0058:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_TypeLib(class [mscorlib]System.IO.FileInfo)
+	IL_005d:  ldloc.0 
+	IL_005e:  ldarg.0 
+	IL_005f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
+	IL_0064:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0069:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::set_OutputFile(class [mscorlib]System.IO.FileInfo)
+	IL_006e:  nop 
+	IL_006f:  ldarg.0 
+	IL_0070:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0075:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
+	IL_007a:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_007f:  stloc.2 
+	.try { // 0
+	  IL_0080:  br IL_00dd
+
+	  IL_0085:  ldloc.2 
+	  IL_0086:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_008b:  castclass NAnt.VSNet.ReferenceBase
+	  IL_0090:  stloc.1 
+	  IL_0091:  nop 
+	  IL_0092:  ldloc.1 
+	  IL_0093:  isinst NAnt.VSNet.WrapperReferenceBase
+	  IL_0098:  stloc.3 
+	  IL_0099:  ldloc.3 
+	  IL_009a:  brfalse IL_00bf
+
+	  IL_009f:  ldloc.3 
+	  IL_00a0:  callvirt instance bool class NAnt.VSNet.WrapperReferenceBase::get_IsCreated()
+	  IL_00a5:  brfalse IL_00bf
+
+	  IL_00aa:  ldloc.3 
+	  IL_00ab:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperTool()
+	  IL_00b0:  ldstr "tlbimp"
+	  IL_00b5:  call bool string::op_Inequality(string, string)
+	  IL_00ba:  brfalse IL_00c5
+
+	  IL_00bf:  nop 
+	  IL_00c0:  leave IL_00dd
+
+	  IL_00c5:  ldloc.0 
+	  IL_00c6:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::get_References()
+	  IL_00cb:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	  IL_00d0:  ldloc.3 
+	  IL_00d1:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
+	  IL_00d6:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_00db:  pop 
+	  IL_00dc:  nop 
+	  IL_00dd:  ldloc.2 
+	  IL_00de:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00e3:  brtrue IL_0085
+
+	  IL_00e8:  leave IL_0103
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00ed:  ldloc.2 
+	  IL_00ee:  isinst [mscorlib]System.IDisposable
+	  IL_00f3:  dup 
+	  IL_00f4:  stloc.s 4
+	  IL_00f6:  brfalse IL_0102
+
+	  IL_00fb:  ldloc.s 4
+	  IL_00fd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0102:  endfinally 
+	} // end handler 0
+	IL_0103:  ldloc.0 
+	IL_0104:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0109:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	.try { // 1
+	  IL_010e:  nop 
+	  IL_010f:  ldloc.0 
+	  IL_0110:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_0115:  nop 
+	  IL_0116:  leave IL_0129
+
+	} // end .try 1
+	finally  { // 1
+	  IL_011b:  nop 
+	  IL_011c:  ldloc.0 
+	  IL_011d:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_0122:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	  IL_0127:  nop 
+	  IL_0128:  endfinally 
+	} // end handler 1
+	IL_0129:  ret 
+    } // end of method VcWrapperReference::ImportTypeLibrary
 
+    // method line 364
+    .method family virtual hidebysig 
+           instance default void ImportActiveXLibrary ()  cil managed 
+    {
+        // Method begins at RVA 0x11294
+	// Code size 232 (0xe8)
+	.maxstack 4
+	.locals init (
+		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_000e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
 	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ConfigurationDictionary::System.Collections.IDictionary.Contains
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_001a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_001f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0024:  ldloc.0 
+	IL_0025:  ldarg.0 
+	IL_0026:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_002b:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0035:  ldloc.0 
+	IL_0036:  ldarg.0 
+	IL_0037:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_003c:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_0041:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
+	IL_0046:  ldloc.0 
+	IL_0047:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	IL_004c:  ldloc.0 
+	IL_004d:  ldarg.0 
+	IL_004e:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibrary()
+	IL_0053:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0058:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_OcxFile(class [mscorlib]System.IO.FileInfo)
+	IL_005d:  ldloc.0 
+	IL_005e:  ldarg.0 
+	IL_005f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
+	IL_0064:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0069:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_OutputFile(class [mscorlib]System.IO.FileInfo)
+	IL_006e:  ldarg.0 
+	IL_006f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_PrimaryInteropAssembly()
+	IL_0074:  stloc.1 
+	IL_0075:  ldloc.1 
+	IL_0076:  brtrue IL_00a8
 
-    // method line 463
-    .method public final virtual hidebysig newslot 
-           instance default void Clear ()  cil managed 
+	IL_007b:  nop 
+	IL_007c:  ldarg.0 
+	IL_007d:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0082:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ObjectDir()
+	IL_0087:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_008c:  ldstr "Interop."
+	IL_0091:  ldarg.0 
+	IL_0092:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibraryName()
+	IL_0097:  ldstr ".dll"
+	IL_009c:  call string string::Concat(string, string, string)
+	IL_00a1:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_00a6:  stloc.1 
+	IL_00a7:  nop 
+	IL_00a8:  ldloc.1 
+	IL_00a9:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_00ae:  brfalse IL_00c1
+
+	IL_00b3:  nop 
+	IL_00b4:  ldloc.0 
+	IL_00b5:  ldloc.1 
+	IL_00b6:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_00bb:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.AxImpTask::set_RcwFile(class [mscorlib]System.IO.FileInfo)
+	IL_00c0:  nop 
+	IL_00c1:  ldloc.0 
+	IL_00c2:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_00c7:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	.try { // 0
+	  IL_00cc:  nop 
+	  IL_00cd:  ldloc.0 
+	  IL_00ce:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_00d3:  nop 
+	  IL_00d4:  leave IL_00e7
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00d9:  nop 
+	  IL_00da:  ldloc.0 
+	  IL_00db:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_00e0:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	  IL_00e5:  nop 
+	  IL_00e6:  endfinally 
+	} // end handler 0
+	IL_00e7:  ret 
+    } // end of method VcWrapperReference::ImportActiveXLibrary
+
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.VSNet.VcWrapperReference::get_Name () 
+	}
+	.property instance string WrapperTool ()
+	{
+		.get instance default string NAnt.VSNet.VcWrapperReference::get_WrapperTool () 
+	}
+	.property instance string WrapperAssembly ()
+	{
+		.get instance default string NAnt.VSNet.VcWrapperReference::get_WrapperAssembly () 
+	}
+	.property instance string PrimaryInteropAssembly ()
+	{
+		.get instance default string NAnt.VSNet.VcWrapperReference::get_PrimaryInteropAssembly () 
+	}
+	.property instance string TypeLibVersion ()
+	{
+		.get instance default string NAnt.VSNet.VcWrapperReference::get_TypeLibVersion () 
+	}
+	.property instance string TypeLibGuid ()
+	{
+		.get instance default string NAnt.VSNet.VcWrapperReference::get_TypeLibGuid () 
+	}
+	.property instance string TypeLibLocale ()
+	{
+		.get instance default string NAnt.VSNet.VcWrapperReference::get_TypeLibLocale () 
+	}
+  } // end of class NAnt.VSNet.VcWrapperReference
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi abstract beforefieldinit WrapperReferenceBase
+  	extends NAnt.VSNet.FileReferenceBase
+  {
+    .field  private  bool _isCreated
+
+    // method line 365
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache)  cil managed 
     {
-        // Method begins at RVA 0x120dd
+        // Method begins at RVA 0x5d3c
 	// Code size 13 (0xd)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Clear()
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  ldarg.s 4
+	IL_0006:  call instance void class NAnt.VSNet.FileReferenceBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
+	IL_000b:  nop 
 	IL_000c:  ret 
-    } // end of method ConfigurationDictionary::Clear
+    } // end of method WrapperReferenceBase::.ctor
 
-    // method line 464
-    .method public hidebysig 
-           instance default void Add (class NAnt.VSNet.Configuration key, class NAnt.VSNet.ConfigurationBase 'value')  cil managed 
+    // method line 366
+    .method public virtual hidebysig specialname 
+           instance default bool get_CopyLocal ()  cil managed 
     {
-        // Method begins at RVA 0x120eb
-	// Code size 15 (0xf)
-	.maxstack 8
+        // Method begins at RVA 0x5d4c
+	// Code size 25 (0x19)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_000e:  ret 
-    } // end of method ConfigurationDictionary::Add
+	IL_0002:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperTool()
+	IL_0007:  ldstr "primary"
+	IL_000c:  call bool string::op_Inequality(string, string)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-    // method line 465
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.IDictionary.Add (object key, object 'value')  cil managed 
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method WrapperReferenceBase::get_CopyLocal
+
+    // method line 367
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsSystem ()  cil managed 
     {
-        // Method begins at RVA 0x120fb
-	.override class [mscorlib]System.Collections.IDictionary::Add
-	// Code size 20 (0x14)
-	.maxstack 8
+        // Method begins at RVA 0x5d74
+	// Code size 10 (0xa)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  castclass NAnt.VSNet.Configuration
-	IL_0008:  ldarg.2 
-	IL_0009:  castclass NAnt.VSNet.ConfigurationBase
-	IL_000e:  call instance void class NAnt.VSNet.ConfigurationDictionary::Add(class NAnt.VSNet.Configuration, class NAnt.VSNet.ConfigurationBase)
-	IL_0013:  ret 
-    } // end of method ConfigurationDictionary::System.Collections.IDictionary.Add
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-    // method line 466
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsReadOnly ()  cil managed 
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method WrapperReferenceBase::get_IsSystem
+
+    // method line 368
+    .method public virtual hidebysig 
+           instance default string GetPrimaryOutputFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x12110
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x5d8c
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsReadOnly()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationDictionary::get_IsReadOnly
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method WrapperReferenceBase::GetPrimaryOutputFile
 
-    // method line 467
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ConfigurationBase get_Item (class NAnt.VSNet.Configuration key)  cil managed 
+    // method line 369
+    .method public virtual hidebysig 
+           instance default void GetOutputFiles (class NAnt.VSNet.Configuration solutionConfiguration, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
     {
-        // Method begins at RVA 0x12130
-	// Code size 168 (0xa8)
+        // Method begins at RVA 0x5da8
+	// Code size 34 (0x22)
+	.maxstack 3
+	.locals init (
+		class NAnt.VSNet.ConfigurationBase	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0007:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_0012:  stloc.0 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldloc.0 
+	IL_0016:  call instance string class NAnt.VSNet.WrapperReferenceBase::CreateWrapper(class NAnt.VSNet.ConfigurationBase)
+	IL_001b:  ldarg.2 
+	IL_001c:  call instance void class NAnt.VSNet.FileReferenceBase::GetAssemblyOutputFiles(string, class [mscorlib]System.Collections.Hashtable)
+	IL_0021:  ret 
+    } // end of method WrapperReferenceBase::GetOutputFiles
+
+    // method line 370
+    .method public virtual hidebysig 
+           instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x5dd8
+	// Code size 100 (0x64)
 	.maxstack 4
 	.locals init (
 		class NAnt.VSNet.ConfigurationBase	V_0,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_1,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_2,
-		class NAnt.VSNet.Configuration	V_3,
-		class [mscorlib]System.IDisposable	V_4,
-		class NAnt.VSNet.ConfigurationBase	V_5)
+		string	V_1,
+		class [System]System.Collections.Specialized.StringCollection	V_2,
+		class [System]System.Collections.Specialized.StringCollection	V_3)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_000d:  castclass NAnt.VSNet.ConfigurationBase
+	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0007:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
 	IL_0012:  stloc.0 
-	IL_0013:  ldloc.0 
-	IL_0014:  brtrue IL_009d
-
-	IL_0019:  nop 
-	IL_001a:  nop 
-	IL_001b:  ldarg.0 
-	IL_001c:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0021:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_0026:  stloc.2 
-	.try { // 0
-	  IL_0027:  br IL_0076
-
-	  IL_002c:  ldloc.2 
-	  IL_002d:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0032:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_0037:  stloc.1 
-	  IL_0038:  nop 
-	  IL_0039:  ldloca.s 1
-	  IL_003b:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_0040:  castclass NAnt.VSNet.Configuration
-	  IL_0045:  stloc.3 
-	  IL_0046:  ldloc.3 
-	  IL_0047:  callvirt instance string class NAnt.VSNet.Configuration::get_Name()
-	  IL_004c:  ldarg.1 
-	  IL_004d:  callvirt instance string class NAnt.VSNet.Configuration::get_Name()
-	  IL_0052:  ldc.i4.1 
-	  IL_0053:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0058:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	  IL_005d:  brtrue IL_0075
+	IL_0013:  ldarg.0 
+	IL_0014:  ldloc.0 
+	IL_0015:  call instance string class NAnt.VSNet.WrapperReferenceBase::CreateWrapper(class NAnt.VSNet.ConfigurationBase)
+	IL_001a:  stloc.1 
+	IL_001b:  ldloc.1 
+	IL_001c:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0021:  brtrue IL_004d
 
-	  IL_0062:  nop 
-	  IL_0063:  ldloca.s 1
-	  IL_0065:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_006a:  castclass NAnt.VSNet.ConfigurationBase
-	  IL_006f:  stloc.0 
-	  IL_0070:  leave IL_0081
+	IL_0026:  nop 
+	IL_0027:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_002c:  ldstr "Couldn't find assembly \"{0}\", referenced by project \"{1}\"."
+	IL_0031:  ldloc.1 
+	IL_0032:  ldarg.0 
+	IL_0033:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0038:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_003d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0042:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0047:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_004c:  throw 
+	IL_004d:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0052:  stloc.2 
+	IL_0053:  ldloc.2 
+	IL_0054:  ldloc.1 
+	IL_0055:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_005a:  pop 
+	IL_005b:  ldloc.2 
+	IL_005c:  stloc.3 
+	IL_005d:  br IL_0062
 
-	  IL_0075:  nop 
-	  IL_0076:  ldloc.2 
-	  IL_0077:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_007c:  brtrue IL_002c
+	IL_0062:  ldloc.3 
+	IL_0063:  ret 
+    } // end of method WrapperReferenceBase::GetAssemblyReferences
 
-	  IL_0081:  leave IL_009c
+    // method line 371
+    .method public virtual hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetTimestamp (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x5e48
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		valuetype [mscorlib]System.DateTime	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
+	IL_0008:  call instance valuetype [mscorlib]System.DateTime class NAnt.VSNet.ReferenceBase::GetFileTimestamp(string)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0086:  ldloc.2 
-	  IL_0087:  isinst [mscorlib]System.IDisposable
-	  IL_008c:  dup 
-	  IL_008d:  stloc.s 4
-	  IL_008f:  brfalse IL_009b
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method WrapperReferenceBase::GetTimestamp
 
-	  IL_0094:  ldloc.s 4
-	  IL_0096:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_009b:  endfinally 
-	} // end handler 0
-	IL_009c:  nop 
-	IL_009d:  ldloc.0 
-	IL_009e:  stloc.s 5
-	IL_00a0:  br IL_00a5
+    // method line 372
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_WrapperTool ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method WrapperReferenceBase::get_WrapperTool
 
-	IL_00a5:  ldloc.s 5
-	IL_00a7:  ret 
-    } // end of method ConfigurationDictionary::get_Item
+    // method line 373
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_WrapperAssembly ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method WrapperReferenceBase::get_WrapperAssembly
 
-    // method line 468
+    // method line 374
     .method public hidebysig specialname 
-           instance default void set_Item (class NAnt.VSNet.Configuration key, class NAnt.VSNet.ConfigurationBase 'value')  cil managed 
+           instance default bool get_IsCreated ()  cil managed 
     {
-        // Method begins at RVA 0x121f4
+        // Method begins at RVA 0x5e6c
 	// Code size 15 (0xf)
-	.maxstack 8
+	.maxstack 1
+	.locals init (
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0002:  ldfld bool NAnt.VSNet.WrapperReferenceBase::_isCreated
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ConfigurationDictionary::set_Item
+    } // end of method WrapperReferenceBase::get_IsCreated
 
-    // method line 469
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionary.get_Item (object key)  cil managed 
+    // method line 375
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default string get_PrimaryInteropAssembly ()  cil managed 
     {
-        // Method begins at RVA 0x12204
-	.override class [mscorlib]System.Collections.IDictionary::get_Item
+        // Method begins at RVA 0x0
+    } // end of method WrapperReferenceBase::get_PrimaryInteropAssembly
+
+    // method line 376
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default string get_TypeLibVersion ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method WrapperReferenceBase::get_TypeLibVersion
+
+    // method line 377
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default string get_TypeLibGuid ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method WrapperReferenceBase::get_TypeLibGuid
+
+    // method line 378
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default string get_TypeLibLocale ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method WrapperReferenceBase::get_TypeLibLocale
+
+    // method line 379
+    .method family virtual hidebysig newslot specialname 
+           instance default string get_TypeLibraryName ()  cil managed 
+    {
+        // Method begins at RVA 0x5e88
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
-		object	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  castclass NAnt.VSNet.Configuration
-	IL_0008:  call instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_0002:  ldarg.0 
+	IL_0003:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibrary()
+	IL_0008:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibraryName(string)
 	IL_000d:  stloc.0 
 	IL_000e:  br IL_0013
 
 	IL_0013:  ldloc.0 
 	IL_0014:  ret 
-    } // end of method ConfigurationDictionary::System.Collections.IDictionary.get_Item
+    } // end of method WrapperReferenceBase::get_TypeLibraryName
 
-    // method line 470
-    .method private final virtual hidebysig newslot specialname 
-           instance default void System.Collections.IDictionary.set_Item (object key, object 'value')  cil managed 
+    // method line 380
+    .method family virtual hidebysig newslot abstract 
+           instance default void ImportTypeLibrary ()  cil managed 
     {
-        // Method begins at RVA 0x12225
-	.override class [mscorlib]System.Collections.IDictionary::set_Item
-	// Code size 20 (0x14)
-	.maxstack 8
+        // Method begins at RVA 0x0
+    } // end of method WrapperReferenceBase::ImportTypeLibrary
+
+    // method line 381
+    .method family virtual hidebysig newslot abstract 
+           instance default void ImportActiveXLibrary ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method WrapperReferenceBase::ImportActiveXLibrary
+
+    // method line 382
+    .method family hidebysig 
+           instance default string ResolveWrapperAssembly ()  cil managed 
+    {
+        // Method begins at RVA 0x5eac
+	// Code size 201 (0xc9)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		string	V_1,
+		string	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  castclass NAnt.VSNet.Configuration
-	IL_0008:  ldarg.2 
-	IL_0009:  castclass NAnt.VSNet.ConfigurationBase
-	IL_000e:  call instance void class NAnt.VSNet.ConfigurationDictionary::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.ConfigurationBase)
-	IL_0013:  ret 
-    } // end of method ConfigurationDictionary::System.Collections.IDictionary.set_Item
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperTool()
+	IL_0009:  stloc.1 
+	IL_000a:  ldloc.1 
+	IL_000b:  brfalse IL_0090
 
-    // method line 471
-    .method public final virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.Collections.ICollection get_Values ()  cil managed 
+	IL_0010:  ldloc.1 
+	IL_0011:  ldstr "primary"
+	IL_0016:  call bool string::op_Equality(string, string)
+	IL_001b:  brtrue IL_0035
+
+	IL_0020:  ldloc.1 
+	IL_0021:  ldstr "aximp"
+	IL_0026:  call bool string::op_Equality(string, string)
+	IL_002b:  brtrue IL_0075
+
+	IL_0030:  br IL_0090
+
+	IL_0035:  ldarg.0 
+	IL_0036:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_PrimaryInteropAssembly()
+	IL_003b:  stloc.0 
+	IL_003c:  ldloc.0 
+	IL_003d:  brtrue IL_006e
+
+	IL_0042:  nop 
+	IL_0043:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0048:  ldstr "Couldn't find Primary Interop Assembly \"{0}\", referenced by project \"{1}\"."
+	IL_004d:  ldarg.0 
+	IL_004e:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_0053:  ldarg.0 
+	IL_0054:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0059:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_005e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0063:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0068:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_006d:  throw 
+	IL_006e:  ldloc.0 
+	IL_006f:  stloc.2 
+	IL_0070:  br IL_00c7
+
+	IL_0075:  ldstr "AxInterop."
+	IL_007a:  ldarg.0 
+	IL_007b:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibraryName()
+	IL_0080:  ldstr ".dll"
+	IL_0085:  call string string::Concat(string, string, string)
+	IL_008a:  stloc.0 
+	IL_008b:  br IL_00ab
+
+	IL_0090:  ldstr "Interop."
+	IL_0095:  ldarg.0 
+	IL_0096:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibraryName()
+	IL_009b:  ldstr ".dll"
+	IL_00a0:  call string string::Concat(string, string, string)
+	IL_00a5:  stloc.0 
+	IL_00a6:  br IL_00ab
+
+	IL_00ab:  ldarg.0 
+	IL_00ac:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_00b1:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ObjectDir()
+	IL_00b6:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00bb:  ldloc.0 
+	IL_00bc:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_00c1:  stloc.2 
+	IL_00c2:  br IL_00c7
+
+	IL_00c7:  ldloc.2 
+	IL_00c8:  ret 
+    } // end of method WrapperReferenceBase::ResolveWrapperAssembly
+
+    // method line 383
+    .method family hidebysig 
+           instance default string GetPrimaryInteropAssembly ()  cil managed 
     {
-        // Method begins at RVA 0x1223c
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x5f84
+	// Code size 206 (0xce)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Collections.ICollection	V_0)
+		string	V_0,
+		string	V_1,
+		class [mscorlib]Microsoft.Win32.RegistryKey	V_2,
+		string	V_3,
+		class [mscorlib]System.Exception	V_4,
+		string	V_5)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Values()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0006:  ldstr "TYPELIB\\{0}\\{1}"
+	IL_000b:  ldarg.0 
+	IL_000c:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
+	IL_0011:  ldarg.0 
+	IL_0012:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
+	IL_0017:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_001c:  stloc.0 
+	IL_001d:  ldnull 
+	IL_001e:  stloc.1 
+	IL_001f:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::ClassesRoot
+	IL_0024:  ldloc.0 
+	IL_0025:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string)
+	IL_002a:  stloc.2 
+	.try { // 1
+	  IL_002b:  nop 
+	  IL_002c:  ldloc.2 
+	  IL_002d:  brfalse IL_00b0
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationDictionary::get_Values
+	  IL_0032:  ldloc.2 
+	  IL_0033:  ldstr "PrimaryInteropAssemblyName"
+	  IL_0038:  callvirt instance object class [mscorlib]Microsoft.Win32.RegistryKey::GetValue(string)
+	  IL_003d:  brfalse IL_00b0
 
-    // method line 472
-    .method public final virtual hidebysig newslot specialname 
-           instance default class [mscorlib]System.Collections.ICollection get_Keys ()  cil managed 
+	  IL_0042:  nop 
+	  IL_0043:  ldloc.2 
+	  IL_0044:  ldstr "PrimaryInteropAssemblyName"
+	  IL_0049:  callvirt instance object class [mscorlib]Microsoft.Win32.RegistryKey::GetValue(string)
+	  IL_004e:  castclass [mscorlib]System.String
+	  IL_0053:  stloc.3 
+	  .try { // 0
+	    IL_0054:  nop 
+	    IL_0055:  ldarg.0 
+	    IL_0056:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ReferenceBase::get_ReferencesResolver()
+	    IL_005b:  ldloc.3 
+	    IL_005c:  callvirt instance string class NAnt.VSNet.ReferencesResolver::GetAssemblyFileName(string)
+	    IL_0061:  stloc.1 
+	    IL_0062:  nop 
+	    IL_0063:  leave IL_00af
+
+	  } // end .try 0
+	  catch class [mscorlib]System.Exception { // 0
+	    IL_0068:  stloc.s 4
+	    IL_006a:  nop 
+	    IL_006b:  ldarg.0 
+	    IL_006c:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperTool()
+	    IL_0071:  ldstr "primary"
+	    IL_0076:  call bool string::op_Equality(string, string)
+	    IL_007b:  brfalse IL_00a9
+
+	    IL_0080:  nop 
+	    IL_0081:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	    IL_0086:  ldstr "Primary Interop Assembly \"{0}\", referenced by project \"{1}\", could not be loaded."
+	    IL_008b:  ldloc.3 
+	    IL_008c:  ldarg.0 
+	    IL_008d:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	    IL_0092:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	    IL_0097:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	    IL_009c:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	    IL_00a1:  ldloc.s 4
+	    IL_00a3:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	    IL_00a8:  throw 
+	    IL_00a9:  nop 
+	    IL_00aa:  leave IL_00af
+
+	  } // end handler 0
+	  IL_00af:  nop 
+	  IL_00b0:  nop 
+	  IL_00b1:  leave IL_00c3
+
+	} // end .try 1
+	finally  { // 1
+	  IL_00b6:  ldloc.2 
+	  IL_00b7:  brfalse IL_00c2
+
+	  IL_00bc:  ldloc.2 
+	  IL_00bd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00c2:  endfinally 
+	} // end handler 1
+	IL_00c3:  ldloc.1 
+	IL_00c4:  stloc.s 5
+	IL_00c6:  br IL_00cb
+
+	IL_00cb:  ldloc.s 5
+	IL_00cd:  ret 
+    } // end of method WrapperReferenceBase::GetPrimaryInteropAssembly
+
+    // method line 384
+    .method family hidebysig 
+           instance default string GetTypeLibrary ()  cil managed 
     {
-        // Method begins at RVA 0x1225c
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x607c
+	// Code size 145 (0x91)
+	.maxstack 5
 	.locals init (
-		class [mscorlib]System.Collections.ICollection	V_0)
+		string	V_0,
+		class [mscorlib]Microsoft.Win32.RegistryKey	V_1,
+		string	V_2,
+		string	V_3,
+		string	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0006:  ldstr "TYPELIB\\{0}\\{1}\\{2}\\win32"
+	IL_000b:  ldarg.0 
+	IL_000c:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
+	IL_0011:  ldarg.0 
+	IL_0012:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
+	IL_0017:  ldarg.0 
+	IL_0018:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibLocale()
+	IL_001d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_0022:  stloc.0 
+	IL_0023:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::ClassesRoot
+	IL_0028:  ldloc.0 
+	IL_0029:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string)
+	IL_002e:  stloc.1 
+	.try { // 0
+	  IL_002f:  nop 
+	  IL_0030:  ldloc.1 
+	  IL_0031:  brtrue IL_003e
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationDictionary::get_Keys
+	  IL_0036:  nop 
+	  IL_0037:  ldarg.0 
+	  IL_0038:  call instance class [NAnt.Core]NAnt.Core.BuildException class NAnt.VSNet.WrapperReferenceBase::CreateTypeLibraryNotRegisteredException()
+	  IL_003d:  throw 
+	  IL_003e:  ldloc.1 
+	  IL_003f:  ldnull 
+	  IL_0040:  callvirt instance object class [mscorlib]Microsoft.Win32.RegistryKey::GetValue(string)
+	  IL_0045:  castclass [mscorlib]System.String
+	  IL_004a:  stloc.2 
+	  IL_004b:  ldloc.2 
+	  IL_004c:  call bool string::IsNullOrEmpty(string)
+	  IL_0051:  brfalse IL_005e
 
-    // method line 473
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsFixedSize ()  cil managed 
+	  IL_0056:  nop 
+	  IL_0057:  ldarg.0 
+	  IL_0058:  call instance class [NAnt.Core]NAnt.Core.BuildException class NAnt.VSNet.WrapperReferenceBase::CreateInvalidTypeLibraryRegistrationException()
+	  IL_005d:  throw 
+	  IL_005e:  ldloc.2 
+	  IL_005f:  call string class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::ExtractTypeLibPath(string)
+	  IL_0064:  stloc.3 
+	  IL_0065:  ldloc.3 
+	  IL_0066:  call bool class [mscorlib]System.IO.File::Exists(string)
+	  IL_006b:  brtrue IL_0079
+
+	  IL_0070:  nop 
+	  IL_0071:  ldarg.0 
+	  IL_0072:  ldloc.3 
+	  IL_0073:  call instance class [NAnt.Core]NAnt.Core.BuildException class NAnt.VSNet.WrapperReferenceBase::CreateTypeLibraryPathDoesNotExistException(string)
+	  IL_0078:  throw 
+	  IL_0079:  ldloc.2 
+	  IL_007a:  stloc.s 4
+	  IL_007c:  leave IL_008e
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0081:  ldloc.1 
+	  IL_0082:  brfalse IL_008d
+
+	  IL_0087:  ldloc.1 
+	  IL_0088:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_008d:  endfinally 
+	} // end handler 0
+	IL_008e:  ldloc.s 4
+	IL_0090:  ret 
+    } // end of method WrapperReferenceBase::GetTypeLibrary
+
+    // method line 385
+    .method family hidebysig 
+           instance default string GetTypeLibraryName (string typeLibraryPath)  cil managed 
     {
-        // Method begins at RVA 0x1227c
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x612c
+	// Code size 100 (0x64)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		object	V_0,
+		class [mscorlib]System.Runtime.InteropServices.COMException	V_1,
+		string	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsFixedSize()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	.try { // 0
+	  IL_0001:  nop 
+	  IL_0002:  ldarg.1 
+	  IL_0003:  ldc.i4.0 
+	  IL_0004:  ldloca.s 0
+	  IL_0006:  call void class NAnt.VSNet.WrapperReferenceBase::LoadTypeLibEx(string, int32, [out] object&)
+	  IL_000b:  nop 
+	  IL_000c:  leave IL_002f
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationDictionary::get_IsFixedSize
+	} // end .try 0
+	catch class [mscorlib]System.Runtime.InteropServices.COMException { // 0
+	  IL_0011:  stloc.1 
+	  IL_0012:  nop 
+	  IL_0013:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0018:  ldstr "Type library \"{0}\" could not be loaded."
+	  IL_001d:  ldarg.1 
+	  IL_001e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0023:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	  IL_0028:  ldloc.1 
+	  IL_0029:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_002e:  throw 
+	} // end handler 0
+	IL_002f:  ldloc.0 
+	IL_0030:  brtrue IL_0051
 
-    // method line 474
-    .method private final virtual hidebysig newslot 
-           instance default void System.Collections.ICollection.CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
+	IL_0035:  nop 
+	IL_0036:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_003b:  ldstr "Type library \"{0}\" could not be loaded."
+	IL_0040:  ldarg.1 
+	IL_0041:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0046:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_004b:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0050:  throw 
+	IL_0051:  ldloc.0 
+	IL_0052:  castclass [mscorlib]System.Runtime.InteropServices.ComTypes.ITypeLib
+	IL_0057:  call string class [mscorlib]System.Runtime.InteropServices.Marshal::GetTypeLibName(class [mscorlib]System.Runtime.InteropServices.ComTypes.ITypeLib)
+	IL_005c:  stloc.2 
+	IL_005d:  br IL_0062
+
+	IL_0062:  ldloc.2 
+	IL_0063:  ret 
+    } // end of method WrapperReferenceBase::GetTypeLibraryName
+
+    // method line 386
+    .method private hidebysig 
+           instance default string CreateWrapper (class NAnt.VSNet.ConfigurationBase config)  cil managed 
     {
-        // Method begins at RVA 0x1229c
-	.override class [mscorlib]System.Collections.ICollection::CopyTo
-	// Code size 15 (0xf)
-	.maxstack 8
+        // Method begins at RVA 0x61ac
+	// Code size 253 (0xfd)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::CopyTo(class [mscorlib]System.Array, int32)
-	IL_000e:  ret 
-    } // end of method ConfigurationDictionary::System.Collections.ICollection.CopyTo
+	IL_0002:  call instance bool class NAnt.VSNet.WrapperReferenceBase::get_IsCreated()
+	IL_0007:  brfalse IL_0019
 
-    // method line 475
-    .method public final virtual hidebysig newslot specialname 
-           instance default bool get_IsSynchronized ()  cil managed 
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_00fb
+
+	IL_0019:  ldarg.0 
+	IL_001a:  ldarg.1 
+	IL_001b:  call instance void class NAnt.VSNet.WrapperReferenceBase::Sync(class NAnt.VSNet.ConfigurationBase)
+	IL_0020:  ldarg.0 
+	IL_0021:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperTool()
+	IL_0026:  stloc.1 
+	IL_0027:  ldloc.1 
+	IL_0028:  brfalse IL_00b7
+
+	IL_002d:  ldloc.1 
+	IL_002e:  ldstr "primary"
+	IL_0033:  call bool string::op_Equality(string, string)
+	IL_0038:  brtrue IL_0062
+
+	IL_003d:  ldloc.1 
+	IL_003e:  ldstr "tlbimp"
+	IL_0043:  call bool string::op_Equality(string, string)
+	IL_0048:  brtrue IL_0067
+
+	IL_004d:  ldloc.1 
+	IL_004e:  ldstr "aximp"
+	IL_0053:  call bool string::op_Equality(string, string)
+	IL_0058:  brtrue IL_00ac
+
+	IL_005d:  br IL_00b7
+
+	IL_0062:  br IL_00e8
+
+	IL_0067:  ldarg.0 
+	IL_0068:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_PrimaryInteropAssembly()
+	IL_006d:  brfalse IL_00a1
+
+	IL_0072:  nop 
+	IL_0073:  ldarg.0 
+	IL_0074:  ldc.i4 4000
+	IL_0079:  ldstr "The component \"{0}\", referenced by project \"{1}\" has an updated custom wrapper available."
+	IL_007e:  ldc.i4.2 
+	IL_007f:  newarr [mscorlib]System.Object
+	IL_0084:  dup 
+	IL_0085:  ldc.i4.0 
+	IL_0086:  ldarg.0 
+	IL_0087:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_008c:  stelem.ref 
+	IL_008d:  dup 
+	IL_008e:  ldc.i4.1 
+	IL_008f:  ldarg.0 
+	IL_0090:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0095:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_009a:  stelem.ref 
+	IL_009b:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00a0:  nop 
+	IL_00a1:  ldarg.0 
+	IL_00a2:  callvirt instance void class NAnt.VSNet.WrapperReferenceBase::ImportTypeLibrary()
+	IL_00a7:  br IL_00e8
+
+	IL_00ac:  ldarg.0 
+	IL_00ad:  callvirt instance void class NAnt.VSNet.WrapperReferenceBase::ImportActiveXLibrary()
+	IL_00b2:  br IL_00e8
+
+	IL_00b7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00bc:  ldstr "Wrapper tool \"{0}\" for reference \"{1}\" in project \"{2}\" is not supported."
+	IL_00c1:  ldarg.0 
+	IL_00c2:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperTool()
+	IL_00c7:  ldarg.0 
+	IL_00c8:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_00cd:  ldarg.0 
+	IL_00ce:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_00d3:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_00d8:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_00dd:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_00e2:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_00e7:  throw 
+	IL_00e8:  ldarg.0 
+	IL_00e9:  ldc.i4.1 
+	IL_00ea:  stfld bool NAnt.VSNet.WrapperReferenceBase::_isCreated
+	IL_00ef:  ldarg.0 
+	IL_00f0:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
+	IL_00f5:  stloc.0 
+	IL_00f6:  br IL_00fb
+
+	IL_00fb:  ldloc.0 
+	IL_00fc:  ret 
+    } // end of method WrapperReferenceBase::CreateWrapper
+
+    // method line 387
+    .method private hidebysig 
+           instance default void Sync (class NAnt.VSNet.ConfigurationBase config)  cil managed 
     {
-        // Method begins at RVA 0x122ac
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x62b8
+	// Code size 164 (0xa4)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		string	V_0,
+		valuetype [mscorlib]System.DateTime	V_1,
+		class [NAnt.Core]NAnt.Core.Tasks.DeleteTask	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsSynchronized()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  callvirt instance bool class NAnt.VSNet.ReferenceBase::get_CopyLocal()
+	IL_0007:  brfalse IL_001c
+
+	IL_000c:  ldarg.0 
+	IL_000d:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
+	IL_0012:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0017:  brtrue IL_0022
+
+	IL_001c:  nop 
+	IL_001d:  br IL_00a3
+
+	IL_0022:  ldarg.1 
+	IL_0023:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	IL_0028:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_002d:  ldarg.0 
+	IL_002e:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
+	IL_0033:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_0038:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_003d:  stloc.0 
+	IL_003e:  ldarg.0 
+	IL_003f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
+	IL_0044:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.File::GetLastWriteTime(string)
+	IL_0049:  stloc.1 
+	IL_004a:  ldloc.0 
+	IL_004b:  ldloc.1 
+	IL_004c:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_0051:  brfalse IL_00a3
+
+	IL_0056:  nop 
+	IL_0057:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::'.ctor'()
+	IL_005c:  stloc.2 
+	IL_005d:  ldloc.2 
+	IL_005e:  ldarg.0 
+	IL_005f:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_0064:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0069:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_006e:  ldloc.2 
+	IL_006f:  ldarg.0 
+	IL_0070:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_0075:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_007a:  ldloc.2 
+	IL_007b:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	IL_0080:  ldloc.2 
+	IL_0081:  ldarg.0 
+	IL_0082:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
+	IL_0087:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_008c:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::set_File(class [mscorlib]System.IO.FileInfo)
+	IL_0091:  ldloc.2 
+	IL_0092:  ldc.i4 9999
+	IL_0097:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
+	IL_009c:  ldloc.2 
+	IL_009d:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	IL_00a2:  nop 
+	IL_00a3:  ret 
+    } // end of method WrapperReferenceBase::Sync
+
+    // method line 388
+    .method private hidebysig 
+           instance default class [NAnt.Core]NAnt.Core.BuildException CreateTypeLibraryNotRegisteredException ()  cil managed 
+    {
+        // Method begins at RVA 0x6368
+	// Code size 149 (0x95)
+	.maxstack 6
+	.locals init (
+		string	V_0,
+		class [NAnt.Core]NAnt.Core.BuildException	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_0009:  call bool string::IsNullOrEmpty(string)
+	IL_000e:  brfalse IL_0041
+
+	IL_0013:  nop 
+	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0019:  ldstr "Couldn't find type library \"{0}\" with version {1}, referenced by project \"{2}\"."
+	IL_001e:  ldarg.0 
+	IL_001f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
+	IL_0024:  ldarg.0 
+	IL_0025:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
+	IL_002a:  ldarg.0 
+	IL_002b:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0030:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_0035:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_003a:  stloc.0 
+	IL_003b:  nop 
+	IL_003c:  br IL_0082
+
+	IL_0041:  nop 
+	IL_0042:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0047:  ldstr "Couldn't find type library \"{0}\" ({1} with version {2}), referenced by project \"{3}\"."
+	IL_004c:  ldc.i4.4 
+	IL_004d:  newarr [mscorlib]System.Object
+	IL_0052:  dup 
+	IL_0053:  ldc.i4.0 
+	IL_0054:  ldarg.0 
+	IL_0055:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_005a:  stelem.ref 
+	IL_005b:  dup 
+	IL_005c:  ldc.i4.1 
+	IL_005d:  ldarg.0 
+	IL_005e:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
+	IL_0063:  stelem.ref 
+	IL_0064:  dup 
+	IL_0065:  ldc.i4.2 
+	IL_0066:  ldarg.0 
+	IL_0067:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
+	IL_006c:  stelem.ref 
+	IL_006d:  dup 
+	IL_006e:  ldc.i4.3 
+	IL_006f:  ldarg.0 
+	IL_0070:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0075:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_007a:  stelem.ref 
+	IL_007b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0080:  stloc.0 
+	IL_0081:  nop 
+	IL_0082:  ldloc.0 
+	IL_0083:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0088:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_008d:  stloc.1 
+	IL_008e:  br IL_0093
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationDictionary::get_IsSynchronized
+	IL_0093:  ldloc.1 
+	IL_0094:  ret 
+    } // end of method WrapperReferenceBase::CreateTypeLibraryNotRegisteredException
 
-    // method line 476
-    .method public final virtual hidebysig newslot specialname 
-           instance default int32 get_Count ()  cil managed 
+    // method line 389
+    .method private hidebysig 
+           instance default class [NAnt.Core]NAnt.Core.BuildException CreateInvalidTypeLibraryRegistrationException ()  cil managed 
     {
-        // Method begins at RVA 0x122cc
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x640c
+	// Code size 149 (0x95)
+	.maxstack 6
 	.locals init (
-		int32	V_0)
+		string	V_0,
+		class [NAnt.Core]NAnt.Core.BuildException	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_0009:  call bool string::IsNullOrEmpty(string)
+	IL_000e:  brfalse IL_0041
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationDictionary::get_Count
+	IL_0013:  nop 
+	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0019:  ldstr "Couldn't find path of type library \"{0}\" with version {1}, referenced by project \"{2}\". Ensure the type library is registeredcorrectly."
+	IL_001e:  ldarg.0 
+	IL_001f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
+	IL_0024:  ldarg.0 
+	IL_0025:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
+	IL_002a:  ldarg.0 
+	IL_002b:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0030:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_0035:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_003a:  stloc.0 
+	IL_003b:  nop 
+	IL_003c:  br IL_0082
 
-    // method line 477
-    .method public final virtual hidebysig newslot specialname 
-           instance default object get_SyncRoot ()  cil managed 
-    {
-        // Method begins at RVA 0x122ec
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		object	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_SyncRoot()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0041:  nop 
+	IL_0042:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0047:  ldstr "Couldn't find path of type library \"{0}\" ({1} with version {2}), referenced by project \"{3}\". Ensure the type library is registered correctly."
+	IL_004c:  ldc.i4.4 
+	IL_004d:  newarr [mscorlib]System.Object
+	IL_0052:  dup 
+	IL_0053:  ldc.i4.0 
+	IL_0054:  ldarg.0 
+	IL_0055:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_005a:  stelem.ref 
+	IL_005b:  dup 
+	IL_005c:  ldc.i4.1 
+	IL_005d:  ldarg.0 
+	IL_005e:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
+	IL_0063:  stelem.ref 
+	IL_0064:  dup 
+	IL_0065:  ldc.i4.2 
+	IL_0066:  ldarg.0 
+	IL_0067:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
+	IL_006c:  stelem.ref 
+	IL_006d:  dup 
+	IL_006e:  ldc.i4.3 
+	IL_006f:  ldarg.0 
+	IL_0070:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0075:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_007a:  stelem.ref 
+	IL_007b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0080:  stloc.0 
+	IL_0081:  nop 
+	IL_0082:  ldloc.0 
+	IL_0083:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0088:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_008d:  stloc.1 
+	IL_008e:  br IL_0093
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationDictionary::get_SyncRoot
+	IL_0093:  ldloc.1 
+	IL_0094:  ret 
+    } // end of method WrapperReferenceBase::CreateInvalidTypeLibraryRegistrationException
 
-    // method line 478
-    .method public hidebysig 
-           instance default bool ContainsKey (class NAnt.VSNet.Configuration key)  cil managed 
+    // method line 390
+    .method private hidebysig 
+           instance default class [NAnt.Core]NAnt.Core.BuildException CreateTypeLibraryPathDoesNotExistException (string typeLibraryPath)  cil managed 
     {
-        // Method begins at RVA 0x1230c
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x64b0
+	// Code size 172 (0xac)
+	.maxstack 6
 	.locals init (
-		bool	V_0)
+		string	V_0,
+		class [NAnt.Core]NAnt.Core.BuildException	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_0009:  call bool string::IsNullOrEmpty(string)
+	IL_000e:  brfalse IL_0054
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ConfigurationDictionary::ContainsKey
+	IL_0013:  nop 
+	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0019:  ldstr "Type library \"{0}\" with version {1}, referenced by project \"{2}\", no longer exists at registered path \"{3}\"."
+	IL_001e:  ldc.i4.4 
+	IL_001f:  newarr [mscorlib]System.Object
+	IL_0024:  dup 
+	IL_0025:  ldc.i4.0 
+	IL_0026:  ldarg.0 
+	IL_0027:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
+	IL_002c:  stelem.ref 
+	IL_002d:  dup 
+	IL_002e:  ldc.i4.1 
+	IL_002f:  ldarg.0 
+	IL_0030:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
+	IL_0035:  stelem.ref 
+	IL_0036:  dup 
+	IL_0037:  ldc.i4.2 
+	IL_0038:  ldarg.0 
+	IL_0039:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_003e:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_0043:  stelem.ref 
+	IL_0044:  dup 
+	IL_0045:  ldc.i4.3 
+	IL_0046:  ldarg.1 
+	IL_0047:  stelem.ref 
+	IL_0048:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_004d:  stloc.0 
+	IL_004e:  nop 
+	IL_004f:  br IL_0099
 
-    // method line 479
-    .method public hidebysig 
-           instance default bool ContainsValue (class NAnt.VSNet.ConfigurationBase 'value')  cil managed 
-    {
-        // Method begins at RVA 0x12330
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsValue(object)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0054:  nop 
+	IL_0055:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_005a:  ldstr "Type library \"{0}\" ({1} with version {2}), referenced by project \"{3}\", no longer exists at registered path \"{4}\"."
+	IL_005f:  ldc.i4.5 
+	IL_0060:  newarr [mscorlib]System.Object
+	IL_0065:  dup 
+	IL_0066:  ldc.i4.0 
+	IL_0067:  ldarg.0 
+	IL_0068:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_006d:  stelem.ref 
+	IL_006e:  dup 
+	IL_006f:  ldc.i4.1 
+	IL_0070:  ldarg.0 
+	IL_0071:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
+	IL_0076:  stelem.ref 
+	IL_0077:  dup 
+	IL_0078:  ldc.i4.2 
+	IL_0079:  ldarg.0 
+	IL_007a:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
+	IL_007f:  stelem.ref 
+	IL_0080:  dup 
+	IL_0081:  ldc.i4.3 
+	IL_0082:  ldarg.0 
+	IL_0083:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0088:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_008d:  stelem.ref 
+	IL_008e:  dup 
+	IL_008f:  ldc.i4.4 
+	IL_0090:  ldarg.1 
+	IL_0091:  stelem.ref 
+	IL_0092:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
+	IL_0097:  stloc.0 
+	IL_0098:  nop 
+	IL_0099:  ldloc.0 
+	IL_009a:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_009f:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_00a4:  stloc.1 
+	IL_00a5:  br IL_00aa
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ConfigurationDictionary::ContainsValue
+	IL_00aa:  ldloc.1 
+	IL_00ab:  ret 
+    } // end of method WrapperReferenceBase::CreateTypeLibraryPathDoesNotExistException
 
-	.property instance object System.Collections.IDictionary.Item (object)
+    // method line 391
+    .method private static hidebysig pinvokeimpl ("oleaut32.dll" as "LoadTypeLibEx" unicode winapi )
+           default void LoadTypeLibEx (string strTypeLibName, int32 regKind, [out] object& marshal (interface) typeLib)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method WrapperReferenceBase::LoadTypeLibEx
+
+	.property instance bool CopyLocal ()
 	{
-		.get instance default object NAnt.VSNet.ConfigurationDictionary::System.Collections.IDictionary.get_Item (object key) 
-		.set instance default void NAnt.VSNet.ConfigurationDictionary::System.Collections.IDictionary.set_Item (object key, object 'value') 
+		.get instance default bool NAnt.VSNet.WrapperReferenceBase::get_CopyLocal () 
 	}
-	.property instance class [mscorlib]System.Collections.Hashtable InnerHash ()
+	.property instance bool IsSystem ()
 	{
-		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::get_InnerHash () 
+		.get instance default bool NAnt.VSNet.WrapperReferenceBase::get_IsSystem () 
 	}
-	.property instance bool IsReadOnly ()
+	.property instance string WrapperTool ()
 	{
-		.get instance default bool NAnt.VSNet.ConfigurationDictionary::get_IsReadOnly () 
+		.get instance default string NAnt.VSNet.WrapperReferenceBase::get_WrapperTool () 
 	}
-	.property instance class NAnt.VSNet.ConfigurationBase Item (class NAnt.VSNet.Configuration)
+	.property instance string WrapperAssembly ()
 	{
-		.get instance default class NAnt.VSNet.ConfigurationBase NAnt.VSNet.ConfigurationDictionary::get_Item (class NAnt.VSNet.Configuration key) 
-		.set instance default void NAnt.VSNet.ConfigurationDictionary::set_Item (class NAnt.VSNet.Configuration key, class NAnt.VSNet.ConfigurationBase 'value') 
+		.get instance default string NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly () 
 	}
-	.property instance class [mscorlib]System.Collections.ICollection Values ()
+	.property instance bool IsCreated ()
 	{
-		.get instance default class [mscorlib]System.Collections.ICollection NAnt.VSNet.ConfigurationDictionary::get_Values () 
+		.get instance default bool NAnt.VSNet.WrapperReferenceBase::get_IsCreated () 
 	}
-	.property instance class [mscorlib]System.Collections.ICollection Keys ()
+	.property instance string PrimaryInteropAssembly ()
 	{
-		.get instance default class [mscorlib]System.Collections.ICollection NAnt.VSNet.ConfigurationDictionary::get_Keys () 
+		.get instance default string NAnt.VSNet.WrapperReferenceBase::get_PrimaryInteropAssembly () 
 	}
-	.property instance bool IsFixedSize ()
+	.property instance string TypeLibVersion ()
 	{
-		.get instance default bool NAnt.VSNet.ConfigurationDictionary::get_IsFixedSize () 
+		.get instance default string NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion () 
 	}
-	.property instance bool IsSynchronized ()
+	.property instance string TypeLibGuid ()
 	{
-		.get instance default bool NAnt.VSNet.ConfigurationDictionary::get_IsSynchronized () 
+		.get instance default string NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid () 
 	}
-	.property instance int32 Count ()
+	.property instance string TypeLibLocale ()
 	{
-		.get instance default int32 NAnt.VSNet.ConfigurationDictionary::get_Count () 
+		.get instance default string NAnt.VSNet.WrapperReferenceBase::get_TypeLibLocale () 
 	}
-	.property instance object SyncRoot ()
+	.property instance string TypeLibraryName ()
 	{
-		.get instance default object NAnt.VSNet.ConfigurationDictionary::get_SyncRoot () 
+		.get instance default string NAnt.VSNet.WrapperReferenceBase::get_TypeLibraryName () 
 	}
-  } // end of class NAnt.VSNet.ConfigurationDictionary
+  } // end of class NAnt.VSNet.WrapperReferenceBase
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi beforefieldinit ConfigurationDictionaryEnumerator
+  .class public auto ansi beforefieldinit Resource
   	extends [mscorlib]System.Object
-  	implements [mscorlib]System.Collections.IDictionaryEnumerator, [mscorlib]System.Collections.IEnumerator  {
-    .field  private initonly  class [mscorlib]System.Collections.IDictionaryEnumerator _innerEnumerator
+  {
+    .field  private initonly  class [mscorlib]System.Globalization.CultureInfo _culture
+    .field  private initonly  class [mscorlib]System.IO.FileInfo _resourceSourceFile
+    .field  private initonly  string _dependentFile
+    .field  private initonly  string _resourceSourceFileRelativePath
+    .field  private initonly  class NAnt.VSNet.ManagedProjectBase _project
+    .field  private initonly  class NAnt.VSNet.Tasks.SolutionTask _solutionTask
 
-    // method line 480
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ConfigurationDictionary enumerable)  cil managed 
+    // method line 392
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ManagedProjectBase project, class [mscorlib]System.IO.FileInfo resourceSourceFile, string resourceSourceFileRelativePath, string dependentFile, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache)  cil managed 
     {
-        // Method begins at RVA 0x12351
-	// Code size 25 (0x19)
-	.maxstack 8
+        // Method begins at RVA 0x11398
+	// Code size 64 (0x40)
+	.maxstack 3
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void object::'.ctor'()
 	IL_0006:  nop 
 	IL_0007:  ldarg.0 
 	IL_0008:  ldarg.1 
-	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ConfigurationDictionary::get_InnerHash()
-	IL_000e:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_0013:  stfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationDictionaryEnumerator::_innerEnumerator
-	IL_0018:  ret 
-    } // end of method ConfigurationDictionaryEnumerator::.ctor
+	IL_0009:  stfld class NAnt.VSNet.ManagedProjectBase NAnt.VSNet.Resource::_project
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.2 
+	IL_0010:  stfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.Resource::_resourceSourceFile
+	IL_0015:  ldarg.0 
+	IL_0016:  ldarg.3 
+	IL_0017:  stfld string NAnt.VSNet.Resource::_resourceSourceFileRelativePath
+	IL_001c:  ldarg.0 
+	IL_001d:  ldarg.s 4
+	IL_001f:  stfld string NAnt.VSNet.Resource::_dependentFile
+	IL_0024:  ldarg.0 
+	IL_0025:  ldarg.s 5
+	IL_0027:  stfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_002c:  ldarg.0 
+	IL_002d:  ldarg.2 
+	IL_002e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0033:  ldarg.s 4
+	IL_0035:  call class [mscorlib]System.Globalization.CultureInfo class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CompilerBase::GetResourceCulture(string, string)
+	IL_003a:  stfld class [mscorlib]System.Globalization.CultureInfo NAnt.VSNet.Resource::_culture
+	IL_003f:  ret 
+    } // end of method Resource::.ctor
 
-    // method line 481
+    // method line 393
     .method public hidebysig specialname 
-           instance default class NAnt.VSNet.Configuration get_Key ()  cil managed 
-    {
-        // Method begins at RVA 0x1236c
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.Configuration	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationDictionaryEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key()
-	IL_000c:  castclass NAnt.VSNet.Configuration
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ConfigurationDictionaryEnumerator::get_Key
-
-    // method line 482
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionaryEnumerator.get_Key ()  cil managed 
+           instance default class [mscorlib]System.Globalization.CultureInfo get_Culture ()  cil managed 
     {
-        // Method begins at RVA 0x12394
-	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key
+        // Method begins at RVA 0x113e4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		class [mscorlib]System.Globalization.CultureInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Key()
+	IL_0002:  ldfld class [mscorlib]System.Globalization.CultureInfo NAnt.VSNet.Resource::_culture
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ConfigurationDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Key
+    } // end of method Resource::get_Culture
 
-    // method line 483
+    // method line 394
     .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ConfigurationBase get_Value ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_InputFile ()  cil managed 
     {
-        // Method begins at RVA 0x123b0
-	// Code size 25 (0x19)
+        // Method begins at RVA 0x11400
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.ConfigurationBase	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationDictionaryEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value()
-	IL_000c:  castclass NAnt.VSNet.ConfigurationBase
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.Resource::_resourceSourceFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method ConfigurationDictionaryEnumerator::get_Value
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Resource::get_InputFile
 
-    // method line 484
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IDictionaryEnumerator.get_Value ()  cil managed 
+    // method line 395
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ManagedProjectBase get_Project ()  cil managed 
     {
-        // Method begins at RVA 0x123d8
-	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value
+        // Method begins at RVA 0x1141c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		object	V_0)
+		class NAnt.VSNet.ManagedProjectBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Value()
+	IL_0002:  ldfld class NAnt.VSNet.ManagedProjectBase NAnt.VSNet.Resource::_project
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ConfigurationDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value
+    } // end of method Resource::get_Project
 
-    // method line 485
-    .method public final virtual hidebysig newslot specialname 
-           instance default valuetype [mscorlib]System.Collections.DictionaryEntry get_Entry ()  cil managed 
+    // method line 396
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_LogicalFile ()  cil managed 
     {
-        // Method begins at RVA 0x123f4
-	// Code size 26 (0x1a)
+        // Method begins at RVA 0x11438
+	// Code size 41 (0x29)
 	.maxstack 2
 	.locals init (
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Key()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Value()
-	IL_000d:  newobj instance void valuetype [mscorlib]System.Collections.DictionaryEntry::'.ctor'(object, object)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
-
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ConfigurationDictionaryEnumerator::get_Entry
+	IL_0002:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_0007:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_000c:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld string NAnt.VSNet.Resource::_resourceSourceFileRelativePath
+	IL_0017:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_001c:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0021:  stloc.0 
+	IL_0022:  br IL_0027
 
-    // method line 486
-    .method public final virtual hidebysig newslot 
-           instance default void Reset ()  cil managed 
-    {
-        // Method begins at RVA 0x1241a
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationDictionaryEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
-	IL_000c:  ret 
-    } // end of method ConfigurationDictionaryEnumerator::Reset
+	IL_0027:  ldloc.0 
+	IL_0028:  ret 
+    } // end of method Resource::get_LogicalFile
 
-    // method line 487
-    .method public final virtual hidebysig newslot 
-           instance default bool MoveNext ()  cil managed 
+    // method line 397
+    .method public hidebysig specialname 
+           instance default bool get_IsResX ()  cil managed 
     {
-        // Method begins at RVA 0x12428
-	// Code size 20 (0x14)
-	.maxstack 1
+        // Method begins at RVA 0x11470
+	// Code size 40 (0x28)
+	.maxstack 2
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationDictionaryEnumerator::_innerEnumerator
-	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
+	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Extension()
+	IL_000c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0011:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_0016:  ldstr ".resx"
+	IL_001b:  call bool string::op_Equality(string, string)
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ConfigurationDictionaryEnumerator::MoveNext
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method Resource::get_IsResX
 
-    // method line 488
-    .method private final virtual hidebysig newslot specialname 
-           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    // method line 398
+    .method public hidebysig 
+           instance default class [mscorlib]System.IO.FileInfo Compile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x12448
-	.override class [mscorlib]System.Collections.IEnumerator::get_Current
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x114a4
+	// Code size 116 (0x74)
+	.maxstack 2
 	.locals init (
-		object	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0,
+		string	V_1,
+		class [mscorlib]System.IO.FileInfo	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionaryEntry class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Current()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
+	IL_0009:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Extension()
+	IL_000e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0013:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_0018:  stloc.1 
+	IL_0019:  ldloc.1 
+	IL_001a:  brfalse IL_005e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationDictionaryEnumerator::System.Collections.IEnumerator.get_Current
+	IL_001f:  ldloc.1 
+	IL_0020:  ldstr ".resx"
+	IL_0025:  call bool string::op_Equality(string, string)
+	IL_002a:  brtrue IL_0044
 
-    // method line 489
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ConfigurationDictionaryEntry get_Current ()  cil managed 
-    {
-        // Method begins at RVA 0x12464
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		class NAnt.VSNet.ConfigurationDictionaryEntry	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Key()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Value()
-	IL_000d:  newobj instance void class NAnt.VSNet.ConfigurationDictionaryEntry::'.ctor'(class NAnt.VSNet.Configuration, class NAnt.VSNet.ConfigurationBase)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
+	IL_002f:  ldloc.1 
+	IL_0030:  ldstr ".licx"
+	IL_0035:  call bool string::op_Equality(string, string)
+	IL_003a:  brtrue IL_0051
 
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ConfigurationDictionaryEnumerator::get_Current
+	IL_003f:  br IL_005e
 
-	.property instance object System.Collections.IDictionaryEnumerator.Key ()
-	{
-		.get instance default object NAnt.VSNet.ConfigurationDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Key () 
-	}
-	.property instance object System.Collections.IDictionaryEnumerator.Value ()
-	{
-		.get instance default object NAnt.VSNet.ConfigurationDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value () 
-	}
-	.property instance object System.Collections.IEnumerator.Current ()
-	{
-		.get instance default object NAnt.VSNet.ConfigurationDictionaryEnumerator::System.Collections.IEnumerator.get_Current () 
-	}
-	.property instance class NAnt.VSNet.Configuration Key ()
-	{
-		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Key () 
-	}
-	.property instance class NAnt.VSNet.ConfigurationBase Value ()
-	{
-		.get instance default class NAnt.VSNet.ConfigurationBase NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Value () 
-	}
-	.property instance valuetype [mscorlib]System.Collections.DictionaryEntry Entry ()
-	{
-		.get instance default valuetype [mscorlib]System.Collections.DictionaryEntry NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Entry () 
-	}
-	.property instance class NAnt.VSNet.ConfigurationDictionaryEntry Current ()
-	{
-		.get instance default class NAnt.VSNet.ConfigurationDictionaryEntry NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Current () 
-	}
-  } // end of class NAnt.VSNet.ConfigurationDictionaryEnumerator
-}
+	IL_0044:  ldarg.0 
+	IL_0045:  ldarg.1 
+	IL_0046:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::CompileResx(class NAnt.VSNet.Configuration)
+	IL_004b:  stloc.0 
+	IL_004c:  br IL_006b
 
-.namespace NAnt.VSNet
-{
-  .class public auto ansi sealed beforefieldinit ConfigurationDictionaryEntry
-  	extends [mscorlib]System.Object
-  {
-    .field  private initonly  class NAnt.VSNet.Configuration _name
-    .field  private initonly  class NAnt.VSNet.ConfigurationBase _config
+	IL_0051:  ldarg.0 
+	IL_0052:  ldarg.1 
+	IL_0053:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::CompileLicx(class NAnt.VSNet.Configuration)
+	IL_0058:  stloc.0 
+	IL_0059:  br IL_006b
 
-    // method line 490
-    .method assembly hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.Configuration name, class NAnt.VSNet.ConfigurationBase config)  cil managed 
-    {
-        // Method begins at RVA 0x1248a
-	// Code size 22 (0x16)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.1 
-	IL_0009:  stfld class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationDictionaryEntry::_name
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.2 
-	IL_0010:  stfld class NAnt.VSNet.ConfigurationBase NAnt.VSNet.ConfigurationDictionaryEntry::_config
-	IL_0015:  ret 
-    } // end of method ConfigurationDictionaryEntry::.ctor
+	IL_005e:  ldarg.0 
+	IL_005f:  ldarg.1 
+	IL_0060:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::CompileResource(class NAnt.VSNet.Configuration)
+	IL_0065:  stloc.0 
+	IL_0066:  br IL_006b
 
-    // method line 491
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.Configuration get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x124a4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.Configuration	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationDictionaryEntry::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_006b:  ldloc.0 
+	IL_006c:  stloc.2 
+	IL_006d:  br IL_0072
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationDictionaryEntry::get_Name
+	IL_0072:  ldloc.2 
+	IL_0073:  ret 
+    } // end of method Resource::Compile
 
-    // method line 492
-    .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ConfigurationBase get_Config ()  cil managed 
+    // method line 399
+    .method public hidebysig 
+           instance default class [mscorlib]System.IO.FileInfo GetCompiledResourceFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x124c0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x11524
+	// Code size 199 (0xc7)
+	.maxstack 3
 	.locals init (
-		class NAnt.VSNet.ConfigurationBase	V_0)
+		string	V_0,
+		class NAnt.VSNet.ConfigurationSettings	V_1,
+		string	V_2,
+		class [mscorlib]System.IO.FileInfo	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ConfigurationBase NAnt.VSNet.ConfigurationDictionaryEntry::_config
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_0009:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_000e:  ldarg.1 
+	IL_000f:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_0014:  castclass NAnt.VSNet.ConfigurationSettings
+	IL_0019:  stloc.1 
+	IL_001a:  ldarg.0 
+	IL_001b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
+	IL_0020:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Extension()
+	IL_0025:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_002a:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_002f:  stloc.2 
+	IL_0030:  ldloc.2 
+	IL_0031:  brfalse IL_00a8
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationDictionaryEntry::get_Config
+	IL_0036:  ldloc.2 
+	IL_0037:  ldstr ".resx"
+	IL_003c:  call bool string::op_Equality(string, string)
+	IL_0041:  brtrue IL_005b
 
-	.property instance class NAnt.VSNet.Configuration Name ()
-	{
-		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationDictionaryEntry::get_Name () 
-	}
-	.property instance class NAnt.VSNet.ConfigurationBase Config ()
-	{
-		.get instance default class NAnt.VSNet.ConfigurationBase NAnt.VSNet.ConfigurationDictionaryEntry::get_Config () 
-	}
-  } // end of class NAnt.VSNet.ConfigurationDictionaryEntry
-}
+	IL_0046:  ldloc.2 
+	IL_0047:  ldstr ".licx"
+	IL_004c:  call bool string::op_Equality(string, string)
+	IL_0051:  brtrue IL_0078
 
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit VcProjectReference
-  	extends NAnt.VSNet.ProjectReferenceBase
-  {
-    .field  private initonly  class NAnt.VSNet.ProjectBase _project
-    .field  private initonly  bool _isPrivateSpecified
-    .field  private initonly  bool _isPrivate
+	IL_0056:  br IL_00a8
 
-    // method line 493
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class NAnt.VSNet.SolutionBase solution, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
+	IL_005b:  ldloc.1 
+	IL_005c:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
+	IL_0061:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0066:  ldarg.0 
+	IL_0067:  ldarg.1 
+	IL_0068:  call instance string class NAnt.VSNet.Resource::GetManifestResourceName(class NAnt.VSNet.Configuration)
+	IL_006d:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0072:  stloc.0 
+	IL_0073:  br IL_00b9
+
+	IL_0078:  ldloc.1 
+	IL_0079:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
+	IL_007e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0083:  ldarg.0 
+	IL_0084:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_0089:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_008e:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_OutputFileName()
+	IL_0093:  ldstr ".licenses"
+	IL_0098:  call string string::Concat(string, string)
+	IL_009d:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_00a2:  stloc.0 
+	IL_00a3:  br IL_00b9
+
+	IL_00a8:  ldarg.0 
+	IL_00a9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
+	IL_00ae:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00b3:  stloc.0 
+	IL_00b4:  br IL_00b9
+
+	IL_00b9:  ldloc.0 
+	IL_00ba:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_00bf:  stloc.3 
+	IL_00c0:  br IL_00c5
+
+	IL_00c5:  ldloc.3 
+	IL_00c6:  ret 
+    } // end of method Resource::GetCompiledResourceFile
+
+    // method line 400
+    .method public hidebysig 
+           instance default string GetManifestResourceName (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x124dc
-	// Code size 174 (0xae)
-	.maxstack 7
+        // Method begins at RVA 0x115f8
+	// Code size 159 (0x9f)
+	.maxstack 3
 	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		string	V_1)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.2 
-	IL_0002:  ldarg.3 
-	IL_0003:  call instance void class NAnt.VSNet.ProjectReferenceBase::'.ctor'(class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase)
-	IL_0008:  nop 
-	IL_0009:  ldarg.1 
-	IL_000a:  brtrue IL_001b
+		class NAnt.VSNet.ConfigurationSettings	V_0,
+		valuetype NAnt.VSNet.ProjectType	V_1,
+		string	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_0007:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_000c:  ldarg.1 
+	IL_000d:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_0012:  castclass NAnt.VSNet.ConfigurationSettings
+	IL_0017:  stloc.0 
+	IL_0018:  ldarg.0 
+	IL_0019:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_001e:  callvirt instance valuetype NAnt.VSNet.ProjectType class NAnt.VSNet.ProjectBase::get_Type()
+	IL_0023:  stloc.1 
+	IL_0024:  ldloc.1 
+	IL_0025:  switch (
+	  IL_0052,
+	  IL_003f,
+	  IL_0078,
+	  IL_0065)
+	IL_003a:  br IL_0078
 
-	IL_000f:  nop 
-	IL_0010:  ldstr "xmlDefinition"
-	IL_0015:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_001a:  throw 
-	IL_001b:  ldarg.s 4
-	IL_001d:  brtrue IL_002e
+	IL_003f:  ldarg.0 
+	IL_0040:  ldloc.0 
+	IL_0041:  ldarg.0 
+	IL_0042:  ldfld string NAnt.VSNet.Resource::_dependentFile
+	IL_0047:  call instance string class NAnt.VSNet.Resource::GetManifestResourceNameCSharp(class NAnt.VSNet.ConfigurationSettings, string)
+	IL_004c:  stloc.2 
+	IL_004d:  br IL_009d
 
-	IL_0022:  nop 
-	IL_0023:  ldstr "solution"
-	IL_0028:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_002d:  throw 
-	IL_002e:  ldarg.s 5
-	IL_0030:  brtrue IL_0041
+	IL_0052:  ldarg.0 
+	IL_0053:  ldloc.0 
+	IL_0054:  ldarg.0 
+	IL_0055:  ldfld string NAnt.VSNet.Resource::_dependentFile
+	IL_005a:  call instance string class NAnt.VSNet.Resource::GetManifestResourceNameVB(class NAnt.VSNet.ConfigurationSettings, string)
+	IL_005f:  stloc.2 
+	IL_0060:  br IL_009d
 
-	IL_0035:  nop 
-	IL_0036:  ldstr "tfc"
-	IL_003b:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0040:  throw 
-	IL_0041:  ldarg.s 6
-	IL_0043:  brtrue IL_0054
+	IL_0065:  ldarg.0 
+	IL_0066:  ldloc.0 
+	IL_0067:  ldarg.0 
+	IL_0068:  ldfld string NAnt.VSNet.Resource::_dependentFile
+	IL_006d:  call instance string class NAnt.VSNet.Resource::GetManifestResourceNameJSharp(class NAnt.VSNet.ConfigurationSettings, string)
+	IL_0072:  stloc.2 
+	IL_0073:  br IL_009d
 
-	IL_0048:  nop 
-	IL_0049:  ldstr "gacCache"
-	IL_004e:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0053:  throw 
-	IL_0054:  ldarg.1 
-	IL_0055:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_005a:  ldstr "CopyLocal"
-	IL_005f:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0064:  stloc.0 
-	IL_0065:  ldloc.0 
-	IL_0066:  brfalse IL_0085
+	IL_0078:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_007d:  ldstr "Unsupported project type '{0}'."
+	IL_0082:  ldarg.0 
+	IL_0083:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_0088:  callvirt instance valuetype NAnt.VSNet.ProjectType class NAnt.VSNet.ProjectBase::get_Type()
+	IL_008d:  box NAnt.VSNet.ProjectType
+	IL_0092:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0097:  newobj instance void class [mscorlib]System.ArgumentException::'.ctor'(string)
+	IL_009c:  throw 
+	IL_009d:  ldloc.2 
+	IL_009e:  ret 
+    } // end of method Resource::GetManifestResourceName
 
-	IL_006b:  nop 
+    // method line 401
+    .method private hidebysig 
+           instance default string GetManifestResourceNameCSharp (class NAnt.VSNet.ConfigurationSettings configSetting, string dependentFile)  cil managed 
+    {
+        // Method begins at RVA 0x116a4
+	// Code size 225 (0xe1)
+	.maxstack 5
+	.locals init (
+		class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CscTask	V_0,
+		class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet	V_1,
+		string	V_2)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CscTask::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0013:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_001f:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0024:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0029:  ldloc.0 
+	IL_002a:  ldarg.1 
+	IL_002b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	IL_0030:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0035:  ldarg.0 
+	IL_0036:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_003b:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_0040:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_OutputFileName()
+	IL_0045:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_004a:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_004f:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CompilerBase::set_OutputFile(class [mscorlib]System.IO.FileInfo)
+	IL_0054:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::'.ctor'()
+	IL_0059:  stloc.1 
+	IL_005a:  ldloc.1 
+	IL_005b:  ldarg.0 
+	IL_005c:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_0061:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0066:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_006b:  ldloc.1 
 	IL_006c:  ldarg.0 
-	IL_006d:  ldc.i4.1 
-	IL_006e:  stfld bool NAnt.VSNet.VcProjectReference::_isPrivateSpecified
-	IL_0073:  ldarg.0 
-	IL_0074:  ldloc.0 
-	IL_0075:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_007a:  call bool bool::Parse(string)
-	IL_007f:  stfld bool NAnt.VSNet.VcProjectReference::_isPrivate
-	IL_0084:  nop 
-	IL_0085:  ldarg.s 4
-	IL_0087:  ldarg.1 
-	IL_0088:  ldstr "ReferencedProjectIdentifier"
-	IL_008d:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_0092:  callvirt instance string class NAnt.VSNet.SolutionBase::GetProjectFileFromGuid(string)
-	IL_0097:  stloc.1 
-	IL_0098:  ldarg.0 
-	IL_0099:  ldarg.0 
-	IL_009a:  ldarg.s 4
-	IL_009c:  ldarg.s 5
-	IL_009e:  ldarg.s 6
-	IL_00a0:  ldarg.s 7
-	IL_00a2:  ldloc.1 
-	IL_00a3:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::LoadProject(class NAnt.VSNet.SolutionBase, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class [mscorlib]System.IO.DirectoryInfo, string)
-	IL_00a8:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.VcProjectReference::_project
-	IL_00ad:  ret 
-    } // end of method VcProjectReference::.ctor
+	IL_006d:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_0072:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0077:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_007c:  ldloc.1 
+	IL_007d:  ldloc.0 
+	IL_007e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0083:  ldloc.1 
+	IL_0084:  ldarg.0 
+	IL_0085:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_008a:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_008f:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_0094:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0099:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_009e:  ldloc.1 
+	IL_009f:  ldarg.0 
+	IL_00a0:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_00a5:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_00aa:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_RootNamespace()
+	IL_00af:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::set_Prefix(string)
+	IL_00b4:  ldloc.1 
+	IL_00b5:  ldc.i4.1 
+	IL_00b6:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::set_DynamicPrefix(bool)
+	IL_00bb:  ldloc.0 
+	IL_00bc:  ldloc.1 
+	IL_00bd:  ldarg.0 
+	IL_00be:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
+	IL_00c3:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00c8:  ldarg.0 
+	IL_00c9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_LogicalFile()
+	IL_00ce:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00d3:  ldarg.2 
+	IL_00d4:  callvirt instance string class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CompilerBase::GetManifestResourceName(class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet, string, string, string)
+	IL_00d9:  stloc.2 
+	IL_00da:  br IL_00df
 
-    // method line 494
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ProjectBase project, class NAnt.VSNet.ProjectBase parent, bool isPrivateSpecified, bool isPrivate)  cil managed 
-    {
-        // Method begins at RVA 0x12596
-	// Code size 37 (0x25)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
-	IL_0007:  ldarg.2 
-	IL_0008:  call instance void class NAnt.VSNet.ProjectReferenceBase::'.ctor'(class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase)
-	IL_000d:  nop 
-	IL_000e:  ldarg.0 
-	IL_000f:  ldarg.1 
-	IL_0010:  stfld class NAnt.VSNet.ProjectBase NAnt.VSNet.VcProjectReference::_project
-	IL_0015:  ldarg.0 
-	IL_0016:  ldarg.3 
-	IL_0017:  stfld bool NAnt.VSNet.VcProjectReference::_isPrivateSpecified
-	IL_001c:  ldarg.0 
-	IL_001d:  ldarg.s 4
-	IL_001f:  stfld bool NAnt.VSNet.VcProjectReference::_isPrivate
-	IL_0024:  ret 
-    } // end of method VcProjectReference::.ctor
+	IL_00df:  ldloc.2 
+	IL_00e0:  ret 
+    } // end of method Resource::GetManifestResourceNameCSharp
 
-    // method line 495
-    .method public virtual hidebysig 
-           instance default bool IsManaged (class NAnt.VSNet.Configuration config)  cil managed 
+    // method line 402
+    .method private hidebysig 
+           instance default string GetManifestResourceNameVB (class NAnt.VSNet.ConfigurationSettings configSetting, string dependentFile)  cil managed 
     {
-        // Method begins at RVA 0x125bc
-	// Code size 21 (0x15)
-	.maxstack 2
+        // Method begins at RVA 0x11794
+	// Code size 247 (0xf7)
+	.maxstack 5
 	.locals init (
-		bool	V_0)
+		class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.VbcTask	V_0,
+		class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet	V_1,
+		string	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class NAnt.VSNet.ProjectBase::IsManaged(class NAnt.VSNet.Configuration)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0001:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.VbcTask::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0013:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_001f:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0024:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0029:  ldloc.0 
+	IL_002a:  ldarg.1 
+	IL_002b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	IL_0030:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0035:  ldarg.0 
+	IL_0036:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_003b:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_0040:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_OutputFileName()
+	IL_0045:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_004a:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_004f:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CompilerBase::set_OutputFile(class [mscorlib]System.IO.FileInfo)
+	IL_0054:  ldloc.0 
+	IL_0055:  ldarg.0 
+	IL_0056:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_005b:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_0060:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_RootNamespace()
+	IL_0065:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.VbcTask::set_RootNamespace(string)
+	IL_006a:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::'.ctor'()
+	IL_006f:  stloc.1 
+	IL_0070:  ldloc.1 
+	IL_0071:  ldarg.0 
+	IL_0072:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_0077:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_007c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0081:  ldloc.1 
+	IL_0082:  ldarg.0 
+	IL_0083:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_0088:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_008d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0092:  ldloc.1 
+	IL_0093:  ldloc.0 
+	IL_0094:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0099:  ldloc.1 
+	IL_009a:  ldarg.0 
+	IL_009b:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_00a0:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_00a5:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_00aa:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_00af:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_00b4:  ldloc.1 
+	IL_00b5:  ldarg.0 
+	IL_00b6:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_00bb:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_00c0:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_RootNamespace()
+	IL_00c5:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::set_Prefix(string)
+	IL_00ca:  ldloc.1 
+	IL_00cb:  ldc.i4.0 
+	IL_00cc:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::set_DynamicPrefix(bool)
+	IL_00d1:  ldloc.0 
+	IL_00d2:  ldloc.1 
+	IL_00d3:  ldarg.0 
+	IL_00d4:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
+	IL_00d9:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00de:  ldarg.0 
+	IL_00df:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_LogicalFile()
+	IL_00e4:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00e9:  ldarg.2 
+	IL_00ea:  callvirt instance string class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CompilerBase::GetManifestResourceName(class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet, string, string, string)
+	IL_00ef:  stloc.2 
+	IL_00f0:  br IL_00f5
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method VcProjectReference::IsManaged
+	IL_00f5:  ldloc.2 
+	IL_00f6:  ret 
+    } // end of method Resource::GetManifestResourceNameVB
 
-    // method line 496
-    .method public virtual hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
+    // method line 403
+    .method private hidebysig 
+           instance default string GetManifestResourceNameJSharp (class NAnt.VSNet.ConfigurationSettings configSetting, string dependentFile)  cil managed 
     {
-        // Method begins at RVA 0x125e0
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x11898
+	// Code size 225 (0xe1)
+	.maxstack 5
 	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0)
+		class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.VjcTask	V_0,
+		class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet	V_1,
+		string	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ProjectBase NAnt.VSNet.VcProjectReference::_project
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.VjcTask::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0013:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_001f:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0024:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0029:  ldloc.0 
+	IL_002a:  ldarg.1 
+	IL_002b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	IL_0030:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0035:  ldarg.0 
+	IL_0036:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_003b:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_0040:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_OutputFileName()
+	IL_0045:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_004a:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_004f:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CompilerBase::set_OutputFile(class [mscorlib]System.IO.FileInfo)
+	IL_0054:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::'.ctor'()
+	IL_0059:  stloc.1 
+	IL_005a:  ldloc.1 
+	IL_005b:  ldarg.0 
+	IL_005c:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_0061:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0066:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_006b:  ldloc.1 
+	IL_006c:  ldarg.0 
+	IL_006d:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_0072:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0077:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_007c:  ldloc.1 
+	IL_007d:  ldloc.0 
+	IL_007e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0083:  ldloc.1 
+	IL_0084:  ldarg.0 
+	IL_0085:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_008a:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_008f:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_0094:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0099:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_009e:  ldloc.1 
+	IL_009f:  ldarg.0 
+	IL_00a0:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_00a5:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_00aa:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_RootNamespace()
+	IL_00af:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::set_Prefix(string)
+	IL_00b4:  ldloc.1 
+	IL_00b5:  ldc.i4.1 
+	IL_00b6:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet::set_DynamicPrefix(bool)
+	IL_00bb:  ldloc.0 
+	IL_00bc:  ldloc.1 
+	IL_00bd:  ldarg.0 
+	IL_00be:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
+	IL_00c3:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00c8:  ldarg.0 
+	IL_00c9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_LogicalFile()
+	IL_00ce:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00d3:  ldarg.2 
+	IL_00d4:  callvirt instance string class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.CompilerBase::GetManifestResourceName(class [NAnt.DotNetTasks]NAnt.DotNet.Types.ResourceFileSet, string, string, string)
+	IL_00d9:  stloc.2 
+	IL_00da:  br IL_00df
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProjectReference::get_Project
+	IL_00df:  ldloc.2 
+	IL_00e0:  ret 
+    } // end of method Resource::GetManifestResourceNameJSharp
 
-    // method line 497
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsPrivate ()  cil managed 
+    // method line 404
+    .method private hidebysig 
+           instance default class [mscorlib]System.IO.FileInfo CompileResource (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x125fc
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x11988
+	// Code size 16 (0x10)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcProjectReference::_isPrivate
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::GetCompiledResourceFile(class NAnt.VSNet.Configuration)
+	IL_0008:  stloc.0 
+	IL_0009:  br IL_000e
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProjectReference::get_IsPrivate
+	IL_000e:  ldloc.0 
+	IL_000f:  ret 
+    } // end of method Resource::CompileResource
 
-    // method line 498
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsPrivateSpecified ()  cil managed 
+    // method line 405
+    .method private hidebysig 
+           instance default class [mscorlib]System.IO.FileInfo CompileLicx (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x12618
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x119a4
+	// Code size 437 (0x1b5)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask	V_0,
+		class NAnt.VSNet.ReferenceBase	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class [System]System.Collections.Specialized.StringCollection	V_3,
+		string	V_4,
+		class [System]System.Collections.Specialized.StringEnumerator	V_5,
+		class [mscorlib]System.IDisposable	V_6,
+		class [mscorlib]System.IDisposable	V_7,
+		class [mscorlib]System.IO.FileInfo	V_8)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.VcProjectReference::_isPrivateSpecified
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0013:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_001f:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0024:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0029:  ldloc.0 
+	IL_002a:  ldarg.0 
+	IL_002b:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_0030:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0035:  ldloc.0 
+	IL_0036:  ldarg.0 
+	IL_0037:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.Resource::_solutionTask
+	IL_003c:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_0041:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
+	IL_0046:  ldloc.0 
+	IL_0047:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	IL_004c:  ldloc.0 
+	IL_004d:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
+	IL_0052:  ldloc.0 
+	IL_0053:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0058:  ldloc.0 
+	IL_0059:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
+	IL_005e:  ldloc.0 
+	IL_005f:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0064:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0069:  ldloc.0 
+	IL_006a:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
+	IL_006f:  ldloc.0 
+	IL_0070:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0075:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_007a:  ldloc.0 
+	IL_007b:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
+	IL_0080:  ldarg.0 
+	IL_0081:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_0086:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_008b:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_0090:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0095:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_009a:  ldloc.0 
+	IL_009b:  ldarg.0 
+	IL_009c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
+	IL_00a1:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::set_InputFile(class [mscorlib]System.IO.FileInfo)
+	IL_00a6:  ldloc.0 
+	IL_00a7:  ldarg.0 
+	IL_00a8:  ldarg.1 
+	IL_00a9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::GetCompiledResourceFile(class NAnt.VSNet.Configuration)
+	IL_00ae:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::set_OutputFile(class [mscorlib]System.IO.FileInfo)
+	IL_00b3:  ldloc.0 
+	IL_00b4:  ldarg.0 
+	IL_00b5:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_00ba:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
+	IL_00bf:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_OutputFileName()
+	IL_00c4:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_00c9:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00ce:  callvirt instance string string::ToUpper(class [mscorlib]System.Globalization.CultureInfo)
+	IL_00d3:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::set_Target(string)
+	IL_00d8:  nop 
+	IL_00d9:  ldarg.0 
+	IL_00da:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.Resource::get_Project()
+	IL_00df:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
+	IL_00e4:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_00e9:  stloc.2 
+	.try { // 1
+	  IL_00ea:  br IL_0159
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VcProjectReference::get_IsPrivateSpecified
+	  IL_00ef:  ldloc.2 
+	  IL_00f0:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_00f5:  castclass NAnt.VSNet.ReferenceBase
+	  IL_00fa:  stloc.1 
+	  IL_00fb:  nop 
+	  IL_00fc:  ldloc.1 
+	  IL_00fd:  ldarg.1 
+	  IL_00fe:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.ReferenceBase::GetAssemblyReferences(class NAnt.VSNet.Configuration)
+	  IL_0103:  stloc.3 
+	  IL_0104:  nop 
+	  IL_0105:  ldloc.3 
+	  IL_0106:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_010b:  stloc.s 5
+	  .try { // 0
+	    IL_010d:  br IL_0130
 
-	.property instance class NAnt.VSNet.ProjectBase Project ()
+	    IL_0112:  ldloc.s 5
+	    IL_0114:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_0119:  stloc.s 4
+	    IL_011b:  nop 
+	    IL_011c:  ldloc.0 
+	    IL_011d:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::get_Assemblies()
+	    IL_0122:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	    IL_0127:  ldloc.s 4
+	    IL_0129:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	    IL_012e:  pop 
+	    IL_012f:  nop 
+	    IL_0130:  ldloc.s 5
+	    IL_0132:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_0137:  brtrue IL_0112
+
+	    IL_013c:  leave IL_0158
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_0141:  ldloc.s 5
+	    IL_0143:  isinst [mscorlib]System.IDisposable
+	    IL_0148:  dup 
+	    IL_0149:  stloc.s 6
+	    IL_014b:  brfalse IL_0157
+
+	    IL_0150:  ldloc.s 6
+	    IL_0152:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0157:  endfinally 
+	  } // end handler 0
+	  IL_0158:  nop 
+	  IL_0159:  ldloc.2 
+	  IL_015a:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_015f:  brtrue IL_00ef
+
+	  IL_0164:  leave IL_017f
+
+	} // end .try 1
+	finally  { // 1
+	  IL_0169:  ldloc.2 
+	  IL_016a:  isinst [mscorlib]System.IDisposable
+	  IL_016f:  dup 
+	  IL_0170:  stloc.s 7
+	  IL_0172:  brfalse IL_017e
+
+	  IL_0177:  ldloc.s 7
+	  IL_0179:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_017e:  endfinally 
+	} // end handler 1
+	IL_017f:  ldloc.0 
+	IL_0180:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0185:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	.try { // 2
+	  IL_018a:  nop 
+	  IL_018b:  ldloc.0 
+	  IL_018c:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_0191:  nop 
+	  IL_0192:  leave IL_01a5
+
+	} // end .try 2
+	finally  { // 2
+	  IL_0197:  nop 
+	  IL_0198:  ldloc.0 
+	  IL_0199:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_019e:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	  IL_01a3:  nop 
+	  IL_01a4:  endfinally 
+	} // end handler 2
+	IL_01a5:  ldloc.0 
+	IL_01a6:  callvirt instance class [mscorlib]System.IO.FileInfo class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.LicenseTask::get_OutputFile()
+	IL_01ab:  stloc.s 8
+	IL_01ad:  br IL_01b2
+
+	IL_01b2:  ldloc.s 8
+	IL_01b4:  ret 
+    } // end of method Resource::CompileLicx
+
+    // method line 406
+    .method private hidebysig 
+           instance default class [mscorlib]System.IO.FileInfo CompileResx (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x11b90
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'()
+	IL_0006:  throw 
+    } // end of method Resource::CompileResx
+
+	.property instance class [mscorlib]System.Globalization.CultureInfo Culture ()
 	{
-		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.VcProjectReference::get_Project () 
+		.get instance default class [mscorlib]System.Globalization.CultureInfo NAnt.VSNet.Resource::get_Culture () 
 	}
-	.property instance bool IsPrivate ()
+	.property instance class [mscorlib]System.IO.FileInfo InputFile ()
 	{
-		.get instance default bool NAnt.VSNet.VcProjectReference::get_IsPrivate () 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VSNet.Resource::get_InputFile () 
 	}
-	.property instance bool IsPrivateSpecified ()
+	.property instance class NAnt.VSNet.ManagedProjectBase Project ()
 	{
-		.get instance default bool NAnt.VSNet.VcProjectReference::get_IsPrivateSpecified () 
+		.get instance default class NAnt.VSNet.ManagedProjectBase NAnt.VSNet.Resource::get_Project () 
 	}
-  } // end of class NAnt.VSNet.VcProjectReference
+	.property instance class [mscorlib]System.IO.FileInfo LogicalFile ()
+	{
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VSNet.Resource::get_LogicalFile () 
+	}
+	.property instance bool IsResX ()
+	{
+		.get instance default bool NAnt.VSNet.Resource::get_IsResX () 
+	}
+  } // end of class NAnt.VSNet.Resource
 }
 
 .namespace NAnt.VSNet
@@ -24574,11 +24896,11 @@
     .field  private  class NAnt.VSNet.ProjectBase _project
     .field  private  class NAnt.VSNet.ConfigurationMap _buildConfigurations
 
-    // method line 499
+    // method line 407
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string guid, string path)  cil managed 
     {
-        // Method begins at RVA 0x12633
+        // Method begins at RVA 0x11b98
 	// Code size 58 (0x3a)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -24607,11 +24929,11 @@
 	IL_0039:  ret 
     } // end of method ProjectEntry::.ctor
 
-    // method line 500
+    // method line 408
     .method public hidebysig specialname 
            instance default string get_Guid ()  cil managed 
     {
-        // Method begins at RVA 0x12670
+        // Method begins at RVA 0x11bd4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -24626,11 +24948,11 @@
 	IL_000e:  ret 
     } // end of method ProjectEntry::get_Guid
 
-    // method line 501
+    // method line 409
     .method public hidebysig specialname 
            instance default string get_Path ()  cil managed 
     {
-        // Method begins at RVA 0x1268c
+        // Method begins at RVA 0x11bf0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -24645,11 +24967,11 @@
 	IL_000e:  ret 
     } // end of method ProjectEntry::get_Path
 
-    // method line 502
+    // method line 410
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
     {
-        // Method begins at RVA 0x126a8
+        // Method begins at RVA 0x11c0c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -24664,11 +24986,11 @@
 	IL_000e:  ret 
     } // end of method ProjectEntry::get_Project
 
-    // method line 503
+    // method line 411
     .method public hidebysig specialname 
            instance default void set_Project (class NAnt.VSNet.ProjectBase 'value')  cil managed 
     {
-        // Method begins at RVA 0x126c4
+        // Method begins at RVA 0x11c28
 	// Code size 90 (0x5a)
 	.maxstack 5
 	IL_0000:  nop 
@@ -24705,11 +25027,11 @@
 	IL_0059:  ret 
     } // end of method ProjectEntry::set_Project
 
-    // method line 504
+    // method line 412
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ConfigurationMap get_BuildConfigurations ()  cil managed 
     {
-        // Method begins at RVA 0x1272c
+        // Method begins at RVA 0x11c90
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -24724,11 +25046,11 @@
 	IL_000e:  ret 
     } // end of method ProjectEntry::get_BuildConfigurations
 
-    // method line 505
+    // method line 413
     .method public hidebysig specialname 
            instance default void set_BuildConfigurations (class NAnt.VSNet.ConfigurationMap 'value')  cil managed 
     {
-        // Method begins at RVA 0x12747
+        // Method begins at RVA 0x11cab
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -24767,11 +25089,11 @@
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 506
+    // method line 414
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x12751
+        // Method begins at RVA 0x11cb5
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -24780,11 +25102,11 @@
 	IL_0007:  ret 
     } // end of method ProjectEntryCollection::.ctor
 
-    // method line 507
+    // method line 415
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.ProjectEntryCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x1275a
+        // Method begins at RVA 0x11cbe
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -24796,11 +25118,11 @@
 	IL_000e:  ret 
     } // end of method ProjectEntryCollection::.ctor
 
-    // method line 508
+    // method line 416
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.ProjectEntry[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x1276a
+        // Method begins at RVA 0x11cce
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -24812,11 +25134,11 @@
 	IL_000e:  ret 
     } // end of method ProjectEntryCollection::.ctor
 
-    // method line 509
+    // method line 417
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ProjectEntry get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x1277c
+        // Method begins at RVA 0x11ce0
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -24834,11 +25156,11 @@
 	IL_0019:  ret 
     } // end of method ProjectEntryCollection::get_Item
 
-    // method line 510
+    // method line 418
     .method public hidebysig specialname 
            instance default void set_Item (int32 index, class NAnt.VSNet.ProjectEntry 'value')  cil managed 
     {
-        // Method begins at RVA 0x127a2
+        // Method begins at RVA 0x11d06
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -24850,11 +25172,11 @@
 	IL_000e:  ret 
     } // end of method ProjectEntryCollection::set_Item
 
-    // method line 511
+    // method line 419
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ProjectEntry get_Item (string guid)  cil managed 
     {
-        // Method begins at RVA 0x127b4
+        // Method begins at RVA 0x11d18
 	// Code size 92 (0x5c)
 	.maxstack 4
 	.locals init (
@@ -24909,11 +25231,11 @@
 	IL_005b:  ret 
     } // end of method ProjectEntryCollection::get_Item
 
-    // method line 512
+    // method line 420
     .method public hidebysig specialname 
            instance default void set_Item (string guid, class NAnt.VSNet.ProjectEntry 'value')  cil managed 
     {
-        // Method begins at RVA 0x1281c
+        // Method begins at RVA 0x11d80
 	// Code size 60 (0x3c)
 	.maxstack 8
 	IL_0000:  nop 
@@ -24945,11 +25267,11 @@
 	IL_003b:  ret 
     } // end of method ProjectEntryCollection::set_Item
 
-    // method line 513
+    // method line 421
     .method public hidebysig 
            instance default int32 Add (class NAnt.VSNet.ProjectEntry item)  cil managed 
     {
-        // Method begins at RVA 0x1285c
+        // Method begins at RVA 0x11dc0
 	// Code size 97 (0x61)
 	.maxstack 4
 	.locals init (
@@ -24993,11 +25315,11 @@
 	IL_0060:  ret 
     } // end of method ProjectEntryCollection::Add
 
-    // method line 514
+    // method line 422
     .method public hidebysig 
            instance default void AddRange (class NAnt.VSNet.ProjectEntry[] items)  cil managed 
     {
-        // Method begins at RVA 0x128cc
+        // Method begins at RVA 0x11e30
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -25028,11 +25350,11 @@
 	IL_0021:  ret 
     } // end of method ProjectEntryCollection::AddRange
 
-    // method line 515
+    // method line 423
     .method public hidebysig 
            instance default void AddRange (class NAnt.VSNet.ProjectEntryCollection items)  cil managed 
     {
-        // Method begins at RVA 0x128fc
+        // Method begins at RVA 0x11e60
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -25062,11 +25384,11 @@
 	IL_0028:  ret 
     } // end of method ProjectEntryCollection::AddRange
 
-    // method line 516
+    // method line 424
     .method public hidebysig 
            instance default bool Contains (class NAnt.VSNet.ProjectEntry item)  cil managed 
     {
-        // Method begins at RVA 0x12934
+        // Method begins at RVA 0x11e98
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -25083,11 +25405,11 @@
 	IL_0014:  ret 
     } // end of method ProjectEntryCollection::Contains
 
-    // method line 517
+    // method line 425
     .method public hidebysig 
            instance default bool Contains (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x12958
+        // Method begins at RVA 0x11ebc
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -25107,11 +25429,11 @@
 	IL_0015:  ret 
     } // end of method ProjectEntryCollection::Contains
 
-    // method line 518
+    // method line 426
     .method public hidebysig 
            instance default void CopyTo (class NAnt.VSNet.ProjectEntry[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x1297a
+        // Method begins at RVA 0x11ede
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -25123,11 +25445,11 @@
 	IL_000e:  ret 
     } // end of method ProjectEntryCollection::CopyTo
 
-    // method line 519
+    // method line 427
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.VSNet.ProjectEntry item)  cil managed 
     {
-        // Method begins at RVA 0x1298c
+        // Method begins at RVA 0x11ef0
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -25144,11 +25466,11 @@
 	IL_0014:  ret 
     } // end of method ProjectEntryCollection::IndexOf
 
-    // method line 520
+    // method line 428
     .method public hidebysig 
            instance default void Insert (int32 index, class NAnt.VSNet.ProjectEntry item)  cil managed 
     {
-        // Method begins at RVA 0x129ad
+        // Method begins at RVA 0x11f11
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -25160,11 +25482,11 @@
 	IL_000e:  ret 
     } // end of method ProjectEntryCollection::Insert
 
-    // method line 521
+    // method line 429
     .method public hidebysig 
            instance default class NAnt.VSNet.ProjectEntryEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x129c0
+        // Method begins at RVA 0x11f24
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -25179,11 +25501,11 @@
 	IL_000e:  ret 
     } // end of method ProjectEntryCollection::GetEnumerator
 
-    // method line 522
+    // method line 430
     .method public hidebysig 
            instance default void Remove (class NAnt.VSNet.ProjectEntry item)  cil managed 
     {
-        // Method begins at RVA 0x129db
+        // Method begins at RVA 0x11f3f
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -25214,11 +25536,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 523
+    // method line 431
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.ProjectEntryCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x129ec
+        // Method begins at RVA 0x11f50
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -25235,11 +25557,11 @@
 	IL_0015:  ret 
     } // end of method ProjectEntryEnumerator::.ctor
 
-    // method line 524
+    // method line 432
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ProjectEntry get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x12a10
+        // Method begins at RVA 0x11f74
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -25256,11 +25578,11 @@
 	IL_0018:  ret 
     } // end of method ProjectEntryEnumerator::get_Current
 
-    // method line 525
+    // method line 433
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x12a38
+        // Method begins at RVA 0x11f9c
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -25277,11 +25599,11 @@
 	IL_0013:  ret 
     } // end of method ProjectEntryEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 526
+    // method line 434
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x12a58
+        // Method begins at RVA 0x11fbc
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -25297,11 +25619,11 @@
 	IL_0013:  ret 
     } // end of method ProjectEntryEnumerator::MoveNext
 
-    // method line 527
+    // method line 435
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x12a78
+        // Method begins at RVA 0x11fdc
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -25318,11 +25640,11 @@
 	IL_0013:  ret 
     } // end of method ProjectEntryEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 528
+    // method line 436
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x12a98
+        // Method begins at RVA 0x11ffc
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -25332,11 +25654,11 @@
 	IL_000c:  ret 
     } // end of method ProjectEntryEnumerator::Reset
 
-    // method line 529
+    // method line 437
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x12aa6
+        // Method begins at RVA 0x1200a
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
@@ -25360,6 +25682,941 @@
 
 .namespace NAnt.VSNet
 {
+  .class public auto ansi sealed beforefieldinit ConfigurationMap
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IDictionary, [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
+
+    .field  private initonly  class [mscorlib]System.Collections.Hashtable _innerHash
+
+    // method line 438
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x12018
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0012:  ret 
+    } // end of method ConfigurationMap::.ctor
+
+    // method line 439
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (int32 capacity)  cil managed 
+    {
+        // Method begins at RVA 0x1202c
+	// Code size 20 (0x14)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable(int32)
+	IL_000e:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::.ctor
+
+    // method line 440
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_InnerHash ()  cil managed 
+    {
+        // Method begins at RVA 0x12044
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.Hashtable	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationMap::get_InnerHash
+
+    // method line 441
+    .method public hidebysig 
+           instance default class NAnt.VSNet.ConfigurationMapEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x12060
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.ConfigurationMapEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.VSNet.ConfigurationMapEnumerator::'.ctor'(class NAnt.VSNet.ConfigurationMap)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationMap::GetEnumerator
+
+    // method line 442
+    .method private final virtual hidebysig newslot 
+           instance default class [mscorlib]System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x1207c
+	.override class [mscorlib]System.Collections.IDictionary::GetEnumerator
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationMapEnumerator class NAnt.VSNet.ConfigurationMap::GetEnumerator()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationMap::System.Collections.IDictionary.GetEnumerator
+
+    // method line 443
+    .method private final virtual hidebysig newslot 
+           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x12098
+	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationMapEnumerator class NAnt.VSNet.ConfigurationMap::GetEnumerator()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationMap::System.Collections.IEnumerable.GetEnumerator
+
+    // method line 444
+    .method public hidebysig 
+           instance default void Remove (class NAnt.VSNet.Configuration configuration)  cil managed 
+    {
+        // Method begins at RVA 0x120b3
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
+	IL_000d:  ret 
+    } // end of method ConfigurationMap::Remove
+
+    // method line 445
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IDictionary.Remove (object key)  cil managed 
+    {
+        // Method begins at RVA 0x120c2
+	.override class [mscorlib]System.Collections.IDictionary::Remove
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass NAnt.VSNet.Configuration
+	IL_0008:  call instance void class NAnt.VSNet.ConfigurationMap::Remove(class NAnt.VSNet.Configuration)
+	IL_000d:  ret 
+    } // end of method ConfigurationMap::System.Collections.IDictionary.Remove
+
+    // method line 446
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.VSNet.Configuration key)  cil managed 
+    {
+        // Method begins at RVA 0x120d4
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ConfigurationMap::Contains
+
+    // method line 447
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IDictionary.Contains (object key)  cil managed 
+    {
+        // Method begins at RVA 0x120f8
+	.override class [mscorlib]System.Collections.IDictionary::Contains
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass NAnt.VSNet.Configuration
+	IL_0008:  call instance bool class NAnt.VSNet.ConfigurationMap::Contains(class NAnt.VSNet.Configuration)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ConfigurationMap::System.Collections.IDictionary.Contains
+
+    // method line 448
+    .method public final virtual hidebysig newslot 
+           instance default void Clear ()  cil managed 
+    {
+        // Method begins at RVA 0x12119
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Clear()
+	IL_000c:  ret 
+    } // end of method ConfigurationMap::Clear
+
+    // method line 449
+    .method public hidebysig 
+           instance default void Add (class NAnt.VSNet.Configuration key, class NAnt.VSNet.Configuration 'value')  cil managed 
+    {
+        // Method begins at RVA 0x12127
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_000e:  ret 
+    } // end of method ConfigurationMap::Add
+
+    // method line 450
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IDictionary.Add (object key, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x12137
+	.override class [mscorlib]System.Collections.IDictionary::Add
+	// Code size 20 (0x14)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass NAnt.VSNet.Configuration
+	IL_0008:  ldarg.2 
+	IL_0009:  castclass NAnt.VSNet.Configuration
+	IL_000e:  call instance void class NAnt.VSNet.ConfigurationMap::Add(class NAnt.VSNet.Configuration, class NAnt.VSNet.Configuration)
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::System.Collections.IDictionary.Add
+
+    // method line 451
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsReadOnly ()  cil managed 
+    {
+        // Method begins at RVA 0x1214c
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsReadOnly()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::get_IsReadOnly
+
+    // method line 452
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.Configuration get_Item (class NAnt.VSNet.Configuration key)  cil managed 
+    {
+        // Method begins at RVA 0x1216c
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.VSNet.Configuration	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_000d:  castclass NAnt.VSNet.Configuration
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ConfigurationMap::get_Item
+
+    // method line 453
+    .method public hidebysig specialname 
+           instance default void set_Item (class NAnt.VSNet.Configuration key, class NAnt.VSNet.Configuration 'value')  cil managed 
+    {
+        // Method begins at RVA 0x12192
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_000e:  ret 
+    } // end of method ConfigurationMap::set_Item
+
+    // method line 454
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionary.get_Item (object key)  cil managed 
+    {
+        // Method begins at RVA 0x121a4
+	.override class [mscorlib]System.Collections.IDictionary::get_Item
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass NAnt.VSNet.Configuration
+	IL_0008:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMap::get_Item(class NAnt.VSNet.Configuration)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ConfigurationMap::System.Collections.IDictionary.get_Item
+
+    // method line 455
+    .method private final virtual hidebysig newslot specialname 
+           instance default void System.Collections.IDictionary.set_Item (object key, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x121c5
+	.override class [mscorlib]System.Collections.IDictionary::set_Item
+	// Code size 20 (0x14)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass NAnt.VSNet.Configuration
+	IL_0008:  ldarg.2 
+	IL_0009:  castclass NAnt.VSNet.Configuration
+	IL_000e:  call instance void class NAnt.VSNet.ConfigurationMap::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.Configuration)
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::System.Collections.IDictionary.set_Item
+
+    // method line 456
+    .method public final virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.Collections.ICollection get_Values ()  cil managed 
+    {
+        // Method begins at RVA 0x121dc
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.ICollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Values()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::get_Values
+
+    // method line 457
+    .method public final virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.Collections.ICollection get_Keys ()  cil managed 
+    {
+        // Method begins at RVA 0x121fc
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.ICollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::get_Keys
+
+    // method line 458
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsFixedSize ()  cil managed 
+    {
+        // Method begins at RVA 0x1221c
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsFixedSize()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::get_IsFixedSize
+
+    // method line 459
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.ICollection.CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x1223c
+	.override class [mscorlib]System.Collections.ICollection::CopyTo
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method ConfigurationMap::System.Collections.ICollection.CopyTo
+
+    // method line 460
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsSynchronized ()  cil managed 
+    {
+        // Method begins at RVA 0x1224c
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsSynchronized()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::get_IsSynchronized
+
+    // method line 461
+    .method public final virtual hidebysig newslot specialname 
+           instance default int32 get_Count ()  cil managed 
+    {
+        // Method begins at RVA 0x1226c
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::get_Count
+
+    // method line 462
+    .method public final virtual hidebysig newslot specialname 
+           instance default object get_SyncRoot ()  cil managed 
+    {
+        // Method begins at RVA 0x1228c
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::_innerHash
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_SyncRoot()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMap::get_SyncRoot
+
+	.property instance object System.Collections.IDictionary.Item (object)
+	{
+		.get instance default object NAnt.VSNet.ConfigurationMap::System.Collections.IDictionary.get_Item (object key) 
+		.set instance default void NAnt.VSNet.ConfigurationMap::System.Collections.IDictionary.set_Item (object key, object 'value') 
+	}
+	.property instance class [mscorlib]System.Collections.Hashtable InnerHash ()
+	{
+		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationMap::get_InnerHash () 
+	}
+	.property instance bool IsReadOnly ()
+	{
+		.get instance default bool NAnt.VSNet.ConfigurationMap::get_IsReadOnly () 
+	}
+	.property instance class NAnt.VSNet.Configuration Item (class NAnt.VSNet.Configuration)
+	{
+		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMap::get_Item (class NAnt.VSNet.Configuration key) 
+		.set instance default void NAnt.VSNet.ConfigurationMap::set_Item (class NAnt.VSNet.Configuration key, class NAnt.VSNet.Configuration 'value') 
+	}
+	.property instance class [mscorlib]System.Collections.ICollection Values ()
+	{
+		.get instance default class [mscorlib]System.Collections.ICollection NAnt.VSNet.ConfigurationMap::get_Values () 
+	}
+	.property instance class [mscorlib]System.Collections.ICollection Keys ()
+	{
+		.get instance default class [mscorlib]System.Collections.ICollection NAnt.VSNet.ConfigurationMap::get_Keys () 
+	}
+	.property instance bool IsFixedSize ()
+	{
+		.get instance default bool NAnt.VSNet.ConfigurationMap::get_IsFixedSize () 
+	}
+	.property instance bool IsSynchronized ()
+	{
+		.get instance default bool NAnt.VSNet.ConfigurationMap::get_IsSynchronized () 
+	}
+	.property instance int32 Count ()
+	{
+		.get instance default int32 NAnt.VSNet.ConfigurationMap::get_Count () 
+	}
+	.property instance object SyncRoot ()
+	{
+		.get instance default object NAnt.VSNet.ConfigurationMap::get_SyncRoot () 
+	}
+  } // end of class NAnt.VSNet.ConfigurationMap
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit ConfigurationMapEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IDictionaryEnumerator, [mscorlib]System.Collections.IEnumerator  {
+    .field  private initonly  class [mscorlib]System.Collections.IDictionaryEnumerator _innerEnumerator
+
+    // method line 463
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ConfigurationMap enumerable)  cil managed 
+    {
+        // Method begins at RVA 0x122ac
+	// Code size 25 (0x19)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ConfigurationMap::get_InnerHash()
+	IL_000e:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_0013:  stfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationMapEnumerator::_innerEnumerator
+	IL_0018:  ret 
+    } // end of method ConfigurationMapEnumerator::.ctor
+
+    // method line 464
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.Configuration get_Key ()  cil managed 
+    {
+        // Method begins at RVA 0x122c8
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.Configuration	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationMapEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key()
+	IL_000c:  castclass NAnt.VSNet.Configuration
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ConfigurationMapEnumerator::get_Key
+
+    // method line 465
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionaryEnumerator.get_Key ()  cil managed 
+    {
+        // Method begins at RVA 0x122f0
+	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEnumerator::get_Key()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationMapEnumerator::System.Collections.IDictionaryEnumerator.get_Key
+
+    // method line 466
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.Configuration get_Value ()  cil managed 
+    {
+        // Method begins at RVA 0x1230c
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.Configuration	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationMapEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value()
+	IL_000c:  castclass NAnt.VSNet.Configuration
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ConfigurationMapEnumerator::get_Value
+
+    // method line 467
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionaryEnumerator.get_Value ()  cil managed 
+    {
+        // Method begins at RVA 0x12334
+	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEnumerator::get_Value()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationMapEnumerator::System.Collections.IDictionaryEnumerator.get_Value
+
+    // method line 468
+    .method public final virtual hidebysig newslot specialname 
+           instance default valuetype [mscorlib]System.Collections.DictionaryEntry get_Entry ()  cil managed 
+    {
+        // Method begins at RVA 0x12350
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEnumerator::get_Key()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEnumerator::get_Value()
+	IL_000d:  newobj instance void valuetype [mscorlib]System.Collections.DictionaryEntry::'.ctor'(object, object)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ConfigurationMapEnumerator::get_Entry
+
+    // method line 469
+    .method public final virtual hidebysig newslot 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x12376
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationMapEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method ConfigurationMapEnumerator::Reset
+
+    // method line 470
+    .method public final virtual hidebysig newslot 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x12384
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationMapEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationMapEnumerator::MoveNext
+
+    // method line 471
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x123a4
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationMapEntry class NAnt.VSNet.ConfigurationMapEnumerator::get_Current()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationMapEnumerator::System.Collections.IEnumerator.get_Current
+
+    // method line 472
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ConfigurationMapEntry get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x123c0
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.VSNet.ConfigurationMapEntry	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEnumerator::get_Key()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationMapEnumerator::get_Value()
+	IL_000d:  newobj instance void class NAnt.VSNet.ConfigurationMapEntry::'.ctor'(class NAnt.VSNet.Configuration, class NAnt.VSNet.Configuration)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ConfigurationMapEnumerator::get_Current
+
+	.property instance object System.Collections.IDictionaryEnumerator.Key ()
+	{
+		.get instance default object NAnt.VSNet.ConfigurationMapEnumerator::System.Collections.IDictionaryEnumerator.get_Key () 
+	}
+	.property instance object System.Collections.IDictionaryEnumerator.Value ()
+	{
+		.get instance default object NAnt.VSNet.ConfigurationMapEnumerator::System.Collections.IDictionaryEnumerator.get_Value () 
+	}
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.VSNet.ConfigurationMapEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.VSNet.Configuration Key ()
+	{
+		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEnumerator::get_Key () 
+	}
+	.property instance class NAnt.VSNet.Configuration Value ()
+	{
+		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEnumerator::get_Value () 
+	}
+	.property instance valuetype [mscorlib]System.Collections.DictionaryEntry Entry ()
+	{
+		.get instance default valuetype [mscorlib]System.Collections.DictionaryEntry NAnt.VSNet.ConfigurationMapEnumerator::get_Entry () 
+	}
+	.property instance class NAnt.VSNet.ConfigurationMapEntry Current ()
+	{
+		.get instance default class NAnt.VSNet.ConfigurationMapEntry NAnt.VSNet.ConfigurationMapEnumerator::get_Current () 
+	}
+  } // end of class NAnt.VSNet.ConfigurationMapEnumerator
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi sealed beforefieldinit ConfigurationMapEntry
+  	extends [mscorlib]System.Object
+  {
+    .field  private initonly  class NAnt.VSNet.Configuration _key
+    .field  private initonly  class NAnt.VSNet.Configuration _value
+
+    // method line 473
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.Configuration key, class NAnt.VSNet.Configuration 'value')  cil managed 
+    {
+        // Method begins at RVA 0x123e6
+	// Code size 22 (0x16)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEntry::_key
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.2 
+	IL_0010:  stfld class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEntry::_value
+	IL_0015:  ret 
+    } // end of method ConfigurationMapEntry::.ctor
+
+    // method line 474
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.Configuration get_Key ()  cil managed 
+    {
+        // Method begins at RVA 0x12400
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.Configuration	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEntry::_key
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationMapEntry::get_Key
+
+    // method line 475
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.Configuration get_Value ()  cil managed 
+    {
+        // Method begins at RVA 0x1241c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.Configuration	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEntry::_value
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationMapEntry::get_Value
+
+	.property instance class NAnt.VSNet.Configuration Key ()
+	{
+		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEntry::get_Key () 
+	}
+	.property instance class NAnt.VSNet.Configuration Value ()
+	{
+		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationMapEntry::get_Value () 
+	}
+  } // end of class NAnt.VSNet.ConfigurationMapEntry
+}
+
+.namespace NAnt.VSNet
+{
+  .class private auto ansi beforefieldinit JSharpProjectProvider
+  	extends [mscorlib]System.Object
+  	implements NAnt.VSNet.Extensibility.IProjectBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+
+    // method line 476
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x12437
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method JSharpProjectProvider::.ctor
+
+    // method line 477
+    .method public final virtual hidebysig newslot 
+           instance default int32 IsSupported (string projectExt, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    {
+        // Method begins at RVA 0x12440
+	// Code size 52 (0x34)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr ".vjsproj"
+	IL_0007:  call bool string::op_Equality(string, string)
+	IL_000c:  brfalse IL_0018
+
+	IL_0011:  ldc.i4.5 
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0032
+
+	IL_0018:  ldarg.2 
+	IL_0019:  call bool class NAnt.VSNet.JSharpProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
+	IL_001e:  brfalse IL_002b
+
+	IL_0023:  ldc.i4.s 0x0a
+	IL_0025:  stloc.0 
+	IL_0026:  br IL_0032
+
+	IL_002b:  ldc.i4.0 
+	IL_002c:  stloc.0 
+	IL_002d:  br IL_0032
+
+	IL_0032:  ldloc.0 
+	IL_0033:  ret 
+    } // end of method JSharpProjectProvider::IsSupported
+
+    // method line 478
+    .method public final virtual hidebysig newslot 
+           instance default class NAnt.VSNet.ProjectBase GetInstance (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
+    {
+        // Method begins at RVA 0x12480
+	// Code size 27 (0x1b)
+	.maxstack 8
+	.locals init (
+		class NAnt.VSNet.ProjectBase	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  ldarg.s 4
+	IL_0006:  ldarg.s 5
+	IL_0008:  ldarg.s 6
+	IL_000a:  ldarg.s 7
+	IL_000c:  ldarg.s 8
+	IL_000e:  newobj instance void class NAnt.VSNet.JSharpProject::'.ctor'(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0019
+
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method JSharpProjectProvider::GetInstance
+
+    // method line 479
+    .method public final virtual hidebysig newslot 
+           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    {
+        // Method begins at RVA 0x124a8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call string class NAnt.VSNet.ManagedProjectBase::LoadGuid(class [System.Xml]System.Xml.XmlElement)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method JSharpProjectProvider::LoadGuid
+
+  } // end of class NAnt.VSNet.JSharpProjectProvider
+}
+
+.namespace NAnt.VSNet
+{
   .class public auto ansi abstract beforefieldinit SolutionBase
   	extends [mscorlib]System.Object
   {
@@ -25372,11 +26629,11 @@
     .field  private initonly  class [mscorlib]System.IO.DirectoryInfo _outputDir
     .field  private initonly  class [System]System.CodeDom.Compiler.TempFileCollection _tfc
 
-    // method line 530
+    // method line 480
     .method family hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver)  cil managed 
     {
-        // Method begins at RVA 0x2050
+        // Method begins at RVA 0x25f4
 	// Code size 102 (0x66)
 	.maxstack 4
 	IL_0000:  ldarg.0 
@@ -25420,11 +26677,11 @@
 	IL_0065:  ret 
     } // end of method SolutionBase::.ctor
 
-    // method line 531
+    // method line 481
     .method private hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [System]System.CodeDom.Compiler.TempFileCollection tfc, class NAnt.VSNet.Tasks.SolutionTask solutionTask)  cil managed 
     {
-        // Method begins at RVA 0x20c4
+        // Method begins at RVA 0x2668
 	// Code size 79 (0x4f)
 	.maxstack 2
 	IL_0000:  ldarg.0 
@@ -25456,11 +26713,11 @@
 	IL_004e:  ret 
     } // end of method SolutionBase::.ctor
 
-    // method line 532
+    // method line 482
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_File ()  cil managed 
     {
-        // Method begins at RVA 0x2120
+        // Method begins at RVA 0x26c4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -25475,11 +26732,11 @@
 	IL_000e:  ret 
     } // end of method SolutionBase::get_File
 
-    // method line 533
+    // method line 483
     .method public hidebysig specialname 
            instance default class [System]System.CodeDom.Compiler.TempFileCollection get_TemporaryFiles ()  cil managed 
     {
-        // Method begins at RVA 0x213c
+        // Method begins at RVA 0x26e0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -25494,11 +26751,11 @@
 	IL_000e:  ret 
     } // end of method SolutionBase::get_TemporaryFiles
 
-    // method line 534
+    // method line 484
     .method family hidebysig specialname 
            instance default class NAnt.VSNet.Types.WebMapCollection get_WebMaps ()  cil managed 
     {
-        // Method begins at RVA 0x2158
+        // Method begins at RVA 0x26fc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -25513,11 +26770,11 @@
 	IL_000e:  ret 
     } // end of method SolutionBase::get_WebMaps
 
-    // method line 535
+    // method line 485
     .method public hidebysig specialname 
            instance default class NAnt.VSNet.ProjectEntryCollection get_ProjectEntries ()  cil managed 
     {
-        // Method begins at RVA 0x2174
+        // Method begins at RVA 0x2718
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -25532,11 +26789,11 @@
 	IL_000e:  ret 
     } // end of method SolutionBase::get_ProjectEntries
 
-    // method line 536
+    // method line 486
     .method public hidebysig 
            instance default void RecursiveLoadTemplateProject (string fileName)  cil managed 
     {
-        // Method begins at RVA 0x2190
+        // Method begins at RVA 0x2734
 	// Code size 494 (0x1ee)
 	.maxstack 7
 	.locals init (
@@ -25747,11 +27004,11 @@
 	IL_01ed:  ret 
     } // end of method SolutionBase::RecursiveLoadTemplateProject
 
-    // method line 537
+    // method line 487
     .method public hidebysig 
            instance default string GetProjectFileFromGuid (string projectGuid)  cil managed 
     {
-        // Method begins at RVA 0x23c0
+        // Method begins at RVA 0x2964
 	// Code size 62 (0x3e)
 	.maxstack 3
 	.locals init (
@@ -25783,11 +27040,11 @@
 	IL_003d:  ret 
     } // end of method SolutionBase::GetProjectFileFromGuid
 
-    // method line 538
+    // method line 488
     .method public hidebysig 
            instance default class NAnt.VSNet.ProjectBase GetProjectFromGuid (string projectGuid)  cil managed 
     {
-        // Method begins at RVA 0x240c
+        // Method begins at RVA 0x29b0
 	// Code size 73 (0x49)
 	.maxstack 3
 	.locals init (
@@ -25823,11 +27080,11 @@
 	IL_0048:  ret 
     } // end of method SolutionBase::GetProjectFromGuid
 
-    // method line 539
+    // method line 489
     .method public hidebysig 
            instance default bool Compile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x2464
+        // Method begins at RVA 0x2a08
 	// Code size 765 (0x2fd)
 	.maxstack 7
 	.locals init (
@@ -26166,11 +27423,11 @@
 	IL_02fc:  ret 
     } // end of method SolutionBase::Compile
 
-    // method line 540
+    // method line 490
     .method family hidebysig 
            instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message)  cil managed 
     {
-        // Method begins at RVA 0x27ec
+        // Method begins at RVA 0x2d90
 	// Code size 28 (0x1c)
 	.maxstack 8
 	IL_0000:  nop 
@@ -26188,14 +27445,14 @@
 	IL_001b:  ret 
     } // end of method SolutionBase::Log
 
-    // method line 541
+    // method line 491
     .method family hidebysig 
            instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
     {
 	.param [3]
 	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-        // Method begins at RVA 0x2809
+        // Method begins at RVA 0x2dad
 	// Code size 29 (0x1d)
 	.maxstack 8
 	IL_0000:  nop 
@@ -26214,11 +27471,11 @@
 	IL_001c:  ret 
     } // end of method SolutionBase::Log
 
-    // method line 542
+    // method line 492
     .method family hidebysig 
            instance default void LoadProjectGuids (class [mscorlib]System.Collections.ArrayList projects, bool isReferenceProject)  cil managed 
     {
-        // Method begins at RVA 0x2828
+        // Method begins at RVA 0x2dcc
 	// Code size 172 (0xac)
 	.maxstack 5
 	.locals init (
@@ -26301,11 +27558,11 @@
 	IL_00ab:  ret 
     } // end of method SolutionBase::LoadProjectGuids
 
-    // method line 543
+    // method line 493
     .method family hidebysig 
            instance default void LoadProjects (class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.Collections.Hashtable explicitProjectDependencies)  cil managed 
     {
-        // Method begins at RVA 0x28f0
+        // Method begins at RVA 0x2e94
 	// Code size 822 (0x336)
 	.maxstack 8
 	.locals init (
@@ -26658,11 +27915,11 @@
 	IL_0335:  ret 
     } // end of method SolutionBase::LoadProjects
 
-    // method line 544
+    // method line 494
     .method family hidebysig 
            instance default void GetDependenciesFromProjects (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x2c98
+        // Method begins at RVA 0x323c
 	// Code size 770 (0x302)
 	.maxstack 3
 	.locals init (
@@ -27000,11 +28257,11 @@
 	IL_0301:  ret 
     } // end of method SolutionBase::GetDependenciesFromProjects
 
-    // method line 545
+    // method line 495
     .method family hidebysig 
            instance default string TranslateProjectPath (string solutionDir, string projectPath)  cil managed 
     {
-        // Method begins at RVA 0x3024
+        // Method begins at RVA 0x35c8
 	// Code size 269 (0x10d)
 	.maxstack 7
 	.locals init (
@@ -27138,11 +28395,11 @@
 	IL_010c:  ret 
     } // end of method SolutionBase::TranslateProjectPath
 
-    // method line 546
+    // method line 496
     .method family hidebysig 
            instance default bool FixProjectReferences (class NAnt.VSNet.ProjectBase project, class NAnt.VSNet.Configuration solutionConfiguration, class [mscorlib]System.Collections.Hashtable builtProjects, class [mscorlib]System.Collections.Hashtable failedProjects)  cil managed 
     {
-        // Method begins at RVA 0x3150
+        // Method begins at RVA 0x36f4
 	// Code size 685 (0x2ad)
 	.maxstack 7
 	.locals init (
@@ -27434,11 +28691,11 @@
 	IL_02ac:  ret 
     } // end of method SolutionBase::FixProjectReferences
 
-    // method line 547
+    // method line 497
     .method family hidebysig 
            instance default class [NAnt.Core]NAnt.Core.BuildException CreateProjectDoesNotExistException (string projectPath)  cil managed 
     {
-        // Method begins at RVA 0x3440
+        // Method begins at RVA 0x39e4
 	// Code size 30 (0x1e)
 	.maxstack 3
 	.locals init (
@@ -27456,11 +28713,11 @@
 	IL_001d:  ret 
     } // end of method SolutionBase::CreateProjectDoesNotExistException
 
-    // method line 548
+    // method line 498
     .method family virtual hidebysig newslot 
            instance default void SetProjectBuildConfiguration (class NAnt.VSNet.ProjectEntry projectEntry)  cil managed 
     {
-        // Method begins at RVA 0x346c
+        // Method begins at RVA 0x3a10
 	// Code size 263 (0x107)
 	.maxstack 3
 	.locals init (
@@ -27588,11 +28845,11 @@
 	IL_0106:  ret 
     } // end of method SolutionBase::SetProjectBuildConfiguration
 
-    // method line 549
+    // method line 499
     .method private hidebysig 
            instance default bool HasDirtyProjectDependency (class NAnt.VSNet.ProjectBase project, class [mscorlib]System.Collections.Hashtable builtProjects)  cil managed 
     {
-        // Method begins at RVA 0x359c
+        // Method begins at RVA 0x3b40
 	// Code size 98 (0x62)
 	.maxstack 2
 	.locals init (
@@ -27651,11 +28908,11 @@
 	IL_0061:  ret 
     } // end of method SolutionBase::HasDirtyProjectDependency
 
-    // method line 550
+    // method line 500
     .method private hidebysig 
            instance default string FindGuidFromPath (string projectPath)  cil managed 
     {
-        // Method begins at RVA 0x361c
+        // Method begins at RVA 0x3bc0
 	// Code size 113 (0x71)
 	.maxstack 4
 	.locals init (
@@ -27738,1207 +28995,1251 @@
 
 .namespace NAnt.VSNet
 {
-  .class private auto ansi beforefieldinit JSharpProjectProvider
-  	extends [mscorlib]System.Object
-  	implements NAnt.VSNet.Extensibility.IProjectBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+  .class public auto ansi beforefieldinit VcAssemblyReference
+  	extends NAnt.VSNet.AssemblyReferenceBase
+  {
+    .field  private  string _assemblyFile
+    .field  private initonly  bool _isPrivateSpecified
+    .field  private initonly  bool _isPrivate
+    .field  private initonly  string _name
+    .field  private initonly  class [System]System.Text.RegularExpressions.Regex _rxMacro
 
-    // method line 551
+    // method line 501
     .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x12ab4
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method JSharpProjectProvider::.ctor
-
-    // method line 552
-    .method public final virtual hidebysig newslot 
-           instance default int32 IsSupported (string projectExt, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache)  cil managed 
     {
-        // Method begins at RVA 0x12abc
-	// Code size 52 (0x34)
-	.maxstack 2
+        // Method begins at RVA 0x124c4
+	// Code size 148 (0x94)
+	.maxstack 5
 	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr ".vjsproj"
-	IL_0007:  call bool string::op_Equality(string, string)
-	IL_000c:  brfalse IL_0018
-
-	IL_0011:  ldc.i4.5 
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0032
-
-	IL_0018:  ldarg.2 
-	IL_0019:  call bool class NAnt.VSNet.JSharpProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
-	IL_001e:  brfalse IL_002b
-
-	IL_0023:  ldc.i4.s 0x0a
-	IL_0025:  stloc.0 
-	IL_0026:  br IL_0032
-
-	IL_002b:  ldc.i4.0 
-	IL_002c:  stloc.0 
-	IL_002d:  br IL_0032
-
-	IL_0032:  ldloc.0 
-	IL_0033:  ret 
-    } // end of method JSharpProjectProvider::IsSupported
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		class [System.Xml]System.Xml.XmlAttribute	V_1)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldsfld string [mscorlib]System.String::Empty
+	IL_0006:  stfld string NAnt.VSNet.VcAssemblyReference::_name
+	IL_000b:  ldarg.0 
+	IL_000c:  ldstr "\\$\\((\\w+)\\)"
+	IL_0011:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string)
+	IL_0016:  stfld class [System]System.Text.RegularExpressions.Regex NAnt.VSNet.VcAssemblyReference::_rxMacro
+	IL_001b:  ldarg.0 
+	IL_001c:  ldarg.1 
+	IL_001d:  ldarg.2 
+	IL_001e:  ldarg.3 
+	IL_001f:  ldarg.s 4
+	IL_0021:  call instance void class NAnt.VSNet.AssemblyReferenceBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
+	IL_0026:  nop 
+	IL_0027:  ldarg.1 
+	IL_0028:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_002d:  ldstr "CopyLocal"
+	IL_0032:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0037:  stloc.0 
+	IL_0038:  ldloc.0 
+	IL_0039:  brfalse IL_0058
 
-    // method line 553
-    .method public final virtual hidebysig newslot 
-           instance default class NAnt.VSNet.ProjectBase GetInstance (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
-    {
-        // Method begins at RVA 0x12afc
-	// Code size 27 (0x1b)
-	.maxstack 8
-	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  ldarg.s 4
-	IL_0006:  ldarg.s 5
-	IL_0008:  ldarg.s 6
-	IL_000a:  ldarg.s 7
-	IL_000c:  ldarg.s 8
-	IL_000e:  newobj instance void class NAnt.VSNet.JSharpProject::'.ctor'(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0019
+	IL_003e:  nop 
+	IL_003f:  ldarg.0 
+	IL_0040:  ldc.i4.1 
+	IL_0041:  stfld bool NAnt.VSNet.VcAssemblyReference::_isPrivateSpecified
+	IL_0046:  ldarg.0 
+	IL_0047:  ldloc.0 
+	IL_0048:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_004d:  call bool bool::Parse(string)
+	IL_0052:  stfld bool NAnt.VSNet.VcAssemblyReference::_isPrivate
+	IL_0057:  nop 
+	IL_0058:  ldarg.0 
+	IL_0059:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
+	IL_005e:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0063:  ldstr "RelativePath"
+	IL_0068:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_006d:  stloc.1 
+	IL_006e:  ldloc.1 
+	IL_006f:  brfalse IL_0087
 
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method JSharpProjectProvider::GetInstance
+	IL_0074:  nop 
+	IL_0075:  ldarg.0 
+	IL_0076:  ldloc.1 
+	IL_0077:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_007c:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_0081:  stfld string NAnt.VSNet.VcAssemblyReference::_name
+	IL_0086:  nop 
+	IL_0087:  ldarg.0 
+	IL_0088:  ldarg.0 
+	IL_0089:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
+	IL_008e:  stfld string NAnt.VSNet.VcAssemblyReference::_assemblyFile
+	IL_0093:  ret 
+    } // end of method VcAssemblyReference::.ctor
 
-    // method line 554
-    .method public final virtual hidebysig newslot 
-           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    // method line 502
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsPrivate ()  cil managed 
     {
-        // Method begins at RVA 0x12b24
+        // Method begins at RVA 0x12564
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call string class NAnt.VSNet.ManagedProjectBase::LoadGuid(class [System.Xml]System.Xml.XmlElement)
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VSNet.VcAssemblyReference::_isPrivate
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method JSharpProjectProvider::LoadGuid
-
-  } // end of class NAnt.VSNet.JSharpProjectProvider
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit ReferencesResolver
-  	extends [mscorlib]System.MarshalByRefObject
-  {
-
-    // method line 555
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x12b3f
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [mscorlib]System.MarshalByRefObject::'.ctor'()
-	IL_0006:  ret 
-    } // end of method ReferencesResolver::.ctor
+    } // end of method VcAssemblyReference::get_IsPrivate
 
-    // method line 556
-    .method public virtual hidebysig 
-           instance default object InitializeLifetimeService ()  cil managed 
+    // method line 503
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsPrivateSpecified ()  cil managed 
     {
-        // Method begins at RVA 0x12b48
-	// Code size 47 (0x2f)
-	.maxstack 2
+        // Method begins at RVA 0x12580
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Runtime.Remoting.Lifetime.ILease	V_0,
-		object	V_1)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance object class [mscorlib]System.MarshalByRefObject::InitializeLifetimeService()
-	IL_0007:  castclass [mscorlib]System.Runtime.Remoting.Lifetime.ILease
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  callvirt instance valuetype [mscorlib]System.Runtime.Remoting.Lifetime.LeaseState class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::get_CurrentState()
-	IL_0013:  ldc.i4.1 
-	IL_0014:  bne.un IL_0026
-
-	IL_0019:  nop 
-	IL_001a:  ldloc.0 
-	IL_001b:  ldsfld valuetype [mscorlib]System.TimeSpan [mscorlib]System.TimeSpan::Zero
-	IL_0020:  callvirt instance void class [mscorlib]System.Runtime.Remoting.Lifetime.ILease::set_InitialLeaseTime(valuetype [mscorlib]System.TimeSpan)
-	IL_0025:  nop 
-	IL_0026:  ldloc.0 
-	IL_0027:  stloc.1 
-	IL_0028:  br IL_002d
+	IL_0002:  ldfld bool NAnt.VSNet.VcAssemblyReference::_isPrivateSpecified
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_002d:  ldloc.1 
-	IL_002e:  ret 
-    } // end of method ReferencesResolver::InitializeLifetimeService
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcAssemblyReference::get_IsPrivateSpecified
 
-    // method line 557
-    .method public hidebysig 
-           instance default void AppendReferencedModulesLocatedInGivenDirectory (string moduleDirectory, string moduleName, class [mscorlib]System.Collections.Hashtable& allReferences, class [mscorlib]System.Collections.Hashtable& unresolvedReferences)  cil managed 
+    // method line 504
+    .method family virtual hidebysig 
+           instance default string ResolveAssemblyReference ()  cil managed 
     {
-        // Method begins at RVA 0x12b84
-	// Code size 139 (0x8b)
-	.maxstack 3
+        // Method begins at RVA 0x1259c
+	// Code size 215 (0xd7)
+	.maxstack 4
 	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0,
-		class [mscorlib]System.Reflection.AssemblyName[]	V_1,
-		class [mscorlib]System.Reflection.AssemblyName	V_2,
-		class [mscorlib]System.Reflection.AssemblyName[]	V_3,
-		int32	V_4,
-		string	V_5)
+		string	V_0,
+		class [System.Xml]System.Xml.XmlElement	V_1,
+		string	V_2,
+		string	V_3,
+		string	V_4)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	.try { // 0
-	  IL_0003:  nop 
-	  IL_0004:  ldarg.2 
-	  IL_0005:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFrom(string)
-	  IL_000a:  stloc.0 
-	  IL_000b:  nop 
-	  IL_000c:  leave IL_0018
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.VcAssemblyReference::_assemblyFile
+	IL_0007:  brfalse IL_002b
 
-	} // end .try 0
-	catch class [mscorlib]System.IO.FileLoadException { // 0
-	  IL_0011:  pop 
-	  IL_0012:  nop 
-	  IL_0013:  leave IL_008a
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld string NAnt.VSNet.VcAssemblyReference::_assemblyFile
+	IL_0013:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0018:  brfalse IL_002a
 
-	} // end handler 0
-	IL_0018:  ldloc.0 
-	IL_0019:  callvirt instance class [mscorlib]System.Reflection.AssemblyName[] class [mscorlib]System.Reflection.Assembly::GetReferencedAssemblies()
-	IL_001e:  stloc.1 
-	IL_001f:  nop 
-	IL_0020:  ldloc.1 
-	IL_0021:  stloc.3 
-	IL_0022:  ldc.i4.0 
-	IL_0023:  stloc.s 4
-	IL_0025:  br IL_0080
+	IL_001d:  nop 
+	IL_001e:  ldarg.0 
+	IL_001f:  ldfld string NAnt.VSNet.VcAssemblyReference::_assemblyFile
+	IL_0024:  stloc.0 
+	IL_0025:  br IL_00d5
 
-	IL_002a:  ldloc.3 
-	IL_002b:  ldloc.s 4
-	IL_002d:  ldelem.ref 
-	IL_002e:  stloc.2 
-	IL_002f:  nop 
-	IL_0030:  ldarg.1 
-	IL_0031:  ldloc.2 
-	IL_0032:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_Name()
-	IL_0037:  ldstr ".dll"
-	IL_003c:  call string string::Concat(string, string)
-	IL_0041:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0046:  stloc.s 5
-	IL_0048:  ldloc.s 5
-	IL_004a:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_004f:  brfalse IL_0079
+	IL_002a:  nop 
+	IL_002b:  ldarg.0 
+	IL_002c:  call instance class [System.Xml]System.Xml.XmlElement class NAnt.VSNet.FileReferenceBase::get_XmlDefinition()
+	IL_0031:  stloc.1 
+	IL_0032:  ldnull 
+	IL_0033:  stloc.2 
+	IL_0034:  ldloc.1 
+	IL_0035:  ldstr "RelativePath"
+	IL_003a:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_003f:  stloc.3 
+	IL_0040:  ldloc.3 
+	IL_0041:  brtrue IL_0057
 
-	IL_0054:  ldarg.3 
-	IL_0055:  ldind.ref 
-	IL_0056:  ldloc.s 5
-	IL_0058:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	IL_005d:  brtrue IL_0079
+	IL_0046:  nop 
+	IL_0047:  ldstr "For Visual C++ projects only assembly references using relative paths are supported."
+	IL_004c:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0051:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0056:  throw 
+	IL_0057:  nop 
+	IL_0058:  ldarg.0 
+	IL_0059:  ldfld class [System]System.Text.RegularExpressions.Regex NAnt.VSNet.VcAssemblyReference::_rxMacro
+	IL_005e:  ldloc.3 
+	IL_005f:  ldarg.0 
+	IL_0060:  ldftn instance string class NAnt.VSNet.VcAssemblyReference::EvaluateMacro(class [System]System.Text.RegularExpressions.Match)
+	IL_0066:  newobj instance void class [System]System.Text.RegularExpressions.MatchEvaluator::'.ctor'(object, native int)
+	IL_006b:  callvirt instance string class [System]System.Text.RegularExpressions.Regex::Replace(string, class [System]System.Text.RegularExpressions.MatchEvaluator)
+	IL_0070:  stloc.2 
+	IL_0071:  ldloc.2 
+	IL_0072:  ldstr "{ReferencesPath}\\"
+	IL_0077:  ldsfld string [mscorlib]System.String::Empty
+	IL_007c:  callvirt instance string string::Replace(string, string)
+	IL_0081:  stloc.2 
+	IL_0082:  nop 
+	IL_0083:  ldloc.2 
+	IL_0084:  call bool class [mscorlib]System.IO.Path::IsPathRooted(string)
+	IL_0089:  brfalse IL_0096
 
-	IL_0062:  nop 
-	IL_0063:  ldarg.3 
-	IL_0064:  ldind.ref 
-	IL_0065:  ldloc.s 5
-	IL_0067:  ldnull 
-	IL_0068:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_006d:  ldarg.s 4
-	IL_006f:  ldind.ref 
-	IL_0070:  ldloc.s 5
-	IL_0072:  ldnull 
-	IL_0073:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_0078:  nop 
-	IL_0079:  nop 
-	IL_007a:  ldloc.s 4
-	IL_007c:  ldc.i4.1 
-	IL_007d:  add 
-	IL_007e:  stloc.s 4
-	IL_0080:  ldloc.s 4
-	IL_0082:  ldloc.3 
-	IL_0083:  ldlen 
-	IL_0084:  conv.i4 
-	IL_0085:  blt IL_002a
+	IL_008e:  nop 
+	IL_008f:  ldloc.2 
+	IL_0090:  stloc.0 
+	IL_0091:  br IL_00d5
 
-	IL_008a:  ret 
-    } // end of method ReferencesResolver::AppendReferencedModulesLocatedInGivenDirectory
+	IL_0096:  ldarg.0 
+	IL_0097:  ldloc.2 
+	IL_0098:  call instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromFramework(string)
+	IL_009d:  stloc.s 4
+	IL_009f:  ldloc.s 4
+	IL_00a1:  brfalse IL_00af
 
-    // method line 558
-    .method public hidebysig 
-           instance default string GetAssemblyFileName (string assemblyName)  cil managed 
-    {
-        // Method begins at RVA 0x12c2c
-	// Code size 32 (0x20)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.Reflection.Assembly	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::Load(string)
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  callvirt instance string class [mscorlib]System.Reflection.Assembly::get_CodeBase()
-	IL_000e:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	IL_0013:  call instance string class [System]System.Uri::get_LocalPath()
-	IL_0018:  stloc.1 
-	IL_0019:  br IL_001e
+	IL_00a6:  nop 
+	IL_00a7:  ldloc.s 4
+	IL_00a9:  stloc.0 
+	IL_00aa:  br IL_00d5
 
-	IL_001e:  ldloc.1 
-	IL_001f:  ret 
-    } // end of method ReferencesResolver::GetAssemblyFileName
+	IL_00af:  ldarg.0 
+	IL_00b0:  ldloc.1 
+	IL_00b1:  ldloc.2 
+	IL_00b2:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_00b7:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromAssemblyFolders(class [System.Xml]System.Xml.XmlElement, string)
+	IL_00bc:  stloc.s 4
+	IL_00be:  ldloc.s 4
+	IL_00c0:  brfalse IL_00ce
 
-  } // end of class NAnt.VSNet.ReferencesResolver
-}
+	IL_00c5:  nop 
+	IL_00c6:  ldloc.s 4
+	IL_00c8:  stloc.0 
+	IL_00c9:  br IL_00d5
 
-.namespace NAnt.VSNet
-{
-  .class private auto ansi sealed beforefieldinit ProjectFactory
-  	extends [mscorlib]System.Object
-  {
-    .field  private initonly  class [mscorlib]System.Collections.Hashtable _cachedProjects
-    .field  private initonly  class [mscorlib]System.Collections.Hashtable _cachedProjectGuids
-    .field  private initonly  class [mscorlib]System.Collections.Hashtable _cachedProjectXml
-    .field  private initonly  class [mscorlib]System.Collections.ArrayList _projectprovs
+	IL_00ce:  ldnull 
+	IL_00cf:  stloc.0 
+	IL_00d0:  br IL_00d5
 
-    // method line 559
-    .method private hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.Tasks.SolutionTask solutionTask)  cil managed 
-    {
-        // Method begins at RVA 0x12c58
-	// Code size 52 (0x34)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0006:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectFactory::_projectprovs
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void object::'.ctor'()
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_0018:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjects
-	IL_001d:  ldarg.0 
-	IL_001e:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_0023:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjectGuids
-	IL_0028:  ldarg.0 
-	IL_0029:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_002e:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjectXml
-	IL_0033:  ret 
-    } // end of method ProjectFactory::.ctor
+	IL_00d5:  ldloc.0 
+	IL_00d6:  ret 
+    } // end of method VcAssemblyReference::ResolveAssemblyReference
 
-    // method line 560
-    .method public static hidebysig 
-           default class NAnt.VSNet.ProjectFactory Create (class NAnt.VSNet.Tasks.SolutionTask solutionTask)  cil managed 
+    // method line 505
+    .method public virtual hidebysig specialname 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x12c90
+        // Method begins at RVA 0x12680
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.ProjectFactory	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NAnt.VSNet.ProjectFactory::'.ctor'(class NAnt.VSNet.Tasks.SolutionTask)
+	IL_0002:  ldfld string NAnt.VSNet.VcAssemblyReference::_name
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ProjectFactory::Create
+    } // end of method VcAssemblyReference::get_Name
 
-    // method line 561
-    .method public static hidebysig 
-           default bool IsUrl (string fileName)  cil managed 
+    // method line 506
+    .method private hidebysig 
+           instance default string EvaluateMacro (class [System]System.Text.RegularExpressions.Match m)  cil managed 
     {
-        // Method begins at RVA 0x12cac
-	// Code size 66 (0x42)
-	.maxstack 2
+        // Method begins at RVA 0x1269c
+	// Code size 119 (0x77)
+	.maxstack 5
 	.locals init (
-		bool	V_0)
+		string	V_0,
+		string	V_1,
+		string	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldsfld string [System]System.Uri::UriSchemeFile
-	IL_0007:  callvirt instance bool string::StartsWith(string)
-	IL_000c:  brtrue IL_0031
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	IL_0007:  ldc.i4.1 
+	IL_0008:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(int32)
+	IL_000d:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	IL_0012:  stloc.0 
+	IL_0013:  ldarg.0 
+	IL_0014:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_0019:  ldloc.0 
+	IL_001a:  callvirt instance string class NAnt.VSNet.Tasks.SolutionTask::ExpandMacro(string)
+	IL_001f:  stloc.1 
+	IL_0020:  ldloc.1 
+	IL_0021:  brfalse IL_002e
 
-	IL_0011:  ldarg.0 
-	IL_0012:  ldsfld string [System]System.Uri::UriSchemeHttp
-	IL_0017:  callvirt instance bool string::StartsWith(string)
-	IL_001c:  brtrue IL_0031
+	IL_0026:  nop 
+	IL_0027:  ldloc.1 
+	IL_0028:  stloc.2 
+	IL_0029:  br IL_0075
 
-	IL_0021:  ldarg.0 
-	IL_0022:  ldsfld string [System]System.Uri::UriSchemeHttps
-	IL_0027:  callvirt instance bool string::StartsWith(string)
-	IL_002c:  brfalse IL_0039
+	IL_002e:  ldarg.0 
+	IL_002f:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0034:  ldloc.0 
+	IL_0035:  callvirt instance string class NAnt.VSNet.ProjectBase::ExpandMacro(string)
+	IL_003a:  stloc.1 
+	IL_003b:  ldloc.1 
+	IL_003c:  brfalse IL_0049
 
-	IL_0031:  nop 
-	IL_0032:  ldc.i4.1 
-	IL_0033:  stloc.0 
-	IL_0034:  br IL_0040
+	IL_0041:  nop 
+	IL_0042:  ldloc.1 
+	IL_0043:  stloc.2 
+	IL_0044:  br IL_0075
 
-	IL_0039:  ldc.i4.0 
-	IL_003a:  stloc.0 
-	IL_003b:  br IL_0040
+	IL_0049:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_004e:  ldstr "Macro \"{0}\", used by assembly reference \"{1}\" in project \"{2}\" is not supported in assembly references."
+	IL_0053:  ldloc.0 
+	IL_0054:  ldarg.0 
+	IL_0055:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_005a:  ldarg.0 
+	IL_005b:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0060:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_0065:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	IL_006a:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_006f:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0074:  throw 
+	IL_0075:  ldloc.2 
+	IL_0076:  ret 
+    } // end of method VcAssemblyReference::EvaluateMacro
 
-	IL_0040:  ldloc.0 
-	IL_0041:  ret 
-    } // end of method ProjectFactory::IsUrl
+	.property instance bool IsPrivate ()
+	{
+		.get instance default bool NAnt.VSNet.VcAssemblyReference::get_IsPrivate () 
+	}
+	.property instance bool IsPrivateSpecified ()
+	{
+		.get instance default bool NAnt.VSNet.VcAssemblyReference::get_IsPrivateSpecified () 
+	}
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.VSNet.VcAssemblyReference::get_Name () 
+	}
+  } // end of class NAnt.VSNet.VcAssemblyReference
+}
 
-    // method line 562
-    .method public hidebysig 
-           instance default class [System.Xml]System.Xml.XmlDocument LoadProjectXml (string path)  cil managed 
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit ProjectSettings
+  	extends [mscorlib]System.Object
+  {
+    .field  private initonly  class [mscorlib]System.Collections.ArrayList _settings
+    .field  private initonly  class [mscorlib]System.IO.FileInfo _applicationIcon
+    .field  private initonly  class NAnt.VSNet.ManagedProjectBase _project
+    .field  private initonly  string _assemblyName
+    .field  private initonly  string _assemblyOriginatorKeyFile
+    .field  private initonly  string _assemblyKeyContainerName
+    .field  private initonly  string _rootNamespace
+    .field  private initonly  string _guid
+    .field  private initonly  string _runPostBuildEvent
+    .field  private initonly  string _preBuildEvent
+    .field  private initonly  string _postBuildEvent
+    .field  private initonly  valuetype NAnt.VSNet.ManagedOutputType _outputType
+
+    // method line 507
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement elemRoot, class [System.Xml]System.Xml.XmlElement elemSettings, class NAnt.VSNet.ManagedProjectBase project)  cil managed 
     {
-        // Method begins at RVA 0x12cfc
-	// Code size 220 (0xdc)
+        // Method begins at RVA 0x12720
+	// Code size 1181 (0x49d)
 	.maxstack 3
 	.locals init (
-		class [System.Xml]System.Xml.XmlDocument	V_0,
-		class [mscorlib]System.IO.StreamReader	V_1,
-		class [System]System.Uri	V_2,
-		class [mscorlib]System.IO.StreamReader	V_3,
-		class [System.Xml]System.Xml.XmlDocument	V_4)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjectXml
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	IL_000d:  brtrue IL_00c1
-
-	IL_0012:  nop 
-	IL_0013:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	IL_0018:  stloc.0 
+		class [mscorlib]System.Collections.Hashtable	V_0,
+		valuetype NAnt.VSNet.ManagedOutputType	V_1,
+		string	V_2,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_3,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_4,
+		string	V_5,
+		class [mscorlib]System.IDisposable	V_6)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.3 
+	IL_0009:  stfld class NAnt.VSNet.ManagedProjectBase NAnt.VSNet.ProjectSettings::_project
+	IL_000e:  ldarg.0 
+	IL_000f:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
+	IL_0014:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
 	IL_0019:  ldarg.1 
-	IL_001a:  call bool class NAnt.VSNet.ProjectFactory::IsUrl(string)
-	IL_001f:  brtrue IL_0053
+	IL_001a:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::get_FirstChild()
+	IL_001f:  brtrue IL_004a
 
 	IL_0024:  nop 
-	IL_0025:  ldarg.1 
-	IL_0026:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
-	IL_002b:  ldc.i4.1 
-	IL_002c:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
-	IL_0031:  stloc.1 
-	.try { // 0
-	  IL_0032:  nop 
-	  IL_0033:  ldloc.0 
-	  IL_0034:  ldloc.1 
-	  IL_0035:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(class [mscorlib]System.IO.TextReader)
-	  IL_003a:  nop 
-	  IL_003b:  leave IL_004d
+	IL_0025:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_002a:  ldstr "Project file '{0}' is not valid."
+	IL_002f:  ldarg.0 
+	IL_0030:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.ProjectSettings::get_Project()
+	IL_0035:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_003a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_003f:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0044:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0049:  throw 
+	IL_004a:  ldarg.0 
+	IL_004b:  ldarg.3 
+	IL_004c:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_0051:  ldarg.1 
+	IL_0052:  call string class NAnt.VSNet.ProjectSettings::GetProjectGuid(string, class [System.Xml]System.Xml.XmlElement)
+	IL_0057:  stfld string NAnt.VSNet.ProjectSettings::_guid
+	IL_005c:  ldarg.0 
+	IL_005d:  ldarg.0 
+	IL_005e:  ldarg.2 
+	IL_005f:  callvirt instance valuetype NAnt.VSNet.ManagedOutputType class NAnt.VSNet.ProjectSettings::GetOutputType(class [System.Xml]System.Xml.XmlElement)
+	IL_0064:  stfld valuetype NAnt.VSNet.ManagedOutputType NAnt.VSNet.ProjectSettings::_outputType
+	IL_0069:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
+	IL_006e:  stloc.0 
+	IL_006f:  ldarg.0 
+	IL_0070:  ldfld valuetype NAnt.VSNet.ManagedOutputType NAnt.VSNet.ProjectSettings::_outputType
+	IL_0075:  stloc.1 
+	IL_0076:  ldloc.1 
+	IL_0077:  ldc.i4.1 
+	IL_0078:  beq IL_0090
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0040:  ldloc.1 
-	  IL_0041:  brfalse IL_004c
+	IL_007d:  ldloc.1 
+	IL_007e:  ldc.i4.2 
+	IL_007f:  beq IL_00a6
 
-	  IL_0046:  ldloc.1 
-	  IL_0047:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_004c:  endfinally 
-	} // end handler 0
-	IL_004d:  nop 
-	IL_004e:  br IL_00b3
+	IL_0084:  ldloc.1 
+	IL_0085:  ldc.i4.3 
+	IL_0086:  beq IL_00cc
 
-	IL_0053:  nop 
-	IL_0054:  ldarg.1 
-	IL_0055:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	IL_005a:  stloc.2 
-	IL_005b:  ldloc.2 
-	IL_005c:  callvirt instance string class [System]System.Uri::get_Scheme()
-	IL_0061:  ldsfld string [System]System.Uri::UriSchemeFile
-	IL_0066:  call bool string::op_Equality(string, string)
-	IL_006b:  brfalse IL_00a4
+	IL_008b:  br IL_00f2
 
-	IL_0070:  nop 
-	IL_0071:  ldloc.2 
-	IL_0072:  callvirt instance string class [System]System.Uri::get_LocalPath()
-	IL_0077:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
-	IL_007c:  ldc.i4.1 
-	IL_007d:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
-	IL_0082:  stloc.3 
-	.try { // 1
-	  IL_0083:  nop 
-	  IL_0084:  ldloc.0 
-	  IL_0085:  ldloc.3 
-	  IL_0086:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(class [mscorlib]System.IO.TextReader)
-	  IL_008b:  nop 
-	  IL_008c:  leave IL_009e
+	IL_0090:  ldarg.0 
+	IL_0091:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
+	IL_0096:  ldstr "/target:library"
+	IL_009b:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_00a0:  pop 
+	IL_00a1:  br IL_00f2
 
-	} // end .try 1
-	finally  { // 1
-	  IL_0091:  ldloc.3 
-	  IL_0092:  brfalse IL_009d
+	IL_00a6:  ldarg.0 
+	IL_00a7:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
+	IL_00ac:  ldstr "/target:exe"
+	IL_00b1:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_00b6:  pop 
+	IL_00b7:  ldloc.0 
+	IL_00b8:  ldstr "StartupObject"
+	IL_00bd:  ldstr "/main:\"{0}\""
+	IL_00c2:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_00c7:  br IL_00f2
 
-	  IL_0097:  ldloc.3 
-	  IL_0098:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_009d:  endfinally 
-	} // end handler 1
-	IL_009e:  nop 
-	IL_009f:  br IL_00b2
+	IL_00cc:  ldarg.0 
+	IL_00cd:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
+	IL_00d2:  ldstr "/target:winexe"
+	IL_00d7:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_00dc:  pop 
+	IL_00dd:  ldloc.0 
+	IL_00de:  ldstr "StartupObject"
+	IL_00e3:  ldstr "/main:\"{0}\""
+	IL_00e8:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_00ed:  br IL_00f2
 
-	IL_00a4:  nop 
-	IL_00a5:  ldloc.0 
-	IL_00a6:  ldarg.1 
-	IL_00a7:  call string class NAnt.VSNet.WebDavClient::GetFileContentsStatic(string)
-	IL_00ac:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::LoadXml(string)
-	IL_00b1:  nop 
-	IL_00b2:  nop 
-	IL_00b3:  ldarg.0 
-	IL_00b4:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjectXml
-	IL_00b9:  ldarg.1 
-	IL_00ba:  ldloc.0 
-	IL_00bb:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_00c0:  nop 
-	IL_00c1:  ldarg.0 
-	IL_00c2:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjectXml
-	IL_00c7:  ldarg.1 
-	IL_00c8:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_00cd:  castclass [System.Xml]System.Xml.XmlDocument
-	IL_00d2:  stloc.s 4
-	IL_00d4:  br IL_00d9
+	IL_00f2:  ldarg.0 
+	IL_00f3:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
+	IL_00f8:  ldstr "/nologo"
+	IL_00fd:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_0102:  pop 
+	IL_0103:  ldarg.0 
+	IL_0104:  ldarg.2 
+	IL_0105:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_010a:  ldstr "AssemblyName"
+	IL_010f:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0114:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_0119:  stfld string NAnt.VSNet.ProjectSettings::_assemblyName
+	IL_011e:  ldarg.0 
+	IL_011f:  ldarg.2 
+	IL_0120:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0125:  ldstr "AssemblyOriginatorKeyFile"
+	IL_012a:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_012f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_0134:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0139:  stfld string NAnt.VSNet.ProjectSettings::_assemblyOriginatorKeyFile
+	IL_013e:  ldarg.0 
+	IL_013f:  ldarg.2 
+	IL_0140:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0145:  ldstr "AssemblyKeyContainerName"
+	IL_014a:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_014f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_0154:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0159:  stfld string NAnt.VSNet.ProjectSettings::_assemblyKeyContainerName
+	IL_015e:  ldarg.2 
+	IL_015f:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0164:  ldstr "RunPostBuildEvent"
+	IL_0169:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_016e:  brfalse IL_0195
 
-	IL_00d9:  ldloc.s 4
-	IL_00db:  ret 
-    } // end of method ProjectFactory::LoadProjectXml
+	IL_0173:  nop 
+	IL_0174:  ldarg.0 
+	IL_0175:  ldarg.2 
+	IL_0176:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_017b:  ldstr "RunPostBuildEvent"
+	IL_0180:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0185:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_018a:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_018f:  stfld string NAnt.VSNet.ProjectSettings::_runPostBuildEvent
+	IL_0194:  nop 
+	IL_0195:  ldarg.2 
+	IL_0196:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_019b:  ldstr "PreBuildEvent"
+	IL_01a0:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_01a5:  brfalse IL_01cc
 
-    // method line 563
-    .method public hidebysig 
-           instance default class NAnt.VSNet.ProjectBase LoadProject (class NAnt.VSNet.SolutionBase solution, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver referencesResolver, class [mscorlib]System.IO.DirectoryInfo outputDir, string path)  cil managed 
-    {
-        // Method begins at RVA 0x12e00
-	// Code size 79 (0x4f)
-	.maxstack 8
-	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0,
-		class NAnt.VSNet.ProjectBase	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjects
-	IL_0007:  ldarg.s 7
-	IL_0009:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
-	IL_000e:  brtrue IL_0035
+	IL_01aa:  nop 
+	IL_01ab:  ldarg.0 
+	IL_01ac:  ldarg.2 
+	IL_01ad:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_01b2:  ldstr "PreBuildEvent"
+	IL_01b7:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_01bc:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_01c1:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_01c6:  stfld string NAnt.VSNet.ProjectSettings::_preBuildEvent
+	IL_01cb:  nop 
+	IL_01cc:  ldarg.2 
+	IL_01cd:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_01d2:  ldstr "PostBuildEvent"
+	IL_01d7:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_01dc:  brfalse IL_0203
 
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldarg.1 
-	IL_0016:  ldarg.2 
-	IL_0017:  ldarg.3 
-	IL_0018:  ldarg.s 4
-	IL_001a:  ldarg.s 5
-	IL_001c:  ldarg.s 6
-	IL_001e:  ldarg.s 7
-	IL_0020:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectFactory::CreateProject(class NAnt.VSNet.SolutionBase, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo, string)
-	IL_0025:  stloc.0 
-	IL_0026:  ldarg.0 
-	IL_0027:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjects
-	IL_002c:  ldarg.s 7
-	IL_002e:  ldloc.0 
-	IL_002f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0034:  nop 
-	IL_0035:  ldarg.0 
-	IL_0036:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjects
-	IL_003b:  ldarg.s 7
-	IL_003d:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_0042:  castclass NAnt.VSNet.ProjectBase
-	IL_0047:  stloc.1 
-	IL_0048:  br IL_004d
+	IL_01e1:  nop 
+	IL_01e2:  ldarg.0 
+	IL_01e3:  ldarg.2 
+	IL_01e4:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_01e9:  ldstr "PostBuildEvent"
+	IL_01ee:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_01f3:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_01f8:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_01fd:  stfld string NAnt.VSNet.ProjectSettings::_postBuildEvent
+	IL_0202:  nop 
+	IL_0203:  ldarg.2 
+	IL_0204:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0209:  ldstr "RootNamespace"
+	IL_020e:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0213:  brfalse IL_0273
 
-	IL_004d:  ldloc.1 
-	IL_004e:  ret 
-    } // end of method ProjectFactory::LoadProject
+	IL_0218:  nop 
+	IL_0219:  ldarg.0 
+	IL_021a:  ldarg.2 
+	IL_021b:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0220:  ldstr "RootNamespace"
+	IL_0225:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_022a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_022f:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0234:  stfld string NAnt.VSNet.ProjectSettings::_rootNamespace
+	IL_0239:  ldarg.0 
+	IL_023a:  call instance string class NAnt.VSNet.ProjectSettings::get_RootNamespace()
+	IL_023f:  brfalse IL_0272
 
-    // method line 564
-    .method public hidebysig 
-           instance default string LoadGuid (string fileName)  cil managed 
-    {
-        // Method begins at RVA 0x12e5c
-	// Code size 191 (0xbf)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		string	V_1,
-		string	V_2,
-		class [System.Xml]System.Xml.XmlElement	V_3,
-		class [System.Xml]System.Xml.XmlDocument	V_4,
-		class [mscorlib]System.Exception	V_5,
-		class NAnt.VSNet.Extensibility.IProjectBuildProvider	V_6)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjects
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	IL_000d:  brfalse IL_002f
+	IL_0244:  ldarg.0 
+	IL_0245:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.ProjectSettings::get_Project()
+	IL_024a:  callvirt instance valuetype NAnt.VSNet.ProjectType class NAnt.VSNet.ProjectBase::get_Type()
+	IL_024f:  brtrue IL_0272
 
-	IL_0012:  nop 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjects
-	IL_0019:  ldarg.1 
-	IL_001a:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_001f:  castclass NAnt.VSNet.ProjectBase
-	IL_0024:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
-	IL_0029:  stloc.0 
-	IL_002a:  br IL_00bd
+	IL_0254:  nop 
+	IL_0255:  ldarg.0 
+	IL_0256:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
+	IL_025b:  ldstr "/rootnamespace:"
+	IL_0260:  ldarg.0 
+	IL_0261:  ldfld string NAnt.VSNet.ProjectSettings::_rootNamespace
+	IL_0266:  call string string::Concat(string, string)
+	IL_026b:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_0270:  pop 
+	IL_0271:  nop 
+	IL_0272:  nop 
+	IL_0273:  ldarg.2 
+	IL_0274:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0279:  ldstr "ApplicationIcon"
+	IL_027e:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0283:  brfalse IL_02ce
 
-	IL_002f:  ldarg.1 
-	IL_0030:  call string class NAnt.VSNet.ProjectFactory::GetProjectFileName(string)
-	IL_0035:  stloc.1 
-	IL_0036:  ldloc.1 
-	IL_0037:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	IL_003c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0041:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_0046:  stloc.2 
-	.try { // 0
-	  IL_0047:  nop 
-	  IL_0048:  ldarg.0 
-	  IL_0049:  ldarg.1 
-	  IL_004a:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.VSNet.ProjectFactory::LoadProjectXml(string)
-	  IL_004f:  stloc.s 4
-	  IL_0051:  ldloc.s 4
-	  IL_0053:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	  IL_0058:  stloc.3 
-	  IL_0059:  nop 
-	  IL_005a:  leave IL_007f
+	IL_0288:  nop 
+	IL_0289:  ldarg.2 
+	IL_028a:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_028f:  ldstr "ApplicationIcon"
+	IL_0294:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0299:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_029e:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_02a3:  stloc.2 
+	IL_02a4:  ldloc.2 
+	IL_02a5:  brfalse IL_02cd
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_005f:  stloc.s 5
-	  IL_0061:  nop 
-	  IL_0062:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0067:  ldstr "Error loading project '{0}'."
-	  IL_006c:  ldarg.1 
-	  IL_006d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0072:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	  IL_0077:  ldloc.s 5
-	  IL_0079:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_007e:  throw 
-	} // end handler 0
-	IL_007f:  ldarg.0 
-	IL_0080:  ldloc.2 
-	IL_0081:  ldloc.3 
-	IL_0082:  call instance class NAnt.VSNet.Extensibility.IProjectBuildProvider class NAnt.VSNet.ProjectFactory::FindProvider(string, class [System.Xml]System.Xml.XmlElement)
-	IL_0087:  stloc.s 6
-	IL_0089:  ldloc.s 6
-	IL_008b:  brfalse IL_00a6
+	IL_02aa:  nop 
+	IL_02ab:  ldarg.0 
+	IL_02ac:  ldarg.0 
+	IL_02ad:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.ProjectSettings::get_Project()
+	IL_02b2:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_02b7:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_02bc:  ldloc.2 
+	IL_02bd:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_02c2:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_02c7:  stfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.ProjectSettings::_applicationIcon
+	IL_02cc:  nop 
+	IL_02cd:  nop 
+	IL_02ce:  ldarg.0 
+	IL_02cf:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.ProjectSettings::get_Project()
+	IL_02d4:  callvirt instance valuetype NAnt.VSNet.ProjectType class NAnt.VSNet.ProjectBase::get_Type()
+	IL_02d9:  brtrue IL_0412
 
-	IL_0090:  nop 
-	IL_0091:  ldarg.0 
-	IL_0092:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjectGuids
-	IL_0097:  ldarg.1 
-	IL_0098:  ldloc.s 6
-	IL_009a:  ldloc.3 
-	IL_009b:  callvirt instance string class NAnt.VSNet.Extensibility.IProjectBuildProvider::LoadGuid(class [System.Xml]System.Xml.XmlElement)
-	IL_00a0:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_00a5:  nop 
-	IL_00a6:  ldarg.0 
-	IL_00a7:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectFactory::_cachedProjectGuids
-	IL_00ac:  ldarg.1 
-	IL_00ad:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	IL_00b2:  castclass [mscorlib]System.String
-	IL_00b7:  stloc.0 
-	IL_00b8:  br IL_00bd
+	IL_02de:  nop 
+	IL_02df:  ldarg.2 
+	IL_02e0:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_02e5:  ldstr "OptionExplicit"
+	IL_02ea:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_02ef:  brfalse IL_0345
 
-	IL_00bd:  ldloc.0 
-	IL_00be:  ret 
-    } // end of method ProjectFactory::LoadGuid
+	IL_02f4:  nop 
+	IL_02f5:  ldarg.2 
+	IL_02f6:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_02fb:  ldstr "OptionExplicit"
+	IL_0300:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0305:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_030a:  ldstr "Off"
+	IL_030f:  call bool string::op_Equality(string, string)
+	IL_0314:  brfalse IL_0331
 
-    // method line 565
-    .method public hidebysig 
-           instance default void RegisterProvider (class NAnt.VSNet.Extensibility.IProjectBuildProvider provider)  cil managed 
-    {
-        // Method begins at RVA 0x12f38
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectFactory::_projectprovs
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_000d:  pop 
-	IL_000e:  ret 
-    } // end of method ProjectFactory::RegisterProvider
+	IL_0319:  nop 
+	IL_031a:  ldarg.0 
+	IL_031b:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
+	IL_0320:  ldstr "/optionexplicit-"
+	IL_0325:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_032a:  pop 
+	IL_032b:  nop 
+	IL_032c:  br IL_0344
 
-    // method line 566
-    .method private hidebysig 
-           instance default class NAnt.VSNet.ProjectBase CreateProject (class NAnt.VSNet.SolutionBase solution, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver referencesResolver, class [mscorlib]System.IO.DirectoryInfo outputDir, string projectPath)  cil managed 
-    {
-        // Method begins at RVA 0x12f48
-	// Code size 181 (0xb5)
-	.maxstack 9
-	.locals init (
-		string	V_0,
-		string	V_1,
-		class NAnt.VSNet.ProjectBase	V_2,
-		class [System.Xml]System.Xml.XmlElement	V_3,
-		class [System.Xml]System.Xml.XmlDocument	V_4,
-		class [mscorlib]System.Exception	V_5,
-		class NAnt.VSNet.Extensibility.IProjectBuildProvider	V_6)
-	IL_0000:  nop 
-	IL_0001:  ldarg.s 7
-	IL_0003:  call string class NAnt.VSNet.ProjectFactory::GetProjectFileName(string)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	IL_000f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0014:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_0019:  stloc.1 
-	IL_001a:  ldloc.1 
-	IL_001b:  ldstr ".vdproj"
-	IL_0020:  call bool string::op_Equality(string, string)
-	IL_0025:  brfalse IL_0032
+	IL_0331:  nop 
+	IL_0332:  ldarg.0 
+	IL_0333:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
+	IL_0338:  ldstr "/optionexplicit+"
+	IL_033d:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_0342:  pop 
+	IL_0343:  nop 
+	IL_0344:  nop 
+	IL_0345:  ldarg.2 
+	IL_0346:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_034b:  ldstr "OptionStrict"
+	IL_0350:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0355:  brfalse IL_03ab
 
-	IL_002a:  nop 
-	IL_002b:  ldnull 
-	IL_002c:  stloc.2 
-	IL_002d:  br IL_00b3
+	IL_035a:  nop 
+	IL_035b:  ldarg.2 
+	IL_035c:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0361:  ldstr "OptionStrict"
+	IL_0366:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_036b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_0370:  ldstr "Off"
+	IL_0375:  call bool string::op_Equality(string, string)
+	IL_037a:  brfalse IL_0397
 
-	.try { // 0
-	  IL_0032:  nop 
-	  IL_0033:  ldarg.0 
-	  IL_0034:  ldarg.s 7
-	  IL_0036:  call instance class [System.Xml]System.Xml.XmlDocument class NAnt.VSNet.ProjectFactory::LoadProjectXml(string)
-	  IL_003b:  stloc.s 4
-	  IL_003d:  ldloc.s 4
-	  IL_003f:  callvirt instance class [System.Xml]System.Xml.XmlElement class [System.Xml]System.Xml.XmlDocument::get_DocumentElement()
-	  IL_0044:  stloc.3 
-	  IL_0045:  nop 
-	  IL_0046:  leave IL_006c
+	IL_037f:  nop 
+	IL_0380:  ldarg.0 
+	IL_0381:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
+	IL_0386:  ldstr "/optionstrict-"
+	IL_038b:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_0390:  pop 
+	IL_0391:  nop 
+	IL_0392:  br IL_03aa
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_004b:  stloc.s 5
-	  IL_004d:  nop 
-	  IL_004e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0053:  ldstr "Error loading project '{0}'."
-	  IL_0058:  ldarg.s 7
-	  IL_005a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_005f:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	  IL_0064:  ldloc.s 5
-	  IL_0066:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_006b:  throw 
-	} // end handler 0
-	IL_006c:  ldarg.0 
-	IL_006d:  ldloc.1 
-	IL_006e:  ldloc.3 
-	IL_006f:  call instance class NAnt.VSNet.Extensibility.IProjectBuildProvider class NAnt.VSNet.ProjectFactory::FindProvider(string, class [System.Xml]System.Xml.XmlElement)
-	IL_0074:  stloc.s 6
-	IL_0076:  ldloc.s 6
-	IL_0078:  brfalse IL_0097
+	IL_0397:  nop 
+	IL_0398:  ldarg.0 
+	IL_0399:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
+	IL_039e:  ldstr "/optionstrict+"
+	IL_03a3:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_03a8:  pop 
+	IL_03a9:  nop 
+	IL_03aa:  nop 
+	IL_03ab:  ldarg.2 
+	IL_03ac:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_03b1:  ldstr "OptionCompare"
+	IL_03b6:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_03bb:  brfalse IL_0411
 
-	IL_007d:  nop 
-	IL_007e:  ldloc.s 6
-	IL_0080:  ldarg.1 
-	IL_0081:  ldarg.s 7
-	IL_0083:  ldloc.3 
-	IL_0084:  ldarg.2 
-	IL_0085:  ldarg.3 
-	IL_0086:  ldarg.s 4
-	IL_0088:  ldarg.s 5
-	IL_008a:  ldarg.s 6
-	IL_008c:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.Extensibility.IProjectBuildProvider::GetInstance(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
-	IL_0091:  stloc.2 
-	IL_0092:  br IL_00b3
+	IL_03c0:  nop 
+	IL_03c1:  ldarg.2 
+	IL_03c2:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_03c7:  ldstr "OptionCompare"
+	IL_03cc:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_03d1:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_03d6:  ldstr "Text"
+	IL_03db:  call bool string::op_Equality(string, string)
+	IL_03e0:  brfalse IL_03fd
 
-	IL_0097:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_009c:  ldstr "Project '{0}' is invalid or not supported (at this time)."
-	IL_00a1:  ldarg.s 7
-	IL_00a3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00a8:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_00ad:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_00b2:  throw 
-	IL_00b3:  ldloc.2 
-	IL_00b4:  ret 
-    } // end of method ProjectFactory::CreateProject
+	IL_03e5:  nop 
+	IL_03e6:  ldarg.0 
+	IL_03e7:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
+	IL_03ec:  ldstr "/optioncompare:text"
+	IL_03f1:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_03f6:  pop 
+	IL_03f7:  nop 
+	IL_03f8:  br IL_0410
 
-    // method line 567
-    .method private hidebysig 
-           instance default class NAnt.VSNet.Extensibility.IProjectBuildProvider FindProvider (string projectExt, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
-    {
-        // Method begins at RVA 0x1301c
-	// Code size 111 (0x6f)
-	.maxstack 3
-	.locals init (
-		int32	V_0,
-		class NAnt.VSNet.Extensibility.IProjectBuildProvider	V_1,
-		class NAnt.VSNet.Extensibility.IProjectBuildProvider	V_2,
-		class [mscorlib]System.Collections.IEnumerator	V_3,
-		int32	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		class NAnt.VSNet.Extensibility.IProjectBuildProvider	V_6)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  ldnull 
-	IL_0004:  stloc.1 
-	IL_0005:  nop 
-	IL_0006:  ldarg.0 
-	IL_0007:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectFactory::_projectprovs
-	IL_000c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0011:  stloc.3 
+	IL_03fd:  nop 
+	IL_03fe:  ldarg.0 
+	IL_03ff:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
+	IL_0404:  ldstr "/optioncompare:binary"
+	IL_0409:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	IL_040e:  pop 
+	IL_040f:  nop 
+	IL_0410:  nop 
+	IL_0411:  nop 
+	IL_0412:  nop 
+	IL_0413:  ldloc.0 
+	IL_0414:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_0419:  stloc.s 4
 	.try { // 0
-	  IL_0012:  br IL_003e
+	  IL_041b:  br IL_0474
 
-	  IL_0017:  ldloc.3 
-	  IL_0018:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_001d:  castclass NAnt.VSNet.Extensibility.IProjectBuildProvider
-	  IL_0022:  stloc.2 
-	  IL_0023:  nop 
-	  IL_0024:  ldloc.2 
-	  IL_0025:  ldarg.1 
-	  IL_0026:  ldarg.2 
-	  IL_0027:  callvirt instance int32 class NAnt.VSNet.Extensibility.IProjectBuildProvider::IsSupported(string, class [System.Xml]System.Xml.XmlElement)
-	  IL_002c:  stloc.s 4
-	  IL_002e:  ldloc.s 4
-	  IL_0030:  ldloc.0 
-	  IL_0031:  ble IL_003d
+	  IL_0420:  ldloc.s 4
+	  IL_0422:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0427:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_042c:  stloc.3 
+	  IL_042d:  nop 
+	  IL_042e:  ldarg.2 
+	  IL_042f:  ldloca.s 3
+	  IL_0431:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_0436:  callvirt instance string object::ToString()
+	  IL_043b:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	  IL_0440:  stloc.s 5
+	  IL_0442:  ldloc.s 5
+	  IL_0444:  call bool string::IsNullOrEmpty(string)
+	  IL_0449:  brfalse IL_0454
 
-	  IL_0036:  nop 
-	  IL_0037:  ldloc.s 4
-	  IL_0039:  stloc.0 
-	  IL_003a:  ldloc.2 
-	  IL_003b:  stloc.1 
-	  IL_003c:  nop 
-	  IL_003d:  nop 
-	  IL_003e:  ldloc.3 
-	  IL_003f:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0044:  brtrue IL_0017
+	  IL_044e:  nop 
+	  IL_044f:  leave IL_0474
 
-	  IL_0049:  leave IL_0064
+	  IL_0454:  ldarg.0 
+	  IL_0455:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
+	  IL_045a:  ldloca.s 3
+	  IL_045c:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_0461:  callvirt instance string object::ToString()
+	  IL_0466:  ldloc.s 5
+	  IL_0468:  call string string::Format(string, object)
+	  IL_046d:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
+	  IL_0472:  pop 
+	  IL_0473:  nop 
+	  IL_0474:  ldloc.s 4
+	  IL_0476:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_047b:  brtrue IL_0420
+
+	  IL_0480:  leave IL_049c
 
 	} // end .try 0
 	finally  { // 0
-	  IL_004e:  ldloc.3 
-	  IL_004f:  isinst [mscorlib]System.IDisposable
-	  IL_0054:  dup 
-	  IL_0055:  stloc.s 5
-	  IL_0057:  brfalse IL_0063
+	  IL_0485:  ldloc.s 4
+	  IL_0487:  isinst [mscorlib]System.IDisposable
+	  IL_048c:  dup 
+	  IL_048d:  stloc.s 6
+	  IL_048f:  brfalse IL_049b
 
-	  IL_005c:  ldloc.s 5
-	  IL_005e:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0063:  endfinally 
+	  IL_0494:  ldloc.s 6
+	  IL_0496:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_049b:  endfinally 
 	} // end handler 0
-	IL_0064:  ldloc.1 
-	IL_0065:  stloc.s 6
-	IL_0067:  br IL_006c
-
-	IL_006c:  ldloc.s 6
-	IL_006e:  ret 
-    } // end of method ProjectFactory::FindProvider
+	IL_049c:  ret 
+    } // end of method ProjectSettings::.ctor
 
-    // method line 568
-    .method private static hidebysig 
-           default string GetProjectFileName (string fileName)  cil managed 
+    // method line 508
+    .method public hidebysig specialname 
+           instance default string[] get_Settings ()  cil managed 
     {
-        // Method begins at RVA 0x130a8
-	// Code size 53 (0x35)
-	.maxstack 1
+        // Method begins at RVA 0x12bdc
+	// Code size 35 (0x23)
+	.maxstack 2
 	.locals init (
-		string	V_0,
-		class [System]System.Uri	V_1,
-		string	V_2)
+		string[]	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  call bool class NAnt.VSNet.ProjectFactory::IsUrl(string)
-	IL_0009:  brfalse IL_0023
-
-	IL_000e:  nop 
-	IL_000f:  ldarg.0 
-	IL_0010:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	IL_0015:  stloc.1 
-	IL_0016:  ldloc.1 
-	IL_0017:  callvirt instance string class [System]System.Uri::get_LocalPath()
-	IL_001c:  stloc.0 
-	IL_001d:  nop 
-	IL_001e:  br IL_0027
-
-	IL_0023:  nop 
-	IL_0024:  ldarg.0 
-	IL_0025:  stloc.0 
-	IL_0026:  nop 
-	IL_0027:  ldloc.0 
-	IL_0028:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_002d:  stloc.2 
-	IL_002e:  br IL_0033
-
-	IL_0033:  ldloc.2 
-	IL_0034:  ret 
-    } // end of method ProjectFactory::GetProjectFileName
-
-  } // end of class NAnt.VSNet.ProjectFactory
-}
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
+	IL_0007:  ldtoken [mscorlib]System.String
+	IL_000c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0011:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
+	IL_0016:  castclass string[]
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
 
-.namespace NAnt.VSNet
-{
-  .class public auto ansi abstract beforefieldinit ProjectReferenceBase
-  	extends NAnt.VSNet.ReferenceBase
-  {
-    .field  private static initonly  class [mscorlib]System.Collections.Stack ProjectStack
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method ProjectSettings::get_Settings
 
-    // method line 569
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent)  cil managed 
+    // method line 509
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_ApplicationIcon ()  cil managed 
     {
-        // Method begins at RVA 0x93e7
-	// Code size 10 (0xa)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  call instance void class NAnt.VSNet.ReferenceBase::'.ctor'(class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase)
-	IL_0008:  nop 
-	IL_0009:  ret 
-    } // end of method ProjectReferenceBase::.ctor
+        // Method begins at RVA 0x12c0c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.ProjectSettings::_applicationIcon
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 570
-    .method family virtual hidebysig newslot abstract specialname 
-           instance default bool get_IsPrivate ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectReferenceBase::get_IsPrivate
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_ApplicationIcon
 
-    // method line 571
-    .method family virtual hidebysig newslot abstract specialname 
-           instance default bool get_IsPrivateSpecified ()  cil managed 
+    // method line 510
+    .method public hidebysig specialname 
+           instance default string get_AssemblyName ()  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method ProjectReferenceBase::get_IsPrivateSpecified
+        // Method begins at RVA 0x12c28
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_assemblyName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 572
-    .method public virtual hidebysig specialname 
-           instance default bool get_CopyLocal ()  cil managed 
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_AssemblyName
+
+    // method line 511
+    .method public hidebysig specialname 
+           instance default string get_AssemblyOriginatorKeyFile ()  cil managed 
     {
-        // Method begins at RVA 0x93f4
-	// Code size 32 (0x20)
+        // Method begins at RVA 0x12c44
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance bool class NAnt.VSNet.ProjectReferenceBase::get_IsPrivateSpecified()
-	IL_0007:  brfalse IL_0017
+	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_assemblyOriginatorKeyFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_000c:  ldarg.0 
-	IL_000d:  callvirt instance bool class NAnt.VSNet.ProjectReferenceBase::get_IsPrivate()
-	IL_0012:  br IL_0018
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_AssemblyOriginatorKeyFile
 
-	IL_0017:  ldc.i4.1 
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_001e
+    // method line 512
+    .method public hidebysig specialname 
+           instance default string get_AssemblyKeyContainerName ()  cil managed 
+    {
+        // Method begins at RVA 0x12c60
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_assemblyKeyContainerName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_001e:  ldloc.0 
-	IL_001f:  ret 
-    } // end of method ProjectReferenceBase::get_CopyLocal
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_AssemblyKeyContainerName
 
-    // method line 573
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+    // method line 513
+    .method public hidebysig specialname 
+           instance default class [System]System.CodeDom.Compiler.TempFileCollection get_TemporaryFiles ()  cil managed 
     {
-        // Method begins at RVA 0x9420
+        // Method begins at RVA 0x12c7c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [System]System.CodeDom.Compiler.TempFileCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
-	IL_0007:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_0002:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.ProjectSettings::get_Project()
+	IL_0007:  callvirt instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.ProjectBase::get_TemporaryFiles()
 	IL_000c:  stloc.0 
 	IL_000d:  br IL_0012
 
 	IL_0012:  ldloc.0 
 	IL_0013:  ret 
-    } // end of method ProjectReferenceBase::get_Name
+    } // end of method ProjectSettings::get_TemporaryFiles
 
-    // method line 574
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsSystem ()  cil managed 
+    // method line 514
+    .method public hidebysig specialname 
+           instance default string get_OutputFileName ()  cil managed 
     {
-        // Method begins at RVA 0x9440
-	// Code size 10 (0xa)
+        // Method begins at RVA 0x12c9c
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NAnt.VSNet.ProjectSettings::get_AssemblyName()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance string class NAnt.VSNet.ProjectSettings::get_OutputExtension()
+	IL_000d:  call string string::Concat(string, string)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
+
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ProjectSettings::get_OutputFileName
+
+    // method line 515
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.VSNet.ManagedOutputType get_OutputType ()  cil managed 
+    {
+        // Method begins at RVA 0x12cc4
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		valuetype NAnt.VSNet.ManagedOutputType	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.VSNet.ManagedOutputType NAnt.VSNet.ProjectSettings::_outputType
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ProjectReferenceBase::get_IsSystem
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_OutputType
 
-    // method line 575
-    .method public virtual hidebysig 
-           instance default string GetPrimaryOutputFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    // method line 516
+    .method public hidebysig specialname 
+           instance default string get_OutputExtension ()  cil managed 
     {
-        // Method begins at RVA 0x9458
-	// Code size 21 (0x15)
+        // Method begins at RVA 0x12ce0
+	// Code size 57 (0x39)
 	.maxstack 2
 	.locals init (
+		valuetype NAnt.VSNet.ManagedOutputType	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance valuetype NAnt.VSNet.ManagedOutputType class NAnt.VSNet.ProjectSettings::get_OutputType()
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  ldc.i4.1 
+	IL_000a:  sub 
+	IL_000b:  switch (
+	  IL_0021,
+	  IL_002c,
+	  IL_002c)
+	IL_001c:  br IL_002c
+
+	IL_0021:  ldstr ".dll"
+	IL_0026:  stloc.1 
+	IL_0027:  br IL_0037
+
+	IL_002c:  ldstr ".exe"
+	IL_0031:  stloc.1 
+	IL_0032:  br IL_0037
+
+	IL_0037:  ldloc.1 
+	IL_0038:  ret 
+    } // end of method ProjectSettings::get_OutputExtension
+
+    // method line 517
+    .method public hidebysig specialname 
+           instance default string get_RootNamespace ()  cil managed 
+    {
+        // Method begins at RVA 0x12d28
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string class NAnt.VSNet.ProjectBase::GetOutputPath(class NAnt.VSNet.Configuration)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
+	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_rootNamespace
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method ProjectReferenceBase::GetPrimaryOutputFile
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_RootNamespace
 
-    // method line 576
-    .method public virtual hidebysig 
-           instance default void GetOutputFiles (class NAnt.VSNet.Configuration solutionConfiguration, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
+    // method line 518
+    .method public hidebysig specialname 
+           instance default string get_Guid ()  cil managed 
     {
-        // Method begins at RVA 0x9479
+        // Method begins at RVA 0x12d44
 	// Code size 15 (0xf)
-	.maxstack 8
+	.maxstack 1
+	.locals init (
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  ldarg.2 
-	IL_0009:  callvirt instance void class NAnt.VSNet.ProjectBase::GetOutputFiles(class NAnt.VSNet.Configuration, class [mscorlib]System.Collections.Hashtable)
+	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_guid
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ProjectReferenceBase::GetOutputFiles
+    } // end of method ProjectSettings::get_Guid
 
-    // method line 577
-    .method public virtual hidebysig 
-           instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    // method line 519
+    .method public hidebysig specialname 
+           instance default string get_RunPostBuildEvent ()  cil managed 
     {
-        // Method begins at RVA 0x948c
-	// Code size 128 (0x80)
-	.maxstack 2
+        // Method begins at RVA 0x12d60
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [System]System.Collections.Specialized.StringCollection	V_0,
-		class NAnt.VSNet.ConfigurationBase	V_1,
-		string	V_2,
-		class [System]System.Collections.Specialized.StringCollection	V_3)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldtoken NAnt.VSNet.VBProject
-	IL_0008:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0013:  callvirt instance class [mscorlib]System.Type object::GetType()
-	IL_0018:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
-	IL_001d:  brfalse IL_0036
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_runPostBuildEvent
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0022:  nop 
-	IL_0023:  ldarg.0 
-	IL_0024:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
-	IL_0029:  ldarg.1 
-	IL_002a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.ProjectBase::GetAssemblyReferences(class NAnt.VSNet.Configuration)
-	IL_002f:  stloc.0 
-	IL_0030:  nop 
-	IL_0031:  br IL_003e
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_RunPostBuildEvent
 
-	IL_0036:  nop 
-	IL_0037:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_003c:  stloc.0 
-	IL_003d:  nop 
-	IL_003e:  ldarg.0 
-	IL_003f:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
-	IL_0044:  ldarg.1 
-	IL_0045:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ProjectBase::GetConfiguration(class NAnt.VSNet.Configuration)
-	IL_004a:  stloc.1 
-	IL_004b:  ldloc.1 
-	IL_004c:  brfalse IL_0077
+    // method line 520
+    .method public hidebysig specialname 
+           instance default string get_PreBuildEvent ()  cil managed 
+    {
+        // Method begins at RVA 0x12d7c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_preBuildEvent
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0051:  nop 
-	IL_0052:  ldloc.1 
-	IL_0053:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
-	IL_0058:  stloc.2 
-	IL_0059:  ldloc.2 
-	IL_005a:  brfalse IL_0076
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_PreBuildEvent
 
-	IL_005f:  nop 
-	IL_0060:  ldloc.2 
-	IL_0061:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0066:  brfalse IL_0075
+    // method line 521
+    .method public hidebysig specialname 
+           instance default string get_PostBuildEvent ()  cil managed 
+    {
+        // Method begins at RVA 0x12d98
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_postBuildEvent
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_006b:  nop 
-	IL_006c:  ldloc.0 
-	IL_006d:  ldloc.2 
-	IL_006e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_0073:  pop 
-	IL_0074:  nop 
-	IL_0075:  nop 
-	IL_0076:  nop 
-	IL_0077:  ldloc.0 
-	IL_0078:  stloc.3 
-	IL_0079:  br IL_007e
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_PostBuildEvent
+
+    // method line 522
+    .method private hidebysig specialname 
+           instance default class NAnt.VSNet.ManagedProjectBase get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x12db4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.ManagedProjectBase	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.VSNet.ManagedProjectBase NAnt.VSNet.ProjectSettings::_project
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_007e:  ldloc.3 
-	IL_007f:  ret 
-    } // end of method ProjectReferenceBase::GetAssemblyReferences
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectSettings::get_Project
 
-    // method line 578
-    .method public virtual hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetTimestamp (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    // method line 523
+    .method family virtual hidebysig newslot 
+           instance default valuetype NAnt.VSNet.ManagedOutputType GetOutputType (class [System.Xml]System.Xml.XmlElement settingsXml)  cil managed 
     {
-        // Method begins at RVA 0x9518
-	// Code size 48 (0x30)
-	.maxstack 2
+        // Method begins at RVA 0x12dd0
+	// Code size 204 (0xcc)
+	.maxstack 4
 	.locals init (
-		string	V_0,
-		valuetype [mscorlib]System.DateTime	V_1)
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		string	V_1,
+		valuetype NAnt.VSNet.ManagedOutputType	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance string class NAnt.VSNet.ProjectBase::GetOutputPath(class NAnt.VSNet.Configuration)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  brfalse IL_0022
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0007:  ldstr "OutputType"
+	IL_000c:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0011:  stloc.0 
+	IL_0012:  ldloc.0 
+	IL_0013:  brtrue IL_003e
 
-	IL_0014:  nop 
-	IL_0015:  ldarg.0 
-	IL_0016:  ldloc.0 
-	IL_0017:  call instance valuetype [mscorlib]System.DateTime class NAnt.VSNet.ReferenceBase::GetFileTimestamp(string)
-	IL_001c:  stloc.1 
-	IL_001d:  br IL_002e
+	IL_0018:  nop 
+	IL_0019:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_001e:  ldstr "Project \"{0}\" is invalid: the output type is not set."
+	IL_0023:  ldarg.0 
+	IL_0024:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.ProjectSettings::get_Project()
+	IL_0029:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_002e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0033:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0038:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_003d:  throw 
+	IL_003e:  ldloc.0 
+	IL_003f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_0044:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0049:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_004e:  stloc.1 
+	IL_004f:  ldloc.1 
+	IL_0050:  brfalse IL_009f
 
-	IL_0022:  nop 
-	IL_0023:  ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MaxValue
-	IL_0028:  stloc.1 
-	IL_0029:  br IL_002e
+	IL_0055:  ldloc.1 
+	IL_0056:  ldstr "library"
+	IL_005b:  call bool string::op_Equality(string, string)
+	IL_0060:  brtrue IL_008a
 
-	IL_002e:  ldloc.1 
-	IL_002f:  ret 
-    } // end of method ProjectReferenceBase::GetTimestamp
+	IL_0065:  ldloc.1 
+	IL_0066:  ldstr "exe"
+	IL_006b:  call bool string::op_Equality(string, string)
+	IL_0070:  brtrue IL_0091
 
-    // method line 579
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ProjectReferenceBase::get_Project
+	IL_0075:  ldloc.1 
+	IL_0076:  ldstr "winexe"
+	IL_007b:  call bool string::op_Equality(string, string)
+	IL_0080:  brtrue IL_0098
 
-    // method line 580
-    .method family hidebysig 
-           instance default class NAnt.VSNet.ProjectBase LoadProject (class NAnt.VSNet.SolutionBase solution, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class [mscorlib]System.IO.DirectoryInfo outputDir, string projectFile)  cil managed 
+	IL_0085:  br IL_009f
+
+	IL_008a:  ldc.i4.1 
+	IL_008b:  stloc.2 
+	IL_008c:  br IL_00ca
+
+	IL_0091:  ldc.i4.2 
+	IL_0092:  stloc.2 
+	IL_0093:  br IL_00ca
+
+	IL_0098:  ldc.i4.3 
+	IL_0099:  stloc.2 
+	IL_009a:  br IL_00ca
+
+	IL_009f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00a4:  ldstr "Output type \"{0}\" of project \"{1}\" is not supported."
+	IL_00a9:  ldloc.0 
+	IL_00aa:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_00af:  ldarg.0 
+	IL_00b0:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.ProjectSettings::get_Project()
+	IL_00b5:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_00ba:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_00bf:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_00c4:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_00c9:  throw 
+	IL_00ca:  ldloc.2 
+	IL_00cb:  ret 
+    } // end of method ProjectSettings::GetOutputType
+
+    // method line 524
+    .method public static hidebysig 
+           default string GetProjectGuid (string projectFile, class [System.Xml]System.Xml.XmlElement elemRoot)  cil managed 
     {
-        // Method begins at RVA 0x9554
-	// Code size 160 (0xa0)
-	.maxstack 8
+        // Method begins at RVA 0x12ea8
+	// Code size 92 (0x5c)
+	.maxstack 4
 	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0)
+		class [System.Xml]System.Xml.XmlAttribute	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldsfld class [mscorlib]System.Collections.Stack NAnt.VSNet.ProjectReferenceBase::ProjectStack
-	IL_0006:  ldarg.s 5
-	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Stack::Contains(object)
-	IL_000d:  brfalse IL_003f
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::get_FirstChild()
+	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_000c:  ldstr "ProjectGuid"
+	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0016:  stloc.0 
+	IL_0017:  ldloc.0 
+	IL_0018:  brtrue IL_0044
 
-	IL_0012:  nop 
-	IL_0013:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0018:  ldstr "Circular reference to \"{0}\" detected in project \"{1}\"."
-	IL_001d:  ldarg.s 5
-	IL_001f:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_0024:  ldarg.0 
-	IL_0025:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_002a:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_002f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0034:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0039:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_003e:  throw 
-	.try { // 0
-	  IL_003f:  nop 
-	  IL_0040:  ldsfld class [mscorlib]System.Collections.Stack NAnt.VSNet.ProjectReferenceBase::ProjectStack
-	  IL_0045:  ldarg.s 5
-	  IL_0047:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
-	  IL_004c:  ldarg.0 
-	  IL_004d:  ldc.i4 2000
-	  IL_0052:  ldstr "Loading referenced project '{0}'."
-	  IL_0057:  ldc.i4.1 
-	  IL_0058:  newarr [mscorlib]System.Object
-	  IL_005d:  dup 
-	  IL_005e:  ldc.i4.0 
-	  IL_005f:  ldarg.s 5
-	  IL_0061:  stelem.ref 
-	  IL_0062:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_0067:  ldarg.0 
-	  IL_0068:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	  IL_006d:  callvirt instance class NAnt.VSNet.ProjectFactory class NAnt.VSNet.Tasks.SolutionTask::get_ProjectFactory()
-	  IL_0072:  ldarg.1 
-	  IL_0073:  ldarg.0 
-	  IL_0074:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	  IL_0079:  ldarg.2 
-	  IL_007a:  ldarg.3 
-	  IL_007b:  ldarg.0 
-	  IL_007c:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ReferenceBase::get_ReferencesResolver()
-	  IL_0081:  ldarg.s 4
-	  IL_0083:  ldarg.s 5
-	  IL_0085:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectFactory::LoadProject(class NAnt.VSNet.SolutionBase, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo, string)
-	  IL_008a:  stloc.0 
-	  IL_008b:  leave IL_009e
+	IL_001d:  nop 
+	IL_001e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0023:  ldstr "Project file '{0}' is not valid. There's no \"ProjectGuid\" attribute on the <{1} ... /> node."
+	IL_0028:  ldarg.0 
+	IL_0029:  ldarg.1 
+	IL_002a:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::get_FirstChild()
+	IL_002f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
+	IL_0034:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0039:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_003e:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0043:  throw 
+	IL_0044:  ldloc.0 
+	IL_0045:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_004a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_004f:  callvirt instance string string::ToUpper(class [mscorlib]System.Globalization.CultureInfo)
+	IL_0054:  stloc.1 
+	IL_0055:  br IL_005a
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0090:  nop 
-	  IL_0091:  ldsfld class [mscorlib]System.Collections.Stack NAnt.VSNet.ProjectReferenceBase::ProjectStack
-	  IL_0096:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
-	  IL_009b:  pop 
-	  IL_009c:  nop 
-	  IL_009d:  endfinally 
-	} // end handler 0
-	IL_009e:  ldloc.0 
-	IL_009f:  ret 
-    } // end of method ProjectReferenceBase::LoadProject
+	IL_005a:  ldloc.1 
+	IL_005b:  ret 
+    } // end of method ProjectSettings::GetProjectGuid
 
-    // method line 581
-    .method private static hidebysig specialname rtspecialname 
-           default void '.cctor' ()  cil managed 
+    // method line 525
+    .method public hidebysig 
+           instance default string GetTemporaryFilename (string fileName)  cil managed 
     {
-        // Method begins at RVA 0x9610
-	// Code size 11 (0xb)
-	.maxstack 8
-	IL_0000:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
-	IL_0005:  stsfld class [mscorlib]System.Collections.Stack NAnt.VSNet.ProjectReferenceBase::ProjectStack
-	IL_000a:  ret 
-    } // end of method ProjectReferenceBase::.cctor
+        // Method begins at RVA 0x12f10
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.ProjectSettings::get_TemporaryFiles()
+	IL_0007:  callvirt instance string class [System]System.CodeDom.Compiler.TempFileCollection::get_BasePath()
+	IL_000c:  ldarg.1 
+	IL_000d:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	.property instance bool IsPrivate ()
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ProjectSettings::GetTemporaryFilename
+
+	.property instance string[] Settings ()
 	{
-		.get instance default bool NAnt.VSNet.ProjectReferenceBase::get_IsPrivate () 
+		.get instance default string[] NAnt.VSNet.ProjectSettings::get_Settings () 
 	}
-	.property instance bool IsPrivateSpecified ()
+	.property instance class [mscorlib]System.IO.FileInfo ApplicationIcon ()
 	{
-		.get instance default bool NAnt.VSNet.ProjectReferenceBase::get_IsPrivateSpecified () 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VSNet.ProjectSettings::get_ApplicationIcon () 
 	}
-	.property instance bool CopyLocal ()
+	.property instance string AssemblyName ()
 	{
-		.get instance default bool NAnt.VSNet.ProjectReferenceBase::get_CopyLocal () 
+		.get instance default string NAnt.VSNet.ProjectSettings::get_AssemblyName () 
 	}
-	.property instance string Name ()
+	.property instance string AssemblyOriginatorKeyFile ()
 	{
-		.get instance default string NAnt.VSNet.ProjectReferenceBase::get_Name () 
+		.get instance default string NAnt.VSNet.ProjectSettings::get_AssemblyOriginatorKeyFile () 
 	}
-	.property instance bool IsSystem ()
+	.property instance string AssemblyKeyContainerName ()
 	{
-		.get instance default bool NAnt.VSNet.ProjectReferenceBase::get_IsSystem () 
+		.get instance default string NAnt.VSNet.ProjectSettings::get_AssemblyKeyContainerName () 
 	}
-	.property instance class NAnt.VSNet.ProjectBase Project ()
+	.property instance class [System]System.CodeDom.Compiler.TempFileCollection TemporaryFiles ()
 	{
-		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ProjectReferenceBase::get_Project () 
+		.get instance default class [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.ProjectSettings::get_TemporaryFiles () 
 	}
-  } // end of class NAnt.VSNet.ProjectReferenceBase
+	.property instance string OutputFileName ()
+	{
+		.get instance default string NAnt.VSNet.ProjectSettings::get_OutputFileName () 
+	}
+	.property instance valuetype NAnt.VSNet.ManagedOutputType OutputType ()
+	{
+		.get instance default valuetype NAnt.VSNet.ManagedOutputType NAnt.VSNet.ProjectSettings::get_OutputType () 
+	}
+	.property instance string OutputExtension ()
+	{
+		.get instance default string NAnt.VSNet.ProjectSettings::get_OutputExtension () 
+	}
+	.property instance string RootNamespace ()
+	{
+		.get instance default string NAnt.VSNet.ProjectSettings::get_RootNamespace () 
+	}
+	.property instance string Guid ()
+	{
+		.get instance default string NAnt.VSNet.ProjectSettings::get_Guid () 
+	}
+	.property instance string RunPostBuildEvent ()
+	{
+		.get instance default string NAnt.VSNet.ProjectSettings::get_RunPostBuildEvent () 
+	}
+	.property instance string PreBuildEvent ()
+	{
+		.get instance default string NAnt.VSNet.ProjectSettings::get_PreBuildEvent () 
+	}
+	.property instance string PostBuildEvent ()
+	{
+		.get instance default string NAnt.VSNet.ProjectSettings::get_PostBuildEvent () 
+	}
+	.property instance class NAnt.VSNet.ManagedProjectBase Project ()
+	{
+		.get instance default class NAnt.VSNet.ManagedProjectBase NAnt.VSNet.ProjectSettings::get_Project () 
+	}
+  } // end of class NAnt.VSNet.ProjectSettings
 }
 
 .namespace NAnt.VSNet
@@ -28954,11 +30255,11 @@
     .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
 
-    // method line 582
+    // method line 526
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (string relativePath, string parentName, class [System.Xml]System.Xml.XmlElement elem, class NAnt.VSNet.VcProjectConfiguration parentConfig, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
     {
-        // Method begins at RVA 0x130ec
+        // Method begins at RVA 0x12f38
 	// Code size 151 (0x97)
 	.maxstack 5
 	.locals init (
@@ -29023,11 +30324,11 @@
 	IL_0096:  ret 
     } // end of method VcFileConfiguration::.ctor
 
-    // method line 583
+    // method line 527
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (string relativePath, string parentName, class NAnt.VSNet.VcProjectConfiguration parentConfig, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
     {
-        // Method begins at RVA 0x13190
+        // Method begins at RVA 0x12fdc
 	// Code size 97 (0x61)
 	.maxstack 4
 	IL_0000:  ldarg.0 
@@ -29071,11 +30372,11 @@
 	IL_0060:  ret 
     } // end of method VcFileConfiguration::.ctor
 
-    // method line 584
+    // method line 528
     .method public hidebysig specialname 
            instance default bool get_ExcludeFromBuild ()  cil managed 
     {
-        // Method begins at RVA 0x13200
+        // Method begins at RVA 0x1304c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -29090,11 +30391,11 @@
 	IL_000e:  ret 
     } // end of method VcFileConfiguration::get_ExcludeFromBuild
 
-    // method line 585
+    // method line 529
     .method public hidebysig specialname 
            instance default string get_RelativePath ()  cil managed 
     {
-        // Method begins at RVA 0x1321c
+        // Method begins at RVA 0x13068
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -29109,11 +30410,11 @@
 	IL_000e:  ret 
     } // end of method VcFileConfiguration::get_RelativePath
 
-    // method line 586
+    // method line 530
     .method public virtual hidebysig specialname 
            instance default string get_RelativeOutputDir ()  cil managed 
     {
-        // Method begins at RVA 0x13238
+        // Method begins at RVA 0x13084
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -29131,11 +30432,11 @@
 	IL_0019:  ret 
     } // end of method VcFileConfiguration::get_RelativeOutputDir
 
-    // method line 587
+    // method line 531
     .method famorassem virtual hidebysig 
            instance default string ExpandMacro (string macro)  cil managed 
     {
-        // Method begins at RVA 0x13260
+        // Method begins at RVA 0x130ac
 	// Code size 388 (0x184)
 	.maxstack 3
 	.locals init (
@@ -29272,11 +30573,11 @@
 	IL_0183:  ret 
     } // end of method VcFileConfiguration::ExpandMacro
 
-    // method line 588
+    // method line 532
     .method public virtual hidebysig specialname 
            instance default string get_IntermediateDir ()  cil managed 
     {
-        // Method begins at RVA 0x133f0
+        // Method begins at RVA 0x1323c
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -29294,11 +30595,11 @@
 	IL_0019:  ret 
     } // end of method VcFileConfiguration::get_IntermediateDir
 
-    // method line 589
+    // method line 533
     .method public virtual hidebysig specialname 
            instance default string get_OutputPath ()  cil managed 
     {
-        // Method begins at RVA 0x13418
+        // Method begins at RVA 0x13264
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -29314,11 +30615,11 @@
 	IL_0013:  ret 
     } // end of method VcFileConfiguration::get_OutputPath
 
-    // method line 590
+    // method line 534
     .method public virtual hidebysig specialname 
            instance default string get_ReferencesPath ()  cil managed 
     {
-        // Method begins at RVA 0x13438
+        // Method begins at RVA 0x13284
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -29336,11 +30637,11 @@
 	IL_0019:  ret 
     } // end of method VcFileConfiguration::get_ReferencesPath
 
-    // method line 591
+    // method line 535
     .method public virtual hidebysig 
            instance default string GetToolSetting (string toolName, string settingName, string projectDefault)  cil managed 
     {
-        // Method begins at RVA 0x13460
+        // Method begins at RVA 0x132ac
 	// Code size 98 (0x62)
 	.maxstack 6
 	.locals init (
@@ -29394,11 +30695,11 @@
 	IL_0061:  ret 
     } // end of method VcFileConfiguration::GetToolSetting
 
-    // method line 592
+    // method line 536
     .method public virtual hidebysig 
            instance default class [mscorlib]System.Collections.Hashtable GetToolArguments (string toolName, class NAnt.VSNet.VcArgumentMap argMap, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup ignoreGroup)  cil managed 
     {
-        // Method begins at RVA 0x134d0
+        // Method begins at RVA 0x1331c
 	// Code size 230 (0xe6)
 	.maxstack 5
 	.locals init (
@@ -29537,1126 +30838,1602 @@
 
 .namespace NAnt.VSNet
 {
-  .class private auto ansi beforefieldinit VCProjectProvider
-  	extends [mscorlib]System.Object
-  	implements NAnt.VSNet.Extensibility.IProjectBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+  .class public auto ansi abstract beforefieldinit ProjectReferenceBase
+  	extends NAnt.VSNet.ReferenceBase
+  {
+    .field  private static initonly  class [mscorlib]System.Collections.Stack ProjectStack
 
-    // method line 593
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 537
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent)  cil managed 
     {
-        // Method begins at RVA 0x135d4
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x10834
+	// Code size 10 (0xa)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method VCProjectProvider::.ctor
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.VSNet.ReferenceBase::'.ctor'(class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase)
+	IL_0008:  nop 
+	IL_0009:  ret 
+    } // end of method ProjectReferenceBase::.ctor
 
-    // method line 594
-    .method public final virtual hidebysig newslot 
-           instance default int32 IsSupported (string projectExt, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    // method line 538
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default bool get_IsPrivate ()  cil managed 
     {
-        // Method begins at RVA 0x135dc
-	// Code size 52 (0x34)
-	.maxstack 2
-	.locals init (
-		int32	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr ".vcproj"
-	IL_0007:  call bool string::op_Equality(string, string)
-	IL_000c:  brfalse IL_0018
+        // Method begins at RVA 0x0
+    } // end of method ProjectReferenceBase::get_IsPrivate
 
-	IL_0011:  ldc.i4.5 
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0032
+    // method line 539
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default bool get_IsPrivateSpecified ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ProjectReferenceBase::get_IsPrivateSpecified
 
-	IL_0018:  ldarg.2 
-	IL_0019:  call bool class NAnt.VSNet.VcProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
-	IL_001e:  brfalse IL_002b
+    // method line 540
+    .method public virtual hidebysig specialname 
+           instance default bool get_CopyLocal ()  cil managed 
+    {
+        // Method begins at RVA 0x10840
+	// Code size 32 (0x20)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance bool class NAnt.VSNet.ProjectReferenceBase::get_IsPrivateSpecified()
+	IL_0007:  brfalse IL_0017
 
-	IL_0023:  ldc.i4.s 0x0a
-	IL_0025:  stloc.0 
-	IL_0026:  br IL_0032
+	IL_000c:  ldarg.0 
+	IL_000d:  callvirt instance bool class NAnt.VSNet.ProjectReferenceBase::get_IsPrivate()
+	IL_0012:  br IL_0018
 
-	IL_002b:  ldc.i4.0 
-	IL_002c:  stloc.0 
-	IL_002d:  br IL_0032
+	IL_0017:  ldc.i4.1 
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_001e
 
-	IL_0032:  ldloc.0 
-	IL_0033:  ret 
-    } // end of method VCProjectProvider::IsSupported
+	IL_001e:  ldloc.0 
+	IL_001f:  ret 
+    } // end of method ProjectReferenceBase::get_CopyLocal
 
-    // method line 595
-    .method public final virtual hidebysig newslot 
-           instance default class NAnt.VSNet.ProjectBase GetInstance (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
+    // method line 541
+    .method public virtual hidebysig specialname 
+           instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x1361c
-	// Code size 27 (0x1b)
-	.maxstack 8
+        // Method begins at RVA 0x1086c
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.ProjectBase	V_0)
+		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  ldarg.s 4
-	IL_0006:  ldarg.s 5
-	IL_0008:  ldarg.s 6
-	IL_000a:  ldarg.s 7
-	IL_000c:  ldarg.s 8
-	IL_000e:  newobj instance void class NAnt.VSNet.VcProject::'.ctor'(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_0019
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
+	IL_0007:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method VCProjectProvider::GetInstance
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ProjectReferenceBase::get_Name
 
-    // method line 596
-    .method public final virtual hidebysig newslot 
-           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    // method line 542
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsSystem ()  cil managed 
     {
-        // Method begins at RVA 0x13644
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x1088c
+	// Code size 10 (0xa)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		bool	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call string class NAnt.VSNet.VcProject::LoadGuid(class [System.Xml]System.Xml.XmlElement)
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0008
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method VCProjectProvider::LoadGuid
+	IL_0008:  ldloc.0 
+	IL_0009:  ret 
+    } // end of method ProjectReferenceBase::get_IsSystem
 
-  } // end of class NAnt.VSNet.VCProjectProvider
-}
+    // method line 543
+    .method public virtual hidebysig 
+           instance default string GetPrimaryOutputFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x108a4
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance string class NAnt.VSNet.ProjectBase::GetOutputPath(class NAnt.VSNet.Configuration)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-.namespace NAnt.VSNet
-{
-  .class private auto ansi beforefieldinit VBProjectProvider
-  	extends [mscorlib]System.Object
-  	implements NAnt.VSNet.Extensibility.IProjectBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ProjectReferenceBase::GetPrimaryOutputFile
 
-    // method line 597
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 544
+    .method public virtual hidebysig 
+           instance default void GetOutputFiles (class NAnt.VSNet.Configuration solutionConfiguration, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
     {
-        // Method begins at RVA 0x1365f
-	// Code size 7 (0x7)
+        // Method begins at RVA 0x108c5
+	// Code size 15 (0xf)
 	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method VBProjectProvider::.ctor
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class NAnt.VSNet.ProjectBase::GetOutputFiles(class NAnt.VSNet.Configuration, class [mscorlib]System.Collections.Hashtable)
+	IL_000e:  ret 
+    } // end of method ProjectReferenceBase::GetOutputFiles
 
-    // method line 598
-    .method public final virtual hidebysig newslot 
-           instance default int32 IsSupported (string projectExt, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    // method line 545
+    .method public virtual hidebysig 
+           instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x13668
-	// Code size 52 (0x34)
+        // Method begins at RVA 0x108d8
+	// Code size 128 (0x80)
 	.maxstack 2
 	.locals init (
-		int32	V_0)
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		class NAnt.VSNet.ConfigurationBase	V_1,
+		string	V_2,
+		class [System]System.Collections.Specialized.StringCollection	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr ".vbproj"
-	IL_0007:  call bool string::op_Equality(string, string)
-	IL_000c:  brfalse IL_0018
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldtoken NAnt.VSNet.VBProject
+	IL_0008:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0013:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_0018:  callvirt instance bool class [mscorlib]System.Type::IsAssignableFrom(class [mscorlib]System.Type)
+	IL_001d:  brfalse IL_0036
 
-	IL_0011:  ldc.i4.5 
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0032
+	IL_0022:  nop 
+	IL_0023:  ldarg.0 
+	IL_0024:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
+	IL_0029:  ldarg.1 
+	IL_002a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.ProjectBase::GetAssemblyReferences(class NAnt.VSNet.Configuration)
+	IL_002f:  stloc.0 
+	IL_0030:  nop 
+	IL_0031:  br IL_003e
 
-	IL_0018:  ldarg.2 
-	IL_0019:  call bool class NAnt.VSNet.VBProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
-	IL_001e:  brfalse IL_002b
+	IL_0036:  nop 
+	IL_0037:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_003c:  stloc.0 
+	IL_003d:  nop 
+	IL_003e:  ldarg.0 
+	IL_003f:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
+	IL_0044:  ldarg.1 
+	IL_0045:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ProjectBase::GetConfiguration(class NAnt.VSNet.Configuration)
+	IL_004a:  stloc.1 
+	IL_004b:  ldloc.1 
+	IL_004c:  brfalse IL_0077
 
-	IL_0023:  ldc.i4.s 0x0a
-	IL_0025:  stloc.0 
-	IL_0026:  br IL_0032
+	IL_0051:  nop 
+	IL_0052:  ldloc.1 
+	IL_0053:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
+	IL_0058:  stloc.2 
+	IL_0059:  ldloc.2 
+	IL_005a:  brfalse IL_0076
 
-	IL_002b:  ldc.i4.0 
-	IL_002c:  stloc.0 
-	IL_002d:  br IL_0032
+	IL_005f:  nop 
+	IL_0060:  ldloc.2 
+	IL_0061:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_0066:  brfalse IL_0075
 
-	IL_0032:  ldloc.0 
-	IL_0033:  ret 
-    } // end of method VBProjectProvider::IsSupported
+	IL_006b:  nop 
+	IL_006c:  ldloc.0 
+	IL_006d:  ldloc.2 
+	IL_006e:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_0073:  pop 
+	IL_0074:  nop 
+	IL_0075:  nop 
+	IL_0076:  nop 
+	IL_0077:  ldloc.0 
+	IL_0078:  stloc.3 
+	IL_0079:  br IL_007e
 
-    // method line 599
-    .method public final virtual hidebysig newslot 
-           instance default class NAnt.VSNet.ProjectBase GetInstance (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
+	IL_007e:  ldloc.3 
+	IL_007f:  ret 
+    } // end of method ProjectReferenceBase::GetAssemblyReferences
+
+    // method line 546
+    .method public virtual hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetTimestamp (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x136a8
-	// Code size 27 (0x1b)
+        // Method begins at RVA 0x10964
+	// Code size 48 (0x30)
+	.maxstack 2
+	.locals init (
+		string	V_0,
+		valuetype [mscorlib]System.DateTime	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectReferenceBase::get_Project()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance string class NAnt.VSNet.ProjectBase::GetOutputPath(class NAnt.VSNet.Configuration)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  brfalse IL_0022
+
+	IL_0014:  nop 
+	IL_0015:  ldarg.0 
+	IL_0016:  ldloc.0 
+	IL_0017:  call instance valuetype [mscorlib]System.DateTime class NAnt.VSNet.ReferenceBase::GetFileTimestamp(string)
+	IL_001c:  stloc.1 
+	IL_001d:  br IL_002e
+
+	IL_0022:  nop 
+	IL_0023:  ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MaxValue
+	IL_0028:  stloc.1 
+	IL_0029:  br IL_002e
+
+	IL_002e:  ldloc.1 
+	IL_002f:  ret 
+    } // end of method ProjectReferenceBase::GetTimestamp
+
+    // method line 547
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default class NAnt.VSNet.ProjectBase get_Project ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ProjectReferenceBase::get_Project
+
+    // method line 548
+    .method family hidebysig 
+           instance default class NAnt.VSNet.ProjectBase LoadProject (class NAnt.VSNet.SolutionBase solution, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class [mscorlib]System.IO.DirectoryInfo outputDir, string projectFile)  cil managed 
+    {
+        // Method begins at RVA 0x109a0
+	// Code size 160 (0xa0)
 	.maxstack 8
 	.locals init (
 		class NAnt.VSNet.ProjectBase	V_0)
 	IL_0000:  nop 
+	IL_0001:  ldsfld class [mscorlib]System.Collections.Stack NAnt.VSNet.ProjectReferenceBase::ProjectStack
+	IL_0006:  ldarg.s 5
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Stack::Contains(object)
+	IL_000d:  brfalse IL_003f
+
+	IL_0012:  nop 
+	IL_0013:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0018:  ldstr "Circular reference to \"{0}\" detected in project \"{1}\"."
+	IL_001d:  ldarg.s 5
+	IL_001f:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_0024:  ldarg.0 
+	IL_0025:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_002a:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_002f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_0034:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0039:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_003e:  throw 
+	.try { // 0
+	  IL_003f:  nop 
+	  IL_0040:  ldsfld class [mscorlib]System.Collections.Stack NAnt.VSNet.ProjectReferenceBase::ProjectStack
+	  IL_0045:  ldarg.s 5
+	  IL_0047:  callvirt instance void class [mscorlib]System.Collections.Stack::Push(object)
+	  IL_004c:  ldarg.0 
+	  IL_004d:  ldc.i4 2000
+	  IL_0052:  ldstr "Loading referenced project '{0}'."
+	  IL_0057:  ldc.i4.1 
+	  IL_0058:  newarr [mscorlib]System.Object
+	  IL_005d:  dup 
+	  IL_005e:  ldc.i4.0 
+	  IL_005f:  ldarg.s 5
+	  IL_0061:  stelem.ref 
+	  IL_0062:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  IL_0067:  ldarg.0 
+	  IL_0068:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	  IL_006d:  callvirt instance class NAnt.VSNet.ProjectFactory class NAnt.VSNet.Tasks.SolutionTask::get_ProjectFactory()
+	  IL_0072:  ldarg.1 
+	  IL_0073:  ldarg.0 
+	  IL_0074:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	  IL_0079:  ldarg.2 
+	  IL_007a:  ldarg.3 
+	  IL_007b:  ldarg.0 
+	  IL_007c:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ReferenceBase::get_ReferencesResolver()
+	  IL_0081:  ldarg.s 4
+	  IL_0083:  ldarg.s 5
+	  IL_0085:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectFactory::LoadProject(class NAnt.VSNet.SolutionBase, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo, string)
+	  IL_008a:  stloc.0 
+	  IL_008b:  leave IL_009e
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0090:  nop 
+	  IL_0091:  ldsfld class [mscorlib]System.Collections.Stack NAnt.VSNet.ProjectReferenceBase::ProjectStack
+	  IL_0096:  callvirt instance object class [mscorlib]System.Collections.Stack::Pop()
+	  IL_009b:  pop 
+	  IL_009c:  nop 
+	  IL_009d:  endfinally 
+	} // end handler 0
+	IL_009e:  ldloc.0 
+	IL_009f:  ret 
+    } // end of method ProjectReferenceBase::LoadProject
+
+    // method line 549
+    .method private static hidebysig specialname rtspecialname 
+           default void '.cctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x10a5c
+	// Code size 11 (0xb)
+	.maxstack 8
+	IL_0000:  newobj instance void class [mscorlib]System.Collections.Stack::'.ctor'()
+	IL_0005:  stsfld class [mscorlib]System.Collections.Stack NAnt.VSNet.ProjectReferenceBase::ProjectStack
+	IL_000a:  ret 
+    } // end of method ProjectReferenceBase::.cctor
+
+	.property instance bool IsPrivate ()
+	{
+		.get instance default bool NAnt.VSNet.ProjectReferenceBase::get_IsPrivate () 
+	}
+	.property instance bool IsPrivateSpecified ()
+	{
+		.get instance default bool NAnt.VSNet.ProjectReferenceBase::get_IsPrivateSpecified () 
+	}
+	.property instance bool CopyLocal ()
+	{
+		.get instance default bool NAnt.VSNet.ProjectReferenceBase::get_CopyLocal () 
+	}
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.VSNet.ProjectReferenceBase::get_Name () 
+	}
+	.property instance bool IsSystem ()
+	{
+		.get instance default bool NAnt.VSNet.ProjectReferenceBase::get_IsSystem () 
+	}
+	.property instance class NAnt.VSNet.ProjectBase Project ()
+	{
+		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ProjectReferenceBase::get_Project () 
+	}
+  } // end of class NAnt.VSNet.ProjectReferenceBase
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi abstract beforefieldinit AssemblyReferenceBase
+  	extends NAnt.VSNet.FileReferenceBase
+  {
+
+    // method line 550
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache)  cil managed 
+    {
+        // Method begins at RVA 0xe38c
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  ldarg.0 
 	IL_0001:  ldarg.1 
 	IL_0002:  ldarg.2 
 	IL_0003:  ldarg.3 
 	IL_0004:  ldarg.s 4
-	IL_0006:  ldarg.s 5
-	IL_0008:  ldarg.s 6
-	IL_000a:  ldarg.s 7
-	IL_000c:  ldarg.s 8
-	IL_000e:  newobj instance void class NAnt.VSNet.VBProject::'.ctor'(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0006:  call instance void class NAnt.VSNet.FileReferenceBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
+	IL_000b:  nop 
+	IL_000c:  ret 
+    } // end of method AssemblyReferenceBase::.ctor
+
+    // method line 551
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default bool get_IsPrivate ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method AssemblyReferenceBase::get_IsPrivate
+
+    // method line 552
+    .method family virtual hidebysig newslot abstract specialname 
+           instance default bool get_IsPrivateSpecified ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method AssemblyReferenceBase::get_IsPrivateSpecified
+
+    // method line 553
+    .method public virtual hidebysig specialname 
+           instance default bool get_CopyLocal ()  cil managed 
+    {
+        // Method begins at RVA 0xe39c
+	// Code size 76 (0x4c)
+	.maxstack 2
+	.locals init (
+		bool	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance bool class NAnt.VSNet.AssemblyReferenceBase::get_IsPrivateSpecified()
+	IL_0007:  brfalse IL_0019
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance bool class NAnt.VSNet.AssemblyReferenceBase::get_IsPrivate()
 	IL_0013:  stloc.0 
-	IL_0014:  br IL_0019
+	IL_0014:  br IL_004a
 
-	IL_0019:  ldloc.0 
-	IL_001a:  ret 
-    } // end of method VBProjectProvider::GetInstance
+	IL_0019:  nop 
+	IL_001a:  ldarg.0 
+	IL_001b:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
+	IL_0020:  stloc.1 
+	IL_0021:  ldloc.1 
+	IL_0022:  brfalse IL_0043
 
-    // method line 600
-    .method public final virtual hidebysig newslot 
-           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+	IL_0027:  ldarg.0 
+	IL_0028:  callvirt instance bool class NAnt.VSNet.ReferenceBase::get_IsSystem()
+	IL_002d:  brtrue IL_0043
+
+	IL_0032:  ldarg.0 
+	IL_0033:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.FileReferenceBase::get_GacCache()
+	IL_0038:  ldloc.1 
+	IL_0039:  callvirt instance bool class [NAnt.Core]NAnt.Core.Util.GacCache::IsAssemblyInGac(string)
+	IL_003e:  ldc.i4.0 
+	IL_003f:  ceq 
+	IL_0041:  br.s IL_0044
+
+	IL_0043:  ldc.i4.0 
+	IL_0044:  stloc.0 
+	IL_0045:  br IL_004a
+
+	IL_004a:  ldloc.0 
+	IL_004b:  ret 
+    } // end of method AssemblyReferenceBase::get_CopyLocal
+
+    // method line 554
+    .method family virtual hidebysig specialname 
+           instance default bool get_IsSystem ()  cil managed 
+    {
+        // Method begins at RVA 0xe3f4
+	// Code size 76 (0x4c)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		bool	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  brtrue IL_0016
+
+	IL_000e:  nop 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  stloc.1 
+	IL_0011:  br IL_004a
+
+	IL_0016:  ldloc.0 
+	IL_0017:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_001c:  ldarg.0 
+	IL_001d:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_0022:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0027:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_002c:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_FrameworkAssemblyDirectory()
+	IL_0031:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0036:  ldc.i4.1 
+	IL_0037:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_003c:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_0041:  ldc.i4.0 
+	IL_0042:  ceq 
+	IL_0044:  stloc.1 
+	IL_0045:  br IL_004a
+
+	IL_004a:  ldloc.1 
+	IL_004b:  ret 
+    } // end of method AssemblyReferenceBase::get_IsSystem
+
+    // method line 555
+    .method public virtual hidebysig 
+           instance default string GetPrimaryOutputFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x136d0
+        // Method begins at RVA 0xe44c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call string class NAnt.VSNet.ManagedProjectBase::LoadGuid(class [System.Xml]System.Xml.XmlElement)
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method VBProjectProvider::LoadGuid
+    } // end of method AssemblyReferenceBase::GetPrimaryOutputFile
 
-  } // end of class NAnt.VSNet.VBProjectProvider
-}
+    // method line 556
+    .method public virtual hidebysig 
+           instance default void GetOutputFiles (class NAnt.VSNet.Configuration solutionConfiguration, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
+    {
+        // Method begins at RVA 0xe468
+	// Code size 25 (0x19)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  brfalse IL_0018
 
-.namespace NAnt.VSNet
-{
-  .class private auto ansi sealed beforefieldinit SolutionFactory
-  	extends [mscorlib]System.Object
-  {
-    .field  private initonly  class [mscorlib]System.Collections.ArrayList _projectProviders
+	IL_000e:  nop 
+	IL_000f:  ldarg.0 
+	IL_0010:  ldloc.0 
+	IL_0011:  ldarg.2 
+	IL_0012:  call instance void class NAnt.VSNet.FileReferenceBase::GetAssemblyOutputFiles(string, class [mscorlib]System.Collections.Hashtable)
+	IL_0017:  nop 
+	IL_0018:  ret 
+    } // end of method AssemblyReferenceBase::GetOutputFiles
 
-    // method line 601
-    .method private hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
+    // method line 557
+    .method public virtual hidebysig 
+           instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x136eb
-	// Code size 19 (0x13)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0006:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.SolutionFactory::_projectProviders
-	IL_000b:  ldarg.0 
-	IL_000c:  call instance void object::'.ctor'()
-	IL_0011:  nop 
-	IL_0012:  ret 
-    } // end of method SolutionFactory::.ctor
+        // Method begins at RVA 0xe490
+	// Code size 149 (0x95)
+	.maxstack 7
+	.locals init (
+		class [System]System.Collections.Specialized.StringCollection	V_0,
+		string	V_1,
+		class [System]System.Collections.Specialized.StringCollection	V_2)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
+	IL_000d:  stloc.1 
+	IL_000e:  ldloc.1 
+	IL_000f:  brtrue IL_0049
 
-    // method line 602
-    .method assembly static hidebysig 
-           default class NAnt.VSNet.SolutionFactory Create ()  cil managed 
+	IL_0014:  nop 
+	IL_0015:  ldarg.0 
+	IL_0016:  ldc.i4 4000
+	IL_001b:  ldstr "Assembly \"{0}\", referenced by project \"{1}\", could not be resolved."
+	IL_0020:  ldc.i4.2 
+	IL_0021:  newarr [mscorlib]System.Object
+	IL_0026:  dup 
+	IL_0027:  ldc.i4.0 
+	IL_0028:  ldarg.0 
+	IL_0029:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	IL_002e:  stelem.ref 
+	IL_002f:  dup 
+	IL_0030:  ldc.i4.1 
+	IL_0031:  ldarg.0 
+	IL_0032:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0037:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_003c:  stelem.ref 
+	IL_003d:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0042:  ldloc.0 
+	IL_0043:  stloc.2 
+	IL_0044:  br IL_0093
+
+	IL_0049:  ldloc.1 
+	IL_004a:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_004f:  brtrue IL_0084
+
+	IL_0054:  nop 
+	IL_0055:  ldarg.0 
+	IL_0056:  ldc.i4 4000
+	IL_005b:  ldstr "Assembly \"{0}\", referenced by project \"{1}\", does not exist."
+	IL_0060:  ldc.i4.2 
+	IL_0061:  newarr [mscorlib]System.Object
+	IL_0066:  dup 
+	IL_0067:  ldc.i4.0 
+	IL_0068:  ldloc.1 
+	IL_0069:  stelem.ref 
+	IL_006a:  dup 
+	IL_006b:  ldc.i4.1 
+	IL_006c:  ldarg.0 
+	IL_006d:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0072:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_0077:  stelem.ref 
+	IL_0078:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_007d:  ldloc.0 
+	IL_007e:  stloc.2 
+	IL_007f:  br IL_0093
+
+	IL_0084:  ldloc.0 
+	IL_0085:  ldloc.1 
+	IL_0086:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	IL_008b:  pop 
+	IL_008c:  ldloc.0 
+	IL_008d:  stloc.2 
+	IL_008e:  br IL_0093
+
+	IL_0093:  ldloc.2 
+	IL_0094:  ret 
+    } // end of method AssemblyReferenceBase::GetAssemblyReferences
+
+    // method line 558
+    .method public virtual hidebysig 
+           instance default valuetype [mscorlib]System.DateTime GetTimestamp (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0x13700
-	// Code size 14 (0xe)
-	.maxstack 1
+        // Method begins at RVA 0xe534
+	// Code size 41 (0x29)
+	.maxstack 2
 	.locals init (
-		class NAnt.VSNet.SolutionFactory	V_0)
+		string	V_0,
+		valuetype [mscorlib]System.DateTime	V_1)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class NAnt.VSNet.SolutionFactory::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveAssemblyReference()
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  brtrue IL_001a
 
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method SolutionFactory::Create
+	IL_000e:  nop 
+	IL_000f:  ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MaxValue
+	IL_0014:  stloc.1 
+	IL_0015:  br IL_0027
 
-    // method line 603
+	IL_001a:  ldarg.0 
+	IL_001b:  ldloc.0 
+	IL_001c:  call instance valuetype [mscorlib]System.DateTime class NAnt.VSNet.ReferenceBase::GetFileTimestamp(string)
+	IL_0021:  stloc.1 
+	IL_0022:  br IL_0027
+
+	IL_0027:  ldloc.1 
+	IL_0028:  ret 
+    } // end of method AssemblyReferenceBase::GetTimestamp
+
+    // method line 559
     .method public hidebysig 
-           instance default class NAnt.VSNet.SolutionBase LoadSolution (class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver)  cil managed 
+           instance default class NAnt.VSNet.ProjectReferenceBase CreateProjectReference (class NAnt.VSNet.ProjectBase project)  cil managed 
     {
-        // Method begins at RVA 0x1371c
-	// Code size 147 (0x93)
-	.maxstack 6
+        // Method begins at RVA 0xe56c
+	// Code size 28 (0x1c)
+	.maxstack 4
 	.locals init (
-		class NAnt.VSNet.SolutionBase	V_0,
-		string	V_1,
-		class [mscorlib]System.IO.StreamReader	V_2,
-		class NAnt.VSNet.Extensibility.ISolutionBuildProvider	V_3)
+		class NAnt.VSNet.ProjectReferenceBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
-	IL_0007:  brtrue IL_001d
+	IL_0002:  ldarg.1 
+	IL_0003:  ldarg.0 
+	IL_0004:  callvirt instance bool class NAnt.VSNet.AssemblyReferenceBase::get_IsPrivateSpecified()
+	IL_0009:  ldarg.0 
+	IL_000a:  callvirt instance bool class NAnt.VSNet.AssemblyReferenceBase::get_IsPrivate()
+	IL_000f:  callvirt instance class NAnt.VSNet.ProjectReferenceBase class NAnt.VSNet.ProjectBase::CreateProjectReference(class NAnt.VSNet.ProjectBase, bool, bool)
+	IL_0014:  stloc.0 
+	IL_0015:  br IL_001a
 
-	IL_000c:  nop 
-	IL_000d:  ldarg.1 
-	IL_000e:  ldarg.2 
-	IL_000f:  ldarg.3 
-	IL_0010:  ldarg.s 4
-	IL_0012:  newobj instance void class NAnt.VSNet.GenericSolution::'.ctor'(class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver)
-	IL_0017:  stloc.0 
-	IL_0018:  br IL_0091
+	IL_001a:  ldloc.0 
+	IL_001b:  ret 
+    } // end of method AssemblyReferenceBase::CreateProjectReference
 
-	IL_001d:  nop 
-	IL_001e:  ldarg.1 
-	IL_001f:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
-	IL_0024:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0029:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
-	IL_002e:  ldc.i4.1 
-	IL_002f:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
-	IL_0034:  stloc.2 
-	.try { // 0
-	  IL_0035:  nop 
-	  IL_0036:  ldloc.2 
-	  IL_0037:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
-	  IL_003c:  stloc.1 
-	  IL_003d:  nop 
-	  IL_003e:  leave IL_0050
+    // method line 560
+    .method family virtual hidebysig newslot abstract 
+           instance default string ResolveAssemblyReference ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method AssemblyReferenceBase::ResolveAssemblyReference
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0043:  ldloc.2 
-	  IL_0044:  brfalse IL_004f
+    // method line 561
+    .method family hidebysig 
+           instance default string ResolveFromFolderList (class [System]System.Collections.Specialized.StringCollection folderList, string fileName)  cil managed 
+    {
+        // Method begins at RVA 0xe594
+	// Code size 267 (0x10b)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		class [System]System.Collections.Specialized.StringEnumerator	V_1,
+		string	V_2,
+		string	V_3,
+		class [mscorlib]System.Exception	V_4,
+		class [mscorlib]System.IDisposable	V_5)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4 1000
+	IL_0007:  ldstr "Attempting to resolve \"{0}\" in AssemblyFolders..."
+	IL_000c:  ldc.i4.1 
+	IL_000d:  newarr [mscorlib]System.Object
+	IL_0012:  dup 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  ldarg.2 
+	IL_0015:  stelem.ref 
+	IL_0016:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_001b:  nop 
+	IL_001c:  ldarg.1 
+	IL_001d:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0022:  stloc.1 
+	.try { // 1
+	  IL_0023:  br IL_00dc
 
-	  IL_0049:  ldloc.2 
-	  IL_004a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_004f:  endfinally 
-	} // end handler 0
-	IL_0050:  ldarg.0 
-	IL_0051:  ldloc.1 
-	IL_0052:  call instance class NAnt.VSNet.Extensibility.ISolutionBuildProvider class NAnt.VSNet.SolutionFactory::FindProvider(string)
-	IL_0057:  stloc.3 
-	IL_0058:  ldloc.3 
-	IL_0059:  brfalse IL_0071
+	  IL_0028:  ldloc.1 
+	  IL_0029:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_002e:  stloc.0 
+	  IL_002f:  nop 
+	  IL_0030:  ldarg.0 
+	  IL_0031:  ldc.i4 1000
+	  IL_0036:  ldstr "Checking \"{0}\"..."
+	  IL_003b:  ldc.i4.1 
+	  IL_003c:  newarr [mscorlib]System.Object
+	  IL_0041:  dup 
+	  IL_0042:  ldc.i4.0 
+	  IL_0043:  ldloc.0 
+	  IL_0044:  stelem.ref 
+	  IL_0045:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	  .try { // 0
+	    IL_004a:  nop 
+	    IL_004b:  ldloc.0 
+	    IL_004c:  ldarg.2 
+	    IL_004d:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	    IL_0052:  stloc.2 
+	    IL_0053:  ldloc.2 
+	    IL_0054:  call bool class [mscorlib]System.IO.File::Exists(string)
+	    IL_0059:  brfalse IL_0080
 
-	IL_005e:  nop 
-	IL_005f:  ldloc.3 
-	IL_0060:  ldloc.1 
-	IL_0061:  ldarg.1 
-	IL_0062:  ldarg.2 
-	IL_0063:  ldarg.3 
-	IL_0064:  ldarg.s 4
-	IL_0066:  callvirt instance class NAnt.VSNet.SolutionBase class NAnt.VSNet.Extensibility.ISolutionBuildProvider::GetInstance(string, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver)
-	IL_006b:  stloc.0 
-	IL_006c:  br IL_0091
+	    IL_005e:  nop 
+	    IL_005f:  ldarg.0 
+	    IL_0060:  ldc.i4 1000
+	    IL_0065:  ldstr "Assembly found in \"{0}\"."
+	    IL_006a:  ldc.i4.1 
+	    IL_006b:  newarr [mscorlib]System.Object
+	    IL_0070:  dup 
+	    IL_0071:  ldc.i4.0 
+	    IL_0072:  ldloc.0 
+	    IL_0073:  stelem.ref 
+	    IL_0074:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	    IL_0079:  ldloc.2 
+	    IL_007a:  stloc.3 
+	    IL_007b:  leave IL_0109
 
-	IL_0071:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0076:  ldstr "Solution format of file '{0}' is not supported."
-	IL_007b:  ldarg.1 
-	IL_007c:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
-	IL_0081:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0086:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_008b:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0090:  throw 
-	IL_0091:  ldloc.0 
-	IL_0092:  ret 
-    } // end of method SolutionFactory::LoadSolution
+	    IL_0080:  nop 
+	    IL_0081:  ldarg.0 
+	    IL_0082:  ldc.i4 1000
+	    IL_0087:  ldstr "Assembly not found in \"{0}\"."
+	    IL_008c:  ldc.i4.1 
+	    IL_008d:  newarr [mscorlib]System.Object
+	    IL_0092:  dup 
+	    IL_0093:  ldc.i4.0 
+	    IL_0094:  ldloc.0 
+	    IL_0095:  stelem.ref 
+	    IL_0096:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	    IL_009b:  nop 
+	    IL_009c:  nop 
+	    IL_009d:  leave IL_00db
 
-    // method line 604
-    .method public hidebysig 
-           instance default void RegisterProvider (class NAnt.VSNet.Extensibility.ISolutionBuildProvider provider)  cil managed 
+	  } // end .try 0
+	  catch class [mscorlib]System.Exception { // 0
+	    IL_00a2:  stloc.s 4
+	    IL_00a4:  nop 
+	    IL_00a5:  ldarg.0 
+	    IL_00a6:  ldc.i4 2000
+	    IL_00ab:  ldstr "Error resolving reference to \"{0}\" in directory \"{1}\"."
+	    IL_00b0:  ldc.i4.2 
+	    IL_00b1:  newarr [mscorlib]System.Object
+	    IL_00b6:  dup 
+	    IL_00b7:  ldc.i4.0 
+	    IL_00b8:  ldarg.2 
+	    IL_00b9:  stelem.ref 
+	    IL_00ba:  dup 
+	    IL_00bb:  ldc.i4.1 
+	    IL_00bc:  ldloc.0 
+	    IL_00bd:  stelem.ref 
+	    IL_00be:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	    IL_00c3:  ldarg.0 
+	    IL_00c4:  ldc.i4 1000
+	    IL_00c9:  ldloc.s 4
+	    IL_00cb:  callvirt instance string object::ToString()
+	    IL_00d0:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	    IL_00d5:  nop 
+	    IL_00d6:  leave IL_00db
+
+	  } // end handler 0
+	  IL_00db:  nop 
+	  IL_00dc:  ldloc.1 
+	  IL_00dd:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_00e2:  brtrue IL_0028
+
+	  IL_00e7:  leave IL_0102
+
+	} // end .try 1
+	finally  { // 1
+	  IL_00ec:  ldloc.1 
+	  IL_00ed:  isinst [mscorlib]System.IDisposable
+	  IL_00f2:  dup 
+	  IL_00f3:  stloc.s 5
+	  IL_00f5:  brfalse IL_0101
+
+	  IL_00fa:  ldloc.s 5
+	  IL_00fc:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0101:  endfinally 
+	} // end handler 1
+	IL_0102:  ldnull 
+	IL_0103:  stloc.3 
+	IL_0104:  br IL_0109
+
+	IL_0109:  ldloc.3 
+	IL_010a:  ret 
+    } // end of method AssemblyReferenceBase::ResolveFromFolderList
+
+    // method line 562
+    .method family hidebysig 
+           instance default string ResolveFromFramework (string fileName)  cil managed 
     {
-        // Method begins at RVA 0x137cc
-	// Code size 15 (0xf)
-	.maxstack 8
+        // Method begins at RVA 0xe6c8
+	// Code size 52 (0x34)
+	.maxstack 2
+	.locals init (
+		string	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.SolutionFactory::_projectProviders
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_000d:  pop 
-	IL_000e:  ret 
-    } // end of method SolutionFactory::RegisterProvider
+	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_0007:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_000c:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
+	IL_0011:  ldarg.1 
+	IL_0012:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::ResolveAssembly(string)
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_001e:  brfalse IL_002b
 
-    // method line 605
-    .method private hidebysig 
-           instance default class NAnt.VSNet.Extensibility.ISolutionBuildProvider FindProvider (string fileContents)  cil managed 
+	IL_0023:  nop 
+	IL_0024:  ldloc.0 
+	IL_0025:  stloc.1 
+	IL_0026:  br IL_0032
+
+	IL_002b:  ldnull 
+	IL_002c:  stloc.1 
+	IL_002d:  br IL_0032
+
+	IL_0032:  ldloc.1 
+	IL_0033:  ret 
+    } // end of method AssemblyReferenceBase::ResolveFromFramework
+
+    // method line 563
+    .method family hidebysig 
+           instance default string ResolveFromRelativePath (string relativePath)  cil managed 
     {
-        // Method begins at RVA 0x137dc
-	// Code size 110 (0x6e)
-	.maxstack 2
+        // Method begins at RVA 0xe708
+	// Code size 105 (0x69)
+	.maxstack 5
 	.locals init (
-		int32	V_0,
-		class NAnt.VSNet.Extensibility.ISolutionBuildProvider	V_1,
-		class NAnt.VSNet.Extensibility.ISolutionBuildProvider	V_2,
-		class [mscorlib]System.Collections.IEnumerator	V_3,
-		int32	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		class NAnt.VSNet.Extensibility.ISolutionBuildProvider	V_6)
+		string	V_0,
+		string	V_1,
+		class [mscorlib]System.IO.PathTooLongException	V_2)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  ldnull 
-	IL_0004:  stloc.1 
-	IL_0005:  nop 
-	IL_0006:  ldarg.0 
-	IL_0007:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.SolutionFactory::_projectProviders
-	IL_000c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0011:  stloc.3 
+	IL_0001:  ldarg.1 
+	IL_0002:  call bool string::IsNullOrEmpty(string)
+	IL_0007:  brtrue IL_0060
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	IL_0013:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0018:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001d:  ldarg.1 
+	IL_001e:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0023:  stloc.0 
 	.try { // 0
-	  IL_0012:  br IL_003d
+	  IL_0024:  nop 
+	  IL_0025:  ldloc.0 
+	  IL_0026:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
+	  IL_002b:  stloc.1 
+	  IL_002c:  leave IL_0067
 
-	  IL_0017:  ldloc.3 
-	  IL_0018:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_001d:  castclass NAnt.VSNet.Extensibility.ISolutionBuildProvider
-	  IL_0022:  stloc.2 
-	  IL_0023:  nop 
-	  IL_0024:  ldloc.2 
-	  IL_0025:  ldarg.1 
-	  IL_0026:  callvirt instance int32 class NAnt.VSNet.Extensibility.ISolutionBuildProvider::IsSupported(string)
-	  IL_002b:  stloc.s 4
-	  IL_002d:  ldloc.s 4
-	  IL_002f:  ldloc.0 
-	  IL_0030:  ble IL_003c
+	} // end .try 0
+	catch class [mscorlib]System.IO.PathTooLongException { // 0
+	  IL_0031:  stloc.2 
+	  IL_0032:  nop 
+	  IL_0033:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0038:  ldstr "Assembly \"{0}\", referenced by project \"{1}\", could not be resolved using path \"{2}\"."
+	  IL_003d:  ldarg.0 
+	  IL_003e:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
+	  IL_0043:  ldarg.0 
+	  IL_0044:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
+	  IL_0049:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	  IL_004e:  ldloc.0 
+	  IL_004f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
+	  IL_0054:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	  IL_0059:  ldloc.2 
+	  IL_005a:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_005f:  throw 
+	} // end handler 0
+	IL_0060:  ldnull 
+	IL_0061:  stloc.1 
+	IL_0062:  br IL_0067
 
-	  IL_0035:  nop 
-	  IL_0036:  ldloc.s 4
-	  IL_0038:  stloc.0 
-	  IL_0039:  ldloc.2 
-	  IL_003a:  stloc.1 
-	  IL_003b:  nop 
-	  IL_003c:  nop 
-	  IL_003d:  ldloc.3 
-	  IL_003e:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0043:  brtrue IL_0017
+	IL_0067:  ldloc.1 
+	IL_0068:  ret 
+    } // end of method AssemblyReferenceBase::ResolveFromRelativePath
 
-	  IL_0048:  leave IL_0063
+    // method line 564
+    .method family virtual hidebysig newslot 
+           instance default string ResolveFromAssemblyFolders (class [System.Xml]System.Xml.XmlElement referenceElement, string fileName)  cil managed 
+    {
+        // Method begins at RVA 0xe790
+	// Code size 27 (0x1b)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.0 
+	IL_0003:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
+	IL_0008:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.Tasks.SolutionTask::get_AssemblyFolderList()
+	IL_000d:  ldarg.2 
+	IL_000e:  call instance string class NAnt.VSNet.AssemblyReferenceBase::ResolveFromFolderList(class [System]System.Collections.Specialized.StringCollection, string)
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0019
 
-	} // end .try 0
-	finally  { // 0
-	  IL_004d:  ldloc.3 
-	  IL_004e:  isinst [mscorlib]System.IDisposable
-	  IL_0053:  dup 
-	  IL_0054:  stloc.s 5
-	  IL_0056:  brfalse IL_0062
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method AssemblyReferenceBase::ResolveFromAssemblyFolders
 
-	  IL_005b:  ldloc.s 5
-	  IL_005d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0062:  endfinally 
-	} // end handler 0
-	IL_0063:  ldloc.1 
-	IL_0064:  stloc.s 6
-	IL_0066:  br IL_006b
+	.property instance bool IsPrivate ()
+	{
+		.get instance default bool NAnt.VSNet.AssemblyReferenceBase::get_IsPrivate () 
+	}
+	.property instance bool IsPrivateSpecified ()
+	{
+		.get instance default bool NAnt.VSNet.AssemblyReferenceBase::get_IsPrivateSpecified () 
+	}
+	.property instance bool CopyLocal ()
+	{
+		.get instance default bool NAnt.VSNet.AssemblyReferenceBase::get_CopyLocal () 
+	}
+	.property instance bool IsSystem ()
+	{
+		.get instance default bool NAnt.VSNet.AssemblyReferenceBase::get_IsSystem () 
+	}
+  } // end of class NAnt.VSNet.AssemblyReferenceBase
+}
 
-	IL_006b:  ldloc.s 6
-	IL_006d:  ret 
-    } // end of method SolutionFactory::FindProvider
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit GenericSolution
+  	extends NAnt.VSNet.SolutionBase
+  {
 
-  } // end of class NAnt.VSNet.SolutionFactory
+    // method line 565
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver)  cil managed 
+    {
+        // Method begins at RVA 0x13420
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  ldarg.s 4
+	IL_0006:  call instance void class NAnt.VSNet.SolutionBase::'.ctor'(class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver)
+	IL_000b:  nop 
+	IL_000c:  ret 
+    } // end of method GenericSolution::.ctor
+
+  } // end of class NAnt.VSNet.GenericSolution
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi abstract beforefieldinit ManagedProjectBase
-  	extends NAnt.VSNet.ProjectBase
+  .class public auto ansi abstract beforefieldinit ProjectBase
+  	extends [mscorlib]System.Object
   {
-    .field  private  class [mscorlib]System.Collections.ArrayList _references
-    .field  private initonly  class [mscorlib]System.Collections.Hashtable _sourceFiles
-    .field  private initonly  class [mscorlib]System.Collections.ArrayList _neutralResources
-    .field  private initonly  class [mscorlib]System.Collections.ArrayList _localizedResources
-    .field  private initonly  string _projectPath
-    .field  private initonly  class [mscorlib]System.IO.DirectoryInfo _projectDirectory
-    .field  private initonly  string _webProjectBaseUrl
-    .field  private initonly  class NAnt.VSNet.ProjectSettings _projectSettings
-    .field  private initonly  valuetype NAnt.VSNet.ProjectLocation _projectLocation
-    .field private static literal  string CommandFile = "compile-commands.txt"
+    .field  private initonly  valuetype NAnt.VSNet.ProductVersion _productVersion
+    .field  private initonly  class NAnt.VSNet.Tasks.SolutionTask _solutionTask
+    .field  private initonly  class [System]System.CodeDom.Compiler.TempFileCollection _temporaryFiles
+    .field  private initonly  class [mscorlib]System.IO.DirectoryInfo _outputDir
+    .field  private initonly  class NAnt.VSNet.ConfigurationDictionary _projectConfigurations
+    .field  private initonly  class NAnt.VSNet.ConfigurationDictionary _buildConfigurations
+    .field  private initonly  class [NAnt.Core]NAnt.Core.Util.GacCache _gacCache
+    .field  private initonly  class NAnt.VSNet.ReferencesResolver _refResolver
+    .field  private initonly  class [mscorlib]System.Collections.Hashtable _extraOutputFiles
+    .field  private initonly  class NAnt.VSNet.ProjectBaseCollection _projectDependencies
 
-    // method line 606
+    // method line 566
     .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
+           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection temporaryFiles, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver referencesResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
     {
-        // Method begins at RVA 0xf39c
-	// Code size 1192 (0x4a8)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		class [System.Xml]System.Xml.XmlNodeList	V_1,
-		class [System.Xml]System.Xml.XmlElement	V_2,
-		class [mscorlib]System.Collections.IEnumerator	V_3,
-		class NAnt.VSNet.ConfigurationSettings	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		class [System.Xml]System.Xml.XmlNodeList	V_6,
-		class [System.Xml]System.Xml.XmlElement	V_7,
-		class [mscorlib]System.Collections.IEnumerator	V_8,
-		class NAnt.VSNet.ReferenceBase	V_9,
-		class [mscorlib]System.IDisposable	V_10,
-		class [System.Xml]System.Xml.XmlNodeList	V_11,
-		class [System.Xml]System.Xml.XmlElement	V_12,
-		class [mscorlib]System.Collections.IEnumerator	V_13,
-		string	V_14,
-		string	V_15,
-		class NAnt.VSNet.WebDavClient	V_16,
-		class [mscorlib]System.IDisposable	V_17)
+        // Method begins at RVA 0x6b4c
+	// Code size 202 (0xca)
+	.maxstack 3
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.3 
-	IL_0002:  ldarg.s 4
-	IL_0004:  ldarg.s 5
-	IL_0006:  ldarg.s 6
-	IL_0008:  ldarg.s 7
-	IL_000a:  ldarg.s 8
-	IL_000c:  call instance void class NAnt.VSNet.ProjectBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0001:  newobj instance void class NAnt.VSNet.ProjectBaseCollection::'.ctor'()
+	IL_0006:  stfld class NAnt.VSNet.ProjectBaseCollection NAnt.VSNet.ProjectBase::_projectDependencies
+	IL_000b:  ldarg.0 
+	IL_000c:  call instance void object::'.ctor'()
 	IL_0011:  nop 
-	IL_0012:  ldarg.2 
+	IL_0012:  ldarg.1 
 	IL_0013:  brtrue IL_0024
 
 	IL_0018:  nop 
-	IL_0019:  ldstr "projectPath"
+	IL_0019:  ldstr "xmlDefinition"
 	IL_001e:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
 	IL_0023:  throw 
-	IL_0024:  ldarg.3 
+	IL_0024:  ldarg.2 
 	IL_0025:  brtrue IL_0036
 
 	IL_002a:  nop 
-	IL_002b:  ldstr "xmlDefinition"
+	IL_002b:  ldstr "solutionTask"
 	IL_0030:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
 	IL_0035:  throw 
-	IL_0036:  ldarg.0 
-	IL_0037:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_003c:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_references
-	IL_0041:  ldarg.0 
-	IL_0042:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0047:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_neutralResources
-	IL_004c:  ldarg.0 
-	IL_004d:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0052:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_localizedResources
-	IL_0057:  ldarg.0 
-	IL_0058:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	IL_005d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
-	IL_0062:  ldarg.0 
-	IL_0063:  ldarg.2 
-	IL_0064:  stfld string NAnt.VSNet.ManagedProjectBase::_projectPath
-	IL_0069:  ldarg.0 
-	IL_006a:  ldarg.0 
-	IL_006b:  ldarg.3 
-	IL_006c:  callvirt instance valuetype NAnt.VSNet.ProjectLocation class NAnt.VSNet.ManagedProjectBase::DetermineProjectLocation(class [System.Xml]System.Xml.XmlElement)
-	IL_0071:  stfld valuetype NAnt.VSNet.ProjectLocation NAnt.VSNet.ManagedProjectBase::_projectLocation
-	IL_0076:  ldarg.0 
-	IL_0077:  call instance bool class NAnt.VSNet.ManagedProjectBase::get_IsWebProject()
-	IL_007c:  brtrue IL_0099
-
-	IL_0081:  nop 
-	IL_0082:  ldarg.0 
-	IL_0083:  ldarg.2 
-	IL_0084:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0089:  call instance class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.FileInfo::get_Directory()
-	IL_008e:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ManagedProjectBase::_projectDirectory
-	IL_0093:  nop 
-	IL_0094:  br IL_012a
-
-	IL_0099:  nop 
-	IL_009a:  ldarg.2 
-	IL_009b:  ldstr ":"
-	IL_00a0:  ldstr "_"
-	IL_00a5:  callvirt instance string string::Replace(string, string)
-	IL_00aa:  stloc.0 
-	IL_00ab:  ldloc.0 
-	IL_00ac:  ldstr "/"
-	IL_00b1:  ldstr "_"
-	IL_00b6:  callvirt instance string string::Replace(string, string)
-	IL_00bb:  stloc.0 
-	IL_00bc:  ldloc.0 
-	IL_00bd:  ldstr "\\"
-	IL_00c2:  ldstr "_"
-	IL_00c7:  callvirt instance string string::Replace(string, string)
-	IL_00cc:  stloc.0 
-	IL_00cd:  ldarg.0 
-	IL_00ce:  ldarg.0 
-	IL_00cf:  call instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.ProjectBase::get_TemporaryFiles()
-	IL_00d4:  callvirt instance string class [System]System.CodeDom.Compiler.TempFileCollection::get_BasePath()
-	IL_00d9:  ldloc.0 
-	IL_00da:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_00df:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_00e4:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ManagedProjectBase::_projectDirectory
-	IL_00e9:  ldarg.0 
-	IL_00ea:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ManagedProjectBase::_projectDirectory
-	IL_00ef:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_00f4:  brtrue IL_0111
-
-	IL_00f9:  nop 
-	IL_00fa:  ldarg.0 
-	IL_00fb:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ManagedProjectBase::_projectDirectory
-	IL_0100:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
-	IL_0105:  ldarg.0 
-	IL_0106:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ManagedProjectBase::_projectDirectory
-	IL_010b:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Refresh()
-	IL_0110:  nop 
-	IL_0111:  ldarg.0 
-	IL_0112:  ldarg.2 
-	IL_0113:  ldc.i4.0 
-	IL_0114:  ldarg.2 
-	IL_0115:  ldstr "/"
-	IL_011a:  callvirt instance int32 string::LastIndexOf(string)
-	IL_011f:  callvirt instance string string::Substring(int32, int32)
-	IL_0124:  stfld string NAnt.VSNet.ManagedProjectBase::_webProjectBaseUrl
-	IL_0129:  nop 
-	IL_012a:  ldarg.0 
-	IL_012b:  ldarg.3 
-	IL_012c:  ldarg.3 
-	IL_012d:  ldstr "//Build/Settings"
-	IL_0132:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	IL_0137:  castclass [System.Xml]System.Xml.XmlElement
-	IL_013c:  ldarg.0 
-	IL_013d:  newobj instance void class NAnt.VSNet.ProjectSettings::'.ctor'(class [System.Xml]System.Xml.XmlElement, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ManagedProjectBase)
-	IL_0142:  stfld class NAnt.VSNet.ProjectSettings NAnt.VSNet.ManagedProjectBase::_projectSettings
-	IL_0147:  ldarg.3 
-	IL_0148:  ldstr "//Config"
-	IL_014d:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
-	IL_0152:  stloc.1 
-	IL_0153:  nop 
-	IL_0154:  ldloc.1 
-	IL_0155:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_015a:  stloc.3 
-	.try { // 0
-	  IL_015b:  br IL_0196
-
-	  IL_0160:  ldloc.3 
-	  IL_0161:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0166:  castclass [System.Xml]System.Xml.XmlElement
-	  IL_016b:  stloc.2 
-	  IL_016c:  nop 
-	  IL_016d:  ldarg.0 
-	  IL_016e:  ldloc.2 
-	  IL_016f:  ldarg.0 
-	  IL_0170:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_OutputDir()
-	  IL_0175:  newobj instance void class NAnt.VSNet.ConfigurationSettings::'.ctor'(class NAnt.VSNet.ManagedProjectBase, class [System.Xml]System.Xml.XmlElement, class [mscorlib]System.IO.DirectoryInfo)
-	  IL_017a:  stloc.s 4
-	  IL_017c:  ldarg.0 
-	  IL_017d:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_ProjectConfigurations()
-	  IL_0182:  ldloc.s 4
-	  IL_0184:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
-	  IL_0189:  call class NAnt.VSNet.Configuration class NAnt.VSNet.Configuration::Parse(string)
-	  IL_018e:  ldloc.s 4
-	  IL_0190:  callvirt instance void class NAnt.VSNet.ConfigurationDictionary::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.ConfigurationBase)
-	  IL_0195:  nop 
-	  IL_0196:  ldloc.3 
-	  IL_0197:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_019c:  brtrue IL_0160
-
-	  IL_01a1:  leave IL_01bc
-
-	} // end .try 0
-	finally  { // 0
-	  IL_01a6:  ldloc.3 
-	  IL_01a7:  isinst [mscorlib]System.IDisposable
-	  IL_01ac:  dup 
-	  IL_01ad:  stloc.s 5
-	  IL_01af:  brfalse IL_01bb
-
-	  IL_01b4:  ldloc.s 5
-	  IL_01b6:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01bb:  endfinally 
-	} // end handler 0
-	IL_01bc:  ldarg.3 
-	IL_01bd:  ldstr "//References/Reference"
-	IL_01c2:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
-	IL_01c7:  stloc.s 6
-	IL_01c9:  nop 
-	IL_01ca:  ldloc.s 6
-	IL_01cc:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_01d1:  stloc.s 8
-	.try { // 1
-	  IL_01d3:  br IL_0201
-
-	  IL_01d8:  ldloc.s 8
-	  IL_01da:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_01df:  castclass [System.Xml]System.Xml.XmlElement
-	  IL_01e4:  stloc.s 7
-	  IL_01e6:  nop 
-	  IL_01e7:  ldarg.0 
-	  IL_01e8:  ldarg.1 
-	  IL_01e9:  ldloc.s 7
-	  IL_01eb:  callvirt instance class NAnt.VSNet.ReferenceBase class NAnt.VSNet.ManagedProjectBase::CreateReference(class NAnt.VSNet.SolutionBase, class [System.Xml]System.Xml.XmlElement)
-	  IL_01f0:  stloc.s 9
-	  IL_01f2:  ldarg.0 
-	  IL_01f3:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_references
-	  IL_01f8:  ldloc.s 9
-	  IL_01fa:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_01ff:  pop 
-	  IL_0200:  nop 
-	  IL_0201:  ldloc.s 8
-	  IL_0203:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0208:  brtrue IL_01d8
-
-	  IL_020d:  leave IL_0229
-
-	} // end .try 1
-	finally  { // 1
-	  IL_0212:  ldloc.s 8
-	  IL_0214:  isinst [mscorlib]System.IDisposable
-	  IL_0219:  dup 
-	  IL_021a:  stloc.s 10
-	  IL_021c:  brfalse IL_0228
-
-	  IL_0221:  ldloc.s 10
-	  IL_0223:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0228:  endfinally 
-	} // end handler 1
-	IL_0229:  ldarg.3 
-	IL_022a:  ldstr "//Files/Include/File"
-	IL_022f:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
-	IL_0234:  stloc.s 11
-	IL_0236:  nop 
-	IL_0237:  ldloc.s 11
-	IL_0239:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_023e:  stloc.s 13
-	.try { // 2
-	  IL_0240:  br IL_047f
-
-	  IL_0245:  ldloc.s 13
-	  IL_0247:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_024c:  castclass [System.Xml]System.Xml.XmlElement
-	  IL_0251:  stloc.s 12
-	  IL_0253:  nop 
-	  IL_0254:  ldloc.s 12
-	  IL_0256:  ldstr "BuildAction"
-	  IL_025b:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	  IL_0260:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	  IL_0265:  stloc.s 14
-	  IL_0267:  ldloc.s 12
-	  IL_0269:  ldstr "Link"
-	  IL_026e:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	  IL_0273:  call bool string::IsNullOrEmpty(string)
-	  IL_0278:  brtrue IL_02a7
-
-	  IL_027d:  nop 
-	  IL_027e:  ldarg.0 
-	  IL_027f:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	  IL_0284:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0289:  ldloc.s 12
-	  IL_028b:  ldstr "Link"
-	  IL_0290:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	  IL_0295:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	  IL_029a:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
-	  IL_029f:  stloc.s 15
-	  IL_02a1:  nop 
-	  IL_02a2:  br IL_02cc
-
-	  IL_02a7:  nop 
-	  IL_02a8:  ldarg.0 
-	  IL_02a9:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	  IL_02ae:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_02b3:  ldloc.s 12
-	  IL_02b5:  ldstr "RelPath"
-	  IL_02ba:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	  IL_02bf:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	  IL_02c4:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
-	  IL_02c9:  stloc.s 15
-	  IL_02cb:  nop 
-	  IL_02cc:  ldarg.0 
-	  IL_02cd:  call instance bool class NAnt.VSNet.ManagedProjectBase::get_IsWebProject()
-	  IL_02d2:  brfalse IL_0391
-
-	  IL_02d7:  nop 
-	  IL_02d8:  ldarg.0 
-	  IL_02d9:  ldfld string NAnt.VSNet.ManagedProjectBase::_webProjectBaseUrl
-	  IL_02de:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	  IL_02e3:  newobj instance void class NAnt.VSNet.WebDavClient::'.ctor'(class [System]System.Uri)
-	  IL_02e8:  stloc.s 16
-	  IL_02ea:  ldloc.s 16
-	  IL_02ec:  ldloc.s 15
-	  IL_02ee:  ldloc.s 12
-	  IL_02f0:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	  IL_02f5:  ldstr "RelPath"
-	  IL_02fa:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	  IL_02ff:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	  IL_0304:  callvirt instance void class NAnt.VSNet.WebDavClient::DownloadFile(string, string)
-	  IL_0309:  ldloc.s 14
-	  IL_030b:  brfalse IL_0359
-
-	  IL_0310:  ldloc.s 14
-	  IL_0312:  ldstr "Compile"
-	  IL_0317:  call bool string::op_Equality(string, string)
-	  IL_031c:  brtrue IL_0337
-
-	  IL_0321:  ldloc.s 14
-	  IL_0323:  ldstr "EmbeddedResource"
-	  IL_0328:  call bool string::op_Equality(string, string)
-	  IL_032d:  brtrue IL_034a
-
-	  IL_0332:  br IL_038b
+	IL_0036:  ldarg.3 
+	IL_0037:  brtrue IL_0048
 
-	  IL_0337:  ldarg.0 
-	  IL_0338:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
-	  IL_033d:  ldloc.s 15
-	  IL_033f:  ldnull 
-	  IL_0340:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_0345:  leave IL_038b
+	IL_003c:  nop 
+	IL_003d:  ldstr "temporaryFiles"
+	IL_0042:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0047:  throw 
+	IL_0048:  ldarg.s 4
+	IL_004a:  brtrue IL_005b
 
-	  IL_034a:  ldarg.0 
-	  IL_034b:  ldloc.s 15
-	  IL_034d:  ldloc.s 12
-	  IL_034f:  call instance void class NAnt.VSNet.ManagedProjectBase::RegisterEmbeddedResource(string, class [System.Xml]System.Xml.XmlElement)
-	  IL_0354:  leave IL_038b
+	IL_004f:  nop 
+	IL_0050:  ldstr "gacCache"
+	IL_0055:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_005a:  throw 
+	IL_005b:  ldarg.s 5
+	IL_005d:  brtrue IL_006e
 
-	  IL_0359:  ldloc.s 15
-	  IL_035b:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	  IL_0360:  ldarg.0 
-	  IL_0361:  callvirt instance string class NAnt.VSNet.ManagedProjectBase::get_FileExtension()
-	  IL_0366:  ldc.i4.1 
-	  IL_0367:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_036c:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	  IL_0371:  brtrue IL_0386
+	IL_0062:  nop 
+	IL_0063:  ldstr "referencesResolver"
+	IL_0068:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_006d:  throw 
+	IL_006e:  ldarg.0 
+	IL_006f:  newobj instance void class NAnt.VSNet.ConfigurationDictionary::'.ctor'()
+	IL_0074:  stfld class NAnt.VSNet.ConfigurationDictionary NAnt.VSNet.ProjectBase::_projectConfigurations
+	IL_0079:  ldarg.0 
+	IL_007a:  newobj instance void class NAnt.VSNet.ConfigurationDictionary::'.ctor'()
+	IL_007f:  stfld class NAnt.VSNet.ConfigurationDictionary NAnt.VSNet.ProjectBase::_buildConfigurations
+	IL_0084:  ldarg.0 
+	IL_0085:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_008a:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectBase::_extraOutputFiles
+	IL_008f:  ldarg.0 
+	IL_0090:  ldarg.1 
+	IL_0091:  callvirt instance void class NAnt.VSNet.ProjectBase::VerifyProjectXml(class [System.Xml]System.Xml.XmlElement)
+	IL_0096:  ldarg.0 
+	IL_0097:  ldarg.2 
+	IL_0098:  stfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.ProjectBase::_solutionTask
+	IL_009d:  ldarg.0 
+	IL_009e:  ldarg.3 
+	IL_009f:  stfld class [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.ProjectBase::_temporaryFiles
+	IL_00a4:  ldarg.0 
+	IL_00a5:  ldarg.s 6
+	IL_00a7:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ProjectBase::_outputDir
+	IL_00ac:  ldarg.0 
+	IL_00ad:  ldarg.s 4
+	IL_00af:  stfld class [NAnt.Core]NAnt.Core.Util.GacCache NAnt.VSNet.ProjectBase::_gacCache
+	IL_00b4:  ldarg.0 
+	IL_00b5:  ldarg.s 5
+	IL_00b7:  stfld class NAnt.VSNet.ReferencesResolver NAnt.VSNet.ProjectBase::_refResolver
+	IL_00bc:  ldarg.0 
+	IL_00bd:  ldarg.0 
+	IL_00be:  ldarg.1 
+	IL_00bf:  callvirt instance valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ProjectBase::DetermineProductVersion(class [System.Xml]System.Xml.XmlElement)
+	IL_00c4:  stfld valuetype NAnt.VSNet.ProductVersion NAnt.VSNet.ProjectBase::_productVersion
+	IL_00c9:  ret 
+    } // end of method ProjectBase::.ctor
 
-	  IL_0376:  nop 
-	  IL_0377:  ldarg.0 
-	  IL_0378:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
-	  IL_037d:  ldloc.s 15
-	  IL_037f:  ldnull 
-	  IL_0380:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_0385:  nop 
-	  IL_0386:  leave IL_038b
+    // method line 567
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.VSNet.ProductVersion get_ProductVersion ()  cil managed 
+    {
+        // Method begins at RVA 0x6c24
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.VSNet.ProductVersion	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.VSNet.ProductVersion NAnt.VSNet.ProjectBase::_productVersion
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_038b:  nop 
-	  IL_038c:  br IL_047e
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectBase::get_ProductVersion
 
-	  IL_0391:  nop 
-	  IL_0392:  ldloc.s 14
-	  IL_0394:  brfalse IL_03e2
+    // method line 568
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ProjectBase::get_Name
 
-	  IL_0399:  ldloc.s 14
-	  IL_039b:  ldstr "Compile"
-	  IL_03a0:  call bool string::op_Equality(string, string)
-	  IL_03a5:  brtrue IL_03c0
+    // method line 569
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ProjectBase::get_Type
 
-	  IL_03aa:  ldloc.s 14
-	  IL_03ac:  ldstr "EmbeddedResource"
-	  IL_03b1:  call bool string::op_Equality(string, string)
-	  IL_03b6:  brtrue IL_03d3
+    // method line 570
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_ProjectPath ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ProjectBase::get_ProjectPath
 
-	  IL_03bb:  br IL_0414
+    // method line 571
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ProjectDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ProjectBase::get_ProjectDirectory
 
-	  IL_03c0:  ldarg.0 
-	  IL_03c1:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
-	  IL_03c6:  ldloc.s 15
-	  IL_03c8:  ldnull 
-	  IL_03c9:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_03ce:  leave IL_0414
+    // method line 572
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default valuetype NAnt.VSNet.ProjectLocation get_ProjectLocation ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ProjectBase::get_ProjectLocation
 
-	  IL_03d3:  ldarg.0 
-	  IL_03d4:  ldloc.s 15
-	  IL_03d6:  ldloc.s 12
-	  IL_03d8:  call instance void class NAnt.VSNet.ManagedProjectBase::RegisterEmbeddedResource(string, class [System.Xml]System.Xml.XmlElement)
-	  IL_03dd:  leave IL_0414
+    // method line 573
+    .method public virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_ObjectDir ()  cil managed 
+    {
+        // Method begins at RVA 0x6c40
+	// Code size 154 (0x9a)
+	.maxstack 2
+	.locals init (
+		valuetype NAnt.VSNet.ProjectLocation	V_0,
+		string	V_1,
+		string	V_2,
+		string	V_3,
+		class [mscorlib]System.IO.DirectoryInfo	V_4,
+		valuetype NAnt.VSNet.ProjectLocation	V_5)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance valuetype NAnt.VSNet.ProjectLocation class NAnt.VSNet.ProjectBase::get_ProjectLocation()
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  ldc.i4.2 
+	IL_000a:  beq IL_001b
 
-	  IL_03e2:  ldloc.s 15
-	  IL_03e4:  call string class [mscorlib]System.IO.Path::GetExtension(string)
-	  IL_03e9:  ldarg.0 
-	  IL_03ea:  callvirt instance string class NAnt.VSNet.ManagedProjectBase::get_FileExtension()
-	  IL_03ef:  ldc.i4.1 
-	  IL_03f0:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_03f5:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	  IL_03fa:  brtrue IL_040f
+	IL_000f:  ldloc.0 
+	IL_0010:  ldc.i4.1 
+	IL_0011:  beq IL_005b
 
-	  IL_03ff:  nop 
-	  IL_0400:  ldarg.0 
-	  IL_0401:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
-	  IL_0406:  ldloc.s 15
-	  IL_0408:  ldnull 
-	  IL_0409:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_040e:  nop 
-	  IL_040f:  leave IL_0414
+	IL_0016:  br IL_007c
 
-	  IL_0414:  ldstr "App.config"
-	  IL_0419:  ldloc.s 12
-	  IL_041b:  ldstr "RelPath"
-	  IL_0420:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	  IL_0425:  ldc.i4.1 
-	  IL_0426:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_042b:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	  IL_0430:  brtrue IL_047d
+	IL_001b:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetHomeDirectory()
+	IL_0020:  ldstr "VSWebCache"
+	IL_0025:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_002a:  stloc.1 
+	IL_002b:  ldloc.1 
+	IL_002c:  call string class [mscorlib]System.Environment::get_MachineName()
+	IL_0031:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0036:  stloc.2 
+	IL_0037:  ldloc.2 
+	IL_0038:  ldarg.0 
+	IL_0039:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_003e:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0043:  stloc.3 
+	IL_0044:  ldloc.3 
+	IL_0045:  ldstr "obj"
+	IL_004a:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_004f:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0054:  stloc.s 4
+	IL_0056:  br IL_0097
 
-	  IL_0435:  nop 
-	  IL_0436:  ldarg.0 
-	  IL_0437:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	  IL_043c:  callvirt instance valuetype NAnt.VSNet.ManagedOutputType class NAnt.VSNet.ProjectSettings::get_OutputType()
-	  IL_0441:  ldc.i4.2 
-	  IL_0442:  beq IL_0458
+	IL_005b:  ldarg.0 
+	IL_005c:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
+	IL_0061:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0066:  ldstr "obj"
+	IL_006b:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0070:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0075:  stloc.s 4
+	IL_0077:  br IL_0097
 
-	  IL_0447:  ldarg.0 
-	  IL_0448:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	  IL_044d:  callvirt instance valuetype NAnt.VSNet.ManagedOutputType class NAnt.VSNet.ProjectSettings::get_OutputType()
-	  IL_0452:  ldc.i4.3 
-	  IL_0453:  bne.un IL_047c
+	IL_007c:  ldarg.0 
+	IL_007d:  callvirt instance valuetype NAnt.VSNet.ProjectLocation class NAnt.VSNet.ProjectBase::get_ProjectLocation()
+	IL_0082:  stloc.s 5
+	IL_0084:  ldloca.s 5
+	IL_0086:  constrained. NAnt.VSNet.ProjectLocation
+	IL_008c:  callvirt instance string object::ToString()
+	IL_0091:  newobj instance void class [mscorlib]System.NotSupportedException::'.ctor'(string)
+	IL_0096:  throw 
+	IL_0097:  ldloc.s 4
+	IL_0099:  ret 
+    } // end of method ProjectBase::get_ObjectDir
 
-	  IL_0458:  nop 
-	  IL_0459:  ldarg.0 
-	  IL_045a:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ProjectBase::get_ExtraOutputFiles()
-	  IL_045f:  ldloc.s 15
-	  IL_0461:  ldarg.0 
-	  IL_0462:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	  IL_0467:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_OutputFileName()
-	  IL_046c:  ldstr ".config"
-	  IL_0471:  call string string::Concat(string, string)
-	  IL_0476:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_047b:  nop 
-	  IL_047c:  nop 
-	  IL_047d:  nop 
-	  IL_047e:  nop 
-	  IL_047f:  ldloc.s 13
-	  IL_0481:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0486:  brtrue IL_0245
+    // method line 574
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default string get_Guid ()  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ProjectBase::get_Guid
 
-	  IL_048b:  leave IL_04a7
+    // method line 575
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default void set_Guid (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ProjectBase::set_Guid
 
-	} // end .try 2
-	finally  { // 2
-	  IL_0490:  ldloc.s 13
-	  IL_0492:  isinst [mscorlib]System.IDisposable
-	  IL_0497:  dup 
-	  IL_0498:  stloc.s 17
-	  IL_049a:  brfalse IL_04a6
+    // method line 576
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ConfigurationDictionary get_ProjectConfigurations ()  cil managed 
+    {
+        // Method begins at RVA 0x6ce8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.ConfigurationDictionary	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.VSNet.ConfigurationDictionary NAnt.VSNet.ProjectBase::_projectConfigurations
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_049f:  ldloc.s 17
-	  IL_04a1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_04a6:  endfinally 
-	} // end handler 2
-	IL_04a7:  ret 
-    } // end of method ManagedProjectBase::.ctor
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectBase::get_ProjectConfigurations
 
-    // method line 607
+    // method line 577
     .method public hidebysig specialname 
-           instance default class NAnt.VSNet.ProjectSettings get_ProjectSettings ()  cil managed 
+           instance default class NAnt.VSNet.ConfigurationDictionary get_BuildConfigurations ()  cil managed 
     {
-        // Method begins at RVA 0xf89c
+        // Method begins at RVA 0x6d04
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class NAnt.VSNet.ProjectSettings	V_0)
+		class NAnt.VSNet.ConfigurationDictionary	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ProjectSettings NAnt.VSNet.ManagedProjectBase::_projectSettings
+	IL_0002:  ldfld class NAnt.VSNet.ConfigurationDictionary NAnt.VSNet.ProjectBase::_buildConfigurations
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ManagedProjectBase::get_ProjectSettings
+    } // end of method ProjectBase::get_BuildConfigurations
 
-    // method line 608
-    .method family virtual hidebysig newslot abstract specialname 
-           instance default string get_FileExtension ()  cil managed 
+    // method line 578
+    .method public virtual hidebysig newslot abstract specialname 
+           instance default class [mscorlib]System.Collections.ArrayList get_References ()  cil managed 
     {
         // Method begins at RVA 0x0
-    } // end of method ManagedProjectBase::get_FileExtension
+    } // end of method ProjectBase::get_References
 
-    // method line 609
-    .method private hidebysig specialname 
-           instance default bool get_IsWebProject ()  cil managed 
+    // method line 579
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.Tasks.SolutionTask get_SolutionTask ()  cil managed 
     {
-        // Method begins at RVA 0xf8b8
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x6d20
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class NAnt.VSNet.Tasks.SolutionTask	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ManagedProjectBase::_projectPath
-	IL_0007:  call bool class NAnt.VSNet.ProjectFactory::IsUrl(string)
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
+	IL_0002:  ldfld class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.ProjectBase::_solutionTask
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ManagedProjectBase::get_IsWebProject
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectBase::get_SolutionTask
 
-    // method line 610
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
+    // method line 580
+    .method public hidebysig specialname 
+           instance default class [System]System.CodeDom.Compiler.TempFileCollection get_TemporaryFiles ()  cil managed 
     {
-        // Method begins at RVA 0xf8d8
-	// Code size 66 (0x42)
+        // Method begins at RVA 0x6d3c
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0,
-		class [System]System.Uri	V_1,
-		string	V_2)
+		class [System]System.CodeDom.Compiler.TempFileCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ManagedProjectBase::_projectPath
-	IL_0007:  call bool class NAnt.VSNet.ProjectFactory::IsUrl(string)
-	IL_000c:  brfalse IL_002b
-
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldfld string NAnt.VSNet.ManagedProjectBase::_projectPath
-	IL_0018:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	IL_001d:  stloc.1 
-	IL_001e:  ldloc.1 
-	IL_001f:  callvirt instance string class [System]System.Uri::get_LocalPath()
-	IL_0024:  stloc.0 
-	IL_0025:  nop 
-	IL_0026:  br IL_0034
-
-	IL_002b:  nop 
-	IL_002c:  ldarg.0 
-	IL_002d:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_0032:  stloc.0 
-	IL_0033:  nop 
-	IL_0034:  ldloc.0 
-	IL_0035:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_003a:  stloc.2 
-	IL_003b:  br IL_0040
+	IL_0002:  ldfld class [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.ProjectBase::_temporaryFiles
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0040:  ldloc.2 
-	IL_0041:  ret 
-    } // end of method ManagedProjectBase::get_Name
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectBase::get_TemporaryFiles
 
-    // method line 611
-    .method public virtual hidebysig specialname 
-           instance default string get_ProjectPath ()  cil managed 
+    // method line 581
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_ExtraOutputFiles ()  cil managed 
     {
-        // Method begins at RVA 0xf928
-	// Code size 50 (0x32)
+        // Method begins at RVA 0x6d58
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.Collections.Hashtable	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ManagedProjectBase::_projectPath
-	IL_0007:  call bool class NAnt.VSNet.ProjectFactory::IsUrl(string)
-	IL_000c:  brfalse IL_001e
-
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldfld string NAnt.VSNet.ManagedProjectBase::_projectPath
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_0030
-
-	IL_001e:  nop 
-	IL_001f:  ldarg.0 
-	IL_0020:  ldfld string NAnt.VSNet.ManagedProjectBase::_projectPath
-	IL_0025:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::GetFullPath(string)
-	IL_002a:  stloc.0 
-	IL_002b:  br IL_0030
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectBase::_extraOutputFiles
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0030:  ldloc.0 
-	IL_0031:  ret 
-    } // end of method ManagedProjectBase::get_ProjectPath
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectBase::get_ExtraOutputFiles
 
-    // method line 612
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_ProjectDirectory ()  cil managed 
+    // method line 582
+    .method family hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
     {
-        // Method begins at RVA 0xf968
+        // Method begins at RVA 0x6d74
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.IO.DirectoryInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ManagedProjectBase::_projectDirectory
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ProjectBase::_outputDir
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ManagedProjectBase::get_ProjectDirectory
+    } // end of method ProjectBase::get_OutputDir
 
-    // method line 613
-    .method public virtual hidebysig specialname 
-           instance default valuetype NAnt.VSNet.ProjectLocation get_ProjectLocation ()  cil managed 
+    // method line 583
+    .method family hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Util.GacCache get_GacCache ()  cil managed 
     {
-        // Method begins at RVA 0xf984
+        // Method begins at RVA 0x6d90
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		valuetype NAnt.VSNet.ProjectLocation	V_0)
+		class [NAnt.Core]NAnt.Core.Util.GacCache	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.VSNet.ProjectLocation NAnt.VSNet.ManagedProjectBase::_projectLocation
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Util.GacCache NAnt.VSNet.ProjectBase::_gacCache
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ManagedProjectBase::get_ProjectLocation
+    } // end of method ProjectBase::get_GacCache
 
-    // method line 614
-    .method public virtual hidebysig specialname 
-           instance default string get_Guid ()  cil managed 
+    // method line 584
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ReferencesResolver get_ReferencesResolver ()  cil managed 
     {
-        // Method begins at RVA 0xf9a0
-	// Code size 20 (0x14)
+        // Method begins at RVA 0x6dac
+	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.VSNet.ReferencesResolver	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_0007:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_Guid()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ManagedProjectBase::get_Guid
+	IL_0002:  ldfld class NAnt.VSNet.ReferencesResolver NAnt.VSNet.ProjectBase::_refResolver
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-    // method line 615
-    .method public virtual hidebysig specialname 
-           instance default void set_Guid (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0xf9c0
-	// Code size 12 (0xc)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldstr "It is not allowed to change the GUID of a C#/VB.NET project"
-	IL_0006:  newobj instance void class [mscorlib]System.InvalidOperationException::'.ctor'(string)
-	IL_000b:  throw 
-    } // end of method ManagedProjectBase::set_Guid
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectBase::get_ReferencesResolver
 
-    // method line 616
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_References ()  cil managed 
+    // method line 585
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectBaseCollection get_ProjectDependencies ()  cil managed 
     {
-        // Method begins at RVA 0xf9d0
+        // Method begins at RVA 0x6dc8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0)
+		class NAnt.VSNet.ProjectBaseCollection	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_references
+	IL_0002:  ldfld class NAnt.VSNet.ProjectBaseCollection NAnt.VSNet.ProjectBase::_projectDependencies
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method ManagedProjectBase::get_References
+    } // end of method ProjectBase::get_ProjectDependencies
 
-    // method line 617
-    .method public virtual hidebysig 
-           instance default bool IsManaged (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    // method line 586
+    .method family virtual hidebysig newslot specialname 
+           instance default string get_DevEnvDir ()  cil managed 
     {
-        // Method begins at RVA 0xf9ec
-	// Code size 10 (0xa)
-	.maxstack 1
+        // Method begins at RVA 0x6de4
+	// Code size 139 (0x8b)
+	.maxstack 3
 	.locals init (
-		bool	V_0)
+		string	V_0,
+		class [mscorlib]Microsoft.Win32.RegistryKey	V_1,
+		string	V_2,
+		string	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
+	IL_0001:  ldstr "SOFTWARE\\Microsoft\\VisualStudio\\"
+	IL_0006:  ldarg.0 
+	IL_0007:  call instance class [mscorlib]System.Version class NAnt.VSNet.ProjectBase::get_ProductVersionNumber()
+	IL_000c:  ldstr "\\Setup\\VS"
+	IL_0011:  call string string::Concat(object, object, object)
+	IL_0016:  stloc.0 
+	IL_0017:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::LocalMachine
+	IL_001c:  ldloc.0 
+	IL_001d:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string)
+	IL_0022:  stloc.1 
+	IL_0023:  ldloc.1 
+	IL_0024:  brtrue IL_0045
+
+	IL_0029:  nop 
+	IL_002a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_002f:  ldstr "Registry key \"{0}\" could not be found."
+	IL_0034:  ldloc.0 
+	IL_0035:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_003a:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_003f:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0044:  throw 
+	IL_0045:  ldloc.1 
+	IL_0046:  ldstr "VS7CommonDir"
+	IL_004b:  callvirt instance object class [mscorlib]Microsoft.Win32.RegistryKey::GetValue(string)
+	IL_0050:  isinst [mscorlib]System.String
+	IL_0055:  stloc.2 
+	IL_0056:  ldloc.2 
+	IL_0057:  brtrue IL_0078
+
+	IL_005c:  nop 
+	IL_005d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0062:  ldstr "Value \"VS7CommonDir\" does not exist in registry key \"{0}\"."
+	IL_0067:  ldloc.0 
+	IL_0068:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_006d:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
+	IL_0072:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
+	IL_0077:  throw 
+	IL_0078:  ldloc.2 
+	IL_0079:  ldstr "IDE\\"
+	IL_007e:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	IL_0083:  stloc.3 
+	IL_0084:  br IL_0089
+
+	IL_0089:  ldloc.3 
+	IL_008a:  ret 
+    } // end of method ProjectBase::get_DevEnvDir
 
+    // method line 587
+    .method private hidebysig specialname 
+           instance default class [mscorlib]System.Version get_ProductVersionNumber ()  cil managed 
+    {
+        // Method begins at RVA 0x6e7c
+	// Code size 89 (0x59)
+	.maxstack 3
+	.locals init (
+		valuetype NAnt.VSNet.ProductVersion	V_0,
+		class [mscorlib]System.Version	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ProjectBase::get_ProductVersion()
+	IL_0007:  stloc.0 
 	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method ManagedProjectBase::IsManaged
+	IL_0009:  ldc.i4.s 0x46
+	IL_000b:  beq IL_001d
 
-    // method line 618
-    .method family virtual hidebysig 
-           instance default void Prepare (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+	IL_0010:  ldloc.0 
+	IL_0011:  ldc.i4.s 0x47
+	IL_0013:  beq IL_002a
+
+	IL_0018:  br IL_0037
+
+	IL_001d:  ldc.i4.7 
+	IL_001e:  ldc.i4.0 
+	IL_001f:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32)
+	IL_0024:  stloc.1 
+	IL_0025:  br IL_0057
+
+	IL_002a:  ldc.i4.7 
+	IL_002b:  ldc.i4.1 
+	IL_002c:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32)
+	IL_0031:  stloc.1 
+	IL_0032:  br IL_0057
+
+	IL_0037:  ldstr "Invalid product version \""
+	IL_003c:  ldarg.0 
+	IL_003d:  call instance valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ProjectBase::get_ProductVersion()
+	IL_0042:  box NAnt.VSNet.ProductVersion
+	IL_0047:  ldstr "\"."
+	IL_004c:  call string string::Concat(object, object, object)
+	IL_0051:  newobj instance void class [mscorlib]System.Exception::'.ctor'(string)
+	IL_0056:  throw 
+	IL_0057:  ldloc.1 
+	IL_0058:  ret 
+    } // end of method ProjectBase::get_ProductVersionNumber
+
+    // method line 588
+    .method public virtual hidebysig newslot abstract 
+           instance default class NAnt.VSNet.ProjectReferenceBase CreateProjectReference (class NAnt.VSNet.ProjectBase project, bool isPrivateSpecified, bool isPrivate)  cil managed 
     {
-        // Method begins at RVA 0xfa04
-	// Code size 62 (0x3e)
+        // Method begins at RVA 0x0
+    } // end of method ProjectBase::CreateProjectReference
+
+    // method line 589
+    .method public hidebysig 
+           instance default bool Compile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x6ee4
+	// Code size 166 (0xa6)
+	.maxstack 7
+	.locals init (
+		class NAnt.VSNet.ConfigurationBase	V_0,
+		bool	V_1,
+		valuetype NAnt.VSNet.BuildResult	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  brtrue IL_003f
+
+	IL_0014:  nop 
+	IL_0015:  ldarg.0 
+	IL_0016:  ldc.i4 3000
+	IL_001b:  ldstr "Skipping '{0}' [{1}] ..."
+	IL_0020:  ldc.i4.2 
+	IL_0021:  newarr [mscorlib]System.Object
+	IL_0026:  dup 
+	IL_0027:  ldc.i4.0 
+	IL_0028:  ldarg.0 
+	IL_0029:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_002e:  stelem.ref 
+	IL_002f:  dup 
+	IL_0030:  ldc.i4.1 
+	IL_0031:  ldarg.1 
+	IL_0032:  stelem.ref 
+	IL_0033:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0038:  ldc.i4.1 
+	IL_0039:  stloc.1 
+	IL_003a:  br IL_00a4
+
+	IL_003f:  ldarg.0 
+	IL_0040:  ldc.i4 3000
+	IL_0045:  ldstr "Building '{0}' [{1}] ..."
+	IL_004a:  ldc.i4.2 
+	IL_004b:  newarr [mscorlib]System.Object
+	IL_0050:  dup 
+	IL_0051:  ldc.i4.0 
+	IL_0052:  ldarg.0 
+	IL_0053:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_0058:  stelem.ref 
+	IL_0059:  dup 
+	IL_005a:  ldc.i4.1 
+	IL_005b:  ldloc.0 
+	IL_005c:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_Name()
+	IL_0061:  stelem.ref 
+	IL_0062:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0067:  ldarg.0 
+	IL_0068:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ObjectDir()
+	IL_006d:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0072:  brtrue IL_008f
+
+	IL_0077:  nop 
+	IL_0078:  ldarg.0 
+	IL_0079:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ObjectDir()
+	IL_007e:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
+	IL_0083:  ldarg.0 
+	IL_0084:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ObjectDir()
+	IL_0089:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Refresh()
+	IL_008e:  nop 
+	IL_008f:  ldarg.0 
+	IL_0090:  ldarg.1 
+	IL_0091:  callvirt instance valuetype NAnt.VSNet.BuildResult class NAnt.VSNet.ProjectBase::Build(class NAnt.VSNet.Configuration)
+	IL_0096:  stloc.2 
+	IL_0097:  ldloc.2 
+	IL_0098:  ldc.i4.0 
+	IL_0099:  ceq 
+	IL_009b:  ldc.i4.0 
+	IL_009c:  ceq 
+	IL_009e:  stloc.1 
+	IL_009f:  br IL_00a4
+
+	IL_00a4:  ldloc.1 
+	IL_00a5:  ret 
+    } // end of method ProjectBase::Compile
+
+    // method line 590
+    .method public hidebysig 
+           instance default string GetOutputPath (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x6f98
+	// Code size 42 (0x2a)
 	.maxstack 2
 	.locals init (
-		class NAnt.VSNet.ConfigurationBase	V_0)
+		class NAnt.VSNet.ConfigurationBase	V_0,
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
@@ -30664,3205 +32441,4515 @@
 	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
 	IL_000d:  stloc.0 
 	IL_000e:  ldloc.0 
-	IL_000f:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
-	IL_0014:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0019:  brtrue IL_0036
+	IL_000f:  brtrue IL_001c
 
-	IL_001e:  nop 
-	IL_001f:  ldloc.0 
-	IL_0020:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
-	IL_0025:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
-	IL_002a:  ldloc.0 
-	IL_002b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
-	IL_0030:  callvirt instance void class [mscorlib]System.IO.FileSystemInfo::Refresh()
-	IL_0035:  nop 
-	IL_0036:  ldarg.0 
-	IL_0037:  ldarg.1 
-	IL_0038:  call instance void class NAnt.VSNet.ProjectBase::Prepare(class NAnt.VSNet.Configuration)
-	IL_003d:  ret 
-    } // end of method ManagedProjectBase::Prepare
+	IL_0014:  nop 
+	IL_0015:  ldnull 
+	IL_0016:  stloc.1 
+	IL_0017:  br IL_0028
 
-    // method line 619
-    .method public virtual hidebysig 
-           instance default void GetOutputFiles (class NAnt.VSNet.Configuration solutionConfiguration, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
+	IL_001c:  ldloc.0 
+	IL_001d:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
+	IL_0022:  stloc.1 
+	IL_0023:  br IL_0028
+
+	IL_0028:  ldloc.1 
+	IL_0029:  ret 
+    } // end of method ProjectBase::GetOutputPath
+
+    // method line 591
+    .method public hidebysig 
+           instance default class NAnt.VSNet.ConfigurationBase GetConfiguration (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
     {
-        // Method begins at RVA 0xfa50
-	// Code size 245 (0xf5)
-	.maxstack 3
+        // Method begins at RVA 0x6fd0
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		class NAnt.VSNet.ConfigurationSettings	V_0,
-		string	V_1,
-		class [mscorlib]System.Collections.Hashtable	V_2,
-		class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet	V_3,
-		class [mscorlib]System.Collections.IEnumerator	V_4,
-		class [mscorlib]System.IO.FileInfo	V_5,
-		string	V_6,
-		class [mscorlib]System.IDisposable	V_7)
+		class NAnt.VSNet.ConfigurationBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  ldarg.2 
-	IL_0004:  call instance void class NAnt.VSNet.ProjectBase::GetOutputFiles(class NAnt.VSNet.Configuration, class [mscorlib]System.Collections.Hashtable)
-	IL_0009:  ldarg.0 
-	IL_000a:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_000f:  ldarg.1 
-	IL_0010:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_0015:  castclass NAnt.VSNet.ConfigurationSettings
-	IL_001a:  stloc.0 
-	IL_001b:  ldloc.0 
-	IL_001c:  brtrue IL_0027
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0021:  nop 
-	IL_0022:  br IL_00f4
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ProjectBase::GetConfiguration
 
-	IL_0027:  ldloc.0 
-	IL_0028:  callvirt instance bool class NAnt.VSNet.ConfigurationSettings::get_RegisterForComInterop()
-	IL_002d:  brfalse IL_0057
+    // method line 592
+    .method public hidebysig 
+           instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x6ff4
+	// Code size 356 (0x164)
+	.maxstack 7
+	.locals init (
+		class [mscorlib]System.Collections.Hashtable	V_0,
+		class NAnt.VSNet.ReferenceBase	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class [System]System.Collections.Specialized.StringCollection	V_3,
+		string	V_4,
+		class [System]System.Collections.Specialized.StringEnumerator	V_5,
+		class [mscorlib]System.Reflection.AssemblyName	V_6,
+		class [mscorlib]System.Exception	V_7,
+		class [mscorlib]System.IDisposable	V_8,
+		class [mscorlib]System.IDisposable	V_9,
+		class [System]System.Collections.Specialized.StringCollection	V_10,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_11,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_12,
+		class [mscorlib]System.IDisposable	V_13,
+		class [System]System.Collections.Specialized.StringCollection	V_14)
+	IL_0000:  nop 
+	IL_0001:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_0006:  stloc.0 
+	IL_0007:  nop 
+	IL_0008:  ldarg.0 
+	IL_0009:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
+	IL_000e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0013:  stloc.2 
+	.try { // 2
+	  IL_0014:  br IL_00d1
 
-	IL_0032:  nop 
-	IL_0033:  ldarg.0 
-	IL_0034:  ldloc.0 
-	IL_0035:  call instance string class NAnt.VSNet.ManagedProjectBase::GetTypeLibraryPath(class NAnt.VSNet.ConfigurationSettings)
-	IL_003a:  stloc.1 
-	IL_003b:  ldarg.2 
-	IL_003c:  ldloc.1 
-	IL_003d:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	IL_0042:  brtrue IL_0056
+	  IL_0019:  ldloc.2 
+	  IL_001a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_001f:  castclass NAnt.VSNet.ReferenceBase
+	  IL_0024:  stloc.1 
+	  IL_0025:  nop 
+	  IL_0026:  ldloc.1 
+	  IL_0027:  ldarg.1 
+	  IL_0028:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.ReferenceBase::GetAssemblyReferences(class NAnt.VSNet.Configuration)
+	  IL_002d:  stloc.3 
+	  IL_002e:  nop 
+	  IL_002f:  ldloc.3 
+	  IL_0030:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	  IL_0035:  stloc.s 5
+	  .try { // 1
+	    IL_0037:  br IL_00a8
 
-	IL_0047:  nop 
-	IL_0048:  ldarg.2 
-	IL_0049:  ldloc.1 
-	IL_004a:  ldloc.1 
-	IL_004b:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_0050:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	IL_0055:  nop 
-	IL_0056:  nop 
-	IL_0057:  ldarg.0 
-	IL_0058:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ManagedProjectBase::GetLocalizedResources()
-	IL_005d:  stloc.2 
-	IL_005e:  nop 
-	IL_005f:  ldloc.2 
-	IL_0060:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Values()
-	IL_0065:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_006a:  stloc.s 4
+	    IL_003c:  ldloc.s 5
+	    IL_003e:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	    IL_0043:  stloc.s 4
+	    IL_0045:  nop 
+	    .try { // 0
+	      IL_0046:  nop 
+	      IL_0047:  ldloc.s 4
+	      IL_0049:  call class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.AssemblyName::GetAssemblyName(string)
+	      IL_004e:  stloc.s 6
+	      IL_0050:  ldloc.0 
+	      IL_0051:  ldloc.s 6
+	      IL_0053:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_FullName()
+	      IL_0058:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	      IL_005d:  brtrue IL_0073
+
+	      IL_0062:  nop 
+	      IL_0063:  ldloc.0 
+	      IL_0064:  ldloc.s 6
+	      IL_0066:  callvirt instance string class [mscorlib]System.Reflection.AssemblyName::get_FullName()
+	      IL_006b:  ldloc.s 4
+	      IL_006d:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	      IL_0072:  nop 
+	      IL_0073:  nop 
+	      IL_0074:  leave IL_00a7
+
+	    } // end .try 0
+	    catch class [mscorlib]System.Exception { // 0
+	      IL_0079:  stloc.s 7
+	      IL_007b:  nop 
+	      IL_007c:  ldarg.0 
+	      IL_007d:  ldc.i4 4000
+	      IL_0082:  ldstr "Referenced assembly \"{0}\" could not be loaded: {1}"
+	      IL_0087:  ldc.i4.2 
+	      IL_0088:  newarr [mscorlib]System.Object
+	      IL_008d:  dup 
+	      IL_008e:  ldc.i4.0 
+	      IL_008f:  ldloc.s 4
+	      IL_0091:  stelem.ref 
+	      IL_0092:  dup 
+	      IL_0093:  ldc.i4.1 
+	      IL_0094:  ldloc.s 7
+	      IL_0096:  callvirt instance string class [mscorlib]System.Exception::get_Message()
+	      IL_009b:  stelem.ref 
+	      IL_009c:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	      IL_00a1:  nop 
+	      IL_00a2:  leave IL_00a7
+
+	    } // end handler 0
+	    IL_00a7:  nop 
+	    IL_00a8:  ldloc.s 5
+	    IL_00aa:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	    IL_00af:  brtrue IL_003c
+
+	    IL_00b4:  leave IL_00d0
+
+	  } // end .try 1
+	  finally  { // 1
+	    IL_00b9:  ldloc.s 5
+	    IL_00bb:  isinst [mscorlib]System.IDisposable
+	    IL_00c0:  dup 
+	    IL_00c1:  stloc.s 8
+	    IL_00c3:  brfalse IL_00cf
+
+	    IL_00c8:  ldloc.s 8
+	    IL_00ca:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_00cf:  endfinally 
+	  } // end handler 1
+	  IL_00d0:  nop 
+	  IL_00d1:  ldloc.2 
+	  IL_00d2:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00d7:  brtrue IL_0019
+
+	  IL_00dc:  leave IL_00f7
+
+	} // end .try 2
+	finally  { // 2
+	  IL_00e1:  ldloc.2 
+	  IL_00e2:  isinst [mscorlib]System.IDisposable
+	  IL_00e7:  dup 
+	  IL_00e8:  stloc.s 9
+	  IL_00ea:  brfalse IL_00f6
+
+	  IL_00ef:  ldloc.s 9
+	  IL_00f1:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_00f6:  endfinally 
+	} // end handler 2
+	IL_00f7:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
+	IL_00fc:  stloc.s 10
+	IL_00fe:  nop 
+	IL_00ff:  ldloc.0 
+	IL_0100:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_0105:  stloc.s 12
+	.try { // 3
+	  IL_0107:  br IL_0130
+
+	  IL_010c:  ldloc.s 12
+	  IL_010e:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0113:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_0118:  stloc.s 11
+	  IL_011a:  nop 
+	  IL_011b:  ldloc.s 10
+	  IL_011d:  ldloca.s 11
+	  IL_011f:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_0124:  castclass [mscorlib]System.String
+	  IL_0129:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_012e:  pop 
+	  IL_012f:  nop 
+	  IL_0130:  ldloc.s 12
+	  IL_0132:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0137:  brtrue IL_010c
+
+	  IL_013c:  leave IL_0158
+
+	} // end .try 3
+	finally  { // 3
+	  IL_0141:  ldloc.s 12
+	  IL_0143:  isinst [mscorlib]System.IDisposable
+	  IL_0148:  dup 
+	  IL_0149:  stloc.s 13
+	  IL_014b:  brfalse IL_0157
+
+	  IL_0150:  ldloc.s 13
+	  IL_0152:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0157:  endfinally 
+	} // end handler 3
+	IL_0158:  ldloc.s 10
+	IL_015a:  stloc.s 14
+	IL_015c:  br IL_0161
+
+	IL_0161:  ldloc.s 14
+	IL_0163:  ret 
+    } // end of method ProjectBase::GetAssemblyReferences
+
+    // method line 593
+    .method public virtual hidebysig newslot 
+           instance default void GetOutputFiles (class NAnt.VSNet.Configuration solutionConfiguration, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
+    {
+        // Method begins at RVA 0x7198
+	// Code size 386 (0x182)
+	.maxstack 3
+	.locals init (
+		class NAnt.VSNet.ConfigurationBase	V_0,
+		class NAnt.VSNet.ReferenceBase	V_1,
+		class [mscorlib]System.Collections.IEnumerator	V_2,
+		class [mscorlib]System.IDisposable	V_3,
+		string	V_4,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_5,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_6,
+		class [mscorlib]System.IDisposable	V_7,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_8,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_9,
+		class [mscorlib]System.IDisposable	V_10)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  brtrue IL_001a
+
+	IL_0014:  nop 
+	IL_0015:  br IL_0181
+
+	IL_001a:  nop 
+	IL_001b:  ldarg.0 
+	IL_001c:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
+	IL_0021:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
+	IL_0026:  stloc.2 
 	.try { // 0
-	  IL_006c:  br IL_00cc
+	  IL_0027:  br IL_0066
 
-	  IL_0071:  ldloc.s 4
-	  IL_0073:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0078:  castclass NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet
-	  IL_007d:  stloc.3 
-	  IL_007e:  nop 
-	  IL_007f:  ldloc.3 
-	  IL_0080:  ldloc.0 
-	  IL_0081:  ldarg.0 
-	  IL_0082:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	  IL_0087:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::GetSatelliteAssemblyPath(class NAnt.VSNet.ConfigurationSettings, class NAnt.VSNet.ProjectSettings)
-	  IL_008c:  stloc.s 5
-	  IL_008e:  ldloc.s 5
-	  IL_0090:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_0095:  brfalse IL_00cb
+	  IL_002c:  ldloc.2 
+	  IL_002d:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0032:  castclass NAnt.VSNet.ReferenceBase
+	  IL_0037:  stloc.1 
+	  IL_0038:  nop 
+	  IL_0039:  ldloc.1 
+	  IL_003a:  callvirt instance bool class NAnt.VSNet.ReferenceBase::get_CopyLocal()
+	  IL_003f:  brtrue IL_004a
 
-	  IL_009a:  ldarg.2 
-	  IL_009b:  ldloc.s 5
-	  IL_009d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_00a2:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
-	  IL_00a7:  brtrue IL_00cb
+	  IL_0044:  nop 
+	  IL_0045:  leave IL_0066
 
-	  IL_00ac:  nop 
-	  IL_00ad:  ldloc.3 
-	  IL_00ae:  ldarg.0 
-	  IL_00af:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	  IL_00b4:  callvirt instance string class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::GetRelativePath(class NAnt.VSNet.ProjectSettings)
-	  IL_00b9:  stloc.s 6
-	  IL_00bb:  ldarg.2 
-	  IL_00bc:  ldloc.s 5
-	  IL_00be:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_00c3:  ldloc.s 6
-	  IL_00c5:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	  IL_00ca:  nop 
-	  IL_00cb:  nop 
-	  IL_00cc:  ldloc.s 4
-	  IL_00ce:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00d3:  brtrue IL_0071
+	  IL_004a:  ldarg.2 
+	  IL_004b:  ldloc.0 
+	  IL_004c:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
+	  IL_0051:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	  IL_0056:  brtrue IL_0065
 
-	  IL_00d8:  leave IL_00f4
+	  IL_005b:  nop 
+	  IL_005c:  ldloc.1 
+	  IL_005d:  ldarg.1 
+	  IL_005e:  ldarg.2 
+	  IL_005f:  callvirt instance void class NAnt.VSNet.ReferenceBase::GetOutputFiles(class NAnt.VSNet.Configuration, class [mscorlib]System.Collections.Hashtable)
+	  IL_0064:  nop 
+	  IL_0065:  nop 
+	  IL_0066:  ldloc.2 
+	  IL_0067:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_006c:  brtrue IL_002c
+
+	  IL_0071:  leave IL_008a
 
 	} // end .try 0
 	finally  { // 0
-	  IL_00dd:  ldloc.s 4
-	  IL_00df:  isinst [mscorlib]System.IDisposable
-	  IL_00e4:  dup 
-	  IL_00e5:  stloc.s 7
-	  IL_00e7:  brfalse IL_00f3
+	  IL_0076:  ldloc.2 
+	  IL_0077:  isinst [mscorlib]System.IDisposable
+	  IL_007c:  dup 
+	  IL_007d:  stloc.3 
+	  IL_007e:  brfalse IL_0089
 
-	  IL_00ec:  ldloc.s 7
-	  IL_00ee:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00f3:  endfinally 
+	  IL_0083:  ldloc.3 
+	  IL_0084:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0089:  endfinally 
 	} // end handler 0
-	IL_00f4:  ret 
-    } // end of method ManagedProjectBase::GetOutputFiles
+	IL_008a:  ldloc.0 
+	IL_008b:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
+	IL_0090:  stloc.s 4
+	IL_0092:  ldloc.s 4
+	IL_0094:  brfalse IL_0181
 
-    // method line 620
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.BuildResult Build (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+	IL_0099:  ldloc.s 4
+	IL_009b:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_00a0:  brfalse IL_0181
+
+	IL_00a5:  nop 
+	IL_00a6:  ldloc.s 4
+	IL_00a8:  ldarg.2 
+	IL_00a9:  call void class NAnt.VSNet.ReferenceBase::GetRelatedFiles(string, class [mscorlib]System.Collections.Hashtable)
+	IL_00ae:  nop 
+	IL_00af:  ldarg.0 
+	IL_00b0:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ProjectBase::get_ExtraOutputFiles()
+	IL_00b5:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_00ba:  stloc.s 6
+	.try { // 1
+	  IL_00bc:  br IL_00ef
+
+	  IL_00c1:  ldloc.s 6
+	  IL_00c3:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_00c8:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_00cd:  stloc.s 5
+	  IL_00cf:  nop 
+	  IL_00d0:  ldarg.2 
+	  IL_00d1:  ldloca.s 5
+	  IL_00d3:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_00d8:  castclass [mscorlib]System.String
+	  IL_00dd:  ldloca.s 5
+	  IL_00df:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_00e4:  castclass [mscorlib]System.String
+	  IL_00e9:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_00ee:  nop 
+	  IL_00ef:  ldloc.s 6
+	  IL_00f1:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00f6:  brtrue IL_00c1
+
+	  IL_00fb:  leave IL_0117
+
+	} // end .try 1
+	finally  { // 1
+	  IL_0100:  ldloc.s 6
+	  IL_0102:  isinst [mscorlib]System.IDisposable
+	  IL_0107:  dup 
+	  IL_0108:  stloc.s 7
+	  IL_010a:  brfalse IL_0116
+
+	  IL_010f:  ldloc.s 7
+	  IL_0111:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0116:  endfinally 
+	} // end handler 1
+	IL_0117:  nop 
+	IL_0118:  ldloc.0 
+	IL_0119:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ConfigurationBase::get_ExtraOutputFiles()
+	IL_011e:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_0123:  stloc.s 9
+	.try { // 2
+	  IL_0125:  br IL_0158
+
+	  IL_012a:  ldloc.s 9
+	  IL_012c:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0131:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_0136:  stloc.s 8
+	  IL_0138:  nop 
+	  IL_0139:  ldarg.2 
+	  IL_013a:  ldloca.s 8
+	  IL_013c:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_0141:  castclass [mscorlib]System.String
+	  IL_0146:  ldloca.s 8
+	  IL_0148:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_014d:  castclass [mscorlib]System.String
+	  IL_0152:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	  IL_0157:  nop 
+	  IL_0158:  ldloc.s 9
+	  IL_015a:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_015f:  brtrue IL_012a
+
+	  IL_0164:  leave IL_0180
+
+	} // end .try 2
+	finally  { // 2
+	  IL_0169:  ldloc.s 9
+	  IL_016b:  isinst [mscorlib]System.IDisposable
+	  IL_0170:  dup 
+	  IL_0171:  stloc.s 10
+	  IL_0173:  brfalse IL_017f
+
+	  IL_0178:  ldloc.s 10
+	  IL_017a:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_017f:  endfinally 
+	} // end handler 2
+	IL_0180:  nop 
+	IL_0181:  ret 
+    } // end of method ProjectBase::GetOutputFiles
+
+    // method line 594
+    .method public virtual hidebysig newslot abstract 
+           instance default bool IsManaged (class NAnt.VSNet.Configuration configuration)  cil managed 
     {
-        // Method begins at RVA 0xfb64
-	// Code size 1547 (0x60b)
-	.maxstack 7
+        // Method begins at RVA 0x0
+    } // end of method ProjectBase::IsManaged
+
+    // method line 595
+    .method famorassem virtual hidebysig newslot 
+           instance default string ExpandMacro (string macro)  cil managed 
+    {
+        // Method begins at RVA 0x7350
+	// Code size 231 (0xe7)
+	.maxstack 2
 	.locals init (
-		bool	V_0,
-		bool	V_1,
-		string	V_2,
-		class NAnt.VSNet.ConfigurationSettings	V_3,
-		valuetype NAnt.VSNet.BuildResult	V_4,
-		string	V_5,
-		class [mscorlib]System.IO.StreamWriter	V_6,
-		class [mscorlib]System.IO.StreamReader	V_7,
-		string	V_8,
-		class [System]System.Diagnostics.ProcessStartInfo	V_9,
-		class [System]System.Diagnostics.Process	V_10,
-		string	V_11,
-		int32	V_12,
-		class [mscorlib]System.Collections.Hashtable	V_13,
-		class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet	V_14,
-		class [mscorlib]System.Collections.IEnumerator	V_15,
-		class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask	V_16,
-		class [mscorlib]System.IO.DirectoryInfo	V_17,
-		class NAnt.VSNet.Resource	V_18,
-		class [mscorlib]System.Collections.IEnumerator	V_19,
-		class [mscorlib]System.IO.FileInfo	V_20,
-		class [NAnt.DotNetTasks]NAnt.DotNet.Types.EmbeddedResource	V_21,
-		class [mscorlib]System.IDisposable	V_22,
-		class [mscorlib]System.IDisposable	V_23,
-		string	V_24,
-		string	V_25,
-		class [mscorlib]System.Collections.Hashtable	V_26,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_27,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_28,
-		string	V_29,
-		string	V_30,
-		class NAnt.VSNet.WebDavClient	V_31,
-		class [mscorlib]System.IO.FileInfo	V_32,
-		class [mscorlib]System.IDisposable	V_33)
+		string	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stloc.0 
-	IL_0003:  ldnull 
-	IL_0004:  stloc.2 
-	IL_0005:  ldarg.0 
-	IL_0006:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
-	IL_000b:  callvirt instance void class [NAnt.Core]NAnt.Core.Util.GacCache::RecreateDomain()
-	.try { // 7
-	  IL_0010:  nop 
-	  IL_0011:  ldarg.0 
-	  IL_0012:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	  IL_0017:  ldarg.1 
-	  IL_0018:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	  IL_001d:  castclass NAnt.VSNet.ConfigurationSettings
-	  IL_0022:  stloc.3 
-	  IL_0023:  ldarg.0 
-	  IL_0024:  ldloc.3 
-	  IL_0025:  call instance bool class NAnt.VSNet.ManagedProjectBase::PreBuild(class NAnt.VSNet.ConfigurationSettings)
-	  IL_002a:  brtrue IL_0038
+	IL_0001:  ldarg.1 
+	IL_0002:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0007:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_000c:  stloc.0 
+	IL_000d:  ldloc.0 
+	IL_000e:  brfalse IL_00de
 
-	  IL_002f:  nop 
-	  IL_0030:  ldc.i4.0 
-	  IL_0031:  stloc.s 4
-	  IL_0033:  leave IL_0608
+	IL_0013:  ldloc.0 
+	IL_0014:  ldstr "projectname"
+	IL_0019:  call bool string::op_Equality(string, string)
+	IL_001e:  brtrue IL_0078
 
-	  IL_0038:  ldarg.0 
-	  IL_0039:  ldloc.3 
-	  IL_003a:  ldarg.1 
-	  IL_003b:  call instance void class NAnt.VSNet.ManagedProjectBase::UnregisterForComInterop(class NAnt.VSNet.ConfigurationSettings, class NAnt.VSNet.Configuration)
-	  IL_0040:  ldarg.0 
-	  IL_0041:  call instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.ProjectBase::get_TemporaryFiles()
-	  IL_0046:  callvirt instance string class [System]System.CodeDom.Compiler.TempFileCollection::get_BasePath()
-	  IL_004b:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	  IL_0050:  brtrue IL_0068
+	IL_0023:  ldloc.0 
+	IL_0024:  ldstr "projectpath"
+	IL_0029:  call bool string::op_Equality(string, string)
+	IL_002e:  brtrue IL_0084
 
-	  IL_0055:  nop 
-	  IL_0056:  ldarg.0 
-	  IL_0057:  call instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.ProjectBase::get_TemporaryFiles()
-	  IL_005c:  callvirt instance string class [System]System.CodeDom.Compiler.TempFileCollection::get_BasePath()
-	  IL_0061:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	  IL_0066:  pop 
-	  IL_0067:  nop 
-	  IL_0068:  ldarg.0 
-	  IL_0069:  ldarg.1 
-	  IL_006a:  call instance void class NAnt.VSNet.ManagedProjectBase::CompileResXFiles(class NAnt.VSNet.Configuration)
-	  IL_006f:  ldarg.0 
-	  IL_0070:  ldarg.1 
-	  IL_0071:  call instance bool class NAnt.VSNet.ManagedProjectBase::CheckUpToDate(class NAnt.VSNet.Configuration)
-	  IL_0076:  brfalse IL_0094
+	IL_0033:  ldloc.0 
+	IL_0034:  ldstr "projectfilename"
+	IL_0039:  call bool string::op_Equality(string, string)
+	IL_003e:  brtrue IL_0090
 
-	  IL_007b:  nop 
-	  IL_007c:  ldarg.0 
-	  IL_007d:  ldc.i4 2000
-	  IL_0082:  ldstr "Project is up-to-date."
-	  IL_0087:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	  IL_008c:  ldc.i4.0 
-	  IL_008d:  stloc.1 
-	  IL_008e:  nop 
-	  IL_008f:  br IL_025c
+	IL_0043:  ldloc.0 
+	IL_0044:  ldstr "projectext"
+	IL_0049:  call bool string::op_Equality(string, string)
+	IL_004e:  brtrue IL_00a1
 
-	  IL_0094:  nop 
-	  IL_0095:  ldarg.0 
-	  IL_0096:  ldarg.1 
-	  IL_0097:  callvirt instance void class NAnt.VSNet.ProjectBase::Prepare(class NAnt.VSNet.Configuration)
-	  IL_009c:  ldarg.0 
-	  IL_009d:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
-	  IL_00a2:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
-	  IL_00a7:  brtrue IL_00c1
+	IL_0053:  ldloc.0 
+	IL_0054:  ldstr "projectdir"
+	IL_0059:  call bool string::op_Equality(string, string)
+	IL_005e:  brtrue IL_00b2
 
-	  IL_00ac:  nop 
-	  IL_00ad:  call string class [mscorlib]System.IO.Path::GetTempFileName()
-	  IL_00b2:  stloc.2 
-	  IL_00b3:  ldarg.0 
-	  IL_00b4:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
-	  IL_00b9:  ldloc.2 
-	  IL_00ba:  ldnull 
-	  IL_00bb:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	  IL_00c0:  nop 
-	  IL_00c1:  ldarg.0 
-	  IL_00c2:  call instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.ProjectBase::get_TemporaryFiles()
-	  IL_00c7:  callvirt instance string class [System]System.CodeDom.Compiler.TempFileCollection::get_BasePath()
-	  IL_00cc:  ldstr "compile-commands.txt"
-	  IL_00d1:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	  IL_00d6:  stloc.s 5
-	  IL_00d8:  ldloc.s 5
-	  IL_00da:  call class [mscorlib]System.IO.StreamWriter class [mscorlib]System.IO.File::CreateText(string)
-	  IL_00df:  stloc.s 6
-	  .try { // 0
-	    IL_00e1:  nop 
-	    IL_00e2:  ldarg.0 
-	    IL_00e3:  ldloc.s 6
-	    IL_00e5:  ldarg.1 
-	    IL_00e6:  callvirt instance void class NAnt.VSNet.ManagedProjectBase::WriteCompilerOptions(class [mscorlib]System.IO.StreamWriter, class NAnt.VSNet.Configuration)
-	    IL_00eb:  nop 
-	    IL_00ec:  leave IL_0100
+	IL_0063:  ldloc.0 
+	IL_0064:  ldstr "devenvdir"
+	IL_0069:  call bool string::op_Equality(string, string)
+	IL_006e:  brtrue IL_00d2
 
-	  } // end .try 0
-	  finally  { // 0
-	    IL_00f1:  ldloc.s 6
-	    IL_00f3:  brfalse IL_00ff
+	IL_0073:  br IL_00de
 
-	    IL_00f8:  ldloc.s 6
-	    IL_00fa:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_00ff:  endfinally 
-	  } // end handler 0
-	  IL_0100:  ldarg.0 
-	  IL_0101:  ldc.i4 2000
-	  IL_0106:  ldstr "Starting compiler..."
-	  IL_010b:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	  IL_0110:  ldarg.0 
-	  IL_0111:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	  IL_0116:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	  IL_011b:  brfalse IL_01b0
+	IL_0078:  ldarg.0 
+	IL_0079:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
+	IL_007e:  stloc.1 
+	IL_007f:  br IL_00e5
 
-	  IL_0120:  nop 
-	  IL_0121:  ldloc.s 5
-	  IL_0123:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string)
-	  IL_0128:  stloc.s 7
-	  .try { // 2
-	    IL_012a:  nop 
-	    IL_012b:  ldarg.0 
-	    IL_012c:  ldc.i4 2000
-	    IL_0131:  ldstr "Commands:"
-	    IL_0136:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	    IL_013b:  ldarg.0 
-	    IL_013c:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	    IL_0141:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	    IL_0146:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	    .try { // 1
-	      IL_014b:  nop 
-	      IL_014c:  nop 
-	      IL_014d:  nop 
-	      IL_014e:  ldloc.s 7
-	      IL_0150:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	      IL_0155:  stloc.s 8
-	      IL_0157:  ldloc.s 8
-	      IL_0159:  brtrue IL_0164
+	IL_0084:  ldarg.0 
+	IL_0085:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_008a:  stloc.1 
+	IL_008b:  br IL_00e5
 
-	      IL_015e:  nop 
-	      IL_015f:  leave IL_0181
+	IL_0090:  ldarg.0 
+	IL_0091:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_0096:  call string class [mscorlib]System.IO.Path::GetFileName(string)
+	IL_009b:  stloc.1 
+	IL_009c:  br IL_00e5
 
-	      IL_0164:  ldarg.0 
-	      IL_0165:  ldc.i4 2000
-	      IL_016a:  ldstr "    "
-	      IL_016f:  ldloc.s 8
-	      IL_0171:  call string string::Concat(string, string)
-	      IL_0176:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	      IL_017b:  nop 
-	      IL_017c:  br IL_014c
+	IL_00a1:  ldarg.0 
+	IL_00a2:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_00a7:  call string class [mscorlib]System.IO.Path::GetExtension(string)
+	IL_00ac:  stloc.1 
+	IL_00ad:  br IL_00e5
 
-	      IL_0181:  nop 
-	      IL_0182:  leave IL_019a
+	IL_00b2:  ldarg.0 
+	IL_00b3:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
+	IL_00b8:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
+	IL_00bd:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
+	IL_00c2:  box [mscorlib]System.Char
+	IL_00c7:  call string string::Concat(object, object)
+	IL_00cc:  stloc.1 
+	IL_00cd:  br IL_00e5
 
-	    } // end .try 1
-	    finally  { // 1
-	      IL_0187:  nop 
-	      IL_0188:  ldarg.0 
-	      IL_0189:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	      IL_018e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	      IL_0193:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	      IL_0198:  nop 
-	      IL_0199:  endfinally 
-	    } // end handler 1
-	    IL_019a:  nop 
-	    IL_019b:  leave IL_01af
+	IL_00d2:  ldarg.0 
+	IL_00d3:  callvirt instance string class NAnt.VSNet.ProjectBase::get_DevEnvDir()
+	IL_00d8:  stloc.1 
+	IL_00d9:  br IL_00e5
 
-	  } // end .try 2
-	  finally  { // 2
-	    IL_01a0:  ldloc.s 7
-	    IL_01a2:  brfalse IL_01ae
+	IL_00de:  ldnull 
+	IL_00df:  stloc.1 
+	IL_00e0:  br IL_00e5
 
-	    IL_01a7:  ldloc.s 7
-	    IL_01a9:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_01ae:  endfinally 
-	  } // end handler 2
-	  IL_01af:  nop 
-	  IL_01b0:  ldarg.0 
-	  IL_01b1:  ldloc.3 
-	  IL_01b2:  ldloc.s 5
-	  IL_01b4:  callvirt instance class [System]System.Diagnostics.ProcessStartInfo class NAnt.VSNet.ManagedProjectBase::GetProcessStartInfo(class NAnt.VSNet.ConfigurationBase, string)
-	  IL_01b9:  stloc.s 9
-	  IL_01bb:  ldloc.s 9
-	  IL_01bd:  ldc.i4.0 
-	  IL_01be:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_UseShellExecute(bool)
-	  IL_01c3:  ldloc.s 9
-	  IL_01c5:  ldc.i4.1 
-	  IL_01c6:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(bool)
-	  IL_01cb:  ldloc.s 9
-	  IL_01cd:  call class [System]System.Diagnostics.Process class [System]System.Diagnostics.Process::Start(class [System]System.Diagnostics.ProcessStartInfo)
-	  IL_01d2:  stloc.s 10
-	  IL_01d4:  nop 
-	  IL_01d5:  nop 
-	  IL_01d6:  ldloc.s 10
-	  IL_01d8:  callvirt instance class [mscorlib]System.IO.StreamReader class [System]System.Diagnostics.Process::get_StandardOutput()
-	  IL_01dd:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
-	  IL_01e2:  stloc.s 11
-	  IL_01e4:  ldloc.s 11
-	  IL_01e6:  brtrue IL_01f1
+	IL_00e5:  ldloc.1 
+	IL_00e6:  ret 
+    } // end of method ProjectBase::ExpandMacro
 
-	  IL_01eb:  nop 
-	  IL_01ec:  leave IL_0204
+    // method line 596
+    .method family virtual hidebysig newslot abstract 
+           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ProjectBase::DetermineProductVersion
 
-	  IL_01f1:  ldarg.0 
-	  IL_01f2:  ldc.i4 3000
-	  IL_01f7:  ldloc.s 11
-	  IL_01f9:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	  IL_01fe:  nop 
-	  IL_01ff:  br IL_01d4
+    // method line 597
+    .method family virtual hidebysig newslot abstract 
+           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ProjectBase::VerifyProjectXml
 
-	  IL_0204:  ldloc.s 10
-	  IL_0206:  callvirt instance void class [System]System.Diagnostics.Process::WaitForExit()
-	  IL_020b:  ldloc.s 10
-	  IL_020d:  callvirt instance int32 class [System]System.Diagnostics.Process::get_ExitCode()
-	  IL_0212:  stloc.s 12
-	  IL_0214:  ldarg.0 
-	  IL_0215:  ldc.i4 2000
-	  IL_021a:  ldstr "{0}! (exit code = {1})"
-	  IL_021f:  ldc.i4.2 
-	  IL_0220:  newarr [mscorlib]System.Object
-	  IL_0225:  dup 
-	  IL_0226:  ldc.i4.0 
-	  IL_0227:  ldloc.s 12
-	  IL_0229:  brtrue IL_0238
+    // method line 598
+    .method family virtual hidebysig newslot 
+           instance default void Prepare (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x7444
+	// Code size 333 (0x14d)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.Collections.Hashtable	V_0,
+		class [NAnt.Core]NAnt.Core.Tasks.AttribTask	V_1,
+		class NAnt.VSNet.ConfigurationBase	V_2,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_3,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_4,
+		class [mscorlib]System.IDisposable	V_5)
+	IL_0000:  nop 
+	IL_0001:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldloc.0 
+	IL_000a:  callvirt instance void class NAnt.VSNet.ProjectBase::GetOutputFiles(class NAnt.VSNet.Configuration, class [mscorlib]System.Collections.Hashtable)
+	IL_000f:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.AttribTask::'.ctor'()
+	IL_0014:  stloc.1 
+	IL_0015:  ldloc.1 
+	IL_0016:  ldarg.0 
+	IL_0017:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_001c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_0021:  ldloc.1 
+	IL_0022:  ldarg.0 
+	IL_0023:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0028:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_002d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_0032:  ldloc.1 
+	IL_0033:  ldarg.0 
+	IL_0034:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0039:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_003e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0043:  ldloc.1 
+	IL_0044:  ldarg.0 
+	IL_0045:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_004a:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_004f:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
+	IL_0054:  ldloc.1 
+	IL_0055:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_005a:  brtrue IL_006c
 
-	  IL_022e:  ldstr "Success"
-	  IL_0233:  br IL_023d
+	IL_005f:  nop 
+	IL_0060:  ldloc.1 
+	IL_0061:  ldc.i4 4000
+	IL_0066:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
+	IL_006b:  nop 
+	IL_006c:  ldloc.1 
+	IL_006d:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	IL_0072:  ldloc.1 
+	IL_0073:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	IL_0078:  ldloc.1 
+	IL_0079:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_007e:  ldloc.1 
+	IL_007f:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	IL_0084:  ldloc.1 
+	IL_0085:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_008a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_008f:  ldloc.1 
+	IL_0090:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	IL_0095:  ldloc.1 
+	IL_0096:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_009b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_00a0:  ldloc.1 
+	IL_00a1:  ldc.i4.0 
+	IL_00a2:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.AttribTask::set_ReadOnlyAttrib(bool)
+	IL_00a7:  ldarg.0 
+	IL_00a8:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
+	IL_00ad:  ldarg.1 
+	IL_00ae:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_00b3:  stloc.2 
+	IL_00b4:  nop 
+	IL_00b5:  ldloc.0 
+	IL_00b6:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_00bb:  stloc.s 4
+	.try { // 0
+	  IL_00bd:  br IL_00fe
 
-	  IL_0238:  ldstr "Failure"
-	  IL_023d:  stelem.ref 
-	  IL_023e:  dup 
-	  IL_023f:  ldc.i4.1 
-	  IL_0240:  ldloc.s 12
-	  IL_0242:  box [mscorlib]System.Int32
-	  IL_0247:  stelem.ref 
-	  IL_0248:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_024d:  ldloc.s 12
-	  IL_024f:  ldc.i4.0 
-	  IL_0250:  ble IL_0259
+	  IL_00c2:  ldloc.s 4
+	  IL_00c4:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_00c9:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_00ce:  stloc.3 
+	  IL_00cf:  nop 
+	  IL_00d0:  ldloc.1 
+	  IL_00d1:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.AttribTask::get_AttribFileSet()
+	  IL_00d6:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
+	  IL_00db:  ldloc.2 
+	  IL_00dc:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
+	  IL_00e1:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_00e6:  ldloca.s 3
+	  IL_00e8:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_00ed:  castclass [mscorlib]System.String
+	  IL_00f2:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
+	  IL_00f7:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
+	  IL_00fc:  pop 
+	  IL_00fd:  nop 
+	  IL_00fe:  ldloc.s 4
+	  IL_0100:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0105:  brtrue IL_00c2
 
-	  IL_0255:  nop 
-	  IL_0256:  ldc.i4.0 
-	  IL_0257:  stloc.0 
-	  IL_0258:  nop 
-	  IL_0259:  ldc.i4.1 
-	  IL_025a:  stloc.1 
-	  IL_025b:  nop 
-	  IL_025c:  ldarg.0 
-	  IL_025d:  ldc.i4 2000
-	  IL_0262:  ldstr "Building satellite assemblies..."
-	  IL_0267:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	  IL_026c:  ldarg.0 
-	  IL_026d:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ManagedProjectBase::GetLocalizedResources()
-	  IL_0272:  stloc.s 13
-	  IL_0274:  nop 
-	  IL_0275:  ldloc.s 13
-	  IL_0277:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Values()
-	  IL_027c:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	  IL_0281:  stloc.s 15
-	  .try { // 5
-	    IL_0283:  br IL_0437
+	  IL_010a:  leave IL_0126
 
-	    IL_0288:  ldloc.s 15
-	    IL_028a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_028f:  castclass NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet
-	    IL_0294:  stloc.s 14
-	    IL_0296:  nop 
-	    IL_0297:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask::'.ctor'()
-	    IL_029c:  stloc.s 16
-	    IL_029e:  ldloc.s 16
-	    IL_02a0:  ldarg.0 
-	    IL_02a1:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	    IL_02a6:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	    IL_02ab:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	    IL_02b0:  ldloc.s 16
-	    IL_02b2:  ldarg.0 
-	    IL_02b3:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	    IL_02b8:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	    IL_02bd:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	    IL_02c2:  ldloc.s 16
-	    IL_02c4:  ldarg.0 
-	    IL_02c5:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	    IL_02ca:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	    IL_02cf:  ldloc.s 16
-	    IL_02d1:  ldloc.3 
-	    IL_02d2:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	    IL_02d7:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	    IL_02dc:  ldloc.s 16
-	    IL_02de:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	    IL_02e3:  ldloc.s 14
-	    IL_02e5:  ldloc.3 
-	    IL_02e6:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::GetBuildDirectory(class NAnt.VSNet.ConfigurationSettings)
-	    IL_02eb:  stloc.s 17
-	    IL_02ed:  ldloc.s 17
-	    IL_02ef:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	    IL_02f4:  brtrue IL_0302
+	} // end .try 0
+	finally  { // 0
+	  IL_010f:  ldloc.s 4
+	  IL_0111:  isinst [mscorlib]System.IDisposable
+	  IL_0116:  dup 
+	  IL_0117:  stloc.s 5
+	  IL_0119:  brfalse IL_0125
 
-	    IL_02f9:  nop 
-	    IL_02fa:  ldloc.s 17
-	    IL_02fc:  callvirt instance void class [mscorlib]System.IO.DirectoryInfo::Create()
-	    IL_0301:  nop 
-	    IL_0302:  ldloc.s 16
-	    IL_0304:  ldloc.s 14
-	    IL_0306:  ldloc.3 
-	    IL_0307:  ldarg.0 
-	    IL_0308:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	    IL_030d:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::GetSatelliteAssemblyPath(class NAnt.VSNet.ConfigurationSettings, class NAnt.VSNet.ProjectSettings)
-	    IL_0312:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask::set_OutputFile(class [mscorlib]System.IO.FileInfo)
-	    IL_0317:  ldloc.s 16
-	    IL_0319:  ldstr "lib"
-	    IL_031e:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask::set_OutputTarget(string)
-	    IL_0323:  ldloc.s 16
-	    IL_0325:  ldloc.s 14
-	    IL_0327:  callvirt instance class [mscorlib]System.Globalization.CultureInfo class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::get_Culture()
-	    IL_032c:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	    IL_0331:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask::set_Culture(string)
-	    IL_0336:  ldloc.s 16
-	    IL_0338:  ldloc.3 
-	    IL_0339:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
-	    IL_033e:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	    IL_0343:  callvirt instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask::set_TemplateFile(class [mscorlib]System.IO.FileInfo)
-	    IL_0348:  nop 
-	    IL_0349:  ldloc.s 14
-	    IL_034b:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::get_Resources()
-	    IL_0350:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	    IL_0355:  stloc.s 19
-	    .try { // 3
-	      IL_0357:  br IL_03bd
+	  IL_011e:  ldloc.s 5
+	  IL_0120:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0125:  endfinally 
+	} // end handler 0
+	IL_0126:  ldloc.1 
+	IL_0127:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_012c:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	.try { // 1
+	  IL_0131:  nop 
+	  IL_0132:  ldloc.1 
+	  IL_0133:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_0138:  nop 
+	  IL_0139:  leave IL_014c
 
-	      IL_035c:  ldloc.s 19
-	      IL_035e:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	      IL_0363:  castclass NAnt.VSNet.Resource
-	      IL_0368:  stloc.s 18
-	      IL_036a:  nop 
-	      IL_036b:  ldnull 
-	      IL_036c:  stloc.s 20
-	      IL_036e:  ldloc.s 18
-	      IL_0370:  callvirt instance bool class NAnt.VSNet.Resource::get_IsResX()
-	      IL_0375:  brfalse IL_038b
+	} // end .try 1
+	finally  { // 1
+	  IL_013e:  nop 
+	  IL_013f:  ldloc.1 
+	  IL_0140:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_0145:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	  IL_014a:  nop 
+	  IL_014b:  endfinally 
+	} // end handler 1
+	IL_014c:  ret 
+    } // end of method ProjectBase::Prepare
 
-	      IL_037a:  nop 
-	      IL_037b:  ldloc.s 18
-	      IL_037d:  ldarg.1 
-	      IL_037e:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::GetCompiledResourceFile(class NAnt.VSNet.Configuration)
-	      IL_0383:  stloc.s 20
-	      IL_0385:  nop 
-	      IL_0386:  br IL_0397
+    // method line 599
+    .method family virtual hidebysig newslot abstract 
+           instance default valuetype NAnt.VSNet.BuildResult Build (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method ProjectBase::Build
 
-	      IL_038b:  nop 
-	      IL_038c:  ldloc.s 18
-	      IL_038e:  ldarg.1 
-	      IL_038f:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::Compile(class NAnt.VSNet.Configuration)
-	      IL_0394:  stloc.s 20
-	      IL_0396:  nop 
-	      IL_0397:  ldloc.s 20
-	      IL_0399:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	      IL_039e:  ldloc.s 18
-	      IL_03a0:  ldarg.1 
-	      IL_03a1:  callvirt instance string class NAnt.VSNet.Resource::GetManifestResourceName(class NAnt.VSNet.Configuration)
-	      IL_03a6:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.EmbeddedResource::'.ctor'(string, string)
-	      IL_03ab:  stloc.s 21
-	      IL_03ad:  ldloc.s 16
-	      IL_03af:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.EmbeddedResourceCollection class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask::get_EmbeddedResources()
-	      IL_03b4:  ldloc.s 21
-	      IL_03b6:  callvirt instance int32 class [NAnt.DotNetTasks]NAnt.DotNet.Types.EmbeddedResourceCollection::Add(class [NAnt.DotNetTasks]NAnt.DotNet.Types.EmbeddedResource)
-	      IL_03bb:  pop 
-	      IL_03bc:  nop 
-	      IL_03bd:  ldloc.s 19
-	      IL_03bf:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	      IL_03c4:  brtrue IL_035c
+    // method line 600
+    .method family hidebysig 
+           instance default void CopyFile (class [mscorlib]System.IO.FileInfo srcFile, class [mscorlib]System.IO.FileInfo destFile, class [NAnt.Core]NAnt.Core.Task parent)  cil managed 
+    {
+        // Method begins at RVA 0x75bc
+	// Code size 179 (0xb3)
+	.maxstack 2
+	.locals init (
+		class [NAnt.Core]NAnt.Core.Tasks.CopyTask	V_0)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.3 
+	IL_0009:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_000e:  ldloc.0 
+	IL_000f:  ldarg.3 
+	IL_0010:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0015:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_001a:  ldloc.0 
+	IL_001b:  ldarg.3 
+	IL_001c:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0021:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_0026:  ldloc.0 
+	IL_0027:  ldarg.3 
+	IL_0028:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_002d:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
+	IL_0032:  ldloc.0 
+	IL_0033:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_0038:  brtrue IL_004a
 
-	      IL_03c9:  leave IL_03e5
+	IL_003d:  nop 
+	IL_003e:  ldloc.0 
+	IL_003f:  ldc.i4 4000
+	IL_0044:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
+	IL_0049:  nop 
+	IL_004a:  ldloc.0 
+	IL_004b:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
+	IL_0050:  ldloc.0 
+	IL_0051:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0056:  ldloc.0 
+	IL_0057:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
+	IL_005c:  ldloc.0 
+	IL_005d:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0062:  ldloc.0 
+	IL_0063:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0068:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
+	IL_006d:  ldloc.0 
+	IL_006e:  callvirt instance class [NAnt.Core]NAnt.Core.Types.FileSet class [NAnt.Core]NAnt.Core.Tasks.CopyTask::get_CopyFileSet()
+	IL_0073:  ldloc.0 
+	IL_0074:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
+	IL_0079:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
+	IL_007e:  ldloc.0 
+	IL_007f:  ldarg.1 
+	IL_0080:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::set_SourceFile(class [mscorlib]System.IO.FileInfo)
+	IL_0085:  ldloc.0 
+	IL_0086:  ldarg.2 
+	IL_0087:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.CopyTask::set_ToFile(class [mscorlib]System.IO.FileInfo)
+	IL_008c:  ldloc.0 
+	IL_008d:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0092:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
+	.try { // 0
+	  IL_0097:  nop 
+	  IL_0098:  ldloc.0 
+	  IL_0099:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
+	  IL_009e:  nop 
+	  IL_009f:  leave IL_00b2
 
-	    } // end .try 3
-	    finally  { // 3
-	      IL_03ce:  ldloc.s 19
-	      IL_03d0:  isinst [mscorlib]System.IDisposable
-	      IL_03d5:  dup 
-	      IL_03d6:  stloc.s 22
-	      IL_03d8:  brfalse IL_03e4
+	} // end .try 0
+	finally  { // 0
+	  IL_00a4:  nop 
+	  IL_00a5:  ldloc.0 
+	  IL_00a6:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	  IL_00ab:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
+	  IL_00b0:  nop 
+	  IL_00b1:  endfinally 
+	} // end handler 0
+	IL_00b2:  ret 
+    } // end of method ProjectBase::CopyFile
 
-	      IL_03dd:  ldloc.s 22
-	      IL_03df:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	      IL_03e4:  endfinally 
-	    } // end handler 3
-	    IL_03e5:  ldarg.0 
-	    IL_03e6:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	    IL_03eb:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	    IL_03f0:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	    .try { // 4
-	      IL_03f5:  nop 
-	      IL_03f6:  ldarg.0 
-	      IL_03f7:  ldc.i4 2000
-	      IL_03fc:  ldstr " - {0}"
-	      IL_0401:  ldc.i4.1 
-	      IL_0402:  newarr [mscorlib]System.Object
-	      IL_0407:  dup 
-	      IL_0408:  ldc.i4.0 
-	      IL_0409:  ldloc.s 16
-	      IL_040b:  callvirt instance string class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.AssemblyLinkerTask::get_Culture()
-	      IL_0410:  stelem.ref 
-	      IL_0411:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	      IL_0416:  ldloc.s 16
-	      IL_0418:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	      IL_041d:  nop 
-	      IL_041e:  leave IL_0436
+    // method line 601
+    .method family hidebysig 
+           instance default bool ExecuteBuildEvent (string buildEvent, string buildCommandLine, string batchFile, string workingDirectory, class NAnt.VSNet.ConfigurationBase config)  cil managed 
+    {
+        // Method begins at RVA 0x768c
+	// Code size 362 (0x16a)
+	.maxstack 7
+	.locals init (
+		class [mscorlib]System.IO.StreamWriter	V_0,
+		class [System]System.Diagnostics.ProcessStartInfo	V_1,
+		class [System]System.Diagnostics.Process	V_2,
+		string	V_3,
+		int32	V_4,
+		bool	V_5)
+	IL_0000:  nop 
+	IL_0001:  ldarg.3 
+	IL_0002:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string)
+	IL_0007:  stloc.0 
+	.try { // 0
+	  IL_0008:  nop 
+	  IL_0009:  ldloc.0 
+	  IL_000a:  ldstr "@echo off"
+	  IL_000f:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_0014:  ldarg.s 5
+	  IL_0016:  ldarg.2 
+	  IL_0017:  callvirt instance string class NAnt.VSNet.ConfigurationBase::ExpandMacros(string)
+	  IL_001c:  starg.s 2
+	  IL_001e:  ldarg.2 
+	  IL_001f:  ldstr "&#xd;&#xa;"
+	  IL_0024:  ldstr "\n"
+	  IL_0029:  callvirt instance string string::Replace(string, string)
+	  IL_002e:  starg.s 2
+	  IL_0030:  ldloc.0 
+	  IL_0031:  ldarg.2 
+	  IL_0032:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_0037:  ldloc.0 
+	  IL_0038:  ldstr "if errorlevel 1 goto EventReportError"
+	  IL_003d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_0042:  ldloc.0 
+	  IL_0043:  ldstr "goto EventEnd"
+	  IL_0048:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_004d:  ldloc.0 
+	  IL_004e:  ldstr ":EventReportError"
+	  IL_0053:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_0058:  ldloc.0 
+	  IL_0059:  ldstr "echo Project error: A tool returned an error code from the build event"
+	  IL_005e:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_0063:  ldloc.0 
+	  IL_0064:  ldstr "exit 1"
+	  IL_0069:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_006e:  ldloc.0 
+	  IL_006f:  ldstr ":EventEnd"
+	  IL_0074:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_0079:  nop 
+	  IL_007a:  leave IL_008c
 
-	    } // end .try 4
-	    finally  { // 4
-	      IL_0423:  nop 
-	      IL_0424:  ldarg.0 
-	      IL_0425:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	      IL_042a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	      IL_042f:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	      IL_0434:  nop 
-	      IL_0435:  endfinally 
-	    } // end handler 4
-	    IL_0436:  nop 
-	    IL_0437:  ldloc.s 15
-	    IL_0439:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_043e:  brtrue IL_0288
+	} // end .try 0
+	finally  { // 0
+	  IL_007f:  ldloc.0 
+	  IL_0080:  brfalse IL_008b
 
-	    IL_0443:  leave IL_045f
+	  IL_0085:  ldloc.0 
+	  IL_0086:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_008b:  endfinally 
+	} // end handler 0
+	IL_008c:  ldarg.3 
+	IL_008d:  newobj instance void class [System]System.Diagnostics.ProcessStartInfo::'.ctor'(string)
+	IL_0092:  stloc.1 
+	IL_0093:  ldloc.1 
+	IL_0094:  ldc.i4.0 
+	IL_0095:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_UseShellExecute(bool)
+	IL_009a:  ldloc.1 
+	IL_009b:  ldc.i4.1 
+	IL_009c:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_RedirectStandardOutput(bool)
+	IL_00a1:  ldloc.1 
+	IL_00a2:  ldarg.s 4
+	IL_00a4:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
+	IL_00a9:  ldloc.1 
+	IL_00aa:  call class [System]System.Diagnostics.Process class [System]System.Diagnostics.Process::Start(class [System]System.Diagnostics.ProcessStartInfo)
+	IL_00af:  stloc.2 
+	IL_00b0:  nop 
+	IL_00b1:  nop 
+	IL_00b2:  ldloc.2 
+	IL_00b3:  callvirt instance class [mscorlib]System.IO.StreamReader class [System]System.Diagnostics.Process::get_StandardOutput()
+	IL_00b8:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadLine()
+	IL_00bd:  stloc.3 
+	IL_00be:  ldloc.3 
+	IL_00bf:  brtrue IL_00ca
 
-	  } // end .try 5
-	  finally  { // 5
-	    IL_0448:  ldloc.s 15
-	    IL_044a:  isinst [mscorlib]System.IDisposable
-	    IL_044f:  dup 
-	    IL_0450:  stloc.s 23
-	    IL_0452:  brfalse IL_045e
+	IL_00c4:  nop 
+	IL_00c5:  br IL_00f6
 
-	    IL_0457:  ldloc.s 23
-	    IL_0459:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_045e:  endfinally 
-	  } // end handler 5
-	  IL_045f:  ldloc.3 
-	  IL_0460:  callvirt instance bool class NAnt.VSNet.ConfigurationSettings::get_RegisterForComInterop()
-	  IL_0465:  brfalse IL_04ab
+	IL_00ca:  ldarg.0 
+	IL_00cb:  ldc.i4 2000
+	IL_00d0:  ldstr "      ["
+	IL_00d5:  ldarg.1 
+	IL_00d6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00db:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
+	IL_00e0:  ldstr "] "
+	IL_00e5:  ldloc.3 
+	IL_00e6:  call string string::Concat(string, string, string, string)
+	IL_00eb:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_00f0:  nop 
+	IL_00f1:  br IL_00b0
 
-	  IL_046a:  nop 
-	  IL_046b:  ldarg.0 
-	  IL_046c:  ldloc.3 
-	  IL_046d:  call instance string class NAnt.VSNet.ManagedProjectBase::GetTypeLibraryPath(class NAnt.VSNet.ConfigurationSettings)
-	  IL_0472:  stloc.s 24
-	  IL_0474:  ldarg.0 
-	  IL_0475:  ldloc.3 
-	  IL_0476:  ldarg.1 
-	  IL_0477:  ldloc.s 24
-	  IL_0479:  call instance void class NAnt.VSNet.ManagedProjectBase::RegisterForComInterop(class NAnt.VSNet.ConfigurationSettings, class NAnt.VSNet.Configuration, string)
-	  IL_047e:  ldloc.3 
-	  IL_047f:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
-	  IL_0484:  ldstr ".tlb"
-	  IL_0489:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
-	  IL_048e:  stloc.s 25
-	  IL_0490:  ldarg.0 
-	  IL_0491:  ldloc.s 24
-	  IL_0493:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_0498:  ldloc.s 25
-	  IL_049a:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	  IL_049f:  ldarg.0 
-	  IL_04a0:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	  IL_04a5:  call instance void class NAnt.VSNet.ProjectBase::CopyFile(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo, class [NAnt.Core]NAnt.Core.Task)
-	  IL_04aa:  nop 
-	  IL_04ab:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
-	  IL_04b0:  stloc.s 26
-	  IL_04b2:  ldarg.0 
-	  IL_04b3:  ldarg.1 
-	  IL_04b4:  ldloc.s 26
-	  IL_04b6:  callvirt instance void class NAnt.VSNet.ProjectBase::GetOutputFiles(class NAnt.VSNet.Configuration, class [mscorlib]System.Collections.Hashtable)
-	  IL_04bb:  nop 
-	  IL_04bc:  ldloc.s 26
-	  IL_04be:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	  IL_04c3:  stloc.s 28
-	  .try { // 6
-	    IL_04c5:  br IL_056f
+	IL_00f6:  ldloc.2 
+	IL_00f7:  callvirt instance void class [System]System.Diagnostics.Process::WaitForExit()
+	IL_00fc:  ldloc.2 
+	IL_00fd:  callvirt instance int32 class [System]System.Diagnostics.Process::get_ExitCode()
+	IL_0102:  stloc.s 4
+	IL_0104:  ldloc.s 4
+	IL_0106:  brtrue IL_012c
 
-	    IL_04ca:  ldloc.s 28
-	    IL_04cc:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	    IL_04d1:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	    IL_04d6:  stloc.s 27
-	    IL_04d8:  nop 
-	    IL_04d9:  ldloca.s 27
-	    IL_04db:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	    IL_04e0:  castclass [mscorlib]System.String
-	    IL_04e5:  stloc.s 29
-	    IL_04e7:  ldloca.s 27
-	    IL_04e9:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	    IL_04ee:  castclass [mscorlib]System.String
-	    IL_04f3:  stloc.s 30
-	    IL_04f5:  ldarg.0 
-	    IL_04f6:  call instance bool class NAnt.VSNet.ManagedProjectBase::get_IsWebProject()
-	    IL_04fb:  brfalse IL_053e
+	IL_010b:  nop 
+	IL_010c:  ldarg.0 
+	IL_010d:  ldc.i4 2000
+	IL_0112:  ldstr "{0} succeeded (exit code = 0)"
+	IL_0117:  ldc.i4.1 
+	IL_0118:  newarr [mscorlib]System.Object
+	IL_011d:  dup 
+	IL_011e:  ldc.i4.0 
+	IL_011f:  ldarg.1 
+	IL_0120:  stelem.ref 
+	IL_0121:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0126:  nop 
+	IL_0127:  br IL_0152
+
+	IL_012c:  nop 
+	IL_012d:  ldarg.0 
+	IL_012e:  ldc.i4 5000
+	IL_0133:  ldstr "{0} failed with exit code = {1}"
+	IL_0138:  ldc.i4.2 
+	IL_0139:  newarr [mscorlib]System.Object
+	IL_013e:  dup 
+	IL_013f:  ldc.i4.0 
+	IL_0140:  ldarg.1 
+	IL_0141:  stelem.ref 
+	IL_0142:  dup 
+	IL_0143:  ldc.i4.1 
+	IL_0144:  ldloc.s 4
+	IL_0146:  box [mscorlib]System.Int32
+	IL_014b:  stelem.ref 
+	IL_014c:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0151:  nop 
+	IL_0152:  ldloc.s 4
+	IL_0154:  brtrue IL_015f
+
+	IL_0159:  ldc.i4.1 
+	IL_015a:  br IL_0160
+
+	IL_015f:  ldc.i4.0 
+	IL_0160:  stloc.s 5
+	IL_0162:  br IL_0167
+
+	IL_0167:  ldloc.s 5
+	IL_0169:  ret 
+    } // end of method ProjectBase::ExecuteBuildEvent
+
+    // method line 602
+    .method family hidebysig 
+           instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message)  cil managed 
+    {
+        // Method begins at RVA 0x7814
+	// Code size 28 (0x1c)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0007:  brfalse IL_001b
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0013:  ldarg.1 
+	IL_0014:  ldarg.2 
+	IL_0015:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_001a:  nop 
+	IL_001b:  ret 
+    } // end of method ProjectBase::Log
+
+    // method line 603
+    .method family hidebysig 
+           instance default void Log (valuetype [NAnt.Core]NAnt.Core.Level messageLevel, string message, object[] args)  cil managed 
+    {
+	.param [3]
+	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+        // Method begins at RVA 0x7831
+	// Code size 29 (0x1d)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0007:  brfalse IL_001c
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
+	IL_0013:  ldarg.1 
+	IL_0014:  ldarg.2 
+	IL_0015:  ldarg.3 
+	IL_0016:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_001b:  nop 
+	IL_001c:  ret 
+    } // end of method ProjectBase::Log
+
+	.property instance valuetype NAnt.VSNet.ProductVersion ProductVersion ()
+	{
+		.get instance default valuetype NAnt.VSNet.ProductVersion NAnt.VSNet.ProjectBase::get_ProductVersion () 
+	}
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.VSNet.ProjectBase::get_Name () 
+	}
+	.property instance valuetype NAnt.VSNet.ProjectType Type ()
+	{
+		.get instance default valuetype NAnt.VSNet.ProjectType NAnt.VSNet.ProjectBase::get_Type () 
+	}
+	.property instance string ProjectPath ()
+	{
+		.get instance default string NAnt.VSNet.ProjectBase::get_ProjectPath () 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo ProjectDirectory ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ProjectBase::get_ProjectDirectory () 
+	}
+	.property instance valuetype NAnt.VSNet.ProjectLocation ProjectLocation ()
+	{
+		.get instance default valuetype NAnt.VSNet.ProjectLocation NAnt.VSNet.ProjectBase::get_ProjectLocation () 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo ObjectDir ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ProjectBase::get_ObjectDir () 
+	}
+	.property instance string Guid ()
+	{
+		.get instance default string NAnt.VSNet.ProjectBase::get_Guid () 
+		.set instance default void NAnt.VSNet.ProjectBase::set_Guid (string 'value') 
+	}
+	.property instance class NAnt.VSNet.ConfigurationDictionary ProjectConfigurations ()
+	{
+		.get instance default class NAnt.VSNet.ConfigurationDictionary NAnt.VSNet.ProjectBase::get_ProjectConfigurations () 
+	}
+	.property instance class NAnt.VSNet.ConfigurationDictionary BuildConfigurations ()
+	{
+		.get instance default class NAnt.VSNet.ConfigurationDictionary NAnt.VSNet.ProjectBase::get_BuildConfigurations () 
+	}
+	.property instance class [mscorlib]System.Collections.ArrayList References ()
+	{
+		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectBase::get_References () 
+	}
+	.property instance class NAnt.VSNet.Tasks.SolutionTask SolutionTask ()
+	{
+		.get instance default class NAnt.VSNet.Tasks.SolutionTask NAnt.VSNet.ProjectBase::get_SolutionTask () 
+	}
+	.property instance class [System]System.CodeDom.Compiler.TempFileCollection TemporaryFiles ()
+	{
+		.get instance default class [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.ProjectBase::get_TemporaryFiles () 
+	}
+	.property instance class [mscorlib]System.Collections.Hashtable ExtraOutputFiles ()
+	{
+		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ProjectBase::get_ExtraOutputFiles () 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo OutputDir ()
+	{
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ProjectBase::get_OutputDir () 
+	}
+	.property instance class [NAnt.Core]NAnt.Core.Util.GacCache GacCache ()
+	{
+		.get instance default class [NAnt.Core]NAnt.Core.Util.GacCache NAnt.VSNet.ProjectBase::get_GacCache () 
+	}
+	.property instance class NAnt.VSNet.ReferencesResolver ReferencesResolver ()
+	{
+		.get instance default class NAnt.VSNet.ReferencesResolver NAnt.VSNet.ProjectBase::get_ReferencesResolver () 
+	}
+	.property instance class NAnt.VSNet.ProjectBaseCollection ProjectDependencies ()
+	{
+		.get instance default class NAnt.VSNet.ProjectBaseCollection NAnt.VSNet.ProjectBase::get_ProjectDependencies () 
+	}
+	.property instance string DevEnvDir ()
+	{
+		.get instance default string NAnt.VSNet.ProjectBase::get_DevEnvDir () 
+	}
+	.property instance class [mscorlib]System.Version ProductVersionNumber ()
+	{
+		.get instance default class [mscorlib]System.Version NAnt.VSNet.ProjectBase::get_ProductVersionNumber () 
+	}
+  } // end of class NAnt.VSNet.ProjectBase
+}
 
-	    IL_0500:  nop 
-	    IL_0501:  ldarg.0 
-	    IL_0502:  ldfld string NAnt.VSNet.ManagedProjectBase::_webProjectBaseUrl
-	    IL_0507:  newobj instance void class [System]System.Uri::'.ctor'(string)
-	    IL_050c:  newobj instance void class NAnt.VSNet.WebDavClient::'.ctor'(class [System]System.Uri)
-	    IL_0511:  stloc.s 31
-	    IL_0513:  ldloc.s 31
-	    IL_0515:  ldloc.s 29
-	    IL_0517:  ldloc.3 
-	    IL_0518:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_RelativeOutputDir()
-	    IL_051d:  ldloc.s 30
-	    IL_051f:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	    IL_0524:  ldstr "\\"
-	    IL_0529:  ldstr "/"
-	    IL_052e:  callvirt instance string string::Replace(string, string)
-	    IL_0533:  callvirt instance void class NAnt.VSNet.WebDavClient::UploadFile(string, string)
-	    IL_0538:  nop 
-	    IL_0539:  br IL_056e
+.namespace NAnt.VSNet
+{
+  .class public auto ansi sealed ProjectType
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.VSNet.ProjectType VB = int32(0x00000000)
+    .field public static literal  valuetype NAnt.VSNet.ProjectType CSharp = int32(0x00000001)
+    .field public static literal  valuetype NAnt.VSNet.ProjectType VisualC = int32(0x00000002)
+    .field public static literal  valuetype NAnt.VSNet.ProjectType JSharp = int32(0x00000003)
+    .field public static literal  valuetype NAnt.VSNet.ProjectType MSBuild = int32(0x00000004)
 
-	    IL_053e:  nop 
-	    IL_053f:  ldloc.3 
-	    IL_0540:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	    IL_0545:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	    IL_054a:  ldloc.s 30
-	    IL_054c:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	    IL_0551:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	    IL_0556:  stloc.s 32
-	    IL_0558:  ldarg.0 
-	    IL_0559:  ldloc.s 29
-	    IL_055b:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	    IL_0560:  ldloc.s 32
-	    IL_0562:  ldarg.0 
-	    IL_0563:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	    IL_0568:  call instance void class NAnt.VSNet.ProjectBase::CopyFile(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo, class [NAnt.Core]NAnt.Core.Task)
-	    IL_056d:  nop 
-	    IL_056e:  nop 
-	    IL_056f:  ldloc.s 28
-	    IL_0571:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	    IL_0576:  brtrue IL_04ca
+  } // end of class NAnt.VSNet.ProjectType
+}
 
-	    IL_057b:  leave IL_0597
+.namespace NAnt.VSNet
+{
+  .class public auto ansi sealed BuildResult
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.VSNet.BuildResult Failed = int32(0x00000000)
+    .field public static literal  valuetype NAnt.VSNet.BuildResult Success = int32(0x00000001)
+    .field public static literal  valuetype NAnt.VSNet.BuildResult SuccessOutputUpdated = int32(0x00000002)
 
-	  } // end .try 6
-	  finally  { // 6
-	    IL_0580:  ldloc.s 28
-	    IL_0582:  isinst [mscorlib]System.IDisposable
-	    IL_0587:  dup 
-	    IL_0588:  stloc.s 33
-	    IL_058a:  brfalse IL_0596
+  } // end of class NAnt.VSNet.BuildResult
+}
 
-	    IL_058f:  ldloc.s 33
-	    IL_0591:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0596:  endfinally 
-	  } // end handler 6
-	  IL_0597:  ldarg.0 
-	  IL_0598:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	  IL_059d:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_RunPostBuildEvent()
-	  IL_05a2:  brfalse IL_05c4
+.namespace NAnt.VSNet
+{
+  .class public auto ansi sealed ProductVersion
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.VSNet.ProductVersion Rainier = int32(0x00000046)
+    .field public static literal  valuetype NAnt.VSNet.ProductVersion Everett = int32(0x00000047)
+    .field public static literal  valuetype NAnt.VSNet.ProductVersion Whidbey = int32(0x00000050)
+    .field public static literal  valuetype NAnt.VSNet.ProductVersion Orcas = int32(0x0000005a)
+    .field public static literal  valuetype NAnt.VSNet.ProductVersion Rosario = int32(0x00000064)
 
-	  IL_05a7:  nop 
-	  IL_05a8:  ldarg.0 
-	  IL_05a9:  ldloc.3 
-	  IL_05aa:  ldloc.1 
-	  IL_05ab:  brfalse IL_05b3
+  } // end of class NAnt.VSNet.ProductVersion
+}
 
-	  IL_05b0:  ldloc.0 
-	  IL_05b1:  br.s IL_05b4
+.namespace NAnt.VSNet
+{
+  .class public auto ansi sealed ProjectLocation
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.VSNet.ProjectLocation Local = int32(0x00000001)
+    .field public static literal  valuetype NAnt.VSNet.ProjectLocation Web = int32(0x00000002)
 
-	  IL_05b3:  ldc.i4.1 
-	  IL_05b4:  ldloc.1 
-	  IL_05b5:  call instance bool class NAnt.VSNet.ManagedProjectBase::PostBuild(class NAnt.VSNet.ConfigurationSettings, bool, bool)
-	  IL_05ba:  brtrue IL_05c3
+  } // end of class NAnt.VSNet.ProjectLocation
+}
 
-	  IL_05bf:  nop 
-	  IL_05c0:  ldc.i4.0 
-	  IL_05c1:  stloc.0 
-	  IL_05c2:  nop 
-	  IL_05c3:  nop 
-	  IL_05c4:  ldloc.0 
-	  IL_05c5:  brtrue IL_05e3
+.namespace NAnt.VSNet
+{
+  .class public auto ansi serializable beforefieldinit ProjectBaseCollection
+  	extends [mscorlib]System.Collections.CollectionBase
+  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-	  IL_05ca:  nop 
-	  IL_05cb:  ldarg.0 
-	  IL_05cc:  ldc.i4 5000
-	  IL_05d1:  ldstr "Build failed."
-	  IL_05d6:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	  IL_05db:  ldc.i4.0 
-	  IL_05dc:  stloc.s 4
-	  IL_05de:  leave IL_0608
 
-	  IL_05e3:  ldloc.1 
-	  IL_05e4:  brfalse IL_05ef
+    // method line 604
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x1342e
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method ProjectBaseCollection::.ctor
 
-	  IL_05e9:  ldc.i4.2 
-	  IL_05ea:  br IL_05f0
+    // method line 605
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ProjectBaseCollection 'value')  cil managed 
+    {
+        // Method begins at RVA 0x13437
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.VSNet.ProjectBaseCollection::AddRange(class NAnt.VSNet.ProjectBaseCollection)
+	IL_000e:  ret 
+    } // end of method ProjectBaseCollection::.ctor
 
-	  IL_05ef:  ldc.i4.1 
-	  IL_05f0:  stloc.s 4
-	  IL_05f2:  leave IL_0608
+    // method line 606
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ProjectBase[] 'value')  cil managed 
+    {
+        // Method begins at RVA 0x13447
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.Collections.CollectionBase::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  call instance void class NAnt.VSNet.ProjectBaseCollection::AddRange(class NAnt.VSNet.ProjectBase[])
+	IL_000e:  ret 
+    } // end of method ProjectBaseCollection::.ctor
 
-	} // end .try 7
-	finally  { // 7
-	  IL_05f7:  nop 
-	  IL_05f8:  ldloc.2 
-	  IL_05f9:  brfalse IL_0606
+    // method line 607
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectBase get_Item (int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x13458
+	// Code size 26 (0x1a)
+	.maxstack 2
+	.locals init (
+		class NAnt.VSNet.ProjectBase	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.IList::get_Item(int32)
+	IL_000d:  castclass NAnt.VSNet.ProjectBase
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	  IL_05fe:  nop 
-	  IL_05ff:  ldloc.2 
-	  IL_0600:  call void class [mscorlib]System.IO.File::Delete(string)
-	  IL_0605:  nop 
-	  IL_0606:  nop 
-	  IL_0607:  endfinally 
-	} // end handler 7
-	IL_0608:  ldloc.s 4
-	IL_060a:  ret 
-    } // end of method ManagedProjectBase::Build
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ProjectBaseCollection::get_Item
 
-    // method line 621
-    .method family virtual hidebysig newslot abstract 
-           instance default class [System]System.Diagnostics.ProcessStartInfo GetProcessStartInfo (class NAnt.VSNet.ConfigurationBase config, string responseFile)  cil managed 
+    // method line 608
+    .method public hidebysig specialname 
+           instance default void set_Item (int32 index, class NAnt.VSNet.ProjectBase 'value')  cil managed 
     {
-        // Method begins at RVA 0x0
-    } // end of method ManagedProjectBase::GetProcessStartInfo
+        // Method begins at RVA 0x1347e
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::set_Item(int32, object)
+	IL_000e:  ret 
+    } // end of method ProjectBaseCollection::set_Item
 
-    // method line 622
-    .method family virtual hidebysig newslot 
-           instance default class NAnt.VSNet.ReferenceBase CreateReference (class NAnt.VSNet.SolutionBase solution, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    // method line 609
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectBase get_Item (string guid)  cil managed 
     {
-        // Method begins at RVA 0x10240
-	// Code size 183 (0xb7)
-	.maxstack 7
+        // Method begins at RVA 0x13490
+	// Code size 127 (0x7f)
+	.maxstack 4
 	.locals init (
-		class NAnt.VSNet.ReferenceBase	V_0)
+		class NAnt.VSNet.ProjectBase	V_0,
+		class [mscorlib]System.Collections.IEnumerator	V_1,
+		class NAnt.VSNet.ProjectBase	V_2,
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
 	IL_0002:  brtrue IL_0013
 
 	IL_0007:  nop 
-	IL_0008:  ldstr "solution"
+	IL_0008:  ldstr "guid"
 	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
 	IL_0012:  throw 
-	IL_0013:  ldarg.2 
-	IL_0014:  brtrue IL_0025
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_001a:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_001f:  stloc.1 
+	.try { // 0
+	  IL_0020:  br IL_0052
 
-	IL_0019:  nop 
-	IL_001a:  ldstr "xmlDefinition"
-	IL_001f:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0024:  throw 
-	IL_0025:  ldarg.2 
-	IL_0026:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_002b:  ldstr "Project"
-	IL_0030:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0035:  brfalse IL_0066
+	  IL_0025:  ldloc.1 
+	  IL_0026:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_002b:  castclass NAnt.VSNet.ProjectBase
+	  IL_0030:  stloc.0 
+	  IL_0031:  nop 
+	  IL_0032:  ldloc.0 
+	  IL_0033:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	  IL_0038:  ldarg.1 
+	  IL_0039:  ldc.i4.1 
+	  IL_003a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_003f:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	  IL_0044:  brtrue IL_0051
 
-	IL_003a:  nop 
-	IL_003b:  ldarg.2 
-	IL_003c:  ldarg.0 
-	IL_003d:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
-	IL_0042:  ldarg.0 
-	IL_0043:  ldarg.1 
-	IL_0044:  ldarg.0 
-	IL_0045:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_004a:  callvirt instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.ProjectSettings::get_TemporaryFiles()
-	IL_004f:  ldarg.0 
-	IL_0050:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
-	IL_0055:  ldarg.0 
-	IL_0056:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_OutputDir()
-	IL_005b:  newobj instance void class NAnt.VSNet.ManagedProjectReference::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class NAnt.VSNet.SolutionBase, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class [mscorlib]System.IO.DirectoryInfo)
-	IL_0060:  stloc.0 
-	IL_0061:  br IL_00b5
+	  IL_0049:  nop 
+	  IL_004a:  ldloc.0 
+	  IL_004b:  stloc.2 
+	  IL_004c:  leave IL_007d
 
-	IL_0066:  ldarg.2 
-	IL_0067:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_006c:  ldstr "WrapperTool"
-	IL_0071:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0076:  brfalse IL_009b
+	  IL_0051:  nop 
+	  IL_0052:  ldloc.1 
+	  IL_0053:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0058:  brtrue IL_0025
 
-	IL_007b:  nop 
-	IL_007c:  ldarg.2 
-	IL_007d:  ldarg.0 
-	IL_007e:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
-	IL_0083:  ldarg.0 
-	IL_0084:  ldarg.0 
-	IL_0085:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
-	IL_008a:  ldarg.0 
-	IL_008b:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_0090:  newobj instance void class NAnt.VSNet.ManagedWrapperReference::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ProjectSettings)
-	IL_0095:  stloc.0 
-	IL_0096:  br IL_00b5
+	  IL_005d:  leave IL_0076
 
-	IL_009b:  nop 
-	IL_009c:  ldarg.2 
-	IL_009d:  ldarg.0 
-	IL_009e:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ProjectBase::get_ReferencesResolver()
-	IL_00a3:  ldarg.0 
-	IL_00a4:  ldarg.0 
-	IL_00a5:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
-	IL_00aa:  newobj instance void class NAnt.VSNet.ManagedAssemblyReference::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
-	IL_00af:  stloc.0 
-	IL_00b0:  br IL_00b5
+	} // end .try 0
+	finally  { // 0
+	  IL_0062:  ldloc.1 
+	  IL_0063:  isinst [mscorlib]System.IDisposable
+	  IL_0068:  dup 
+	  IL_0069:  stloc.3 
+	  IL_006a:  brfalse IL_0075
 
-	IL_00b5:  ldloc.0 
-	IL_00b6:  ret 
-    } // end of method ManagedProjectBase::CreateReference
+	  IL_006f:  ldloc.3 
+	  IL_0070:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0075:  endfinally 
+	} // end handler 0
+	IL_0076:  ldnull 
+	IL_0077:  stloc.2 
+	IL_0078:  br IL_007d
 
-    // method line 623
-    .method public virtual hidebysig 
-           instance default class NAnt.VSNet.ProjectReferenceBase CreateProjectReference (class NAnt.VSNet.ProjectBase project, bool isPrivateSpecified, bool isPrivate)  cil managed 
+	IL_007d:  ldloc.2 
+	IL_007e:  ret 
+    } // end of method ProjectBaseCollection::get_Item
+
+    // method line 610
+    .method public hidebysig 
+           instance default int32 Add (class NAnt.VSNet.ProjectBase item)  cil managed 
     {
-        // Method begins at RVA 0x10304
-	// Code size 18 (0x12)
-	.maxstack 4
+        // Method begins at RVA 0x1352c
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		class NAnt.VSNet.ProjectReferenceBase	V_0)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldarg.2 
-	IL_0004:  ldarg.3 
-	IL_0005:  newobj instance void class NAnt.VSNet.ManagedProjectReference::'.ctor'(class NAnt.VSNet.ProjectBase, class NAnt.VSNet.ProjectBase, bool, bool)
-	IL_000a:  stloc.0 
-	IL_000b:  br IL_0010
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::Add(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0010:  ldloc.0 
-	IL_0011:  ret 
-    } // end of method ManagedProjectBase::CreateProjectReference
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ProjectBaseCollection::Add
 
-    // method line 624
-    .method family virtual hidebysig newslot 
-           instance default void WriteCompilerOptions (class [mscorlib]System.IO.StreamWriter sw, class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    // method line 611
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.VSNet.ProjectBase[] items)  cil managed 
     {
-        // Method begins at RVA 0x10324
-	// Code size 383 (0x17f)
-	.maxstack 4
+        // Method begins at RVA 0x13550
+	// Code size 34 (0x22)
+	.maxstack 3
 	.locals init (
-		class NAnt.VSNet.ConfigurationSettings	V_0,
-		string	V_1,
-		string[]	V_2,
-		int32	V_3,
-		string	V_4,
-		string[]	V_5,
-		int32	V_6,
-		string	V_7,
-		class [System]System.Collections.Specialized.StringEnumerator	V_8,
-		class [mscorlib]System.IDisposable	V_9,
-		string	V_10,
-		class [mscorlib]System.Collections.IEnumerator	V_11,
-		class [mscorlib]System.IDisposable	V_12)
+		int32	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_0007:  ldarg.2 
-	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_000d:  castclass NAnt.VSNet.ConfigurationSettings
-	IL_0012:  stloc.0 
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_001a:  callvirt instance string[] class NAnt.VSNet.ProjectSettings::get_Settings()
-	IL_001f:  stloc.2 
-	IL_0020:  ldc.i4.0 
-	IL_0021:  stloc.3 
-	IL_0022:  br IL_0038
-
-	IL_0027:  ldloc.2 
-	IL_0028:  ldloc.3 
-	IL_0029:  ldelem.ref 
-	IL_002a:  stloc.1 
-	IL_002b:  nop 
-	IL_002c:  ldarg.1 
-	IL_002d:  ldloc.1 
-	IL_002e:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_0033:  nop 
-	IL_0034:  ldloc.3 
-	IL_0035:  ldc.i4.1 
-	IL_0036:  add 
-	IL_0037:  stloc.3 
-	IL_0038:  ldloc.3 
-	IL_0039:  ldloc.2 
-	IL_003a:  ldlen 
-	IL_003b:  conv.i4 
-	IL_003c:  blt IL_0027
-
-	IL_0041:  nop 
-	IL_0042:  ldloc.0 
-	IL_0043:  callvirt instance string[] class NAnt.VSNet.ConfigurationSettings::get_Settings()
-	IL_0048:  stloc.s 5
-	IL_004a:  ldc.i4.0 
-	IL_004b:  stloc.s 6
-	IL_004d:  br IL_0069
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_0018
 
-	IL_0052:  ldloc.s 5
-	IL_0054:  ldloc.s 6
-	IL_0056:  ldelem.ref 
-	IL_0057:  stloc.s 4
-	IL_0059:  nop 
-	IL_005a:  ldarg.1 
-	IL_005b:  ldloc.s 4
-	IL_005d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_0062:  nop 
-	IL_0063:  ldloc.s 6
-	IL_0065:  ldc.i4.1 
-	IL_0066:  add 
-	IL_0067:  stloc.s 6
-	IL_0069:  ldloc.s 6
-	IL_006b:  ldloc.s 5
-	IL_006d:  ldlen 
-	IL_006e:  conv.i4 
-	IL_006f:  blt IL_0052
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  ldelem.ref 
+	IL_000d:  call instance int32 class NAnt.VSNet.ProjectBaseCollection::Add(class NAnt.VSNet.ProjectBase)
+	IL_0012:  pop 
+	IL_0013:  nop 
+	IL_0014:  ldloc.0 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  add 
+	IL_0017:  stloc.0 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldarg.1 
+	IL_001a:  ldlen 
+	IL_001b:  conv.i4 
+	IL_001c:  blt IL_0008
 
-	IL_0074:  nop 
-	IL_0075:  ldarg.0 
-	IL_0076:  ldarg.2 
-	IL_0077:  call instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.ProjectBase::GetAssemblyReferences(class NAnt.VSNet.Configuration)
-	IL_007c:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0081:  stloc.s 8
-	.try { // 0
-	  IL_0083:  br IL_00a0
+	IL_0021:  ret 
+    } // end of method ProjectBaseCollection::AddRange
 
-	  IL_0088:  ldloc.s 8
-	  IL_008a:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_008f:  stloc.s 7
-	  IL_0091:  nop 
-	  IL_0092:  ldarg.1 
-	  IL_0093:  ldstr "/r:\"{0}\""
-	  IL_0098:  ldloc.s 7
-	  IL_009a:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_009f:  nop 
-	  IL_00a0:  ldloc.s 8
-	  IL_00a2:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_00a7:  brtrue IL_0088
+    // method line 612
+    .method public hidebysig 
+           instance default void AddRange (class NAnt.VSNet.ProjectBaseCollection items)  cil managed 
+    {
+        // Method begins at RVA 0x13580
+	// Code size 41 (0x29)
+	.maxstack 3
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  br IL_001c
 
-	  IL_00ac:  leave IL_00c8
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.1 
+	IL_000b:  ldloc.0 
+	IL_000c:  callvirt instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectBaseCollection::get_Item(int32)
+	IL_0011:  call instance int32 class NAnt.VSNet.ProjectBaseCollection::Add(class NAnt.VSNet.ProjectBase)
+	IL_0016:  pop 
+	IL_0017:  nop 
+	IL_0018:  ldloc.0 
+	IL_0019:  ldc.i4.1 
+	IL_001a:  add 
+	IL_001b:  stloc.0 
+	IL_001c:  ldloc.0 
+	IL_001d:  ldarg.1 
+	IL_001e:  callvirt instance int32 class [mscorlib]System.Collections.CollectionBase::get_Count()
+	IL_0023:  blt IL_0008
 
-	} // end .try 0
-	finally  { // 0
-	  IL_00b1:  ldloc.s 8
-	  IL_00b3:  isinst [mscorlib]System.IDisposable
-	  IL_00b8:  dup 
-	  IL_00b9:  stloc.s 9
-	  IL_00bb:  brfalse IL_00c7
+	IL_0028:  ret 
+    } // end of method ProjectBaseCollection::AddRange
 
-	  IL_00c0:  ldloc.s 9
-	  IL_00c2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00c7:  endfinally 
-	} // end handler 0
-	IL_00c8:  ldarg.0 
-	IL_00c9:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_00ce:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.ProjectSettings::get_ApplicationIcon()
-	IL_00d3:  brfalse IL_00f5
+    // method line 613
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.VSNet.ProjectBase item)  cil managed 
+    {
+        // Method begins at RVA 0x135b8
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.IList::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_00d8:  nop 
-	IL_00d9:  ldarg.1 
-	IL_00da:  ldstr "/win32icon:\"{0}\""
-	IL_00df:  ldarg.0 
-	IL_00e0:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_00e5:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.ProjectSettings::get_ApplicationIcon()
-	IL_00ea:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00ef:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_00f4:  nop 
-	IL_00f5:  ldarg.0 
-	IL_00f6:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_neutralResources
-	IL_00fb:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_0100:  ldc.i4.0 
-	IL_0101:  ble IL_0110
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ProjectBaseCollection::Contains
 
-	IL_0106:  nop 
-	IL_0107:  ldarg.0 
-	IL_0108:  ldarg.1 
-	IL_0109:  ldarg.2 
-	IL_010a:  call instance void class NAnt.VSNet.ManagedProjectBase::WriteNeutralResourceOptions(class [mscorlib]System.IO.StreamWriter, class NAnt.VSNet.Configuration)
-	IL_010f:  nop 
-	IL_0110:  ldarg.0 
-	IL_0111:  ldarg.1 
-	IL_0112:  callvirt instance void class NAnt.VSNet.ManagedProjectBase::WriteProjectOptions(class [mscorlib]System.IO.StreamWriter)
-	IL_0117:  nop 
-	IL_0118:  ldarg.0 
-	IL_0119:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
-	IL_011e:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
-	IL_0123:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0128:  stloc.s 11
-	.try { // 1
-	  IL_012a:  br IL_0156
+    // method line 614
+    .method public hidebysig 
+           instance default bool Contains (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x135dc
+	// Code size 22 (0x16)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ProjectBaseCollection::get_Item(string)
+	IL_0008:  ldnull 
+	IL_0009:  ceq 
+	IL_000b:  ldc.i4.0 
+	IL_000c:  ceq 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0014
 
-	  IL_012f:  ldloc.s 11
-	  IL_0131:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0136:  castclass [mscorlib]System.String
-	  IL_013b:  stloc.s 10
-	  IL_013d:  nop 
-	  IL_013e:  ldarg.1 
-	  IL_013f:  ldstr "\""
-	  IL_0144:  ldloc.s 10
-	  IL_0146:  ldstr "\""
-	  IL_014b:  call string string::Concat(string, string, string)
-	  IL_0150:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_0155:  nop 
-	  IL_0156:  ldloc.s 11
-	  IL_0158:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_015d:  brtrue IL_012f
+	IL_0014:  ldloc.0 
+	IL_0015:  ret 
+    } // end of method ProjectBaseCollection::Contains
 
-	  IL_0162:  leave IL_017e
+    // method line 615
+    .method public hidebysig 
+           instance default void CopyTo (class NAnt.VSNet.ProjectBase[] 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x135fe
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.ICollection::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method ProjectBaseCollection::CopyTo
 
-	} // end .try 1
-	finally  { // 1
-	  IL_0167:  ldloc.s 11
-	  IL_0169:  isinst [mscorlib]System.IDisposable
-	  IL_016e:  dup 
-	  IL_016f:  stloc.s 12
-	  IL_0171:  brfalse IL_017d
+    // method line 616
+    .method public hidebysig 
+           instance default int32 IndexOf (class NAnt.VSNet.ProjectBase item)  cil managed 
+    {
+        // Method begins at RVA 0x13610
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance int32 class [mscorlib]System.Collections.IList::IndexOf(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	  IL_0176:  ldloc.s 12
-	  IL_0178:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_017d:  endfinally 
-	} // end handler 1
-	IL_017e:  ret 
-    } // end of method ManagedProjectBase::WriteCompilerOptions
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ProjectBaseCollection::IndexOf
 
-    // method line 625
-    .method family virtual hidebysig newslot 
-           instance default void WriteProjectOptions (class [mscorlib]System.IO.StreamWriter sw)  cil managed 
+    // method line 617
+    .method public hidebysig 
+           instance default void Insert (int32 index, class NAnt.VSNet.ProjectBase item)  cil managed 
     {
-        // Method begins at RVA 0x104cc
-	// Code size 2 (0x2)
+        // Method begins at RVA 0x13631
+	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
-	IL_0001:  ret 
-    } // end of method ManagedProjectBase::WriteProjectOptions
-
-    // method line 626
-    .method family virtual hidebysig newslot abstract 
-           instance default valuetype NAnt.VSNet.ProjectLocation DetermineProjectLocation (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method ManagedProjectBase::DetermineProjectLocation
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.IList::Insert(int32, object)
+	IL_000e:  ret 
+    } // end of method ProjectBaseCollection::Insert
 
-    // method line 627
-    .method private hidebysig 
-           instance default string GetTypeLibraryPath (class NAnt.VSNet.ConfigurationSettings config)  cil managed 
+    // method line 618
+    .method public hidebysig 
+           instance default class NAnt.VSNet.ProjectBaseEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x104d0
-	// Code size 43 (0x2b)
-	.maxstack 2
+        // Method begins at RVA 0x13644
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		class NAnt.VSNet.ProjectBaseEnumerator	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.VSNet.ProjectBaseEnumerator::'.ctor'(class NAnt.VSNet.ProjectBaseCollection)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "config"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.1 
-	IL_0014:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
-	IL_0019:  ldstr ".tlb"
-	IL_001e:  call string class [mscorlib]System.IO.Path::ChangeExtension(string, string)
-	IL_0023:  stloc.0 
-	IL_0024:  br IL_0029
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ProjectBaseCollection::GetEnumerator
 
-	IL_0029:  ldloc.0 
-	IL_002a:  ret 
-    } // end of method ManagedProjectBase::GetTypeLibraryPath
+    // method line 619
+    .method public hidebysig 
+           instance default void Remove (class NAnt.VSNet.ProjectBase item)  cil managed 
+    {
+        // Method begins at RVA 0x1365f
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.IList::Remove(object)
+	IL_000d:  ret 
+    } // end of method ProjectBaseCollection::Remove
 
-    // method line 628
-    .method private hidebysig 
-           instance default void RegisterForComInterop (class NAnt.VSNet.ConfigurationSettings config, class NAnt.VSNet.Configuration solutionConfiguration, string typelibPath)  cil managed 
+    // method line 620
+    .method public hidebysig 
+           instance default void Remove (string guid)  cil managed 
     {
-        // Method begins at RVA 0x10508
-	// Code size 254 (0xfe)
-	.maxstack 3
+        // Method begins at RVA 0x13670
+	// Code size 123 (0x7b)
+	.maxstack 4
 	.locals init (
-		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask	V_0,
-		class NAnt.VSNet.ReferenceBase	V_1,
+		class NAnt.VSNet.ProjectBase	V_0,
+		class NAnt.VSNet.ProjectBase	V_1,
 		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class [System]System.Collections.Specialized.StringCollection	V_3,
-		string	V_4,
-		class [System]System.Collections.Specialized.StringEnumerator	V_5,
-		class [mscorlib]System.IDisposable	V_6,
-		class [mscorlib]System.IDisposable	V_7)
+		class [mscorlib]System.IDisposable	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 2000
-	IL_0007:  ldstr "Registering project output for COM Interop..."
-	IL_000c:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0011:  ldarg.0 
-	IL_0012:  call instance class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask class NAnt.VSNet.ManagedProjectBase::CreateRegAsmTask()
-	IL_0017:  stloc.0 
-	IL_0018:  nop 
-	IL_0019:  ldarg.0 
-	IL_001a:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
-	IL_001f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0024:  stloc.2 
-	.try { // 1
-	  IL_0025:  br IL_0094
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  nop 
+	IL_0004:  ldarg.0 
+	IL_0005:  call instance class [mscorlib]System.Collections.IList class [mscorlib]System.Collections.CollectionBase::get_List()
+	IL_000a:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_000f:  stloc.2 
+	.try { // 0
+	  IL_0010:  br IL_0042
 
-	  IL_002a:  ldloc.2 
-	  IL_002b:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0030:  castclass NAnt.VSNet.ReferenceBase
-	  IL_0035:  stloc.1 
-	  IL_0036:  nop 
-	  IL_0037:  ldloc.1 
-	  IL_0038:  ldarg.2 
-	  IL_0039:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.ReferenceBase::GetAssemblyReferences(class NAnt.VSNet.Configuration)
-	  IL_003e:  stloc.3 
-	  IL_003f:  nop 
-	  IL_0040:  ldloc.3 
-	  IL_0041:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_0046:  stloc.s 5
-	  .try { // 0
-	    IL_0048:  br IL_006b
+	  IL_0015:  ldloc.2 
+	  IL_0016:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_001b:  castclass NAnt.VSNet.ProjectBase
+	  IL_0020:  stloc.1 
+	  IL_0021:  nop 
+	  IL_0022:  ldloc.1 
+	  IL_0023:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Guid()
+	  IL_0028:  ldarg.1 
+	  IL_0029:  ldc.i4.1 
+	  IL_002a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_002f:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	  IL_0034:  brtrue IL_0041
 
-	    IL_004d:  ldloc.s 5
-	    IL_004f:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_0054:  stloc.s 4
-	    IL_0056:  nop 
-	    IL_0057:  ldloc.0 
-	    IL_0058:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_References()
-	    IL_005d:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	    IL_0062:  ldloc.s 4
-	    IL_0064:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_0069:  pop 
-	    IL_006a:  nop 
-	    IL_006b:  ldloc.s 5
-	    IL_006d:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_0072:  brtrue IL_004d
+	  IL_0039:  nop 
+	  IL_003a:  ldloc.1 
+	  IL_003b:  stloc.0 
+	  IL_003c:  leave IL_004d
 
-	    IL_0077:  leave IL_0093
+	  IL_0041:  nop 
+	  IL_0042:  ldloc.2 
+	  IL_0043:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0048:  brtrue IL_0015
 
-	  } // end .try 0
-	  finally  { // 0
-	    IL_007c:  ldloc.s 5
-	    IL_007e:  isinst [mscorlib]System.IDisposable
-	    IL_0083:  dup 
-	    IL_0084:  stloc.s 6
-	    IL_0086:  brfalse IL_0092
+	  IL_004d:  leave IL_0066
 
-	    IL_008b:  ldloc.s 6
-	    IL_008d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0092:  endfinally 
-	  } // end handler 0
-	  IL_0093:  nop 
-	  IL_0094:  ldloc.2 
-	  IL_0095:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_009a:  brtrue IL_002a
+	} // end .try 0
+	finally  { // 0
+	  IL_0052:  ldloc.2 
+	  IL_0053:  isinst [mscorlib]System.IDisposable
+	  IL_0058:  dup 
+	  IL_0059:  stloc.3 
+	  IL_005a:  brfalse IL_0065
 
-	  IL_009f:  leave IL_00ba
+	  IL_005f:  ldloc.3 
+	  IL_0060:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0065:  endfinally 
+	} // end handler 0
+	IL_0066:  ldloc.0 
+	IL_0067:  brfalse IL_007a
 
-	} // end .try 1
-	finally  { // 1
-	  IL_00a4:  ldloc.2 
-	  IL_00a5:  isinst [mscorlib]System.IDisposable
-	  IL_00aa:  dup 
-	  IL_00ab:  stloc.s 7
-	  IL_00ad:  brfalse IL_00b9
+	IL_006c:  nop 
+	IL_006d:  ldarg.0 
+	IL_006e:  call instance class [mscorlib]System.Collections.ArrayList class [mscorlib]System.Collections.CollectionBase::get_InnerList()
+	IL_0073:  ldloc.0 
+	IL_0074:  callvirt instance void class [mscorlib]System.Collections.ArrayList::Remove(object)
+	IL_0079:  nop 
+	IL_007a:  ret 
+    } // end of method ProjectBaseCollection::Remove
 
-	  IL_00b2:  ldloc.s 7
-	  IL_00b4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00b9:  endfinally 
-	} // end handler 1
-	IL_00ba:  ldloc.0 
-	IL_00bb:  ldarg.1 
-	IL_00bc:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
-	IL_00c1:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_00c6:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::set_AssemblyFile(class [mscorlib]System.IO.FileInfo)
-	IL_00cb:  ldloc.0 
-	IL_00cc:  ldarg.3 
-	IL_00cd:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_00d2:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::set_TypeLib(class [mscorlib]System.IO.FileInfo)
-	IL_00d7:  ldloc.0 
-	IL_00d8:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_00dd:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	.try { // 2
-	  IL_00e2:  nop 
-	  IL_00e3:  ldloc.0 
-	  IL_00e4:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_00e9:  nop 
-	  IL_00ea:  leave IL_00fd
+	.property instance class NAnt.VSNet.ProjectBase Item (int32)
+	{
+		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ProjectBaseCollection::get_Item (int32 index) 
+		.set instance default void NAnt.VSNet.ProjectBaseCollection::set_Item (int32 index, class NAnt.VSNet.ProjectBase 'value') 
+	}
+	.property instance class NAnt.VSNet.ProjectBase Item (string)
+	{
+		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ProjectBaseCollection::get_Item (string guid) 
+	}
+  } // end of class NAnt.VSNet.ProjectBaseCollection
+}
 
-	} // end .try 2
-	finally  { // 2
-	  IL_00ef:  nop 
-	  IL_00f0:  ldloc.0 
-	  IL_00f1:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_00f6:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	  IL_00fb:  nop 
-	  IL_00fc:  endfinally 
-	} // end handler 2
-	IL_00fd:  ret 
-    } // end of method ManagedProjectBase::RegisterForComInterop
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit ProjectBaseEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 629
-    .method private hidebysig 
-           instance default void UnregisterForComInterop (class NAnt.VSNet.ConfigurationSettings config, class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    // method line 621
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ProjectBaseCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x1063c
-	// Code size 318 (0x13e)
-	.maxstack 3
+        // Method begins at RVA 0x13708
+	// Code size 22 (0x16)
+	.maxstack 2
 	.locals init (
-		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask	V_0,
-		class NAnt.VSNet.ReferenceBase	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class [System]System.Collections.Specialized.StringCollection	V_3,
-		string	V_4,
-		class [System]System.Collections.Specialized.StringEnumerator	V_5,
-		class [mscorlib]System.IDisposable	V_6,
-		class [mscorlib]System.IDisposable	V_7,
-		string	V_8)
+		class [mscorlib]System.Collections.IEnumerable	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.1 
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldloc.0 
+	IL_000b:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
+	IL_0010:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectBaseEnumerator::_baseEnumerator
+	IL_0015:  ret 
+    } // end of method ProjectBaseEnumerator::.ctor
+
+    // method line 622
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ProjectBase get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x1372c
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.ProjectBase	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance bool class NAnt.VSNet.ConfigurationSettings::get_RegisterForComInterop()
-	IL_0007:  brfalse IL_001c
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectBaseEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  castclass NAnt.VSNet.ProjectBase
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
 
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
-	IL_0012:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0017:  brtrue IL_0022
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ProjectBaseEnumerator::get_Current
 
-	IL_001c:  nop 
-	IL_001d:  br IL_013d
+    // method line 623
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x13754
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectBaseEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0022:  ldarg.0 
-	IL_0023:  ldc.i4 2000
-	IL_0028:  ldstr "Unregistering project output for COM Interop..."
-	IL_002d:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0032:  ldarg.0 
-	IL_0033:  call instance class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask class NAnt.VSNet.ManagedProjectBase::CreateRegAsmTask()
-	IL_0038:  stloc.0 
-	IL_0039:  nop 
-	IL_003a:  ldarg.0 
-	IL_003b:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
-	IL_0040:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0045:  stloc.2 
-	.try { // 1
-	  IL_0046:  br IL_00b5
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ProjectBaseEnumerator::System.Collections.IEnumerator.get_Current
 
-	  IL_004b:  ldloc.2 
-	  IL_004c:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0051:  castclass NAnt.VSNet.ReferenceBase
-	  IL_0056:  stloc.1 
-	  IL_0057:  nop 
-	  IL_0058:  ldloc.1 
-	  IL_0059:  ldarg.2 
-	  IL_005a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.ReferenceBase::GetAssemblyReferences(class NAnt.VSNet.Configuration)
-	  IL_005f:  stloc.3 
-	  IL_0060:  nop 
-	  IL_0061:  ldloc.3 
-	  IL_0062:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_0067:  stloc.s 5
-	  .try { // 0
-	    IL_0069:  br IL_008c
+    // method line 624
+    .method public hidebysig 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x13774
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectBaseEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	    IL_006e:  ldloc.s 5
-	    IL_0070:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_0075:  stloc.s 4
-	    IL_0077:  nop 
-	    IL_0078:  ldloc.0 
-	    IL_0079:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_References()
-	    IL_007e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	    IL_0083:  ldloc.s 4
-	    IL_0085:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_008a:  pop 
-	    IL_008b:  nop 
-	    IL_008c:  ldloc.s 5
-	    IL_008e:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_0093:  brtrue IL_006e
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ProjectBaseEnumerator::MoveNext
 
-	    IL_0098:  leave IL_00b4
+    // method line 625
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x13794
+	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectBaseEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	  } // end .try 0
-	  finally  { // 0
-	    IL_009d:  ldloc.s 5
-	    IL_009f:  isinst [mscorlib]System.IDisposable
-	    IL_00a4:  dup 
-	    IL_00a5:  stloc.s 6
-	    IL_00a7:  brfalse IL_00b3
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ProjectBaseEnumerator::System.Collections.IEnumerator.MoveNext
 
-	    IL_00ac:  ldloc.s 6
-	    IL_00ae:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_00b3:  endfinally 
-	  } // end handler 0
-	  IL_00b4:  nop 
-	  IL_00b5:  ldloc.2 
-	  IL_00b6:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00bb:  brtrue IL_004b
+    // method line 626
+    .method public hidebysig 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x137b4
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectBaseEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method ProjectBaseEnumerator::Reset
 
-	  IL_00c0:  leave IL_00db
+    // method line 627
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IEnumerator.Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x137c2
+	.override class [mscorlib]System.Collections.IEnumerator::Reset
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.VSNet.ProjectBaseEnumerator::_baseEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method ProjectBaseEnumerator::System.Collections.IEnumerator.Reset
 
-	} // end .try 1
-	finally  { // 1
-	  IL_00c5:  ldloc.2 
-	  IL_00c6:  isinst [mscorlib]System.IDisposable
-	  IL_00cb:  dup 
-	  IL_00cc:  stloc.s 7
-	  IL_00ce:  brfalse IL_00da
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.VSNet.ProjectBaseEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.VSNet.ProjectBase Current ()
+	{
+		.get instance default class NAnt.VSNet.ProjectBase NAnt.VSNet.ProjectBaseEnumerator::get_Current () 
+	}
+  } // end of class NAnt.VSNet.ProjectBaseEnumerator
+}
 
-	  IL_00d3:  ldloc.s 7
-	  IL_00d5:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00da:  endfinally 
-	} // end handler 1
-	IL_00db:  ldloc.0 
-	IL_00dc:  ldc.i4.1 
-	IL_00dd:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::set_Unregister(bool)
-	IL_00e2:  ldloc.0 
-	IL_00e3:  ldarg.1 
-	IL_00e4:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
-	IL_00e9:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_00ee:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::set_AssemblyFile(class [mscorlib]System.IO.FileInfo)
-	IL_00f3:  ldarg.0 
-	IL_00f4:  ldarg.1 
-	IL_00f5:  call instance string class NAnt.VSNet.ManagedProjectBase::GetTypeLibraryPath(class NAnt.VSNet.ConfigurationSettings)
-	IL_00fa:  stloc.s 8
-	IL_00fc:  ldloc.s 8
-	IL_00fe:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0103:  brfalse IL_0117
+.namespace NAnt.VSNet
+{
+  .class private auto ansi beforefieldinit VBProjectProvider
+  	extends [mscorlib]System.Object
+  	implements NAnt.VSNet.Extensibility.IProjectBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
 
-	IL_0108:  nop 
-	IL_0109:  ldloc.0 
-	IL_010a:  ldloc.s 8
-	IL_010c:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0111:  callvirt instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::set_TypeLib(class [mscorlib]System.IO.FileInfo)
-	IL_0116:  nop 
-	IL_0117:  ldloc.0 
-	IL_0118:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_011d:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	.try { // 2
-	  IL_0122:  nop 
-	  IL_0123:  ldloc.0 
-	  IL_0124:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_0129:  nop 
-	  IL_012a:  leave IL_013d
+    // method line 628
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x137d0
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method VBProjectProvider::.ctor
 
-	} // end .try 2
-	finally  { // 2
-	  IL_012f:  nop 
-	  IL_0130:  ldloc.0 
-	  IL_0131:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_0136:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	  IL_013b:  nop 
-	  IL_013c:  endfinally 
-	} // end handler 2
-	IL_013d:  ret 
-    } // end of method ManagedProjectBase::UnregisterForComInterop
+    // method line 629
+    .method public final virtual hidebysig newslot 
+           instance default int32 IsSupported (string projectExt, class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    {
+        // Method begins at RVA 0x137d8
+	// Code size 52 (0x34)
+	.maxstack 2
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr ".vbproj"
+	IL_0007:  call bool string::op_Equality(string, string)
+	IL_000c:  brfalse IL_0018
+
+	IL_0011:  ldc.i4.5 
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0032
+
+	IL_0018:  ldarg.2 
+	IL_0019:  call bool class NAnt.VSNet.VBProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
+	IL_001e:  brfalse IL_002b
+
+	IL_0023:  ldc.i4.s 0x0a
+	IL_0025:  stloc.0 
+	IL_0026:  br IL_0032
+
+	IL_002b:  ldc.i4.0 
+	IL_002c:  stloc.0 
+	IL_002d:  br IL_0032
+
+	IL_0032:  ldloc.0 
+	IL_0033:  ret 
+    } // end of method VBProjectProvider::IsSupported
 
     // method line 630
-    .method private hidebysig 
-           instance default void RegisterEmbeddedResource (string resourceFile, class [System.Xml]System.Xml.XmlElement elemFile)  cil managed 
+    .method public final virtual hidebysig newslot 
+           instance default class NAnt.VSNet.ProjectBase GetInstance (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
     {
-        // Method begins at RVA 0x107b0
-	// Code size 243 (0xf3)
-	.maxstack 7
+        // Method begins at RVA 0x13818
+	// Code size 27 (0x1b)
+	.maxstack 8
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0,
-		string	V_1,
-		class NAnt.VSNet.Resource	V_2)
+		class NAnt.VSNet.ProjectBase	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.1 
-	IL_0002:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_000e:  brfalse IL_005c
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  ldarg.s 4
+	IL_0006:  ldarg.s 5
+	IL_0008:  ldarg.s 6
+	IL_000a:  ldarg.s 7
+	IL_000c:  ldarg.s 8
+	IL_000e:  newobj instance void class NAnt.VSNet.VBProject::'.ctor'(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
+	IL_0013:  stloc.0 
+	IL_0014:  br IL_0019
 
-	IL_0013:  ldstr ".resx"
-	IL_0018:  ldloc.0 
-	IL_0019:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_Extension()
-	IL_001e:  ldc.i4.1 
-	IL_001f:  call int32 string::Compare(string, string, bool)
-	IL_0024:  brtrue IL_005c
+	IL_0019:  ldloc.0 
+	IL_001a:  ret 
+    } // end of method VBProjectProvider::GetInstance
 
-	IL_0029:  ldloc.0 
-	IL_002a:  callvirt instance int64 class [mscorlib]System.IO.FileInfo::get_Length()
-	IL_002f:  ldc.i4.0 
-	IL_0030:  conv.i8 
-	IL_0031:  bne.un IL_005c
+    // method line 631
+    .method public final virtual hidebysig newslot 
+           instance default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    {
+        // Method begins at RVA 0x13840
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  call string class NAnt.VSNet.ManagedProjectBase::LoadGuid(class [System.Xml]System.Xml.XmlElement)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0036:  nop 
-	IL_0037:  ldarg.0 
-	IL_0038:  ldc.i4 2000
-	IL_003d:  ldstr "Skipping zero-byte embedded resource '{0}'."
-	IL_0042:  ldc.i4.1 
-	IL_0043:  newarr [mscorlib]System.Object
-	IL_0048:  dup 
-	IL_0049:  ldc.i4.0 
-	IL_004a:  ldloc.0 
-	IL_004b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0050:  stelem.ref 
-	IL_0051:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0056:  nop 
-	IL_0057:  br IL_00f2
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VBProjectProvider::LoadGuid
 
-	IL_005c:  nop 
-	IL_005d:  ldarg.2 
-	IL_005e:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0063:  ldstr "DependentUpon"
-	IL_0068:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_006d:  brfalse IL_0097
+  } // end of class NAnt.VSNet.VBProjectProvider
+}
 
-	IL_0072:  ldloc.0 
-	IL_0073:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
-	IL_0078:  ldarg.2 
-	IL_0079:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_007e:  ldstr "DependentUpon"
-	IL_0083:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0088:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_008d:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0092:  br IL_0098
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit VcArgumentMap
+  	extends [mscorlib]System.Object
+  {
+    .field  private  class [mscorlib]System.Collections.Hashtable _htArgs
 
-	IL_0097:  ldnull 
-	IL_0098:  stloc.1 
-	IL_0099:  ldarg.0 
-	IL_009a:  ldloc.0 
-	IL_009b:  ldarg.2 
-	IL_009c:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_00a1:  ldstr "RelPath"
-	IL_00a6:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_00ab:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_00b0:  ldloc.1 
-	IL_00b1:  ldarg.0 
-	IL_00b2:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_00b7:  ldarg.0 
-	IL_00b8:  call instance class [NAnt.Core]NAnt.Core.Util.GacCache class NAnt.VSNet.ProjectBase::get_GacCache()
-	IL_00bd:  newobj instance void class NAnt.VSNet.Resource::'.ctor'(class NAnt.VSNet.ManagedProjectBase, class [mscorlib]System.IO.FileInfo, string, string, class NAnt.VSNet.Tasks.SolutionTask, class [NAnt.Core]NAnt.Core.Util.GacCache)
-	IL_00c2:  stloc.2 
-	IL_00c3:  ldloc.2 
-	IL_00c4:  callvirt instance class [mscorlib]System.Globalization.CultureInfo class NAnt.VSNet.Resource::get_Culture()
-	IL_00c9:  brfalse IL_00e2
+    // method line 632
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x1385b
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
+	IL_0012:  ret 
+    } // end of method VcArgumentMap::.ctor
 
-	IL_00ce:  nop 
-	IL_00cf:  ldarg.0 
-	IL_00d0:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_localizedResources
-	IL_00d5:  ldloc.2 
-	IL_00d6:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_00db:  pop 
-	IL_00dc:  nop 
-	IL_00dd:  br IL_00f1
+    // method line 633
+    .method public hidebysig 
+           instance default void AddString (string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x1386f
+	// Code size 11 (0xb)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  ldarg.2 
+	IL_0005:  call instance void class NAnt.VSNet.VcArgumentMap::AddString(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
+	IL_000a:  ret 
+    } // end of method VcArgumentMap::AddString
 
-	IL_00e2:  nop 
-	IL_00e3:  ldarg.0 
-	IL_00e4:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_neutralResources
-	IL_00e9:  ldloc.2 
-	IL_00ea:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_00ef:  pop 
-	IL_00f0:  nop 
-	IL_00f1:  nop 
-	IL_00f2:  ret 
-    } // end of method ManagedProjectBase::RegisterEmbeddedResource
+    // method line 634
+    .method public hidebysig 
+           instance default void AddString (string propName, string argName, bool ignoreEmptyValue)  cil managed 
+    {
+        // Method begins at RVA 0x1387b
+	// Code size 12 (0xc)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  ldarg.2 
+	IL_0005:  ldarg.3 
+	IL_0006:  call instance void class NAnt.VSNet.VcArgumentMap::AddString(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string, bool)
+	IL_000b:  ret 
+    } // end of method VcArgumentMap::AddString
 
-    // method line 631
-    .method private hidebysig 
-           instance default void CompileResXFiles (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+    // method line 635
+    .method public hidebysig 
+           instance default void AddString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
     {
-        // Method begins at RVA 0x108b0
-	// Code size 812 (0x32c)
-	.maxstack 7
-	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0,
-		class NAnt.VSNet.Resource	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class [mscorlib]System.IO.FileInfo	V_3,
-		class [mscorlib]System.IDisposable	V_4,
-		class NAnt.VSNet.Resource	V_5,
-		class [mscorlib]System.Collections.IEnumerator	V_6,
-		class [mscorlib]System.IO.FileInfo	V_7,
-		class [mscorlib]System.IDisposable	V_8,
-		class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask	V_9,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_10,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_11,
-		class NAnt.VSNet.Resource	V_12,
-		class [mscorlib]System.IO.FileInfo	V_13,
-		class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.QualifiedResource	V_14,
-		class [mscorlib]System.IDisposable	V_15,
-		class NAnt.VSNet.ReferenceBase	V_16,
-		class [mscorlib]System.Collections.IEnumerator	V_17,
-		class [System]System.Collections.Specialized.StringCollection	V_18,
-		string	V_19,
-		class [System]System.Collections.Specialized.StringEnumerator	V_20,
-		class [mscorlib]System.IDisposable	V_21,
-		class [mscorlib]System.IDisposable	V_22)
+        // Method begins at RVA 0x13888
+	// Code size 21 (0x15)
+	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 2000
-	IL_0007:  ldstr "Compiling resources:"
-	IL_000c:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0011:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0016:  stloc.0 
-	IL_0017:  nop 
-	IL_0018:  ldarg.0 
-	IL_0019:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_neutralResources
-	IL_001e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0023:  stloc.2 
-	.try { // 0
-	  IL_0024:  br IL_0077
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
+	IL_0007:  ldarg.2 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.3 
+	IL_000a:  newobj instance void class NAnt.VSNet.VcArgumentMap/VcStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string)
+	IL_000f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0014:  ret 
+    } // end of method VcArgumentMap::AddString
 
-	  IL_0029:  ldloc.2 
-	  IL_002a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_002f:  castclass NAnt.VSNet.Resource
-	  IL_0034:  stloc.1 
-	  IL_0035:  nop 
-	  IL_0036:  ldloc.1 
-	  IL_0037:  callvirt instance bool class NAnt.VSNet.Resource::get_IsResX()
-	  IL_003c:  brtrue IL_0047
+    // method line 636
+    .method public hidebysig 
+           instance default void AddString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName, bool ignoreEmptyValue)  cil managed 
+    {
+        // Method begins at RVA 0x1389e
+	// Code size 23 (0x17)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
+	IL_0007:  ldarg.2 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.3 
+	IL_000a:  ldarg.s 4
+	IL_000c:  newobj instance void class NAnt.VSNet.VcArgumentMap/VcStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
+	IL_0011:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0016:  ret 
+    } // end of method VcArgumentMap::AddString
 
-	  IL_0041:  nop 
-	  IL_0042:  leave IL_0077
+    // method line 637
+    .method public hidebysig 
+           instance default void AddLinkerString (string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x138b6
+	// Code size 11 (0xb)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  ldarg.2 
+	IL_0005:  call instance void class NAnt.VSNet.VcArgumentMap::AddLinkerString(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
+	IL_000a:  ret 
+    } // end of method VcArgumentMap::AddLinkerString
 
-	  IL_0047:  ldarg.0 
-	  IL_0048:  ldc.i4 2000
-	  IL_004d:  ldstr " - {0}"
-	  IL_0052:  ldc.i4.1 
-	  IL_0053:  newarr [mscorlib]System.Object
-	  IL_0058:  dup 
-	  IL_0059:  ldc.i4.0 
-	  IL_005a:  ldloc.1 
-	  IL_005b:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
-	  IL_0060:  stelem.ref 
-	  IL_0061:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_0066:  ldloc.1 
-	  IL_0067:  ldarg.1 
-	  IL_0068:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::GetCompiledResourceFile(class NAnt.VSNet.Configuration)
-	  IL_006d:  stloc.3 
-	  IL_006e:  ldloc.0 
-	  IL_006f:  ldloc.1 
-	  IL_0070:  ldloc.3 
-	  IL_0071:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	  IL_0076:  nop 
-	  IL_0077:  ldloc.2 
-	  IL_0078:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_007d:  brtrue IL_0029
+    // method line 638
+    .method public hidebysig 
+           instance default void AddLinkerString (string propName, string argName, bool ignoreEmptyValue)  cil managed 
+    {
+        // Method begins at RVA 0x138c2
+	// Code size 12 (0xc)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  ldarg.2 
+	IL_0005:  ldarg.3 
+	IL_0006:  call instance void class NAnt.VSNet.VcArgumentMap::AddLinkerString(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string, bool)
+	IL_000b:  ret 
+    } // end of method VcArgumentMap::AddLinkerString
 
-	  IL_0082:  leave IL_009d
+    // method line 639
+    .method public hidebysig 
+           instance default void AddLinkerString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x138cf
+	// Code size 21 (0x15)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
+	IL_0007:  ldarg.2 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.3 
+	IL_000a:  newobj instance void class NAnt.VSNet.VcArgumentMap/LinkerStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string)
+	IL_000f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0014:  ret 
+    } // end of method VcArgumentMap::AddLinkerString
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0087:  ldloc.2 
-	  IL_0088:  isinst [mscorlib]System.IDisposable
-	  IL_008d:  dup 
-	  IL_008e:  stloc.s 4
-	  IL_0090:  brfalse IL_009c
+    // method line 640
+    .method public hidebysig 
+           instance default void AddLinkerString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName, bool ignoreEmptyValue)  cil managed 
+    {
+        // Method begins at RVA 0x138e5
+	// Code size 23 (0x17)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
+	IL_0007:  ldarg.2 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.3 
+	IL_000a:  ldarg.s 4
+	IL_000c:  newobj instance void class NAnt.VSNet.VcArgumentMap/LinkerStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
+	IL_0011:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0016:  ret 
+    } // end of method VcArgumentMap::AddLinkerString
 
-	  IL_0095:  ldloc.s 4
-	  IL_0097:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_009c:  endfinally 
-	} // end handler 0
-	IL_009d:  nop 
-	IL_009e:  ldarg.0 
-	IL_009f:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_localizedResources
-	IL_00a4:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_00a9:  stloc.s 6
-	.try { // 1
-	  IL_00ab:  br IL_0106
+    // method line 641
+    .method public hidebysig 
+           instance default void AddQuotedLinkerString (string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x138fd
+	// Code size 11 (0xb)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  ldarg.2 
+	IL_0005:  call instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
+	IL_000a:  ret 
+    } // end of method VcArgumentMap::AddQuotedLinkerString
 
-	  IL_00b0:  ldloc.s 6
-	  IL_00b2:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_00b7:  castclass NAnt.VSNet.Resource
-	  IL_00bc:  stloc.s 5
-	  IL_00be:  nop 
-	  IL_00bf:  ldloc.s 5
-	  IL_00c1:  callvirt instance bool class NAnt.VSNet.Resource::get_IsResX()
-	  IL_00c6:  brtrue IL_00d1
+    // method line 642
+    .method public hidebysig 
+           instance default void AddQuotedLinkerString (string propName, string argName, bool ignoreEmptyValue)  cil managed 
+    {
+        // Method begins at RVA 0x13909
+	// Code size 12 (0xc)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  ldarg.2 
+	IL_0005:  ldarg.3 
+	IL_0006:  call instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string, bool)
+	IL_000b:  ret 
+    } // end of method VcArgumentMap::AddQuotedLinkerString
 
-	  IL_00cb:  nop 
-	  IL_00cc:  leave IL_0106
+    // method line 643
+    .method public hidebysig 
+           instance default void AddQuotedLinkerString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x13916
+	// Code size 21 (0x15)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
+	IL_0007:  ldarg.2 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.3 
+	IL_000a:  newobj instance void class NAnt.VSNet.VcArgumentMap/QuotedLinkerStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string)
+	IL_000f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0014:  ret 
+    } // end of method VcArgumentMap::AddQuotedLinkerString
 
-	  IL_00d1:  ldarg.0 
-	  IL_00d2:  ldc.i4 2000
-	  IL_00d7:  ldstr " - {0}"
-	  IL_00dc:  ldc.i4.1 
-	  IL_00dd:  newarr [mscorlib]System.Object
-	  IL_00e2:  dup 
-	  IL_00e3:  ldc.i4.0 
-	  IL_00e4:  ldloc.s 5
-	  IL_00e6:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
-	  IL_00eb:  stelem.ref 
-	  IL_00ec:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_00f1:  ldloc.s 5
-	  IL_00f3:  ldarg.1 
-	  IL_00f4:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::GetCompiledResourceFile(class NAnt.VSNet.Configuration)
-	  IL_00f9:  stloc.s 7
-	  IL_00fb:  ldloc.0 
-	  IL_00fc:  ldloc.s 5
-	  IL_00fe:  ldloc.s 7
-	  IL_0100:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	  IL_0105:  nop 
-	  IL_0106:  ldloc.s 6
-	  IL_0108:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_010d:  brtrue IL_00b0
+    // method line 644
+    .method public hidebysig 
+           instance default void AddQuotedLinkerString (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName, bool ignoreEmptyValue)  cil managed 
+    {
+        // Method begins at RVA 0x1392c
+	// Code size 23 (0x17)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
+	IL_0007:  ldarg.2 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.3 
+	IL_000a:  ldarg.s 4
+	IL_000c:  newobj instance void class NAnt.VSNet.VcArgumentMap/QuotedLinkerStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
+	IL_0011:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0016:  ret 
+    } // end of method VcArgumentMap::AddQuotedLinkerString
 
-	  IL_0112:  leave IL_012e
+    // method line 645
+    .method public hidebysig 
+           instance default void AddBool (string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x13944
+	// Code size 11 (0xb)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  ldarg.2 
+	IL_0005:  call instance void class NAnt.VSNet.VcArgumentMap::AddBool(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
+	IL_000a:  ret 
+    } // end of method VcArgumentMap::AddBool
 
-	} // end .try 1
-	finally  { // 1
-	  IL_0117:  ldloc.s 6
-	  IL_0119:  isinst [mscorlib]System.IDisposable
-	  IL_011e:  dup 
-	  IL_011f:  stloc.s 8
-	  IL_0121:  brfalse IL_012d
+    // method line 646
+    .method public hidebysig 
+           instance default void AddBool (string propName, string argName, string match)  cil managed 
+    {
+        // Method begins at RVA 0x13950
+	// Code size 12 (0xc)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  ldarg.2 
+	IL_0005:  ldarg.3 
+	IL_0006:  call instance void class NAnt.VSNet.VcArgumentMap::AddBool(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string, string)
+	IL_000b:  ret 
+    } // end of method VcArgumentMap::AddBool
 
-	  IL_0126:  ldloc.s 8
-	  IL_0128:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_012d:  endfinally 
-	} // end handler 1
-	IL_012e:  ldloc.0 
-	IL_012f:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
-	IL_0134:  brtrue IL_013f
+    // method line 647
+    .method public hidebysig 
+           instance default void AddBool (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName)  cil managed 
+    {
+        // Method begins at RVA 0x1395d
+	// Code size 21 (0x15)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
+	IL_0007:  ldarg.2 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.3 
+	IL_000a:  newobj instance void class NAnt.VSNet.VcArgumentMap/VcBoolArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string)
+	IL_000f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0014:  ret 
+    } // end of method VcArgumentMap::AddBool
 
-	IL_0139:  nop 
-	IL_013a:  br IL_032b
+    // method line 648
+    .method public hidebysig 
+           instance default void AddBool (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName, string match)  cil managed 
+    {
+        // Method begins at RVA 0x13973
+	// Code size 23 (0x17)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
+	IL_0007:  ldarg.2 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.3 
+	IL_000a:  ldarg.s 4
+	IL_000c:  newobj instance void class NAnt.VSNet.VcArgumentMap/VcBoolArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
+	IL_0011:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0016:  ret 
+    } // end of method VcArgumentMap::AddBool
 
-	IL_013f:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask::'.ctor'()
-	IL_0144:  stloc.s 9
-	IL_0146:  ldloc.s 9
-	IL_0148:  ldarg.0 
-	IL_0149:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_014e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0153:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0158:  ldloc.s 9
-	IL_015a:  ldarg.0 
-	IL_015b:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0160:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_0165:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_016a:  ldloc.s 9
-	IL_016c:  ldarg.0 
-	IL_016d:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0172:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0177:  ldloc.s 9
-	IL_0179:  ldarg.0 
-	IL_017a:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_017f:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_0184:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
-	IL_0189:  ldloc.s 9
-	IL_018b:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	IL_0190:  ldloc.s 9
-	IL_0192:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	IL_0197:  ldloc.s 9
-	IL_0199:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_019e:  ldloc.s 9
-	IL_01a0:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	IL_01a5:  ldloc.s 9
-	IL_01a7:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_01ac:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_01b1:  ldloc.s 9
-	IL_01b3:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	IL_01b8:  ldloc.s 9
-	IL_01ba:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_01bf:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_01c4:  ldloc.s 9
-	IL_01c6:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	IL_01cb:  ldarg.0 
-	IL_01cc:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_01d1:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_01d6:  nop 
-	IL_01d7:  ldloc.0 
-	IL_01d8:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_01dd:  stloc.s 11
-	.try { // 2
-	  IL_01df:  br IL_022f
+    // method line 649
+    .method public hidebysig 
+           instance default void AddEnum (string propName, string argName, string[] values)  cil managed 
+    {
+	.param [3]
+	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	  IL_01e4:  ldloc.s 11
-	  IL_01e6:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_01eb:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_01f0:  stloc.s 10
-	  IL_01f2:  nop 
-	  IL_01f3:  ldloca.s 10
-	  IL_01f5:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_01fa:  castclass NAnt.VSNet.Resource
-	  IL_01ff:  stloc.s 12
-	  IL_0201:  ldloca.s 10
-	  IL_0203:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_0208:  castclass [mscorlib]System.IO.FileInfo
-	  IL_020d:  stloc.s 13
-	  IL_020f:  ldloc.s 12
-	  IL_0211:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
-	  IL_0216:  ldloc.s 13
-	  IL_0218:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.QualifiedResource::'.ctor'(class [mscorlib]System.IO.FileInfo, class [mscorlib]System.IO.FileInfo)
-	  IL_021d:  stloc.s 14
-	  IL_021f:  ldloc.s 9
-	  IL_0221:  callvirt instance class [mscorlib]System.Collections.ArrayList class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask::get_QualifiedResources()
-	  IL_0226:  ldloc.s 14
-	  IL_0228:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_022d:  pop 
-	  IL_022e:  nop 
-	  IL_022f:  ldloc.s 11
-	  IL_0231:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0236:  brtrue IL_01e4
+        // Method begins at RVA 0x1398b
+	// Code size 12 (0xc)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  ldarg.2 
+	IL_0005:  ldarg.3 
+	IL_0006:  call instance void class NAnt.VSNet.VcArgumentMap::AddEnum(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string, string[])
+	IL_000b:  ret 
+    } // end of method VcArgumentMap::AddEnum
 
-	  IL_023b:  leave IL_0257
+    // method line 650
+    .method public hidebysig 
+           instance default void AddEnum (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string propName, string argName, string[] values)  cil managed 
+    {
+	.param [4]
+	.custom instance void class [mscorlib]System.ParamArrayAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	} // end .try 2
-	finally  { // 2
-	  IL_0240:  ldloc.s 11
-	  IL_0242:  isinst [mscorlib]System.IDisposable
-	  IL_0247:  dup 
-	  IL_0248:  stloc.s 15
-	  IL_024a:  brfalse IL_0256
+        // Method begins at RVA 0x13998
+	// Code size 23 (0x17)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
+	IL_0007:  ldarg.2 
+	IL_0008:  ldarg.1 
+	IL_0009:  ldarg.3 
+	IL_000a:  ldarg.s 4
+	IL_000c:  newobj instance void class NAnt.VSNet.VcArgumentMap/VcEnumArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string[])
+	IL_0011:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_0016:  ret 
+    } // end of method VcArgumentMap::AddEnum
 
-	  IL_024f:  ldloc.s 15
-	  IL_0251:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0256:  endfinally 
-	} // end handler 2
-	IL_0257:  nop 
-	IL_0258:  ldarg.0 
-	IL_0259:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ProjectBase::get_References()
-	IL_025e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0263:  stloc.s 17
-	.try { // 4
-	  IL_0265:  br IL_02da
+    // method line 651
+    .method public hidebysig 
+           instance default string GetArgument (string propName, string propValue, valuetype NAnt.VSNet.VcArgumentMap/ArgGroup useIgnoreGroup)  cil managed 
+    {
+        // Method begins at RVA 0x139b0
+	// Code size 80 (0x50)
+	.maxstack 2
+	.locals init (
+		class NAnt.VSNet.VcArgumentMap/VcArgument	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.VcArgumentMap::_htArgs
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_000d:  castclass NAnt.VSNet.VcArgumentMap/VcArgument
+	IL_0012:  stloc.0 
+	IL_0013:  ldloc.0 
+	IL_0014:  brtrue IL_0021
 
-	  IL_026a:  ldloc.s 17
-	  IL_026c:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0271:  castclass NAnt.VSNet.ReferenceBase
-	  IL_0276:  stloc.s 16
-	  IL_0278:  nop 
-	  IL_0279:  ldloc.s 16
-	  IL_027b:  ldarg.1 
-	  IL_027c:  callvirt instance class [System]System.Collections.Specialized.StringCollection class NAnt.VSNet.ReferenceBase::GetAssemblyReferences(class NAnt.VSNet.Configuration)
-	  IL_0281:  stloc.s 18
-	  IL_0283:  nop 
-	  IL_0284:  ldloc.s 18
-	  IL_0286:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	  IL_028b:  stloc.s 20
-	  .try { // 3
-	    IL_028d:  br IL_02b1
+	IL_0019:  nop 
+	IL_001a:  ldnull 
+	IL_001b:  stloc.1 
+	IL_001c:  br IL_004e
 
-	    IL_0292:  ldloc.s 20
-	    IL_0294:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	    IL_0299:  stloc.s 19
-	    IL_029b:  nop 
-	    IL_029c:  ldloc.s 9
-	    IL_029e:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.DotNetTasks]NAnt.DotNet.Tasks.ResGenTask::get_Assemblies()
-	    IL_02a3:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_Includes()
-	    IL_02a8:  ldloc.s 19
-	    IL_02aa:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	    IL_02af:  pop 
-	    IL_02b0:  nop 
-	    IL_02b1:  ldloc.s 20
-	    IL_02b3:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	    IL_02b8:  brtrue IL_0292
+	IL_0021:  ldloc.0 
+	IL_0022:  callvirt instance valuetype NAnt.VSNet.VcArgumentMap/ArgGroup class NAnt.VSNet.VcArgumentMap/VcArgument::get_Group()
+	IL_0027:  brfalse IL_0041
 
-	    IL_02bd:  leave IL_02d9
+	IL_002c:  ldloc.0 
+	IL_002d:  callvirt instance valuetype NAnt.VSNet.VcArgumentMap/ArgGroup class NAnt.VSNet.VcArgumentMap/VcArgument::get_Group()
+	IL_0032:  ldarg.3 
+	IL_0033:  and 
+	IL_0034:  brfalse IL_0041
 
-	  } // end .try 3
-	  finally  { // 3
-	    IL_02c2:  ldloc.s 20
-	    IL_02c4:  isinst [mscorlib]System.IDisposable
-	    IL_02c9:  dup 
-	    IL_02ca:  stloc.s 21
-	    IL_02cc:  brfalse IL_02d8
+	IL_0039:  nop 
+	IL_003a:  ldnull 
+	IL_003b:  stloc.1 
+	IL_003c:  br IL_004e
 
-	    IL_02d1:  ldloc.s 21
-	    IL_02d3:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_02d8:  endfinally 
-	  } // end handler 3
-	  IL_02d9:  nop 
-	  IL_02da:  ldloc.s 17
-	  IL_02dc:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_02e1:  brtrue IL_026a
+	IL_0041:  ldloc.0 
+	IL_0042:  ldarg.2 
+	IL_0043:  callvirt instance string class NAnt.VSNet.VcArgumentMap/VcArgument::MapValue(string)
+	IL_0048:  stloc.1 
+	IL_0049:  br IL_004e
 
-	  IL_02e6:  leave IL_0302
+	IL_004e:  ldloc.1 
+	IL_004f:  ret 
+    } // end of method VcArgumentMap::GetArgument
 
-	} // end .try 4
-	finally  { // 4
-	  IL_02eb:  ldloc.s 17
-	  IL_02ed:  isinst [mscorlib]System.IDisposable
-	  IL_02f2:  dup 
-	  IL_02f3:  stloc.s 22
-	  IL_02f5:  brfalse IL_0301
+    // method line 652
+    .method public static hidebysig 
+           default class NAnt.VSNet.VcArgumentMap CreateCLArgumentMap ()  cil managed 
+    {
+        // Method begins at RVA 0x13a0c
+	// Code size 1044 (0x414)
+	.maxstack 8
+	.locals init (
+		class NAnt.VSNet.VcArgumentMap	V_0,
+		class NAnt.VSNet.VcArgumentMap	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.VSNet.VcArgumentMap::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldstr "DebugInformationFormat"
+	IL_000d:  ldnull 
+	IL_000e:  ldc.i4.5 
+	IL_000f:  newarr [mscorlib]System.String
+	IL_0014:  dup 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  ldstr "/Z7"
+	IL_001b:  stelem.ref 
+	IL_001c:  dup 
+	IL_001d:  ldc.i4.2 
+	IL_001e:  ldstr "/Zd"
+	IL_0023:  stelem.ref 
+	IL_0024:  dup 
+	IL_0025:  ldc.i4.3 
+	IL_0026:  ldstr "/Zi"
+	IL_002b:  stelem.ref 
+	IL_002c:  dup 
+	IL_002d:  ldc.i4.4 
+	IL_002e:  ldstr "/ZI"
+	IL_0033:  stelem.ref 
+	IL_0034:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_0039:  ldloc.0 
+	IL_003a:  ldstr "CompileAsManaged"
+	IL_003f:  ldnull 
+	IL_0040:  ldc.i4.3 
+	IL_0041:  newarr [mscorlib]System.String
+	IL_0046:  dup 
+	IL_0047:  ldc.i4.2 
+	IL_0048:  ldstr "/clr"
+	IL_004d:  stelem.ref 
+	IL_004e:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_0053:  ldloc.0 
+	IL_0054:  ldstr "WarningLevel"
+	IL_0059:  ldnull 
+	IL_005a:  ldc.i4.5 
+	IL_005b:  newarr [mscorlib]System.String
+	IL_0060:  dup 
+	IL_0061:  ldc.i4.0 
+	IL_0062:  ldstr "/W0"
+	IL_0067:  stelem.ref 
+	IL_0068:  dup 
+	IL_0069:  ldc.i4.1 
+	IL_006a:  ldstr "/W1"
+	IL_006f:  stelem.ref 
+	IL_0070:  dup 
+	IL_0071:  ldc.i4.2 
+	IL_0072:  ldstr "/W2"
+	IL_0077:  stelem.ref 
+	IL_0078:  dup 
+	IL_0079:  ldc.i4.3 
+	IL_007a:  ldstr "/W3"
+	IL_007f:  stelem.ref 
+	IL_0080:  dup 
+	IL_0081:  ldc.i4.4 
+	IL_0082:  ldstr "/W4"
+	IL_0087:  stelem.ref 
+	IL_0088:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_008d:  ldloc.0 
+	IL_008e:  ldstr "Detect64BitPortabilityProblems"
+	IL_0093:  ldstr "/Wp64"
+	IL_0098:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_009d:  ldloc.0 
+	IL_009e:  ldstr "WarnAsError"
+	IL_00a3:  ldstr "/WX"
+	IL_00a8:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_00ad:  ldloc.0 
+	IL_00ae:  ldstr "Optimization"
+	IL_00b3:  ldnull 
+	IL_00b4:  ldc.i4.4 
+	IL_00b5:  newarr [mscorlib]System.String
+	IL_00ba:  dup 
+	IL_00bb:  ldc.i4.0 
+	IL_00bc:  ldstr "/Od"
+	IL_00c1:  stelem.ref 
+	IL_00c2:  dup 
+	IL_00c3:  ldc.i4.1 
+	IL_00c4:  ldstr "/O1"
+	IL_00c9:  stelem.ref 
+	IL_00ca:  dup 
+	IL_00cb:  ldc.i4.2 
+	IL_00cc:  ldstr "/O2"
+	IL_00d1:  stelem.ref 
+	IL_00d2:  dup 
+	IL_00d3:  ldc.i4.3 
+	IL_00d4:  ldstr "/Ox"
+	IL_00d9:  stelem.ref 
+	IL_00da:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_00df:  ldloc.0 
+	IL_00e0:  ldc.i4.1 
+	IL_00e1:  ldstr "GlobalOptimizations"
+	IL_00e6:  ldstr "/Og"
+	IL_00eb:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
+	IL_00f0:  ldloc.0 
+	IL_00f1:  ldc.i4.1 
+	IL_00f2:  ldstr "InlineFunctionExpansion"
+	IL_00f7:  ldnull 
+	IL_00f8:  ldc.i4.3 
+	IL_00f9:  newarr [mscorlib]System.String
+	IL_00fe:  dup 
+	IL_00ff:  ldc.i4.0 
+	IL_0100:  ldstr "/Ob0"
+	IL_0105:  stelem.ref 
+	IL_0106:  dup 
+	IL_0107:  ldc.i4.1 
+	IL_0108:  ldstr "/Ob1"
+	IL_010d:  stelem.ref 
+	IL_010e:  dup 
+	IL_010f:  ldc.i4.2 
+	IL_0110:  ldstr "/Ob2"
+	IL_0115:  stelem.ref 
+	IL_0116:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string, string[])
+	IL_011b:  ldloc.0 
+	IL_011c:  ldc.i4.1 
+	IL_011d:  ldstr "EnableIntrinsicFunctions"
+	IL_0122:  ldstr "/Oi"
+	IL_0127:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
+	IL_012c:  ldloc.0 
+	IL_012d:  ldstr "ImproveFloatingPointConsistency"
+	IL_0132:  ldstr "/Op"
+	IL_0137:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_013c:  ldloc.0 
+	IL_013d:  ldstr "FavorSizeOrSpeed"
+	IL_0142:  ldnull 
+	IL_0143:  ldc.i4.3 
+	IL_0144:  newarr [mscorlib]System.String
+	IL_0149:  dup 
+	IL_014a:  ldc.i4.1 
+	IL_014b:  ldstr "/Ot"
+	IL_0150:  stelem.ref 
+	IL_0151:  dup 
+	IL_0152:  ldc.i4.2 
+	IL_0153:  ldstr "/Os"
+	IL_0158:  stelem.ref 
+	IL_0159:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_015e:  ldloc.0 
+	IL_015f:  ldc.i4.1 
+	IL_0160:  ldstr "OmitFramePointers"
+	IL_0165:  ldstr "/Oy"
+	IL_016a:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
+	IL_016f:  ldloc.0 
+	IL_0170:  ldstr "EnableFiberSafeOptimizations"
+	IL_0175:  ldstr "/GT"
+	IL_017a:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_017f:  ldloc.0 
+	IL_0180:  ldstr "OptimizeForProcessor"
+	IL_0185:  ldnull 
+	IL_0186:  ldc.i4.4 
+	IL_0187:  newarr [mscorlib]System.String
+	IL_018c:  dup 
+	IL_018d:  ldc.i4.1 
+	IL_018e:  ldstr "/G5"
+	IL_0193:  stelem.ref 
+	IL_0194:  dup 
+	IL_0195:  ldc.i4.2 
+	IL_0196:  ldstr "/G6"
+	IL_019b:  stelem.ref 
+	IL_019c:  dup 
+	IL_019d:  ldc.i4.3 
+	IL_019e:  ldstr "/G7"
+	IL_01a3:  stelem.ref 
+	IL_01a4:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_01a9:  ldloc.0 
+	IL_01aa:  ldstr "OptimizeForWindowsApplication"
+	IL_01af:  ldstr "/GA"
+	IL_01b4:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_01b9:  ldloc.0 
+	IL_01ba:  ldstr "IgnoreStandardIncludePath"
+	IL_01bf:  ldstr "/X"
+	IL_01c4:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_01c9:  ldloc.0 
+	IL_01ca:  ldstr "GeneratePreprocessedFile"
+	IL_01cf:  ldnull 
+	IL_01d0:  ldc.i4.3 
+	IL_01d1:  newarr [mscorlib]System.String
+	IL_01d6:  dup 
+	IL_01d7:  ldc.i4.1 
+	IL_01d8:  ldstr "/P"
+	IL_01dd:  stelem.ref 
+	IL_01de:  dup 
+	IL_01df:  ldc.i4.2 
+	IL_01e0:  ldstr "/EP /P"
+	IL_01e5:  stelem.ref 
+	IL_01e6:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_01eb:  ldloc.0 
+	IL_01ec:  ldstr "KeepComments"
+	IL_01f1:  ldstr "/C"
+	IL_01f6:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_01fb:  ldloc.0 
+	IL_01fc:  ldc.i4.1 
+	IL_01fd:  ldstr "StringPooling"
+	IL_0202:  ldstr "/GF"
+	IL_0207:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
+	IL_020c:  ldloc.0 
+	IL_020d:  ldstr "MinimalRebuild"
+	IL_0212:  ldstr "/Gm"
+	IL_0217:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_021c:  ldloc.0 
+	IL_021d:  ldstr "SmallerTypeCheck"
+	IL_0222:  ldstr "/RTCc"
+	IL_0227:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_022c:  ldloc.0 
+	IL_022d:  ldstr "BasicRuntimeChecks"
+	IL_0232:  ldnull 
+	IL_0233:  ldc.i4.4 
+	IL_0234:  newarr [mscorlib]System.String
+	IL_0239:  dup 
+	IL_023a:  ldc.i4.1 
+	IL_023b:  ldstr "/RTCs"
+	IL_0240:  stelem.ref 
+	IL_0241:  dup 
+	IL_0242:  ldc.i4.2 
+	IL_0243:  ldstr "/RTCu"
+	IL_0248:  stelem.ref 
+	IL_0249:  dup 
+	IL_024a:  ldc.i4.3 
+	IL_024b:  ldstr "/RTC1"
+	IL_0250:  stelem.ref 
+	IL_0251:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_0256:  ldloc.0 
+	IL_0257:  ldstr "RuntimeLibrary"
+	IL_025c:  ldnull 
+	IL_025d:  ldc.i4.6 
+	IL_025e:  newarr [mscorlib]System.String
+	IL_0263:  dup 
+	IL_0264:  ldc.i4.0 
+	IL_0265:  ldstr "/MT"
+	IL_026a:  stelem.ref 
+	IL_026b:  dup 
+	IL_026c:  ldc.i4.1 
+	IL_026d:  ldstr "/MTd"
+	IL_0272:  stelem.ref 
+	IL_0273:  dup 
+	IL_0274:  ldc.i4.2 
+	IL_0275:  ldstr "/MD"
+	IL_027a:  stelem.ref 
+	IL_027b:  dup 
+	IL_027c:  ldc.i4.3 
+	IL_027d:  ldstr "/MDd"
+	IL_0282:  stelem.ref 
+	IL_0283:  dup 
+	IL_0284:  ldc.i4.4 
+	IL_0285:  ldstr "/ML"
+	IL_028a:  stelem.ref 
+	IL_028b:  dup 
+	IL_028c:  ldc.i4.5 
+	IL_028d:  ldstr "/MLd"
+	IL_0292:  stelem.ref 
+	IL_0293:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_0298:  ldloc.0 
+	IL_0299:  ldstr "StructMemberAlignment"
+	IL_029e:  ldnull 
+	IL_029f:  ldc.i4.6 
+	IL_02a0:  newarr [mscorlib]System.String
+	IL_02a5:  dup 
+	IL_02a6:  ldc.i4.1 
+	IL_02a7:  ldstr "/Zp1"
+	IL_02ac:  stelem.ref 
+	IL_02ad:  dup 
+	IL_02ae:  ldc.i4.2 
+	IL_02af:  ldstr "/Zp2"
+	IL_02b4:  stelem.ref 
+	IL_02b5:  dup 
+	IL_02b6:  ldc.i4.3 
+	IL_02b7:  ldstr "/Zp4"
+	IL_02bc:  stelem.ref 
+	IL_02bd:  dup 
+	IL_02be:  ldc.i4.4 
+	IL_02bf:  ldstr "/Zp8"
+	IL_02c4:  stelem.ref 
+	IL_02c5:  dup 
+	IL_02c6:  ldc.i4.5 
+	IL_02c7:  ldstr "/Zp16"
+	IL_02cc:  stelem.ref 
+	IL_02cd:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_02d2:  ldloc.0 
+	IL_02d3:  ldstr "BufferSecurityCheck"
+	IL_02d8:  ldstr "/GS"
+	IL_02dd:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_02e2:  ldloc.0 
+	IL_02e3:  ldc.i4.1 
+	IL_02e4:  ldstr "EnableFunctionLevelLinking"
+	IL_02e9:  ldstr "/Gy"
+	IL_02ee:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
+	IL_02f3:  ldloc.0 
+	IL_02f4:  ldstr "EnableEnhancedInstructionSet"
+	IL_02f9:  ldnull 
+	IL_02fa:  ldc.i4.3 
+	IL_02fb:  newarr [mscorlib]System.String
+	IL_0300:  dup 
+	IL_0301:  ldc.i4.1 
+	IL_0302:  ldstr "/arch:SSE"
+	IL_0307:  stelem.ref 
+	IL_0308:  dup 
+	IL_0309:  ldc.i4.2 
+	IL_030a:  ldstr "/arch:SSE2"
+	IL_030f:  stelem.ref 
+	IL_0310:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_0315:  ldloc.0 
+	IL_0316:  ldstr "DisableLanguageExtensions"
+	IL_031b:  ldstr "/Za"
+	IL_0320:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0325:  ldloc.0 
+	IL_0326:  ldstr "DefaultCharIsUnsigned"
+	IL_032b:  ldstr "/J"
+	IL_0330:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0335:  ldloc.0 
+	IL_0336:  ldstr "TreatWChar_tAsBuiltInType"
+	IL_033b:  ldstr "/Zc:wchar_t"
+	IL_0340:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0345:  ldloc.0 
+	IL_0346:  ldstr "ForceConformanceInForLoopScope"
+	IL_034b:  ldstr "/Zc:forScope"
+	IL_0350:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0355:  ldloc.0 
+	IL_0356:  ldstr "RuntimeTypeInfo"
+	IL_035b:  ldstr "/GR"
+	IL_0360:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0365:  ldloc.0 
+	IL_0366:  ldstr "ExpandAttributedSource"
+	IL_036b:  ldstr "/Fx"
+	IL_0370:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0375:  ldloc.0 
+	IL_0376:  ldstr "AssemblerOutput"
+	IL_037b:  ldnull 
+	IL_037c:  ldc.i4.5 
+	IL_037d:  newarr [mscorlib]System.String
+	IL_0382:  dup 
+	IL_0383:  ldc.i4.1 
+	IL_0384:  ldstr "/FA"
+	IL_0389:  stelem.ref 
+	IL_038a:  dup 
+	IL_038b:  ldc.i4.2 
+	IL_038c:  ldstr "/FAcs"
+	IL_0391:  stelem.ref 
+	IL_0392:  dup 
+	IL_0393:  ldc.i4.3 
+	IL_0394:  ldstr "/FAc"
+	IL_0399:  stelem.ref 
+	IL_039a:  dup 
+	IL_039b:  ldc.i4.4 
+	IL_039c:  ldstr "/FAs"
+	IL_03a1:  stelem.ref 
+	IL_03a2:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_03a7:  ldloc.0 
+	IL_03a8:  ldstr "CallingConvention"
+	IL_03ad:  ldnull 
+	IL_03ae:  ldc.i4.3 
+	IL_03af:  newarr [mscorlib]System.String
+	IL_03b4:  dup 
+	IL_03b5:  ldc.i4.1 
+	IL_03b6:  ldstr "/Gr"
+	IL_03bb:  stelem.ref 
+	IL_03bc:  dup 
+	IL_03bd:  ldc.i4.2 
+	IL_03be:  ldstr "/Gz"
+	IL_03c3:  stelem.ref 
+	IL_03c4:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_03c9:  ldloc.0 
+	IL_03ca:  ldstr "CompileAs"
+	IL_03cf:  ldnull 
+	IL_03d0:  ldc.i4.3 
+	IL_03d1:  newarr [mscorlib]System.String
+	IL_03d6:  dup 
+	IL_03d7:  ldc.i4.1 
+	IL_03d8:  ldstr "/TC"
+	IL_03dd:  stelem.ref 
+	IL_03de:  dup 
+	IL_03df:  ldc.i4.2 
+	IL_03e0:  ldstr "/TP"
+	IL_03e5:  stelem.ref 
+	IL_03e6:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_03eb:  ldloc.0 
+	IL_03ec:  ldstr "ShowIncludes"
+	IL_03f1:  ldstr "/showIncludes"
+	IL_03f6:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_03fb:  ldloc.0 
+	IL_03fc:  ldstr "UndefineAllPreprocessorDefinitions"
+	IL_0401:  ldstr "/u"
+	IL_0406:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_040b:  ldloc.0 
+	IL_040c:  stloc.1 
+	IL_040d:  br IL_0412
 
-	  IL_02fa:  ldloc.s 22
-	  IL_02fc:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0301:  endfinally 
-	} // end handler 4
-	IL_0302:  ldloc.s 9
-	IL_0304:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0309:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Indent()
-	.try { // 5
-	  IL_030e:  nop 
-	  IL_030f:  ldloc.s 9
-	  IL_0311:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	  IL_0316:  nop 
-	  IL_0317:  leave IL_032b
+	IL_0412:  ldloc.1 
+	IL_0413:  ret 
+    } // end of method VcArgumentMap::CreateCLArgumentMap
 
-	} // end .try 5
-	finally  { // 5
-	  IL_031c:  nop 
-	  IL_031d:  ldloc.s 9
-	  IL_031f:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	  IL_0324:  callvirt instance void class [NAnt.Core]NAnt.Core.Project::Unindent()
-	  IL_0329:  nop 
-	  IL_032a:  endfinally 
-	} // end handler 5
-	IL_032b:  ret 
-    } // end of method ManagedProjectBase::CompileResXFiles
+    // method line 653
+    .method public static hidebysig 
+           default class NAnt.VSNet.VcArgumentMap CreateLinkerArgumentMap ()  cil managed 
+    {
+        // Method begins at RVA 0x13e2c
+	// Code size 693 (0x2b5)
+	.maxstack 7
+	.locals init (
+		class NAnt.VSNet.VcArgumentMap	V_0,
+		class NAnt.VSNet.VcArgumentMap	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.VSNet.VcArgumentMap::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldstr "LinkIncremental"
+	IL_000d:  ldnull 
+	IL_000e:  ldc.i4.3 
+	IL_000f:  newarr [mscorlib]System.String
+	IL_0014:  dup 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  ldstr "/INCREMENTAL:NO"
+	IL_001b:  stelem.ref 
+	IL_001c:  dup 
+	IL_001d:  ldc.i4.2 
+	IL_001e:  ldstr "/INCREMENTAL"
+	IL_0023:  stelem.ref 
+	IL_0024:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_0029:  ldloc.0 
+	IL_002a:  ldstr "Version"
+	IL_002f:  ldstr "/VERSION:"
+	IL_0034:  ldc.i4.1 
+	IL_0035:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddLinkerString(string, string, bool)
+	IL_003a:  ldloc.0 
+	IL_003b:  ldstr "IgnoreAllDefaultLibraries"
+	IL_0040:  ldstr "/NODEFAULTLIB"
+	IL_0045:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_004a:  ldloc.0 
+	IL_004b:  ldstr "ModuleDefinitionFile"
+	IL_0050:  ldstr "/DEF:"
+	IL_0055:  ldc.i4.1 
+	IL_0056:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
+	IL_005b:  ldloc.0 
+	IL_005c:  ldstr "StripPrivateSymbols"
+	IL_0061:  ldstr "/PDBSTRIPPED:"
+	IL_0066:  ldc.i4.1 
+	IL_0067:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
+	IL_006c:  ldloc.0 
+	IL_006d:  ldstr "MapExports"
+	IL_0072:  ldstr "/MAPINFO:EXPORTS"
+	IL_0077:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_007c:  ldloc.0 
+	IL_007d:  ldstr "MapLines"
+	IL_0082:  ldstr "/MAPINFO:LINES"
+	IL_0087:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_008c:  ldloc.0 
+	IL_008d:  ldstr "AssemblyDebug"
+	IL_0092:  ldnull 
+	IL_0093:  ldc.i4.3 
+	IL_0094:  newarr [mscorlib]System.String
+	IL_0099:  dup 
+	IL_009a:  ldc.i4.1 
+	IL_009b:  ldstr "/ASSEMBLYDEBUG"
+	IL_00a0:  stelem.ref 
+	IL_00a1:  dup 
+	IL_00a2:  ldc.i4.2 
+	IL_00a3:  ldstr "/ASSEMBLYDEBUG:DISABLE"
+	IL_00a8:  stelem.ref 
+	IL_00a9:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_00ae:  ldloc.0 
+	IL_00af:  ldstr "SubSystem"
+	IL_00b4:  ldstr "/SUBSYSTEM:"
+	IL_00b9:  ldc.i4.3 
+	IL_00ba:  newarr [mscorlib]System.String
+	IL_00bf:  dup 
+	IL_00c0:  ldc.i4.1 
+	IL_00c1:  ldstr "CONSOLE"
+	IL_00c6:  stelem.ref 
+	IL_00c7:  dup 
+	IL_00c8:  ldc.i4.2 
+	IL_00c9:  ldstr "WINDOWS"
+	IL_00ce:  stelem.ref 
+	IL_00cf:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_00d4:  ldloc.0 
+	IL_00d5:  ldstr "LargeAddressAware"
+	IL_00da:  ldnull 
+	IL_00db:  ldc.i4.3 
+	IL_00dc:  newarr [mscorlib]System.String
+	IL_00e1:  dup 
+	IL_00e2:  ldc.i4.1 
+	IL_00e3:  ldstr "/LARGEADDRESSAWARE:NO"
+	IL_00e8:  stelem.ref 
+	IL_00e9:  dup 
+	IL_00ea:  ldc.i4.2 
+	IL_00eb:  ldstr "/LARGEADDRESSAWARE"
+	IL_00f0:  stelem.ref 
+	IL_00f1:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_00f6:  ldloc.0 
+	IL_00f7:  ldstr "TerminalServerAware"
+	IL_00fc:  ldnull 
+	IL_00fd:  ldc.i4.3 
+	IL_00fe:  newarr [mscorlib]System.String
+	IL_0103:  dup 
+	IL_0104:  ldc.i4.1 
+	IL_0105:  ldstr "/TSAWARE:NO"
+	IL_010a:  stelem.ref 
+	IL_010b:  dup 
+	IL_010c:  ldc.i4.2 
+	IL_010d:  ldstr "/TSAWARE"
+	IL_0112:  stelem.ref 
+	IL_0113:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_0118:  ldloc.0 
+	IL_0119:  ldstr "SwapRunFromCD"
+	IL_011e:  ldstr "/SWAPRUN:CD"
+	IL_0123:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0128:  ldloc.0 
+	IL_0129:  ldstr "SwapRunFromNet"
+	IL_012e:  ldstr "/SWAPRUN:NET"
+	IL_0133:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0138:  ldloc.0 
+	IL_0139:  ldstr "OptimizeReferences"
+	IL_013e:  ldstr "/OPT:"
+	IL_0143:  ldc.i4.3 
+	IL_0144:  newarr [mscorlib]System.String
+	IL_0149:  dup 
+	IL_014a:  ldc.i4.1 
+	IL_014b:  ldstr "NOREF"
+	IL_0150:  stelem.ref 
+	IL_0151:  dup 
+	IL_0152:  ldc.i4.2 
+	IL_0153:  ldstr "REF"
+	IL_0158:  stelem.ref 
+	IL_0159:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_015e:  ldloc.0 
+	IL_015f:  ldstr "EnableCOMDATFolding"
+	IL_0164:  ldstr "/OPT:"
+	IL_0169:  ldc.i4.3 
+	IL_016a:  newarr [mscorlib]System.String
+	IL_016f:  dup 
+	IL_0170:  ldc.i4.1 
+	IL_0171:  ldstr "NOICF"
+	IL_0176:  stelem.ref 
+	IL_0177:  dup 
+	IL_0178:  ldc.i4.2 
+	IL_0179:  ldstr "ICF"
+	IL_017e:  stelem.ref 
+	IL_017f:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_0184:  ldloc.0 
+	IL_0185:  ldstr "OptimizeForWindows98"
+	IL_018a:  ldstr "/OPT:"
+	IL_018f:  ldc.i4.3 
+	IL_0190:  newarr [mscorlib]System.String
+	IL_0195:  dup 
+	IL_0196:  ldc.i4.1 
+	IL_0197:  ldstr "NOWIN98"
+	IL_019c:  stelem.ref 
+	IL_019d:  dup 
+	IL_019e:  ldc.i4.2 
+	IL_019f:  ldstr "WIN98"
+	IL_01a4:  stelem.ref 
+	IL_01a5:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_01aa:  ldloc.0 
+	IL_01ab:  ldstr "FunctionOrder"
+	IL_01b0:  ldstr "/ORDER:"
+	IL_01b5:  ldc.i4.1 
+	IL_01b6:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
+	IL_01bb:  ldloc.0 
+	IL_01bc:  ldstr "IgnoreEmbeddedIDL"
+	IL_01c1:  ldstr "/IGNOREIDL"
+	IL_01c6:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_01cb:  ldloc.0 
+	IL_01cc:  ldstr "MergedIDLBaseFileName"
+	IL_01d1:  ldstr "/IDLOUT:"
+	IL_01d6:  ldc.i4.1 
+	IL_01d7:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
+	IL_01dc:  ldloc.0 
+	IL_01dd:  ldstr "TypeLibraryFile"
+	IL_01e2:  ldstr "/TLBOUT:"
+	IL_01e7:  ldc.i4.1 
+	IL_01e8:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
+	IL_01ed:  ldloc.0 
+	IL_01ee:  ldstr "TypeLibraryResourceID"
+	IL_01f3:  ldstr "/TLBID:"
+	IL_01f8:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddLinkerString(string, string)
+	IL_01fd:  ldloc.0 
+	IL_01fe:  ldstr "EntryPointSymbol"
+	IL_0203:  ldstr "/ENTRY:"
+	IL_0208:  ldc.i4.1 
+	IL_0209:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
+	IL_020e:  ldloc.0 
+	IL_020f:  ldstr "ResourceOnlyDLL"
+	IL_0214:  ldstr "/NOENTRY"
+	IL_0219:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_021e:  ldloc.0 
+	IL_021f:  ldstr "SetChecksum"
+	IL_0224:  ldstr "/RELEASE"
+	IL_0229:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_022e:  ldloc.0 
+	IL_022f:  ldstr "BaseAddress"
+	IL_0234:  ldstr "/BASE:"
+	IL_0239:  ldc.i4.1 
+	IL_023a:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
+	IL_023f:  ldloc.0 
+	IL_0240:  ldstr "FixedBaseAddress"
+	IL_0245:  ldnull 
+	IL_0246:  ldc.i4.3 
+	IL_0247:  newarr [mscorlib]System.String
+	IL_024c:  dup 
+	IL_024d:  ldc.i4.1 
+	IL_024e:  ldstr "/FIXED:NO"
+	IL_0253:  stelem.ref 
+	IL_0254:  dup 
+	IL_0255:  ldc.i4.2 
+	IL_0256:  ldstr "/FIXED"
+	IL_025b:  stelem.ref 
+	IL_025c:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_0261:  ldloc.0 
+	IL_0262:  ldstr "TurnOffAssemblyGeneration"
+	IL_0267:  ldstr "/NOASSEMBLY"
+	IL_026c:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0271:  ldloc.0 
+	IL_0272:  ldstr "SupportUnloadOfDelayLoadedDLL"
+	IL_0277:  ldstr "/DELAY:UNLOAD"
+	IL_027c:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0281:  ldloc.0 
+	IL_0282:  ldstr "MergeSections"
+	IL_0287:  ldstr "/MERGE:"
+	IL_028c:  ldc.i4.1 
+	IL_028d:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddQuotedLinkerString(string, string, bool)
+	IL_0292:  ldloc.0 
+	IL_0293:  ldstr "TargetMachine"
+	IL_0298:  ldnull 
+	IL_0299:  ldc.i4.2 
+	IL_029a:  newarr [mscorlib]System.String
+	IL_029f:  dup 
+	IL_02a0:  ldc.i4.1 
+	IL_02a1:  ldstr "/MACHINE:X86"
+	IL_02a6:  stelem.ref 
+	IL_02a7:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_02ac:  ldloc.0 
+	IL_02ad:  stloc.1 
+	IL_02ae:  br IL_02b3
 
-    // method line 632
-    .method private hidebysig 
-           instance default void WriteNeutralResourceOptions (class [mscorlib]System.IO.StreamWriter sw, class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+	IL_02b3:  ldloc.1 
+	IL_02b4:  ret 
+    } // end of method VcArgumentMap::CreateLinkerArgumentMap
+
+    // method line 654
+    .method public static hidebysig 
+           default class NAnt.VSNet.VcArgumentMap CreateMidlArgumentMap ()  cil managed 
     {
-        // Method begins at RVA 0x10c34
-	// Code size 233 (0xe9)
+        // Method begins at RVA 0x140f0
+	// Code size 419 (0x1a3)
 	.maxstack 7
 	.locals init (
-		class NAnt.VSNet.Resource	V_0,
-		class [mscorlib]System.Collections.IEnumerator	V_1,
-		class [mscorlib]System.IO.FileInfo	V_2,
-		string	V_3,
-		class [mscorlib]System.IO.FileInfo	V_4,
-		class [mscorlib]System.IDisposable	V_5)
+		class NAnt.VSNet.VcArgumentMap	V_0,
+		class NAnt.VSNet.VcArgumentMap	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_neutralResources
-	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::get_Count()
-	IL_000c:  brtrue IL_0017
+	IL_0001:  newobj instance void class NAnt.VSNet.VcArgumentMap::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldstr "IgnoreStandardIncludePath"
+	IL_000d:  ldstr "/no_def_idir"
+	IL_0012:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0017:  ldloc.0 
+	IL_0018:  ldstr "MkTypLibCompatible"
+	IL_001d:  ldstr "/mktyplib203"
+	IL_0022:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0027:  ldloc.0 
+	IL_0028:  ldstr "WarningLevel"
+	IL_002d:  ldnull 
+	IL_002e:  ldc.i4.5 
+	IL_002f:  newarr [mscorlib]System.String
+	IL_0034:  dup 
+	IL_0035:  ldc.i4.0 
+	IL_0036:  ldstr "/W0"
+	IL_003b:  stelem.ref 
+	IL_003c:  dup 
+	IL_003d:  ldc.i4.1 
+	IL_003e:  ldstr "/W1"
+	IL_0043:  stelem.ref 
+	IL_0044:  dup 
+	IL_0045:  ldc.i4.2 
+	IL_0046:  ldstr "/W2"
+	IL_004b:  stelem.ref 
+	IL_004c:  dup 
+	IL_004d:  ldc.i4.3 
+	IL_004e:  ldstr "/W3"
+	IL_0053:  stelem.ref 
+	IL_0054:  dup 
+	IL_0055:  ldc.i4.4 
+	IL_0056:  ldstr "/W4"
+	IL_005b:  stelem.ref 
+	IL_005c:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_0061:  ldloc.0 
+	IL_0062:  ldstr "WarnAsError"
+	IL_0067:  ldstr "/WX"
+	IL_006c:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0071:  ldloc.0 
+	IL_0072:  ldstr "DefaultCharType"
+	IL_0077:  ldnull 
+	IL_0078:  ldc.i4.3 
+	IL_0079:  newarr [mscorlib]System.String
+	IL_007e:  dup 
+	IL_007f:  ldc.i4.0 
+	IL_0080:  ldstr "unsigned"
+	IL_0085:  stelem.ref 
+	IL_0086:  dup 
+	IL_0087:  ldc.i4.1 
+	IL_0088:  ldstr "signed"
+	IL_008d:  stelem.ref 
+	IL_008e:  dup 
+	IL_008f:  ldc.i4.2 
+	IL_0090:  ldstr "ascii7"
+	IL_0095:  stelem.ref 
+	IL_0096:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_009b:  ldloc.0 
+	IL_009c:  ldstr "TargetEnvironment"
+	IL_00a1:  ldnull 
+	IL_00a2:  ldc.i4.3 
+	IL_00a3:  newarr [mscorlib]System.String
+	IL_00a8:  dup 
+	IL_00a9:  ldc.i4.1 
+	IL_00aa:  ldstr "win32"
+	IL_00af:  stelem.ref 
+	IL_00b0:  dup 
+	IL_00b1:  ldc.i4.2 
+	IL_00b2:  ldstr "win64"
+	IL_00b7:  stelem.ref 
+	IL_00b8:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_00bd:  ldloc.0 
+	IL_00be:  ldstr "GenerateStublessProxies"
+	IL_00c3:  ldstr "/Oicf"
+	IL_00c8:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_00cd:  ldloc.0 
+	IL_00ce:  ldstr "GenerateTypeLibrary"
+	IL_00d3:  ldstr "/notlb"
+	IL_00d8:  ldstr "false"
+	IL_00dd:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string, string)
+	IL_00e2:  ldloc.0 
+	IL_00e3:  ldstr "EnableErrorChecks"
+	IL_00e8:  ldstr "/error "
+	IL_00ed:  ldc.i4.3 
+	IL_00ee:  newarr [mscorlib]System.String
+	IL_00f3:  dup 
+	IL_00f4:  ldc.i4.1 
+	IL_00f5:  ldstr "none"
+	IL_00fa:  stelem.ref 
+	IL_00fb:  dup 
+	IL_00fc:  ldc.i4.2 
+	IL_00fd:  ldstr "all"
+	IL_0102:  stelem.ref 
+	IL_0103:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_0108:  ldloc.0 
+	IL_0109:  ldstr "ErrorCheckAllocations"
+	IL_010e:  ldstr "/error allocation"
+	IL_0113:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0118:  ldloc.0 
+	IL_0119:  ldstr "ErrorCheckBounds"
+	IL_011e:  ldstr "/error bounds_check"
+	IL_0123:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0128:  ldloc.0 
+	IL_0129:  ldstr "ErrorCheckEnumRange"
+	IL_012e:  ldstr "/error enum"
+	IL_0133:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0138:  ldloc.0 
+	IL_0139:  ldstr "ErrorCheckRefPointers"
+	IL_013e:  ldstr "/error ref"
+	IL_0143:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0148:  ldloc.0 
+	IL_0149:  ldstr "ErrorCheckStubData"
+	IL_014e:  ldstr "/error stub_data"
+	IL_0153:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0158:  ldloc.0 
+	IL_0159:  ldstr "ValidateParameters"
+	IL_015e:  ldstr "/robust"
+	IL_0163:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddBool(string, string)
+	IL_0168:  ldloc.0 
+	IL_0169:  ldstr "StructMemberAlignment"
+	IL_016e:  ldnull 
+	IL_016f:  ldc.i4.5 
+	IL_0170:  newarr [mscorlib]System.String
+	IL_0175:  dup 
+	IL_0176:  ldc.i4.1 
+	IL_0177:  ldstr "/Zp1"
+	IL_017c:  stelem.ref 
+	IL_017d:  dup 
+	IL_017e:  ldc.i4.2 
+	IL_017f:  ldstr "/Zp2"
+	IL_0184:  stelem.ref 
+	IL_0185:  dup 
+	IL_0186:  ldc.i4.3 
+	IL_0187:  ldstr "/Zp4"
+	IL_018c:  stelem.ref 
+	IL_018d:  dup 
+	IL_018e:  ldc.i4.4 
+	IL_018f:  ldstr "/Zp8"
+	IL_0194:  stelem.ref 
+	IL_0195:  callvirt instance void class NAnt.VSNet.VcArgumentMap::AddEnum(string, string, string[])
+	IL_019a:  ldloc.0 
+	IL_019b:  stloc.1 
+	IL_019c:  br IL_01a1
 
-	IL_0011:  nop 
-	IL_0012:  br IL_00e8
+	IL_01a1:  ldloc.1 
+	IL_01a2:  ret 
+    } // end of method VcArgumentMap::CreateMidlArgumentMap
 
-	IL_0017:  nop 
-	IL_0018:  ldarg.0 
-	IL_0019:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_neutralResources
-	IL_001e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0023:  stloc.1 
-	.try { // 0
-	  IL_0024:  br IL_00c2
+  .class nested private auto ansi abstract beforefieldinit VcArgument
+  	extends [mscorlib]System.Object
+  {
+    .field  private  string _name
+    .field  private  valuetype NAnt.VSNet.VcArgumentMap/ArgGroup _group
 
-	  IL_0029:  ldloc.1 
-	  IL_002a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_002f:  castclass NAnt.VSNet.Resource
-	  IL_0034:  stloc.0 
-	  IL_0035:  nop 
-	  IL_0036:  ldarg.0 
-	  IL_0037:  ldc.i4 2000
-	  IL_003c:  ldstr " - {0}"
-	  IL_0041:  ldc.i4.1 
-	  IL_0042:  newarr [mscorlib]System.Object
-	  IL_0047:  dup 
-	  IL_0048:  ldc.i4.0 
-	  IL_0049:  ldloc.0 
-	  IL_004a:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
-	  IL_004f:  stelem.ref 
-	  IL_0050:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	  IL_0055:  ldloc.0 
-	  IL_0056:  callvirt instance bool class NAnt.VSNet.Resource::get_IsResX()
-	  IL_005b:  brfalse IL_0093
+    // method line 655
+    .method family hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
+    {
+        // Method begins at RVA 0x1429f
+	// Code size 22 (0x16)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.2 
+	IL_0009:  stfld string NAnt.VSNet.VcArgumentMap/VcArgument::_name
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  stfld valuetype NAnt.VSNet.VcArgumentMap/ArgGroup NAnt.VSNet.VcArgumentMap/VcArgument::_group
+	IL_0015:  ret 
+    } // end of method VcArgument::.ctor
 
-	  IL_0060:  nop 
-	  IL_0061:  ldloc.0 
-	  IL_0062:  ldarg.2 
-	  IL_0063:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::GetCompiledResourceFile(class NAnt.VSNet.Configuration)
-	  IL_0068:  stloc.2 
-	  IL_0069:  ldloc.0 
-	  IL_006a:  ldarg.2 
-	  IL_006b:  callvirt instance string class NAnt.VSNet.Resource::GetManifestResourceName(class NAnt.VSNet.Configuration)
-	  IL_0070:  stloc.3 
-	  IL_0071:  ldarg.1 
-	  IL_0072:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0077:  ldstr "/res:\"{0}\",\"{1}\""
-	  IL_007c:  ldloc.2 
-	  IL_007d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_0082:  ldloc.3 
-	  IL_0083:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_0088:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_008d:  nop 
-	  IL_008e:  br IL_00c1
+    // method line 656
+    .method public hidebysig specialname 
+           instance default string get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x142b8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.VcArgumentMap/VcArgument::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_0093:  nop 
-	  IL_0094:  ldloc.0 
-	  IL_0095:  ldarg.2 
-	  IL_0096:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::Compile(class NAnt.VSNet.Configuration)
-	  IL_009b:  stloc.s 4
-	  IL_009d:  ldarg.1 
-	  IL_009e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_00a3:  ldstr "/res:\"{0}\",\"{1}\""
-	  IL_00a8:  ldloc.s 4
-	  IL_00aa:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_00af:  ldloc.0 
-	  IL_00b0:  ldarg.2 
-	  IL_00b1:  callvirt instance string class NAnt.VSNet.Resource::GetManifestResourceName(class NAnt.VSNet.Configuration)
-	  IL_00b6:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	  IL_00bb:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_00c0:  nop 
-	  IL_00c1:  nop 
-	  IL_00c2:  ldloc.1 
-	  IL_00c3:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00c8:  brtrue IL_0029
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcArgument::get_Name
 
-	  IL_00cd:  leave IL_00e8
+    // method line 657
+    .method public hidebysig specialname 
+           instance default valuetype NAnt.VSNet.VcArgumentMap/ArgGroup get_Group ()  cil managed 
+    {
+        // Method begins at RVA 0x142d4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		valuetype NAnt.VSNet.VcArgumentMap/ArgGroup	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld valuetype NAnt.VSNet.VcArgumentMap/ArgGroup NAnt.VSNet.VcArgumentMap/VcArgument::_group
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	} // end .try 0
-	finally  { // 0
-	  IL_00d2:  ldloc.1 
-	  IL_00d3:  isinst [mscorlib]System.IDisposable
-	  IL_00d8:  dup 
-	  IL_00d9:  stloc.s 5
-	  IL_00db:  brfalse IL_00e7
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcArgument::get_Group
 
-	  IL_00e0:  ldloc.s 5
-	  IL_00e2:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00e7:  endfinally 
-	} // end handler 0
-	IL_00e8:  ret 
-    } // end of method ManagedProjectBase::WriteNeutralResourceOptions
+    // method line 658
+    .method assembly virtual hidebysig newslot abstract 
+           instance default string MapValue (string propValue)  cil managed 
+    {
+        // Method begins at RVA 0x0
+    } // end of method VcArgument::MapValue
 
-    // method line 633
-    .method private hidebysig 
-           instance default bool PreBuild (class NAnt.VSNet.ConfigurationSettings cs)  cil managed 
+    // method line 659
+    .method family hidebysig 
+           instance default string FormatOption (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x10d3c
-	// Code size 84 (0x54)
-	.maxstack 6
+        // Method begins at RVA 0x142f0
+	// Code size 40 (0x28)
+	.maxstack 2
 	.locals init (
-		string	V_0,
-		string	V_1,
-		string	V_2,
-		bool	V_3)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_0007:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_PreBuildEvent()
-	IL_000c:  stloc.0 
-	IL_000d:  ldloc.0 
-	IL_000e:  brfalse IL_004b
+	IL_0002:  ldfld string NAnt.VSNet.VcArgumentMap/VcArgument::_name
+	IL_0007:  brtrue IL_0014
 
-	IL_0013:  nop 
-	IL_0014:  ldarg.1 
-	IL_0015:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	IL_001a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001f:  ldstr "PreBuildEvent.bat"
-	IL_0024:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0029:  stloc.1 
-	IL_002a:  ldarg.1 
-	IL_002b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	IL_0030:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0035:  stloc.2 
-	IL_0036:  ldarg.0 
-	IL_0037:  ldstr "PreBuildEvent"
-	IL_003c:  ldloc.0 
-	IL_003d:  ldloc.1 
-	IL_003e:  ldloc.2 
-	IL_003f:  ldarg.1 
-	IL_0040:  call instance bool class NAnt.VSNet.ProjectBase::ExecuteBuildEvent(string, string, string, string, class NAnt.VSNet.ConfigurationBase)
-	IL_0045:  stloc.3 
-	IL_0046:  br IL_0052
+	IL_000c:  nop 
+	IL_000d:  ldarg.1 
+	IL_000e:  stloc.0 
+	IL_000f:  br IL_0026
 
-	IL_004b:  ldc.i4.1 
-	IL_004c:  stloc.3 
-	IL_004d:  br IL_0052
+	IL_0014:  ldarg.0 
+	IL_0015:  ldfld string NAnt.VSNet.VcArgumentMap/VcArgument::_name
+	IL_001a:  ldarg.1 
+	IL_001b:  call string string::Concat(string, string)
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
 
-	IL_0052:  ldloc.3 
-	IL_0053:  ret 
-    } // end of method ManagedProjectBase::PreBuild
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method VcArgument::FormatOption
 
-    // method line 634
-    .method private hidebysig 
-           instance default bool PostBuild (class NAnt.VSNet.ConfigurationSettings cs, bool bCompileSuccess, bool bOutputUpdated)  cil managed 
+	.property instance string Name ()
+	{
+		.get instance default string NAnt.VSNet.VcArgumentMap/VcArgument::get_Name () 
+	}
+	.property instance valuetype NAnt.VSNet.VcArgumentMap/ArgGroup Group ()
+	{
+		.get instance default valuetype NAnt.VSNet.VcArgumentMap/ArgGroup NAnt.VSNet.VcArgumentMap/VcArgument::get_Group () 
+	}
+  } // end of class VcArgument
+
+  .class nested private auto ansi beforefieldinit VcStringArgument
+  	extends NAnt.VSNet.VcArgumentMap/VcArgument
+  {
+    .field  private  bool _ignoreEmptyValue
+
+    // method line 660
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
     {
-        // Method begins at RVA 0x10d9c
-	// Code size 359 (0x167)
-	.maxstack 7
+        // Method begins at RVA 0x14324
+	// Code size 11 (0xb)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldc.i4.0 
+	IL_0004:  call instance void class NAnt.VSNet.VcArgumentMap/VcStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
+	IL_0009:  nop 
+	IL_000a:  ret 
+    } // end of method VcStringArgument::.ctor
+
+    // method line 661
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name, bool ignoreEmptyValue)  cil managed 
+    {
+        // Method begins at RVA 0x14330
+	// Code size 17 (0x11)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.VSNet.VcArgumentMap/VcArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string)
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.3 
+	IL_000b:  stfld bool NAnt.VSNet.VcArgumentMap/VcStringArgument::_ignoreEmptyValue
+	IL_0010:  ret 
+    } // end of method VcStringArgument::.ctor
+
+    // method line 662
+    .method family hidebysig specialname 
+           instance default bool get_IgnoreEmptyValue ()  cil managed 
+    {
+        // Method begins at RVA 0x14344
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0,
-		string	V_1,
-		string	V_2,
-		bool	V_3,
-		string	V_4,
-		bool	V_5)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_0007:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_PostBuildEvent()
-	IL_000c:  stloc.0 
+	IL_0002:  ldfld bool NAnt.VSNet.VcArgumentMap/VcStringArgument::_ignoreEmptyValue
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
 	IL_000d:  ldloc.0 
-	IL_000e:  brfalse IL_015c
+	IL_000e:  ret 
+    } // end of method VcStringArgument::get_IgnoreEmptyValue
 
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldc.i4 1000
-	IL_001a:  ldstr "PostBuild commandline: {0}"
-	IL_001f:  ldc.i4.1 
-	IL_0020:  newarr [mscorlib]System.Object
-	IL_0025:  dup 
-	IL_0026:  ldc.i4.0 
-	IL_0027:  ldloc.0 
-	IL_0028:  stelem.ref 
-	IL_0029:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_002e:  ldarg.1 
-	IL_002f:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	IL_0034:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0039:  ldstr "PostBuildEvent.bat"
-	IL_003e:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0043:  stloc.1 
-	IL_0044:  ldarg.1 
-	IL_0045:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	IL_004a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_004f:  stloc.2 
-	IL_0050:  ldarg.0 
-	IL_0051:  call instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_0056:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_RunPostBuildEvent()
-	IL_005b:  stloc.s 4
-	IL_005d:  ldloc.s 4
-	IL_005f:  brfalse IL_014d
+    // method line 663
+    .method assembly virtual hidebysig 
+           instance default string MapValue (string propValue)  cil managed 
+    {
+        // Method begins at RVA 0x14360
+	// Code size 46 (0x2e)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.VSNet.VcArgumentMap/VcStringArgument::get_IgnoreEmptyValue()
+	IL_0007:  brfalse IL_001f
 
-	IL_0064:  ldloc.s 4
-	IL_0066:  ldstr "OnBuildSuccess"
-	IL_006b:  call bool string::op_Equality(string, string)
-	IL_0070:  brtrue IL_009c
+	IL_000c:  ldarg.1 
+	IL_000d:  call bool string::IsNullOrEmpty(string)
+	IL_0012:  brfalse IL_001f
 
-	IL_0075:  ldloc.s 4
-	IL_0077:  ldstr "Always"
-	IL_007c:  call bool string::op_Equality(string, string)
-	IL_0081:  brtrue IL_00e2
+	IL_0017:  nop 
+	IL_0018:  ldnull 
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_002c
 
-	IL_0086:  ldloc.s 4
-	IL_0088:  ldstr "OnOutputUpdated"
-	IL_008d:  call bool string::op_Equality(string, string)
-	IL_0092:  brtrue IL_0107
+	IL_001f:  ldarg.0 
+	IL_0020:  ldarg.1 
+	IL_0021:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::FormatOption(string)
+	IL_0026:  stloc.0 
+	IL_0027:  br IL_002c
 
-	IL_0097:  br IL_014d
+	IL_002c:  ldloc.0 
+	IL_002d:  ret 
+    } // end of method VcStringArgument::MapValue
 
-	IL_009c:  ldarg.2 
-	IL_009d:  brfalse IL_00c9
+	.property instance bool IgnoreEmptyValue ()
+	{
+		.get instance default bool NAnt.VSNet.VcArgumentMap/VcStringArgument::get_IgnoreEmptyValue () 
+	}
+  } // end of class VcStringArgument
 
-	IL_00a2:  nop 
-	IL_00a3:  ldarg.0 
-	IL_00a4:  ldc.i4 1000
-	IL_00a9:  ldstr "PostBuild+OnBuildSuccess+bCompileSuccess"
-	IL_00ae:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_00b3:  ldarg.0 
-	IL_00b4:  ldstr "PostBuildEvent"
-	IL_00b9:  ldloc.0 
-	IL_00ba:  ldloc.1 
-	IL_00bb:  ldloc.2 
-	IL_00bc:  ldarg.1 
-	IL_00bd:  call instance bool class NAnt.VSNet.ProjectBase::ExecuteBuildEvent(string, string, string, string, class NAnt.VSNet.ConfigurationBase)
-	IL_00c2:  stloc.3 
-	IL_00c3:  nop 
-	IL_00c4:  br IL_00dd
+  .class nested private auto ansi beforefieldinit LinkerStringArgument
+  	extends NAnt.VSNet.VcArgumentMap/VcStringArgument
+  {
 
-	IL_00c9:  nop 
-	IL_00ca:  ldarg.0 
-	IL_00cb:  ldc.i4 1000
-	IL_00d0:  ldstr "PostBuild+OnBuildSuccess"
-	IL_00d5:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_00da:  ldc.i4.1 
-	IL_00db:  stloc.3 
-	IL_00dc:  nop 
-	IL_00dd:  br IL_0154
+    // method line 664
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
+    {
+        // Method begins at RVA 0x1439a
+	// Code size 11 (0xb)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldc.i4.0 
+	IL_0004:  call instance void class NAnt.VSNet.VcArgumentMap/LinkerStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
+	IL_0009:  nop 
+	IL_000a:  ret 
+    } // end of method LinkerStringArgument::.ctor
 
-	IL_00e2:  ldarg.0 
-	IL_00e3:  ldc.i4 1000
-	IL_00e8:  ldstr "PostBuild+Always"
-	IL_00ed:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_00f2:  ldarg.0 
-	IL_00f3:  ldstr "PostBuildEvent"
-	IL_00f8:  ldloc.0 
-	IL_00f9:  ldloc.1 
-	IL_00fa:  ldloc.2 
-	IL_00fb:  ldarg.1 
-	IL_00fc:  call instance bool class NAnt.VSNet.ProjectBase::ExecuteBuildEvent(string, string, string, string, class NAnt.VSNet.ConfigurationBase)
-	IL_0101:  stloc.3 
-	IL_0102:  br IL_0154
+    // method line 665
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name, bool ignoreEmptyValue)  cil managed 
+    {
+        // Method begins at RVA 0x143a6
+	// Code size 11 (0xb)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  call instance void class NAnt.VSNet.VcArgumentMap/VcStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
+	IL_0009:  nop 
+	IL_000a:  ret 
+    } // end of method LinkerStringArgument::.ctor
 
-	IL_0107:  ldarg.3 
-	IL_0108:  brfalse IL_0134
+    // method line 666
+    .method assembly virtual hidebysig 
+           instance default string MapValue (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x143b4
+	// Code size 80 (0x50)
+	.maxstack 2
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance bool class NAnt.VSNet.VcArgumentMap/VcStringArgument::get_IgnoreEmptyValue()
+	IL_0007:  brfalse IL_001f
 
-	IL_010d:  nop 
-	IL_010e:  ldarg.0 
-	IL_010f:  ldc.i4 1000
-	IL_0114:  ldstr "PostBuild+OnOutputUpdated+bOutputUpdated"
-	IL_0119:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_011e:  ldarg.0 
-	IL_011f:  ldstr "PostBuildEvent"
-	IL_0124:  ldloc.0 
-	IL_0125:  ldloc.1 
-	IL_0126:  ldloc.2 
-	IL_0127:  ldarg.1 
-	IL_0128:  call instance bool class NAnt.VSNet.ProjectBase::ExecuteBuildEvent(string, string, string, string, class NAnt.VSNet.ConfigurationBase)
-	IL_012d:  stloc.3 
-	IL_012e:  nop 
-	IL_012f:  br IL_0148
+	IL_000c:  ldarg.1 
+	IL_000d:  call bool string::IsNullOrEmpty(string)
+	IL_0012:  brfalse IL_001f
 
-	IL_0134:  nop 
-	IL_0135:  ldarg.0 
-	IL_0136:  ldc.i4 1000
-	IL_013b:  ldstr "PostBuild+OnOutputUpdated"
-	IL_0140:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0145:  ldc.i4.1 
-	IL_0146:  stloc.3 
-	IL_0147:  nop 
-	IL_0148:  br IL_0154
+	IL_0017:  nop 
+	IL_0018:  ldnull 
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_004e
 
-	IL_014d:  ldc.i4.0 
-	IL_014e:  stloc.3 
-	IL_014f:  br IL_0154
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::get_Name()
+	IL_0025:  brtrue IL_0037
 
-	IL_0154:  ldloc.3 
-	IL_0155:  stloc.s 5
-	IL_0157:  br IL_0164
+	IL_002a:  nop 
+	IL_002b:  ldarg.1 
+	IL_002c:  call string class [NAnt.VisualCppTasks]NAnt.VisualCpp.Util.ArgumentUtils::DuplicateTrailingBackslash(string)
+	IL_0031:  stloc.0 
+	IL_0032:  br IL_004e
 
-	IL_015c:  ldc.i4.1 
-	IL_015d:  stloc.s 5
-	IL_015f:  br IL_0164
+	IL_0037:  ldarg.0 
+	IL_0038:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::get_Name()
+	IL_003d:  ldarg.1 
+	IL_003e:  call string class [NAnt.VisualCppTasks]NAnt.VisualCpp.Util.ArgumentUtils::DuplicateTrailingBackslash(string)
+	IL_0043:  call string string::Concat(string, string)
+	IL_0048:  stloc.0 
+	IL_0049:  br IL_004e
 
-	IL_0164:  ldloc.s 5
-	IL_0166:  ret 
-    } // end of method ManagedProjectBase::PostBuild
+	IL_004e:  ldloc.0 
+	IL_004f:  ret 
+    } // end of method LinkerStringArgument::MapValue
 
-    // method line 635
-    .method private hidebysig 
-           instance default bool CheckUpToDate (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
+  } // end of class LinkerStringArgument
+
+  .class nested private auto ansi beforefieldinit QuotedLinkerStringArgument
+  	extends NAnt.VSNet.VcArgumentMap/VcStringArgument
+  {
+
+    // method line 667
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
     {
-        // Method begins at RVA 0x10f10
-	// Code size 603 (0x25b)
-	.maxstack 7
+        // Method begins at RVA 0x14410
+	// Code size 11 (0xb)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldc.i4.0 
+	IL_0004:  call instance void class NAnt.VSNet.VcArgumentMap/QuotedLinkerStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
+	IL_0009:  nop 
+	IL_000a:  ret 
+    } // end of method QuotedLinkerStringArgument::.ctor
+
+    // method line 668
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name, bool ignoreEmptyValue)  cil managed 
+    {
+        // Method begins at RVA 0x1441c
+	// Code size 11 (0xb)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  call instance void class NAnt.VSNet.VcArgumentMap/VcStringArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, bool)
+	IL_0009:  nop 
+	IL_000a:  ret 
+    } // end of method QuotedLinkerStringArgument::.ctor
+
+    // method line 669
+    .method assembly virtual hidebysig 
+           instance default string MapValue (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x14428
+	// Code size 80 (0x50)
+	.maxstack 2
 	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0,
-		class NAnt.VSNet.ConfigurationSettings	V_1,
-		bool	V_2,
-		string	V_3,
-		string	V_4,
-		class [mscorlib]System.Collections.IEnumerator	V_5,
-		class [mscorlib]System.IDisposable	V_6,
-		class NAnt.VSNet.Resource	V_7,
-		class [mscorlib]System.Collections.IEnumerator	V_8,
-		class [mscorlib]System.IO.FileInfo	V_9,
-		class [mscorlib]System.IDisposable	V_10,
-		class NAnt.VSNet.ReferenceBase	V_11,
-		class [mscorlib]System.Collections.IEnumerator	V_12,
-		class [mscorlib]System.IDisposable	V_13,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_14,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_15,
-		string	V_16,
-		class [mscorlib]System.IDisposable	V_17)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_0007:  ldarg.1 
-	IL_0008:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_000d:  castclass NAnt.VSNet.ConfigurationSettings
-	IL_0012:  stloc.1 
-	IL_0013:  ldloc.1 
-	IL_0014:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
-	IL_0019:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_001e:  brfalse IL_0036
+	IL_0002:  call instance bool class NAnt.VSNet.VcArgumentMap/VcStringArgument::get_IgnoreEmptyValue()
+	IL_0007:  brfalse IL_001f
 
-	IL_0023:  nop 
-	IL_0024:  ldloc.1 
-	IL_0025:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
-	IL_002a:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.File::GetLastWriteTime(string)
-	IL_002f:  stloc.0 
-	IL_0030:  nop 
-	IL_0031:  br IL_003e
+	IL_000c:  ldarg.1 
+	IL_000d:  call bool string::IsNullOrEmpty(string)
+	IL_0012:  brfalse IL_001f
 
-	IL_0036:  nop 
-	IL_0037:  ldc.i4.0 
-	IL_0038:  stloc.2 
-	IL_0039:  br IL_0259
+	IL_0017:  nop 
+	IL_0018:  ldnull 
+	IL_0019:  stloc.0 
+	IL_001a:  br IL_004e
 
-	IL_003e:  ldarg.0 
-	IL_003f:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_0044:  ldloc.0 
-	IL_0045:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_004a:  stloc.3 
-	IL_004b:  ldloc.3 
-	IL_004c:  brfalse IL_0073
+	IL_001f:  ldarg.0 
+	IL_0020:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::get_Name()
+	IL_0025:  brtrue IL_0037
 
-	IL_0051:  nop 
-	IL_0052:  ldarg.0 
-	IL_0053:  ldc.i4 1000
-	IL_0058:  ldstr "Project file \"0\" has been updated, recompiling."
-	IL_005d:  ldc.i4.1 
-	IL_005e:  newarr [mscorlib]System.Object
-	IL_0063:  dup 
-	IL_0064:  ldc.i4.0 
-	IL_0065:  ldloc.3 
-	IL_0066:  stelem.ref 
-	IL_0067:  call instance void class NAnt.VSNet.ProjectBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_006c:  ldc.i4.0 
-	IL_006d:  stloc.2 
-	IL_006e:  br IL_0259
+	IL_002a:  nop 
+	IL_002b:  ldarg.1 
+	IL_002c:  call string class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.LinkTask::QuoteArgumentValue(string)
+	IL_0031:  stloc.0 
+	IL_0032:  br IL_004e
 
-	IL_0073:  nop 
-	IL_0074:  ldarg.0 
-	IL_0075:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ManagedProjectBase::_sourceFiles
-	IL_007a:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
-	IL_007f:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.IEnumerable::GetEnumerator()
-	IL_0084:  stloc.s 5
-	.try { // 0
-	  IL_0086:  br IL_00b5
+	IL_0037:  ldarg.0 
+	IL_0038:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::get_Name()
+	IL_003d:  ldarg.1 
+	IL_003e:  call string class [NAnt.VisualCppTasks]NAnt.VisualCpp.Tasks.LinkTask::QuoteArgumentValue(string)
+	IL_0043:  call string string::Concat(string, string)
+	IL_0048:  stloc.0 
+	IL_0049:  br IL_004e
 
-	  IL_008b:  ldloc.s 5
-	  IL_008d:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0092:  castclass [mscorlib]System.String
-	  IL_0097:  stloc.s 4
-	  IL_0099:  nop 
-	  IL_009a:  ldloc.0 
-	  IL_009b:  ldloc.s 4
-	  IL_009d:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.File::GetLastWriteTime(string)
-	  IL_00a2:  call bool valuetype [mscorlib]System.DateTime::op_LessThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	  IL_00a7:  brfalse IL_00b4
+	IL_004e:  ldloc.0 
+	IL_004f:  ret 
+    } // end of method QuotedLinkerStringArgument::MapValue
 
-	  IL_00ac:  nop 
-	  IL_00ad:  ldc.i4.0 
-	  IL_00ae:  stloc.2 
-	  IL_00af:  leave IL_0259
+  } // end of class QuotedLinkerStringArgument
 
-	  IL_00b4:  nop 
-	  IL_00b5:  ldloc.s 5
-	  IL_00b7:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00bc:  brtrue IL_008b
+  .class nested private auto ansi beforefieldinit VcBoolArgument
+  	extends NAnt.VSNet.VcArgumentMap/VcArgument
+  {
+    .field  private  string _match
 
-	  IL_00c1:  leave IL_00dd
+    // method line 670
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name)  cil managed 
+    {
+        // Method begins at RVA 0x14484
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldstr "true"
+	IL_0008:  call instance void class NAnt.VSNet.VcArgumentMap/VcBoolArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string, string)
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method VcBoolArgument::.ctor
 
-	} // end .try 0
-	finally  { // 0
-	  IL_00c6:  ldloc.s 5
-	  IL_00c8:  isinst [mscorlib]System.IDisposable
-	  IL_00cd:  dup 
-	  IL_00ce:  stloc.s 6
-	  IL_00d0:  brfalse IL_00dc
+    // method line 671
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name, string match)  cil managed 
+    {
+        // Method begins at RVA 0x14494
+	// Code size 28 (0x1c)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldstr "true"
+	IL_0006:  stfld string NAnt.VSNet.VcArgumentMap/VcBoolArgument::_match
+	IL_000b:  ldarg.0 
+	IL_000c:  ldarg.1 
+	IL_000d:  ldarg.2 
+	IL_000e:  call instance void class NAnt.VSNet.VcArgumentMap/VcArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string)
+	IL_0013:  nop 
+	IL_0014:  ldarg.0 
+	IL_0015:  ldarg.3 
+	IL_0016:  stfld string NAnt.VSNet.VcArgumentMap/VcBoolArgument::_match
+	IL_001b:  ret 
+    } // end of method VcBoolArgument::.ctor
 
-	  IL_00d5:  ldloc.s 6
-	  IL_00d7:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00dc:  endfinally 
-	} // end handler 0
-	IL_00dd:  nop 
-	IL_00de:  ldarg.0 
-	IL_00df:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_neutralResources
-	IL_00e4:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_00e9:  stloc.s 8
-	.try { // 1
-	  IL_00eb:  br IL_0157
+    // method line 672
+    .method public hidebysig specialname 
+           instance default string get_Match ()  cil managed 
+    {
+        // Method begins at RVA 0x144b4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VSNet.VcArgumentMap/VcBoolArgument::_match
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_00f0:  ldloc.s 8
-	  IL_00f2:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_00f7:  castclass NAnt.VSNet.Resource
-	  IL_00fc:  stloc.s 7
-	  IL_00fe:  nop 
-	  IL_00ff:  ldloc.0 
-	  IL_0100:  ldloc.s 7
-	  IL_0102:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::get_InputFile()
-	  IL_0107:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	  IL_010c:  call bool valuetype [mscorlib]System.DateTime::op_LessThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	  IL_0111:  brfalse IL_011e
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method VcBoolArgument::get_Match
 
-	  IL_0116:  nop 
-	  IL_0117:  ldc.i4.0 
-	  IL_0118:  stloc.2 
-	  IL_0119:  leave IL_0259
+    // method line 673
+    .method assembly virtual hidebysig 
+           instance default string MapValue (string propValue)  cil managed 
+    {
+        // Method begins at RVA 0x144d0
+	// Code size 51 (0x33)
+	.maxstack 4
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.0 
+	IL_0003:  call instance string class NAnt.VSNet.VcArgumentMap/VcBoolArgument::get_Match()
+	IL_0008:  ldc.i4.1 
+	IL_0009:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_000e:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	IL_0013:  brtrue IL_002a
 
-	  IL_011e:  ldloc.s 7
-	  IL_0120:  ldarg.1 
-	  IL_0121:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Resource::GetCompiledResourceFile(class NAnt.VSNet.Configuration)
-	  IL_0126:  stloc.s 9
-	  IL_0128:  ldloc.s 9
-	  IL_012a:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	  IL_012f:  brtrue IL_013c
+	IL_0018:  nop 
+	IL_0019:  ldarg.0 
+	IL_001a:  ldsfld string [mscorlib]System.String::Empty
+	IL_001f:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::FormatOption(string)
+	IL_0024:  stloc.0 
+	IL_0025:  br IL_0031
 
-	  IL_0134:  nop 
-	  IL_0135:  ldc.i4.0 
-	  IL_0136:  stloc.2 
-	  IL_0137:  leave IL_0259
+	IL_002a:  ldnull 
+	IL_002b:  stloc.0 
+	IL_002c:  br IL_0031
 
-	  IL_013c:  ldloc.0 
-	  IL_013d:  ldloc.s 9
-	  IL_013f:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	  IL_0144:  call bool valuetype [mscorlib]System.DateTime::op_LessThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	  IL_0149:  brfalse IL_0156
+	IL_0031:  ldloc.0 
+	IL_0032:  ret 
+    } // end of method VcBoolArgument::MapValue
 
-	  IL_014e:  nop 
-	  IL_014f:  ldc.i4.0 
-	  IL_0150:  stloc.2 
-	  IL_0151:  leave IL_0259
+	.property instance string Match ()
+	{
+		.get instance default string NAnt.VSNet.VcArgumentMap/VcBoolArgument::get_Match () 
+	}
+  } // end of class VcBoolArgument
 
-	  IL_0156:  nop 
-	  IL_0157:  ldloc.s 8
-	  IL_0159:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_015e:  brtrue IL_00f0
+  .class nested private auto ansi beforefieldinit VcEnumArgument
+  	extends NAnt.VSNet.VcArgumentMap/VcArgument
+  {
+    .field  private  string[] _values
 
-	  IL_0163:  leave IL_017f
+    // method line 674
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (valuetype NAnt.VSNet.VcArgumentMap/ArgGroup group, string name, string[] values)  cil managed 
+    {
+        // Method begins at RVA 0x1450f
+	// Code size 17 (0x11)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  call instance void class NAnt.VSNet.VcArgumentMap/VcArgument::'.ctor'(valuetype NAnt.VSNet.VcArgumentMap/ArgGroup, string)
+	IL_0008:  nop 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldarg.3 
+	IL_000b:  stfld string[] NAnt.VSNet.VcArgumentMap/VcEnumArgument::_values
+	IL_0010:  ret 
+    } // end of method VcEnumArgument::.ctor
 
-	} // end .try 1
-	finally  { // 1
-	  IL_0168:  ldloc.s 8
-	  IL_016a:  isinst [mscorlib]System.IDisposable
-	  IL_016f:  dup 
-	  IL_0170:  stloc.s 10
-	  IL_0172:  brfalse IL_017e
+    // method line 675
+    .method assembly virtual hidebysig 
+           instance default string MapValue (string propValue)  cil managed 
+    {
+        // Method begins at RVA 0x14524
+	// Code size 90 (0x5a)
+	.maxstack 3
+	.locals init (
+		int32	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.m1 
+	IL_0002:  stloc.0 
+	.try { // 0
+	  IL_0003:  nop 
+	  IL_0004:  ldarg.1 
+	  IL_0005:  call int32 int32::Parse(string)
+	  IL_000a:  stloc.0 
+	  IL_000b:  nop 
+	  IL_000c:  leave IL_001a
 
-	  IL_0177:  ldloc.s 10
-	  IL_0179:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_017e:  endfinally 
-	} // end handler 1
-	IL_017f:  nop 
-	IL_0180:  ldarg.0 
-	IL_0181:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_references
-	IL_0186:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_018b:  stloc.s 12
-	.try { // 2
-	  IL_018d:  br IL_01bd
+	} // end .try 0
+	catch class [mscorlib]System.FormatException { // 0
+	  IL_0011:  pop 
+	  IL_0012:  nop 
+	  IL_0013:  ldnull 
+	  IL_0014:  stloc.1 
+	  IL_0015:  leave IL_0058
 
-	  IL_0192:  ldloc.s 12
-	  IL_0194:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0199:  castclass NAnt.VSNet.ReferenceBase
-	  IL_019e:  stloc.s 11
-	  IL_01a0:  nop 
-	  IL_01a1:  ldloc.0 
-	  IL_01a2:  ldloc.s 11
-	  IL_01a4:  ldarg.1 
-	  IL_01a5:  callvirt instance valuetype [mscorlib]System.DateTime class NAnt.VSNet.ReferenceBase::GetTimestamp(class NAnt.VSNet.Configuration)
-	  IL_01aa:  call bool valuetype [mscorlib]System.DateTime::op_LessThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	  IL_01af:  brfalse IL_01bc
+	} // end handler 0
+	IL_001a:  ldloc.0 
+	IL_001b:  ldc.i4.0 
+	IL_001c:  blt IL_003c
 
-	  IL_01b4:  nop 
-	  IL_01b5:  ldc.i4.0 
-	  IL_01b6:  stloc.2 
-	  IL_01b7:  leave IL_0259
+	IL_0021:  ldloc.0 
+	IL_0022:  ldarg.0 
+	IL_0023:  ldfld string[] NAnt.VSNet.VcArgumentMap/VcEnumArgument::_values
+	IL_0028:  ldlen 
+	IL_0029:  conv.i4 
+	IL_002a:  bge IL_003c
 
-	  IL_01bc:  nop 
-	  IL_01bd:  ldloc.s 12
-	  IL_01bf:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_01c4:  brtrue IL_0192
+	IL_002f:  ldarg.0 
+	IL_0030:  ldfld string[] NAnt.VSNet.VcArgumentMap/VcEnumArgument::_values
+	IL_0035:  ldloc.0 
+	IL_0036:  ldelem.ref 
+	IL_0037:  brtrue IL_0044
 
-	  IL_01c9:  leave IL_01e5
+	IL_003c:  nop 
+	IL_003d:  ldnull 
+	IL_003e:  stloc.1 
+	IL_003f:  br IL_0058
 
-	} // end .try 2
-	finally  { // 2
-	  IL_01ce:  ldloc.s 12
-	  IL_01d0:  isinst [mscorlib]System.IDisposable
-	  IL_01d5:  dup 
-	  IL_01d6:  stloc.s 13
-	  IL_01d8:  brfalse IL_01e4
+	IL_0044:  ldarg.0 
+	IL_0045:  ldarg.0 
+	IL_0046:  ldfld string[] NAnt.VSNet.VcArgumentMap/VcEnumArgument::_values
+	IL_004b:  ldloc.0 
+	IL_004c:  ldelem.ref 
+	IL_004d:  call instance string class NAnt.VSNet.VcArgumentMap/VcArgument::FormatOption(string)
+	IL_0052:  stloc.1 
+	IL_0053:  br IL_0058
 
-	  IL_01dd:  ldloc.s 13
-	  IL_01df:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_01e4:  endfinally 
-	} // end handler 2
-	IL_01e5:  nop 
-	IL_01e6:  ldloc.1 
-	IL_01e7:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ConfigurationBase::get_ExtraOutputFiles()
-	IL_01ec:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_01f1:  stloc.s 15
-	.try { // 3
-	  IL_01f3:  br IL_022a
+	IL_0058:  ldloc.1 
+	IL_0059:  ret 
+    } // end of method VcEnumArgument::MapValue
 
-	  IL_01f8:  ldloc.s 15
-	  IL_01fa:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_01ff:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_0204:  stloc.s 14
-	  IL_0206:  nop 
-	  IL_0207:  ldloca.s 14
-	  IL_0209:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_020e:  castclass [mscorlib]System.String
-	  IL_0213:  stloc.s 16
-	  IL_0215:  ldloc.s 16
-	  IL_0217:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_021c:  brtrue IL_0229
+  } // end of class VcEnumArgument
 
-	  IL_0221:  nop 
-	  IL_0222:  ldc.i4.0 
-	  IL_0223:  stloc.2 
-	  IL_0224:  leave IL_0259
+  .class nested public auto ansi sealed ArgGroup
+  	extends [mscorlib]System.Enum
+  {
+    .custom instance void class [mscorlib]System.FlagsAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-	  IL_0229:  nop 
-	  IL_022a:  ldloc.s 15
-	  IL_022c:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0231:  brtrue IL_01f8
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.VSNet.VcArgumentMap/ArgGroup Unassigned = int32(0x00000000)
+    .field public static literal  valuetype NAnt.VSNet.VcArgumentMap/ArgGroup OptiIgnoreGroup = int32(0x00000001)
 
-	  IL_0236:  leave IL_0252
+  } // end of class ArgGroup
 
-	} // end .try 3
-	finally  { // 3
-	  IL_023b:  ldloc.s 15
-	  IL_023d:  isinst [mscorlib]System.IDisposable
-	  IL_0242:  dup 
-	  IL_0243:  stloc.s 17
-	  IL_0245:  brfalse IL_0251
+  } // end of class NAnt.VSNet.VcArgumentMap
+}
 
-	  IL_024a:  ldloc.s 17
-	  IL_024c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0251:  endfinally 
-	} // end handler 3
-	IL_0252:  ldc.i4.1 
-	IL_0253:  stloc.2 
-	IL_0254:  br IL_0259
+.namespace NAnt.VSNet
+{
+  .class public auto ansi sealed beforefieldinit ConfigurationDictionary
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IDictionary, [mscorlib]System.Collections.ICollection, [mscorlib]System.Collections.IEnumerable  {
+    .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
-	IL_0259:  ldloc.2 
-	IL_025a:  ret 
-    } // end of method ManagedProjectBase::CheckUpToDate
+    .field  private initonly  class [mscorlib]System.Collections.Hashtable _innerHash
 
-    // method line 636
-    .method private hidebysig 
-           instance default class [mscorlib]System.Collections.Hashtable GetLocalizedResources ()  cil managed 
+    // method line 676
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x111ac
-	// Code size 149 (0x95)
-	.maxstack 3
+        // Method begins at RVA 0x1459c
+	// Code size 19 (0x13)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  call class [mscorlib]System.Collections.Hashtable class [System]System.Collections.Specialized.CollectionsUtil::CreateCaseInsensitiveHashtable()
+	IL_000d:  stfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0012:  ret 
+    } // end of method ConfigurationDictionary::.ctor
+
+    // method line 677
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Collections.Hashtable get_InnerHash ()  cil managed 
+    {
+        // Method begins at RVA 0x145b0
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0,
-		class NAnt.VSNet.Resource	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class [mscorlib]System.Globalization.CultureInfo	V_3,
-		class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		class [mscorlib]System.Collections.Hashtable	V_6)
+		class [mscorlib]System.Collections.Hashtable	V_0)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::_localizedResources
-	IL_000e:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [mscorlib]System.Collections.ArrayList::GetEnumerator()
-	IL_0013:  stloc.2 
-	.try { // 0
-	  IL_0014:  br IL_0064
-
-	  IL_0019:  ldloc.2 
-	  IL_001a:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_001f:  castclass NAnt.VSNet.Resource
-	  IL_0024:  stloc.1 
-	  IL_0025:  nop 
-	  IL_0026:  ldloc.1 
-	  IL_0027:  callvirt instance class [mscorlib]System.Globalization.CultureInfo class NAnt.VSNet.Resource::get_Culture()
-	  IL_002c:  stloc.3 
-	  IL_002d:  ldloc.0 
-	  IL_002e:  ldloc.3 
-	  IL_002f:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
-	  IL_0034:  castclass NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet
-	  IL_0039:  stloc.s 4
-	  IL_003b:  ldloc.s 4
-	  IL_003d:  brtrue IL_0055
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	  IL_0042:  nop 
-	  IL_0043:  ldloc.3 
-	  IL_0044:  newobj instance void class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::'.ctor'(class [mscorlib]System.Globalization.CultureInfo)
-	  IL_0049:  stloc.s 4
-	  IL_004b:  ldloc.0 
-	  IL_004c:  ldloc.3 
-	  IL_004d:  ldloc.s 4
-	  IL_004f:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
-	  IL_0054:  nop 
-	  IL_0055:  ldloc.s 4
-	  IL_0057:  callvirt instance class [mscorlib]System.Collections.ArrayList class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::get_Resources()
-	  IL_005c:  ldloc.1 
-	  IL_005d:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0062:  pop 
-	  IL_0063:  nop 
-	  IL_0064:  ldloc.2 
-	  IL_0065:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_006a:  brtrue IL_0019
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationDictionary::get_InnerHash
 
-	  IL_006f:  leave IL_008a
+    // method line 678
+    .method public hidebysig 
+           instance default class NAnt.VSNet.ConfigurationDictionaryEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x145cc
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.ConfigurationDictionaryEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.VSNet.ConfigurationDictionaryEnumerator::'.ctor'(class NAnt.VSNet.ConfigurationDictionary)
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	} // end .try 0
-	finally  { // 0
-	  IL_0074:  ldloc.2 
-	  IL_0075:  isinst [mscorlib]System.IDisposable
-	  IL_007a:  dup 
-	  IL_007b:  stloc.s 5
-	  IL_007d:  brfalse IL_0089
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationDictionary::GetEnumerator
 
-	  IL_0082:  ldloc.s 5
-	  IL_0084:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0089:  endfinally 
-	} // end handler 0
-	IL_008a:  ldloc.0 
-	IL_008b:  stloc.s 6
-	IL_008d:  br IL_0092
+    // method line 679
+    .method private final virtual hidebysig newslot 
+           instance default class [mscorlib]System.Collections.IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x145e8
+	.override class [mscorlib]System.Collections.IDictionary::GetEnumerator
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionaryEnumerator class NAnt.VSNet.ConfigurationDictionary::GetEnumerator()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_0092:  ldloc.s 6
-	IL_0094:  ret 
-    } // end of method ManagedProjectBase::GetLocalizedResources
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationDictionary::System.Collections.IDictionary.GetEnumerator
 
-    // method line 637
-    .method private hidebysig 
-           instance default class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask CreateRegAsmTask ()  cil managed 
+    // method line 680
+    .method private final virtual hidebysig newslot 
+           instance default class [mscorlib]System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x11260
-	// Code size 244 (0xf4)
-	.maxstack 3
+        // Method begins at RVA 0x14604
+	.override class [mscorlib]System.Collections.IEnumerable::GetEnumerator
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask	V_0,
-		class [NAnt.Core]NAnt.Core.Project	V_1,
-		class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask	V_2)
+		class [mscorlib]System.Collections.IEnumerator	V_0)
 	IL_0000:  nop 
-	IL_0001:  newobj instance void class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_000e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0013:  ldloc.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_001a:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_001f:  stloc.1 
-	IL_0020:  ldloc.0 
-	IL_0021:  ldloc.1 
-	IL_0022:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0027:  ldloc.1 
-	IL_0028:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_002d:  ldloc.0 
-	IL_002e:  ldarg.0 
-	IL_002f:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0034:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_0039:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Verbose(bool)
-	IL_003e:  ldloc.0 
-	IL_003f:  ldarg.0 
-	IL_0040:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0045:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_004a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_004f:  ldloc.0 
-	IL_0050:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	IL_0055:  ldloc.0 
-	IL_0056:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_Assemblies()
-	IL_005b:  ldloc.0 
-	IL_005c:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0061:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_0066:  ldloc.0 
-	IL_0067:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_Assemblies()
-	IL_006c:  ldloc.0 
-	IL_006d:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_0072:  ldloc.0 
-	IL_0073:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_Assemblies()
-	IL_0078:  ldloc.0 
-	IL_0079:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_007e:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_0083:  ldloc.0 
-	IL_0084:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_Assemblies()
-	IL_0089:  ldarg.0 
-	IL_008a:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_008f:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_0094:  ldloc.0 
-	IL_0095:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_References()
-	IL_009a:  ldloc.0 
-	IL_009b:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_00a0:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_00a5:  ldloc.0 
-	IL_00a6:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_References()
-	IL_00ab:  ldloc.0 
-	IL_00ac:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_00b1:  ldloc.0 
-	IL_00b2:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_References()
-	IL_00b7:  ldloc.0 
-	IL_00b8:  callvirt instance class [System.Xml]System.Xml.XmlNamespaceManager class [NAnt.Core]NAnt.Core.Element::get_NamespaceManager()
-	IL_00bd:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_NamespaceManager(class [System.Xml]System.Xml.XmlNamespaceManager)
-	IL_00c2:  ldloc.0 
-	IL_00c3:  callvirt instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class [NAnt.Win32Tasks]NAnt.Win32.Tasks.RegAsmTask::get_References()
-	IL_00c8:  ldarg.0 
-	IL_00c9:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_00ce:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_00d3:  ldloc.0 
-	IL_00d4:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_00d9:  brtrue IL_00eb
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionaryEnumerator class NAnt.VSNet.ConfigurationDictionary::GetEnumerator()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_00de:  nop 
-	IL_00df:  ldloc.0 
-	IL_00e0:  ldc.i4 4000
-	IL_00e5:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
-	IL_00ea:  nop 
-	IL_00eb:  ldloc.0 
-	IL_00ec:  stloc.2 
-	IL_00ed:  br IL_00f2
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationDictionary::System.Collections.IEnumerable.GetEnumerator
 
-	IL_00f2:  ldloc.2 
-	IL_00f3:  ret 
-    } // end of method ManagedProjectBase::CreateRegAsmTask
+    // method line 681
+    .method public hidebysig 
+           instance default void Remove (class NAnt.VSNet.Configuration configuration)  cil managed 
+    {
+        // Method begins at RVA 0x1461f
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Remove(object)
+	IL_000d:  ret 
+    } // end of method ConfigurationDictionary::Remove
+
+    // method line 682
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IDictionary.Remove (object key)  cil managed 
+    {
+        // Method begins at RVA 0x1462e
+	.override class [mscorlib]System.Collections.IDictionary::Remove
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass NAnt.VSNet.Configuration
+	IL_0008:  call instance void class NAnt.VSNet.ConfigurationDictionary::Remove(class NAnt.VSNet.Configuration)
+	IL_000d:  ret 
+    } // end of method ConfigurationDictionary::System.Collections.IDictionary.Remove
 
-    // method line 638
-    .method public static hidebysig 
-           default bool IsEnterpriseTemplateProject (string fileName)  cil managed 
+    // method line 683
+    .method public hidebysig 
+           instance default bool Contains (class NAnt.VSNet.Configuration key)  cil managed 
     {
-        // Method begins at RVA 0x11360
-	// Code size 138 (0x8a)
-	.maxstack 3
+        // Method begins at RVA 0x14640
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.StreamReader	V_0,
-		class [System.Xml]System.Xml.XmlTextReader	V_1,
-		bool	V_2,
-		class [mscorlib]System.Exception	V_3)
+		bool	V_0)
 	IL_0000:  nop 
-	.try { // 1
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.0 
-	  IL_0003:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_Default()
-	  IL_0008:  ldc.i4.1 
-	  IL_0009:  newobj instance void class [mscorlib]System.IO.StreamReader::'.ctor'(string, class [mscorlib]System.Text.Encoding, bool)
-	  IL_000e:  stloc.0 
-	  .try { // 0
-	    IL_000f:  nop 
-	    IL_0010:  ldloc.0 
-	    IL_0011:  newobj instance void class [System.Xml]System.Xml.XmlTextReader::'.ctor'(class [mscorlib]System.IO.TextReader)
-	    IL_0016:  stloc.1 
-	    IL_0017:  ldloc.1 
-	    IL_0018:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::MoveToContent()
-	    IL_001d:  pop 
-	    IL_001e:  ldloc.1 
-	    IL_001f:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
-	    IL_0024:  ldc.i4.1 
-	    IL_0025:  bne.un IL_0047
-
-	    IL_002a:  ldloc.1 
-	    IL_002b:  callvirt instance string class [System.Xml]System.Xml.XmlReader::get_LocalName()
-	    IL_0030:  ldstr "EFPROJECT"
-	    IL_0035:  call bool string::op_Equality(string, string)
-	    IL_003a:  brfalse IL_0047
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::Contains(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	    IL_003f:  nop 
-	    IL_0040:  ldc.i4.1 
-	    IL_0041:  stloc.2 
-	    IL_0042:  leave IL_0088
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ConfigurationDictionary::Contains
 
-	    IL_0047:  nop 
-	    IL_0048:  leave IL_005a
+    // method line 684
+    .method private final virtual hidebysig newslot 
+           instance default bool System.Collections.IDictionary.Contains (object key)  cil managed 
+    {
+        // Method begins at RVA 0x14664
+	.override class [mscorlib]System.Collections.IDictionary::Contains
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass NAnt.VSNet.Configuration
+	IL_0008:  call instance bool class NAnt.VSNet.ConfigurationDictionary::Contains(class NAnt.VSNet.Configuration)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	  } // end .try 0
-	  finally  { // 0
-	    IL_004d:  ldloc.0 
-	    IL_004e:  brfalse IL_0059
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ConfigurationDictionary::System.Collections.IDictionary.Contains
 
-	    IL_0053:  ldloc.0 
-	    IL_0054:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0059:  endfinally 
-	  } // end handler 0
-	  IL_005a:  ldc.i4.0 
-	  IL_005b:  stloc.2 
-	  IL_005c:  leave IL_0088
+    // method line 685
+    .method public final virtual hidebysig newslot 
+           instance default void Clear ()  cil managed 
+    {
+        // Method begins at RVA 0x14685
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Clear()
+	IL_000c:  ret 
+    } // end of method ConfigurationDictionary::Clear
 
-	} // end .try 1
-	catch class [System.Xml]System.Xml.XmlException { // 1
-	  IL_0061:  pop 
-	  IL_0062:  nop 
-	  IL_0063:  ldc.i4.0 
-	  IL_0064:  stloc.2 
-	  IL_0065:  leave IL_0088
+    // method line 686
+    .method public hidebysig 
+           instance default void Add (class NAnt.VSNet.Configuration key, class NAnt.VSNet.ConfigurationBase 'value')  cil managed 
+    {
+        // Method begins at RVA 0x14693
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::Add(object, object)
+	IL_000e:  ret 
+    } // end of method ConfigurationDictionary::Add
 
-	} // end handler 1
-	catch class [mscorlib]System.Exception { // 2
-	  IL_006a:  stloc.3 
-	  IL_006b:  nop 
-	  IL_006c:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0071:  ldstr "Error checking whether '{0}' is an enterprise template project."
-	  IL_0076:  ldarg.0 
-	  IL_0077:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_007c:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	  IL_0081:  ldloc.3 
-	  IL_0082:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0087:  throw 
-	} // end handler 2
-	IL_0088:  ldloc.2 
-	IL_0089:  ret 
-    } // end of method ManagedProjectBase::IsEnterpriseTemplateProject
+    // method line 687
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.IDictionary.Add (object key, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x146a3
+	.override class [mscorlib]System.Collections.IDictionary::Add
+	// Code size 20 (0x14)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass NAnt.VSNet.Configuration
+	IL_0008:  ldarg.2 
+	IL_0009:  castclass NAnt.VSNet.ConfigurationBase
+	IL_000e:  call instance void class NAnt.VSNet.ConfigurationDictionary::Add(class NAnt.VSNet.Configuration, class NAnt.VSNet.ConfigurationBase)
+	IL_0013:  ret 
+    } // end of method ConfigurationDictionary::System.Collections.IDictionary.Add
 
-    // method line 639
-    .method public static hidebysig 
-           default string LoadGuid (class [System.Xml]System.Xml.XmlElement xmlDefinition)  cil managed 
+    // method line 688
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsReadOnly ()  cil managed 
     {
-        // Method begins at RVA 0x11420
-	// Code size 22 (0x16)
+        // Method begins at RVA 0x146b8
+	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
-		class [System.Xml]System.Xml.XmlReader	V_0,
-		string	V_1)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class [System.Xml]System.Xml.XmlNodeReader::'.ctor'(class [System.Xml]System.Xml.XmlNode)
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  call string class NAnt.VSNet.ManagedProjectBase::LoadGuid(class [System.Xml]System.Xml.XmlReader)
-	IL_000e:  stloc.1 
-	IL_000f:  br IL_0014
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsReadOnly()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0014:  ldloc.1 
-	IL_0015:  ret 
-    } // end of method ManagedProjectBase::LoadGuid
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationDictionary::get_IsReadOnly
 
-    // method line 640
-    .method private static hidebysig 
-           default string LoadGuid (class [System.Xml]System.Xml.XmlReader guidReader)  cil managed 
+    // method line 689
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ConfigurationBase get_Item (class NAnt.VSNet.Configuration key)  cil managed 
     {
-        // Method begins at RVA 0x11444
-	// Code size 111 (0x6f)
-	.maxstack 2
+        // Method begins at RVA 0x146d8
+	// Code size 168 (0xa8)
+	.maxstack 4
 	.locals init (
-		string	V_0)
+		class NAnt.VSNet.ConfigurationBase	V_0,
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_1,
+		class [mscorlib]System.Collections.IDictionaryEnumerator	V_2,
+		class NAnt.VSNet.Configuration	V_3,
+		class [mscorlib]System.IDisposable	V_4,
+		class NAnt.VSNet.ConfigurationBase	V_5)
 	IL_0000:  nop 
-	IL_0001:  br IL_0052
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_Item(object)
+	IL_000d:  castclass NAnt.VSNet.ConfigurationBase
+	IL_0012:  stloc.0 
+	IL_0013:  ldloc.0 
+	IL_0014:  brtrue IL_009d
 
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
-	IL_000d:  ldc.i4.1 
-	IL_000e:  bne.un IL_0051
+	IL_0019:  nop 
+	IL_001a:  nop 
+	IL_001b:  ldarg.0 
+	IL_001c:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0021:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_0026:  stloc.2 
+	.try { // 0
+	  IL_0027:  br IL_0076
 
-	IL_0013:  nop 
-	IL_0014:  br IL_0045
+	  IL_002c:  ldloc.2 
+	  IL_002d:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0032:  unbox.any [mscorlib]System.Collections.DictionaryEntry
+	  IL_0037:  stloc.1 
+	  IL_0038:  nop 
+	  IL_0039:  ldloca.s 1
+	  IL_003b:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
+	  IL_0040:  castclass NAnt.VSNet.Configuration
+	  IL_0045:  stloc.3 
+	  IL_0046:  ldloc.3 
+	  IL_0047:  callvirt instance string class NAnt.VSNet.Configuration::get_Name()
+	  IL_004c:  ldarg.1 
+	  IL_004d:  callvirt instance string class NAnt.VSNet.Configuration::get_Name()
+	  IL_0052:  ldc.i4.1 
+	  IL_0053:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_0058:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
+	  IL_005d:  brtrue IL_0075
 
-	IL_0019:  nop 
-	IL_001a:  ldarg.0 
-	IL_001b:  callvirt instance valuetype [System.Xml]System.Xml.XmlNodeType class [System.Xml]System.Xml.XmlReader::get_NodeType()
-	IL_0020:  ldc.i4.1 
-	IL_0021:  bne.un IL_0044
+	  IL_0062:  nop 
+	  IL_0063:  ldloca.s 1
+	  IL_0065:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
+	  IL_006a:  castclass NAnt.VSNet.ConfigurationBase
+	  IL_006f:  stloc.0 
+	  IL_0070:  leave IL_0081
 
-	IL_0026:  nop 
-	IL_0027:  ldarg.0 
-	IL_0028:  ldstr "ProjectGuid"
-	IL_002d:  callvirt instance bool class [System.Xml]System.Xml.XmlReader::MoveToAttribute(string)
-	IL_0032:  brfalse IL_0043
+	  IL_0075:  nop 
+	  IL_0076:  ldloc.2 
+	  IL_0077:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_007c:  brtrue IL_002c
 
-	IL_0037:  ldarg.0 
-	IL_0038:  callvirt instance string class [System.Xml]System.Xml.XmlReader::get_Value()
-	IL_003d:  stloc.0 
-	IL_003e:  br IL_006d
+	  IL_0081:  leave IL_009c
 
-	IL_0043:  nop 
-	IL_0044:  nop 
-	IL_0045:  ldarg.0 
-	IL_0046:  callvirt instance bool class [System.Xml]System.Xml.XmlReader::Read()
-	IL_004b:  brtrue IL_0019
+	} // end .try 0
+	finally  { // 0
+	  IL_0086:  ldloc.2 
+	  IL_0087:  isinst [mscorlib]System.IDisposable
+	  IL_008c:  dup 
+	  IL_008d:  stloc.s 4
+	  IL_008f:  brfalse IL_009b
 
-	IL_0050:  nop 
-	IL_0051:  nop 
-	IL_0052:  ldarg.0 
-	IL_0053:  callvirt instance bool class [System.Xml]System.Xml.XmlReader::Read()
-	IL_0058:  brtrue IL_0006
+	  IL_0094:  ldloc.s 4
+	  IL_0096:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_009b:  endfinally 
+	} // end handler 0
+	IL_009c:  nop 
+	IL_009d:  ldloc.0 
+	IL_009e:  stloc.s 5
+	IL_00a0:  br IL_00a5
 
-	IL_005d:  ldstr "Couldn't locate project GUID."
-	IL_0062:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0067:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_006c:  throw 
-	IL_006d:  ldloc.0 
-	IL_006e:  ret 
-    } // end of method ManagedProjectBase::LoadGuid
+	IL_00a5:  ldloc.s 5
+	IL_00a7:  ret 
+    } // end of method ConfigurationDictionary::get_Item
 
-    // method line 641
-    .method family static hidebysig 
-           default valuetype NAnt.VSNet.ProductVersion GetProductVersion (class [System.Xml]System.Xml.XmlNode projectNode)  cil managed 
+    // method line 690
+    .method public hidebysig specialname 
+           instance default void set_Item (class NAnt.VSNet.Configuration key, class NAnt.VSNet.ConfigurationBase 'value')  cil managed 
     {
-        // Method begins at RVA 0x114c0
-	// Code size 208 (0xd0)
-	.maxstack 3
+        // Method begins at RVA 0x1479c
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
+	IL_000e:  ret 
+    } // end of method ConfigurationDictionary::set_Item
+
+    // method line 691
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionary.get_Item (object key)  cil managed 
+    {
+        // Method begins at RVA 0x147ac
+	.override class [mscorlib]System.Collections.IDictionary::get_Item
+	// Code size 21 (0x15)
+	.maxstack 2
 	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		class [mscorlib]System.Version	V_1,
-		class [mscorlib]System.Exception	V_2,
-		int32	V_3,
-		valuetype NAnt.VSNet.ProductVersion	V_4)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0013
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass NAnt.VSNet.Configuration
+	IL_0008:  call instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "projectNode"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.0 
-	IL_0014:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0019:  ldstr "ProductVersion"
-	IL_001e:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0023:  stloc.0 
-	IL_0024:  ldloc.0 
-	IL_0025:  brtrue IL_003b
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ConfigurationDictionary::System.Collections.IDictionary.get_Item
 
-	IL_002a:  nop 
-	IL_002b:  ldstr "The \"ProductVersion\" attribute is missing from the project node."
-	IL_0030:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0035:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_003a:  throw 
-	IL_003b:  ldnull 
-	IL_003c:  stloc.1 
-	.try { // 0
-	  IL_003d:  nop 
-	  IL_003e:  ldloc.0 
-	  IL_003f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	  IL_0044:  newobj instance void class [mscorlib]System.Version::'.ctor'(string)
-	  IL_0049:  stloc.1 
-	  IL_004a:  nop 
-	  IL_004b:  leave IL_0073
+    // method line 692
+    .method private final virtual hidebysig newslot specialname 
+           instance default void System.Collections.IDictionary.set_Item (object key, object 'value')  cil managed 
+    {
+        // Method begins at RVA 0x147cd
+	.override class [mscorlib]System.Collections.IDictionary::set_Item
+	// Code size 20 (0x14)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  castclass NAnt.VSNet.Configuration
+	IL_0008:  ldarg.2 
+	IL_0009:  castclass NAnt.VSNet.ConfigurationBase
+	IL_000e:  call instance void class NAnt.VSNet.ConfigurationDictionary::set_Item(class NAnt.VSNet.Configuration, class NAnt.VSNet.ConfigurationBase)
+	IL_0013:  ret 
+    } // end of method ConfigurationDictionary::System.Collections.IDictionary.set_Item
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0050:  stloc.2 
-	  IL_0051:  nop 
-	  IL_0052:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0057:  ldstr "The value of the \"Version\" attribute ({0}) is not a valid version string."
-	  IL_005c:  ldloc.0 
-	  IL_005d:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	  IL_0062:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0067:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	  IL_006c:  ldloc.2 
-	  IL_006d:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_0072:  throw 
-	} // end handler 0
-	IL_0073:  ldloc.1 
-	IL_0074:  callvirt instance int32 class [mscorlib]System.Version::get_Major()
-	IL_0079:  ldc.i4.7 
-	IL_007a:  bne.un IL_00ad
+    // method line 693
+    .method public final virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.Collections.ICollection get_Values ()  cil managed 
+    {
+        // Method begins at RVA 0x147e4
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.ICollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Values()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_007f:  nop 
-	IL_0080:  ldloc.1 
-	IL_0081:  callvirt instance int32 class [mscorlib]System.Version::get_Minor()
-	IL_0086:  stloc.3 
-	IL_0087:  ldloc.3 
-	IL_0088:  brfalse IL_009a
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationDictionary::get_Values
 
-	IL_008d:  ldloc.3 
-	IL_008e:  ldc.i4.s 0x0a
-	IL_0090:  beq IL_00a3
+    // method line 694
+    .method public final virtual hidebysig newslot specialname 
+           instance default class [mscorlib]System.Collections.ICollection get_Keys ()  cil managed 
+    {
+        // Method begins at RVA 0x14804
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Collections.ICollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  callvirt instance class [mscorlib]System.Collections.ICollection class [mscorlib]System.Collections.Hashtable::get_Keys()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0095:  br IL_00ac
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationDictionary::get_Keys
 
-	IL_009a:  ldc.i4.s 0x46
-	IL_009c:  stloc.s 4
-	IL_009e:  br IL_00cd
+    // method line 695
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsFixedSize ()  cil managed 
+    {
+        // Method begins at RVA 0x14824
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsFixedSize()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_00a3:  ldc.i4.s 0x47
-	IL_00a5:  stloc.s 4
-	IL_00a7:  br IL_00cd
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationDictionary::get_IsFixedSize
 
-	IL_00ac:  nop 
-	IL_00ad:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00b2:  ldstr "Visual Studio version \"{0\" is not supported."
-	IL_00b7:  ldloc.1 
-	IL_00b8:  callvirt instance string object::ToString()
-	IL_00bd:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00c2:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_00c7:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_00cc:  throw 
-	IL_00cd:  ldloc.s 4
-	IL_00cf:  ret 
-    } // end of method ManagedProjectBase::GetProductVersion
+    // method line 696
+    .method private final virtual hidebysig newslot 
+           instance default void System.Collections.ICollection.CopyTo (class [mscorlib]System.Array 'array', int32 index)  cil managed 
+    {
+        // Method begins at RVA 0x14844
+	.override class [mscorlib]System.Collections.ICollection::CopyTo
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  ldarg.2 
+	IL_0009:  callvirt instance void class [mscorlib]System.Collections.Hashtable::CopyTo(class [mscorlib]System.Array, int32)
+	IL_000e:  ret 
+    } // end of method ConfigurationDictionary::System.Collections.ICollection.CopyTo
 
-    // method line 642
-    .method family static hidebysig 
-           default valuetype NAnt.VSNet.ProjectLocation GetProjectLocation (class [System.Xml]System.Xml.XmlNode projectNode)  cil managed 
+    // method line 697
+    .method public final virtual hidebysig newslot specialname 
+           instance default bool get_IsSynchronized ()  cil managed 
     {
-        // Method begins at RVA 0x115ac
-	// Code size 130 (0x82)
-	.maxstack 3
+        // Method begins at RVA 0x14854
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		valuetype NAnt.VSNet.ProjectLocation	V_1,
-		class [mscorlib]System.Exception	V_2)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0013
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::get_IsSynchronized()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0007:  nop 
-	IL_0008:  ldstr "projectNode"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.0 
-	IL_0014:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0019:  ldstr "ProjectType"
-	IL_001e:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0023:  stloc.0 
-	IL_0024:  ldloc.0 
-	IL_0025:  brtrue IL_003b
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationDictionary::get_IsSynchronized
 
-	IL_002a:  nop 
-	IL_002b:  ldstr "The \"ProjectType\" attribute is missing from the project node."
-	IL_0030:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0035:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_003a:  throw 
-	.try { // 0
-	  IL_003b:  nop 
-	  IL_003c:  ldtoken NAnt.VSNet.ProjectLocation
-	  IL_0041:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_0046:  ldloc.0 
-	  IL_0047:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	  IL_004c:  ldc.i4.1 
-	  IL_004d:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	  IL_0052:  unbox.any NAnt.VSNet.ProjectLocation
-	  IL_0057:  stloc.1 
-	  IL_0058:  leave IL_0080
+    // method line 698
+    .method public final virtual hidebysig newslot specialname 
+           instance default int32 get_Count ()  cil managed 
+    {
+        // Method begins at RVA 0x14874
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		int32	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  callvirt instance int32 class [mscorlib]System.Collections.Hashtable::get_Count()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_005d:  stloc.2 
-	  IL_005e:  nop 
-	  IL_005f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0064:  ldstr "The value of the \"ProjectType\" attribute ({0}) is not a valid location string."
-	  IL_0069:  ldloc.0 
-	  IL_006a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	  IL_006f:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0074:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	  IL_0079:  ldloc.2 
-	  IL_007a:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_007f:  throw 
-	} // end handler 0
-	IL_0080:  ldloc.1 
-	IL_0081:  ret 
-    } // end of method ManagedProjectBase::GetProjectLocation
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationDictionary::get_Count
 
-	.property instance class NAnt.VSNet.ProjectSettings ProjectSettings ()
+    // method line 699
+    .method public final virtual hidebysig newslot specialname 
+           instance default object get_SyncRoot ()  cil managed 
+    {
+        // Method begins at RVA 0x14894
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.Hashtable::get_SyncRoot()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationDictionary::get_SyncRoot
+
+    // method line 700
+    .method public hidebysig 
+           instance default bool ContainsKey (class NAnt.VSNet.Configuration key)  cil managed 
+    {
+        // Method begins at RVA 0x148b4
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsKey(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ConfigurationDictionary::ContainsKey
+
+    // method line 701
+    .method public hidebysig 
+           instance default bool ContainsValue (class NAnt.VSNet.ConfigurationBase 'value')  cil managed 
+    {
+        // Method begins at RVA 0x148d8
+	// Code size 21 (0x15)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::_innerHash
+	IL_0007:  ldarg.1 
+	IL_0008:  callvirt instance bool class [mscorlib]System.Collections.Hashtable::ContainsValue(object)
+	IL_000d:  stloc.0 
+	IL_000e:  br IL_0013
+
+	IL_0013:  ldloc.0 
+	IL_0014:  ret 
+    } // end of method ConfigurationDictionary::ContainsValue
+
+	.property instance object System.Collections.IDictionary.Item (object)
 	{
-		.get instance default class NAnt.VSNet.ProjectSettings NAnt.VSNet.ManagedProjectBase::get_ProjectSettings () 
+		.get instance default object NAnt.VSNet.ConfigurationDictionary::System.Collections.IDictionary.get_Item (object key) 
+		.set instance default void NAnt.VSNet.ConfigurationDictionary::System.Collections.IDictionary.set_Item (object key, object 'value') 
 	}
-	.property instance string FileExtension ()
+	.property instance class [mscorlib]System.Collections.Hashtable InnerHash ()
 	{
-		.get instance default string NAnt.VSNet.ManagedProjectBase::get_FileExtension () 
+		.get instance default class [mscorlib]System.Collections.Hashtable NAnt.VSNet.ConfigurationDictionary::get_InnerHash () 
 	}
-	.property instance bool IsWebProject ()
+	.property instance bool IsReadOnly ()
 	{
-		.get instance default bool NAnt.VSNet.ManagedProjectBase::get_IsWebProject () 
+		.get instance default bool NAnt.VSNet.ConfigurationDictionary::get_IsReadOnly () 
 	}
-	.property instance string Name ()
+	.property instance class NAnt.VSNet.ConfigurationBase Item (class NAnt.VSNet.Configuration)
 	{
-		.get instance default string NAnt.VSNet.ManagedProjectBase::get_Name () 
+		.get instance default class NAnt.VSNet.ConfigurationBase NAnt.VSNet.ConfigurationDictionary::get_Item (class NAnt.VSNet.Configuration key) 
+		.set instance default void NAnt.VSNet.ConfigurationDictionary::set_Item (class NAnt.VSNet.Configuration key, class NAnt.VSNet.ConfigurationBase 'value') 
 	}
-	.property instance string ProjectPath ()
+	.property instance class [mscorlib]System.Collections.ICollection Values ()
 	{
-		.get instance default string NAnt.VSNet.ManagedProjectBase::get_ProjectPath () 
+		.get instance default class [mscorlib]System.Collections.ICollection NAnt.VSNet.ConfigurationDictionary::get_Values () 
 	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo ProjectDirectory ()
+	.property instance class [mscorlib]System.Collections.ICollection Keys ()
 	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ManagedProjectBase::get_ProjectDirectory () 
+		.get instance default class [mscorlib]System.Collections.ICollection NAnt.VSNet.ConfigurationDictionary::get_Keys () 
 	}
-	.property instance valuetype NAnt.VSNet.ProjectLocation ProjectLocation ()
+	.property instance bool IsFixedSize ()
 	{
-		.get instance default valuetype NAnt.VSNet.ProjectLocation NAnt.VSNet.ManagedProjectBase::get_ProjectLocation () 
+		.get instance default bool NAnt.VSNet.ConfigurationDictionary::get_IsFixedSize () 
 	}
-	.property instance string Guid ()
+	.property instance bool IsSynchronized ()
 	{
-		.get instance default string NAnt.VSNet.ManagedProjectBase::get_Guid () 
-		.set instance default void NAnt.VSNet.ManagedProjectBase::set_Guid (string 'value') 
+		.get instance default bool NAnt.VSNet.ConfigurationDictionary::get_IsSynchronized () 
 	}
-	.property instance class [mscorlib]System.Collections.ArrayList References ()
+	.property instance int32 Count ()
 	{
-		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase::get_References () 
+		.get instance default int32 NAnt.VSNet.ConfigurationDictionary::get_Count () 
 	}
-  .class nested private auto ansi beforefieldinit LocalizedResourceSet
+	.property instance object SyncRoot ()
+	{
+		.get instance default object NAnt.VSNet.ConfigurationDictionary::get_SyncRoot () 
+	}
+  } // end of class NAnt.VSNet.ConfigurationDictionary
+}
+
+.namespace NAnt.VSNet
+{
+  .class public auto ansi beforefieldinit ConfigurationDictionaryEnumerator
   	extends [mscorlib]System.Object
-  {
-    .field  private initonly  class [mscorlib]System.Globalization.CultureInfo _culture
-    .field  private initonly  class [mscorlib]System.Collections.ArrayList _resources
+  	implements [mscorlib]System.Collections.IDictionaryEnumerator, [mscorlib]System.Collections.IEnumerator  {
+    .field  private initonly  class [mscorlib]System.Collections.IDictionaryEnumerator _innerEnumerator
 
-    // method line 643
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [mscorlib]System.Globalization.CultureInfo culture)  cil managed 
+    // method line 702
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.ConfigurationDictionary enumerable)  cil managed 
     {
-        // Method begins at RVA 0x1164c
-	// Code size 44 (0x2c)
+        // Method begins at RVA 0x148f9
+	// Code size 25 (0x19)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void object::'.ctor'()
 	IL_0006:  nop 
-	IL_0007:  ldarg.1 
-	IL_0008:  brtrue IL_0019
-
-	IL_000d:  nop 
-	IL_000e:  ldstr "culture"
-	IL_0013:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0018:  throw 
-	IL_0019:  ldarg.0 
-	IL_001a:  ldarg.1 
-	IL_001b:  stfld class [mscorlib]System.Globalization.CultureInfo NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::_culture
-	IL_0020:  ldarg.0 
-	IL_0021:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0026:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::_resources
-	IL_002b:  ret 
-    } // end of method LocalizedResourceSet::.ctor
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  callvirt instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ConfigurationDictionary::get_InnerHash()
+	IL_000e:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
+	IL_0013:  stfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationDictionaryEnumerator::_innerEnumerator
+	IL_0018:  ret 
+    } // end of method ConfigurationDictionaryEnumerator::.ctor
 
-    // method line 644
+    // method line 703
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Globalization.CultureInfo get_Culture ()  cil managed 
+           instance default class NAnt.VSNet.Configuration get_Key ()  cil managed 
+    {
+        // Method begins at RVA 0x14914
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.Configuration	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationDictionaryEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key()
+	IL_000c:  castclass NAnt.VSNet.Configuration
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ConfigurationDictionaryEnumerator::get_Key
+
+    // method line 704
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionaryEnumerator.get_Key ()  cil managed 
     {
-        // Method begins at RVA 0x1167c
+        // Method begins at RVA 0x1493c
+	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Key
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Globalization.CultureInfo	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Globalization.CultureInfo NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::_culture
+	IL_0002:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Key()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LocalizedResourceSet::get_Culture
+    } // end of method ConfigurationDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Key
 
-    // method line 645
+    // method line 705
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.Collections.ArrayList get_Resources ()  cil managed 
+           instance default class NAnt.VSNet.ConfigurationBase get_Value ()  cil managed 
+    {
+        // Method begins at RVA 0x14958
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.ConfigurationBase	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationDictionaryEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value()
+	IL_000c:  castclass NAnt.VSNet.ConfigurationBase
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method ConfigurationDictionaryEnumerator::get_Value
+
+    // method line 706
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IDictionaryEnumerator.get_Value ()  cil managed 
     {
-        // Method begins at RVA 0x11698
+        // Method begins at RVA 0x14980
+	.override class [mscorlib]System.Collections.IDictionaryEnumerator::get_Value
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.Collections.ArrayList	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::_resources
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Value()
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method LocalizedResourceSet::get_Resources
+    } // end of method ConfigurationDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value
 
-    // method line 646
-    .method public hidebysig 
-           instance default class [mscorlib]System.IO.DirectoryInfo GetBuildDirectory (class NAnt.VSNet.ConfigurationSettings projectConfig)  cil managed 
+    // method line 707
+    .method public final virtual hidebysig newslot specialname 
+           instance default valuetype [mscorlib]System.Collections.DictionaryEntry get_Entry ()  cil managed 
     {
-        // Method begins at RVA 0x116b4
-	// Code size 41 (0x29)
+        // Method begins at RVA 0x1499c
+	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
+		valuetype [mscorlib]System.Collections.DictionaryEntry	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
-	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance class [mscorlib]System.Globalization.CultureInfo class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::get_Culture()
-	IL_0012:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	IL_0017:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_001c:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0021:  stloc.0 
-	IL_0022:  br IL_0027
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Key()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Value()
+	IL_000d:  newobj instance void valuetype [mscorlib]System.Collections.DictionaryEntry::'.ctor'(object, object)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_0027:  ldloc.0 
-	IL_0028:  ret 
-    } // end of method LocalizedResourceSet::GetBuildDirectory
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ConfigurationDictionaryEnumerator::get_Entry
 
-    // method line 647
-    .method public hidebysig 
-           instance default class [mscorlib]System.IO.FileInfo GetSatelliteAssemblyPath (class NAnt.VSNet.ConfigurationSettings projectConfig, class NAnt.VSNet.ProjectSettings projectSettings)  cil managed 
+    // method line 708
+    .method public final virtual hidebysig newslot 
+           instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x116ec
-	// Code size 40 (0x28)
-	.maxstack 3
+        // Method begins at RVA 0x149c2
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationDictionaryEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method ConfigurationDictionaryEnumerator::Reset
+
+    // method line 709
+    .method public final virtual hidebysig newslot 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x149d0
+	// Code size 20 (0x14)
+	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0,
-		class [mscorlib]System.IO.FileInfo	V_1)
+		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::GetBuildDirectory(class NAnt.VSNet.ConfigurationSettings)
-	IL_0008:  stloc.0 
-	IL_0009:  ldloc.0 
-	IL_000a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_000f:  ldarg.0 
-	IL_0010:  ldarg.2 
-	IL_0011:  call instance string class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::GetSatelliteFileName(class NAnt.VSNet.ProjectSettings)
-	IL_0016:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_001b:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0020:  stloc.1 
-	IL_0021:  br IL_0026
+	IL_0002:  ldfld class [mscorlib]System.Collections.IDictionaryEnumerator NAnt.VSNet.ConfigurationDictionaryEnumerator::_innerEnumerator
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
 
-	IL_0026:  ldloc.1 
-	IL_0027:  ret 
-    } // end of method LocalizedResourceSet::GetSatelliteAssemblyPath
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method ConfigurationDictionaryEnumerator::MoveNext
 
-    // method line 648
-    .method public hidebysig 
-           instance default string GetRelativePath (class NAnt.VSNet.ProjectSettings projectSettings)  cil managed 
+    // method line 710
+    .method private final virtual hidebysig newslot specialname 
+           instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x11720
-	// Code size 32 (0x20)
-	.maxstack 3
+        // Method begins at RVA 0x149f0
+	.override class [mscorlib]System.Collections.IEnumerator::get_Current
+	// Code size 15 (0xf)
+	.maxstack 1
 	.locals init (
-		string	V_0)
+		object	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.Globalization.CultureInfo class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::get_Culture()
-	IL_0007:  callvirt instance string class [mscorlib]System.Globalization.CultureInfo::get_Name()
-	IL_000c:  ldarg.0 
-	IL_000d:  ldarg.1 
-	IL_000e:  call instance string class NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::GetSatelliteFileName(class NAnt.VSNet.ProjectSettings)
-	IL_0013:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_001e
+	IL_0002:  call instance class NAnt.VSNet.ConfigurationDictionaryEntry class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Current()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
 
-	IL_001e:  ldloc.0 
-	IL_001f:  ret 
-    } // end of method LocalizedResourceSet::GetRelativePath
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationDictionaryEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 649
-    .method private hidebysig 
-           instance default string GetSatelliteFileName (class NAnt.VSNet.ProjectSettings projectSettings)  cil managed 
+    // method line 711
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ConfigurationDictionaryEntry get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x1174c
-	// Code size 30 (0x1e)
-	.maxstack 3
+        // Method begins at RVA 0x14a0c
+	// Code size 26 (0x1a)
+	.maxstack 2
 	.locals init (
-		string	V_0)
+		class NAnt.VSNet.ConfigurationDictionaryEntry	V_0)
 	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0006:  ldstr "{0}.resources.dll"
-	IL_000b:  ldarg.1 
-	IL_000c:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_AssemblyName()
-	IL_0011:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0016:  stloc.0 
-	IL_0017:  br IL_001c
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class NAnt.VSNet.Configuration class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Key()
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Value()
+	IL_000d:  newobj instance void class NAnt.VSNet.ConfigurationDictionaryEntry::'.ctor'(class NAnt.VSNet.Configuration, class NAnt.VSNet.ConfigurationBase)
+	IL_0012:  stloc.0 
+	IL_0013:  br IL_0018
 
-	IL_001c:  ldloc.0 
-	IL_001d:  ret 
-    } // end of method LocalizedResourceSet::GetSatelliteFileName
+	IL_0018:  ldloc.0 
+	IL_0019:  ret 
+    } // end of method ConfigurationDictionaryEnumerator::get_Current
 
-	.property instance class [mscorlib]System.Globalization.CultureInfo Culture ()
+	.property instance object System.Collections.IDictionaryEnumerator.Key ()
 	{
-		.get instance default class [mscorlib]System.Globalization.CultureInfo NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::get_Culture () 
+		.get instance default object NAnt.VSNet.ConfigurationDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Key () 
 	}
-	.property instance class [mscorlib]System.Collections.ArrayList Resources ()
+	.property instance object System.Collections.IDictionaryEnumerator.Value ()
 	{
-		.get instance default class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ManagedProjectBase/LocalizedResourceSet::get_Resources () 
+		.get instance default object NAnt.VSNet.ConfigurationDictionaryEnumerator::System.Collections.IDictionaryEnumerator.get_Value () 
 	}
-  } // end of class LocalizedResourceSet
-
-  } // end of class NAnt.VSNet.ManagedProjectBase
+	.property instance object System.Collections.IEnumerator.Current ()
+	{
+		.get instance default object NAnt.VSNet.ConfigurationDictionaryEnumerator::System.Collections.IEnumerator.get_Current () 
+	}
+	.property instance class NAnt.VSNet.Configuration Key ()
+	{
+		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Key () 
+	}
+	.property instance class NAnt.VSNet.ConfigurationBase Value ()
+	{
+		.get instance default class NAnt.VSNet.ConfigurationBase NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Value () 
+	}
+	.property instance valuetype [mscorlib]System.Collections.DictionaryEntry Entry ()
+	{
+		.get instance default valuetype [mscorlib]System.Collections.DictionaryEntry NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Entry () 
+	}
+	.property instance class NAnt.VSNet.ConfigurationDictionaryEntry Current ()
+	{
+		.get instance default class NAnt.VSNet.ConfigurationDictionaryEntry NAnt.VSNet.ConfigurationDictionaryEnumerator::get_Current () 
+	}
+  } // end of class NAnt.VSNet.ConfigurationDictionaryEnumerator
 }
 
 .namespace NAnt.VSNet
 {
-  .class public auto ansi sealed ManagedOutputType
-  	extends [mscorlib]System.Enum
+  .class public auto ansi sealed beforefieldinit ConfigurationDictionaryEntry
+  	extends [mscorlib]System.Object
   {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.VSNet.ManagedOutputType Library = int32(0x00000001)
-    .field public static literal  valuetype NAnt.VSNet.ManagedOutputType Executable = int32(0x00000002)
-    .field public static literal  valuetype NAnt.VSNet.ManagedOutputType WindowsExecutable = int32(0x00000003)
+    .field  private initonly  class NAnt.VSNet.Configuration _name
+    .field  private initonly  class NAnt.VSNet.ConfigurationBase _config
 
-  } // end of class NAnt.VSNet.ManagedOutputType
+    // method line 712
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.VSNet.Configuration name, class NAnt.VSNet.ConfigurationBase config)  cil managed 
+    {
+        // Method begins at RVA 0x14a32
+	// Code size 22 (0x16)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationDictionaryEntry::_name
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.2 
+	IL_0010:  stfld class NAnt.VSNet.ConfigurationBase NAnt.VSNet.ConfigurationDictionaryEntry::_config
+	IL_0015:  ret 
+    } // end of method ConfigurationDictionaryEntry::.ctor
+
+    // method line 713
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.Configuration get_Name ()  cil managed 
+    {
+        // Method begins at RVA 0x14a4c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.Configuration	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationDictionaryEntry::_name
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationDictionaryEntry::get_Name
+
+    // method line 714
+    .method public hidebysig specialname 
+           instance default class NAnt.VSNet.ConfigurationBase get_Config ()  cil managed 
+    {
+        // Method begins at RVA 0x14a68
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class NAnt.VSNet.ConfigurationBase	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class NAnt.VSNet.ConfigurationBase NAnt.VSNet.ConfigurationDictionaryEntry::_config
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ConfigurationDictionaryEntry::get_Config
+
+	.property instance class NAnt.VSNet.Configuration Name ()
+	{
+		.get instance default class NAnt.VSNet.Configuration NAnt.VSNet.ConfigurationDictionaryEntry::get_Name () 
+	}
+	.property instance class NAnt.VSNet.ConfigurationBase Config ()
+	{
+		.get instance default class NAnt.VSNet.ConfigurationBase NAnt.VSNet.ConfigurationDictionaryEntry::get_Config () 
+	}
+  } // end of class NAnt.VSNet.ConfigurationDictionaryEntry
 }
 
 .namespace NAnt.VSNet
@@ -33873,11 +36960,11 @@
     .field  private  string _name
     .field  private  string _platform
 
-    // method line 650
+    // method line 715
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x13868
+        // Method begins at RVA 0x14a83
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -33886,11 +36973,11 @@
 	IL_0007:  ret 
     } // end of method Configuration::.ctor
 
-    // method line 651
+    // method line 716
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (string name, string platform)  cil managed 
     {
-        // Method begins at RVA 0x13871
+        // Method begins at RVA 0x14a8c
 	// Code size 39 (0x27)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -33911,11 +36998,11 @@
 	IL_0026:  ret 
     } // end of method Configuration::.ctor
 
-    // method line 652
+    // method line 717
     .method public hidebysig specialname 
            instance default string get_Name ()  cil managed 
     {
-        // Method begins at RVA 0x1389c
+        // Method begins at RVA 0x14ab4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -33930,11 +37017,11 @@
 	IL_000e:  ret 
     } // end of method Configuration::get_Name
 
-    // method line 653
+    // method line 718
     .method public hidebysig specialname 
            instance default void set_Name (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x138b7
+        // Method begins at RVA 0x14acf
 	// Code size 26 (0x1a)
 	.maxstack 8
 	IL_0000:  nop 
@@ -33950,11 +37037,11 @@
 	IL_0019:  ret 
     } // end of method Configuration::set_Name
 
-    // method line 654
+    // method line 719
     .method public hidebysig specialname 
            instance default string get_Platform ()  cil managed 
     {
-        // Method begins at RVA 0x138d4
+        // Method begins at RVA 0x14aec
 	// Code size 37 (0x25)
 	.maxstack 1
 	.locals init (
@@ -33977,11 +37064,11 @@
 	IL_0024:  ret 
     } // end of method Configuration::get_Platform
 
-    // method line 655
+    // method line 720
     .method public hidebysig specialname 
            instance default void set_Platform (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x13905
+        // Method begins at RVA 0x14b1d
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -33991,11 +37078,11 @@
 	IL_0008:  ret 
     } // end of method Configuration::set_Platform
 
-    // method line 656
+    // method line 721
     .method public final virtual hidebysig newslot 
            instance default int32 CompareTo (object obj)  cil managed 
     {
-        // Method begins at RVA 0x13910
+        // Method begins at RVA 0x14b28
 	// Code size 29 (0x1d)
 	.maxstack 2
 	.locals init (
@@ -34018,11 +37105,11 @@
 	IL_001c:  ret 
     } // end of method Configuration::CompareTo
 
-    // method line 657
+    // method line 722
     .method public virtual hidebysig 
            instance default bool Equals (object obj)  cil managed 
     {
-        // Method begins at RVA 0x1393c
+        // Method begins at RVA 0x14b54
 	// Code size 105 (0x69)
 	.maxstack 4
 	.locals init (
@@ -34076,11 +37163,11 @@
 	IL_0068:  ret 
     } // end of method Configuration::Equals
 
-    // method line 658
+    // method line 723
     .method public virtual hidebysig 
            instance default int32 GetHashCode ()  cil managed 
     {
-        // Method begins at RVA 0x139b4
+        // Method begins at RVA 0x14bcc
 	// Code size 52 (0x34)
 	.maxstack 3
 	.locals init (
@@ -34104,11 +37191,11 @@
 	IL_0033:  ret 
     } // end of method Configuration::GetHashCode
 
-    // method line 659
+    // method line 724
     .method public virtual hidebysig 
            instance default string ToString ()  cil managed 
     {
-        // Method begins at RVA 0x139f4
+        // Method begins at RVA 0x14c0c
 	// Code size 60 (0x3c)
 	.maxstack 3
 	.locals init (
@@ -34138,11 +37225,11 @@
 	IL_003b:  ret 
     } // end of method Configuration::ToString
 
-    // method line 660
+    // method line 725
     .method public static hidebysig specialname 
            default bool op_Equality (class NAnt.VSNet.Configuration c1, class NAnt.VSNet.Configuration c2)  cil managed 
     {
-        // Method begins at RVA 0x13a3c
+        // Method begins at RVA 0x14c54
 	// Code size 33 (0x21)
 	.maxstack 2
 	.locals init (
@@ -34168,11 +37255,11 @@
 	IL_0020:  ret 
     } // end of method Configuration::op_Equality
 
-    // method line 661
+    // method line 726
     .method public static hidebysig specialname 
            default bool op_Inequality (class NAnt.VSNet.Configuration c1, class NAnt.VSNet.Configuration c2)  cil managed 
     {
-        // Method begins at RVA 0x13a6c
+        // Method begins at RVA 0x14c84
 	// Code size 19 (0x13)
 	.maxstack 2
 	.locals init (
@@ -34190,11 +37277,11 @@
 	IL_0012:  ret 
     } // end of method Configuration::op_Inequality
 
-    // method line 662
+    // method line 727
     .method public static hidebysig 
            default class NAnt.VSNet.Configuration Parse (string config)  cil managed 
     {
-        // Method begins at RVA 0x13a8c
+        // Method begins at RVA 0x14ca4
 	// Code size 95 (0x5f)
 	.maxstack 4
 	.locals init (
@@ -34259,3090 +37346,3 @@
   } // end of class NAnt.VSNet.Configuration
 }
 
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit ConfigurationSettings
-  	extends NAnt.VSNet.ConfigurationBase
-  {
-    .field  private initonly  class [mscorlib]System.Collections.ArrayList _settings
-    .field  private initonly  string _relativeOutputDir
-    .field  private initonly  class [mscorlib]System.IO.DirectoryInfo _outputDir
-    .field  private initonly  string _name
-    .field  private initonly  bool _registerForComInterop
-
-    // method line 663
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.ManagedProjectBase project, class [System.Xml]System.Xml.XmlElement elemConfig, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
-    {
-        // Method begins at RVA 0x13af8
-	// Code size 1409 (0x581)
-	.maxstack 7
-	.locals init (
-		char	V_0,
-		char	V_1,
-		string	V_2,
-		string	V_3,
-		class [mscorlib]System.Collections.Hashtable	V_4,
-		class [mscorlib]System.Collections.Hashtable	V_5,
-		valuetype NAnt.VSNet.ProjectType	V_6,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_7,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_8,
-		string	V_9,
-		string	V_10,
-		unsigned int32	V_11,
-		class [mscorlib]System.IDisposable	V_12,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_13,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_14,
-		string	V_15,
-		string	V_16,
-		class [mscorlib]System.IDisposable	V_17)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  call instance void class NAnt.VSNet.ConfigurationBase::'.ctor'(class NAnt.VSNet.ProjectBase)
-	IL_0007:  nop 
-	IL_0008:  ldarg.0 
-	IL_0009:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_000e:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ConfigurationSettings::_settings
-	IL_0013:  ldarg.3 
-	IL_0014:  brtrue IL_009b
-
-	IL_0019:  nop 
-	IL_001a:  ldarg.0 
-	IL_001b:  ldarg.2 
-	IL_001c:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0021:  ldstr "OutputPath"
-	IL_0026:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_002b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_0030:  stfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
-	IL_0035:  ldarg.0 
-	IL_0036:  ldfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
-	IL_003b:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_0040:  stloc.0 
-	IL_0041:  ldloca.s 0
-	IL_0043:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0048:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
-	IL_004d:  callvirt instance bool string::EndsWith(string)
-	IL_0052:  brtrue IL_0074
-
-	IL_0057:  nop 
-	IL_0058:  ldarg.0 
-	IL_0059:  ldarg.0 
-	IL_005a:  ldfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
-	IL_005f:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_0064:  box [mscorlib]System.Char
-	IL_0069:  call string string::Concat(object, object)
-	IL_006e:  stfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
-	IL_0073:  nop 
-	IL_0074:  ldarg.0 
-	IL_0075:  ldarg.1 
-	IL_0076:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_007b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0080:  ldarg.0 
-	IL_0081:  ldfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
-	IL_0086:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_008b:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0090:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ConfigurationSettings::_outputDir
-	IL_0095:  nop 
-	IL_0096:  br IL_00ef
-
-	IL_009b:  nop 
-	IL_009c:  ldarg.0 
-	IL_009d:  ldarg.3 
-	IL_009e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00a3:  stfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
-	IL_00a8:  ldarg.0 
-	IL_00a9:  ldfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
-	IL_00ae:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_00b3:  stloc.1 
-	IL_00b4:  ldloca.s 1
-	IL_00b6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00bb:  call instance string char::ToString(class [mscorlib]System.IFormatProvider)
-	IL_00c0:  callvirt instance bool string::EndsWith(string)
-	IL_00c5:  brtrue IL_00e7
-
-	IL_00ca:  nop 
-	IL_00cb:  ldarg.0 
-	IL_00cc:  ldarg.0 
-	IL_00cd:  ldfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
-	IL_00d2:  ldsfld char [mscorlib]System.IO.Path::DirectorySeparatorChar
-	IL_00d7:  box [mscorlib]System.Char
-	IL_00dc:  call string string::Concat(object, object)
-	IL_00e1:  stfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
-	IL_00e6:  nop 
-	IL_00e7:  ldarg.0 
-	IL_00e8:  ldarg.3 
-	IL_00e9:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ConfigurationSettings::_outputDir
-	IL_00ee:  nop 
-	IL_00ef:  ldarg.0 
-	IL_00f0:  ldarg.2 
-	IL_00f1:  ldstr "Name"
-	IL_00f6:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_00fb:  stfld string NAnt.VSNet.ConfigurationSettings::_name
-	IL_0100:  ldarg.2 
-	IL_0101:  ldstr "DocumentationFile"
-	IL_0106:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_010b:  stloc.2 
-	IL_010c:  ldloc.2 
-	IL_010d:  call bool string::IsNullOrEmpty(string)
-	IL_0112:  brtrue IL_0177
-
-	IL_0117:  nop 
-	IL_0118:  ldarg.1 
-	IL_0119:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_011e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0123:  ldloc.2 
-	IL_0124:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0129:  stloc.3 
-	IL_012a:  ldarg.0 
-	IL_012b:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ConfigurationSettings::_settings
-	IL_0130:  ldstr "/doc:\""
-	IL_0135:  ldloc.3 
-	IL_0136:  ldstr "\""
-	IL_013b:  call string string::Concat(string, string, string)
-	IL_0140:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_0145:  pop 
-	IL_0146:  ldloc.3 
-	IL_0147:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_014c:  call bool class [mscorlib]System.IO.Directory::Exists(string)
-	IL_0151:  brtrue IL_0164
-
-	IL_0156:  nop 
-	IL_0157:  ldloc.3 
-	IL_0158:  call string class [mscorlib]System.IO.Path::GetDirectoryName(string)
-	IL_015d:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	IL_0162:  pop 
-	IL_0163:  nop 
-	IL_0164:  ldarg.0 
-	IL_0165:  call instance class [mscorlib]System.Collections.Hashtable class NAnt.VSNet.ConfigurationBase::get_ExtraOutputFiles()
-	IL_016a:  ldloc.3 
-	IL_016b:  ldloc.3 
-	IL_016c:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_0171:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0176:  nop 
-	IL_0177:  ldarg.0 
-	IL_0178:  ldarg.2 
-	IL_0179:  ldstr "RegisterForComInterop"
-	IL_017e:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_0183:  ldstr "true"
-	IL_0188:  ldc.i4.1 
-	IL_0189:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_018e:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	IL_0193:  ldc.i4.0 
-	IL_0194:  ceq 
-	IL_0196:  stfld bool NAnt.VSNet.ConfigurationSettings::_registerForComInterop
-	IL_019b:  ldarg.0 
-	IL_019c:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
-	IL_01a1:  ldc.i4 1000
-	IL_01a6:  ldstr "Project: {0} Relative Output Path: {1} Output Path: {2} Documentation Path: {3}"
-	IL_01ab:  ldc.i4.4 
-	IL_01ac:  newarr [mscorlib]System.Object
-	IL_01b1:  dup 
-	IL_01b2:  ldc.i4.0 
-	IL_01b3:  ldarg.0 
-	IL_01b4:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_01b9:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_01be:  stelem.ref 
-	IL_01bf:  dup 
-	IL_01c0:  ldc.i4.1 
-	IL_01c1:  ldarg.0 
-	IL_01c2:  ldfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
-	IL_01c7:  stelem.ref 
-	IL_01c8:  dup 
-	IL_01c9:  ldc.i4.2 
-	IL_01ca:  ldarg.0 
-	IL_01cb:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ConfigurationSettings::_outputDir
-	IL_01d0:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_01d5:  stelem.ref 
-	IL_01d6:  dup 
-	IL_01d7:  ldc.i4.3 
-	IL_01d8:  ldloc.2 
-	IL_01d9:  stelem.ref 
-	IL_01da:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_01df:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_01e4:  stloc.s 4
-	IL_01e6:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_01eb:  stloc.s 5
-	IL_01ed:  ldloc.s 4
-	IL_01ef:  ldstr "BaseAddress"
-	IL_01f4:  ldstr "/baseaddress:{0}"
-	IL_01f9:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_01fe:  ldloc.s 4
-	IL_0200:  ldstr "FileAlignment"
-	IL_0205:  ldstr "/filealign:{0}"
-	IL_020a:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_020f:  ldloc.s 4
-	IL_0211:  ldstr "DefineConstants"
-	IL_0216:  ldstr "/define:{0}"
-	IL_021b:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0220:  ldarg.1 
-	IL_0221:  callvirt instance valuetype NAnt.VSNet.ProjectType class NAnt.VSNet.ProjectBase::get_Type()
-	IL_0226:  stloc.s 6
-	IL_0228:  ldloc.s 6
-	IL_022a:  ldc.i4.1 
-	IL_022b:  beq IL_0244
-
-	IL_0230:  ldloc.s 6
-	IL_0232:  ldc.i4.3 
-	IL_0233:  beq IL_029e
-
-	IL_0238:  ldloc.s 6
-	IL_023a:  brfalse IL_02d6
-
-	IL_023f:  br IL_030e
-
-	IL_0244:  ldloc.s 4
-	IL_0246:  ldstr "WarningLevel"
-	IL_024b:  ldstr "/warn:{0}"
-	IL_0250:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0255:  ldloc.s 4
-	IL_0257:  ldstr "NoWarn"
-	IL_025c:  ldstr "/nowarn:{0}"
-	IL_0261:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0266:  ldloc.s 5
-	IL_0268:  ldstr "IncrementalBuild"
-	IL_026d:  ldstr "/incremental"
-	IL_0272:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0277:  ldloc.s 5
-	IL_0279:  ldstr "AllowUnsafeBlocks"
-	IL_027e:  ldstr "/unsafe"
-	IL_0283:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0288:  ldloc.s 5
-	IL_028a:  ldstr "CheckForOverflowUnderflow"
-	IL_028f:  ldstr "/checked"
-	IL_0294:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0299:  br IL_030e
-
-	IL_029e:  ldloc.s 4
-	IL_02a0:  ldstr "WarningLevel"
-	IL_02a5:  ldstr "/warn:{0}"
-	IL_02aa:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_02af:  ldloc.s 4
-	IL_02b1:  ldstr "NoWarn"
-	IL_02b6:  ldstr "/nowarn:{0}"
-	IL_02bb:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_02c0:  ldloc.s 5
-	IL_02c2:  ldstr "IncrementalBuild"
-	IL_02c7:  ldstr "/incremental"
-	IL_02cc:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_02d1:  br IL_030e
-
-	IL_02d6:  ldloc.s 4
-	IL_02d8:  ldstr "DefineDebug"
-	IL_02dd:  ldstr "/d:DEBUG={0}"
-	IL_02e2:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_02e7:  ldloc.s 4
-	IL_02e9:  ldstr "DefineTrace"
-	IL_02ee:  ldstr "/d:TRACE={0}"
-	IL_02f3:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_02f8:  ldloc.s 5
-	IL_02fa:  ldstr "RemoveIntegerChecks"
-	IL_02ff:  ldstr "/removeintchecks"
-	IL_0304:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0309:  br IL_030e
-
-	IL_030e:  ldloc.s 5
-	IL_0310:  ldstr "DebugSymbols"
-	IL_0315:  ldstr "/debug"
-	IL_031a:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_031f:  ldloc.s 5
-	IL_0321:  ldstr "TreatWarningsAsErrors"
-	IL_0326:  ldstr "/warnaserror"
-	IL_032b:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0330:  ldloc.s 5
-	IL_0332:  ldstr "Optimize"
-	IL_0337:  ldstr "/optimize"
-	IL_033c:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_0341:  nop 
-	IL_0342:  ldloc.s 4
-	IL_0344:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_0349:  stloc.s 8
-	.try { // 0
-	  IL_034b:  br IL_042a
-
-	  IL_0350:  ldloc.s 8
-	  IL_0352:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0357:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_035c:  stloc.s 7
-	  IL_035e:  nop 
-	  IL_035f:  ldloca.s 7
-	  IL_0361:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_0366:  callvirt instance string object::ToString()
-	  IL_036b:  stloc.s 9
-	  IL_036d:  ldarg.2 
-	  IL_036e:  ldloca.s 7
-	  IL_0370:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_0375:  callvirt instance string object::ToString()
-	  IL_037a:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	  IL_037f:  stloc.s 10
-	  IL_0381:  ldloc.s 10
-	  IL_0383:  call bool string::IsNullOrEmpty(string)
-	  IL_0388:  brtrue IL_0429
-
-	  IL_038d:  nop 
-	  IL_038e:  ldloc.s 9
-	  IL_0390:  brfalse IL_0404
-
-	  IL_0395:  ldloc.s 9
-	  IL_0397:  ldstr "BaseAddress"
-	  IL_039c:  call bool string::op_Equality(string, string)
-	  IL_03a1:  brtrue IL_03bc
-
-	  IL_03a6:  ldloc.s 9
-	  IL_03a8:  ldstr "DefineConstants"
-	  IL_03ad:  call bool string::op_Equality(string, string)
-	  IL_03b2:  brtrue IL_03ec
-
-	  IL_03b7:  br IL_0404
-
-	  IL_03bc:  ldloc.s 10
-	  IL_03be:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_03c3:  call unsigned int32 class [mscorlib]System.Convert::ToUInt32(string, class [mscorlib]System.IFormatProvider)
-	  IL_03c8:  stloc.s 11
-	  IL_03ca:  ldstr "0x"
-	  IL_03cf:  ldloca.s 11
-	  IL_03d1:  ldstr "x"
-	  IL_03d6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_03db:  call instance string unsigned int32::ToString(string, class [mscorlib]System.IFormatProvider)
-	  IL_03e0:  call string string::Concat(string, string)
-	  IL_03e5:  stloc.s 10
-	  IL_03e7:  leave IL_0404
-
-	  IL_03ec:  ldloc.s 10
-	  IL_03ee:  ldstr " "
-	  IL_03f3:  ldsfld string [mscorlib]System.String::Empty
-	  IL_03f8:  callvirt instance string string::Replace(string, string)
-	  IL_03fd:  stloc.s 10
-	  IL_03ff:  leave IL_0404
-
-	  IL_0404:  ldarg.0 
-	  IL_0405:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ConfigurationSettings::_settings
-	  IL_040a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_040f:  ldloca.s 7
-	  IL_0411:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_0416:  callvirt instance string object::ToString()
-	  IL_041b:  ldloc.s 10
-	  IL_041d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0422:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0427:  pop 
-	  IL_0428:  nop 
-	  IL_0429:  nop 
-	  IL_042a:  ldloc.s 8
-	  IL_042c:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0431:  brtrue IL_0350
-
-	  IL_0436:  leave IL_0452
-
-	} // end .try 0
-	finally  { // 0
-	  IL_043b:  ldloc.s 8
-	  IL_043d:  isinst [mscorlib]System.IDisposable
-	  IL_0442:  dup 
-	  IL_0443:  stloc.s 12
-	  IL_0445:  brfalse IL_0451
-
-	  IL_044a:  ldloc.s 12
-	  IL_044c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0451:  endfinally 
-	} // end handler 0
-	IL_0452:  nop 
-	IL_0453:  ldloc.s 5
-	IL_0455:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_045a:  stloc.s 14
-	.try { // 1
-	  IL_045c:  br IL_0537
-
-	  IL_0461:  ldloc.s 14
-	  IL_0463:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0468:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_046d:  stloc.s 13
-	  IL_046f:  nop 
-	  IL_0470:  ldloca.s 13
-	  IL_0472:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_0477:  callvirt instance string object::ToString()
-	  IL_047c:  stloc.s 15
-	  IL_047e:  ldloc.s 15
-	  IL_0480:  brfalse IL_04b1
-
-	  IL_0485:  ldloc.s 15
-	  IL_0487:  ldstr "IncrementalBuild"
-	  IL_048c:  call bool string::op_Equality(string, string)
-	  IL_0491:  brtrue IL_049b
-
-	  IL_0496:  br IL_04b1
-
-	  IL_049b:  ldarg.0 
-	  IL_049c:  call instance bool class NAnt.VSNet.ConfigurationSettings::get_IncrementalBuildSupported()
-	  IL_04a1:  brtrue IL_04ac
-
-	  IL_04a6:  nop 
-	  IL_04a7:  leave IL_0537
-
-	  IL_04ac:  leave IL_04b1
-
-	  IL_04b1:  ldarg.2 
-	  IL_04b2:  ldloc.s 15
-	  IL_04b4:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	  IL_04b9:  stloc.s 16
-	  IL_04bb:  ldloc.s 16
-	  IL_04bd:  ldstr "true"
-	  IL_04c2:  ldc.i4.1 
-	  IL_04c3:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_04c8:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	  IL_04cd:  brtrue IL_04fb
-
-	  IL_04d2:  nop 
-	  IL_04d3:  ldarg.0 
-	  IL_04d4:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ConfigurationSettings::_settings
-	  IL_04d9:  ldloca.s 13
-	  IL_04db:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_04e0:  callvirt instance string object::ToString()
-	  IL_04e5:  ldstr "+"
-	  IL_04ea:  call string string::Concat(string, string)
-	  IL_04ef:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_04f4:  pop 
-	  IL_04f5:  nop 
-	  IL_04f6:  br IL_0536
-
-	  IL_04fb:  ldloc.s 16
-	  IL_04fd:  ldstr "false"
-	  IL_0502:  ldc.i4.1 
-	  IL_0503:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0508:  call int32 string::Compare(string, string, bool, class [mscorlib]System.Globalization.CultureInfo)
-	  IL_050d:  brtrue IL_0536
-
-	  IL_0512:  nop 
-	  IL_0513:  ldarg.0 
-	  IL_0514:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ConfigurationSettings::_settings
-	  IL_0519:  ldloca.s 13
-	  IL_051b:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_0520:  callvirt instance string object::ToString()
-	  IL_0525:  ldstr "-"
-	  IL_052a:  call string string::Concat(string, string)
-	  IL_052f:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0534:  pop 
-	  IL_0535:  nop 
-	  IL_0536:  nop 
-	  IL_0537:  ldloc.s 14
-	  IL_0539:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_053e:  brtrue IL_0461
-
-	  IL_0543:  leave IL_055f
-
-	} // end .try 1
-	finally  { // 1
-	  IL_0548:  ldloc.s 14
-	  IL_054a:  isinst [mscorlib]System.IDisposable
-	  IL_054f:  dup 
-	  IL_0550:  stloc.s 17
-	  IL_0552:  brfalse IL_055e
-
-	  IL_0557:  ldloc.s 17
-	  IL_0559:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_055e:  endfinally 
-	} // end handler 1
-	IL_055f:  ldarg.0 
-	IL_0560:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ConfigurationSettings::_settings
-	IL_0565:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_056a:  ldstr "/out:\"{0}\""
-	IL_056f:  ldarg.0 
-	IL_0570:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_BuildPath()
-	IL_0575:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_057a:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_057f:  pop 
-	IL_0580:  ret 
-    } // end of method ConfigurationSettings::.ctor
-
-    // method line 664
-    .method public virtual hidebysig specialname 
-           instance default string get_PlatformName ()  cil managed 
-    {
-        // Method begins at RVA 0x140a4
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldstr ".NET"
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method ConfigurationSettings::get_PlatformName
-
-    // method line 665
-    .method public virtual hidebysig specialname 
-           instance default string get_RelativeOutputDir ()  cil managed 
-    {
-        // Method begins at RVA 0x140c0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ConfigurationSettings::_relativeOutputDir
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationSettings::get_RelativeOutputDir
-
-    // method line 666
-    .method public virtual hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
-    {
-        // Method begins at RVA 0x140dc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ConfigurationSettings::_outputDir
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationSettings::get_OutputDir
-
-    // method line 667
-    .method public virtual hidebysig specialname 
-           instance default string get_OutputPath ()  cil managed 
-    {
-        // Method begins at RVA 0x140f8
-	// Code size 46 (0x2e)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ConfigurationBase::get_Project()
-	IL_0012:  castclass NAnt.VSNet.ManagedProjectBase
-	IL_0017:  callvirt instance class NAnt.VSNet.ProjectSettings class NAnt.VSNet.ManagedProjectBase::get_ProjectSettings()
-	IL_001c:  callvirt instance string class NAnt.VSNet.ProjectSettings::get_OutputFileName()
-	IL_0021:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0026:  stloc.0 
-	IL_0027:  br IL_002c
-
-	IL_002c:  ldloc.0 
-	IL_002d:  ret 
-    } // end of method ConfigurationSettings::get_OutputPath
-
-    // method line 668
-    .method public virtual hidebysig specialname 
-           instance default string get_BuildPath ()  cil managed 
-    {
-        // Method begins at RVA 0x14134
-	// Code size 36 (0x24)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_ObjectDir()
-	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_000c:  ldarg.0 
-	IL_000d:  callvirt instance string class NAnt.VSNet.ConfigurationBase::get_OutputPath()
-	IL_0012:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_0017:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_001c:  stloc.0 
-	IL_001d:  br IL_0022
-
-	IL_0022:  ldloc.0 
-	IL_0023:  ret 
-    } // end of method ConfigurationSettings::get_BuildPath
-
-    // method line 669
-    .method public hidebysig specialname 
-           instance default string[] get_Settings ()  cil managed 
-    {
-        // Method begins at RVA 0x14164
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		string[]	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ConfigurationSettings::_settings
-	IL_0007:  ldtoken [mscorlib]System.String
-	IL_000c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0011:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
-	IL_0016:  castclass string[]
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method ConfigurationSettings::get_Settings
-
-    // method line 670
-    .method public virtual hidebysig specialname 
-           instance default string get_Name ()  cil managed 
-    {
-        // Method begins at RVA 0x14194
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ConfigurationSettings::_name
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationSettings::get_Name
-
-    // method line 671
-    .method public hidebysig specialname 
-           instance default bool get_RegisterForComInterop ()  cil managed 
-    {
-        // Method begins at RVA 0x141b0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.ConfigurationSettings::_registerForComInterop
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ConfigurationSettings::get_RegisterForComInterop
-
-    // method line 672
-    .method private hidebysig specialname 
-           instance default bool get_IncrementalBuildSupported ()  cil managed 
-    {
-        // Method begins at RVA 0x141cc
-	// Code size 68 (0x44)
-	.maxstack 3
-	.locals init (
-		class [NAnt.Core]NAnt.Core.FrameworkInfo	V_0,
-		bool	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ConfigurationBase::get_SolutionTask()
-	IL_0007:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_000c:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0011:  stloc.0 
-	IL_0012:  ldloc.0 
-	IL_0013:  callvirt instance string class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Family()
-	IL_0018:  ldstr "net"
-	IL_001d:  call bool string::op_Equality(string, string)
-	IL_0022:  brfalse IL_003b
-
-	IL_0027:  ldloc.0 
-	IL_0028:  callvirt instance class [mscorlib]System.Version class [NAnt.Core]NAnt.Core.FrameworkInfo::get_Version()
-	IL_002d:  ldc.i4.2 
-	IL_002e:  ldc.i4.0 
-	IL_002f:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32)
-	IL_0034:  call bool class [mscorlib]System.Version::op_LessThanOrEqual(class [mscorlib]System.Version, class [mscorlib]System.Version)
-	IL_0039:  br.s IL_003c
-
-	IL_003b:  ldc.i4.0 
-	IL_003c:  stloc.1 
-	IL_003d:  br IL_0042
-
-	IL_0042:  ldloc.1 
-	IL_0043:  ret 
-    } // end of method ConfigurationSettings::get_IncrementalBuildSupported
-
-	.property instance string PlatformName ()
-	{
-		.get instance default string NAnt.VSNet.ConfigurationSettings::get_PlatformName () 
-	}
-	.property instance string RelativeOutputDir ()
-	{
-		.get instance default string NAnt.VSNet.ConfigurationSettings::get_RelativeOutputDir () 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo OutputDir ()
-	{
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VSNet.ConfigurationSettings::get_OutputDir () 
-	}
-	.property instance string OutputPath ()
-	{
-		.get instance default string NAnt.VSNet.ConfigurationSettings::get_OutputPath () 
-	}
-	.property instance string BuildPath ()
-	{
-		.get instance default string NAnt.VSNet.ConfigurationSettings::get_BuildPath () 
-	}
-	.property instance string[] Settings ()
-	{
-		.get instance default string[] NAnt.VSNet.ConfigurationSettings::get_Settings () 
-	}
-	.property instance string Name ()
-	{
-		.get instance default string NAnt.VSNet.ConfigurationSettings::get_Name () 
-	}
-	.property instance bool RegisterForComInterop ()
-	{
-		.get instance default bool NAnt.VSNet.ConfigurationSettings::get_RegisterForComInterop () 
-	}
-	.property instance bool IncrementalBuildSupported ()
-	{
-		.get instance default bool NAnt.VSNet.ConfigurationSettings::get_IncrementalBuildSupported () 
-	}
-  } // end of class NAnt.VSNet.ConfigurationSettings
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi abstract beforefieldinit WrapperReferenceBase
-  	extends NAnt.VSNet.FileReferenceBase
-  {
-    .field  private  bool _isCreated
-
-    // method line 673
-    .method family hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.ReferencesResolver referencesResolver, class NAnt.VSNet.ProjectBase parent, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache)  cil managed 
-    {
-        // Method begins at RVA 0x7467
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  ldarg.s 4
-	IL_0006:  call instance void class NAnt.VSNet.FileReferenceBase::'.ctor'(class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.ReferencesResolver, class NAnt.VSNet.ProjectBase, class [NAnt.Core]NAnt.Core.Util.GacCache)
-	IL_000b:  nop 
-	IL_000c:  ret 
-    } // end of method WrapperReferenceBase::.ctor
-
-    // method line 674
-    .method public virtual hidebysig specialname 
-           instance default bool get_CopyLocal ()  cil managed 
-    {
-        // Method begins at RVA 0x7478
-	// Code size 25 (0x19)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperTool()
-	IL_0007:  ldstr "primary"
-	IL_000c:  call bool string::op_Inequality(string, string)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method WrapperReferenceBase::get_CopyLocal
-
-    // method line 675
-    .method family virtual hidebysig specialname 
-           instance default bool get_IsSystem ()  cil managed 
-    {
-        // Method begins at RVA 0x74a0
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method WrapperReferenceBase::get_IsSystem
-
-    // method line 676
-    .method public virtual hidebysig 
-           instance default string GetPrimaryOutputFile (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x74b8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method WrapperReferenceBase::GetPrimaryOutputFile
-
-    // method line 677
-    .method public virtual hidebysig 
-           instance default void GetOutputFiles (class NAnt.VSNet.Configuration solutionConfiguration, class [mscorlib]System.Collections.Hashtable outputFiles)  cil managed 
-    {
-        // Method begins at RVA 0x74d4
-	// Code size 34 (0x22)
-	.maxstack 3
-	.locals init (
-		class NAnt.VSNet.ConfigurationBase	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0007:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_0012:  stloc.0 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  ldloc.0 
-	IL_0016:  call instance string class NAnt.VSNet.WrapperReferenceBase::CreateWrapper(class NAnt.VSNet.ConfigurationBase)
-	IL_001b:  ldarg.2 
-	IL_001c:  call instance void class NAnt.VSNet.FileReferenceBase::GetAssemblyOutputFiles(string, class [mscorlib]System.Collections.Hashtable)
-	IL_0021:  ret 
-    } // end of method WrapperReferenceBase::GetOutputFiles
-
-    // method line 678
-    .method public virtual hidebysig 
-           instance default class [System]System.Collections.Specialized.StringCollection GetAssemblyReferences (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x7504
-	// Code size 100 (0x64)
-	.maxstack 4
-	.locals init (
-		class NAnt.VSNet.ConfigurationBase	V_0,
-		string	V_1,
-		class [System]System.Collections.Specialized.StringCollection	V_2,
-		class [System]System.Collections.Specialized.StringCollection	V_3)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0007:  callvirt instance class NAnt.VSNet.ConfigurationDictionary class NAnt.VSNet.ProjectBase::get_BuildConfigurations()
-	IL_000c:  ldarg.1 
-	IL_000d:  callvirt instance class NAnt.VSNet.ConfigurationBase class NAnt.VSNet.ConfigurationDictionary::get_Item(class NAnt.VSNet.Configuration)
-	IL_0012:  stloc.0 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldloc.0 
-	IL_0015:  call instance string class NAnt.VSNet.WrapperReferenceBase::CreateWrapper(class NAnt.VSNet.ConfigurationBase)
-	IL_001a:  stloc.1 
-	IL_001b:  ldloc.1 
-	IL_001c:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0021:  brtrue IL_004d
-
-	IL_0026:  nop 
-	IL_0027:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_002c:  ldstr "Couldn't find assembly \"{0}\", referenced by project \"{1}\"."
-	IL_0031:  ldloc.1 
-	IL_0032:  ldarg.0 
-	IL_0033:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0038:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_003d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0042:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0047:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_004c:  throw 
-	IL_004d:  newobj instance void class [System]System.Collections.Specialized.StringCollection::'.ctor'()
-	IL_0052:  stloc.2 
-	IL_0053:  ldloc.2 
-	IL_0054:  ldloc.1 
-	IL_0055:  callvirt instance int32 class [System]System.Collections.Specialized.StringCollection::Add(string)
-	IL_005a:  pop 
-	IL_005b:  ldloc.2 
-	IL_005c:  stloc.3 
-	IL_005d:  br IL_0062
-
-	IL_0062:  ldloc.3 
-	IL_0063:  ret 
-    } // end of method WrapperReferenceBase::GetAssemblyReferences
-
-    // method line 679
-    .method public virtual hidebysig 
-           instance default valuetype [mscorlib]System.DateTime GetTimestamp (class NAnt.VSNet.Configuration solutionConfiguration)  cil managed 
-    {
-        // Method begins at RVA 0x7574
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
-	IL_0008:  call instance valuetype [mscorlib]System.DateTime class NAnt.VSNet.ReferenceBase::GetFileTimestamp(string)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method WrapperReferenceBase::GetTimestamp
-
-    // method line 680
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_WrapperTool ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method WrapperReferenceBase::get_WrapperTool
-
-    // method line 681
-    .method public virtual hidebysig newslot abstract specialname 
-           instance default string get_WrapperAssembly ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method WrapperReferenceBase::get_WrapperAssembly
-
-    // method line 682
-    .method public hidebysig specialname 
-           instance default bool get_IsCreated ()  cil managed 
-    {
-        // Method begins at RVA 0x7598
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VSNet.WrapperReferenceBase::_isCreated
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method WrapperReferenceBase::get_IsCreated
-
-    // method line 683
-    .method family virtual hidebysig newslot abstract specialname 
-           instance default string get_PrimaryInteropAssembly ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method WrapperReferenceBase::get_PrimaryInteropAssembly
-
-    // method line 684
-    .method family virtual hidebysig newslot abstract specialname 
-           instance default string get_TypeLibVersion ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method WrapperReferenceBase::get_TypeLibVersion
-
-    // method line 685
-    .method family virtual hidebysig newslot abstract specialname 
-           instance default string get_TypeLibGuid ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method WrapperReferenceBase::get_TypeLibGuid
-
-    // method line 686
-    .method family virtual hidebysig newslot abstract specialname 
-           instance default string get_TypeLibLocale ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method WrapperReferenceBase::get_TypeLibLocale
-
-    // method line 687
-    .method family virtual hidebysig newslot specialname 
-           instance default string get_TypeLibraryName ()  cil managed 
-    {
-        // Method begins at RVA 0x75b4
-	// Code size 21 (0x15)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.0 
-	IL_0003:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibrary()
-	IL_0008:  call instance string class NAnt.VSNet.WrapperReferenceBase::GetTypeLibraryName(string)
-	IL_000d:  stloc.0 
-	IL_000e:  br IL_0013
-
-	IL_0013:  ldloc.0 
-	IL_0014:  ret 
-    } // end of method WrapperReferenceBase::get_TypeLibraryName
-
-    // method line 688
-    .method family virtual hidebysig newslot abstract 
-           instance default void ImportTypeLibrary ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method WrapperReferenceBase::ImportTypeLibrary
-
-    // method line 689
-    .method family virtual hidebysig newslot abstract 
-           instance default void ImportActiveXLibrary ()  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method WrapperReferenceBase::ImportActiveXLibrary
-
-    // method line 690
-    .method family hidebysig 
-           instance default string ResolveWrapperAssembly ()  cil managed 
-    {
-        // Method begins at RVA 0x75d8
-	// Code size 201 (0xc9)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		string	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperTool()
-	IL_0009:  stloc.1 
-	IL_000a:  ldloc.1 
-	IL_000b:  brfalse IL_0090
-
-	IL_0010:  ldloc.1 
-	IL_0011:  ldstr "primary"
-	IL_0016:  call bool string::op_Equality(string, string)
-	IL_001b:  brtrue IL_0035
-
-	IL_0020:  ldloc.1 
-	IL_0021:  ldstr "aximp"
-	IL_0026:  call bool string::op_Equality(string, string)
-	IL_002b:  brtrue IL_0075
-
-	IL_0030:  br IL_0090
-
-	IL_0035:  ldarg.0 
-	IL_0036:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_PrimaryInteropAssembly()
-	IL_003b:  stloc.0 
-	IL_003c:  ldloc.0 
-	IL_003d:  brtrue IL_006e
-
-	IL_0042:  nop 
-	IL_0043:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0048:  ldstr "Couldn't find Primary Interop Assembly \"{0}\", referenced by project \"{1}\"."
-	IL_004d:  ldarg.0 
-	IL_004e:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_0053:  ldarg.0 
-	IL_0054:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0059:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_005e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0063:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0068:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_006d:  throw 
-	IL_006e:  ldloc.0 
-	IL_006f:  stloc.2 
-	IL_0070:  br IL_00c7
-
-	IL_0075:  ldstr "AxInterop."
-	IL_007a:  ldarg.0 
-	IL_007b:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibraryName()
-	IL_0080:  ldstr ".dll"
-	IL_0085:  call string string::Concat(string, string, string)
-	IL_008a:  stloc.0 
-	IL_008b:  br IL_00ab
-
-	IL_0090:  ldstr "Interop."
-	IL_0095:  ldarg.0 
-	IL_0096:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibraryName()
-	IL_009b:  ldstr ".dll"
-	IL_00a0:  call string string::Concat(string, string, string)
-	IL_00a5:  stloc.0 
-	IL_00a6:  br IL_00ab
-
-	IL_00ab:  ldarg.0 
-	IL_00ac:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_00b1:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ObjectDir()
-	IL_00b6:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00bb:  ldloc.0 
-	IL_00bc:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_00c1:  stloc.2 
-	IL_00c2:  br IL_00c7
-
-	IL_00c7:  ldloc.2 
-	IL_00c8:  ret 
-    } // end of method WrapperReferenceBase::ResolveWrapperAssembly
-
-    // method line 691
-    .method family hidebysig 
-           instance default string GetPrimaryInteropAssembly ()  cil managed 
-    {
-        // Method begins at RVA 0x76b0
-	// Code size 206 (0xce)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		string	V_1,
-		class [mscorlib]Microsoft.Win32.RegistryKey	V_2,
-		string	V_3,
-		class [mscorlib]System.Exception	V_4,
-		string	V_5)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0006:  ldstr "TYPELIB\\{0}\\{1}"
-	IL_000b:  ldarg.0 
-	IL_000c:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
-	IL_0011:  ldarg.0 
-	IL_0012:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
-	IL_0017:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_001c:  stloc.0 
-	IL_001d:  ldnull 
-	IL_001e:  stloc.1 
-	IL_001f:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::ClassesRoot
-	IL_0024:  ldloc.0 
-	IL_0025:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string)
-	IL_002a:  stloc.2 
-	.try { // 1
-	  IL_002b:  nop 
-	  IL_002c:  ldloc.2 
-	  IL_002d:  brfalse IL_00b0
-
-	  IL_0032:  ldloc.2 
-	  IL_0033:  ldstr "PrimaryInteropAssemblyName"
-	  IL_0038:  callvirt instance object class [mscorlib]Microsoft.Win32.RegistryKey::GetValue(string)
-	  IL_003d:  brfalse IL_00b0
-
-	  IL_0042:  nop 
-	  IL_0043:  ldloc.2 
-	  IL_0044:  ldstr "PrimaryInteropAssemblyName"
-	  IL_0049:  callvirt instance object class [mscorlib]Microsoft.Win32.RegistryKey::GetValue(string)
-	  IL_004e:  castclass [mscorlib]System.String
-	  IL_0053:  stloc.3 
-	  .try { // 0
-	    IL_0054:  nop 
-	    IL_0055:  ldarg.0 
-	    IL_0056:  call instance class NAnt.VSNet.ReferencesResolver class NAnt.VSNet.ReferenceBase::get_ReferencesResolver()
-	    IL_005b:  ldloc.3 
-	    IL_005c:  callvirt instance string class NAnt.VSNet.ReferencesResolver::GetAssemblyFileName(string)
-	    IL_0061:  stloc.1 
-	    IL_0062:  nop 
-	    IL_0063:  leave IL_00af
-
-	  } // end .try 0
-	  catch class [mscorlib]System.Exception { // 0
-	    IL_0068:  stloc.s 4
-	    IL_006a:  nop 
-	    IL_006b:  ldarg.0 
-	    IL_006c:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperTool()
-	    IL_0071:  ldstr "primary"
-	    IL_0076:  call bool string::op_Equality(string, string)
-	    IL_007b:  brfalse IL_00a9
-
-	    IL_0080:  nop 
-	    IL_0081:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	    IL_0086:  ldstr "Primary Interop Assembly \"{0}\", referenced by project \"{1}\", could not be loaded."
-	    IL_008b:  ldloc.3 
-	    IL_008c:  ldarg.0 
-	    IL_008d:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	    IL_0092:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	    IL_0097:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	    IL_009c:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	    IL_00a1:  ldloc.s 4
-	    IL_00a3:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	    IL_00a8:  throw 
-	    IL_00a9:  nop 
-	    IL_00aa:  leave IL_00af
-
-	  } // end handler 0
-	  IL_00af:  nop 
-	  IL_00b0:  nop 
-	  IL_00b1:  leave IL_00c3
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00b6:  ldloc.2 
-	  IL_00b7:  brfalse IL_00c2
-
-	  IL_00bc:  ldloc.2 
-	  IL_00bd:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00c2:  endfinally 
-	} // end handler 1
-	IL_00c3:  ldloc.1 
-	IL_00c4:  stloc.s 5
-	IL_00c6:  br IL_00cb
-
-	IL_00cb:  ldloc.s 5
-	IL_00cd:  ret 
-    } // end of method WrapperReferenceBase::GetPrimaryInteropAssembly
-
-    // method line 692
-    .method family hidebysig 
-           instance default string GetTypeLibrary ()  cil managed 
-    {
-        // Method begins at RVA 0x77a8
-	// Code size 145 (0x91)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		class [mscorlib]Microsoft.Win32.RegistryKey	V_1,
-		string	V_2,
-		string	V_3,
-		string	V_4)
-	IL_0000:  nop 
-	IL_0001:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0006:  ldstr "TYPELIB\\{0}\\{1}\\{2}\\win32"
-	IL_000b:  ldarg.0 
-	IL_000c:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
-	IL_0011:  ldarg.0 
-	IL_0012:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
-	IL_0017:  ldarg.0 
-	IL_0018:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibLocale()
-	IL_001d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_0022:  stloc.0 
-	IL_0023:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::ClassesRoot
-	IL_0028:  ldloc.0 
-	IL_0029:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string)
-	IL_002e:  stloc.1 
-	.try { // 0
-	  IL_002f:  nop 
-	  IL_0030:  ldloc.1 
-	  IL_0031:  brtrue IL_003e
-
-	  IL_0036:  nop 
-	  IL_0037:  ldarg.0 
-	  IL_0038:  call instance class [NAnt.Core]NAnt.Core.BuildException class NAnt.VSNet.WrapperReferenceBase::CreateTypeLibraryNotRegisteredException()
-	  IL_003d:  throw 
-	  IL_003e:  ldloc.1 
-	  IL_003f:  ldnull 
-	  IL_0040:  callvirt instance object class [mscorlib]Microsoft.Win32.RegistryKey::GetValue(string)
-	  IL_0045:  castclass [mscorlib]System.String
-	  IL_004a:  stloc.2 
-	  IL_004b:  ldloc.2 
-	  IL_004c:  call bool string::IsNullOrEmpty(string)
-	  IL_0051:  brfalse IL_005e
-
-	  IL_0056:  nop 
-	  IL_0057:  ldarg.0 
-	  IL_0058:  call instance class [NAnt.Core]NAnt.Core.BuildException class NAnt.VSNet.WrapperReferenceBase::CreateInvalidTypeLibraryRegistrationException()
-	  IL_005d:  throw 
-	  IL_005e:  ldloc.2 
-	  IL_005f:  call string class [NAnt.Win32Tasks]NAnt.Win32.Tasks.TlbImpTask::ExtractTypeLibPath(string)
-	  IL_0064:  stloc.3 
-	  IL_0065:  ldloc.3 
-	  IL_0066:  call bool class [mscorlib]System.IO.File::Exists(string)
-	  IL_006b:  brtrue IL_0079
-
-	  IL_0070:  nop 
-	  IL_0071:  ldarg.0 
-	  IL_0072:  ldloc.3 
-	  IL_0073:  call instance class [NAnt.Core]NAnt.Core.BuildException class NAnt.VSNet.WrapperReferenceBase::CreateTypeLibraryPathDoesNotExistException(string)
-	  IL_0078:  throw 
-	  IL_0079:  ldloc.2 
-	  IL_007a:  stloc.s 4
-	  IL_007c:  leave IL_008e
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0081:  ldloc.1 
-	  IL_0082:  brfalse IL_008d
-
-	  IL_0087:  ldloc.1 
-	  IL_0088:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_008d:  endfinally 
-	} // end handler 0
-	IL_008e:  ldloc.s 4
-	IL_0090:  ret 
-    } // end of method WrapperReferenceBase::GetTypeLibrary
-
-    // method line 693
-    .method family hidebysig 
-           instance default string GetTypeLibraryName (string typeLibraryPath)  cil managed 
-    {
-        // Method begins at RVA 0x7858
-	// Code size 100 (0x64)
-	.maxstack 3
-	.locals init (
-		object	V_0,
-		class [mscorlib]System.Runtime.InteropServices.COMException	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	.try { // 0
-	  IL_0001:  nop 
-	  IL_0002:  ldarg.1 
-	  IL_0003:  ldc.i4.0 
-	  IL_0004:  ldloca.s 0
-	  IL_0006:  call void class NAnt.VSNet.WrapperReferenceBase::LoadTypeLibEx(string, int32, [out] object&)
-	  IL_000b:  nop 
-	  IL_000c:  leave IL_002f
-
-	} // end .try 0
-	catch class [mscorlib]System.Runtime.InteropServices.COMException { // 0
-	  IL_0011:  stloc.1 
-	  IL_0012:  nop 
-	  IL_0013:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0018:  ldstr "Type library \"{0}\" could not be loaded."
-	  IL_001d:  ldarg.1 
-	  IL_001e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0023:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	  IL_0028:  ldloc.1 
-	  IL_0029:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_002e:  throw 
-	} // end handler 0
-	IL_002f:  ldloc.0 
-	IL_0030:  brtrue IL_0051
-
-	IL_0035:  nop 
-	IL_0036:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_003b:  ldstr "Type library \"{0}\" could not be loaded."
-	IL_0040:  ldarg.1 
-	IL_0041:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0046:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_004b:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0050:  throw 
-	IL_0051:  ldloc.0 
-	IL_0052:  castclass [mscorlib]System.Runtime.InteropServices.ComTypes.ITypeLib
-	IL_0057:  call string class [mscorlib]System.Runtime.InteropServices.Marshal::GetTypeLibName(class [mscorlib]System.Runtime.InteropServices.ComTypes.ITypeLib)
-	IL_005c:  stloc.2 
-	IL_005d:  br IL_0062
-
-	IL_0062:  ldloc.2 
-	IL_0063:  ret 
-    } // end of method WrapperReferenceBase::GetTypeLibraryName
-
-    // method line 694
-    .method private hidebysig 
-           instance default string CreateWrapper (class NAnt.VSNet.ConfigurationBase config)  cil managed 
-    {
-        // Method begins at RVA 0x78d8
-	// Code size 253 (0xfd)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance bool class NAnt.VSNet.WrapperReferenceBase::get_IsCreated()
-	IL_0007:  brfalse IL_0019
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
-	IL_0013:  stloc.0 
-	IL_0014:  br IL_00fb
-
-	IL_0019:  ldarg.0 
-	IL_001a:  ldarg.1 
-	IL_001b:  call instance void class NAnt.VSNet.WrapperReferenceBase::Sync(class NAnt.VSNet.ConfigurationBase)
-	IL_0020:  ldarg.0 
-	IL_0021:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperTool()
-	IL_0026:  stloc.1 
-	IL_0027:  ldloc.1 
-	IL_0028:  brfalse IL_00b7
-
-	IL_002d:  ldloc.1 
-	IL_002e:  ldstr "primary"
-	IL_0033:  call bool string::op_Equality(string, string)
-	IL_0038:  brtrue IL_0062
-
-	IL_003d:  ldloc.1 
-	IL_003e:  ldstr "tlbimp"
-	IL_0043:  call bool string::op_Equality(string, string)
-	IL_0048:  brtrue IL_0067
-
-	IL_004d:  ldloc.1 
-	IL_004e:  ldstr "aximp"
-	IL_0053:  call bool string::op_Equality(string, string)
-	IL_0058:  brtrue IL_00ac
-
-	IL_005d:  br IL_00b7
-
-	IL_0062:  br IL_00e8
-
-	IL_0067:  ldarg.0 
-	IL_0068:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_PrimaryInteropAssembly()
-	IL_006d:  brfalse IL_00a1
-
-	IL_0072:  nop 
-	IL_0073:  ldarg.0 
-	IL_0074:  ldc.i4 4000
-	IL_0079:  ldstr "The component \"{0}\", referenced by project \"{1}\" has an updated custom wrapper available."
-	IL_007e:  ldc.i4.2 
-	IL_007f:  newarr [mscorlib]System.Object
-	IL_0084:  dup 
-	IL_0085:  ldc.i4.0 
-	IL_0086:  ldarg.0 
-	IL_0087:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_008c:  stelem.ref 
-	IL_008d:  dup 
-	IL_008e:  ldc.i4.1 
-	IL_008f:  ldarg.0 
-	IL_0090:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0095:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_009a:  stelem.ref 
-	IL_009b:  call instance void class NAnt.VSNet.ReferenceBase::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00a0:  nop 
-	IL_00a1:  ldarg.0 
-	IL_00a2:  callvirt instance void class NAnt.VSNet.WrapperReferenceBase::ImportTypeLibrary()
-	IL_00a7:  br IL_00e8
-
-	IL_00ac:  ldarg.0 
-	IL_00ad:  callvirt instance void class NAnt.VSNet.WrapperReferenceBase::ImportActiveXLibrary()
-	IL_00b2:  br IL_00e8
-
-	IL_00b7:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00bc:  ldstr "Wrapper tool \"{0}\" for reference \"{1}\" in project \"{2}\" is not supported."
-	IL_00c1:  ldarg.0 
-	IL_00c2:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperTool()
-	IL_00c7:  ldarg.0 
-	IL_00c8:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_00cd:  ldarg.0 
-	IL_00ce:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_00d3:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_00d8:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_00dd:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_00e2:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_00e7:  throw 
-	IL_00e8:  ldarg.0 
-	IL_00e9:  ldc.i4.1 
-	IL_00ea:  stfld bool NAnt.VSNet.WrapperReferenceBase::_isCreated
-	IL_00ef:  ldarg.0 
-	IL_00f0:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
-	IL_00f5:  stloc.0 
-	IL_00f6:  br IL_00fb
-
-	IL_00fb:  ldloc.0 
-	IL_00fc:  ret 
-    } // end of method WrapperReferenceBase::CreateWrapper
-
-    // method line 695
-    .method private hidebysig 
-           instance default void Sync (class NAnt.VSNet.ConfigurationBase config)  cil managed 
-    {
-        // Method begins at RVA 0x79e4
-	// Code size 164 (0xa4)
-	.maxstack 2
-	.locals init (
-		string	V_0,
-		valuetype [mscorlib]System.DateTime	V_1,
-		class [NAnt.Core]NAnt.Core.Tasks.DeleteTask	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance bool class NAnt.VSNet.ReferenceBase::get_CopyLocal()
-	IL_0007:  brfalse IL_001c
-
-	IL_000c:  ldarg.0 
-	IL_000d:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
-	IL_0012:  call bool class [mscorlib]System.IO.File::Exists(string)
-	IL_0017:  brtrue IL_0022
-
-	IL_001c:  nop 
-	IL_001d:  br IL_00a3
-
-	IL_0022:  ldarg.1 
-	IL_0023:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ConfigurationBase::get_OutputDir()
-	IL_0028:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_002d:  ldarg.0 
-	IL_002e:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
-	IL_0033:  call string class [mscorlib]System.IO.Path::GetFileName(string)
-	IL_0038:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_003d:  stloc.0 
-	IL_003e:  ldarg.0 
-	IL_003f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
-	IL_0044:  call valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.File::GetLastWriteTime(string)
-	IL_0049:  stloc.1 
-	IL_004a:  ldloc.0 
-	IL_004b:  ldloc.1 
-	IL_004c:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_0051:  brfalse IL_00a3
-
-	IL_0056:  nop 
-	IL_0057:  newobj instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::'.ctor'()
-	IL_005c:  stloc.2 
-	IL_005d:  ldloc.2 
-	IL_005e:  ldarg.0 
-	IL_005f:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_0064:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0069:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Project(class [NAnt.Core]NAnt.Core.Project)
-	IL_006e:  ldloc.2 
-	IL_006f:  ldarg.0 
-	IL_0070:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ReferenceBase::get_SolutionTask()
-	IL_0075:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::set_Parent(object)
-	IL_007a:  ldloc.2 
-	IL_007b:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::InitializeTaskConfiguration()
-	IL_0080:  ldloc.2 
-	IL_0081:  ldarg.0 
-	IL_0082:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly()
-	IL_0087:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_008c:  callvirt instance void class [NAnt.Core]NAnt.Core.Tasks.DeleteTask::set_File(class [mscorlib]System.IO.FileInfo)
-	IL_0091:  ldloc.2 
-	IL_0092:  ldc.i4 9999
-	IL_0097:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::set_Threshold(valuetype [NAnt.Core]NAnt.Core.Level)
-	IL_009c:  ldloc.2 
-	IL_009d:  callvirt instance void class [NAnt.Core]NAnt.Core.Task::Execute()
-	IL_00a2:  nop 
-	IL_00a3:  ret 
-    } // end of method WrapperReferenceBase::Sync
-
-    // method line 696
-    .method private hidebysig 
-           instance default class [NAnt.Core]NAnt.Core.BuildException CreateTypeLibraryNotRegisteredException ()  cil managed 
-    {
-        // Method begins at RVA 0x7a94
-	// Code size 149 (0x95)
-	.maxstack 6
-	.locals init (
-		string	V_0,
-		class [NAnt.Core]NAnt.Core.BuildException	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_0009:  call bool string::IsNullOrEmpty(string)
-	IL_000e:  brfalse IL_0041
-
-	IL_0013:  nop 
-	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0019:  ldstr "Couldn't find type library \"{0}\" with version {1}, referenced by project \"{2}\"."
-	IL_001e:  ldarg.0 
-	IL_001f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
-	IL_0024:  ldarg.0 
-	IL_0025:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
-	IL_002a:  ldarg.0 
-	IL_002b:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0030:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_0035:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_003a:  stloc.0 
-	IL_003b:  nop 
-	IL_003c:  br IL_0082
-
-	IL_0041:  nop 
-	IL_0042:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0047:  ldstr "Couldn't find type library \"{0}\" ({1} with version {2}), referenced by project \"{3}\"."
-	IL_004c:  ldc.i4.4 
-	IL_004d:  newarr [mscorlib]System.Object
-	IL_0052:  dup 
-	IL_0053:  ldc.i4.0 
-	IL_0054:  ldarg.0 
-	IL_0055:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_005a:  stelem.ref 
-	IL_005b:  dup 
-	IL_005c:  ldc.i4.1 
-	IL_005d:  ldarg.0 
-	IL_005e:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
-	IL_0063:  stelem.ref 
-	IL_0064:  dup 
-	IL_0065:  ldc.i4.2 
-	IL_0066:  ldarg.0 
-	IL_0067:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
-	IL_006c:  stelem.ref 
-	IL_006d:  dup 
-	IL_006e:  ldc.i4.3 
-	IL_006f:  ldarg.0 
-	IL_0070:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0075:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_007a:  stelem.ref 
-	IL_007b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0080:  stloc.0 
-	IL_0081:  nop 
-	IL_0082:  ldloc.0 
-	IL_0083:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0088:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_008d:  stloc.1 
-	IL_008e:  br IL_0093
-
-	IL_0093:  ldloc.1 
-	IL_0094:  ret 
-    } // end of method WrapperReferenceBase::CreateTypeLibraryNotRegisteredException
-
-    // method line 697
-    .method private hidebysig 
-           instance default class [NAnt.Core]NAnt.Core.BuildException CreateInvalidTypeLibraryRegistrationException ()  cil managed 
-    {
-        // Method begins at RVA 0x7b38
-	// Code size 149 (0x95)
-	.maxstack 6
-	.locals init (
-		string	V_0,
-		class [NAnt.Core]NAnt.Core.BuildException	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_0009:  call bool string::IsNullOrEmpty(string)
-	IL_000e:  brfalse IL_0041
-
-	IL_0013:  nop 
-	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0019:  ldstr "Couldn't find path of type library \"{0}\" with version {1}, referenced by project \"{2}\". Ensure the type library is registeredcorrectly."
-	IL_001e:  ldarg.0 
-	IL_001f:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
-	IL_0024:  ldarg.0 
-	IL_0025:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
-	IL_002a:  ldarg.0 
-	IL_002b:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0030:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_0035:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object, object)
-	IL_003a:  stloc.0 
-	IL_003b:  nop 
-	IL_003c:  br IL_0082
-
-	IL_0041:  nop 
-	IL_0042:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0047:  ldstr "Couldn't find path of type library \"{0}\" ({1} with version {2}), referenced by project \"{3}\". Ensure the type library is registered correctly."
-	IL_004c:  ldc.i4.4 
-	IL_004d:  newarr [mscorlib]System.Object
-	IL_0052:  dup 
-	IL_0053:  ldc.i4.0 
-	IL_0054:  ldarg.0 
-	IL_0055:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_005a:  stelem.ref 
-	IL_005b:  dup 
-	IL_005c:  ldc.i4.1 
-	IL_005d:  ldarg.0 
-	IL_005e:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
-	IL_0063:  stelem.ref 
-	IL_0064:  dup 
-	IL_0065:  ldc.i4.2 
-	IL_0066:  ldarg.0 
-	IL_0067:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
-	IL_006c:  stelem.ref 
-	IL_006d:  dup 
-	IL_006e:  ldc.i4.3 
-	IL_006f:  ldarg.0 
-	IL_0070:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0075:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_007a:  stelem.ref 
-	IL_007b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0080:  stloc.0 
-	IL_0081:  nop 
-	IL_0082:  ldloc.0 
-	IL_0083:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0088:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_008d:  stloc.1 
-	IL_008e:  br IL_0093
-
-	IL_0093:  ldloc.1 
-	IL_0094:  ret 
-    } // end of method WrapperReferenceBase::CreateInvalidTypeLibraryRegistrationException
-
-    // method line 698
-    .method private hidebysig 
-           instance default class [NAnt.Core]NAnt.Core.BuildException CreateTypeLibraryPathDoesNotExistException (string typeLibraryPath)  cil managed 
-    {
-        // Method begins at RVA 0x7bdc
-	// Code size 172 (0xac)
-	.maxstack 6
-	.locals init (
-		string	V_0,
-		class [NAnt.Core]NAnt.Core.BuildException	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_0009:  call bool string::IsNullOrEmpty(string)
-	IL_000e:  brfalse IL_0054
-
-	IL_0013:  nop 
-	IL_0014:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0019:  ldstr "Type library \"{0}\" with version {1}, referenced by project \"{2}\", no longer exists at registered path \"{3}\"."
-	IL_001e:  ldc.i4.4 
-	IL_001f:  newarr [mscorlib]System.Object
-	IL_0024:  dup 
-	IL_0025:  ldc.i4.0 
-	IL_0026:  ldarg.0 
-	IL_0027:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
-	IL_002c:  stelem.ref 
-	IL_002d:  dup 
-	IL_002e:  ldc.i4.1 
-	IL_002f:  ldarg.0 
-	IL_0030:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
-	IL_0035:  stelem.ref 
-	IL_0036:  dup 
-	IL_0037:  ldc.i4.2 
-	IL_0038:  ldarg.0 
-	IL_0039:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_003e:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_0043:  stelem.ref 
-	IL_0044:  dup 
-	IL_0045:  ldc.i4.3 
-	IL_0046:  ldarg.1 
-	IL_0047:  stelem.ref 
-	IL_0048:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_004d:  stloc.0 
-	IL_004e:  nop 
-	IL_004f:  br IL_0099
-
-	IL_0054:  nop 
-	IL_0055:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_005a:  ldstr "Type library \"{0}\" ({1} with version {2}), referenced by project \"{3}\", no longer exists at registered path \"{4}\"."
-	IL_005f:  ldc.i4.5 
-	IL_0060:  newarr [mscorlib]System.Object
-	IL_0065:  dup 
-	IL_0066:  ldc.i4.0 
-	IL_0067:  ldarg.0 
-	IL_0068:  callvirt instance string class NAnt.VSNet.ReferenceBase::get_Name()
-	IL_006d:  stelem.ref 
-	IL_006e:  dup 
-	IL_006f:  ldc.i4.1 
-	IL_0070:  ldarg.0 
-	IL_0071:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid()
-	IL_0076:  stelem.ref 
-	IL_0077:  dup 
-	IL_0078:  ldc.i4.2 
-	IL_0079:  ldarg.0 
-	IL_007a:  callvirt instance string class NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion()
-	IL_007f:  stelem.ref 
-	IL_0080:  dup 
-	IL_0081:  ldc.i4.3 
-	IL_0082:  ldarg.0 
-	IL_0083:  call instance class NAnt.VSNet.ProjectBase class NAnt.VSNet.ReferenceBase::get_Parent()
-	IL_0088:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_008d:  stelem.ref 
-	IL_008e:  dup 
-	IL_008f:  ldc.i4.4 
-	IL_0090:  ldarg.1 
-	IL_0091:  stelem.ref 
-	IL_0092:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object[])
-	IL_0097:  stloc.0 
-	IL_0098:  nop 
-	IL_0099:  ldloc.0 
-	IL_009a:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_009f:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_00a4:  stloc.1 
-	IL_00a5:  br IL_00aa
-
-	IL_00aa:  ldloc.1 
-	IL_00ab:  ret 
-    } // end of method WrapperReferenceBase::CreateTypeLibraryPathDoesNotExistException
-
-    // method line 699
-    .method private static hidebysig pinvokeimpl ("oleaut32.dll" as "LoadTypeLibEx" unicode winapi )
-           default void LoadTypeLibEx (string strTypeLibName, int32 regKind, [out] object& marshal (interface) typeLib)  cil managed 
-    {
-        // Method begins at RVA 0x0
-    } // end of method WrapperReferenceBase::LoadTypeLibEx
-
-	.property instance bool CopyLocal ()
-	{
-		.get instance default bool NAnt.VSNet.WrapperReferenceBase::get_CopyLocal () 
-	}
-	.property instance bool IsSystem ()
-	{
-		.get instance default bool NAnt.VSNet.WrapperReferenceBase::get_IsSystem () 
-	}
-	.property instance string WrapperTool ()
-	{
-		.get instance default string NAnt.VSNet.WrapperReferenceBase::get_WrapperTool () 
-	}
-	.property instance string WrapperAssembly ()
-	{
-		.get instance default string NAnt.VSNet.WrapperReferenceBase::get_WrapperAssembly () 
-	}
-	.property instance bool IsCreated ()
-	{
-		.get instance default bool NAnt.VSNet.WrapperReferenceBase::get_IsCreated () 
-	}
-	.property instance string PrimaryInteropAssembly ()
-	{
-		.get instance default string NAnt.VSNet.WrapperReferenceBase::get_PrimaryInteropAssembly () 
-	}
-	.property instance string TypeLibVersion ()
-	{
-		.get instance default string NAnt.VSNet.WrapperReferenceBase::get_TypeLibVersion () 
-	}
-	.property instance string TypeLibGuid ()
-	{
-		.get instance default string NAnt.VSNet.WrapperReferenceBase::get_TypeLibGuid () 
-	}
-	.property instance string TypeLibLocale ()
-	{
-		.get instance default string NAnt.VSNet.WrapperReferenceBase::get_TypeLibLocale () 
-	}
-	.property instance string TypeLibraryName ()
-	{
-		.get instance default string NAnt.VSNet.WrapperReferenceBase::get_TypeLibraryName () 
-	}
-  } // end of class NAnt.VSNet.WrapperReferenceBase
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit ProjectSettings
-  	extends [mscorlib]System.Object
-  {
-    .field  private initonly  class [mscorlib]System.Collections.ArrayList _settings
-    .field  private initonly  class [mscorlib]System.IO.FileInfo _applicationIcon
-    .field  private initonly  class NAnt.VSNet.ManagedProjectBase _project
-    .field  private initonly  string _assemblyName
-    .field  private initonly  string _assemblyOriginatorKeyFile
-    .field  private initonly  string _assemblyKeyContainerName
-    .field  private initonly  string _rootNamespace
-    .field  private initonly  string _guid
-    .field  private initonly  string _runPostBuildEvent
-    .field  private initonly  string _preBuildEvent
-    .field  private initonly  string _postBuildEvent
-    .field  private initonly  valuetype NAnt.VSNet.ManagedOutputType _outputType
-
-    // method line 700
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class [System.Xml]System.Xml.XmlElement elemRoot, class [System.Xml]System.Xml.XmlElement elemSettings, class NAnt.VSNet.ManagedProjectBase project)  cil managed 
-    {
-        // Method begins at RVA 0x1421c
-	// Code size 1181 (0x49d)
-	.maxstack 3
-	.locals init (
-		class [mscorlib]System.Collections.Hashtable	V_0,
-		valuetype NAnt.VSNet.ManagedOutputType	V_1,
-		string	V_2,
-		valuetype [mscorlib]System.Collections.DictionaryEntry	V_3,
-		class [mscorlib]System.Collections.IDictionaryEnumerator	V_4,
-		string	V_5,
-		class [mscorlib]System.IDisposable	V_6)
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  nop 
-	IL_0007:  ldarg.0 
-	IL_0008:  ldarg.3 
-	IL_0009:  stfld class NAnt.VSNet.ManagedProjectBase NAnt.VSNet.ProjectSettings::_project
-	IL_000e:  ldarg.0 
-	IL_000f:  newobj instance void class [mscorlib]System.Collections.ArrayList::'.ctor'()
-	IL_0014:  stfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
-	IL_0019:  ldarg.1 
-	IL_001a:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::get_FirstChild()
-	IL_001f:  brtrue IL_004a
-
-	IL_0024:  nop 
-	IL_0025:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_002a:  ldstr "Project file '{0}' is not valid."
-	IL_002f:  ldarg.0 
-	IL_0030:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.ProjectSettings::get_Project()
-	IL_0035:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_003a:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_003f:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0044:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0049:  throw 
-	IL_004a:  ldarg.0 
-	IL_004b:  ldarg.3 
-	IL_004c:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_0051:  ldarg.1 
-	IL_0052:  call string class NAnt.VSNet.ProjectSettings::GetProjectGuid(string, class [System.Xml]System.Xml.XmlElement)
-	IL_0057:  stfld string NAnt.VSNet.ProjectSettings::_guid
-	IL_005c:  ldarg.0 
-	IL_005d:  ldarg.0 
-	IL_005e:  ldarg.2 
-	IL_005f:  callvirt instance valuetype NAnt.VSNet.ManagedOutputType class NAnt.VSNet.ProjectSettings::GetOutputType(class [System.Xml]System.Xml.XmlElement)
-	IL_0064:  stfld valuetype NAnt.VSNet.ManagedOutputType NAnt.VSNet.ProjectSettings::_outputType
-	IL_0069:  newobj instance void class [mscorlib]System.Collections.Hashtable::'.ctor'()
-	IL_006e:  stloc.0 
-	IL_006f:  ldarg.0 
-	IL_0070:  ldfld valuetype NAnt.VSNet.ManagedOutputType NAnt.VSNet.ProjectSettings::_outputType
-	IL_0075:  stloc.1 
-	IL_0076:  ldloc.1 
-	IL_0077:  ldc.i4.1 
-	IL_0078:  beq IL_0090
-
-	IL_007d:  ldloc.1 
-	IL_007e:  ldc.i4.2 
-	IL_007f:  beq IL_00a6
-
-	IL_0084:  ldloc.1 
-	IL_0085:  ldc.i4.3 
-	IL_0086:  beq IL_00cc
-
-	IL_008b:  br IL_00f2
-
-	IL_0090:  ldarg.0 
-	IL_0091:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
-	IL_0096:  ldstr "/target:library"
-	IL_009b:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_00a0:  pop 
-	IL_00a1:  br IL_00f2
-
-	IL_00a6:  ldarg.0 
-	IL_00a7:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
-	IL_00ac:  ldstr "/target:exe"
-	IL_00b1:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_00b6:  pop 
-	IL_00b7:  ldloc.0 
-	IL_00b8:  ldstr "StartupObject"
-	IL_00bd:  ldstr "/main:\"{0}\""
-	IL_00c2:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_00c7:  br IL_00f2
-
-	IL_00cc:  ldarg.0 
-	IL_00cd:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
-	IL_00d2:  ldstr "/target:winexe"
-	IL_00d7:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_00dc:  pop 
-	IL_00dd:  ldloc.0 
-	IL_00de:  ldstr "StartupObject"
-	IL_00e3:  ldstr "/main:\"{0}\""
-	IL_00e8:  callvirt instance void class [mscorlib]System.Collections.Hashtable::set_Item(object, object)
-	IL_00ed:  br IL_00f2
-
-	IL_00f2:  ldarg.0 
-	IL_00f3:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
-	IL_00f8:  ldstr "/nologo"
-	IL_00fd:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_0102:  pop 
-	IL_0103:  ldarg.0 
-	IL_0104:  ldarg.2 
-	IL_0105:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_010a:  ldstr "AssemblyName"
-	IL_010f:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0114:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_0119:  stfld string NAnt.VSNet.ProjectSettings::_assemblyName
-	IL_011e:  ldarg.0 
-	IL_011f:  ldarg.2 
-	IL_0120:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0125:  ldstr "AssemblyOriginatorKeyFile"
-	IL_012a:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_012f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_0134:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0139:  stfld string NAnt.VSNet.ProjectSettings::_assemblyOriginatorKeyFile
-	IL_013e:  ldarg.0 
-	IL_013f:  ldarg.2 
-	IL_0140:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0145:  ldstr "AssemblyKeyContainerName"
-	IL_014a:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_014f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_0154:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0159:  stfld string NAnt.VSNet.ProjectSettings::_assemblyKeyContainerName
-	IL_015e:  ldarg.2 
-	IL_015f:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0164:  ldstr "RunPostBuildEvent"
-	IL_0169:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_016e:  brfalse IL_0195
-
-	IL_0173:  nop 
-	IL_0174:  ldarg.0 
-	IL_0175:  ldarg.2 
-	IL_0176:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_017b:  ldstr "RunPostBuildEvent"
-	IL_0180:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0185:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_018a:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_018f:  stfld string NAnt.VSNet.ProjectSettings::_runPostBuildEvent
-	IL_0194:  nop 
-	IL_0195:  ldarg.2 
-	IL_0196:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_019b:  ldstr "PreBuildEvent"
-	IL_01a0:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_01a5:  brfalse IL_01cc
-
-	IL_01aa:  nop 
-	IL_01ab:  ldarg.0 
-	IL_01ac:  ldarg.2 
-	IL_01ad:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_01b2:  ldstr "PreBuildEvent"
-	IL_01b7:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_01bc:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_01c1:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_01c6:  stfld string NAnt.VSNet.ProjectSettings::_preBuildEvent
-	IL_01cb:  nop 
-	IL_01cc:  ldarg.2 
-	IL_01cd:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_01d2:  ldstr "PostBuildEvent"
-	IL_01d7:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_01dc:  brfalse IL_0203
-
-	IL_01e1:  nop 
-	IL_01e2:  ldarg.0 
-	IL_01e3:  ldarg.2 
-	IL_01e4:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_01e9:  ldstr "PostBuildEvent"
-	IL_01ee:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_01f3:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_01f8:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_01fd:  stfld string NAnt.VSNet.ProjectSettings::_postBuildEvent
-	IL_0202:  nop 
-	IL_0203:  ldarg.2 
-	IL_0204:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0209:  ldstr "RootNamespace"
-	IL_020e:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0213:  brfalse IL_0273
-
-	IL_0218:  nop 
-	IL_0219:  ldarg.0 
-	IL_021a:  ldarg.2 
-	IL_021b:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0220:  ldstr "RootNamespace"
-	IL_0225:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_022a:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_022f:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0234:  stfld string NAnt.VSNet.ProjectSettings::_rootNamespace
-	IL_0239:  ldarg.0 
-	IL_023a:  call instance string class NAnt.VSNet.ProjectSettings::get_RootNamespace()
-	IL_023f:  brfalse IL_0272
-
-	IL_0244:  ldarg.0 
-	IL_0245:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.ProjectSettings::get_Project()
-	IL_024a:  callvirt instance valuetype NAnt.VSNet.ProjectType class NAnt.VSNet.ProjectBase::get_Type()
-	IL_024f:  brtrue IL_0272
-
-	IL_0254:  nop 
-	IL_0255:  ldarg.0 
-	IL_0256:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
-	IL_025b:  ldstr "/rootnamespace:"
-	IL_0260:  ldarg.0 
-	IL_0261:  ldfld string NAnt.VSNet.ProjectSettings::_rootNamespace
-	IL_0266:  call string string::Concat(string, string)
-	IL_026b:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_0270:  pop 
-	IL_0271:  nop 
-	IL_0272:  nop 
-	IL_0273:  ldarg.2 
-	IL_0274:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0279:  ldstr "ApplicationIcon"
-	IL_027e:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0283:  brfalse IL_02ce
-
-	IL_0288:  nop 
-	IL_0289:  ldarg.2 
-	IL_028a:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_028f:  ldstr "ApplicationIcon"
-	IL_0294:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0299:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_029e:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_02a3:  stloc.2 
-	IL_02a4:  ldloc.2 
-	IL_02a5:  brfalse IL_02cd
-
-	IL_02aa:  nop 
-	IL_02ab:  ldarg.0 
-	IL_02ac:  ldarg.0 
-	IL_02ad:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.ProjectSettings::get_Project()
-	IL_02b2:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_02b7:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_02bc:  ldloc.2 
-	IL_02bd:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_02c2:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_02c7:  stfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.ProjectSettings::_applicationIcon
-	IL_02cc:  nop 
-	IL_02cd:  nop 
-	IL_02ce:  ldarg.0 
-	IL_02cf:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.ProjectSettings::get_Project()
-	IL_02d4:  callvirt instance valuetype NAnt.VSNet.ProjectType class NAnt.VSNet.ProjectBase::get_Type()
-	IL_02d9:  brtrue IL_0412
-
-	IL_02de:  nop 
-	IL_02df:  ldarg.2 
-	IL_02e0:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_02e5:  ldstr "OptionExplicit"
-	IL_02ea:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_02ef:  brfalse IL_0345
-
-	IL_02f4:  nop 
-	IL_02f5:  ldarg.2 
-	IL_02f6:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_02fb:  ldstr "OptionExplicit"
-	IL_0300:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0305:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_030a:  ldstr "Off"
-	IL_030f:  call bool string::op_Equality(string, string)
-	IL_0314:  brfalse IL_0331
-
-	IL_0319:  nop 
-	IL_031a:  ldarg.0 
-	IL_031b:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
-	IL_0320:  ldstr "/optionexplicit-"
-	IL_0325:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_032a:  pop 
-	IL_032b:  nop 
-	IL_032c:  br IL_0344
-
-	IL_0331:  nop 
-	IL_0332:  ldarg.0 
-	IL_0333:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
-	IL_0338:  ldstr "/optionexplicit+"
-	IL_033d:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_0342:  pop 
-	IL_0343:  nop 
-	IL_0344:  nop 
-	IL_0345:  ldarg.2 
-	IL_0346:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_034b:  ldstr "OptionStrict"
-	IL_0350:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0355:  brfalse IL_03ab
-
-	IL_035a:  nop 
-	IL_035b:  ldarg.2 
-	IL_035c:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0361:  ldstr "OptionStrict"
-	IL_0366:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_036b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_0370:  ldstr "Off"
-	IL_0375:  call bool string::op_Equality(string, string)
-	IL_037a:  brfalse IL_0397
-
-	IL_037f:  nop 
-	IL_0380:  ldarg.0 
-	IL_0381:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
-	IL_0386:  ldstr "/optionstrict-"
-	IL_038b:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_0390:  pop 
-	IL_0391:  nop 
-	IL_0392:  br IL_03aa
-
-	IL_0397:  nop 
-	IL_0398:  ldarg.0 
-	IL_0399:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
-	IL_039e:  ldstr "/optionstrict+"
-	IL_03a3:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_03a8:  pop 
-	IL_03a9:  nop 
-	IL_03aa:  nop 
-	IL_03ab:  ldarg.2 
-	IL_03ac:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_03b1:  ldstr "OptionCompare"
-	IL_03b6:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_03bb:  brfalse IL_0411
-
-	IL_03c0:  nop 
-	IL_03c1:  ldarg.2 
-	IL_03c2:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_03c7:  ldstr "OptionCompare"
-	IL_03cc:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_03d1:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_03d6:  ldstr "Text"
-	IL_03db:  call bool string::op_Equality(string, string)
-	IL_03e0:  brfalse IL_03fd
-
-	IL_03e5:  nop 
-	IL_03e6:  ldarg.0 
-	IL_03e7:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
-	IL_03ec:  ldstr "/optioncompare:text"
-	IL_03f1:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_03f6:  pop 
-	IL_03f7:  nop 
-	IL_03f8:  br IL_0410
-
-	IL_03fd:  nop 
-	IL_03fe:  ldarg.0 
-	IL_03ff:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
-	IL_0404:  ldstr "/optioncompare:binary"
-	IL_0409:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	IL_040e:  pop 
-	IL_040f:  nop 
-	IL_0410:  nop 
-	IL_0411:  nop 
-	IL_0412:  nop 
-	IL_0413:  ldloc.0 
-	IL_0414:  callvirt instance class [mscorlib]System.Collections.IDictionaryEnumerator class [mscorlib]System.Collections.Hashtable::GetEnumerator()
-	IL_0419:  stloc.s 4
-	.try { // 0
-	  IL_041b:  br IL_0474
-
-	  IL_0420:  ldloc.s 4
-	  IL_0422:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0427:  unbox.any [mscorlib]System.Collections.DictionaryEntry
-	  IL_042c:  stloc.3 
-	  IL_042d:  nop 
-	  IL_042e:  ldarg.2 
-	  IL_042f:  ldloca.s 3
-	  IL_0431:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Key()
-	  IL_0436:  callvirt instance string object::ToString()
-	  IL_043b:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	  IL_0440:  stloc.s 5
-	  IL_0442:  ldloc.s 5
-	  IL_0444:  call bool string::IsNullOrEmpty(string)
-	  IL_0449:  brfalse IL_0454
-
-	  IL_044e:  nop 
-	  IL_044f:  leave IL_0474
-
-	  IL_0454:  ldarg.0 
-	  IL_0455:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
-	  IL_045a:  ldloca.s 3
-	  IL_045c:  call instance object valuetype [mscorlib]System.Collections.DictionaryEntry::get_Value()
-	  IL_0461:  callvirt instance string object::ToString()
-	  IL_0466:  ldloc.s 5
-	  IL_0468:  call string string::Format(string, object)
-	  IL_046d:  callvirt instance int32 class [mscorlib]System.Collections.ArrayList::Add(object)
-	  IL_0472:  pop 
-	  IL_0473:  nop 
-	  IL_0474:  ldloc.s 4
-	  IL_0476:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_047b:  brtrue IL_0420
-
-	  IL_0480:  leave IL_049c
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0485:  ldloc.s 4
-	  IL_0487:  isinst [mscorlib]System.IDisposable
-	  IL_048c:  dup 
-	  IL_048d:  stloc.s 6
-	  IL_048f:  brfalse IL_049b
-
-	  IL_0494:  ldloc.s 6
-	  IL_0496:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_049b:  endfinally 
-	} // end handler 0
-	IL_049c:  ret 
-    } // end of method ProjectSettings::.ctor
-
-    // method line 701
-    .method public hidebysig specialname 
-           instance default string[] get_Settings ()  cil managed 
-    {
-        // Method begins at RVA 0x146d8
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		string[]	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Collections.ArrayList NAnt.VSNet.ProjectSettings::_settings
-	IL_0007:  ldtoken [mscorlib]System.String
-	IL_000c:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0011:  callvirt instance class [mscorlib]System.Array class [mscorlib]System.Collections.ArrayList::ToArray(class [mscorlib]System.Type)
-	IL_0016:  castclass string[]
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method ProjectSettings::get_Settings
-
-    // method line 702
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_ApplicationIcon ()  cil managed 
-    {
-        // Method begins at RVA 0x14708
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VSNet.ProjectSettings::_applicationIcon
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_ApplicationIcon
-
-    // method line 703
-    .method public hidebysig specialname 
-           instance default string get_AssemblyName ()  cil managed 
-    {
-        // Method begins at RVA 0x14724
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_assemblyName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_AssemblyName
-
-    // method line 704
-    .method public hidebysig specialname 
-           instance default string get_AssemblyOriginatorKeyFile ()  cil managed 
-    {
-        // Method begins at RVA 0x14740
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_assemblyOriginatorKeyFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_AssemblyOriginatorKeyFile
-
-    // method line 705
-    .method public hidebysig specialname 
-           instance default string get_AssemblyKeyContainerName ()  cil managed 
-    {
-        // Method begins at RVA 0x1475c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_assemblyKeyContainerName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_AssemblyKeyContainerName
-
-    // method line 706
-    .method public hidebysig specialname 
-           instance default class [System]System.CodeDom.Compiler.TempFileCollection get_TemporaryFiles ()  cil managed 
-    {
-        // Method begins at RVA 0x14778
-	// Code size 20 (0x14)
-	.maxstack 1
-	.locals init (
-		class [System]System.CodeDom.Compiler.TempFileCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.ProjectSettings::get_Project()
-	IL_0007:  callvirt instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.ProjectBase::get_TemporaryFiles()
-	IL_000c:  stloc.0 
-	IL_000d:  br IL_0012
-
-	IL_0012:  ldloc.0 
-	IL_0013:  ret 
-    } // end of method ProjectSettings::get_TemporaryFiles
-
-    // method line 707
-    .method public hidebysig specialname 
-           instance default string get_OutputFileName ()  cil managed 
-    {
-        // Method begins at RVA 0x14798
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NAnt.VSNet.ProjectSettings::get_AssemblyName()
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance string class NAnt.VSNet.ProjectSettings::get_OutputExtension()
-	IL_000d:  call string string::Concat(string, string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
-
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ProjectSettings::get_OutputFileName
-
-    // method line 708
-    .method public hidebysig specialname 
-           instance default valuetype NAnt.VSNet.ManagedOutputType get_OutputType ()  cil managed 
-    {
-        // Method begins at RVA 0x147c0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.VSNet.ManagedOutputType	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld valuetype NAnt.VSNet.ManagedOutputType NAnt.VSNet.ProjectSettings::_outputType
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_OutputType
-
-    // method line 709
-    .method public hidebysig specialname 
-           instance default string get_OutputExtension ()  cil managed 
-    {
-        // Method begins at RVA 0x147dc
-	// Code size 57 (0x39)
-	.maxstack 2
-	.locals init (
-		valuetype NAnt.VSNet.ManagedOutputType	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance valuetype NAnt.VSNet.ManagedOutputType class NAnt.VSNet.ProjectSettings::get_OutputType()
-	IL_0007:  stloc.0 
-	IL_0008:  ldloc.0 
-	IL_0009:  ldc.i4.1 
-	IL_000a:  sub 
-	IL_000b:  switch (
-	  IL_0021,
-	  IL_002c,
-	  IL_002c)
-	IL_001c:  br IL_002c
-
-	IL_0021:  ldstr ".dll"
-	IL_0026:  stloc.1 
-	IL_0027:  br IL_0037
-
-	IL_002c:  ldstr ".exe"
-	IL_0031:  stloc.1 
-	IL_0032:  br IL_0037
-
-	IL_0037:  ldloc.1 
-	IL_0038:  ret 
-    } // end of method ProjectSettings::get_OutputExtension
-
-    // method line 710
-    .method public hidebysig specialname 
-           instance default string get_RootNamespace ()  cil managed 
-    {
-        // Method begins at RVA 0x14824
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_rootNamespace
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_RootNamespace
-
-    // method line 711
-    .method public hidebysig specialname 
-           instance default string get_Guid ()  cil managed 
-    {
-        // Method begins at RVA 0x14840
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_guid
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_Guid
-
-    // method line 712
-    .method public hidebysig specialname 
-           instance default string get_RunPostBuildEvent ()  cil managed 
-    {
-        // Method begins at RVA 0x1485c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_runPostBuildEvent
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_RunPostBuildEvent
-
-    // method line 713
-    .method public hidebysig specialname 
-           instance default string get_PreBuildEvent ()  cil managed 
-    {
-        // Method begins at RVA 0x14878
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_preBuildEvent
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_PreBuildEvent
-
-    // method line 714
-    .method public hidebysig specialname 
-           instance default string get_PostBuildEvent ()  cil managed 
-    {
-        // Method begins at RVA 0x14894
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VSNet.ProjectSettings::_postBuildEvent
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_PostBuildEvent
-
-    // method line 715
-    .method private hidebysig specialname 
-           instance default class NAnt.VSNet.ManagedProjectBase get_Project ()  cil managed 
-    {
-        // Method begins at RVA 0x148b0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class NAnt.VSNet.ManagedProjectBase	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class NAnt.VSNet.ManagedProjectBase NAnt.VSNet.ProjectSettings::_project
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ProjectSettings::get_Project
-
-    // method line 716
-    .method family virtual hidebysig newslot 
-           instance default valuetype NAnt.VSNet.ManagedOutputType GetOutputType (class [System.Xml]System.Xml.XmlElement settingsXml)  cil managed 
-    {
-        // Method begins at RVA 0x148cc
-	// Code size 204 (0xcc)
-	.maxstack 4
-	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		string	V_1,
-		valuetype NAnt.VSNet.ManagedOutputType	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0007:  ldstr "OutputType"
-	IL_000c:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0011:  stloc.0 
-	IL_0012:  ldloc.0 
-	IL_0013:  brtrue IL_003e
-
-	IL_0018:  nop 
-	IL_0019:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_001e:  ldstr "Project \"{0}\" is invalid: the output type is not set."
-	IL_0023:  ldarg.0 
-	IL_0024:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.ProjectSettings::get_Project()
-	IL_0029:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_002e:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0033:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0038:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_003d:  throw 
-	IL_003e:  ldloc.0 
-	IL_003f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_0044:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0049:  callvirt instance string string::ToLower(class [mscorlib]System.Globalization.CultureInfo)
-	IL_004e:  stloc.1 
-	IL_004f:  ldloc.1 
-	IL_0050:  brfalse IL_009f
-
-	IL_0055:  ldloc.1 
-	IL_0056:  ldstr "library"
-	IL_005b:  call bool string::op_Equality(string, string)
-	IL_0060:  brtrue IL_008a
-
-	IL_0065:  ldloc.1 
-	IL_0066:  ldstr "exe"
-	IL_006b:  call bool string::op_Equality(string, string)
-	IL_0070:  brtrue IL_0091
-
-	IL_0075:  ldloc.1 
-	IL_0076:  ldstr "winexe"
-	IL_007b:  call bool string::op_Equality(string, string)
-	IL_0080:  brtrue IL_0098
-
-	IL_0085:  br IL_009f
-
-	IL_008a:  ldc.i4.1 
-	IL_008b:  stloc.2 
-	IL_008c:  br IL_00ca
-
-	IL_0091:  ldc.i4.2 
-	IL_0092:  stloc.2 
-	IL_0093:  br IL_00ca
-
-	IL_0098:  ldc.i4.3 
-	IL_0099:  stloc.2 
-	IL_009a:  br IL_00ca
-
-	IL_009f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00a4:  ldstr "Output type \"{0}\" of project \"{1}\" is not supported."
-	IL_00a9:  ldloc.0 
-	IL_00aa:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_00af:  ldarg.0 
-	IL_00b0:  call instance class NAnt.VSNet.ManagedProjectBase class NAnt.VSNet.ProjectSettings::get_Project()
-	IL_00b5:  callvirt instance string class NAnt.VSNet.ProjectBase::get_Name()
-	IL_00ba:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_00bf:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_00c4:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_00c9:  throw 
-	IL_00ca:  ldloc.2 
-	IL_00cb:  ret 
-    } // end of method ProjectSettings::GetOutputType
-
-    // method line 717
-    .method public static hidebysig 
-           default string GetProjectGuid (string projectFile, class [System.Xml]System.Xml.XmlElement elemRoot)  cil managed 
-    {
-        // Method begins at RVA 0x149a4
-	// Code size 92 (0x5c)
-	.maxstack 4
-	.locals init (
-		class [System.Xml]System.Xml.XmlAttribute	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::get_FirstChild()
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_000c:  ldstr "ProjectGuid"
-	IL_0011:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0016:  stloc.0 
-	IL_0017:  ldloc.0 
-	IL_0018:  brtrue IL_0044
-
-	IL_001d:  nop 
-	IL_001e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0023:  ldstr "Project file '{0}' is not valid. There's no \"ProjectGuid\" attribute on the <{1} ... /> node."
-	IL_0028:  ldarg.0 
-	IL_0029:  ldarg.1 
-	IL_002a:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::get_FirstChild()
-	IL_002f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_0034:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_0039:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_003e:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_0043:  throw 
-	IL_0044:  ldloc.0 
-	IL_0045:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_004a:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_004f:  callvirt instance string string::ToUpper(class [mscorlib]System.Globalization.CultureInfo)
-	IL_0054:  stloc.1 
-	IL_0055:  br IL_005a
-
-	IL_005a:  ldloc.1 
-	IL_005b:  ret 
-    } // end of method ProjectSettings::GetProjectGuid
-
-    // method line 718
-    .method public hidebysig 
-           instance default string GetTemporaryFilename (string fileName)  cil managed 
-    {
-        // Method begins at RVA 0x14a0c
-	// Code size 26 (0x1a)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [System]System.CodeDom.Compiler.TempFileCollection class NAnt.VSNet.ProjectSettings::get_TemporaryFiles()
-	IL_0007:  callvirt instance string class [System]System.CodeDom.Compiler.TempFileCollection::get_BasePath()
-	IL_000c:  ldarg.1 
-	IL_000d:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0012:  stloc.0 
-	IL_0013:  br IL_0018
-
-	IL_0018:  ldloc.0 
-	IL_0019:  ret 
-    } // end of method ProjectSettings::GetTemporaryFilename
-
-	.property instance string[] Settings ()
-	{
-		.get instance default string[] NAnt.VSNet.ProjectSettings::get_Settings () 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo ApplicationIcon ()
-	{
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VSNet.ProjectSettings::get_ApplicationIcon () 
-	}
-	.property instance string AssemblyName ()
-	{
-		.get instance default string NAnt.VSNet.ProjectSettings::get_AssemblyName () 
-	}
-	.property instance string AssemblyOriginatorKeyFile ()
-	{
-		.get instance default string NAnt.VSNet.ProjectSettings::get_AssemblyOriginatorKeyFile () 
-	}
-	.property instance string AssemblyKeyContainerName ()
-	{
-		.get instance default string NAnt.VSNet.ProjectSettings::get_AssemblyKeyContainerName () 
-	}
-	.property instance class [System]System.CodeDom.Compiler.TempFileCollection TemporaryFiles ()
-	{
-		.get instance default class [System]System.CodeDom.Compiler.TempFileCollection NAnt.VSNet.ProjectSettings::get_TemporaryFiles () 
-	}
-	.property instance string OutputFileName ()
-	{
-		.get instance default string NAnt.VSNet.ProjectSettings::get_OutputFileName () 
-	}
-	.property instance valuetype NAnt.VSNet.ManagedOutputType OutputType ()
-	{
-		.get instance default valuetype NAnt.VSNet.ManagedOutputType NAnt.VSNet.ProjectSettings::get_OutputType () 
-	}
-	.property instance string OutputExtension ()
-	{
-		.get instance default string NAnt.VSNet.ProjectSettings::get_OutputExtension () 
-	}
-	.property instance string RootNamespace ()
-	{
-		.get instance default string NAnt.VSNet.ProjectSettings::get_RootNamespace () 
-	}
-	.property instance string Guid ()
-	{
-		.get instance default string NAnt.VSNet.ProjectSettings::get_Guid () 
-	}
-	.property instance string RunPostBuildEvent ()
-	{
-		.get instance default string NAnt.VSNet.ProjectSettings::get_RunPostBuildEvent () 
-	}
-	.property instance string PreBuildEvent ()
-	{
-		.get instance default string NAnt.VSNet.ProjectSettings::get_PreBuildEvent () 
-	}
-	.property instance string PostBuildEvent ()
-	{
-		.get instance default string NAnt.VSNet.ProjectSettings::get_PostBuildEvent () 
-	}
-	.property instance class NAnt.VSNet.ManagedProjectBase Project ()
-	{
-		.get instance default class NAnt.VSNet.ManagedProjectBase NAnt.VSNet.ProjectSettings::get_Project () 
-	}
-  } // end of class NAnt.VSNet.ProjectSettings
-}
-
-.namespace NAnt.VSNet
-{
-  .class public auto ansi beforefieldinit VBProject
-  	extends NAnt.VSNet.ManagedProjectBase
-  {
-    .field  private initonly  class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection _imports
-
-    // method line 719
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (class NAnt.VSNet.SolutionBase solution, string projectPath, class [System.Xml]System.Xml.XmlElement xmlDefinition, class NAnt.VSNet.Tasks.SolutionTask solutionTask, class [System]System.CodeDom.Compiler.TempFileCollection tfc, class [NAnt.Core]NAnt.Core.Util.GacCache gacCache, class NAnt.VSNet.ReferencesResolver refResolver, class [mscorlib]System.IO.DirectoryInfo outputDir)  cil managed 
-    {
-        // Method begins at RVA 0x14a34
-	// Code size 171 (0xab)
-	.maxstack 9
-	.locals init (
-		class [System.Xml]System.Xml.XmlNodeList	V_0,
-		class [System.Xml]System.Xml.XmlElement	V_1,
-		class [mscorlib]System.Collections.IEnumerator	V_2,
-		class [System.Xml]System.Xml.XmlAttribute	V_3,
-		string	V_4,
-		class [mscorlib]System.IDisposable	V_5)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  ldarg.s 4
-	IL_0006:  ldarg.s 5
-	IL_0008:  ldarg.s 6
-	IL_000a:  ldarg.s 7
-	IL_000c:  ldarg.s 8
-	IL_000e:  call instance void class NAnt.VSNet.ManagedProjectBase::'.ctor'(class NAnt.VSNet.SolutionBase, string, class [System.Xml]System.Xml.XmlElement, class NAnt.VSNet.Tasks.SolutionTask, class [System]System.CodeDom.Compiler.TempFileCollection, class [NAnt.Core]NAnt.Core.Util.GacCache, class NAnt.VSNet.ReferencesResolver, class [mscorlib]System.IO.DirectoryInfo)
-	IL_0013:  nop 
-	IL_0014:  ldarg.0 
-	IL_0015:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection::'.ctor'()
-	IL_001a:  stfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection NAnt.VSNet.VBProject::_imports
-	IL_001f:  ldarg.3 
-	IL_0020:  ldstr "//Imports/Import"
-	IL_0025:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
-	IL_002a:  stloc.0 
-	IL_002b:  nop 
-	IL_002c:  ldloc.0 
-	IL_002d:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_0032:  stloc.2 
-	.try { // 0
-	  IL_0033:  br IL_0084
-
-	  IL_0038:  ldloc.2 
-	  IL_0039:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_003e:  castclass [System.Xml]System.Xml.XmlElement
-	  IL_0043:  stloc.1 
-	  IL_0044:  nop 
-	  IL_0045:  ldloc.1 
-	  IL_0046:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	  IL_004b:  ldstr "Namespace"
-	  IL_0050:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	  IL_0055:  stloc.3 
-	  IL_0056:  ldloc.3 
-	  IL_0057:  brfalse IL_0083
-
-	  IL_005c:  nop 
-	  IL_005d:  ldloc.3 
-	  IL_005e:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	  IL_0063:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_0068:  callvirt instance string string::ToString(class [mscorlib]System.IFormatProvider)
-	  IL_006d:  stloc.s 4
-	  IL_006f:  ldarg.0 
-	  IL_0070:  ldfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection NAnt.VSNet.VBProject::_imports
-	  IL_0075:  ldloc.s 4
-	  IL_0077:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImport::'.ctor'(string)
-	  IL_007c:  callvirt instance int32 class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection::Add(class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImport)
-	  IL_0081:  pop 
-	  IL_0082:  nop 
-	  IL_0083:  nop 
-	  IL_0084:  ldloc.2 
-	  IL_0085:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_008a:  brtrue IL_0038
-
-	  IL_008f:  leave IL_00aa
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0094:  ldloc.2 
-	  IL_0095:  isinst [mscorlib]System.IDisposable
-	  IL_009a:  dup 
-	  IL_009b:  stloc.s 5
-	  IL_009d:  brfalse IL_00a9
-
-	  IL_00a2:  ldloc.s 5
-	  IL_00a4:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_00a9:  endfinally 
-	} // end handler 0
-	IL_00aa:  ret 
-    } // end of method VBProject::.ctor
-
-    // method line 720
-    .method family virtual hidebysig 
-           instance default void WriteProjectOptions (class [mscorlib]System.IO.StreamWriter sw)  cil managed 
-    {
-        // Method begins at RVA 0x14afc
-	// Code size 43 (0x2b)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection NAnt.VSNet.VBProject::_imports
-	IL_0007:  callvirt instance int32 class [NAnt.DotNetTasks]NAnt.DotNet.Types.DataTypeCollectionBase::get_Count()
-	IL_000c:  ldc.i4.0 
-	IL_000d:  ble IL_002a
-
-	IL_0012:  nop 
-	IL_0013:  ldarg.1 
-	IL_0014:  ldstr "/imports:{0}"
-	IL_0019:  ldarg.0 
-	IL_001a:  ldfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.NamespaceImportCollection NAnt.VSNet.VBProject::_imports
-	IL_001f:  callvirt instance string object::ToString()
-	IL_0024:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_0029:  nop 
-	IL_002a:  ret 
-    } // end of method VBProject::WriteProjectOptions
-
-    // method line 721
-    .method public virtual hidebysig specialname 
-           instance default valuetype NAnt.VSNet.ProjectType get_Type ()  cil managed 
-    {
-        // Method begins at RVA 0x14b28
-	// Code size 10 (0xa)
-	.maxstack 1
-	.locals init (
-		valuetype NAnt.VSNet.ProjectType	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  br IL_0008
-
-	IL_0008:  ldloc.0 
-	IL_0009:  ret 
-    } // end of method VBProject::get_Type
-
-    // method line 722
-    .method family virtual hidebysig 
-           instance default void VerifyProjectXml (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x14b3e
-	// Code size 46 (0x2e)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  call bool class NAnt.VSNet.VBProject::IsSupported(class [System.Xml]System.Xml.XmlElement)
-	IL_0007:  brtrue IL_002d
-
-	IL_000c:  nop 
-	IL_000d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0012:  ldstr "Project '{0}' is not a valid VB.NET project."
-	IL_0017:  ldarg.0 
-	IL_0018:  callvirt instance string class NAnt.VSNet.ProjectBase::get_ProjectPath()
-	IL_001d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0022:  ldsfld class [NAnt.Core]NAnt.Core.Location [NAnt.Core]NAnt.Core.Location::UnknownLocation
-	IL_0027:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location)
-	IL_002c:  throw 
-	IL_002d:  ret 
-    } // end of method VBProject::VerifyProjectXml
-
-    // method line 723
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.ProductVersion DetermineProductVersion (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x14b70
-	// Code size 43 (0x2b)
-	.maxstack 2
-	.locals init (
-		valuetype NAnt.VSNet.ProductVersion	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "docElement"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.1 
-	IL_0014:  ldstr "./VisualBasic"
-	IL_0019:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	IL_001e:  call valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ManagedProjectBase::GetProductVersion(class [System.Xml]System.Xml.XmlNode)
-	IL_0023:  stloc.0 
-	IL_0024:  br IL_0029
-
-	IL_0029:  ldloc.0 
-	IL_002a:  ret 
-    } // end of method VBProject::DetermineProductVersion
-
-    // method line 724
-    .method family virtual hidebysig specialname 
-           instance default string get_FileExtension ()  cil managed 
-    {
-        // Method begins at RVA 0x14ba8
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldstr ".vb"
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method VBProject::get_FileExtension
-
-    // method line 725
-    .method family virtual hidebysig 
-           instance default valuetype NAnt.VSNet.ProjectLocation DetermineProjectLocation (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x14bc4
-	// Code size 25 (0x19)
-	.maxstack 2
-	.locals init (
-		valuetype NAnt.VSNet.ProjectLocation	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "./VisualBasic"
-	IL_0007:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	IL_000c:  call valuetype NAnt.VSNet.ProjectLocation class NAnt.VSNet.ManagedProjectBase::GetProjectLocation(class [System.Xml]System.Xml.XmlNode)
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method VBProject::DetermineProjectLocation
-
-    // method line 726
-    .method family virtual hidebysig 
-           instance default class [System]System.Diagnostics.ProcessStartInfo GetProcessStartInfo (class NAnt.VSNet.ConfigurationBase config, string responseFile)  cil managed 
-    {
-        // Method begins at RVA 0x14bec
-	// Code size 132 (0x84)
-	.maxstack 4
-	.locals init (
-		class [System]System.Diagnostics.ProcessStartInfo	V_0,
-		class [System]System.Diagnostics.ProcessStartInfo	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0007:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_000c:  callvirt instance class [NAnt.Core]NAnt.Core.FrameworkInfo class [NAnt.Core]NAnt.Core.Project::get_TargetFramework()
-	IL_0011:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
-	IL_0016:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001b:  ldstr "vbc.exe"
-	IL_0020:  call string class [NAnt.Core]NAnt.Core.Util.FileUtils::CombinePaths(string, string)
-	IL_0025:  ldstr "@\""
-	IL_002a:  ldarg.2 
-	IL_002b:  ldstr "\""
-	IL_0030:  call string string::Concat(string, string, string)
-	IL_0035:  newobj instance void class [System]System.Diagnostics.ProcessStartInfo::'.ctor'(string, string)
-	IL_003a:  stloc.0 
-	IL_003b:  ldarg.0 
-	IL_003c:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0041:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
-	IL_0046:  brfalse IL_0068
-
-	IL_004b:  nop 
-	IL_004c:  ldloc.0 
-	IL_004d:  ldarg.0 
-	IL_004e:  call instance class NAnt.VSNet.Tasks.SolutionTask class NAnt.VSNet.ProjectBase::get_SolutionTask()
-	IL_0053:  callvirt instance class [mscorlib]System.IO.FileInfo class NAnt.VSNet.Tasks.SolutionTask::get_SolutionFile()
-	IL_0058:  callvirt instance string class [mscorlib]System.IO.FileInfo::get_DirectoryName()
-	IL_005d:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
-	IL_0062:  nop 
-	IL_0063:  br IL_007b
-
-	IL_0068:  nop 
-	IL_0069:  ldloc.0 
-	IL_006a:  ldarg.0 
-	IL_006b:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VSNet.ProjectBase::get_ProjectDirectory()
-	IL_0070:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0075:  callvirt instance void class [System]System.Diagnostics.ProcessStartInfo::set_WorkingDirectory(string)
-	IL_007a:  nop 
-	IL_007b:  ldloc.0 
-	IL_007c:  stloc.1 
-	IL_007d:  br IL_0082
-
-	IL_0082:  ldloc.1 
-	IL_0083:  ret 
-    } // end of method VBProject::GetProcessStartInfo
-
-    // method line 727
-    .method public static hidebysig 
-           default bool IsSupported (class [System.Xml]System.Xml.XmlElement docElement)  cil managed 
-    {
-        // Method begins at RVA 0x14c7c
-	// Code size 102 (0x66)
-	.maxstack 2
-	.locals init (
-		bool	V_0,
-		class [System.Xml]System.Xml.XmlNode	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_000f
-
-	IL_0007:  nop 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  stloc.0 
-	IL_000a:  br IL_0064
-
-	IL_000f:  ldarg.0 
-	IL_0010:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Name()
-	IL_0015:  ldstr "VisualStudioProject"
-	IL_001a:  call bool string::op_Inequality(string, string)
-	IL_001f:  brfalse IL_002c
-
-	IL_0024:  nop 
-	IL_0025:  ldc.i4.0 
-	IL_0026:  stloc.0 
-	IL_0027:  br IL_0064
-
-	IL_002c:  ldarg.0 
-	IL_002d:  ldstr "./VisualBasic"
-	IL_0032:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	IL_0037:  stloc.1 
-	IL_0038:  ldloc.1 
-	IL_0039:  brtrue IL_0046
-
-	IL_003e:  nop 
-	IL_003f:  ldc.i4.0 
-	IL_0040:  stloc.0 
-	IL_0041:  br IL_0064
-
-	.try { // 0
-	  IL_0046:  nop 
-	  IL_0047:  ldloc.1 
-	  IL_0048:  call valuetype NAnt.VSNet.ProductVersion class NAnt.VSNet.ManagedProjectBase::GetProductVersion(class [System.Xml]System.Xml.XmlNode)
-	  IL_004d:  pop 
-	  IL_004e:  nop 
-	  IL_004f:  leave IL_005d
-
-	} // end .try 0
-	catch class [mscorlib]System.Object { // 0
-	  IL_0054:  pop 
-	  IL_0055:  nop 
-	  IL_0056:  ldc.i4.0 
-	  IL_0057:  stloc.0 
-	  IL_0058:  leave IL_0064
-
-	} // end handler 0
-	IL_005d:  ldc.i4.1 
-	IL_005e:  stloc.0 
-	IL_005f:  br IL_0064
-
-	IL_0064:  ldloc.0 
-	IL_0065:  ret 
-    } // end of method VBProject::IsSupported
-
-	.property instance valuetype NAnt.VSNet.ProjectType Type ()
-	{
-		.get instance default valuetype NAnt.VSNet.ProjectType NAnt.VSNet.VBProject::get_Type () 
-	}
-	.property instance string FileExtension ()
-	{
-		.get instance default string NAnt.VSNet.VBProject::get_FileExtension () 
-	}
-  } // end of class NAnt.VSNet.VBProject
-}
-
/usr/share/NAnt/bin/NAnt.VSNetTasks.xml differs (XML 1.0 document, ASCII text)
--- old//usr/share/NAnt/bin/NAnt.VSNetTasks.xml	2018-06-14 00:00:00.000000000 +0000
+++ new//usr/share/NAnt/bin/NAnt.VSNetTasks.xml	2018-06-14 00:00:00.000000000 +0000
@@ -4,72 +4,6 @@
         <name>NAnt.VSNetTasks</name>
     </assembly>
     <members>
-        <member name="M:NAnt.VSNet.Extensibility.IProjectBuildProvider.IsSupported(System.String,System.Xml.XmlElement)">
-             <summary>
-             Returns a number representing how much this file fits this project type.
-             </summary>
-             <param name="projectExt"></param>
-             <param name="xmlDefinition"></param>
-             <returns></returns>
-             <remarks>
-             This enables the override in other providers. Do not return big numbers, mainly when compring only on filename.
-             </remarks>
-            </member>
-        <member name="T:NAnt.VSNet.Everett.Solution">
-             <summary>
-             Analyses Microsoft Visual Studio .NET 2003 (Everett) solution files.
-             </summary>
-            </member>
-        <member name="T:NAnt.VSNet.Types.WebMap">
-             <summary>
-             Represents a single mapping from URL project path to physical project 
-             path.
-             </summary>
-            </member>
-        <member name="P:NAnt.VSNet.Types.WebMap.Url">
-             <summary>
-             Specifies the URL of the project file, or a URL fragment to match.
-             </summary>
-             <value>
-             The URL of the project file or the URL fragment to match.
-             </value>
-            </member>
-        <member name="P:NAnt.VSNet.Types.WebMap.Path">
-             <summary>
-             Specifies the actual path to the project file, or the path fragment 
-             to replace.
-             </summary>
-             <value>
-             The actual path to the project file or the path fragment to replace 
-             the URL fragment with.
-             </value>
-            </member>
-        <member name="P:NAnt.VSNet.Types.WebMap.CaseSensitive">
-             <summary>
-             Specifies whether the mapping is case-sensitive or not.
-             </summary>
-             <value>
-             A boolean flag representing the case-sensitivity of the mapping.  Default is <see langword="true" />.
-             </value>
-            </member>
-        <member name="P:NAnt.VSNet.Types.WebMap.IfDefined">
-             <summary>
-             Indicates if the URL of the project file should be mapped.
-             </summary>
-             <value>
-             <see langword="true" /> if the URL of the project file should be 
-             mapped; otherwise, <see langword="false" />.
-             </value>
-            </member>
-        <member name="P:NAnt.VSNet.Types.WebMap.UnlessDefined">
-             <summary>
-             Indicates if the URL of the project file should not be mapped.
-             </summary>
-             <value>
-             <see langword="true" /> if the URL of the project file should not 
-             be mapped; otherwise, <see langword="false" />.
-             </value>
-            </member>
         <member name="T:NAnt.VSNet.Types.UsePrecompiledHeader">
              <summary>
              Indicates the possible ways in which precompiled header file use is 
@@ -141,26 +75,6 @@
              Use ATL in a Shared DLL.
              </summary>
             </member>
-        <member name="T:NAnt.VSNet.Types.UseOfMFC">
-             <summary>
-             Defines how the project is using the MFC library.
-             </summary>
-            </member>
-        <member name="F:NAnt.VSNet.Types.UseOfMFC.NotUsing">
-             <summary>
-             Don't use MFC.
-             </summary>
-            </member>
-        <member name="F:NAnt.VSNet.Types.UseOfMFC.Static">
-             <summary>
-             Use MFC in a Static Library.
-             </summary>
-            </member>
-        <member name="F:NAnt.VSNet.Types.UseOfMFC.Shared">
-             <summary>
-             Use MFC in a Shared DLL.
-             </summary>
-            </member>
         <member name="T:NAnt.VSNet.Types.WebMapCollection">
              <summary>
              Contains a strongly typed collection of <see cref="T:NAnt.VSNet.Types.WebMap" /> 
@@ -316,6 +230,92 @@
              first element in the collection.
              </summary>
             </member>
+        <member name="T:NAnt.VSNet.Types.WebMap">
+             <summary>
+             Represents a single mapping from URL project path to physical project 
+             path.
+             </summary>
+            </member>
+        <member name="P:NAnt.VSNet.Types.WebMap.Url">
+             <summary>
+             Specifies the URL of the project file, or a URL fragment to match.
+             </summary>
+             <value>
+             The URL of the project file or the URL fragment to match.
+             </value>
+            </member>
+        <member name="P:NAnt.VSNet.Types.WebMap.Path">
+             <summary>
+             Specifies the actual path to the project file, or the path fragment 
+             to replace.
+             </summary>
+             <value>
+             The actual path to the project file or the path fragment to replace 
+             the URL fragment with.
+             </value>
+            </member>
+        <member name="P:NAnt.VSNet.Types.WebMap.CaseSensitive">
+             <summary>
+             Specifies whether the mapping is case-sensitive or not.
+             </summary>
+             <value>
+             A boolean flag representing the case-sensitivity of the mapping.  Default is <see langword="true" />.
+             </value>
+            </member>
+        <member name="P:NAnt.VSNet.Types.WebMap.IfDefined">
+             <summary>
+             Indicates if the URL of the project file should be mapped.
+             </summary>
+             <value>
+             <see langword="true" /> if the URL of the project file should be 
+             mapped; otherwise, <see langword="false" />.
+             </value>
+            </member>
+        <member name="P:NAnt.VSNet.Types.WebMap.UnlessDefined">
+             <summary>
+             Indicates if the URL of the project file should not be mapped.
+             </summary>
+             <value>
+             <see langword="true" /> if the URL of the project file should not 
+             be mapped; otherwise, <see langword="false" />.
+             </value>
+            </member>
+        <member name="T:NAnt.VSNet.Types.UseOfMFC">
+             <summary>
+             Defines how the project is using the MFC library.
+             </summary>
+            </member>
+        <member name="F:NAnt.VSNet.Types.UseOfMFC.NotUsing">
+             <summary>
+             Don't use MFC.
+             </summary>
+            </member>
+        <member name="F:NAnt.VSNet.Types.UseOfMFC.Static">
+             <summary>
+             Use MFC in a Static Library.
+             </summary>
+            </member>
+        <member name="F:NAnt.VSNet.Types.UseOfMFC.Shared">
+             <summary>
+             Use MFC in a Shared DLL.
+             </summary>
+            </member>
+        <member name="M:NAnt.VSNet.Extensibility.IProjectBuildProvider.IsSupported(System.String,System.Xml.XmlElement)">
+             <summary>
+             Returns a number representing how much this file fits this project type.
+             </summary>
+             <param name="projectExt"></param>
+             <param name="xmlDefinition"></param>
+             <returns></returns>
+             <remarks>
+             This enables the override in other providers. Do not return big numbers, mainly when compring only on filename.
+             </remarks>
+            </member>
+        <member name="T:NAnt.VSNet.Rainier.Solution">
+             <summary>
+             Analyses Microsoft Visual Studio .NET 2002 (Rainier) solution files.
+             </summary>
+            </member>
         <member name="T:NAnt.VSNet.Tasks.SolutionTask">
              <summary>
              Compiles VS.NET solutions (or sets of projects), automatically determining 
@@ -596,851 +596,505 @@
              The list of folders that should be scanned for assembly references.
              </returns>
             </member>
-        <member name="T:NAnt.VSNet.Rainier.Solution">
PE32 Mono/.Net assembly: /usr/share/NAnt/bin/NAnt.VisualCppTasks.dll
/usr/share/NAnt/bin/NAnt.VisualCppTasks.dll differs (PE32 executable (DLL) (console) Intel 80386, Mono/.Net assembly, for MS Windows)
--- old /usr/share/NAnt/bin/NAnt.VisualCppTasks.dll (monodis)
+++ new /usr/share/NAnt/bin/NAnt.VisualCppTasks.dll (monodis)
@@ -57,385 +57,316 @@
 .module NAnt.VisualCppTasks.dll // GUID = { 42 }
 
 
-.namespace NAnt.VisualCpp.Types
+.namespace NAnt.VisualCpp.Util
 {
-  .class public auto ansi sealed CharacterSet
+  .class public auto ansi sealed BackslashProcessingMethod
   	extends [mscorlib]System.Enum
   {
     .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.VisualCpp.Types.CharacterSet NotSet = int32(0x00000000)
-    .field public static literal  valuetype NAnt.VisualCpp.Types.CharacterSet Unicode = int32(0x00000001)
-    .field public static literal  valuetype NAnt.VisualCpp.Types.CharacterSet MultiByte = int32(0x00000002)
+    .field public static literal  valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod None = int32(0x00000000)
+    .field public static literal  valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod Duplicate = int32(0x00000001)
+    .field public static literal  valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod Fix = int32(0x00000002)
+    .field public static literal  valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod Clean = int32(0x00000003)
 
-  } // end of class NAnt.VisualCpp.Types.CharacterSet
+  } // end of class NAnt.VisualCpp.Util.BackslashProcessingMethod
 }
 
-.namespace NAnt.VisualCpp.Types
+.namespace NAnt.VisualCpp.Util
 {
-  .class public auto ansi beforefieldinit Symbol
-  	extends [NAnt.Core]NAnt.Core.Element
+  .class public auto ansi beforefieldinit ArgumentUtils
+  	extends [mscorlib]System.Object
   {
-    .field  private  string _symbolName
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
 
     // method line 1
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
         // Method begins at RVA 0x2050
-	// Code size 15 (0xf)
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.VisualCpp.Types.Symbol::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method Symbol::.ctor
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method ArgumentUtils::.ctor
 
     // method line 2
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
-    {
-        // Method begins at RVA 0x2060
-	// Code size 40 (0x28)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.VisualCpp.Types.Symbol::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.1 
-	IL_000f:  brtrue IL_0020
-
-	IL_0014:  nop 
-	IL_0015:  ldstr "name"
-	IL_001a:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_001f:  throw 
-	IL_0020:  ldarg.0 
-	IL_0021:  ldarg.1 
-	IL_0022:  stfld string NAnt.VisualCpp.Types.Symbol::_symbolName
-	IL_0027:  ret 
-    } // end of method Symbol::.ctor
-
-    // method line 3
-    .method public hidebysig specialname 
-           instance default string get_SymbolName ()  cil managed 
+    .method public static hidebysig 
+           default string ProcessTrailingBackslash (string 'value', valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod processingMethod)  cil managed 
     {
-        // Method begins at RVA 0x208c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2058
+	// Code size 104 (0x68)
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		string	V_0,
+		string	V_1)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VisualCpp.Types.Symbol::_symbolName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Symbol::get_SymbolName
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  switch (
+	  IL_001e,
+	  IL_0025,
+	  IL_0031,
+	  IL_003d)
+	IL_0019:  br IL_0049
 
-    // method line 4
-    .method public hidebysig specialname 
-           instance default void set_SymbolName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x20a7
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.VisualCpp.Types.Symbol::_symbolName
-	IL_0008:  ret 
-    } // end of method Symbol::set_SymbolName
+	IL_001e:  ldarg.0 
+	IL_001f:  stloc.0 
+	IL_0020:  br IL_005f
 
-    // method line 5
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x20b4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VisualCpp.Types.Symbol::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0025:  ldarg.0 
+	IL_0026:  call string class NAnt.VisualCpp.Util.ArgumentUtils::DuplicateTrailingBackslash(string)
+	IL_002b:  stloc.0 
+	IL_002c:  br IL_005f
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Symbol::get_IfDefined
+	IL_0031:  ldarg.0 
+	IL_0032:  call string class NAnt.VisualCpp.Util.ArgumentUtils::FixTrailingBackslash(string)
+	IL_0037:  stloc.0 
+	IL_0038:  br IL_005f
 
-    // method line 6
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x20cf
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.VisualCpp.Types.Symbol::_ifDefined
-	IL_0008:  ret 
-    } // end of method Symbol::set_IfDefined
+	IL_003d:  ldarg.0 
+	IL_003e:  call string class NAnt.VisualCpp.Util.ArgumentUtils::CleanTrailingBackslash(string)
+	IL_0043:  stloc.0 
+	IL_0044:  br IL_005f
 
-    // method line 7
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x20dc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VisualCpp.Types.Symbol::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0049:  ldstr "processingMethod"
+	IL_004e:  ldarg.1 
+	IL_004f:  ldtoken NAnt.VisualCpp.Util.BackslashProcessingMethod
+	IL_0054:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0059:  newobj instance void class [System]System.ComponentModel.InvalidEnumArgumentException::'.ctor'(string, int32, class [mscorlib]System.Type)
+	IL_005e:  throw 
+	IL_005f:  ldloc.0 
+	IL_0060:  stloc.1 
+	IL_0061:  br IL_0066
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Symbol::get_UnlessDefined
+	IL_0066:  ldloc.1 
+	IL_0067:  ret 
+    } // end of method ArgumentUtils::ProcessTrailingBackslash
 
-    // method line 8
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    // method line 3
+    .method public static hidebysig 
+           default string DuplicateTrailingBackslash (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x20f7
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x20cc
+	// Code size 151 (0x97)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		bool	V_1,
+		int32	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.VisualCpp.Types.Symbol::_unlessDefined
-	IL_0008:  ret 
-    } // end of method Symbol::set_UnlessDefined
+	IL_0002:  brtrue IL_0013
 
-	.property instance string SymbolName ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
-		69 72 65 64 01                                  ) // ired.
+	IL_0007:  nop 
+	IL_0008:  ldstr "value"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.0 
+	IL_0014:  callvirt instance int32 string::get_Length()
+	IL_0019:  brtrue IL_0026
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+	IL_001e:  nop 
+	IL_001f:  ldarg.0 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0095
 
-		.get instance default string NAnt.VisualCpp.Types.Symbol::get_SymbolName () 
-		.set instance default void NAnt.VisualCpp.Types.Symbol::set_SymbolName (string 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+	IL_0026:  ldarg.0 
+	IL_0027:  callvirt instance int32 string::get_Length()
+	IL_002c:  ldc.i4.2 
+	IL_002d:  ble IL_004f
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0032:  ldarg.0 
+	IL_0033:  ldstr "\""
+	IL_0038:  callvirt instance bool string::StartsWith(string)
+	IL_003d:  brfalse IL_004f
 
-		.get instance default bool NAnt.VisualCpp.Types.Symbol::get_IfDefined () 
-		.set instance default void NAnt.VisualCpp.Types.Symbol::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+	IL_0042:  ldarg.0 
+	IL_0043:  ldstr "\""
+	IL_0048:  callvirt instance bool string::EndsWith(string)
+	IL_004d:  br.s IL_0050
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_004f:  ldc.i4.0 
+	IL_0050:  stloc.1 
+	IL_0051:  ldloc.1 
+	IL_0052:  brfalse IL_0064
 
-		.get instance default bool NAnt.VisualCpp.Types.Symbol::get_UnlessDefined () 
-		.set instance default void NAnt.VisualCpp.Types.Symbol::set_UnlessDefined (bool 'value') 
-	}
-  } // end of class NAnt.VisualCpp.Types.Symbol
-}
+	IL_0057:  ldarg.0 
+	IL_0058:  callvirt instance int32 string::get_Length()
+	IL_005d:  ldc.i4.2 
+	IL_005e:  sub 
+	IL_005f:  br IL_006c
 
-.namespace NAnt.VisualCpp.Types
-{
-  .class public auto ansi beforefieldinit Library
-  	extends [NAnt.Core]NAnt.Core.Element
-  {
-    .field  private  string _libraryName
-    .field  private  bool _ifDefined
-    .field  private  bool _unlessDefined
+	IL_0064:  ldarg.0 
+	IL_0065:  callvirt instance int32 string::get_Length()
+	IL_006a:  ldc.i4.1 
+	IL_006b:  sub 
+	IL_006c:  stloc.2 
+	IL_006d:  ldarg.0 
+	IL_006e:  ldloc.2 
+	IL_006f:  callvirt instance char string::get_Chars(int32)
+	IL_0074:  ldc.i4.s 0x5c
+	IL_0076:  bne.un IL_008e
 
-    // method line 9
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x2101
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.VisualCpp.Types.Library::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method Library::.ctor
+	IL_007b:  nop 
+	IL_007c:  ldarg.0 
+	IL_007d:  ldloc.2 
+	IL_007e:  ldstr "\\"
+	IL_0083:  callvirt instance string string::Insert(int32, string)
+	IL_0088:  stloc.0 
+	IL_0089:  br IL_0095
 
-    // method line 10
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' (string name)  cil managed 
-    {
-        // Method begins at RVA 0x2111
-	// Code size 40 (0x28)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.VisualCpp.Types.Library::_ifDefined
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
-	IL_000d:  nop 
-	IL_000e:  ldarg.1 
-	IL_000f:  brtrue IL_0020
+	IL_008e:  ldarg.0 
+	IL_008f:  stloc.0 
+	IL_0090:  br IL_0095
 
-	IL_0014:  nop 
-	IL_0015:  ldstr "name"
-	IL_001a:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_001f:  throw 
-	IL_0020:  ldarg.0 
-	IL_0021:  ldarg.1 
-	IL_0022:  stfld string NAnt.VisualCpp.Types.Library::_libraryName
-	IL_0027:  ret 
-    } // end of method Library::.ctor
+	IL_0095:  ldloc.0 
+	IL_0096:  ret 
+    } // end of method ArgumentUtils::DuplicateTrailingBackslash
 
-    // method line 11
-    .method public hidebysig specialname 
-           instance default string get_LibraryName ()  cil managed 
+    // method line 4
+    .method public static hidebysig 
+           default string FixTrailingBackslash (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x213c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2170
+	// Code size 134 (0x86)
+	.maxstack 3
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VisualCpp.Types.Library::_libraryName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  brtrue IL_0013
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Library::get_LibraryName
+	IL_0007:  nop 
+	IL_0008:  ldstr "value"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.0 
+	IL_0014:  callvirt instance int32 string::get_Length()
+	IL_0019:  brtrue IL_0026
 
-    // method line 12
-    .method public hidebysig specialname 
-           instance default void set_LibraryName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2157
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.VisualCpp.Types.Library::_libraryName
-	IL_0008:  ret 
-    } // end of method Library::set_LibraryName
+	IL_001e:  nop 
+	IL_001f:  ldarg.0 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0084
 
-    // method line 13
-    .method public hidebysig specialname 
-           instance default bool get_IfDefined ()  cil managed 
-    {
-        // Method begins at RVA 0x2164
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VisualCpp.Types.Library::_ifDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0026:  ldarg.0 
+	IL_0027:  ldstr "\\\\"
+	IL_002c:  callvirt instance bool string::EndsWith(string)
+	IL_0031:  brfalse IL_0056
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Library::get_IfDefined
+	IL_0036:  nop 
+	IL_0037:  ldarg.0 
+	IL_0038:  ldarg.0 
+	IL_0039:  callvirt instance int32 string::get_Length()
+	IL_003e:  ldc.i4.2 
+	IL_003f:  sub 
+	IL_0040:  ldc.i4.2 
+	IL_0041:  callvirt instance string string::Remove(int32, int32)
+	IL_0046:  ldstr "\\"
+	IL_004b:  call string string::Concat(string, string)
+	IL_0050:  stloc.0 
+	IL_0051:  br IL_0084
 
-    // method line 14
-    .method public hidebysig specialname 
-           instance default void set_IfDefined (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x217f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.VisualCpp.Types.Library::_ifDefined
-	IL_0008:  ret 
-    } // end of method Library::set_IfDefined
+	IL_0056:  ldarg.0 
+	IL_0057:  ldstr "\\"
+	IL_005c:  callvirt instance bool string::EndsWith(string)
+	IL_0061:  brfalse IL_007c
 
-    // method line 15
-    .method public hidebysig specialname 
-           instance default bool get_UnlessDefined ()  cil managed 
+	IL_0066:  nop 
+	IL_0067:  ldarg.0 
+	IL_0068:  ldarg.0 
+	IL_0069:  callvirt instance int32 string::get_Length()
+	IL_006e:  ldc.i4.1 
+	IL_006f:  sub 
+	IL_0070:  ldc.i4.1 
+	IL_0071:  callvirt instance string string::Remove(int32, int32)
+	IL_0076:  stloc.0 
+	IL_0077:  br IL_0084
+
+	IL_007c:  nop 
+	IL_007d:  ldarg.0 
+	IL_007e:  stloc.0 
+	IL_007f:  br IL_0084
+
+	IL_0084:  ldloc.0 
+	IL_0085:  ret 
+    } // end of method ArgumentUtils::FixTrailingBackslash
+
+    // method line 5
+    .method public static hidebysig 
+           default string CleanTrailingBackslash (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x218c
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2204
+	// Code size 35 (0x23)
+	.maxstack 2
 	.locals init (
-		bool	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VisualCpp.Types.Library::_unlessDefined
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0002:  brtrue IL_0013
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method Library::get_UnlessDefined
+	IL_0007:  nop 
+	IL_0008:  ldstr "value"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.0 
+	IL_0014:  ldc.i4.s 0x5c
+	IL_0016:  callvirt instance string string::TrimEnd(char)
+	IL_001b:  stloc.0 
+	IL_001c:  br IL_0021
 
-    // method line 16
-    .method public hidebysig specialname 
-           instance default void set_UnlessDefined (bool 'value')  cil managed 
+	IL_0021:  ldloc.0 
+	IL_0022:  ret 
+    } // end of method ArgumentUtils::CleanTrailingBackslash
+
+    // method line 6
+    .method public static hidebysig 
+           default string QuoteArgumentValue (string 'value', valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod processingMethod)  cil managed 
     {
-        // Method begins at RVA 0x21a7
-	// Code size 9 (0x9)
-	.maxstack 8
+        // Method begins at RVA 0x2234
+	// Code size 74 (0x4a)
+	.maxstack 3
+	.locals init (
+		string	V_0,
+		bool	V_1,
+		string	V_2)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.VisualCpp.Types.Library::_unlessDefined
-	IL_0008:  ret 
-    } // end of method Library::set_UnlessDefined
-
-	.property instance string LibraryName ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
-		69 72 65 64 01                                  ) // ired.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
+	IL_0003:  call string class NAnt.VisualCpp.Util.ArgumentUtils::ProcessTrailingBackslash(string, valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod)
+	IL_0008:  stloc.0 
+	IL_0009:  ldarg.0 
+	IL_000a:  ldstr "\""
+	IL_000f:  callvirt instance bool string::StartsWith(string)
+	IL_0014:  brfalse IL_0026
 
-		.get instance default string NAnt.VisualCpp.Types.Library::get_LibraryName () 
-		.set instance default void NAnt.VisualCpp.Types.Library::set_LibraryName (string 'value') 
-	}
-	.property instance bool IfDefined ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+	IL_0019:  ldarg.0 
+	IL_001a:  ldstr "\""
+	IL_001f:  callvirt instance bool string::EndsWith(string)
+	IL_0024:  br.s IL_0027
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0026:  ldc.i4.0 
+	IL_0027:  stloc.1 
+	IL_0028:  ldloc.1 
+	IL_0029:  brtrue IL_0041
 
-		.get instance default bool NAnt.VisualCpp.Types.Library::get_IfDefined () 
-		.set instance default void NAnt.VisualCpp.Types.Library::set_IfDefined (bool 'value') 
-	}
-	.property instance bool UnlessDefined ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+	IL_002e:  nop 
+	IL_002f:  ldstr "\""
+	IL_0034:  ldloc.0 
+	IL_0035:  ldstr "\""
+	IL_003a:  call string string::Concat(string, string, string)
+	IL_003f:  stloc.0 
+	IL_0040:  nop 
+	IL_0041:  ldloc.0 
+	IL_0042:  stloc.2 
+	IL_0043:  br IL_0048
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0048:  ldloc.2 
+	IL_0049:  ret 
+    } // end of method ArgumentUtils::QuoteArgumentValue
 
-		.get instance default bool NAnt.VisualCpp.Types.Library::get_UnlessDefined () 
-		.set instance default void NAnt.VisualCpp.Types.Library::set_UnlessDefined (bool 'value') 
-	}
-  } // end of class NAnt.VisualCpp.Types.Library
+  } // end of class NAnt.VisualCpp.Util.ArgumentUtils
 }
 
 .namespace NAnt.VisualCpp.Types
@@ -446,11 +377,11 @@
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 17
+    // method line 7
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x21b1
+        // Method begins at RVA 0x228a
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -459,11 +390,11 @@
 	IL_0007:  ret 
     } // end of method LibraryCollection::.ctor
 
-    // method line 18
+    // method line 8
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VisualCpp.Types.LibraryCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x21ba
+        // Method begins at RVA 0x2293
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -475,11 +406,11 @@
 	IL_000e:  ret 
     } // end of method LibraryCollection::.ctor
 
-    // method line 19
+    // method line 9
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VisualCpp.Types.Library[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x21ca
+        // Method begins at RVA 0x22a3
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -491,11 +422,11 @@
 	IL_000e:  ret 
     } // end of method LibraryCollection::.ctor
 
-    // method line 20
+    // method line 10
     .method public hidebysig specialname 
            instance default class NAnt.VisualCpp.Types.Library get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x21dc
+        // Method begins at RVA 0x22b4
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -513,11 +444,11 @@
 	IL_0019:  ret 
     } // end of method LibraryCollection::get_Item
 
-    // method line 21
+    // method line 11
     .method public hidebysig specialname 
            instance default void set_Item (int32 index, class NAnt.VisualCpp.Types.Library 'value')  cil managed 
     {
-        // Method begins at RVA 0x2202
+        // Method begins at RVA 0x22da
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -529,11 +460,11 @@
 	IL_000e:  ret 
     } // end of method LibraryCollection::set_Item
 
-    // method line 22
+    // method line 12
     .method public hidebysig 
            instance default int32 Add (class NAnt.VisualCpp.Types.Library item)  cil managed 
     {
-        // Method begins at RVA 0x2214
+        // Method begins at RVA 0x22ec
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -550,11 +481,11 @@
 	IL_0014:  ret 
     } // end of method LibraryCollection::Add
 
-    // method line 23
+    // method line 13
     .method public hidebysig 
            instance default void AddRange (class NAnt.VisualCpp.Types.Library[] items)  cil managed 
     {
-        // Method begins at RVA 0x2238
+        // Method begins at RVA 0x2310
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -585,11 +516,11 @@
 	IL_0021:  ret 
     } // end of method LibraryCollection::AddRange
 
-    // method line 24
+    // method line 14
     .method public hidebysig 
            instance default void AddRange (class NAnt.VisualCpp.Types.LibraryCollection items)  cil managed 
     {
-        // Method begins at RVA 0x2268
+        // Method begins at RVA 0x2340
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -619,11 +550,11 @@
 	IL_0028:  ret 
     } // end of method LibraryCollection::AddRange
 
-    // method line 25
+    // method line 15
     .method public hidebysig 
            instance default bool Contains (class NAnt.VisualCpp.Types.Library item)  cil managed 
     {
-        // Method begins at RVA 0x22a0
+        // Method begins at RVA 0x2378
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -640,11 +571,11 @@
 	IL_0014:  ret 
     } // end of method LibraryCollection::Contains
 
-    // method line 26
+    // method line 16
     .method public hidebysig 
            instance default void CopyTo (class NAnt.VisualCpp.Types.Library[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x22c1
+        // Method begins at RVA 0x2399
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -656,11 +587,11 @@
 	IL_000e:  ret 
     } // end of method LibraryCollection::CopyTo
 
-    // method line 27
+    // method line 17
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.VisualCpp.Types.Library item)  cil managed 
     {
-        // Method begins at RVA 0x22d4
+        // Method begins at RVA 0x23ac
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -677,11 +608,11 @@
 	IL_0014:  ret 
     } // end of method LibraryCollection::IndexOf
 
-    // method line 28
+    // method line 18
     .method public hidebysig 
            instance default void Insert (int32 index, class NAnt.VisualCpp.Types.Library item)  cil managed 
     {
-        // Method begins at RVA 0x22f5
+        // Method begins at RVA 0x23cd
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -693,11 +624,11 @@
 	IL_000e:  ret 
     } // end of method LibraryCollection::Insert
 
-    // method line 29
+    // method line 19
     .method public hidebysig 
            instance default class NAnt.VisualCpp.Types.LibraryEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x2308
+        // Method begins at RVA 0x23e0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -712,11 +643,11 @@
 	IL_000e:  ret 
     } // end of method LibraryCollection::GetEnumerator
 
-    // method line 30
+    // method line 20
     .method public hidebysig 
            instance default void Remove (class NAnt.VisualCpp.Types.Library item)  cil managed 
     {
-        // Method begins at RVA 0x2323
+        // Method begins at RVA 0x23fb
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -742,11 +673,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 31
+    // method line 21
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VisualCpp.Types.LibraryCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x2334
+        // Method begins at RVA 0x240c
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -763,11 +694,11 @@
 	IL_0015:  ret 
     } // end of method LibraryEnumerator::.ctor
 
-    // method line 32
+    // method line 22
     .method public hidebysig specialname 
            instance default class NAnt.VisualCpp.Types.Library get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2358
+        // Method begins at RVA 0x2430
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -784,11 +715,11 @@
 	IL_0018:  ret 
     } // end of method LibraryEnumerator::get_Current
 
-    // method line 33
+    // method line 23
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x2380
+        // Method begins at RVA 0x2458
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -805,11 +736,11 @@
 	IL_0013:  ret 
     } // end of method LibraryEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 34
+    // method line 24
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x23a0
+        // Method begins at RVA 0x2478
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -825,11 +756,11 @@
 	IL_0013:  ret 
     } // end of method LibraryEnumerator::MoveNext
 
-    // method line 35
+    // method line 25
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x23c0
+        // Method begins at RVA 0x2498
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -846,11 +777,11 @@
 	IL_0013:  ret 
     } // end of method LibraryEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 36
+    // method line 26
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x23e0
+        // Method begins at RVA 0x24b8
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -860,11 +791,11 @@
 	IL_000c:  ret 
     } // end of method LibraryEnumerator::Reset
 
-    // method line 37
+    // method line 27
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x23ee
+        // Method begins at RVA 0x24c6
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
@@ -888,17 +819,398 @@
 
 .namespace NAnt.VisualCpp.Types
 {
+  .class public auto ansi beforefieldinit Library
+  	extends [NAnt.Core]NAnt.Core.Element
+  {
+    .field  private  string _libraryName
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
+
+    // method line 28
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x24d4
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.VisualCpp.Types.Library::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method Library::.ctor
+
+    // method line 29
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
+    {
+        // Method begins at RVA 0x24e4
+	// Code size 40 (0x28)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.VisualCpp.Types.Library::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ldarg.1 
+	IL_000f:  brtrue IL_0020
+
+	IL_0014:  nop 
+	IL_0015:  ldstr "name"
+	IL_001a:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_001f:  throw 
+	IL_0020:  ldarg.0 
+	IL_0021:  ldarg.1 
+	IL_0022:  stfld string NAnt.VisualCpp.Types.Library::_libraryName
+	IL_0027:  ret 
+    } // end of method Library::.ctor
+
+    // method line 30
+    .method public hidebysig specialname 
+           instance default string get_LibraryName ()  cil managed 
+    {
+        // Method begins at RVA 0x2510
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VisualCpp.Types.Library::_libraryName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Library::get_LibraryName
+
+    // method line 31
+    .method public hidebysig specialname 
+           instance default void set_LibraryName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x252b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.VisualCpp.Types.Library::_libraryName
+	IL_0008:  ret 
+    } // end of method Library::set_LibraryName
+
+    // method line 32
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x2538
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VisualCpp.Types.Library::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Library::get_IfDefined
+
+    // method line 33
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2553
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.VisualCpp.Types.Library::_ifDefined
+	IL_0008:  ret 
+    } // end of method Library::set_IfDefined
+
+    // method line 34
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x2560
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VisualCpp.Types.Library::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Library::get_UnlessDefined
+
+    // method line 35
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x257b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.VisualCpp.Types.Library::_unlessDefined
+	IL_0008:  ret 
+    } // end of method Library::set_UnlessDefined
+
+	.property instance string LibraryName ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.VisualCpp.Types.Library::get_LibraryName () 
+		.set instance default void NAnt.VisualCpp.Types.Library::set_LibraryName (string 'value') 
+	}
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.VisualCpp.Types.Library::get_IfDefined () 
+		.set instance default void NAnt.VisualCpp.Types.Library::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.VisualCpp.Types.Library::get_UnlessDefined () 
+		.set instance default void NAnt.VisualCpp.Types.Library::set_UnlessDefined (bool 'value') 
+	}
+  } // end of class NAnt.VisualCpp.Types.Library
+}
+
+.namespace NAnt.VisualCpp.Types
+{
+  .class public auto ansi beforefieldinit Symbol
+  	extends [NAnt.Core]NAnt.Core.Element
+  {
+    .field  private  string _symbolName
+    .field  private  bool _ifDefined
+    .field  private  bool _unlessDefined
+
+    // method line 36
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2585
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.VisualCpp.Types.Symbol::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method Symbol::.ctor
+
+    // method line 37
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (string name)  cil managed 
+    {
+        // Method begins at RVA 0x2595
+	// Code size 40 (0x28)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.VisualCpp.Types.Symbol::_ifDefined
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Element::'.ctor'()
+	IL_000d:  nop 
+	IL_000e:  ldarg.1 
+	IL_000f:  brtrue IL_0020
+
+	IL_0014:  nop 
+	IL_0015:  ldstr "name"
+	IL_001a:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_001f:  throw 
+	IL_0020:  ldarg.0 
+	IL_0021:  ldarg.1 
+	IL_0022:  stfld string NAnt.VisualCpp.Types.Symbol::_symbolName
+	IL_0027:  ret 
+    } // end of method Symbol::.ctor
+
+    // method line 38
+    .method public hidebysig specialname 
+           instance default string get_SymbolName ()  cil managed 
+    {
+        // Method begins at RVA 0x25c0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VisualCpp.Types.Symbol::_symbolName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Symbol::get_SymbolName
+
+    // method line 39
+    .method public hidebysig specialname 
+           instance default void set_SymbolName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x25db
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.VisualCpp.Types.Symbol::_symbolName
+	IL_0008:  ret 
+    } // end of method Symbol::set_SymbolName
+
+    // method line 40
+    .method public hidebysig specialname 
+           instance default bool get_IfDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x25e8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VisualCpp.Types.Symbol::_ifDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Symbol::get_IfDefined
+
+    // method line 41
+    .method public hidebysig specialname 
+           instance default void set_IfDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2603
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.VisualCpp.Types.Symbol::_ifDefined
+	IL_0008:  ret 
+    } // end of method Symbol::set_IfDefined
+
+    // method line 42
+    .method public hidebysig specialname 
+           instance default bool get_UnlessDefined ()  cil managed 
+    {
+        // Method begins at RVA 0x2610
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VisualCpp.Types.Symbol::_unlessDefined
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Symbol::get_UnlessDefined
+
+    // method line 43
+    .method public hidebysig specialname 
+           instance default void set_UnlessDefined (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x262b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.VisualCpp.Types.Symbol::_unlessDefined
+	IL_0008:  ret 
+    } // end of method Symbol::set_UnlessDefined
+
+	.property instance string SymbolName ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 04 6E 61 6D 65 01 00 54 02 08 52 65 71 75   // ...name..T..Requ
+		69 72 65 64 01                                  ) // ired.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.VisualCpp.Types.Symbol::get_SymbolName () 
+		.set instance default void NAnt.VisualCpp.Types.Symbol::set_SymbolName (string 'value') 
+	}
+	.property instance bool IfDefined ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 69 66 00 00 ) // ...if..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.VisualCpp.Types.Symbol::get_IfDefined () 
+		.set instance default void NAnt.VisualCpp.Types.Symbol::set_IfDefined (bool 'value') 
+	}
+	.property instance bool UnlessDefined ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 6C 65 73 73 00 00 ) // ...unless..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.VisualCpp.Types.Symbol::get_UnlessDefined () 
+		.set instance default void NAnt.VisualCpp.Types.Symbol::set_UnlessDefined (bool 'value') 
+	}
+  } // end of class NAnt.VisualCpp.Types.Symbol
+}
+
+.namespace NAnt.VisualCpp.Types
+{
+  .class public auto ansi sealed CharacterSet
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NAnt.VisualCpp.Types.CharacterSet NotSet = int32(0x00000000)
+    .field public static literal  valuetype NAnt.VisualCpp.Types.CharacterSet Unicode = int32(0x00000001)
+    .field public static literal  valuetype NAnt.VisualCpp.Types.CharacterSet MultiByte = int32(0x00000002)
+
+  } // end of class NAnt.VisualCpp.Types.CharacterSet
+}
+
+.namespace NAnt.VisualCpp.Types
+{
   .class public auto ansi serializable beforefieldinit SymbolCollection
   	extends [mscorlib]System.Collections.CollectionBase
   {
     .custom instance void class [mscorlib]System.Reflection.DefaultMemberAttribute::'.ctor'(string) =  (01 00 04 49 74 65 6D 00 00 ) // ...Item..
 
 
-    // method line 38
+    // method line 44
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x23fc
+        // Method begins at RVA 0x2635
 	// Code size 8 (0x8)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -907,11 +1219,11 @@
 	IL_0007:  ret 
     } // end of method SymbolCollection::.ctor
 
-    // method line 39
+    // method line 45
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VisualCpp.Types.SymbolCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x2405
+        // Method begins at RVA 0x263e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -923,11 +1235,11 @@
 	IL_000e:  ret 
     } // end of method SymbolCollection::.ctor
 
-    // method line 40
+    // method line 46
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VisualCpp.Types.Symbol[] 'value')  cil managed 
     {
-        // Method begins at RVA 0x2415
+        // Method begins at RVA 0x264e
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -939,11 +1251,11 @@
 	IL_000e:  ret 
     } // end of method SymbolCollection::.ctor
 
-    // method line 41
+    // method line 47
     .method public hidebysig specialname 
            instance default class NAnt.VisualCpp.Types.Symbol get_Item (int32 index)  cil managed 
     {
-        // Method begins at RVA 0x2428
+        // Method begins at RVA 0x2660
 	// Code size 26 (0x1a)
 	.maxstack 2
 	.locals init (
@@ -961,11 +1273,11 @@
 	IL_0019:  ret 
     } // end of method SymbolCollection::get_Item
 
-    // method line 42
+    // method line 48
     .method public hidebysig specialname 
            instance default void set_Item (int32 index, class NAnt.VisualCpp.Types.Symbol 'value')  cil managed 
     {
-        // Method begins at RVA 0x244e
+        // Method begins at RVA 0x2686
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -977,11 +1289,11 @@
 	IL_000e:  ret 
     } // end of method SymbolCollection::set_Item
 
-    // method line 43
+    // method line 49
     .method public hidebysig 
            instance default int32 Add (class NAnt.VisualCpp.Types.Symbol item)  cil managed 
     {
-        // Method begins at RVA 0x2460
+        // Method begins at RVA 0x2698
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -998,11 +1310,11 @@
 	IL_0014:  ret 
     } // end of method SymbolCollection::Add
 
-    // method line 44
+    // method line 50
     .method public hidebysig 
            instance default void AddRange (class NAnt.VisualCpp.Types.Symbol[] items)  cil managed 
     {
-        // Method begins at RVA 0x2484
+        // Method begins at RVA 0x26bc
 	// Code size 34 (0x22)
 	.maxstack 3
 	.locals init (
@@ -1033,11 +1345,11 @@
 	IL_0021:  ret 
     } // end of method SymbolCollection::AddRange
 
-    // method line 45
+    // method line 51
     .method public hidebysig 
            instance default void AddRange (class NAnt.VisualCpp.Types.SymbolCollection items)  cil managed 
     {
-        // Method begins at RVA 0x24b4
+        // Method begins at RVA 0x26ec
 	// Code size 41 (0x29)
 	.maxstack 3
 	.locals init (
@@ -1067,11 +1379,11 @@
 	IL_0028:  ret 
     } // end of method SymbolCollection::AddRange
 
-    // method line 46
+    // method line 52
     .method public hidebysig 
            instance default bool Contains (class NAnt.VisualCpp.Types.Symbol item)  cil managed 
     {
-        // Method begins at RVA 0x24ec
+        // Method begins at RVA 0x2724
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1088,11 +1400,11 @@
 	IL_0014:  ret 
     } // end of method SymbolCollection::Contains
 
-    // method line 47
+    // method line 53
     .method public hidebysig 
            instance default void CopyTo (class NAnt.VisualCpp.Types.Symbol[] 'array', int32 index)  cil managed 
     {
-        // Method begins at RVA 0x250d
+        // Method begins at RVA 0x2745
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1104,11 +1416,11 @@
 	IL_000e:  ret 
     } // end of method SymbolCollection::CopyTo
 
-    // method line 48
+    // method line 54
     .method public hidebysig 
            instance default int32 IndexOf (class NAnt.VisualCpp.Types.Symbol item)  cil managed 
     {
-        // Method begins at RVA 0x2520
+        // Method begins at RVA 0x2758
 	// Code size 21 (0x15)
 	.maxstack 2
 	.locals init (
@@ -1125,11 +1437,11 @@
 	IL_0014:  ret 
     } // end of method SymbolCollection::IndexOf
 
-    // method line 49
+    // method line 55
     .method public hidebysig 
            instance default void Insert (int32 index, class NAnt.VisualCpp.Types.Symbol item)  cil managed 
     {
-        // Method begins at RVA 0x2541
+        // Method begins at RVA 0x2779
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1141,11 +1453,11 @@
 	IL_000e:  ret 
     } // end of method SymbolCollection::Insert
 
-    // method line 50
+    // method line 56
     .method public hidebysig 
            instance default class NAnt.VisualCpp.Types.SymbolEnumerator GetEnumerator ()  cil managed 
     {
-        // Method begins at RVA 0x2554
+        // Method begins at RVA 0x278c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1160,11 +1472,11 @@
 	IL_000e:  ret 
     } // end of method SymbolCollection::GetEnumerator
 
-    // method line 51
+    // method line 57
     .method public hidebysig 
            instance default void Remove (class NAnt.VisualCpp.Types.Symbol item)  cil managed 
     {
-        // Method begins at RVA 0x256f
+        // Method begins at RVA 0x27a7
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1190,11 +1502,11 @@
   	implements [mscorlib]System.Collections.IEnumerator  {
     .field  private  class [mscorlib]System.Collections.IEnumerator _baseEnumerator
 
-    // method line 52
+    // method line 58
     .method assembly hidebysig specialname rtspecialname 
            instance default void '.ctor' (class NAnt.VisualCpp.Types.SymbolCollection arguments)  cil managed 
     {
-        // Method begins at RVA 0x2580
+        // Method begins at RVA 0x27b8
 	// Code size 22 (0x16)
 	.maxstack 2
 	.locals init (
@@ -1211,11 +1523,11 @@
 	IL_0015:  ret 
     } // end of method SymbolEnumerator::.ctor
 
-    // method line 53
+    // method line 59
     .method public hidebysig specialname 
            instance default class NAnt.VisualCpp.Types.Symbol get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x25a4
+        // Method begins at RVA 0x27dc
 	// Code size 25 (0x19)
 	.maxstack 1
 	.locals init (
@@ -1232,11 +1544,11 @@
 	IL_0018:  ret 
     } // end of method SymbolEnumerator::get_Current
 
-    // method line 54
+    // method line 60
     .method private final virtual hidebysig newslot specialname 
            instance default object System.Collections.IEnumerator.get_Current ()  cil managed 
     {
-        // Method begins at RVA 0x25cc
+        // Method begins at RVA 0x2804
 	.override class [mscorlib]System.Collections.IEnumerator::get_Current
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -1253,11 +1565,11 @@
 	IL_0013:  ret 
     } // end of method SymbolEnumerator::System.Collections.IEnumerator.get_Current
 
-    // method line 55
+    // method line 61
     .method public hidebysig 
            instance default bool MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x25ec
+        // Method begins at RVA 0x2824
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -1273,11 +1585,11 @@
 	IL_0013:  ret 
     } // end of method SymbolEnumerator::MoveNext
 
-    // method line 56
+    // method line 62
     .method private final virtual hidebysig newslot 
            instance default bool System.Collections.IEnumerator.MoveNext ()  cil managed 
     {
-        // Method begins at RVA 0x260c
+        // Method begins at RVA 0x2844
 	.override class [mscorlib]System.Collections.IEnumerator::MoveNext
 	// Code size 20 (0x14)
 	.maxstack 1
@@ -1294,11 +1606,11 @@
 	IL_0013:  ret 
     } // end of method SymbolEnumerator::System.Collections.IEnumerator.MoveNext
 
-    // method line 57
+    // method line 63
     .method public hidebysig 
            instance default void Reset ()  cil managed 
     {
-        // Method begins at RVA 0x262c
+        // Method begins at RVA 0x2864
 	// Code size 13 (0xd)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1308,11 +1620,11 @@
 	IL_000c:  ret 
     } // end of method SymbolEnumerator::Reset
 
-    // method line 58
+    // method line 64
     .method private final virtual hidebysig newslot 
            instance default void System.Collections.IEnumerator.Reset ()  cil managed 
     {
-        // Method begins at RVA 0x263a
+        // Method begins at RVA 0x2872
 	.override class [mscorlib]System.Collections.IEnumerator::Reset
 	// Code size 13 (0xd)
 	.maxstack 8
@@ -1355,11 +1667,11 @@
     .field  private  class NAnt.VisualCpp.Types.LibraryCollection _ignoreLibraries
     .field  private  string _options
 
-    // method line 59
+    // method line 65
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2648
+        // Method begins at RVA 0x2880
 	// Code size 84 (0x54)
 	.maxstack 2
 	IL_0000:  ldarg.0 
@@ -1388,11 +1700,11 @@
 	IL_0053:  ret 
     } // end of method LinkTask::.ctor
 
-    // method line 60
+    // method line 66
     .method public hidebysig specialname 
            instance default string get_Options ()  cil managed 
     {
-        // Method begins at RVA 0x26a8
+        // Method begins at RVA 0x28e0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1407,11 +1719,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_Options
 
-    // method line 61
+    // method line 67
     .method public hidebysig specialname 
            instance default void set_Options (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x26c3
+        // Method begins at RVA 0x28fb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1421,11 +1733,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_Options
 
-    // method line 62
+    // method line 68
     .method public hidebysig specialname 
            instance default bool get_Debug ()  cil managed 
     {
-        // Method begins at RVA 0x26d0
+        // Method begins at RVA 0x2908
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1440,11 +1752,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_Debug
 
-    // method line 63
+    // method line 69
     .method public hidebysig specialname 
            instance default void set_Debug (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x26eb
+        // Method begins at RVA 0x2923
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1454,11 +1766,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_Debug
 
-    // method line 64
+    // method line 70
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x26f8
+        // Method begins at RVA 0x2930
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1473,11 +1785,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_OutputFile
 
-    // method line 65
+    // method line 71
     .method public hidebysig specialname 
            instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2713
+        // Method begins at RVA 0x294b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1487,11 +1799,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_OutputFile
 
-    // method line 66
+    // method line 72
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_ProgramDatabaseFile ()  cil managed 
     {
-        // Method begins at RVA 0x2720
+        // Method begins at RVA 0x2958
 	// Code size 71 (0x47)
 	.maxstack 3
 	.locals init (
@@ -1524,11 +1836,11 @@
 	IL_0046:  ret 
     } // end of method LinkTask::get_ProgramDatabaseFile
 
-    // method line 67
+    // method line 73
     .method public hidebysig specialname 
            instance default void set_ProgramDatabaseFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2773
+        // Method begins at RVA 0x29ab
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1538,11 +1850,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_ProgramDatabaseFile
 
-    // method line 68
+    // method line 74
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_ModuleDefinition ()  cil managed 
     {
-        // Method begins at RVA 0x2780
+        // Method begins at RVA 0x29b8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1557,11 +1869,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_ModuleDefinition
 
-    // method line 69
+    // method line 75
     .method public hidebysig specialname 
            instance default void set_ModuleDefinition (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x279b
+        // Method begins at RVA 0x29d3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1571,11 +1883,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_ModuleDefinition
 
-    // method line 70
+    // method line 76
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_DelayLoadedDlls ()  cil managed 
     {
-        // Method begins at RVA 0x27a8
+        // Method begins at RVA 0x29e0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1590,11 +1902,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_DelayLoadedDlls
 
-    // method line 71
+    // method line 77
     .method public hidebysig specialname 
            instance default void set_DelayLoadedDlls (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x27c3
+        // Method begins at RVA 0x29fb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1604,11 +1916,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_DelayLoadedDlls
 
-    // method line 72
+    // method line 78
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Sources ()  cil managed 
     {
-        // Method begins at RVA 0x27d0
+        // Method begins at RVA 0x2a08
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1623,11 +1935,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_Sources
 
-    // method line 73
+    // method line 79
     .method public hidebysig specialname 
            instance default void set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x27eb
+        // Method begins at RVA 0x2a23
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1637,11 +1949,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_Sources
 
-    // method line 74
+    // method line 80
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_LibDirs ()  cil managed 
     {
-        // Method begins at RVA 0x27f8
+        // Method begins at RVA 0x2a30
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1656,11 +1968,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_LibDirs
 
-    // method line 75
+    // method line 81
     .method public hidebysig specialname 
            instance default void set_LibDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x2813
+        // Method begins at RVA 0x2a4b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1670,11 +1982,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_LibDirs
 
-    // method line 76
+    // method line 82
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Modules ()  cil managed 
     {
-        // Method begins at RVA 0x2820
+        // Method begins at RVA 0x2a58
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1689,11 +2001,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_Modules
 
-    // method line 77
+    // method line 83
     .method public hidebysig specialname 
            instance default void set_Modules (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x283b
+        // Method begins at RVA 0x2a73
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1703,11 +2015,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_Modules
 
-    // method line 78
+    // method line 84
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_EmbeddedResources ()  cil managed 
     {
-        // Method begins at RVA 0x2848
+        // Method begins at RVA 0x2a80
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1722,11 +2034,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_EmbeddedResources
 
-    // method line 79
+    // method line 85
     .method public hidebysig specialname 
            instance default void set_EmbeddedResources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x2863
+        // Method begins at RVA 0x2a9b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1736,11 +2048,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_EmbeddedResources
 
-    // method line 80
+    // method line 86
     .method public hidebysig specialname 
            instance default class NAnt.VisualCpp.Types.SymbolCollection get_Symbols ()  cil managed 
     {
-        // Method begins at RVA 0x2870
+        // Method begins at RVA 0x2aa8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1755,11 +2067,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_Symbols
 
-    // method line 81
+    // method line 87
     .method public hidebysig specialname 
            instance default void set_Symbols (class NAnt.VisualCpp.Types.SymbolCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x288b
+        // Method begins at RVA 0x2ac3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1769,11 +2081,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_Symbols
 
-    // method line 82
+    // method line 88
     .method public hidebysig specialname 
            instance default class NAnt.VisualCpp.Types.LibraryCollection get_IgnoreLibraries ()  cil managed 
     {
-        // Method begins at RVA 0x2898
+        // Method begins at RVA 0x2ad0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1788,11 +2100,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_IgnoreLibraries
 
-    // method line 83
+    // method line 89
     .method public hidebysig specialname 
            instance default void set_IgnoreLibraries (class NAnt.VisualCpp.Types.LibraryCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x28b3
+        // Method begins at RVA 0x2aeb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1802,11 +2114,11 @@
 	IL_0008:  ret 
     } // end of method LinkTask::set_IgnoreLibraries
 
-    // method line 84
+    // method line 90
     .method public virtual hidebysig specialname 
            instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x28c0
+        // Method begins at RVA 0x2af8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1821,11 +2133,11 @@
 	IL_000e:  ret 
     } // end of method LinkTask::get_ProgramFileName
 
-    // method line 85
+    // method line 91
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x28dc
+        // Method begins at RVA 0x2b14
 	// Code size 30 (0x1e)
 	.maxstack 3
 	.locals init (
@@ -1843,11 +2155,11 @@
 	IL_001d:  ret 
     } // end of method LinkTask::get_ProgramArguments
 
-    // method line 86
+    // method line 92
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x2908
+        // Method begins at RVA 0x2b40
 	// Code size 1239 (0x4d7)
 	.maxstack 7
 	.locals init (
@@ -2343,11 +2655,11 @@
 	IL_04d6:  ret 
     } // end of method LinkTask::ExecuteTask
 
-    // method line 87
+    // method line 93
     .method family virtual hidebysig newslot 
            instance default bool NeedsLinking ()  cil managed 
     {
-        // Method begins at RVA 0x2eb0
+        // Method begins at RVA 0x30e8
 	// Code size 365 (0x16d)
 	.maxstack 7
 	.locals init (
@@ -2497,11 +2809,11 @@
 	IL_016c:  ret 
     } // end of method LinkTask::NeedsLinking
 
-    // method line 88
+    // method line 94
     .method public static hidebysig 
            default string QuoteArgumentValue (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x302c
+        // Method begins at RVA 0x3264
 	// Code size 16 (0x10)
 	.maxstack 2
 	.locals init (
@@ -2623,515 +2935,6 @@
 
 .namespace NAnt.VisualCpp.Tasks
 {
-  .class public auto ansi beforefieldinit McTask
-  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 02 6D 63 00 00 ) // ...mc..
-
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _headerPath
-    .field  private  class [mscorlib]System.IO.DirectoryInfo _rcPath
-    .field  private  string _options
-    .field  private  class [mscorlib]System.IO.FileInfo _mcFile
-
-    // method line 89
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x3048
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
-	IL_0006:  ret 
-    } // end of method McTask::.ctor
-
-    // method line 90
-    .method public hidebysig specialname 
-           instance default string get_Options ()  cil managed 
-    {
-        // Method begins at RVA 0x3050
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.McTask::_options
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method McTask::get_Options
-
-    // method line 91
-    .method public hidebysig specialname 
-           instance default void set_Options (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x306b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.VisualCpp.Tasks.McTask::_options
-	IL_0008:  ret 
-    } // end of method McTask::set_Options
-
-    // method line 92
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_HeaderPath ()  cil managed 
-    {
-        // Method begins at RVA 0x3078
-	// Code size 49 (0x31)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::_headerPath
-	IL_0007:  brtrue IL_0023
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0013:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	IL_0018:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_001d:  stloc.0 
-	IL_001e:  br IL_002f
-
-	IL_0023:  ldarg.0 
-	IL_0024:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::_headerPath
-	IL_0029:  stloc.0 
-	IL_002a:  br IL_002f
-
-	IL_002f:  ldloc.0 
-	IL_0030:  ret 
-    } // end of method McTask::get_HeaderPath
-
-    // method line 93
-    .method public hidebysig specialname 
-           instance default void set_HeaderPath (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x30b5
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::_headerPath
-	IL_0008:  ret 
-    } // end of method McTask::set_HeaderPath
-
-    // method line 94
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.DirectoryInfo get_RCPath ()  cil managed 
-    {
-        // Method begins at RVA 0x30c0
-	// Code size 49 (0x31)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.DirectoryInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::_rcPath
-	IL_0007:  brtrue IL_0023
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0013:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	IL_0018:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_001d:  stloc.0 
-	IL_001e:  br IL_002f
-
-	IL_0023:  ldarg.0 
-	IL_0024:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::_rcPath
-	IL_0029:  stloc.0 
-	IL_002a:  br IL_002f
-
-	IL_002f:  ldloc.0 
-	IL_0030:  ret 
-    } // end of method McTask::get_RCPath
-
-    // method line 95
-    .method public hidebysig specialname 
-           instance default void set_RCPath (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x30fd
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::_rcPath
-	IL_0008:  ret 
-    } // end of method McTask::set_RCPath
-
-    // method line 96
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_McFile ()  cil managed 
-    {
-        // Method begins at RVA 0x3108
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.McTask::_mcFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method McTask::get_McFile
-
-    // method line 97
-    .method public hidebysig specialname 
-           instance default void set_McFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3123
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.McTask::_mcFile
-	IL_0008:  ret 
-    } // end of method McTask::set_McFile
-
-    // method line 98
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramFileName ()  cil managed 
-    {
-        // Method begins at RVA 0x3130
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  callvirt instance string class [NAnt.Core]NAnt.Core.Element::get_Name()
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method McTask::get_ProgramFileName
-
-    // method line 99
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
-    {
-        // Method begins at RVA 0x314c
-	// Code size 212 (0xd4)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldstr ""
-	IL_0006:  stloc.0 
-	IL_0007:  ldarg.0 
-	IL_0008:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_000d:  brfalse IL_0020
-
-	IL_0012:  nop 
-	IL_0013:  ldloc.0 
-	IL_0014:  ldstr "/v "
-	IL_0019:  call string string::Concat(string, string)
-	IL_001e:  stloc.0 
-	IL_001f:  nop 
-	IL_0020:  ldarg.0 
-	IL_0021:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_HeaderPath()
-	IL_0026:  brfalse IL_004e
-
-	IL_002b:  nop 
-	IL_002c:  ldloc.0 
-	IL_002d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0032:  ldstr "-h \"{0}\" "
-	IL_0037:  ldarg.0 
-	IL_0038:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_HeaderPath()
-	IL_003d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0042:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0047:  call string string::Concat(string, string)
-	IL_004c:  stloc.0 
-	IL_004d:  nop 
-	IL_004e:  ldarg.0 
-	IL_004f:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_RCPath()
-	IL_0054:  brfalse IL_007c
-
-	IL_0059:  nop 
-	IL_005a:  ldloc.0 
-	IL_005b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0060:  ldstr "-r \"{0}\" "
-	IL_0065:  ldarg.0 
-	IL_0066:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_RCPath()
-	IL_006b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0070:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0075:  call string string::Concat(string, string)
-	IL_007a:  stloc.0 
-	IL_007b:  nop 
-	IL_007c:  ldarg.0 
-	IL_007d:  call instance string class NAnt.VisualCpp.Tasks.McTask::get_Options()
-	IL_0082:  brfalse IL_00a5
-
-	IL_0087:  nop 
-	IL_0088:  ldloc.0 
-	IL_0089:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_008e:  ldstr "{0} "
-	IL_0093:  ldarg.0 
-	IL_0094:  call instance string class NAnt.VisualCpp.Tasks.McTask::get_Options()
-	IL_0099:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_009e:  call string string::Concat(string, string)
-	IL_00a3:  stloc.0 
-	IL_00a4:  nop 
-	IL_00a5:  ldloc.0 
-	IL_00a6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00ab:  ldstr "\"{0}\" "
-	IL_00b0:  ldarg.0 
-	IL_00b1:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
-	IL_00b6:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00bb:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00c0:  call string string::Concat(string, string)
-	IL_00c5:  stloc.0 
-	IL_00c6:  ldloc.0 
-	IL_00c7:  callvirt instance string object::ToString()
-	IL_00cc:  stloc.1 
-	IL_00cd:  br IL_00d2
-
-	IL_00d2:  ldloc.1 
-	IL_00d3:  ret 
-    } // end of method McTask::get_ProgramArguments
-
-    // method line 100
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x322c
-	// Code size 313 (0x139)
-	.maxstack 7
-	.locals init (
-		string	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_HeaderPath()
-	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_000c:  ldarg.0 
-	IL_000d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
-	IL_0012:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0017:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_001c:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0021:  ldstr ".h"
-	IL_0026:  call string string::Concat(string, string)
-	IL_002b:  stloc.0 
-	IL_002c:  ldarg.0 
-	IL_002d:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_RCPath()
-	IL_0032:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0037:  ldarg.0 
-	IL_0038:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
-	IL_003d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0042:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
-	IL_0047:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_004c:  ldstr ".rc"
-	IL_0051:  call string string::Concat(string, string)
-	IL_0056:  stloc.1 
-	IL_0057:  ldarg.0 
-	IL_0058:  ldloc.0 
-	IL_0059:  call instance bool class NAnt.VisualCpp.Tasks.McTask::NeedsCompiling(string)
-	IL_005e:  brtrue IL_009a
-
-	IL_0063:  ldarg.0 
-	IL_0064:  ldloc.1 
-	IL_0065:  call instance bool class NAnt.VisualCpp.Tasks.McTask::NeedsCompiling(string)
-	IL_006a:  brtrue IL_009a
-
-	IL_006f:  nop 
-	IL_0070:  ldarg.0 
-	IL_0071:  ldc.i4 3000
-	IL_0076:  ldstr "Target(s) up-to-date, not compiling '{0}'."
-	IL_007b:  ldc.i4.1 
-	IL_007c:  newarr [mscorlib]System.Object
-	IL_0081:  dup 
-	IL_0082:  ldc.i4.0 
-	IL_0083:  ldarg.0 
-	IL_0084:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
-	IL_0089:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_008e:  stelem.ref 
-	IL_008f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0094:  nop 
-	IL_0095:  br IL_0138
-
-	IL_009a:  nop 
-	IL_009b:  ldarg.0 
-	IL_009c:  ldc.i4 3000
-	IL_00a1:  ldstr "Target out of date, compiling '{0}'."
-	IL_00a6:  ldc.i4.1 
-	IL_00a7:  newarr [mscorlib]System.Object
-	IL_00ac:  dup 
-	IL_00ad:  ldc.i4.0 
-	IL_00ae:  ldarg.0 
-	IL_00af:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
-	IL_00b4:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00b9:  stelem.ref 
-	IL_00ba:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00bf:  ldarg.0 
-	IL_00c0:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_HeaderPath()
-	IL_00c5:  brfalse IL_00f0
-
-	IL_00ca:  nop 
-	IL_00cb:  ldarg.0 
-	IL_00cc:  ldc.i4 3000
-	IL_00d1:  ldstr "Header file to '{0}'."
-	IL_00d6:  ldc.i4.1 
-	IL_00d7:  newarr [mscorlib]System.Object
-	IL_00dc:  dup 
-	IL_00dd:  ldc.i4.0 
-	IL_00de:  ldarg.0 
-	IL_00df:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_HeaderPath()
-	IL_00e4:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00e9:  stelem.ref 
-	IL_00ea:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00ef:  nop 
-	IL_00f0:  ldarg.0 
-	IL_00f1:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_RCPath()
-	IL_00f6:  brfalse IL_0121
-
-	IL_00fb:  nop 
-	IL_00fc:  ldarg.0 
-	IL_00fd:  ldc.i4 3000
-	IL_0102:  ldstr "RC file to '{0}'."
-	IL_0107:  ldc.i4.1 
-	IL_0108:  newarr [mscorlib]System.Object
-	IL_010d:  dup 
-	IL_010e:  ldc.i4.0 
-	IL_010f:  ldarg.0 
-	IL_0110:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_RCPath()
-	IL_0115:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_011a:  stelem.ref 
-	IL_011b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0120:  nop 
-	IL_0121:  ldarg.0 
-	IL_0122:  ldc.i4 3000
-	IL_0127:  ldstr ""
-	IL_012c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	IL_0131:  ldarg.0 
-	IL_0132:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	IL_0137:  nop 
-	IL_0138:  ret 
-    } // end of method McTask::ExecuteTask
-
-    // method line 101
-    .method private hidebysig 
-           instance default bool NeedsCompiling (string destinationFile)  cil managed 
-    {
-        // Method begins at RVA 0x3374
-	// Code size 136 (0x88)
-	.maxstack 7
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0,
-		bool	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
-	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_000c:  brfalse IL_005a
-
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_0018:  ldarg.1 
-	IL_0019:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::GetFullPath(string)
-	IL_001e:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
-	IL_0023:  stloc.0 
-	IL_0024:  ldloc.0 
-	IL_0025:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_002a:  brfalse IL_004a
-
-	IL_002f:  ldarg.0 
-	IL_0030:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
-	IL_0035:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_003a:  ldloc.0 
-	IL_003b:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0040:  call bool valuetype [mscorlib]System.DateTime::op_GreaterThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
-	IL_0045:  brfalse IL_0052
-
-	IL_004a:  nop 
-	IL_004b:  ldc.i4.1 
-	IL_004c:  stloc.1 
-	IL_004d:  br IL_0086
-
-	IL_0052:  nop 
-	IL_0053:  ldc.i4.0 
-	IL_0054:  stloc.1 
-	IL_0055:  br IL_0086
-
-	IL_005a:  nop 
-	IL_005b:  ldarg.0 
-	IL_005c:  ldc.i4 3000
-	IL_0061:  ldstr "Source file '{0}' doesn't exist!"
-	IL_0066:  ldc.i4.1 
-	IL_0067:  newarr [mscorlib]System.Object
-	IL_006c:  dup 
-	IL_006d:  ldc.i4.0 
-	IL_006e:  ldarg.0 
-	IL_006f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
-	IL_0074:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0079:  stelem.ref 
-	IL_007a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_007f:  ldc.i4.1 
-	IL_0080:  stloc.1 
-	IL_0081:  br IL_0086
-
-	IL_0086:  ldloc.1 
-	IL_0087:  ret 
-    } // end of method McTask::NeedsCompiling
-
-	.property instance string Options ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6F 70 74 69 6F 6E 73 00 00 ) // ...options..
-
-		.get instance default string NAnt.VisualCpp.Tasks.McTask::get_Options () 
-		.set instance default void NAnt.VisualCpp.Tasks.McTask::set_Options (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo HeaderPath ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 68 65 61 64 65 72 70 61 74 68 00 00 ) // ...headerpath..
-
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::get_HeaderPath () 
-		.set instance default void NAnt.VisualCpp.Tasks.McTask::set_HeaderPath (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.DirectoryInfo RCPath ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 72 63 70 61 74 68 00 00 ) // ...rcpath..
-
-		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::get_RCPath () 
-		.set instance default void NAnt.VisualCpp.Tasks.McTask::set_RCPath (class [mscorlib]System.IO.DirectoryInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo McFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 6D 63 66 69 6C 65 01 00 54 02 08 52 65   // ...mcfile..T..Re
-		71 75 69 72 65 64 01                            ) // quired.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.McTask::get_McFile () 
-		.set instance default void NAnt.VisualCpp.Tasks.McTask::set_McFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string ProgramFileName ()
-	{
-		.get instance default string NAnt.VisualCpp.Tasks.McTask::get_ProgramFileName () 
-	}
-	.property instance string ProgramArguments ()
-	{
-		.get instance default string NAnt.VisualCpp.Tasks.McTask::get_ProgramArguments () 
-	}
-  } // end of class NAnt.VisualCpp.Tasks.McTask
-}
-
-.namespace NAnt.VisualCpp.Tasks
-{
   .class public auto ansi beforefieldinit RcTask
   	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
   {
@@ -3144,11 +2947,11 @@
     .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _includeDirs
     .field  private  class [NAnt.Core]NAnt.Core.Types.OptionCollection _defines
 
-    // method line 102
+    // method line 95
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3408
+        // Method begins at RVA 0x3280
 	// Code size 36 (0x24)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -3165,11 +2968,11 @@
 	IL_0023:  ret 
     } // end of method RcTask::.ctor
 
-    // method line 103
+    // method line 96
     .method public hidebysig specialname 
            instance default string get_Options ()  cil managed 
     {
-        // Method begins at RVA 0x3430
+        // Method begins at RVA 0x32a8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3184,11 +2987,11 @@
 	IL_000e:  ret 
     } // end of method RcTask::get_Options
 
-    // method line 104
+    // method line 97
     .method public hidebysig specialname 
            instance default void set_Options (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x344b
+        // Method begins at RVA 0x32c3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3198,11 +3001,11 @@
 	IL_0008:  ret 
     } // end of method RcTask::set_Options
 
-    // method line 105
+    // method line 98
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x3458
+        // Method begins at RVA 0x32d0
 	// Code size 60 (0x3c)
 	.maxstack 3
 	.locals init (
@@ -3231,11 +3034,11 @@
 	IL_003b:  ret 
     } // end of method RcTask::get_OutputFile
 
-    // method line 106
+    // method line 99
     .method public hidebysig specialname 
            instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x34a0
+        // Method begins at RVA 0x3318
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3245,11 +3048,11 @@
 	IL_0008:  ret 
     } // end of method RcTask::set_OutputFile
 
-    // method line 107
+    // method line 100
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_RcFile ()  cil managed 
     {
-        // Method begins at RVA 0x34ac
+        // Method begins at RVA 0x3324
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3264,11 +3067,11 @@
 	IL_000e:  ret 
     } // end of method RcTask::get_RcFile
 
-    // method line 108
+    // method line 101
     .method public hidebysig specialname 
            instance default void set_RcFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x34c7
+        // Method begins at RVA 0x333f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3278,11 +3081,11 @@
 	IL_0008:  ret 
     } // end of method RcTask::set_RcFile
 
-    // method line 109
+    // method line 102
     .method public hidebysig specialname 
            instance default int32 get_LangId ()  cil managed 
     {
-        // Method begins at RVA 0x34d4
+        // Method begins at RVA 0x334c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3297,11 +3100,11 @@
 	IL_000e:  ret 
     } // end of method RcTask::get_LangId
 
-    // method line 110
+    // method line 103
     .method public hidebysig specialname 
            instance default void set_LangId (int32 'value')  cil managed 
     {
-        // Method begins at RVA 0x34ef
+        // Method begins at RVA 0x3367
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3311,11 +3114,11 @@
 	IL_0008:  ret 
     } // end of method RcTask::set_LangId
 
-    // method line 111
+    // method line 104
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_IncludeDirs ()  cil managed 
     {
-        // Method begins at RVA 0x34fc
+        // Method begins at RVA 0x3374
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3330,11 +3133,11 @@
 	IL_000e:  ret 
     } // end of method RcTask::get_IncludeDirs
 
-    // method line 112
+    // method line 105
     .method public hidebysig specialname 
            instance default void set_IncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x3517
+        // Method begins at RVA 0x338f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3344,11 +3147,11 @@
 	IL_0008:  ret 
     } // end of method RcTask::set_IncludeDirs
 
-    // method line 113
+    // method line 106
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Defines ()  cil managed 
     {
-        // Method begins at RVA 0x3524
+        // Method begins at RVA 0x339c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3363,11 +3166,11 @@
 	IL_000e:  ret 
     } // end of method RcTask::get_Defines
 
-    // method line 114
+    // method line 107
     .method public virtual hidebysig specialname 
            instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x3540
+        // Method begins at RVA 0x33b8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3382,11 +3185,11 @@
 	IL_000e:  ret 
     } // end of method RcTask::get_ProgramFileName
 
-    // method line 115
+    // method line 108
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x355c
+        // Method begins at RVA 0x33d4
 	// Code size 439 (0x1b7)
 	.maxstack 4
 	.locals init (
@@ -3569,11 +3372,11 @@
 	IL_01b6:  ret 
     } // end of method RcTask::get_ProgramArguments
 
-    // method line 116
+    // method line 109
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x373c
+        // Method begins at RVA 0x35b4
 	// Code size 116 (0x74)
 	.maxstack 7
 	IL_0000:  nop 
@@ -3620,11 +3423,11 @@
 	IL_0073:  ret 
     } // end of method RcTask::ExecuteTask
 
-    // method line 117
+    // method line 110
     .method family virtual hidebysig newslot 
            instance default bool NeedsCompiling ()  cil managed 
     {
-        // Method begins at RVA 0x37bc
+        // Method begins at RVA 0x3634
 	// Code size 443 (0x1bb)
 	.maxstack 7
 	.locals init (
@@ -3803,11 +3606,11 @@
 	IL_01ba:  ret 
     } // end of method RcTask::NeedsCompiling
 
-    // method line 118
+    // method line 111
     .method private hidebysig 
            instance default bool CheckResourceTimeStamp (string filePath)  cil managed 
     {
-        // Method begins at RVA 0x3994
+        // Method begins at RVA 0x380c
 	// Code size 86 (0x56)
 	.maxstack 7
 	.locals init (
@@ -3928,11 +3731,11 @@
     .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _libdirs
     .field  private  string _options
 
-    // method line 119
+    // method line 112
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x39f6
+        // Method begins at RVA 0x386e
 	// Code size 51 (0x33)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -3952,11 +3755,11 @@
 	IL_0032:  ret 
     } // end of method LibTask::.ctor
 
-    // method line 120
+    // method line 113
     .method public hidebysig specialname 
            instance default string get_Options ()  cil managed 
     {
-        // Method begins at RVA 0x3a2c
+        // Method begins at RVA 0x38a4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3971,11 +3774,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_Options
 
-    // method line 121
+    // method line 114
     .method public hidebysig specialname 
            instance default void set_Options (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3a47
+        // Method begins at RVA 0x38bf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3985,11 +3788,11 @@
 	IL_0008:  ret 
     } // end of method LibTask::set_Options
 
-    // method line 122
+    // method line 115
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x3a54
+        // Method begins at RVA 0x38cc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4004,11 +3807,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_OutputFile
 
-    // method line 123
+    // method line 116
     .method public hidebysig specialname 
            instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3a6f
+        // Method begins at RVA 0x38e7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4018,11 +3821,11 @@
 	IL_0008:  ret 
     } // end of method LibTask::set_OutputFile
 
-    // method line 124
+    // method line 117
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_ModuleDefinitionFile ()  cil managed 
     {
-        // Method begins at RVA 0x3a7c
+        // Method begins at RVA 0x38f4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4037,11 +3840,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_ModuleDefinitionFile
 
-    // method line 125
+    // method line 118
     .method public hidebysig specialname 
            instance default void set_ModuleDefinitionFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3a97
+        // Method begins at RVA 0x390f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4051,11 +3854,11 @@
 	IL_0008:  ret 
     } // end of method LibTask::set_ModuleDefinitionFile
 
-    // method line 126
+    // method line 119
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Sources ()  cil managed 
     {
-        // Method begins at RVA 0x3aa4
+        // Method begins at RVA 0x391c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4070,11 +3873,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_Sources
 
-    // method line 127
+    // method line 120
     .method public hidebysig specialname 
            instance default void set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x3abf
+        // Method begins at RVA 0x3937
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4084,11 +3887,11 @@
 	IL_0008:  ret 
     } // end of method LibTask::set_Sources
 
-    // method line 128
+    // method line 121
     .method public hidebysig specialname 
            instance default class NAnt.VisualCpp.Types.SymbolCollection get_Symbols ()  cil managed 
     {
-        // Method begins at RVA 0x3acc
+        // Method begins at RVA 0x3944
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4103,11 +3906,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_Symbols
 
-    // method line 129
+    // method line 122
     .method public hidebysig specialname 
            instance default void set_Symbols (class NAnt.VisualCpp.Types.SymbolCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x3ae7
+        // Method begins at RVA 0x395f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4117,11 +3920,11 @@
 	IL_0008:  ret 
     } // end of method LibTask::set_Symbols
 
-    // method line 130
+    // method line 123
     .method public hidebysig specialname 
            instance default class NAnt.VisualCpp.Types.LibraryCollection get_IgnoreLibraries ()  cil managed 
     {
-        // Method begins at RVA 0x3af4
+        // Method begins at RVA 0x396c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4136,11 +3939,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_IgnoreLibraries
 
-    // method line 131
+    // method line 124
     .method public hidebysig specialname 
            instance default void set_IgnoreLibraries (class NAnt.VisualCpp.Types.LibraryCollection 'value')  cil managed 
     {
-        // Method begins at RVA 0x3b0f
+        // Method begins at RVA 0x3987
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4150,11 +3953,11 @@
 	IL_0008:  ret 
     } // end of method LibTask::set_IgnoreLibraries
 
-    // method line 132
+    // method line 125
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_LibDirs ()  cil managed 
     {
-        // Method begins at RVA 0x3b1c
+        // Method begins at RVA 0x3994
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4169,11 +3972,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_LibDirs
 
-    // method line 133
+    // method line 126
     .method public hidebysig specialname 
            instance default void set_LibDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x3b37
+        // Method begins at RVA 0x39af
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4183,11 +3986,11 @@
 	IL_0008:  ret 
     } // end of method LibTask::set_LibDirs
 
-    // method line 134
+    // method line 127
     .method public virtual hidebysig specialname 
            instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x3b44
+        // Method begins at RVA 0x39bc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4202,11 +4005,11 @@
 	IL_000e:  ret 
     } // end of method LibTask::get_ProgramFileName
 
-    // method line 135
+    // method line 128
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x3b60
+        // Method begins at RVA 0x39d8
 	// Code size 30 (0x1e)
 	.maxstack 3
 	.locals init (
@@ -4224,11 +4027,11 @@
 	IL_001d:  ret 
     } // end of method LibTask::get_ProgramArguments
 
-    // method line 136
+    // method line 129
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x3b8c
+        // Method begins at RVA 0x3a04
 	// Code size 828 (0x33c)
 	.maxstack 7
 	.locals init (
@@ -4565,11 +4368,11 @@
 	IL_033b:  ret 
     } // end of method LibTask::ExecuteTask
 
-    // method line 137
+    // method line 130
     .method family virtual hidebysig newslot 
            instance default bool NeedsCompiling ()  cil managed 
     {
-        // Method begins at RVA 0x3f50
+        // Method begins at RVA 0x3dc8
 	// Code size 138 (0x8a)
 	.maxstack 7
 	.locals init (
@@ -4702,6 +4505,1908 @@
 
 .namespace NAnt.VisualCpp.Tasks
 {
+  .class public auto ansi beforefieldinit McTask
+  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 02 6D 63 00 00 ) // ...mc..
+
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _headerPath
+    .field  private  class [mscorlib]System.IO.DirectoryInfo _rcPath
+    .field  private  string _options
+    .field  private  class [mscorlib]System.IO.FileInfo _mcFile
+
+    // method line 131
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x3e5e
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_0006:  ret 
+    } // end of method McTask::.ctor
+
+    // method line 132
+    .method public hidebysig specialname 
+           instance default string get_Options ()  cil managed 
+    {
+        // Method begins at RVA 0x3e68
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.McTask::_options
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method McTask::get_Options
+
+    // method line 133
+    .method public hidebysig specialname 
+           instance default void set_Options (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3e83
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.VisualCpp.Tasks.McTask::_options
+	IL_0008:  ret 
+    } // end of method McTask::set_Options
+
+    // method line 134
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_HeaderPath ()  cil managed 
+    {
+        // Method begins at RVA 0x3e90
+	// Code size 49 (0x31)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::_headerPath
+	IL_0007:  brtrue IL_0023
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0013:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	IL_0018:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_001d:  stloc.0 
+	IL_001e:  br IL_002f
+
+	IL_0023:  ldarg.0 
+	IL_0024:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::_headerPath
+	IL_0029:  stloc.0 
+	IL_002a:  br IL_002f
+
+	IL_002f:  ldloc.0 
+	IL_0030:  ret 
+    } // end of method McTask::get_HeaderPath
+
+    // method line 135
+    .method public hidebysig specialname 
+           instance default void set_HeaderPath (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3ecd
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::_headerPath
+	IL_0008:  ret 
+    } // end of method McTask::set_HeaderPath
+
+    // method line 136
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.DirectoryInfo get_RCPath ()  cil managed 
+    {
+        // Method begins at RVA 0x3ed8
+	// Code size 49 (0x31)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.DirectoryInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::_rcPath
+	IL_0007:  brtrue IL_0023
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0013:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	IL_0018:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_001d:  stloc.0 
+	IL_001e:  br IL_002f
+
+	IL_0023:  ldarg.0 
+	IL_0024:  ldfld class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::_rcPath
+	IL_0029:  stloc.0 
+	IL_002a:  br IL_002f
+
+	IL_002f:  ldloc.0 
+	IL_0030:  ret 
+    } // end of method McTask::get_RCPath
+
+    // method line 137
+    .method public hidebysig specialname 
+           instance default void set_RCPath (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3f15
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::_rcPath
+	IL_0008:  ret 
+    } // end of method McTask::set_RCPath
+
+    // method line 138
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_McFile ()  cil managed 
+    {
+        // Method begins at RVA 0x3f20
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.McTask::_mcFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method McTask::get_McFile
+
+    // method line 139
+    .method public hidebysig specialname 
+           instance default void set_McFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3f3b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.McTask::_mcFile
+	IL_0008:  ret 
+    } // end of method McTask::set_McFile
+
+    // method line 140
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramFileName ()  cil managed 
+    {
+        // Method begins at RVA 0x3f48
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  callvirt instance string class [NAnt.Core]NAnt.Core.Element::get_Name()
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method McTask::get_ProgramFileName
+
+    // method line 141
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
+    {
+        // Method begins at RVA 0x3f64
+	// Code size 212 (0xd4)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldstr ""
+	IL_0006:  stloc.0 
+	IL_0007:  ldarg.0 
+	IL_0008:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_000d:  brfalse IL_0020
+
+	IL_0012:  nop 
+	IL_0013:  ldloc.0 
+	IL_0014:  ldstr "/v "
+	IL_0019:  call string string::Concat(string, string)
+	IL_001e:  stloc.0 
+	IL_001f:  nop 
+	IL_0020:  ldarg.0 
+	IL_0021:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_HeaderPath()
+	IL_0026:  brfalse IL_004e
+
+	IL_002b:  nop 
+	IL_002c:  ldloc.0 
+	IL_002d:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0032:  ldstr "-h \"{0}\" "
+	IL_0037:  ldarg.0 
+	IL_0038:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_HeaderPath()
+	IL_003d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0042:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0047:  call string string::Concat(string, string)
+	IL_004c:  stloc.0 
+	IL_004d:  nop 
+	IL_004e:  ldarg.0 
+	IL_004f:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_RCPath()
+	IL_0054:  brfalse IL_007c
+
+	IL_0059:  nop 
+	IL_005a:  ldloc.0 
+	IL_005b:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0060:  ldstr "-r \"{0}\" "
+	IL_0065:  ldarg.0 
+	IL_0066:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_RCPath()
+	IL_006b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0070:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0075:  call string string::Concat(string, string)
+	IL_007a:  stloc.0 
+	IL_007b:  nop 
+	IL_007c:  ldarg.0 
+	IL_007d:  call instance string class NAnt.VisualCpp.Tasks.McTask::get_Options()
+	IL_0082:  brfalse IL_00a5
+
+	IL_0087:  nop 
+	IL_0088:  ldloc.0 
+	IL_0089:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_008e:  ldstr "{0} "
+	IL_0093:  ldarg.0 
+	IL_0094:  call instance string class NAnt.VisualCpp.Tasks.McTask::get_Options()
+	IL_0099:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_009e:  call string string::Concat(string, string)
+	IL_00a3:  stloc.0 
+	IL_00a4:  nop 
+	IL_00a5:  ldloc.0 
+	IL_00a6:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00ab:  ldstr "\"{0}\" "
+	IL_00b0:  ldarg.0 
+	IL_00b1:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
+	IL_00b6:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00bb:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00c0:  call string string::Concat(string, string)
+	IL_00c5:  stloc.0 
+	IL_00c6:  ldloc.0 
+	IL_00c7:  callvirt instance string object::ToString()
+	IL_00cc:  stloc.1 
+	IL_00cd:  br IL_00d2
+
+	IL_00d2:  ldloc.1 
+	IL_00d3:  ret 
+    } // end of method McTask::get_ProgramArguments
+
+    // method line 142
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x4044
+	// Code size 313 (0x139)
+	.maxstack 7
+	.locals init (
+		string	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_HeaderPath()
+	IL_0007:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_000c:  ldarg.0 
+	IL_000d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
+	IL_0012:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0017:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_001c:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0021:  ldstr ".h"
+	IL_0026:  call string string::Concat(string, string)
+	IL_002b:  stloc.0 
+	IL_002c:  ldarg.0 
+	IL_002d:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_RCPath()
+	IL_0032:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0037:  ldarg.0 
+	IL_0038:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
+	IL_003d:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0042:  call string class [mscorlib]System.IO.Path::GetFileNameWithoutExtension(string)
+	IL_0047:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_004c:  ldstr ".rc"
+	IL_0051:  call string string::Concat(string, string)
+	IL_0056:  stloc.1 
+	IL_0057:  ldarg.0 
+	IL_0058:  ldloc.0 
+	IL_0059:  call instance bool class NAnt.VisualCpp.Tasks.McTask::NeedsCompiling(string)
+	IL_005e:  brtrue IL_009a
+
+	IL_0063:  ldarg.0 
+	IL_0064:  ldloc.1 
+	IL_0065:  call instance bool class NAnt.VisualCpp.Tasks.McTask::NeedsCompiling(string)
+	IL_006a:  brtrue IL_009a
+
+	IL_006f:  nop 
+	IL_0070:  ldarg.0 
+	IL_0071:  ldc.i4 3000
+	IL_0076:  ldstr "Target(s) up-to-date, not compiling '{0}'."
+	IL_007b:  ldc.i4.1 
+	IL_007c:  newarr [mscorlib]System.Object
+	IL_0081:  dup 
+	IL_0082:  ldc.i4.0 
+	IL_0083:  ldarg.0 
+	IL_0084:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
+	IL_0089:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_008e:  stelem.ref 
+	IL_008f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0094:  nop 
+	IL_0095:  br IL_0138
+
+	IL_009a:  nop 
+	IL_009b:  ldarg.0 
+	IL_009c:  ldc.i4 3000
+	IL_00a1:  ldstr "Target out of date, compiling '{0}'."
+	IL_00a6:  ldc.i4.1 
+	IL_00a7:  newarr [mscorlib]System.Object
+	IL_00ac:  dup 
+	IL_00ad:  ldc.i4.0 
+	IL_00ae:  ldarg.0 
+	IL_00af:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
+	IL_00b4:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00b9:  stelem.ref 
+	IL_00ba:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00bf:  ldarg.0 
+	IL_00c0:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_HeaderPath()
+	IL_00c5:  brfalse IL_00f0
+
+	IL_00ca:  nop 
+	IL_00cb:  ldarg.0 
+	IL_00cc:  ldc.i4 3000
+	IL_00d1:  ldstr "Header file to '{0}'."
+	IL_00d6:  ldc.i4.1 
+	IL_00d7:  newarr [mscorlib]System.Object
+	IL_00dc:  dup 
+	IL_00dd:  ldc.i4.0 
+	IL_00de:  ldarg.0 
+	IL_00df:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_HeaderPath()
+	IL_00e4:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00e9:  stelem.ref 
+	IL_00ea:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00ef:  nop 
+	IL_00f0:  ldarg.0 
+	IL_00f1:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_RCPath()
+	IL_00f6:  brfalse IL_0121
+
+	IL_00fb:  nop 
+	IL_00fc:  ldarg.0 
+	IL_00fd:  ldc.i4 3000
+	IL_0102:  ldstr "RC file to '{0}'."
+	IL_0107:  ldc.i4.1 
+	IL_0108:  newarr [mscorlib]System.Object
+	IL_010d:  dup 
+	IL_010e:  ldc.i4.0 
+	IL_010f:  ldarg.0 
+	IL_0110:  call instance class [mscorlib]System.IO.DirectoryInfo class NAnt.VisualCpp.Tasks.McTask::get_RCPath()
+	IL_0115:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_011a:  stelem.ref 
+	IL_011b:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0120:  nop 
+	IL_0121:  ldarg.0 
+	IL_0122:  ldc.i4 3000
+	IL_0127:  ldstr ""
+	IL_012c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	IL_0131:  ldarg.0 
+	IL_0132:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	IL_0137:  nop 
+	IL_0138:  ret 
+    } // end of method McTask::ExecuteTask
+
+    // method line 143
+    .method private hidebysig 
+           instance default bool NeedsCompiling (string destinationFile)  cil managed 
+    {
+        // Method begins at RVA 0x418c
+	// Code size 136 (0x88)
+	.maxstack 7
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0,
+		bool	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
+	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_000c:  brfalse IL_005a
+
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_0018:  ldarg.1 
+	IL_0019:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::GetFullPath(string)
+	IL_001e:  newobj instance void class [mscorlib]System.IO.FileInfo::'.ctor'(string)
+	IL_0023:  stloc.0 
+	IL_0024:  ldloc.0 
+	IL_0025:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_002a:  brfalse IL_004a
+
+	IL_002f:  ldarg.0 
+	IL_0030:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
+	IL_0035:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_003a:  ldloc.0 
+	IL_003b:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0040:  call bool valuetype [mscorlib]System.DateTime::op_GreaterThan(valuetype [mscorlib]System.DateTime, valuetype [mscorlib]System.DateTime)
+	IL_0045:  brfalse IL_0052
+
+	IL_004a:  nop 
+	IL_004b:  ldc.i4.1 
+	IL_004c:  stloc.1 
+	IL_004d:  br IL_0086
+
+	IL_0052:  nop 
+	IL_0053:  ldc.i4.0 
+	IL_0054:  stloc.1 
+	IL_0055:  br IL_0086
+
+	IL_005a:  nop 
+	IL_005b:  ldarg.0 
+	IL_005c:  ldc.i4 3000
+	IL_0061:  ldstr "Source file '{0}' doesn't exist!"
+	IL_0066:  ldc.i4.1 
+	IL_0067:  newarr [mscorlib]System.Object
+	IL_006c:  dup 
+	IL_006d:  ldc.i4.0 
+	IL_006e:  ldarg.0 
+	IL_006f:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.McTask::get_McFile()
+	IL_0074:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0079:  stelem.ref 
+	IL_007a:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_007f:  ldc.i4.1 
+	IL_0080:  stloc.1 
+	IL_0081:  br IL_0086
+
+	IL_0086:  ldloc.1 
+	IL_0087:  ret 
+    } // end of method McTask::NeedsCompiling
+
+	.property instance string Options ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6F 70 74 69 6F 6E 73 00 00 ) // ...options..
+
+		.get instance default string NAnt.VisualCpp.Tasks.McTask::get_Options () 
+		.set instance default void NAnt.VisualCpp.Tasks.McTask::set_Options (string 'value') 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo HeaderPath ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 68 65 61 64 65 72 70 61 74 68 00 00 ) // ...headerpath..
+
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::get_HeaderPath () 
+		.set instance default void NAnt.VisualCpp.Tasks.McTask::set_HeaderPath (class [mscorlib]System.IO.DirectoryInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.DirectoryInfo RCPath ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 72 63 70 61 74 68 00 00 ) // ...rcpath..
+
+		.get instance default class [mscorlib]System.IO.DirectoryInfo NAnt.VisualCpp.Tasks.McTask::get_RCPath () 
+		.set instance default void NAnt.VisualCpp.Tasks.McTask::set_RCPath (class [mscorlib]System.IO.DirectoryInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo McFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 6D 63 66 69 6C 65 01 00 54 02 08 52 65   // ...mcfile..T..Re
+		71 75 69 72 65 64 01                            ) // quired.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.McTask::get_McFile () 
+		.set instance default void NAnt.VisualCpp.Tasks.McTask::set_McFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string ProgramFileName ()
+	{
+		.get instance default string NAnt.VisualCpp.Tasks.McTask::get_ProgramFileName () 
+	}
+	.property instance string ProgramArguments ()
+	{
+		.get instance default string NAnt.VisualCpp.Tasks.McTask::get_ProgramArguments () 
+	}
+  } // end of class NAnt.VisualCpp.Tasks.McTask
+}
+
+.namespace NAnt.VisualCpp.Tasks
+{
+  .class public auto ansi beforefieldinit MidlTask
+  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 6D 69 64 6C 00 00 ) // ...midl..
+
+    .field  private  string _responseFileName
+    .field  private  string _acf
+    .field  private  string _align
+    .field  private  bool _appConfig
+    .field  private  string _char
+    .field  private  string _client
+    .field  private  string _cstub
+    .field  private  class [mscorlib]System.IO.FileInfo _dlldata
+    .field  private  string _env
+    .field  private  string _Oi
+    .field  private  class [mscorlib]System.IO.FileInfo _header
+    .field  private  class [mscorlib]System.IO.FileInfo _iid
+    .field  private  class [mscorlib]System.IO.FileInfo _proxy
+    .field  private  class [mscorlib]System.IO.FileInfo _tlb
+    .field  private  class [mscorlib]System.IO.FileInfo _filename
+    .field  private  class [NAnt.Core]NAnt.Core.Types.OptionCollection _options
+    .field  private  class [NAnt.Core]NAnt.Core.Types.OptionCollection _defines
+    .field  private  class [NAnt.Core]NAnt.Core.Types.OptionCollection _undefines
+    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _includeDirs
+    .field private static literal  string PROG_FILE_NAME = "midl.exe"
+
+    // method line 144
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x4220
+	// Code size 62 (0x3e)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldstr "win32"
+	IL_0006:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_env
+	IL_000b:  ldarg.0 
+	IL_000c:  newobj instance void class [NAnt.Core]NAnt.Core.Types.OptionCollection::'.ctor'()
+	IL_0011:  stfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::_options
+	IL_0016:  ldarg.0 
+	IL_0017:  newobj instance void class [NAnt.Core]NAnt.Core.Types.OptionCollection::'.ctor'()
+	IL_001c:  stfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::_defines
+	IL_0021:  ldarg.0 
+	IL_0022:  newobj instance void class [NAnt.Core]NAnt.Core.Types.OptionCollection::'.ctor'()
+	IL_0027:  stfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::_undefines
+	IL_002c:  ldarg.0 
+	IL_002d:  newobj instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
+	IL_0032:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.VisualCpp.Tasks.MidlTask::_includeDirs
+	IL_0037:  ldarg.0 
+	IL_0038:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_003d:  ret 
+    } // end of method MidlTask::.ctor
+
+    // method line 145
+    .method public hidebysig specialname 
+           instance default string get_Acf ()  cil managed 
+    {
+        // Method begins at RVA 0x4260
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_acf
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_Acf
+
+    // method line 146
+    .method public hidebysig specialname 
+           instance default void set_Acf (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x427b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_acf
+	IL_0008:  ret 
+    } // end of method MidlTask::set_Acf
+
+    // method line 147
+    .method public hidebysig specialname 
+           instance default string get_Align ()  cil managed 
+    {
+        // Method begins at RVA 0x4288
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_align
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_Align
+
+    // method line 148
+    .method public hidebysig specialname 
+           instance default void set_Align (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x42a3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_align
+	IL_0008:  ret 
+    } // end of method MidlTask::set_Align
+
+    // method line 149
+    .method public hidebysig specialname 
+           instance default bool get_AppConfig ()  cil managed 
+    {
+        // Method begins at RVA 0x42b0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.VisualCpp.Tasks.MidlTask::_appConfig
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_AppConfig
+
+    // method line 150
+    .method public hidebysig specialname 
+           instance default void set_AppConfig (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x42cb
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.VisualCpp.Tasks.MidlTask::_appConfig
+	IL_0008:  ret 
+    } // end of method MidlTask::set_AppConfig
+
+    // method line 151
+    .method public hidebysig specialname 
+           instance default string get_Char ()  cil managed 
+    {
+        // Method begins at RVA 0x42d8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_char
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_Char
+
+    // method line 152
+    .method public hidebysig specialname 
+           instance default void set_Char (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x42f3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_char
+	IL_0008:  ret 
+    } // end of method MidlTask::set_Char
+
+    // method line 153
+    .method public hidebysig specialname 
+           instance default string get_Client ()  cil managed 
+    {
+        // Method begins at RVA 0x4300
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_client
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_Client
+
+    // method line 154
+    .method public hidebysig specialname 
+           instance default void set_Client (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x431b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_client
+	IL_0008:  ret 
+    } // end of method MidlTask::set_Client
+
+    // method line 155
+    .method public hidebysig specialname 
+           instance default string get_CStub ()  cil managed 
+    {
+        // Method begins at RVA 0x4328
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_cstub
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_CStub
+
+    // method line 156
+    .method public hidebysig specialname 
+           instance default void set_CStub (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x4343
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_cstub
+	IL_0008:  ret 
+    } // end of method MidlTask::set_CStub
+
+    // method line 157
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_DllData ()  cil managed 
+    {
+        // Method begins at RVA 0x4350
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_dlldata
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_DllData
+
+    // method line 158
+    .method public hidebysig specialname 
+           instance default void set_DllData (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x436b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_dlldata
+	IL_0008:  ret 
+    } // end of method MidlTask::set_DllData
+
+    // method line 159
+    .method public hidebysig specialname 
+           instance default string get_Env ()  cil managed 
+    {
+        // Method begins at RVA 0x4378
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_env
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_Env
+
+    // method line 160
+    .method public hidebysig specialname 
+           instance default void set_Env (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x4393
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_env
+	IL_0008:  ret 
+    } // end of method MidlTask::set_Env
+
+    // method line 161
+    .method public hidebysig specialname 
+           instance default string get_Oi ()  cil managed 
+    {
+        // Method begins at RVA 0x43a0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_Oi
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_Oi
+
+    // method line 162
+    .method public hidebysig specialname 
+           instance default void set_Oi (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x43bb
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_Oi
+	IL_0008:  ret 
+    } // end of method MidlTask::set_Oi
+
+    // method line 163
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Tlb ()  cil managed 
+    {
+        // Method begins at RVA 0x43c8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_tlb
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_Tlb
+
+    // method line 164
+    .method public hidebysig specialname 
+           instance default void set_Tlb (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x43e3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_tlb
+	IL_0008:  ret 
+    } // end of method MidlTask::set_Tlb
+
+    // method line 165
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Header ()  cil managed 
+    {
+        // Method begins at RVA 0x43f0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_header
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_Header
+
+    // method line 166
+    .method public hidebysig specialname 
+           instance default void set_Header (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x440b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_header
+	IL_0008:  ret 
+    } // end of method MidlTask::set_Header
+
+    // method line 167
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Iid ()  cil managed 
+    {
+        // Method begins at RVA 0x4418
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_iid
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_Iid
+
+    // method line 168
+    .method public hidebysig specialname 
+           instance default void set_Iid (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x4433
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_iid
+	IL_0008:  ret 
+    } // end of method MidlTask::set_Iid
+
+    // method line 169
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Proxy ()  cil managed 
+    {
+        // Method begins at RVA 0x4440
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_proxy
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_Proxy
+
+    // method line 170
+    .method public hidebysig specialname 
+           instance default void set_Proxy (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x445b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_proxy
+	IL_0008:  ret 
+    } // end of method MidlTask::set_Proxy
+
+    // method line 171
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_Filename ()  cil managed 
+    {
+        // Method begins at RVA 0x4468
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_filename
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_Filename
+
+    // method line 172
+    .method public hidebysig specialname 
+           instance default void set_Filename (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x4483
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_filename
+	IL_0008:  ret 
+    } // end of method MidlTask::set_Filename
+
+    // method line 173
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Options ()  cil managed 
+    {
+        // Method begins at RVA 0x4490
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [NAnt.Core]NAnt.Core.Types.OptionCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::_options
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_Options
+
+    // method line 174
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Defines ()  cil managed 
+    {
+        // Method begins at RVA 0x44ac
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [NAnt.Core]NAnt.Core.Types.OptionCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::_defines
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_Defines
+
+    // method line 175
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Undefines ()  cil managed 
+    {
+        // Method begins at RVA 0x44c8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [NAnt.Core]NAnt.Core.Types.OptionCollection	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::_undefines
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_Undefines
+
+    // method line 176
+    .method public hidebysig specialname 
+           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_IncludeDirs ()  cil managed 
+    {
+        // Method begins at RVA 0x44e4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.VisualCpp.Tasks.MidlTask::_includeDirs
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method MidlTask::get_IncludeDirs
+
+    // method line 177
+    .method public hidebysig specialname 
+           instance default void set_IncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x44ff
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.VisualCpp.Tasks.MidlTask::_includeDirs
+	IL_0008:  ret 
+    } // end of method MidlTask::set_IncludeDirs
+
+    // method line 178
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramFileName ()  cil managed 
+    {
+        // Method begins at RVA 0x450c
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldstr "midl.exe"
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method MidlTask::get_ProgramFileName
+
+    // method line 179
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
+    {
+        // Method begins at RVA 0x4528
+	// Code size 30 (0x1e)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldstr "@\""
+	IL_0006:  ldarg.0 
+	IL_0007:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_responseFileName
+	IL_000c:  ldstr "\""
+	IL_0011:  call string string::Concat(string, string, string)
+	IL_0016:  stloc.0 
+	IL_0017:  br IL_001c
+
+	IL_001c:  ldloc.0 
+	IL_001d:  ret 
+    } // end of method MidlTask::get_ProgramArguments
+
+    // method line 180
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x4554
+	// Code size 219 (0xdb)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.IO.StreamWriter	V_0,
+		class [mscorlib]System.IO.StreamReader	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VisualCpp.Tasks.MidlTask::get_IncludeDirs()
+	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_000c:  brtrue IL_002e
+
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VisualCpp.Tasks.MidlTask::get_IncludeDirs()
+	IL_0018:  ldarg.0 
+	IL_0019:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_001e:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	IL_0023:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0028:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_002d:  nop 
+	IL_002e:  ldarg.0 
+	IL_002f:  call instance bool class NAnt.VisualCpp.Tasks.MidlTask::NeedsCompiling()
+	IL_0034:  brfalse IL_00da
+
+	IL_0039:  nop 
+	IL_003a:  ldarg.0 
+	IL_003b:  call string class [mscorlib]System.IO.Path::GetTempFileName()
+	IL_0040:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_responseFileName
+	.try { // 1
+	  IL_0045:  nop 
+	  IL_0046:  ldarg.0 
+	  IL_0047:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_responseFileName
+	  IL_004c:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string)
+	  IL_0051:  stloc.0 
+	  .try { // 0
+	    IL_0052:  nop 
+	    IL_0053:  ldarg.0 
+	    IL_0054:  ldloc.0 
+	    IL_0055:  call instance void class NAnt.VisualCpp.Tasks.MidlTask::WriteResponseFile(class [mscorlib]System.IO.TextWriter)
+	    IL_005a:  nop 
+	    IL_005b:  leave IL_006d
+
+	  } // end .try 0
+	  finally  { // 0
+	    IL_0060:  ldloc.0 
+	    IL_0061:  brfalse IL_006c
+
+	    IL_0066:  ldloc.0 
+	    IL_0067:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_006c:  endfinally 
+	  } // end handler 0
+	  IL_006d:  ldarg.0 
+	  IL_006e:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	  IL_0073:  brfalse IL_00b8
+
+	  IL_0078:  nop 
+	  IL_0079:  ldarg.0 
+	  IL_007a:  ldc.i4 3000
+	  IL_007f:  ldstr "Contents of "
+	  IL_0084:  ldarg.0 
+	  IL_0085:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_responseFileName
+	  IL_008a:  call string string::Concat(string, string)
+	  IL_008f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	  IL_0094:  ldarg.0 
+	  IL_0095:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_responseFileName
+	  IL_009a:  call class [mscorlib]System.IO.StreamReader class [mscorlib]System.IO.File::OpenText(string)
+	  IL_009f:  stloc.1 
+	  IL_00a0:  ldarg.0 
+	  IL_00a1:  ldc.i4 3000
+	  IL_00a6:  ldloc.1 
+	  IL_00a7:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
+	  IL_00ac:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
+	  IL_00b1:  ldloc.1 
+	  IL_00b2:  callvirt instance void class [mscorlib]System.IO.TextReader::Close()
+	  IL_00b7:  nop 
+	  IL_00b8:  ldarg.0 
+	  IL_00b9:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	  IL_00be:  nop 
+	  IL_00bf:  leave IL_00d9
+
+	} // end .try 1
+	finally  { // 1
+	  IL_00c4:  nop 
+	  IL_00c5:  ldarg.0 
+	  IL_00c6:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_responseFileName
+	  IL_00cb:  call void class [mscorlib]System.IO.File::Delete(string)
+	  IL_00d0:  ldarg.0 
+	  IL_00d1:  ldnull 
+	  IL_00d2:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_responseFileName
+	  IL_00d7:  nop 
+	  IL_00d8:  endfinally 
+	} // end handler 1
+	IL_00d9:  nop 
+	IL_00da:  ret 
+    } // end of method MidlTask::ExecuteTask
+
+    // method line 181
+    .method private hidebysig 
+           instance default bool NeedsCompiling ()  cil managed 
+    {
+        // Method begins at RVA 0x4658
+	// Code size 118 (0x76)
+	.maxstack 2
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Tlb()
+	IL_0007:  brfalse IL_0025
+
+	IL_000c:  ldarg.0 
+	IL_000d:  ldarg.0 
+	IL_000e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Tlb()
+	IL_0013:  call instance bool class NAnt.VisualCpp.Tasks.MidlTask::NeedsCompiling(class [mscorlib]System.IO.FileInfo)
+	IL_0018:  brfalse IL_0025
+
+	IL_001d:  nop 
+	IL_001e:  ldc.i4.1 
+	IL_001f:  stloc.0 
+	IL_0020:  br IL_0074
+
+	IL_0025:  ldarg.0 
+	IL_0026:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Header()
+	IL_002b:  brfalse IL_0049
+
+	IL_0030:  ldarg.0 
+	IL_0031:  ldarg.0 
+	IL_0032:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Header()
+	IL_0037:  call instance bool class NAnt.VisualCpp.Tasks.MidlTask::NeedsCompiling(class [mscorlib]System.IO.FileInfo)
+	IL_003c:  brfalse IL_0049
+
+	IL_0041:  nop 
+	IL_0042:  ldc.i4.1 
+	IL_0043:  stloc.0 
+	IL_0044:  br IL_0074
+
+	IL_0049:  ldarg.0 
+	IL_004a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Iid()
+	IL_004f:  brfalse IL_006d
+
+	IL_0054:  ldarg.0 
+	IL_0055:  ldarg.0 
+	IL_0056:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Iid()
+	IL_005b:  call instance bool class NAnt.VisualCpp.Tasks.MidlTask::NeedsCompiling(class [mscorlib]System.IO.FileInfo)
+	IL_0060:  brfalse IL_006d
+
+	IL_0065:  nop 
+	IL_0066:  ldc.i4.1 
+	IL_0067:  stloc.0 
+	IL_0068:  br IL_0074
+
+	IL_006d:  ldc.i4.0 
+	IL_006e:  stloc.0 
+	IL_006f:  br IL_0074
+
+	IL_0074:  ldloc.0 
+	IL_0075:  ret 
+    } // end of method MidlTask::NeedsCompiling
+
+    // method line 182
+    .method private hidebysig 
+           instance default bool NeedsCompiling (class [mscorlib]System.IO.FileInfo outputFile)  cil managed 
+    {
+        // Method begins at RVA 0x46dc
+	// Code size 123 (0x7b)
+	.maxstack 7
+	.locals init (
+		bool	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_0007:  brtrue IL_0033
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldc.i4 2000
+	IL_0013:  ldstr "Output file '{0}' does not exist, recompiling."
+	IL_0018:  ldc.i4.1 
+	IL_0019:  newarr [mscorlib]System.Object
+	IL_001e:  dup 
+	IL_001f:  ldc.i4.0 
+	IL_0020:  ldarg.1 
+	IL_0021:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0026:  stelem.ref 
+	IL_0027:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_002c:  ldc.i4.1 
+	IL_002d:  stloc.0 
+	IL_002e:  br IL_0079
+
+	IL_0033:  ldarg.0 
+	IL_0034:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Filename()
+	IL_0039:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_003e:  ldarg.1 
+	IL_003f:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0044:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_0049:  stloc.1 
+	IL_004a:  ldloc.1 
+	IL_004b:  brfalse IL_0072
+
+	IL_0050:  nop 
+	IL_0051:  ldarg.0 
+	IL_0052:  ldc.i4 2000
+	IL_0057:  ldstr "'{0}' is out of date, recompiling."
+	IL_005c:  ldc.i4.1 
+	IL_005d:  newarr [mscorlib]System.Object
+	IL_0062:  dup 
+	IL_0063:  ldc.i4.0 
+	IL_0064:  ldloc.1 
+	IL_0065:  stelem.ref 
+	IL_0066:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_006b:  ldc.i4.1 
+	IL_006c:  stloc.0 
+	IL_006d:  br IL_0079
+
+	IL_0072:  ldc.i4.0 
+	IL_0073:  stloc.0 
+	IL_0074:  br IL_0079
+
+	IL_0079:  ldloc.0 
+	IL_007a:  ret 
+    } // end of method MidlTask::NeedsCompiling
+
+    // method line 183
+    .method private hidebysig 
+           instance default void WriteResponseFile (class [mscorlib]System.IO.TextWriter writer)  cil managed 
+    {
+        // Method begins at RVA 0x4764
+	// Code size 972 (0x3cc)
+	.maxstack 5
+	.locals init (
+		class [NAnt.Core]NAnt.Core.Types.Option	V_0,
+		class [NAnt.Core]NAnt.Core.Types.OptionEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2,
+		class [NAnt.Core]NAnt.Core.Types.Option	V_3,
+		class [NAnt.Core]NAnt.Core.Types.OptionEnumerator	V_4,
+		class [mscorlib]System.IDisposable	V_5,
+		class [NAnt.Core]NAnt.Core.Types.Option	V_6,
+		class [NAnt.Core]NAnt.Core.Types.OptionEnumerator	V_7,
+		class [mscorlib]System.IDisposable	V_8,
+		string	V_9,
+		class [System]System.Collections.Specialized.StringEnumerator	V_10,
+		class [mscorlib]System.IDisposable	V_11)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldstr "/nologo"
+	IL_0007:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	IL_000c:  ldarg.1 
+	IL_000d:  ldstr "/env "
+	IL_0012:  ldarg.0 
+	IL_0013:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_env
+	IL_0018:  call string string::Concat(string, string)
+	IL_001d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	IL_0022:  ldarg.0 
+	IL_0023:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_acf
+	IL_0028:  brfalse IL_003e
+
+	IL_002d:  ldarg.1 
+	IL_002e:  ldstr "/acf {0}"
+	IL_0033:  ldarg.0 
+	IL_0034:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_acf
+	IL_0039:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	IL_003e:  ldarg.0 
+	IL_003f:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_align
+	IL_0044:  brfalse IL_005a
+
+	IL_0049:  ldarg.1 
+	IL_004a:  ldstr "/align {0}"
+	IL_004f:  ldarg.0 
+	IL_0050:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_align
+	IL_0055:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	IL_005a:  ldarg.0 
+	IL_005b:  ldfld bool NAnt.VisualCpp.Tasks.MidlTask::_appConfig
+	IL_0060:  brfalse IL_0070
+
+	IL_0065:  ldarg.1 
+	IL_0066:  ldstr "/app_config"
+	IL_006b:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	IL_0070:  ldarg.0 
+	IL_0071:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_char
+	IL_0076:  brfalse IL_008c
+
+	IL_007b:  ldarg.1 
+	IL_007c:  ldstr "/char {0}"
+	IL_0081:  ldarg.0 
+	IL_0082:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_char
+	IL_0087:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	IL_008c:  ldarg.0 
+	IL_008d:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_client
+	IL_0092:  brfalse IL_00a8
+
+	IL_0097:  ldarg.1 
+	IL_0098:  ldstr "/client {0}"
+	IL_009d:  ldarg.0 
+	IL_009e:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_client
+	IL_00a3:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	IL_00a8:  ldarg.0 
+	IL_00a9:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_cstub
+	IL_00ae:  brfalse IL_00c4
+
+	IL_00b3:  ldarg.1 
+	IL_00b4:  ldstr "/cstub {0}"
+	IL_00b9:  ldarg.0 
+	IL_00ba:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_cstub
+	IL_00bf:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	IL_00c4:  ldarg.0 
+	IL_00c5:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_dlldata
+	IL_00ca:  brfalse IL_00e7
+
+	IL_00cf:  nop 
+	IL_00d0:  ldarg.1 
+	IL_00d1:  ldstr "/dlldata \"{0}\""
+	IL_00d6:  ldarg.0 
+	IL_00d7:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_DllData()
+	IL_00dc:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00e1:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	IL_00e6:  nop 
+	IL_00e7:  ldarg.0 
+	IL_00e8:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_Oi
+	IL_00ed:  brfalse IL_0108
+
+	IL_00f2:  ldarg.1 
+	IL_00f3:  ldstr "/Oi"
+	IL_00f8:  ldarg.0 
+	IL_00f9:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_Oi
+	IL_00fe:  call string string::Concat(string, string)
+	IL_0103:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	IL_0108:  ldarg.0 
+	IL_0109:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Tlb()
+	IL_010e:  brfalse IL_0129
+
+	IL_0113:  ldarg.1 
+	IL_0114:  ldstr "/tlb \"{0}\""
+	IL_0119:  ldarg.0 
+	IL_011a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Tlb()
+	IL_011f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0124:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	IL_0129:  ldarg.0 
+	IL_012a:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_header
+	IL_012f:  brfalse IL_014a
+
+	IL_0134:  ldarg.1 
+	IL_0135:  ldstr "/header \"{0}\""
+	IL_013a:  ldarg.0 
+	IL_013b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Header()
+	IL_0140:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0145:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	IL_014a:  ldarg.0 
+	IL_014b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Iid()
+	IL_0150:  brfalse IL_016b
+
+	IL_0155:  ldarg.1 
+	IL_0156:  ldstr "/iid \"{0}\""
+	IL_015b:  ldarg.0 
+	IL_015c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Iid()
+	IL_0161:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0166:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	IL_016b:  ldarg.0 
+	IL_016c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Proxy()
+	IL_0171:  brfalse IL_018c
+
+	IL_0176:  ldarg.1 
+	IL_0177:  ldstr "/proxy \"{0}\""
+	IL_017c:  ldarg.0 
+	IL_017d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Proxy()
+	IL_0182:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0187:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	IL_018c:  nop 
+	IL_018d:  ldarg.0 
+	IL_018e:  call instance class [NAnt.Core]NAnt.Core.Types.OptionCollection class NAnt.VisualCpp.Tasks.MidlTask::get_Defines()
+	IL_0193:  callvirt instance class [NAnt.Core]NAnt.Core.Types.OptionEnumerator class [NAnt.Core]NAnt.Core.Types.OptionCollection::GetEnumerator()
+	IL_0198:  stloc.1 
+	.try { // 0
+	  IL_0199:  br IL_0218
+
+	  IL_019e:  ldloc.1 
+	  IL_019f:  callvirt instance class [NAnt.Core]NAnt.Core.Types.Option class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::get_Current()
+	  IL_01a4:  stloc.0 
+	  IL_01a5:  nop 
+	  IL_01a6:  ldloc.0 
+	  IL_01a7:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	  IL_01ac:  brfalse IL_01bc
+
+	  IL_01b1:  ldloc.0 
+	  IL_01b2:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_UnlessDefined()
+	  IL_01b7:  brfalse IL_01c2
+
+	  IL_01bc:  nop 
+	  IL_01bd:  leave IL_0218
+
+	  IL_01c2:  ldloc.0 
+	  IL_01c3:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
+	  IL_01c8:  brtrue IL_01ef
+
+	  IL_01cd:  nop 
+	  IL_01ce:  ldarg.1 
+	  IL_01cf:  ldstr "/D "
+	  IL_01d4:  ldloc.0 
+	  IL_01d5:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
+	  IL_01da:  call string class NAnt.VisualCpp.Util.ArgumentUtils::FixTrailingBackslash(string)
+	  IL_01df:  call string string::Concat(string, string)
+	  IL_01e4:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_01e9:  nop 
+	  IL_01ea:  br IL_0217
+
+	  IL_01ef:  nop 
+	  IL_01f0:  ldarg.1 
+	  IL_01f1:  ldstr "/D "
+	  IL_01f6:  ldloc.0 
+	  IL_01f7:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
+	  IL_01fc:  ldstr "="
+	  IL_0201:  ldloc.0 
+	  IL_0202:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
+	  IL_0207:  call string class NAnt.VisualCpp.Util.ArgumentUtils::FixTrailingBackslash(string)
+	  IL_020c:  call string string::Concat(string, string, string, string)
+	  IL_0211:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_0216:  nop 
+	  IL_0217:  nop 
+	  IL_0218:  ldloc.1 
+	  IL_0219:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::MoveNext()
+	  IL_021e:  brtrue IL_019e
+
+	  IL_0223:  leave IL_023c
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0228:  ldloc.1 
+	  IL_0229:  isinst [mscorlib]System.IDisposable
+	  IL_022e:  dup 
+	  IL_022f:  stloc.2 
+	  IL_0230:  brfalse IL_023b
+
+	  IL_0235:  ldloc.2 
+	  IL_0236:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_023b:  endfinally 
+	} // end handler 0
+	IL_023c:  nop 
+	IL_023d:  ldarg.0 
+	IL_023e:  call instance class [NAnt.Core]NAnt.Core.Types.OptionCollection class NAnt.VisualCpp.Tasks.MidlTask::get_Undefines()
+	IL_0243:  callvirt instance class [NAnt.Core]NAnt.Core.Types.OptionEnumerator class [NAnt.Core]NAnt.Core.Types.OptionCollection::GetEnumerator()
+	IL_0248:  stloc.s 4
+	.try { // 1
+	  IL_024a:  br IL_0291
+
+	  IL_024f:  ldloc.s 4
+	  IL_0251:  callvirt instance class [NAnt.Core]NAnt.Core.Types.Option class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::get_Current()
+	  IL_0256:  stloc.3 
+	  IL_0257:  nop 
+	  IL_0258:  ldloc.3 
+	  IL_0259:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
+	  IL_025e:  brfalse IL_026e
+
+	  IL_0263:  ldloc.3 
+	  IL_0264:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_UnlessDefined()
+	  IL_0269:  brfalse IL_0274
+
+	  IL_026e:  nop 
+	  IL_026f:  leave IL_0291
+
+	  IL_0274:  ldarg.1 
+	  IL_0275:  ldstr "/U "
+	  IL_027a:  ldloc.3 
+	  IL_027b:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
+	  IL_0280:  ldc.i4.2 
+	  IL_0281:  call string class NAnt.VisualCpp.Util.ArgumentUtils::QuoteArgumentValue(string, valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod)
+	  IL_0286:  call string string::Concat(string, string)
+	  IL_028b:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_0290:  nop 
+	  IL_0291:  ldloc.s 4
+	  IL_0293:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::MoveNext()
+	  IL_0298:  brtrue IL_024f
+
+	  IL_029d:  leave IL_02b9
+
+	} // end .try 1
+	finally  { // 1
+	  IL_02a2:  ldloc.s 4
+	  IL_02a4:  isinst [mscorlib]System.IDisposable
+	  IL_02a9:  dup 
+	  IL_02aa:  stloc.s 5
+	  IL_02ac:  brfalse IL_02b8
+
+	  IL_02b1:  ldloc.s 5
+	  IL_02b3:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_02b8:  endfinally 
+	} // end handler 1
+	IL_02b9:  nop 
+	IL_02ba:  ldarg.0 
+	IL_02bb:  ldfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::_options
+	IL_02c0:  callvirt instance class [NAnt.Core]NAnt.Core.Types.OptionEnumerator class [NAnt.Core]NAnt.Core.Types.OptionCollection::GetEnumerator()
+	IL_02c5:  stloc.s 7
+	.try { // 2
+	  IL_02c7:  br IL_032f
+
+	  IL_02cc:  ldloc.s 7
+	  IL_02ce:  callvirt instance class [NAnt.Core]NAnt.Core.Types.Option class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::get_Current()
+	  IL_02d3:  stloc.s 6
+	  IL_02d5:  nop 
+	  IL_02d6:  ldarg.0 
+	  IL_02d7:  call instance bool class [NAnt.Core]NAnt.Core.Task::get_IfDefined()
+	  IL_02dc:  brfalse IL_032e
+
+	  IL_02e1:  ldarg.0 
+	  IL_02e2:  call instance bool class [NAnt.Core]NAnt.Core.Task::get_UnlessDefined()
+	  IL_02e7:  brtrue IL_032e
+
+	  IL_02ec:  nop 
+	  IL_02ed:  ldloc.s 6
+	  IL_02ef:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
+	  IL_02f4:  brtrue IL_030d
+
+	  IL_02f9:  nop 
+	  IL_02fa:  ldarg.1 
+	  IL_02fb:  ldloc.s 6
+	  IL_02fd:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
+	  IL_0302:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_0307:  nop 
+	  IL_0308:  br IL_032d
+
+	  IL_030d:  nop 
+	  IL_030e:  ldarg.1 
+	  IL_030f:  ldloc.s 6
+	  IL_0311:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
+	  IL_0316:  ldstr " "
+	  IL_031b:  ldloc.s 6
+	  IL_031d:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
+	  IL_0322:  call string string::Concat(string, string, string)
+	  IL_0327:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
+	  IL_032c:  nop 
+	  IL_032d:  nop 
+	  IL_032e:  nop 
+	  IL_032f:  ldloc.s 7
+	  IL_0331:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::MoveNext()
+	  IL_0336:  brtrue IL_02cc
+
+	  IL_033b:  leave IL_0357
+
+	} // end .try 2
+	finally  { // 2
+	  IL_0340:  ldloc.s 7
+	  IL_0342:  isinst [mscorlib]System.IDisposable
+	  IL_0347:  dup 
+	  IL_0348:  stloc.s 8
+	  IL_034a:  brfalse IL_0356
+
+	  IL_034f:  ldloc.s 8
+	  IL_0351:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0356:  endfinally 
+	} // end handler 2
+	IL_0357:  nop 
+	IL_0358:  ldarg.0 
+	IL_0359:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VisualCpp.Tasks.MidlTask::get_IncludeDirs()
+	IL_035e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_DirectoryNames()
+	IL_0363:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0368:  stloc.s 10
+	.try { // 3
+	  IL_036a:  br IL_038d
+
+	  IL_036f:  ldloc.s 10
+	  IL_0371:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0376:  stloc.s 9
+	  IL_0378:  nop 
+	  IL_0379:  ldarg.1 
+	  IL_037a:  ldstr "/I {0}"
+	  IL_037f:  ldloc.s 9
+	  IL_0381:  ldc.i4.3 
+	  IL_0382:  call string class NAnt.VisualCpp.Util.ArgumentUtils::QuoteArgumentValue(string, valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod)
+	  IL_0387:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	  IL_038c:  nop 
+	  IL_038d:  ldloc.s 10
+	  IL_038f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_0394:  brtrue IL_036f
+
+	  IL_0399:  leave IL_03b5
+
+	} // end .try 3
+	finally  { // 3
+	  IL_039e:  ldloc.s 10
+	  IL_03a0:  isinst [mscorlib]System.IDisposable
+	  IL_03a5:  dup 
+	  IL_03a6:  stloc.s 11
+	  IL_03a8:  brfalse IL_03b4
+
+	  IL_03ad:  ldloc.s 11
+	  IL_03af:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_03b4:  endfinally 
+	} // end handler 3
+	IL_03b5:  ldarg.1 
+	IL_03b6:  ldstr "\"{0}\""
+	IL_03bb:  ldarg.0 
+	IL_03bc:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Filename()
+	IL_03c1:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_03c6:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
+	IL_03cb:  ret 
+    } // end of method MidlTask::WriteResponseFile
+
+	.property instance string Acf ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 61 63 66 00 00 ) // ...acf..
+
+		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_Acf () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Acf (string 'value') 
+	}
+	.property instance string Align ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 61 6C 69 67 6E 00 00 ) // ...align..
+
+		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_Align () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Align (string 'value') 
+	}
+	.property instance bool AppConfig ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 61 70 70 5F 63 6F 6E 66 69 67 00 00 ) // ...app_config..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.VisualCpp.Tasks.MidlTask::get_AppConfig () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_AppConfig (bool 'value') 
+	}
+	.property instance string Char ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 63 68 61 72 00 00 ) // ...char..
+
+		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_Char () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Char (string 'value') 
+	}
+	.property instance string Client ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 63 6C 69 65 6E 74 00 00 ) // ...client..
+
+		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_Client () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Client (string 'value') 
+	}
+	.property instance string CStub ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 63 73 74 75 62 00 00 ) // ...cstub..
+
+		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_CStub () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_CStub (string 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo DllData ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 64 6C 6C 64 61 74 61 00 00 ) // ...dlldata..
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::get_DllData () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_DllData (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string Env ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 65 6E 76 00 00 ) // ...env..
+
+		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_Env () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Env (string 'value') 
+	}
+	.property instance string Oi ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 4F 69 00 00 ) // ...Oi..
+
+		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_Oi () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Oi (string 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo Tlb ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 74 6C 62 00 00 ) // ...tlb..
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::get_Tlb () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Tlb (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo Header ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 68 65 61 64 65 72 00 00 ) // ...header..
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::get_Header () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Header (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo Iid ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 69 69 64 00 00 ) // ...iid..
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::get_Iid () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Iid (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo Proxy ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 70 72 6F 78 79 00 00 ) // ...proxy..
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::get_Proxy () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Proxy (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo Filename ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 66 69 6C 65 6E 61 6D 65 01 00 54 02 08   // ...filename..T..
+		52 65 71 75 69 72 65 64 01                      ) // Required.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::get_Filename () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Filename (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [NAnt.Core]NAnt.Core.Types.OptionCollection Options ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
+		01 00 07 6F 70 74 69 6F 6E 73 06 6F 70 74 69 6F   // ...options.optio
+		6E 00 00                                        ) // n..
+
+		.get instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::get_Options () 
+	}
+	.property instance class [NAnt.Core]NAnt.Core.Types.OptionCollection Defines ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
+		01 00 07 64 65 66 69 6E 65 73 06 64 65 66 69 6E   // ...defines.defin
+		65 00 00                                        ) // e..
+
+		.get instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::get_Defines () 
+	}
+	.property instance class [NAnt.Core]NAnt.Core.Types.OptionCollection Undefines ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
+		01 00 09 75 6E 64 65 66 69 6E 65 73 08 75 6E 64   // ...undefines.und
+		65 66 69 6E 65 00 00                            ) // efine..
+
+		.get instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::get_Undefines () 
+	}
+	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet IncludeDirs ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
+		01 00 0B 69 6E 63 6C 75 64 65 64 69 72 73 00 00 ) // ...includedirs..
+
+		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.VisualCpp.Tasks.MidlTask::get_IncludeDirs () 
+		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_IncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
+	}
+	.property instance string ProgramFileName ()
+	{
+		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_ProgramFileName () 
+	}
+	.property instance string ProgramArguments ()
+	{
+		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_ProgramArguments () 
+	}
+  } // end of class NAnt.VisualCpp.Tasks.MidlTask
+}
+
+.namespace NAnt.VisualCpp.Tasks
+{
   .class public auto ansi beforefieldinit ClTask
   	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
   {
@@ -4727,11 +6432,11 @@
     .field  private  class [System]System.Text.RegularExpressions.Regex _includeRegex
     .field  private  class [System]System.Collections.Specialized.StringCollection _dirtySources
 
-    // method line 138
+    // method line 184
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3fe8
+        // Method begins at RVA 0x4b70
 	// Code size 126 (0x7e)
 	.maxstack 2
 	IL_0000:  ldarg.0 
@@ -4774,11 +6479,11 @@
 	IL_007d:  ret 
     } // end of method ClTask::.ctor
 
-    // method line 139
+    // method line 185
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_OutputDir ()  cil managed 
     {
-        // Method begins at RVA 0x4074
+        // Method begins at RVA 0x4bfc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4793,11 +6498,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_OutputDir
 
-    // method line 140
+    // method line 186
     .method public hidebysig specialname 
            instance default void set_OutputDir (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x408f
+        // Method begins at RVA 0x4c17
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4807,11 +6512,11 @@
 	IL_0008:  ret 
     } // end of method ClTask::set_OutputDir
 
-    // method line 141
+    // method line 187
     .method public hidebysig specialname 
            instance default string get_PchFile ()  cil managed 
     {
-        // Method begins at RVA 0x409c
+        // Method begins at RVA 0x4c24
 	// Code size 48 (0x30)
 	.maxstack 2
 	.locals init (
@@ -4837,11 +6542,11 @@
 	IL_002f:  ret 
     } // end of method ClTask::get_PchFile
 
-    // method line 142
+    // method line 188
     .method public hidebysig specialname 
            instance default void set_PchFile (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x40d8
+        // Method begins at RVA 0x4c60
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4852,11 +6557,11 @@
 	IL_000d:  ret 
     } // end of method ClTask::set_PchFile
 
-    // method line 143
+    // method line 189
     .method public hidebysig specialname 
            instance default string get_PchThroughFile ()  cil managed 
     {
-        // Method begins at RVA 0x40e8
+        // Method begins at RVA 0x4c70
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4871,11 +6576,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_PchThroughFile
 
-    // method line 144
+    // method line 190
     .method public hidebysig specialname 
            instance default void set_PchThroughFile (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4103
+        // Method begins at RVA 0x4c8b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4886,11 +6591,11 @@
 	IL_000d:  ret 
     } // end of method ClTask::set_PchThroughFile
 
-    // method line 145
+    // method line 191
     .method public hidebysig specialname 
            instance default valuetype NAnt.VisualCpp.Tasks.ClTask/PrecompiledHeaderMode get_PchMode ()  cil managed 
     {
-        // Method begins at RVA 0x4114
+        // Method begins at RVA 0x4c9c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4905,11 +6610,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_PchMode
 
-    // method line 146
+    // method line 192
     .method public hidebysig specialname 
            instance default void set_PchMode (valuetype NAnt.VisualCpp.Tasks.ClTask/PrecompiledHeaderMode 'value')  cil managed 
     {
-        // Method begins at RVA 0x4130
+        // Method begins at RVA 0x4cb8
 	// Code size 65 (0x41)
 	.maxstack 3
 	IL_0000:  nop 
@@ -4936,11 +6641,11 @@
 	IL_0040:  ret 
     } // end of method ClTask::set_PchMode
 
-    // method line 147
+    // method line 193
     .method public hidebysig specialname 
            instance default bool get_ManagedExtensions ()  cil managed 
     {
-        // Method begins at RVA 0x4180
+        // Method begins at RVA 0x4d08
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4955,11 +6660,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_ManagedExtensions
 
-    // method line 148
+    // method line 194
     .method public hidebysig specialname 
            instance default void set_ManagedExtensions (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x419b
+        // Method begins at RVA 0x4d23
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -4969,11 +6674,11 @@
 	IL_0008:  ret 
     } // end of method ClTask::set_ManagedExtensions
 
-    // method line 149
+    // method line 195
     .method public hidebysig specialname 
            instance default valuetype NAnt.VisualCpp.Types.CharacterSet get_CharacterSet ()  cil managed 
     {
-        // Method begins at RVA 0x41a8
+        // Method begins at RVA 0x4d30
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -4988,11 +6693,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_CharacterSet
 
-    // method line 150
+    // method line 196
     .method public hidebysig specialname 
            instance default void set_CharacterSet (valuetype NAnt.VisualCpp.Types.CharacterSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x41c4
+        // Method begins at RVA 0x4d4c
 	// Code size 65 (0x41)
 	.maxstack 3
 	IL_0000:  nop 
@@ -5019,11 +6724,11 @@
 	IL_0040:  ret 
     } // end of method ClTask::set_CharacterSet
 
-    // method line 151
+    // method line 197
     .method public hidebysig specialname 
            instance default string get_Options ()  cil managed 
     {
-        // Method begins at RVA 0x4214
+        // Method begins at RVA 0x4d9c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5038,11 +6743,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_Options
 
-    // method line 152
+    // method line 198
     .method public hidebysig specialname 
            instance default void set_Options (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x422f
+        // Method begins at RVA 0x4db7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -5052,11 +6757,11 @@
 	IL_0008:  ret 
     } // end of method ClTask::set_Options
 
-    // method line 153
+    // method line 199
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_Sources ()  cil managed 
     {
-        // Method begins at RVA 0x423c
+        // Method begins at RVA 0x4dc4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5071,11 +6776,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_Sources
 
-    // method line 154
+    // method line 200
     .method public hidebysig specialname 
            instance default void set_Sources (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x4257
+        // Method begins at RVA 0x4ddf
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -5085,11 +6790,11 @@
 	IL_0008:  ret 
     } // end of method ClTask::set_Sources
 
-    // method line 155
+    // method line 201
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_IncludeDirs ()  cil managed 
     {
-        // Method begins at RVA 0x4264
+        // Method begins at RVA 0x4dec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5104,11 +6809,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_IncludeDirs
 
-    // method line 156
+    // method line 202
     .method public hidebysig specialname 
            instance default void set_IncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x427f
+        // Method begins at RVA 0x4e07
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -5118,11 +6823,11 @@
 	IL_0008:  ret 
     } // end of method ClTask::set_IncludeDirs
 
-    // method line 157
+    // method line 203
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_MetaDataIncludeDirs ()  cil managed 
     {
-        // Method begins at RVA 0x428c
+        // Method begins at RVA 0x4e14
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5137,11 +6842,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_MetaDataIncludeDirs
 
-    // method line 158
+    // method line 204
     .method public hidebysig specialname 
            instance default void set_MetaDataIncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x42a7
+        // Method begins at RVA 0x4e2f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -5151,11 +6856,11 @@
 	IL_0008:  ret 
     } // end of method ClTask::set_MetaDataIncludeDirs
 
-    // method line 159
+    // method line 205
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_ForcedUsingFiles ()  cil managed 
     {
-        // Method begins at RVA 0x42b4
+        // Method begins at RVA 0x4e3c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5170,11 +6875,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_ForcedUsingFiles
 
-    // method line 160
+    // method line 206
     .method public hidebysig specialname 
            instance default void set_ForcedUsingFiles (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x42cf
+        // Method begins at RVA 0x4e57
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -5184,11 +6889,11 @@
 	IL_0008:  ret 
     } // end of method ClTask::set_ForcedUsingFiles
 
-    // method line 161
+    // method line 207
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Defines ()  cil managed 
     {
-        // Method begins at RVA 0x42dc
+        // Method begins at RVA 0x4e64
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5203,11 +6908,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_Defines
 
-    // method line 162
+    // method line 208
     .method public hidebysig specialname 
            instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Undefines ()  cil managed 
     {
-        // Method begins at RVA 0x42f8
+        // Method begins at RVA 0x4e80
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5222,11 +6927,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_Undefines
 
-    // method line 163
+    // method line 209
     .method public hidebysig specialname 
            instance default string get_ObjectFile ()  cil managed 
     {
-        // Method begins at RVA 0x4314
+        // Method begins at RVA 0x4e9c
 	// Code size 68 (0x44)
 	.maxstack 2
 	.locals init (
@@ -5256,11 +6961,11 @@
 	IL_0043:  ret 
     } // end of method ClTask::get_ObjectFile
 
-    // method line 164
+    // method line 210
     .method public hidebysig specialname 
            instance default void set_ObjectFile (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x4364
+        // Method begins at RVA 0x4eec
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -5271,11 +6976,11 @@
 	IL_000d:  ret 
     } // end of method ClTask::set_ObjectFile
 
-    // method line 165
+    // method line 211
     .method public hidebysig specialname 
            instance default string get_ProgramDatabaseFile ()  cil managed 
     {
-        // Method begins at RVA 0x4374
+        // Method begins at RVA 0x4efc
 	// Code size 68 (0x44)
 	.maxstack 2
 	.locals init (
@@ -5305,11 +7010,11 @@
 	IL_0043:  ret 
     } // end of method ClTask::get_ProgramDatabaseFile
 
-    // method line 166
+    // method line 212
     .method public hidebysig specialname 
            instance default void set_ProgramDatabaseFile (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x43c4
+        // Method begins at RVA 0x4f4c
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
@@ -5320,11 +7025,11 @@
 	IL_000d:  ret 
     } // end of method ClTask::set_ProgramDatabaseFile
 
-    // method line 167
+    // method line 213
     .method public virtual hidebysig specialname 
            instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x43d4
+        // Method begins at RVA 0x4f5c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -5339,11 +7044,11 @@
 	IL_000e:  ret 
     } // end of method ClTask::get_ProgramFileName
 
-    // method line 168
+    // method line 214
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x43f0
+        // Method begins at RVA 0x4f78
 	// Code size 30 (0x1e)
 	.maxstack 3
 	.locals init (
@@ -5361,11 +7066,11 @@
 	IL_001d:  ret 
     } // end of method ClTask::get_ProgramArguments
 
-    // method line 169
+    // method line 215
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x441c
+        // Method begins at RVA 0x4fa4
 	// Code size 1429 (0x595)
 	.maxstack 7
 	.locals init (
@@ -5921,11 +7626,11 @@
 	IL_0594:  ret 
     } // end of method ClTask::ExecuteTask
 
-    // method line 170
+    // method line 216
     .method family virtual hidebysig newslot 
            instance default bool NeedsCompiling ()  cil managed 
     {
-        // Method begins at RVA 0x4a6c
+        // Method begins at RVA 0x55f4
 	// Code size 75 (0x4b)
 	.maxstack 3
 	.locals init (
@@ -5961,11 +7666,11 @@
 	IL_004a:  ret 
     } // end of method ClTask::NeedsCompiling
 
-    // method line 171
+    // method line 217
     .method private hidebysig 
            instance default bool IsPchfileUpToDate ()  cil managed 
     {
-        // Method begins at RVA 0x4ac4
+        // Method begins at RVA 0x564c
 	// Code size 364 (0x16c)
 	.maxstack 7
 	.locals init (
@@ -6132,11 +7837,11 @@
 	IL_016b:  ret 
     } // end of method ClTask::IsPchfileUpToDate
 
-    // method line 172
+    // method line 218
     .method private hidebysig 
            instance default bool IsObjUpToDate (string srcFileName)  cil managed 
     {
-        // Method begins at RVA 0x4c4c
+        // Method begins at RVA 0x57d4
 	// Code size 330 (0x14a)
 	.maxstack 7
 	.locals init (
@@ -6284,11 +7989,11 @@
 	IL_0149:  ret 
     } // end of method ClTask::IsObjUpToDate
 
-    // method line 173
+    // method line 219
     .method private hidebysig 
            instance default bool AreObjsUpToDate ()  cil managed 
     {
-        // Method begins at RVA 0x4da4
+        // Method begins at RVA 0x592c
 	// Code size 178 (0xb2)
 	.maxstack 7
 	.locals init (
@@ -6376,11 +8081,11 @@
 	IL_00b1:  ret 
     } // end of method ClTask::AreObjsUpToDate
 
-    // method line 174
+    // method line 220
     .method private hidebysig 
            instance default string FindUpdatedInclude (string srcFileName, valuetype [mscorlib]System.DateTime objLastWriteTime)  cil managed 
     {
-        // Method begins at RVA 0x4e74
+        // Method begins at RVA 0x59fc
 	// Code size 585 (0x249)
 	.maxstack 7
 	.locals init (
@@ -6644,11 +8349,11 @@
 	IL_0248:  ret 
     } // end of method ClTask::FindUpdatedInclude
 
-    // method line 175
+    // method line 221
     .method public static hidebysig 
            default string QuoteArgumentValue (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x5100
+        // Method begins at RVA 0x5c88
 	// Code size 16 (0x10)
 	.maxstack 2
 	.locals init (
@@ -6664,11 +8369,11 @@
 	IL_000f:  ret 
     } // end of method ClTask::QuoteArgumentValue
 
-    // method line 176
+    // method line 222
     .method public static hidebysig 
            default string GetObjOutputFile (string srcFile, string objectPath)  cil managed 
     {
-        // Method begins at RVA 0x511c
+        // Method begins at RVA 0x5ca4
 	// Code size 143 (0x8f)
 	.maxstack 3
 	.locals init (
@@ -6873,1708 +8578,3 @@
   } // end of class NAnt.VisualCpp.Tasks.ClTask
 }
 
-.namespace NAnt.VisualCpp.Tasks
-{
-  .class public auto ansi beforefieldinit MidlTask
-  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 04 6D 69 64 6C 00 00 ) // ...midl..
-
-    .field  private  string _responseFileName
-    .field  private  string _acf
-    .field  private  string _align
-    .field  private  bool _appConfig
-    .field  private  string _char
-    .field  private  string _client
-    .field  private  string _cstub
-    .field  private  class [mscorlib]System.IO.FileInfo _dlldata
-    .field  private  string _env
-    .field  private  string _Oi
-    .field  private  class [mscorlib]System.IO.FileInfo _header
-    .field  private  class [mscorlib]System.IO.FileInfo _iid
-    .field  private  class [mscorlib]System.IO.FileInfo _proxy
-    .field  private  class [mscorlib]System.IO.FileInfo _tlb
-    .field  private  class [mscorlib]System.IO.FileInfo _filename
-    .field  private  class [NAnt.Core]NAnt.Core.Types.OptionCollection _options
-    .field  private  class [NAnt.Core]NAnt.Core.Types.OptionCollection _defines
-    .field  private  class [NAnt.Core]NAnt.Core.Types.OptionCollection _undefines
-    .field  private  class [NAnt.Core]NAnt.Core.Types.FileSet _includeDirs
-    .field private static literal  string PROG_FILE_NAME = "midl.exe"
-
-    // method line 177
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x51b7
-	// Code size 62 (0x3e)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldstr "win32"
-	IL_0006:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_env
-	IL_000b:  ldarg.0 
-	IL_000c:  newobj instance void class [NAnt.Core]NAnt.Core.Types.OptionCollection::'.ctor'()
-	IL_0011:  stfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::_options
-	IL_0016:  ldarg.0 
-	IL_0017:  newobj instance void class [NAnt.Core]NAnt.Core.Types.OptionCollection::'.ctor'()
-	IL_001c:  stfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::_defines
-	IL_0021:  ldarg.0 
-	IL_0022:  newobj instance void class [NAnt.Core]NAnt.Core.Types.OptionCollection::'.ctor'()
-	IL_0027:  stfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::_undefines
-	IL_002c:  ldarg.0 
-	IL_002d:  newobj instance void class [NAnt.Core]NAnt.Core.Types.FileSet::'.ctor'()
-	IL_0032:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.VisualCpp.Tasks.MidlTask::_includeDirs
-	IL_0037:  ldarg.0 
-	IL_0038:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
-	IL_003d:  ret 
-    } // end of method MidlTask::.ctor
-
-    // method line 178
-    .method public hidebysig specialname 
-           instance default string get_Acf ()  cil managed 
-    {
-        // Method begins at RVA 0x51f8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_acf
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Acf
-
-    // method line 179
-    .method public hidebysig specialname 
-           instance default void set_Acf (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5213
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_acf
-	IL_0008:  ret 
-    } // end of method MidlTask::set_Acf
-
-    // method line 180
-    .method public hidebysig specialname 
-           instance default string get_Align ()  cil managed 
-    {
-        // Method begins at RVA 0x5220
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_align
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Align
-
-    // method line 181
-    .method public hidebysig specialname 
-           instance default void set_Align (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x523b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_align
-	IL_0008:  ret 
-    } // end of method MidlTask::set_Align
-
-    // method line 182
-    .method public hidebysig specialname 
-           instance default bool get_AppConfig ()  cil managed 
-    {
-        // Method begins at RVA 0x5248
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.VisualCpp.Tasks.MidlTask::_appConfig
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_AppConfig
-
-    // method line 183
-    .method public hidebysig specialname 
-           instance default void set_AppConfig (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5263
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.VisualCpp.Tasks.MidlTask::_appConfig
-	IL_0008:  ret 
-    } // end of method MidlTask::set_AppConfig
-
-    // method line 184
-    .method public hidebysig specialname 
-           instance default string get_Char ()  cil managed 
-    {
-        // Method begins at RVA 0x5270
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_char
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Char
-
-    // method line 185
-    .method public hidebysig specialname 
-           instance default void set_Char (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x528b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_char
-	IL_0008:  ret 
-    } // end of method MidlTask::set_Char
-
-    // method line 186
-    .method public hidebysig specialname 
-           instance default string get_Client ()  cil managed 
-    {
-        // Method begins at RVA 0x5298
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_client
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Client
-
-    // method line 187
-    .method public hidebysig specialname 
-           instance default void set_Client (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x52b3
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_client
-	IL_0008:  ret 
-    } // end of method MidlTask::set_Client
-
-    // method line 188
-    .method public hidebysig specialname 
-           instance default string get_CStub ()  cil managed 
-    {
-        // Method begins at RVA 0x52c0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_cstub
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_CStub
-
-    // method line 189
-    .method public hidebysig specialname 
-           instance default void set_CStub (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x52db
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_cstub
-	IL_0008:  ret 
-    } // end of method MidlTask::set_CStub
-
-    // method line 190
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_DllData ()  cil managed 
-    {
-        // Method begins at RVA 0x52e8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_dlldata
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_DllData
-
-    // method line 191
-    .method public hidebysig specialname 
-           instance default void set_DllData (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5303
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_dlldata
-	IL_0008:  ret 
-    } // end of method MidlTask::set_DllData
-
-    // method line 192
-    .method public hidebysig specialname 
-           instance default string get_Env ()  cil managed 
-    {
-        // Method begins at RVA 0x5310
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_env
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Env
-
-    // method line 193
-    .method public hidebysig specialname 
-           instance default void set_Env (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x532b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_env
-	IL_0008:  ret 
-    } // end of method MidlTask::set_Env
-
-    // method line 194
-    .method public hidebysig specialname 
-           instance default string get_Oi ()  cil managed 
-    {
-        // Method begins at RVA 0x5338
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_Oi
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Oi
-
-    // method line 195
-    .method public hidebysig specialname 
-           instance default void set_Oi (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5353
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_Oi
-	IL_0008:  ret 
-    } // end of method MidlTask::set_Oi
-
-    // method line 196
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Tlb ()  cil managed 
-    {
-        // Method begins at RVA 0x5360
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_tlb
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Tlb
-
-    // method line 197
-    .method public hidebysig specialname 
-           instance default void set_Tlb (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x537b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_tlb
-	IL_0008:  ret 
-    } // end of method MidlTask::set_Tlb
-
-    // method line 198
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Header ()  cil managed 
-    {
-        // Method begins at RVA 0x5388
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_header
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Header
-
-    // method line 199
-    .method public hidebysig specialname 
-           instance default void set_Header (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x53a3
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_header
-	IL_0008:  ret 
-    } // end of method MidlTask::set_Header
-
-    // method line 200
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Iid ()  cil managed 
-    {
-        // Method begins at RVA 0x53b0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_iid
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Iid
-
-    // method line 201
-    .method public hidebysig specialname 
-           instance default void set_Iid (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x53cb
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_iid
-	IL_0008:  ret 
-    } // end of method MidlTask::set_Iid
-
-    // method line 202
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Proxy ()  cil managed 
-    {
-        // Method begins at RVA 0x53d8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_proxy
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Proxy
-
-    // method line 203
-    .method public hidebysig specialname 
-           instance default void set_Proxy (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x53f3
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_proxy
-	IL_0008:  ret 
-    } // end of method MidlTask::set_Proxy
-
-    // method line 204
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_Filename ()  cil managed 
-    {
-        // Method begins at RVA 0x5400
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_filename
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Filename
-
-    // method line 205
-    .method public hidebysig specialname 
-           instance default void set_Filename (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x541b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_filename
-	IL_0008:  ret 
-    } // end of method MidlTask::set_Filename
-
-    // method line 206
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Options ()  cil managed 
-    {
-        // Method begins at RVA 0x5428
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.OptionCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::_options
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Options
-
-    // method line 207
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Defines ()  cil managed 
-    {
-        // Method begins at RVA 0x5444
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.OptionCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::_defines
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Defines
-
-    // method line 208
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection get_Undefines ()  cil managed 
-    {
-        // Method begins at RVA 0x5460
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.OptionCollection	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::_undefines
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_Undefines
-
-    // method line 209
-    .method public hidebysig specialname 
-           instance default class [NAnt.Core]NAnt.Core.Types.FileSet get_IncludeDirs ()  cil managed 
-    {
-        // Method begins at RVA 0x547c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.FileSet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.VisualCpp.Tasks.MidlTask::_includeDirs
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MidlTask::get_IncludeDirs
-
-    // method line 210
-    .method public hidebysig specialname 
-           instance default void set_IncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5497
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.VisualCpp.Tasks.MidlTask::_includeDirs
-	IL_0008:  ret 
-    } // end of method MidlTask::set_IncludeDirs
-
-    // method line 211
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramFileName ()  cil managed 
-    {
-        // Method begins at RVA 0x54a4
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldstr "midl.exe"
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method MidlTask::get_ProgramFileName
-
-    // method line 212
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
-    {
-        // Method begins at RVA 0x54c0
-	// Code size 30 (0x1e)
-	.maxstack 3
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldstr "@\""
-	IL_0006:  ldarg.0 
-	IL_0007:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_responseFileName
-	IL_000c:  ldstr "\""
-	IL_0011:  call string string::Concat(string, string, string)
-	IL_0016:  stloc.0 
-	IL_0017:  br IL_001c
-
-	IL_001c:  ldloc.0 
-	IL_001d:  ret 
-    } // end of method MidlTask::get_ProgramArguments
-
-    // method line 213
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x54ec
-	// Code size 219 (0xdb)
-	.maxstack 4
-	.locals init (
-		class [mscorlib]System.IO.StreamWriter	V_0,
-		class [mscorlib]System.IO.StreamReader	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VisualCpp.Tasks.MidlTask::get_IncludeDirs()
-	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_000c:  brtrue IL_002e
-
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VisualCpp.Tasks.MidlTask::get_IncludeDirs()
-	IL_0018:  ldarg.0 
-	IL_0019:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_001e:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	IL_0023:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0028:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_002d:  nop 
-	IL_002e:  ldarg.0 
-	IL_002f:  call instance bool class NAnt.VisualCpp.Tasks.MidlTask::NeedsCompiling()
-	IL_0034:  brfalse IL_00da
-
-	IL_0039:  nop 
-	IL_003a:  ldarg.0 
-	IL_003b:  call string class [mscorlib]System.IO.Path::GetTempFileName()
-	IL_0040:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_responseFileName
-	.try { // 1
-	  IL_0045:  nop 
-	  IL_0046:  ldarg.0 
-	  IL_0047:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_responseFileName
-	  IL_004c:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string)
-	  IL_0051:  stloc.0 
-	  .try { // 0
-	    IL_0052:  nop 
-	    IL_0053:  ldarg.0 
-	    IL_0054:  ldloc.0 
-	    IL_0055:  call instance void class NAnt.VisualCpp.Tasks.MidlTask::WriteResponseFile(class [mscorlib]System.IO.TextWriter)
-	    IL_005a:  nop 
-	    IL_005b:  leave IL_006d
-
-	  } // end .try 0
-	  finally  { // 0
-	    IL_0060:  ldloc.0 
-	    IL_0061:  brfalse IL_006c
-
-	    IL_0066:  ldloc.0 
-	    IL_0067:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_006c:  endfinally 
-	  } // end handler 0
-	  IL_006d:  ldarg.0 
-	  IL_006e:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	  IL_0073:  brfalse IL_00b8
-
-	  IL_0078:  nop 
-	  IL_0079:  ldarg.0 
-	  IL_007a:  ldc.i4 3000
-	  IL_007f:  ldstr "Contents of "
-	  IL_0084:  ldarg.0 
-	  IL_0085:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_responseFileName
-	  IL_008a:  call string string::Concat(string, string)
-	  IL_008f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	  IL_0094:  ldarg.0 
-	  IL_0095:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_responseFileName
-	  IL_009a:  call class [mscorlib]System.IO.StreamReader class [mscorlib]System.IO.File::OpenText(string)
-	  IL_009f:  stloc.1 
-	  IL_00a0:  ldarg.0 
-	  IL_00a1:  ldc.i4 3000
-	  IL_00a6:  ldloc.1 
-	  IL_00a7:  callvirt instance string class [mscorlib]System.IO.TextReader::ReadToEnd()
-	  IL_00ac:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string)
-	  IL_00b1:  ldloc.1 
-	  IL_00b2:  callvirt instance void class [mscorlib]System.IO.TextReader::Close()
-	  IL_00b7:  nop 
-	  IL_00b8:  ldarg.0 
-	  IL_00b9:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	  IL_00be:  nop 
-	  IL_00bf:  leave IL_00d9
-
-	} // end .try 1
-	finally  { // 1
-	  IL_00c4:  nop 
-	  IL_00c5:  ldarg.0 
-	  IL_00c6:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_responseFileName
-	  IL_00cb:  call void class [mscorlib]System.IO.File::Delete(string)
-	  IL_00d0:  ldarg.0 
-	  IL_00d1:  ldnull 
-	  IL_00d2:  stfld string NAnt.VisualCpp.Tasks.MidlTask::_responseFileName
-	  IL_00d7:  nop 
-	  IL_00d8:  endfinally 
-	} // end handler 1
-	IL_00d9:  nop 
-	IL_00da:  ret 
-    } // end of method MidlTask::ExecuteTask
-
-    // method line 214
-    .method private hidebysig 
-           instance default bool NeedsCompiling ()  cil managed 
-    {
-        // Method begins at RVA 0x55f0
-	// Code size 118 (0x76)
-	.maxstack 2
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Tlb()
-	IL_0007:  brfalse IL_0025
-
-	IL_000c:  ldarg.0 
-	IL_000d:  ldarg.0 
-	IL_000e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Tlb()
-	IL_0013:  call instance bool class NAnt.VisualCpp.Tasks.MidlTask::NeedsCompiling(class [mscorlib]System.IO.FileInfo)
-	IL_0018:  brfalse IL_0025
-
-	IL_001d:  nop 
-	IL_001e:  ldc.i4.1 
-	IL_001f:  stloc.0 
-	IL_0020:  br IL_0074
-
-	IL_0025:  ldarg.0 
-	IL_0026:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Header()
-	IL_002b:  brfalse IL_0049
-
-	IL_0030:  ldarg.0 
-	IL_0031:  ldarg.0 
-	IL_0032:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Header()
-	IL_0037:  call instance bool class NAnt.VisualCpp.Tasks.MidlTask::NeedsCompiling(class [mscorlib]System.IO.FileInfo)
-	IL_003c:  brfalse IL_0049
-
-	IL_0041:  nop 
-	IL_0042:  ldc.i4.1 
-	IL_0043:  stloc.0 
-	IL_0044:  br IL_0074
-
-	IL_0049:  ldarg.0 
-	IL_004a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Iid()
-	IL_004f:  brfalse IL_006d
-
-	IL_0054:  ldarg.0 
-	IL_0055:  ldarg.0 
-	IL_0056:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Iid()
-	IL_005b:  call instance bool class NAnt.VisualCpp.Tasks.MidlTask::NeedsCompiling(class [mscorlib]System.IO.FileInfo)
-	IL_0060:  brfalse IL_006d
-
-	IL_0065:  nop 
-	IL_0066:  ldc.i4.1 
-	IL_0067:  stloc.0 
-	IL_0068:  br IL_0074
-
-	IL_006d:  ldc.i4.0 
-	IL_006e:  stloc.0 
-	IL_006f:  br IL_0074
-
-	IL_0074:  ldloc.0 
-	IL_0075:  ret 
-    } // end of method MidlTask::NeedsCompiling
-
-    // method line 215
-    .method private hidebysig 
-           instance default bool NeedsCompiling (class [mscorlib]System.IO.FileInfo outputFile)  cil managed 
-    {
-        // Method begins at RVA 0x5674
-	// Code size 123 (0x7b)
-	.maxstack 7
-	.locals init (
-		bool	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_0007:  brtrue IL_0033
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldc.i4 2000
-	IL_0013:  ldstr "Output file '{0}' does not exist, recompiling."
-	IL_0018:  ldc.i4.1 
-	IL_0019:  newarr [mscorlib]System.Object
-	IL_001e:  dup 
-	IL_001f:  ldc.i4.0 
-	IL_0020:  ldarg.1 
-	IL_0021:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0026:  stelem.ref 
-	IL_0027:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_002c:  ldc.i4.1 
-	IL_002d:  stloc.0 
-	IL_002e:  br IL_0079
-
-	IL_0033:  ldarg.0 
-	IL_0034:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Filename()
-	IL_0039:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_003e:  ldarg.1 
-	IL_003f:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0044:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_0049:  stloc.1 
-	IL_004a:  ldloc.1 
-	IL_004b:  brfalse IL_0072
-
-	IL_0050:  nop 
-	IL_0051:  ldarg.0 
-	IL_0052:  ldc.i4 2000
-	IL_0057:  ldstr "'{0}' is out of date, recompiling."
-	IL_005c:  ldc.i4.1 
-	IL_005d:  newarr [mscorlib]System.Object
-	IL_0062:  dup 
-	IL_0063:  ldc.i4.0 
-	IL_0064:  ldloc.1 
-	IL_0065:  stelem.ref 
-	IL_0066:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_006b:  ldc.i4.1 
-	IL_006c:  stloc.0 
-	IL_006d:  br IL_0079
-
-	IL_0072:  ldc.i4.0 
-	IL_0073:  stloc.0 
-	IL_0074:  br IL_0079
-
-	IL_0079:  ldloc.0 
-	IL_007a:  ret 
-    } // end of method MidlTask::NeedsCompiling
-
-    // method line 216
-    .method private hidebysig 
-           instance default void WriteResponseFile (class [mscorlib]System.IO.TextWriter writer)  cil managed 
-    {
-        // Method begins at RVA 0x56fc
-	// Code size 972 (0x3cc)
-	.maxstack 5
-	.locals init (
-		class [NAnt.Core]NAnt.Core.Types.Option	V_0,
-		class [NAnt.Core]NAnt.Core.Types.OptionEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2,
-		class [NAnt.Core]NAnt.Core.Types.Option	V_3,
-		class [NAnt.Core]NAnt.Core.Types.OptionEnumerator	V_4,
-		class [mscorlib]System.IDisposable	V_5,
-		class [NAnt.Core]NAnt.Core.Types.Option	V_6,
-		class [NAnt.Core]NAnt.Core.Types.OptionEnumerator	V_7,
-		class [mscorlib]System.IDisposable	V_8,
-		string	V_9,
-		class [System]System.Collections.Specialized.StringEnumerator	V_10,
-		class [mscorlib]System.IDisposable	V_11)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldstr "/nologo"
-	IL_0007:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_000c:  ldarg.1 
-	IL_000d:  ldstr "/env "
-	IL_0012:  ldarg.0 
-	IL_0013:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_env
-	IL_0018:  call string string::Concat(string, string)
-	IL_001d:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_0022:  ldarg.0 
-	IL_0023:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_acf
-	IL_0028:  brfalse IL_003e
-
-	IL_002d:  ldarg.1 
-	IL_002e:  ldstr "/acf {0}"
-	IL_0033:  ldarg.0 
-	IL_0034:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_acf
-	IL_0039:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_003e:  ldarg.0 
-	IL_003f:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_align
-	IL_0044:  brfalse IL_005a
-
-	IL_0049:  ldarg.1 
-	IL_004a:  ldstr "/align {0}"
-	IL_004f:  ldarg.0 
-	IL_0050:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_align
-	IL_0055:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_005a:  ldarg.0 
-	IL_005b:  ldfld bool NAnt.VisualCpp.Tasks.MidlTask::_appConfig
-	IL_0060:  brfalse IL_0070
-
-	IL_0065:  ldarg.1 
-	IL_0066:  ldstr "/app_config"
-	IL_006b:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_0070:  ldarg.0 
-	IL_0071:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_char
-	IL_0076:  brfalse IL_008c
-
-	IL_007b:  ldarg.1 
-	IL_007c:  ldstr "/char {0}"
-	IL_0081:  ldarg.0 
-	IL_0082:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_char
-	IL_0087:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_008c:  ldarg.0 
-	IL_008d:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_client
-	IL_0092:  brfalse IL_00a8
-
-	IL_0097:  ldarg.1 
-	IL_0098:  ldstr "/client {0}"
-	IL_009d:  ldarg.0 
-	IL_009e:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_client
-	IL_00a3:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_00a8:  ldarg.0 
-	IL_00a9:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_cstub
-	IL_00ae:  brfalse IL_00c4
-
-	IL_00b3:  ldarg.1 
-	IL_00b4:  ldstr "/cstub {0}"
-	IL_00b9:  ldarg.0 
-	IL_00ba:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_cstub
-	IL_00bf:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_00c4:  ldarg.0 
-	IL_00c5:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_dlldata
-	IL_00ca:  brfalse IL_00e7
-
-	IL_00cf:  nop 
-	IL_00d0:  ldarg.1 
-	IL_00d1:  ldstr "/dlldata \"{0}\""
-	IL_00d6:  ldarg.0 
-	IL_00d7:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_DllData()
-	IL_00dc:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00e1:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_00e6:  nop 
-	IL_00e7:  ldarg.0 
-	IL_00e8:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_Oi
-	IL_00ed:  brfalse IL_0108
-
-	IL_00f2:  ldarg.1 
-	IL_00f3:  ldstr "/Oi"
-	IL_00f8:  ldarg.0 
-	IL_00f9:  ldfld string NAnt.VisualCpp.Tasks.MidlTask::_Oi
-	IL_00fe:  call string string::Concat(string, string)
-	IL_0103:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	IL_0108:  ldarg.0 
-	IL_0109:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Tlb()
-	IL_010e:  brfalse IL_0129
-
-	IL_0113:  ldarg.1 
-	IL_0114:  ldstr "/tlb \"{0}\""
-	IL_0119:  ldarg.0 
-	IL_011a:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Tlb()
-	IL_011f:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0124:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_0129:  ldarg.0 
-	IL_012a:  ldfld class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::_header
-	IL_012f:  brfalse IL_014a
-
-	IL_0134:  ldarg.1 
-	IL_0135:  ldstr "/header \"{0}\""
-	IL_013a:  ldarg.0 
-	IL_013b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Header()
-	IL_0140:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0145:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_014a:  ldarg.0 
-	IL_014b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Iid()
-	IL_0150:  brfalse IL_016b
-
-	IL_0155:  ldarg.1 
-	IL_0156:  ldstr "/iid \"{0}\""
-	IL_015b:  ldarg.0 
-	IL_015c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Iid()
-	IL_0161:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0166:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_016b:  ldarg.0 
-	IL_016c:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Proxy()
-	IL_0171:  brfalse IL_018c
-
-	IL_0176:  ldarg.1 
-	IL_0177:  ldstr "/proxy \"{0}\""
-	IL_017c:  ldarg.0 
-	IL_017d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Proxy()
-	IL_0182:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0187:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_018c:  nop 
-	IL_018d:  ldarg.0 
-	IL_018e:  call instance class [NAnt.Core]NAnt.Core.Types.OptionCollection class NAnt.VisualCpp.Tasks.MidlTask::get_Defines()
-	IL_0193:  callvirt instance class [NAnt.Core]NAnt.Core.Types.OptionEnumerator class [NAnt.Core]NAnt.Core.Types.OptionCollection::GetEnumerator()
-	IL_0198:  stloc.1 
-	.try { // 0
-	  IL_0199:  br IL_0218
-
-	  IL_019e:  ldloc.1 
-	  IL_019f:  callvirt instance class [NAnt.Core]NAnt.Core.Types.Option class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::get_Current()
-	  IL_01a4:  stloc.0 
-	  IL_01a5:  nop 
-	  IL_01a6:  ldloc.0 
-	  IL_01a7:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	  IL_01ac:  brfalse IL_01bc
-
-	  IL_01b1:  ldloc.0 
-	  IL_01b2:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_UnlessDefined()
-	  IL_01b7:  brfalse IL_01c2
-
-	  IL_01bc:  nop 
-	  IL_01bd:  leave IL_0218
-
-	  IL_01c2:  ldloc.0 
-	  IL_01c3:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
-	  IL_01c8:  brtrue IL_01ef
-
-	  IL_01cd:  nop 
-	  IL_01ce:  ldarg.1 
-	  IL_01cf:  ldstr "/D "
-	  IL_01d4:  ldloc.0 
-	  IL_01d5:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
-	  IL_01da:  call string class NAnt.VisualCpp.Util.ArgumentUtils::FixTrailingBackslash(string)
-	  IL_01df:  call string string::Concat(string, string)
-	  IL_01e4:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_01e9:  nop 
-	  IL_01ea:  br IL_0217
-
-	  IL_01ef:  nop 
-	  IL_01f0:  ldarg.1 
-	  IL_01f1:  ldstr "/D "
-	  IL_01f6:  ldloc.0 
-	  IL_01f7:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
-	  IL_01fc:  ldstr "="
-	  IL_0201:  ldloc.0 
-	  IL_0202:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
-	  IL_0207:  call string class NAnt.VisualCpp.Util.ArgumentUtils::FixTrailingBackslash(string)
-	  IL_020c:  call string string::Concat(string, string, string, string)
-	  IL_0211:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_0216:  nop 
-	  IL_0217:  nop 
-	  IL_0218:  ldloc.1 
-	  IL_0219:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::MoveNext()
-	  IL_021e:  brtrue IL_019e
-
-	  IL_0223:  leave IL_023c
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0228:  ldloc.1 
-	  IL_0229:  isinst [mscorlib]System.IDisposable
-	  IL_022e:  dup 
-	  IL_022f:  stloc.2 
-	  IL_0230:  brfalse IL_023b
-
-	  IL_0235:  ldloc.2 
-	  IL_0236:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_023b:  endfinally 
-	} // end handler 0
-	IL_023c:  nop 
-	IL_023d:  ldarg.0 
-	IL_023e:  call instance class [NAnt.Core]NAnt.Core.Types.OptionCollection class NAnt.VisualCpp.Tasks.MidlTask::get_Undefines()
-	IL_0243:  callvirt instance class [NAnt.Core]NAnt.Core.Types.OptionEnumerator class [NAnt.Core]NAnt.Core.Types.OptionCollection::GetEnumerator()
-	IL_0248:  stloc.s 4
-	.try { // 1
-	  IL_024a:  br IL_0291
-
-	  IL_024f:  ldloc.s 4
-	  IL_0251:  callvirt instance class [NAnt.Core]NAnt.Core.Types.Option class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::get_Current()
-	  IL_0256:  stloc.3 
-	  IL_0257:  nop 
-	  IL_0258:  ldloc.3 
-	  IL_0259:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_IfDefined()
-	  IL_025e:  brfalse IL_026e
-
-	  IL_0263:  ldloc.3 
-	  IL_0264:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.Option::get_UnlessDefined()
-	  IL_0269:  brfalse IL_0274
-
-	  IL_026e:  nop 
-	  IL_026f:  leave IL_0291
-
-	  IL_0274:  ldarg.1 
-	  IL_0275:  ldstr "/U "
-	  IL_027a:  ldloc.3 
-	  IL_027b:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
-	  IL_0280:  ldc.i4.2 
-	  IL_0281:  call string class NAnt.VisualCpp.Util.ArgumentUtils::QuoteArgumentValue(string, valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod)
-	  IL_0286:  call string string::Concat(string, string)
-	  IL_028b:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_0290:  nop 
-	  IL_0291:  ldloc.s 4
-	  IL_0293:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::MoveNext()
-	  IL_0298:  brtrue IL_024f
-
-	  IL_029d:  leave IL_02b9
-
-	} // end .try 1
-	finally  { // 1
-	  IL_02a2:  ldloc.s 4
-	  IL_02a4:  isinst [mscorlib]System.IDisposable
-	  IL_02a9:  dup 
-	  IL_02aa:  stloc.s 5
-	  IL_02ac:  brfalse IL_02b8
-
-	  IL_02b1:  ldloc.s 5
-	  IL_02b3:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_02b8:  endfinally 
-	} // end handler 1
-	IL_02b9:  nop 
-	IL_02ba:  ldarg.0 
-	IL_02bb:  ldfld class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::_options
-	IL_02c0:  callvirt instance class [NAnt.Core]NAnt.Core.Types.OptionEnumerator class [NAnt.Core]NAnt.Core.Types.OptionCollection::GetEnumerator()
-	IL_02c5:  stloc.s 7
-	.try { // 2
-	  IL_02c7:  br IL_032f
-
-	  IL_02cc:  ldloc.s 7
-	  IL_02ce:  callvirt instance class [NAnt.Core]NAnt.Core.Types.Option class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::get_Current()
-	  IL_02d3:  stloc.s 6
-	  IL_02d5:  nop 
-	  IL_02d6:  ldarg.0 
-	  IL_02d7:  call instance bool class [NAnt.Core]NAnt.Core.Task::get_IfDefined()
-	  IL_02dc:  brfalse IL_032e
-
-	  IL_02e1:  ldarg.0 
-	  IL_02e2:  call instance bool class [NAnt.Core]NAnt.Core.Task::get_UnlessDefined()
-	  IL_02e7:  brtrue IL_032e
-
-	  IL_02ec:  nop 
-	  IL_02ed:  ldloc.s 6
-	  IL_02ef:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
-	  IL_02f4:  brtrue IL_030d
-
-	  IL_02f9:  nop 
-	  IL_02fa:  ldarg.1 
-	  IL_02fb:  ldloc.s 6
-	  IL_02fd:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
-	  IL_0302:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_0307:  nop 
-	  IL_0308:  br IL_032d
-
-	  IL_030d:  nop 
-	  IL_030e:  ldarg.1 
-	  IL_030f:  ldloc.s 6
-	  IL_0311:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_OptionName()
-	  IL_0316:  ldstr " "
-	  IL_031b:  ldloc.s 6
-	  IL_031d:  callvirt instance string class [NAnt.Core]NAnt.Core.Types.Option::get_Value()
-	  IL_0322:  call string string::Concat(string, string, string)
-	  IL_0327:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string)
-	  IL_032c:  nop 
-	  IL_032d:  nop 
-	  IL_032e:  nop 
-	  IL_032f:  ldloc.s 7
-	  IL_0331:  callvirt instance bool class [NAnt.Core]NAnt.Core.Types.OptionEnumerator::MoveNext()
-	  IL_0336:  brtrue IL_02cc
-
-	  IL_033b:  leave IL_0357
-
-	} // end .try 2
-	finally  { // 2
-	  IL_0340:  ldloc.s 7
-	  IL_0342:  isinst [mscorlib]System.IDisposable
-	  IL_0347:  dup 
-	  IL_0348:  stloc.s 8
-	  IL_034a:  brfalse IL_0356
-
-	  IL_034f:  ldloc.s 8
-	  IL_0351:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0356:  endfinally 
-	} // end handler 2
-	IL_0357:  nop 
-	IL_0358:  ldarg.0 
-	IL_0359:  call instance class [NAnt.Core]NAnt.Core.Types.FileSet class NAnt.VisualCpp.Tasks.MidlTask::get_IncludeDirs()
-	IL_035e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_DirectoryNames()
-	IL_0363:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0368:  stloc.s 10
-	.try { // 3
-	  IL_036a:  br IL_038d
-
-	  IL_036f:  ldloc.s 10
-	  IL_0371:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0376:  stloc.s 9
-	  IL_0378:  nop 
-	  IL_0379:  ldarg.1 
-	  IL_037a:  ldstr "/I {0}"
-	  IL_037f:  ldloc.s 9
-	  IL_0381:  ldc.i4.3 
-	  IL_0382:  call string class NAnt.VisualCpp.Util.ArgumentUtils::QuoteArgumentValue(string, valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod)
-	  IL_0387:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	  IL_038c:  nop 
-	  IL_038d:  ldloc.s 10
-	  IL_038f:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_0394:  brtrue IL_036f
-
-	  IL_0399:  leave IL_03b5
-
-	} // end .try 3
-	finally  { // 3
-	  IL_039e:  ldloc.s 10
-	  IL_03a0:  isinst [mscorlib]System.IDisposable
-	  IL_03a5:  dup 
-	  IL_03a6:  stloc.s 11
-	  IL_03a8:  brfalse IL_03b4
-
-	  IL_03ad:  ldloc.s 11
-	  IL_03af:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_03b4:  endfinally 
-	} // end handler 3
-	IL_03b5:  ldarg.1 
-	IL_03b6:  ldstr "\"{0}\""
-	IL_03bb:  ldarg.0 
-	IL_03bc:  call instance class [mscorlib]System.IO.FileInfo class NAnt.VisualCpp.Tasks.MidlTask::get_Filename()
-	IL_03c1:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_03c6:  callvirt instance void class [mscorlib]System.IO.TextWriter::WriteLine(string, object)
-	IL_03cb:  ret 
-    } // end of method MidlTask::WriteResponseFile
-
-	.property instance string Acf ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 61 63 66 00 00 ) // ...acf..
-
-		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_Acf () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Acf (string 'value') 
-	}
-	.property instance string Align ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 61 6C 69 67 6E 00 00 ) // ...align..
-
-		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_Align () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Align (string 'value') 
-	}
-	.property instance bool AppConfig ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 61 70 70 5F 63 6F 6E 66 69 67 00 00 ) // ...app_config..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.VisualCpp.Tasks.MidlTask::get_AppConfig () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_AppConfig (bool 'value') 
-	}
-	.property instance string Char ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 63 68 61 72 00 00 ) // ...char..
-
-		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_Char () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Char (string 'value') 
-	}
-	.property instance string Client ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 63 6C 69 65 6E 74 00 00 ) // ...client..
-
-		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_Client () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Client (string 'value') 
-	}
-	.property instance string CStub ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 63 73 74 75 62 00 00 ) // ...cstub..
-
-		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_CStub () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_CStub (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo DllData ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 64 6C 6C 64 61 74 61 00 00 ) // ...dlldata..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::get_DllData () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_DllData (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string Env ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 65 6E 76 00 00 ) // ...env..
-
-		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_Env () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Env (string 'value') 
-	}
-	.property instance string Oi ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 02 4F 69 00 00 ) // ...Oi..
-
-		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_Oi () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Oi (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo Tlb ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 74 6C 62 00 00 ) // ...tlb..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::get_Tlb () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Tlb (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo Header ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 68 65 61 64 65 72 00 00 ) // ...header..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::get_Header () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Header (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo Iid ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 69 69 64 00 00 ) // ...iid..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::get_Iid () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Iid (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo Proxy ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 05 70 72 6F 78 79 00 00 ) // ...proxy..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::get_Proxy () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Proxy (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo Filename ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 66 69 6C 65 6E 61 6D 65 01 00 54 02 08   // ...filename..T..
-		52 65 71 75 69 72 65 64 01                      ) // Required.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.VisualCpp.Tasks.MidlTask::get_Filename () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_Filename (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.OptionCollection Options ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
-		01 00 07 6F 70 74 69 6F 6E 73 06 6F 70 74 69 6F   // ...options.optio
-		6E 00 00                                        ) // n..
-
-		.get instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::get_Options () 
-	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.OptionCollection Defines ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
-		01 00 07 64 65 66 69 6E 65 73 06 64 65 66 69 6E   // ...defines.defin
-		65 00 00                                        ) // e..
-
-		.get instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::get_Defines () 
-	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.OptionCollection Undefines ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementCollectionAttribute::'.ctor'(string, string) =  (
-		01 00 09 75 6E 64 65 66 69 6E 65 73 08 75 6E 64   // ...undefines.und
-		65 66 69 6E 65 00 00                            ) // efine..
-
-		.get instance default class [NAnt.Core]NAnt.Core.Types.OptionCollection NAnt.VisualCpp.Tasks.MidlTask::get_Undefines () 
-	}
-	.property instance class [NAnt.Core]NAnt.Core.Types.FileSet IncludeDirs ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (
-		01 00 0B 69 6E 63 6C 75 64 65 64 69 72 73 00 00 ) // ...includedirs..
-
-		.get instance default class [NAnt.Core]NAnt.Core.Types.FileSet NAnt.VisualCpp.Tasks.MidlTask::get_IncludeDirs () 
-		.set instance default void NAnt.VisualCpp.Tasks.MidlTask::set_IncludeDirs (class [NAnt.Core]NAnt.Core.Types.FileSet 'value') 
-	}
-	.property instance string ProgramFileName ()
-	{
-		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_ProgramFileName () 
-	}
-	.property instance string ProgramArguments ()
-	{
-		.get instance default string NAnt.VisualCpp.Tasks.MidlTask::get_ProgramArguments () 
-	}
-  } // end of class NAnt.VisualCpp.Tasks.MidlTask
-}
-
-.namespace NAnt.VisualCpp.Util
-{
-  .class public auto ansi sealed BackslashProcessingMethod
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod None = int32(0x00000000)
-    .field public static literal  valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod Duplicate = int32(0x00000001)
-    .field public static literal  valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod Fix = int32(0x00000002)
-    .field public static literal  valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod Clean = int32(0x00000003)
-
-  } // end of class NAnt.VisualCpp.Util.BackslashProcessingMethod
-}
-
-.namespace NAnt.VisualCpp.Util
-{
-  .class public auto ansi beforefieldinit ArgumentUtils
-  	extends [mscorlib]System.Object
-  {
-
-    // method line 217
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x5b08
-	// Code size 7 (0x7)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  call instance void object::'.ctor'()
-	IL_0006:  ret 
-    } // end of method ArgumentUtils::.ctor
-
-    // method line 218
-    .method public static hidebysig 
-           default string ProcessTrailingBackslash (string 'value', valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod processingMethod)  cil managed 
-    {
-        // Method begins at RVA 0x5b10
-	// Code size 104 (0x68)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  switch (
-	  IL_001e,
-	  IL_0025,
-	  IL_0031,
-	  IL_003d)
-	IL_0019:  br IL_0049
-
-	IL_001e:  ldarg.0 
-	IL_001f:  stloc.0 
-	IL_0020:  br IL_005f
-
-	IL_0025:  ldarg.0 
-	IL_0026:  call string class NAnt.VisualCpp.Util.ArgumentUtils::DuplicateTrailingBackslash(string)
-	IL_002b:  stloc.0 
-	IL_002c:  br IL_005f
-
-	IL_0031:  ldarg.0 
-	IL_0032:  call string class NAnt.VisualCpp.Util.ArgumentUtils::FixTrailingBackslash(string)
-	IL_0037:  stloc.0 
-	IL_0038:  br IL_005f
-
-	IL_003d:  ldarg.0 
-	IL_003e:  call string class NAnt.VisualCpp.Util.ArgumentUtils::CleanTrailingBackslash(string)
-	IL_0043:  stloc.0 
-	IL_0044:  br IL_005f
-
-	IL_0049:  ldstr "processingMethod"
-	IL_004e:  ldarg.1 
-	IL_004f:  ldtoken NAnt.VisualCpp.Util.BackslashProcessingMethod
-	IL_0054:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0059:  newobj instance void class [System]System.ComponentModel.InvalidEnumArgumentException::'.ctor'(string, int32, class [mscorlib]System.Type)
-	IL_005e:  throw 
-	IL_005f:  ldloc.0 
-	IL_0060:  stloc.1 
-	IL_0061:  br IL_0066
-
-	IL_0066:  ldloc.1 
-	IL_0067:  ret 
-    } // end of method ArgumentUtils::ProcessTrailingBackslash
-
-    // method line 219
-    .method public static hidebysig 
-           default string DuplicateTrailingBackslash (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5b84
-	// Code size 151 (0x97)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		bool	V_1,
-		int32	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "value"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.0 
-	IL_0014:  callvirt instance int32 string::get_Length()
-	IL_0019:  brtrue IL_0026
-
-	IL_001e:  nop 
-	IL_001f:  ldarg.0 
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0095
-
-	IL_0026:  ldarg.0 
-	IL_0027:  callvirt instance int32 string::get_Length()
-	IL_002c:  ldc.i4.2 
-	IL_002d:  ble IL_004f
-
-	IL_0032:  ldarg.0 
-	IL_0033:  ldstr "\""
-	IL_0038:  callvirt instance bool string::StartsWith(string)
-	IL_003d:  brfalse IL_004f
-
-	IL_0042:  ldarg.0 
-	IL_0043:  ldstr "\""
-	IL_0048:  callvirt instance bool string::EndsWith(string)
-	IL_004d:  br.s IL_0050
-
-	IL_004f:  ldc.i4.0 
-	IL_0050:  stloc.1 
-	IL_0051:  ldloc.1 
-	IL_0052:  brfalse IL_0064
-
-	IL_0057:  ldarg.0 
-	IL_0058:  callvirt instance int32 string::get_Length()
-	IL_005d:  ldc.i4.2 
-	IL_005e:  sub 
-	IL_005f:  br IL_006c
-
-	IL_0064:  ldarg.0 
-	IL_0065:  callvirt instance int32 string::get_Length()
-	IL_006a:  ldc.i4.1 
-	IL_006b:  sub 
-	IL_006c:  stloc.2 
-	IL_006d:  ldarg.0 
-	IL_006e:  ldloc.2 
-	IL_006f:  callvirt instance char string::get_Chars(int32)
-	IL_0074:  ldc.i4.s 0x5c
-	IL_0076:  bne.un IL_008e
-
-	IL_007b:  nop 
-	IL_007c:  ldarg.0 
-	IL_007d:  ldloc.2 
-	IL_007e:  ldstr "\\"
-	IL_0083:  callvirt instance string string::Insert(int32, string)
-	IL_0088:  stloc.0 
-	IL_0089:  br IL_0095
-
-	IL_008e:  ldarg.0 
-	IL_008f:  stloc.0 
-	IL_0090:  br IL_0095
-
-	IL_0095:  ldloc.0 
-	IL_0096:  ret 
-    } // end of method ArgumentUtils::DuplicateTrailingBackslash
-
-    // method line 220
-    .method public static hidebysig 
-           default string FixTrailingBackslash (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5c28
-	// Code size 134 (0x86)
-	.maxstack 3
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "value"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.0 
-	IL_0014:  callvirt instance int32 string::get_Length()
-	IL_0019:  brtrue IL_0026
-
-	IL_001e:  nop 
-	IL_001f:  ldarg.0 
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0084
-
-	IL_0026:  ldarg.0 
-	IL_0027:  ldstr "\\\\"
-	IL_002c:  callvirt instance bool string::EndsWith(string)
-	IL_0031:  brfalse IL_0056
-
-	IL_0036:  nop 
-	IL_0037:  ldarg.0 
-	IL_0038:  ldarg.0 
-	IL_0039:  callvirt instance int32 string::get_Length()
-	IL_003e:  ldc.i4.2 
-	IL_003f:  sub 
-	IL_0040:  ldc.i4.2 
-	IL_0041:  callvirt instance string string::Remove(int32, int32)
-	IL_0046:  ldstr "\\"
-	IL_004b:  call string string::Concat(string, string)
-	IL_0050:  stloc.0 
-	IL_0051:  br IL_0084
-
-	IL_0056:  ldarg.0 
-	IL_0057:  ldstr "\\"
-	IL_005c:  callvirt instance bool string::EndsWith(string)
-	IL_0061:  brfalse IL_007c
-
-	IL_0066:  nop 
-	IL_0067:  ldarg.0 
-	IL_0068:  ldarg.0 
-	IL_0069:  callvirt instance int32 string::get_Length()
-	IL_006e:  ldc.i4.1 
-	IL_006f:  sub 
-	IL_0070:  ldc.i4.1 
-	IL_0071:  callvirt instance string string::Remove(int32, int32)
-	IL_0076:  stloc.0 
-	IL_0077:  br IL_0084
-
-	IL_007c:  nop 
-	IL_007d:  ldarg.0 
-	IL_007e:  stloc.0 
-	IL_007f:  br IL_0084
-
-	IL_0084:  ldloc.0 
-	IL_0085:  ret 
-    } // end of method ArgumentUtils::FixTrailingBackslash
-
-    // method line 221
-    .method public static hidebysig 
-           default string CleanTrailingBackslash (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x5cbc
-	// Code size 35 (0x23)
-	.maxstack 2
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "value"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.0 
-	IL_0014:  ldc.i4.s 0x5c
-	IL_0016:  callvirt instance string string::TrimEnd(char)
-	IL_001b:  stloc.0 
-	IL_001c:  br IL_0021
-
-	IL_0021:  ldloc.0 
-	IL_0022:  ret 
-    } // end of method ArgumentUtils::CleanTrailingBackslash
-
-    // method line 222
-    .method public static hidebysig 
-           default string QuoteArgumentValue (string 'value', valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod processingMethod)  cil managed 
-    {
-        // Method begins at RVA 0x5cec
-	// Code size 74 (0x4a)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		bool	V_1,
-		string	V_2)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class NAnt.VisualCpp.Util.ArgumentUtils::ProcessTrailingBackslash(string, valuetype NAnt.VisualCpp.Util.BackslashProcessingMethod)
-	IL_0008:  stloc.0 
-	IL_0009:  ldarg.0 
-	IL_000a:  ldstr "\""
-	IL_000f:  callvirt instance bool string::StartsWith(string)
-	IL_0014:  brfalse IL_0026
-
-	IL_0019:  ldarg.0 
-	IL_001a:  ldstr "\""
-	IL_001f:  callvirt instance bool string::EndsWith(string)
-	IL_0024:  br.s IL_0027
-
-	IL_0026:  ldc.i4.0 
-	IL_0027:  stloc.1 
-	IL_0028:  ldloc.1 
-	IL_0029:  brtrue IL_0041
-
-	IL_002e:  nop 
-	IL_002f:  ldstr "\""
-	IL_0034:  ldloc.0 
-	IL_0035:  ldstr "\""
-	IL_003a:  call string string::Concat(string, string, string)
-	IL_003f:  stloc.0 
-	IL_0040:  nop 
-	IL_0041:  ldloc.0 
-	IL_0042:  stloc.2 
-	IL_0043:  br IL_0048
-
-	IL_0048:  ldloc.2 
-	IL_0049:  ret 
-    } // end of method ArgumentUtils::QuoteArgumentValue
-
-  } // end of class NAnt.VisualCpp.Util.ArgumentUtils
-}
-
/usr/share/NAnt/bin/NAnt.VisualCppTasks.xml differs (XML 1.0 document, ASCII text)
--- old//usr/share/NAnt/bin/NAnt.VisualCppTasks.xml	2018-06-14 00:00:00.000000000 +0000
+++ new//usr/share/NAnt/bin/NAnt.VisualCppTasks.xml	2018-06-14 00:00:00.000000000 +0000
@@ -4,93 +4,86 @@
         <name>NAnt.VisualCppTasks</name>
     </assembly>
     <members>
-        <member name="T:NAnt.VisualCpp.Types.CharacterSet">
-             <summary>
-             Defines the character sets that can be used by the C++ compiler.
-             </summary>
-            </member>
-        <member name="F:NAnt.VisualCpp.Types.CharacterSet.NotSet">
-             <summary>
-             Have the compiler determine the character set.
-             </summary>
-            </member>
-        <member name="F:NAnt.VisualCpp.Types.CharacterSet.Unicode">
-             <summary>
-             Unicode character set.
-             </summary>
-            </member>
-        <member name="F:NAnt.VisualCpp.Types.CharacterSet.MultiByte">
-             <summary>
-             Multi-byte character set.
-             </summary>
-            </member>
-        <member name="T:NAnt.VisualCpp.Types.Symbol">
-             <summary>
-             Represents a symbol.
-             </summary>
-            </member>
-        <member name="M:NAnt.VisualCpp.Types.Symbol.#ctor">
+        <member name="T:NAnt.VisualCpp.Util.BackslashProcessingMethod">
              <summary>
-             Initializes a new instance of the <see cref="T:NAnt.VisualCpp.Types.Symbol" /> class.
+             Defines how to deal with backslashes in values of command line 
+             arguments.
              </summary>
             </member>
-        <member name="M:NAnt.VisualCpp.Types.Symbol.#ctor(System.String)">
+        <member name="F:NAnt.VisualCpp.Util.BackslashProcessingMethod.None">
              <summary>
-             Initializes a new instance of the <see cref="T:NAnt.VisualCpp.Types.Symbol" /> class with
-             the specified name.
+             Does not perform any processing on backslashes.
              </summary>
-             <exception cref="T:System.ArgumentNullException"><paramref name="name" /> is <see langword="null" />.</exception>
             </member>
-        <member name="P:NAnt.VisualCpp.Types.Symbol.SymbolName">
+        <member name="F:NAnt.VisualCpp.Util.BackslashProcessingMethod.Duplicate">
              <summary>
-             The name of the symbol.
+             Duplicates the trailing backslash.
              </summary>
             </member>
-        <member name="P:NAnt.VisualCpp.Types.Symbol.IfDefined">
+        <member name="F:NAnt.VisualCpp.Util.BackslashProcessingMethod.Fix">
              <summary>
-             If <see langword="true" /> then the element will be processed;
-             otherwise, skipped. The default is <see langword="true" />.
+             Fixes the trailing backslash by replaces trailing double backslashes
+             with only one backslash and removing single trailing backslashes.
              </summary>
             </member>
-        <member name="P:NAnt.VisualCpp.Types.Symbol.UnlessDefined">
+        <member name="F:NAnt.VisualCpp.Util.BackslashProcessingMethod.Clean">
              <summary>
-             If <see langword="true" /> then the element will be skipped;
-             otherwise, processed. The default is <see langword="false" />.
+             Removes all the trailing backslashes.
              </summary>
             </member>
-        <member name="T:NAnt.VisualCpp.Types.Library">
+        <member name="T:NAnt.VisualCpp.Util.ArgumentUtils">
              <summary>
-             Represents a library.
+             Groups a set of useful <see cref="T:System.String" /> manipulation methods for
+             command-line arguments.
              </summary>
             </member>
-        <member name="M:NAnt.VisualCpp.Types.Library.#ctor">
+        <member name="M:NAnt.VisualCpp.Util.ArgumentUtils.ProcessTrailingBackslash(System.String,NAnt.VisualCpp.Util.BackslashProcessingMethod)">
              <summary>
-             Initializes a new instance of the <see cref="T:NAnt.VisualCpp.Types.Library" /> class.
+             Performs backslash processing on the specified value using a given
+             method.
              </summary>
+             <param name="value">The <see cref="T:System.String" /> to process.</param>
+             <param name="processingMethod">The <see cref="T:NAnt.VisualCpp.Util.BackslashProcessingMethod" /> to use.</param>
+             <returns>
+             <paramref name="value" /> with backslashes processed using the given
+             <see cref="T:NAnt.VisualCpp.Util.BackslashProcessingMethod" />.
+             </returns>
             </member>
-        <member name="M:NAnt.VisualCpp.Types.Library.#ctor(System.String)">
+        <member name="M:NAnt.VisualCpp.Util.ArgumentUtils.DuplicateTrailingBackslash(System.String)">
              <summary>
-             Initializes a new instance of the <see cref="T:NAnt.VisualCpp.Types.Library" /> class with
-             the specified name.
+             Duplicates the trailing backslash.
              </summary>
-             <exception cref="T:System.ArgumentNullException"><paramref name="name" /> is <see langword="null" />.</exception>
+             <param name="value">The input string to check and duplicate the trailing backslash if necessary.</param>
+             <returns>The result string after being processed.</returns>
+             <remarks>
+             Also duplicates trailing backslash in quoted value.
+             </remarks>
             </member>
-        <member name="P:NAnt.VisualCpp.Types.Library.LibraryName">
+        <member name="M:NAnt.VisualCpp.Util.ArgumentUtils.FixTrailingBackslash(System.String)">
              <summary>
-             The name of the library.
+             Fixes the trailing backslash. This function replaces the trailing double backslashes with
+             only one backslash. It also, removes the single trailing backslash.
              </summary>
+             <param name="value">The input string.</param>
+             <returns>The result string after being processed.</returns>
             </member>
-        <member name="P:NAnt.VisualCpp.Types.Library.IfDefined">
+        <member name="M:NAnt.VisualCpp.Util.ArgumentUtils.CleanTrailingBackslash(System.String)">
              <summary>
-             If <see langword="true" /> then the element will be processed;
-             otherwise, skipped. The default is <see langword="true" />.
+             Removes all the trailing backslashes from the input.
              </summary>
+             <param name="value">The input string.</param>
+             <returns>The result string without trailing backslashes.</returns>
             </member>
-        <member name="P:NAnt.VisualCpp.Types.Library.UnlessDefined">
+        <member name="M:NAnt.VisualCpp.Util.ArgumentUtils.QuoteArgumentValue(System.String,NAnt.VisualCpp.Util.BackslashProcessingMethod)">
              <summary>
-             If <see langword="true" /> then the element will be skipped;
-             otherwise, processed. The default is <see langword="false" />.
+             Quotes an argument value and processes backslashes using a given
+             <see cref="T:NAnt.VisualCpp.Util.BackslashProcessingMethod" />.
              </summary>
+             <param name="value">The argument value to quote.</param>
+             <param name="processingMethod">The <see cref="T:NAnt.VisualCpp.Util.BackslashProcessingMethod" /> to use.</param>
+             <returns>
+             The quoted argument value.
+             </returns>
             </member>
         <member name="T:NAnt.VisualCpp.Types.LibraryCollection">
              <summary>
@@ -222,6 +215,94 @@
              first element in the collection.
              </summary>
             </member>
+        <member name="T:NAnt.VisualCpp.Types.Library">
+             <summary>
+             Represents a library.
+             </summary>
+            </member>
+        <member name="M:NAnt.VisualCpp.Types.Library.#ctor">
+             <summary>
+             Initializes a new instance of the <see cref="T:NAnt.VisualCpp.Types.Library" /> class.
+             </summary>
+            </member>
+        <member name="M:NAnt.VisualCpp.Types.Library.#ctor(System.String)">
+             <summary>
+             Initializes a new instance of the <see cref="T:NAnt.VisualCpp.Types.Library" /> class with
+             the specified name.
+             </summary>
+             <exception cref="T:System.ArgumentNullException"><paramref name="name" /> is <see langword="null" />.</exception>
+            </member>
+        <member name="P:NAnt.VisualCpp.Types.Library.LibraryName">
+             <summary>
+             The name of the library.
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Types.Library.IfDefined">
+             <summary>
+             If <see langword="true" /> then the element will be processed;
+             otherwise, skipped. The default is <see langword="true" />.
+             </summary>
+            </member>
+        <member name="P:NAnt.VisualCpp.Types.Library.UnlessDefined">
+             <summary>
+             If <see langword="true" /> then the element will be skipped;
+             otherwise, processed. The default is <see langword="false" />.
+             </summary>
+            </member>
+        <member name="T:NAnt.VisualCpp.Types.Symbol">
+             <summary>
+             Represents a symbol.
+             </summary>
+            </member>
+        <member name="M:NAnt.VisualCpp.Types.Symbol.#ctor">
+             <summary>
+             Initializes a new instance of the <see cref="T:NAnt.VisualCpp.Types.Symbol" /> class.
+             </summary>
+            </member>
+        <member name="M:NAnt.VisualCpp.Types.Symbol.#ctor(System.String)">
+             <summary>
+             Initializes a new instance of the <see cref="T:NAnt.VisualCpp.Types.Symbol" /> class with
+             the specified name.
+             </summary>
+             <exception cref="T:System.ArgumentNullException"><paramref name="name" /> is <see langword="null" />.</exception>
+            </member>
+        <member name="P:NAnt.VisualCpp.Types.Symbol.SymbolName">
PE32 Mono/.Net assembly: /usr/share/NAnt/bin/NAnt.Win32Tasks.dll
/usr/share/NAnt/bin/NAnt.Win32Tasks.dll differs (PE32 executable (DLL) (console) Intel 80386, Mono/.Net assembly, for MS Windows)
--- old /usr/share/NAnt/bin/NAnt.Win32Tasks.dll (monodis)
+++ new /usr/share/NAnt/bin/NAnt.Win32Tasks.dll (monodis)
@@ -319,891 +319,719 @@
 
 .namespace NAnt.Win32.Tasks
 {
-  .class public auto ansi beforefieldinit TlbImpTask
-  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  .class private auto ansi beforefieldinit MonoRegistryTask
+  	extends [NAnt.Core]NAnt.Core.Task
   {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 74 6C 62 69 6D 70 00 00 ) // ...tlbimp..
-
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 01 00 00 00 00 00 ) // ........
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (
+		01 00 0C 6D 6F 6E 6F 72 65 67 69 73 74 72 79 00   // ...monoregistry.
+		00                                              ) // .
 
-    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
-    .field  private  string _namespace
-    .field  private  string _asmVersion
-    .field  private  bool _delaySign
-    .field  private  bool _primary
-    .field  private  class [mscorlib]System.IO.FileInfo _publicKeyFile
-    .field  private  class [mscorlib]System.IO.FileInfo _keyFile
-    .field  private  string _keyContainer
-    .field  private  class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet _references
-    .field  private  bool _strictref
-    .field  private  bool _sysarray
-    .field  private  string _transform
-    .field  private  bool _unsafe
-    .field  private  class [mscorlib]System.IO.FileInfo _typelib
-    .field  private  class [mscorlib]System.Text.StringBuilder _argumentBuilder
-    .field  private  bool _supportsTransform
+    .field private static literal  string _defaultRegKey = "SOFTWARE\\Mono"
+    .field  private  string _propName
+    .field  private  string[] _regKeys
 
     // method line 7
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
         // Method begins at RVA 0x2213
-	// Code size 25 (0x19)
+	// Code size 35 (0x23)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
-	IL_0006:  stfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.Win32.Tasks.TlbImpTask::_references
-	IL_000b:  ldarg.0 
-	IL_000c:  ldc.i4.1 
-	IL_000d:  stfld bool NAnt.Win32.Tasks.TlbImpTask::_supportsTransform
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
-	IL_0018:  ret 
-    } // end of method TlbImpTask::.ctor
+	IL_0001:  ldc.i4.2 
+	IL_0002:  newarr [mscorlib]System.String
+	IL_0007:  dup 
+	IL_0008:  ldc.i4.0 
+	IL_0009:  ldstr "SOFTWARE\\Wow6432Node\\Novell\\Mono"
+	IL_000e:  stelem.ref 
+	IL_000f:  dup 
+	IL_0010:  ldc.i4.1 
+	IL_0011:  ldstr "SOFTWARE\\Novell\\Mono"
+	IL_0016:  stelem.ref 
+	IL_0017:  stfld string[] NAnt.Win32.Tasks.MonoRegistryTask::_regKeys
+	IL_001c:  ldarg.0 
+	IL_001d:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
+	IL_0022:  ret 
+    } // end of method MonoRegistryTask::.ctor
 
     // method line 8
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_PropertyName ()  cil managed 
     {
-        // Method begins at RVA 0x2230
+        // Method begins at RVA 0x2238
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
+		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_outputFile
+	IL_0002:  ldfld string NAnt.Win32.Tasks.MonoRegistryTask::_propName
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TlbImpTask::get_OutputFile
+    } // end of method MonoRegistryTask::get_PropertyName
 
     // method line 9
-    .method public hidebysig specialname 
-           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_PropertyName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x224b
+        // Method begins at RVA 0x2253
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_outputFile
+	IL_0003:  stfld string NAnt.Win32.Tasks.MonoRegistryTask::_propName
 	IL_0008:  ret 
-    } // end of method TlbImpTask::set_OutputFile
+    } // end of method MonoRegistryTask::set_PropertyName
 
     // method line 10
-    .method public hidebysig specialname 
-           instance default string get_Namespace ()  cil managed 
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x2258
-	// Code size 15 (0xf)
-	.maxstack 1
+        // Method begins at RVA 0x2260
+	// Code size 100 (0x64)
+	.maxstack 3
 	.locals init (
-		string	V_0)
+		string	V_0,
+		string[]	V_1,
+		int32	V_2,
+		class [mscorlib]Microsoft.Win32.RegistryKey	V_3)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Win32.Tasks.TlbImpTask::_namespace
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
+	IL_0001:  nop 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld string[] NAnt.Win32.Tasks.MonoRegistryTask::_regKeys
+	IL_0008:  stloc.1 
+	IL_0009:  ldc.i4.0 
+	IL_000a:  stloc.2 
+	IL_000b:  br IL_0044
 
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TlbImpTask::get_Namespace
+	IL_0010:  ldloc.1 
+	IL_0011:  ldloc.2 
+	IL_0012:  ldelem.ref 
+	IL_0013:  stloc.0 
+	IL_0014:  nop 
+	IL_0015:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::LocalMachine
+	IL_001a:  ldloc.0 
+	IL_001b:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string)
+	IL_0020:  stloc.3 
+	IL_0021:  ldloc.3 
+	IL_0022:  brfalse IL_003f
+
+	IL_0027:  nop 
+	IL_0028:  ldarg.0 
+	IL_0029:  callvirt instance class [NAnt.Core]NAnt.Core.PropertyDictionary class [NAnt.Core]NAnt.Core.Element::get_Properties()
+	IL_002e:  ldarg.0 
+	IL_002f:  ldfld string NAnt.Win32.Tasks.MonoRegistryTask::_propName
+	IL_0034:  ldloc.0 
+	IL_0035:  callvirt instance void class [NAnt.Core]NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_003a:  br IL_0063
+
+	IL_003f:  nop 
+	IL_0040:  ldloc.2 
+	IL_0041:  ldc.i4.1 
+	IL_0042:  add 
+	IL_0043:  stloc.2 
+	IL_0044:  ldloc.2 
+	IL_0045:  ldloc.1 
+	IL_0046:  ldlen 
+	IL_0047:  conv.i4 
+	IL_0048:  blt IL_0010
+
+	IL_004d:  ldarg.0 
+	IL_004e:  callvirt instance class [NAnt.Core]NAnt.Core.PropertyDictionary class [NAnt.Core]NAnt.Core.Element::get_Properties()
+	IL_0053:  ldarg.0 
+	IL_0054:  ldfld string NAnt.Win32.Tasks.MonoRegistryTask::_propName
+	IL_0059:  ldstr "SOFTWARE\\Mono"
+	IL_005e:  callvirt instance void class [NAnt.Core]NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0063:  ret 
+    } // end of method MonoRegistryTask::ExecuteTask
+
+	.property instance string PropertyName ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
+		52 65 71 75 69 72 65 64 01                      ) // Required.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.Win32.Tasks.MonoRegistryTask::get_PropertyName () 
+		.set instance default void NAnt.Win32.Tasks.MonoRegistryTask::set_PropertyName (string 'value') 
+	}
+  } // end of class NAnt.Win32.Tasks.MonoRegistryTask
+}
+
+.namespace NAnt.Win32.Tasks
+{
+  .class public auto ansi beforefieldinit AxImpTask
+  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 61 78 69 6D 70 00 00 ) // ...aximp..
+
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 01 00 00 00 00 00 ) // ........
+
+    .field  private  class [mscorlib]System.IO.FileInfo _ocxFile
+    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
+    .field  private  class [mscorlib]System.IO.FileInfo _publicKeyFile
+    .field  private  class [mscorlib]System.IO.FileInfo _keyFile
+    .field  private  class [mscorlib]System.IO.FileInfo _rcwFile
+    .field  private  string _keyContainer
+    .field  private  bool _delaySign
+    .field  private  bool _generateSource
+    .field  private  bool _supportsRcw
 
     // method line 11
-    .method public hidebysig specialname 
-           instance default void set_Namespace (string 'value')  cil managed 
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2273
+        // Method begins at RVA 0x22d0
 	// Code size 14 (0xe)
 	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Win32.Tasks.TlbImpTask::_namespace
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  stfld bool NAnt.Win32.Tasks.AxImpTask::_supportsRcw
+	IL_0007:  ldarg.0 
+	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
 	IL_000d:  ret 
-    } // end of method TlbImpTask::set_Namespace
+    } // end of method AxImpTask::.ctor
 
     // method line 12
     .method public hidebysig specialname 
-           instance default string get_AsmVersion ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_OcxFile ()  cil managed 
     {
-        // Method begins at RVA 0x2284
+        // Method begins at RVA 0x22e0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		string	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Win32.Tasks.TlbImpTask::_asmVersion
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_ocxFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TlbImpTask::get_AsmVersion
+    } // end of method AxImpTask::get_OcxFile
 
     // method line 13
     .method public hidebysig specialname 
-           instance default void set_AsmVersion (string 'value')  cil managed 
+           instance default void set_OcxFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x229f
-	// Code size 14 (0xe)
+        // Method begins at RVA 0x22fb
+	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Win32.Tasks.TlbImpTask::_asmVersion
-	IL_000d:  ret 
-    } // end of method TlbImpTask::set_AsmVersion
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_ocxFile
+	IL_0008:  ret 
+    } // end of method AxImpTask::set_OcxFile
 
     // method line 14
     .method public hidebysig specialname 
-           instance default bool get_DelaySign ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x22b0
+        // Method begins at RVA 0x2308
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
-		bool	V_0)
+		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Win32.Tasks.TlbImpTask::_delaySign
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_outputFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TlbImpTask::get_DelaySign
+    } // end of method AxImpTask::get_OutputFile
 
     // method line 15
     .method public hidebysig specialname 
-           instance default void set_DelaySign (bool 'value')  cil managed 
+           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x22cb
+        // Method begins at RVA 0x2323
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Win32.Tasks.TlbImpTask::_delaySign
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_outputFile
 	IL_0008:  ret 
-    } // end of method TlbImpTask::set_DelaySign
+    } // end of method AxImpTask::set_OutputFile
 
     // method line 16
     .method public hidebysig specialname 
-           instance default bool get_Primary ()  cil managed 
-    {
-        // Method begins at RVA 0x22d8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Win32.Tasks.TlbImpTask::_primary
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TlbImpTask::get_Primary
-
-    // method line 17
-    .method public hidebysig specialname 
-           instance default void set_Primary (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x22f3
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Win32.Tasks.TlbImpTask::_primary
-	IL_0008:  ret 
-    } // end of method TlbImpTask::set_Primary
-
-    // method line 18
-    .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_PublicKeyFile ()  cil managed 
     {
-        // Method begins at RVA 0x2300
+        // Method begins at RVA 0x2330
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_publicKeyFile
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_publicKeyFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TlbImpTask::get_PublicKeyFile
+    } // end of method AxImpTask::get_PublicKeyFile
 
-    // method line 19
+    // method line 17
     .method public hidebysig specialname 
            instance default void set_PublicKeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x231b
+        // Method begins at RVA 0x234b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_publicKeyFile
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_publicKeyFile
 	IL_0008:  ret 
-    } // end of method TlbImpTask::set_PublicKeyFile
+    } // end of method AxImpTask::set_PublicKeyFile
 
-    // method line 20
+    // method line 18
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
     {
-        // Method begins at RVA 0x2328
+        // Method begins at RVA 0x2358
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_keyFile
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_keyFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TlbImpTask::get_KeyFile
+    } // end of method AxImpTask::get_KeyFile
 
-    // method line 21
+    // method line 19
     .method public hidebysig specialname 
            instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2343
+        // Method begins at RVA 0x2373
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_keyFile
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_keyFile
 	IL_0008:  ret 
-    } // end of method TlbImpTask::set_KeyFile
+    } // end of method AxImpTask::set_KeyFile
 
-    // method line 22
+    // method line 20
     .method public hidebysig specialname 
            instance default string get_KeyContainer ()  cil managed 
     {
-        // Method begins at RVA 0x2350
+        // Method begins at RVA 0x2380
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Win32.Tasks.TlbImpTask::_keyContainer
+	IL_0002:  ldfld string NAnt.Win32.Tasks.AxImpTask::_keyContainer
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TlbImpTask::get_KeyContainer
+    } // end of method AxImpTask::get_KeyContainer
 
-    // method line 23
+    // method line 21
     .method public hidebysig specialname 
            instance default void set_KeyContainer (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x236b
+        // Method begins at RVA 0x239b
 	// Code size 14 (0xe)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
 	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Win32.Tasks.TlbImpTask::_keyContainer
+	IL_0008:  stfld string NAnt.Win32.Tasks.AxImpTask::_keyContainer
 	IL_000d:  ret 
-    } // end of method TlbImpTask::set_KeyContainer
-
-    // method line 24
-    .method public hidebysig specialname 
-           instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
-    {
-        // Method begins at RVA 0x237c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.Win32.Tasks.TlbImpTask::_references
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TlbImpTask::get_References
-
-    // method line 25
-    .method public hidebysig specialname 
-           instance default void set_References (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2397
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.Win32.Tasks.TlbImpTask::_references
-	IL_0008:  ret 
-    } // end of method TlbImpTask::set_References
+    } // end of method AxImpTask::set_KeyContainer
 
-    // method line 26
+    // method line 22
     .method public hidebysig specialname 
-           instance default bool get_StrictRef ()  cil managed 
+           instance default bool get_DelaySign ()  cil managed 
     {
-        // Method begins at RVA 0x23a4
+        // Method begins at RVA 0x23ac
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Win32.Tasks.TlbImpTask::_strictref
+	IL_0002:  ldfld bool NAnt.Win32.Tasks.AxImpTask::_delaySign
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TlbImpTask::get_StrictRef
+    } // end of method AxImpTask::get_DelaySign
 
-    // method line 27
+    // method line 23
     .method public hidebysig specialname 
-           instance default void set_StrictRef (bool 'value')  cil managed 
+           instance default void set_DelaySign (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x23bf
+        // Method begins at RVA 0x23c7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Win32.Tasks.TlbImpTask::_strictref
+	IL_0003:  stfld bool NAnt.Win32.Tasks.AxImpTask::_delaySign
 	IL_0008:  ret 
-    } // end of method TlbImpTask::set_StrictRef
+    } // end of method AxImpTask::set_DelaySign
 
-    // method line 28
+    // method line 24
     .method public hidebysig specialname 
-           instance default bool get_SysArray ()  cil managed 
+           instance default bool get_GenerateSource ()  cil managed 
     {
-        // Method begins at RVA 0x23cc
+        // Method begins at RVA 0x23d4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Win32.Tasks.TlbImpTask::_sysarray
+	IL_0002:  ldfld bool NAnt.Win32.Tasks.AxImpTask::_generateSource
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TlbImpTask::get_SysArray
+    } // end of method AxImpTask::get_GenerateSource
 
-    // method line 29
+    // method line 25
     .method public hidebysig specialname 
-           instance default void set_SysArray (bool 'value')  cil managed 
+           instance default void set_GenerateSource (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x23e7
+        // Method begins at RVA 0x23ef
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Win32.Tasks.TlbImpTask::_sysarray
+	IL_0003:  stfld bool NAnt.Win32.Tasks.AxImpTask::_generateSource
 	IL_0008:  ret 
-    } // end of method TlbImpTask::set_SysArray
-
-    // method line 30
-    .method public hidebysig specialname 
-           instance default string get_Transform ()  cil managed 
-    {
-        // Method begins at RVA 0x23f4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Win32.Tasks.TlbImpTask::_transform
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TlbImpTask::get_Transform
-
-    // method line 31
-    .method public hidebysig specialname 
-           instance default void set_Transform (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x240f
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Win32.Tasks.TlbImpTask::_transform
-	IL_000d:  ret 
-    } // end of method TlbImpTask::set_Transform
+    } // end of method AxImpTask::set_GenerateSource
 
-    // method line 32
+    // method line 26
     .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_TypeLib ()  cil managed 
+           instance default class [mscorlib]System.IO.FileInfo get_RcwFile ()  cil managed 
     {
-        // Method begins at RVA 0x2420
+        // Method begins at RVA 0x23fc
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		class [mscorlib]System.IO.FileInfo	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_typelib
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method TlbImpTask::get_TypeLib
-
-    // method line 33
-    .method public hidebysig specialname 
-           instance default void set_TypeLib (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x243b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_typelib
-	IL_0008:  ret 
-    } // end of method TlbImpTask::set_TypeLib
-
-    // method line 34
-    .method public hidebysig specialname 
-           instance default bool get_Unsafe ()  cil managed 
-    {
-        // Method begins at RVA 0x2448
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Win32.Tasks.TlbImpTask::_unsafe
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_rcwFile
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TlbImpTask::get_Unsafe
+    } // end of method AxImpTask::get_RcwFile
 
-    // method line 35
+    // method line 27
     .method public hidebysig specialname 
-           instance default void set_Unsafe (bool 'value')  cil managed 
+           instance default void set_RcwFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2463
+        // Method begins at RVA 0x2417
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Win32.Tasks.TlbImpTask::_unsafe
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_rcwFile
 	IL_0008:  ret 
-    } // end of method TlbImpTask::set_Unsafe
+    } // end of method AxImpTask::set_RcwFile
 
-    // method line 36
+    // method line 28
     .method public hidebysig specialname 
-           instance default bool get_SupportsTransform ()  cil managed 
+           instance default bool get_SupportsRcw ()  cil managed 
     {
-        // Method begins at RVA 0x2470
+        // Method begins at RVA 0x2424
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
 		bool	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Win32.Tasks.TlbImpTask::_supportsTransform
+	IL_0002:  ldfld bool NAnt.Win32.Tasks.AxImpTask::_supportsRcw
 	IL_0007:  stloc.0 
 	IL_0008:  br IL_000d
 
 	IL_000d:  ldloc.0 
 	IL_000e:  ret 
-    } // end of method TlbImpTask::get_SupportsTransform
+    } // end of method AxImpTask::get_SupportsRcw
 
-    // method line 37
+    // method line 29
     .method public hidebysig specialname 
-           instance default void set_SupportsTransform (bool 'value')  cil managed 
+           instance default void set_SupportsRcw (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x248b
+        // Method begins at RVA 0x243f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
 	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Win32.Tasks.TlbImpTask::_supportsTransform
+	IL_0003:  stfld bool NAnt.Win32.Tasks.AxImpTask::_supportsRcw
 	IL_0008:  ret 
-    } // end of method TlbImpTask::set_SupportsTransform
+    } // end of method AxImpTask::set_SupportsRcw
 
-    // method line 38
+    // method line 30
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x2498
-	// Code size 40 (0x28)
+        // Method begins at RVA 0x244c
+	// Code size 14 (0xe)
 	.maxstack 1
 	.locals init (
 		string	V_0)
 	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_0007:  brfalse IL_001e
-
-	IL_000c:  nop 
-	IL_000d:  ldarg.0 
-	IL_000e:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_0013:  callvirt instance string object::ToString()
-	IL_0018:  stloc.0 
-	IL_0019:  br IL_0026
-
-	IL_001e:  nop 
-	IL_001f:  ldnull 
-	IL_0020:  stloc.0 
-	IL_0021:  br IL_0026
+	IL_0001:  ldstr ""
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
 
-	IL_0026:  ldloc.0 
-	IL_0027:  ret 
-    } // end of method TlbImpTask::get_ProgramArguments
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method AxImpTask::get_ProgramArguments
 
-    // method line 39
+    // method line 31
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x24cc
-	// Code size 689 (0x2b1)
-	.maxstack 4
+        // Method begins at RVA 0x2468
+	// Code size 576 (0x240)
+	.maxstack 7
 	.locals init (
-		string	V_0,
-		class [System]System.Collections.Specialized.StringEnumerator	V_1,
-		class [mscorlib]System.IDisposable	V_2)
+		class [mscorlib]System.Exception	V_0)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class NAnt.Win32.Tasks.TlbImpTask::get_References()
-	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
-	IL_000c:  brtrue IL_002e
+	IL_0002:  ldc.i4 3000
+	IL_0007:  ldstr "Generating Windows Forms Control wrapping '{0}'."
+	IL_000c:  ldc.i4.1 
+	IL_000d:  newarr [mscorlib]System.Object
+	IL_0012:  dup 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  ldarg.0 
+	IL_0015:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OcxFile()
+	IL_001a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001f:  stelem.ref 
+	IL_0020:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0025:  ldarg.0 
+	IL_0026:  callvirt instance bool class NAnt.Win32.Tasks.AxImpTask::NeedsCompiling()
+	IL_002b:  brtrue IL_0036
 
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class NAnt.Win32.Tasks.TlbImpTask::get_References()
-	IL_0018:  ldarg.0 
-	IL_0019:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
-	IL_001e:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
-	IL_0023:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
-	IL_0028:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
-	IL_002d:  nop 
-	IL_002e:  ldarg.0 
-	IL_002f:  callvirt instance bool class NAnt.Win32.Tasks.TlbImpTask::NeedsCompiling()
-	IL_0034:  brfalse IL_02b0
+	IL_0030:  nop 
+	IL_0031:  br IL_023f
 
-	IL_0039:  nop 
-	IL_003a:  ldarg.0 
-	IL_003b:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
-	IL_0040:  stfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_0045:  ldarg.0 
-	IL_0046:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_004b:  ldstr "\""
-	IL_0050:  ldarg.0 
-	IL_0051:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_TypeLib()
-	IL_0056:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_005b:  ldstr "\""
-	IL_0060:  call string string::Concat(string, string, string)
-	IL_0065:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_006a:  pop 
-	IL_006b:  ldarg.0 
-	IL_006c:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_0071:  ldstr " /out:\"{0}\""
-	IL_0076:  ldarg.0 
-	IL_0077:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_OutputFile()
-	IL_007c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0081:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	IL_0086:  pop 
-	IL_0087:  ldarg.0 
-	IL_0088:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_008d:  ldstr " /nologo"
-	IL_0092:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0097:  pop 
-	IL_0098:  ldarg.0 
-	IL_0099:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_AsmVersion()
-	IL_009e:  brfalse IL_00bc
+	IL_0036:  ldarg.0 
+	IL_0037:  call instance bool class NAnt.Win32.Tasks.AxImpTask::get_DelaySign()
+	IL_003c:  brfalse IL_0059
 
-	IL_00a3:  nop 
-	IL_00a4:  ldarg.0 
-	IL_00a5:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_00aa:  ldstr " /asmversion:\"{0}\""
-	IL_00af:  ldarg.0 
-	IL_00b0:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_AsmVersion()
-	IL_00b5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_0041:  nop 
+	IL_0042:  ldarg.0 
+	IL_0043:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_0048:  ldstr "/delaysign"
+	IL_004d:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0052:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	IL_0057:  pop 
+	IL_0058:  nop 
+	IL_0059:  ldarg.0 
+	IL_005a:  call instance bool class NAnt.Win32.Tasks.AxImpTask::get_GenerateSource()
+	IL_005f:  brfalse IL_007c
+
+	IL_0064:  nop 
+	IL_0065:  ldarg.0 
+	IL_0066:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_006b:  ldstr "/source"
+	IL_0070:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0075:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	IL_007a:  pop 
+	IL_007b:  nop 
+	IL_007c:  ldarg.0 
+	IL_007d:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_0082:  brfalse IL_00a4
+
+	IL_0087:  nop 
+	IL_0088:  ldarg.0 
+	IL_0089:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_008e:  ldstr "/verbose"
+	IL_0093:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0098:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	IL_009d:  pop 
+	IL_009e:  nop 
+	IL_009f:  br IL_00bc
+
+	IL_00a4:  nop 
+	IL_00a5:  ldarg.0 
+	IL_00a6:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_00ab:  ldstr "/silent"
+	IL_00b0:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_00b5:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
 	IL_00ba:  pop 
 	IL_00bb:  nop 
 	IL_00bc:  ldarg.0 
-	IL_00bd:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_Namespace()
-	IL_00c2:  brfalse IL_00e0
+	IL_00bd:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
+	IL_00c2:  brfalse IL_00f4
 
 	IL_00c7:  nop 
 	IL_00c8:  ldarg.0 
-	IL_00c9:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_00ce:  ldstr " /namespace:\"{0}\""
-	IL_00d3:  ldarg.0 
-	IL_00d4:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_Namespace()
-	IL_00d9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	IL_00de:  pop 
-	IL_00df:  nop 
-	IL_00e0:  ldarg.0 
-	IL_00e1:  call instance bool class NAnt.Win32.Tasks.TlbImpTask::get_Primary()
-	IL_00e6:  brfalse IL_00fe
-
-	IL_00eb:  nop 
-	IL_00ec:  ldarg.0 
-	IL_00ed:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_00f2:  ldstr " /primary"
-	IL_00f7:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_00fc:  pop 
-	IL_00fd:  nop 
-	IL_00fe:  ldarg.0 
-	IL_00ff:  call instance bool class NAnt.Win32.Tasks.TlbImpTask::get_Unsafe()
-	IL_0104:  brfalse IL_011c
-
-	IL_0109:  nop 
-	IL_010a:  ldarg.0 
-	IL_010b:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_0110:  ldstr " /unsafe"
-	IL_0115:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_011a:  pop 
-	IL_011b:  nop 
-	IL_011c:  ldarg.0 
-	IL_011d:  call instance bool class NAnt.Win32.Tasks.TlbImpTask::get_DelaySign()
-	IL_0122:  brfalse IL_013a
+	IL_00c9:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_00ce:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_00d3:  ldstr "/out:\"{0}\""
+	IL_00d8:  ldarg.0 
+	IL_00d9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
+	IL_00de:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00e3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_00e8:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_00ed:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	IL_00f2:  pop 
+	IL_00f3:  nop 
+	IL_00f4:  ldarg.0 
+	IL_00f5:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_PublicKeyFile()
+	IL_00fa:  brfalse IL_012c
 
-	IL_0127:  nop 
-	IL_0128:  ldarg.0 
-	IL_0129:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_012e:  ldstr " /delaysign"
-	IL_0133:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0138:  pop 
-	IL_0139:  nop 
-	IL_013a:  ldarg.0 
-	IL_013b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_PublicKeyFile()
-	IL_0140:  brfalse IL_0163
+	IL_00ff:  nop 
+	IL_0100:  ldarg.0 
+	IL_0101:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_0106:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_010b:  ldstr "/publickey:\"{0}\""
+	IL_0110:  ldarg.0 
+	IL_0111:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_PublicKeyFile()
+	IL_0116:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_011b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0120:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0125:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	IL_012a:  pop 
+	IL_012b:  nop 
+	IL_012c:  ldarg.0 
+	IL_012d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_KeyFile()
+	IL_0132:  brfalse IL_0164
 
-	IL_0145:  nop 
-	IL_0146:  ldarg.0 
-	IL_0147:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_014c:  ldstr " /publickey:\"{0}\""
-	IL_0151:  ldarg.0 
-	IL_0152:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_PublicKeyFile()
-	IL_0157:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_015c:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	IL_0161:  pop 
-	IL_0162:  nop 
-	IL_0163:  ldarg.0 
-	IL_0164:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_KeyFile()
-	IL_0169:  brfalse IL_018c
+	IL_0137:  nop 
+	IL_0138:  ldarg.0 
+	IL_0139:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_013e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0143:  ldstr "/keyfile:\"{0}\""
+	IL_0148:  ldarg.0 
+	IL_0149:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_KeyFile()
+	IL_014e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0153:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0158:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_015d:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	IL_0162:  pop 
+	IL_0163:  nop 
+	IL_0164:  ldarg.0 
+	IL_0165:  call instance string class NAnt.Win32.Tasks.AxImpTask::get_KeyContainer()
+	IL_016a:  brfalse IL_0197
 
-	IL_016e:  nop 
-	IL_016f:  ldarg.0 
-	IL_0170:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_0175:  ldstr " /keyfile:\"{0}\""
-	IL_017a:  ldarg.0 
-	IL_017b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_KeyFile()
-	IL_0180:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0185:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	IL_018a:  pop 
-	IL_018b:  nop 
-	IL_018c:  ldarg.0 
-	IL_018d:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_KeyContainer()
-	IL_0192:  brfalse IL_01b0
+	IL_016f:  nop 
+	IL_0170:  ldarg.0 
+	IL_0171:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_0176:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_017b:  ldstr "/keycontainer:\"{0}\""
+	IL_0180:  ldarg.0 
+	IL_0181:  call instance string class NAnt.Win32.Tasks.AxImpTask::get_KeyContainer()
+	IL_0186:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_018b:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_0190:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	IL_0195:  pop 
+	IL_0196:  nop 
+	IL_0197:  ldarg.0 
+	IL_0198:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_RcwFile()
+	IL_019d:  brfalse IL_01dc
 
-	IL_0197:  nop 
-	IL_0198:  ldarg.0 
-	IL_0199:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_019e:  ldstr " /keycontainer:\"{0}\""
+	IL_01a2:  nop 
 	IL_01a3:  ldarg.0 
-	IL_01a4:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_KeyContainer()
-	IL_01a9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	IL_01ae:  pop 
-	IL_01af:  nop 
-	IL_01b0:  ldarg.0 
-	IL_01b1:  call instance bool class NAnt.Win32.Tasks.TlbImpTask::get_StrictRef()
-	IL_01b6:  brfalse IL_01ce
-
-	IL_01bb:  nop 
-	IL_01bc:  ldarg.0 
-	IL_01bd:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_01c2:  ldstr " /strictref"
-	IL_01c7:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_01cc:  pop 
-	IL_01cd:  nop 
-	IL_01ce:  ldarg.0 
-	IL_01cf:  call instance bool class NAnt.Win32.Tasks.TlbImpTask::get_SysArray()
-	IL_01d4:  brfalse IL_01ec
-
-	IL_01d9:  nop 
-	IL_01da:  ldarg.0 
-	IL_01db:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_01e0:  ldstr " /sysarray"
-	IL_01e5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_01ea:  pop 
-	IL_01eb:  nop 
-	IL_01ec:  ldarg.0 
-	IL_01ed:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_Transform()
-	IL_01f2:  brfalse IL_021d
+	IL_01a4:  call instance bool class NAnt.Win32.Tasks.AxImpTask::get_SupportsRcw()
+	IL_01a9:  brfalse IL_01db
 
-	IL_01f7:  nop 
+	IL_01ae:  nop 
+	IL_01af:  ldarg.0 
+	IL_01b0:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_01b5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_01ba:  ldstr "/rcw:\"{0}\""
+	IL_01bf:  ldarg.0 
+	IL_01c0:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_RcwFile()
+	IL_01c5:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_01ca:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_01cf:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_01d4:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	IL_01d9:  pop 
+	IL_01da:  nop 
+	IL_01db:  nop 
+	IL_01dc:  ldarg.0 
+	IL_01dd:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
+	IL_01e2:  ldstr "/nologo"
+	IL_01e7:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
+	IL_01ec:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	IL_01f1:  pop 
+	IL_01f2:  ldarg.0 
+	IL_01f3:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
 	IL_01f8:  ldarg.0 
-	IL_01f9:  call instance bool class NAnt.Win32.Tasks.TlbImpTask::get_SupportsTransform()
-	IL_01fe:  brfalse IL_021c
-
-	IL_0203:  nop 
-	IL_0204:  ldarg.0 
-	IL_0205:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_020a:  ldstr " /transform:\"{0}\""
-	IL_020f:  ldarg.0 
-	IL_0210:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_Transform()
-	IL_0215:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	IL_021a:  pop 
-	IL_021b:  nop 
-	IL_021c:  nop 
-	IL_021d:  ldarg.0 
-	IL_021e:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_0223:  brfalse IL_0240
-
-	IL_0228:  nop 
-	IL_0229:  ldarg.0 
-	IL_022a:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_022f:  ldstr " /verbose"
-	IL_0234:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0239:  pop 
-	IL_023a:  nop 
-	IL_023b:  br IL_0253
-
-	IL_0240:  nop 
-	IL_0241:  ldarg.0 
-	IL_0242:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	IL_0247:  ldstr " /silent"
-	IL_024c:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
-	IL_0251:  pop 
-	IL_0252:  nop 
-	IL_0253:  nop 
-	IL_0254:  ldarg.0 
-	IL_0255:  call instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class NAnt.Win32.Tasks.TlbImpTask::get_References()
-	IL_025a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_025f:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
-	IL_0264:  stloc.1 
+	IL_01f9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OcxFile()
+	IL_01fe:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(class [mscorlib]System.IO.FileInfo)
+	IL_0203:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
+	IL_0208:  pop 
 	.try { // 0
-	  IL_0265:  br IL_0285
-
-	  IL_026a:  ldloc.1 
-	  IL_026b:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
-	  IL_0270:  stloc.0 
-	  IL_0271:  nop 
-	  IL_0272:  ldarg.0 
-	  IL_0273:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
-	  IL_0278:  ldstr " /reference:\"{0}\""
-	  IL_027d:  ldloc.0 
-	  IL_027e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
-	  IL_0283:  pop 
-	  IL_0284:  nop 
-	  IL_0285:  ldloc.1 
-	  IL_0286:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
-	  IL_028b:  brtrue IL_026a
-
-	  IL_0290:  leave IL_02a9
+	  IL_0209:  nop 
+	  IL_020a:  ldarg.0 
+	  IL_020b:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	  IL_0210:  nop 
+	  IL_0211:  leave IL_023f
 
 	} // end .try 0
-	finally  { // 0
-	  IL_0295:  ldloc.1 
-	  IL_0296:  isinst [mscorlib]System.IDisposable
-	  IL_029b:  dup 
-	  IL_029c:  stloc.2 
-	  IL_029d:  brfalse IL_02a8
-
-	  IL_02a2:  ldloc.2 
-	  IL_02a3:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_02a8:  endfinally 
+	catch class [mscorlib]System.Exception { // 0
+	  IL_0216:  stloc.0 
+	  IL_0217:  nop 
+	  IL_0218:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	  IL_021d:  ldstr "Error importing ActiveX control from '{0}'."
+	  IL_0222:  ldarg.0 
+	  IL_0223:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OcxFile()
+	  IL_0228:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	  IL_022d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	  IL_0232:  ldarg.0 
+	  IL_0233:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
+	  IL_0238:  ldloc.0 
+	  IL_0239:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
+	  IL_023e:  throw 
 	} // end handler 0
-	IL_02a9:  ldarg.0 
-	IL_02aa:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	IL_02af:  nop 
-	IL_02b0:  ret 
-    } // end of method TlbImpTask::ExecuteTask
-
-    // method line 40
-    .method public static hidebysig 
-           default string ExtractTypeLibPath (string path)  cil managed 
-    {
-        // Method begins at RVA 0x279c
-	// Code size 60 (0x3c)
-	.maxstack 4
-	.locals init (
-		class [System]System.Text.RegularExpressions.Regex	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldstr "^.*\\\\\\d+$"
-	IL_0006:  ldc.i4.s 0x23
-	IL_0008:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  ldarg.0 
-	IL_0010:  callvirt instance bool class [System]System.Text.RegularExpressions.Regex::IsMatch(string)
-	IL_0015:  brfalse IL_0033
-
-	IL_001a:  nop 
-	IL_001b:  ldarg.0 
-	IL_001c:  ldc.i4.0 
-	IL_001d:  ldarg.0 
-	IL_001e:  ldstr "\\"
-	IL_0023:  callvirt instance int32 string::LastIndexOf(string)
-	IL_0028:  callvirt instance string string::Substring(int32, int32)
-	IL_002d:  stloc.1 
-	IL_002e:  br IL_003a
-
-	IL_0033:  ldarg.0 
-	IL_0034:  stloc.1 
-	IL_0035:  br IL_003a
-
-	IL_003a:  ldloc.1 
-	IL_003b:  ret 
-    } // end of method TlbImpTask::ExtractTypeLibPath
+	IL_023f:  ret 
+    } // end of method AxImpTask::ExecuteTask
 
-    // method line 41
+    // method line 32
     .method family virtual hidebysig newslot 
            instance default bool NeedsCompiling ()  cil managed 
     {
-        // Method begins at RVA 0x27e4
-	// Code size 213 (0xd5)
+        // Method begins at RVA 0x26c4
+	// Code size 381 (0x17d)
 	.maxstack 7
 	.locals init (
 		bool	V_0,
-		string	V_1,
-		string	V_2)
+		string	V_1)
 	IL_0000:  nop 
 	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_OutputFile()
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
 	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
 	IL_000c:  brtrue IL_003d
 
@@ -1216,131 +1044,173 @@
 	IL_0023:  dup 
 	IL_0024:  ldc.i4.0 
 	IL_0025:  ldarg.0 
-	IL_0026:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_OutputFile()
+	IL_0026:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
 	IL_002b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
 	IL_0030:  stelem.ref 
 	IL_0031:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
 	IL_0036:  ldc.i4.1 
 	IL_0037:  stloc.0 
-	IL_0038:  br IL_00d3
+	IL_0038:  br IL_017b
 
 	IL_003d:  ldarg.0 
-	IL_003e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_TypeLib()
+	IL_003e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OcxFile()
 	IL_0043:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0048:  call string class NAnt.Win32.Tasks.TlbImpTask::ExtractTypeLibPath(string)
-	IL_004d:  stloc.1 
-	IL_004e:  ldloc.1 
-	IL_004f:  ldarg.0 
-	IL_0050:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_OutputFile()
-	IL_0055:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_005a:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_005f:  stloc.2 
-	IL_0060:  ldloc.2 
-	IL_0061:  brfalse IL_0088
+	IL_0048:  ldarg.0 
+	IL_0049:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
+	IL_004e:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0053:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_0058:  stloc.1 
+	IL_0059:  ldloc.1 
+	IL_005a:  brfalse IL_0081
 
-	IL_0066:  nop 
-	IL_0067:  ldarg.0 
-	IL_0068:  ldc.i4 2000
-	IL_006d:  ldstr "'{0}' has been updated, recompiling."
-	IL_0072:  ldc.i4.1 
-	IL_0073:  newarr [mscorlib]System.Object
-	IL_0078:  dup 
-	IL_0079:  ldc.i4.0 
-	IL_007a:  ldloc.2 
-	IL_007b:  stelem.ref 
-	IL_007c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0081:  ldc.i4.1 
-	IL_0082:  stloc.0 
-	IL_0083:  br IL_00d3
+	IL_005f:  nop 
+	IL_0060:  ldarg.0 
+	IL_0061:  ldc.i4 2000
+	IL_0066:  ldstr "'{0}' has been updated, recompiling."
+	IL_006b:  ldc.i4.1 
+	IL_006c:  newarr [mscorlib]System.Object
+	IL_0071:  dup 
+	IL_0072:  ldc.i4.0 
+	IL_0073:  ldloc.1 
+	IL_0074:  stelem.ref 
+	IL_0075:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_007a:  ldc.i4.1 
+	IL_007b:  stloc.0 
+	IL_007c:  br IL_017b
 
-	IL_0088:  ldarg.0 
-	IL_0089:  call instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class NAnt.Win32.Tasks.TlbImpTask::get_References()
-	IL_008e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
-	IL_0093:  ldarg.0 
-	IL_0094:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_OutputFile()
-	IL_0099:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_009e:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
-	IL_00a3:  stloc.2 
-	IL_00a4:  ldloc.2 
-	IL_00a5:  brfalse IL_00cc
+	IL_0081:  ldarg.0 
+	IL_0082:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_PublicKeyFile()
+	IL_0087:  brfalse IL_00d2
 
-	IL_00aa:  nop 
-	IL_00ab:  ldarg.0 
-	IL_00ac:  ldc.i4 2000
-	IL_00b1:  ldstr "'{0}' has been updated, recompiling."
-	IL_00b6:  ldc.i4.1 
-	IL_00b7:  newarr [mscorlib]System.Object
-	IL_00bc:  dup 
-	IL_00bd:  ldc.i4.0 
-	IL_00be:  ldloc.2 
-	IL_00bf:  stelem.ref 
-	IL_00c0:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00c5:  ldc.i4.1 
-	IL_00c6:  stloc.0 
-	IL_00c7:  br IL_00d3
+	IL_008c:  nop 
+	IL_008d:  ldarg.0 
+	IL_008e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_PublicKeyFile()
+	IL_0093:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0098:  ldarg.0 
+	IL_0099:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
+	IL_009e:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_00a3:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_00a8:  stloc.1 
+	IL_00a9:  ldloc.1 
+	IL_00aa:  brfalse IL_00d1
 
-	IL_00cc:  ldc.i4.0 
-	IL_00cd:  stloc.0 
-	IL_00ce:  br IL_00d3
+	IL_00af:  nop 
+	IL_00b0:  ldarg.0 
+	IL_00b1:  ldc.i4 2000
+	IL_00b6:  ldstr "'{0}' has been updated, recompiling."
+	IL_00bb:  ldc.i4.1 
+	IL_00bc:  newarr [mscorlib]System.Object
+	IL_00c1:  dup 
+	IL_00c2:  ldc.i4.0 
+	IL_00c3:  ldloc.1 
+	IL_00c4:  stelem.ref 
+	IL_00c5:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00ca:  ldc.i4.1 
+	IL_00cb:  stloc.0 
+	IL_00cc:  br IL_017b
 
-	IL_00d3:  ldloc.0 
-	IL_00d4:  ret 
-    } // end of method TlbImpTask::NeedsCompiling
+	IL_00d1:  nop 
+	IL_00d2:  ldarg.0 
+	IL_00d3:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_KeyFile()
+	IL_00d8:  brfalse IL_0123
 
-	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 06 6F 75 74 70 75 74 01 00 54 02 08 52 65   // ...output..T..Re
-		71 75 69 72 65 64 01                            ) // quired.
+	IL_00dd:  nop 
+	IL_00de:  ldarg.0 
+	IL_00df:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_KeyFile()
+	IL_00e4:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_00e9:  ldarg.0 
+	IL_00ea:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
+	IL_00ef:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_00f4:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_00f9:  stloc.1 
+	IL_00fa:  ldloc.1 
+	IL_00fb:  brfalse IL_0122
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::get_OutputFile () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string Namespace ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 6E 61 6D 65 73 70 61 63 65 00 00 ) // ...namespace..
+	IL_0100:  nop 
+	IL_0101:  ldarg.0 
+	IL_0102:  ldc.i4 2000
+	IL_0107:  ldstr "'{0}' has been updated, recompiling."
+	IL_010c:  ldc.i4.1 
+	IL_010d:  newarr [mscorlib]System.Object
+	IL_0112:  dup 
+	IL_0113:  ldc.i4.0 
+	IL_0114:  ldloc.1 
+	IL_0115:  stelem.ref 
+	IL_0116:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_011b:  ldc.i4.1 
+	IL_011c:  stloc.0 
+	IL_011d:  br IL_017b
 
-		.get instance default string NAnt.Win32.Tasks.TlbImpTask::get_Namespace () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_Namespace (string 'value') 
-	}
-	.property instance string AsmVersion ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 61 73 6D 76 65 72 73 69 6F 6E 00 00 ) // ...asmversion..
+	IL_0122:  nop 
+	IL_0123:  ldarg.0 
+	IL_0124:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_RcwFile()
+	IL_0129:  brfalse IL_0174
 
-		.get instance default string NAnt.Win32.Tasks.TlbImpTask::get_AsmVersion () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_AsmVersion (string 'value') 
-	}
-	.property instance bool DelaySign ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 64 65 6C 61 79 73 69 67 6E 00 00 ) // ...delaysign..
+	IL_012e:  nop 
+	IL_012f:  ldarg.0 
+	IL_0130:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_RcwFile()
+	IL_0135:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_013a:  ldarg.0 
+	IL_013b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
+	IL_0140:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_0145:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_014a:  stloc.1 
+	IL_014b:  ldloc.1 
+	IL_014c:  brfalse IL_0173
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+	IL_0151:  nop 
+	IL_0152:  ldarg.0 
+	IL_0153:  ldc.i4 2000
+	IL_0158:  ldstr "'{0}' has been updated, recompiling."
+	IL_015d:  ldc.i4.1 
+	IL_015e:  newarr [mscorlib]System.Object
+	IL_0163:  dup 
+	IL_0164:  ldc.i4.0 
+	IL_0165:  ldloc.1 
+	IL_0166:  stelem.ref 
+	IL_0167:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_016c:  ldc.i4.1 
+	IL_016d:  stloc.0 
+	IL_016e:  br IL_017b
 
-		.get instance default bool NAnt.Win32.Tasks.TlbImpTask::get_DelaySign () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_DelaySign (bool 'value') 
-	}
-	.property instance bool Primary ()
+	IL_0173:  nop 
+	IL_0174:  ldc.i4.0 
+	IL_0175:  stloc.0 
+	IL_0176:  br IL_017b
+
+	IL_017b:  ldloc.0 
+	IL_017c:  ret 
+    } // end of method AxImpTask::NeedsCompiling
+
+	.property instance class [mscorlib]System.IO.FileInfo OcxFile ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 70 72 69 6D 61 72 79 00 00 ) // ...primary..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 03 6F 63 78 01 00 54 02 08 52 65 71 75 69   // ...ocx..T..Requi
+		72 65 64 01                                     ) // red.
 
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::get_OcxFile () 
+		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_OcxFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 6F 75 74 70 75 74 00 00 ) // ...output..
 
-		.get instance default bool NAnt.Win32.Tasks.TlbImpTask::get_Primary () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_Primary (bool 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::get_OutputFile () 
+		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
 	.property instance class [mscorlib]System.IO.FileInfo PublicKeyFile ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 70 75 62 6C 69 63 6B 65 79 00 00 ) // ...publickey..
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::get_PublicKeyFile () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_PublicKeyFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::get_PublicKeyFile () 
+		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_PublicKeyFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
 	.property instance class [mscorlib]System.IO.FileInfo KeyFile ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6B 65 79 66 69 6C 65 00 00 ) // ...keyfile..
 
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::get_KeyFile () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_KeyFile (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::get_KeyFile () 
+		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_KeyFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
 	.property instance string KeyContainer ()
 	{
@@ -1348,221 +1218,49 @@
 		01 00 0C 6B 65 79 63 6F 6E 74 61 69 6E 65 72 00   // ...keycontainer.
 		00                                              ) // .
 
-		.get instance default string NAnt.Win32.Tasks.TlbImpTask::get_KeyContainer () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_KeyContainer (string 'value') 
-	}
-	.property instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet References ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 0A 72 65 66 65 72 65 6E 63 65 73 00 00 ) // ...references..
-
-		.get instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.Win32.Tasks.TlbImpTask::get_References () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_References (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value') 
+		.get instance default string NAnt.Win32.Tasks.AxImpTask::get_KeyContainer () 
+		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_KeyContainer (string 'value') 
 	}
-	.property instance bool StrictRef ()
+	.property instance bool DelaySign ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 73 74 72 69 63 74 72 65 66 00 00 ) // ...strictref..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 64 65 6C 61 79 73 69 67 6E 00 00 ) // ...delaysign..
 
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Win32.Tasks.TlbImpTask::get_StrictRef () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_StrictRef (bool 'value') 
+		.get instance default bool NAnt.Win32.Tasks.AxImpTask::get_DelaySign () 
+		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_DelaySign (bool 'value') 
 	}
-	.property instance bool SysArray ()
+	.property instance bool GenerateSource ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 73 79 73 61 72 72 61 79 00 00 ) // ...sysarray..
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0E 67 65 6E 65 72 61 74 65 73 6F 75 72 63   // ...generatesourc
+		65 00 00                                        ) // e..
 
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
 
-		.get instance default bool NAnt.Win32.Tasks.TlbImpTask::get_SysArray () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_SysArray (bool 'value') 
-	}
-	.property instance string Transform ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 74 72 61 6E 73 66 6F 72 6D 00 00 ) // ...transform..
-
-		.get instance default string NAnt.Win32.Tasks.TlbImpTask::get_Transform () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_Transform (string 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo TypeLib ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 07 74 79 70 65 6C 69 62 01 00 54 02 08 52   // ...typelib..T..R
-		65 71 75 69 72 65 64 01                         ) // equired.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::get_TypeLib () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_TypeLib (class [mscorlib]System.IO.FileInfo 'value') 
+		.get instance default bool NAnt.Win32.Tasks.AxImpTask::get_GenerateSource () 
+		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_GenerateSource (bool 'value') 
 	}
-	.property instance bool Unsafe ()
+	.property instance class [mscorlib]System.IO.FileInfo RcwFile ()
 	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 73 61 66 65 00 00 ) // ...unsafe..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 72 63 77 00 00 ) // ...rcw..
 
-		.get instance default bool NAnt.Win32.Tasks.TlbImpTask::get_Unsafe () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_Unsafe (bool 'value') 
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::get_RcwFile () 
+		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_RcwFile (class [mscorlib]System.IO.FileInfo 'value') 
 	}
-	.property instance bool SupportsTransform ()
+	.property instance bool SupportsRcw ()
 	{
 		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 11 73 75 70 70 6F 72 74 73 74 72 61 6E 73   // ...supportstrans
-		66 6F 72 6D 00 00                               ) // form..
+		01 00 0B 73 75 70 70 6F 72 74 73 72 63 77 00 00 ) // ...supportsrcw..
 
-		.get instance default bool NAnt.Win32.Tasks.TlbImpTask::get_SupportsTransform () 
-		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_SupportsTransform (bool 'value') 
+		.get instance default bool NAnt.Win32.Tasks.AxImpTask::get_SupportsRcw () 
+		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_SupportsRcw (bool 'value') 
 	}
 	.property instance string ProgramArguments ()
 	{
-		.get instance default string NAnt.Win32.Tasks.TlbImpTask::get_ProgramArguments () 
-	}
-  } // end of class NAnt.Win32.Tasks.TlbImpTask
-}
-
-.namespace NAnt.Win32.Tasks
-{
-  .class private auto ansi beforefieldinit MonoRegistryTask
-  	extends [NAnt.Core]NAnt.Core.Task
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (
-		01 00 0C 6D 6F 6E 6F 72 65 67 69 73 74 72 79 00   // ...monoregistry.
-		00                                              ) // .
-
-    .field private static literal  string _defaultRegKey = "SOFTWARE\\Mono"
-    .field  private  string _propName
-    .field  private  string[] _regKeys
-
-    // method line 42
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x28c5
-	// Code size 35 (0x23)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.2 
-	IL_0002:  newarr [mscorlib]System.String
-	IL_0007:  dup 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  ldstr "SOFTWARE\\Wow6432Node\\Novell\\Mono"
-	IL_000e:  stelem.ref 
-	IL_000f:  dup 
-	IL_0010:  ldc.i4.1 
-	IL_0011:  ldstr "SOFTWARE\\Novell\\Mono"
-	IL_0016:  stelem.ref 
-	IL_0017:  stfld string[] NAnt.Win32.Tasks.MonoRegistryTask::_regKeys
-	IL_001c:  ldarg.0 
-	IL_001d:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
-	IL_0022:  ret 
-    } // end of method MonoRegistryTask::.ctor
-
-    // method line 43
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_PropertyName ()  cil managed 
-    {
-        // Method begins at RVA 0x28ec
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Win32.Tasks.MonoRegistryTask::_propName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method MonoRegistryTask::get_PropertyName
-
-    // method line 44
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_PropertyName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x2907
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Win32.Tasks.MonoRegistryTask::_propName
-	IL_0008:  ret 
-    } // end of method MonoRegistryTask::set_PropertyName
-
-    // method line 45
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x2914
-	// Code size 100 (0x64)
-	.maxstack 3
-	.locals init (
-		string	V_0,
-		string[]	V_1,
-		int32	V_2,
-		class [mscorlib]Microsoft.Win32.RegistryKey	V_3)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld string[] NAnt.Win32.Tasks.MonoRegistryTask::_regKeys
-	IL_0008:  stloc.1 
-	IL_0009:  ldc.i4.0 
-	IL_000a:  stloc.2 
-	IL_000b:  br IL_0044
-
-	IL_0010:  ldloc.1 
-	IL_0011:  ldloc.2 
-	IL_0012:  ldelem.ref 
-	IL_0013:  stloc.0 
-	IL_0014:  nop 
-	IL_0015:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::LocalMachine
-	IL_001a:  ldloc.0 
-	IL_001b:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string)
-	IL_0020:  stloc.3 
-	IL_0021:  ldloc.3 
-	IL_0022:  brfalse IL_003f
-
-	IL_0027:  nop 
-	IL_0028:  ldarg.0 
-	IL_0029:  callvirt instance class [NAnt.Core]NAnt.Core.PropertyDictionary class [NAnt.Core]NAnt.Core.Element::get_Properties()
-	IL_002e:  ldarg.0 
-	IL_002f:  ldfld string NAnt.Win32.Tasks.MonoRegistryTask::_propName
-	IL_0034:  ldloc.0 
-	IL_0035:  callvirt instance void class [NAnt.Core]NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_003a:  br IL_0063
-
-	IL_003f:  nop 
-	IL_0040:  ldloc.2 
-	IL_0041:  ldc.i4.1 
-	IL_0042:  add 
-	IL_0043:  stloc.2 
-	IL_0044:  ldloc.2 
-	IL_0045:  ldloc.1 
-	IL_0046:  ldlen 
-	IL_0047:  conv.i4 
-	IL_0048:  blt IL_0010
-
-	IL_004d:  ldarg.0 
-	IL_004e:  callvirt instance class [NAnt.Core]NAnt.Core.PropertyDictionary class [NAnt.Core]NAnt.Core.Element::get_Properties()
-	IL_0053:  ldarg.0 
-	IL_0054:  ldfld string NAnt.Win32.Tasks.MonoRegistryTask::_propName
-	IL_0059:  ldstr "SOFTWARE\\Mono"
-	IL_005e:  callvirt instance void class [NAnt.Core]NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0063:  ret 
-    } // end of method MonoRegistryTask::ExecuteTask
-
-	.property instance string PropertyName ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 08 70 72 6F 70 65 72 74 79 01 00 54 02 08   // ...property..T..
-		52 65 71 75 69 72 65 64 01                      ) // Required.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.Win32.Tasks.MonoRegistryTask::get_PropertyName () 
-		.set instance default void NAnt.Win32.Tasks.MonoRegistryTask::set_PropertyName (string 'value') 
+		.get instance default string NAnt.Win32.Tasks.AxImpTask::get_ProgramArguments () 
 	}
-  } // end of class NAnt.Win32.Tasks.MonoRegistryTask
+  } // end of class NAnt.Win32.Tasks.AxImpTask
 }
 
 .namespace NAnt.Win32.Tasks
@@ -1586,11 +1284,11 @@
     .field  private  class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet _assemblies
     .field  private  class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet _references
 
-    // method line 46
+    // method line 33
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x2984
+        // Method begins at RVA 0x284d
 	// Code size 40 (0x28)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -1607,11 +1305,11 @@
 	IL_0027:  ret 
     } // end of method RegAsmTask::.ctor
 
-    // method line 47
+    // method line 34
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_AssemblyFile ()  cil managed 
     {
-        // Method begins at RVA 0x29b0
+        // Method begins at RVA 0x2878
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1626,11 +1324,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_AssemblyFile
 
-    // method line 48
+    // method line 35
     .method public hidebysig specialname 
            instance default void set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x29cb
+        // Method begins at RVA 0x2893
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1640,11 +1338,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_AssemblyFile
 
-    // method line 49
+    // method line 36
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_RegistryFile ()  cil managed 
     {
-        // Method begins at RVA 0x29d8
+        // Method begins at RVA 0x28a0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1659,11 +1357,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_RegistryFile
 
-    // method line 50
+    // method line 37
     .method public hidebysig specialname 
            instance default void set_RegistryFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x29f3
+        // Method begins at RVA 0x28bb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1673,11 +1371,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_RegistryFile
 
-    // method line 51
+    // method line 38
     .method public hidebysig specialname 
            instance default bool get_CodeBase ()  cil managed 
     {
-        // Method begins at RVA 0x2a00
+        // Method begins at RVA 0x28c8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1692,11 +1390,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_CodeBase
 
-    // method line 52
+    // method line 39
     .method public hidebysig specialname 
            instance default void set_CodeBase (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a1b
+        // Method begins at RVA 0x28e3
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1706,11 +1404,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_CodeBase
 
-    // method line 53
+    // method line 40
     .method public hidebysig specialname 
            instance default bool get_Registered ()  cil managed 
     {
-        // Method begins at RVA 0x2a28
+        // Method begins at RVA 0x28f0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1725,11 +1423,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_Registered
 
-    // method line 54
+    // method line 41
     .method public hidebysig specialname 
            instance default void set_Registered (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a43
+        // Method begins at RVA 0x290b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1739,11 +1437,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_Registered
 
-    // method line 55
+    // method line 42
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_TypeLib ()  cil managed 
     {
-        // Method begins at RVA 0x2a50
+        // Method begins at RVA 0x2918
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1758,11 +1456,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_TypeLib
 
-    // method line 56
+    // method line 43
     .method public hidebysig specialname 
            instance default void set_TypeLib (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a6b
+        // Method begins at RVA 0x2933
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1772,11 +1470,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_TypeLib
 
-    // method line 57
+    // method line 44
     .method public hidebysig specialname 
            instance default bool get_Unregister ()  cil managed 
     {
-        // Method begins at RVA 0x2a78
+        // Method begins at RVA 0x2940
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1791,11 +1489,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_Unregister
 
-    // method line 58
+    // method line 45
     .method public hidebysig specialname 
            instance default void set_Unregister (bool 'value')  cil managed 
     {
-        // Method begins at RVA 0x2a93
+        // Method begins at RVA 0x295b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1805,11 +1503,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_Unregister
 
-    // method line 59
+    // method line 46
     .method public hidebysig specialname 
            instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet get_Assemblies ()  cil managed 
     {
-        // Method begins at RVA 0x2aa0
+        // Method begins at RVA 0x2968
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1824,11 +1522,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_Assemblies
 
-    // method line 60
+    // method line 47
     .method public hidebysig specialname 
            instance default void set_Assemblies (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x2abb
+        // Method begins at RVA 0x2983
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1838,11 +1536,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_Assemblies
 
-    // method line 61
+    // method line 48
     .method public hidebysig specialname 
            instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
     {
-        // Method begins at RVA 0x2ac8
+        // Method begins at RVA 0x2990
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -1857,11 +1555,11 @@
 	IL_000e:  ret 
     } // end of method RegAsmTask::get_References
 
-    // method line 62
+    // method line 49
     .method public hidebysig specialname 
            instance default void set_References (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
     {
-        // Method begins at RVA 0x2ae3
+        // Method begins at RVA 0x29ab
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1871,11 +1569,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_References
 
-    // method line 63
+    // method line 50
     .method public virtual hidebysig specialname 
            instance default class [mscorlib]System.IO.DirectoryInfo get_BaseDirectory ()  cil managed 
     {
-        // Method begins at RVA 0x2af0
+        // Method begins at RVA 0x29b8
 	// Code size 39 (0x27)
 	.maxstack 1
 	.locals init (
@@ -1900,11 +1598,11 @@
 	IL_0026:  ret 
     } // end of method RegAsmTask::get_BaseDirectory
 
-    // method line 64
+    // method line 51
     .method public virtual hidebysig specialname 
            instance default void set_BaseDirectory (class [mscorlib]System.IO.DirectoryInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b23
+        // Method begins at RVA 0x29eb
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -1914,11 +1612,11 @@
 	IL_0008:  ret 
     } // end of method RegAsmTask::set_BaseDirectory
 
-    // method line 65
+    // method line 52
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x2b30
+        // Method begins at RVA 0x29f8
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -1934,11 +1632,11 @@
 	IL_0013:  ret 
     } // end of method RegAsmTask::get_ProgramArguments
 
-    // method line 66
+    // method line 53
     .method public virtual hidebysig specialname 
            instance default string get_ProgramFileName ()  cil managed 
     {
-        // Method begins at RVA 0x2b50
+        // Method begins at RVA 0x2a18
 	// Code size 40 (0x28)
 	.maxstack 2
 	.locals init (
@@ -1963,11 +1661,11 @@
 	IL_0027:  ret 
     } // end of method RegAsmTask::get_ProgramFileName
 
-    // method line 67
+    // method line 54
     .method family virtual hidebysig 
            instance default void PrepareProcess (class [System]System.Diagnostics.Process process)  cil managed 
     {
-        // Method begins at RVA 0x2b84
+        // Method begins at RVA 0x2a4c
 	// Code size 524 (0x20c)
 	.maxstack 3
 	.locals init (
@@ -2177,11 +1875,11 @@
 	IL_020b:  ret 
     } // end of method RegAsmTask::PrepareProcess
 
-    // method line 68
+    // method line 55
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x2dc4
+        // Method begins at RVA 0x2c8c
 	// Code size 757 (0x2f5)
 	.maxstack 7
 	.locals init (
@@ -2473,11 +2171,11 @@
 	IL_02f4:  ret 
     } // end of method RegAsmTask::ExecuteTask
 
-    // method line 69
+    // method line 56
     .method private hidebysig 
            instance default string GetAssemblyPath (string 'assembly')  cil managed 
     {
-        // Method begins at RVA 0x30e4
+        // Method begins at RVA 0x2fac
 	// Code size 50 (0x32)
 	.maxstack 2
 	.locals init (
@@ -2585,6 +2283,1687 @@
 
 .namespace NAnt.Win32.Tasks
 {
+  .class public auto ansi beforefieldinit ReadRegistryTask
+  	extends [NAnt.Core]NAnt.Core.Task
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (
+		01 00 0C 72 65 61 64 72 65 67 69 73 74 72 79 00   // ...readregistry.
+		00                                              ) // .
+
+    .field  private  string _propName
+    .field  private  string _propPrefix
+    .field  private  string _regKey
+    .field  private  string _regKeyValueName
+    .field  private  valuetype [mscorlib]Microsoft.Win32.RegistryHive[] _regHive
+    .field  private  string _regHiveString
+
+    // method line 57
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2fec
+	// Code size 52 (0x34)
+	.maxstack 5
+	.locals init (
+		valuetype [mscorlib]Microsoft.Win32.RegistryHive	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldc.i4.1 
+	IL_0002:  newarr [mscorlib]Microsoft.Win32.RegistryHive
+	IL_0007:  dup 
+	IL_0008:  ldc.i4.0 
+	IL_0009:  ldc.i4 -2147483646
+	IL_000e:  stelem.i4 
+	IL_000f:  stfld valuetype [mscorlib]Microsoft.Win32.RegistryHive[] NAnt.Win32.Tasks.ReadRegistryTask::_regHive
+	IL_0014:  ldarg.0 
+	IL_0015:  ldc.i4 -2147483646
+	IL_001a:  stloc.0 
+	IL_001b:  ldloca.s 0
+	IL_001d:  constrained. [mscorlib]Microsoft.Win32.RegistryHive
+	IL_0023:  callvirt instance string object::ToString()
+	IL_0028:  stfld string NAnt.Win32.Tasks.ReadRegistryTask::_regHiveString
+	IL_002d:  ldarg.0 
+	IL_002e:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
+	IL_0033:  ret 
+    } // end of method ReadRegistryTask::.ctor
+
+    // method line 58
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_PropertyName ()  cil managed 
+    {
+        // Method begins at RVA 0x302c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_propName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ReadRegistryTask::get_PropertyName
+
+    // method line 59
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_PropertyName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3047
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Win32.Tasks.ReadRegistryTask::_propName
+	IL_0008:  ret 
+    } // end of method ReadRegistryTask::set_PropertyName
+
+    // method line 60
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_PropertyPrefix ()  cil managed 
+    {
+        // Method begins at RVA 0x3054
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_propPrefix
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ReadRegistryTask::get_PropertyPrefix
+
+    // method line 61
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_PropertyPrefix (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x306f
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Win32.Tasks.ReadRegistryTask::_propPrefix
+	IL_0008:  ret 
+    } // end of method ReadRegistryTask::set_PropertyPrefix
+
+    // method line 62
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_RegistryKey ()  cil managed 
+    {
+        // Method begins at RVA 0x307c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKey
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ReadRegistryTask::get_RegistryKey
+
+    // method line 63
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_RegistryKey (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3098
+	// Code size 96 (0x60)
+	.maxstack 5
+	.locals init (
+		string	V_0,
+		string[]	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.1 
+	IL_0004:  ldstr "\\"
+	IL_0009:  callvirt instance bool string::StartsWith(string)
+	IL_000e:  brfalse IL_001d
+
+	IL_0013:  nop 
+	IL_0014:  ldarg.1 
+	IL_0015:  ldc.i4.1 
+	IL_0016:  callvirt instance string string::Substring(int32)
+	IL_001b:  stloc.0 
+	IL_001c:  nop 
+	IL_001d:  ldloc.0 
+	IL_001e:  ldstr "\\"
+	IL_0023:  ldc.i4.0 
+	IL_0024:  ldc.i4.1 
+	IL_0025:  call instance char[] string::ToCharArray(int32, int32)
+	IL_002a:  ldc.i4.0 
+	IL_002b:  ldelem.u2 
+	IL_002c:  ldc.i4.0 
+	IL_002d:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	IL_0032:  stloc.1 
+	IL_0033:  ldarg.0 
+	IL_0034:  ldloc.1 
+	IL_0035:  ldloc.1 
+	IL_0036:  ldlen 
+	IL_0037:  conv.i4 
+	IL_0038:  ldc.i4.1 
+	IL_0039:  sub 
+	IL_003a:  ldelem.ref 
+	IL_003b:  stfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKeyValueName
+	IL_0040:  ldarg.0 
+	IL_0041:  ldloc.0 
+	IL_0042:  ldc.i4.0 
+	IL_0043:  ldarg.1 
+	IL_0044:  callvirt instance int32 string::get_Length()
+	IL_0049:  ldarg.0 
+	IL_004a:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKeyValueName
+	IL_004f:  callvirt instance int32 string::get_Length()
+	IL_0054:  sub 
+	IL_0055:  callvirt instance string string::Substring(int32, int32)
+	IL_005a:  stfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKey
+	IL_005f:  ret 
+    } // end of method ReadRegistryTask::set_RegistryKey
+
+    // method line 64
+    .method public virtual hidebysig newslot specialname 
+           instance default string get_RegistryHiveName ()  cil managed 
+    {
+        // Method begins at RVA 0x3104
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regHiveString
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method ReadRegistryTask::get_RegistryHiveName
+
+    // method line 65
+    .method public virtual hidebysig newslot specialname 
+           instance default void set_RegistryHiveName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3120
+	// Code size 117 (0x75)
+	.maxstack 5
+	.locals init (
+		string[]	V_0,
+		int32	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NAnt.Win32.Tasks.ReadRegistryTask::_regHiveString
+	IL_0008:  ldarg.0 
+	IL_0009:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regHiveString
+	IL_000e:  ldstr " "
+	IL_0013:  call instance char[] string::ToCharArray()
+	IL_0018:  ldc.i4.0 
+	IL_0019:  ldelem.u2 
+	IL_001a:  ldc.i4.0 
+	IL_001b:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
+	IL_0020:  stloc.0 
+	IL_0021:  ldarg.0 
+	IL_0022:  ldtoken [mscorlib]Microsoft.Win32.RegistryHive
+	IL_0027:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_002c:  ldloc.0 
+	IL_002d:  ldlen 
+	IL_002e:  conv.i4 
+	IL_002f:  call class [mscorlib]System.Array class [mscorlib]System.Array::CreateInstance(class [mscorlib]System.Type, int32)
+	IL_0034:  castclass valuetype [mscorlib]Microsoft.Win32.RegistryHive[]
+	IL_0039:  stfld valuetype [mscorlib]Microsoft.Win32.RegistryHive[] NAnt.Win32.Tasks.ReadRegistryTask::_regHive
+	IL_003e:  ldc.i4.0 
+	IL_003f:  stloc.1 
+	IL_0040:  br IL_006b
+
+	IL_0045:  nop 
+	IL_0046:  ldarg.0 
+	IL_0047:  ldfld valuetype [mscorlib]Microsoft.Win32.RegistryHive[] NAnt.Win32.Tasks.ReadRegistryTask::_regHive
+	IL_004c:  ldloc.1 
+	IL_004d:  ldtoken [mscorlib]Microsoft.Win32.RegistryHive
+	IL_0052:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_0057:  ldloc.0 
+	IL_0058:  ldloc.1 
+	IL_0059:  ldelem.ref 
+	IL_005a:  ldc.i4.1 
+	IL_005b:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
+	IL_0060:  unbox.any [mscorlib]Microsoft.Win32.RegistryHive
+	IL_0065:  stelem.i4 
+	IL_0066:  nop 
+	IL_0067:  ldloc.1 
+	IL_0068:  ldc.i4.1 
+	IL_0069:  add 
+	IL_006a:  stloc.1 
+	IL_006b:  ldloc.1 
+	IL_006c:  ldloc.0 
+	IL_006d:  ldlen 
+	IL_006e:  conv.i4 
+	IL_006f:  blt IL_0045
+
+	IL_0074:  ret 
+    } // end of method ReadRegistryTask::set_RegistryHiveName
+
+    // method line 66
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x31a4
+	// Code size 309 (0x135)
+	.maxstack 5
+	.locals init (
+		object	V_0,
+		class [mscorlib]Microsoft.Win32.RegistryKey	V_1,
+		string	V_2,
+		string	V_3,
+		string[]	V_4,
+		int32	V_5)
+	IL_0000:  nop 
+	IL_0001:  ldnull 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKey
+	IL_0009:  brtrue IL_001a
+
+	IL_000e:  nop 
+	IL_000f:  ldstr "Missing registry key!"
+	IL_0014:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	IL_0019:  throw 
+	IL_001a:  ldnull 
+	IL_001b:  stloc.1 
+	IL_001c:  ldarg.0 
+	IL_001d:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_propName
+	IL_0022:  brfalse IL_00a6
+
+	IL_0027:  nop 
+	IL_0028:  ldarg.0 
+	IL_0029:  ldarg.0 
+	IL_002a:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKey
+	IL_002f:  ldarg.0 
+	IL_0030:  ldfld valuetype [mscorlib]Microsoft.Win32.RegistryHive[] NAnt.Win32.Tasks.ReadRegistryTask::_regHive
+	IL_0035:  call instance class [mscorlib]Microsoft.Win32.RegistryKey class NAnt.Win32.Tasks.ReadRegistryTask::LookupRegKey(string, valuetype [mscorlib]Microsoft.Win32.RegistryHive[])
+	IL_003a:  stloc.1 
+	IL_003b:  ldloc.1 
+	IL_003c:  ldarg.0 
+	IL_003d:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKeyValueName
+	IL_0042:  callvirt instance object class [mscorlib]Microsoft.Win32.RegistryKey::GetValue(string)
+	IL_0047:  stloc.0 
+	IL_0048:  ldloc.0 
+	IL_0049:  brfalse IL_006e
+
+	IL_004e:  nop 
+	IL_004f:  ldloc.0 
+	IL_0050:  callvirt instance string object::ToString()
+	IL_0055:  stloc.2 
+	IL_0056:  ldarg.0 
+	IL_0057:  callvirt instance class [NAnt.Core]NAnt.Core.PropertyDictionary class [NAnt.Core]NAnt.Core.Element::get_Properties()
+	IL_005c:  ldarg.0 
+	IL_005d:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_propName
+	IL_0062:  ldloc.2 
+	IL_0063:  callvirt instance void class [NAnt.Core]NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0068:  nop 
+	IL_0069:  br IL_00a0
+
+	IL_006e:  nop 
+	IL_006f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0074:  ldstr "Registry Value Not Found! - key='{0}';hive='{1}';"
+	IL_0079:  ldarg.0 
+	IL_007a:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKey
+	IL_007f:  ldstr "\\"
+	IL_0084:  ldarg.0 
+	IL_0085:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKeyValueName
+	IL_008a:  call string string::Concat(string, string, string)
+	IL_008f:  ldarg.0 
+	IL_0090:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regHiveString
+	IL_0095:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_009a:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	IL_009f:  throw 
+	IL_00a0:  nop 
+	IL_00a1:  br IL_0134
+
+	IL_00a6:  ldarg.0 
+	IL_00a7:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_propName
+	IL_00ac:  brtrue IL_0128
+
+	IL_00b1:  ldarg.0 
+	IL_00b2:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_propPrefix
+	IL_00b7:  brfalse IL_0128
+
+	IL_00bc:  nop 
+	IL_00bd:  ldarg.0 
+	IL_00be:  ldarg.0 
+	IL_00bf:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKey
+	IL_00c4:  ldarg.0 
+	IL_00c5:  ldfld valuetype [mscorlib]Microsoft.Win32.RegistryHive[] NAnt.Win32.Tasks.ReadRegistryTask::_regHive
+	IL_00ca:  call instance class [mscorlib]Microsoft.Win32.RegistryKey class NAnt.Win32.Tasks.ReadRegistryTask::LookupRegKey(string, valuetype [mscorlib]Microsoft.Win32.RegistryHive[])
+	IL_00cf:  stloc.1 
+	IL_00d0:  nop 
+	IL_00d1:  ldloc.1 
+	IL_00d2:  callvirt instance string[] class [mscorlib]Microsoft.Win32.RegistryKey::GetValueNames()
+	IL_00d7:  stloc.s 4
+	IL_00d9:  ldc.i4.0 
+	IL_00da:  stloc.s 5
+	IL_00dc:  br IL_0117
+
+	IL_00e1:  ldloc.s 4
+	IL_00e3:  ldloc.s 5
+	IL_00e5:  ldelem.ref 
+	IL_00e6:  stloc.3 
+	IL_00e7:  nop 
+	IL_00e8:  ldarg.0 
+	IL_00e9:  callvirt instance class [NAnt.Core]NAnt.Core.PropertyDictionary class [NAnt.Core]NAnt.Core.Element::get_Properties()
+	IL_00ee:  ldarg.0 
+	IL_00ef:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_propPrefix
+	IL_00f4:  ldstr "."
+	IL_00f9:  ldloc.3 
+	IL_00fa:  call string string::Concat(string, string, string)
+	IL_00ff:  ldloc.1 
+	IL_0100:  ldloc.3 
+	IL_0101:  callvirt instance object class [mscorlib]Microsoft.Win32.RegistryKey::GetValue(string)
+	IL_0106:  callvirt instance string object::ToString()
+	IL_010b:  callvirt instance void class [NAnt.Core]NAnt.Core.PropertyDictionary::set_Item(string, string)
+	IL_0110:  nop 
+	IL_0111:  ldloc.s 5
+	IL_0113:  ldc.i4.1 
+	IL_0114:  add 
+	IL_0115:  stloc.s 5
+	IL_0117:  ldloc.s 5
+	IL_0119:  ldloc.s 4
+	IL_011b:  ldlen 
+	IL_011c:  conv.i4 
+	IL_011d:  blt IL_00e1
+
+	IL_0122:  nop 
+	IL_0123:  br IL_0134
+
+	IL_0128:  nop 
+	IL_0129:  ldstr "Missing both a property name and property prefix; atleast one if required!"
+	IL_012e:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	IL_0133:  throw 
+	IL_0134:  ret 
+    } // end of method ReadRegistryTask::ExecuteTask
+
+    // method line 67
+    .method family hidebysig 
+           instance default class [mscorlib]Microsoft.Win32.RegistryKey LookupRegKey (string key, valuetype [mscorlib]Microsoft.Win32.RegistryHive[] registries)  cil managed 
+    {
+        // Method begins at RVA 0x32e8
+	// Code size 133 (0x85)
+	.maxstack 7
+	.locals init (
+		valuetype [mscorlib]Microsoft.Win32.RegistryHive	V_0,
+		valuetype [mscorlib]Microsoft.Win32.RegistryHive[]	V_1,
+		int32	V_2,
+		class [mscorlib]Microsoft.Win32.RegistryKey	V_3,
+		class [mscorlib]Microsoft.Win32.RegistryKey	V_4)
+	IL_0000:  nop 
+	IL_0001:  nop 
+	IL_0002:  ldarg.2 
+	IL_0003:  stloc.1 
+	IL_0004:  ldc.i4.0 
+	IL_0005:  stloc.2 
+	IL_0006:  br IL_005d
+
+	IL_000b:  ldloc.1 
+	IL_000c:  ldloc.2 
+	IL_000d:  ldelem.i4 
+	IL_000e:  stloc.0 
+	IL_000f:  nop 
+	IL_0010:  ldarg.0 
+	IL_0011:  ldc.i4 2000
+	IL_0016:  ldstr "Opening {0}:{1}."
+	IL_001b:  ldc.i4.2 
+	IL_001c:  newarr [mscorlib]System.Object
+	IL_0021:  dup 
+	IL_0022:  ldc.i4.0 
+	IL_0023:  ldloca.s 0
+	IL_0025:  constrained. [mscorlib]Microsoft.Win32.RegistryHive
+	IL_002b:  callvirt instance string object::ToString()
+	IL_0030:  stelem.ref 
+	IL_0031:  dup 
+	IL_0032:  ldc.i4.1 
+	IL_0033:  ldarg.1 
+	IL_0034:  stelem.ref 
+	IL_0035:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_003a:  ldarg.0 
+	IL_003b:  ldloc.0 
+	IL_003c:  call instance class [mscorlib]Microsoft.Win32.RegistryKey class NAnt.Win32.Tasks.ReadRegistryTask::GetHiveKey(valuetype [mscorlib]Microsoft.Win32.RegistryHive)
+	IL_0041:  ldarg.1 
+	IL_0042:  ldc.i4.0 
+	IL_0043:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string, bool)
+	IL_0048:  stloc.3 
+	IL_0049:  ldloc.3 
+	IL_004a:  brfalse IL_0058
+
+	IL_004f:  nop 
+	IL_0050:  ldloc.3 
+	IL_0051:  stloc.s 4
+	IL_0053:  br IL_0082
+
+	IL_0058:  nop 
+	IL_0059:  ldloc.2 
+	IL_005a:  ldc.i4.1 
+	IL_005b:  add 
+	IL_005c:  stloc.2 
+	IL_005d:  ldloc.2 
+	IL_005e:  ldloc.1 
+	IL_005f:  ldlen 
+	IL_0060:  conv.i4 
+	IL_0061:  blt IL_000b
+
+	IL_0066:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_006b:  ldstr "Registry Path Not Found! - key='{0}';hive='{1}';"
+	IL_0070:  ldarg.1 
+	IL_0071:  ldarg.0 
+	IL_0072:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regHiveString
+	IL_0077:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
+	IL_007c:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
+	IL_0081:  throw 
+	IL_0082:  ldloc.s 4
+	IL_0084:  ret 
+    } // end of method ReadRegistryTask::LookupRegKey
+
+    // method line 68
+    .method family hidebysig 
+           instance default class [mscorlib]Microsoft.Win32.RegistryKey GetHiveKey (valuetype [mscorlib]Microsoft.Win32.RegistryHive hive)  cil managed 
+    {
+        // Method begins at RVA 0x337c
+	// Code size 125 (0x7d)
+	.maxstack 7
+	.locals init (
+		class [mscorlib]Microsoft.Win32.RegistryKey	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldc.i4 -2147483648
+	IL_0007:  add 
+	IL_0008:  switch (
+	  IL_0043,
+	  IL_0038,
+	  IL_0022,
+	  IL_002d)
+	IL_001d:  br IL_004e
+
+	IL_0022:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::LocalMachine
+	IL_0027:  stloc.0 
+	IL_0028:  br IL_007b
+
+	IL_002d:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::Users
+	IL_0032:  stloc.0 
+	IL_0033:  br IL_007b
+
+	IL_0038:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::CurrentUser
+	IL_003d:  stloc.0 
+	IL_003e:  br IL_007b
+
+	IL_0043:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::ClassesRoot
+	IL_0048:  stloc.0 
+	IL_0049:  br IL_007b
+
+	IL_004e:  ldarg.0 
+	IL_004f:  ldc.i4 2000
+	IL_0054:  ldstr "Registry not found for {0}."
+	IL_0059:  ldc.i4.1 
+	IL_005a:  newarr [mscorlib]System.Object
+	IL_005f:  dup 
+	IL_0060:  ldc.i4.0 
+	IL_0061:  ldarga.s 1
+	IL_0063:  constrained. [mscorlib]Microsoft.Win32.RegistryHive
+	IL_0069:  callvirt instance string object::ToString()
+	IL_006e:  stelem.ref 
+	IL_006f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0074:  ldnull 
+	IL_0075:  stloc.0 
+	IL_0076:  br IL_007b
+
+	IL_007b:  ldloc.0 
+	IL_007c:  ret 
+    } // end of method ReadRegistryTask::GetHiveKey
+
+	.property instance string PropertyName ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 70 72 6F 70 65 72 74 79 00 00 ) // ...property..
+
+		.get instance default string NAnt.Win32.Tasks.ReadRegistryTask::get_PropertyName () 
+		.set instance default void NAnt.Win32.Tasks.ReadRegistryTask::set_PropertyName (string 'value') 
+	}
+	.property instance string PropertyPrefix ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 70 72 65 66 69 78 00 00 ) // ...prefix..
+
+		.get instance default string NAnt.Win32.Tasks.ReadRegistryTask::get_PropertyPrefix () 
+		.set instance default void NAnt.Win32.Tasks.ReadRegistryTask::set_PropertyPrefix (string 'value') 
+	}
+	.property instance string RegistryKey ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 03 6B 65 79 01 00 54 02 08 52 65 71 75 69   // ...key..T..Requi
+		72 65 64 01                                     ) // red.
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
+		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
+		79 00                                           ) // y.
+
+		.get instance default string NAnt.Win32.Tasks.ReadRegistryTask::get_RegistryKey () 
+		.set instance default void NAnt.Win32.Tasks.ReadRegistryTask::set_RegistryKey (string 'value') 
+	}
+	.property instance string RegistryHiveName ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 68 69 76 65 00 00 ) // ...hive..
+
+		.get instance default string NAnt.Win32.Tasks.ReadRegistryTask::get_RegistryHiveName () 
+		.set instance default void NAnt.Win32.Tasks.ReadRegistryTask::set_RegistryHiveName (string 'value') 
+	}
+  } // end of class NAnt.Win32.Tasks.ReadRegistryTask
+}
+
+.namespace NAnt.Win32.Tasks
+{
+  .class public auto ansi beforefieldinit TlbImpTask
+  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
+  {
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 06 74 6C 62 69 6D 70 00 00 ) // ...tlbimp..
+
+    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 01 00 00 00 00 00 ) // ........
+
+    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
+    .field  private  string _namespace
+    .field  private  string _asmVersion
+    .field  private  bool _delaySign
+    .field  private  bool _primary
+    .field  private  class [mscorlib]System.IO.FileInfo _publicKeyFile
+    .field  private  class [mscorlib]System.IO.FileInfo _keyFile
+    .field  private  string _keyContainer
+    .field  private  class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet _references
+    .field  private  bool _strictref
+    .field  private  bool _sysarray
+    .field  private  string _transform
+    .field  private  bool _unsafe
+    .field  private  class [mscorlib]System.IO.FileInfo _typelib
+    .field  private  class [mscorlib]System.Text.StringBuilder _argumentBuilder
+    .field  private  bool _supportsTransform
+
+    // method line 69
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x3405
+	// Code size 25 (0x19)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet::'.ctor'()
+	IL_0006:  stfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.Win32.Tasks.TlbImpTask::_references
+	IL_000b:  ldarg.0 
+	IL_000c:  ldc.i4.1 
+	IL_000d:  stfld bool NAnt.Win32.Tasks.TlbImpTask::_supportsTransform
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
+	IL_0018:  ret 
+    } // end of method TlbImpTask::.ctor
+
+    // method line 70
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
+    {
+        // Method begins at RVA 0x3420
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_outputFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_OutputFile
+
+    // method line 71
+    .method public hidebysig specialname 
+           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x343b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_outputFile
+	IL_0008:  ret 
+    } // end of method TlbImpTask::set_OutputFile
+
+    // method line 72
+    .method public hidebysig specialname 
+           instance default string get_Namespace ()  cil managed 
+    {
+        // Method begins at RVA 0x3448
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Win32.Tasks.TlbImpTask::_namespace
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_Namespace
+
+    // method line 73
+    .method public hidebysig specialname 
+           instance default void set_Namespace (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3463
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Win32.Tasks.TlbImpTask::_namespace
+	IL_000d:  ret 
+    } // end of method TlbImpTask::set_Namespace
+
+    // method line 74
+    .method public hidebysig specialname 
+           instance default string get_AsmVersion ()  cil managed 
+    {
+        // Method begins at RVA 0x3474
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Win32.Tasks.TlbImpTask::_asmVersion
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_AsmVersion
+
+    // method line 75
+    .method public hidebysig specialname 
+           instance default void set_AsmVersion (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x348f
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Win32.Tasks.TlbImpTask::_asmVersion
+	IL_000d:  ret 
+    } // end of method TlbImpTask::set_AsmVersion
+
+    // method line 76
+    .method public hidebysig specialname 
+           instance default bool get_DelaySign ()  cil managed 
+    {
+        // Method begins at RVA 0x34a0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Win32.Tasks.TlbImpTask::_delaySign
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_DelaySign
+
+    // method line 77
+    .method public hidebysig specialname 
+           instance default void set_DelaySign (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x34bb
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Win32.Tasks.TlbImpTask::_delaySign
+	IL_0008:  ret 
+    } // end of method TlbImpTask::set_DelaySign
+
+    // method line 78
+    .method public hidebysig specialname 
+           instance default bool get_Primary ()  cil managed 
+    {
+        // Method begins at RVA 0x34c8
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Win32.Tasks.TlbImpTask::_primary
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_Primary
+
+    // method line 79
+    .method public hidebysig specialname 
+           instance default void set_Primary (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x34e3
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Win32.Tasks.TlbImpTask::_primary
+	IL_0008:  ret 
+    } // end of method TlbImpTask::set_Primary
+
+    // method line 80
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_PublicKeyFile ()  cil managed 
+    {
+        // Method begins at RVA 0x34f0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_publicKeyFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_PublicKeyFile
+
+    // method line 81
+    .method public hidebysig specialname 
+           instance default void set_PublicKeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x350b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_publicKeyFile
+	IL_0008:  ret 
+    } // end of method TlbImpTask::set_PublicKeyFile
+
+    // method line 82
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
+    {
+        // Method begins at RVA 0x3518
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_keyFile
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_KeyFile
+
+    // method line 83
+    .method public hidebysig specialname 
+           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3533
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_keyFile
+	IL_0008:  ret 
+    } // end of method TlbImpTask::set_KeyFile
+
+    // method line 84
+    .method public hidebysig specialname 
+           instance default string get_KeyContainer ()  cil managed 
+    {
+        // Method begins at RVA 0x3540
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Win32.Tasks.TlbImpTask::_keyContainer
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_KeyContainer
+
+    // method line 85
+    .method public hidebysig specialname 
+           instance default void set_KeyContainer (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x355b
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Win32.Tasks.TlbImpTask::_keyContainer
+	IL_000d:  ret 
+    } // end of method TlbImpTask::set_KeyContainer
+
+    // method line 86
+    .method public hidebysig specialname 
+           instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet get_References ()  cil managed 
+    {
+        // Method begins at RVA 0x356c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.Win32.Tasks.TlbImpTask::_references
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_References
+
+    // method line 87
+    .method public hidebysig specialname 
+           instance default void set_References (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3587
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.Win32.Tasks.TlbImpTask::_references
+	IL_0008:  ret 
+    } // end of method TlbImpTask::set_References
+
+    // method line 88
+    .method public hidebysig specialname 
+           instance default bool get_StrictRef ()  cil managed 
+    {
+        // Method begins at RVA 0x3594
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Win32.Tasks.TlbImpTask::_strictref
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_StrictRef
+
+    // method line 89
+    .method public hidebysig specialname 
+           instance default void set_StrictRef (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x35af
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Win32.Tasks.TlbImpTask::_strictref
+	IL_0008:  ret 
+    } // end of method TlbImpTask::set_StrictRef
+
+    // method line 90
+    .method public hidebysig specialname 
+           instance default bool get_SysArray ()  cil managed 
+    {
+        // Method begins at RVA 0x35bc
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Win32.Tasks.TlbImpTask::_sysarray
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_SysArray
+
+    // method line 91
+    .method public hidebysig specialname 
+           instance default void set_SysArray (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x35d7
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Win32.Tasks.TlbImpTask::_sysarray
+	IL_0008:  ret 
+    } // end of method TlbImpTask::set_SysArray
+
+    // method line 92
+    .method public hidebysig specialname 
+           instance default string get_Transform ()  cil managed 
+    {
+        // Method begins at RVA 0x35e4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NAnt.Win32.Tasks.TlbImpTask::_transform
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_Transform
+
+    // method line 93
+    .method public hidebysig specialname 
+           instance default void set_Transform (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x35ff
+	// Code size 14 (0xe)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
+	IL_0008:  stfld string NAnt.Win32.Tasks.TlbImpTask::_transform
+	IL_000d:  ret 
+    } // end of method TlbImpTask::set_Transform
+
+    // method line 94
+    .method public hidebysig specialname 
+           instance default class [mscorlib]System.IO.FileInfo get_TypeLib ()  cil managed 
+    {
+        // Method begins at RVA 0x3610
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.IO.FileInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_typelib
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_TypeLib
+
+    // method line 95
+    .method public hidebysig specialname 
+           instance default void set_TypeLib (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
+    {
+        // Method begins at RVA 0x362b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::_typelib
+	IL_0008:  ret 
+    } // end of method TlbImpTask::set_TypeLib
+
+    // method line 96
+    .method public hidebysig specialname 
+           instance default bool get_Unsafe ()  cil managed 
+    {
+        // Method begins at RVA 0x3638
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Win32.Tasks.TlbImpTask::_unsafe
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_Unsafe
+
+    // method line 97
+    .method public hidebysig specialname 
+           instance default void set_Unsafe (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x3653
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Win32.Tasks.TlbImpTask::_unsafe
+	IL_0008:  ret 
+    } // end of method TlbImpTask::set_Unsafe
+
+    // method line 98
+    .method public hidebysig specialname 
+           instance default bool get_SupportsTransform ()  cil managed 
+    {
+        // Method begins at RVA 0x3660
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NAnt.Win32.Tasks.TlbImpTask::_supportsTransform
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method TlbImpTask::get_SupportsTransform
+
+    // method line 99
+    .method public hidebysig specialname 
+           instance default void set_SupportsTransform (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x367b
+	// Code size 9 (0x9)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NAnt.Win32.Tasks.TlbImpTask::_supportsTransform
+	IL_0008:  ret 
+    } // end of method TlbImpTask::set_SupportsTransform
+
+    // method line 100
+    .method public virtual hidebysig specialname 
+           instance default string get_ProgramArguments ()  cil managed 
+    {
+        // Method begins at RVA 0x3688
+	// Code size 40 (0x28)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_0007:  brfalse IL_001e
+
+	IL_000c:  nop 
+	IL_000d:  ldarg.0 
+	IL_000e:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_0013:  callvirt instance string object::ToString()
+	IL_0018:  stloc.0 
+	IL_0019:  br IL_0026
+
+	IL_001e:  nop 
+	IL_001f:  ldnull 
+	IL_0020:  stloc.0 
+	IL_0021:  br IL_0026
+
+	IL_0026:  ldloc.0 
+	IL_0027:  ret 
+    } // end of method TlbImpTask::get_ProgramArguments
+
+    // method line 101
+    .method family virtual hidebysig 
+           instance default void ExecuteTask ()  cil managed 
+    {
+        // Method begins at RVA 0x36bc
+	// Code size 689 (0x2b1)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		class [System]System.Collections.Specialized.StringEnumerator	V_1,
+		class [mscorlib]System.IDisposable	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class NAnt.Win32.Tasks.TlbImpTask::get_References()
+	IL_0007:  callvirt instance class [mscorlib]System.IO.DirectoryInfo class [NAnt.Core]NAnt.Core.Types.FileSet::get_BaseDirectory()
+	IL_000c:  brtrue IL_002e
+
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class NAnt.Win32.Tasks.TlbImpTask::get_References()
+	IL_0018:  ldarg.0 
+	IL_0019:  callvirt instance class [NAnt.Core]NAnt.Core.Project class [NAnt.Core]NAnt.Core.Element::get_Project()
+	IL_001e:  callvirt instance string class [NAnt.Core]NAnt.Core.Project::get_BaseDirectory()
+	IL_0023:  newobj instance void class [mscorlib]System.IO.DirectoryInfo::'.ctor'(string)
+	IL_0028:  callvirt instance void class [NAnt.Core]NAnt.Core.Types.FileSet::set_BaseDirectory(class [mscorlib]System.IO.DirectoryInfo)
+	IL_002d:  nop 
+	IL_002e:  ldarg.0 
+	IL_002f:  callvirt instance bool class NAnt.Win32.Tasks.TlbImpTask::NeedsCompiling()
+	IL_0034:  brfalse IL_02b0
+
+	IL_0039:  nop 
+	IL_003a:  ldarg.0 
+	IL_003b:  newobj instance void class [mscorlib]System.Text.StringBuilder::'.ctor'()
+	IL_0040:  stfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_0045:  ldarg.0 
+	IL_0046:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_004b:  ldstr "\""
+	IL_0050:  ldarg.0 
+	IL_0051:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_TypeLib()
+	IL_0056:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_005b:  ldstr "\""
+	IL_0060:  call string string::Concat(string, string, string)
+	IL_0065:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_006a:  pop 
+	IL_006b:  ldarg.0 
+	IL_006c:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_0071:  ldstr " /out:\"{0}\""
+	IL_0076:  ldarg.0 
+	IL_0077:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_OutputFile()
+	IL_007c:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0081:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_0086:  pop 
+	IL_0087:  ldarg.0 
+	IL_0088:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_008d:  ldstr " /nologo"
+	IL_0092:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0097:  pop 
+	IL_0098:  ldarg.0 
+	IL_0099:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_AsmVersion()
+	IL_009e:  brfalse IL_00bc
+
+	IL_00a3:  nop 
+	IL_00a4:  ldarg.0 
+	IL_00a5:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_00aa:  ldstr " /asmversion:\"{0}\""
+	IL_00af:  ldarg.0 
+	IL_00b0:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_AsmVersion()
+	IL_00b5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_00ba:  pop 
+	IL_00bb:  nop 
+	IL_00bc:  ldarg.0 
+	IL_00bd:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_Namespace()
+	IL_00c2:  brfalse IL_00e0
+
+	IL_00c7:  nop 
+	IL_00c8:  ldarg.0 
+	IL_00c9:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_00ce:  ldstr " /namespace:\"{0}\""
+	IL_00d3:  ldarg.0 
+	IL_00d4:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_Namespace()
+	IL_00d9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_00de:  pop 
+	IL_00df:  nop 
+	IL_00e0:  ldarg.0 
+	IL_00e1:  call instance bool class NAnt.Win32.Tasks.TlbImpTask::get_Primary()
+	IL_00e6:  brfalse IL_00fe
+
+	IL_00eb:  nop 
+	IL_00ec:  ldarg.0 
+	IL_00ed:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_00f2:  ldstr " /primary"
+	IL_00f7:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_00fc:  pop 
+	IL_00fd:  nop 
+	IL_00fe:  ldarg.0 
+	IL_00ff:  call instance bool class NAnt.Win32.Tasks.TlbImpTask::get_Unsafe()
+	IL_0104:  brfalse IL_011c
+
+	IL_0109:  nop 
+	IL_010a:  ldarg.0 
+	IL_010b:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_0110:  ldstr " /unsafe"
+	IL_0115:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_011a:  pop 
+	IL_011b:  nop 
+	IL_011c:  ldarg.0 
+	IL_011d:  call instance bool class NAnt.Win32.Tasks.TlbImpTask::get_DelaySign()
+	IL_0122:  brfalse IL_013a
+
+	IL_0127:  nop 
+	IL_0128:  ldarg.0 
+	IL_0129:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_012e:  ldstr " /delaysign"
+	IL_0133:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0138:  pop 
+	IL_0139:  nop 
+	IL_013a:  ldarg.0 
+	IL_013b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_PublicKeyFile()
+	IL_0140:  brfalse IL_0163
+
+	IL_0145:  nop 
+	IL_0146:  ldarg.0 
+	IL_0147:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_014c:  ldstr " /publickey:\"{0}\""
+	IL_0151:  ldarg.0 
+	IL_0152:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_PublicKeyFile()
+	IL_0157:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_015c:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_0161:  pop 
+	IL_0162:  nop 
+	IL_0163:  ldarg.0 
+	IL_0164:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_KeyFile()
+	IL_0169:  brfalse IL_018c
+
+	IL_016e:  nop 
+	IL_016f:  ldarg.0 
+	IL_0170:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_0175:  ldstr " /keyfile:\"{0}\""
+	IL_017a:  ldarg.0 
+	IL_017b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_KeyFile()
+	IL_0180:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0185:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_018a:  pop 
+	IL_018b:  nop 
+	IL_018c:  ldarg.0 
+	IL_018d:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_KeyContainer()
+	IL_0192:  brfalse IL_01b0
+
+	IL_0197:  nop 
+	IL_0198:  ldarg.0 
+	IL_0199:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_019e:  ldstr " /keycontainer:\"{0}\""
+	IL_01a3:  ldarg.0 
+	IL_01a4:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_KeyContainer()
+	IL_01a9:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_01ae:  pop 
+	IL_01af:  nop 
+	IL_01b0:  ldarg.0 
+	IL_01b1:  call instance bool class NAnt.Win32.Tasks.TlbImpTask::get_StrictRef()
+	IL_01b6:  brfalse IL_01ce
+
+	IL_01bb:  nop 
+	IL_01bc:  ldarg.0 
+	IL_01bd:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_01c2:  ldstr " /strictref"
+	IL_01c7:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_01cc:  pop 
+	IL_01cd:  nop 
+	IL_01ce:  ldarg.0 
+	IL_01cf:  call instance bool class NAnt.Win32.Tasks.TlbImpTask::get_SysArray()
+	IL_01d4:  brfalse IL_01ec
+
+	IL_01d9:  nop 
+	IL_01da:  ldarg.0 
+	IL_01db:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_01e0:  ldstr " /sysarray"
+	IL_01e5:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_01ea:  pop 
+	IL_01eb:  nop 
+	IL_01ec:  ldarg.0 
+	IL_01ed:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_Transform()
+	IL_01f2:  brfalse IL_021d
+
+	IL_01f7:  nop 
+	IL_01f8:  ldarg.0 
+	IL_01f9:  call instance bool class NAnt.Win32.Tasks.TlbImpTask::get_SupportsTransform()
+	IL_01fe:  brfalse IL_021c
+
+	IL_0203:  nop 
+	IL_0204:  ldarg.0 
+	IL_0205:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_020a:  ldstr " /transform:\"{0}\""
+	IL_020f:  ldarg.0 
+	IL_0210:  call instance string class NAnt.Win32.Tasks.TlbImpTask::get_Transform()
+	IL_0215:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	IL_021a:  pop 
+	IL_021b:  nop 
+	IL_021c:  nop 
+	IL_021d:  ldarg.0 
+	IL_021e:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
+	IL_0223:  brfalse IL_0240
+
+	IL_0228:  nop 
+	IL_0229:  ldarg.0 
+	IL_022a:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_022f:  ldstr " /verbose"
+	IL_0234:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0239:  pop 
+	IL_023a:  nop 
+	IL_023b:  br IL_0253
+
+	IL_0240:  nop 
+	IL_0241:  ldarg.0 
+	IL_0242:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	IL_0247:  ldstr " /silent"
+	IL_024c:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::Append(string)
+	IL_0251:  pop 
+	IL_0252:  nop 
+	IL_0253:  nop 
+	IL_0254:  ldarg.0 
+	IL_0255:  call instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class NAnt.Win32.Tasks.TlbImpTask::get_References()
+	IL_025a:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_025f:  callvirt instance class [System]System.Collections.Specialized.StringEnumerator class [System]System.Collections.Specialized.StringCollection::GetEnumerator()
+	IL_0264:  stloc.1 
+	.try { // 0
+	  IL_0265:  br IL_0285
+
+	  IL_026a:  ldloc.1 
+	  IL_026b:  callvirt instance string class [System]System.Collections.Specialized.StringEnumerator::get_Current()
+	  IL_0270:  stloc.0 
+	  IL_0271:  nop 
+	  IL_0272:  ldarg.0 
+	  IL_0273:  ldfld class [mscorlib]System.Text.StringBuilder NAnt.Win32.Tasks.TlbImpTask::_argumentBuilder
+	  IL_0278:  ldstr " /reference:\"{0}\""
+	  IL_027d:  ldloc.0 
+	  IL_027e:  callvirt instance class [mscorlib]System.Text.StringBuilder class [mscorlib]System.Text.StringBuilder::AppendFormat(string, object)
+	  IL_0283:  pop 
+	  IL_0284:  nop 
+	  IL_0285:  ldloc.1 
+	  IL_0286:  callvirt instance bool class [System]System.Collections.Specialized.StringEnumerator::MoveNext()
+	  IL_028b:  brtrue IL_026a
+
+	  IL_0290:  leave IL_02a9
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0295:  ldloc.1 
+	  IL_0296:  isinst [mscorlib]System.IDisposable
+	  IL_029b:  dup 
+	  IL_029c:  stloc.2 
+	  IL_029d:  brfalse IL_02a8
+
+	  IL_02a2:  ldloc.2 
+	  IL_02a3:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_02a8:  endfinally 
+	} // end handler 0
+	IL_02a9:  ldarg.0 
+	IL_02aa:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
+	IL_02af:  nop 
+	IL_02b0:  ret 
+    } // end of method TlbImpTask::ExecuteTask
+
+    // method line 102
+    .method public static hidebysig 
+           default string ExtractTypeLibPath (string path)  cil managed 
+    {
+        // Method begins at RVA 0x398c
+	// Code size 60 (0x3c)
+	.maxstack 4
+	.locals init (
+		class [System]System.Text.RegularExpressions.Regex	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldstr "^.*\\\\\\d+$"
+	IL_0006:  ldc.i4.s 0x23
+	IL_0008:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  ldarg.0 
+	IL_0010:  callvirt instance bool class [System]System.Text.RegularExpressions.Regex::IsMatch(string)
+	IL_0015:  brfalse IL_0033
+
+	IL_001a:  nop 
+	IL_001b:  ldarg.0 
+	IL_001c:  ldc.i4.0 
+	IL_001d:  ldarg.0 
+	IL_001e:  ldstr "\\"
+	IL_0023:  callvirt instance int32 string::LastIndexOf(string)
+	IL_0028:  callvirt instance string string::Substring(int32, int32)
+	IL_002d:  stloc.1 
+	IL_002e:  br IL_003a
+
+	IL_0033:  ldarg.0 
+	IL_0034:  stloc.1 
+	IL_0035:  br IL_003a
+
+	IL_003a:  ldloc.1 
+	IL_003b:  ret 
+    } // end of method TlbImpTask::ExtractTypeLibPath
+
+    // method line 103
+    .method family virtual hidebysig newslot 
+           instance default bool NeedsCompiling ()  cil managed 
+    {
+        // Method begins at RVA 0x39d4
+	// Code size 213 (0xd5)
+	.maxstack 7
+	.locals init (
+		bool	V_0,
+		string	V_1,
+		string	V_2)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_OutputFile()
+	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
+	IL_000c:  brtrue IL_003d
+
+	IL_0011:  nop 
+	IL_0012:  ldarg.0 
+	IL_0013:  ldc.i4 2000
+	IL_0018:  ldstr "Output file '{0}' does not exist, recompiling."
+	IL_001d:  ldc.i4.1 
+	IL_001e:  newarr [mscorlib]System.Object
+	IL_0023:  dup 
+	IL_0024:  ldc.i4.0 
+	IL_0025:  ldarg.0 
+	IL_0026:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_OutputFile()
+	IL_002b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0030:  stelem.ref 
+	IL_0031:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0036:  ldc.i4.1 
+	IL_0037:  stloc.0 
+	IL_0038:  br IL_00d3
+
+	IL_003d:  ldarg.0 
+	IL_003e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_TypeLib()
+	IL_0043:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0048:  call string class NAnt.Win32.Tasks.TlbImpTask::ExtractTypeLibPath(string)
+	IL_004d:  stloc.1 
+	IL_004e:  ldloc.1 
+	IL_004f:  ldarg.0 
+	IL_0050:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_OutputFile()
+	IL_0055:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_005a:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
+	IL_005f:  stloc.2 
+	IL_0060:  ldloc.2 
+	IL_0061:  brfalse IL_0088
+
+	IL_0066:  nop 
+	IL_0067:  ldarg.0 
+	IL_0068:  ldc.i4 2000
+	IL_006d:  ldstr "'{0}' has been updated, recompiling."
+	IL_0072:  ldc.i4.1 
+	IL_0073:  newarr [mscorlib]System.Object
+	IL_0078:  dup 
+	IL_0079:  ldc.i4.0 
+	IL_007a:  ldloc.2 
+	IL_007b:  stelem.ref 
+	IL_007c:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_0081:  ldc.i4.1 
+	IL_0082:  stloc.0 
+	IL_0083:  br IL_00d3
+
+	IL_0088:  ldarg.0 
+	IL_0089:  call instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet class NAnt.Win32.Tasks.TlbImpTask::get_References()
+	IL_008e:  callvirt instance class [System]System.Collections.Specialized.StringCollection class [NAnt.Core]NAnt.Core.Types.FileSet::get_FileNames()
+	IL_0093:  ldarg.0 
+	IL_0094:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.TlbImpTask::get_OutputFile()
+	IL_0099:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
+	IL_009e:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(class [System]System.Collections.Specialized.StringCollection, valuetype [mscorlib]System.DateTime)
+	IL_00a3:  stloc.2 
+	IL_00a4:  ldloc.2 
+	IL_00a5:  brfalse IL_00cc
+
+	IL_00aa:  nop 
+	IL_00ab:  ldarg.0 
+	IL_00ac:  ldc.i4 2000
+	IL_00b1:  ldstr "'{0}' has been updated, recompiling."
+	IL_00b6:  ldc.i4.1 
+	IL_00b7:  newarr [mscorlib]System.Object
+	IL_00bc:  dup 
+	IL_00bd:  ldc.i4.0 
+	IL_00be:  ldloc.2 
+	IL_00bf:  stelem.ref 
+	IL_00c0:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
+	IL_00c5:  ldc.i4.1 
+	IL_00c6:  stloc.0 
+	IL_00c7:  br IL_00d3
+
+	IL_00cc:  ldc.i4.0 
+	IL_00cd:  stloc.0 
+	IL_00ce:  br IL_00d3
+
+	IL_00d3:  ldloc.0 
+	IL_00d4:  ret 
+    } // end of method TlbImpTask::NeedsCompiling
+
+	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 06 6F 75 74 70 75 74 01 00 54 02 08 52 65   // ...output..T..Re
+		71 75 69 72 65 64 01                            ) // quired.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::get_OutputFile () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string Namespace ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 6E 61 6D 65 73 70 61 63 65 00 00 ) // ...namespace..
+
+		.get instance default string NAnt.Win32.Tasks.TlbImpTask::get_Namespace () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_Namespace (string 'value') 
+	}
+	.property instance string AsmVersion ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 0A 61 73 6D 76 65 72 73 69 6F 6E 00 00 ) // ...asmversion..
+
+		.get instance default string NAnt.Win32.Tasks.TlbImpTask::get_AsmVersion () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_AsmVersion (string 'value') 
+	}
+	.property instance bool DelaySign ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 64 65 6C 61 79 73 69 67 6E 00 00 ) // ...delaysign..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Win32.Tasks.TlbImpTask::get_DelaySign () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_DelaySign (bool 'value') 
+	}
+	.property instance bool Primary ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 70 72 69 6D 61 72 79 00 00 ) // ...primary..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Win32.Tasks.TlbImpTask::get_Primary () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_Primary (bool 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo PublicKeyFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 70 75 62 6C 69 63 6B 65 79 00 00 ) // ...publickey..
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::get_PublicKeyFile () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_PublicKeyFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo KeyFile ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6B 65 79 66 69 6C 65 00 00 ) // ...keyfile..
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::get_KeyFile () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_KeyFile (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance string KeyContainer ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 0C 6B 65 79 63 6F 6E 74 61 69 6E 65 72 00   // ...keycontainer.
+		00                                              ) // .
+
+		.get instance default string NAnt.Win32.Tasks.TlbImpTask::get_KeyContainer () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_KeyContainer (string 'value') 
+	}
+	.property instance class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet References ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BuildElementAttribute::'.ctor'(string) =  (01 00 0A 72 65 66 65 72 65 6E 63 65 73 00 00 ) // ...references..
+
+		.get instance default class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet NAnt.Win32.Tasks.TlbImpTask::get_References () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_References (class [NAnt.DotNetTasks]NAnt.DotNet.Types.AssemblyFileSet 'value') 
+	}
+	.property instance bool StrictRef ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 73 74 72 69 63 74 72 65 66 00 00 ) // ...strictref..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Win32.Tasks.TlbImpTask::get_StrictRef () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_StrictRef (bool 'value') 
+	}
+	.property instance bool SysArray ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 73 79 73 61 72 72 61 79 00 00 ) // ...sysarray..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Win32.Tasks.TlbImpTask::get_SysArray () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_SysArray (bool 'value') 
+	}
+	.property instance string Transform ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 74 72 61 6E 73 66 6F 72 6D 00 00 ) // ...transform..
+
+		.get instance default string NAnt.Win32.Tasks.TlbImpTask::get_Transform () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_Transform (string 'value') 
+	}
+	.property instance class [mscorlib]System.IO.FileInfo TypeLib ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
+		01 00 07 74 79 70 65 6C 69 62 01 00 54 02 08 52   // ...typelib..T..R
+		65 71 75 69 72 65 64 01                         ) // equired.
+
+		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.TlbImpTask::get_TypeLib () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_TypeLib (class [mscorlib]System.IO.FileInfo 'value') 
+	}
+	.property instance bool Unsafe ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 75 6E 73 61 66 65 00 00 ) // ...unsafe..
+
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
+
+		.get instance default bool NAnt.Win32.Tasks.TlbImpTask::get_Unsafe () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_Unsafe (bool 'value') 
+	}
+	.property instance bool SupportsTransform ()
+	{
+		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
+		01 00 11 73 75 70 70 6F 72 74 73 74 72 61 6E 73   // ...supportstrans
+		66 6F 72 6D 00 00                               ) // form..
+
+		.get instance default bool NAnt.Win32.Tasks.TlbImpTask::get_SupportsTransform () 
+		.set instance default void NAnt.Win32.Tasks.TlbImpTask::set_SupportsTransform (bool 'value') 
+	}
+	.property instance string ProgramArguments ()
+	{
+		.get instance default string NAnt.Win32.Tasks.TlbImpTask::get_ProgramArguments () 
+	}
+  } // end of class NAnt.Win32.Tasks.TlbImpTask
+}
+
+.namespace NAnt.Win32.Tasks
+{
   .class private auto ansi beforefieldinit LocateSdkTask
   	extends [NAnt.Core]NAnt.Core.Task
   {
@@ -2598,11 +3977,11 @@
     .field  private initonly  string _registryBase
     .field  private initonly  string _regexNetFxTools
 
-    // method line 70
+    // method line 104
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3122
+        // Method begins at RVA 0x3ab5
 	// Code size 51 (0x33)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -2622,11 +4001,11 @@
 	IL_0032:  ret 
     } // end of method LocateSdkTask::.ctor
 
-    // method line 71
+    // method line 105
     .method public virtual hidebysig newslot specialname 
            instance default string get_PropertyName ()  cil managed 
     {
-        // Method begins at RVA 0x3158
+        // Method begins at RVA 0x3aec
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2641,11 +4020,11 @@
 	IL_000e:  ret 
     } // end of method LocateSdkTask::get_PropertyName
 
-    // method line 72
+    // method line 106
     .method public virtual hidebysig newslot specialname 
            instance default void set_PropertyName (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3173
+        // Method begins at RVA 0x3b07
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2655,11 +4034,11 @@
 	IL_0008:  ret 
     } // end of method LocateSdkTask::set_PropertyName
 
-    // method line 73
+    // method line 107
     .method public hidebysig specialname 
            instance default string get_MinWinSdkVersion ()  cil managed 
     {
-        // Method begins at RVA 0x3180
+        // Method begins at RVA 0x3b14
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2674,11 +4053,11 @@
 	IL_000e:  ret 
     } // end of method LocateSdkTask::get_MinWinSdkVersion
 
-    // method line 74
+    // method line 108
     .method public hidebysig specialname 
            instance default void set_MinWinSdkVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x319b
+        // Method begins at RVA 0x3b2f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2688,11 +4067,11 @@
 	IL_0008:  ret 
     } // end of method LocateSdkTask::set_MinWinSdkVersion
 
-    // method line 75
+    // method line 109
     .method public hidebysig specialname 
            instance default string get_MaxWinSdkVersion ()  cil managed 
     {
-        // Method begins at RVA 0x31a8
+        // Method begins at RVA 0x3b3c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2707,11 +4086,11 @@
 	IL_000e:  ret 
     } // end of method LocateSdkTask::get_MaxWinSdkVersion
 
-    // method line 76
+    // method line 110
     .method public hidebysig specialname 
            instance default void set_MaxWinSdkVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x31c3
+        // Method begins at RVA 0x3b57
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2721,11 +4100,11 @@
 	IL_0008:  ret 
     } // end of method LocateSdkTask::set_MaxWinSdkVersion
 
-    // method line 77
+    // method line 111
     .method public hidebysig specialname 
            instance default string get_MinNetFxVersion ()  cil managed 
     {
-        // Method begins at RVA 0x31d0
+        // Method begins at RVA 0x3b64
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2740,11 +4119,11 @@
 	IL_000e:  ret 
     } // end of method LocateSdkTask::get_MinNetFxVersion
 
-    // method line 78
+    // method line 112
     .method public hidebysig specialname 
            instance default void set_MinNetFxVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x31eb
+        // Method begins at RVA 0x3b7f
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2754,11 +4133,11 @@
 	IL_0008:  ret 
     } // end of method LocateSdkTask::set_MinNetFxVersion
 
-    // method line 79
+    // method line 113
     .method public hidebysig specialname 
            instance default string get_MaxNetFxVersion ()  cil managed 
     {
-        // Method begins at RVA 0x31f8
+        // Method begins at RVA 0x3b8c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -2773,11 +4152,11 @@
 	IL_000e:  ret 
     } // end of method LocateSdkTask::get_MaxNetFxVersion
 
-    // method line 80
+    // method line 114
     .method public hidebysig specialname 
            instance default void set_MaxNetFxVersion (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x3213
+        // Method begins at RVA 0x3ba7
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -2787,11 +4166,11 @@
 	IL_0008:  ret 
     } // end of method LocateSdkTask::set_MaxNetFxVersion
 
-    // method line 81
+    // method line 115
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x3220
+        // Method begins at RVA 0x3bb4
 	// Code size 631 (0x277)
 	.maxstack 6
 	.locals init (
@@ -3075,11 +4454,11 @@
 	IL_0276:  ret 
     } // end of method LocateSdkTask::ExecuteTask
 
-    // method line 82
+    // method line 116
     .method private hidebysig 
            instance default class [mscorlib]System.Version StringToVersion (string sdkVersion)  cil managed 
     {
-        // Method begins at RVA 0x34a4
+        // Method begins at RVA 0x3e38
 	// Code size 163 (0xa3)
 	.maxstack 5
 	.locals init (
@@ -3221,11 +4600,11 @@
     .field  private  class [mscorlib]System.IO.FileInfo _namesFile
     .field  private  class [mscorlib]System.Text.StringBuilder _argumentBuilder
 
-    // method line 83
+    // method line 117
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x3553
+        // Method begins at RVA 0x3ee7
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
@@ -3233,11 +4612,11 @@
 	IL_0006:  ret 
     } // end of method TlbExpTask::.ctor
 
-    // method line 84
+    // method line 118
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_AssemblyFile ()  cil managed 
     {
-        // Method begins at RVA 0x355c
+        // Method begins at RVA 0x3ef0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3252,11 +4631,11 @@
 	IL_000e:  ret 
     } // end of method TlbExpTask::get_AssemblyFile
 
-    // method line 85
+    // method line 119
     .method public hidebysig specialname 
            instance default void set_AssemblyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x3577
+        // Method begins at RVA 0x3f0b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3266,11 +4645,11 @@
 	IL_0008:  ret 
     } // end of method TlbExpTask::set_AssemblyFile
 
-    // method line 86
+    // method line 120
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
     {
-        // Method begins at RVA 0x3584
+        // Method begins at RVA 0x3f18
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3285,11 +4664,11 @@
 	IL_000e:  ret 
     } // end of method TlbExpTask::get_OutputFile
 
-    // method line 87
+    // method line 121
     .method public hidebysig specialname 
            instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x359f
+        // Method begins at RVA 0x3f33
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3299,11 +4678,11 @@
 	IL_0008:  ret 
     } // end of method TlbExpTask::set_OutputFile
 
-    // method line 88
+    // method line 122
     .method public hidebysig specialname 
            instance default class [mscorlib]System.IO.FileInfo get_NamesFile ()  cil managed 
     {
-        // Method begins at RVA 0x35ac
+        // Method begins at RVA 0x3f40
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -3318,11 +4697,11 @@
 	IL_000e:  ret 
     } // end of method TlbExpTask::get_NamesFile
 
-    // method line 89
+    // method line 123
     .method public hidebysig specialname 
            instance default void set_NamesFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
     {
-        // Method begins at RVA 0x35c7
+        // Method begins at RVA 0x3f5b
 	// Code size 9 (0x9)
 	.maxstack 8
 	IL_0000:  nop 
@@ -3332,11 +4711,11 @@
 	IL_0008:  ret 
     } // end of method TlbExpTask::set_NamesFile
 
-    // method line 90
+    // method line 124
     .method public virtual hidebysig specialname 
            instance default string get_ProgramArguments ()  cil managed 
     {
-        // Method begins at RVA 0x35d4
+        // Method begins at RVA 0x3f68
 	// Code size 40 (0x28)
 	.maxstack 1
 	.locals init (
@@ -3362,11 +4741,11 @@
 	IL_0027:  ret 
     } // end of method TlbExpTask::get_ProgramArguments
 
-    // method line 91
+    // method line 125
     .method family virtual hidebysig 
            instance default void ExecuteTask ()  cil managed 
     {
-        // Method begins at RVA 0x3608
+        // Method begins at RVA 0x3f9c
 	// Code size 210 (0xd2)
 	.maxstack 4
 	IL_0000:  nop 
@@ -3441,11 +4820,11 @@
 	IL_00d1:  ret 
     } // end of method TlbExpTask::ExecuteTask
 
-    // method line 92
+    // method line 126
     .method family virtual hidebysig newslot 
            instance default bool NeedsCompiling ()  cil managed 
     {
-        // Method begins at RVA 0x36e8
+        // Method begins at RVA 0x407c
 	// Code size 219 (0xdb)
 	.maxstack 7
 	.locals init (
@@ -3572,1382 +4951,3 @@
   } // end of class NAnt.Win32.Tasks.TlbExpTask
 }
 
-.namespace NAnt.Win32.Tasks
-{
-  .class public auto ansi beforefieldinit ReadRegistryTask
-  	extends [NAnt.Core]NAnt.Core.Task
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (
-		01 00 0C 72 65 61 64 72 65 67 69 73 74 72 79 00   // ...readregistry.
-		00                                              ) // .
-
-    .field  private  string _propName
-    .field  private  string _propPrefix
-    .field  private  string _regKey
-    .field  private  string _regKeyValueName
-    .field  private  valuetype [mscorlib]Microsoft.Win32.RegistryHive[] _regHive
-    .field  private  string _regHiveString
-
-    // method line 93
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x37d0
-	// Code size 52 (0x34)
-	.maxstack 5
-	.locals init (
-		valuetype [mscorlib]Microsoft.Win32.RegistryHive	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  newarr [mscorlib]Microsoft.Win32.RegistryHive
-	IL_0007:  dup 
-	IL_0008:  ldc.i4.0 
-	IL_0009:  ldc.i4 -2147483646
-	IL_000e:  stelem.i4 
-	IL_000f:  stfld valuetype [mscorlib]Microsoft.Win32.RegistryHive[] NAnt.Win32.Tasks.ReadRegistryTask::_regHive
-	IL_0014:  ldarg.0 
-	IL_0015:  ldc.i4 -2147483646
-	IL_001a:  stloc.0 
-	IL_001b:  ldloca.s 0
-	IL_001d:  constrained. [mscorlib]Microsoft.Win32.RegistryHive
-	IL_0023:  callvirt instance string object::ToString()
-	IL_0028:  stfld string NAnt.Win32.Tasks.ReadRegistryTask::_regHiveString
-	IL_002d:  ldarg.0 
-	IL_002e:  call instance void class [NAnt.Core]NAnt.Core.Task::'.ctor'()
-	IL_0033:  ret 
-    } // end of method ReadRegistryTask::.ctor
-
-    // method line 94
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_PropertyName ()  cil managed 
-    {
-        // Method begins at RVA 0x3810
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_propName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ReadRegistryTask::get_PropertyName
-
-    // method line 95
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_PropertyName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x382b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Win32.Tasks.ReadRegistryTask::_propName
-	IL_0008:  ret 
-    } // end of method ReadRegistryTask::set_PropertyName
-
-    // method line 96
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_PropertyPrefix ()  cil managed 
-    {
-        // Method begins at RVA 0x3838
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_propPrefix
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ReadRegistryTask::get_PropertyPrefix
-
-    // method line 97
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_PropertyPrefix (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3853
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Win32.Tasks.ReadRegistryTask::_propPrefix
-	IL_0008:  ret 
-    } // end of method ReadRegistryTask::set_PropertyPrefix
-
-    // method line 98
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_RegistryKey ()  cil managed 
-    {
-        // Method begins at RVA 0x3860
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKey
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ReadRegistryTask::get_RegistryKey
-
-    // method line 99
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_RegistryKey (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x387c
-	// Code size 96 (0x60)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		string[]	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.1 
-	IL_0004:  ldstr "\\"
-	IL_0009:  callvirt instance bool string::StartsWith(string)
-	IL_000e:  brfalse IL_001d
-
-	IL_0013:  nop 
-	IL_0014:  ldarg.1 
-	IL_0015:  ldc.i4.1 
-	IL_0016:  callvirt instance string string::Substring(int32)
-	IL_001b:  stloc.0 
-	IL_001c:  nop 
-	IL_001d:  ldloc.0 
-	IL_001e:  ldstr "\\"
-	IL_0023:  ldc.i4.0 
-	IL_0024:  ldc.i4.1 
-	IL_0025:  call instance char[] string::ToCharArray(int32, int32)
-	IL_002a:  ldc.i4.0 
-	IL_002b:  ldelem.u2 
-	IL_002c:  ldc.i4.0 
-	IL_002d:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	IL_0032:  stloc.1 
-	IL_0033:  ldarg.0 
-	IL_0034:  ldloc.1 
-	IL_0035:  ldloc.1 
-	IL_0036:  ldlen 
-	IL_0037:  conv.i4 
-	IL_0038:  ldc.i4.1 
-	IL_0039:  sub 
-	IL_003a:  ldelem.ref 
-	IL_003b:  stfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKeyValueName
-	IL_0040:  ldarg.0 
-	IL_0041:  ldloc.0 
-	IL_0042:  ldc.i4.0 
-	IL_0043:  ldarg.1 
-	IL_0044:  callvirt instance int32 string::get_Length()
-	IL_0049:  ldarg.0 
-	IL_004a:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKeyValueName
-	IL_004f:  callvirt instance int32 string::get_Length()
-	IL_0054:  sub 
-	IL_0055:  callvirt instance string string::Substring(int32, int32)
-	IL_005a:  stfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKey
-	IL_005f:  ret 
-    } // end of method ReadRegistryTask::set_RegistryKey
-
-    // method line 100
-    .method public virtual hidebysig newslot specialname 
-           instance default string get_RegistryHiveName ()  cil managed 
-    {
-        // Method begins at RVA 0x38e8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regHiveString
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method ReadRegistryTask::get_RegistryHiveName
-
-    // method line 101
-    .method public virtual hidebysig newslot specialname 
-           instance default void set_RegistryHiveName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3904
-	// Code size 117 (0x75)
-	.maxstack 5
-	.locals init (
-		string[]	V_0,
-		int32	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NAnt.Win32.Tasks.ReadRegistryTask::_regHiveString
-	IL_0008:  ldarg.0 
-	IL_0009:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regHiveString
-	IL_000e:  ldstr " "
-	IL_0013:  call instance char[] string::ToCharArray()
-	IL_0018:  ldc.i4.0 
-	IL_0019:  ldelem.u2 
-	IL_001a:  ldc.i4.0 
-	IL_001b:  callvirt instance string[] string::Split(char, valuetype [mscorlib]System.StringSplitOptions)
-	IL_0020:  stloc.0 
-	IL_0021:  ldarg.0 
-	IL_0022:  ldtoken [mscorlib]Microsoft.Win32.RegistryHive
-	IL_0027:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_002c:  ldloc.0 
-	IL_002d:  ldlen 
-	IL_002e:  conv.i4 
-	IL_002f:  call class [mscorlib]System.Array class [mscorlib]System.Array::CreateInstance(class [mscorlib]System.Type, int32)
-	IL_0034:  castclass valuetype [mscorlib]Microsoft.Win32.RegistryHive[]
-	IL_0039:  stfld valuetype [mscorlib]Microsoft.Win32.RegistryHive[] NAnt.Win32.Tasks.ReadRegistryTask::_regHive
-	IL_003e:  ldc.i4.0 
-	IL_003f:  stloc.1 
-	IL_0040:  br IL_006b
-
-	IL_0045:  nop 
-	IL_0046:  ldarg.0 
-	IL_0047:  ldfld valuetype [mscorlib]Microsoft.Win32.RegistryHive[] NAnt.Win32.Tasks.ReadRegistryTask::_regHive
-	IL_004c:  ldloc.1 
-	IL_004d:  ldtoken [mscorlib]Microsoft.Win32.RegistryHive
-	IL_0052:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	IL_0057:  ldloc.0 
-	IL_0058:  ldloc.1 
-	IL_0059:  ldelem.ref 
-	IL_005a:  ldc.i4.1 
-	IL_005b:  call object class [mscorlib]System.Enum::Parse(class [mscorlib]System.Type, string, bool)
-	IL_0060:  unbox.any [mscorlib]Microsoft.Win32.RegistryHive
-	IL_0065:  stelem.i4 
-	IL_0066:  nop 
-	IL_0067:  ldloc.1 
-	IL_0068:  ldc.i4.1 
-	IL_0069:  add 
-	IL_006a:  stloc.1 
-	IL_006b:  ldloc.1 
-	IL_006c:  ldloc.0 
-	IL_006d:  ldlen 
-	IL_006e:  conv.i4 
-	IL_006f:  blt IL_0045
-
-	IL_0074:  ret 
-    } // end of method ReadRegistryTask::set_RegistryHiveName
-
-    // method line 102
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x3988
-	// Code size 309 (0x135)
-	.maxstack 5
-	.locals init (
-		object	V_0,
-		class [mscorlib]Microsoft.Win32.RegistryKey	V_1,
-		string	V_2,
-		string	V_3,
-		string[]	V_4,
-		int32	V_5)
-	IL_0000:  nop 
-	IL_0001:  ldnull 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKey
-	IL_0009:  brtrue IL_001a
-
-	IL_000e:  nop 
-	IL_000f:  ldstr "Missing registry key!"
-	IL_0014:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	IL_0019:  throw 
-	IL_001a:  ldnull 
-	IL_001b:  stloc.1 
-	IL_001c:  ldarg.0 
-	IL_001d:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_propName
-	IL_0022:  brfalse IL_00a6
-
-	IL_0027:  nop 
-	IL_0028:  ldarg.0 
-	IL_0029:  ldarg.0 
-	IL_002a:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKey
-	IL_002f:  ldarg.0 
-	IL_0030:  ldfld valuetype [mscorlib]Microsoft.Win32.RegistryHive[] NAnt.Win32.Tasks.ReadRegistryTask::_regHive
-	IL_0035:  call instance class [mscorlib]Microsoft.Win32.RegistryKey class NAnt.Win32.Tasks.ReadRegistryTask::LookupRegKey(string, valuetype [mscorlib]Microsoft.Win32.RegistryHive[])
-	IL_003a:  stloc.1 
-	IL_003b:  ldloc.1 
-	IL_003c:  ldarg.0 
-	IL_003d:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKeyValueName
-	IL_0042:  callvirt instance object class [mscorlib]Microsoft.Win32.RegistryKey::GetValue(string)
-	IL_0047:  stloc.0 
-	IL_0048:  ldloc.0 
-	IL_0049:  brfalse IL_006e
-
-	IL_004e:  nop 
-	IL_004f:  ldloc.0 
-	IL_0050:  callvirt instance string object::ToString()
-	IL_0055:  stloc.2 
-	IL_0056:  ldarg.0 
-	IL_0057:  callvirt instance class [NAnt.Core]NAnt.Core.PropertyDictionary class [NAnt.Core]NAnt.Core.Element::get_Properties()
-	IL_005c:  ldarg.0 
-	IL_005d:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_propName
-	IL_0062:  ldloc.2 
-	IL_0063:  callvirt instance void class [NAnt.Core]NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0068:  nop 
-	IL_0069:  br IL_00a0
-
-	IL_006e:  nop 
-	IL_006f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0074:  ldstr "Registry Value Not Found! - key='{0}';hive='{1}';"
-	IL_0079:  ldarg.0 
-	IL_007a:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKey
-	IL_007f:  ldstr "\\"
-	IL_0084:  ldarg.0 
-	IL_0085:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKeyValueName
-	IL_008a:  call string string::Concat(string, string, string)
-	IL_008f:  ldarg.0 
-	IL_0090:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regHiveString
-	IL_0095:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_009a:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	IL_009f:  throw 
-	IL_00a0:  nop 
-	IL_00a1:  br IL_0134
-
-	IL_00a6:  ldarg.0 
-	IL_00a7:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_propName
-	IL_00ac:  brtrue IL_0128
-
-	IL_00b1:  ldarg.0 
-	IL_00b2:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_propPrefix
-	IL_00b7:  brfalse IL_0128
-
-	IL_00bc:  nop 
-	IL_00bd:  ldarg.0 
-	IL_00be:  ldarg.0 
-	IL_00bf:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regKey
-	IL_00c4:  ldarg.0 
-	IL_00c5:  ldfld valuetype [mscorlib]Microsoft.Win32.RegistryHive[] NAnt.Win32.Tasks.ReadRegistryTask::_regHive
-	IL_00ca:  call instance class [mscorlib]Microsoft.Win32.RegistryKey class NAnt.Win32.Tasks.ReadRegistryTask::LookupRegKey(string, valuetype [mscorlib]Microsoft.Win32.RegistryHive[])
-	IL_00cf:  stloc.1 
-	IL_00d0:  nop 
-	IL_00d1:  ldloc.1 
-	IL_00d2:  callvirt instance string[] class [mscorlib]Microsoft.Win32.RegistryKey::GetValueNames()
-	IL_00d7:  stloc.s 4
-	IL_00d9:  ldc.i4.0 
-	IL_00da:  stloc.s 5
-	IL_00dc:  br IL_0117
-
-	IL_00e1:  ldloc.s 4
-	IL_00e3:  ldloc.s 5
-	IL_00e5:  ldelem.ref 
-	IL_00e6:  stloc.3 
-	IL_00e7:  nop 
-	IL_00e8:  ldarg.0 
-	IL_00e9:  callvirt instance class [NAnt.Core]NAnt.Core.PropertyDictionary class [NAnt.Core]NAnt.Core.Element::get_Properties()
-	IL_00ee:  ldarg.0 
-	IL_00ef:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_propPrefix
-	IL_00f4:  ldstr "."
-	IL_00f9:  ldloc.3 
-	IL_00fa:  call string string::Concat(string, string, string)
-	IL_00ff:  ldloc.1 
-	IL_0100:  ldloc.3 
-	IL_0101:  callvirt instance object class [mscorlib]Microsoft.Win32.RegistryKey::GetValue(string)
-	IL_0106:  callvirt instance string object::ToString()
-	IL_010b:  callvirt instance void class [NAnt.Core]NAnt.Core.PropertyDictionary::set_Item(string, string)
-	IL_0110:  nop 
-	IL_0111:  ldloc.s 5
-	IL_0113:  ldc.i4.1 
-	IL_0114:  add 
-	IL_0115:  stloc.s 5
-	IL_0117:  ldloc.s 5
-	IL_0119:  ldloc.s 4
-	IL_011b:  ldlen 
-	IL_011c:  conv.i4 
-	IL_011d:  blt IL_00e1
-
-	IL_0122:  nop 
-	IL_0123:  br IL_0134
-
-	IL_0128:  nop 
-	IL_0129:  ldstr "Missing both a property name and property prefix; atleast one if required!"
-	IL_012e:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	IL_0133:  throw 
-	IL_0134:  ret 
-    } // end of method ReadRegistryTask::ExecuteTask
-
-    // method line 103
-    .method family hidebysig 
-           instance default class [mscorlib]Microsoft.Win32.RegistryKey LookupRegKey (string key, valuetype [mscorlib]Microsoft.Win32.RegistryHive[] registries)  cil managed 
-    {
-        // Method begins at RVA 0x3acc
-	// Code size 133 (0x85)
-	.maxstack 7
-	.locals init (
-		valuetype [mscorlib]Microsoft.Win32.RegistryHive	V_0,
-		valuetype [mscorlib]Microsoft.Win32.RegistryHive[]	V_1,
-		int32	V_2,
-		class [mscorlib]Microsoft.Win32.RegistryKey	V_3,
-		class [mscorlib]Microsoft.Win32.RegistryKey	V_4)
-	IL_0000:  nop 
-	IL_0001:  nop 
-	IL_0002:  ldarg.2 
-	IL_0003:  stloc.1 
-	IL_0004:  ldc.i4.0 
-	IL_0005:  stloc.2 
-	IL_0006:  br IL_005d
-
-	IL_000b:  ldloc.1 
-	IL_000c:  ldloc.2 
-	IL_000d:  ldelem.i4 
-	IL_000e:  stloc.0 
-	IL_000f:  nop 
-	IL_0010:  ldarg.0 
-	IL_0011:  ldc.i4 2000
-	IL_0016:  ldstr "Opening {0}:{1}."
-	IL_001b:  ldc.i4.2 
-	IL_001c:  newarr [mscorlib]System.Object
-	IL_0021:  dup 
-	IL_0022:  ldc.i4.0 
-	IL_0023:  ldloca.s 0
-	IL_0025:  constrained. [mscorlib]Microsoft.Win32.RegistryHive
-	IL_002b:  callvirt instance string object::ToString()
-	IL_0030:  stelem.ref 
-	IL_0031:  dup 
-	IL_0032:  ldc.i4.1 
-	IL_0033:  ldarg.1 
-	IL_0034:  stelem.ref 
-	IL_0035:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_003a:  ldarg.0 
-	IL_003b:  ldloc.0 
-	IL_003c:  call instance class [mscorlib]Microsoft.Win32.RegistryKey class NAnt.Win32.Tasks.ReadRegistryTask::GetHiveKey(valuetype [mscorlib]Microsoft.Win32.RegistryHive)
-	IL_0041:  ldarg.1 
-	IL_0042:  ldc.i4.0 
-	IL_0043:  callvirt instance class [mscorlib]Microsoft.Win32.RegistryKey class [mscorlib]Microsoft.Win32.RegistryKey::OpenSubKey(string, bool)
-	IL_0048:  stloc.3 
-	IL_0049:  ldloc.3 
-	IL_004a:  brfalse IL_0058
-
-	IL_004f:  nop 
-	IL_0050:  ldloc.3 
-	IL_0051:  stloc.s 4
-	IL_0053:  br IL_0082
-
-	IL_0058:  nop 
-	IL_0059:  ldloc.2 
-	IL_005a:  ldc.i4.1 
-	IL_005b:  add 
-	IL_005c:  stloc.2 
-	IL_005d:  ldloc.2 
-	IL_005e:  ldloc.1 
-	IL_005f:  ldlen 
-	IL_0060:  conv.i4 
-	IL_0061:  blt IL_000b
-
-	IL_0066:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_006b:  ldstr "Registry Path Not Found! - key='{0}';hive='{1}';"
-	IL_0070:  ldarg.1 
-	IL_0071:  ldarg.0 
-	IL_0072:  ldfld string NAnt.Win32.Tasks.ReadRegistryTask::_regHiveString
-	IL_0077:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object, object)
-	IL_007c:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string)
-	IL_0081:  throw 
-	IL_0082:  ldloc.s 4
-	IL_0084:  ret 
-    } // end of method ReadRegistryTask::LookupRegKey
-
-    // method line 104
-    .method family hidebysig 
-           instance default class [mscorlib]Microsoft.Win32.RegistryKey GetHiveKey (valuetype [mscorlib]Microsoft.Win32.RegistryHive hive)  cil managed 
-    {
-        // Method begins at RVA 0x3b60
-	// Code size 125 (0x7d)
-	.maxstack 7
-	.locals init (
-		class [mscorlib]Microsoft.Win32.RegistryKey	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldc.i4 -2147483648
-	IL_0007:  add 
-	IL_0008:  switch (
-	  IL_0043,
-	  IL_0038,
-	  IL_0022,
-	  IL_002d)
-	IL_001d:  br IL_004e
-
-	IL_0022:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::LocalMachine
-	IL_0027:  stloc.0 
-	IL_0028:  br IL_007b
-
-	IL_002d:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::Users
-	IL_0032:  stloc.0 
-	IL_0033:  br IL_007b
-
-	IL_0038:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::CurrentUser
-	IL_003d:  stloc.0 
-	IL_003e:  br IL_007b
-
-	IL_0043:  ldsfld class [mscorlib]Microsoft.Win32.RegistryKey [mscorlib]Microsoft.Win32.Registry::ClassesRoot
-	IL_0048:  stloc.0 
-	IL_0049:  br IL_007b
-
-	IL_004e:  ldarg.0 
-	IL_004f:  ldc.i4 2000
-	IL_0054:  ldstr "Registry not found for {0}."
-	IL_0059:  ldc.i4.1 
-	IL_005a:  newarr [mscorlib]System.Object
-	IL_005f:  dup 
-	IL_0060:  ldc.i4.0 
-	IL_0061:  ldarga.s 1
-	IL_0063:  constrained. [mscorlib]Microsoft.Win32.RegistryHive
-	IL_0069:  callvirt instance string object::ToString()
-	IL_006e:  stelem.ref 
-	IL_006f:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0074:  ldnull 
-	IL_0075:  stloc.0 
-	IL_0076:  br IL_007b
-
-	IL_007b:  ldloc.0 
-	IL_007c:  ret 
-    } // end of method ReadRegistryTask::GetHiveKey
-
-	.property instance string PropertyName ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 08 70 72 6F 70 65 72 74 79 00 00 ) // ...property..
-
-		.get instance default string NAnt.Win32.Tasks.ReadRegistryTask::get_PropertyName () 
-		.set instance default void NAnt.Win32.Tasks.ReadRegistryTask::set_PropertyName (string 'value') 
-	}
-	.property instance string PropertyPrefix ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 70 72 65 66 69 78 00 00 ) // ...prefix..
-
-		.get instance default string NAnt.Win32.Tasks.ReadRegistryTask::get_PropertyPrefix () 
-		.set instance default void NAnt.Win32.Tasks.ReadRegistryTask::set_PropertyPrefix (string 'value') 
-	}
-	.property instance string RegistryKey ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 03 6B 65 79 01 00 54 02 08 52 65 71 75 69   // ...key..T..Requi
-		72 65 64 01                                     ) // red.
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.StringValidatorAttribute::'.ctor'() =  (
-		01 00 01 00 54 02 0A 41 6C 6C 6F 77 45 6D 70 74   // ....T..AllowEmpt
-		79 00                                           ) // y.
-
-		.get instance default string NAnt.Win32.Tasks.ReadRegistryTask::get_RegistryKey () 
-		.set instance default void NAnt.Win32.Tasks.ReadRegistryTask::set_RegistryKey (string 'value') 
-	}
-	.property instance string RegistryHiveName ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 04 68 69 76 65 00 00 ) // ...hive..
-
-		.get instance default string NAnt.Win32.Tasks.ReadRegistryTask::get_RegistryHiveName () 
-		.set instance default void NAnt.Win32.Tasks.ReadRegistryTask::set_RegistryHiveName (string 'value') 
-	}
-  } // end of class NAnt.Win32.Tasks.ReadRegistryTask
-}
-
-.namespace NAnt.Win32.Tasks
-{
-  .class public auto ansi beforefieldinit AxImpTask
-  	extends [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase
-  {
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskNameAttribute::'.ctor'(string) =  (01 00 05 61 78 69 6D 70 00 00 ) // ...aximp..
-
-    .custom instance void class [NAnt.Core]NAnt.Core.Attributes.ProgramLocationAttribute::'.ctor'(valuetype [NAnt.Core]NAnt.Core.Attributes.LocationType) =  (01 00 01 00 00 00 00 00 ) // ........
-
-    .field  private  class [mscorlib]System.IO.FileInfo _ocxFile
-    .field  private  class [mscorlib]System.IO.FileInfo _outputFile
-    .field  private  class [mscorlib]System.IO.FileInfo _publicKeyFile
-    .field  private  class [mscorlib]System.IO.FileInfo _keyFile
-    .field  private  class [mscorlib]System.IO.FileInfo _rcwFile
-    .field  private  string _keyContainer
-    .field  private  bool _delaySign
-    .field  private  bool _generateSource
-    .field  private  bool _supportsRcw
-
-    // method line 105
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x3be9
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  ldc.i4.1 
-	IL_0002:  stfld bool NAnt.Win32.Tasks.AxImpTask::_supportsRcw
-	IL_0007:  ldarg.0 
-	IL_0008:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::'.ctor'()
-	IL_000d:  ret 
-    } // end of method AxImpTask::.ctor
-
-    // method line 106
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OcxFile ()  cil managed 
-    {
-        // Method begins at RVA 0x3bf8
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_ocxFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AxImpTask::get_OcxFile
-
-    // method line 107
-    .method public hidebysig specialname 
-           instance default void set_OcxFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3c13
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_ocxFile
-	IL_0008:  ret 
-    } // end of method AxImpTask::set_OcxFile
-
-    // method line 108
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_OutputFile ()  cil managed 
-    {
-        // Method begins at RVA 0x3c20
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_outputFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AxImpTask::get_OutputFile
-
-    // method line 109
-    .method public hidebysig specialname 
-           instance default void set_OutputFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3c3b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_outputFile
-	IL_0008:  ret 
-    } // end of method AxImpTask::set_OutputFile
-
-    // method line 110
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_PublicKeyFile ()  cil managed 
-    {
-        // Method begins at RVA 0x3c48
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_publicKeyFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AxImpTask::get_PublicKeyFile
-
-    // method line 111
-    .method public hidebysig specialname 
-           instance default void set_PublicKeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3c63
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_publicKeyFile
-	IL_0008:  ret 
-    } // end of method AxImpTask::set_PublicKeyFile
-
-    // method line 112
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_KeyFile ()  cil managed 
-    {
-        // Method begins at RVA 0x3c70
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_keyFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AxImpTask::get_KeyFile
-
-    // method line 113
-    .method public hidebysig specialname 
-           instance default void set_KeyFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3c8b
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_keyFile
-	IL_0008:  ret 
-    } // end of method AxImpTask::set_KeyFile
-
-    // method line 114
-    .method public hidebysig specialname 
-           instance default string get_KeyContainer ()  cil managed 
-    {
-        // Method begins at RVA 0x3c98
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NAnt.Win32.Tasks.AxImpTask::_keyContainer
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AxImpTask::get_KeyContainer
-
-    // method line 115
-    .method public hidebysig specialname 
-           instance default void set_KeyContainer (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3cb3
-	// Code size 14 (0xe)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  call string class [NAnt.Core]NAnt.Core.Util.StringUtils::ConvertEmptyToNull(string)
-	IL_0008:  stfld string NAnt.Win32.Tasks.AxImpTask::_keyContainer
-	IL_000d:  ret 
-    } // end of method AxImpTask::set_KeyContainer
-
-    // method line 116
-    .method public hidebysig specialname 
-           instance default bool get_DelaySign ()  cil managed 
-    {
-        // Method begins at RVA 0x3cc4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Win32.Tasks.AxImpTask::_delaySign
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AxImpTask::get_DelaySign
-
-    // method line 117
-    .method public hidebysig specialname 
-           instance default void set_DelaySign (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3cdf
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Win32.Tasks.AxImpTask::_delaySign
-	IL_0008:  ret 
-    } // end of method AxImpTask::set_DelaySign
-
-    // method line 118
-    .method public hidebysig specialname 
-           instance default bool get_GenerateSource ()  cil managed 
-    {
-        // Method begins at RVA 0x3cec
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Win32.Tasks.AxImpTask::_generateSource
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AxImpTask::get_GenerateSource
-
-    // method line 119
-    .method public hidebysig specialname 
-           instance default void set_GenerateSource (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3d07
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Win32.Tasks.AxImpTask::_generateSource
-	IL_0008:  ret 
-    } // end of method AxImpTask::set_GenerateSource
-
-    // method line 120
-    .method public hidebysig specialname 
-           instance default class [mscorlib]System.IO.FileInfo get_RcwFile ()  cil managed 
-    {
-        // Method begins at RVA 0x3d14
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		class [mscorlib]System.IO.FileInfo	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_rcwFile
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AxImpTask::get_RcwFile
-
-    // method line 121
-    .method public hidebysig specialname 
-           instance default void set_RcwFile (class [mscorlib]System.IO.FileInfo 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3d2f
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::_rcwFile
-	IL_0008:  ret 
-    } // end of method AxImpTask::set_RcwFile
-
-    // method line 122
-    .method public hidebysig specialname 
-           instance default bool get_SupportsRcw ()  cil managed 
-    {
-        // Method begins at RVA 0x3d3c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NAnt.Win32.Tasks.AxImpTask::_supportsRcw
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method AxImpTask::get_SupportsRcw
-
-    // method line 123
-    .method public hidebysig specialname 
-           instance default void set_SupportsRcw (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3d57
-	// Code size 9 (0x9)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NAnt.Win32.Tasks.AxImpTask::_supportsRcw
-	IL_0008:  ret 
-    } // end of method AxImpTask::set_SupportsRcw
-
-    // method line 124
-    .method public virtual hidebysig specialname 
-           instance default string get_ProgramArguments ()  cil managed 
-    {
-        // Method begins at RVA 0x3d64
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldstr ""
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method AxImpTask::get_ProgramArguments
-
-    // method line 125
-    .method family virtual hidebysig 
-           instance default void ExecuteTask ()  cil managed 
-    {
-        // Method begins at RVA 0x3d80
-	// Code size 576 (0x240)
-	.maxstack 7
-	.locals init (
-		class [mscorlib]System.Exception	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4 3000
-	IL_0007:  ldstr "Generating Windows Forms Control wrapping '{0}'."
-	IL_000c:  ldc.i4.1 
-	IL_000d:  newarr [mscorlib]System.Object
-	IL_0012:  dup 
-	IL_0013:  ldc.i4.0 
-	IL_0014:  ldarg.0 
-	IL_0015:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OcxFile()
-	IL_001a:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_001f:  stelem.ref 
-	IL_0020:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0025:  ldarg.0 
-	IL_0026:  callvirt instance bool class NAnt.Win32.Tasks.AxImpTask::NeedsCompiling()
-	IL_002b:  brtrue IL_0036
-
-	IL_0030:  nop 
-	IL_0031:  br IL_023f
-
-	IL_0036:  ldarg.0 
-	IL_0037:  call instance bool class NAnt.Win32.Tasks.AxImpTask::get_DelaySign()
-	IL_003c:  brfalse IL_0059
-
-	IL_0041:  nop 
-	IL_0042:  ldarg.0 
-	IL_0043:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_0048:  ldstr "/delaysign"
-	IL_004d:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0052:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	IL_0057:  pop 
-	IL_0058:  nop 
-	IL_0059:  ldarg.0 
-	IL_005a:  call instance bool class NAnt.Win32.Tasks.AxImpTask::get_GenerateSource()
-	IL_005f:  brfalse IL_007c
-
-	IL_0064:  nop 
-	IL_0065:  ldarg.0 
-	IL_0066:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_006b:  ldstr "/source"
-	IL_0070:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0075:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	IL_007a:  pop 
-	IL_007b:  nop 
-	IL_007c:  ldarg.0 
-	IL_007d:  callvirt instance bool class [NAnt.Core]NAnt.Core.Task::get_Verbose()
-	IL_0082:  brfalse IL_00a4
-
-	IL_0087:  nop 
-	IL_0088:  ldarg.0 
-	IL_0089:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_008e:  ldstr "/verbose"
-	IL_0093:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0098:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	IL_009d:  pop 
-	IL_009e:  nop 
-	IL_009f:  br IL_00bc
-
-	IL_00a4:  nop 
-	IL_00a5:  ldarg.0 
-	IL_00a6:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_00ab:  ldstr "/silent"
-	IL_00b0:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_00b5:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	IL_00ba:  pop 
-	IL_00bb:  nop 
-	IL_00bc:  ldarg.0 
-	IL_00bd:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
-	IL_00c2:  brfalse IL_00f4
-
-	IL_00c7:  nop 
-	IL_00c8:  ldarg.0 
-	IL_00c9:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_00ce:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_00d3:  ldstr "/out:\"{0}\""
-	IL_00d8:  ldarg.0 
-	IL_00d9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
-	IL_00de:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00e3:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_00e8:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_00ed:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	IL_00f2:  pop 
-	IL_00f3:  nop 
-	IL_00f4:  ldarg.0 
-	IL_00f5:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_PublicKeyFile()
-	IL_00fa:  brfalse IL_012c
-
-	IL_00ff:  nop 
-	IL_0100:  ldarg.0 
-	IL_0101:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_0106:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_010b:  ldstr "/publickey:\"{0}\""
-	IL_0110:  ldarg.0 
-	IL_0111:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_PublicKeyFile()
-	IL_0116:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_011b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0120:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0125:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	IL_012a:  pop 
-	IL_012b:  nop 
-	IL_012c:  ldarg.0 
-	IL_012d:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_KeyFile()
-	IL_0132:  brfalse IL_0164
-
-	IL_0137:  nop 
-	IL_0138:  ldarg.0 
-	IL_0139:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_013e:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0143:  ldstr "/keyfile:\"{0}\""
-	IL_0148:  ldarg.0 
-	IL_0149:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_KeyFile()
-	IL_014e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0153:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0158:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_015d:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	IL_0162:  pop 
-	IL_0163:  nop 
-	IL_0164:  ldarg.0 
-	IL_0165:  call instance string class NAnt.Win32.Tasks.AxImpTask::get_KeyContainer()
-	IL_016a:  brfalse IL_0197
-
-	IL_016f:  nop 
-	IL_0170:  ldarg.0 
-	IL_0171:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_0176:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_017b:  ldstr "/keycontainer:\"{0}\""
-	IL_0180:  ldarg.0 
-	IL_0181:  call instance string class NAnt.Win32.Tasks.AxImpTask::get_KeyContainer()
-	IL_0186:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_018b:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_0190:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	IL_0195:  pop 
-	IL_0196:  nop 
-	IL_0197:  ldarg.0 
-	IL_0198:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_RcwFile()
-	IL_019d:  brfalse IL_01dc
-
-	IL_01a2:  nop 
-	IL_01a3:  ldarg.0 
-	IL_01a4:  call instance bool class NAnt.Win32.Tasks.AxImpTask::get_SupportsRcw()
-	IL_01a9:  brfalse IL_01db
-
-	IL_01ae:  nop 
-	IL_01af:  ldarg.0 
-	IL_01b0:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_01b5:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_01ba:  ldstr "/rcw:\"{0}\""
-	IL_01bf:  ldarg.0 
-	IL_01c0:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_RcwFile()
-	IL_01c5:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_01ca:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_01cf:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_01d4:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	IL_01d9:  pop 
-	IL_01da:  nop 
-	IL_01db:  nop 
-	IL_01dc:  ldarg.0 
-	IL_01dd:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_01e2:  ldstr "/nologo"
-	IL_01e7:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(string)
-	IL_01ec:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	IL_01f1:  pop 
-	IL_01f2:  ldarg.0 
-	IL_01f3:  callvirt instance class [NAnt.Core]NAnt.Core.Types.ArgumentCollection class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::get_Arguments()
-	IL_01f8:  ldarg.0 
-	IL_01f9:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OcxFile()
-	IL_01fe:  newobj instance void class [NAnt.Core]NAnt.Core.Types.Argument::'.ctor'(class [mscorlib]System.IO.FileInfo)
-	IL_0203:  callvirt instance int32 class [NAnt.Core]NAnt.Core.Types.ArgumentCollection::Add(class [NAnt.Core]NAnt.Core.Types.Argument)
-	IL_0208:  pop 
-	.try { // 0
-	  IL_0209:  nop 
-	  IL_020a:  ldarg.0 
-	  IL_020b:  call instance void class [NAnt.Core]NAnt.Core.Tasks.ExternalProgramBase::ExecuteTask()
-	  IL_0210:  nop 
-	  IL_0211:  leave IL_023f
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_0216:  stloc.0 
-	  IL_0217:  nop 
-	  IL_0218:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	  IL_021d:  ldstr "Error importing ActiveX control from '{0}'."
-	  IL_0222:  ldarg.0 
-	  IL_0223:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OcxFile()
-	  IL_0228:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	  IL_022d:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	  IL_0232:  ldarg.0 
-	  IL_0233:  callvirt instance class [NAnt.Core]NAnt.Core.Location class [NAnt.Core]NAnt.Core.Element::get_Location()
-	  IL_0238:  ldloc.0 
-	  IL_0239:  newobj instance void class [NAnt.Core]NAnt.Core.BuildException::'.ctor'(string, class [NAnt.Core]NAnt.Core.Location, class [mscorlib]System.Exception)
-	  IL_023e:  throw 
-	} // end handler 0
-	IL_023f:  ret 
-    } // end of method AxImpTask::ExecuteTask
-
-    // method line 126
-    .method family virtual hidebysig newslot 
-           instance default bool NeedsCompiling ()  cil managed 
-    {
-        // Method begins at RVA 0x3fdc
-	// Code size 381 (0x17d)
-	.maxstack 7
-	.locals init (
-		bool	V_0,
-		string	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
-	IL_0007:  callvirt instance bool class [mscorlib]System.IO.FileSystemInfo::get_Exists()
-	IL_000c:  brtrue IL_003d
-
-	IL_0011:  nop 
-	IL_0012:  ldarg.0 
-	IL_0013:  ldc.i4 2000
-	IL_0018:  ldstr "Output file '{0}' does not exist, recompiling."
-	IL_001d:  ldc.i4.1 
-	IL_001e:  newarr [mscorlib]System.Object
-	IL_0023:  dup 
-	IL_0024:  ldc.i4.0 
-	IL_0025:  ldarg.0 
-	IL_0026:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
-	IL_002b:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0030:  stelem.ref 
-	IL_0031:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_0036:  ldc.i4.1 
-	IL_0037:  stloc.0 
-	IL_0038:  br IL_017b
-
-	IL_003d:  ldarg.0 
-	IL_003e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OcxFile()
-	IL_0043:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0048:  ldarg.0 
-	IL_0049:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
-	IL_004e:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0053:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_0058:  stloc.1 
-	IL_0059:  ldloc.1 
-	IL_005a:  brfalse IL_0081
-
-	IL_005f:  nop 
-	IL_0060:  ldarg.0 
-	IL_0061:  ldc.i4 2000
-	IL_0066:  ldstr "'{0}' has been updated, recompiling."
-	IL_006b:  ldc.i4.1 
-	IL_006c:  newarr [mscorlib]System.Object
-	IL_0071:  dup 
-	IL_0072:  ldc.i4.0 
-	IL_0073:  ldloc.1 
-	IL_0074:  stelem.ref 
-	IL_0075:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_007a:  ldc.i4.1 
-	IL_007b:  stloc.0 
-	IL_007c:  br IL_017b
-
-	IL_0081:  ldarg.0 
-	IL_0082:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_PublicKeyFile()
-	IL_0087:  brfalse IL_00d2
-
-	IL_008c:  nop 
-	IL_008d:  ldarg.0 
-	IL_008e:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_PublicKeyFile()
-	IL_0093:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_0098:  ldarg.0 
-	IL_0099:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
-	IL_009e:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_00a3:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_00a8:  stloc.1 
-	IL_00a9:  ldloc.1 
-	IL_00aa:  brfalse IL_00d1
-
-	IL_00af:  nop 
-	IL_00b0:  ldarg.0 
-	IL_00b1:  ldc.i4 2000
-	IL_00b6:  ldstr "'{0}' has been updated, recompiling."
-	IL_00bb:  ldc.i4.1 
-	IL_00bc:  newarr [mscorlib]System.Object
-	IL_00c1:  dup 
-	IL_00c2:  ldc.i4.0 
-	IL_00c3:  ldloc.1 
-	IL_00c4:  stelem.ref 
-	IL_00c5:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_00ca:  ldc.i4.1 
-	IL_00cb:  stloc.0 
-	IL_00cc:  br IL_017b
-
-	IL_00d1:  nop 
-	IL_00d2:  ldarg.0 
-	IL_00d3:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_KeyFile()
-	IL_00d8:  brfalse IL_0123
-
-	IL_00dd:  nop 
-	IL_00de:  ldarg.0 
-	IL_00df:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_KeyFile()
-	IL_00e4:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_00e9:  ldarg.0 
-	IL_00ea:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
-	IL_00ef:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_00f4:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_00f9:  stloc.1 
-	IL_00fa:  ldloc.1 
-	IL_00fb:  brfalse IL_0122
-
-	IL_0100:  nop 
-	IL_0101:  ldarg.0 
-	IL_0102:  ldc.i4 2000
-	IL_0107:  ldstr "'{0}' has been updated, recompiling."
-	IL_010c:  ldc.i4.1 
-	IL_010d:  newarr [mscorlib]System.Object
-	IL_0112:  dup 
-	IL_0113:  ldc.i4.0 
-	IL_0114:  ldloc.1 
-	IL_0115:  stelem.ref 
-	IL_0116:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_011b:  ldc.i4.1 
-	IL_011c:  stloc.0 
-	IL_011d:  br IL_017b
-
-	IL_0122:  nop 
-	IL_0123:  ldarg.0 
-	IL_0124:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_RcwFile()
-	IL_0129:  brfalse IL_0174
-
-	IL_012e:  nop 
-	IL_012f:  ldarg.0 
-	IL_0130:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_RcwFile()
-	IL_0135:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
-	IL_013a:  ldarg.0 
-	IL_013b:  call instance class [mscorlib]System.IO.FileInfo class NAnt.Win32.Tasks.AxImpTask::get_OutputFile()
-	IL_0140:  callvirt instance valuetype [mscorlib]System.DateTime class [mscorlib]System.IO.FileSystemInfo::get_LastWriteTime()
-	IL_0145:  call string class [NAnt.Core]NAnt.Core.Types.FileSet::FindMoreRecentLastWriteTime(string, valuetype [mscorlib]System.DateTime)
-	IL_014a:  stloc.1 
-	IL_014b:  ldloc.1 
-	IL_014c:  brfalse IL_0173
-
-	IL_0151:  nop 
-	IL_0152:  ldarg.0 
-	IL_0153:  ldc.i4 2000
-	IL_0158:  ldstr "'{0}' has been updated, recompiling."
-	IL_015d:  ldc.i4.1 
-	IL_015e:  newarr [mscorlib]System.Object
-	IL_0163:  dup 
-	IL_0164:  ldc.i4.0 
-	IL_0165:  ldloc.1 
-	IL_0166:  stelem.ref 
-	IL_0167:  callvirt instance void class [NAnt.Core]NAnt.Core.Element::Log(valuetype [NAnt.Core]NAnt.Core.Level, string, object[])
-	IL_016c:  ldc.i4.1 
-	IL_016d:  stloc.0 
-	IL_016e:  br IL_017b
-
-	IL_0173:  nop 
-	IL_0174:  ldc.i4.0 
-	IL_0175:  stloc.0 
-	IL_0176:  br IL_017b
-
-	IL_017b:  ldloc.0 
-	IL_017c:  ret 
-    } // end of method AxImpTask::NeedsCompiling
-
-	.property instance class [mscorlib]System.IO.FileInfo OcxFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 03 6F 63 78 01 00 54 02 08 52 65 71 75 69   // ...ocx..T..Requi
-		72 65 64 01                                     ) // red.
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::get_OcxFile () 
-		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_OcxFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo OutputFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 06 6F 75 74 70 75 74 00 00 ) // ...output..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::get_OutputFile () 
-		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_OutputFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo PublicKeyFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 70 75 62 6C 69 63 6B 65 79 00 00 ) // ...publickey..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::get_PublicKeyFile () 
-		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_PublicKeyFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo KeyFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 07 6B 65 79 66 69 6C 65 00 00 ) // ...keyfile..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::get_KeyFile () 
-		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_KeyFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance string KeyContainer ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0C 6B 65 79 63 6F 6E 74 61 69 6E 65 72 00   // ...keycontainer.
-		00                                              ) // .
-
-		.get instance default string NAnt.Win32.Tasks.AxImpTask::get_KeyContainer () 
-		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_KeyContainer (string 'value') 
-	}
-	.property instance bool DelaySign ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 09 64 65 6C 61 79 73 69 67 6E 00 00 ) // ...delaysign..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Win32.Tasks.AxImpTask::get_DelaySign () 
-		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_DelaySign (bool 'value') 
-	}
-	.property instance bool GenerateSource ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (
-		01 00 0E 67 65 6E 65 72 61 74 65 73 6F 75 72 63   // ...generatesourc
-		65 00 00                                        ) // e..
-
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.BooleanValidatorAttribute::'.ctor'() =  (01 00 00 00 ) // ....
-
-		.get instance default bool NAnt.Win32.Tasks.AxImpTask::get_GenerateSource () 
-		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_GenerateSource (bool 'value') 
-	}
-	.property instance class [mscorlib]System.IO.FileInfo RcwFile ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.TaskAttributeAttribute::'.ctor'(string) =  (01 00 03 72 63 77 00 00 ) // ...rcw..
-
-		.get instance default class [mscorlib]System.IO.FileInfo NAnt.Win32.Tasks.AxImpTask::get_RcwFile () 
-		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_RcwFile (class [mscorlib]System.IO.FileInfo 'value') 
-	}
-	.property instance bool SupportsRcw ()
-	{
-		.custom instance void class [NAnt.Core]NAnt.Core.Attributes.FrameworkConfigurableAttribute::'.ctor'(string) =  (
-		01 00 0B 73 75 70 70 6F 72 74 73 72 63 77 00 00 ) // ...supportsrcw..
-
-		.get instance default bool NAnt.Win32.Tasks.AxImpTask::get_SupportsRcw () 
-		.set instance default void NAnt.Win32.Tasks.AxImpTask::set_SupportsRcw (bool 'value') 
-	}
-	.property instance string ProgramArguments ()
-	{
-		.get instance default string NAnt.Win32.Tasks.AxImpTask::get_ProgramArguments () 
-	}
-  } // end of class NAnt.Win32.Tasks.AxImpTask
-}
-
/usr/share/NAnt/bin/NAnt.Win32Tasks.xml differs (XML 1.0 document, ASCII text)
--- old//usr/share/NAnt/bin/NAnt.Win32Tasks.xml	2018-06-14 00:00:00.000000000 +0000
+++ new//usr/share/NAnt/bin/NAnt.Win32Tasks.xml	2018-06-14 00:00:00.000000000 +0000
@@ -73,6 +73,363 @@
              <param name="stream"></param>
              <returns></returns>
             </member>
+        <member name="T:NAnt.Win32.Tasks.MonoRegistryTask">
+             <summary>
+             Reads the mono registry path into a NAnt property.
+             </summary>
+             <remarks>
+             The mono registry keyes can exist in one of two places depending on the platform. This
+             task will check to see which registry path that Mono is using.
+             </remarks>
+             <example>
+               <code>
+                 <![CDATA[
+             <monoregistry property="mono.reg" />
+                 ]]>
+               </code>
+             </example>
+            </member>
+        <member name="F:NAnt.Win32.Tasks.MonoRegistryTask._defaultRegKey">
+             <summary>
+             The Mono reg key to default to if none of the keys in _regKeys are found
+             in the running machine.
+             </summary>
+            </member>
+        <member name="F:NAnt.Win32.Tasks.MonoRegistryTask._propName">
+             <summary>
+             Private property name to assign the Mono registry path to.
+             </summary>
+            </member>
+        <member name="F:NAnt.Win32.Tasks.MonoRegistryTask._regKeys">
+             <summary>
+             Private array of Mono registry paths to test in order.
+             </summary>
+             <remarks>
+             If new registry paths are used by the Mono team, add them to this array.
+             </remarks>
+            </member>
+        <member name="P:NAnt.Win32.Tasks.MonoRegistryTask.PropertyName">
+             <summary>
+             <para>
+             The property to set to the Mono registry path.
+             </para>
+             </summary>
+            </member>
+        <member name="M:NAnt.Win32.Tasks.MonoRegistryTask.ExecuteTask">
+             <summary>
+             Locates the appropriate Mono registry path to use.
+             </summary>
+            </member>
+        <member name="T:NAnt.Win32.Tasks.AxImpTask">
+             <summary>
+             Generates a Windows Forms Control that wraps ActiveX Controls defined 
+             in an OCX.
+             </summary>
+             <example>
+               <code>
+                 <![CDATA[
+             <aximp ocx="MyControl.ocx" output="MyFormsControl.dll" />
+                 ]]>
+               </code>
+             </example>
+            </member>
+        <member name="P:NAnt.Win32.Tasks.AxImpTask.OcxFile">
+             <summary>
+             Filename of the .ocx file.
+             </summary>
+            </member>
+        <member name="P:NAnt.Win32.Tasks.AxImpTask.OutputFile">
+             <summary>
+             Filename of the generated assembly.
+             </summary>
+            </member>
+        <member name="P:NAnt.Win32.Tasks.AxImpTask.PublicKeyFile">
+             <summary>
+             Specifies the file containing the public key to use to sign the 
+             resulting assembly.
+             </summary>
+             <value>
+             The file containing the public key to use to sign the resulting
+             assembly.
+             </value>
+            </member>
+        <member name="P:NAnt.Win32.Tasks.AxImpTask.KeyFile">
+             <summary>
+             Specifies the publisher's official public/private key pair with which 
+             the resulting assembly should be signed with a strong name.
+             </summary>
+             <value>
+             The keyfile to use to sign the resulting assembly with a strong name.
+             </value>
+             <remarks><a href="ms-help://MS.NETFrameworkSDK/cptools/html/cpgrftypelibraryimportertlbimpexe.htm">See the Microsoft.NET Framework SDK documentation for details.</a></remarks>
+            </member>
+        <member name="P:NAnt.Win32.Tasks.AxImpTask.KeyContainer">
+             <summary>
+             Specifies the key container in which the public/private key pair 
+             should be found that should be used to sign the resulting assembly
+             with a strong name.
+             </summary>
+             <value>
+             The key container containing a public/private key pair that should
+             be used to sign the resulting assembly.
+             </value>
+            </member>
+        <member name="P:NAnt.Win32.Tasks.AxImpTask.DelaySign">
+             <summary>
+             Specifies to sign the resulting control using delayed signing.
+             </summary>
+            </member>
+        <member name="P:NAnt.Win32.Tasks.AxImpTask.GenerateSource">
+             <summary>
+             Determines whether C# source code for the Windows Form wrapper should 
+             be generated. The default is <see langword="false" />.
+             </summary>
+            </member>
+        <member name="P:NAnt.Win32.Tasks.AxImpTask.RcwFile">
+             <summary>
+             Assembly to use for Runtime Callable Wrapper rather than generating 
+             new one [.NET 1.1 or higher].
+             </summary>
+            </member>
+        <member name="P:NAnt.Win32.Tasks.AxImpTask.SupportsRcw">
+             <summary>
+             Indicates whether <c>aximp</c> supports using an existing Runtime
+             Callable Wrapper for a given target framework. The default is 
+             <see langword="true" />.
+             </summary>
+            </member>
+        <member name="P:NAnt.Win32.Tasks.AxImpTask.ProgramArguments">
+             <summary>
+             Gets the command-line arguments for the external program.
+             </summary>
+             <value>
+             The command-line arguments for the external program.
+             </value>
+            </member>
+        <member name="M:NAnt.Win32.Tasks.AxImpTask.ExecuteTask">
+             <summary>
+             Import the ActiveX control.
+             </summary>
+            </member>
+        <member name="M:NAnt.Win32.Tasks.AxImpTask.NeedsCompiling">
+             <summary>
+             Determines whether the assembly needs to be created again.
+             </summary>
+             <returns>
+             <see langword="true" /> if the assembly needs to be created again; 
+             otherwise, <see langword="false" />.
+             </returns>
+            </member>
+        <member name="T:NAnt.Win32.Tasks.RegAsmTask">
+             <summary>
+             Registers an assembly, or set of assemblies for use from COM clients.
+             </summary>
+             <remarks>
+               <para>
+               Refer to the <see href="ms-help://MS.VSCC/MS.MSDNVS/cptools/html/cpgrfassemblyregistrationtoolregasmexe.htm">Regasm</see> 
+               documentation for more information on the regasm tool.
+               </para>
+             </remarks>
+             <example>
+               <para>
+               Register types in a single assembly.
+               </para>
+               <code>
+                 <![CDATA[
+             <regasm assembly="myAssembly.dll" />
+                 ]]>
+               </code>
+             </example>
+             <example>
+               <para>
+               Register types of an assembly and generate a type library containing
+               definitions of accessible types defined within the assembly.
+               </para>
+               <code>
+                 <![CDATA[
+             <regasm assembly="myAssembly.dll" typelib="myAssembly.tlb" />
+                 ]]>
+               </code>
+             </example>
+             <example>
+               <para>
+               Register types of set of assemblies at once, while specifying a set
+               of reference assemblies.
+               </para>
+               <code>
+                 <![CDATA[
+             <regasm codebase="true">
+                 <assemblies>
+                     <include name="OutlookAddin.dll" />
+                     <include name="OfficeCoreAddin.dll" />
+                 </assemblies>
+                 <references>
+                     <include name="CommonTypes.dll" />
+                 </references>
+             </regasm>
PE32 Mono/.Net assembly: /usr/share/NAnt/bin/NDoc.Documenter.NAnt.dll
/usr/share/NAnt/bin/NDoc.Documenter.NAnt.dll differs (PE32 executable (DLL) (console) Intel 80386, Mono/.Net assembly, for MS Windows)
--- old /usr/share/NAnt/bin/NDoc.Documenter.NAnt.dll (monodis)
+++ new /usr/share/NAnt/bin/NDoc.Documenter.NAnt.dll (monodis)
@@ -1,9 +1,9 @@
-.assembly extern System
+.assembly extern System.Xml
 {
   .ver 4:0:0:0
   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
 }
-.assembly extern System.Xml
+.assembly extern System
 {
   .ver 4:0:0:0
   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
@@ -69,10 +69,16 @@
   .hash algorithm 0x00008004
   .ver  0:93:1:0
 }
-.mresource public 'Documenter.xslt.task-index.xslt'
+.mresource public 'Documenter.xslt.type-doc.xslt'
 {
 }
-.mresource public 'Documenter.xslt.nant-attributes.xslt'
+.mresource public 'Documenter.xslt.filter-index.xslt'
+{
+}
+.mresource public 'Documenter.xslt.function-doc.xslt'
+{
+}
+.mresource public 'Documenter.xslt.type-index.xslt'
 {
 }
 .mresource public 'Documenter.xslt.common.xslt'
@@ -81,23 +87,1678 @@
 .mresource public 'Documenter.xslt.function-index.xslt'
 {
 }
-.mresource public 'Documenter.xslt.type-doc.xslt'
+.mresource public 'Documenter.xslt.task-index.xslt'
 {
 }
-.mresource public 'Documenter.xslt.tags.xslt'
+.mresource public 'Documenter.xslt.nant-attributes.xslt'
 {
 }
-.mresource public 'Documenter.xslt.function-doc.xslt'
+.mresource public 'Documenter.xslt.tags.xslt'
 {
 }
-.mresource public 'Documenter.xslt.type-index.xslt'
+.module NDoc.Documenter.NAnt.dll // GUID = { 42 }
+
+
+.namespace NDoc.Documenter.NAnt
 {
+  .class public auto ansi beforefieldinit NAntDocumenter
+  	extends [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenter
+  {
+    .field  private  class [System.Xml]System.Xml.Xsl.XslCompiledTransform _xsltTaskIndex
+    .field  private  class [System.Xml]System.Xml.Xsl.XslCompiledTransform _xsltTypeIndex
+    .field  private  class [System.Xml]System.Xml.Xsl.XslCompiledTransform _xsltFunctionIndex
+    .field  private  class [System.Xml]System.Xml.Xsl.XslCompiledTransform _xsltFilterIndex
+    .field  private  class [System.Xml]System.Xml.Xsl.XslCompiledTransform _xsltTypeDoc
+    .field  private  class [System.Xml]System.Xml.Xsl.XslCompiledTransform _xsltFunctionDoc
+    .field  private  class [System.Xml]System.Xml.XmlDocument _xmlDocumentation
+    .field  private  string _resourceDirectory
+    .field  private  class [System]System.Collections.Specialized.StringDictionary _writtenFiles
+
+    // method line 1
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2050
+	// Code size 30 (0x1e)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringDictionary::'.ctor'()
+	IL_0006:  stfld class [System]System.Collections.Specialized.StringDictionary NDoc.Documenter.NAnt.NAntDocumenter::_writtenFiles
+	IL_000b:  ldarg.0 
+	IL_000c:  ldstr "NAnt"
+	IL_0011:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenter::.ctor(string)
+	IL_0016:  nop 
+	IL_0017:  ldarg.0 
+	IL_0018:  callvirt instance void [NDoc.Core]NDoc.Core.BaseDocumenter::Clear()
+	IL_001d:  ret 
+    } // end of method NAntDocumenter::.ctor
+
+    // method line 2
+    .method public hidebysig specialname 
+           instance default string get_OutputDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x2070
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance <BROKEN CLASS token_ 1000007 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.> [NDoc.Core]NDoc.Core.BaseDocumenter::get_Config()
+	IL_0007:  castclass NDoc.Documenter.NAnt.NAntDocumenterConfig
+	IL_000c:  callvirt instance string()
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method NAntDocumenter::get_OutputDirectory
+
+    // method line 3
+    .method public hidebysig specialname 
+           instance default string get_NamespaceFilter ()  cil managed 
+    {
+        // Method begins at RVA 0x2098
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance <BROKEN CLASS token_ 1000007 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.> [NDoc.Core]NDoc.Core.BaseDocumenter::get_Config()
+	IL_0007:  castclass NDoc.Documenter.NAnt.NAntDocumenterConfig
+	IL_000c:  callvirt instance string class NDoc.Documenter.NAnt.NAntDocumenterConfig::get_NamespaceFilter()
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method NAntDocumenter::get_NamespaceFilter
+
+    // method line 4
+    .method public hidebysig specialname 
+           instance default string get_ProductName ()  cil managed 
+    {
+        // Method begins at RVA 0x20c0
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance <BROKEN CLASS token_ 1000007 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.> [NDoc.Core]NDoc.Core.BaseDocumenter::get_Config()
+	IL_0007:  castclass NDoc.Documenter.NAnt.NAntDocumenterConfig
+	IL_000c:  callvirt instance string class NDoc.Documenter.NAnt.NAntDocumenterConfig::get_ProductName()
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method NAntDocumenter::get_ProductName
+
+    // method line 5
+    .method public hidebysig specialname 
+           instance default string get_ProductVersion ()  cil managed 
+    {
+        // Method begins at RVA 0x20e8
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance <BROKEN CLASS token_ 1000007 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.> [NDoc.Core]NDoc.Core.BaseDocumenter::get_Config()
+	IL_0007:  castclass NDoc.Documenter.NAnt.NAntDocumenterConfig
+	IL_000c:  callvirt instance string class NDoc.Documenter.NAnt.NAntDocumenterConfig::get_ProductVersion()
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method NAntDocumenter::get_ProductVersion
+
+    // method line 6
+    .method public hidebysig specialname 
+           instance default string get_ProductUrl ()  cil managed 
+    {
+        // Method begins at RVA 0x2110
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance <BROKEN CLASS token_ 1000007 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.> [NDoc.Core]NDoc.Core.BaseDocumenter::get_Config()
+	IL_0007:  castclass NDoc.Documenter.NAnt.NAntDocumenterConfig
+	IL_000c:  callvirt instance string class NDoc.Documenter.NAnt.NAntDocumenterConfig::get_ProductUrl()
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method NAntDocumenter::get_ProductUrl
+
+    // method line 7
+    .method public virtual hidebysig specialname 
+           instance default string get_MainOutputFile ()  cil managed 
+    {
+        // Method begins at RVA 0x2138
+	// Code size 14 (0xe)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldstr ""
+	IL_0006:  stloc.0 
+	IL_0007:  br IL_000c
+
+	IL_000c:  ldloc.0 
+	IL_000d:  ret 
+    } // end of method NAntDocumenter::get_MainOutputFile
+
+    // method line 8
+    .method public virtual hidebysig 
+           instance default void Clear ()  cil managed 
+    {
+        // Method begins at RVA 0x2152
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NDoc.Documenter.NAnt.NAntDocumenterConfig::'.ctor'()
+	IL_0007:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::set_Config(<BROKEN CLASS token_ 1000007 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.>)
+	IL_000c:  ret 
+    } // end of method NAntDocumenter::Clear
+
+    // method line 9
+    .method public virtual hidebysig 
+           (null) cil managed 
+    {
+        // Method begins at RVA 0x2160
+	// Code size 865 (0x361)
+	.maxstack 4
+	.locals init (
+		int32	V_0,
+		class [mscorlib]System.Reflection.Assembly	V_1,
+		class [mscorlib]System.Exception	V_2,
+		string	V_3,
+		class [mscorlib]System.IO.FileStream	V_4,
+		class [System.Xml]System.Xml.Xsl.XsltArgumentList	V_5,
+		class NDoc.Documenter.NAnt.NAntXsltUtilities	V_6,
+		class [System.Xml]System.Xml.XmlNodeList	V_7,
+		class [System.Xml]System.Xml.XmlNode	V_8,
+		class [mscorlib]System.Collections.IEnumerator	V_9,
+		valuetype NDoc.Documenter.NAnt.ElementDocType	V_10,
+		class [mscorlib]System.IDisposable	V_11,
+		class [System.Xml]System.Xml.XmlNodeList	V_12,
+		class [System.Xml]System.Xml.XmlElement	V_13,
+		class [mscorlib]System.Collections.IEnumerator	V_14,
+		class [mscorlib]System.IDisposable	V_15)
+	IL_0000:  nop 
+	IL_0001:  ldc.i4.0 
+	IL_0002:  stloc.0 
+	IL_0003:  ldarg.0 
+	IL_0004:  ldloc.0 
+	IL_0005:  ldstr "Initializing..."
+	IL_000a:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
+	IL_000f:  ldarg.0 
+	IL_0010:  ldc.i4.s 0x1a
+	IL_0012:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
+	IL_0017:  ldstr "NDoc"
+	IL_001c:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0021:  ldstr "NAnt"
+	IL_0026:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_002b:  stfld string NDoc.Documenter.NAnt.NAntDocumenter::_resourceDirectory
+	IL_0030:  ldarg.0 
+	IL_0031:  call instance class [mscorlib]System.Type object::GetType()
+	IL_0036:  callvirt instance class [mscorlib]System.Reflection.Module class [mscorlib]System.Type::get_Module()
+	IL_003b:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Module::get_Assembly()
+	IL_0040:  stloc.1 
+	IL_0041:  ldloc.1 
+	IL_0042:  ldstr "Documenter.xslt"
+	IL_0047:  ldarg.0 
+	IL_0048:  ldfld string NDoc.Documenter.NAnt.NAntDocumenter::_resourceDirectory
+	IL_004d:  ldstr "xslt"
+	IL_0052:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0057:  call void [NDoc.Core]NDoc.Core.EmbeddedResources::WriteEmbeddedResources(class [mscorlib]System.Reflection.Assembly, string, string)
+	.try { // 0
+	  IL_005c:  nop 
+	  IL_005d:  ldarg.0 
+	  IL_005e:  call instance string()
+	  IL_0063:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	  IL_0068:  pop 
+	  IL_0069:  ldarg.0 
+	  IL_006a:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory()
+	  IL_006f:  ldstr "elements"
+	  IL_0074:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_0079:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	  IL_007e:  pop 
+	  IL_007f:  ldarg.0 
+	  IL_0080:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory()
+	  IL_0085:  ldstr "functions"
+	  IL_008a:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_008f:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	  IL_0094:  pop 
+	  IL_0095:  ldarg.0 
+	  IL_0096:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory()
+	  IL_009b:  ldstr "types"
+	  IL_00a0:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_00a5:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	  IL_00aa:  pop 
+	  IL_00ab:  ldarg.0 
+	  IL_00ac:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory()
+	  IL_00b1:  ldstr "tasks"
+	  IL_00b6:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_00bb:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	  IL_00c0:  pop 
+	  IL_00c1:  ldarg.0 
+	  IL_00c2:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory()
+	  IL_00c7:  ldstr "enums"
+	  IL_00cc:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_00d1:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	  IL_00d6:  pop 
+	  IL_00d7:  ldarg.0 
+	  IL_00d8:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory()
+	  IL_00dd:  ldstr "filters"
+	  IL_00e2:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	  IL_00e7:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
+	  IL_00ec:  pop 
+	  IL_00ed:  nop 
+	  IL_00ee:  leave IL_0101
+
+	} // end .try 0
+	catch class [mscorlib]System.Exception { // 0
+	  IL_00f3:  stloc.2 
+	  IL_00f4:  nop 
+	  IL_00f5:  ldstr "The output directories could not be created."
+	  IL_00fa:  ldloc.2 
+	  IL_00fb:  newobj instance void [NDoc.Core]NDoc.Core.DocumenterException::.ctor(string, class [mscorlib]System.Exception)
+	  IL_0100:  throw 
+	} // end handler 0
+	IL_0101:  ldloc.0 
+	IL_0102:  ldc.i4.s 0x0a
+	IL_0104:  add 
+	IL_0105:  stloc.0 
+	IL_0106:  ldarg.0 
+	IL_0107:  ldloc.0 
+	IL_0108:  ldstr "Merging XML documentation..."
+	IL_010d:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
+	IL_0112:  ldarg.0 
+	IL_0113:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::MakeTransforms()
+	IL_0118:  ldnull 
+	IL_0119:  stloc.3 
+	.try { // 2
+	  IL_011a:  nop 
+	  IL_011b:  call string class [mscorlib]System.IO.Path::GetTempFileName()
+	  IL_0120:  stloc.3 
+	  IL_0121:  ldarg.0 
+	  IL_0122:  ldarg.1 
+	  IL_0123:  ldloc.3 
+	  IL_0124:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenter::MakeXmlFile(<BROKEN CLASS token_ 1000014 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.>, string)
+	  IL_0129:  ldloc.3 
+	  IL_012a:  ldc.i4.3 
+	  IL_012b:  ldc.i4.1 
+	  IL_012c:  ldc.i4.1 
+	  IL_012d:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode, valuetype [mscorlib]System.IO.FileAccess, valuetype [mscorlib]System.IO.FileShare)
+	  IL_0132:  stloc.s 4
+	  .try { // 1
+	    IL_0134:  nop 
+	    IL_0135:  ldarg.0 
+	    IL_0136:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
+	    IL_013b:  stfld class [System.Xml]System.Xml.XmlDocument NDoc.Documenter.NAnt.NAntDocumenter::_xmlDocumentation
+	    IL_0140:  ldarg.0 
+	    IL_0141:  ldfld class [System.Xml]System.Xml.XmlDocument NDoc.Documenter.NAnt.NAntDocumenter::_xmlDocumentation
+	    IL_0146:  ldloc.s 4
+	    IL_0148:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(class [mscorlib]System.IO.Stream)
+	    IL_014d:  nop 
+	    IL_014e:  leave IL_0162
+
+	  } // end .try 1
+	  finally  { // 1
+	    IL_0153:  ldloc.s 4
+	    IL_0155:  brfalse IL_0161
+
+	    IL_015a:  ldloc.s 4
+	    IL_015c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	    IL_0161:  endfinally 
+	  } // end handler 1
+	  IL_0162:  nop 
+	  IL_0163:  leave IL_0179
+
+	} // end .try 2
+	finally  { // 2
+	  IL_0168:  nop 
+	  IL_0169:  ldloc.3 
+	  IL_016a:  brfalse IL_0177
+
+	  IL_016f:  nop 
+	  IL_0170:  ldloc.3 
+	  IL_0171:  call void class [mscorlib]System.IO.File::Delete(string)
+	  IL_0176:  nop 
+	  IL_0177:  nop 
+	  IL_0178:  endfinally 
+	} // end handler 2
+	IL_0179:  ldloc.0 
+	IL_017a:  ldc.i4.s 0x0f
+	IL_017c:  add 
+	IL_017d:  stloc.0 
+	IL_017e:  ldarg.0 
+	IL_017f:  ldloc.0 
+	IL_0180:  ldstr "Building mapping..."
+	IL_0185:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
+	IL_018a:  ldarg.0 
+	IL_018b:  call instance class [System.Xml]System.Xml.Xsl.XsltArgumentList class NDoc.Documenter.NAnt.NAntDocumenter::CreateXsltArgumentList()
+	IL_0190:  stloc.s 5
+	IL_0192:  ldarg.0 
+	IL_0193:  ldfld class [System.Xml]System.Xml.XmlDocument NDoc.Documenter.NAnt.NAntDocumenter::_xmlDocumentation
+	IL_0198:  ldarg.0 
+	IL_0199:  call instance <BROKEN CLASS token_ 1000007 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.> [NDoc.Core]NDoc.Core.BaseDocumenter::get_Config()
+	IL_019e:  castclass NDoc.Documenter.NAnt.NAntDocumenterConfig
+	IL_01a3:  call class NDoc.Documenter.NAnt.NAntXsltUtilities class NDoc.Documenter.NAnt.NAntXsltUtilities::CreateInstance(class [System.Xml]System.Xml.XmlDocument, class NDoc.Documenter.NAnt.NAntDocumenterConfig)
+	IL_01a8:  stloc.s 6
+	IL_01aa:  ldloc.s 5
+	IL_01ac:  ldstr "urn:NAntUtil"
+	IL_01b1:  ldloc.s 6
+	IL_01b3:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddExtensionObject(string, object)
+	IL_01b8:  ldloc.0 
+	IL_01b9:  ldc.i4.s 0x0f
+	IL_01bb:  add 
+	IL_01bc:  stloc.0 
+	IL_01bd:  ldarg.0 
+	IL_01be:  ldloc.0 
+	IL_01bf:  ldstr "Creating Task Index Page..."
+	IL_01c4:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
+	IL_01c9:  ldarg.0 
+	IL_01ca:  ldarg.0 
+	IL_01cb:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTaskIndex
+	IL_01d0:  ldloc.s 5
+	IL_01d2:  ldstr "tasks/index.html"
+	IL_01d7:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::TransformAndWriteResult(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, class [System.Xml]System.Xml.Xsl.XsltArgumentList, string)
+	IL_01dc:  ldloc.0 
+	IL_01dd:  ldc.i4.s 0x0a
+	IL_01df:  add 
+	IL_01e0:  stloc.0 
+	IL_01e1:  ldarg.0 
+	IL_01e2:  ldloc.0 
+	IL_01e3:  ldstr "Creating Type Index Page..."
+	IL_01e8:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
+	IL_01ed:  ldarg.0 
+	IL_01ee:  ldarg.0 
+	IL_01ef:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTypeIndex
+	IL_01f4:  ldloc.s 5
+	IL_01f6:  ldstr "types/index.html"
+	IL_01fb:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::TransformAndWriteResult(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, class [System.Xml]System.Xml.Xsl.XsltArgumentList, string)
+	IL_0200:  ldloc.0 
+	IL_0201:  ldc.i4.s 0x0a
+	IL_0203:  add 
+	IL_0204:  stloc.0 
+	IL_0205:  ldarg.0 
+	IL_0206:  ldloc.0 
+	IL_0207:  ldstr "Creating Filter Index Page..."
+	IL_020c:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
+	IL_0211:  ldarg.0 
+	IL_0212:  ldarg.0 
+	IL_0213:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFilterIndex
+	IL_0218:  ldloc.s 5
+	IL_021a:  ldstr "filters/index.html"
+	IL_021f:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::TransformAndWriteResult(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, class [System.Xml]System.Xml.Xsl.XsltArgumentList, string)
+	IL_0224:  ldarg.0 
+	IL_0225:  ldloc.0 
+	IL_0226:  ldstr "Creating Function Index Page..."
+	IL_022b:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
+	IL_0230:  ldarg.0 
+	IL_0231:  ldarg.0 
+	IL_0232:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFunctionIndex
+	IL_0237:  ldloc.s 5
+	IL_0239:  ldstr "functions/index.html"
+	IL_023e:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::TransformAndWriteResult(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, class [System.Xml]System.Xml.Xsl.XsltArgumentList, string)
+	IL_0243:  ldloc.0 
+	IL_0244:  ldc.i4.s 0x0a
+	IL_0246:  add 
+	IL_0247:  stloc.0 
+	IL_0248:  ldarg.0 
+	IL_0249:  ldloc.0 
+	IL_024a:  ldstr "Generating Task Documents..."
+	IL_024f:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
+	IL_0254:  ldarg.0 
+	IL_0255:  ldfld class [System.Xml]System.Xml.XmlDocument NDoc.Documenter.NAnt.NAntDocumenter::_xmlDocumentation
+	IL_025a:  ldstr "//class[starts-with(substring(@id, 3, string-length(@id) - 2), '"
+	IL_025f:  ldarg.0 
+	IL_0260:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_NamespaceFilter()
+	IL_0265:  ldstr "')]"
+	IL_026a:  call string string::Concat(string, string, string)
+	IL_026f:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
+	IL_0274:  stloc.s 7
+	IL_0276:  nop 
+	IL_0277:  ldloc.s 7
+	IL_0279:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_027e:  stloc.s 9
+	.try { // 3
+	  IL_0280:  br IL_02ac
+
+	  IL_0285:  ldloc.s 9
+	  IL_0287:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_028c:  castclass [System.Xml]System.Xml.XmlNode
+	  IL_0291:  stloc.s 8
+	  IL_0293:  nop 
+	  IL_0294:  ldloc.s 6
+	  IL_0296:  ldloc.s 8
+	  IL_0298:  callvirt instance valuetype NDoc.Documenter.NAnt.ElementDocType class NDoc.Documenter.NAnt.NAntXsltUtilities::GetElementDocType(class [System.Xml]System.Xml.XmlNode)
+	  IL_029d:  stloc.s 10
+	  IL_029f:  ldarg.0 
+	  IL_02a0:  ldloc.s 8
+	  IL_02a2:  ldloc.s 10
+	  IL_02a4:  ldloc.s 6
+	  IL_02a6:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::DocumentType(class [System.Xml]System.Xml.XmlNode, valuetype NDoc.Documenter.NAnt.ElementDocType, class NDoc.Documenter.NAnt.NAntXsltUtilities)
+	  IL_02ab:  nop 
+	  IL_02ac:  ldloc.s 9
+	  IL_02ae:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_02b3:  brtrue IL_0285
+
+	  IL_02b8:  leave IL_02d4
+
+	} // end .try 3
+	finally  { // 3
+	  IL_02bd:  ldloc.s 9
+	  IL_02bf:  isinst [mscorlib]System.IDisposable
+	  IL_02c4:  dup 
+	  IL_02c5:  stloc.s 11
+	  IL_02c7:  brfalse IL_02d3
+
+	  IL_02cc:  ldloc.s 11
+	  IL_02ce:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_02d3:  endfinally 
+	} // end handler 3
+	IL_02d4:  ldarg.0 
+	IL_02d5:  ldloc.0 
+	IL_02d6:  ldstr "Generating Function Documents..."
+	IL_02db:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
+	IL_02e0:  ldarg.0 
+	IL_02e1:  ldfld class [System.Xml]System.Xml.XmlDocument NDoc.Documenter.NAnt.NAntDocumenter::_xmlDocumentation
+	IL_02e6:  ldstr "//method[attribute/@name = 'NAnt.Core.Attributes.FunctionAttribute' and ancestor::class[starts-with(substring(@id, 3, string-length(@id) - 2), '"
+	IL_02eb:  ldarg.0 
+	IL_02ec:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_NamespaceFilter()
+	IL_02f1:  ldstr "')]]"
+	IL_02f6:  call string string::Concat(string, string, string)
+	IL_02fb:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
+	IL_0300:  stloc.s 12
+	IL_0302:  nop 
+	IL_0303:  ldloc.s 12
+	IL_0305:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_030a:  stloc.s 14
+	.try { // 4
+	  IL_030c:  br IL_032b
+
+	  IL_0311:  ldloc.s 14
+	  IL_0313:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_0318:  castclass [System.Xml]System.Xml.XmlElement
+	  IL_031d:  stloc.s 13
+	  IL_031f:  nop 
+	  IL_0320:  ldarg.0 
+	  IL_0321:  ldloc.s 13
+	  IL_0323:  ldloc.s 6
+	  IL_0325:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::DocumentFunction(class [System.Xml]System.Xml.XmlElement, class NDoc.Documenter.NAnt.NAntXsltUtilities)
+	  IL_032a:  nop 
+	  IL_032b:  ldloc.s 14
+	  IL_032d:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_0332:  brtrue IL_0311
+
+	  IL_0337:  leave IL_0353
+
+	} // end .try 4
+	finally  { // 4
+	  IL_033c:  ldloc.s 14
+	  IL_033e:  isinst [mscorlib]System.IDisposable
+	  IL_0343:  dup 
+	  IL_0344:  stloc.s 15
+	  IL_0346:  brfalse IL_0352
+
+	  IL_034b:  ldloc.s 15
+	  IL_034d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_0352:  endfinally 
+	} // end handler 4
+	IL_0353:  ldarg.0 
+	IL_0354:  ldc.i4.s 0x64
+	IL_0356:  ldstr "Complete"
+	IL_035b:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
+	IL_0360:  ret 
+    } // end of method NAntDocumenter::<NULL METHOD SIGNATURE>
+
+    // method line 10
+    .method private hidebysig 
+           instance default void DocumentType (class [System.Xml]System.Xml.XmlNode typeNode, valuetype NDoc.Documenter.NAnt.ElementDocType docType, class NDoc.Documenter.NAnt.NAntXsltUtilities utilities)  cil managed 
+    {
+        // Method begins at RVA 0x2510
+	// Code size 733 (0x2dd)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		string	V_1,
+		class [System.Xml]System.Xml.Xsl.XsltArgumentList	V_2,
+		string	V_3,
+		class [System.Xml]System.Xml.XmlNode	V_4,
+		class [mscorlib]System.Collections.IEnumerator	V_5,
+		string	V_6,
+		string	V_7,
+		class [System.Xml]System.Xml.XmlNode	V_8,
+		class [System.Xml]System.Xml.XmlAttribute	V_9,
+		class [System.Xml]System.Xml.XmlNode	V_10,
+		class [System.Xml]System.Xml.XmlNode	V_11,
+		valuetype NDoc.Documenter.NAnt.ElementDocType	V_12,
+		class [mscorlib]System.IDisposable	V_13)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
+
+	IL_0007:  nop 
+	IL_0008:  ldstr "typeNode"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.2 
+	IL_0014:  brfalse IL_0020
+
+	IL_0019:  ldarg.2 
+	IL_001a:  ldc.i4.6 
+	IL_001b:  bne.un IL_0026
+
+	IL_0020:  nop 
+	IL_0021:  br IL_02dc
+
+	IL_0026:  ldarg.1 
+	IL_0027:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_002c:  ldstr "id"
+	IL_0031:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_0036:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_003b:  stloc.0 
+	IL_003c:  ldloc.0 
+	IL_003d:  ldc.i4.2 
+	IL_003e:  callvirt instance string string::Substring(int32)
+	IL_0043:  ldarg.0 
+	IL_0044:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_NamespaceFilter()
+	IL_0049:  callvirt instance bool string::StartsWith(string)
+	IL_004e:  brtrue IL_0059
+
+	IL_0053:  nop 
+	IL_0054:  br IL_02dc
+
+	IL_0059:  ldarg.3 
+	IL_005a:  ldarg.1 
+	IL_005b:  ldc.i4.0 
+	IL_005c:  callvirt instance string class NDoc.Documenter.NAnt.NAntXsltUtilities::GetFileNameForType(class [System.Xml]System.Xml.XmlNode, bool)
+	IL_0061:  stloc.1 
+	IL_0062:  ldloc.1 
+	IL_0063:  brtrue IL_006e
+
+	IL_0068:  nop 
+	IL_0069:  br IL_02dc
+
+	IL_006e:  ldarg.0 
+	IL_006f:  ldfld class [System]System.Collections.Specialized.StringDictionary NDoc.Documenter.NAnt.NAntDocumenter::_writtenFiles
+	IL_0074:  ldloc.0 
+	IL_0075:  callvirt instance bool class [System]System.Collections.Specialized.StringDictionary::ContainsValue(string)
+	IL_007a:  brfalse IL_0085
+
+	IL_007f:  nop 
+	IL_0080:  br IL_02dc
+
+	IL_0085:  nop 
+	IL_0086:  ldarg.0 
+	IL_0087:  ldfld class [System]System.Collections.Specialized.StringDictionary NDoc.Documenter.NAnt.NAntDocumenter::_writtenFiles
+	IL_008c:  ldloc.1 
+	IL_008d:  ldloc.0 
+	IL_008e:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::Add(string, string)
+	IL_0093:  nop 
+	IL_0094:  ldarg.0 
+	IL_0095:  call instance class [System.Xml]System.Xml.Xsl.XsltArgumentList class NDoc.Documenter.NAnt.NAntDocumenter::CreateXsltArgumentList()
+	IL_009a:  stloc.2 
+	IL_009b:  ldloc.2 
+	IL_009c:  ldstr "class-id"
+	IL_00a1:  ldsfld string [mscorlib]System.String::Empty
+	IL_00a6:  ldloc.0 
+	IL_00a7:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
+	IL_00ac:  ldarg.2 
+	IL_00ad:  ldc.i4.1 
+	IL_00ae:  sub 
+	IL_00af:  switch (
+	  IL_00e3,
+	  IL_00cd,
+	  IL_00d8,
+	  IL_00ee,
+	  IL_00f9)
+	IL_00c8:  br IL_0104
+
+	IL_00cd:  ldstr "Type"
+	IL_00d2:  stloc.3 
+	IL_00d3:  br IL_010f
+
+	IL_00d8:  ldstr "Element"
+	IL_00dd:  stloc.3 
+	IL_00de:  br IL_010f
+
+	IL_00e3:  ldstr "Task"
+	IL_00e8:  stloc.3 
+	IL_00e9:  br IL_010f
+
+	IL_00ee:  ldstr "Enum"
+	IL_00f3:  stloc.3 
+	IL_00f4:  br IL_010f
+
+	IL_00f9:  ldstr "Filter"
+	IL_00fe:  stloc.3 
+	IL_00ff:  br IL_010f
+
+	IL_0104:  ldstr "Other?"
+	IL_0109:  stloc.3 
+	IL_010a:  br IL_010f
+
+	IL_010f:  ldloc.2 
+	IL_0110:  ldstr "refType"
+	IL_0115:  ldsfld string [mscorlib]System.String::Empty
+	IL_011a:  ldloc.3 
+	IL_011b:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
+	IL_0120:  ldloc.2 
+	IL_0121:  ldstr "urn:NAntUtil"
+	IL_0126:  ldarg.3 
+	IL_0127:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddExtensionObject(string, object)
+	IL_012c:  nop 
+	IL_012d:  ldarg.1 
+	IL_012e:  ldstr "property[attribute]"
+	IL_0133:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
+	IL_0138:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_013d:  stloc.s 5
+	.try { // 0
+	  IL_013f:  br IL_02a6
+
+	  IL_0144:  ldloc.s 5
+	  IL_0146:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_014b:  castclass [System.Xml]System.Xml.XmlNode
+	  IL_0150:  stloc.s 4
+	  IL_0152:  nop 
+	  IL_0153:  ldarg.3 
+	  IL_0154:  ldloc.s 4
+	  IL_0156:  callvirt instance string class NDoc.Documenter.NAnt.NAntXsltUtilities::GetElementNameForProperty(class [System.Xml]System.Xml.XmlNode)
+	  IL_015b:  stloc.s 6
+	  IL_015d:  ldloc.s 6
+	  IL_015f:  brfalse IL_02a5
+
+	  IL_0164:  nop 
+	  IL_0165:  ldstr "T:"
+	  IL_016a:  ldloc.s 4
+	  IL_016c:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	  IL_0171:  ldstr "type"
+	  IL_0176:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	  IL_017b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	  IL_0180:  ldstr "[]"
+	  IL_0185:  ldstr ""
+	  IL_018a:  callvirt instance string string::Replace(string, string)
+	  IL_018f:  call string string::Concat(string, string)
+	  IL_0194:  stloc.s 7
+	  IL_0196:  ldloc.s 4
+	  IL_0198:  ldstr "attribute[@name='"
+	  IL_019d:  ldtoken [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute
+	  IL_01a2:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_01a7:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	  IL_01ac:  ldstr "']"
+	  IL_01b1:  call string string::Concat(string, string, string)
+	  IL_01b6:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	  IL_01bb:  stloc.s 8
+	  IL_01bd:  ldloc.s 8
+	  IL_01bf:  brtrue IL_01ed
+
+	  IL_01c4:  nop 
+	  IL_01c5:  ldloc.s 4
+	  IL_01c7:  ldstr "attribute[@name='"
+	  IL_01cc:  ldtoken [NAnt.Core]NAnt.Core.Attributes.BuildElementCollectionAttribute
+	  IL_01d1:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	  IL_01d6:  callvirt instance string class [mscorlib]System.Type::get_FullName()
+	  IL_01db:  ldstr "']"
+	  IL_01e0:  call string string::Concat(string, string, string)
+	  IL_01e5:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	  IL_01ea:  stloc.s 8
+	  IL_01ec:  nop 
+	  IL_01ed:  ldloc.s 8
+	  IL_01ef:  brfalse IL_0273
+
+	  IL_01f4:  nop 
+	  IL_01f5:  ldarg.0 
+	  IL_01f6:  ldfld class [System.Xml]System.Xml.XmlDocument NDoc.Documenter.NAnt.NAntDocumenter::_xmlDocumentation
+	  IL_01fb:  ldstr "//class[@id='"
+	  IL_0200:  ldloc.s 7
+	  IL_0202:  ldstr "']/method[@name='Add']/parameter/@type"
+	  IL_0207:  call string string::Concat(string, string, string)
+	  IL_020c:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	  IL_0211:  isinst [System.Xml]System.Xml.XmlAttribute
+	  IL_0216:  stloc.s 9
+	  IL_0218:  ldloc.s 9
+	  IL_021a:  brfalse IL_0234
+
+	  IL_021f:  nop 
+	  IL_0220:  ldstr "T:"
+	  IL_0225:  ldloc.s 9
+	  IL_0227:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	  IL_022c:  call string string::Concat(string, string)
+	  IL_0231:  stloc.s 7
+	  IL_0233:  nop 
+	  IL_0234:  ldloc.s 4
+	  IL_0236:  ldstr "attribute/property[@ElementType]"
+	  IL_023b:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
+	  IL_0240:  stloc.s 10
+	  IL_0242:  ldloc.s 10
+	  IL_0244:  brfalse IL_0272
+
+	  IL_0249:  nop 
+	  IL_024a:  ldloc.s 10
+	  IL_024c:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	  IL_0251:  ldstr "value"
+	  IL_0256:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	  IL_025b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	  IL_0260:  ldstr "+"
+	  IL_0265:  ldstr "."
+	  IL_026a:  callvirt instance string string::Replace(string, string)
+	  IL_026f:  stloc.s 7
+	  IL_0271:  nop 
+	  IL_0272:  nop 
+	  IL_0273:  ldarg.3 
+	  IL_0274:  ldloc.s 7
+	  IL_0276:  callvirt instance class [System.Xml]System.Xml.XmlNode class NDoc.Documenter.NAnt.NAntXsltUtilities::GetTypeNodeByID(string)
+	  IL_027b:  stloc.s 11
+	  IL_027d:  ldloc.s 11
+	  IL_027f:  brfalse IL_02a4
+
+	  IL_0284:  nop 
+	  IL_0285:  ldarg.3 
+	  IL_0286:  ldloc.s 11
+	  IL_0288:  callvirt instance valuetype NDoc.Documenter.NAnt.ElementDocType class NDoc.Documenter.NAnt.NAntXsltUtilities::GetElementDocType(class [System.Xml]System.Xml.XmlNode)
+	  IL_028d:  stloc.s 12
+	  IL_028f:  ldloc.s 12
+	  IL_0291:  brfalse IL_02a3
+
+	  IL_0296:  nop 
+	  IL_0297:  ldarg.0 
+	  IL_0298:  ldloc.s 11
+	  IL_029a:  ldloc.s 12
+	  IL_029c:  ldarg.3 
+	  IL_029d:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::DocumentType(class [System.Xml]System.Xml.XmlNode, valuetype NDoc.Documenter.NAnt.ElementDocType, class NDoc.Documenter.NAnt.NAntXsltUtilities)
+	  IL_02a2:  nop 
+	  IL_02a3:  nop 
+	  IL_02a4:  nop 
+	  IL_02a5:  nop 
+	  IL_02a6:  ldloc.s 5
+	  IL_02a8:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_02ad:  brtrue IL_0144
+
+	  IL_02b2:  leave IL_02ce
+
+	} // end .try 0
+	finally  { // 0
+	  IL_02b7:  ldloc.s 5
+	  IL_02b9:  isinst [mscorlib]System.IDisposable
+	  IL_02be:  dup 
+	  IL_02bf:  stloc.s 13
+	  IL_02c1:  brfalse IL_02cd
+
+	  IL_02c6:  ldloc.s 13
+	  IL_02c8:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_02cd:  endfinally 
+	} // end handler 0
+	IL_02ce:  ldarg.0 
+	IL_02cf:  ldarg.0 
+	IL_02d0:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTypeDoc
+	IL_02d5:  ldloc.2 
+	IL_02d6:  ldloc.1 
+	IL_02d7:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::TransformAndWriteResult(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, class [System.Xml]System.Xml.Xsl.XsltArgumentList, string)
+	IL_02dc:  ret 
+    } // end of method NAntDocumenter::DocumentType
+
+    // method line 11
+    .method private hidebysig 
+           instance default void DocumentFunction (class [System.Xml]System.Xml.XmlElement functionElement, class NDoc.Documenter.NAnt.NAntXsltUtilities utilities)  cil managed 
+    {
+        // Method begins at RVA 0x2818
+	// Code size 380 (0x17c)
+	.maxstack 5
+	.locals init (
+		string	V_0,
+		string	V_1,
+		class [System.Xml]System.Xml.Xsl.XsltArgumentList	V_2,
+		class [System.Xml]System.Xml.XmlAttribute	V_3,
+		class [mscorlib]System.Collections.IEnumerator	V_4,
+		string	V_5,
+		class [System.Xml]System.Xml.XmlNode	V_6,
+		valuetype NDoc.Documenter.NAnt.ElementDocType	V_7,
+		class [mscorlib]System.IDisposable	V_8,
+		class [System.Xml]System.Xml.XmlAttribute	V_9,
+		string	V_10,
+		class [System.Xml]System.Xml.XmlNode	V_11,
+		valuetype NDoc.Documenter.NAnt.ElementDocType	V_12)
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  brtrue IL_0013
+
+	IL_0007:  nop 
+	IL_0008:  ldstr "functionElement"
+	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
+	IL_0012:  throw 
+	IL_0013:  ldarg.1 
+	IL_0014:  ldstr "id"
+	IL_0019:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_001e:  stloc.0 
+	IL_001f:  ldarg.2 
+	IL_0020:  ldarg.1 
+	IL_0021:  ldc.i4.0 
+	IL_0022:  callvirt instance string class NDoc.Documenter.NAnt.NAntXsltUtilities::GetFileNameForFunction(class [System.Xml]System.Xml.XmlNode, bool)
+	IL_0027:  stloc.1 
+	IL_0028:  ldarg.0 
+	IL_0029:  call instance class [System.Xml]System.Xml.Xsl.XsltArgumentList class NDoc.Documenter.NAnt.NAntDocumenter::CreateXsltArgumentList()
+	IL_002e:  stloc.2 
+	IL_002f:  ldloc.2 
+	IL_0030:  ldstr "method-id"
+	IL_0035:  ldsfld string [mscorlib]System.String::Empty
+	IL_003a:  ldloc.0 
+	IL_003b:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
+	IL_0040:  ldloc.2 
+	IL_0041:  ldstr "refType"
+	IL_0046:  ldsfld string [mscorlib]System.String::Empty
+	IL_004b:  ldstr "Function"
+	IL_0050:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
+	IL_0055:  ldloc.2 
+	IL_0056:  ldstr "functionName"
+	IL_005b:  ldsfld string [mscorlib]System.String::Empty
+	IL_0060:  ldarg.1 
+	IL_0061:  ldstr "name"
+	IL_0066:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
+	IL_006b:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
+	IL_0070:  ldloc.2 
+	IL_0071:  ldstr "urn:NAntUtil"
+	IL_0076:  ldarg.2 
+	IL_0077:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddExtensionObject(string, object)
+	IL_007c:  nop 
+	IL_007d:  ldarg.1 
+	IL_007e:  ldstr "parameter/@type"
+	IL_0083:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
+	IL_0088:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
+	IL_008d:  stloc.s 4
+	.try { // 0
+	  IL_008f:  br IL_00e6
+
+	  IL_0094:  ldloc.s 4
+	  IL_0096:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	  IL_009b:  castclass [System.Xml]System.Xml.XmlAttribute
+	  IL_00a0:  stloc.3 
+	  IL_00a1:  nop 
+	  IL_00a2:  ldstr "T:"
+	  IL_00a7:  ldloc.3 
+	  IL_00a8:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	  IL_00ad:  call string string::Concat(string, string)
+	  IL_00b2:  stloc.s 5
+	  IL_00b4:  ldarg.2 
+	  IL_00b5:  ldloc.s 5
+	  IL_00b7:  callvirt instance class [System.Xml]System.Xml.XmlNode class NDoc.Documenter.NAnt.NAntXsltUtilities::GetTypeNodeByID(string)
+	  IL_00bc:  stloc.s 6
+	  IL_00be:  ldloc.s 6
+	  IL_00c0:  brfalse IL_00e5
+
+	  IL_00c5:  nop 
+	  IL_00c6:  ldarg.2 
+	  IL_00c7:  ldloc.s 6
+	  IL_00c9:  callvirt instance valuetype NDoc.Documenter.NAnt.ElementDocType class NDoc.Documenter.NAnt.NAntXsltUtilities::GetElementDocType(class [System.Xml]System.Xml.XmlNode)
+	  IL_00ce:  stloc.s 7
+	  IL_00d0:  ldloc.s 7
+	  IL_00d2:  brfalse IL_00e4
+
+	  IL_00d7:  nop 
+	  IL_00d8:  ldarg.0 
+	  IL_00d9:  ldloc.s 6
+	  IL_00db:  ldloc.s 7
+	  IL_00dd:  ldarg.2 
+	  IL_00de:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::DocumentType(class [System.Xml]System.Xml.XmlNode, valuetype NDoc.Documenter.NAnt.ElementDocType, class NDoc.Documenter.NAnt.NAntXsltUtilities)
+	  IL_00e3:  nop 
+	  IL_00e4:  nop 
+	  IL_00e5:  nop 
+	  IL_00e6:  ldloc.s 4
+	  IL_00e8:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	  IL_00ed:  brtrue IL_0094
+
+	  IL_00f2:  leave IL_010e
+
+	} // end .try 0
+	finally  { // 0
+	  IL_00f7:  ldloc.s 4
+	  IL_00f9:  isinst [mscorlib]System.IDisposable
+	  IL_00fe:  dup 
+	  IL_00ff:  stloc.s 8
+	  IL_0101:  brfalse IL_010d
+
+	  IL_0106:  ldloc.s 8
+	  IL_0108:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_010d:  endfinally 
+	} // end handler 0
+	IL_010e:  ldarg.1 
+	IL_010f:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
+	IL_0114:  ldstr "returnType"
+	IL_0119:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
+	IL_011e:  stloc.s 9
+	IL_0120:  ldloc.s 9
+	IL_0122:  brfalse IL_016d
+
+	IL_0127:  nop 
+	IL_0128:  ldstr "T:"
+	IL_012d:  ldloc.s 9
+	IL_012f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
+	IL_0134:  call string string::Concat(string, string)
+	IL_0139:  stloc.s 10
+	IL_013b:  ldarg.2 
+	IL_013c:  ldloc.s 10
+	IL_013e:  callvirt instance class [System.Xml]System.Xml.XmlNode class NDoc.Documenter.NAnt.NAntXsltUtilities::GetTypeNodeByID(string)
+	IL_0143:  stloc.s 11
+	IL_0145:  ldloc.s 11
+	IL_0147:  brfalse IL_016c
+
+	IL_014c:  nop 
+	IL_014d:  ldarg.2 
+	IL_014e:  ldloc.s 11
+	IL_0150:  callvirt instance valuetype NDoc.Documenter.NAnt.ElementDocType class NDoc.Documenter.NAnt.NAntXsltUtilities::GetElementDocType(class [System.Xml]System.Xml.XmlNode)
+	IL_0155:  stloc.s 12
+	IL_0157:  ldloc.s 12
+	IL_0159:  brfalse IL_016b
+
+	IL_015e:  nop 
+	IL_015f:  ldarg.0 
+	IL_0160:  ldloc.s 11
+	IL_0162:  ldloc.s 12
+	IL_0164:  ldarg.2 
+	IL_0165:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::DocumentType(class [System.Xml]System.Xml.XmlNode, valuetype NDoc.Documenter.NAnt.ElementDocType, class NDoc.Documenter.NAnt.NAntXsltUtilities)
+	IL_016a:  nop 
+	IL_016b:  nop 
+	IL_016c:  nop 
+	IL_016d:  ldarg.0 
+	IL_016e:  ldarg.0 
+	IL_016f:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFunctionDoc
+	IL_0174:  ldloc.2 
+	IL_0175:  ldloc.1 
+	IL_0176:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::TransformAndWriteResult(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, class [System.Xml]System.Xml.Xsl.XsltArgumentList, string)
+	IL_017b:  ret 
+    } // end of method NAntDocumenter::DocumentFunction
+
+    // method line 12
+    .method private hidebysig 
+           instance default void MakeTransforms ()  cil managed 
+    {
+        // Method begins at RVA 0x29b0
+	// Code size 225 (0xe1)
+	.maxstack 3
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldc.i4.0 
+	IL_0003:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingProgress(int32)
+	IL_0008:  ldarg.0 
+	IL_0009:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
+	IL_000e:  stfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTaskIndex
+	IL_0013:  ldarg.0 
+	IL_0014:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
+	IL_0019:  stfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTypeIndex
+	IL_001e:  ldarg.0 
+	IL_001f:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
+	IL_0024:  stfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFunctionIndex
+	IL_0029:  ldarg.0 
+	IL_002a:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
+	IL_002f:  stfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFilterIndex
+	IL_0034:  ldarg.0 
+	IL_0035:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
+	IL_003a:  stfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTypeDoc
+	IL_003f:  ldarg.0 
+	IL_0040:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
+	IL_0045:  stfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFunctionDoc
+	IL_004a:  ldarg.0 
+	IL_004b:  ldarg.0 
+	IL_004c:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTaskIndex
+	IL_0051:  ldstr "task-index.xslt"
+	IL_0056:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::MakeTransform(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, string)
+	IL_005b:  ldarg.0 
+	IL_005c:  ldc.i4.s 0x14
+	IL_005e:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingProgress(int32)
+	IL_0063:  ldarg.0 
+	IL_0064:  ldarg.0 
+	IL_0065:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTypeIndex
+	IL_006a:  ldstr "type-index.xslt"
+	IL_006f:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::MakeTransform(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, string)
+	IL_0074:  ldarg.0 
+	IL_0075:  ldc.i4.s 0x28
+	IL_0077:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingProgress(int32)
+	IL_007c:  ldarg.0 
+	IL_007d:  ldarg.0 
+	IL_007e:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFilterIndex
+	IL_0083:  ldstr "filter-index.xslt"
+	IL_0088:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::MakeTransform(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, string)
+	IL_008d:  ldarg.0 
+	IL_008e:  ldc.i4.s 0x32
+	IL_0090:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingProgress(int32)
+	IL_0095:  ldarg.0 
+	IL_0096:  ldarg.0 
+	IL_0097:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFunctionIndex
+	IL_009c:  ldstr "function-index.xslt"
+	IL_00a1:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::MakeTransform(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, string)
+	IL_00a6:  ldarg.0 
+	IL_00a7:  ldc.i4.s 0x3c
+	IL_00a9:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingProgress(int32)
+	IL_00ae:  ldarg.0 
+	IL_00af:  ldarg.0 
+	IL_00b0:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTypeDoc
+	IL_00b5:  ldstr "type-doc.xslt"
+	IL_00ba:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::MakeTransform(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, string)
+	IL_00bf:  ldarg.0 
+	IL_00c0:  ldc.i4.s 0x50
+	IL_00c2:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingProgress(int32)
+	IL_00c7:  ldarg.0 
+	IL_00c8:  ldarg.0 
+	IL_00c9:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFunctionDoc
+	IL_00ce:  ldstr "function-doc.xslt"
+	IL_00d3:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::MakeTransform(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, string)
+	IL_00d8:  ldarg.0 
+	IL_00d9:  ldc.i4.s 0x64
+	IL_00db:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingProgress(int32)
+	IL_00e0:  ret 
+    } // end of method NAntDocumenter::MakeTransforms
+
+    // method line 13
+    .method private hidebysig 
+           instance default void MakeTransform (class [System.Xml]System.Xml.Xsl.XslCompiledTransform transform, string fileName)  cil managed 
+    {
+        // Method begins at RVA 0x2a9d
+	// Code size 30 (0x1e)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.0 
+	IL_0003:  ldfld string NDoc.Documenter.NAnt.NAntDocumenter::_resourceDirectory
+	IL_0008:  ldstr "xslt"
+	IL_000d:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0012:  ldarg.2 
+	IL_0013:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0018:  callvirt instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::Load(string)
+	IL_001d:  ret 
+    } // end of method NAntDocumenter::MakeTransform
+
+    // method line 14
+    .method private hidebysig 
+           instance default class [System.Xml]System.Xml.Xsl.XsltArgumentList CreateXsltArgumentList ()  cil managed 
+    {
+        // Method begins at RVA 0x2abc
+	// Code size 82 (0x52)
+	.maxstack 4
+	.locals init (
+		class [System.Xml]System.Xml.Xsl.XsltArgumentList	V_0,
+		class [System.Xml]System.Xml.Xsl.XsltArgumentList	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldstr "productName"
+	IL_000d:  ldsfld string [mscorlib]System.String::Empty
+	IL_0012:  ldarg.0 
+	IL_0013:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_ProductName()
+	IL_0018:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
+	IL_001d:  ldloc.0 
+	IL_001e:  ldstr "productVersion"
+	IL_0023:  ldsfld string [mscorlib]System.String::Empty
+	IL_0028:  ldarg.0 
+	IL_0029:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_ProductVersion()
+	IL_002e:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
+	IL_0033:  ldloc.0 
+	IL_0034:  ldstr "productUrl"
+	IL_0039:  ldsfld string [mscorlib]System.String::Empty
+	IL_003e:  ldarg.0 
+	IL_003f:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_ProductUrl()
+	IL_0044:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
+	IL_0049:  ldloc.0 
+	IL_004a:  stloc.1 
+	IL_004b:  br IL_0050
+
+	IL_0050:  ldloc.1 
+	IL_0051:  ret 
+    } // end of method NAntDocumenter::CreateXsltArgumentList
+
+    // method line 15
+    .method private hidebysig 
+           instance default void TransformAndWriteResult (class [System.Xml]System.Xml.Xsl.XslCompiledTransform transform, class [System.Xml]System.Xml.Xsl.XsltArgumentList arguments, string filename)  cil managed 
+    {
+        // Method begins at RVA 0x2b1c
+	// Code size 62 (0x3e)
+	.maxstack 4
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.IO.StreamWriter	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory()
+	IL_0007:  ldarg.3 
+	IL_0008:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  ldc.i4.0 
+	IL_0010:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_UTF8()
+	IL_0015:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string, bool, class [mscorlib]System.Text.Encoding)
+	IL_001a:  stloc.1 
+	.try { // 0
+	  IL_001b:  nop 
+	  IL_001c:  ldarg.1 
+	  IL_001d:  ldarg.0 
+	  IL_001e:  ldfld class [System.Xml]System.Xml.XmlDocument NDoc.Documenter.NAnt.NAntDocumenter::_xmlDocumentation
+	  IL_0023:  ldarg.2 
+	  IL_0024:  ldloc.1 
+	  IL_0025:  callvirt instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::Transform(class [System.Xml]System.Xml.XPath.IXPathNavigable, class [System.Xml]System.Xml.Xsl.XsltArgumentList, class [mscorlib]System.IO.TextWriter)
+	  IL_002a:  nop 
+	  IL_002b:  leave IL_003d
+
+	} // end .try 0
+	finally  { // 0
+	  IL_0030:  ldloc.1 
+	  IL_0031:  brfalse IL_003c
+
+	  IL_0036:  ldloc.1 
+	  IL_0037:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
+	  IL_003c:  endfinally 
+	} // end handler 0
+	IL_003d:  ret 
+    } // end of method NAntDocumenter::TransformAndWriteResult
+
+	.property instance string OutputDirectory ()
+	{
+		.get instance default string NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory () 
+	}
+	.property instance string NamespaceFilter ()
+	{
+		.get instance default string NDoc.Documenter.NAnt.NAntDocumenter::get_NamespaceFilter () 
+	}
+	.property instance string ProductName ()
+	{
+		.get instance default string NDoc.Documenter.NAnt.NAntDocumenter::get_ProductName () 
+	}
+	.property instance string ProductVersion ()
+	{
+		.get instance default string NDoc.Documenter.NAnt.NAntDocumenter::get_ProductVersion () 
+	}
+	.property instance string ProductUrl ()
+	{
+		.get instance default string NDoc.Documenter.NAnt.NAntDocumenter::get_ProductUrl () 
+	}
+	.property instance string MainOutputFile ()
+	{
+		.get instance default string NDoc.Documenter.NAnt.NAntDocumenter::get_MainOutputFile () 
+	}
+  } // end of class NDoc.Documenter.NAnt.NAntDocumenter
 }
-.mresource public 'Documenter.xslt.filter-index.xslt'
+
+.namespace NDoc.Documenter.NAnt
 {
+  .class public auto ansi sealed ElementDocType
+  	extends [mscorlib]System.Enum
+  {
+    .field  public specialname rtspecialname  int32 value__
+    .field public static literal  valuetype NDoc.Documenter.NAnt.ElementDocType None = int32(0x00000000)
+    .field public static literal  valuetype NDoc.Documenter.NAnt.ElementDocType Task = int32(0x00000001)
+    .field public static literal  valuetype NDoc.Documenter.NAnt.ElementDocType DataTypeElement = int32(0x00000002)
+    .field public static literal  valuetype NDoc.Documenter.NAnt.ElementDocType Element = int32(0x00000003)
+    .field public static literal  valuetype NDoc.Documenter.NAnt.ElementDocType Enum = int32(0x00000004)
+    .field public static literal  valuetype NDoc.Documenter.NAnt.ElementDocType Filter = int32(0x00000005)
+    .field public static literal  valuetype NDoc.Documenter.NAnt.ElementDocType FunctionSet = int32(0x00000006)
+
+  } // end of class NDoc.Documenter.NAnt.ElementDocType
 }
-.module NDoc.Documenter.NAnt.dll // GUID = { 42 }
 
+.namespace NDoc.Documenter.NAnt
+{
+  .class public auto ansi beforefieldinit NAntDocumenterConfig
+  	extends [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig
+  {
+    .field  private  string _outputDirectory
+    .field  private  bool _sdkLinksOnWeb
+    .field  private  string _productName
+    .field  private  string _productVersion
+    .field  private  string _productUrl
+    .field  private  string _nantBaseUri
+    .field  private  string _namespaceFilter
+
+    // method line 16
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2b78
+	// Code size 213 (0xd5)
+	.maxstack 4
+	.locals init (
+		valuetype [mscorlib]System.DateTime	V_0)
+	IL_0000:  ldarg.0 
+	IL_0001:  ldstr "doc/help/tasks"
+	IL_0006:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_outputDirectory
+	IL_000b:  ldarg.0 
+	IL_000c:  ldstr "NAnt"
+	IL_0011:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productName
+	IL_0016:  ldarg.0 
+	IL_0017:  ldstr ""
+	IL_001c:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productVersion
+	IL_0021:  ldarg.0 
+	IL_0022:  ldstr ""
+	IL_0027:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productUrl
+	IL_002c:  ldarg.0 
+	IL_002d:  ldstr ""
+	IL_0032:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_nantBaseUri
+	IL_0037:  ldarg.0 
+	IL_0038:  ldstr ""
+	IL_003d:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_namespaceFilter
+	IL_0042:  ldarg.0 
+	IL_0043:  ldstr "NAnt"
+	IL_0048:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::.ctor(string)
+	IL_004d:  nop 
+	IL_004e:  ldarg.0 
+	IL_004f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0054:  ldstr "Copyright (C) 2001-{0} Gerry Shaw"
+	IL_0059:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
+	IL_005e:  stloc.0 
+	IL_005f:  ldloca.s 0
+	IL_0061:  call instance int32 valuetype [mscorlib]System.DateTime::get_Year()
+	IL_0066:  box [mscorlib]System.Int32
+	IL_006b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
+	IL_0070:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_CopyrightText(string)
+	IL_0075:  ldarg.0 
+	IL_0076:  ldstr "http://nant.sourceforge.net/"
+	IL_007b:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_CopyrightHref(string)
+	IL_0080:  ldarg.0 
+	IL_0081:  ldc.i4.0 
+	IL_0082:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_ShowMissingParams(bool)
+	IL_0087:  ldarg.0 
+	IL_0088:  ldc.i4.0 
+	IL_0089:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_ShowMissingRemarks(bool)
+	IL_008e:  ldarg.0 
+	IL_008f:  ldc.i4.0 
+	IL_0090:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_ShowMissingReturns(bool)
+	IL_0095:  ldarg.0 
+	IL_0096:  ldc.i4.0 
+	IL_0097:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_ShowMissingSummaries(bool)
+	IL_009c:  ldarg.0 
+	IL_009d:  ldc.i4.0 
+	IL_009e:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_ShowMissingValues(bool)
+	IL_00a3:  ldarg.0 
+	IL_00a4:  ldc.i4.1 
+	IL_00a5:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_DocumentAttributes(bool)
+	IL_00aa:  ldarg.0 
+	IL_00ab:  ldc.i4.0 
+	IL_00ac:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_DocumentEmptyNamespaces(bool)
+	IL_00b1:  ldarg.0 
+	IL_00b2:  ldc.i4.0 
+	IL_00b3:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_DocumentInternals(bool)
+	IL_00b8:  ldarg.0 
+	IL_00b9:  ldc.i4.0 
+	IL_00ba:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_DocumentPrivates(bool)
+	IL_00bf:  ldarg.0 
+	IL_00c0:  ldc.i4.1 
+	IL_00c1:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_DocumentProtected(bool)
+	IL_00c6:  ldarg.0 
+	IL_00c7:  ldc.i4.0 
+	IL_00c8:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_SkipNamespacesWithoutSummaries(bool)
+	IL_00cd:  ldarg.0 
+	IL_00ce:  ldc.i4.2 
+	IL_00cf:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_EditorBrowsableFilter(<BROKEN CLASS token_ 1000031 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.>)
+	IL_00d4:  ret 
+    } // end of method NAntDocumenterConfig::.ctor
+
+    // method line 17
+    .method public hidebysig specialname 
+           instance default string get_OutputDirectory ()  cil managed 
+    {
+        // Method begins at RVA 0x2c5c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_outputDirectory
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NAntDocumenterConfig::get_OutputDirectory
+
+    // method line 18
+    .method public hidebysig specialname 
+           instance default void set_OutputDirectory (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2c77
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_outputDirectory
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenterConfig::SetDirty()
+	IL_000e:  ret 
+    } // end of method NAntDocumenterConfig::set_OutputDirectory
+
+    // method line 19
+    .method public hidebysig specialname 
+           instance default bool get_SdkLinksOnWeb ()  cil managed 
+    {
+        // Method begins at RVA 0x2c88
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld bool NDoc.Documenter.NAnt.NAntDocumenterConfig::_sdkLinksOnWeb
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NAntDocumenterConfig::get_SdkLinksOnWeb
+
+    // method line 20
+    .method public hidebysig specialname 
+           instance default void set_SdkLinksOnWeb (bool 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2ca3
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld bool NDoc.Documenter.NAnt.NAntDocumenterConfig::_sdkLinksOnWeb
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenterConfig::SetDirty()
+	IL_000e:  ret 
+    } // end of method NAntDocumenterConfig::set_SdkLinksOnWeb
+
+    // method line 21
+    .method public hidebysig specialname 
+           instance default string get_ProductName ()  cil managed 
+    {
+        // Method begins at RVA 0x2cb4
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productName
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NAntDocumenterConfig::get_ProductName
+
+    // method line 22
+    .method public hidebysig specialname 
+           instance default void set_ProductName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2ccf
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productName
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenterConfig::SetDirty()
+	IL_000e:  ret 
+    } // end of method NAntDocumenterConfig::set_ProductName
+
+    // method line 23
+    .method public hidebysig specialname 
+           instance default string get_ProductVersion ()  cil managed 
+    {
+        // Method begins at RVA 0x2ce0
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productVersion
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NAntDocumenterConfig::get_ProductVersion
+
+    // method line 24
+    .method public hidebysig specialname 
+           instance default void set_ProductVersion (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2cfb
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productVersion
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenterConfig::SetDirty()
+	IL_000e:  ret 
+    } // end of method NAntDocumenterConfig::set_ProductVersion
+
+    // method line 25
+    .method public hidebysig specialname 
+           instance default string get_ProductUrl ()  cil managed 
+    {
+        // Method begins at RVA 0x2d0c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productUrl
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NAntDocumenterConfig::get_ProductUrl
+
+    // method line 26
+    .method public hidebysig specialname 
+           instance default void set_ProductUrl (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2d27
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productUrl
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenterConfig::SetDirty()
+	IL_000e:  ret 
+    } // end of method NAntDocumenterConfig::set_ProductUrl
+
+    // method line 27
+    .method public hidebysig specialname 
+           instance default string get_NAntBaseUri ()  cil managed 
+    {
+        // Method begins at RVA 0x2d38
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_nantBaseUri
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NAntDocumenterConfig::get_NAntBaseUri
+
+    // method line 28
+    .method public hidebysig specialname 
+           instance default void set_NAntBaseUri (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2d53
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_nantBaseUri
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenterConfig::SetDirty()
+	IL_000e:  ret 
+    } // end of method NAntDocumenterConfig::set_NAntBaseUri
+
+    // method line 29
+    .method public hidebysig specialname 
+           instance default string get_NamespaceFilter ()  cil managed 
+    {
+        // Method begins at RVA 0x2d64
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_namespaceFilter
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method NAntDocumenterConfig::get_NamespaceFilter
+
+    // method line 30
+    .method public hidebysig specialname 
+           instance default void set_NamespaceFilter (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x2d7f
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldarg.1 
+	IL_0003:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_namespaceFilter
+	IL_0008:  ldarg.0 
+	IL_0009:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenterConfig::SetDirty()
+	IL_000e:  ret 
+    } // end of method NAntDocumenterConfig::set_NamespaceFilter
+
+	.property instance string OutputDirectory ()
+	{
+		.custom instance void class [System]System.ComponentModel.CategoryAttribute::'.ctor'(string) =  (
+		01 00 1B 44 6F 63 75 6D 65 6E 74 61 74 69 6F 6E   // ...Documentation
+		20 4D 61 69 6E 20 53 65 74 74 69 6E 67 73 00 00 ) //  Main Settings..
+
+		.custom instance void class [System]System.ComponentModel.DescriptionAttribute::'.ctor'(string) =  (
+		01 00 49 54 68 65 20 70 61 74 68 20 74 6F 20 74   // ..IThe path to t
+		68 65 20 6F 75 74 70 75 74 20 64 69 72 65 63 74   // he output direct
+		6F 72 79 20 77 68 65 72 65 20 74 68 65 20 67 65   // ory where the ge
+		6E 65 72 61 74 65 64 20 64 6F 63 73 20 77 69 6C   // nerated docs wil
+		6C 20 62 65 20 70 6C 61 63 65 64 2E 00 00       ) // l be placed...
+
+		.get instance default string NDoc.Documenter.NAnt.NAntDocumenterConfig::get_OutputDirectory () 
+		.set instance default void NDoc.Documenter.NAnt.NAntDocumenterConfig::set_OutputDirectory (string 'value') 
+	}
+	.property instance bool SdkLinksOnWeb ()
+	{
+		.custom instance void class [System]System.ComponentModel.CategoryAttribute::'.ctor'(string) =  (
+		01 00 1B 44 6F 63 75 6D 65 6E 74 61 74 69 6F 6E   // ...Documentation
+		20 4D 61 69 6E 20 53 65 74 74 69 6E 67 73 00 00 ) //  Main Settings..
+
+		.custom instance void class [System]System.ComponentModel.DescriptionAttribute::'.ctor'(string) =  (
+		01 00 48 54 75 72 6E 69 6E 67 20 74 68 69 73 20   // ..HTurning this 
+		66 6C 61 67 20 6F 6E 20 77 69 6C 6C 20 70 6F 69   // flag on will poi
+		6E 74 20 61 6C 6C 20 53 44 4B 20 6C 69 6E 6B 73   // nt all SDK links
+		20 74 6F 20 74 68 65 20 6F 6E 6C 69 6E 65 20 4D   //  to the online M
+		53 44 4E 20 6C 69 62 72 61 72 79 00 00          ) // SDN library..
+
+		.custom instance void class [System]System.ComponentModel.DefaultValueAttribute::'.ctor'(bool) =  (01 00 00 00 00 ) // .....
+
+		.get instance default bool NDoc.Documenter.NAnt.NAntDocumenterConfig::get_SdkLinksOnWeb () 
+		.set instance default void NDoc.Documenter.NAnt.NAntDocumenterConfig::set_SdkLinksOnWeb (bool 'value') 
+	}
+	.property instance string ProductName ()
+	{
+		.custom instance void class [System]System.ComponentModel.CategoryAttribute::'.ctor'(string) =  (01 00 06 4F 75 74 70 75 74 00 00 ) // ...Output..
+
+		.custom instance void class [System]System.ComponentModel.DescriptionAttribute::'.ctor'(string) =  (
+		01 00 44 54 68 65 20 6E 61 6D 65 20 6F 66 20 74   // ..DThe name of t
+		68 65 20 70 72 6F 64 75 63 74 20 66 6F 72 20 77   // he product for w
+		68 69 63 68 20 64 6F 63 75 6D 65 6E 74 61 74 69   // hich documentati
+		6F 6E 20 73 68 6F 75 6C 64 20 62 65 20 67 65 6E   // on should be gen
+		65 72 61 74 65 64 2E 00 00                      ) // erated...
+
+		.custom instance void class [System]System.ComponentModel.DefaultValueAttribute::'.ctor'(string) =  (01 00 04 4E 41 6E 74 00 00 ) // ...NAnt..
+
+		.get instance default string NDoc.Documenter.NAnt.NAntDocumenterConfig::get_ProductName () 
+		.set instance default void NDoc.Documenter.NAnt.NAntDocumenterConfig::set_ProductName (string 'value') 
+	}
+	.property instance string ProductVersion ()
+	{
+		.custom instance void class [System]System.ComponentModel.CategoryAttribute::'.ctor'(string) =  (01 00 06 4F 75 74 70 75 74 00 00 ) // ...Output..
+
+		.custom instance void class [System]System.ComponentModel.DescriptionAttribute::'.ctor'(string) =  (
+		01 00 47 54 68 65 20 76 65 72 73 69 6F 6E 20 6F   // ..GThe version o
+		66 20 74 68 65 20 70 72 6F 64 75 63 74 20 66 6F   // f the product fo
+		72 20 77 68 69 63 68 20 64 6F 63 75 6D 65 6E 74   // r which document
+		61 74 69 6F 6E 20 73 68 6F 75 6C 64 20 62 65 20   // ation should be 
+		67 65 6E 65 72 61 74 65 64 2E 00 00             ) // generated...
+
+		.custom instance void class [System]System.ComponentModel.DefaultValueAttribute::'.ctor'(string) =  (01 00 00 00 00 ) // .....
+
+		.get instance default string NDoc.Documenter.NAnt.NAntDocumenterConfig::get_ProductVersion () 
+		.set instance default void NDoc.Documenter.NAnt.NAntDocumenterConfig::set_ProductVersion (string 'value') 
+	}
+	.property instance string ProductUrl ()
+	{
+		.custom instance void class [System]System.ComponentModel.CategoryAttribute::'.ctor'(string) =  (01 00 06 4F 75 74 70 75 74 00 00 ) // ...Output..
+
+		.custom instance void class [System]System.ComponentModel.DescriptionAttribute::'.ctor'(string) =  (
+		01 00 52 54 68 65 20 55 52 4C 20 6F 66 20 74 68   // ..RThe URL of th
+		65 20 77 65 62 73 69 74 65 20 6F 66 20 74 68 65   // e website of the
+		20 70 72 6F 64 75 63 74 20 66 6F 72 20 77 68 69   //  product for whi
+		63 68 20 64 6F 63 75 6D 65 6E 74 61 74 69 6F 6E   // ch documentation
+		20 73 68 6F 75 6C 64 20 62 65 20 67 65 6E 65 72   //  should be gener
+		61 74 65 64 2E 00 00                            ) // ated...
+
+		.custom instance void class [System]System.ComponentModel.DefaultValueAttribute::'.ctor'(string) =  (01 00 00 00 00 ) // .....
+
+		.get instance default string NDoc.Documenter.NAnt.NAntDocumenterConfig::get_ProductUrl () 
+		.set instance default void NDoc.Documenter.NAnt.NAntDocumenterConfig::set_ProductUrl (string 'value') 
+	}
+	.property instance string NAntBaseUri ()
+	{
+		.custom instance void class [System]System.ComponentModel.CategoryAttribute::'.ctor'(string) =  (01 00 06 4F 75 74 70 75 74 00 00 ) // ...Output..
+
+		.custom instance void class [System]System.ComponentModel.DescriptionAttribute::'.ctor'(string) =  (
+		01 00 26 54 68 65 20 62 61 73 65 20 55 52 49 20   // ..&The base URI 
+		66 6F 72 20 6C 69 6E 6B 69 6E 67 20 74 6F 20 4E   // for linking to N
+		41 6E 74 20 64 6F 63 73 2E 00 00                ) // Ant docs...
+
+		.get instance default string NDoc.Documenter.NAnt.NAntDocumenterConfig::get_NAntBaseUri () 
+		.set instance default void NDoc.Documenter.NAnt.NAntDocumenterConfig::set_NAntBaseUri (string 'value') 
+	}
+	.property instance string NamespaceFilter ()
+	{
+		.custom instance void class [System]System.ComponentModel.CategoryAttribute::'.ctor'(string) =  (01 00 06 4F 75 74 70 75 74 00 00 ) // ...Output..
+
+		.custom instance void class [System]System.ComponentModel.DescriptionAttribute::'.ctor'(string) =  (
+		01 00 4E 54 68 65 20 72 6F 6F 74 20 6E 61 6D 65   // ..NThe root name
+		73 70 61 63 65 20 74 6F 20 64 6F 63 75 6D 65 6E   // space to documen
+		74 2C 20 6F 72 20 61 6E 20 65 6D 70 74 79 20 73   // t, or an empty s
+		74 72 69 6E 67 20 74 6F 20 64 6F 63 75 6D 65 6E   // tring to documen
+		74 20 61 6C 6C 20 6E 61 6D 65 73 70 61 63 65 73   // t all namespaces
+		2E 00 00                                        ) // ...
+
+		.get instance default string NDoc.Documenter.NAnt.NAntDocumenterConfig::get_NamespaceFilter () 
+		.set instance default void NDoc.Documenter.NAnt.NAntDocumenterConfig::set_NamespaceFilter (string 'value') 
+	}
+  } // end of class NDoc.Documenter.NAnt.NAntDocumenterConfig
+}
 
 .namespace NDoc.Documenter.NAnt
 {
@@ -108,7 +1769,7 @@
     .field  private  string _sdkDocExt
     .field  private  class [System]System.Collections.Specialized.StringDictionary _elementNames
     .field  private  class [System.Xml]System.Xml.XmlDocument _doc
-    .field  private  <BROKEN CLASS token_ 2000003 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.> _config
+    .field  private  class NDoc.Documenter.NAnt.NAntDocumenterConfig _config
     .field private static literal  string SdkDoc10BaseUrl = "ms-help://MS.NETFrameworkSDK/cpref/html/frlrf"
     .field private static literal  string SdkDoc11BaseUrl = "ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrf"
     .field private static literal  string SdkDocPageExt = ".htm"
@@ -118,18 +1779,18 @@
     .field private static literal  string MicrosoftWin32Prefix = "Microsoft.Win32."
     .field  private static  class [mscorlib]System.Collections.ArrayList Instances
 
-    // method line 1
+    // method line 31
     .method private hidebysig specialname rtspecialname 
            instance default void '.ctor' (class [System.Xml]System.Xml.XmlDocument doc, class NDoc.Documenter.NAnt.NAntDocumenterConfig config)  cil managed 
     {
-        // Method begins at RVA 0x2050
+        // Method begins at RVA 0x2d90
     } // end of method NAntXsltUtilities::.ctor
 
-    // method line 2
+    // method line 32
     .method public hidebysig specialname 
            instance default string get_SdkDocBaseUrl ()  cil managed 
     {
-        // Method begins at RVA 0x235c
+        // Method begins at RVA 0x309c
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -144,11 +1805,11 @@
 	IL_000e:  ret 
     } // end of method NAntXsltUtilities::get_SdkDocBaseUrl
 
-    // method line 3
+    // method line 33
     .method public hidebysig specialname 
            instance default string get_SdkDocExt ()  cil managed 
     {
-        // Method begins at RVA 0x2378
+        // Method begins at RVA 0x30b8
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -163,11 +1824,11 @@
 	IL_000e:  ret 
     } // end of method NAntXsltUtilities::get_SdkDocExt
 
-    // method line 4
+    // method line 34
     .method private hidebysig specialname 
            instance default class [System.Xml]System.Xml.XmlDocument get_Document ()  cil managed 
     {
-        // Method begins at RVA 0x2394
+        // Method begins at RVA 0x30d4
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -182,11 +1843,11 @@
 	IL_000e:  ret 
     } // end of method NAntXsltUtilities::get_Document
 
-    // method line 5
+    // method line 35
     .method private hidebysig specialname 
            instance default class NDoc.Documenter.NAnt.NAntDocumenterConfig get_Config ()  cil managed 
     {
-        // Method begins at RVA 0x23b0
+        // Method begins at RVA 0x30f0
 	// Code size 15 (0xf)
 	.maxstack 1
 	.locals init (
@@ -201,11 +1862,11 @@
 	IL_000e:  ret 
     } // end of method NAntXsltUtilities::get_Config
 
-    // method line 6
+    // method line 36
     .method public hidebysig 
            instance default string GetNamespaceFilter ()  cil managed 
     {
-        // Method begins at RVA 0x23cc
+        // Method begins at RVA 0x310c
 	// Code size 20 (0x14)
 	.maxstack 1
 	.locals init (
@@ -221,11 +1882,11 @@
 	IL_0013:  ret 
     } // end of method NAntXsltUtilities::GetNamespaceFilter
 
-    // method line 7
+    // method line 37
     .method public hidebysig 
            instance default class [System.Xml]System.Xml.XPath.XPathNodeIterator GetClassNode (string id)  cil managed 
     {
-        // Method begins at RVA 0x23ec
+        // Method begins at RVA 0x312c
 	// Code size 98 (0x62)
 	.maxstack 4
 	.locals init (
@@ -270,11 +1931,11 @@
 	IL_0061:  ret 
     } // end of method NAntXsltUtilities::GetClassNode
 
-    // method line 8
+    // method line 38
     .method public hidebysig 
            instance default string GetHRef (string cref)  cil managed 
     {
-        // Method begins at RVA 0x245c
+        // Method begins at RVA 0x319c
 	// Code size 569 (0x239)
 	.maxstack 4
 	.locals init (
@@ -494,11 +2155,11 @@
 	IL_0238:  ret 
     } // end of method NAntXsltUtilities::GetHRef
 
-    // method line 9
+    // method line 39
     .method public hidebysig 
            instance default string GetName (string cref)  cil managed 
     {
-        // Method begins at RVA 0x26a4
+        // Method begins at RVA 0x33e4
 	// Code size 237 (0xed)
 	.maxstack 4
 	.locals init (
@@ -616,11 +2277,11 @@
 	IL_00ec:  ret 
     } // end of method NAntXsltUtilities::GetName
 
-    // method line 10
+    // method line 40
     .method public hidebysig 
            instance default string GetTaskName (string cref)  cil managed 
     {
-        // Method begins at RVA 0x27a0
+        // Method begins at RVA 0x34e0
 	// Code size 22 (0x16)
 	.maxstack 3
 	.locals init (
@@ -638,11 +2299,11 @@
 	IL_0015:  ret 
     } // end of method NAntXsltUtilities::GetTaskName
 
-    // method line 11
+    // method line 41
     .method public hidebysig 
            instance default string GetElementName (string cref)  cil managed 
     {
-        // Method begins at RVA 0x27c4
+        // Method begins at RVA 0x3504
 	// Code size 22 (0x16)
 	.maxstack 3
 	.locals init (
@@ -660,11 +2321,11 @@
 	IL_0015:  ret 
     } // end of method NAntXsltUtilities::GetElementName
 
-    // method line 12
+    // method line 42
     .method public hidebysig 
            instance default class [System.Xml]System.Xml.XmlNode GetTypeNodeByID (string cref)  cil managed 
     {
-        // Method begins at RVA 0x27e8
+        // Method begins at RVA 0x3528
 	// Code size 143 (0x8f)
 	.maxstack 4
 	.locals init (
@@ -727,11 +2388,11 @@
 	IL_008e:  ret 
     } // end of method NAntXsltUtilities::GetTypeNodeByID
 
-    // method line 13
+    // method line 43
     .method public hidebysig 
            instance default class [System.Xml]System.Xml.XmlNode GetMethodNodeByID (string cref)  cil managed 
     {
-        // Method begins at RVA 0x2884
+        // Method begins at RVA 0x35c4
 	// Code size 105 (0x69)
 	.maxstack 4
 	.locals init (
@@ -778,11 +2439,11 @@
 	IL_0068:  ret 
     } // end of method NAntXsltUtilities::GetMethodNodeByID
 
-    // method line 14
+    // method line 44
     .method public hidebysig 
            instance default valuetype NDoc.Documenter.NAnt.ElementDocType GetElementDocType (class [System.Xml]System.Xml.XmlNode typeNode)  cil managed 
     {
-        // Method begins at RVA 0x28fc
+        // Method begins at RVA 0x363c
 	// Code size 369 (0x171)
 	.maxstack 4
 	.locals init (
@@ -917,11 +2578,11 @@
 	IL_0170:  ret 
     } // end of method NAntXsltUtilities::GetElementDocType
 
-    // method line 15
+    // method line 45
     .method public hidebysig 
            instance default valuetype NDoc.Documenter.NAnt.ElementDocType GetElementDocTypeByID (string cref)  cil managed 
     {
-        // Method begins at RVA 0x2a7c
+        // Method begins at RVA 0x37bc
 	// Code size 22 (0x16)
 	.maxstack 3
 	.locals init (
@@ -939,11 +2600,11 @@
 	IL_0015:  ret 
     } // end of method NAntXsltUtilities::GetElementDocTypeByID
 
-    // method line 16
+    // method line 46
     .method public hidebysig 
            instance default bool IsDataType (string cref)  cil managed 
     {
-        // Method begins at RVA 0x2aa0
+        // Method begins at RVA 0x37e0
 	// Code size 19 (0x13)
 	.maxstack 2
 	.locals init (
@@ -961,11 +2622,11 @@
 	IL_0012:  ret 
     } // end of method NAntXsltUtilities::IsDataType
 
-    // method line 17
+    // method line 47
     .method public hidebysig 
            instance default bool IsElement (string cref)  cil managed 
     {
-        // Method begins at RVA 0x2ac0
+        // Method begins at RVA 0x3800
 	// Code size 19 (0x13)
 	.maxstack 2
 	.locals init (
@@ -983,11 +2644,11 @@
 	IL_0012:  ret 
     } // end of method NAntXsltUtilities::IsElement
 
-    // method line 18
+    // method line 48
     .method public hidebysig 
            instance default bool IsFilter (string cref)  cil managed 
     {
-        // Method begins at RVA 0x2ae0
+        // Method begins at RVA 0x3820
 	// Code size 19 (0x13)
 	.maxstack 2
 	.locals init (
@@ -1005,11 +2666,11 @@
 	IL_0012:  ret 
     } // end of method NAntXsltUtilities::IsFilter
 
-    // method line 19
+    // method line 49
     .method public hidebysig 
            instance default bool IsTask (string cref)  cil managed 
     {
-        // Method begins at RVA 0x2b00
+        // Method begins at RVA 0x3840
 	// Code size 19 (0x13)
 	.maxstack 2
 	.locals init (
@@ -1027,11 +2688,11 @@
 	IL_0012:  ret 
     } // end of method NAntXsltUtilities::IsTask
 
-    // method line 20
+    // method line 50
     .method public hidebysig 
            instance default bool IsFunctionSet (string cref)  cil managed 
     {
-        // Method begins at RVA 0x2b20
+        // Method begins at RVA 0x3860
 	// Code size 19 (0x13)
 	.maxstack 2
 	.locals init (
@@ -1049,11 +2710,11 @@
 	IL_0012:  ret 
     } // end of method NAntXsltUtilities::IsFunctionSet
 
-    // method line 21
+    // method line 51
     .method public hidebysig 
            instance default string UrlEncode (string 'value')  cil managed 
     {
-        // Method begins at RVA 0x2b40
+        // Method begins at RVA 0x3880
 	// Code size 20 (0x14)
 	.maxstack 2
 	.locals init (
@@ -1069,11 +2730,11 @@
 	IL_0013:  ret 
     } // end of method NAntXsltUtilities::UrlEncode
 
-    // method line 22
+    // method line 52
     .method assembly hidebysig 
            instance default string GetElementNameForProperty (class [System.Xml]System.Xml.XmlNode propertyNode)  cil managed 
     {
-        // Method begins at RVA 0x2b60
+        // Method begins at RVA 0x38a0
 	// Code size 321 (0x141)
 	.maxstack 4
 	.locals init (
@@ -1187,11 +2848,11 @@
 	IL_0140:  ret 
     } // end of method NAntXsltUtilities::GetElementNameForProperty
 
-    // method line 23
+    // method line 53
     .method assembly hidebysig 
            instance default string GetFileNameForFunction (class [System.Xml]System.Xml.XmlNode functionNode, bool urlEncode)  cil managed 
     {
-        // Method begins at RVA 0x2cb0
+        // Method begins at RVA 0x39f0
 	// Code size 317 (0x13d)
 	.maxstack 3
 	.locals init (
@@ -1329,11 +2990,11 @@
 	IL_013c:  ret 
     } // end of method NAntXsltUtilities::GetFileNameForFunction
 
-    // method line 24
+    // method line 54
     .method assembly hidebysig 
            instance default string GetFileNameForType (class [System.Xml]System.Xml.XmlNode typeNode, bool urlEncode)  cil managed 
     {
-        // Method begins at RVA 0x2dfc
+        // Method begins at RVA 0x3b3c
 	// Code size 660 (0x294)
 	.maxstack 4
 	.locals init (
@@ -1572,11 +3233,11 @@
 	IL_0293:  ret 
     } // end of method NAntXsltUtilities::GetFileNameForType
 
-    // method line 25
+    // method line 55
     .method private hidebysig 
            instance default string GetElementNameForType (class [System.Xml]System.Xml.XmlNode typeNode)  cil managed 
     {
-        // Method begins at RVA 0x309c
+        // Method begins at RVA 0x3ddc
 	// Code size 314 (0x13a)
 	.maxstack 4
 	.locals init (
@@ -1688,11 +3349,11 @@
 	IL_0139:  ret 
     } // end of method NAntXsltUtilities::GetElementNameForType
 
-    // method line 26
+    // method line 56
     .method private hidebysig 
            instance default string GetFileNameForFunction (string 'type', bool urlEncode)  cil managed 
     {
-        // Method begins at RVA 0x31e4
+        // Method begins at RVA 0x3f24
 	// Code size 39 (0x27)
 	.maxstack 3
 	.locals init (
@@ -1722,11 +3383,11 @@
 	IL_0026:  ret 
     } // end of method NAntXsltUtilities::GetFileNameForFunction
 
-    // method line 27
+    // method line 57
     .method private hidebysig 
            instance default string GetFileNameForType (string 'type', bool urlEncode)  cil managed 
     {
-        // Method begins at RVA 0x3218
+        // Method begins at RVA 0x3f58
 	// Code size 23 (0x17)
 	.maxstack 3
 	.locals init (
@@ -1745,11 +3406,11 @@
 	IL_0016:  ret 
     } // end of method NAntXsltUtilities::GetFileNameForType
 
-    // method line 28
+    // method line 58
     .method private hidebysig 
            instance default string GetFilenameForSystemMember (string cref)  cil managed 
     {
-        // Method begins at RVA 0x323c
+        // Method begins at RVA 0x3f7c
 	// Code size 204 (0xcc)
 	.maxstack 6
 	.locals init (
@@ -1859,11 +3520,11 @@
 	IL_00cb:  ret 
     } // end of method NAntXsltUtilities::GetFilenameForSystemMember
 
-    // method line 29
+    // method line 59
     .method private hidebysig 
            instance default string GetTaskNameForType (class [System.Xml]System.Xml.XmlNode typeNode)  cil managed 
     {
-        // Method begins at RVA 0x3314
+        // Method begins at RVA 0x4054
 	// Code size 128 (0x80)
 	.maxstack 4
 	.locals init (
@@ -1917,11 +3578,11 @@
 	IL_007f:  ret 
     } // end of method NAntXsltUtilities::GetTaskNameForType
 
-    // method line 30
+    // method line 60
     .method private hidebysig 
            instance default string GetElementNameForMethod (class [System.Xml]System.Xml.XmlNode methodNode)  cil managed 
     {
-        // Method begins at RVA 0x33a0
+        // Method begins at RVA 0x40e0
 	// Code size 178 (0xb2)
 	.maxstack 4
 	.locals init (
@@ -1985,11 +3646,11 @@
 	IL_00b1:  ret 
     } // end of method NAntXsltUtilities::GetElementNameForMethod
 
-    // method line 31
+    // method line 61
     .method private hidebysig 
            instance default string GetHRefForFunctionSet (class [System.Xml]System.Xml.XmlNode functionNode)  cil managed 
     {
-        // Method begins at RVA 0x3460
+        // Method begins at RVA 0x41a0
 	// Code size 83 (0x53)
 	.maxstack 3
 	.locals init (
@@ -2028,18 +3689,18 @@
 	IL_0052:  ret 
     } // end of method NAntXsltUtilities::GetHRefForFunctionSet
 
-    // method line 32
+    // method line 62
     .method assembly static hidebysig 
            default class NDoc.Documenter.NAnt.NAntXsltUtilities CreateInstance (class [System.Xml]System.Xml.XmlDocument doc, class NDoc.Documenter.NAnt.NAntDocumenterConfig config)  cil managed 
     {
-        // Method begins at RVA 0x34c0
+        // Method begins at RVA 0x4200
     } // end of method NAntXsltUtilities::CreateInstance
 
-    // method line 33
+    // method line 63
     .method private static hidebysig specialname rtspecialname 
            default void '.cctor' ()  cil managed 
     {
-        // Method begins at RVA 0x35c0
+        // Method begins at RVA 0x4300
 	// Code size 12 (0xc)
 	.maxstack 8
 	IL_0000:  ldc.i4.3 
@@ -2067,1664 +3728,3 @@
   } // end of class NDoc.Documenter.NAnt.NAntXsltUtilities
 }
 
-.namespace NDoc.Documenter.NAnt
-{
-  .class public auto ansi beforefieldinit NAntDocumenterConfig
-  	extends [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig
-  {
-    .field  private  string _outputDirectory
-    .field  private  bool _sdkLinksOnWeb
-    .field  private  string _productName
-    .field  private  string _productVersion
-    .field  private  string _productUrl
-    .field  private  string _nantBaseUri
-    .field  private  string _namespaceFilter
-
-    // method line 34
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x35d0
-	// Code size 213 (0xd5)
-	.maxstack 4
-	.locals init (
-		valuetype [mscorlib]System.DateTime	V_0)
-	IL_0000:  ldarg.0 
-	IL_0001:  ldstr "doc/help/tasks"
-	IL_0006:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_outputDirectory
-	IL_000b:  ldarg.0 
-	IL_000c:  ldstr "NAnt"
-	IL_0011:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productName
-	IL_0016:  ldarg.0 
-	IL_0017:  ldstr ""
-	IL_001c:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productVersion
-	IL_0021:  ldarg.0 
-	IL_0022:  ldstr ""
-	IL_0027:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productUrl
-	IL_002c:  ldarg.0 
-	IL_002d:  ldstr ""
-	IL_0032:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_nantBaseUri
-	IL_0037:  ldarg.0 
-	IL_0038:  ldstr ""
-	IL_003d:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_namespaceFilter
-	IL_0042:  ldarg.0 
-	IL_0043:  ldstr "NAnt"
-	IL_0048:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::.ctor(string)
-	IL_004d:  nop 
-	IL_004e:  ldarg.0 
-	IL_004f:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
-	IL_0054:  ldstr "Copyright (C) 2001-{0} Gerry Shaw"
-	IL_0059:  call valuetype [mscorlib]System.DateTime valuetype [mscorlib]System.DateTime::get_Now()
-	IL_005e:  stloc.0 
-	IL_005f:  ldloca.s 0
-	IL_0061:  call instance int32 valuetype [mscorlib]System.DateTime::get_Year()
-	IL_0066:  box [mscorlib]System.Int32
-	IL_006b:  call string string::Format(class [mscorlib]System.IFormatProvider, string, object)
-	IL_0070:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_CopyrightText(string)
-	IL_0075:  ldarg.0 
-	IL_0076:  ldstr "http://nant.sourceforge.net/"
-	IL_007b:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_CopyrightHref(string)
-	IL_0080:  ldarg.0 
-	IL_0081:  ldc.i4.0 
-	IL_0082:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_ShowMissingParams(bool)
-	IL_0087:  ldarg.0 
-	IL_0088:  ldc.i4.0 
-	IL_0089:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_ShowMissingRemarks(bool)
-	IL_008e:  ldarg.0 
-	IL_008f:  ldc.i4.0 
-	IL_0090:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_ShowMissingReturns(bool)
-	IL_0095:  ldarg.0 
-	IL_0096:  ldc.i4.0 
-	IL_0097:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_ShowMissingSummaries(bool)
-	IL_009c:  ldarg.0 
-	IL_009d:  ldc.i4.0 
-	IL_009e:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_ShowMissingValues(bool)
-	IL_00a3:  ldarg.0 
-	IL_00a4:  ldc.i4.1 
-	IL_00a5:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_DocumentAttributes(bool)
-	IL_00aa:  ldarg.0 
-	IL_00ab:  ldc.i4.0 
-	IL_00ac:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_DocumentEmptyNamespaces(bool)
-	IL_00b1:  ldarg.0 
-	IL_00b2:  ldc.i4.0 
-	IL_00b3:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_DocumentInternals(bool)
-	IL_00b8:  ldarg.0 
-	IL_00b9:  ldc.i4.0 
-	IL_00ba:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_DocumentPrivates(bool)
-	IL_00bf:  ldarg.0 
-	IL_00c0:  ldc.i4.1 
-	IL_00c1:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_DocumentProtected(bool)
-	IL_00c6:  ldarg.0 
-	IL_00c7:  ldc.i4.0 
-	IL_00c8:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_SkipNamespacesWithoutSummaries(bool)
-	IL_00cd:  ldarg.0 
-	IL_00ce:  ldc.i4.2 
-	IL_00cf:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenterConfig::set_EditorBrowsableFilter(<BROKEN CLASS token_ 1000029 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.>)
-	IL_00d4:  ret 
-    } // end of method NAntDocumenterConfig::.ctor
-
-    // method line 35
-    .method public hidebysig specialname 
-           instance default string get_OutputDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x36b4
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_outputDirectory
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntDocumenterConfig::get_OutputDirectory
-
-    // method line 36
-    .method public hidebysig specialname 
-           instance default void set_OutputDirectory (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x36cf
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_outputDirectory
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenterConfig::SetDirty()
-	IL_000e:  ret 
-    } // end of method NAntDocumenterConfig::set_OutputDirectory
-
-    // method line 37
-    .method public hidebysig specialname 
-           instance default bool get_SdkLinksOnWeb ()  cil managed 
-    {
-        // Method begins at RVA 0x36e0
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		bool	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld bool NDoc.Documenter.NAnt.NAntDocumenterConfig::_sdkLinksOnWeb
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntDocumenterConfig::get_SdkLinksOnWeb
-
-    // method line 38
-    .method public hidebysig specialname 
-           instance default void set_SdkLinksOnWeb (bool 'value')  cil managed 
-    {
-        // Method begins at RVA 0x36fb
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld bool NDoc.Documenter.NAnt.NAntDocumenterConfig::_sdkLinksOnWeb
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenterConfig::SetDirty()
-	IL_000e:  ret 
-    } // end of method NAntDocumenterConfig::set_SdkLinksOnWeb
-
-    // method line 39
-    .method public hidebysig specialname 
-           instance default string get_ProductName ()  cil managed 
-    {
-        // Method begins at RVA 0x370c
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productName
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntDocumenterConfig::get_ProductName
-
-    // method line 40
-    .method public hidebysig specialname 
-           instance default void set_ProductName (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3727
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productName
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenterConfig::SetDirty()
-	IL_000e:  ret 
-    } // end of method NAntDocumenterConfig::set_ProductName
-
-    // method line 41
-    .method public hidebysig specialname 
-           instance default string get_ProductVersion ()  cil managed 
-    {
-        // Method begins at RVA 0x3738
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productVersion
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntDocumenterConfig::get_ProductVersion
-
-    // method line 42
-    .method public hidebysig specialname 
-           instance default void set_ProductVersion (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x3753
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productVersion
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenterConfig::SetDirty()
-	IL_000e:  ret 
-    } // end of method NAntDocumenterConfig::set_ProductVersion
-
-    // method line 43
-    .method public hidebysig specialname 
-           instance default string get_ProductUrl ()  cil managed 
-    {
-        // Method begins at RVA 0x3764
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productUrl
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntDocumenterConfig::get_ProductUrl
-
-    // method line 44
-    .method public hidebysig specialname 
-           instance default void set_ProductUrl (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x377f
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_productUrl
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenterConfig::SetDirty()
-	IL_000e:  ret 
-    } // end of method NAntDocumenterConfig::set_ProductUrl
-
-    // method line 45
-    .method public hidebysig specialname 
-           instance default string get_NAntBaseUri ()  cil managed 
-    {
-        // Method begins at RVA 0x3790
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_nantBaseUri
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntDocumenterConfig::get_NAntBaseUri
-
-    // method line 46
-    .method public hidebysig specialname 
-           instance default void set_NAntBaseUri (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x37ab
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_nantBaseUri
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenterConfig::SetDirty()
-	IL_000e:  ret 
-    } // end of method NAntDocumenterConfig::set_NAntBaseUri
-
-    // method line 47
-    .method public hidebysig specialname 
-           instance default string get_NamespaceFilter ()  cil managed 
-    {
-        // Method begins at RVA 0x37bc
-	// Code size 15 (0xf)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_namespaceFilter
-	IL_0007:  stloc.0 
-	IL_0008:  br IL_000d
-
-	IL_000d:  ldloc.0 
-	IL_000e:  ret 
-    } // end of method NAntDocumenterConfig::get_NamespaceFilter
-
-    // method line 48
-    .method public hidebysig specialname 
-           instance default void set_NamespaceFilter (string 'value')  cil managed 
-    {
-        // Method begins at RVA 0x37d7
-	// Code size 15 (0xf)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldarg.1 
-	IL_0003:  stfld string NDoc.Documenter.NAnt.NAntDocumenterConfig::_namespaceFilter
-	IL_0008:  ldarg.0 
-	IL_0009:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenterConfig::SetDirty()
-	IL_000e:  ret 
-    } // end of method NAntDocumenterConfig::set_NamespaceFilter
-
-	.property instance string OutputDirectory ()
-	{
-		.custom instance void class [System]System.ComponentModel.CategoryAttribute::'.ctor'(string) =  (
-		01 00 1B 44 6F 63 75 6D 65 6E 74 61 74 69 6F 6E   // ...Documentation
-		20 4D 61 69 6E 20 53 65 74 74 69 6E 67 73 00 00 ) //  Main Settings..
-
-		.custom instance void class [System]System.ComponentModel.DescriptionAttribute::'.ctor'(string) =  (
-		01 00 49 54 68 65 20 70 61 74 68 20 74 6F 20 74   // ..IThe path to t
-		68 65 20 6F 75 74 70 75 74 20 64 69 72 65 63 74   // he output direct
-		6F 72 79 20 77 68 65 72 65 20 74 68 65 20 67 65   // ory where the ge
-		6E 65 72 61 74 65 64 20 64 6F 63 73 20 77 69 6C   // nerated docs wil
-		6C 20 62 65 20 70 6C 61 63 65 64 2E 00 00       ) // l be placed...
-
-		.get instance default string NDoc.Documenter.NAnt.NAntDocumenterConfig::get_OutputDirectory () 
-		.set instance default void NDoc.Documenter.NAnt.NAntDocumenterConfig::set_OutputDirectory (string 'value') 
-	}
-	.property instance bool SdkLinksOnWeb ()
-	{
-		.custom instance void class [System]System.ComponentModel.CategoryAttribute::'.ctor'(string) =  (
-		01 00 1B 44 6F 63 75 6D 65 6E 74 61 74 69 6F 6E   // ...Documentation
-		20 4D 61 69 6E 20 53 65 74 74 69 6E 67 73 00 00 ) //  Main Settings..
-
-		.custom instance void class [System]System.ComponentModel.DescriptionAttribute::'.ctor'(string) =  (
-		01 00 48 54 75 72 6E 69 6E 67 20 74 68 69 73 20   // ..HTurning this 
-		66 6C 61 67 20 6F 6E 20 77 69 6C 6C 20 70 6F 69   // flag on will poi
-		6E 74 20 61 6C 6C 20 53 44 4B 20 6C 69 6E 6B 73   // nt all SDK links
-		20 74 6F 20 74 68 65 20 6F 6E 6C 69 6E 65 20 4D   //  to the online M
-		53 44 4E 20 6C 69 62 72 61 72 79 00 00          ) // SDN library..
-
-		.custom instance void class [System]System.ComponentModel.DefaultValueAttribute::'.ctor'(bool) =  (01 00 00 00 00 ) // .....
-
-		.get instance default bool NDoc.Documenter.NAnt.NAntDocumenterConfig::get_SdkLinksOnWeb () 
-		.set instance default void NDoc.Documenter.NAnt.NAntDocumenterConfig::set_SdkLinksOnWeb (bool 'value') 
-	}
-	.property instance string ProductName ()
-	{
-		.custom instance void class [System]System.ComponentModel.CategoryAttribute::'.ctor'(string) =  (01 00 06 4F 75 74 70 75 74 00 00 ) // ...Output..
-
-		.custom instance void class [System]System.ComponentModel.DescriptionAttribute::'.ctor'(string) =  (
-		01 00 44 54 68 65 20 6E 61 6D 65 20 6F 66 20 74   // ..DThe name of t
-		68 65 20 70 72 6F 64 75 63 74 20 66 6F 72 20 77   // he product for w
-		68 69 63 68 20 64 6F 63 75 6D 65 6E 74 61 74 69   // hich documentati
-		6F 6E 20 73 68 6F 75 6C 64 20 62 65 20 67 65 6E   // on should be gen
-		65 72 61 74 65 64 2E 00 00                      ) // erated...
-
-		.custom instance void class [System]System.ComponentModel.DefaultValueAttribute::'.ctor'(string) =  (01 00 04 4E 41 6E 74 00 00 ) // ...NAnt..
-
-		.get instance default string NDoc.Documenter.NAnt.NAntDocumenterConfig::get_ProductName () 
-		.set instance default void NDoc.Documenter.NAnt.NAntDocumenterConfig::set_ProductName (string 'value') 
-	}
-	.property instance string ProductVersion ()
-	{
-		.custom instance void class [System]System.ComponentModel.CategoryAttribute::'.ctor'(string) =  (01 00 06 4F 75 74 70 75 74 00 00 ) // ...Output..
-
-		.custom instance void class [System]System.ComponentModel.DescriptionAttribute::'.ctor'(string) =  (
-		01 00 47 54 68 65 20 76 65 72 73 69 6F 6E 20 6F   // ..GThe version o
-		66 20 74 68 65 20 70 72 6F 64 75 63 74 20 66 6F   // f the product fo
-		72 20 77 68 69 63 68 20 64 6F 63 75 6D 65 6E 74   // r which document
-		61 74 69 6F 6E 20 73 68 6F 75 6C 64 20 62 65 20   // ation should be 
-		67 65 6E 65 72 61 74 65 64 2E 00 00             ) // generated...
-
-		.custom instance void class [System]System.ComponentModel.DefaultValueAttribute::'.ctor'(string) =  (01 00 00 00 00 ) // .....
-
-		.get instance default string NDoc.Documenter.NAnt.NAntDocumenterConfig::get_ProductVersion () 
-		.set instance default void NDoc.Documenter.NAnt.NAntDocumenterConfig::set_ProductVersion (string 'value') 
-	}
-	.property instance string ProductUrl ()
-	{
-		.custom instance void class [System]System.ComponentModel.CategoryAttribute::'.ctor'(string) =  (01 00 06 4F 75 74 70 75 74 00 00 ) // ...Output..
-
-		.custom instance void class [System]System.ComponentModel.DescriptionAttribute::'.ctor'(string) =  (
-		01 00 52 54 68 65 20 55 52 4C 20 6F 66 20 74 68   // ..RThe URL of th
-		65 20 77 65 62 73 69 74 65 20 6F 66 20 74 68 65   // e website of the
-		20 70 72 6F 64 75 63 74 20 66 6F 72 20 77 68 69   //  product for whi
-		63 68 20 64 6F 63 75 6D 65 6E 74 61 74 69 6F 6E   // ch documentation
-		20 73 68 6F 75 6C 64 20 62 65 20 67 65 6E 65 72   //  should be gener
-		61 74 65 64 2E 00 00                            ) // ated...
-
-		.custom instance void class [System]System.ComponentModel.DefaultValueAttribute::'.ctor'(string) =  (01 00 00 00 00 ) // .....
-
-		.get instance default string NDoc.Documenter.NAnt.NAntDocumenterConfig::get_ProductUrl () 
-		.set instance default void NDoc.Documenter.NAnt.NAntDocumenterConfig::set_ProductUrl (string 'value') 
-	}
-	.property instance string NAntBaseUri ()
-	{
-		.custom instance void class [System]System.ComponentModel.CategoryAttribute::'.ctor'(string) =  (01 00 06 4F 75 74 70 75 74 00 00 ) // ...Output..
-
-		.custom instance void class [System]System.ComponentModel.DescriptionAttribute::'.ctor'(string) =  (
-		01 00 26 54 68 65 20 62 61 73 65 20 55 52 49 20   // ..&The base URI 
-		66 6F 72 20 6C 69 6E 6B 69 6E 67 20 74 6F 20 4E   // for linking to N
-		41 6E 74 20 64 6F 63 73 2E 00 00                ) // Ant docs...
-
-		.get instance default string NDoc.Documenter.NAnt.NAntDocumenterConfig::get_NAntBaseUri () 
-		.set instance default void NDoc.Documenter.NAnt.NAntDocumenterConfig::set_NAntBaseUri (string 'value') 
-	}
-	.property instance string NamespaceFilter ()
-	{
-		.custom instance void class [System]System.ComponentModel.CategoryAttribute::'.ctor'(string) =  (01 00 06 4F 75 74 70 75 74 00 00 ) // ...Output..
-
-		.custom instance void class [System]System.ComponentModel.DescriptionAttribute::'.ctor'(string) =  (
-		01 00 4E 54 68 65 20 72 6F 6F 74 20 6E 61 6D 65   // ..NThe root name
-		73 70 61 63 65 20 74 6F 20 64 6F 63 75 6D 65 6E   // space to documen
-		74 2C 20 6F 72 20 61 6E 20 65 6D 70 74 79 20 73   // t, or an empty s
-		74 72 69 6E 67 20 74 6F 20 64 6F 63 75 6D 65 6E   // tring to documen
-		74 20 61 6C 6C 20 6E 61 6D 65 73 70 61 63 65 73   // t all namespaces
-		2E 00 00                                        ) // ...
-
-		.get instance default string NDoc.Documenter.NAnt.NAntDocumenterConfig::get_NamespaceFilter () 
-		.set instance default void NDoc.Documenter.NAnt.NAntDocumenterConfig::set_NamespaceFilter (string 'value') 
-	}
-  } // end of class NDoc.Documenter.NAnt.NAntDocumenterConfig
-}
-
-.namespace NDoc.Documenter.NAnt
-{
-  .class public auto ansi beforefieldinit NAntDocumenter
-  	extends [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenter
-  {
-    .field  private  class [System.Xml]System.Xml.Xsl.XslCompiledTransform _xsltTaskIndex
-    .field  private  class [System.Xml]System.Xml.Xsl.XslCompiledTransform _xsltTypeIndex
-    .field  private  class [System.Xml]System.Xml.Xsl.XslCompiledTransform _xsltFunctionIndex
-    .field  private  class [System.Xml]System.Xml.Xsl.XslCompiledTransform _xsltFilterIndex
-    .field  private  class [System.Xml]System.Xml.Xsl.XslCompiledTransform _xsltTypeDoc
-    .field  private  class [System.Xml]System.Xml.Xsl.XslCompiledTransform _xsltFunctionDoc
-    .field  private  class [System.Xml]System.Xml.XmlDocument _xmlDocumentation
-    .field  private  string _resourceDirectory
-    .field  private  class [System]System.Collections.Specialized.StringDictionary _writtenFiles
-
-    // method line 49
-    .method public hidebysig specialname rtspecialname 
-           instance default void '.ctor' ()  cil managed 
-    {
-        // Method begins at RVA 0x37e7
-	// Code size 30 (0x1e)
-	.maxstack 8
-	IL_0000:  ldarg.0 
-	IL_0001:  newobj instance void class [System]System.Collections.Specialized.StringDictionary::'.ctor'()
-	IL_0006:  stfld class [System]System.Collections.Specialized.StringDictionary NDoc.Documenter.NAnt.NAntDocumenter::_writtenFiles
-	IL_000b:  ldarg.0 
-	IL_000c:  ldstr "NAnt"
-	IL_0011:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenter::.ctor(string)
-	IL_0016:  nop 
-	IL_0017:  ldarg.0 
-	IL_0018:  callvirt instance void [NDoc.Core]NDoc.Core.BaseDocumenter::Clear()
-	IL_001d:  ret 
-    } // end of method NAntDocumenter::.ctor
-
-    // method line 50
-    .method public hidebysig specialname 
-           instance default string get_OutputDirectory ()  cil managed 
-    {
-        // Method begins at RVA 0x3808
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance <BROKEN CLASS token_ 1000030 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.> [NDoc.Core]NDoc.Core.BaseDocumenter::get_Config()
-	IL_0007:  castclass NDoc.Documenter.NAnt.NAntDocumenterConfig
-	IL_000c:  callvirt instance string class NDoc.Documenter.NAnt.NAntDocumenterConfig::get_OutputDirectory()
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method NAntDocumenter::get_OutputDirectory
-
-    // method line 51
-    .method public hidebysig specialname 
-           instance default string get_NamespaceFilter ()  cil managed 
-    {
-        // Method begins at RVA 0x3830
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance <BROKEN CLASS token_ 1000030 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.> [NDoc.Core]NDoc.Core.BaseDocumenter::get_Config()
-	IL_0007:  castclass NDoc.Documenter.NAnt.NAntDocumenterConfig
-	IL_000c:  callvirt instance string class NDoc.Documenter.NAnt.NAntDocumenterConfig::get_NamespaceFilter()
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method NAntDocumenter::get_NamespaceFilter
-
-    // method line 52
-    .method public hidebysig specialname 
-           instance default string get_ProductName ()  cil managed 
-    {
-        // Method begins at RVA 0x3858
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance <BROKEN CLASS token_ 1000030 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.> [NDoc.Core]NDoc.Core.BaseDocumenter::get_Config()
-	IL_0007:  castclass NDoc.Documenter.NAnt.NAntDocumenterConfig
-	IL_000c:  callvirt instance string class NDoc.Documenter.NAnt.NAntDocumenterConfig::get_ProductName()
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method NAntDocumenter::get_ProductName
-
-    // method line 53
-    .method public hidebysig specialname 
-           instance default string get_ProductVersion ()  cil managed 
-    {
-        // Method begins at RVA 0x3880
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance <BROKEN CLASS token_ 1000030 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.> [NDoc.Core]NDoc.Core.BaseDocumenter::get_Config()
-	IL_0007:  castclass NDoc.Documenter.NAnt.NAntDocumenterConfig
-	IL_000c:  callvirt instance string class NDoc.Documenter.NAnt.NAntDocumenterConfig::get_ProductVersion()
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method NAntDocumenter::get_ProductVersion
-
-    // method line 54
-    .method public hidebysig specialname 
-           instance default string get_ProductUrl ()  cil managed 
-    {
-        // Method begins at RVA 0x38a8
-	// Code size 25 (0x19)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance <BROKEN CLASS token_ 1000030 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.> [NDoc.Core]NDoc.Core.BaseDocumenter::get_Config()
-	IL_0007:  castclass NDoc.Documenter.NAnt.NAntDocumenterConfig
-	IL_000c:  callvirt instance string class NDoc.Documenter.NAnt.NAntDocumenterConfig::get_ProductUrl()
-	IL_0011:  stloc.0 
-	IL_0012:  br IL_0017
-
-	IL_0017:  ldloc.0 
-	IL_0018:  ret 
-    } // end of method NAntDocumenter::get_ProductUrl
-
-    // method line 55
-    .method public virtual hidebysig specialname 
-           instance default string get_MainOutputFile ()  cil managed 
-    {
-        // Method begins at RVA 0x38d0
-	// Code size 14 (0xe)
-	.maxstack 1
-	.locals init (
-		string	V_0)
-	IL_0000:  nop 
-	IL_0001:  ldstr ""
-	IL_0006:  stloc.0 
-	IL_0007:  br IL_000c
-
-	IL_000c:  ldloc.0 
-	IL_000d:  ret 
-    } // end of method NAntDocumenter::get_MainOutputFile
-
-    // method line 56
-    .method public virtual hidebysig 
-           instance default void Clear ()  cil managed 
-    {
-        // Method begins at RVA 0x38ea
-	// Code size 13 (0xd)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  newobj instance void class NDoc.Documenter.NAnt.NAntDocumenterConfig::'.ctor'()
-	IL_0007:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::set_Config(<BROKEN CLASS token_ 1000030 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.>)
-	IL_000c:  ret 
-    } // end of method NAntDocumenter::Clear
-
-    // method line 57
-    .method public virtual hidebysig 
-           (null) cil managed 
-    {
-        // Method begins at RVA 0x38f8
-	// Code size 865 (0x361)
-	.maxstack 4
-	.locals init (
-		int32	V_0,
-		class [mscorlib]System.Reflection.Assembly	V_1,
-		class [mscorlib]System.Exception	V_2,
-		string	V_3,
-		class [mscorlib]System.IO.FileStream	V_4,
-		class [System.Xml]System.Xml.Xsl.XsltArgumentList	V_5,
-		class NDoc.Documenter.NAnt.NAntXsltUtilities	V_6,
-		class [System.Xml]System.Xml.XmlNodeList	V_7,
-		class [System.Xml]System.Xml.XmlNode	V_8,
-		class [mscorlib]System.Collections.IEnumerator	V_9,
-		valuetype NDoc.Documenter.NAnt.ElementDocType	V_10,
-		class [mscorlib]System.IDisposable	V_11,
-		class [System.Xml]System.Xml.XmlNodeList	V_12,
-		class [System.Xml]System.Xml.XmlElement	V_13,
-		class [mscorlib]System.Collections.IEnumerator	V_14,
-		class [mscorlib]System.IDisposable	V_15)
-	IL_0000:  nop 
-	IL_0001:  ldc.i4.0 
-	IL_0002:  stloc.0 
-	IL_0003:  ldarg.0 
-	IL_0004:  ldloc.0 
-	IL_0005:  ldstr "Initializing..."
-	IL_000a:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
-	IL_000f:  ldarg.0 
-	IL_0010:  ldc.i4.s 0x1a
-	IL_0012:  call string class [mscorlib]System.Environment::GetFolderPath(valuetype [mscorlib]System.Environment/SpecialFolder)
-	IL_0017:  ldstr "NDoc"
-	IL_001c:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0021:  ldstr "NAnt"
-	IL_0026:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_002b:  stfld string NDoc.Documenter.NAnt.NAntDocumenter::_resourceDirectory
-	IL_0030:  ldarg.0 
-	IL_0031:  call instance class [mscorlib]System.Type object::GetType()
-	IL_0036:  callvirt instance class [mscorlib]System.Reflection.Module class [mscorlib]System.Type::get_Module()
-	IL_003b:  callvirt instance class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Module::get_Assembly()
-	IL_0040:  stloc.1 
-	IL_0041:  ldloc.1 
-	IL_0042:  ldstr "Documenter.xslt"
-	IL_0047:  ldarg.0 
-	IL_0048:  ldfld string NDoc.Documenter.NAnt.NAntDocumenter::_resourceDirectory
-	IL_004d:  ldstr "xslt"
-	IL_0052:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0057:  call void [NDoc.Core]NDoc.Core.EmbeddedResources::WriteEmbeddedResources(class [mscorlib]System.Reflection.Assembly, string, string)
-	.try { // 0
-	  IL_005c:  nop 
-	  IL_005d:  ldarg.0 
-	  IL_005e:  call instance string()
-	  IL_0063:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	  IL_0068:  pop 
-	  IL_0069:  ldarg.0 
-	  IL_006a:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory()
-	  IL_006f:  ldstr "elements"
-	  IL_0074:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_0079:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	  IL_007e:  pop 
-	  IL_007f:  ldarg.0 
-	  IL_0080:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory()
-	  IL_0085:  ldstr "functions"
-	  IL_008a:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_008f:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	  IL_0094:  pop 
-	  IL_0095:  ldarg.0 
-	  IL_0096:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory()
-	  IL_009b:  ldstr "types"
-	  IL_00a0:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_00a5:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	  IL_00aa:  pop 
-	  IL_00ab:  ldarg.0 
-	  IL_00ac:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory()
-	  IL_00b1:  ldstr "tasks"
-	  IL_00b6:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_00bb:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	  IL_00c0:  pop 
-	  IL_00c1:  ldarg.0 
-	  IL_00c2:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory()
-	  IL_00c7:  ldstr "enums"
-	  IL_00cc:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_00d1:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	  IL_00d6:  pop 
-	  IL_00d7:  ldarg.0 
-	  IL_00d8:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory()
-	  IL_00dd:  ldstr "filters"
-	  IL_00e2:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	  IL_00e7:  call class [mscorlib]System.IO.DirectoryInfo class [mscorlib]System.IO.Directory::CreateDirectory(string)
-	  IL_00ec:  pop 
-	  IL_00ed:  nop 
-	  IL_00ee:  leave IL_0101
-
-	} // end .try 0
-	catch class [mscorlib]System.Exception { // 0
-	  IL_00f3:  stloc.2 
-	  IL_00f4:  nop 
-	  IL_00f5:  ldstr "The output directories could not be created."
-	  IL_00fa:  ldloc.2 
-	  IL_00fb:  newobj instance void [NDoc.Core]NDoc.Core.DocumenterException::.ctor(string, class [mscorlib]System.Exception)
-	  IL_0100:  throw 
-	} // end handler 0
-	IL_0101:  ldloc.0 
-	IL_0102:  ldc.i4.s 0x0a
-	IL_0104:  add 
-	IL_0105:  stloc.0 
-	IL_0106:  ldarg.0 
-	IL_0107:  ldloc.0 
-	IL_0108:  ldstr "Merging XML documentation..."
-	IL_010d:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
-	IL_0112:  ldarg.0 
-	IL_0113:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::MakeTransforms()
-	IL_0118:  ldnull 
-	IL_0119:  stloc.3 
-	.try { // 2
-	  IL_011a:  nop 
-	  IL_011b:  call string class [mscorlib]System.IO.Path::GetTempFileName()
-	  IL_0120:  stloc.3 
-	  IL_0121:  ldarg.0 
-	  IL_0122:  ldarg.1 
-	  IL_0123:  ldloc.3 
-	  IL_0124:  call instance void [NDoc.Core]NDoc.Core.Reflection.BaseReflectionDocumenter::MakeXmlFile(<BROKEN CLASS token_ 100003b due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.>, string)
-	  IL_0129:  ldloc.3 
-	  IL_012a:  ldc.i4.3 
-	  IL_012b:  ldc.i4.1 
-	  IL_012c:  ldc.i4.1 
-	  IL_012d:  newobj instance void class [mscorlib]System.IO.FileStream::'.ctor'(string, valuetype [mscorlib]System.IO.FileMode, valuetype [mscorlib]System.IO.FileAccess, valuetype [mscorlib]System.IO.FileShare)
-	  IL_0132:  stloc.s 4
-	  .try { // 1
-	    IL_0134:  nop 
-	    IL_0135:  ldarg.0 
-	    IL_0136:  newobj instance void class [System.Xml]System.Xml.XmlDocument::'.ctor'()
-	    IL_013b:  stfld class [System.Xml]System.Xml.XmlDocument NDoc.Documenter.NAnt.NAntDocumenter::_xmlDocumentation
-	    IL_0140:  ldarg.0 
-	    IL_0141:  ldfld class [System.Xml]System.Xml.XmlDocument NDoc.Documenter.NAnt.NAntDocumenter::_xmlDocumentation
-	    IL_0146:  ldloc.s 4
-	    IL_0148:  callvirt instance void class [System.Xml]System.Xml.XmlDocument::Load(class [mscorlib]System.IO.Stream)
-	    IL_014d:  nop 
-	    IL_014e:  leave IL_0162
-
-	  } // end .try 1
-	  finally  { // 1
-	    IL_0153:  ldloc.s 4
-	    IL_0155:  brfalse IL_0161
-
-	    IL_015a:  ldloc.s 4
-	    IL_015c:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	    IL_0161:  endfinally 
-	  } // end handler 1
-	  IL_0162:  nop 
-	  IL_0163:  leave IL_0179
-
-	} // end .try 2
-	finally  { // 2
-	  IL_0168:  nop 
-	  IL_0169:  ldloc.3 
-	  IL_016a:  brfalse IL_0177
-
-	  IL_016f:  nop 
-	  IL_0170:  ldloc.3 
-	  IL_0171:  call void class [mscorlib]System.IO.File::Delete(string)
-	  IL_0176:  nop 
-	  IL_0177:  nop 
-	  IL_0178:  endfinally 
-	} // end handler 2
-	IL_0179:  ldloc.0 
-	IL_017a:  ldc.i4.s 0x0f
-	IL_017c:  add 
-	IL_017d:  stloc.0 
-	IL_017e:  ldarg.0 
-	IL_017f:  ldloc.0 
-	IL_0180:  ldstr "Building mapping..."
-	IL_0185:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
-	IL_018a:  ldarg.0 
-	IL_018b:  call instance class [System.Xml]System.Xml.Xsl.XsltArgumentList class NDoc.Documenter.NAnt.NAntDocumenter::CreateXsltArgumentList()
-	IL_0190:  stloc.s 5
-	IL_0192:  ldarg.0 
-	IL_0193:  ldfld class [System.Xml]System.Xml.XmlDocument NDoc.Documenter.NAnt.NAntDocumenter::_xmlDocumentation
-	IL_0198:  ldarg.0 
-	IL_0199:  call instance <BROKEN CLASS token_ 1000030 due to Could not load file or assembly 'NDoc.Core, Version=1.3.3152.0, Culture=neutral, PublicKeyToken=b9896512f28c0f09' or one of its dependencies.> [NDoc.Core]NDoc.Core.BaseDocumenter::get_Config()
-	IL_019e:  castclass NDoc.Documenter.NAnt.NAntDocumenterConfig
-	IL_01a3:  call class NDoc.Documenter.NAnt.NAntXsltUtilities class NDoc.Documenter.NAnt.NAntXsltUtilities::CreateInstance(class [System.Xml]System.Xml.XmlDocument, class NDoc.Documenter.NAnt.NAntDocumenterConfig)
-	IL_01a8:  stloc.s 6
-	IL_01aa:  ldloc.s 5
-	IL_01ac:  ldstr "urn:NAntUtil"
-	IL_01b1:  ldloc.s 6
-	IL_01b3:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddExtensionObject(string, object)
-	IL_01b8:  ldloc.0 
-	IL_01b9:  ldc.i4.s 0x0f
-	IL_01bb:  add 
-	IL_01bc:  stloc.0 
-	IL_01bd:  ldarg.0 
-	IL_01be:  ldloc.0 
-	IL_01bf:  ldstr "Creating Task Index Page..."
-	IL_01c4:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
-	IL_01c9:  ldarg.0 
-	IL_01ca:  ldarg.0 
-	IL_01cb:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTaskIndex
-	IL_01d0:  ldloc.s 5
-	IL_01d2:  ldstr "tasks/index.html"
-	IL_01d7:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::TransformAndWriteResult(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, class [System.Xml]System.Xml.Xsl.XsltArgumentList, string)
-	IL_01dc:  ldloc.0 
-	IL_01dd:  ldc.i4.s 0x0a
-	IL_01df:  add 
-	IL_01e0:  stloc.0 
-	IL_01e1:  ldarg.0 
-	IL_01e2:  ldloc.0 
-	IL_01e3:  ldstr "Creating Type Index Page..."
-	IL_01e8:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
-	IL_01ed:  ldarg.0 
-	IL_01ee:  ldarg.0 
-	IL_01ef:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTypeIndex
-	IL_01f4:  ldloc.s 5
-	IL_01f6:  ldstr "types/index.html"
-	IL_01fb:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::TransformAndWriteResult(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, class [System.Xml]System.Xml.Xsl.XsltArgumentList, string)
-	IL_0200:  ldloc.0 
-	IL_0201:  ldc.i4.s 0x0a
-	IL_0203:  add 
-	IL_0204:  stloc.0 
-	IL_0205:  ldarg.0 
-	IL_0206:  ldloc.0 
-	IL_0207:  ldstr "Creating Filter Index Page..."
-	IL_020c:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
-	IL_0211:  ldarg.0 
-	IL_0212:  ldarg.0 
-	IL_0213:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFilterIndex
-	IL_0218:  ldloc.s 5
-	IL_021a:  ldstr "filters/index.html"
-	IL_021f:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::TransformAndWriteResult(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, class [System.Xml]System.Xml.Xsl.XsltArgumentList, string)
-	IL_0224:  ldarg.0 
-	IL_0225:  ldloc.0 
-	IL_0226:  ldstr "Creating Function Index Page..."
-	IL_022b:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
-	IL_0230:  ldarg.0 
-	IL_0231:  ldarg.0 
-	IL_0232:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFunctionIndex
-	IL_0237:  ldloc.s 5
-	IL_0239:  ldstr "functions/index.html"
-	IL_023e:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::TransformAndWriteResult(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, class [System.Xml]System.Xml.Xsl.XsltArgumentList, string)
-	IL_0243:  ldloc.0 
-	IL_0244:  ldc.i4.s 0x0a
-	IL_0246:  add 
-	IL_0247:  stloc.0 
-	IL_0248:  ldarg.0 
-	IL_0249:  ldloc.0 
-	IL_024a:  ldstr "Generating Task Documents..."
-	IL_024f:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
-	IL_0254:  ldarg.0 
-	IL_0255:  ldfld class [System.Xml]System.Xml.XmlDocument NDoc.Documenter.NAnt.NAntDocumenter::_xmlDocumentation
-	IL_025a:  ldstr "//class[starts-with(substring(@id, 3, string-length(@id) - 2), '"
-	IL_025f:  ldarg.0 
-	IL_0260:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_NamespaceFilter()
-	IL_0265:  ldstr "')]"
-	IL_026a:  call string string::Concat(string, string, string)
-	IL_026f:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
-	IL_0274:  stloc.s 7
-	IL_0276:  nop 
-	IL_0277:  ldloc.s 7
-	IL_0279:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_027e:  stloc.s 9
-	.try { // 3
-	  IL_0280:  br IL_02ac
-
-	  IL_0285:  ldloc.s 9
-	  IL_0287:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_028c:  castclass [System.Xml]System.Xml.XmlNode
-	  IL_0291:  stloc.s 8
-	  IL_0293:  nop 
-	  IL_0294:  ldloc.s 6
-	  IL_0296:  ldloc.s 8
-	  IL_0298:  callvirt instance valuetype NDoc.Documenter.NAnt.ElementDocType class NDoc.Documenter.NAnt.NAntXsltUtilities::GetElementDocType(class [System.Xml]System.Xml.XmlNode)
-	  IL_029d:  stloc.s 10
-	  IL_029f:  ldarg.0 
-	  IL_02a0:  ldloc.s 8
-	  IL_02a2:  ldloc.s 10
-	  IL_02a4:  ldloc.s 6
-	  IL_02a6:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::DocumentType(class [System.Xml]System.Xml.XmlNode, valuetype NDoc.Documenter.NAnt.ElementDocType, class NDoc.Documenter.NAnt.NAntXsltUtilities)
-	  IL_02ab:  nop 
-	  IL_02ac:  ldloc.s 9
-	  IL_02ae:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_02b3:  brtrue IL_0285
-
-	  IL_02b8:  leave IL_02d4
-
-	} // end .try 3
-	finally  { // 3
-	  IL_02bd:  ldloc.s 9
-	  IL_02bf:  isinst [mscorlib]System.IDisposable
-	  IL_02c4:  dup 
-	  IL_02c5:  stloc.s 11
-	  IL_02c7:  brfalse IL_02d3
-
-	  IL_02cc:  ldloc.s 11
-	  IL_02ce:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_02d3:  endfinally 
-	} // end handler 3
-	IL_02d4:  ldarg.0 
-	IL_02d5:  ldloc.0 
-	IL_02d6:  ldstr "Generating Function Documents..."
-	IL_02db:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
-	IL_02e0:  ldarg.0 
-	IL_02e1:  ldfld class [System.Xml]System.Xml.XmlDocument NDoc.Documenter.NAnt.NAntDocumenter::_xmlDocumentation
-	IL_02e6:  ldstr "//method[attribute/@name = 'NAnt.Core.Attributes.FunctionAttribute' and ancestor::class[starts-with(substring(@id, 3, string-length(@id) - 2), '"
-	IL_02eb:  ldarg.0 
-	IL_02ec:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_NamespaceFilter()
-	IL_02f1:  ldstr "')]]"
-	IL_02f6:  call string string::Concat(string, string, string)
-	IL_02fb:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
-	IL_0300:  stloc.s 12
-	IL_0302:  nop 
-	IL_0303:  ldloc.s 12
-	IL_0305:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_030a:  stloc.s 14
-	.try { // 4
-	  IL_030c:  br IL_032b
-
-	  IL_0311:  ldloc.s 14
-	  IL_0313:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_0318:  castclass [System.Xml]System.Xml.XmlElement
-	  IL_031d:  stloc.s 13
-	  IL_031f:  nop 
-	  IL_0320:  ldarg.0 
-	  IL_0321:  ldloc.s 13
-	  IL_0323:  ldloc.s 6
-	  IL_0325:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::DocumentFunction(class [System.Xml]System.Xml.XmlElement, class NDoc.Documenter.NAnt.NAntXsltUtilities)
-	  IL_032a:  nop 
-	  IL_032b:  ldloc.s 14
-	  IL_032d:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_0332:  brtrue IL_0311
-
-	  IL_0337:  leave IL_0353
-
-	} // end .try 4
-	finally  { // 4
-	  IL_033c:  ldloc.s 14
-	  IL_033e:  isinst [mscorlib]System.IDisposable
-	  IL_0343:  dup 
-	  IL_0344:  stloc.s 15
-	  IL_0346:  brfalse IL_0352
-
-	  IL_034b:  ldloc.s 15
-	  IL_034d:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_0352:  endfinally 
-	} // end handler 4
-	IL_0353:  ldarg.0 
-	IL_0354:  ldc.i4.s 0x64
-	IL_0356:  ldstr "Complete"
-	IL_035b:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingStep(int32, string)
-	IL_0360:  ret 
-    } // end of method NAntDocumenter::<NULL METHOD SIGNATURE>
-
-    // method line 58
-    .method private hidebysig 
-           instance default void DocumentType (class [System.Xml]System.Xml.XmlNode typeNode, valuetype NDoc.Documenter.NAnt.ElementDocType docType, class NDoc.Documenter.NAnt.NAntXsltUtilities utilities)  cil managed 
-    {
-        // Method begins at RVA 0x3ca8
-	// Code size 733 (0x2dd)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		string	V_1,
-		class [System.Xml]System.Xml.Xsl.XsltArgumentList	V_2,
-		string	V_3,
-		class [System.Xml]System.Xml.XmlNode	V_4,
-		class [mscorlib]System.Collections.IEnumerator	V_5,
-		string	V_6,
-		string	V_7,
-		class [System.Xml]System.Xml.XmlNode	V_8,
-		class [System.Xml]System.Xml.XmlAttribute	V_9,
-		class [System.Xml]System.Xml.XmlNode	V_10,
-		class [System.Xml]System.Xml.XmlNode	V_11,
-		valuetype NDoc.Documenter.NAnt.ElementDocType	V_12,
-		class [mscorlib]System.IDisposable	V_13)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "typeNode"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.2 
-	IL_0014:  brfalse IL_0020
-
-	IL_0019:  ldarg.2 
-	IL_001a:  ldc.i4.6 
-	IL_001b:  bne.un IL_0026
-
-	IL_0020:  nop 
-	IL_0021:  br IL_02dc
-
-	IL_0026:  ldarg.1 
-	IL_0027:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_002c:  ldstr "id"
-	IL_0031:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_0036:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_003b:  stloc.0 
-	IL_003c:  ldloc.0 
-	IL_003d:  ldc.i4.2 
-	IL_003e:  callvirt instance string string::Substring(int32)
-	IL_0043:  ldarg.0 
-	IL_0044:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_NamespaceFilter()
-	IL_0049:  callvirt instance bool string::StartsWith(string)
-	IL_004e:  brtrue IL_0059
-
-	IL_0053:  nop 
-	IL_0054:  br IL_02dc
-
-	IL_0059:  ldarg.3 
-	IL_005a:  ldarg.1 
-	IL_005b:  ldc.i4.0 
-	IL_005c:  callvirt instance string class NDoc.Documenter.NAnt.NAntXsltUtilities::GetFileNameForType(class [System.Xml]System.Xml.XmlNode, bool)
-	IL_0061:  stloc.1 
-	IL_0062:  ldloc.1 
-	IL_0063:  brtrue IL_006e
-
-	IL_0068:  nop 
-	IL_0069:  br IL_02dc
-
-	IL_006e:  ldarg.0 
-	IL_006f:  ldfld class [System]System.Collections.Specialized.StringDictionary NDoc.Documenter.NAnt.NAntDocumenter::_writtenFiles
-	IL_0074:  ldloc.0 
-	IL_0075:  callvirt instance bool class [System]System.Collections.Specialized.StringDictionary::ContainsValue(string)
-	IL_007a:  brfalse IL_0085
-
-	IL_007f:  nop 
-	IL_0080:  br IL_02dc
-
-	IL_0085:  nop 
-	IL_0086:  ldarg.0 
-	IL_0087:  ldfld class [System]System.Collections.Specialized.StringDictionary NDoc.Documenter.NAnt.NAntDocumenter::_writtenFiles
-	IL_008c:  ldloc.1 
-	IL_008d:  ldloc.0 
-	IL_008e:  callvirt instance void class [System]System.Collections.Specialized.StringDictionary::Add(string, string)
-	IL_0093:  nop 
-	IL_0094:  ldarg.0 
-	IL_0095:  call instance class [System.Xml]System.Xml.Xsl.XsltArgumentList class NDoc.Documenter.NAnt.NAntDocumenter::CreateXsltArgumentList()
-	IL_009a:  stloc.2 
-	IL_009b:  ldloc.2 
-	IL_009c:  ldstr "class-id"
-	IL_00a1:  ldsfld string [mscorlib]System.String::Empty
-	IL_00a6:  ldloc.0 
-	IL_00a7:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
-	IL_00ac:  ldarg.2 
-	IL_00ad:  ldc.i4.1 
-	IL_00ae:  sub 
-	IL_00af:  switch (
-	  IL_00e3,
-	  IL_00cd,
-	  IL_00d8,
-	  IL_00ee,
-	  IL_00f9)
-	IL_00c8:  br IL_0104
-
-	IL_00cd:  ldstr "Type"
-	IL_00d2:  stloc.3 
-	IL_00d3:  br IL_010f
-
-	IL_00d8:  ldstr "Element"
-	IL_00dd:  stloc.3 
-	IL_00de:  br IL_010f
-
-	IL_00e3:  ldstr "Task"
-	IL_00e8:  stloc.3 
-	IL_00e9:  br IL_010f
-
-	IL_00ee:  ldstr "Enum"
-	IL_00f3:  stloc.3 
-	IL_00f4:  br IL_010f
-
-	IL_00f9:  ldstr "Filter"
-	IL_00fe:  stloc.3 
-	IL_00ff:  br IL_010f
-
-	IL_0104:  ldstr "Other?"
-	IL_0109:  stloc.3 
-	IL_010a:  br IL_010f
-
-	IL_010f:  ldloc.2 
-	IL_0110:  ldstr "refType"
-	IL_0115:  ldsfld string [mscorlib]System.String::Empty
-	IL_011a:  ldloc.3 
-	IL_011b:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
-	IL_0120:  ldloc.2 
-	IL_0121:  ldstr "urn:NAntUtil"
-	IL_0126:  ldarg.3 
-	IL_0127:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddExtensionObject(string, object)
-	IL_012c:  nop 
-	IL_012d:  ldarg.1 
-	IL_012e:  ldstr "property[attribute]"
-	IL_0133:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
-	IL_0138:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_013d:  stloc.s 5
-	.try { // 0
-	  IL_013f:  br IL_02a6
-
-	  IL_0144:  ldloc.s 5
-	  IL_0146:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_014b:  castclass [System.Xml]System.Xml.XmlNode
-	  IL_0150:  stloc.s 4
-	  IL_0152:  nop 
-	  IL_0153:  ldarg.3 
-	  IL_0154:  ldloc.s 4
-	  IL_0156:  callvirt instance string class NDoc.Documenter.NAnt.NAntXsltUtilities::GetElementNameForProperty(class [System.Xml]System.Xml.XmlNode)
-	  IL_015b:  stloc.s 6
-	  IL_015d:  ldloc.s 6
-	  IL_015f:  brfalse IL_02a5
-
-	  IL_0164:  nop 
-	  IL_0165:  ldstr "T:"
-	  IL_016a:  ldloc.s 4
-	  IL_016c:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	  IL_0171:  ldstr "type"
-	  IL_0176:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	  IL_017b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	  IL_0180:  ldstr "[]"
-	  IL_0185:  ldstr ""
-	  IL_018a:  callvirt instance string string::Replace(string, string)
-	  IL_018f:  call string string::Concat(string, string)
-	  IL_0194:  stloc.s 7
-	  IL_0196:  ldloc.s 4
-	  IL_0198:  ldstr "attribute[@name='"
-	  IL_019d:  ldtoken [NAnt.Core]NAnt.Core.Attributes.BuildElementArrayAttribute
-	  IL_01a2:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_01a7:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	  IL_01ac:  ldstr "']"
-	  IL_01b1:  call string string::Concat(string, string, string)
-	  IL_01b6:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	  IL_01bb:  stloc.s 8
-	  IL_01bd:  ldloc.s 8
-	  IL_01bf:  brtrue IL_01ed
-
-	  IL_01c4:  nop 
-	  IL_01c5:  ldloc.s 4
-	  IL_01c7:  ldstr "attribute[@name='"
-	  IL_01cc:  ldtoken [NAnt.Core]NAnt.Core.Attributes.BuildElementCollectionAttribute
-	  IL_01d1:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
-	  IL_01d6:  callvirt instance string class [mscorlib]System.Type::get_FullName()
-	  IL_01db:  ldstr "']"
-	  IL_01e0:  call string string::Concat(string, string, string)
-	  IL_01e5:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	  IL_01ea:  stloc.s 8
-	  IL_01ec:  nop 
-	  IL_01ed:  ldloc.s 8
-	  IL_01ef:  brfalse IL_0273
-
-	  IL_01f4:  nop 
-	  IL_01f5:  ldarg.0 
-	  IL_01f6:  ldfld class [System.Xml]System.Xml.XmlDocument NDoc.Documenter.NAnt.NAntDocumenter::_xmlDocumentation
-	  IL_01fb:  ldstr "//class[@id='"
-	  IL_0200:  ldloc.s 7
-	  IL_0202:  ldstr "']/method[@name='Add']/parameter/@type"
-	  IL_0207:  call string string::Concat(string, string, string)
-	  IL_020c:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	  IL_0211:  isinst [System.Xml]System.Xml.XmlAttribute
-	  IL_0216:  stloc.s 9
-	  IL_0218:  ldloc.s 9
-	  IL_021a:  brfalse IL_0234
-
-	  IL_021f:  nop 
-	  IL_0220:  ldstr "T:"
-	  IL_0225:  ldloc.s 9
-	  IL_0227:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	  IL_022c:  call string string::Concat(string, string)
-	  IL_0231:  stloc.s 7
-	  IL_0233:  nop 
-	  IL_0234:  ldloc.s 4
-	  IL_0236:  ldstr "attribute/property[@ElementType]"
-	  IL_023b:  callvirt instance class [System.Xml]System.Xml.XmlNode class [System.Xml]System.Xml.XmlNode::SelectSingleNode(string)
-	  IL_0240:  stloc.s 10
-	  IL_0242:  ldloc.s 10
-	  IL_0244:  brfalse IL_0272
-
-	  IL_0249:  nop 
-	  IL_024a:  ldloc.s 10
-	  IL_024c:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	  IL_0251:  ldstr "value"
-	  IL_0256:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	  IL_025b:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	  IL_0260:  ldstr "+"
-	  IL_0265:  ldstr "."
-	  IL_026a:  callvirt instance string string::Replace(string, string)
-	  IL_026f:  stloc.s 7
-	  IL_0271:  nop 
-	  IL_0272:  nop 
-	  IL_0273:  ldarg.3 
-	  IL_0274:  ldloc.s 7
-	  IL_0276:  callvirt instance class [System.Xml]System.Xml.XmlNode class NDoc.Documenter.NAnt.NAntXsltUtilities::GetTypeNodeByID(string)
-	  IL_027b:  stloc.s 11
-	  IL_027d:  ldloc.s 11
-	  IL_027f:  brfalse IL_02a4
-
-	  IL_0284:  nop 
-	  IL_0285:  ldarg.3 
-	  IL_0286:  ldloc.s 11
-	  IL_0288:  callvirt instance valuetype NDoc.Documenter.NAnt.ElementDocType class NDoc.Documenter.NAnt.NAntXsltUtilities::GetElementDocType(class [System.Xml]System.Xml.XmlNode)
-	  IL_028d:  stloc.s 12
-	  IL_028f:  ldloc.s 12
-	  IL_0291:  brfalse IL_02a3
-
-	  IL_0296:  nop 
-	  IL_0297:  ldarg.0 
-	  IL_0298:  ldloc.s 11
-	  IL_029a:  ldloc.s 12
-	  IL_029c:  ldarg.3 
-	  IL_029d:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::DocumentType(class [System.Xml]System.Xml.XmlNode, valuetype NDoc.Documenter.NAnt.ElementDocType, class NDoc.Documenter.NAnt.NAntXsltUtilities)
-	  IL_02a2:  nop 
-	  IL_02a3:  nop 
-	  IL_02a4:  nop 
-	  IL_02a5:  nop 
-	  IL_02a6:  ldloc.s 5
-	  IL_02a8:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_02ad:  brtrue IL_0144
-
-	  IL_02b2:  leave IL_02ce
-
-	} // end .try 0
-	finally  { // 0
-	  IL_02b7:  ldloc.s 5
-	  IL_02b9:  isinst [mscorlib]System.IDisposable
-	  IL_02be:  dup 
-	  IL_02bf:  stloc.s 13
-	  IL_02c1:  brfalse IL_02cd
-
-	  IL_02c6:  ldloc.s 13
-	  IL_02c8:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_02cd:  endfinally 
-	} // end handler 0
-	IL_02ce:  ldarg.0 
-	IL_02cf:  ldarg.0 
-	IL_02d0:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTypeDoc
-	IL_02d5:  ldloc.2 
-	IL_02d6:  ldloc.1 
-	IL_02d7:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::TransformAndWriteResult(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, class [System.Xml]System.Xml.Xsl.XsltArgumentList, string)
-	IL_02dc:  ret 
-    } // end of method NAntDocumenter::DocumentType
-
-    // method line 59
-    .method private hidebysig 
-           instance default void DocumentFunction (class [System.Xml]System.Xml.XmlElement functionElement, class NDoc.Documenter.NAnt.NAntXsltUtilities utilities)  cil managed 
-    {
-        // Method begins at RVA 0x3fb0
-	// Code size 380 (0x17c)
-	.maxstack 5
-	.locals init (
-		string	V_0,
-		string	V_1,
-		class [System.Xml]System.Xml.Xsl.XsltArgumentList	V_2,
-		class [System.Xml]System.Xml.XmlAttribute	V_3,
-		class [mscorlib]System.Collections.IEnumerator	V_4,
-		string	V_5,
-		class [System.Xml]System.Xml.XmlNode	V_6,
-		valuetype NDoc.Documenter.NAnt.ElementDocType	V_7,
-		class [mscorlib]System.IDisposable	V_8,
-		class [System.Xml]System.Xml.XmlAttribute	V_9,
-		string	V_10,
-		class [System.Xml]System.Xml.XmlNode	V_11,
-		valuetype NDoc.Documenter.NAnt.ElementDocType	V_12)
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  brtrue IL_0013
-
-	IL_0007:  nop 
-	IL_0008:  ldstr "functionElement"
-	IL_000d:  newobj instance void class [mscorlib]System.ArgumentNullException::'.ctor'(string)
-	IL_0012:  throw 
-	IL_0013:  ldarg.1 
-	IL_0014:  ldstr "id"
-	IL_0019:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_001e:  stloc.0 
-	IL_001f:  ldarg.2 
-	IL_0020:  ldarg.1 
-	IL_0021:  ldc.i4.0 
-	IL_0022:  callvirt instance string class NDoc.Documenter.NAnt.NAntXsltUtilities::GetFileNameForFunction(class [System.Xml]System.Xml.XmlNode, bool)
-	IL_0027:  stloc.1 
-	IL_0028:  ldarg.0 
-	IL_0029:  call instance class [System.Xml]System.Xml.Xsl.XsltArgumentList class NDoc.Documenter.NAnt.NAntDocumenter::CreateXsltArgumentList()
-	IL_002e:  stloc.2 
-	IL_002f:  ldloc.2 
-	IL_0030:  ldstr "method-id"
-	IL_0035:  ldsfld string [mscorlib]System.String::Empty
-	IL_003a:  ldloc.0 
-	IL_003b:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
-	IL_0040:  ldloc.2 
-	IL_0041:  ldstr "refType"
-	IL_0046:  ldsfld string [mscorlib]System.String::Empty
-	IL_004b:  ldstr "Function"
-	IL_0050:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
-	IL_0055:  ldloc.2 
-	IL_0056:  ldstr "functionName"
-	IL_005b:  ldsfld string [mscorlib]System.String::Empty
-	IL_0060:  ldarg.1 
-	IL_0061:  ldstr "name"
-	IL_0066:  callvirt instance string class [System.Xml]System.Xml.XmlElement::GetAttribute(string)
-	IL_006b:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
-	IL_0070:  ldloc.2 
-	IL_0071:  ldstr "urn:NAntUtil"
-	IL_0076:  ldarg.2 
-	IL_0077:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddExtensionObject(string, object)
-	IL_007c:  nop 
-	IL_007d:  ldarg.1 
-	IL_007e:  ldstr "parameter/@type"
-	IL_0083:  callvirt instance class [System.Xml]System.Xml.XmlNodeList class [System.Xml]System.Xml.XmlNode::SelectNodes(string)
-	IL_0088:  callvirt instance class [mscorlib]System.Collections.IEnumerator class [System.Xml]System.Xml.XmlNodeList::GetEnumerator()
-	IL_008d:  stloc.s 4
-	.try { // 0
-	  IL_008f:  br IL_00e6
-
-	  IL_0094:  ldloc.s 4
-	  IL_0096:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
-	  IL_009b:  castclass [System.Xml]System.Xml.XmlAttribute
-	  IL_00a0:  stloc.3 
-	  IL_00a1:  nop 
-	  IL_00a2:  ldstr "T:"
-	  IL_00a7:  ldloc.3 
-	  IL_00a8:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	  IL_00ad:  call string string::Concat(string, string)
-	  IL_00b2:  stloc.s 5
-	  IL_00b4:  ldarg.2 
-	  IL_00b5:  ldloc.s 5
-	  IL_00b7:  callvirt instance class [System.Xml]System.Xml.XmlNode class NDoc.Documenter.NAnt.NAntXsltUtilities::GetTypeNodeByID(string)
-	  IL_00bc:  stloc.s 6
-	  IL_00be:  ldloc.s 6
-	  IL_00c0:  brfalse IL_00e5
-
-	  IL_00c5:  nop 
-	  IL_00c6:  ldarg.2 
-	  IL_00c7:  ldloc.s 6
-	  IL_00c9:  callvirt instance valuetype NDoc.Documenter.NAnt.ElementDocType class NDoc.Documenter.NAnt.NAntXsltUtilities::GetElementDocType(class [System.Xml]System.Xml.XmlNode)
-	  IL_00ce:  stloc.s 7
-	  IL_00d0:  ldloc.s 7
-	  IL_00d2:  brfalse IL_00e4
-
-	  IL_00d7:  nop 
-	  IL_00d8:  ldarg.0 
-	  IL_00d9:  ldloc.s 6
-	  IL_00db:  ldloc.s 7
-	  IL_00dd:  ldarg.2 
-	  IL_00de:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::DocumentType(class [System.Xml]System.Xml.XmlNode, valuetype NDoc.Documenter.NAnt.ElementDocType, class NDoc.Documenter.NAnt.NAntXsltUtilities)
-	  IL_00e3:  nop 
-	  IL_00e4:  nop 
-	  IL_00e5:  nop 
-	  IL_00e6:  ldloc.s 4
-	  IL_00e8:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
-	  IL_00ed:  brtrue IL_0094
-
-	  IL_00f2:  leave IL_010e
-
-	} // end .try 0
-	finally  { // 0
-	  IL_00f7:  ldloc.s 4
-	  IL_00f9:  isinst [mscorlib]System.IDisposable
-	  IL_00fe:  dup 
-	  IL_00ff:  stloc.s 8
-	  IL_0101:  brfalse IL_010d
-
-	  IL_0106:  ldloc.s 8
-	  IL_0108:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_010d:  endfinally 
-	} // end handler 0
-	IL_010e:  ldarg.1 
-	IL_010f:  callvirt instance class [System.Xml]System.Xml.XmlAttributeCollection class [System.Xml]System.Xml.XmlNode::get_Attributes()
-	IL_0114:  ldstr "returnType"
-	IL_0119:  callvirt instance class [System.Xml]System.Xml.XmlAttribute class [System.Xml]System.Xml.XmlAttributeCollection::get_ItemOf(string)
-	IL_011e:  stloc.s 9
-	IL_0120:  ldloc.s 9
-	IL_0122:  brfalse IL_016d
-
-	IL_0127:  nop 
-	IL_0128:  ldstr "T:"
-	IL_012d:  ldloc.s 9
-	IL_012f:  callvirt instance string class [System.Xml]System.Xml.XmlNode::get_Value()
-	IL_0134:  call string string::Concat(string, string)
-	IL_0139:  stloc.s 10
-	IL_013b:  ldarg.2 
-	IL_013c:  ldloc.s 10
-	IL_013e:  callvirt instance class [System.Xml]System.Xml.XmlNode class NDoc.Documenter.NAnt.NAntXsltUtilities::GetTypeNodeByID(string)
-	IL_0143:  stloc.s 11
-	IL_0145:  ldloc.s 11
-	IL_0147:  brfalse IL_016c
-
-	IL_014c:  nop 
-	IL_014d:  ldarg.2 
-	IL_014e:  ldloc.s 11
-	IL_0150:  callvirt instance valuetype NDoc.Documenter.NAnt.ElementDocType class NDoc.Documenter.NAnt.NAntXsltUtilities::GetElementDocType(class [System.Xml]System.Xml.XmlNode)
-	IL_0155:  stloc.s 12
-	IL_0157:  ldloc.s 12
-	IL_0159:  brfalse IL_016b
-
-	IL_015e:  nop 
-	IL_015f:  ldarg.0 
-	IL_0160:  ldloc.s 11
-	IL_0162:  ldloc.s 12
-	IL_0164:  ldarg.2 
-	IL_0165:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::DocumentType(class [System.Xml]System.Xml.XmlNode, valuetype NDoc.Documenter.NAnt.ElementDocType, class NDoc.Documenter.NAnt.NAntXsltUtilities)
-	IL_016a:  nop 
-	IL_016b:  nop 
-	IL_016c:  nop 
-	IL_016d:  ldarg.0 
-	IL_016e:  ldarg.0 
-	IL_016f:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFunctionDoc
-	IL_0174:  ldloc.2 
-	IL_0175:  ldloc.1 
-	IL_0176:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::TransformAndWriteResult(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, class [System.Xml]System.Xml.Xsl.XsltArgumentList, string)
-	IL_017b:  ret 
-    } // end of method NAntDocumenter::DocumentFunction
-
-    // method line 60
-    .method private hidebysig 
-           instance default void MakeTransforms ()  cil managed 
-    {
-        // Method begins at RVA 0x4148
-	// Code size 225 (0xe1)
-	.maxstack 3
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  ldc.i4.0 
-	IL_0003:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingProgress(int32)
-	IL_0008:  ldarg.0 
-	IL_0009:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
-	IL_000e:  stfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTaskIndex
-	IL_0013:  ldarg.0 
-	IL_0014:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
-	IL_0019:  stfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTypeIndex
-	IL_001e:  ldarg.0 
-	IL_001f:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
-	IL_0024:  stfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFunctionIndex
-	IL_0029:  ldarg.0 
-	IL_002a:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
-	IL_002f:  stfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFilterIndex
-	IL_0034:  ldarg.0 
-	IL_0035:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
-	IL_003a:  stfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTypeDoc
-	IL_003f:  ldarg.0 
-	IL_0040:  newobj instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::'.ctor'()
-	IL_0045:  stfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFunctionDoc
-	IL_004a:  ldarg.0 
-	IL_004b:  ldarg.0 
-	IL_004c:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTaskIndex
-	IL_0051:  ldstr "task-index.xslt"
-	IL_0056:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::MakeTransform(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, string)
-	IL_005b:  ldarg.0 
-	IL_005c:  ldc.i4.s 0x14
-	IL_005e:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingProgress(int32)
-	IL_0063:  ldarg.0 
-	IL_0064:  ldarg.0 
-	IL_0065:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTypeIndex
-	IL_006a:  ldstr "type-index.xslt"
-	IL_006f:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::MakeTransform(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, string)
-	IL_0074:  ldarg.0 
-	IL_0075:  ldc.i4.s 0x28
-	IL_0077:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingProgress(int32)
-	IL_007c:  ldarg.0 
-	IL_007d:  ldarg.0 
-	IL_007e:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFilterIndex
-	IL_0083:  ldstr "filter-index.xslt"
-	IL_0088:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::MakeTransform(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, string)
-	IL_008d:  ldarg.0 
-	IL_008e:  ldc.i4.s 0x32
-	IL_0090:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingProgress(int32)
-	IL_0095:  ldarg.0 
-	IL_0096:  ldarg.0 
-	IL_0097:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFunctionIndex
-	IL_009c:  ldstr "function-index.xslt"
-	IL_00a1:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::MakeTransform(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, string)
-	IL_00a6:  ldarg.0 
-	IL_00a7:  ldc.i4.s 0x3c
-	IL_00a9:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingProgress(int32)
-	IL_00ae:  ldarg.0 
-	IL_00af:  ldarg.0 
-	IL_00b0:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltTypeDoc
-	IL_00b5:  ldstr "type-doc.xslt"
-	IL_00ba:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::MakeTransform(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, string)
-	IL_00bf:  ldarg.0 
-	IL_00c0:  ldc.i4.s 0x50
-	IL_00c2:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingProgress(int32)
-	IL_00c7:  ldarg.0 
-	IL_00c8:  ldarg.0 
-	IL_00c9:  ldfld class [System.Xml]System.Xml.Xsl.XslCompiledTransform NDoc.Documenter.NAnt.NAntDocumenter::_xsltFunctionDoc
-	IL_00ce:  ldstr "function-doc.xslt"
-	IL_00d3:  call instance void class NDoc.Documenter.NAnt.NAntDocumenter::MakeTransform(class [System.Xml]System.Xml.Xsl.XslCompiledTransform, string)
-	IL_00d8:  ldarg.0 
-	IL_00d9:  ldc.i4.s 0x64
-	IL_00db:  call instance void [NDoc.Core]NDoc.Core.BaseDocumenter::OnDocBuildingProgress(int32)
-	IL_00e0:  ret 
-    } // end of method NAntDocumenter::MakeTransforms
-
-    // method line 61
-    .method private hidebysig 
-           instance default void MakeTransform (class [System.Xml]System.Xml.Xsl.XslCompiledTransform transform, string fileName)  cil managed 
-    {
-        // Method begins at RVA 0x4235
-	// Code size 30 (0x1e)
-	.maxstack 8
-	IL_0000:  nop 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.0 
-	IL_0003:  ldfld string NDoc.Documenter.NAnt.NAntDocumenter::_resourceDirectory
-	IL_0008:  ldstr "xslt"
-	IL_000d:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0012:  ldarg.2 
-	IL_0013:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_0018:  callvirt instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::Load(string)
-	IL_001d:  ret 
-    } // end of method NAntDocumenter::MakeTransform
-
-    // method line 62
-    .method private hidebysig 
-           instance default class [System.Xml]System.Xml.Xsl.XsltArgumentList CreateXsltArgumentList ()  cil managed 
-    {
-        // Method begins at RVA 0x4254
-	// Code size 82 (0x52)
-	.maxstack 4
-	.locals init (
-		class [System.Xml]System.Xml.Xsl.XsltArgumentList	V_0,
-		class [System.Xml]System.Xml.Xsl.XsltArgumentList	V_1)
-	IL_0000:  nop 
-	IL_0001:  newobj instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::'.ctor'()
-	IL_0006:  stloc.0 
-	IL_0007:  ldloc.0 
-	IL_0008:  ldstr "productName"
-	IL_000d:  ldsfld string [mscorlib]System.String::Empty
-	IL_0012:  ldarg.0 
-	IL_0013:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_ProductName()
-	IL_0018:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
-	IL_001d:  ldloc.0 
-	IL_001e:  ldstr "productVersion"
-	IL_0023:  ldsfld string [mscorlib]System.String::Empty
-	IL_0028:  ldarg.0 
-	IL_0029:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_ProductVersion()
-	IL_002e:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
-	IL_0033:  ldloc.0 
-	IL_0034:  ldstr "productUrl"
-	IL_0039:  ldsfld string [mscorlib]System.String::Empty
-	IL_003e:  ldarg.0 
-	IL_003f:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_ProductUrl()
-	IL_0044:  callvirt instance void class [System.Xml]System.Xml.Xsl.XsltArgumentList::AddParam(string, string, object)
-	IL_0049:  ldloc.0 
-	IL_004a:  stloc.1 
-	IL_004b:  br IL_0050
-
-	IL_0050:  ldloc.1 
-	IL_0051:  ret 
-    } // end of method NAntDocumenter::CreateXsltArgumentList
-
-    // method line 63
-    .method private hidebysig 
-           instance default void TransformAndWriteResult (class [System.Xml]System.Xml.Xsl.XslCompiledTransform transform, class [System.Xml]System.Xml.Xsl.XsltArgumentList arguments, string filename)  cil managed 
-    {
-        // Method begins at RVA 0x42b4
-	// Code size 62 (0x3e)
-	.maxstack 4
-	.locals init (
-		string	V_0,
-		class [mscorlib]System.IO.StreamWriter	V_1)
-	IL_0000:  nop 
-	IL_0001:  ldarg.0 
-	IL_0002:  call instance string class NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory()
-	IL_0007:  ldarg.3 
-	IL_0008:  call string class [mscorlib]System.IO.Path::Combine(string, string)
-	IL_000d:  stloc.0 
-	IL_000e:  ldloc.0 
-	IL_000f:  ldc.i4.0 
-	IL_0010:  call class [mscorlib]System.Text.Encoding class [mscorlib]System.Text.Encoding::get_UTF8()
-	IL_0015:  newobj instance void class [mscorlib]System.IO.StreamWriter::'.ctor'(string, bool, class [mscorlib]System.Text.Encoding)
-	IL_001a:  stloc.1 
-	.try { // 0
-	  IL_001b:  nop 
-	  IL_001c:  ldarg.1 
-	  IL_001d:  ldarg.0 
-	  IL_001e:  ldfld class [System.Xml]System.Xml.XmlDocument NDoc.Documenter.NAnt.NAntDocumenter::_xmlDocumentation
-	  IL_0023:  ldarg.2 
-	  IL_0024:  ldloc.1 
-	  IL_0025:  callvirt instance void class [System.Xml]System.Xml.Xsl.XslCompiledTransform::Transform(class [System.Xml]System.Xml.XPath.IXPathNavigable, class [System.Xml]System.Xml.Xsl.XsltArgumentList, class [mscorlib]System.IO.TextWriter)
-	  IL_002a:  nop 
-	  IL_002b:  leave IL_003d
-
-	} // end .try 0
-	finally  { // 0
-	  IL_0030:  ldloc.1 
-	  IL_0031:  brfalse IL_003c
-
-	  IL_0036:  ldloc.1 
-	  IL_0037:  callvirt instance void class [mscorlib]System.IDisposable::Dispose()
-	  IL_003c:  endfinally 
-	} // end handler 0
-	IL_003d:  ret 
-    } // end of method NAntDocumenter::TransformAndWriteResult
-
-	.property instance string OutputDirectory ()
-	{
-		.get instance default string NDoc.Documenter.NAnt.NAntDocumenter::get_OutputDirectory () 
-	}
-	.property instance string NamespaceFilter ()
-	{
-		.get instance default string NDoc.Documenter.NAnt.NAntDocumenter::get_NamespaceFilter () 
-	}
-	.property instance string ProductName ()
-	{
-		.get instance default string NDoc.Documenter.NAnt.NAntDocumenter::get_ProductName () 
-	}
-	.property instance string ProductVersion ()
-	{
-		.get instance default string NDoc.Documenter.NAnt.NAntDocumenter::get_ProductVersion () 
-	}
-	.property instance string ProductUrl ()
-	{
-		.get instance default string NDoc.Documenter.NAnt.NAntDocumenter::get_ProductUrl () 
-	}
-	.property instance string MainOutputFile ()
-	{
-		.get instance default string NDoc.Documenter.NAnt.NAntDocumenter::get_MainOutputFile () 
-	}
-  } // end of class NDoc.Documenter.NAnt.NAntDocumenter
-}
-
-.namespace NDoc.Documenter.NAnt
-{
-  .class public auto ansi sealed ElementDocType
-  	extends [mscorlib]System.Enum
-  {
-    .field  public specialname rtspecialname  int32 value__
-    .field public static literal  valuetype NDoc.Documenter.NAnt.ElementDocType None = int32(0x00000000)
-    .field public static literal  valuetype NDoc.Documenter.NAnt.ElementDocType Task = int32(0x00000001)
-    .field public static literal  valuetype NDoc.Documenter.NAnt.ElementDocType DataTypeElement = int32(0x00000002)
-    .field public static literal  valuetype NDoc.Documenter.NAnt.ElementDocType Element = int32(0x00000003)
-    .field public static literal  valuetype NDoc.Documenter.NAnt.ElementDocType Enum = int32(0x00000004)
-    .field public static literal  valuetype NDoc.Documenter.NAnt.ElementDocType Filter = int32(0x00000005)
-    .field public static literal  valuetype NDoc.Documenter.NAnt.ElementDocType FunctionSet = int32(0x00000006)
-
-  } // end of class NDoc.Documenter.NAnt.ElementDocType
-}
-
/usr/share/NAnt/bin/NDoc.Documenter.NAnt.xml differs (XML 1.0 document, ASCII text)
--- old//usr/share/NAnt/bin/NDoc.Documenter.NAnt.xml	2018-06-14 00:00:00.000000000 +0000
+++ new//usr/share/NAnt/bin/NDoc.Documenter.NAnt.xml	2018-06-14 00:00:00.000000000 +0000
@@ -4,6 +4,152 @@
         <name>NDoc.Documenter.NAnt</name>
     </assembly>
     <members>
+        <member name="T:NDoc.Documenter.NAnt.NAntDocumenter">
+             <summary>
+             NDoc Documenter for building custom NAnt User documentation.
+             </summary>
+            </member>
+        <member name="M:NDoc.Documenter.NAnt.NAntDocumenter.#ctor">
+             <summary>
+             Initializes a new instance of the <see cref="T:NDoc.Documenter.NAnt.NAntDocumenter" /> class.
+             </summary>
+            </member>
+        <member name="P:NDoc.Documenter.NAnt.NAntDocumenter.OutputDirectory">
+             <summary>
+             Gets the documenter's output directory.
+             </summary>
+             <value>
+             The documenter's output directory.
+             </value>
+            </member>
+        <member name="P:NDoc.Documenter.NAnt.NAntDocumenter.NamespaceFilter">
+             <summary>
+             Gets or sets the root namespace to document.
+             </summary>
+             <value>
+             The root namespace to document, or a empty <see cref="T:System.String" />
+             if no restriction should be set on the namespace to document.
+             </value>
+            </member>
+        <member name="P:NDoc.Documenter.NAnt.NAntDocumenter.ProductName">
+             <summary>
+             Gets the name of the product for which documentation should be
+             generated.
+             </summary>
+             <value>
+             The name of the product for which documentation should be
+             generated.
+             </value>
+            </member>
+        <member name="P:NDoc.Documenter.NAnt.NAntDocumenter.ProductVersion">
+             <summary>
+             Gets the version of the product for which documentation should be
+             generated.
+             </summary>
+             <value>
+             The version of the product for which documentation should be
+             generated.
+             </value>
+            </member>
+        <member name="P:NDoc.Documenter.NAnt.NAntDocumenter.ProductUrl">
+             <summary>
+             Gets the URL of the website of the product for which documentation 
+             should be generated.
+             </summary>
+             <value>
+             The URL of the website of the product for which documentation should 
+             be generated.
+             </value>
+            </member>
+        <member name="P:NDoc.Documenter.NAnt.NAntDocumenter.MainOutputFile">
+             <summary>
+             Gets the documenter's main output file.
+             </summary>
+             <value>
+             The documenter's main output file.
+             </value>
+            </member>
+        <member name="M:NDoc.Documenter.NAnt.NAntDocumenter.Clear">
+             <summary>
+             Resets the documenter to a clean state.
+             </summary>
+            </member>
+        <member name="M:NDoc.Documenter.NAnt.NAntDocumenter.Build(NDoc.Core.Project)">
+             <summary>
+             Builds the documentation.
+             </summary>
+            </member>
+        <member name="T:NDoc.Documenter.NAnt.NAntDocumenterConfig">
+             <summary>
+             NDoc configuration class for <see cref="T:NDoc.Documenter.NAnt.NAntDocumenter" />.
+             </summary>
+            </member>
+        <member name="M:NDoc.Documenter.NAnt.NAntDocumenterConfig.#ctor">
+             <summary>
+             Initializes a new instance of the <see cref="T:NDoc.Documenter.NAnt.NAntDocumenterConfig" /> 
+             class.
+             </summary>
+            </member>
+        <member name="P:NDoc.Documenter.NAnt.NAntDocumenterConfig.OutputDirectory">
+             <summary>
+             Gets or sets the output directory.
+             </summary>
+             <value>
+             The output directory.
+             </value>
+            </member>
+        <member name="P:NDoc.Documenter.NAnt.NAntDocumenterConfig.SdkLinksOnWeb">
+             <summary>
+             Gets or sets a value indicating whether .NET Framework SDK links 
+             should point to the online MSDN library.
+             </summary>
+            </member>
+        <member name="P:NDoc.Documenter.NAnt.NAntDocumenterConfig.ProductName">
+             <summary>
+             Gets or sets the name of the product for which documentation 
+             should be generated.
+             </summary>
+             <value>
+             The name of the product for which documentation should be 
+             generated. The default is "NAnt".
+             </value>
+            </member>
+        <member name="P:NDoc.Documenter.NAnt.NAntDocumenterConfig.ProductVersion">
+             <summary>
+             Gets or sets the version of the product for which documentation 
+             should be generated.
+             </summary>
+             <value>
+             The version of the product for which documentation should be 
+             generated.
+             </value>
+            </member>
+        <member name="P:NDoc.Documenter.NAnt.NAntDocumenterConfig.ProductUrl">
+             <summary>
+             Gets or sets the URL of product website.
+             </summary>
+             <value>
+             The URL of the website of the product for which documentation should
+             be generated.
+             </value>
+            </member>
+        <member name="P:NDoc.Documenter.NAnt.NAntDocumenterConfig.NAntBaseUri">
+             <summary>
+             Gets or sets the base URI for linking to NAnt docs.
+             </summary>
+             <value>
+             The base URI for linking to NAnt docs.
+             </value>
+            </member>
+        <member name="P:NDoc.Documenter.NAnt.NAntDocumenterConfig.NamespaceFilter">
+             <summary>
+             Gets or sets the root namespace to document.
+             </summary>
+             <value>
+             The root namespace to document, or a empty <see cref="T:System.String" />
+             if no restriction should be set on the namespace to document.
+             </value>
+            </member>
         <member name="T:NDoc.Documenter.NAnt.NAntXsltUtilities">
              <summary>
              Provides an extension object for the XSLT transformations.
@@ -223,151 +369,5 @@
              </summary>
              <param name="typeNode">The "Class" element to find the filename for.</param>
             </member>
-        <member name="T:NDoc.Documenter.NAnt.NAntDocumenterConfig">
-             <summary>
-             NDoc configuration class for <see cref="T:NDoc.Documenter.NAnt.NAntDocumenter" />.
-             </summary>
-            </member>
-        <member name="M:NDoc.Documenter.NAnt.NAntDocumenterConfig.#ctor">
-             <summary>
-             Initializes a new instance of the <see cref="T:NDoc.Documenter.NAnt.NAntDocumenterConfig" /> 
-             class.
-             </summary>
-            </member>
-        <member name="P:NDoc.Documenter.NAnt.NAntDocumenterConfig.OutputDirectory">
-             <summary>
-             Gets or sets the output directory.
-             </summary>
-             <value>
-             The output directory.
-             </value>
-            </member>
-        <member name="P:NDoc.Documenter.NAnt.NAntDocumenterConfig.SdkLinksOnWeb">
-             <summary>
-             Gets or sets a value indicating whether .NET Framework SDK links 
-             should point to the online MSDN library.
-             </summary>
-            </member>
-        <member name="P:NDoc.Documenter.NAnt.NAntDocumenterConfig.ProductName">
-             <summary>
-             Gets or sets the name of the product for which documentation 
-             should be generated.
-             </summary>
-             <value>
-             The name of the product for which documentation should be 
-             generated. The default is "NAnt".
-             </value>
-            </member>
-        <member name="P:NDoc.Documenter.NAnt.NAntDocumenterConfig.ProductVersion">
-             <summary>
-             Gets or sets the version of the product for which documentation 
-             should be generated.
-             </summary>
-             <value>
PE32 Mono/.Net assembly: /usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.dll
/usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.dll differs (PE32 executable (DLL) (console) Intel 80386, Mono/.Net assembly, for MS Windows)
--- old /usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.dll (monodis)
+++ new /usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.dll (monodis)
@@ -151,29 +151,1137 @@
   } // end of class NAnt.MSBuild.Functions.MSBuildFunctions
 }
 
+.namespace NAnt.MSBuild.BuildEngine
+{
+  .class private auto ansi beforefieldinit BuildItemGroup
+  	extends [mscorlib]System.Object
+  {
+    .field  private  object _obj
+    .field  private  class [mscorlib]System.Type _t
+
+    // method line 3
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (object o)  cil managed 
+    {
+        // Method begins at RVA 0x20c4
+	// Code size 32 (0x20)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld object NAnt.MSBuild.BuildEngine.BuildItemGroup::_obj
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.0 
+	IL_0010:  ldfld object NAnt.MSBuild.BuildEngine.BuildItemGroup::_obj
+	IL_0015:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_001a:  stfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.BuildItemGroup::_t
+	IL_001f:  ret 
+    } // end of method BuildItemGroup::.ctor
+
+    // method line 4
+    .method public hidebysig 
+           instance default class [mscorlib]System.Collections.IEnumerator GetEnumerator ()  cil managed 
+    {
+        // Method begins at RVA 0x20e8
+	// Code size 47 (0x2f)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.Collections.IEnumerator	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.BuildItemGroup::_t
+	IL_0007:  ldstr "GetEnumerator"
+	IL_000c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string)
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld object NAnt.MSBuild.BuildEngine.BuildItemGroup::_obj
+	IL_0017:  ldnull 
+	IL_0018:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	IL_001d:  castclass [mscorlib]System.Collections.IEnumerator
+	IL_0022:  newobj instance void class NAnt.MSBuild.BuildEngine.BuildItemGroup/BuildItemEnumerator::'.ctor'(class [mscorlib]System.Collections.IEnumerator)
+	IL_0027:  stloc.0 
+	IL_0028:  br IL_002d
+
+	IL_002d:  ldloc.0 
+	IL_002e:  ret 
+    } // end of method BuildItemGroup::GetEnumerator
+
+    // method line 5
+    .method public hidebysig 
+           instance default class NAnt.MSBuild.BuildEngine.BuildItem AddNewItem (string itemName, string itemInclude)  cil managed 
+    {
+        // Method begins at RVA 0x2124
+	// Code size 87 (0x57)
+	.maxstack 6
+	.locals init (
+		class NAnt.MSBuild.BuildEngine.BuildItem	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.BuildItemGroup::_t
+	IL_0007:  ldstr "AddNewItem"
+	IL_000c:  ldc.i4.2 
+	IL_000d:  newarr [mscorlib]System.Type
+	IL_0012:  dup 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  ldtoken [mscorlib]System.String
+	IL_0019:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_001e:  stelem.ref 
+	IL_001f:  dup 
+	IL_0020:  ldc.i4.1 
+	IL_0021:  ldtoken [mscorlib]System.String
+	IL_0026:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_002b:  stelem.ref 
+	IL_002c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string, class [mscorlib]System.Type[])
+	IL_0031:  ldarg.0 
+	IL_0032:  ldfld object NAnt.MSBuild.BuildEngine.BuildItemGroup::_obj
+	IL_0037:  ldc.i4.2 
+	IL_0038:  newarr [mscorlib]System.Object
+	IL_003d:  dup 
+	IL_003e:  ldc.i4.0 
+	IL_003f:  ldarg.1 
+	IL_0040:  stelem.ref 
+	IL_0041:  dup 
+	IL_0042:  ldc.i4.1 
+	IL_0043:  ldarg.2 
+	IL_0044:  stelem.ref 
+	IL_0045:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	IL_004a:  newobj instance void class NAnt.MSBuild.BuildEngine.BuildItem::'.ctor'(object)
+	IL_004f:  stloc.0 
+	IL_0050:  br IL_0055
+
+	IL_0055:  ldloc.0 
+	IL_0056:  ret 
+    } // end of method BuildItemGroup::AddNewItem
+
+  .class nested private auto ansi beforefieldinit BuildItemEnumerator
+  	extends [mscorlib]System.Object
+  	implements [mscorlib]System.Collections.IEnumerator  {
+    .field  private  class [mscorlib]System.Collections.IEnumerator _po
+
+    // method line 6
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class [mscorlib]System.Collections.IEnumerator po)  cil managed 
+    {
+        // Method begins at RVA 0x2187
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld class [mscorlib]System.Collections.IEnumerator NAnt.MSBuild.BuildEngine.BuildItemGroup/BuildItemEnumerator::_po
+	IL_000e:  ret 
+    } // end of method BuildItemEnumerator::.ctor
+
+    // method line 7
+    .method public final virtual hidebysig newslot specialname 
+           instance default object get_Current ()  cil managed 
+    {
+        // Method begins at RVA 0x2198
+	// Code size 25 (0x19)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.MSBuild.BuildEngine.BuildItemGroup/BuildItemEnumerator::_po
+	IL_0007:  callvirt instance object class [mscorlib]System.Collections.IEnumerator::get_Current()
+	IL_000c:  newobj instance void class NAnt.MSBuild.BuildEngine.BuildItem::'.ctor'(object)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method BuildItemEnumerator::get_Current
+
+    // method line 8
+    .method public final virtual hidebysig newslot 
+           instance default bool MoveNext ()  cil managed 
+    {
+        // Method begins at RVA 0x21c0
+	// Code size 20 (0x14)
+	.maxstack 1
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.MSBuild.BuildEngine.BuildItemGroup/BuildItemEnumerator::_po
+	IL_0007:  callvirt instance bool class [mscorlib]System.Collections.IEnumerator::MoveNext()
+	IL_000c:  stloc.0 
+	IL_000d:  br IL_0012
+
+	IL_0012:  ldloc.0 
+	IL_0013:  ret 
+    } // end of method BuildItemEnumerator::MoveNext
+
+    // method line 9
+    .method public final virtual hidebysig newslot 
+           instance default void Reset ()  cil managed 
+    {
+        // Method begins at RVA 0x21e0
+	// Code size 13 (0xd)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Collections.IEnumerator NAnt.MSBuild.BuildEngine.BuildItemGroup/BuildItemEnumerator::_po
+	IL_0007:  callvirt instance void class [mscorlib]System.Collections.IEnumerator::Reset()
+	IL_000c:  ret 
+    } // end of method BuildItemEnumerator::Reset
+
+	.property instance object Current ()
+	{
+		.get instance default object NAnt.MSBuild.BuildEngine.BuildItemGroup/BuildItemEnumerator::get_Current () 
+	}
+  } // end of class BuildItemEnumerator
+
+  } // end of class NAnt.MSBuild.BuildEngine.BuildItemGroup
+}
+
+.namespace NAnt.MSBuild.BuildEngine
+{
+  .class private auto ansi beforefieldinit Engine
+  	extends [mscorlib]System.MarshalByRefObject
+  {
+    .field  private  object _obj
+    .field  private  class [mscorlib]System.Type _t
+    .field  private  class [mscorlib]System.Reflection.Assembly _a
+
+    // method line 10
+    .method private hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x21ee
+	// Code size 8 (0x8)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.MarshalByRefObject::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ret 
+    } // end of method Engine::.ctor
+
+    // method line 11
+    .method public static hidebysig 
+           (null) cil managed 
+    {
+        // Method begins at RVA 0x21f8
+	// Code size 34 (0x22)
+	.maxstack 2
+	.locals init (
+		class NAnt.MSBuild.BuildEngine.Engine/Loader	V_0,
+		class NAnt.MSBuild.BuildEngine.Engine	V_1)
+	IL_0000:  nop 
+	IL_0001:  newobj instance void class NAnt.MSBuild.BuildEngine.Engine/Loader::'.ctor'()
+	IL_0006:  stloc.0 
+	IL_0007:  ldloc.0 
+	IL_0008:  ldarg.0 
+	IL_0009:  stfld <BROKEN CLASS token_ 1000004 due to Could not load file or assembly 'NAnt.Core, Version=0.93.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.> NAnt.MSBuild.BuildEngine.Engine/Loader::framework
+	IL_000e:  ldloc.0 
+	IL_000f:  callvirt instance void class NAnt.MSBuild.BuildEngine.Engine/Loader::DoLoad()
+	IL_0014:  ldloc.0 
+	IL_0015:  ldfld class NAnt.MSBuild.BuildEngine.Engine NAnt.MSBuild.BuildEngine.Engine/Loader::engine
+	IL_001a:  stloc.1 
+	IL_001b:  br IL_0020
+
+	IL_0020:  ldloc.1 
+	IL_0021:  ret 
+    } // end of method Engine::<NULL METHOD SIGNATURE>
+
+    // method line 12
+    .method private static hidebysig 
+           default void executionAD_AssemblyLoad (object sender, class [mscorlib]System.AssemblyLoadEventArgs args)  cil managed 
+    {
+        // Method begins at RVA 0x2226
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method Engine::executionAD_AssemblyLoad
+
+    // method line 13
+    .method private static hidebysig 
+           default void CurrentDomain_AssemblyLoad (object sender, class [mscorlib]System.AssemblyLoadEventArgs args)  cil managed 
+    {
+        // Method begins at RVA 0x2229
+	// Code size 2 (0x2)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ret 
+    } // end of method Engine::CurrentDomain_AssemblyLoad
+
+    // method line 14
+    .method assembly hidebysig specialname 
+           instance default class [mscorlib]System.Reflection.Assembly get_Assembly ()  cil managed 
+    {
+        // Method begins at RVA 0x222c
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		class [mscorlib]System.Reflection.Assembly	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Reflection.Assembly NAnt.MSBuild.BuildEngine.Engine::_a
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Engine::get_Assembly
+
+    // method line 15
+    .method assembly hidebysig specialname 
+           instance default object get_Object ()  cil managed 
+    {
+        // Method begins at RVA 0x2248
+	// Code size 15 (0xf)
+	.maxstack 1
+	.locals init (
+		object	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld object NAnt.MSBuild.BuildEngine.Engine::_obj
+	IL_0007:  stloc.0 
+	IL_0008:  br IL_000d
+
+	IL_000d:  ldloc.0 
+	IL_000e:  ret 
+    } // end of method Engine::get_Object
+
+    // method line 16
+    .method public hidebysig 
+           instance default void UnregisterAllLoggers ()  cil managed 
+    {
+        // Method begins at RVA 0x2263
+	// Code size 31 (0x1f)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Engine::_t
+	IL_0007:  ldstr "UnregisterAllLoggers"
+	IL_000c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string)
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld object NAnt.MSBuild.BuildEngine.Engine::_obj
+	IL_0017:  ldnull 
+	IL_0018:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	IL_001d:  pop 
+	IL_001e:  ret 
+    } // end of method Engine::UnregisterAllLoggers
+
+    // method line 17
+    .method public hidebysig 
+           instance default void RegisterLogger (object logger)  cil managed 
+    {
+        // Method begins at RVA 0x2283
+	// Code size 40 (0x28)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Engine::_t
+	IL_0007:  ldstr "RegisterLogger"
+	IL_000c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string)
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld object NAnt.MSBuild.BuildEngine.Engine::_obj
+	IL_0017:  ldc.i4.1 
+	IL_0018:  newarr [mscorlib]System.Object
+	IL_001d:  dup 
+	IL_001e:  ldc.i4.0 
+	IL_001f:  ldarg.1 
+	IL_0020:  stelem.ref 
+	IL_0021:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	IL_0026:  pop 
+	IL_0027:  ret 
+    } // end of method Engine::RegisterLogger
+
+	.property instance class [mscorlib]System.Reflection.Assembly Assembly ()
+	{
+		.get instance default class [mscorlib]System.Reflection.Assembly NAnt.MSBuild.BuildEngine.Engine::get_Assembly () 
+	}
+	.property instance object Object ()
+	{
+		.get instance default object NAnt.MSBuild.BuildEngine.Engine::get_Object () 
+	}
+  .class nested public auto ansi beforefieldinit Loader
+  	extends [mscorlib]System.MarshalByRefObject
+  {
+    .field  public  <BROKEN CLASS token_ 1000004 due to Could not load file or assembly 'NAnt.Core, Version=0.93.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.> framework
+    .field  public  class NAnt.MSBuild.BuildEngine.Engine engine
+
+    // method line 18
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x22ac
+	// Code size 7 (0x7)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void class [mscorlib]System.MarshalByRefObject::'.ctor'()
+	IL_0006:  ret 
+    } // end of method Loader::.ctor
+
+    // method line 19
+    .method public hidebysig 
+           instance default void DoLoad ()  cil managed 
+    {
+        // Method begins at RVA 0x22b4
+	// Code size 331 (0x14b)
+	.maxstack 5
+	.locals init (
+		string	V_0,
+		class [mscorlib]System.Reflection.AssemblyName	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  newobj instance void class NAnt.MSBuild.BuildEngine.Engine::'.ctor'()
+	IL_0007:  stfld class NAnt.MSBuild.BuildEngine.Engine NAnt.MSBuild.BuildEngine.Engine/Loader::engine
+	IL_000c:  ldarg.0 
+	IL_000d:  ldfld <BROKEN CLASS token_ 1000004 due to Could not load file or assembly 'NAnt.Core, Version=0.93.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.> NAnt.MSBuild.BuildEngine.Engine/Loader::framework
+	IL_0012:  callvirt instance class [mscorlib]System.IO.DirectoryInfo [NAnt.Core]NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
+	IL_0017:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_001c:  ldstr "Microsoft.Build.Engine.dll"
+	IL_0021:  call string class [mscorlib]System.IO.Path::Combine(string, string)
+	IL_0026:  stloc.0 
+	IL_0027:  ldloc.0 
+	IL_0028:  call bool class [mscorlib]System.IO.File::Exists(string)
+	IL_002d:  brfalse IL_004a
+
+	IL_0032:  nop 
+	IL_0033:  ldarg.0 
+	IL_0034:  ldfld class NAnt.MSBuild.BuildEngine.Engine NAnt.MSBuild.BuildEngine.Engine/Loader::engine
+	IL_0039:  ldloc.0 
+	IL_003a:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::LoadFile(string)
+	IL_003f:  stfld class [mscorlib]System.Reflection.Assembly NAnt.MSBuild.BuildEngine.Engine::_a
+	IL_0044:  nop 
+	IL_0045:  br IL_00b7
+
+	IL_004a:  nop 
+	IL_004b:  ldstr "Microsoft.Build.Engine"
+	IL_0050:  newobj instance void class [mscorlib]System.Reflection.AssemblyName::'.ctor'(string)
+	IL_0055:  stloc.1 
+	IL_0056:  ldloc.1 
+	IL_0057:  ldarg.0 
+	IL_0058:  ldfld <BROKEN CLASS token_ 1000004 due to Could not load file or assembly 'NAnt.Core, Version=0.93.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.> NAnt.MSBuild.BuildEngine.Engine/Loader::framework
+	IL_005d:  callvirt instance class [mscorlib]System.Version [NAnt.Core]NAnt.Core.FrameworkInfo::get_Version()
+	IL_0062:  callvirt instance int32 class [mscorlib]System.Version::get_Major()
+	IL_0067:  ldarg.0 
+	IL_0068:  ldfld <BROKEN CLASS token_ 1000004 due to Could not load file or assembly 'NAnt.Core, Version=0.93.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.> NAnt.MSBuild.BuildEngine.Engine/Loader::framework
+	IL_006d:  callvirt instance class [mscorlib]System.Version [NAnt.Core]NAnt.Core.FrameworkInfo::get_Version()
+	IL_0072:  callvirt instance int32 class [mscorlib]System.Version::get_Minor()
+	IL_0077:  ldc.i4.0 
+	IL_0078:  ldc.i4.0 
+	IL_0079:  newobj instance void class [mscorlib]System.Version::'.ctor'(int32, int32, int32, int32)
+	IL_007e:  callvirt instance void class [mscorlib]System.Reflection.AssemblyName::set_Version(class [mscorlib]System.Version)
+	IL_0083:  ldloc.1 
+	IL_0084:  call class [mscorlib]System.Globalization.CultureInfo class [mscorlib]System.Globalization.CultureInfo::get_InvariantCulture()
+	IL_0089:  callvirt instance void class [mscorlib]System.Reflection.AssemblyName::set_CultureInfo(class [mscorlib]System.Globalization.CultureInfo)
+	IL_008e:  ldloc.1 
+	IL_008f:  ldc.i4.8 
+	IL_0090:  newarr [mscorlib]System.Byte
+	IL_0095:  dup 
+	IL_0096:  ldtoken field valuetype '<PrivateImplementationDetails>'/'$ArrayType=8' '<PrivateImplementationDetails>'::'$field-7460C27079517029EC4986406D3AD2253581764B'
+	IL_009b:  call void class [mscorlib]System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class [mscorlib]System.Array, valuetype [mscorlib]System.RuntimeFieldHandle)
+	IL_00a0:  callvirt instance void class [mscorlib]System.Reflection.AssemblyName::SetPublicKeyToken(unsigned int8[])
+	IL_00a5:  ldarg.0 
+	IL_00a6:  ldfld class NAnt.MSBuild.BuildEngine.Engine NAnt.MSBuild.BuildEngine.Engine/Loader::engine
+	IL_00ab:  ldloc.1 
+	IL_00ac:  call class [mscorlib]System.Reflection.Assembly class [mscorlib]System.Reflection.Assembly::Load(class [mscorlib]System.Reflection.AssemblyName)
+	IL_00b1:  stfld class [mscorlib]System.Reflection.Assembly NAnt.MSBuild.BuildEngine.Engine::_a
+	IL_00b6:  nop 
+	IL_00b7:  ldarg.0 
+	IL_00b8:  ldfld class NAnt.MSBuild.BuildEngine.Engine NAnt.MSBuild.BuildEngine.Engine/Loader::engine
+	IL_00bd:  ldarg.0 
+	IL_00be:  ldfld class NAnt.MSBuild.BuildEngine.Engine NAnt.MSBuild.BuildEngine.Engine/Loader::engine
+	IL_00c3:  ldfld class [mscorlib]System.Reflection.Assembly NAnt.MSBuild.BuildEngine.Engine::_a
+	IL_00c8:  ldstr "Microsoft.Build.BuildEngine.Engine"
+	IL_00cd:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string)
+	IL_00d2:  stfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Engine::_t
+	IL_00d7:  ldarg.0 
+	IL_00d8:  ldfld class NAnt.MSBuild.BuildEngine.Engine NAnt.MSBuild.BuildEngine.Engine/Loader::engine
+	IL_00dd:  ldarg.0 
+	IL_00de:  ldfld class NAnt.MSBuild.BuildEngine.Engine NAnt.MSBuild.BuildEngine.Engine/Loader::engine
+	IL_00e3:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Engine::_t
+	IL_00e8:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type)
+	IL_00ed:  stfld object NAnt.MSBuild.BuildEngine.Engine::_obj
+	IL_00f2:  ldarg.0 
+	IL_00f3:  ldfld class NAnt.MSBuild.BuildEngine.Engine NAnt.MSBuild.BuildEngine.Engine/Loader::engine
+	IL_00f8:  ldfld class [mscorlib]System.Reflection.Assembly NAnt.MSBuild.BuildEngine.Engine::_a
+	IL_00fd:  callvirt instance class [mscorlib]System.Reflection.AssemblyName class [mscorlib]System.Reflection.Assembly::GetName()
+	IL_0102:  callvirt instance class [mscorlib]System.Version class [mscorlib]System.Reflection.AssemblyName::get_Version()
+	IL_0107:  callvirt instance int32 class [mscorlib]System.Version::get_Major()
+	IL_010c:  ldc.i4.2 
+	IL_010d:  bne.un IL_014a
+
+	IL_0112:  nop 
+	IL_0113:  ldarg.0 
+	IL_0114:  ldfld class NAnt.MSBuild.BuildEngine.Engine NAnt.MSBuild.BuildEngine.Engine/Loader::engine
+	IL_0119:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Engine::_t
+	IL_011e:  ldstr "BinPath"
+	IL_0123:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo class [mscorlib]System.Type::GetProperty(string)
+	IL_0128:  ldarg.0 
+	IL_0129:  ldfld class NAnt.MSBuild.BuildEngine.Engine NAnt.MSBuild.BuildEngine.Engine/Loader::engine
+	IL_012e:  ldfld object NAnt.MSBuild.BuildEngine.Engine::_obj
+	IL_0133:  ldarg.0 
+	IL_0134:  ldfld <BROKEN CLASS token_ 1000004 due to Could not load file or assembly 'NAnt.Core, Version=0.93.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.> NAnt.MSBuild.BuildEngine.Engine/Loader::framework
+	IL_0139:  callvirt instance class [mscorlib]System.IO.DirectoryInfo [NAnt.Core]NAnt.Core.FrameworkInfo::get_FrameworkDirectory()
+	IL_013e:  callvirt instance string class [mscorlib]System.IO.FileSystemInfo::get_FullName()
+	IL_0143:  ldnull 
+	IL_0144:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, object[])
+	IL_0149:  nop 
+	IL_014a:  ret 
+    } // end of method Loader::DoLoad
+
+  } // end of class Loader
+
+  } // end of class NAnt.MSBuild.BuildEngine.Engine
+}
+
+.namespace NAnt.MSBuild.BuildEngine
+{
+  .class private auto ansi beforefieldinit BuildPropertyGroup
+  	extends [mscorlib]System.Object
+  {
+    .field  private  object _obj
+    .field  private  class [mscorlib]System.Type _t
+
+    // method line 20
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (object o)  cil managed 
+    {
+        // Method begins at RVA 0x240b
+	// Code size 32 (0x20)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld object NAnt.MSBuild.BuildEngine.BuildPropertyGroup::_obj
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.0 
+	IL_0010:  ldfld object NAnt.MSBuild.BuildEngine.BuildPropertyGroup::_obj
+	IL_0015:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_001a:  stfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.BuildPropertyGroup::_t
+	IL_001f:  ret 
+    } // end of method BuildPropertyGroup::.ctor
+
+    // method line 21
+    .method public hidebysig 
+           instance default void SetProperty (string propertyName, string propertyValue)  cil managed 
+    {
+        // Method begins at RVA 0x242c
+	// Code size 76 (0x4c)
+	.maxstack 6
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.BuildPropertyGroup::_t
+	IL_0007:  ldstr "SetProperty"
+	IL_000c:  ldc.i4.2 
+	IL_000d:  newarr [mscorlib]System.Type
+	IL_0012:  dup 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  ldtoken [mscorlib]System.String
+	IL_0019:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_001e:  stelem.ref 
+	IL_001f:  dup 
+	IL_0020:  ldc.i4.1 
+	IL_0021:  ldtoken [mscorlib]System.String
+	IL_0026:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_002b:  stelem.ref 
+	IL_002c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string, class [mscorlib]System.Type[])
+	IL_0031:  ldarg.0 
+	IL_0032:  ldfld object NAnt.MSBuild.BuildEngine.BuildPropertyGroup::_obj
+	IL_0037:  ldc.i4.2 
+	IL_0038:  newarr [mscorlib]System.Object
+	IL_003d:  dup 
+	IL_003e:  ldc.i4.0 
+	IL_003f:  ldarg.1 
+	IL_0040:  stelem.ref 
+	IL_0041:  dup 
+	IL_0042:  ldc.i4.1 
+	IL_0043:  ldarg.2 
+	IL_0044:  stelem.ref 
+	IL_0045:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	IL_004a:  pop 
+	IL_004b:  ret 
+    } // end of method BuildPropertyGroup::SetProperty
+
+  } // end of class NAnt.MSBuild.BuildEngine.BuildPropertyGroup
+}
+
+.namespace NAnt.MSBuild.BuildEngine
+{
+  .class private auto ansi beforefieldinit Project
+  	extends [mscorlib]System.Object
+  {
+    .field  private  object _obj
+    .field  private  class [mscorlib]System.Type _t
+
+    // method line 22
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' (class NAnt.MSBuild.BuildEngine.Engine engine)  cil managed 
+    {
+        // Method begins at RVA 0x2484
+	// Code size 62 (0x3e)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  callvirt instance class [mscorlib]System.Reflection.Assembly class NAnt.MSBuild.BuildEngine.Engine::get_Assembly()
+	IL_000e:  ldstr "Microsoft.Build.BuildEngine.Project"
+	IL_0013:  callvirt instance class [mscorlib]System.Type class [mscorlib]System.Reflection.Assembly::GetType(string)
+	IL_0018:  stfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Project::_t
+	IL_001d:  ldarg.0 
+	IL_001e:  ldarg.0 
+	IL_001f:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Project::_t
+	IL_0024:  ldc.i4.1 
+	IL_0025:  newarr [mscorlib]System.Object
+	IL_002a:  dup 
+	IL_002b:  ldc.i4.0 
+	IL_002c:  ldarg.1 
+	IL_002d:  callvirt instance object class NAnt.MSBuild.BuildEngine.Engine::get_Object()
+	IL_0032:  stelem.ref 
+	IL_0033:  call object class [mscorlib]System.Activator::CreateInstance(class [mscorlib]System.Type, object[])
+	IL_0038:  stfld object NAnt.MSBuild.BuildEngine.Project::_obj
+	IL_003d:  ret 
+    } // end of method Project::.ctor
+
+    // method line 23
+    .method public hidebysig specialname 
+           instance default string get_FullFileName ()  cil managed 
+    {
+        // Method begins at RVA 0x24c4
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Project::_t
+	IL_0007:  ldstr "FullFileName"
+	IL_000c:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo class [mscorlib]System.Type::GetProperty(string)
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld object NAnt.MSBuild.BuildEngine.Project::_obj
+	IL_0017:  ldnull 
+	IL_0018:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, object[])
+	IL_001d:  castclass [mscorlib]System.String
+	IL_0022:  stloc.0 
+	IL_0023:  br IL_0028
+
+	IL_0028:  ldloc.0 
+	IL_0029:  ret 
+    } // end of method Project::get_FullFileName
+
+    // method line 24
+    .method public hidebysig specialname 
+           instance default void set_FullFileName (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x24fa
+	// Code size 31 (0x1f)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Project::_t
+	IL_0007:  ldstr "FullFileName"
+	IL_000c:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo class [mscorlib]System.Type::GetProperty(string)
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld object NAnt.MSBuild.BuildEngine.Project::_obj
+	IL_0017:  ldarg.1 
+	IL_0018:  ldnull 
+	IL_0019:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, object[])
+	IL_001e:  ret 
+    } // end of method Project::set_FullFileName
+
+    // method line 25
+    .method private hidebysig specialname 
+           instance default class [mscorlib]System.Reflection.PropertyInfo get_ToolsVersionPI ()  cil managed 
+    {
+        // Method begins at RVA 0x251c
+	// Code size 25 (0x19)
+	.maxstack 2
+	.locals init (
+		class [mscorlib]System.Reflection.PropertyInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Project::_t
+	IL_0007:  ldstr "ToolsVersion"
+	IL_000c:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo class [mscorlib]System.Type::GetProperty(string)
+	IL_0011:  stloc.0 
+	IL_0012:  br IL_0017
+
+	IL_0017:  ldloc.0 
+	IL_0018:  ret 
+    } // end of method Project::get_ToolsVersionPI
+
+    // method line 26
+    .method public hidebysig specialname 
+           instance default string get_ToolsVersion ()  cil managed 
+    {
+        // Method begins at RVA 0x2544
+	// Code size 57 (0x39)
+	.maxstack 3
+	.locals init (
+		class [mscorlib]System.Reflection.PropertyInfo	V_0,
+		string	V_1)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Reflection.PropertyInfo class NAnt.MSBuild.BuildEngine.Project::get_ToolsVersionPI()
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  ldnull 
+	IL_000a:  call bool class [mscorlib]System.Reflection.PropertyInfo::op_Equality(class [mscorlib]System.Reflection.PropertyInfo, class [mscorlib]System.Reflection.PropertyInfo)
+	IL_000f:  brfalse IL_001f
+
+	IL_0014:  ldstr "2.0"
+	IL_0019:  stloc.1 
+	IL_001a:  br IL_0037
+
+	IL_001f:  ldloc.0 
+	IL_0020:  ldarg.0 
+	IL_0021:  ldfld object NAnt.MSBuild.BuildEngine.Project::_obj
+	IL_0026:  ldnull 
+	IL_0027:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, object[])
+	IL_002c:  castclass [mscorlib]System.String
+	IL_0031:  stloc.1 
+	IL_0032:  br IL_0037
+
+	IL_0037:  ldloc.1 
+	IL_0038:  ret 
+    } // end of method Project::get_ToolsVersion
+
+    // method line 27
+    .method public hidebysig specialname 
+           instance default void set_ToolsVersion (string 'value')  cil managed 
+    {
+        // Method begins at RVA 0x258c
+	// Code size 40 (0x28)
+	.maxstack 4
+	.locals init (
+		class [mscorlib]System.Reflection.PropertyInfo	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  call instance class [mscorlib]System.Reflection.PropertyInfo class NAnt.MSBuild.BuildEngine.Project::get_ToolsVersionPI()
+	IL_0007:  stloc.0 
+	IL_0008:  ldloc.0 
+	IL_0009:  ldnull 
+	IL_000a:  call bool class [mscorlib]System.Reflection.PropertyInfo::op_Equality(class [mscorlib]System.Reflection.PropertyInfo, class [mscorlib]System.Reflection.PropertyInfo)
+	IL_000f:  brfalse IL_0019
+
+	IL_0014:  br IL_0027
+
+	IL_0019:  ldloc.0 
+	IL_001a:  ldarg.0 
+	IL_001b:  ldfld object NAnt.MSBuild.BuildEngine.Project::_obj
+	IL_0020:  ldarg.1 
+	IL_0021:  ldnull 
+	IL_0022:  callvirt instance void class [mscorlib]System.Reflection.PropertyInfo::SetValue(object, object, object[])
+	IL_0027:  ret 
+    } // end of method Project::set_ToolsVersion
+
+    // method line 28
+    .method public hidebysig 
+           instance default void LoadXml (string projectXml)  cil managed 
+    {
+        // Method begins at RVA 0x25c0
+	// Code size 59 (0x3b)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Project::_t
+	IL_0007:  ldstr "LoadXml"
+	IL_000c:  ldc.i4.1 
+	IL_000d:  newarr [mscorlib]System.Type
+	IL_0012:  dup 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  ldtoken [mscorlib]System.String
+	IL_0019:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_001e:  stelem.ref 
+	IL_001f:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string, class [mscorlib]System.Type[])
+	IL_0024:  ldarg.0 
+	IL_0025:  ldfld object NAnt.MSBuild.BuildEngine.Project::_obj
+	IL_002a:  ldc.i4.1 
+	IL_002b:  newarr [mscorlib]System.Object
+	IL_0030:  dup 
+	IL_0031:  ldc.i4.0 
+	IL_0032:  ldarg.1 
+	IL_0033:  stelem.ref 
+	IL_0034:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	IL_0039:  pop 
+	IL_003a:  ret 
+    } // end of method Project::LoadXml
+
+    // method line 29
+    .method public hidebysig specialname 
+           instance default class NAnt.MSBuild.BuildEngine.BuildPropertyGroup get_GlobalProperties ()  cil managed 
+    {
+        // Method begins at RVA 0x25fc
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.MSBuild.BuildEngine.BuildPropertyGroup	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Project::_t
+	IL_0007:  ldstr "GlobalProperties"
+	IL_000c:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo class [mscorlib]System.Type::GetProperty(string)
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld object NAnt.MSBuild.BuildEngine.Project::_obj
+	IL_0017:  ldnull 
+	IL_0018:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, object[])
+	IL_001d:  newobj instance void class NAnt.MSBuild.BuildEngine.BuildPropertyGroup::'.ctor'(object)
+	IL_0022:  stloc.0 
+	IL_0023:  br IL_0028
+
+	IL_0028:  ldloc.0 
+	IL_0029:  ret 
+    } // end of method Project::get_GlobalProperties
+
+    // method line 30
+    .method public hidebysig 
+           instance default string GetEvaluatedProperty (string propertyName)  cil managed 
+    {
+        // Method begins at RVA 0x2634
+	// Code size 51 (0x33)
+	.maxstack 6
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Project::_t
+	IL_0007:  ldstr "GetEvaluatedProperty"
+	IL_000c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string)
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld object NAnt.MSBuild.BuildEngine.Project::_obj
+	IL_0017:  ldc.i4.1 
+	IL_0018:  newarr [mscorlib]System.Object
+	IL_001d:  dup 
+	IL_001e:  ldc.i4.0 
+	IL_001f:  ldarg.1 
+	IL_0020:  stelem.ref 
+	IL_0021:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	IL_0026:  castclass [mscorlib]System.String
+	IL_002b:  stloc.0 
+	IL_002c:  br IL_0031
+
+	IL_0031:  ldloc.0 
+	IL_0032:  ret 
+    } // end of method Project::GetEvaluatedProperty
+
+    // method line 31
+    .method public hidebysig 
+           instance default class NAnt.MSBuild.BuildEngine.BuildItemGroup GetEvaluatedItemsByName (string itemName)  cil managed 
+    {
+        // Method begins at RVA 0x2674
+	// Code size 51 (0x33)
+	.maxstack 6
+	.locals init (
+		class NAnt.MSBuild.BuildEngine.BuildItemGroup	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Project::_t
+	IL_0007:  ldstr "GetEvaluatedItemsByName"
+	IL_000c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string)
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld object NAnt.MSBuild.BuildEngine.Project::_obj
+	IL_0017:  ldc.i4.1 
+	IL_0018:  newarr [mscorlib]System.Object
+	IL_001d:  dup 
+	IL_001e:  ldc.i4.0 
+	IL_001f:  ldarg.1 
+	IL_0020:  stelem.ref 
+	IL_0021:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	IL_0026:  newobj instance void class NAnt.MSBuild.BuildEngine.BuildItemGroup::'.ctor'(object)
+	IL_002b:  stloc.0 
+	IL_002c:  br IL_0031
+
+	IL_0031:  ldloc.0 
+	IL_0032:  ret 
+    } // end of method Project::GetEvaluatedItemsByName
+
+    // method line 32
+    .method public hidebysig 
+           instance default void RemoveItemsByName (string itemName)  cil managed 
+    {
+        // Method begins at RVA 0x26b3
+	// Code size 40 (0x28)
+	.maxstack 8
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Project::_t
+	IL_0007:  ldstr "RemoveItemsByName"
+	IL_000c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string)
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld object NAnt.MSBuild.BuildEngine.Project::_obj
+	IL_0017:  ldc.i4.1 
+	IL_0018:  newarr [mscorlib]System.Object
+	IL_001d:  dup 
+	IL_001e:  ldc.i4.0 
+	IL_001f:  ldarg.1 
+	IL_0020:  stelem.ref 
+	IL_0021:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	IL_0026:  pop 
+	IL_0027:  ret 
+    } // end of method Project::RemoveItemsByName
+
+    // method line 33
+    .method public hidebysig 
+           instance default class NAnt.MSBuild.BuildEngine.BuildItemGroup AddNewItemGroup ()  cil managed 
+    {
+        // Method begins at RVA 0x26dc
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		class NAnt.MSBuild.BuildEngine.BuildItemGroup	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Project::_t
+	IL_0007:  ldstr "AddNewItemGroup"
+	IL_000c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string)
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld object NAnt.MSBuild.BuildEngine.Project::_obj
+	IL_0017:  ldnull 
+	IL_0018:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	IL_001d:  newobj instance void class NAnt.MSBuild.BuildEngine.BuildItemGroup::'.ctor'(object)
+	IL_0022:  stloc.0 
+	IL_0023:  br IL_0028
+
+	IL_0028:  ldloc.0 
+	IL_0029:  ret 
+    } // end of method Project::AddNewItemGroup
+
+    // method line 34
+    .method public hidebysig 
+           instance default bool Build ()  cil managed 
+    {
+        // Method begins at RVA 0x2714
+	// Code size 48 (0x30)
+	.maxstack 3
+	.locals init (
+		bool	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.Project::_t
+	IL_0007:  ldstr "Build"
+	IL_000c:  ldc.i4.0 
+	IL_000d:  newarr [mscorlib]System.Type
+	IL_0012:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string, class [mscorlib]System.Type[])
+	IL_0017:  ldarg.0 
+	IL_0018:  ldfld object NAnt.MSBuild.BuildEngine.Project::_obj
+	IL_001d:  ldnull 
+	IL_001e:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	IL_0023:  unbox.any [mscorlib]System.Boolean
+	IL_0028:  stloc.0 
+	IL_0029:  br IL_002e
+
+	IL_002e:  ldloc.0 
+	IL_002f:  ret 
+    } // end of method Project::Build
+
+	.property instance string FullFileName ()
+	{
+		.get instance default string NAnt.MSBuild.BuildEngine.Project::get_FullFileName () 
+		.set instance default void NAnt.MSBuild.BuildEngine.Project::set_FullFileName (string 'value') 
+	}
+	.property instance class [mscorlib]System.Reflection.PropertyInfo ToolsVersionPI ()
+	{
+		.get instance default class [mscorlib]System.Reflection.PropertyInfo NAnt.MSBuild.BuildEngine.Project::get_ToolsVersionPI () 
+	}
+	.property instance string ToolsVersion ()
+	{
+		.get instance default string NAnt.MSBuild.BuildEngine.Project::get_ToolsVersion () 
+		.set instance default void NAnt.MSBuild.BuildEngine.Project::set_ToolsVersion (string 'value') 
+	}
+	.property instance class NAnt.MSBuild.BuildEngine.BuildPropertyGroup GlobalProperties ()
+	{
+		.get instance default class NAnt.MSBuild.BuildEngine.BuildPropertyGroup NAnt.MSBuild.BuildEngine.Project::get_GlobalProperties () 
+	}
+  } // end of class NAnt.MSBuild.BuildEngine.Project
+}
+
+.namespace NAnt.MSBuild.BuildEngine
+{
+  .class private auto ansi beforefieldinit BuildItem
+  	extends [mscorlib]System.Object
+  {
+    .field  private  object _obj
+    .field  private  class [mscorlib]System.Type _t
+
+    // method line 35
+    .method assembly hidebysig specialname rtspecialname 
+           instance default void '.ctor' (object o)  cil managed 
+    {
+        // Method begins at RVA 0x2750
+	// Code size 32 (0x20)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  nop 
+	IL_0007:  ldarg.0 
+	IL_0008:  ldarg.1 
+	IL_0009:  stfld object NAnt.MSBuild.BuildEngine.BuildItem::_obj
+	IL_000e:  ldarg.0 
+	IL_000f:  ldarg.0 
+	IL_0010:  ldfld object NAnt.MSBuild.BuildEngine.BuildItem::_obj
+	IL_0015:  callvirt instance class [mscorlib]System.Type object::GetType()
+	IL_001a:  stfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.BuildItem::_t
+	IL_001f:  ret 
+    } // end of method BuildItem::.ctor
+
+    // method line 36
+    .method public hidebysig specialname 
+           instance default string get_FinalItemSpec ()  cil managed 
+    {
+        // Method begins at RVA 0x2774
+	// Code size 42 (0x2a)
+	.maxstack 3
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.BuildItem::_t
+	IL_0007:  ldstr "FinalItemSpec"
+	IL_000c:  callvirt instance class [mscorlib]System.Reflection.PropertyInfo class [mscorlib]System.Type::GetProperty(string)
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld object NAnt.MSBuild.BuildEngine.BuildItem::_obj
+	IL_0017:  ldnull 
+	IL_0018:  callvirt instance object class [mscorlib]System.Reflection.PropertyInfo::GetValue(object, object[])
+	IL_001d:  castclass [mscorlib]System.String
+	IL_0022:  stloc.0 
+	IL_0023:  br IL_0028
+
+	IL_0028:  ldloc.0 
+	IL_0029:  ret 
+    } // end of method BuildItem::get_FinalItemSpec
+
+    // method line 37
+    .method public hidebysig 
+           instance default string GetMetadata (string metadataName)  cil managed 
+    {
+        // Method begins at RVA 0x27ac
+	// Code size 51 (0x33)
+	.maxstack 6
+	.locals init (
+		string	V_0)
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.BuildItem::_t
+	IL_0007:  ldstr "GetMetadata"
+	IL_000c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string)
+	IL_0011:  ldarg.0 
+	IL_0012:  ldfld object NAnt.MSBuild.BuildEngine.BuildItem::_obj
+	IL_0017:  ldc.i4.1 
+	IL_0018:  newarr [mscorlib]System.Object
+	IL_001d:  dup 
+	IL_001e:  ldc.i4.0 
+	IL_001f:  ldarg.1 
+	IL_0020:  stelem.ref 
+	IL_0021:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	IL_0026:  castclass [mscorlib]System.String
+	IL_002b:  stloc.0 
+	IL_002c:  br IL_0031
+
+	IL_0031:  ldloc.0 
+	IL_0032:  ret 
+    } // end of method BuildItem::GetMetadata
+
+    // method line 38
+    .method public hidebysig 
+           instance default void SetMetadata (string metadataName, string metadataValue)  cil managed 
+    {
+        // Method begins at RVA 0x27ec
+	// Code size 76 (0x4c)
+	.maxstack 6
+	IL_0000:  nop 
+	IL_0001:  ldarg.0 
+	IL_0002:  ldfld class [mscorlib]System.Type NAnt.MSBuild.BuildEngine.BuildItem::_t
+	IL_0007:  ldstr "SetMetadata"
+	IL_000c:  ldc.i4.2 
+	IL_000d:  newarr [mscorlib]System.Type
+	IL_0012:  dup 
+	IL_0013:  ldc.i4.0 
+	IL_0014:  ldtoken [mscorlib]System.String
+	IL_0019:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_001e:  stelem.ref 
+	IL_001f:  dup 
+	IL_0020:  ldc.i4.1 
+	IL_0021:  ldtoken [mscorlib]System.String
+	IL_0026:  call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+	IL_002b:  stelem.ref 
+	IL_002c:  callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string, class [mscorlib]System.Type[])
+	IL_0031:  ldarg.0 
+	IL_0032:  ldfld object NAnt.MSBuild.BuildEngine.BuildItem::_obj
+	IL_0037:  ldc.i4.2 
+	IL_0038:  newarr [mscorlib]System.Object
+	IL_003d:  dup 
+	IL_003e:  ldc.i4.0 
+	IL_003f:  ldarg.1 
+	IL_0040:  stelem.ref 
+	IL_0041:  dup 
+	IL_0042:  ldc.i4.1 
+	IL_0043:  ldarg.2 
+	IL_0044:  stelem.ref 
+	IL_0045:  callvirt instance object class [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
+	IL_004a:  pop 
+	IL_004b:  ret 
+    } // end of method BuildItem::SetMetadata
+
+	.property instance string FinalItemSpec ()
+	{
+		.get instance default string NAnt.MSBuild.BuildEngine.BuildItem::get_FinalItemSpec () 
+	}
+  } // end of class NAnt.MSBuild.BuildEngine.BuildItem
+}
+
 .namespace NAnt.VSNet
 {
-  .class private auto ansi beforefieldinit RosarioSolutionProvider
+  .class private auto ansi beforefieldinit OrcasSolution
+  	extends NAnt.VSNet.WhidbeySolution
+  {
+
+    // method line 39
+    .method public hidebysig specialname rtspecialname 
+           (null) cil managed 
+    {
+        // Method begins at RVA 0x2b80
+	// Code size 15 (0xf)
+	.maxstack 8
+	IL_0000:  ldarg.0 
+	IL_0001:  ldarg.1 
+	IL_0002:  ldarg.2 
+	IL_0003:  ldarg.3 
+	IL_0004:  ldarg.s 4
+	IL_0006:  ldarg.s 5
+	IL_0008:  call instance void(string, <BROKEN CLASS token_ 1000033 due to Could not load file or assembly 'NAnt.VSNetTasks, Version=0.93.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.>, class [System]System.CodeDom.Compiler.TempFileCollection, <BROKEN CLASS token_ 1000035 due to Could not load file or assembly 'NAnt.Core, Version=0.93.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.>, <BROKEN CLASS token_ 1000036 due to Could not load file or assembly 'NAnt.VSNetTasks, Version=0.93.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.>)
+	IL_000d:  nop 
+	IL_000e:  ret 
+    } // end of method OrcasSolution::<NULL METHOD SIGNATURE>
+
+  } // end of class NAnt.VSNet.OrcasSolution
+}
+
+.namespace NAnt.VSNet
+{
+  .class private auto ansi beforefieldinit OrcasSolutionProvider
   	extends [mscorlib]System.Object
   	implements [NAnt.VSNetTasks]NAnt.VSNet.Extensibility.ISolutionBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
 
-    // method line 3
+    // method line 40
     .method public hidebysig specialname rtspecialname 
            instance default void '.ctor' ()  cil managed 
     {
-        // Method begins at RVA 0x20c4
+        // Method begins at RVA 0x2b90
 	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
 	IL_0001:  call instance void object::'.ctor'()
 	IL_0006:  ret 
-    } // end of method RosarioSolutionProvider::.ctor
+    } // end of method OrcasSolutionProvider::.ctor
 
-    // method line 4
+    // method line 41
     .method public final virtual hidebysig newslot 
            instance default int32 IsSupported (string fileContents)  cil managed 
     {
-        // Method begins at RVA 0x20cc
+        // Method begins at RVA 0x2b98
 	// Code size 103 (0x67)
 	.maxstack 2
 	.locals init (
@@ -208,7 +1316,7 @@
 	IL_003f:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
 	IL_0044:  stloc.3 
 	IL_0045:  ldloc.3 
-	IL_0046:  ldstr "11.00"
+	IL_0046:  ldstr "10.00"
 	IL_004b:  call bool string::op_Equality(string, string)
 	IL_0050:  brfalse IL_005e
 
@@ -223,56 +1331,130 @@
 
 	IL_0065:  ldloc.2 
 	IL_0066:  ret 
-    } // end of method RosarioSolutionProvider::IsSupported
+    } // end of method OrcasSolutionProvider::IsSupported
 
-    // method line 5
+    // method line 42
     .method public final virtual hidebysig newslot 
            (null) cil managed 
     {
-        // Method begins at RVA 0x2140
-    } // end of method RosarioSolutionProvider::<NULL METHOD SIGNATURE>
+        // Method begins at RVA 0x2c0c
+    } // end of method OrcasSolutionProvider::<NULL METHOD SIGNATURE>
 
-  } // end of class NAnt.VSNet.RosarioSolutionProvider
+  } // end of class NAnt.VSNet.OrcasSolutionProvider
 }
 
 .namespace NAnt.VSNet
 {
-  .class private auto ansi beforefieldinit RosarioSolution
-  	extends NAnt.VSNet.WhidbeySolution
+  .class private auto ansi beforefieldinit WhidbeySolution
+  	extends [NAnt.VSNetTasks]NAnt.VSNet.SolutionBase
   {
+    .field private static literal  string SolutionFolder_GUID = "{2150E333-8FDC-42A3-9474-1A3956D46DE8}"
 
-    // method line 6
+    // method line 43
     .method public hidebysig specialname rtspecialname 
            (null) cil managed 
     {
-        // Method begins at RVA 0x24a0
-	// Code size 15 (0xf)
+        // Method begins at RVA 0x2844
+    } // end of method WhidbeySolution::<NULL METHOD SIGNATURE>
+
+  } // end of class NAnt.VSNet.WhidbeySolution
+}
+
+.namespace NAnt.VSNet
+{
+  .class private auto ansi beforefieldinit WhidbeySolutionProvider
+  	extends [mscorlib]System.Object
+  	implements [NAnt.VSNetTasks]NAnt.VSNet.Extensibility.ISolutionBuildProvider, [NAnt.Core]NAnt.Core.Extensibility.IPlugin  {
+
+    // method line 44
+    .method public hidebysig specialname rtspecialname 
+           instance default void '.ctor' ()  cil managed 
+    {
+        // Method begins at RVA 0x2c2d
+	// Code size 7 (0x7)
 	.maxstack 8
 	IL_0000:  ldarg.0 
-	IL_0001:  ldarg.1 
-	IL_0002:  ldarg.2 
-	IL_0003:  ldarg.3 
-	IL_0004:  ldarg.s 4
-	IL_0006:  ldarg.s 5
-	IL_0008:  call instance void(string, <BROKEN CLASS token_ 1000033 due to Could not load file or assembly 'NAnt.VSNetTasks, Version=0.93.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.>, class [System]System.CodeDom.Compiler.TempFileCollection, <BROKEN CLASS token_ 1000035 due to Could not load file or assembly 'NAnt.Core, Version=0.93.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.>, <BROKEN CLASS token_ 1000036 due to Could not load file or assembly 'NAnt.VSNetTasks, Version=0.93.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.>)
-	IL_000d:  nop 
-	IL_000e:  ret 
-    } // end of method RosarioSolution::<NULL METHOD SIGNATURE>
+	IL_0001:  call instance void object::'.ctor'()
+	IL_0006:  ret 
+    } // end of method WhidbeySolutionProvider::.ctor
 
-  } // end of class NAnt.VSNet.RosarioSolution
+    // method line 45
+    .method public final virtual hidebysig newslot 
+           instance default int32 IsSupported (string fileContents)  cil managed 
+    {
+        // Method begins at RVA 0x2c38
+	// Code size 103 (0x67)
+	.maxstack 2
+	.locals init (
+		class [System]System.Text.RegularExpressions.Regex	V_0,
+		class [System]System.Text.RegularExpressions.MatchCollection	V_1,
+		int32	V_2,
+		string	V_3)
+	IL_0000:  nop 
+	IL_0001:  ldstr "^\\s*Microsoft Visual Studio Solution File, Format Version\\s+(?<formatVersion>[0-9]+\\.[0-9]+)"
+	IL_0006:  ldc.i4.s 0x10
+	IL_0008:  newobj instance void class [System]System.Text.RegularExpressions.Regex::'.ctor'(string, valuetype [System]System.Text.RegularExpressions.RegexOptions)
+	IL_000d:  stloc.0 
+	IL_000e:  ldloc.0 
+	IL_000f:  ldarg.1 
+	IL_0010:  callvirt instance class [System]System.Text.RegularExpressions.MatchCollection class [System]System.Text.RegularExpressions.Regex::Matches(string)
+	IL_0015:  stloc.1 
+	IL_0016:  ldloc.1 
+	IL_0017:  callvirt instance int32 class [System]System.Text.RegularExpressions.MatchCollection::get_Count()
+	IL_001c:  brtrue IL_0029
+
+	IL_0021:  nop 
+	IL_0022:  ldc.i4.0 
+	IL_0023:  stloc.2 
+	IL_0024:  br IL_0065
+
+	IL_0029:  ldloc.1 
+	IL_002a:  ldc.i4.0 
+	IL_002b:  callvirt instance class [System]System.Text.RegularExpressions.Match class [System]System.Text.RegularExpressions.MatchCollection::get_Item(int32)
+	IL_0030:  callvirt instance class [System]System.Text.RegularExpressions.GroupCollection class [System]System.Text.RegularExpressions.Match::get_Groups()
+	IL_0035:  ldstr "formatVersion"
+	IL_003a:  callvirt instance class [System]System.Text.RegularExpressions.Group class [System]System.Text.RegularExpressions.GroupCollection::get_Item(string)
+	IL_003f:  callvirt instance string class [System]System.Text.RegularExpressions.Capture::get_Value()
+	IL_0044:  stloc.3 
+	IL_0045:  ldloc.3 
+	IL_0046:  ldstr "9.00"
+	IL_004b:  call bool string::op_Equality(string, string)
+	IL_0050:  brfalse IL_005e
+
+	IL_0055:  nop 
+	IL_0056:  ldc.i4.s 0x0a
+	IL_0058:  stloc.2 
+	IL_0059:  br IL_0065
+
+	IL_005e:  ldc.i4.0 
+	IL_005f:  stloc.2 
+	IL_0060:  br IL_0065
+
+	IL_0065:  ldloc.2 
+	IL_0066:  ret 
+    } // end of method WhidbeySolutionProvider::IsSupported
+
+    // method line 46
+    .method public final virtual hidebysig newslot 
+           (null) cil managed 
+    {
+        // Method begins at RVA 0x2cac
+    } // end of method WhidbeySolutionProvider::<NULL METHOD SIGNATURE>
+
+  } // end of class NAnt.VSNet.WhidbeySolutionProvider
 }
 
 .namespace NAnt.VSNet
 {
-  .class private auto ansi beforefieldinit OrcasSolution
+  .class private auto ansi beforefieldinit RosarioSolution
   	extends NAnt.VSNet.WhidbeySolution
   {
 
-    // method line 7
+    // method line 47
     .method public hidebysig specialname rtspecialname 
            (null) cil managed 
     {
-        // Method begins at RVA 0x24b0
+        // Method begins at RVA 0x2ccd
 	// Code size 15 (0xf)
 	.maxstack 8
 	IL_0000:  ldarg.0 
/usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.xml differs (XML 1.0 document, ASCII text)
--- old//usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.xml	2018-06-14 00:00:00.000000000 +0000
+++ new//usr/share/NAnt/bin/extensions/common/4.5/NAnt.MSBuild.xml	2018-06-14 00:00:00.000000000 +0000
@@ -21,11 +21,6 @@
              True, if it is msbuild project, False otherwise.
              </returns>
             </member>
-        <member name="T:NAnt.VSNet.RosarioSolution">
-             <summary>
-             Analyses Microsoft Visual Studio .NET 2010 (Rosario) solution files.
-             </summary>
-            </member>
         <member name="T:NAnt.VSNet.OrcasSolution">
              <summary>
              Analyses Microsoft Visual Studio .NET 2008 (Orcas) solution files.
@@ -36,36 +31,10 @@
              Analyses Microsoft Visual Studio .NET 2005 (Whidbey) solution files.
              </summary>
             </member>
-        <member name="M:NAnt.MSBuild.MSBuildProject.DetermineProductVersion(System.Xml.XmlElement)">
+        <member name="T:NAnt.VSNet.RosarioSolution">
              <summary>
-             Determines the version of the target msbuild file.
+             Analyses Microsoft Visual Studio .NET 2010 (Rosario) solution files.
              </summary>
-             <remarks>
-             <para>
-             This method identifies the msbuild version by reviewing the following tags in order:
-             </para>
-             <list type="number">
-             <item>
-             <description>&lt;ProductVersion&gt;</description>
-             </item>
-             <item>
-             <description>&lt;TargetFrameworkVersion&gt;</description>
-             </item>
-             <item>
-             <description>ToolsVersion attribute</description>
-             </item>
-             </list>
-             </remarks>
-             <param name="docElement">
-             A <see cref="T:System.Xml.XmlElement" /> representing the msbuild project file.
-             </param>
-             <returns>
-             A <see cref="T:NAnt.VSNet.ProductVersion" /> enum value indicating the msbuild project
-             file version.
-             </returns>
-             <exception cref="T:NAnt.Core.BuildException">
-             version string found in the tags listed above is not recognized.
-             </exception>
             </member>
         <member name="T:NAnt.MSBuild.NAntLoggerVerbosity">
              <summary>
@@ -108,5 +77,36 @@
         <member name="M:NAnt.MSBuild.NAntLogger.DummyTask.ExecuteTask">
              <summary>Test method.</summary>
             </member>
+        <member name="M:NAnt.MSBuild.MSBuildProject.DetermineProductVersion(System.Xml.XmlElement)">
+             <summary>
+             Determines the version of the target msbuild file.
+             </summary>
+             <remarks>
+             <para>
+             This method identifies the msbuild version by reviewing the following tags in order:
+             </para>
+             <list type="number">
+             <item>
+             <description>&lt;ProductVersion&gt;</description>
+             </item>
+             <item>
+             <description>&lt;TargetFrameworkVersion&gt;</description>
+             </item>
+             <item>
+             <description>ToolsVersion attribute</description>
+             </item>
+             </list>
+             </remarks>
+             <param name="docElement">
+             A <see cref="T:System.Xml.XmlElement" /> representing the msbuild project file.
+             </param>
+             <returns>
+             A <see cref="T:NAnt.VSNet.ProductVersion" /> enum value indicating the msbuild project
+             file version.
+             </returns>
+             <exception cref="T:NAnt.Core.BuildException">
+             version string found in the tags listed above is not recognized.
+             </exception>
+            </member>
     </members>
 </doc>
overalldiffered=1 (not bit-by-bit identical)
overall=1